存取控制
權杖化支援包含存取控制功能,支援以角色為基礎與以擁有權為基礎的控制機制。
透過角色型控制,使用者可以呼叫具有相關角色的特定方法,例如
Token Admin
或 Token Minter
。透過以所有權為基礎的控制,您可以限制使用者存取不是他們擁有的資產。透過以擁有權為基礎的存取控制,擁有資產的使用者可以呼叫特定方法,例如 Token Owner
或 Account 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 Notary
。Token Notary
在付款人與受款人之間的交易中扮演第三方角色。Token Notary
可觸發從付款人到受款人的權杖傳輸完成,或將權杖傳回給付款人的帳戶。 - Vault Manager
- 被指派 Vault 角色的使用者為
Vault Manager
。Vault Manager
可以解除鎖定已鎖定的 NFT。Vault 角色僅適用於延伸的 ERC-721 和 ERC-1155 標準。將 Vault 角色指定給使用者是鎖定 NFT 的先決條件。只能為每個鏈碼指派一位使用者該 Vault 角色。
在某些方法中,也會結合以角色為基礎的存取控制和以擁有權為基礎的存取控制。例如,以角色為基礎的存取控制可讓具有 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 專案中移除前一行的程式碼。