ERC-20 帳戶合約 API

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

帳戶管理方法

createAccount
此方法會為指定的使用者建立帳戶。必須為任何需要記號的使用者建立帳戶。科目會追蹤餘額與保留餘額。只有 Token Admin 或指定的組織 Org Admin 才能呼叫此方法。
參數:
  • userId: string – 使用者的使用者名稱或電子郵件 ID。使用者 ID 不得為空白字串。
  • orgId: string – 目前組織中使用者的會員服務提供者 (MSP) ID。組織 ID 不得為空白字串。
  • userAddress: string – 使用者的公事包位址,不能為零。
  • maxDailyAmount: int256 – 每日交易中可使用的權杖數量上限。如果值為 -1,則沒有限制。
  • maxDailyTransactions: int256 – 每日可完成的交易數上限。如果值為 -1,則沒有限制。
  • applicationGroups: string[] – 使用者所屬的應用程式群組清單。
deleteAccount
此方法會刪除指定使用者的帳戶。只有 Token Admin 或指定的組織 Org Admin 才能呼叫此方法。
參數:
  • userAddress: string – 使用者的公事包位址,不能為零。
getAccountStatus
此方法會取得指定使用者的目前帳戶狀態。Token Admin 或 Token Auditor、指定組織的 Org Admin 或記號帳戶擁有者可以呼叫此方法。
參數:
  • userAddress: string – 使用者的公事包位址,不能為零。
傳回:
  • AccountStatus enum 物件的值,可以是 0、1 或 2。
    enum AccountStatus {
    active,
    suspended,
    deleted
    }
getAccountByAddress
此方法會取得指定使用者的帳戶。Token Admin 或 Token Auditor、指定組織的 Org Admin 或記號帳戶擁有者可以呼叫此方法。
參數:
  • userAddress: string – 使用者的公事包位址,不能為零。
傳回值範例:
{
    "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 – 使用者的公事包位址,不能為零。
suspendAccount
此方法會啟動指定使用者的帳戶。只有 Token Admin 或指定的組織 Org Admin 才能呼叫此方法。
參數:
  • userAddress: string – 使用者的公事包位址,不能為零。
setMaxDailyAmount
此方法會設定指定使用者每日可在交易中使用的記號數量上限。只有 Token Admin 或指定的組織 Org Admin 才能呼叫此方法。
參數:
  • value: int256 – 每日交易中可使用的權杖數量上限。
  • userAddress: string – 使用者的公事包位址,不能為零。
setMaxDailyTransactionCount
此方法會設定指定使用者每日可完成的交易數上限。只有 Token Admin 或指定的組織 Org Admin 才能呼叫此方法。
參數:
  • count: int256 – 每日可完成的交易數上限。
  • 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 或 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 – 使用者的公事包位址,不能為零。
傳回:
  • 指示指定的使用者是否為 Token Admin 的布林值 (true 或 false)。
addOrgAdmin
此方法會新增一個 Org Admin。只有指定的組織之 Token Admin 或 Org Admin 才能呼叫此方法。
參數:
  • adminDetails: object – 指定使用者 ID、組織 ID 和公事包位址的物件,如下列範例所示。
    {
        "userId": "tokenAdmin1",
        "orgId": "orgA",
    	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"    
    }
removeOrgAdmin
此方法會移除 Org Admin。只有指定的組織之 Token Admin 或 Org Admin 才能呼叫此方法。
參數:
  • userAddress: string – 使用者的公事包位址,不能為零。
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 – 使用者的公事包位址,不能為零。
傳回:
  • 指示指定的使用者是否為 Org Admin 的布林值 (true 或 false)。

稽核者管理方法

addTokenAuditor
此方法會新增 Token Auditor。只有 Token Admin 才能呼叫此方法。
參數:
  • auditorDetails: object – 指定使用者 ID、組織 ID 和公事包位址的物件,如下列範例所示。
    {
        "userId": "tokenAuditor1",
        "orgId": "orgA",
    	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"    
    }
removeTokenAuditor
此方法會移除 Token Auditor。只有 Token Admin 才能呼叫此方法。
參數:
  • userAddress: string – 使用者的公事包位址,不能為零。
getAllTokenAuditors
此方法會取得所有 Token Auditor 使用者的帳戶資訊。只有 Token Admin 或 Token Auditor 才能呼叫此方法。
參數:
  • 無
傳回值範例:
[{
    "userId": "tokenAuditor1",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"
},
{
    "userId": "tokenAuditor2",
    "orgId": "orgB",
	"accountAddress": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73"
}]
isTokenAuditor
此方法會檢查指定的使用者是否為 Token Auditor。任何使用者都可以呼叫這個方法。
參數:
  • userAddress: string – 使用者的公事包位址,不能為零。
傳回:
  • 指示指定的使用者是否為 Token Auditor 的布林值 (true 或 false)。
addOrgAuditor
此方法會新增一個 Org Auditor。只有指定的組織之 Token Admin 或 Org Admin 才能呼叫此方法。
參數:
  • adminDetails: object – 指定使用者 ID、組織 ID 和公事包位址的物件,如下列範例所示。
    {
        "userId": "tokenAuditor1",
        "orgId": "orgA",
    	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"    
    }
removeOrgAuditor
此方法會移除 Org Auditor。只有指定的組織之 Token Admin 或 Org Admin 才能呼叫此方法。
參數:
  • userAddress: string – 使用者的公事包位址,不能為零。
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 – 使用者的公事包位址,不能為零。
傳回:
  • 指示指定的使用者是否為 Org Auditor 的布林值 (true 或 false)。

角色管理方式

addRole
此方法會將角色新增至指定的使用者。只有指定的組織之 Token Admin 或 Org Admin 才能呼叫此方法。
參數:
  • userAddress: string – 使用者的公事包位址,不能為零。
  • role: string – 要為指定使用者新增的角色名稱,例如 minter、burner 或 notary。
removeRole
此方法會從指定的使用者移除角色。只有指定的組織之 Token Admin 或 Org Admin 才能呼叫此方法。
參數:
  • userAddress: string – 使用者的公事包位址,不能為零。
  • role: string – 要為指定使用者移除的角色名稱,例如 minter、burner 或 notary。
isInRole
此方法會檢查使用者是否具有指定的角色。任何使用者都可以呼叫這個方法。
參數:
  • role: string – 要檢查指定使用者之角色的名稱,例如 minter、burner 或 notary。
  • userAddress: string – 使用者的公事包位址,不能為零。
傳回:
  • 指示使用者是否具有指定角色的布林值 (真或偽)。
hasRole
此方法會檢查使用者是否具有指定的角色。任何使用者都可以呼叫這個方法。
參數:
  • account: string – 使用者的公事包位址,不能為零。
  • role: bytes32 – 要檢查指定使用者之角色的名稱,例如 minter、burner 或 notary。
傳回:
  • 指示使用者是否具有指定角色的布林值 (真或偽)。

相關資訊環境管理方法

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
此方法會檢查部署是否有效。任何使用者都可以呼叫這個方法。
參數:
  • 無
傳回:
  • 指示部署是否有效的布林值 (真或偽)。