存取控制

權杖化支援包含存取控制功能,支援以角色為基礎與以擁有權為基礎的控制機制。

透過角色型控制,使用者可以呼叫具有相關角色的特定方法,例如 Token AdminToken Minter。透過以所有權為基礎的控制,您可以限制使用者存取不是他們擁有的資產。透過以擁有權為基礎的存取控制,擁有資產的使用者可以呼叫特定方法,例如 Token OwnerAccount Owner。如需方法之存取控制的特定資訊,請參閱下列主題中記載之方法的個別項目:
以角色為基礎的存取控制支援下列角色:
權杖管理
部署權杖鏈碼時,可以指派 Token Admin 使用者。Token Admin 使用者資訊會儲存在狀態資料庫中。Token Admin 使用者可以授與和移除其他使用者的 Token Admin 權限。Token Admin 使用者無法移除自己的 Token Admin 權限。Token Admin 使用者可以將 Org Admin、minter、burner 或公證人角色指派給任何使用者。
組織管理
擴充的「記號分類架構」方法支援 Org Admin 角色。Token Admin 使用者可以指派 Org Admin 角色給任何使用者。Org Admin 使用者具有管理權限,但僅在其組織內。他們可以建立帳戶或查看帳戶餘額,但僅適用於其組織中的使用者。Org Admin 具有礦工、燃燒器或公證人角色的使用者可以將該角色指派給其組織中的其他使用者。
Token Minter
被指派 minter 角色的使用者是 Token Minter,可以提示記號。
權杖燃燒器
被指派燃燒器角色的使用者是 Token Burner,可以燒錄記號。
權杖公證人
被指派公證人角色的使用者是 Token NotaryToken Notary 在付款人與受款人之間的交易中扮演第三方角色。Token Notary 可觸發從付款人到受款人的權杖傳輸完成,或將權杖傳回給付款人的帳戶。
Vault Manager
被指派 Vault 角色的使用者為 Vault ManagerVault Manager 可以解除鎖定已鎖定的 NFT。Vault 角色僅適用於延伸的 ERC-721 和 ERC-1155 標準。將 Vault 角色指定給使用者是鎖定 NFT 的先決條件。只能為每個鏈碼指派一位使用者該 Vault 角色。
以擁有權為基礎的存取控制支援下列角色:
帳戶擁有者
具有帳戶的任何使用者都是 Account Owner
權杖擁有者
目前擁有不可行記號的任何使用者都是該記號的 Token Owner

在某些方法中,也會結合以角色為基礎的存取控制和以擁有權為基礎的存取控制。例如,以角色為基礎的存取控制可讓具有 minter 角色的使用者建立記號。透過以所有權為基礎的存取控制,非可行的記號擁有者可以修改記號的自訂特性,但無法修改記號描述資料。具備 minter 角色的使用者建立不可執行的記號 (NFT) 時,會成為 NFT 的擁有者。身為 NFT 的擁有者,他們可以修改自訂特性 (對於藝術集合記號,記號價格為自訂特性)。權杖建立者將 NFT 傳輸給另一位使用者之後,第二位使用者就會成為擁有者,而建立權杖的使用者就不再是權杖的擁有者。由於以所有權為基礎的存取控制,新的擁有者現在可以更新自訂特性值,但先前的擁有者已無法再更新。由於角色型存取控制,先前的擁有者仍然可以 Mint an NFT,但新的使用者無法存取。

您也可以編寫自己的存取控制功能,或停用存取控制。以下範例顯示了控制存取權的自動產生程式碼。

TypeScript:
await this.Ctx.<Token Standard>Auth.checkAuthorization(...)
移至:
auth, err := t.Ctx.<Token Standard>Auth.CheckAuthorization(...)

附註:

若要移除自動產生的存取控制功能,請從您的 TypeScript 或 Go 專案中移除前一行的程式碼。