为什么以及何时调用 setApprovalForAll?

Dou*_*g P 10 ethereum solidity openzeppelin nft erc721

我很难理解为什么以及何时在 NFT 生成合约上调用 SetApprovalForAll。

酷猫为例。为了方便起见,下面有相关交易的屏幕截图。

我注意到,对于此合同和其他合同,反复调用“Set Approval For All”。根据我自己对允许铸造的合约的有限经验,via _safeMint,我也在日志中看到了 SetApprovalForAll 交易。它没有在我的代码中直接调用。

为什么这么称呼它?钱包是否将其作为铸造过程的一部分?

在此输入图像描述

Oli*_*hti 10

当您在市场上出售 NFT 时,您需要授权该市场将已售商品从您的地址转移到买家的地址。

这就是 SetApprovalForAll 的用途:因为您信任市场,所以您“批准”它出售您的 NFT(不是您所有的 NFT,而是您在本合同中拥有的 NFT)。

在此 API 的上下文中,市场就是所谓的“运营商”。