有趣的權杖架構包裝程式 API 套件
Oracle Blockchain Platform Digital Assets Edition 包含一個包裝函式 API 套件,可擴充 REST API 以支援存款權杖案例特定的作業。
包裝程式 API 套件使用 API 閘道服務和 OCI 函數來部署專為存款權杖應用程式設計的 API 路由。您可以從 Oracle Blockchain Platform 主控台下載有趣的權杖架構包裝函式 API 套件,並包含下列元件。
DepositTokenWrapperAPI.zip,包含包裝函式 API 套件的封存檔案,包含部署所需的 Terraform 指令碼。您可以將此檔案部署到 Oracle Cloud Infrastructure (OCI) 上的資源管理程式堆疊,以為包裝函式 API 建立必要的 Oracle 資源。DepositToken_WrapperAPI.postman_collection.json-- Postman 集合,可讓您測試建置的包裝函式 API。此集合包括端點和有效負載 (與包裝程式 API 套裝程式中定義的 API 對應) 的預先設定要求。
包裝函式 API
-
activateAccount - 原始方法名稱:
activateAccount - 此 POST 方法會啟用權杖帳戶。此方法只能由指定組織的
Token Admin或Org Admin呼叫。對於在帳戶狀態功能之前建立的任何帳戶,您必須呼叫此方法,才能查看帳戶狀態為有效。 - 有效負載:
{ "tokenId": "{{bc-token-id}}", "orgId": "{{bc-org-id}}", "userId": "{{bc-user-id}}", "endorsers": {{endorsers}} } - 參數:
tokenId: string– 記號的 ID。orgId: string– 目前組織中使用者的成員身分服務提供者 (MSP) ID。userId: string– 使用者的使用者名稱或電子郵件 ID。endorsers: string[]– 必須為交易背書的對等陣列 (例如peer1、peer2)。
- 傳回值:
- 成功時,指定記號帳戶之帳戶狀態物件的 JSON 表示法。
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "txid": "db0738d4a44f6d9c80b24fce7c518c07023f7be19edaa69b272eaf7886b4b925", "payload": { "assetType": "oaccountStatus", "status_id": "oaccountStatus~d5814d96d8517ac31727d60aace0519c58a425892ab0d378fcfb0a35771f65ae", "account_id": "oaccount~802bf8da5579c6103b2dddaa6c4385df8e722d639a18029e0e93d7a5d6f826d6", "status": "active" }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 194 } } -
addTokenAdmin - 原始方法名稱:
addTokenAdmin - 此 POST 方法會將使用者新增為鏈碼的
Token Admin。此方法只能由鏈碼的Token Admin呼叫。 - 有效負載:
{ "orgId": "{{bc-org-id}}", "userId": "{{bc-user-id}}", "sameOrgEndorser": true } - 參數:
orgId: string– 目前組織中使用者的成員身分服務提供者 (MSP) ID。userId: string– 使用者的使用者名稱或電子郵件 ID。sameOrgEndorser: boolean– 布林值,指出交易背書是否必須來自與要求者相同的組織。
- 傳回值:
- 成功時,包含以鏈碼
Token Admin新增之使用者明細的訊息。
- 成功時,包含以鏈碼
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "txid": "bd7416689b1acdace3c557faebbc0ad9a51671c10278ba6909350a6fe4b08eed", "payload": { "msg": "User (Org_Id: CB, User_Id: cb) is already Token Admin." }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 193 } } -
addTokenAuditor - 此 POST 方法會將使用者新增為鏈碼的
Token Auditor。此方法只能由鏈碼的Token Admin呼叫。 - 有效負載:
{ "orgId": "{{bc-org-id}}", "userId": "{{bc-user-id}}", "sameOrgEndorser": true } - 參數:
orgId: string– 目前組織中使用者的成員身分服務提供者 (MSP) ID。userId: string– 使用者的使用者名稱或電子郵件 ID。sameOrgEndorser: boolean– 布林值,指出交易背書是否必須來自與要求者相同的組織。
- 傳回值:
- 成功時,包含以鏈碼
Token Auditor新增之使用者明細的訊息。
- 成功時,包含以鏈碼
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "txid": "cd81f6c4c9e7c18ece357dbf5c139ef66ef2d6566be3b14de5f6d0a3fd4bb2f0", "payload": { "msg": "Successfully added Token Auditor (Org_Id: CB, User_Id: cb)" }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 196 } } -
addOrgAdmin - 原始方法名稱:
addOrgAdmin - 此 POST 方法會將使用者新增為鏈碼的
Token Admin。只有鏈碼的Token Admin或指定組織的Org Admin才能呼叫此方法。 - 有效負載:
{ "orgId": "{{bc-org-id}}", "userId": "{{bc-user-id}}", "sameOrgEndorser": true } - 參數:
orgId: string– 目前組織中使用者的成員身分服務提供者 (MSP) ID。userId: string– 使用者的使用者名稱或電子郵件 ID。sameOrgEndorser: boolean– 布林值,指出交易背書是否必須來自與要求者相同的組織。
- 傳回值:
- 成功時,包含以鏈碼
Org Admin新增之使用者明細的訊息。
- 成功時,包含以鏈碼
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "txid": "96a84dffcb9156f7271dfb414e8c43b540595044cf9145f5fd56e9873797fc4a", "payload": { "msg": "Successfully added Org Admin (Org_Id: CB, User_Id: cb)" }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 197 } } -
addOrgAuditor - 此 POST 方法會將使用者新增為鏈碼的
Org Auditor。只有鏈碼的Token Admin或指定組織的Org Admin才能呼叫此方法。 - 有效負載:
{ "orgId": "{{bc-org-id}}", "userId": "{{bc-user-id}}", "sameOrgEndorser": true } - 參數:
orgId: string– 目前組織中使用者的成員身分服務提供者 (MSP) ID。userId: string– 使用者的使用者名稱或電子郵件 ID。sameOrgEndorser: boolean– 布林值,指出交易背書是否必須來自與要求者相同的組織。
- 傳回值:
- 成功時,包含以鏈碼
Org Auditor新增之使用者明細的訊息。
- 成功時,包含以鏈碼
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "txid": "44bbad35a1478cb714e32f7cfd551897868a203520aab9cea5771d3aadc1cf03", "payload": { "msg": "Successfully added Org Auditor (Org_Id: CB, User_Id: cb)" }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 198 } } -
addRole - 原始方法名稱:
addRole - 這個方法會將角色新增至指定的使用者和記號。
- 有效負載:
{ "tokenId": "{{bc-token-id}}", "role": "role value (for example minter / burner / notary)", "orgId": "{{bc-org-id}}", "userId": "{{bc-user-id}}", "endorsers": {{endorsers}} } - 參數:
tokenId: string– 記號的 ID。role: string– 要新增至指定使用者的角色名稱。orgId: string– 目前組織中使用者的成員身分服務提供者 (MSP) ID。userId: string– 使用者的使用者名稱或電子郵件 ID。endorsers: string[]– 必須為交易背書的對等陣列 (例如peer1、peer2)。
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "txid": "29ea766dee8e6d273eba3c40a9fea75a1aa85dc3c280d40695f6224c5c52d93c", "payload": { "msg": "Successfully added role 'notary' to Account Id: oaccount~2eb5f8a9bc561f8f41a4ea3be9511958cc6684ef14f2337ca396efc301b627d8 (Org-Id: CB, User-Id: manager_user_cb)" }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 201 } } -
approveMint - 原始方法名稱:
approveMint - Notaries 可以呼叫此 POST 方法來核准 mint 要求。
- 有效負載:
{ "tokenId": "{{bc-token-id}}", "operationId": "operation_id value", "sameOrgEndorser": true } - 參數:
tokenId: string– 記號的 ID。operationId: string– 要核准之 Mint 要求的唯一作業 ID。sameOrgEndorser: boolean– 布林值,指出交易背書是否必須來自與要求者相同的組織。
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "txid": "a4537ef34a955b023b7c205b9abf06a6c79e4fdd761fb24f41b8eb34126b66c0", "payload": { "msg": "Successfully minted 10 tokens to Account Id: oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0 (Org-Id: CB, User-Id: creator_user_cb)" }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 204 } } -
executeHoldTokens - 原始方法名稱:
executeHoldTokens - Notaries 呼叫此方法來核准對記號的保留。權杖擁有者之前保留的權杖數量現在已移轉給收件者。如果
quantity值小於實際保留值,則記號的擁有者可以再次使用剩餘金額。如果在記號模型的behaviors區段中指定roles行為,且已設定notary_role_name值,則呼叫者帳戶必須具有公證人角色。否則,任何具有帳戶的來電者都可以作為公證人。 - 有效負載:
{ "tokenId": "{{bc-token-id}}", "operationId": "operation_id value", "quantity": 1, "endorsers": {{endorsers}} } - 參數:
tokenId: string– 記號的 ID。operationId: string– 要核准之 Mint 要求的唯一作業 ID。quantity: number– 要轉移的保留記號數目。endorsers: string[]– 必須為交易背書的對等陣列 (例如peer1、peer2)。
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "txid": "c1149aaa486abc4931d9024c18dfcb230bb321723d1160b0bf981c0011c4856a", "payload": { "msg": "Account Id: oaccount~51e676d7182a02ea7418ef58a6d54ecfe3858ef40b4ffb3d859b320da3921594 (Org-Id: CB, User-Id: issuer_user_cb) is successfully executed '10' tokens from Operation Id '8e3145'." }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 213 } } -
associateTokenToAccount - 原始方法名稱:
associateTokenToAccount - 此 POST 方法會將指定的帳戶 ID 與指定的權杖建立關聯。
Token Admin或Org Admin可以呼叫它。 - 有效負載:
{ "accountId": "account_id value", "tokenId": "{{bc-token-id}}", "endorsers": {{endorsers}} } - 參數:
accountId: string– 帳戶的 ID。tokenId: string– 記號的 ID。endorsers: string[]– 必須為交易背書的對等陣列 (例如peer1、peer2)。
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "txid": "efc7381fb6fc6174a40e83ff5f09d2bbf7f6f490365e3bbf19d5502c2cfec474", "payload": { "bapAccountVersion": 0, "assetType": "oaccount", "account_id": "oaccount~1c6aa60e220b8fc70caf4cea1ed723ddb193a00321e5e0004def062816b77090", "user_id": "cb12", "org_id": "CB", "token_type": "fungible", "token_id": "USD", "token_name": "cbdc", "balance": 0, "onhold_balance": 0, "onhold_burn_balance": 0, "max_daily_amount": 10000, "daily_amount": 0, "max_daily_transactions": 100, "daily_transactions": 0, "current_date": "2024-12-11T00:00:00.000Z" }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20010", "blockNumber": 216 } } -
createAccount - 原始方法名稱:
createAccount - 此方法會為指定的使用者和記號建立帳戶。必須為任何需要記號的使用者建立帳戶。帳戶 ID 是透過串連資產類型和記號 ID,然後透過組織 ID 和使用者 ID 的串連建立 SHA-256 雜湊來形成。只有鏈碼的
Token Admin或指定組織的Org Admin才能呼叫此方法。 - 有效負載:
{ "orgId": "{{bc-org-id}}", "userId": "{{bc-user-id}}", "tokenType": "fungible", "dailyLimits": "{\"max_daily_amount\":10000,\"max_daily_transactions\":100}", "endorsers": {{endorsers}} } - 參數:
orgId– 要建立帳戶之使用者的成員身分服務提供者 (MSP) ID。ID 必須以數字或英文字母字元為開頭,而且可以包含英文字母、數字以及特殊字元,例如底線 (_)、句號 (.)、at 符號 (@) 以及連字號 (-)。userId– 使用者的使用者名稱或電子郵件 ID。ID 必須以數字或英文字母字元為開頭,而且可以包含英文字母、數字以及特殊字元,例如底線 (_)、句號 (.)、at 符號 (@) 以及連字號 (-)。tokenType: TokenType– 記號的類型,必須是fungible。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, "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 } } -
getAccount - 原始方法名稱:
getAccount - 此方法會傳回指定使用者的帳戶詳細資訊。只有鏈碼的
Token Admin或帳戶的Account Owner才能呼叫此方法。 - 查詢:
/getAccount?tokenId={{bc-token-id}}&orgId={{bc-org-id}}&userId={{bc-user-id}} - 參數:
tokenId: string– 記號的 ID。orgId: string– 目前組織中使用者的成員身分服務提供者 (MSP) ID。userId: string– 使用者的使用者名稱或電子郵件 ID。
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "payload": { "bapAccountVersion": 0, "assetType": "oaccount", "status": "active", "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, "max_daily_amount": 10000, "daily_amount": 0, "max_daily_transactions": 1000, "daily_transactions": 0, "current_date": "2024-11-20T00:00:00.000Z" }, "encode": "JSON" } } -
getAccountBalance - 原始方法名稱:
getAccountBalance - 此 GET 方法會傳回指定科目與變數替代字的目前餘額。只有帳戶的
Token Admin或AccountOwner才能呼叫此方法。 /getAccountBalance?tokenId={{bc-token-id}}&orgId={{bc-org-id}}&userId={{bc-user-id}}- 參數:
tokenId: string– 記號的 ID。orgId: string– 目前組織中使用者的成員身分服務提供者 (MSP) ID。userId: string– 使用者的使用者名稱或電子郵件 ID。
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "payload": { "msg": "Current Balance is: 100", "user_balance": 100 }, "encode": "JSON" } } -
getAccountsByUser - 原始方法名稱:
getAccountsByUser - 此方法會傳回指定使用者的所有帳戶清單。只有鏈碼的
Token Admin或帳戶的Account Owner才能呼叫此方法。 - 查詢:
/getAccountsByUser?orgId={{bc-org-id}}&userId={{bc-user-id}} - 參數:
orgId: string– 目前組織中使用者的成員身分服務提供者 (MSP) ID。userId: string– 使用者的使用者名稱或電子郵件 ID。
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "bapAccountVersion": 0, "assetType": "oaccount", "account_id": "oaccount~8db15b42910eeec401e1bf22c69dfdd11c820ecc26539ea03a3426fa25cb8c28", "user_id": "admin_user_cb", "org_id": "CB", "token_type": "fungible", "token_id": "", "token_name": "", "balance": 0, "onhold_balance": 0, "onhold_burn_balance": 0, "max_daily_amount": 10000, "daily_amount": 0, "max_daily_transactions": 1000, "daily_transactions": 0, "current_date": "2024-11-20T00:00:00.000Z" }, { "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, "max_daily_amount": 10000, "daily_amount": 0, "max_daily_transactions": 1000, "daily_transactions": 0, "current_date": "2024-11-20T00:00:00.000Z" }, { "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, "max_daily_amount": 10000, "daily_amount": 0, "max_daily_transactions": 100, "daily_transactions": 0, "current_date": "2024-12-09T00:00:00.000Z" } ], "encode": "JSON" } } -
getAccountTransactionHistory - 原始方法名稱:
getAccountTransactionHistory - 此 GET 方式會傳回科目交易歷史記錄。只有鏈碼的
Token Admin或帳戶擁有者才能呼叫此方法。 /getAccountTransactionHistory?tokenId={{bc-token-id}}&orgId={{bc-org-id}}&userId={{bc-user-id}}- 參數:
tokenId: string– 記號的 ID。orgId: string– 目前組織中使用者的成員身分服務提供者 (MSP) ID。userId: string– 使用者的使用者名稱或電子郵件 ID。
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "transaction_id": "otransaction~64c5a4830949eae1424600f3d4a438c6f603a7c3ea31a68e374b899803999e22", "transacted_amount": 10, "timestamp": "2024-12-11T13:37:28.000Z", "balance": 550, "onhold_balance": 10, "token_id": "USD", "category": "category value", "description": "description value", "transacted_account": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0", "transaction_type": "REJECT_MINT", "transacted_org_id": "CB", "transacted_user_id'": "creator_user_cb" }, { "transaction_id": "otransaction~a4537ef34a955b023b7c205b9abf06a6c79e4fdd761fb24f41b8eb34126b66c0", "transacted_amount": 10, "timestamp": "2024-12-11T13:36:32.000Z", "balance": 550, "onhold_balance": 10, "token_id": "USD", "description": "description value", "transacted_account": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0", "transaction_type": "APPROVE_MINT", "transacted_org_id": "CB", "transacted_user_id'": "creator_user_cb" }, { "transaction_id": "otransaction~6237a759422bd9fb112742e8cd7e6450df5a74a32236d9b1005571afed8904a4", "transacted_amount": 10, "timestamp": "2024-12-11T13:36:18.000Z", "balance": 540, "onhold_balance": 10, "token_id": "USD", "category": "category value", "description": "description value", "transacted_account": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0", "transaction_type": "REQUEST_MINT", "transacted_org_id": "CB", "transacted_user_id'": "creator_user_cb" }, { "transaction_id": "otransaction~06b35071415d74aa1a7c18449149c937d886cae76a832c44cf8d98e84586e76e", "transacted_amount": 10, "timestamp": "2024-12-11T13:35:46.000Z", "balance": 540, "onhold_balance": 10, "token_id": "USD", "category": "category value", "description": "description value", "transacted_account": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0", "transaction_type": "REQUEST_MINT", "transacted_org_id": "CB", "transacted_user_id'": "creator_user_cb" } ], "encode": "JSON" } } -
getAccountTransactionHistoryWithFiltersFromRichHistDB - 原始方法名稱:
getAccountTransactionHistoryWithFiltersFromRichHistDB - 此方法會從 RTF 歷史記錄資料庫傳回帳戶交易歷史記錄明細。只有帳戶的
Token Admin或AccountOwner才能呼叫此方法。使用此方法之前,您必須先執行 Oracle Autonomous Database 並啟用 Oracle REST Data Services (ORDS) 和 OAuth,如 Oracle Database View Definitions for Wholesale CBDC 中所述。 /getAccountTransactionHistoryWithFiltersFromRichHistDB?tokenId={{bc-token-id}}&orgId={{bc-org-id}}&userId={{bc-user-id}}&customEndpoint=custom_endpoint value&bearerToken=bearer_token value&filters={"pageSize":20,"bookmark":"","startTime":"2022-01-16T15:16:36+00:00","endTime":"2022-01-17T15:16:36+00:00"}- 參數:
tokenId: string– 記號的 ID。orgId: string– 目前組織中使用者的成員身分服務提供者 (MSP) ID。userId: string– 使用者的使用者名稱或電子郵件 ID。customEndpoint– 擷取交易歷史記錄之 Rich History 資料庫的 RESTful 服務端點。bearerToken– 用於呼叫 RESTful 端點,以確保要求獲得授權的記號。filters: string– 選擇性參數。如果空白,則會傳回所有記錄。PageSize特性決定要傳回的記錄數目。如果PageSize為 0,則預設頁面大小為 20。Bookmark特性決定要傳回之記錄的開始索引。必須以 RFC-3339 格式指定StartTime和EndTime特性。
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "transaction_id": "otransaction~64c5a4830949eae1424600f3d4a438c6f603a7c3ea31a68e374b899803999e22", "transacted_amount": 10, "timestamp": "2024-12-11T13:37:28.000Z", "balance": 550, "onhold_balance": 10, "token_id": "USD", "category": "category value", "description": "description value", "transacted_account": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0", "transaction_type": "REJECT_MINT", "transacted_org_id": "CB", "transacted_user_id'": "creator_user_cb" }, { "transaction_id": "otransaction~a4537ef34a955b023b7c205b9abf06a6c79e4fdd761fb24f41b8eb34126b66c0", "transacted_amount": 10, "timestamp": "2024-12-11T13:36:32.000Z", "balance": 550, "onhold_balance": 10, "token_id": "USD", "description": "description value", "transacted_account": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0", "transaction_type": "APPROVE_MINT", "transacted_org_id": "CB", "transacted_user_id'": "creator_user_cb" }, { "transaction_id": "otransaction~6237a759422bd9fb112742e8cd7e6450df5a74a32236d9b1005571afed8904a4", "transacted_amount": 10, "timestamp": "2024-12-11T13:36:18.000Z", "balance": 540, "onhold_balance": 10, "token_id": "USD", "category": "category value", "description": "description value", "transacted_account": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0", "transaction_type": "REQUEST_MINT", "transacted_org_id": "CB", "transacted_user_id'": "creator_user_cb" }, { "transaction_id": "otransaction~06b35071415d74aa1a7c18449149c937d886cae76a832c44cf8d98e84586e76e", "transacted_amount": 10, "timestamp": "2024-12-11T13:35:46.000Z", "balance": 540, "onhold_balance": 10, "token_id": "USD", "category": "category value", "description": "description value", "transacted_account": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0", "transaction_type": "REQUEST_MINT", "transacted_org_id": "CB", "transacted_user_id'": "creator_user_cb" } ], "encode": "JSON" } } -
getNetTokens - 原始方法名稱:
getNetTokens - 此 GET 方法會傳回系統中指定記號可用的記號總數。網路記號總計是記號燒錄之後剩餘的記號量。只有鏈碼的
Token Admin或指定組織的Org Admin才能呼叫此方法。 /getNetCBDCTokens?tokenId={{bc-token-id}}- 參數:
tokenId: string– 記號的 ID。
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "payload": { "msg": "Net supply of token for Token Id: USD is 878 tokens.", "quantity": 878 }, "encode": "JSON" } } -
getOnHoldIds - 原始方法名稱:
getOnHoldIds - 此 GET 方法會傳回指定之使用者和記號的所有保留 ID 清單。只有帳戶的
Token Admin、Org Admin或AccountOwner才能呼叫此方法。 /getOnHoldIds?tokenId={{bc-token-id}}&orgId={{bc-org-id}}&userId={{bc-user-id}}- 參數:
tokenId: string– 記號的 ID。orgId: string– 目前組織中使用者的成員身分服務提供者 (MSP) ID。userId: string– 使用者的使用者名稱或電子郵件 ID。
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "payload": { "msg": "Holding Ids are: ohold~cbdc~USD~8e3147,ohold~cbdc~USD~8e315", "holding_ids": [ "ohold~cbdc~USD~8e3147", "ohold~cbdc~USD~8e315" ] }, "encode": "JSON" } } -
getTotalMintedTokens - 原始方法名稱:
getTotalMintedTokens - 此 GET 方法會傳回指定記號的提示記號總數。此方法只能由
Token Admin或Org Admin呼叫。 - 查詢:
/getTotalMintedTokens?tokenId={{bc-token-id}} - 參數:
tokenId: string– 記號的 ID。
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "payload": { "msg": "Total minted token for Token Id: USD is 910 tokens.", "quantity": 910 }, "encode": "JSON" } } -
getUserByAccountId - 原始方法名稱:
getUserByAccountId - 此 GET 方法會傳回指定帳戶的使用者詳細資訊。
Token Admin、Token Auditor或Org Auditor可以呼叫此方法。 - 查詢:
/getUserByAccountId?accountId=account_id value - 參數:
accountId: string– 帳戶的 ID。
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "payload": { "token_id": "USD", "user_id": "admin_user_cb", "org_id": "CB" }, "encode": "JSON" } } -
getUsersByRole - 原始方法名稱:
getUsersByRole - 此方法會傳回指定角色和記號的所有使用者清單。此方法只能由
Token Admin呼叫。 /getUsersByRole?tokenId={{bc-token-id}}&role=role value (for example minter / burner / notary)- 參數:
tokenId: string– 記號的 ID。role: string– 要搜尋之角色的名稱。
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "payload": { "users": [ { "token_id": "USD", "user_id": "creator_user_cb", "org_id": "CB" }, { "token_id": "USD", "user_id": "cb4", "org_id": "CB" } ] }, "encode": "JSON" } } -
holdTokens - 原始方法名稱:
holdTokens - 此方法會代表具有
to_account_id帳戶之記號的擁有者建立保留。指定公證人帳戶,該帳戶負責完成或解除保留。建立保留時,會保留付款人的指定變數替代字餘額。在保留完成或解除前,無法移轉保留餘額。這個方法的呼叫程式必須已經建立一個帳戶。 - 有效負載:
{ "tokenId": "{{bc-token-id}}", "operationId": "operation_id value", "toOrgId": "to_org_id value", "toUserId": "to_user_id value", "notaryOrgId": "notary_org_id value", "notaryUserId": "notary_user_id value", "quantity": 1, "timeToExpiration": "time_to_expiration value", "infoDetails": "{\"category\":\"category value\",\"description\":\"description value\"}", "endorsers": {{endorsers}} } - 參數:
tokenId: string– 記號的 ID。operationId: string– 識別保留作業的唯一 ID。通常用戶端應用程式會傳送此 ID。toOrgId: string– 目前組織中接收者的成員身分服務提供者 (MSP) ID。toUserId: string– 接收者的使用者名稱或電子郵件 ID。notaryOrgId: string– 目前組織中公證人的會員服務提供者 (MSP) ID。notaryUserId: string– 公證人的使用者名稱或電子郵件 ID。quantity: number– 要保留的記號數目。timeToExpiration– 保留到期的時間。指定 0 表示永久保留。否則,請使用 RFC-3339 格式。例如,2021-06-02T12:46:06Z 。infoDetails: JSON– 說明和類別,如下列範例所示。{ "category" : "category input", "description" : "description input" }endorsers: string[]– 必須為交易背書的對等陣列 (例如peer1、peer2)。
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "txid": "e575d339299bb98afe83207e749cd07654f209673c84c6973738b6094da33062", "payload": { "msg": "AccountId oaccount~51e676d7182a02ea7418ef58a6d54ecfe3858ef40b4ffb3d859b320da3921594 (Org-Id: CB , User-Id: issuer_user_cb) is successfully holding 10 tokens" }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 211 } } -
init - 原始方法名稱:
init - 部署鏈碼時會呼叫此方法。使用者資訊會儲存為鏈碼的
Token Admin。 - 有效負載:
{ "adminList": "[{\"org_id\":\"{{bc-org-id}}\",\"user_id\":\"{{bc-admin-user}}\"}]" } - 參數:
adminList array– 指定記號管理員清單的{user_id, org_id}資訊陣列。adminList陣列是必要參數。
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "txid": "fdb7dc89832c8045a333823b77fa24ae628178148dc93b3550040e070d7cd807", "payload": "", "encode": "UTF-8", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 263 } } -
initializeDepositToken - 原始方法名稱:
initializeDepositToken - 此方法會建立記號並初始化記號特性。資產及其特性會儲存在狀態資料庫中。只有鏈碼的
Token Admin才能呼叫此方法。 - 有效負載:
{ "tokenAsset": "{\"token_id\":\"{{bc-token-id}}\",\"token_desc\":\"token_desc value\"}", "sameOrgEndorser": true } - 參數:
tokenAsset: <Token Class>– 將記號資產當作參數傳遞至此方法。模型檔案中描述了記號資產的特性。sameOrgEndorser: boolean– 布林值,指出交易背書是否必須來自與要求者相同的組織。
- 傳回值:
- 成功時,所建立權杖資產的 JSON 表示法。
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "txid": "aa7a4f4cc214e1a041a5a6fb7ca7530f08256559e538c9f9582e6fd12c9e65c8", "payload": { "assetType": "otoken", "events": false, "token_id": "t1", "token_name": "cbdc", "token_desc": "token_desc value", "token_standard": "ttf+", "token_type": "fungible", "token_unit": "fractional", "behaviors": [ "divisible", "mintable", "transferable", "burnable", "holdable", "roles" ], "roles": { "minter_role_name": "minter", "burner_role_name": "burner", "notary_role_name": "notary", "mint_approver_role_name": "notary", "burn_approver_role_name": "notary" }, "mintable": { "max_mint_quantity": 1000, "mint_approval_required": true }, "burnable": { "burn_approval_required": true }, "divisible": { "decimal": 2 }, "token_to_currency_ratio": 999 }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 267 } } -
getAccountHistory - 原始方法名稱:
getAccountHistory - 此 GET 方法會傳回指定之使用者和記號的帳戶歷史記錄詳細資訊。
- 查詢:
/getAccountHistory?tokenId={{bc-token-id}}&orgId={{bc-org-id}}&userId={{bc-user-id}} - 參數:
tokenId: string– 記號的 ID。orgId: string– 目前組織中使用者的成員身分服務提供者 (MSP) ID。userId: string– 使用者的使用者名稱或電子郵件 ID。
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "trxId":"2gsdh17fff222467e5667be042e33ce18e804b3e065cca15de306f837e416d7c3e", "timeStamp":1629718288, "value":{ "assetType":"oaccount", "account_id":"oaccount~digicur~b4f45440aa2a7942db64443d047027e9d714d62cba5c3d546d64f368642f622f", "user_id":"user1", "org_id":"Org1MSP", "token_id":"digiCurr101", "token_name":"digicur", "balance":100, "onhold_balance":0, "bapAccountVersion": 1 }, { "trxId":"9fd07fff222467e5667be042e33ce18e804b3e065cca15de306f837e416d7c3e", "timeStamp":1629718288, "value":{ "assetType":"oaccount", "account_id":"oaccount~digicur~b4f45440aa2a7942db64443d047027e9d714d62cba5c3d546d64f368642f622f", "user_id":"user1", "org_id":"Org1MSP", "token_id":"digiCurr101", "token_name":"digicur", "balance":0, "onhold_balance":0, "bapAccountVersion": 0 } } ], "encode": "JSON" } } -
rejectMint - 原始方法名稱:
rejectMint - 公證人可以呼叫此方法來拒絕探勘要求。
- 有效負載:
{ "tokenId": "{{bc-token-id}}", "operationId": "operation_id value", "sameOrgEndorser": true } - 參數:
token_id: string– 要拒絕採礦的記號 ID。operation_id: string– 代表 mint 要求的唯一作業 ID。sameOrgEndorser: boolean– 布林值,指出交易背書是否必須來自與要求者相同的組織。
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "txid": "64c5a4830949eae1424600f3d4a438c6f603a7c3ea31a68e374b899803999e22", "payload": { "msg": "Successfully rejected mint request with Operation Id 'op1234' to mint 10 tokens of token id USD" }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 205 } } -
releaseHoldTokens - 原始方法名稱:
releaseHoldTokens - 此 POST 方法會解除權杖的保留。移轉未完成,所有保留的變數替代字都可再供原始擁有者使用。
- 有效負載:
{ "tokenId": "{{bc-token-id}}", "operationId": "operation_id value", "endorsers": {{endorsers}} } - 參數:
token_id: string– 記號的 ID。operation_id: string– 識別保留作業的唯一 ID。通常用戶端應用程式會傳送此 ID。endorsers: string[]– 必須為交易背書的對等陣列 (例如peer1、peer2)。
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "txid": "f04ba8895d52bc636d843f88476002bc99d01480c36be87c8fa259cd47a29380", "payload": { "msg": "Successfully released '10' tokens from Operation Id '8e3144' to Account Id: oaccount~51e676d7182a02ea7418ef58a6d54ecfe3858ef40b4ffb3d859b320da3921594 (Org-Id: CB, User-Id: issuer_user_cb)." }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 214 } } -
removeTokenAdmin - 原始方法名稱:
removeTokenAdmin - 此 POST 方法會移除使用者作為鏈碼的
Token Admin。此方法只能由鏈碼的Token Admin呼叫。管理員無法移除自己。 - 有效負載:
{ "orgId": "{{bc-org-id}}", "userId": "{{bc-user-id}}", "sameOrgEndorser": true } - 參數:
org_id: string– 目前組織中使用者的成員身分服務提供者 (MSP) ID。user_id: string– 使用者的使用者名稱或電子郵件 ID。sameOrgEndorser: boolean– 布林值,指出交易背書是否必須來自與要求者相同的組織。
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "txid": "6a3b9b568d04b5beb29830f91efe4e8c6310b6cf36940cecfb4ab690fbfde739", "payload": { "msg": "Successfully removed Token Admin (Org_Id: CB, User_Id: cb)" }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20010", "blockNumber": 218 } } -
removeTokenAuditor - 原始方法名稱:
removeTokenAuditor - 此 POST 方法會移除使用者作為鏈碼的
Token Auditor。此方法只能由鏈碼的Token Admin呼叫。 - 有效負載:
{ "orgId": "{{bc-org-id}}", "userId": "{{bc-user-id}}", "sameOrgEndorser": true } - 參數:
org_id: string– 目前組織中使用者的成員身分服務提供者 (MSP) ID。user_id: string– 使用者的使用者名稱或電子郵件 ID。sameOrgEndorser: boolean– 布林值,指出交易背書是否必須來自與要求者相同的組織。
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "txid": "a886a6040fbc76374a3c78c89ab0ffc9f7b8391cc5239b169bf3b878cf40c67b", "payload": { "msg": "Successfully removed Token Auditor (Org_Id: CB, User_Id: cb)" }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20010", "blockNumber": 219 } } -
removeOrgAdmin - 原始方法名稱:
removeOrgAdmin - 此 POST 方法會移除使用者作為鏈碼的
Org Admin。此方法只能由指定組織的Token Admin或Org Admin呼叫。 - 有效負載:
{ "orgId": "{{bc-org-id}}", "userId": "{{bc-user-id}}", "sameOrgEndorser": true } - 參數:
org_id: string– 目前組織中使用者的成員身分服務提供者 (MSP) ID。user_id: string– 使用者的使用者名稱或電子郵件 ID。sameOrgEndorser: boolean– 布林值,指出交易背書是否必須來自與要求者相同的組織。
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "txid": "e2a634f6093f89b1984e20ff86a513fabb7c3ade7cc9e27d9734b4aaf6c88597", "payload": { "msg": "Successfully removed Org Admin (Org_Id: CB, User_Id: cb)" }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20010", "blockNumber": 220 } } -
removeOrgAuditor - 原始方法名稱:
removeOrgAuditor - 此 POST 方法會移除使用者作為鏈碼的
Org Auditor。此方法只能由指定組織的Token Admin或Org Admin呼叫。 - 有效負載:
{ "orgId": "{{bc-org-id}}", "userId": "{{bc-user-id}}", "sameOrgEndorser": true } - 參數:
org_id: string– 目前組織中使用者的成員身分服務提供者 (MSP) ID。user_id: string– 使用者的使用者名稱或電子郵件 ID。sameOrgEndorser: boolean– 布林值,指出交易背書是否必須來自與要求者相同的組織。
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "txid": "c3bc720461004a53b37c68d4bb264858b88d980bc093a0a3ebb62a32974fb306", "payload": { "msg": "Successfully removed Org Auditor (Org_Id: CB, User_Id: cb)" }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20010", "blockNumber": 221 } } -
removeRole - 原始方法名稱:
removeRole - 此方法會從指定的使用者移除角色。只有鏈碼的
Token Admin或指定組織的Org Admin才能呼叫此方法。 - 有效負載:
{ "tokenId": "{{bc-token-id}}", "role": "role value (for example minter / burner / notary)", "orgId": "{{bc-org-id}}", "userId": "{{bc-user-id}}", "endorsers": {{endorsers}} } - 參數:
tokenId: string– 記號的 ID。role: string– 要從指定使用者移除的角色名稱。mintable和burnable行為對應規格檔案的minter_role_name和burner_role_name特性。orgId: string– 目前組織中使用者的成員身分服務提供者 (MSP) ID。userId: string– 使用者的使用者名稱或電子郵件 ID。endorsers: string[]– 必須為交易背書的對等陣列 (例如peer1、peer2)。
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "txid": "274f0d0a2c4c3929817fb85b2e857519695c3c238ccf9903b084b87e9be7ee12", "payload": { "msg": "Successfully removed role 'notary' from Account Id: oaccount~2eb5f8a9bc561f8f41a4ea3be9511958cc6684ef14f2337ca396efc301b627d8 (Org-Id: CB, User-Id: manager_user_cb)" }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 200 } } -
requestMint - 原始方法名稱:
requestMint - 礦工可以呼叫此方法,將請求傳送給公證人,以建立指定數量的記號。
- 有效負載:
{ "tokenId": "{{bc-token-id}}", "operationId": "operation_id value", "notaryOrgId": "notary_org_id value", "notaryUserId": "notary_user_id value", "quantity": 1, "timeToExpiration": "time_to_expiration value", "infoDetails": "{\"category\":\"category value\",\"description\":\"description value\"}", "sameOrgEndorser": true } - 參數:
tokenId: string– 要提示之記號的 ID。operationId: string– 代表 mint 要求的唯一作業 ID。notaryOrgId: string– 將處理要求之礦工公證人的會員服務提供者 (MSP) ID。notaryUserId: string– 將處理要求之礦工公證人的使用者名稱或電子郵件 ID。quantity: number– 要提示的記號數量。timeToExpiration– 採礦要求到期且不再有效的時間。infoDetails: JSON– 指定要求之類別 (category) 和描述 (description) 的物件,如下列範例所示。{ "category" : "category input", "description" : "description input" }sameOrgEndorser: boolean– 布林值,指出交易背書是否必須來自與要求者相同的組織。
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "txid": "06b35071415d74aa1a7c18449149c937d886cae76a832c44cf8d98e84586e76e", "payload": { "msg": "AccountId oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0 (Org-Id: CB , User-Id: creator_user_cb) has successfully submitted request to mint 10 tokens" }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20010", "blockNumber": 202 } } -
burnTokens - 原始方法名稱:
burnTokens - 此 POST 方法會停用或燒錄交易呼叫程式帳戶中的記號。這個方法的呼叫程式必須具有帳戶和燒錄機角色。數量必須在規格檔案中
divisible行為的decimal參數所指定的小數值內。帳戶的AccountOwner可以透過 burner 角色呼叫此方法。 - 有效負載:
{ "tokenId": "{{bc-token-id}}", "quantity": 1, "infoDetails": "{\"category\":\"category value\",\"description\":\"description value\"}", "sameOrgEndorser": true } - 參數:
tokenId: string– 記號的 ID。quantity– 要燒錄的記號數目。infoDetails: JSON– 指定要求之類別 (category) 和描述 (description) 的物件,如下列範例所示。{ "category" : "category input", "description" : "description input" }sameOrgEndorser: boolean– 布林值,指出交易背書是否必須來自與要求者相同的組織。
- 傳回值:
- 成功時,會產生一個成功訊息,其中包含已燒錄的記號數量和帳戶 ID。
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "txid": "aff0b2dbb163ec8076747525db81fbe8f678ac88a277c5f234337f0747eb1a8d", "payload": { "msg": "Successfully burned 10 tokens from account id: oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0 (Org-Id: CB, User-Id: creator_user_cb)" }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20010", "blockNumber": 96 } } -
setMaxDailyAmount - 原始方法名稱:
setMaxDailyAmount - 此 POST 方法是用來設定指定金額之帳戶詳細資訊中的
maxDailyAmount參數。只有鏈碼的Token Admin或指定組織的Org Admin才能呼叫此方法。 - 有效負載:
{ "orgId": "{{bc-org-id}}", "userId": "{{bc-user-id}}", "tokenId": "{{bc-token-id}}", "maxDailyAmount": 1, "endorsers": {{endorsers}} } - 參數:
orgId: string– 目前組織中使用者的成員身分服務提供者 (MSP) ID。userId: string– 使用者的使用者名稱或電子郵件 ID。tokenId: string– 記號的 ID。maxDailyAmount: number– 指定帳戶的每日金額上限值,定義每日可交易的金額上限。endorsers: string[]– 必須為交易背書的對等陣列 (例如peer1、peer2)。
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "txid": "28682e0564e4721b6c1a8ec106f8c5c98319e9439959dbb9f83d8e6f111d9975", "payload": { "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, "max_daily_amount": 10000, "daily_amount": 0, "max_daily_transactions": 1000, "daily_transactions": 0, "current_date": "2024-11-20T00:00:00.000Z" }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20010", "blockNumber": 222 } } -
setMaxDailyTransactionCount - 原始方法名稱:
setMaxDailyTransactionCount - 此 POST 方法是用來設定指定金額之帳戶詳細資訊中的
maxDailyTransactions參數。只有鏈碼的Token Admin或指定組織的Org Admin才能呼叫此方法。 - 有效負載:
{ "orgId": "{{bc-org-id}}", "userId": "{{bc-user-id}}", "tokenId": "{{bc-token-id}}", "maxDailyTransactions": 1, "endorsers": {{endorsers}} } - 參數:
orgId: string– 目前組織中使用者的成員身分服務提供者 (MSP) ID。userId: string– 使用者的使用者名稱或電子郵件 ID。tokenId: string– 記號的 ID。maxDailyTransactions: number– 指定帳戶的每日金額上限值,定義每日允許的交易數上限。endorsers: string[]– 必須為交易背書的對等陣列 (例如peer1、peer2)。
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "txid": "8b6fb01de697562ee098110054f05d4a314933bd11ef471991cb43e25b68bad9", "payload": { "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, "max_daily_amount": 10000, "daily_amount": 0, "max_daily_transactions": 1000, "daily_transactions": 0, "current_date": "2024-11-20T00:00:00.000Z" }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20010", "blockNumber": 223 } } -
suspendAccount - 原始方法名稱:
suspendAccount - 此方法會暫停有趣的權杖帳戶。如果在分類帳中找不到
accountStatus值,則會發出錯誤。只有鏈碼的Token Admin或指定組織的Org Admin才能呼叫此方法。 - 有效負載:
{ "tokenId": "{{bc-token-id}}", "orgId": "{{bc-org-id}}", "userId": "{{bc-user-id}}", "endorsers": {{endorsers}} } - 參數:
tokenId: string– 記號的 ID。orgId: string– 目前組織中使用者的成員身分服務提供者 (MSP) ID。userId: string– 使用者的使用者名稱或電子郵件 ID。endorsers: string[]– 必須為交易背書的對等陣列 (例如peer1、peer2)。
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "txid": "e21d91d98091df77f90105d84074c0b802b01fc97a6b1304247774397fed1294", "payload": { "assetType": "oaccountStatus", "status_id": "oaccountStatus~d5814d96d8517ac31727d60aace0519c58a425892ab0d378fcfb0a35771f65ae", "account_id": "oaccount~802bf8da5579c6103b2dddaa6c4385df8e722d639a18029e0e93d7a5d6f826d6", "status": "suspended" }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 195 } } -
transferTokens - 原始方法名稱:
transferTokens - 此方法會將記號從呼叫程式轉移至指定的帳戶。方法的呼叫程式必須有一個帳戶。數量必須在規格檔案中
divisible行為的decimal參數所指定的小數值內。 - 有效負載:
{ "tokenId": "{{bc-token-id}}", "toOrgId": "to_org_id value", "toUserId": "to_user_id value", "quantity": 1, "infoDetails": "{\"category\":\"category value\",\"description\":\"description value\"}", "endorsers": {{endorsers}} } - 參數:
tokenId: string– 記號的 ID。toOrgId: string– 目前組織中接收者 (受款人) 的會員服務提供者 (MSP) ID。toUserId: string– 接收者的使用者名稱或電子郵件 ID。quantity: number– 要傳輸的記號數目。infoDetails: JSON– 指定要求之類別 (category) 和描述 (description) 的物件,如下列範例所示。{ "category" : "category input", "description" : "description input" }endorsers: string[]– 必須為交易背書的對等陣列 (例如peer1、peer2)。
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "txid": "d613b2494b965811b2fa2106152b7085f2d6d7d43e949b10b8668722d3636fe7", "payload": { "msg": "Successfully transferred 10 tokens from account id: oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0 (Org-Id: CB, User-Id: creator_user_cb) to account id: oaccount~51e676d7182a02ea7418ef58a6d54ecfe3858ef40b4ffb3d859b320da3921594 (Org-Id: CB, User-Id: issuer_user_cb). Only 999 number of transactions and 1990 amount transfer left for today: 12/11/2024" }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 224 } } -
initializeExchangePoolUser - 原始方法名稱:
initializeExchangePoolUser - 此方法會初始化交換集區使用者,這是一次性活動。此方法只能由
Token Admin呼叫。 - 有效負載:
{ "orgId": "{{bc-org-id}}", "userId": "{{bc-user-id}}", "sameOrgEndorser": true } - 參數:
orgId: string– 目前組織中使用者的成員身分服務提供者 (MSP) ID。userId: string– 使用者的使用者名稱或電子郵件 ID。sameOrgEndorser: boolean– 布林值,指出交易背書是否必須來自與要求者相同的組織。
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "txid": "e21d91d98091df77f90105d84074c0b802b01fc97a6b1304247774397fed1294", "payload": { "assetType": "oconversion", "convertor_id": "bcb1f3b1442c625d3ce205660c5e717c5858a1fe1e12c325df799a851ceaa09b", "org_id": "Org1MSP", "user_id": "exchangepooluser" }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 196 } } -
createExchangePoolAccounts - 原始方法名稱:
createExchangePoolAccounts - 此方法會為指定的記號 ID 陣列建立交換集區記號帳戶。此方法只能由鏈碼的
Token Admin呼叫。 - 有效負載:
{ "tokenIds": "[{{bc-token-id}}]", "sameOrgEndorser": true } - 參數:
token_ids: string []– 記號 ID 的陣列。sameOrgEndorser: boolean– 布林值,指出交易背書是否必須來自與要求者相同的組織。
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "txid": "e21d91d98091df77f90105d84074c0b802b01fc97a6b1304247774397fed1294", "payload": [ { "account_id": "oaccount~cc9d84f6d4a5976532493ef5200c9603e138adc35166ffd5fd1aad9c1647f034", "token_id": "USD", "status": "created" }, { "account_id": "oaccount~3d4933111ec8bd6cc1ebb43f2b2c390deb929cfa534f9c6ada8e63bac04a13c0", "token_id": "INR", "status": "created" } ], "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 197 } } -
addConversionRate - 原始方法名稱:
addConversionRate - 此方法會新增一組記號的轉換率。權杖轉換率最多可指定 8 個小數位數。此方法只能由鏈碼的
Token Admin呼叫。 - 有效負載:
{ "fromTokenId": "from_token_id value", "toTokenId": "to_token_id value", "tokenConversionRate": 10, "sameOrgEndorser": true } - 參數:
fromTokenId: string– 要轉換的來源記號 ID。toTokenId: string– 要轉換的目標記號 ID。tokenConversionRate: number– 將fromTokenId記號轉換成toTokenId記號的速率。sameOrgEndorser: boolean– 布林值,指出交易背書是否必須來自與要求者相同的組織。
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "txid": "e21d91d98091df77f90105d84074c0b802b01fc97a6b1304247774397fed1294", "payload": { "assetType": "oconversionRate", "conversion_rate_id": "oconversionRate~91c7eeb0614e7a50b1d5ecad559fcbc80b94034648bf405c9491dacf8d57873b", "from_token_id": "USD", "to_token_id": "INR", "conversion_rate": 10 }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 189 } } -
updateConversionRate - 原始方法名稱:
updateConversionRate - 此方法會更新一組記號的目前轉換率。權杖轉換率最多可指定 8 個小數位數。此方法只能由鏈碼的
Token Admin呼叫。 - 有效負載:
{ "fromTokenId": "from_token_id value", "toTokenId": "to_token_id value", "tokenConversionRate": 20, "sameOrgEndorser": true } - 參數:
fromTokenId: string– 要轉換的來源記號 ID。toTokenId: string– 要轉換的目標記號 ID。tokenConversionRate: number– 將fromTokenId記號轉換成toTokenId記號的速率。sameOrgEndorser: boolean– 布林值,指出交易背書是否必須來自與要求者相同的組織。
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "txid": "e21d91d98091df77f90105d84074c0b802b01fc97a6b1304247774397fed1294", "payload": { "assetType": "oconversionRate", "conversion_rate_id": "oconversionRate~91c7eeb0614e7a50b1d5ecad559fcbc80b94034648bf405c9491dacf8d57873b", "from_token_id": "USD", "to_token_id": "INR", "conversion_rate": 20 }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 208 } } -
mintWithFundingExchangePool - 原始方法名稱:
mintWithFundingExchangePool - 此方法會根據指定的記號 ID 和數量來提示呼叫者帳戶中的記號。提示數量中的記號百分比會轉移到交換集區記號帳戶。
{ "tokenId": "{{bc-token-id}}", "tokenQuantity": 100, "percentageTokenToExchangePool": 20, "sameOrgEndorser": true }- 參數:
tokenId: string– 要提示之記號的 ID。tokenQuantity: number– 要提示的記號總數。percentageTokenToExchangePool: number– 要轉移至交換集區記號帳戶的提示記號百分比。sameOrgEndorser: boolean– 布林值,指出交易背書是否必須來自與要求者相同的組織。
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "txid": "e21d91d98091df77f90105d84074c0b802b01fc97a6b1304247774397fed1294", "payload": { "msg": "Successfully minted 100 tokens to Account Id: oaccount~abc74791148b761352b98df58035601b6f5480448ac2b4a3a7eb54bdbebf48eb (Org-Id: Org1MSP, User-Id: admin) and Successfully transfered 20 tokens to exchange pool Account with Account Id: oaccount~cc9d84f6d4a5976532493ef5200c9603e138adc35166ffd5fd1aad9c1647f034 (Org-Id: Org1MSP, User-Id: exchangepooluser) " }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 209 } } -
tokenConversion - 原始方法名稱:
tokenConversion - 此方法會將呼叫者帳戶的記號轉換成由
to_token_id、to_org_id和to_user_id值指定的帳戶。鏈碼的Token Admin和任何記號帳戶擁有者都可以呼叫此方法。交換集區使用者無法呼叫此方法。 { "fromTokenId": "from_token_id value", "toTokenId": "to_token_id value", "toOrgId": "to_org_id value", "toUserId": "to_user_id value", "tokenQuantity": 5, "endorsers": {{endorsers}} }- 參數:
fromTokenId: string– 要轉換的來源記號 ID。toTokenId: string– 要轉換的目標記號 ID。toOrgId: string– 目前組織中接收記號之使用者的成員身分服務提供者 (MSP) ID。toUserId: string– 要接收記號之使用者的使用者名稱或電子郵件 ID。tokenQuantity: number– 要傳輸的記號總數。endorsers: string[]– 必須為交易背書的對等陣列 (例如peer1、peer2)。
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "txid": "e21d91d98091df77f90105d84074c0b802b01fc97a6b1304247774397fed1294", "payload": { "msg": "Succesfully converted 5 of tokens with tokenId: [USD] from AccountId: oaccount~abc74791148b761352b98df58035601b6f5480448ac2b4a3a7eb54bdbebf48eb (Org-Id: Org1MSP, User-Id: admin) to 100 of tokens with tokenId: [INR] to AccountId: oaccount~25e2e66718b6dbb59aea9c32acebec60e09d912b2578d4933d377ae5d0628f1e (Org-Id: Org1MSP, User-Id: user) as per the conversion rate of 20" }, "encode": "JSON", "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009", "blockNumber": 213 } } -
getConversionRate - 原始方法名稱:
getConversionRate - 此 GET 方法會取得一組記號的目前轉換率。
Token Admin、Token Auditor、Org Admin或Org Auditor可以呼叫此方法。 - 查詢:
/getConversionRate?fromTokenId=from_token_id value&toTokenId=to_token_id value - 參數:
fromTokenId: string– 要轉換的來源記號 ID。toTokenId: string– 要轉換的目標記號 ID。
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "payload": { "assetType": "oconversionRate", "conversion_rate_id": "oconversionRate~91c7eeb0614e7a50b1d5ecad559fcbc80b94034648bf405c9491dacf8d57873b", "from_token_id": "USD", "to_token_id": "INR", "conversion_rate": 20 }, "encode": "JSON" } } -
getConversionHistory - 原始方法名稱:
getConversionRate - 此 GET 方法會傳回指定權杖帳戶的權杖轉換歷史記錄。
Token Admin、Token Auditor、Org Admin、Org Auditor或記號帳戶擁有者可以呼叫此方法。 - 查詢:
/getConversionHistory?tokenId={{bc-token-id}}&orgId={{bc-org-id}}&userId={{bc-user-id}} - 參數:
tokenId: string– 記號的 ID。orgId: string– 目前組織中使用者的成員身分服務提供者 (MSP) ID。userId: string– 使用者的使用者名稱或電子郵件 ID。
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "transaction_id": "otransaction~34edd19e03ec8bbbc77bc3372081410a824a5c10f9aa522b3a6390d7e8cb11cf", "from_account_id": "oaccount~abc74791148b761352b98df58035601b6f5480448ac2b4a3a7eb54bdbebf48eb", "to_account_id": "oaccount~25e2e66718b6dbb59aea9c32acebec60e09d912b2578d4933d377ae5d0628f1e", "transacted_amount": 5, "converted_amount": 100, "conversion_rate": "20", "from_token_id": "USD", "to_token_id": "INR", "balance": 75, "onhold_balance": 0, "timestamp": "2022-11-30T11:03:20.000Z", "transaction_type": "TOKEN_CONVERSION_DEBIT" } ], "encode": "JSON" } } -
getConversionRateHistory - 原始方法名稱:
getConversionRate - 此方法會傳回一組記號的記號轉換率歷史記錄。
Token Admin、Token Auditor、Org Admin、Org Auditor以及任何記號帳戶擁有者都可以呼叫此方法。 /getConversionRateHistory?fromTokenId=from_token_id value&toTokenId=to_token_id value- 參數:
fromTokenId: string– 用於計算轉換率的來源記號 ID。toTokenId: string– 用於計算轉換率的變數替代字 ID。
- 傳回值:
- 成功時,會有轉換率歷史記錄明細的 JSON 物件。
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "payload": [ { "trxId": "0b1ba7bc2620e1438b6580365e5c0ab852247ccfa5a3eb2157d3baca02c0e521", "timeStamp": "2022-11-30T10:23:38.000Z", "value": { "assetType": "oconversionRate", "conversion_rate_id": "oconversionRate~91c7eeb0614e7a50b1d5ecad559fcbc80b94034648bf405c9491dacf8d57873b", "from_token_id": "USD", "to_token_id": "INR", "conversion_rate": 20 } }, { "trxId": "36fc40ddb3d8308ee7e156af700da131d78d941fe390fc57985b7589e7035d5c", "timeStamp": "2022-11-30T10:13:18.000Z", "value": { "assetType": "oconversionRate", "conversion_rate_id": "oconversionRate~91c7eeb0614e7a50b1d5ecad559fcbc80b94034648bf405c9491dacf8d57873b", "from_token_id": "USD", "to_token_id": "INR", "conversion_rate": 10 } } ], "encode": "JSON" } } -
getExchangePoolUser - 原始方法名稱:
getExchangePoolUser - 此 GET 方法會傳回交換資料區使用者的組織 ID 和使用者 ID 值。只有鏈碼的
Token Admin或Token Auditor才能呼叫此方法。 - 查詢:
/getExchangePoolUser - 參數:
- 無
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "payload": { "assetType": "oconversion", "convertor_id": "bcb1f3b1442c625d3ce205660c5e717c5858a1fe1e12c325df799a851ceaa09b", "org_id": "Org1MSP", "user_id": "exchangepooluser" }, "encode": "JSON" } } -
getAccountOnHoldBalance - 原始方法名稱:
getAccountOnHoldBalance - 此 GET 方法會傳回指定科目與變數替代字的目前保留餘額。只有帳戶的
Token Admin、Token Auditor、Org Admin、Org Auditor或AccountOwner才能呼叫此方法。 - 查詢:
/getAccountOnHoldBalance?tokenId={{bc-token-id}}&orgId={{bc-org-id}}&userId={{bc-user-id}} - 參數:
tokenId: string– 記號的 ID。orgId: string– 目前組織中使用者的成員身分服務提供者 (MSP) ID。userId: string– 使用者的使用者名稱或電子郵件 ID。
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "payload": { "msg":"Total Holding Balance is: 0","holding_balance":0 }, "encode": "JSON" } } -
getAccountStatus - 原始方法名稱:
getAccountStatus - 此 GET 方法會擷取權杖帳戶的目前狀態。
Token Admin、Token Auditor、Org Admin、Org Auditor或記號帳戶擁有者可以呼叫此方法。 - 查詢:
/getAccountStatus?tokenId={{bc-token-id}}&orgId={{bc-org-id}}&userId={{bc-user-id}} - 參數:
tokenId: string– 記號的 ID。orgId: string– 目前組織中使用者的成員身分服務提供者 (MSP) ID。userId: string– 使用者的使用者名稱或電子郵件 ID。
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "payload": { "assetType": "oaccountStatus", "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7", "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1", "status": "active" }, "encode": "JSON" } } -
getAccountsByRole - 原始方法名稱:
getAccountsByRole - 此方法會傳回指定角色的所有帳戶 ID 清單。此方法只能由鏈碼的
Token Admin呼叫。 - 查詢:
/getAccountsByRole?tokenId={{bc-token-id}}&role=role value (for example minter / burner / notary) - 參數:
tokenId: string– 記號的 ID。role: string– 要搜尋之角色的名稱。
- 傳回值範例:
{ "returnCode": "Success", "error": "", "result": { "payload": { "accounts":["oaccount~digicur~b4f45440aa2a7942db64443d047027e9d714d62cba5c3d546d64f368642f622f"] }, "encode": "JSON" } }