From 6f180a6c5a4c3ec3ff861b43cfd93d322b28ab6a Mon Sep 17 00:00:00 2001 From: Santiago Palladino Date: Fri, 9 Mar 2018 15:32:04 -0300 Subject: [PATCH] Remove gas stipend restriction in call to 721 receiver --- contracts/token/ERC721/ERC721BasicToken.sol | 7 ++----- test/token/ERC721/ERC721BasicToken.behaviour.js | 1 - 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/contracts/token/ERC721/ERC721BasicToken.sol b/contracts/token/ERC721/ERC721BasicToken.sol index 850a7c2b2..7eb8935da 100644 --- a/contracts/token/ERC721/ERC721BasicToken.sol +++ b/contracts/token/ERC721/ERC721BasicToken.sol @@ -12,9 +12,6 @@ import "../../AddressUtils.sol"; contract ERC721BasicToken is ERC721Basic { using SafeMath for uint256; using AddressUtils for address; - - // Gas allowed in calls to onERC721Received on safeTransfers - uint256 SAFE_TRANSFER_GAS_STIPEND = 50000; // Equals to bytes4(keccak256("onERC721Received(address,uint256,bytes)")) bytes4 ERC721_RECEIVED = 0xf0b9e5ba; @@ -91,7 +88,7 @@ contract ERC721BasicToken is ERC721Basic { address owner = ownerOf(_tokenId); require(_to != owner); require(msg.sender == owner || isApprovedForAll(owner, msg.sender)); - + if (getApproved(_tokenId) != 0 || _to != 0) { tokenApprovals[_tokenId] = _to; Approval(owner, _to, _tokenId); @@ -277,6 +274,6 @@ contract ERC721BasicToken is ERC721Basic { */ function checkAndCallSafeTransfer(address _from, address _to, uint256 _tokenId, bytes _data) internal returns (bool) { return !_to.isContract() || - (ERC721Receiver(_to).onERC721Received.gas(SAFE_TRANSFER_GAS_STIPEND)(_from, _tokenId, _data) == ERC721_RECEIVED); + (ERC721Receiver(_to).onERC721Received(_from, _tokenId, _data) == ERC721_RECEIVED); } } diff --git a/test/token/ERC721/ERC721BasicToken.behaviour.js b/test/token/ERC721/ERC721BasicToken.behaviour.js index afab5a8d3..d208e2571 100644 --- a/test/token/ERC721/ERC721BasicToken.behaviour.js +++ b/test/token/ERC721/ERC721BasicToken.behaviour.js @@ -245,7 +245,6 @@ export default function shouldBehaveLikeERC721BasicToken (accounts) { log.args._address.should.be.equal(owner); log.args._tokenId.toNumber().should.be.equal(tokenId); log.args._data.should.be.equal(data); - log.args._gas.toNumber().should.be.lessThan(50000); }); }); };