Der vertrauliche CBDC-Großhandelskettencode umfasst alle Methoden, die im erweiterten Token Taxonomy Framework-Kettencode verfügbar sind. Die folgenden zusätzlichen Methoden, die für das vertrauliche CBDC-Großhandelszenario spezifisch sind, sind verfügbar.
-
createAccount
- Mit dieser Methode wird ein Account für einen angegebenen Benutzer und ein bestimmtes Token erstellt. Ein Konto muss für jeden Benutzer erstellt werden, der zu einem beliebigen Zeitpunkt Token hat. Diese Methode kann nur von einer
Token Admin oder einer Org Admin der angegebenen Organisation aufgerufen werden.
@Validator(yup.string(), yup.string(), yup.string(), yup.array().of(yup.string()), yup.object().nullable())
public async createAccount(org_id: string, user_id: string, token_type: string, application_groups: string[], dailyLimits?: DailyLimits) {
await this.Ctx.Auth.checkAuthorization("ACCOUNT.createAccount", "TOKEN", { org_id });
await this.Ctx.Model.createEvent(EVENT_NAME.CREATE_ACCOUNT, { org_id, user_id, token_type, application_groups, dailyLimits });
return await this.Ctx.Account.createAccount(org_id, user_id, token_type, application_groups, dailyLimits);
}
- Parameter:
- Beispiel für Rückgabewert:
{
"bapAccountVersion": 0,
"assetType": "oaccount",
"account_id": "oaccount~b53cb2c19c92d1d5c8cb9f6e988e7761c34e03e014e6c4b889565fc0abf46c8a",
"org_id": "CentralBank",
"token_type": "fungible",
"token_id": "",
"token_name": "",
"balance": "028b72742c8aa9a0395c828fe4f0e46226a3e40d4e731d0b994c8028c8b7bd4df6",
"onhold_balance": "028b72742c8aa9a0395c828fe4f0e46226a3e40d4e731d0b994c8028c8b7bd4df6",
"onhold_burn_balance": "028b72742c8aa9a0395c828fe4f0e46226a3e40d4e731d0b994c8028c8b7bd4df6",
"application_groups": [
"CENTRAL_BANK_USERS"
]
}
-
setApplicationGroups
- Mit dieser Methode wird der Parameter
application_groups in den Accountdetails für die angegebenen Anwendungsgruppen in der API festgelegt. Diese Methode kann nur von einem Token Admin oder Org Admin der angegebenen Organisation aufgerufen werden.
@Validator(yup.string(), yup.array().of(yup.string()))
public async setApplicationGroups (account_id: string, application_groups: string[]) {
const account: FungibleAccount = await this.Ctx.Account.getAccountWithTokenIdValidation(account_id);
await this.Ctx.Auth.checkAuthorization('CBDC_TOKEN.setApplicationGroups', 'TOKEN', { org_id: account.org_id });
const token_asset = await this.getTokenObject(account.token_id);
await this.Ctx.Model.createEvent(EVENT_NAME.SET_APPLICATION_GROUPS, { account_id, application_groups }, token_asset);
return this.Ctx.Account.setApplicationGroups (account_id, application_groups)
}
- Parameter:
account_id: string: Die eindeutige ID des Tokenaccounts.
application_groups: string[]: Eine Liste der Anwendungsgruppen, zu denen die Account-ID gehört, die die Zuordnungen des Benutzers in der CBDC-Anwendung definieren.
- Beispiel für Rückgabewert:
{
"bapAccountVersion": 10,
"assetType": "oaccount",
"account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
"org_id": "CentralBank",
"token_type": "fungible",
"token_id": "USD",
"token_name": "cbdc",
"balance": "02c4601262fa7ece1ffc909811f829ad973d4133ca27c9c0fa82972d441400ad3e",
"onhold_balance": "028954d23bfabee1a10d9f5a07793dec08ab0f93fd506079b0fa33f525d527595f",
"onhold_burn_balance": "028954d23bfabee1a10d9f5a07793dec08ab0f93fd506079b0fa33f525d527595f",
"application_groups": [
"SYSTEM_RETIRERS"
]
}
-
getBurnQuantity
- Diese Methode gibt die Gesamtmenge der verbrannten Token für eine bestimmte Organisation zurück. Diese Methode kann nur von einem
Token Admin, Token Auditor oder einem Benutzer mit der Burner-Rolle aufgerufen werden.
@GetMethod()
@Validator(yup.string())
public async getBurnQuantity(token_id: string) {
return await this.Ctx.CBDCToken.getBurnQuantity(token_id);
}
- Parameter:
token_id: string: Die ID des Tokens.
- Beispiel für Rückgabewert:
{
"burnt_quantity": 1200
}
-
getActionHistory
- Diese Methode ruft die Historie der Genehmigungen oder Ablehnungen ab, die der Anrufer für Mint-, Burn- und Transfervorgänge (Abgabevorgänge) vorgenommen hat, einschließlich Details der Organisation und Benutzer-IDs der beteiligten Konten (Absender, Empfänger und Notar).
@GetMethod()
@Validator(yup.string())
public async getActionHistory(token_id: string) {
return await this.Ctx.CBDCToken.getActionHistory(token_id);
}
- Parameter:
token_id: string: Die ID des Tokens.
- Beispiel für Rückgabewert:
[
{
"from_account_id": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
"from_org_id": "CentralBank",
"holding_id": "ohold~cbdc~USD~b770",
"holding_status": "APPROVE_BURN",
"last_updated_time": "2025-08-25T13:21:24.000Z",
"notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
"notary_org_id": "CentralBank",
"operation_id": null,
"timetoexpiration": null,
"to_account_id": null,
"to_org_id": null,
"token_name": null,
"quantity": 200
},
{
"from_account_id": null,
"from_org_id": null,
"holding_id": "ohold~cbdc~USD~e7b6",
"holding_status": "APPROVE_MINT",
"last_updated_time": "2025-08-25T13:20:50.000Z",
"notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
"notary_org_id": "CentralBank",
"operation_id": null,
"timetoexpiration": null,
"to_account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
"to_org_id": "CentralBank",
"token_name": null,
"quantity": 1000
},
.
.
.
.
.
{
"from_account_id": null,
"from_org_id": null,
"holding_id": "ohold~cbdc~USD~1baa",
"holding_status": "APPROVE_MINT",
"last_updated_time": "2025-08-12T21:01:03.000Z",
"notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
"notary_org_id": "CentralBank",
"operation_id": null,
"timetoexpiration": null,
"to_account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
"to_org_id": "CentralBank",
"token_name": null,
"quantity": 10000
}
]
-
getPendingIssuance
- Diese Methode ruft alle Transaktionen mit ausstehender Ausstellung (Übertragung) ab, bei denen der Anrufer als Genehmiger zugewiesen ist, einschließlich Details der Organisation und Benutzer-IDs der beteiligten Konten (Absender, Empfänger und Notar). Diese Methode kann nur von einer
Token Admin oder Token Auditor des Chaincodes, einer Org Admin oder Org Auditor der angegebenen Organisation oder der Notary aufgerufen werden.
@GetMethod()
@Validator(yup.string(), yup.string())
public async getPendingIssuance(token_id: string, org_id: string) {
return await this.Ctx.CBDCToken.getPendingIssuance(token_id, org_id);
}
- Parameter:
token_id: string: Die ID des Tokens.
org_id: string - Die Mitgliedsdienstanbieter-ID (MSP) der Organisation, für die ausstehende Übertragungen abgerufen werden sollen.
- Beispiel für Rückgabewert:
[
{
"asset_type": "ONHOLD",
"category": "issuance",
"from_account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
"from_org_id": "CentralBank",
"holding_id": "ohold~cbdc~USD~77b75873",
"notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
"notary_org_id": "CentralBank",
"operation_id": "77b75873",
"timetoexpiration": "0",
"to_account_id": "oaccount~3954f54a8bc7acdd0c3d0960104240f60d56c26c8a179430267359cd80ce3709",
"to_org_id": "org2",
"token_id": "USD",
"token_name": "cbdc",
"quantity": 200
},
{
"asset_type": "ONHOLD",
"category": "transfer",
"from_account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
"from_org_id": "CentralBank",
"holding_id": "ohold~cbdc~USD~e26f11da",
"notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
"notary_org_id": "CentralBank",
"operation_id": "e26f11da",
"timetoexpiration": "0",
"to_account_id": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
"to_org_id": "Org1",
"token_id": "USD",
"token_name": "cbdc",
"quantity": 100
}
]
-
getPendingRequest
- Diese Methode ruft alle ausstehenden Anforderungen eines bestimmten Typs ab, bei denen der Aufrufer als Genehmiger zugewiesen ist. Diese Methode kann nur von einer
Token Admin oder Token Auditor des Chaincodes, einer Org Admin oder Org Auditor der angegebenen Organisation oder der Notary aufgerufen werden.
@GetMethod()
@Validator(yup.string(), yup.string(), yup.string())
public async getPendingRequest(token_id: string, request_type: string, org_id: string) {
return await this.Ctx.CBDCToken.getPendingRequest(token_id, request_type, org_id);
}
- Parameter:
token_id: string: Die ID des Tokens.
org_id: string: Die Mitgliedsdienstanbieter-(MSP-)ID der Organisation, für die ausstehende Anforderungen abgerufen werden sollen.
request_type: string: Der Transaktionstyp. Beispiel: mint oder burn.
- Beispiel für Rückgabewert:
[
{
"valueJson": {
"assetType": "ohold",
"holding_id": "ohold~cbdc~USD~89ce",
"operation_id": "89ce",
"token_name": "cbdc",
"from_org_id": "CentralBank",
"operation_type": "mint",
"status": "pending",
"from_account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
"to_account_id": "",
"notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
"token_id": "USD",
"quantity": 2000,
"time_to_expiration": "0",
"description": "Minting 2000 tokens"
}
},
{
"valueJson": {
"assetType": "ohold",
"holding_id": "ohold~cbdc~USD~cf73",
"operation_id": "cf73",
"token_name": "cbdc",
"from_org_id": "CentralBank",
"operation_type": "mint",
"status": "pending",
"from_account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
"to_account_id": "",
"notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
"token_id": "USD",
"quantity": 200,
"time_to_expiration": "0",
"description": "Minting 200"
}
}
]
-
getTotalBalanceByCallerOrgId
- Diese Methode ruft den Gesamtsaldo der Organisation des Aufrufers ab. Er kann von einem
Token Admin, Token Auditor, Org Admin, Org Auditor oder einem beliebigen Accounteigentümer aufgerufen werden.
@GetMethod()
@Validator()
public async getTotalBalanceByCallerOrgId() {
const org_id = await this.Ctx.Model.getCallerOrgId()
await this.Ctx.Auth.checkAuthorization("CBDC_TOKEN.getTotalBalanceByCallerOrgId", "TOKEN", { org_id });
return await this.Ctx.CBDCToken.getTotalBalanceByCallerOrgId();
}
- Beispiel für Rückgabewert:
{
"totalBalance": 50500
}
-
getTransactionWithBlockNumber
- Diese Methode gibt die Details der Transaktion für die angegebene Transaktions-ID zurück. Diese Methode kann nur von einem
Token Admin, Token Auditor, Org Admin, Org Auditor oder einem beliebigen Teilnehmer der Transaktion aufgerufen werden.
@GetMethod()
@Validator(yup.string(), yup.string())
public async getTransactionWithBlockNumber(token_id: string, transaction_id: string) {
return await this.Ctx.CBDCToken.getTransactionWithBlockNumber(token_id, transaction_id);
}
- Parameter:
token_id: string: Die ID des Tokens.
transaction_id: string: Die ID der Transaktion.
- Beispiel für Rückgabewert:
[
{
"blockNo": 340,
"key": "otransaction~3140569a4ecb3c3f141cc2468fe21276640b7fd79013d951d9104b79072d8f9c",
"metadata": null,
"txnNo": 0,
"value": null,
"valueJson": {
"assetType": "otransaction",
"blockNo": 336,
"txnNo": 1,
"transaction_id": "otransaction~3140569a4ecb3c3f141cc2468fe21276640b7fd79013d951d9104b79072d8f9c",
"token_id": "USD",
"from_account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
"from_account_balance": 26800,
"from_account_onhold_balance": 300,
"to_account_id": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
"transaction_type": "EXECUTE_HOLD_SENDER",
"amount": 200,
"timestamp": "2025-08-25T13:16:55.000Z",
"number_of_sub_transactions": 0,
"holding_id": "ohold~cbdc~USD~81d7c4ac",
"sub_transaction": "false",
"category": "transfer",
"global_transaction_id": "b54d4333-f4bb-4ca4-a7b7-cc75b659d912"
}
}
]
-
getAllActiveAccounts
- Diese Methode gibt alle aktiven Konten zurück, die mit der angegebenen Token-ID verknüpft sind.
@GetMethod()
@Validator(yup.string(), yup.string())
public async getAllActiveAccounts(orgId: string, tokenId: string) {
return this.Ctx.CBDCToken.getAllActiveAccounts(orgId, tokenId);
}
- Parameter:
token_id: string: Die ID des Tokens.
org_id: string: Die MSP-ID (Member Service Provider) der Organisation, für die aktive Accounts abgerufen werden sollen.
- Rückgabewert:
- Bei Erfolg eine Meldung mit Benutzerdetails. Die Ausgabe variiert je nach Benutzerrolle, wie in den folgenden Beispielen gezeigt.
- Beispiel für Rückgabewerte (Tokenadministrator, Tokenauditor, Organisationsadministrator, Organisationsauditor):
[
{
"key": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61",
"role_name": null,
"valueJson": {
"account_id": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61",
"org_id": "CentralBank",
"token_id": "USD",
"application_groups": [
"SYSTEM_ADMINS"
],
"max_daily_amount": "10000",
"max_daily_transactions": "1000"
},
"non_account_role_name": [
"token_admin"
]
},
{
"key": "oaccount~1a6ea9aaa59c9ae8385bfdc870bf02616995c881ffeb111f526c8b31dbbdd43c",
"role_name": null,
"valueJson": {
"account_id": "oaccount~1a6ea9aaa59c9ae8385bfdc870bf02616995c881ffeb111f526c8b31dbbdd43c",
"org_id": "CentralBank",
"token_id": "USD",
"application_groups": [
"SYSTEM_AUDITORS"
],
"max_daily_amount": "10000",
"max_daily_transactions": "1000"
},
"non_account_role_name": [
"token_auditor"
]
},
{
"key": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
"role_name": "minter",
"valueJson": {
"account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
"org_id": "CentralBank",
"token_id": "USD",
"application_groups": [
"SYSTEM_CREATORS"
],
"max_daily_amount": "1000000",
"max_daily_transactions": "100000"
},
"non_account_role_name": []
},
{
"key": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
"role_name": "notary",
"valueJson": {
"account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
"org_id": "CentralBank",
"token_id": "USD",
"application_groups": [
"SYSTEM_MANAGERS"
],
"max_daily_amount": "10000",
"max_daily_transactions": "1000"
},
"non_account_role_name": []
}
]
- Beispiel für Rückgabewert (alle anderen Benutzer):
[
{
"key": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61",
"role_name": null,
"valueJson": {
"account_id": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61",
"org_id": "CentralBank",
"token_id": "USD",
"application_groups": [
"SYSTEM_ADMINS"
]
}
},
{
"key": "oaccount~1a6ea9aaa59c9ae8385bfdc870bf02616995c881ffeb111f526c8b31dbbdd43c",
"role_name": null,
"valueJson": {
"account_id": "oaccount~1a6ea9aaa59c9ae8385bfdc870bf02616995c881ffeb111f526c8b31dbbdd43c",
"org_id": "CentralBank",
"token_id": "USD",
"application_groups": [
"SYSTEM_AUDITORS"
]
}
},
{
"key": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
"role_name": "minter",
"valueJson": {
"account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
"org_id": "CentralBank",
"token_id": "USD",
"application_groups": [
"SYSTEM_CREATORS"
]
}
},
{
"key": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
"role_name": "notary",
"valueJson": {
"account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
"org_id": "CentralBank",
"token_id": "USD",
"application_groups": [
"SYSTEM_MANAGERS"
]
}
}
]
-
getAllSuspendedAccounts
- Diese Methode gibt alle ausgesetzten Accounts zurück, die mit der angegebenen Token-ID verknüpft sind.
@GetMethod()
@Validator(yup.string(), yup.string())
public async getAllSuspendedAccounts(orgId: string, tokenId: string) {
return this.Ctx.CBDCToken.getAllSuspendedAccounts(orgId, tokenId);
}
- Parameter:
token_id: string: Die ID des Tokens.
org_id: string: Die Mitgliedsdienstanbieter-(MSP-)ID der Organisation zum Abrufen der ausgesetzten Accounts.
- Rückgabewert:
- Bei Erfolg eine Meldung mit Benutzerdetails. Die Ausgabe variiert je nach Benutzerrolle, wie in den folgenden Beispielen gezeigt.
- Beispiel für Rückgabewerte (Tokenadministrator, Tokenauditor, Organisationsadministrator, Organisationsauditor):
[
{
"key": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61",
"role_name": null,
"valueJson": {
"account_id": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61",
"org_id": "CentralBank",
"token_id": "USD",
"application_groups": [
"SYSTEM_ADMINS"
],
"max_daily_amount": "10000",
"max_daily_transactions": "1000"
},
"non_account_role_name": [
"token_admin"
]
}
]
- Beispiel für Rückgabewert (alle anderen Benutzer):
[
{
"key": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61",
"role_name": null,
"valueJson": {
"account_id": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61",
"org_id": "CentralBank",
"token_id": "USD",
"application_groups": [
"SYSTEM_ADMINS"
]
}
}
]