diff options
author | Amir Bandeali <abandeali1@gmail.com> | 2018-04-26 08:28:23 +0800 |
---|---|---|
committer | Amir Bandeali <abandeali1@gmail.com> | 2018-04-27 01:59:27 +0800 |
commit | b7781108ae4c77112b1522fa8b5e45bc04ce507f (patch) | |
tree | 33ce35d834b3da3170b275edfc240383a52cbef4 /packages/contracts/src/contracts/current/tokens/ERC721Token/IERC721Receiver.sol | |
parent | 35ca7d1826c265768fb50fa1304a3c30e29e55b0 (diff) | |
download | dexon-sol-tools-b7781108ae4c77112b1522fa8b5e45bc04ce507f.tar dexon-sol-tools-b7781108ae4c77112b1522fa8b5e45bc04ce507f.tar.gz dexon-sol-tools-b7781108ae4c77112b1522fa8b5e45bc04ce507f.tar.bz2 dexon-sol-tools-b7781108ae4c77112b1522fa8b5e45bc04ce507f.tar.lz dexon-sol-tools-b7781108ae4c77112b1522fa8b5e45bc04ce507f.tar.xz dexon-sol-tools-b7781108ae4c77112b1522fa8b5e45bc04ce507f.tar.zst dexon-sol-tools-b7781108ae4c77112b1522fa8b5e45bc04ce507f.zip |
Add ERC721 contracts from zeppelin-solidity
Diffstat (limited to 'packages/contracts/src/contracts/current/tokens/ERC721Token/IERC721Receiver.sol')
-rw-r--r-- | packages/contracts/src/contracts/current/tokens/ERC721Token/IERC721Receiver.sol | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/packages/contracts/src/contracts/current/tokens/ERC721Token/IERC721Receiver.sol b/packages/contracts/src/contracts/current/tokens/ERC721Token/IERC721Receiver.sol new file mode 100644 index 000000000..cef1340f4 --- /dev/null +++ b/packages/contracts/src/contracts/current/tokens/ERC721Token/IERC721Receiver.sol @@ -0,0 +1,60 @@ +/* +The MIT License (MIT) + +Copyright (c) 2016 Smart Contract Solutions, Inc. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +pragma solidity ^0.4.21; + +/** + * @title ERC721 token receiver interface + * @dev Interface for any contract that wants to support safeTransfers + * rom ERC721 asset contracts. + * Modified from https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts/token/ERC721/ERC721Receiver.sol + */ +contract IERC721Receiver { + /** + * @dev Magic value to be returned upon successful reception of an NFT + * Equals to `bytes4(keccak256("onERC721Received(address,uint256,bytes)"))`, + * which can be also obtained as `ERC721Receiver(0).onERC721Received.selector` + */ + bytes4 constant ERC721_RECEIVED = 0xf0b9e5ba; + + /** + * @notice Handle the receipt of an NFT + * @dev The ERC721 smart contract calls this function on the recipient + * after a `safetransfer`. This function MAY throw to revert and reject the + * transfer. This function MUST use 50,000 gas or less. Return of other + * than the magic value MUST result in the transaction being reverted. + * Note: the contract address is always the message sender. + * @param _from The sending address + * @param _tokenId The NFT identifier which is being transfered + * @param _data Additional data with no specified format + * @return `bytes4(keccak256("onERC721Received(address,uint256,bytes)"))` + */ + function onERC721Received( + address _from, + uint256 _tokenId, + bytes _data) + public + returns (bytes4); +}
\ No newline at end of file |