ERC721ReceiverMock.sol 666 B

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