feat: complete ERC721's safeTransferFrom
This commit is contained in:
parent
d178a24104
commit
fff8b11932
@ -126,15 +126,31 @@ contract NFinTech is IERC721 {
|
|||||||
} else {
|
} else {
|
||||||
revert();
|
revert();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function _safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) internal {
|
||||||
|
if (to.code.length != 0 ) {
|
||||||
|
try IERC721TokenReceiver(to).onERC721Received(msg.sender, from, tokenId, data) returns (bytes4 retval) {
|
||||||
|
if (retval == IERC721TokenReceiver.onERC721Received.selector) {
|
||||||
|
transferFrom(from, to, tokenId);
|
||||||
|
} else {
|
||||||
|
revert();
|
||||||
|
}
|
||||||
|
} catch {
|
||||||
|
revert();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
transferFrom(from, to, tokenId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) public {
|
function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) public {
|
||||||
// TODO: please add your implementaiton here
|
// TODO: please add your implementaiton here
|
||||||
|
_safeTransferFrom(from, to, tokenId, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
function safeTransferFrom(address from, address to, uint256 tokenId) public {
|
function safeTransferFrom(address from, address to, uint256 tokenId) public {
|
||||||
// TODO: please add your implementaiton here
|
// TODO: please add your implementaiton here
|
||||||
|
_safeTransferFrom(from, to, tokenId, "");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user