【发布时间】:2021-12-26 04:31:34
【问题描述】:
当发生市场交易时,在 ERC20 代币接口上,approve 和 transferFrom 返回 true,因此,在这两个返回之后,我知道我可以做一些事情,比如执行 NFT 转账。 但是在 ERC777 发送方法上不返回任何内容。如果有人为转发我的操作而付费,我怎么知道?
例如:
//ERC20
if (token.approve(address(this), amount)) {
if (token.transferFrom(msg.sender, idToMarketItem[itemId].seller, amount)) {
IERC721(nftContract).transferFrom(address(this), msg.sender, tokenId);
}
}
//ERC777
token.send(idToMarketItem[itemId].seller, amount, "");
//????
IERC721(nftContract).transferFrom(address(this), msg.sender, tokenId);
【问题讨论】:
-
如果我明白了,请告诉我。例如,在出售 NFT 的智能合约中,我开始出售 sellItem 方法,调用 token.send(),然后在 tokensReceived 方法中执行 NFT 转账?
-
是的 - 听起来很对。
标签: blockchain ethereum solidity smartcontracts openzeppelin