ERC721ReceiverMock.sol 724 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  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 _operator,
  8. address _from,
  9. uint256 _tokenId,
  10. bytes _data,
  11. uint256 _gas
  12. );
  13. constructor(bytes4 _retval, bool _reverts) public {
  14. retval = _retval;
  15. reverts = _reverts;
  16. }
  17. function onERC721Received(
  18. address _operator,
  19. address _from,
  20. uint256 _tokenId,
  21. bytes _data
  22. )
  23. public
  24. returns(bytes4)
  25. {
  26. require(!reverts);
  27. emit Received(
  28. _operator,
  29. _from,
  30. _tokenId,
  31. _data,
  32. gasleft() // msg.gas was deprecated in solidityv0.4.21
  33. );
  34. return retval;
  35. }
  36. }