批发 CBDC 模型
区块链应用程序构建器的增强版本包括一个模型属性,该属性为批发中央银行数字货币 (CBDC) 场景生成其他方法。
如果您在使用扩展令牌分类框架标准的令牌的规范文件中包含 model: wcbdc
参数,Blockchain App Builder 将生成特定于应用程序的链代码,包括用于批发 CBDC 应用程序的以下附加方法和功能。
TypeScript 批发 CBDC 的方法
批发 CBDC 链代码包括通用标记分类框架 NFT 链代码中可用的所有方法。提供了以下特定于批发 CBDC 方案的其他方法。-
setApplicationGroups
- 此方法在 API 中指定应用程序组的帐户详细信息中设置
application_groups
参数。此方法只能由指定组织的Token Admin
或Org Admin
调用。 public async setApplicationGroups (org_id: string, user_id: string, token_id: string, application_groups: string[])
- 参数:
org_id: string
—当前组织中用户的成员服务提供商 (MSP) ID。user_id: string
- 用户的用户名或电子邮件 ID。token_id: string
- 令牌的 ID。application_groups: string[]
- 用户 ID 所属的应用程序组列表,用于定义用户在 CBDC 应用程序中的关联。
- 返回值示例:
{ "returnCode": "Success", "error": "", "result": { "txid": "453821c7ffd477987ef8ccbd836b893969531ab768098cd4a99e3b89cd38a391", "payload": { "bapAccountVersion": 0, "assetType": "oaccount", "account_id": "oaccount~28ac774001f374064029d51af4fb67e26ea1ea9ef62828b7a72dbf3beb8efd8d", "user_id": "admin_user_cb", "org_id": "CB", "token_type": "fungible", "token_id": "", "token_name": "", "balance": 0, "onhold_balance": 0, "onhold_burn_balance": 0, "application_groups": [ "System_Admins" ], "max_daily_amount": 10000, "daily_amount": 0, "max_daily_transactions": 100, "daily_transactions": 0, "current_date": "2024-12-09T00:00:00.000Z" }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 188 } }
-
getAllActiveAccounts
- 此方法返回与指定令牌 ID 关联的所有活动帐户。任何用户都可以调用此方法。
public async getAllActiveAccounts(token_id: string)
- 参数:
token_id: string
- 令牌的 ID。
- 返回:
- 成功时,包含用户详细信息的消息。输出因用户的角色而异,如以下示例中所示。
- 返回值示例(令牌管理员、令牌审计员):
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "key": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe", "non_account_role_name": [ "token_admin" ], "role_name": null, "valueJson": { "bapAccountVersion": 0, "assetType": "oaccount", "account_id": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe", "user_id": "admin_user_cb", "org_id": "CB", "token_type": "fungible", "token_id": "USD", "token_name": "cbdc", "balance": 0, "onhold_balance": 0, "onhold_burn_balance": 0, "application_groups": [ "System_Admins" ], "max_daily_amount": 10000, "daily_amount": 0, "max_daily_transactions": 1000, "daily_transactions": 0, "current_date": "2024-11-20T00:00:00.000Z" } } ], "encode": "JSON" } }
- 返回值示例(组织管理员、组织审核员):
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "key": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe", "non_account_role_name": [ "token_admin" ], "role_name": null, "valueJson": { "account_id": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe", "org_id": "CB", "user_id": "admin_user_cb", "token_id": "USD", "max_daily_amount": 10000, "max_daily_transactions": 1000 } } ], "encode": "JSON" } }
- 返回值示例(所有其他用户):
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "key": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe", "non_account_role_name": [ "token_admin" ], "role_name": null, "valueJson": { "account_id": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe", "org_id": "CB", "user_id": "admin_user_cb", "token_id": "USD", "max_daily_amount": 10000, "max_daily_transactions": 1000 } } ], "encode": "JSON" } }
-
getAllSuspendedAccounts
- 此方法返回与指定令牌 ID 关联的所有已挂起帐户。任何用户都可以调用此方法。
func (t *Controller) GetAllSuspendedAccounts(token_id string) (interface{}, error)
- 参数:
token_id: string
- 令牌的 ID。
- 返回:
- 成功时,包含用户详细信息的消息。输出因用户的角色而异,如以下示例中所示。
- 返回值示例(令牌管理员、令牌审计员):
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "key": "oaccount~802bf8da5579c6103b2dddaa6c4385df8e722d639a18029e0e93d7a5d6f826d6", "non_account_role_name": null, "role_name": null, "valueJson": { "assetType": "oaccount", "bapAccountVersion": 1, "account_id": "oaccount~802bf8da5579c6103b2dddaa6c4385df8e722d639a18029e0e93d7a5d6f826d6", "user_id": "user1_fi1", "org_id": "FI1", "token_type": "fungible", "token_id": "USD", "token_name": "cbdc", "balance": 5, "onhold_balance": 0, "onhold_burn_balance": 0, "application_groups": [ "Org_Users" ], "max_daily_amount": 10000, "daily_amount": 0, "max_daily_transactions": 1000, "daily_transactions": 0, "current_date": "2024-11-20T00:00:00.000Z" } } ], "encode": "JSON" } }
- 返回值示例(组织管理员、组织审核员):
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "key": "oaccount~802bf8da5579c6103b2dddaa6c4385df8e722d639a18029e0e93d7a5d6f826d6", "non_account_role_name": null, "role_name": null, "valueJson": { "account_id": "oaccount~802bf8da5579c6103b2dddaa6c4385df8e722d639a18029e0e93d7a5d6f826d6", "org_id": "FI1", "user_id": "user1_fi1", "token_id": "USD", "max_daily_amount": 10000, "max_daily_transactions": 1000 } } ], "encode": "JSON" } }
- 返回值示例(所有其他用户):
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "key": "oaccount~802bf8da5579c6103b2dddaa6c4385df8e722d639a18029e0e93d7a5d6f826d6", "non_account_role_name": null, "role_name": null, "valueJson": { "account_id": "oaccount~802bf8da5579c6103b2dddaa6c4385df8e722d639a18029e0e93d7a5d6f826d6", "org_id": "FI1", "user_id": "user1_fi1", "token_id": "USD" } } ], "encode": "JSON" } }
-
getBurnQuantity
- 此方法返回指定组织的已刻录标记的总数量。此方法只能由具有刻录器角色的
Token Admin
、Token Auditor
或用户调用。 public async getBurnQuantity(token_id: string)
- 参数:
token_id: string
- 令牌的 ID。
- 返回值示例:
{ "returnCode": "Success", "error": "", "result": { "payload": { "burnt_quantity": 31 }, "encode": "JSON" } }
-
getActionHistory
- 此方法检索调用方对薄荷、刻录和传输(发行)操作进行的审批或拒绝的历史记录,包括组织的详细信息以及相关帐户(发件人、收件人和公证人)的用户 ID。
public async getActionHistory(token_id: string)
- 参数:
token_id: string
- 令牌的 ID。
- 返回值示例:
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "from_account_id": "oaccount~0d7b3f73aea28065017ce8b79c0bb19256dc0cb475a0b2a85192bd110f69535c", "from_org_id": "CB", "from_user_id": "retirer_user_cb", "holding_id": "ohold~cbdc~USD~eaf6", "holding_status": "REJECT_BURN", "last_updated_time": "2024-11-26T21:43:22.000Z", "notary_account_id": null, "notary_org_id": null, "notary_user_id": null, "operation_id": null, "quantity": 3, "timetoexpiration": null, "to_account_id": "", "to_org_id": null, "to_user_id": null, "token_id": "USD", "token_name": null }, { "from_account_id": "oaccount~0d7b3f73aea28065017ce8b79c0bb19256dc0cb475a0b2a85192bd110f69535c", "from_org_id": "CB", "from_user_id": "retirer_user_cb", "holding_id": "ohold~cbdc~USD~0031", "holding_status": "REJECT_BURN", "last_updated_time": "2024-11-26T21:43:15.000Z", "notary_account_id": null, "notary_org_id": null, "notary_user_id": null, "operation_id": null, "quantity": 2, "timetoexpiration": null, "to_account_id": "", "to_org_id": null, "to_user_id": null, "token_id": "USD", "token_name": null } ], "encode": "JSON" } }
-
getPendingIssuance
- 此方法检索调用方被指定为审批人的所有待处理签发(转移)事务处理,包括组织的详细信息以及涉及的帐户(发送人、接收人和公证人)的用户 ID。此方法只能由链代码的
Token Admin
或Token Auditor
、指定组织的Org Admin
或Org Auditor
或Notary
调用。 public async getPendingIssuance(token_id: string)
- 参数:
token_id: string
- 令牌的 ID。
- 返回值示例:
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "asset_type": "ONHOLD", "category": "category value", "from_account_id": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0", "from_org_id": "CB", "from_user_id": "creator_user_cb", "holding_id": "ohold~cbdc~USD~8e314", "notary_account_id": "oaccount~2eb5f8a9bc561f8f41a4ea3be9511958cc6684ef14f2337ca396efc301b627d8", "notary_org_id": "CB", "notary_user_id": "manager_user_cb", "operation_id": "8e314", "quantity": 10, "timetoexpiration": "0", "to_account_id": "oaccount~44b844deccc6c314e14b8b9b95b51db5c8de499dbdbd3def2a44ba54c899c142", "to_org_id": "FI1", "to_user_id": "officer_user1_fi1", "token_id": "USD", "token_name": "cbdc" }, { "asset_type": "ONHOLD", "category": "category value", "from_account_id": "oaccount~51e676d7182a02ea7418ef58a6d54ecfe3858ef40b4ffb3d859b320da3921594", "from_org_id": "CB", "from_user_id": "issuer_user_cb", "holding_id": "ohold~cbdc~USD~8e315", "notary_account_id": "oaccount~2eb5f8a9bc561f8f41a4ea3be9511958cc6684ef14f2337ca396efc301b627d8", "notary_org_id": "CB", "notary_user_id": "manager_user_cb", "operation_id": "8e315", "quantity": 10, "timetoexpiration": "0", "to_account_id": "oaccount~44b844deccc6c314e14b8b9b95b51db5c8de499dbdbd3def2a44ba54c899c142", "to_org_id": "FI1", "to_user_id": "officer_user1_fi1", "token_id": "USD", "token_name": "cbdc" } ], "encode": "JSON" } }
-
getPendingRequest
- 此方法检索指定类型的所有待处理请求,其中调用者被指定为审批者。此方法只能由链代码的
Token Admin
或Token Auditor
、指定组织的Org Admin
或Org Auditor
或Notary
调用。 public async getPendingRequest(token_id: string, request_type: string)
- 参数:
token_id: string
- 令牌的 ID。request_type: string
–事务类型。例如,mint
或burn
。
- 返回值示例:
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "valueJson": { "assetType": "ohold", "holding_id": "ohold~cbdc~USD~op123", "operation_id": "op123", "token_id": "USD", "token_name": "cbdc", "operation_type": "mint", "status": "pending", "from_account_id": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0", "to_account_id": "", "notary_account_id": "oaccount~2eb5f8a9bc561f8f41a4ea3be9511958cc6684ef14f2337ca396efc301b627d8", "quantity": 10, "time_to_expiration": "0", "category": "category value", "description": "description value" } } ], "encode": "JSON" } }
-
getTotalBalanceByCallerOrgId
- 此方法检索调用方组织的总余额。可以由
Token Admin
、Token Auditor
、Org Admin
、Org Auditor
或任何账户所有者调用。 public async getTotalBalanceByCallerOrgId()
- 参数:
token_id: string
- 令牌的 ID。
- 返回值示例:
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "totalBalance": 704 } ], "encode": "JSON" } }
-
getTransactionWithBlockNumber
- 此方法返回指定事务处理 ID 的事务处理详细信息。
public async getTransactionWithBlockNumber(token_id: string, transaction_id: string)
- 参数:
token_id: string
- 令牌的 ID。transaction_id: string
—事务处理的 ID。
- 返回值示例:
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "blockNo": 82, "key": "otransaction~24f391919a8837d654beaa7346148ea8b2b9704624aef482ce68078c485f5b1b", "metadata": null, "txnNo": 0, "value": null, "valueJson": { "assetType": "otransaction", "transaction_id": "otransaction~24f391919a8837d654beaa7346148ea8b2b9704624aef482ce68078c485f5b1b", "token_id": "USD", "from_account_id": "", "from_account_balance": 0, "from_account_onhold_balance": 0, "to_account_id": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0", "to_account_balance": 100, "to_account_onhold_balance": 0, "transaction_type": "REQUEST_MINT", "amount": 200, "timestamp": "2024-11-20T06:48:42.000Z", "number_of_sub_transactions": 0, "holding_id": "", "sub_transaction": "false", "description": "" } } ], "encode": "JSON" } }
已修改批发 CBDC 模型的以下 API。
-
createAccount
- 此方法为指定的用户和令牌创建帐户。必须为在任何时候都具有令牌的任何用户创建账户。账户跟踪余额、暂挂余额和事务处理历史记录。通过连接资产类型和令牌 ID,然后通过连接组织 ID 和用户 ID 创建 SHA-256 散列来形成帐户 ID。此方法只能由链代码的
Token Admin
调用。 public async createAccount(org_id: string, user_id: string, token_type: string, application_groups: string[], daily_limits?: DailyLimits)
- 参数:
orgId
—要为其创建账户的用户的成员服务提供商 (MSP) ID。ID 必须以字母数字字符开头,并且可以包含字母、数字和特殊字符,例如下划线 (_)、句点 (.)、符号 (@) 和连字符 (-)。userId
—用户的用户名或电子邮件 ID。ID 必须以字母数字字符开头,并且可以包含字母、数字和特殊字符,例如下划线 (_)、句点 (.)、符号 (@) 和连字符 (-)。tokenType: TokenType
- 令牌的类型,必须为fungible
。application_groups: string[]
—用户 ID 所属的应用程序组列表,用于定义用户在 CBDC 应用程序中的关联。daily_limits: DailyLimits
—以下类型的 JSON 对象。
在示例中,{ "max_daily_amount": 100000 "max_daily_transactions": 10000 }
max_daily_amount
值是每天可以处理的最大令牌数,max_daily_transactions
值是每天可以完成的最大事务处理数。endorsers: string[]
—必须为事务处理背书的对等方数组(例如peer1
、peer2
)。
- 返回值示例:
{ "returnCode": "Success", "error": "", "result": { "txid": "453821c7ffd477987ef8ccbd836b893969531ab768098cd4a99e3b89cd38a391", "payload": { "bapAccountVersion": 0, "assetType": "oaccount", "account_id": "oaccount~28ac774001f374064029d51af4fb67e26ea1ea9ef62828b7a72dbf3beb8efd8d", "user_id": "admin_user_cb", "org_id": "CB", "token_type": "fungible", "token_id": "", "token_name": "", "balance": 0, "onhold_balance": 0, "onhold_burn_balance": 0, "application_groups": [ "System_Admins" ], "max_daily_amount": 10000, "daily_amount": 0, "max_daily_transactions": 100, "daily_transactions": 0, "current_date": "2024-12-09T00:00:00.000Z" }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 188 } }
转到批发 CBDC 的方法
批发 CBDC 链代码包括通用标记分类框架 NFT 链代码中可用的所有方法。提供了以下特定于批发 CBDC 方案的其他方法。-
SetApplicationGroups
- 此方法在 API 中指定应用程序组的帐户详细信息中设置
application_groups
参数。此方法只能由指定组织的Token Admin
或Org Admin
调用。 func (t *Controller) SetApplicationGroups(token_id string, org_id string, user_id string, application_groups []string) (interface{}, error)
- 参数:
org_id: string
—当前组织中用户的成员服务提供商 (MSP) ID。user_id: string
- 用户的用户名或电子邮件 ID。token_id: string
- 令牌的 ID。application_groups: string[]
- 用户 ID 所属的应用程序组列表,用于定义用户在 CBDC 应用程序中的关联。
- 返回值示例:
{ "returnCode": "Success", "error": "", "result": { "txid": "261c3da4bb6f1724bc8f674c7b001a9b986bc9900d0508363039424926b143ed", "payload": { "AssetType": "oaccount", "AccountId": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe", "UserId": "admin_user_cb", "OrgId": "CB", "TokenType": "fungible", "TokenId": "", "TokenName": "", "Balance": 0, "BalanceOnHold": 0, "OnHoldBurnBalance": 0, "BapAccountVersion": 0, "ApplicationGroups": [ "System_Admins" ], "MaxDailyAmount": 10000, "DailyAmount": 0, "MaxDailyTransactions": 100, "DailyTransactions": 0, "CurrentDate": "2024-12-09" }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 246 } }
-
GetAllActiveAccounts
- 此方法返回与指定令牌 ID 关联的所有活动帐户。任何用户都可以调用此方法。
func (t *Controller) GetAllActiveAccounts(token_id string) (interface{}, error)
- 参数:
token_id: string
- 令牌的 ID。
- 返回:
- 成功时,包含用户详细信息的消息。输出因用户的角色而异,如以下示例中所示。
- 返回值示例(令牌管理员、令牌审计员):
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "NonAccountRoleName": "[\"token_admin\"]", "RoleName": null, "key": "oaccount~8db15b42910eeec401e1bf22c69dfdd11c820ecc26539ea03a3426fa25cb8c28", "valueJson": { "AccountId": "oaccount~8db15b42910eeec401e1bf22c69dfdd11c820ecc26539ea03a3426fa25cb8c28", "ApplicationGroups": [ "System_Issuers" ], "AssetType": "oaccount", "Balance": 0, "BalanceOnHold": 0, "OnHoldBurnBalance": 0, "BapAccountVersion": 0, "CurrentDate": "2024-11-21", "DailyAmount": 0, "DailyTransactions": 0, "MaxDailyAmount": 10000, "MaxDailyTransactions": 100, "OrgId": "CB", "TokenId": "USD", "TokenName": "cbdc", "TokenType": "fungible", "UserId": "admin_user_cb" } } ], "encode": "JSON" } }
- 返回值示例(组织管理员、组织审核员):
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "NonAccountRoleName": "[\"token_auditor\"]", "RoleName": null, "key": "oaccount~bd6262ffdf582675dd9b2506c1d5488864feef0b9e297a9a3322b7c683ad6214", "valueJson": { "AccountId": "oaccount~bd6262ffdf582675dd9b2506c1d5488864feef0b9e297a9a3322b7c683ad6214", "OrgId": "CB", "TokenId": "USD", "UserId": "auditor_user_cb", "MaxDailyAmount": 10000, "MaxDailyTransactions": 100, } } ], "encode": "JSON" } }
- 返回值示例(所有其他用户):
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "NonAccountRoleName": "[\"token_admin\"]", "RoleName": null, "key": "oaccount~8db15b42910eeec401e1bf22c69dfdd11c820ecc26539ea03a3426fa25cb8c28", "valueJson": { "AccountId": "oaccount~8db15b42910eeec401e1bf22c69dfdd11c820ecc26539ea03a3426fa25cb8c28", "OrgId": "CB", "TokenId": "USD", "UserId": "admin_user_cb" } } ], "encode": "JSON" } }
-
GetAllSuspendedAccounts
- 此方法返回与指定令牌 ID 关联的所有已挂起帐户。任何用户都可以调用此方法。
public async getAllSuspendedAccounts(token_id: string)
- 参数:
token_id: string
- 令牌的 ID。
- 返回:
- 成功时,包含用户详细信息的消息。输出因用户的角色而异,如以下示例中所示。
- 返回值示例(令牌管理员、令牌审计员):
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "NonAccountRoleName": null, "RoleName": "minter", "key": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0", "valueJson": { "AccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0", "ApplicationGroups": [ "System_Admins" ], "AssetType": "oaccount", "Balance": 140, "BalanceOnHold": 0, "OnHoldBurnBalance": 0, "BapAccountVersion": 8, "CurrentDate": "2024-11-21", "DailyAmount": 70, "DailyTransactions": 3, "MaxDailyAmount": 10000, "MaxDailyTransactions": 100, "OrgId": "CB", "TokenId": "USD", "TokenName": "cbdc", "TokenType": "fungible", "UserId": "creator_user_cb" } } ], "encode": "JSON" } }
- 返回值示例(组织管理员、组织审核员):
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "NonAccountRoleName": null, "RoleName": "minter", "key": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0", "valueJson": { "AccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0", "OrgId": "CB", "TokenId": "USD", "UserId": "creator_user_cb", "MaxDailyAmount": 10000, "MaxDailyTransactions": 100, } } ], "encode": "JSON" } }
- 返回值示例(所有其他用户):
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "NonAccountRoleName": null, "RoleName": "minter", "key": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0", "valueJson": { "AccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0", "OrgId": "CB", "TokenId": "USD", "UserId": "creator_user_cb" } } ], "encode": "JSON" } }
-
GetBurnQuantity
- 此方法返回指定组织的已刻录标记的总数量。此方法只能由具有刻录器角色的
Token Admin
、Token Auditor
或用户调用。 func (t *Controller) GetBurnQuantity(token_id string) (interface{}, error)
- 参数:
token_id: string
- 令牌的 ID。
- 返回值示例:
{ "returnCode": "Success", "error": "", "result": { "payload": { "BurnQuantity": 10 }, "encode": "JSON" } }
-
GetActionHistory
- 此方法检索调用方对薄荷、刻录和传输(发行)操作进行的审批或拒绝的历史记录,包括组织的详细信息以及相关帐户(发件人、收件人和公证人)的用户 ID。
func (t *Controller) GetActionHistory(token_id string) (interface{}, error)
- 参数:
token_id: string
- 令牌的 ID。
- 返回值示例:
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "FromAccountId": "oaccount~0d7b3f73aea28065017ce8b79c0bb19256dc0cb475a0b2a85192bd110f69535c", "FromOrgId": "CB", "FromUserId": "retirer_user_cb", "HoldingId": "ohold~cbdc~USD~6e1223", "HoldingStatus": "REJECT_BURN", "LastUpdatedTime": "2024-11-21T22:08:26Z", "NotaryAccountId": null, "NotaryOrgId": null, "NotaryUserId": null, "OperationId": null, "Quantity": 5, "TimeToExpiration": null, "ToAccountId": "", "ToOrgId": null, "ToUserId": null, "TokenId": "USD", "TokenName": null }, { "FromAccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0", "FromOrgId": "CB", "FromUserId": "creator_user_cb", "HoldingId": "ohold~cbdc~USD~hold2", "HoldingStatus": "RELEASEHOLD", "LastUpdatedTime": "2024-11-21T21:54:33Z", "NotaryAccountId": null, "NotaryOrgId": null, "NotaryUserId": null, "OperationId": null, "Quantity": 10, "TimeToExpiration": null, "ToAccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0", "ToOrgId": "CB", "ToUserId": "creator_user_cb", "TokenId": "USD", "TokenName": null } ], "encode": "JSON" } }
-
GetPendingIssuance
- 此方法检索调用方被指定为审批人的所有待处理签发(转移)事务处理,包括组织的详细信息以及涉及的帐户(发送人、接收人和公证人)的用户 ID。此方法只能由链代码的
Token Admin
或Token Auditor
、指定组织的Org Admin
或Org Auditor
或Notary
调用。 func (t *Controller) GetPendingIssuance(token_id string) (interface{}, error)
- 参数:
token_id: string
- 令牌的 ID。
- 返回值示例:
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "AssetType": "ONHOLD", "FromAccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0", "FromOrgId": "CB", "FromUserId": "creator_user_cb", "HoldingId": "ohold~cbdc~USD~h123", "NotaryAccountId": "oaccount~2eb5f8a9bc561f8f41a4ea3be9511958cc6684ef14f2337ca396efc301b627d8", "NotaryOrgId": "CB", "NotaryUserId": "manager_user_cb", "OperationId": "h123", "Quantity": 10, "TimeToExpiration": "0", "ToAccountId": "oaccount~51e676d7182a02ea7418ef58a6d54ecfe3858ef40b4ffb3d859b320da3921594", "ToOrgId": "CB", "ToUserId": "issuer_user_cb", "TokenId": "USD", "TokenName": "cbdc" } ], "encode": "JSON" } }
-
GetPendingRequest
- 此方法检索指定类型的所有待处理请求,其中调用者被指定为审批者。此方法只能由链代码的
Token Admin
或Token Auditor
、指定组织的Org Admin
或Org Auditor
或Notary
调用。 func (t *Controller) GetPendingRequest(token_id string, request_type string) (interface{}, error)
- 参数:
token_id: string
- 令牌的 ID。request_type: string
–事务类型。例如,mint
或burn
。
- 返回值示例:
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "valueJson": { "AssetType": "ohold", "Category": "Category value", "Description": "Description value", "FromAccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0", "HoldingId": "ohold~cbdc~USD~8e1232", "NotaryAccountId": "oaccount~2eb5f8a9bc561f8f41a4ea3be9511958cc6684ef14f2337ca396efc301b627d8", "OperationId": "8e1232", "OperationType": "mint", "Quantity": 100, "Status": "pending", "TimeToExpiration": "0", "ToAccountId": "", "TokenId": "USD", "TokenName": "cbdc" } } ], "encode": "JSON" } }
-
GetTotalBalanceByCallerOrgId
- 此方法检索调用方组织的总余额。可以由
Token Admin
、Token Auditor
、Org Admin
、Org Auditor
或任何账户所有者调用。 func (t *Controller) GetTotalBalanceByCallerOrgId() (interface{}, error)
- 参数:
token_id: string
- 令牌的 ID。
- 返回值示例:
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "TotalBalance": 180 } ], "encode": "JSON" } }
-
GetTransactionWithBlockNumber
- 此方法返回指定事务处理 ID 的事务处理详细信息。
func (t *Controller) GetTransactionWithBlockNumber(token_id string, transaction_id string)
- 参数:
token_id: string
- 令牌的 ID。transaction_id: string
—事务处理的 ID。
- 返回值示例:
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "blockNo": 152, "key": "otransaction~eee2de20b4b042884da83e3b7b85d8532ad56f26a546ee25d227acce33375c1c", "metadata": null, "txnNo": 0, "value": null, "valueJson": { "Amount": 10, "AssetType": "otransaction", "Category": "Category value", "Description": "", "FromAccountBalance": 130, "FromAccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0", "FromAccountOnHoldBalance": 10, "HoldingId": "ohold~cbdc~USD~hold1", "NumberOfSubTransactions": 0, "SubTransaction": "false", "SubTransactionType": "", "Timestamp": "2024-11-21T20:43:59Z", "ToAccountBalance": 10, "ToAccountId": "oaccount~51e676d7182a02ea7418ef58a6d54ecfe3858ef40b4ffb3d859b320da3921594", "ToAccountOnHoldBalance": 0, "TokenId": "USD", "TransactionId": "otransaction~eee2de20b4b042884da83e3b7b85d8532ad56f26a546ee25d227acce33375c1c", "TransactionType": "EXECUTEHOLD" } } ], "encode": "JSON" } }
已修改批发 CBDC 模型的以下 API。
-
CreateAccount
- 此方法为指定的用户和令牌创建帐户。必须为在任何时候都具有令牌的任何用户创建账户。账户跟踪余额、暂挂余额和事务处理历史记录。通过连接资产类型和令牌 ID,然后通过连接组织 ID 和用户 ID 创建 SHA-256 散列来形成帐户 ID。此方法只能由链代码的
Token Admin
调用。 func (t *Controller) CreateAccount(org_id string, user_id string, token_type string, application_groups []string, daily_limits ...account.AccountDailyLimits) (interface{}, error)
- 参数:
orgId
—要为其创建账户的用户的成员服务提供商 (MSP) ID。ID 必须以字母数字字符开头,并且可以包含字母、数字和特殊字符,例如下划线 (_)、句点 (.)、符号 (@) 和连字符 (-)。userId
—用户的用户名或电子邮件 ID。ID 必须以字母数字字符开头,并且可以包含字母、数字和特殊字符,例如下划线 (_)、句点 (.)、符号 (@) 和连字符 (-)。tokenType: TokenType
- 令牌的类型,必须为fungible
。application_groups: string[]
—用户 ID 所属的应用程序组列表,用于定义用户在 CBDC 应用程序中的关联。daily_limits: DailyLimits
—以下类型的 JSON 对象。
在示例中,{ "max_daily_amount": 100000 "max_daily_transactions": 10000 }
max_daily_amount
值是每天可以处理的最大令牌数,max_daily_transactions
值是每天可以完成的最大事务处理数。endorsers: string[]
—必须为事务处理背书的对等方数组(例如peer1
、peer2
)。
- 返回值示例:
{ "returnCode": "Success", "error": "", "result": { "txid": "261c3da4bb6f1724bc8f674c7b001a9b986bc9900d0508363039424926b143ed", "payload": { "AssetType": "oaccount", "AccountId": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe", "UserId": "admin_user_cb", "OrgId": "CB", "TokenType": "fungible", "TokenId": "", "TokenName": "", "Balance": 0, "BalanceOnHold": 0, "OnHoldBurnBalance": 0, "BapAccountVersion": 0, "ApplicationGroups": [ "System_Admins" ], "MaxDailyAmount": 10000, "DailyAmount": 0, "MaxDailyTransactions": 100, "DailyTransactions": 0, "CurrentDate": "2024-12-09" }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 246 } }
TypeScript 用于批发 CBDC 的 SDK 方法
-
setApplicationGroups
- 此方法在 API 中指定应用程序组的帐户详细信息中设置
application_groups
参数。 this.Ctx.Account.setApplicationGroups (account_id, application_groups)
- 参数:
account_id: string
—帐户的 ID。application_groups: string[]
- 用户 ID 所属的应用程序组列表,用于定义用户在 CBDC 应用程序中的关联。
- 返回值示例:
{ "returnCode": "Success", "error": "", "result": { "txid": "453821c7ffd477987ef8ccbd836b893969531ab768098cd4a99e3b89cd38a391", "payload": { "bapAccountVersion": 0, "assetType": "oaccount", "account_id": "oaccount~28ac774001f374064029d51af4fb67e26ea1ea9ef62828b7a72dbf3beb8efd8d", "user_id": "admin_user_cb", "org_id": "CB", "token_type": "fungible", "token_id": "", "token_name": "", "balance": 0, "onhold_balance": 0, "onhold_burn_balance": 0, "application_groups": [ "System_Admins" ], "max_daily_amount": 10000, "daily_amount": 0, "max_daily_transactions": 100, "daily_transactions": 0, "current_date": "2024-12-09T00:00:00.000Z" }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 188 } }
-
getAllActiveAccounts
- 此方法返回与指定令牌 ID 关联的所有活动帐户。
this.Ctx.CBDCToken.getAllActiveAccounts(token_id)
- 参数:
token_id: string
- 令牌的 ID。
- 返回:
- 成功时,包含用户详细信息的消息。输出因用户的角色而异,如以下示例中所示。
- 返回值示例(令牌管理员、令牌审计员):
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "key": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe", "non_account_role_name": [ "token_admin" ], "role_name": null, "valueJson": { "bapAccountVersion": 0, "assetType": "oaccount", "account_id": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe", "user_id": "admin_user_cb", "org_id": "CB", "token_type": "fungible", "token_id": "USD", "token_name": "cbdc", "balance": 0, "onhold_balance": 0, "onhold_burn_balance": 0, "application_groups": [ "System_Admins" ], "max_daily_amount": 10000, "daily_amount": 0, "max_daily_transactions": 1000, "daily_transactions": 0, "current_date": "2024-11-20T00:00:00.000Z" } } ], "encode": "JSON" } }
- 返回值示例(组织管理员、组织审核员):
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "key": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe", "non_account_role_name": [ "token_admin" ], "role_name": null, "valueJson": { "account_id": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe", "org_id": "CB", "user_id": "admin_user_cb", "token_id": "USD", "max_daily_amount": 10000, "max_daily_transactions": 1000 } } ], "encode": "JSON" } }
- 返回值示例(所有其他用户):
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "key": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe", "non_account_role_name": [ "token_admin" ], "role_name": null, "valueJson": { "account_id": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe", "org_id": "CB", "user_id": "admin_user_cb", "token_id": "USD", "max_daily_amount": 10000, "max_daily_transactions": 1000 } } ], "encode": "JSON" } }
-
getAllSuspendedAccounts
- 此方法返回与指定令牌 ID 关联的所有已挂起帐户。
this.Ctx.CBDCToken.getAllSuspendedAccounts(token_id)
- 参数:
token_id: string
- 令牌的 ID。
- 返回:
- 成功时,包含用户详细信息的消息。输出因用户的角色而异,如以下示例中所示。
- 返回值示例(令牌管理员、令牌审计员):
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "key": "oaccount~802bf8da5579c6103b2dddaa6c4385df8e722d639a18029e0e93d7a5d6f826d6", "non_account_role_name": null, "role_name": null, "valueJson": { "assetType": "oaccount", "bapAccountVersion": 1, "account_id": "oaccount~802bf8da5579c6103b2dddaa6c4385df8e722d639a18029e0e93d7a5d6f826d6", "user_id": "user1_fi1", "org_id": "FI1", "token_type": "fungible", "token_id": "USD", "token_name": "cbdc", "balance": 5, "onhold_balance": 0, "onhold_burn_balance": 0, "application_groups": [ "Org_Users" ], "max_daily_amount": 10000, "daily_amount": 0, "max_daily_transactions": 1000, "daily_transactions": 0, "current_date": "2024-11-20T00:00:00.000Z" } } ], "encode": "JSON" } }
- 返回值示例(组织管理员、组织审核员):
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "key": "oaccount~802bf8da5579c6103b2dddaa6c4385df8e722d639a18029e0e93d7a5d6f826d6", "non_account_role_name": null, "role_name": null, "valueJson": { "account_id": "oaccount~802bf8da5579c6103b2dddaa6c4385df8e722d639a18029e0e93d7a5d6f826d6", "org_id": "FI1", "user_id": "user1_fi1", "token_id": "USD", "max_daily_amount": 10000, "max_daily_transactions": 1000 } } ], "encode": "JSON" } }
- 返回值示例(所有其他用户):
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "key": "oaccount~802bf8da5579c6103b2dddaa6c4385df8e722d639a18029e0e93d7a5d6f826d6", "non_account_role_name": null, "role_name": null, "valueJson": { "account_id": "oaccount~802bf8da5579c6103b2dddaa6c4385df8e722d639a18029e0e93d7a5d6f826d6", "org_id": "FI1", "user_id": "user1_fi1", "token_id": "USD" } } ], "encode": "JSON" } }
-
getBurnQuantity
- 此方法返回指定组织的已刻录标记的总数量。
this.Ctx.CBDCToken.getBurnQuantity(token_id)
- 参数:
token_id: string
- 令牌的 ID。
- 返回值示例:
{ "returnCode": "Success", "error": "", "result": { "payload": { "burnt_quantity": 31 }, "encode": "JSON" } }
-
getActionHistory
- 此方法检索调用方对薄荷、刻录和传输(发行)操作进行的审批或拒绝的历史记录,包括组织的详细信息以及相关帐户(发件人、收件人和公证人)的用户 ID。
this.Ctx.CBDCToken.getActionHistory(token_id)
- 参数:
token_id: string
- 令牌的 ID。
- 返回值示例:
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "from_account_id": "oaccount~0d7b3f73aea28065017ce8b79c0bb19256dc0cb475a0b2a85192bd110f69535c", "from_org_id": "CB", "from_user_id": "retirer_user_cb", "holding_id": "ohold~cbdc~USD~eaf6", "holding_status": "REJECT_BURN", "last_updated_time": "2024-11-26T21:43:22.000Z", "notary_account_id": null, "notary_org_id": null, "notary_user_id": null, "operation_id": null, "quantity": 3, "timetoexpiration": null, "to_account_id": "", "to_org_id": null, "to_user_id": null, "token_id": "USD", "token_name": null }, { "from_account_id": "oaccount~0d7b3f73aea28065017ce8b79c0bb19256dc0cb475a0b2a85192bd110f69535c", "from_org_id": "CB", "from_user_id": "retirer_user_cb", "holding_id": "ohold~cbdc~USD~0031", "holding_status": "REJECT_BURN", "last_updated_time": "2024-11-26T21:43:15.000Z", "notary_account_id": null, "notary_org_id": null, "notary_user_id": null, "operation_id": null, "quantity": 2, "timetoexpiration": null, "to_account_id": "", "to_org_id": null, "to_user_id": null, "token_id": "USD", "token_name": null } ], "encode": "JSON" } }
-
getPendingIssuance
- 此方法检索调用方被指定为审批人的所有待处理签发(转移)事务处理,包括组织的详细信息以及涉及的帐户(发送人、接收人和公证人)的用户 ID。
this.Ctx.CBDCToken.getPendingIssuance(token_id)
- 参数:
token_id: string
- 令牌的 ID。
- 返回值示例:
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "asset_type": "ONHOLD", "category": "category value", "from_account_id": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0", "from_org_id": "CB", "from_user_id": "creator_user_cb", "holding_id": "ohold~cbdc~USD~8e314", "notary_account_id": "oaccount~2eb5f8a9bc561f8f41a4ea3be9511958cc6684ef14f2337ca396efc301b627d8", "notary_org_id": "CB", "notary_user_id": "manager_user_cb", "operation_id": "8e314", "quantity": 10, "timetoexpiration": "0", "to_account_id": "oaccount~44b844deccc6c314e14b8b9b95b51db5c8de499dbdbd3def2a44ba54c899c142", "to_org_id": "FI1", "to_user_id": "officer_user1_fi1", "token_id": "USD", "token_name": "cbdc" }, { "asset_type": "ONHOLD", "category": "category value", "from_account_id": "oaccount~51e676d7182a02ea7418ef58a6d54ecfe3858ef40b4ffb3d859b320da3921594", "from_org_id": "CB", "from_user_id": "issuer_user_cb", "holding_id": "ohold~cbdc~USD~8e315", "notary_account_id": "oaccount~2eb5f8a9bc561f8f41a4ea3be9511958cc6684ef14f2337ca396efc301b627d8", "notary_org_id": "CB", "notary_user_id": "manager_user_cb", "operation_id": "8e315", "quantity": 10, "timetoexpiration": "0", "to_account_id": "oaccount~44b844deccc6c314e14b8b9b95b51db5c8de499dbdbd3def2a44ba54c899c142", "to_org_id": "FI1", "to_user_id": "officer_user1_fi1", "token_id": "USD", "token_name": "cbdc" } ], "encode": "JSON" } }
-
getPendingRequest
- 此方法检索指定类型的所有待处理请求,其中调用者被指定为审批者。
this.Ctx.CBDCToken.getPendingRequest(token_id, request_type)
- 参数:
token_id: string
- 令牌的 ID。request_type: string
–事务类型。例如,mint
或burn
。
- 返回值示例:
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "valueJson": { "assetType": "ohold", "holding_id": "ohold~cbdc~USD~op123", "operation_id": "op123", "token_id": "USD", "token_name": "cbdc", "operation_type": "mint", "status": "pending", "from_account_id": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0", "to_account_id": "", "notary_account_id": "oaccount~2eb5f8a9bc561f8f41a4ea3be9511958cc6684ef14f2337ca396efc301b627d8", "quantity": 10, "time_to_expiration": "0", "category": "category value", "description": "description value" } } ], "encode": "JSON" } }
-
getTotalBalanceByCallerOrgId
- 此方法检索调用方组织的总余额。
this.Ctx.CBDCToken.getTotalBalanceByCallerOrgId()
- 参数:
token_id: string
- 令牌的 ID。
- 返回值示例:
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "totalBalance": 704 } ], "encode": "JSON" } }
-
getTransactionWithBlockNumber
- 此方法返回指定事务处理 ID 的事务处理详细信息。
this.Ctx.CBDCToken.getTransactionWithBlockNumber(token_id, transaction_id)
- 参数:
token_id: string
- 令牌的 ID。transaction_id: string
—事务处理的 ID。
- 返回值示例:
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "blockNo": 82, "key": "otransaction~24f391919a8837d654beaa7346148ea8b2b9704624aef482ce68078c485f5b1b", "metadata": null, "txnNo": 0, "value": null, "valueJson": { "assetType": "otransaction", "transaction_id": "otransaction~24f391919a8837d654beaa7346148ea8b2b9704624aef482ce68078c485f5b1b", "token_id": "USD", "from_account_id": "", "from_account_balance": 0, "from_account_onhold_balance": 0, "to_account_id": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0", "to_account_balance": 100, "to_account_onhold_balance": 0, "transaction_type": "REQUEST_MINT", "amount": 200, "timestamp": "2024-11-20T06:48:42.000Z", "number_of_sub_transactions": 0, "holding_id": "", "sub_transaction": "false", "description": "" } } ], "encode": "JSON" } }
为批发 CBDC 模型修改了以下 SDK 方法。
-
createAccount
- 此方法为指定的用户和令牌创建帐户。必须为在任何时候都具有令牌的任何用户创建账户。账户跟踪余额、暂挂余额和事务处理历史记录。通过连接资产类型和令牌 ID,然后通过连接组织 ID 和用户 ID 创建 SHA-256 散列来形成帐户 ID。
this.Ctx.Account.createAccount(org_id, user_id, token_type, application_groups, daily_limits)
- 参数:
orgId
—要为其创建账户的用户的成员服务提供商 (MSP) ID。ID 必须以字母数字字符开头,并且可以包含字母、数字和特殊字符,例如下划线 (_)、句点 (.)、符号 (@) 和连字符 (-)。userId
—用户的用户名或电子邮件 ID。ID 必须以字母数字字符开头,并且可以包含字母、数字和特殊字符,例如下划线 (_)、句点 (.)、符号 (@) 和连字符 (-)。tokenType: TokenType
- 令牌的类型,必须为fungible
。application_groups: string[]
—用户 ID 所属的应用程序组列表,用于定义用户在 CBDC 应用程序中的关联。daily_limits: DailyLimits
—以下类型的 JSON 对象。
在示例中,{ "max_daily_amount": 100000 "max_daily_transactions": 10000 }
max_daily_amount
值是每天可以处理的最大令牌数,max_daily_transactions
值是每天可以完成的最大事务处理数。endorsers: string[]
—必须为事务处理背书的对等方数组(例如peer1
、peer2
)。
- 返回值示例:
{ "returnCode": "Success", "error": "", "result": { "txid": "453821c7ffd477987ef8ccbd836b893969531ab768098cd4a99e3b89cd38a391", "payload": { "bapAccountVersion": 0, "assetType": "oaccount", "account_id": "oaccount~28ac774001f374064029d51af4fb67e26ea1ea9ef62828b7a72dbf3beb8efd8d", "user_id": "admin_user_cb", "org_id": "CB", "token_type": "fungible", "token_id": "", "token_name": "", "balance": 0, "onhold_balance": 0, "onhold_burn_balance": 0, "application_groups": [ "System_Admins" ], "max_daily_amount": 10000, "daily_amount": 0, "max_daily_transactions": 100, "daily_transactions": 0, "current_date": "2024-12-09T00:00:00.000Z" }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 188 } }
适用于批发 CBDC 的 SDK 方法
-
SetApplicationGroups
- 此方法在 API 中指定应用程序组的帐户详细信息中设置
application_groups
参数。 t.Ctx.CbdcToken.SetApplicationGroups(account_id, application_groups)
- 参数:
account_id: string
—帐户的 ID。application_groups: string[]
- 用户 ID 所属的应用程序组列表,用于定义用户在 CBDC 应用程序中的关联。
- 返回值示例:
{ "returnCode": "Success", "error": "", "result": { "txid": "261c3da4bb6f1724bc8f674c7b001a9b986bc9900d0508363039424926b143ed", "payload": { "AssetType": "oaccount", "AccountId": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe", "UserId": "admin_user_cb", "OrgId": "CB", "TokenType": "fungible", "TokenId": "", "TokenName": "", "Balance": 0, "BalanceOnHold": 0, "OnHoldBurnBalance": 0, "BapAccountVersion": 0, "ApplicationGroups": [ "System_Admins" ], "MaxDailyAmount": 10000, "DailyAmount": 0, "MaxDailyTransactions": 100, "DailyTransactions": 0, "CurrentDate": "2024-12-09" }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 246 } }
-
GetAllActiveAccounts
- 此方法返回与指定令牌 ID 关联的所有活动帐户。
t.Ctx.CbdcToken.GetAllActiveAccounts(token_id)
- 参数:
token_id: string
- 令牌的 ID。
- 返回:
- 成功时,包含用户详细信息的消息。输出因用户的角色而异,如以下示例中所示。
- 返回值示例(令牌管理员、令牌审计员):
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "NonAccountRoleName": "[\"token_admin\"]", "RoleName": null, "key": "oaccount~8db15b42910eeec401e1bf22c69dfdd11c820ecc26539ea03a3426fa25cb8c28", "valueJson": { "AccountId": "oaccount~8db15b42910eeec401e1bf22c69dfdd11c820ecc26539ea03a3426fa25cb8c28", "ApplicationGroups": [ "System_Issuers" ], "AssetType": "oaccount", "Balance": 0, "BalanceOnHold": 0, "OnHoldBurnBalance": 0, "BapAccountVersion": 0, "CurrentDate": "2024-11-21", "DailyAmount": 0, "DailyTransactions": 0, "MaxDailyAmount": 10000, "MaxDailyTransactions": 100, "OrgId": "CB", "TokenId": "USD", "TokenName": "cbdc", "TokenType": "fungible", "UserId": "admin_user_cb" } } ], "encode": "JSON" } }
- 返回值示例(组织管理员、组织审核员):
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "NonAccountRoleName": "[\"token_auditor\"]", "RoleName": null, "key": "oaccount~bd6262ffdf582675dd9b2506c1d5488864feef0b9e297a9a3322b7c683ad6214", "valueJson": { "AccountId": "oaccount~bd6262ffdf582675dd9b2506c1d5488864feef0b9e297a9a3322b7c683ad6214", "OrgId": "CB", "TokenId": "USD", "UserId": "auditor_user_cb", "MaxDailyAmount": 10000, "MaxDailyTransactions": 100, } } ], "encode": "JSON" } }
- 返回值示例(所有其他用户):
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "NonAccountRoleName": "[\"token_admin\"]", "RoleName": null, "key": "oaccount~8db15b42910eeec401e1bf22c69dfdd11c820ecc26539ea03a3426fa25cb8c28", "valueJson": { "AccountId": "oaccount~8db15b42910eeec401e1bf22c69dfdd11c820ecc26539ea03a3426fa25cb8c28", "OrgId": "CB", "TokenId": "USD", "UserId": "admin_user_cb" } } ], "encode": "JSON" } }
-
GetAllSuspendedAccounts
- 此方法返回与指定令牌 ID 关联的所有已挂起帐户。
t.Ctx.CbdcToken.GetAllSuspendedAccounts(token_id)
- 参数:
token_id: string
- 令牌的 ID。
- 返回:
- 成功时,包含用户详细信息的消息。输出因用户的角色而异,如以下示例中所示。
- 返回值示例(令牌管理员、令牌审计员):
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "NonAccountRoleName": null, "RoleName": "minter", "key": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0", "valueJson": { "AccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0", "ApplicationGroups": [ "System_Admins" ], "AssetType": "oaccount", "Balance": 140, "BalanceOnHold": 0, "OnHoldBurnBalance": 0, "BapAccountVersion": 8, "CurrentDate": "2024-11-21", "DailyAmount": 70, "DailyTransactions": 3, "MaxDailyAmount": 10000, "MaxDailyTransactions": 100, "OrgId": "CB", "TokenId": "USD", "TokenName": "cbdc", "TokenType": "fungible", "UserId": "creator_user_cb" } } ], "encode": "JSON" } }
- 返回值示例(组织管理员、组织审核员):
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "NonAccountRoleName": null, "RoleName": "minter", "key": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0", "valueJson": { "AccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0", "OrgId": "CB", "TokenId": "USD", "UserId": "creator_user_cb", "MaxDailyAmount": 10000, "MaxDailyTransactions": 100, } } ], "encode": "JSON" } }
- 返回值示例(所有其他用户):
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "NonAccountRoleName": null, "RoleName": "minter", "key": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0", "valueJson": { "AccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0", "OrgId": "CB", "TokenId": "USD", "UserId": "creator_user_cb" } } ], "encode": "JSON" } }
-
GetBurnQuantity
- 此方法返回指定组织的已刻录标记的总数量。
t.Ctx.CbdcToken.GetBurnQuantity(token_id)
- 参数:
token_id: string
- 令牌的 ID。
- 返回值示例:
{ "returnCode": "Success", "error": "", "result": { "payload": { "BurnQuantity": 10 }, "encode": "JSON" } }
-
GetActionHistory
- 此方法检索调用方对薄荷、刻录和传输(发行)操作进行的审批或拒绝的历史记录,包括组织的详细信息以及相关帐户(发件人、收件人和公证人)的用户 ID。
t.Ctx.CbdcToken.GetActionHistory(token_id)
- 参数:
token_id: string
- 令牌的 ID。
- 返回值示例:
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "FromAccountId": "oaccount~0d7b3f73aea28065017ce8b79c0bb19256dc0cb475a0b2a85192bd110f69535c", "FromOrgId": "CB", "FromUserId": "retirer_user_cb", "HoldingId": "ohold~cbdc~USD~6e1223", "HoldingStatus": "REJECT_BURN", "LastUpdatedTime": "2024-11-21T22:08:26Z", "NotaryAccountId": null, "NotaryOrgId": null, "NotaryUserId": null, "OperationId": null, "Quantity": 5, "TimeToExpiration": null, "ToAccountId": "", "ToOrgId": null, "ToUserId": null, "TokenId": "USD", "TokenName": null }, { "FromAccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0", "FromOrgId": "CB", "FromUserId": "creator_user_cb", "HoldingId": "ohold~cbdc~USD~hold2", "HoldingStatus": "RELEASEHOLD", "LastUpdatedTime": "2024-11-21T21:54:33Z", "NotaryAccountId": null, "NotaryOrgId": null, "NotaryUserId": null, "OperationId": null, "Quantity": 10, "TimeToExpiration": null, "ToAccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0", "ToOrgId": "CB", "ToUserId": "creator_user_cb", "TokenId": "USD", "TokenName": null } ], "encode": "JSON" } }
-
GetPendingIssuance
- 此方法检索调用方被指定为审批人的所有待处理签发(转移)事务处理,包括组织的详细信息以及涉及的帐户(发送人、接收人和公证人)的用户 ID。
t.Ctx.CbdcToken.GetPendingIssuance(token_id)
- 参数:
token_id: string
- 令牌的 ID。
- 返回值示例:
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "AssetType": "ONHOLD", "FromAccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0", "FromOrgId": "CB", "FromUserId": "creator_user_cb", "HoldingId": "ohold~cbdc~USD~h123", "NotaryAccountId": "oaccount~2eb5f8a9bc561f8f41a4ea3be9511958cc6684ef14f2337ca396efc301b627d8", "NotaryOrgId": "CB", "NotaryUserId": "manager_user_cb", "OperationId": "h123", "Quantity": 10, "TimeToExpiration": "0", "ToAccountId": "oaccount~51e676d7182a02ea7418ef58a6d54ecfe3858ef40b4ffb3d859b320da3921594", "ToOrgId": "CB", "ToUserId": "issuer_user_cb", "TokenId": "USD", "TokenName": "cbdc" } ], "encode": "JSON" } }
-
GetPendingRequest
- 此方法检索指定类型的所有待处理请求,其中调用者被指定为审批者。
t.Ctx.CbdcToken.GetPendingRequest(token_id, request_type)
- 参数:
token_id: string
- 令牌的 ID。request_type: string
–事务类型。例如,mint
或burn
。
- 返回值示例:
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "valueJson": { "AssetType": "ohold", "Category": "Category value", "Description": "Description value", "FromAccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0", "HoldingId": "ohold~cbdc~USD~8e1232", "NotaryAccountId": "oaccount~2eb5f8a9bc561f8f41a4ea3be9511958cc6684ef14f2337ca396efc301b627d8", "OperationId": "8e1232", "OperationType": "mint", "Quantity": 100, "Status": "pending", "TimeToExpiration": "0", "ToAccountId": "", "TokenId": "USD", "TokenName": "cbdc" } } ], "encode": "JSON" } }
-
GetTotalBalanceByCallerOrgId
- 此方法检索调用方组织的总余额。
t.Ctx.CbdcToken.GetTotalBalanceByCallerOrgId()
- 参数:
token_id: string
- 令牌的 ID。
- 返回值示例:
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "TotalBalance": 180 } ], "encode": "JSON" } }
-
GetTransactionWithBlockNumber
- 此方法返回指定事务处理 ID 的事务处理详细信息。
t.Ctx.CbdcToken.GetTransactionWithBlockNumber(token_id, transaction_id)
- 参数:
token_id: string
- 令牌的 ID。transaction_id: string
—事务处理的 ID。
- 返回值示例:
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "blockNo": 152, "key": "otransaction~eee2de20b4b042884da83e3b7b85d8532ad56f26a546ee25d227acce33375c1c", "metadata": null, "txnNo": 0, "value": null, "valueJson": { "Amount": 10, "AssetType": "otransaction", "Category": "Category value", "Description": "", "FromAccountBalance": 130, "FromAccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0", "FromAccountOnHoldBalance": 10, "HoldingId": "ohold~cbdc~USD~hold1", "NumberOfSubTransactions": 0, "SubTransaction": "false", "SubTransactionType": "", "Timestamp": "2024-11-21T20:43:59Z", "ToAccountBalance": 10, "ToAccountId": "oaccount~51e676d7182a02ea7418ef58a6d54ecfe3858ef40b4ffb3d859b320da3921594", "ToAccountOnHoldBalance": 0, "TokenId": "USD", "TransactionId": "otransaction~eee2de20b4b042884da83e3b7b85d8532ad56f26a546ee25d227acce33375c1c", "TransactionType": "EXECUTEHOLD" } } ], "encode": "JSON" } }
为批发 CBDC 模型修改了以下 SDK 方法。
-
CreateAccount
- 此方法为指定的用户和令牌创建帐户。必须为在任何时候都具有令牌的任何用户创建账户。账户跟踪余额、暂挂余额和事务处理历史记录。通过连接资产类型和令牌 ID,然后通过连接组织 ID 和用户 ID 创建 SHA-256 散列来形成帐户 ID。
t.Ctx.Account.CreateAccount(org_id, user_id, token_type, application_groups, daily_limits...)
- 参数:
orgId
—要为其创建账户的用户的成员服务提供商 (MSP) ID。ID 必须以字母数字字符开头,并且可以包含字母、数字和特殊字符,例如下划线 (_)、句点 (.)、符号 (@) 和连字符 (-)。userId
—用户的用户名或电子邮件 ID。ID 必须以字母数字字符开头,并且可以包含字母、数字和特殊字符,例如下划线 (_)、句点 (.)、符号 (@) 和连字符 (-)。tokenType: TokenType
- 令牌的类型,必须为fungible
。application_groups: string[]
—用户 ID 所属的应用程序组列表,用于定义用户在 CBDC 应用程序中的关联。daily_limits: DailyLimits
—以下类型的 JSON 对象。
在示例中,{ "max_daily_amount": 100000 "max_daily_transactions": 10000 }
max_daily_amount
值是每天可以处理的最大令牌数,max_daily_transactions
值是每天可以完成的最大事务处理数。endorsers: string[]
—必须为事务处理背书的对等方数组(例如peer1
、peer2
)。
- 返回值示例:
{ "returnCode": "Success", "error": "", "result": { "txid": "261c3da4bb6f1724bc8f674c7b001a9b986bc9900d0508363039424926b143ed", "payload": { "AssetType": "oaccount", "AccountId": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe", "UserId": "admin_user_cb", "OrgId": "CB", "TokenType": "fungible", "TokenId": "", "TokenName": "", "Balance": 0, "BalanceOnHold": 0, "OnHoldBurnBalance": 0, "BapAccountVersion": 0, "ApplicationGroups": [ "System_Admins" ], "MaxDailyAmount": 10000, "DailyAmount": 0, "MaxDailyTransactions": 100, "DailyTransactions": 0, "CurrentDate": "2024-12-09" }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 246 } }