diff options
author | Leonid Logvinov <logvinov.leon@gmail.com> | 2018-12-11 01:09:59 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-12-11 01:09:59 +0800 |
commit | a39e0f13be4d47ee79dd971d49835f6929fa71e7 (patch) | |
tree | 9bc2a11f27514c8ca46e24ac268899e95ebf6b49 /contracts/tokens/contracts/test/DummyERC721Receiver/DummyERC721Receiver.sol | |
parent | 190d9244cc5544662effae508f94025a6f5de286 (diff) | |
parent | a365ab11d24ff8365b7d69a948b1b5211b772f5e (diff) | |
download | dexon-sol-tools-a39e0f13be4d47ee79dd971d49835f6929fa71e7.tar dexon-sol-tools-a39e0f13be4d47ee79dd971d49835f6929fa71e7.tar.gz dexon-sol-tools-a39e0f13be4d47ee79dd971d49835f6929fa71e7.tar.bz2 dexon-sol-tools-a39e0f13be4d47ee79dd971d49835f6929fa71e7.tar.lz dexon-sol-tools-a39e0f13be4d47ee79dd971d49835f6929fa71e7.tar.xz dexon-sol-tools-a39e0f13be4d47ee79dd971d49835f6929fa71e7.tar.zst dexon-sol-tools-a39e0f13be4d47ee79dd971d49835f6929fa71e7.zip |
Merge pull request #1388 from 0xProject/feature/contracts-monorepo-6
Contracts monorepo 6
Diffstat (limited to 'contracts/tokens/contracts/test/DummyERC721Receiver/DummyERC721Receiver.sol')
-rw-r--r-- | contracts/tokens/contracts/test/DummyERC721Receiver/DummyERC721Receiver.sol | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/contracts/tokens/contracts/test/DummyERC721Receiver/DummyERC721Receiver.sol b/contracts/tokens/contracts/test/DummyERC721Receiver/DummyERC721Receiver.sol new file mode 100644 index 000000000..6c8371559 --- /dev/null +++ b/contracts/tokens/contracts/test/DummyERC721Receiver/DummyERC721Receiver.sol @@ -0,0 +1,67 @@ +/* + + Copyright 2018 ZeroEx Intl. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/ + +pragma solidity 0.4.24; + +import "../../tokens/ERC721Token/IERC721Receiver.sol"; + + +contract DummyERC721Receiver is + IERC721Receiver +{ + // Function selector for ERC721Receiver.onERC721Received + // 0x150b7a02 + bytes4 constant internal ERC721_RECEIVED = bytes4(keccak256("onERC721Received(address,address,uint256,bytes)")); + + event TokenReceived( + address operator, + address from, + uint256 tokenId, + bytes data + ); + + /// @notice Handle the receipt of an NFT + /// @dev The ERC721 smart contract calls this function on the recipient + /// after a `transfer`. 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 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(keccak256("onERC721Received(address,address,uint256,bytes)"))` + /// unless throwing + function onERC721Received( + address _operator, + address _from, + uint256 _tokenId, + bytes _data + ) + external + returns (bytes4) + { + emit TokenReceived( + _operator, + _from, + _tokenId, + _data + ); + return ERC721_RECEIVED; + } +} |