123456789101112131415161718192021222324252627282930313233343536373839404142 |
- pragma solidity ^0.4.24;
- import "../token/ERC721/IERC721Receiver.sol";
- contract ERC721ReceiverMock is IERC721Receiver {
- bytes4 internal retval_;
- bool internal reverts_;
- event Received(
- address operator,
- address from,
- uint256 tokenId,
- bytes data,
- uint256 gas
- );
- constructor(bytes4 _retval, bool _reverts) public {
- retval_ = _retval;
- reverts_ = _reverts;
- }
- function onERC721Received(
- address _operator,
- address _from,
- uint256 _tokenId,
- bytes _data
- )
- public
- returns(bytes4)
- {
- require(!reverts_);
- emit Received(
- _operator,
- _from,
- _tokenId,
- _data,
- gasleft() // msg.gas was deprecated in solidityv0.4.21
- );
- return retval_;
- }
- }
|