1234567891011121314151617181920212223242526272829303132333435 |
- // SPDX-License-Identifier: MIT
- // OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC1363Receiver.sol)
- pragma solidity ^0.8.20;
- /**
- * @dev Interface for any contract that wants to support {IERC1363-transferAndCall}
- * or {IERC1363-transferFromAndCall} from {ERC1363} token contracts.
- */
- interface IERC1363Receiver {
- /*
- * Note: the ERC-165 identifier for this interface is 0x88a7ca5c.
- * 0x88a7ca5c === bytes4(keccak256("onTransferReceived(address,address,uint256,bytes)"))
- */
- /**
- * @notice Handle the receipt of ERC1363 tokens
- * @dev Any ERC1363 smart contract calls this function on the recipient
- * after a `transfer` or a `transferFrom`. This function MAY throw to revert and reject the
- * transfer. Return of other than the magic value MUST result in the
- * transaction being reverted.
- * Note: the token contract address is always the message sender.
- * @param operator address The address which called `transferAndCall` or `transferFromAndCall` function
- * @param from address The address which are token transferred from
- * @param amount uint256 The amount of tokens transferred
- * @param data bytes Additional data with no specified format
- * @return `bytes4(keccak256("onTransferReceived(address,address,uint256,bytes)"))` unless throwing
- */
- function onTransferReceived(
- address operator,
- address from,
- uint256 amount,
- bytes memory data
- ) external returns (bytes4);
- }
|