ERC-1155 账户合同 API

您可以在 ERC-1155 账户合同中使用以下身份和访问控制方法。

账户管理方法

createAccount
此方法为指定的用户创建帐户。必须为在任何时候将具有令牌的任何用户创建账户。账户跟踪余额和暂挂余额。此方法只能由指定组织的 Token Admin 或 Org Admin 调用。
参数:
  • userId: string- 用户的用户名或电子邮件 ID。用户 ID 不得为空字符串。
  • orgId: string- 当前组织中用户的成员服务提供商 (membership service provider,MSP) ID。组织 ID 不能为空字符串。
  • userAddress: string- 用户的 wallet 地址,不得为零。
deleteAccount
此方法将删除指定用户的帐户。此方法只能由 Token Admin 调用。
参数:
  • userAddress: string- 用户的 wallet 地址,不得为零。
getAccountStatus
此方法获取指定用户的当前帐户状态。此方法可由 Token Admin 或令牌帐户所有者调用。
参数:
  • userAddress: string- 用户的 wallet 地址,不得为零。
退货:
  • AccountStatus enum 对象的值,可以是 0、1 或 2。
    enum AccountStatus {
    active,
    suspended,
    deleted
    }
getAccountByAddress
此方法获取指定用户的帐户。此方法可由 Token Admin 或令牌帐户所有者调用。
参数:
  • userAddress: string- 用户的 wallet 地址,不得为零。
返回值示例:
{
    "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- 用户的 wallet 地址,不得为零。
suspendAccount
此方法将激活指定用户的帐户。此方法只能由 Token Admin 调用。
参数:
  • userAddress: string- 用户的 wallet 地址,不得为零。

管理方法

addTokenAdmin
此方法将添加一个 Token Admin。此方法只能由 Token Admin 调用。
参数:
  • adminDetails: object- 指定用户 ID、组织 ID 和 wallet 地址的对象,如以下示例中所示。
    {
        "userId": "tokenAdmin1",
        "orgId": "orgA",
    	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"    
    }
removeTokenAdmin
此方法将删除 Token Admin。此方法只能由 Token Admin 调用。
参数:
  • userAddress: string- 用户的 wallet 地址,不得为零。
getAllTokenAdmins
此方法获取所有 Token Admin 用户的帐户信息。此方法只能由 Token Admin 调用。
参数:
  • 无
返回值示例:
[{
    "userId": "tokenadmin1",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"
},
{
    "userId": "tokenadmin2",
    "orgId": "orgB",
	"accountAddress": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73"
}]
isTokenAdmin
此方法检查指定用户是否为 Token Admin。此方法只能由 Token Admin 调用。
参数:
  • userAddress: string- 用户的 wallet 地址,不得为零。
退货:
  • 指示指定用户是否为 Token Admin 的布尔值(true 或 false)。

角色管理方法

addRole
此方法向指定用户添加角色。此方法只能由 Token Admin 调用。
参数:
  • userAddress: string- 用户的 wallet 地址,不得为零。
  • role: string- 要为指定用户添加的角色的名称,例如 minter、burner 或 notary。
  • scopeId: uint256- 作用域 ID,即 NFT 类 ID 或可变令牌 ID。
removeRole
此方法从指定用户中删除角色。此方法只能由 Token Admin 调用。
参数:
  • userAddress: string- 用户的 wallet 地址,不得为零。
  • role: string- 要为指定用户删除的角色的名称,例如 minter、burner 或 notary。
  • scopeId: uint256- 作用域 ID,即 NFT 类 ID 或可变令牌 ID。
isInRole
此方法检查用户是否具有指定的角色。此方法只能由 Token Admin 调用。
参数:
  • role: string- 要检查指定用户的角色的名称,例如 minter、burner 或 notary。
  • userAddress: string- 用户的 wallet 地址,不得为零。
  • scopeId: uint256- 作用域 ID,即 NFT 类 ID 或可变令牌 ID。
退货:
  • 指示用户是否具有指定角色的布尔值(true 或 false)。
isInRole
此方法检查用户是否具有指定的角色。此方法只能由 Token Admin 调用。
参数:
  • role: bytes32- 用于检查指定用户的角色名称的 Keccak-256 散列,例如 minter、burner 或 notary。
  • userAddress: string- 用户的 wallet 地址,不得为零。
  • scopeId: uint256- 作用域 ID,即 NFT 类 ID 或可变令牌 ID。
退货:
  • 指示用户是否具有指定角色的布尔值(true 或 false)。
addTokenSysRole
此方法将 TOKEN_SYS_VAULT_ROLE 角色添加到指定的用户。此方法只能由 Token Admin 调用。
参数:
  • userAddress: string- 用户的 wallet 地址,不得为零。
  • role: string- 要添加的角色的名称。唯一支持的值为 TOKEN_SYS_VAULT_ROLE。
退货:
  • 布尔值(true 或 false)。
removeTokenSysRole
此方法从指定用户中删除 TOKEN_SYS_VAULT_ROLE 角色。此方法只能由 Token Admin 调用。
参数:
  • userAddress: string- 用户的 wallet 地址,不得为零。
  • role: string- 要删除的角色的名称。唯一支持的值为 TOKEN_SYS_VAULT_ROLE。
退货:
  • 布尔值(true 或 false)。
transferTokenSysRole
此方法将 TOKEN_SYS_VAULT_ROLE 角色从指定用户传输到收件人。此方法只能由 Token Admin 调用。
参数:
  • fromAddress: string- 当前具有 TOKEN_SYS_VAULT_ROLE 角色的用户的 wallet 地址。
  • toAddress: string- 将接收 TOKEN_SYS_VAULT_ROLE 角色的用户的 wallet 地址。
  • 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
此方法检查部署是否处于活动状态。此方法可由任何用户调用。
参数:
  • 无
退货:
  • 一个布尔值(true 或 false),指示部署是否处于活动状态。