ERC-20 账户合同 API

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

账户管理方法

createAccount
此方法为指定的用户创建帐户。必须为在任何时候将具有令牌的任何用户创建账户。账户跟踪余额和暂挂余额。此方法只能由指定组织的 Token Admin 或 Org Admin 调用。
参数:
  • userId: string- 用户的用户名或电子邮件 ID。用户 ID 不得为空字符串。
  • orgId: string- 当前组织中用户的成员服务提供商 (membership service provider,MSP) ID。组织 ID 不能为空字符串。
  • userAddress: string- 用户的 wallet 地址,不得为零。
  • maxDailyAmount: int256 –每天可以在交易中使用的最大令牌数量。如果值为 -1,则没有限制。
  • maxDailyTransactions: int256- 每天可以完成的最大事务处理数。如果值为 -1,则没有限制。
  • applicationGroups: string[]- 用户所属的应用程序组的列表。
deleteAccount
此方法将删除指定用户的帐户。此方法只能由指定组织的 Token Admin 或 Org Admin 调用。
参数:
  • userAddress: string- 用户的 wallet 地址,不得为零。
getAccountStatus
此方法获取指定用户的当前帐户状态。此方法可由指定组织的 Token Admin 或 Token Auditor、Org Admin 或令牌帐户所有者调用。
参数:
  • userAddress: string- 用户的 wallet 地址,不得为零。
退货:
  • AccountStatus enum 对象的值,可以是 0、1 或 2。
    enum AccountStatus {
    active,
    suspended,
    deleted
    }
getAccountByAddress
此方法获取指定用户的帐户。此方法可由指定组织的 Token Admin 或 Token Auditor、Org Admin 或令牌帐户所有者调用。
参数:
  • userAddress: string- 用户的 wallet 地址,不得为零。
返回值示例:
{
    "userId": "userA",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a",
    "dailyLimits": {
          "isMaxDailyTxnEnabled": true,
    	  "isMaxDailyAmtEnabled": true, 
		  "dailyAmount": 100,
    	  "dailyTransactions": 5,
		  "maxDailyAmount": 100000,
    	  "maxDailyTransactions": 50,
          "applicationGroups":[]                
    },
	"status":0
}
getAllAccounts
此方法获取所有帐户,并具有分页输出。此方法只能由 Token Admin 或 Token Auditor 调用。
参数:
  • offset: uint256- 指示从何处开始获取帐户信息的偏移索引。
  • limit: uint256- 要返回的项数。
退货:
  • Return (UserAccount[] memory items, uint256 total, uint256 nextOffset)
返回值示例:
[{
    "userId": "userA",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a",
    "dailyLimits": {
          "isMaxDailyTxnEnabled": true,
    	  "isMaxDailyAmtEnabled": true, 
		  "dailyAmount": 100,
    	  "dailyTransactions": 5,
		  "maxDailyAmount": 100000,
    	  "maxDailyTransactions": 50,
		  "applicationGroups":[]           
	},
	"status":0
}]
total: 15
nextoffset: 6
activateAccount
此方法将激活指定用户的帐户。此方法只能由指定组织的 Token Admin 或 Org Admin 调用。
参数:
  • userAddress: string- 用户的 wallet 地址,不得为零。
suspendAccount
此方法将激活指定用户的帐户。此方法只能由指定组织的 Token Admin 或 Org Admin 调用。
参数:
  • userAddress: string- 用户的 wallet 地址,不得为零。
setMaxDailyAmount
此方法设置指定用户每天可以在事务处理中使用的标记的最大数量。此方法只能由指定组织的 Token Admin 或 Org Admin 调用。
参数:
  • value: int256 –每天可以在交易中使用的最大令牌数量。
  • userAddress: string- 用户的 wallet 地址,不得为零。
setMaxDailyTransactionCount
此方法设置指定用户每天可以完成的最大事务处理数。此方法只能由指定组织的 Token Admin 或 Org Admin 调用。
参数:
  • count: int256- 每天可以完成的最大事务处理数。
  • 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 或 Token Auditor 调用。
参数:
  • 无
返回值示例:
[{
    "userId": "tokenadmin1",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"
},
{
    "userId": "tokenadmin2",
    "orgId": "orgB",
	"accountAddress": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73"
}]
isTokenAdmin
此方法检查指定用户是否为 Token Admin。此方法只能由 Token Admin、Token Auditor、Org Admin 或 Org Auditor 调用。
参数:
  • userAddress: string- 用户的 wallet 地址,不得为零。
退货:
  • 指示指定用户是否为 Token Admin 的布尔值(true 或 false)。
addOrgAdmin
此方法将添加一个 Org Admin。此方法只能由指定组织的 Token Admin 或 Org Admin 调用。
参数:
  • adminDetails: object- 指定用户 ID、组织 ID 和 wallet 地址的对象,如以下示例中所示。
    {
        "userId": "tokenAdmin1",
        "orgId": "orgA",
    	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"    
    }
removeOrgAdmin
此方法将删除 Org Admin。此方法只能由指定组织的 Token Admin 或 Org Admin 调用。
参数:
  • userAddress: string- 用户的 wallet 地址,不得为零。
getAllOrgAdmins
此方法获取所有 Org Admin 用户的帐户信息。此方法只能由 Token Admin、Token Auditor、Org Admin 或 Org Auditor 调用。
参数:
  • 无
返回值示例:
[{
    "userId": "orgadmin1",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"
},
{
    "userId": "orgadmin2",
    "orgId": "orgB",
	"accountAddress": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73"
}]
isOrgAdmin
此方法检查指定用户是否为 Org Admin。此方法只能由 Token Admin、Token Auditor、Org Admin 或 Org Auditor 调用。
参数:
  • userAddress: string- 用户的 wallet 地址,不得为零。
退货:
  • 指示指定用户是否为 Org Admin 的布尔值(true 或 false)。

审计员管理方法

addTokenAuditor
此方法将添加一个 Token Auditor。此方法只能由 Token Admin 调用。
参数:
  • auditorDetails: object- 指定用户 ID、组织 ID 和 wallet 地址的对象,如以下示例中所示。
    {
        "userId": "tokenAuditor1",
        "orgId": "orgA",
    	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"    
    }
removeTokenAuditor
此方法将删除 Token Auditor。此方法只能由 Token Admin 调用。
参数:
  • userAddress: string- 用户的 wallet 地址,不得为零。
getAllTokenAuditors
此方法获取所有 Token Auditor 用户的帐户信息。此方法只能由 Token Admin 或 Token Auditor 调用。
参数:
  • 无
返回值示例:
[{
    "userId": "tokenAuditor1",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"
},
{
    "userId": "tokenAuditor2",
    "orgId": "orgB",
	"accountAddress": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73"
}]
isTokenAuditor
此方法检查指定用户是否为 Token Auditor。此方法可由任何用户调用。
参数:
  • userAddress: string- 用户的 wallet 地址,不得为零。
退货:
  • 指示指定用户是否为 Token Auditor 的布尔值(true 或 false)。
addOrgAuditor
此方法将添加一个 Org Auditor。此方法只能由指定组织的 Token Admin 或 Org Admin 调用。
参数:
  • adminDetails: object- 指定用户 ID、组织 ID 和 wallet 地址的对象,如以下示例中所示。
    {
        "userId": "tokenAuditor1",
        "orgId": "orgA",
    	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"    
    }
removeOrgAuditor
此方法将删除 Org Auditor。此方法只能由指定组织的 Token Admin 或 Org Admin 调用。
参数:
  • userAddress: string- 用户的 wallet 地址,不得为零。
getAllOrgAuditors
此方法获取所有 Org Auditor 用户的帐户信息。此方法只能由 Token Admin、Token Auditor、Org Admin 或 Org Auditor 调用。
参数:
  • 无
返回值示例:
[{
    "userId": "orgAuditor1",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"
},
{
    "userId": "orgAuditor2",
    "orgId": "orgB",
	"accountAddress": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73"
}]
isOrgAuditor
此方法检查指定用户是否为 Org Auditor。此方法可由任何用户调用。
参数:
  • userAddress: string- 用户的 wallet 地址,不得为零。
退货:
  • 指示指定用户是否为 Org Auditor 的布尔值(true 或 false)。

角色管理方法

addRole
此方法向指定用户添加角色。此方法只能由指定组织的 Token Admin 或 Org Admin 调用。
参数:
  • userAddress: string- 用户的 wallet 地址,不得为零。
  • role: string- 要为指定用户添加的角色的名称,例如 minter、burner 或 notary。
removeRole
此方法从指定用户中删除角色。此方法只能由指定组织的 Token Admin 或 Org Admin 调用。
参数:
  • userAddress: string- 用户的 wallet 地址,不得为零。
  • role: string- 要为指定用户删除的角色的名称,例如 minter、burner 或 notary。
isInRole
此方法检查用户是否具有指定的角色。此方法可由任何用户调用。
参数:
  • role: string- 要检查指定用户的角色的名称,例如 minter、burner 或 notary。
  • userAddress: string- 用户的 wallet 地址,不得为零。
退货:
  • 指示用户是否具有指定角色的布尔值(true 或 false)。
hasRole
此方法检查用户是否具有指定的角色。此方法可由任何用户调用。
参数:
  • account: string- 用户的 wallet 地址,不得为零。
  • role: bytes32- 要检查指定用户的角色的名称,例如 minter、burner 或 notary。
退货:
  • 指示用户是否具有指定角色的布尔值(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),指示部署是否处于活动状态。