1234567891011121314151617181920212223242526272829303132 |
- // SPDX-License-Identifier: MIT
- // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC1363Receiver.sol)
- pragma solidity ^0.8.20;
- /**
- * @title IERC1363Receiver
- * @dev Interface for any contract that wants to support `transferAndCall` or `transferFromAndCall`
- * from ERC-1363 token contracts.
- */
- interface IERC1363Receiver {
- /**
- * @dev Whenever ERC-1363 tokens are transferred to this contract via `transferAndCall` or `transferFromAndCall`
- * by `operator` from `from`, this function is called.
- *
- * NOTE: To accept the transfer, this must return
- * `bytes4(keccak256("onTransferReceived(address,address,uint256,bytes)"))`
- * (i.e. 0x88a7ca5c, or its own function selector).
- *
- * @param operator The address which called `transferAndCall` or `transferFromAndCall` function.
- * @param from The address which are tokens transferred from.
- * @param value The amount of tokens transferred.
- * @param data Additional data with no specified format.
- * @return `bytes4(keccak256("onTransferReceived(address,address,uint256,bytes)"))` if transfer is allowed unless throwing.
- */
- function onTransferReceived(
- address operator,
- address from,
- uint256 value,
- bytes calldata data
- ) external returns (bytes4);
- }
|