ERC-1155 帳戶合約 API

您可以在 ERC-1155 帳戶合約中使用下列身分識別與存取控制方法。

帳戶管理方法

createAccount
此方法會為指定的使用者建立帳戶。必須為任何需要記號的使用者建立帳戶。科目會追蹤餘額與保留餘額。只有 Token Admin 或指定的組織 Org Admin 才能呼叫此方法。
參數:
  • userId: string – 使用者的使用者名稱或電子郵件 ID。使用者 ID 不得為空白字串。
  • orgId: string – 目前組織中使用者的會員服務提供者 (MSP) ID。組織 ID 不得為空白字串。
  • userAddress: string – 使用者的公事包位址,不能為零。
deleteAccount
此方法會刪除指定使用者的帳戶。只有 Token Admin 才能呼叫此方法。
參數:
  • userAddress: string – 使用者的公事包位址,不能為零。
getAccountStatus
此方法會取得指定使用者的目前帳戶狀態。Token Admin 或記號帳戶擁有者可以呼叫此方法。
參數:
  • userAddress: string – 使用者的公事包位址,不能為零。
傳回:
  • AccountStatus enum 物件的值,可以是 0、1 或 2。
    enum AccountStatus {
    active,
    suspended,
    deleted
    }
getAccountByAddress
此方法會取得指定使用者的帳戶。Token Admin 或記號帳戶擁有者可以呼叫此方法。
參數:
  • userAddress: string – 使用者的公事包位址,不能為零。
傳回值範例:
{
    "userId": "userA",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a",
	"status":0
}
getAllAccounts
此方法會取得具有分頁輸出的所有帳戶。只有 Token Admin 才能呼叫此方法。
參數:
  • offset: uint256 – 指示從何處開始取得帳戶資訊的位移索引。
  • limit: uint256 – 要退回的項目數目。
傳回:
  • Return (UserAccount[] memory items, uint256 total, uint256 nextOffset)
傳回值範例:
[{
    "userId": "userA",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a",
	"status":0
}]
total: 15
nextoffset: 6
activateAccount
此方法會啟動指定使用者的帳戶。只有 Token Admin 才能呼叫此方法。
參數:
  • userAddress: string – 使用者的公事包位址,不能為零。
suspendAccount
此方法會啟動指定使用者的帳戶。只有 Token Admin 才能呼叫此方法。
參數:
  • userAddress: string – 使用者的公事包位址,不能為零。

管理管理方法

addTokenAdmin
此方法會新增 Token Admin。只有 Token Admin 才能呼叫此方法。
參數:
  • adminDetails: object – 指定使用者 ID、組織 ID 和公事包位址的物件,如下列範例所示。
    {
        "userId": "tokenAdmin1",
        "orgId": "orgA",
    	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"    
    }
removeTokenAdmin
此方法會移除 Token Admin。只有 Token Admin 才能呼叫此方法。
參數:
  • userAddress: string – 使用者的公事包位址,不能為零。
getAllTokenAdmins
此方法會取得所有 Token Admin 使用者的帳戶資訊。只有 Token Admin 才能呼叫此方法。
參數:
  • 無
傳回值範例:
[{
    "userId": "tokenadmin1",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"
},
{
    "userId": "tokenadmin2",
    "orgId": "orgB",
	"accountAddress": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73"
}]
isTokenAdmin
此方法會檢查指定的使用者是否為 Token Admin。只有 Token Admin 才能呼叫此方法。
參數:
  • userAddress: string – 使用者的公事包位址,不能為零。
傳回:
  • 指示指定的使用者是否為 Token Admin 的布林值 (true 或 false)。

角色管理方式

addRole
此方法會將角色新增至指定的使用者。只有 Token Admin 才能呼叫此方法。
參數:
  • userAddress: string – 使用者的公事包位址,不能為零。
  • role: string – 要為指定使用者新增的角色名稱,例如 minter、burner 或 notary。
  • scopeId: uint256 – 範圍 ID,可以是 NFT 類別 ID 或有趣的記號 ID。
removeRole
此方法會從指定的使用者移除角色。只有 Token Admin 才能呼叫此方法。
參數:
  • userAddress: string – 使用者的公事包位址,不能為零。
  • role: string – 要為指定使用者移除的角色名稱,例如 minter、burner 或 notary。
  • scopeId: uint256 – 範圍 ID,可以是 NFT 類別 ID 或有趣的記號 ID。
isInRole
此方法會檢查使用者是否具有指定的角色。只有 Token Admin 才能呼叫此方法。
參數:
  • role: string – 要檢查指定使用者之角色的名稱,例如 minter、burner 或 notary。
  • userAddress: string – 使用者的公事包位址,不能為零。
  • scopeId: uint256 – 範圍 ID,可以是 NFT 類別 ID 或有趣的記號 ID。
傳回:
  • 指示使用者是否具有指定角色的布林值 (真或偽)。
isInRole
此方法會檢查使用者是否具有指定的角色。只有 Token Admin 才能呼叫此方法。
參數:
  • role: bytes32 – 要檢查指定使用者之角色名稱的 Keccak-256 雜湊,例如 minter、burner 或 notary。
  • userAddress: string – 使用者的公事包位址,不能為零。
  • scopeId: uint256 – 範圍 ID,可以是 NFT 類別 ID 或有趣的記號 ID。
傳回:
  • 指示使用者是否具有指定角色的布林值 (真或偽)。
addTokenSysRole
此方法會將 TOKEN_SYS_VAULT_ROLE 角色新增至指定的使用者。只有 Token Admin 才能呼叫此方法。
參數:
  • userAddress: string – 使用者的公事包位址,不能為零。
  • role: string – 要新增的角色名稱。唯一支援的值為 TOKEN_SYS_VAULT_ROLE。
傳回:
  • 布林值 (true 或 false)。
removeTokenSysRole
此方法會從指定的使用者移除 TOKEN_SYS_VAULT_ROLE 角色。只有 Token Admin 才能呼叫此方法。
參數:
  • userAddress: string – 使用者的公事包位址,不能為零。
  • role: string – 要移除的角色名稱。唯一支援的值為 TOKEN_SYS_VAULT_ROLE。
傳回:
  • 布林值 (true 或 false)。
transferTokenSysRole
此方法會將指定使用者的 TOKEN_SYS_VAULT_ROLE 角色轉譯為收件者。只有 Token Admin 才能呼叫此方法。
參數:
  • fromAddress: string – 目前具有 TOKEN_SYS_VAULT_ROLE 角色之使用者的公事包位址。
  • toAddress: string – 將接收 TOKEN_SYS_VAULT_ROLE 角色之使用者的公事包位址。
  • role: string – 要傳輸的角色名稱。唯一支援的值為 TOKEN_SYS_VAULT_ROLE。
傳回:
  • 布林值 (true 或 false)。

相關資訊環境管理方法

setContext
此方法會設定帳戶合約的變數替代字合約地址。只有 Token Admin 才能呼叫此方法。
參數:
  • tokenAddress: address – 已部署權杖的合約位址,不可為零。
getContext
此方法會取得客戶合約的變數替代字合約地址。任何使用者都可以呼叫這個方法。
參數:
  • 無
退貨
  • 權杖合約地址
setGovernanceContext
此方法會設定治理合約,以用於管理帳戶合約的治理生命週期。只有 Token Admin 才能呼叫此方法。
參數:
  • uuid: string – 在合約部署之前由數位資產 Token Admin 所設定的唯一 ID。
  • governance: address – 已部署治理合約的合約地址,不得為零。
getGovernanceContext
此方法會取得政府相關資訊環境詳細資訊。任何使用者都可以呼叫這個方法。
參數:
  • 無
退貨
  • governanceContext 物件。
傳回值範例:
{
    "governanceUUID": "abc-def",
    "governance": "0x0000000",
	"deploymentActive": "true"
}
isDeploymentActive
此方法會檢查部署是否有效。任何使用者都可以呼叫這個方法。
參數:
  • 無
傳回:
  • 指示部署是否有效的布林值 (真或偽)。