ERC721ReceiverMock.sol 670 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. pragma solidity ^0.4.24;
  2. import "../token/ERC721/ERC721Receiver.sol";
  3. contract ERC721ReceiverMock is ERC721Receiver {
  4. bytes4 retval;
  5. bool reverts;
  6. event Received(
  7. address _address,
  8. uint256 _tokenId,
  9. bytes _data,
  10. uint256 _gas
  11. );
  12. constructor(bytes4 _retval, bool _reverts) public {
  13. retval = _retval;
  14. reverts = _reverts;
  15. }
  16. function onERC721Received(
  17. address _address,
  18. uint256 _tokenId,
  19. bytes _data
  20. )
  21. public
  22. returns(bytes4)
  23. {
  24. require(!reverts);
  25. emit Received(
  26. _address,
  27. _tokenId,
  28. _data,
  29. gasleft() // msg.gas was deprecated in solidityv0.4.21
  30. );
  31. return retval;
  32. }
  33. }