From 3f2ea8a329d52ceb13771cb0345275ac4c85a446 Mon Sep 17 00:00:00 2001 From: Santiago Palladino Date: Wed, 21 Mar 2018 11:42:47 -0300 Subject: [PATCH] Use if-statements instead of boolean one-liners for clarity :-( --- contracts/token/ERC721/ERC721BasicToken.sol | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/contracts/token/ERC721/ERC721BasicToken.sol b/contracts/token/ERC721/ERC721BasicToken.sol index 828ac1b50..564c6d49c 100644 --- a/contracts/token/ERC721/ERC721BasicToken.sol +++ b/contracts/token/ERC721/ERC721BasicToken.sol @@ -223,7 +223,9 @@ contract ERC721BasicToken is ERC721Basic { removeToken(_from, _tokenId); addToken(_to, _tokenId); - require(!_safe || checkAndCallSafeTransfer(_from, _to, _tokenId, _data)); + if (_safe) { + require(checkAndCallSafeTransfer(_from, _to, _tokenId, _data)); + } Transfer(_from, _to, _tokenId); } @@ -274,7 +276,10 @@ contract ERC721BasicToken is ERC721Basic { * @return whether the call correctly returned the expected magic value */ function checkAndCallSafeTransfer(address _from, address _to, uint256 _tokenId, bytes _data) internal returns (bool) { - return !_to.isContract() || - (ERC721Receiver(_to).onERC721Received(_from, _tokenId, _data) == ERC721_RECEIVED); + if (!_to.isContract()) { + return true; + } + bytes4 retval = ERC721Receiver(_to).onERC721Received(_from, _tokenId, _data); + return (retval == ERC721_RECEIVED); } }