Contract-Design

什麼是 ERC-1155 上下文中的運營商批准?

  • January 16, 2021

https://github.com/enjin/erc-1155/blob/master/contracts/ERC1155.sol說了一些關於“運營商批准”的內容。

什麼是運營商,什麼是運營商審批?

該術語operator由 EIP-721 首次引入,用於定義NFT 所有者授權(或批准)的地址,以使用他的所有令牌 Id。

在 EIP-1155 中,operator由令牌所有者設置,這要歸功於以下功能:

function setApprovalForAll(address _operator, bool _approved) external {
   operatorApproval[msg.sender][_operator] = _approved;
   emit ApprovalForAll(msg.sender, _operator, _approved);
}

操作員有能力管理setApprovalForAll方法呼叫者擁有的所有令牌。

因此,safeTransferFromandsafeBatchTransferFrom方法可以由令牌所有者或他的一個操作員呼叫(請注意,一個所有者可以有多個操作員)。使用以下行在兩個函式中檢查此語句:

require(_from == msg.sender || operatorApproval[_from][msg.sender] == true, "Need operator approval for 3rd party transfers.");

引用自:https://ethereum.stackexchange.com/questions/76828