123456789101112131415161718192021222324252627 |
- // SPDX-License-Identifier: MIT
- // OpenZeppelin Contracts v4.4.0-rc.1 (token/ERC721/IERC721Receiver.sol)
- pragma solidity ^0.8.0;
- /**
- * @title ERC721 token receiver interface
- * @dev Interface for any contract that wants to support safeTransfers
- * from ERC721 asset contracts.
- */
- interface IERC721Receiver {
- /**
- * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}
- * by `operator` from `from`, this function is called.
- *
- * It must return its Solidity selector to confirm the token transfer.
- * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.
- *
- * The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`.
- */
- function onERC721Received(
- address operator,
- address from,
- uint256 tokenId,
- bytes calldata data
- ) external returns (bytes4);
- }
|