12345678910111213141516171819202122232425 |
- pragma solidity ^0.5.0;
- /**
- * @title ERC721 token receiver interface
- * @dev Interface for any contract that wants to support safeTransfers
- * from ERC721 asset contracts.
- */
- contract IERC721Receiver {
- /**
- * @notice Handle the receipt of an NFT
- * @dev The ERC721 smart contract calls this function on the recipient
- * after a {IERC721-safeTransferFrom}. This function MUST return the function selector,
- * otherwise the caller will revert the transaction. The selector to be
- * returned can be obtained as `this.onERC721Received.selector`. This
- * function MAY throw to revert and reject the transfer.
- * Note: the ERC721 contract address is always the message sender.
- * @param operator The address which called `safeTransferFrom` function
- * @param from The address which previously owned the token
- * @param tokenId The NFT identifier which is being transferred
- * @param data Additional data with no specified format
- * @return bytes4 `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`
- */
- function onERC721Received(address operator, address from, uint256 tokenId, bytes memory data)
- public returns (bytes4);
- }
|