Contract-Development
在合約中收到 ERC-721 代幣時如何獲取合約地址?
我正在編寫 NFT 質押合約,我希望我的合約僅接受來自 3 個特定合約的 NFT。我已經實現
IERC721Receiver
並且該onERC721Received
功能成功觸發。獲取收到的代幣的合約地址的最佳方法是什麼?
正在傳輸的令牌將呼叫這些
IERC721Receiver
方法。因此,您可以使用msg.sender
來檢測正在傳輸的令牌的地址。ERC721 智能合約在
transfer
. 此函式可能會拋出以恢復和拒絕傳輸。魔術值以外的返回必須導致交易被恢復。取自https://eips.ethereum.org/EIPS/eip-721
請注意,對於 ERC-721 令牌,這僅適用於
safeTransferFrom
方法。仍然可以使用該transferFrom
方法將代幣轉移到您的合約中。