保证一个合约只能收到一种类型的ERC721 nft
Guarantee a contract can only receive one type of ERC721 nft
为 ERC721 NFT 的 privateSale 创建合约,首先我将一些库存存入实现 onErc721Received(...) 的 privateSale 合约地址
我想保证的是,这个 privateSaleContract 只从一种给定的 NFT 类型(通过其合约地址)接收 ERC721 代币
如何保证?
ERC721 标准定义了两种类型的传递函数:
safeTransferFrom()
检查接收者是否是合约 - 如果是,则尝试在接收者上执行 onERC721Received()
函数。
- 还有一个不应该调用
onERC721Received()
的非安全传递函数 (transferFrom()
)。
因此任何人都可以使用非安全传输功能向您发送 NFT,而无需调用您合约上的任何功能。这使得这些传输无法阻止。
为 ERC721 NFT 的 privateSale 创建合约,首先我将一些库存存入实现 onErc721Received(...) 的 privateSale 合约地址 我想保证的是,这个 privateSaleContract 只从一种给定的 NFT 类型(通过其合约地址)接收 ERC721 代币
如何保证?
ERC721 标准定义了两种类型的传递函数:
safeTransferFrom()
检查接收者是否是合约 - 如果是,则尝试在接收者上执行onERC721Received()
函数。- 还有一个不应该调用
onERC721Received()
的非安全传递函数 (transferFrom()
)。
因此任何人都可以使用非安全传输功能向您发送 NFT,而无需调用您合约上的任何功能。这使得这些传输无法阻止。