-
isTokenAdmin
- Diese Methode gibt den booleschen Wert
true
zurück, wenn der Aufrufer der Funktion ein Token Admin
ist. Andernfalls gibt sie false
zurück. Eine Token Admin
, Token Auditor
, eine beliebige Org Admin
oder eine beliebige Org Auditor
kann diese Funktion für jeden anderen Benutzer im Blockchain-Netzwerk aufrufen. Andere Benutzer können diese Methode nur für ihre eigenen Accounts aufrufen.
@GetMethod()
@Validator(yup.string(), yup.string())
public async isTokenAdmin(org_id: string, user_id: string) {
await this.Ctx.Auth.checkAuthorization("ADMIN.isUserTokenAdmin", "TOKEN", { org_id });
return await this.Ctx.Auth.isUserTokenAdmin(org_id, user_id);
}
- Parameter:
org_id: string
: Die Mitgliedsdienstanbieter-(MSP-)ID des Benutzers in der aktuellen Organisation.
user_id: string
: Der Benutzername oder die E-Mail-ID des Benutzers.
- Rückgabewert:
- Die Methode gibt
true
zurück, wenn der Aufrufer ein Token Admin
ist. Andernfalls wird false
zurückgegeben.
-
addTokenAdmin
- Diese Methode fügt einen Benutzer als
Token Admin
des Chaincodes hinzu. Diese Methode kann nur von einem Token Admin
des Chaincodes aufgerufen werden. Da der Wert user_id
im öffentlichen Buch gespeichert ist, verwenden Sie keine personenbezogenen Informationen (PII) für den Wert user_id
.
@Validator(yup.string(), yup.string())
public async addTokenAdmin(org_id: string, user_id: string) {
await this.Ctx.Auth.checkAuthorization("ADMIN.addTokenAdmin", "TOKEN");
await this.Ctx.Model.createEvent(EVENT_NAME.ADD_TOKEN_ADMIN, { org_id, user_id });
return await this.Ctx.Admin.addTokenAdmin(org_id, user_id);
}
- Parameter:
org_id: string
: Die Mitgliedsdienstanbieter-(MSP-)ID des Benutzers in der aktuellen Organisation.
user_id: string
: Der Benutzername oder die E-Mail-ID des Benutzers.
- Rückgabewert:
- Bei Erfolg eine Nachricht, die Details des Benutzers enthält, der als
Token Admin
des Chaincodes hinzugefügt wurde.
- Beispiel für Rückgabewert:
{
"msg": "Successfully added Token Admin (Org_Id: CentralBank, User_Id: cb1)"
}
-
removeTokenAdmin
- Mit dieser Methode wird ein Benutzer als
Token Admin
des Chaincodes entfernt. Diese Methode kann nur von einem Token Admin
des Chaincodes aufgerufen werden.
@Validator(yup.string(), yup.string())
public async removeTokenAdmin(org_id: string, user_id: string) {
await this.Ctx.Auth.checkAuthorization("ADMIN.removeTokenAdmin", "TOKEN");
await this.Ctx.Model.createEvent(EVENT_NAME.REMOVE_TOKEN_ADMIN, { org_id, user_id });
return await this.Ctx.Admin.removeTokenAdmin(org_id, user_id);
}
- Parameter:
org_id: string
: Die Mitgliedsdienstanbieter-(MSP-)ID des Benutzers in der aktuellen Organisation.
user_id: string
: Der Benutzername oder die E-Mail-ID des Benutzers.
- Rückgabewert:
- Bei Erfolg eine Nachricht, die Details des Benutzers enthält, der als
Token Admin
des Chaincodes entfernt wurde.
- Beispiel für Rückgabewert:
{"msg": "Successfully removed Admin (Org_Id: Org1MSP, User_Id: User1)"}
-
addOrgAdmin
- Diese Methode fügt einen Benutzer als
Org Admin
der Organisation hinzu. Diese Methode kann nur von einem Token Admin
des Chaincodes oder einem Org Admin
der angegebenen Organisation aufgerufen werden. Da der Wert user_id
im öffentlichen Buch gespeichert ist, verwenden Sie keine personenbezogenen Informationen (PII) für den Wert user_id
.
@Validator(yup.string(), yup.string())
public async addOrgAdmin(org_id: string, user_id: string) {
await this.Ctx.Auth.checkAuthorization("ADMIN.addOrgAdmin", "TOKEN", { org_id });
await this.Ctx.Model.createEvent(EVENT_NAME.ADD_ORG_ADMIN, { org_id, user_id });
return await this.Ctx.Admin.addOrgAdmin(org_id, user_id);
}
- Parameter:
org_id: string
: Die Mitgliedsdienstanbieter-(MSP-)ID des Benutzers in der aktuellen Organisation.
user_id: string
: Der Benutzername oder die E-Mail-ID des Benutzers.
- Rückgabewert:
- Bei Erfolg eine Nachricht, die Details des Benutzers enthält, der als
Org Admin
der Organisation hinzugefügt wurde.
- Beispiel für Rückgabewert:
{
"msg": "Successfully added Org Admin (Org_Id: Org1MSP, User_Id: orgAdmin)"
}
-
removeOrgAdmin
- Mit dieser Methode wird ein Benutzer als
Org Admin
der Organisation entfernt. Diese Methode kann nur durch eine Token Admin
des Chaincodes oder durch eine Org Admin
der angegebenen Organisation aufgerufen werden.
@Validator(yup.string(), yup.string())
public async removeOrgAdmin(org_id: string, user_id: string) {
await this.Ctx.Auth.checkAuthorization("ADMIN.removeOrgAdmin", "TOKEN", { org_id });
await this.Ctx.Model.createEvent(EVENT_NAME.REMOVE_ORG_ADMIN, { org_id, user_id });
return await this.Ctx.Admin.removeOrgAdmin(org_id, user_id);
}
- Parameter:
org_id: string
: Die Mitgliedsdienstanbieter-(MSP-)ID des Benutzers in der aktuellen Organisation.
user_id: string
: Der Benutzername oder die E-Mail-ID des Benutzers.
- Rückgabewert:
- Bei Erfolg eine Nachricht, die Details des Benutzers enthält, der als
Org Admin
der Organisation entfernt wurde.
- Beispiel für Rückgabewert:
{
"msg": "Successfully removed Org Admin (Org_Id Org1MSP User_Id orgAdmin)"
}
-
addTokenAuditor
- Diese Methode fügt einen Benutzer als
Token Auditor
des Chaincodes hinzu. Diese Methode kann nur von einem Token Admin
des Chaincodes aufgerufen werden. Da der Wert user_id
im öffentlichen Buch gespeichert ist, verwenden Sie keine personenbezogenen Informationen (PII) für den Wert user_id
.
@Validator(yup.string(), yup.string())
public async addTokenAuditor(org_id: string, user_id: string) {
await this.Ctx.Auth.checkAuthorization("ADMIN.addTokenAuditor", "TOKEN");
await this.Ctx.Model.createEvent(EVENT_NAME.ADD_TOKEN_AUDITOR, { org_id, user_id });
return await this.Ctx.Admin.addTokenAuditor(org_id, user_id);
}
- Parameter:
org_id: string
: Die Mitgliedsdienstanbieter-(MSP-)ID des Benutzers in der aktuellen Organisation.
user_id: string
: Der Benutzername oder die E-Mail-ID des Benutzers.
- Beispiel für Rückgabewert:
{
"msg": "Successfully added Token Auditor (Org_Id: CentralBank, User_Id: cb_admin_demo)"
}
-
removeTokenAuditor
- Mit dieser Methode wird ein Benutzer als
Token Auditor
des Chaincodes entfernt. Diese Methode kann nur von einem Token Admin
des Chaincodes aufgerufen werden.
@Validator(yup.string(), yup.string())
public async removeTokenAuditor(org_id: string, user_id: string) {
await this.Ctx.Auth.checkAuthorization("ADMIN.removeTokenAuditor", "TOKEN");
await this.Ctx.Model.createEvent(EVENT_NAME.REMOVE_TOKEN_AUDITOR, { org_id, user_id });
return await this.Ctx.Admin.removeTokenAuditor(org_id, user_id);
}
- Parameter:
org_id: string
: Die Mitgliedsdienstanbieter-(MSP-)ID des Benutzers in der aktuellen Organisation.
user_id: string
: Der Benutzername oder die E-Mail-ID des Benutzers.
- Beispiel für Rückgabewert:
{
"msg": "Successfully removed Token Auditor (Org_Id: CB, User_Id: cb)"
}
-
addOrgAuditor
- Diese Methode fügt einen Benutzer als
Org Auditor
des Chaincodes hinzu. Diese Methode kann nur mit einer Token Admin
oder Org Admin
des Chaincodes aufgerufen werden. Da der Wert user_id
im öffentlichen Buch gespeichert ist, verwenden Sie keine personenbezogenen Informationen (PII) für den Wert user_id
.
@Validator(yup.string(), yup.string())
public async addOrgAuditor(org_id: string, user_id: string) {
await this.Ctx.Auth.checkAuthorization("ADMIN.addOrgAuditor", "TOKEN", { org_id });
await this.Ctx.Model.createEvent(EVENT_NAME.ADD_ORG_AUDITOR, { org_id, user_id });
return await this.Ctx.Admin.addOrgAuditor(org_id, user_id);
}
- Parameter:
org_id: string
: Die Mitgliedsdienstanbieter-(MSP-)ID des Benutzers in der aktuellen Organisation.
user_id: string
: Der Benutzername oder die E-Mail-ID des Benutzers.
- Rückgabewert:
- Bei Erfolg eine Nachricht, die Details des Benutzers enthält, der als
Org Auditor
des Chaincodes hinzugefügt wurde.
- Beispiel für Rückgabewert:
{
"msg": "Successfully added Org Auditor (Org_Id: CentralBank, User_Id: cb_admin_demo)"
}
-
removeOrgAuditor
- Mit dieser Methode wird ein Benutzer als
Org Auditor
des Chaincodes entfernt. Diese Methode kann nur mit einer Token Admin
oder Org Admin
des Chaincodes aufgerufen werden.
@Validator(yup.string(), yup.string())
public async removeOrgAuditor(org_id: string, user_id: string) {
await this.Ctx.Auth.checkAuthorization("ADMIN.removeOrgAuditor", "TOKEN", { org_id });
await this.Ctx.Model.createEvent(EVENT_NAME.REMOVE_ORG_AUDITOR, { org_id, user_id });
return await this.Ctx.Admin.removeOrgAuditor(org_id, user_id);
}
- Parameter:
org_id: string
: Die Mitgliedsdienstanbieter-(MSP-)ID des Benutzers in der aktuellen Organisation.
user_id: string
: Der Benutzername oder die E-Mail-ID des Benutzers.
- Beispiel für Rückgabewert:
{
"msg": "Successfully removed Org Auditor (Org_Id: CB, User_Id: cb)"
}
-
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. Konten verfolgen Salden, einbehaltene Salden und die Transaktionshistorie. Eine Konto-ID wird gebildet, indem der Assettyp und die Token-ID verkettet und dann ein SHA-256-Hash über eine Verkettung aus Organisations-ID und Benutzer-ID erstellt werden. 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.object().nullable())
public async createAccount(org_id: string, user_id: string, token_type: 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, dailyLimits });
return await this.Ctx.Account.createAccount(org_id, user_id, token_type, 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",
}
-
associateTokenToAccount
- Diese Methode verknüpft ein fungibles Token mit einem Konto. Diese Methode kann nur durch eine
Token Admin
des Chaincodes oder durch eine Org Admin
der relevanten Organisation aufgerufen werden.
@Validator(yup.string(), yup.string(), yup.string().optional())
public async associateTokenToAccount(account_id: string, token_id: string, custom_account_id?: string) {
await this.Ctx.Auth.checkAuthorization("ACCOUNT.associateToken", "TOKEN", { account_id });
const token_asset = await this.getTokenObject(token_id);
await this.Ctx.Model.createEvent(EVENT_NAME.ASSOCIATE_TOKEN_TO_ACCOUNT, { account_id, token_asset }, token_asset);
return await this.Ctx.Account.associateToken(account_id, token_id, custom_account_id);
}
- Parameter:
account_id: string
: Die ID des Kontos.
token_id: string
: Die ID des Tokens.
custom_account_id: string
: Im vertraulichen Modus die Bankkontokennung des Kontos, eine eindeutige zufällige alphanumerische ID. Standardmäßig 14 Zeichen lang.
- Rückgabewert:
- Bei Erfolg ein JSON-Objekt des aktualisierten Accounts. Der Parameter
bapAccountVersion
wird zur internen Verwendung im Accountobjekt definiert.
- Beispiel für Rückgabewert:
{
"bapAccountVersion": 0,
"assetType": "oaccount",
"account_id": "oaccount~b53cb2c19c92d1d5c8cb9f6e988e7761c34e03e014e6c4b889565fc0abf46c8a",
"org_id": "CentralBank",
"token_type": "fungible",
"token_id": "USD",
"token_name": "cbdc",
"balance": "028b72742c8aa9a0395c828fe4f0e46226a3e40d4e731d0b994c8028c8b7bd4df6",
"onhold_balance": "028b72742c8aa9a0395c828fe4f0e46226a3e40d4e731d0b994c8028c8b7bd4df6",
"onhold_burn_balance": "028b72742c8aa9a0395c828fe4f0e46226a3e40d4e731d0b994c8028c8b7bd4df6",
"application_groups": [
"CENTRAL_BANK_USERS"
]
}
-
getAllAccounts
- Diese Methode gibt eine Liste aller Konten zurück. Diese Methode kann nur mit einer
Token Admin
oder Token Auditor
aufgerufen werden. Diese Methode verwendet SQL-reiche Berkeley DB-Abfragen und kann nur aufgerufen werden, wenn eine Verbindung zum Remote-Oracle Blockchain Platform-Netzwerk besteht.
@GetMethod()
@Validator()
public async getAllAccounts() {
await this.Ctx.Auth.checkAuthorization("ACCOUNT.getAllAccounts", "TOKEN");
return await this.Ctx.Account.getAllAccounts();
}
- Parameter:
- Beispiel für Rückgabewert:
[
{
"key": "oaccount~5abb4155f4b245bb1732321e3174ac81999b03495b5c74f8e1f270bafbadef75",
"valueJson": {
"bapAccountVersion": 3,
"assetType": "oaccount",
"account_id": "oaccount~5abb4155f4b245bb1732321e3174ac81999b03495b5c74f8e1f270bafbadef75",
"org_id": "CentralBank",
"token_type": "fungible",
"token_id": "token",
"token_name": "cbdc",
"balance": "028a27c752e9b518d156e61da6589e723b179b6d7351dc34ec92bbb27b783ed1dc",
"onhold_balance": "02d53a7eda9484bda7252212714f647b70d32663cfa416f93f488ef6b6bc8fb2eb",
"onhold_burn_balance": "02d53a7eda9484bda7252212714f647b70d32663cfa416f93f488ef6b6bc8fb2eb",
"application_groups": [
"application_groups value"
]
}
},
{
"key": "oaccount~1da238c1491c919b151f777a615fb5779032c34b3ef3adeca6afe591bac10aaf",
"valueJson": {
"bapAccountVersion": 0,
"assetType": "oaccount",
"account_id": "oaccount~1da238c1491c919b151f777a615fb5779032c34b3ef3adeca6afe591bac10aaf",
"org_id": "CentralBank",
"token_type": "fungible",
"token_id": "token",
"token_name": "cbdc",
"balance": "020da01cd57249c6470b6dd03c2ee4c49de58c71ccc64f2de1203e835967a0846d",
"onhold_balance": "020da01cd57249c6470b6dd03c2ee4c49de58c71ccc64f2de1203e835967a0846d",
"onhold_burn_balance": "020da01cd57249c6470b6dd03c2ee4c49de58c71ccc64f2de1203e835967a0846d",
"application_groups": [
"application_groups value"
]
}
}
]
-
getAllOrgAccounts
- Diese Methode gibt eine Liste aller Token-Accounts zurück, die zu einer bestimmten Organisation gehören. Diese Methode kann nur von einer
Token Admin
oder Token Auditor
oder von einer Org Admin
oder Org Auditor
der angegebenen Organisation aufgerufen werden.
@GetMethod()
@Validator(yup.string())
public async getAllOrgAccounts(org_id: string) {
await this.Ctx.Auth.checkAuthorization("ACCOUNT.getAllOrgAccounts", "TOKEN", { org_id });
return await this.Ctx.Account.getAllOrgAccounts(org_id);
}
- Parameter:
org_id: string
: Die Mitgliedsdienstanbieter-(MSP-)ID der Organisation.
- Rückgabewert:
- Bei Erfolg eine Liste aller Accounts für die angegebene Organisation.
- Beispiel für Rückgabewert:
[
{
"key": "oaccount~22776ada3efff6aaf4c68c204c1f063b139adfa1bca79ed53199117c34036cfc",
"valueJson": {
"bapAccountVersion": 2,
"assetType": "oaccount",
"account_id": "oaccount~22776ada3efff6aaf4c68c204c1f063b139adfa1bca79ed53199117c34036cfc",
"org_id": "CentralBank",
"token_type": "fungible",
"token_id": "token",
"token_name": "cbdc",
"balance": "18",
"onhold_balance": "0",
"onhold_burn_balance": "0",
"application_groups": [
"application_groups value"
],
"user_id": "cb",
"custom_account_id": "1234567jh"
}
},
{
"key": "oaccount~5e3b5a3306d7ca3f3e3fe7cc27b6ae547e94dba1c5af58a69a771d7a619b6a66",
"valueJson": {
"bapAccountVersion": 1,
"assetType": "oaccount",
"account_id": "oaccount~5e3b5a3306d7ca3f3e3fe7cc27b6ae547e94dba1c5af58a69a771d7a619b6a66",
"org_id": "CentralBank",
"token_type": "fungible",
"token_id": "token",
"token_name": "cbdc",
"balance": "22",
"onhold_balance": "0",
"onhold_burn_balance": "0",
"application_groups": [
"application_groups value"
],
"user_id": "cb1",
"custom_account_id": "1234567jh"
}
}
]
-
getAccountsByUser
- Diese Methode gibt eine Liste aller Konto-IDs für eine angegebene Organisations-ID und Benutzer-ID zurück. Diese Methode kann nur von
Token Admin
oder Token Auditor
, von der Org Admin
oder Org Auditor
der angegebenen Organisation oder von der in den Parametern angegebenen Account Owner
aufgerufen werden.
@GetMethod()
@Validator(yup.string(), yup.string())
public async getAccountsByUser(org_id: string, user_id: string) {
await this.Ctx.Auth.checkAuthorization("ACCOUNT.getAccountsByUser", "TOKEN", { org_id, user_id });
return await this.Ctx.Account.getAccountsByUser(org_id, user_id);
}
- Parameter:
org_id string
: Die Mitgliedsdienstanbieter-(MSP-)ID des Benutzers in der aktuellen Organisation.
user_id string
: Der Benutzername oder die E-Mail-ID des Benutzers.
- Rückgabewert:
- Bei Erfolg ein JSON-Array mit Konto-IDs.
- Beispiel für Rückgabewert:
[
{
"bapAccountVersion": 2,
"assetType": "oaccount",
"user_id": "cb",
"custom_account_id": "1234567jh",
"account_id": "oaccount~22776ada3efff6aaf4c68c204c1f063b139adfa1bca79ed53199117c34036cfc",
"org_id": "CentralBank",
"token_type": "fungible",
"token_id": "token",
"token_name": "cbdc",
"balance": "18",
"onhold_balance": "0",
"onhold_burn_balance": "0",
"application_groups": [
"application_groups value"
]
}
]
-
getUserByAccountId
- Diese Methode gibt Benutzerdetails (
org_id
und user_id
) für einen angegebenen Account zurück. Diese Methode kann von einer Token Admin
oder Token Auditor
oder von einer Org Admin
oder Org Auditor
der angegebenen Organisation aufgerufen werden.
@GetMethod()
@Validator(yup.string())
public async getUserByAccountId(account_id: string) {
await this.Ctx.Auth.checkAuthorization("ACCOUNT.getUserByAccountId", "TOKEN", { account_id });
return await this.Ctx.Account.getUserByAccountId(account_id);
}
- Parameter:
account_id: string
: Die ID des Kontos.
- Rückgabewert:
- Bei Erfolg ein JSON-Objekt der Benutzerdetails (
org_id
, token_id
und user_id
).
- Beispiel für Rückgabewert:
{
"token_id": "USD",
"org_id": "CentralBank",
"user_id": "cb_admin_demo",
"custom_account_id": "10101234000123"
}
-
getAccount
- Diese Methode gibt Details für ein angegebenes Konto zurück. Diese Methode kann nur von einer
Token Admin
oder Token Auditor
, einer Org Admin
oder Org Auditor
der angegebenen Organisation oder der AccountOwner
des Accounts aufgerufen werden.
@GetMethod()
@Validator(yup.string())
public async getAccount(account_id: string) {
await this.Ctx.Account.getAccountWithTokenIdValidation(account_id);
await this.Ctx.Auth.checkAuthorization("ACCOUNT.getAccount", "TOKEN", { account_id });
return await this.Ctx.Account.getAccountWithStatus(account_id);
}
- Parameter:
account_id: string
: Die eindeutige ID des Tokenaccounts.
- Beispiel für Rückgabewert:
{
"bapAccountVersion": 2,
"assetType": "oaccount",
"user_id": "cb",
"custom_account_id": "1234567jh",
"status": "active",
"account_id": "oaccount~22776ada3efff6aaf4c68c204c1f063b139adfa1bca79ed53199117c34036cfc",
"org_id": "CentralBank",
"token_type": "fungible",
"token_id": "token",
"token_name": "cbdc",
"balance": "18",
"onhold_balance": "0",
"onhold_burn_balance": "0",
"application_groups": [
"application_groups value"
]
}
-
getAccountDetailsByCustomAccountId
- Diese Methode gibt Details für eine angegebene benutzerdefinierte Konto-ID zurück. Diese Methode kann nur von
Token Admin
oder Token Auditor
oder Org Admin
oder Org Auditor
der angegebenen Organisation aufgerufen werden.
@GetMethod()
@Validator(yup.string(), yup.string())
public async getAccountDetailsByCustomAccountId(custom_account_id: string, org_id: string) {
await this.Ctx.Auth.checkAuthorization("ACCOUNT.getAccountDetailsByCustomAccountId", "TOKEN", { org_id });
return await this.Ctx.Account.getAccountDetailsByCustomAccountId(custom_account_id, org_id);
}
- Parameter:
custom_account_id: string
: Die Bankkontokennung des Kontos, eine eindeutige zufällige alphanumerische ID.
org_id: string
: Die Mitgliedsdienstanbieter-(MSP-)ID der Organisation.
- Beispiel für Rückgabewert:
[
{
"bapAccountVersion": 0,
"assetType": "oaccount",
"account_id": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61",
"org_id": "CentralBank",
"token_type": "fungible",
"token_id": "USD",
"token_name": "cbdc",
"balance": "0",
"onhold_balance": "0",
"onhold_burn_balance": "0",
"application_groups": [
"SYSTEM_ADMINS"
],
"user_id": "cb_admin_demo",
"custom_account_id": "10101234000123"
}
]
-
getAccountTransactionHistory
- Diese Methode gibt ein Array von Kontotransaktionshistoriendetails für ein angegebenes Konto zurück. Diese Methode kann nur von
Token Admin
oder Token Auditor
, einer Org Admin
oder Org Auditor
der angegebenen Organisation oder der AccountOwner
des Accounts aufgerufen werden.
@GetMethod()
@Validator(yup.string())
public async getAccountTransactionHistory(account_id: string) {
const account: FungibleAccount = await this.Ctx.Account.getAccountWithTokenIdValidation(account_id);
await this.Ctx.Auth.checkAuthorization("ACCOUNT.getAccountTransactionHistory", "TOKEN", { account_id });
return await this.Ctx.Account.getAccountTransactionHistory(account_id, account.org_id);
}
- Parameter:
account_id: string
: Die eindeutige ID des Kontos.
- Beispiel für Rückgabewert:
[
{
"transaction_id": "otransaction~4514aa229ebcc4d2fedcaa47c4301615e30c4a9bae45cf0256a5b80d75b3697a",
"transacted_amount": 1000,
"timestamp": "2025-08-25T13:20:50.000Z",
"token_id": "USD",
"transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
"transaction_type": "APPROVE_MINT",
"balance": 21000,
"onhold_balance": 0
},
{
"transaction_id": "otransaction~1982f73495060e0eef4d78282a91c41e27e8c95572739b0677a1e404a0d20aa9",
"transacted_amount": 200,
"timestamp": "2025-08-25T13:12:43.000Z",
"token_id": "USD",
"transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
"transaction_type": "REQUEST_MINT",
"balance": 20000,
"onhold_balance": 0
},
{
"transaction_id": "otransaction~fedd714cf1509f7517819d7cd4c0921d0b2f5d1ff6a25dcb08ab411defd6b5f3",
"transacted_amount": 2000,
"timestamp": "2025-08-21T05:23:25.000Z",
"token_id": "USD",
"transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
"transaction_type": "REQUEST_MINT",
"balance": 20000,
"onhold_balance": 0
},
{
"transaction_id": "otransaction~f33b47234f3ee0b636962c8c31c01d06523b789ca16b3b342d5080b71268bcc3",
"transacted_amount": 1000,
"timestamp": "2025-08-21T05:23:07.000Z",
"token_id": "USD",
"transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
"transaction_type": "REQUEST_MINT",
"balance": 20000,
"onhold_balance": 0
},
{
"transaction_id": "otransaction~cf934527149bc24f62a8ddeeea7f74a19a0f84d8f161535a771be49d2520d5b3",
"transacted_amount": 10000,
"timestamp": "2025-08-13T06:12:41.000Z",
"token_id": "USD",
"transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
"transaction_type": "APPROVE_MINT",
"balance": 20000,
"onhold_balance": 0
},
{
"transaction_id": "otransaction~f5c0e11ca61d9adc843658929e6de2a738ad586304f9e020f75bf4aac5e42a2c",
"transacted_amount": 10000,
"timestamp": "2025-08-13T06:12:04.000Z",
"token_id": "USD",
"transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
"transaction_type": "REQUEST_MINT",
"balance": 10000,
"onhold_balance": 0
},
{
"transaction_id": "otransaction~862aa9d9e877d3ea209b87299ab5b12c13ed5ce43d1cf1b934043c1dd02f58f6",
"transacted_amount": 50000,
"timestamp": "2025-08-12T21:04:22.000Z",
"token_id": "USD",
"category": "transfer",
"transacted_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
"transaction_type": "DEBIT",
"balance": 10000,
"onhold_balance": 0
},
{
"transaction_id": "otransaction~8a74c6d87ca74a613aab9db5d40386f8d5b534f9800503af8ca27e8946d7616d",
"transacted_amount": 40000,
"timestamp": "2025-08-12T21:01:27.000Z",
"token_id": "USD",
"transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
"transaction_type": "REJECT_MINT",
"balance": 60000,
"onhold_balance": 0
},
{
"transaction_id": "otransaction~28ac66ba33f7ad0648448964b2b74525c9e3f0c9908c7a0484690b9baa56c2db",
"transacted_amount": 30000,
"timestamp": "2025-08-12T21:01:16.000Z",
"token_id": "USD",
"transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
"transaction_type": "APPROVE_MINT",
"balance": 60000,
"onhold_balance": 0
},
{
"transaction_id": "otransaction~7e32ad8f365ff59814e112f27602f30ab599fb9c1638784496c66a61a6277c22",
"transacted_amount": 20000,
"timestamp": "2025-08-12T21:01:05.000Z",
"token_id": "USD",
"transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
"transaction_type": "APPROVE_MINT",
"balance": 30000,
"onhold_balance": 0
},
{
"transaction_id": "otransaction~1477050bb9e55f4f471872b31fce0d2097f5d5e57d89a842070df5e36d7ab0da",
"transacted_amount": 10000,
"timestamp": "2025-08-12T21:01:03.000Z",
"token_id": "USD",
"transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
"transaction_type": "APPROVE_MINT",
"balance": 10000,
"onhold_balance": 0
},
{
"transaction_id": "otransaction~0e76c6931b7ee134e967e847d9730b867a0fd191d39697d83d36dd15745c02e3",
"transacted_amount": 40000,
"timestamp": "2025-08-12T21:00:20.000Z",
"token_id": "USD",
"transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
"transaction_type": "REQUEST_MINT",
"balance": 0,
"onhold_balance": 0
},
{
"transaction_id": "otransaction~07bbf9c190694371626da59ded5d87434d26f612891e13bb15bdd28f6086e760",
"transacted_amount": 30000,
"timestamp": "2025-08-12T21:00:01.000Z",
"token_id": "USD",
"transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
"transaction_type": "REQUEST_MINT",
"balance": 0,
"onhold_balance": 0
},
{
"transaction_id": "otransaction~8721175c6cbbce17b6c4bb6a444e475d07f52352dfd0d990679f342215153513",
"transacted_amount": 20000,
"timestamp": "2025-08-12T20:59:41.000Z",
"token_id": "USD",
"transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
"transaction_type": "REQUEST_MINT",
"balance": 0,
"onhold_balance": 0
},
{
"transaction_id": "otransaction~dc24c24d43a6525e807a39edcf8c6a2b6ccb81f0d755958f509509687eacee84",
"transacted_amount": 10000,
"timestamp": "2025-08-12T20:59:13.000Z",
"token_id": "USD",
"transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
"transaction_type": "REQUEST_MINT",
"balance": 0,
"onhold_balance": 0
},
{
"transaction_id": "otransaction~396e6ca5a11a9609632d0864026409d46a708fb95e3e21b39fa5f3fb78f90872",
"transacted_amount": 0,
"timestamp": "2025-08-12T20:43:20.000Z",
"token_id": "",
"transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
"transaction_type": "CREATE_ACCOUNT",
"balance": 0,
"onhold_balance": 0
}
]
-
getAccountTransactionHistoryWithFilters
- Diese Methode gibt ein gefiltertes Array von Kontotransaktionshistoriendetails für einen angegebenen Benutzer und ein bestimmtes Token zurück. Diese Methode kann nur von
Token Admin
oder Token Auditor
, einer Org Admin
oder Org Auditor
der angegebenen Organisation oder der AccountOwner
des Accounts aufgerufen werden. Diese Methode kann nur aufgerufen werden, wenn eine Verbindung zu einem Remote-Oracle Blockchain Platform-Netzwerk besteht.
@GetMethod()
@Validator(yup.string(), yup.object().nullable())
public async getAccountTransactionHistoryWithFilters(account_id: string, filters?: Filters) {
const account: FungibleAccount = await this.Ctx.Account.getAccountWithTokenIdValidation(account_id);
await this.Ctx.Auth.checkAuthorization("ACCOUNT.getAccountTransactionHistoryWithFilters", "TOKEN", { account_id });
return await this.Ctx.Account.getAccountTransactionHistoryWithFilters(account_id, account.org_id, filters);
}
- Parameter:
account_id: string
: Die eindeutige ID des Kontos.
filters: string
: Ein optionaler Parameter. Wenn leer, werden alle Datensätze zurückgegeben. Die Eigenschaft PageSize
bestimmt die Anzahl der zurückzugebenden Datensätze. Wenn PageSize
0 ist, ist die Standardseitengröße 20. Die Eigenschaft Bookmark
bestimmt den Startindex der zurückzugebenden Datensätze. Weitere Informationen finden Sie in der Dokumentation zu Hyperledger Fabric. Die Eigenschaften StartTime
und EndTime
müssen im RFC-3339-Format angegeben werden.
- Beispiel für Rückgabewert:
[
{
"transaction_id": "otransaction~ccc2c2e89ab7887af4fdad3dc9918ea057a8aa834a0ed8d0f23271049f084952",
"transacted_amount": 10,
"timestamp": "2025-08-20T23:22:53.000Z",
"token_id": "token",
"category": "category value",
"description": "description value",
"holding_id": "ohold~cbdc~token~hold1",
"to_account_id": "oaccount~22776ada3efff6aaf4c68c204c1f063b139adfa1bca79ed53199117c34036cfc",
"to_org_id": "Org1",
"to_user_id": "cb",
"to_custom_account_id": "1234567jh",
"from_account_id": "oaccount~5abb4155f4b245bb1732321e3174ac81999b03495b5c74f8e1f270bafbadef75",
"from_org_id": "CentralBank",
"from_user_id": "Not Available",
"from_custom_account_id": "Not Available",
"transacted_account": "oaccount~5abb4155f4b245bb1732321e3174ac81999b03495b5c74f8e1f270bafbadef75",
"transaction_type": "CREDIT",
"balance": 18,
"onhold_balance": 0,
"transacted_org_id": "CentralBank",
"transacted_user_id": "Not Available",
"transacted_custom_account_id": "Not Available"
},
{
"transaction_id": "otransaction~6523597253e45b3c976aecdc54e2c6316d0a4f88ad5d7f3fff48c69213e4375a",
"transacted_amount": 22,
"timestamp": "2025-08-20T23:21:45.000Z",
"token_id": "token",
"category": "category value",
"description": "description value",
"to_account_id": "oaccount~5e3b5a3306d7ca3f3e3fe7cc27b6ae547e94dba1c5af58a69a771d7a619b6a66",
"to_org_id": "Org1",
"to_user_id": "cb1",
"to_custom_account_id": "1234567jh",
"from_account_id": "oaccount~22776ada3efff6aaf4c68c204c1f063b139adfa1bca79ed53199117c34036cfc",
"from_org_id": "Org1",
"from_user_id": "cb",
"from_custom_account_id": "1234567jh",
"transacted_account": "oaccount~5e3b5a3306d7ca3f3e3fe7cc27b6ae547e94dba1c5af58a69a771d7a619b6a66",
"transaction_type": "DEBIT",
"balance": 8,
"onhold_balance": 0,
"transacted_org_id": "Org1",
"transacted_user_id": "cb1",
"transacted_custom_account_id": "1234567jh"
},
{
"transaction_id": "otransaction~3212811cd7c0ff265434f5921b93621cc5b0e0450b07c52b42ad9d8ce73cf063",
"transacted_amount": 10,
"timestamp": "2025-08-20T23:18:53.000Z",
"token_id": "token",
"category": "category value",
"description": "description value",
"holding_id": "ohold~cbdc~token~hold1",
"to_account_id": "oaccount~22776ada3efff6aaf4c68c204c1f063b139adfa1bca79ed53199117c34036cfc",
"to_org_id": "Org1",
"to_user_id": "cb",
"to_custom_account_id": "1234567jh",
"from_account_id": "oaccount~5abb4155f4b245bb1732321e3174ac81999b03495b5c74f8e1f270bafbadef75",
"from_org_id": "CentralBank",
"from_user_id": "Not Available",
"from_custom_account_id": "Not Available",
"transacted_account": "oaccount~5abb4155f4b245bb1732321e3174ac81999b03495b5c74f8e1f270bafbadef75",
"transaction_type": "CREDIT",
"balance": 30,
"onhold_balance": 0,
"transacted_org_id": "CentralBank",
"transacted_user_id": "Not Available",
"transacted_custom_account_id": "Not Available"
},
{
"transaction_id": "otransaction~af2a1b0d56778e4ff5f4dda4e81bbcbf02c0592416ee2f105ff0b764e515fd0a",
"transacted_amount": 10,
"timestamp": "2025-08-20T23:17:29.000Z",
"token_id": "token",
"category": "category value",
"description": "description value",
"holding_id": "ohold~cbdc~token~hold1",
"to_account_id": "oaccount~22776ada3efff6aaf4c68c204c1f063b139adfa1bca79ed53199117c34036cfc",
"to_org_id": "Org1",
"to_user_id": "cb",
"to_custom_account_id": "1234567jh",
"from_account_id": "oaccount~5abb4155f4b245bb1732321e3174ac81999b03495b5c74f8e1f270bafbadef75",
"from_org_id": "CentralBank",
"from_user_id": "Not Available",
"from_custom_account_id": "Not Available",
"transacted_account": "oaccount~5abb4155f4b245bb1732321e3174ac81999b03495b5c74f8e1f270bafbadef75",
"transaction_type": "CREDIT",
"balance": 20,
"onhold_balance": 0,
"transacted_org_id": "CentralBank",
"transacted_user_id": "Not Available",
"transacted_custom_account_id": "Not Available"
},
{
"transaction_id": "otransaction~6c0452a58f13db93f1c308d60eab1fde6c911921b350c0bbbe0ce7dab394721d",
"transacted_amount": 10,
"timestamp": "2025-08-20T23:04:53.000Z",
"token_id": "token",
"category": "category value",
"description": "description value",
"holding_id": "ohold~cbdc~token~hold1",
"to_account_id": "oaccount~22776ada3efff6aaf4c68c204c1f063b139adfa1bca79ed53199117c34036cfc",
"to_org_id": "Org1",
"to_user_id": "cb",
"to_custom_account_id": "1234567jh",
"from_account_id": "oaccount~5abb4155f4b245bb1732321e3174ac81999b03495b5c74f8e1f270bafbadef75",
"from_org_id": "CentralBank",
"from_user_id": "Not Available",
"from_custom_account_id": "Not Available",
"transacted_account": "oaccount~5abb4155f4b245bb1732321e3174ac81999b03495b5c74f8e1f270bafbadef75",
"transaction_type": "CREDIT",
"balance": 10,
"onhold_balance": 0,
"transacted_org_id": "CentralBank",
"transacted_user_id": "Not Available",
"transacted_custom_account_id": "Not Available"
},
{
"transaction_id": "otransaction~df98e24a3b90661b54b54289b600b13a1051c922db0a4d20e3705a9820ae9c20",
"transacted_amount": 0,
"timestamp": "2025-08-20T22:55:09.000Z",
"category": "",
"description": "",
"from_account_id": "oaccount~22776ada3efff6aaf4c68c204c1f063b139adfa1bca79ed53199117c34036cfc",
"from_org_id": "Org1",
"from_user_id": "cb",
"from_custom_account_id": "1234567jh",
"transacted_account": "oaccount~22776ada3efff6aaf4c68c204c1f063b139adfa1bca79ed53199117c34036cfc",
"transaction_type": "CREATE_ACCOUNT",
"balance": 0,
"onhold_balance": 0,
"transacted_org_id": "Org1",
"transacted_user_id": "cb",
"transacted_custom_account_id": "1234567jh"
}
]
-
getAccountTransactionHistoryWithFiltersFromRichHistDB
- Diese Methode ruft die Transaktionshistorie aus der Rich-History-Datenbank ab. Diese Methode kann nur von
Token Admin
oder Token Auditor
, einer Org Admin
oder Org Auditor
der angegebenen Organisation oder der AccountOwner
des Accounts aufgerufen werden.
@GetMethod()
@Validator(yup.string(), yup.string(), yup.string(), yup.object().nullable())
public async getAccountTransactionHistoryWithFiltersFromRichHistDB(account_id: string, custom_endpoint: string, bearer_token: string, filters?: Filters) {
const account: FungibleAccount = await this.Ctx.Account.getAccountWithTokenIdValidation(account_id);
await this.Ctx.Auth.checkAuthorization("ACCOUNT.getAccountTransactionHistoryWithFiltersFromRichHistDB", "TOKEN", { account_id });
return await this.Ctx.Account.getAccountTrxHistoryWithFiltersFromRichHistDB(account_id, account.org_id, custom_endpoint, bearer_token, filters);
}
- Parameter:
account_id: string
: Die eindeutige ID des Kontos.
custom_endpoint
: Der Serviceendpunkt RESTful der Rich-History-Datenbank.
bearer_token
: Das Zugriffsautorisierungstoken für den RESTful-Serviceendpunkt.
filters: string
: Ein optionaler Parameter. Wenn leer, werden alle Datensätze zurückgegeben. Die Eigenschaft PageSize
bestimmt die Anzahl der zurückzugebenden Datensätze. Wenn PageSize
0 ist, ist die Standardseitengröße 20. Die Eigenschaft Bookmark
bestimmt den Startindex der zurückzugebenden Datensätze. Weitere Informationen finden Sie in der Dokumentation zu Hyperledger Fabric. Die Eigenschaften StartTime
und EndTime
müssen im RFC-3339-Format angegeben werden.
- Beispiel für Rückgabewert:
[
{
"transaction_id": "otransaction~3140569a4ecb3c3f141cc2468fe21276640b7fd79013d951d9104b79072d8f9c",
"transacted_amount": 200,
"timestamp": "2025-08-25T13:16:55.000Z",
"token_id": "USD",
"transacted_account": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
"transacted_org_id": "Org1",
"transacted_user_id": "fi1_org_officer_demo",
"transacted_custom_account_id": "20200222221111",
"to_account": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
"to_org_id": "Org1",
"to_user_id": "fi1_org_officer_demo",
"to_custom_account_id": "20200222221111",
"from_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
"from_org_id": "CentralBank",
"from_user_id": "cb_issuer_demo",
"from_custom_account_id": "10109999001234",
"transaction_type": "EXECUTEHOLD",
"category": "transfer",
"balance": 26800,
"onhold_balance": 300
},
{
"transaction_id": "otransaction~2b75b3e8531a651f07c2d048d8546ad70ac49c66f0b82ed7626c1739090842ce",
"transacted_amount": 100,
"timestamp": "2025-08-25T13:16:06.000Z",
"token_id": "USD",
"transacted_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
"transacted_org_id": "CentralBank",
"transacted_user_id": "cb_issuer_demo",
"transacted_custom_account_id": "10109999001234",
"to_account": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
"to_org_id": "Org1",
"to_user_id": "fi1_org_officer_demo",
"to_custom_account_id": "20200222221111",
"from_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
"from_org_id": "CentralBank",
"from_user_id": "cb_issuer_demo",
"from_custom_account_id": "10109999001234",
"transaction_type": "ONHOLD",
"holding_id": "ohold~cbdc~USD~e26f11da",
"category": "transfer",
"balance": 26800,
"onhold_balance": 500
},
{
"transaction_id": "otransaction~9e7bf14cf96c5f90170da9455b1318687785e936192f60b7cbeb1c8bfabc41d2",
"transacted_amount": 100,
"timestamp": "2025-08-21T06:57:19.000Z",
"token_id": "USD",
"transacted_account": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
"transacted_org_id": "CentralBank",
"transacted_user_id": "cb_retirer_demo",
"transacted_custom_account_id": "10109999006543",
"to_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
"to_org_id": "CentralBank",
"to_user_id": "cb_issuer_demo",
"to_custom_account_id": "10109999001234",
"from_account": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
"from_org_id": "CentralBank",
"from_user_id": "cb_retirer_demo",
"from_custom_account_id": "10109999006543",
"transaction_type": "CREDIT",
"category": "transfer",
"balance": 26900,
"onhold_balance": 400
},
{
"transaction_id": "otransaction~b3901b4754920a9c75e36069dc55024ad505e4c127f334eedf65ef6703dc6b86",
"transacted_amount": 200,
"timestamp": "2025-08-21T05:39:25.000Z",
"token_id": "USD",
"transacted_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
"transacted_org_id": "CentralBank",
"transacted_user_id": "cb_issuer_demo",
"transacted_custom_account_id": "10109999001234",
"to_account": "oaccount~3954f54a8bc7acdd0c3d0960104240f60d56c26c8a179430267359cd80ce3709",
"to_org_id": "org2",
"to_user_id": "fi2_org_officer_demo",
"to_custom_account_id": "30300617202404",
"from_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
"from_org_id": "CentralBank",
"from_user_id": "cb_issuer_demo",
"from_custom_account_id": "10109999001234",
"transaction_type": "ONHOLD",
"holding_id": "ohold~cbdc~USD~77b75873",
"category": "issuance",
"balance": 26800,
"onhold_balance": 400
},
{
"transaction_id": "otransaction~d55c9dfc9feacb353544b5d8b2ae694162ade3890bcaaf715503fd1d6a73cd1a",
"transacted_amount": 200,
"timestamp": "2025-08-21T05:39:01.000Z",
"token_id": "USD",
"transacted_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
"transacted_org_id": "CentralBank",
"transacted_user_id": "cb_issuer_demo",
"transacted_custom_account_id": "10109999001234",
"to_account": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
"to_org_id": "Org1",
"to_user_id": "fi1_org_officer_demo",
"to_custom_account_id": "20200222221111",
"from_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
"from_org_id": "CentralBank",
"from_user_id": "cb_issuer_demo",
"from_custom_account_id": "10109999001234",
"transaction_type": "ONHOLD",
"holding_id": "ohold~cbdc~USD~81d7c4ac",
"category": "transfer",
"balance": 27000,
"onhold_balance": 200
},
{
"transaction_id": "otransaction~751eaedbe4311edd5d17cae53d283caf397d0cb09f18d57a5e3fe61266875ff9",
"transacted_amount": 200,
"timestamp": "2025-08-13T09:59:22.000Z",
"token_id": "USD",
"transacted_account": "oaccount~3954f54a8bc7acdd0c3d0960104240f60d56c26c8a179430267359cd80ce3709",
"transacted_org_id": "org2",
"transacted_user_id": "fi2_org_officer_demo",
"transacted_custom_account_id": "30300617202404",
"to_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
"to_org_id": "CentralBank",
"to_user_id": "cb_issuer_demo",
"to_custom_account_id": "10109999001234",
"from_account": "oaccount~3954f54a8bc7acdd0c3d0960104240f60d56c26c8a179430267359cd80ce3709",
"from_org_id": "org2",
"from_user_id": "fi2_org_officer_demo",
"from_custom_account_id": "30300617202404",
"transaction_type": "CREDIT",
"category": "transfer",
"balance": 27200,
"onhold_balance": 0
},
{
"transaction_id": "otransaction~70155a8f4e388cc9395dbd03bedaf5a878705f5ad02302c8e9163218a5c3875a",
"transacted_amount": 1000,
"timestamp": "2025-08-13T06:22:56.000Z",
"token_id": "USD",
"transacted_account": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
"transacted_org_id": "Org1",
"transacted_user_id": "fi1_org_officer_demo",
"transacted_custom_account_id": "20200222221111",
"to_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
"to_org_id": "CentralBank",
"to_user_id": "cb_issuer_demo",
"to_custom_account_id": "10109999001234",
"from_account": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
"from_org_id": "Org1",
"from_user_id": "fi1_org_officer_demo",
"from_custom_account_id": "20200222221111",
"transaction_type": "CREDIT",
"category": "transfer",
"balance": 27000,
"onhold_balance": 0
},
{
"transaction_id": "otransaction~e595f3f0cc03fa5f58a546b8abbfaf155592e492f850581db2b8fed9a529c9e2",
"transacted_amount": 10000,
"timestamp": "2025-08-12T21:09:25.000Z",
"token_id": "USD",
"transacted_account": "oaccount~3954f54a8bc7acdd0c3d0960104240f60d56c26c8a179430267359cd80ce3709",
"transacted_org_id": "org2",
"transacted_user_id": "fi2_org_officer_demo",
"transacted_custom_account_id": "30300617202404",
"to_account": "oaccount~3954f54a8bc7acdd0c3d0960104240f60d56c26c8a179430267359cd80ce3709",
"to_org_id": "org2",
"to_user_id": "fi2_org_officer_demo",
"to_custom_account_id": "30300617202404",
"from_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
"from_org_id": "CentralBank",
"from_user_id": "cb_issuer_demo",
"from_custom_account_id": "10109999001234",
"transaction_type": "EXECUTEHOLD",
"category": "issuance",
"balance": 26000,
"onhold_balance": 0
},
{
"transaction_id": "otransaction~da92402859d87ae3069722d8e39cb0da448e9a5f67468233ee9b1fe7a4ebeef8",
"transacted_amount": 10000,
"timestamp": "2025-08-12T21:09:17.000Z",
"token_id": "USD",
"transacted_account": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
"transacted_org_id": "Org1",
"transacted_user_id": "fi1_org_officer_demo",
"transacted_custom_account_id": "20200222221111",
"to_account": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
"to_org_id": "Org1",
"to_user_id": "fi1_org_officer_demo",
"to_custom_account_id": "20200222221111",
"from_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
"from_org_id": "CentralBank",
"from_user_id": "cb_issuer_demo",
"from_custom_account_id": "10109999001234",
"transaction_type": "EXECUTEHOLD",
"category": "issuance",
"balance": 26000,
"onhold_balance": 10000
},
{
"transaction_id": "otransaction~6915145aaf09fbf4d96456febddc2aa87b48c08ddd8ff17a6bab5d310f67bb36",
"transacted_amount": 1000,
"timestamp": "2025-08-12T21:07:11.000Z",
"token_id": "USD",
"transacted_account": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
"transacted_org_id": "CentralBank",
"transacted_user_id": "cb_retirer_demo",
"transacted_custom_account_id": "10109999006543",
"to_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
"to_org_id": "CentralBank",
"to_user_id": "cb_issuer_demo",
"to_custom_account_id": "10109999001234",
"from_account": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
"from_org_id": "CentralBank",
"from_user_id": "cb_retirer_demo",
"from_custom_account_id": "10109999006543",
"transaction_type": "CREDIT",
"category": "transfer",
"balance": 26000,
"onhold_balance": 20000
},
{
"transaction_id": "otransaction~244d7172d1dc90a142e1f22204c76614c7eea814b3d61f33016b786f1b347784",
"transacted_amount": 10000,
"timestamp": "2025-08-12T21:05:39.000Z",
"token_id": "USD",
"transacted_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
"transacted_org_id": "CentralBank",
"transacted_user_id": "cb_issuer_demo",
"transacted_custom_account_id": "10109999001234",
"to_account": "oaccount~3954f54a8bc7acdd0c3d0960104240f60d56c26c8a179430267359cd80ce3709",
"to_org_id": "org2",
"to_user_id": "fi2_org_officer_demo",
"to_custom_account_id": "30300617202404",
"from_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
"from_org_id": "CentralBank",
"from_user_id": "cb_issuer_demo",
"from_custom_account_id": "10109999001234",
"transaction_type": "ONHOLD",
"holding_id": "ohold~cbdc~USD~ed815e20",
"category": "issuance",
"balance": 25000,
"onhold_balance": 20000
},
{
"transaction_id": "otransaction~c63ec37966264493bde6fa666527b9cca11695c15611c32e89af49a2246f13f6",
"transacted_amount": 10000,
"timestamp": "2025-08-12T21:05:20.000Z",
"token_id": "USD",
"transacted_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
"transacted_org_id": "CentralBank",
"transacted_user_id": "cb_issuer_demo",
"transacted_custom_account_id": "10109999001234",
"to_account": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
"to_org_id": "Org1",
"to_user_id": "fi1_org_officer_demo",
"to_custom_account_id": "20200222221111",
"from_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
"from_org_id": "CentralBank",
"from_user_id": "cb_issuer_demo",
"from_custom_account_id": "10109999001234",
"transaction_type": "ONHOLD",
"holding_id": "ohold~cbdc~USD~12d87129",
"category": "issuance",
"balance": 35000,
"onhold_balance": 10000
},
{
"transaction_id": "otransaction~5112f576c94c2d23c342479bfa37e34612414b3258a64b43cf51b920f4ff5868",
"transacted_amount": 5000,
"timestamp": "2025-08-12T21:05:02.000Z",
"token_id": "USD",
"transacted_account": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
"transacted_org_id": "CentralBank",
"transacted_user_id": "cb_retirer_demo",
"transacted_custom_account_id": "10109999006543",
"to_account": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
"to_org_id": "CentralBank",
"to_user_id": "cb_retirer_demo",
"to_custom_account_id": "10109999006543",
"from_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
"from_org_id": "CentralBank",
"from_user_id": "cb_issuer_demo",
"from_custom_account_id": "10109999001234",
"transaction_type": "DEBIT",
"category": "burn",
"balance": 45000,
"onhold_balance": 0
},
{
"transaction_id": "otransaction~862aa9d9e877d3ea209b87299ab5b12c13ed5ce43d1cf1b934043c1dd02f58f6",
"transacted_amount": 50000,
"timestamp": "2025-08-12T21:04:22.000Z",
"token_id": "USD",
"transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
"transacted_org_id": "CentralBank",
"transacted_user_id": "cb__creator_demo",
"transacted_custom_account_id": "10105678004567",
"to_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
"to_org_id": "CentralBank",
"to_user_id": "cb_issuer_demo",
"to_custom_account_id": "10109999001234",
"from_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
"from_org_id": "CentralBank",
"from_user_id": "cb__creator_demo",
"from_custom_account_id": "10105678004567",
"transaction_type": "CREDIT",
"category": "transfer",
"balance": 50000,
"onhold_balance": 0
}
]
-
getOrgAccountsTransactionHistoryWithFiltersFromRichHistDB
- Diese Methode ruft die Transaktionshistorie aus der Rich-History-Datenbank für die angegebene Organisation ab. Diese Methode kann nur von
Token Admin
oder Token Auditor
, einer Org Admin
oder Org Auditor
der angegebenen Organisation oder der AccountOwner
des Accounts aufgerufen werden.
@GetMethod()
@Validator(yup.string(), yup.string(), yup.string(), yup.object().nullable())
public async getOrgAccountsTransactionHistoryWithFiltersFromRichHistDB(org_id: string, custom_endpoint: string, bearer_token: string, filters?: Filters) {
await this.Ctx.Auth.checkAuthorization("ACCOUNT.getOrgAccountsTransactionHistoryWithFiltersFromRichHistDB", "TOKEN", { org_id });
return await this.Ctx.Account.getOrgAccountsTrxHistoryWithFiltersFromRichHistDB(org_id, custom_endpoint, bearer_token, filters);
}
- Parameter:
org_id: string
: Die Mitgliedsdienstanbieter-(MSP-)ID der Organisation.
custom_endpoint
: Der Serviceendpunkt RESTful der Rich-History-Datenbank.
bearer_token
: Das Zugriffsautorisierungstoken für den RESTful-Serviceendpunkt.
filters: string
: Ein optionaler Parameter. Wenn leer, werden alle Datensätze zurückgegeben. Die Eigenschaft PageSize
bestimmt die Anzahl der zurückzugebenden Datensätze. Wenn PageSize
0 ist, ist die Standardseitengröße 20. Die Eigenschaft Bookmark
bestimmt den Startindex der zurückzugebenden Datensätze. Weitere Informationen finden Sie in der Dokumentation zu Hyperledger Fabric. Die Eigenschaften StartTime
und EndTime
müssen im RFC-3339-Format angegeben werden.
- Beispiel für Rückgabewert:
[
{
"transaction_id": "otransaction~4793f3907eefce2f9fca7ef107405b0f116efb3afbf83fa0e61fe763690c8235",
"transacted_amount": 100,
"timestamp": "2025-08-25T13:47:56.000Z",
"token_id": "USD",
"transacted_account": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
"transacted_org_id": "Org1",
"transacted_user_id": "fi1_org_officer_demo",
"transacted_custom_account_id": "20200222221111",
"to_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
"to_org_id": "CentralBank",
"from_account": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
"from_org_id": "Org1",
"from_user_id": "fi1_org_officer_demo",
"from_custom_account_id": "20200222221111",
"transaction_type": "ONHOLD",
"holding_id": "ohold~cbdc~USD~2ac01689",
"category": "issuance"
},
{
"transaction_id": "otransaction~5177f7560d32838242a26ac74f2a90c6ff9b47aae0d0988f28d9b4cf7e27c097",
"transacted_amount": 10,
"timestamp": "2025-08-25T13:22:23.000Z",
"token_id": "USD",
"transacted_account": "oaccount~1e31495a0c149b08cb9d02bdcac5e83d88c0f1557d954dda12bb807d7f6fc111",
"transacted_org_id": "Org1",
"transacted_user_id": "fi1_org_user1_demo",
"transacted_custom_account_id": "20200198765432",
"to_account": "oaccount~d08ff55a040d5e5dcf406009bab1b3398e06c374356efb1bddbf2f17fc37f949",
"to_org_id": "Org1",
"to_user_id": "fi1_org_user2_demo",
"to_custom_account_id": "20200211112222",
"from_account": "oaccount~1e31495a0c149b08cb9d02bdcac5e83d88c0f1557d954dda12bb807d7f6fc111",
"from_org_id": "Org1",
"from_user_id": "fi1_org_user1_demo",
"from_custom_account_id": "20200198765432",
"transaction_type": "CREDIT",
"holding_id": "ohold~cbdc~USD~454f4bf6",
"category": "transfer"
},
{
"transaction_id": "otransaction~5177f7560d32838242a26ac74f2a90c6ff9b47aae0d0988f28d9b4cf7e27c097",
"transacted_amount": 10,
"timestamp": "2025-08-25T13:22:23.000Z",
"token_id": "USD",
"transacted_account": "oaccount~d08ff55a040d5e5dcf406009bab1b3398e06c374356efb1bddbf2f17fc37f949",
"transacted_org_id": "Org1",
"transacted_user_id": "fi1_org_user2_demo",
"transacted_custom_account_id": "20200211112222",
"to_account": "oaccount~d08ff55a040d5e5dcf406009bab1b3398e06c374356efb1bddbf2f17fc37f949",
"to_org_id": "Org1",
"to_user_id": "fi1_org_user2_demo",
"to_custom_account_id": "20200211112222",
"from_account": "oaccount~1e31495a0c149b08cb9d02bdcac5e83d88c0f1557d954dda12bb807d7f6fc111",
"from_org_id": "Org1",
"from_user_id": "fi1_org_user1_demo",
"from_custom_account_id": "20200198765432",
"transaction_type": "EXECUTEHOLD",
"holding_id": "ohold~cbdc~USD~454f4bf6",
"category": "transfer"
},
{
"transaction_id": "otransaction~32137cd7e16c560f4d96d0f8999f6a267c1e95be2f5b11ef0541e574a6cd7275",
"transacted_amount": 200,
"timestamp": "2025-08-25T13:16:55.000Z",
"token_id": "USD",
"transacted_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
"transacted_org_id": "CentralBank",
"to_account": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
"to_org_id": "Org1",
"to_user_id": "fi1_org_officer_demo",
"to_custom_account_id": "20200222221111",
"from_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
"from_org_id": "CentralBank",
"transaction_type": "CREDIT",
"category": "transfer"
},
{
"transaction_id": "otransaction~67844e07c06ab4c3d94d8ff36173b9dbcc2f1b9c99f4e7070f1097fd89f3f514",
"transacted_amount": 10,
"timestamp": "2025-08-21T08:49:40.000Z",
"token_id": "USD",
"transacted_account": "oaccount~1e31495a0c149b08cb9d02bdcac5e83d88c0f1557d954dda12bb807d7f6fc111",
"transacted_org_id": "Org1",
"transacted_user_id": "fi1_org_user1_demo",
"transacted_custom_account_id": "20200198765432",
"to_account": "oaccount~d08ff55a040d5e5dcf406009bab1b3398e06c374356efb1bddbf2f17fc37f949",
"to_org_id": "Org1",
"to_user_id": "fi1_org_user2_demo",
"to_custom_account_id": "20200211112222",
"from_account": "oaccount~1e31495a0c149b08cb9d02bdcac5e83d88c0f1557d954dda12bb807d7f6fc111",
"from_org_id": "Org1",
"from_user_id": "fi1_org_user1_demo",
"from_custom_account_id": "20200198765432",
"transaction_type": "ONHOLD",
"holding_id": "ohold~cbdc~USD~b6e4925b",
"category": "transfer"
},
{
"transaction_id": "otransaction~b7c97d737fb978651c9132276ab677c0bcf795b9db13d0d39cba5243615c7389",
"transacted_amount": 10,
"timestamp": "2025-08-21T08:46:09.000Z",
"token_id": "USD",
"transacted_account": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
"transacted_org_id": "Org1",
"transacted_user_id": "fi1_org_officer_demo",
"transacted_custom_account_id": "20200222221111",
"to_account": "oaccount~1e31495a0c149b08cb9d02bdcac5e83d88c0f1557d954dda12bb807d7f6fc111",
"to_org_id": "Org1",
"to_user_id": "fi1_org_user1_demo",
"to_custom_account_id": "20200198765432",
"from_account": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
"from_org_id": "Org1",
"from_user_id": "fi1_org_officer_demo",
"from_custom_account_id": "20200222221111",
"transaction_type": "ONHOLD",
"holding_id": "ohold~cbdc~USD~4fbbb846",
"category": "transfer"
}
]
-
getAllAccountsTransactionHistoryWithFiltersFromRichHistDB
- Diese Methode ruft die Transaktionshistorie aus der Rich-History-Datenbank für alle Organisationen ab. Diese Methode kann nur mit
Token Admin
oder Token Auditor
aufgerufen werden.
@GetMethod()
@Validator(yup.string(), yup.string(), yup.object().nullable())
public async getAllAccountsTransactionHistoryWithFiltersFromRichHistDB(custom_endpoint: string, bearer_token: string, filters?: Filters) {
await this.Ctx.Auth.checkAuthorization("ACCOUNT.getAllAccountsTransactionHistoryWithFiltersFromRichHistDB", "TOKEN");
return await this.Ctx.Account.getAllAccountsTrxHistoryWithFiltersFromRichHistDB(custom_endpoint, bearer_token, filters);
}
- Parameter:
custom_endpoint
: Der Serviceendpunkt RESTful der Rich-History-Datenbank.
bearer_token
: Das Zugriffsautorisierungstoken für den RESTful-Serviceendpunkt.
filters: string
: Ein optionaler Parameter. Wenn leer, werden alle Datensätze zurückgegeben. Die Eigenschaft PageSize
bestimmt die Anzahl der zurückzugebenden Datensätze. Wenn PageSize
0 ist, ist die Standardseitengröße 20. Die Eigenschaft Bookmark
bestimmt den Startindex der zurückzugebenden Datensätze. Weitere Informationen finden Sie in der Dokumentation zu Hyperledger Fabric. Die Eigenschaften StartTime
und EndTime
müssen im RFC-3339-Format angegeben werden.
- Beispiel für Rückgabewert:
[
{
"transaction_id": "otransaction~62eb436be7c29fc2ed9cae221e874d9a31b163fa10374e7da09bf5e09a96c3ff",
"transacted_amount": 10000,
"timestamp": "2025-08-25T13:57:58.000Z",
"token_id": "USD",
"transacted_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
"transacted_org_id": "CentralBank",
"transacted_user_id": "cb_issuer_demo",
"transacted_custom_account_id": "10109999001234",
"to_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
"to_org_id": "CentralBank",
"to_user_id": "cb_issuer_demo",
"to_custom_account_id": "10109999001234",
"from_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
"from_org_id": "CentralBank",
"from_user_id": "cb__creator_demo",
"from_custom_account_id": "10105678004567",
"transaction_type": "DEBIT",
"category": "issuance"
},
{
"transaction_id": "otransaction~62eb436be7c29fc2ed9cae221e874d9a31b163fa10374e7da09bf5e09a96c3ff",
"transacted_amount": 10000,
"timestamp": "2025-08-25T13:57:58.000Z",
"token_id": "USD",
"transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
"transacted_org_id": "CentralBank",
"transacted_user_id": "cb__creator_demo",
"transacted_custom_account_id": "10105678004567",
"to_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
"to_org_id": "CentralBank",
"to_user_id": "cb_issuer_demo",
"to_custom_account_id": "10109999001234",
"from_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
"from_org_id": "CentralBank",
"from_user_id": "cb__creator_demo",
"from_custom_account_id": "10105678004567",
"transaction_type": "CREDIT",
"category": "issuance"
},
{
"transaction_id": "otransaction~c628fb7738222ed969295ccc8d21b4be95d96e3aada4f14570f7820a7051b5f7",
"transacted_amount": 200,
"timestamp": "2025-08-25T13:51:18.000Z",
"token_id": "USD",
"transacted_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
"transacted_org_id": "CentralBank",
"transacted_user_id": "cb_issuer_demo",
"transacted_custom_account_id": "10109999001234",
"to_account": "oaccount~3954f54a8bc7acdd0c3d0960104240f60d56c26c8a179430267359cd80ce3709",
"to_org_id": "org2",
"to_user_id": "fi2_org_officer_demo",
"to_custom_account_id": "30300617202404",
"from_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
"from_org_id": "CentralBank",
"from_user_id": "cb_issuer_demo",
"from_custom_account_id": "10109999001234",
"transaction_type": "RELEASEHOLD",
"holding_id": "ohold~cbdc~USD~77b75873"
},
{
"transaction_id": "otransaction~af2cc8e43ecb4c5520d90a8d7955b5a47623a29b13eef47e31c16eb48cc0adec",
"transacted_amount": 100,
"timestamp": "2025-08-25T13:50:45.000Z",
"token_id": "USD",
"transacted_account": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
"transacted_org_id": "CentralBank",
"transacted_user_id": "cb_retirer_demo",
"transacted_custom_account_id": "10109999006543",
"from_account": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
"from_org_id": "CentralBank",
"from_user_id": "cb_retirer_demo",
"from_custom_account_id": "10109999006543",
"transaction_type": "REJECT_BURN",
"holding_id": "ohold~cbdc~USD~8d34",
"description": "Burn",
"to_account": ""
},
{
"transaction_id": "otransaction~182b99bb2ed753994a8c638ab9b08c3a4e73ac8159a3173a2a1f56b651d2eeac",
"transacted_amount": 2000,
"timestamp": "2025-08-25T13:50:19.000Z",
"token_id": "USD",
"transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
"transacted_org_id": "CentralBank",
"transacted_user_id": "cb__creator_demo",
"transacted_custom_account_id": "10105678004567",
"to_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
"to_org_id": "CentralBank",
"to_user_id": "cb__creator_demo",
"to_custom_account_id": "10105678004567",
"transaction_type": "REJECT_MINT",
"holding_id": "ohold~cbdc~USD~89ce",
"description": "Minting 2000 tokens",
"from_account": ""
},
{
"transaction_id": "otransaction~4793f3907eefce2f9fca7ef107405b0f116efb3afbf83fa0e61fe763690c8235",
"transacted_amount": 100,
"timestamp": "2025-08-25T13:47:56.000Z",
"token_id": "USD",
"transacted_account": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
"transacted_org_id": "Org1",
"transacted_user_id": "fi1_org_officer_demo",
"transacted_custom_account_id": "20200222221111",
"to_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
"to_org_id": "CentralBank",
"to_user_id": "cb_issuer_demo",
"to_custom_account_id": "10109999001234",
"from_account": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
"from_org_id": "Org1",
"from_user_id": "fi1_org_officer_demo",
"from_custom_account_id": "20200222221111",
"transaction_type": "ONHOLD",
"holding_id": "ohold~cbdc~USD~2ac01689",
"category": "issuance"
},
{
"transaction_id": "otransaction~5177f7560d32838242a26ac74f2a90c6ff9b47aae0d0988f28d9b4cf7e27c097",
"transacted_amount": 10,
"timestamp": "2025-08-25T13:22:23.000Z",
"token_id": "USD",
"transacted_account": "oaccount~d08ff55a040d5e5dcf406009bab1b3398e06c374356efb1bddbf2f17fc37f949",
"transacted_org_id": "Org1",
"transacted_user_id": "fi1_org_user2_demo",
"transacted_custom_account_id": "20200211112222",
"to_account": "oaccount~d08ff55a040d5e5dcf406009bab1b3398e06c374356efb1bddbf2f17fc37f949",
"to_org_id": "Org1",
"to_user_id": "fi1_org_user2_demo",
"to_custom_account_id": "20200211112222",
"from_account": "oaccount~1e31495a0c149b08cb9d02bdcac5e83d88c0f1557d954dda12bb807d7f6fc111",
"from_org_id": "Org1",
"from_user_id": "fi1_org_user1_demo",
"from_custom_account_id": "20200198765432",
"transaction_type": "EXECUTEHOLD",
"holding_id": "ohold~cbdc~USD~454f4bf6",
"category": "transfer"
}
]
-
getAccountBalance
- Diese Methode gibt den aktuellen Saldo für ein angegebenes Konto zurück. Diese Methode kann nur von einer
Token Admin
oder Token Auditor
, einer Org Admin
oder Org Auditor
der angegebenen Organisation oder der AccountOwner
des Accounts aufgerufen werden.
@GetMethod()
@Validator(yup.string())
public async getAccountBalance(account_id: string) {
await this.Ctx.Account.getAccountWithTokenIdValidation(account_id);
await this.Ctx.Auth.checkAuthorization("ACCOUNT.getAccountBalance", "TOKEN", { account_id });
return await this.Ctx.Account.getAccountBalance(account_id);
}
- Parameter:
account_id: string
: Die eindeutige ID des Tokenaccounts.
- Rückgabewert:
- Bei Erfolg eine JSON-Darstellung des aktuellen Kontosaldos.
- Beispiel für Rückgabewert:
{
"msg": "Current Balance is: 100",
"user_balance": 100
}
-
deleteHistoricalTransactions
- Mit dieser Methode werden ältere Transaktionen aus der Statusdatenbank gelöscht. Diese Methode kann nur mit einem
Token Admin
aufgerufen werden.
@Validator(yup.date())
public async deleteHistoricalTransactions(time_to_expiration: Date) {
await this.Ctx.Auth.checkAuthorization("TRANSACTION.deleteTransactions", "TOKEN");
await this.Ctx.Model.createEvent(EVENT_NAME.DELETE_HISTORICAL_TRANSACTIONS, { time_to_expiration });
return await this.Ctx.Transaction.deleteTransactions(time_to_expiration);
}
- Parameter:
time_to_expiration Date
: Ein Zeitstempel, der angibt, wann Transaktionen gelöscht werden sollen. Transaktionsassets, die älter als die angegebene Zeit sind, werden gelöscht.
- Beispiel für Rückgabewert:
{
"msg": "Successfully deleted transaction older than date: Thu Aug 19 2025 11:19:36 GMT+0000 (Coordinated Universal Time).",
"transactions": [
"otransaction~ec3366dd48b4ce2838f820f2f138648e6e55a07226713e59b411ff31b0d21058"
]
}
-
getTransactionById
- Diese Methode gibt die Historie eines
Transaction
-Assets zurück. Diese Methode kann nur von einer Token Admin
oder Token Auditor
, von einer Org Admin
oder Org Auditor
der angegebenen Organisation oder von einem Transaktionsteilnehmer (Absender, Empfänger oder Notar) aufgerufen werden.
@GetMethod()
@Validator(yup.string())
public async getTransactionById(transaction_id: string) {
await this.Ctx.Auth.checkAuthorization("TRANSACTION.getTransactionById", "TOKEN", { transaction_id });
return await this.Ctx.Transaction.getTransactionById(transaction_id);
}
- Parameter:
transaction_id string
: Die ID des Transaktionsassets.
- Rückgabewert:
- Bei Erfolg ein JSON-Array der Historie für die Transaktion.
- Beispiel für Rückgabewert:
{
"transaction_id": "otransaction~6523597253e45b3c976aecdc54e2c6316d0a4f88ad5d7f3fff48c69213e4375a",
"history": [
{
"trxId": "6523597253e45b3c976aecdc54e2c6316d0a4f88ad5d7f3fff48c69213e4375a",
"timeStamp": "2025-08-20T23:21:45.000Z",
"value": {
"assetType": "otransaction",
"transaction_id": "otransaction~6523597253e45b3c976aecdc54e2c6316d0a4f88ad5d7f3fff48c69213e4375a",
"token_id": "token",
"from_account_id": "oaccount~22776ada3efff6aaf4c68c204c1f063b139adfa1bca79ed53199117c34036cfc",
"to_account_id": "oaccount~5e3b5a3306d7ca3f3e3fe7cc27b6ae547e94dba1c5af58a69a771d7a619b6a66",
"transaction_type": "TRANSFER",
"amount": 22,
"timestamp": "2025-08-20T23:21:45.000Z",
"number_of_sub_transactions": 0,
"holding_id": "",
"sub_transaction": "false",
"category": "category value",
"description": "description value"
}
}
],
"sub_transactions": []
}
-
getAccountStatus
- Diese Methode ruft den aktuellen Status des Token-Accounts ab. Diese Methode kann von der
Token Admin
des Chaincodes, einer Org Admin
der angegebenen Organisation oder vom Tokenkontoeigentümer aufgerufen werden.
@GetMethod()
@Validator(yup.string())
public async getAccountStatus(account_id: string) {
await this.Ctx.Account.getAccountWithTokenIdValidation(account_id);
await this.Ctx.Auth.checkAuthorization("ACCOUNT_STATUS.get", "TOKEN", { account_id });
try {
return await this.Ctx.AccountStatus.getAccountStatus(account_id);
} catch (err) {
return await this.Ctx.AccountStatus.getDefaultAccountStatus(account_id);
}
}
- Parameter:
account_id: string
: Die eindeutige ID des Tokenaccounts.
- Rückgabewert:
- Bei Erfolg eine Nachricht, die Details zum Tokenaccountstatus enthält.
- Beispiel für Rückgabewert:
{
"assetType": "oaccountStatus",
"status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
"account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
"status": "active"
}
-
getAccountStatusHistory
- Diese Methode ruft die Historie des Kontostatus ab. Diese Methode kann von der
Token Admin
des Chaincodes, einer Org Admin
der angegebenen Organisation oder vom Tokenkontoeigentümer aufgerufen werden.
@GetMethod()
@Validator(yup.string())
public async getAccountStatusHistory(account_id: string) {
await this.Ctx.Account.getAccountWithTokenIdValidation(account_id);
await this.Ctx.Auth.checkAuthorization("ACCOUNT_STATUS.history", "TOKEN", { account_id });
const status_id = await this.Ctx.AccountStatus.generateAccountStatusId(account_id);
let account_status_history: any;
try {
account_status_history = await this.Ctx.AccountStatus.history(status_id);
} catch (err) {
return [];
}
return account_status_history;
}
- Parameter:
account_id: string
: Die eindeutige ID des Tokenaccounts.
- Rückgabewert:
- Bei Erfolg eine Nachricht, die Details der Accountstatushistorie enthält.
- Beispiel für Rückgabewert:
[
{
"trxId": "d5c6d6f601257ba9b6edaf5b7660f00adc13c37d5321b8f7d3a35afab2e93e63",
"timeStamp": "2025-12-02T10:39:14.000Z",
"value": {
"assetType": "oaccountStatus",
"status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
"account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
"status": "suspended"
}
},
{
"trxId": "e6c850cfa084dc20ad95fb2bb8165eef3a3bd62a0ac867cccee57c2003125183",
"timeStamp": "2025-12-02T10:37:50.000Z",
"value": {
"assetType": "oaccountStatus",
"status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
"account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
"status": "active"
}
}
]
-
activateAccount
- Mit dieser Methode wird ein Token-Account aktiviert. Diese Methode kann nur von einem
Token Admin
des Chaincodes oder einem Org Admin
der angegebenen Organisation aufgerufen werden. Gelöschte Accounts können nicht aktiviert werden.
@Validator(yup.string())
public async activateAccount(account_id: string) {
const account: FungibleAccount = await this.Ctx.Account.getAccountWithTokenIdValidation(account_id);
await this.Ctx.Auth.checkAuthorization("ACCOUNT_STATUS.activateAccount", "TOKEN", { org_id: account.org_id });
const token_asset = await this.getTokenObject(account.token_id);
await this.Ctx.Model.createEvent(EVENT_NAME.ACTIVATE_ACCOUNT, { account_id }, token_asset);
return await this.Ctx.Account.activateAccount(account_id);
}
- Parameter:
account_id: string
: Die eindeutige ID des Tokenaccounts.
- Rückgabewert:
- Bei Erfolg eine JSON-Darstellung des Accountstatusobjekts für den angegebenen Tokenaccount.
- Beispiel für Rückgabewert:
{
"assetType": "oaccountStatus",
"status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
"account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
"status": "active"
}
-
suspendAccount
- Mit dieser Methode wird ein Token-Account unterbrochen. Diese Methode kann nur von einem
Token Admin
des Chaincodes oder einem Org Admin
der angegebenen Organisation aufgerufen werden. Nachdem ein Konto ausgesetzt wurde, können Sie keine Vorgänge ausführen, die das Konto aktualisieren. Ein gelöschter Account kann nicht ausgesetzt werden.
@Validator(yup.string())
public async suspendAccount(account_id: string) {
const account: FungibleAccount = await this.Ctx.Account.getAccountWithTokenIdValidation(account_id);
await this.Ctx.Auth.checkAuthorization("ACCOUNT_STATUS.suspendAccount", "TOKEN", { org_id: account.org_id });
const token_asset = await this.getTokenObject(account.token_id);
await this.Ctx.Model.createEvent(EVENT_NAME.SUSPEND_ACCOUNT, { account }, token_asset);
return await this.Ctx.Account.suspendAccount(account_id);
}
- Parameter:
account_id: string
: Die eindeutige ID des Tokenaccounts.
- Rückgabewert:
- Bei Erfolg eine JSON-Darstellung des Accountstatusobjekts für den angegebenen Tokenaccount.
- Beispiel für Rückgabewert:
{
"assetType": "oaccountStatus",
"status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
"account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
"status": "suspended"
}
-
deleteAccount
- Mit dieser Methode wird ein Token-Account gelöscht. Diese Methode kann nur von einem
Token Admin
des Chaincodes oder einem Org Admin
der angegebenen Organisation aufgerufen werden. Nachdem ein Konto gelöscht wurde, können Sie keine Vorgänge abschließen, die das Konto aktualisieren. Das gelöschte Konto befindet sich in einem endgültigen Status und kann nicht in einen anderen Status geändert werden. Um ein Konto zu löschen, müssen der Kontensaldo und der einbehaltene Saldo Null sein.
@Validator(yup.string())
public async deleteAccount(account_id: string) {
const account: FungibleAccount = await this.Ctx.Account.getAccountWithTokenIdValidation(account_id);
await this.Ctx.Auth.checkAuthorization("ACCOUNT_STATUS.deleteAccount", "TOKEN", { org_id: account.org_id });
const token_asset = await this.getTokenObject(account.token_id);
await this.Ctx.Model.createEvent(EVENT_NAME.DELETE_ACCOUNT, { account_id }, token_asset);
return await this.Ctx.Account.deleteAccount(account_id);
}
- Parameter:
account_id: string
: Die eindeutige ID des Tokenaccounts.
- Rückgabewert:
- Bei Erfolg eine JSON-Darstellung des Accountstatusobjekts für den angegebenen Tokenaccount.
- Beispiel für Rückgabewert:
{
"assetType": "oaccountStatus",
"status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
"account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
"status": "deleted"
}
-
setMaxDailyAmount
- Diese Methode legt den Wert
max_daily_amount
für ein angegebenes Konto fest. Diese Methode kann nur von einem Token Admin
des Chaincodes oder einem Org Admin
der angegebenen Organisation aufgerufen werden.
@Validator(yup.string(), yup.string().optional())
public async setMaxDailyAmount (account_id: string, max_daily_amount?: string) {
const account: FungibleAccount = await this.Ctx.Account.getAccountWithTokenIdValidation(account_id);
await this.Ctx.Auth.checkAuthorization('ACCOUNT.setMaxDailyAmount', 'TOKEN', { org_id: account.org_id });
const token_asset = await this.getTokenObject(account.token_id);
await this.Ctx.Model.createEvent(EVENT_NAME.SET_MAX_DAILY_AMOUNT, { account_id, max_daily_amount }, token_asset);
return this.Ctx.Account.setMaxDailyAmount (account_id, max_daily_amount);
}
- Parameter:
account_id: string
: Die eindeutige ID des Tokenaccounts.
max_daily_amount?: string
(Optional) Die maximale Anzahl an Token, die der Benutzer täglich übertragen kann. Wenn keine Angabe gemacht wird, kann der Benutzer jeden beliebigen Betrag an Token täglich übertragen.
- Beispiel für Rückgabewert:
{
"msg": "Successfully set max daily amount for account id oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a to 1000000"
}
-
setMaxDailyTransactionCount
- Diese Methode legt den Wert
max_daily_transactions
für ein angegebenes Konto fest. Diese Methode kann nur von einem Token Admin
des Chaincodes oder einem Org Admin
der angegebenen Organisation aufgerufen werden.
@Validator(yup.string(), yup.string().optional())
public async setMaxDailyTransactionCount (account_id: string, max_daily_transactions?: string) {
const account: FungibleAccount = await this.Ctx.Account.getAccountWithTokenIdValidation(account_id);
await this.Ctx.Auth.checkAuthorization('ACCOUNT.setMaxDailyTransactionCount', 'TOKEN', { org_id: account.org_id });
const token_asset = await this.getTokenObject(account.token_id);
await this.Ctx.Model.createEvent(EVENT_NAME.SET_MAX_DAILY_TRANSACTION_COUNT, { account_id, max_daily_transactions}, token_asset);
return this.Ctx.Account.setMaxDailyTransactionCount (account_id, max_daily_transactions);
}
- Parameter:
account_id: string
: Die eindeutige ID des Tokenaccounts.
max_daily_transactions?: string
(Optional) Die maximale Anzahl von Transaktionen, die der Benutzer täglich abschließen kann. Wenn keine Angabe gemacht wird, kann der Benutzer eine beliebige Anzahl von Transaktionen täglich abschließen.
- Beispiel für Rückgabewert:
{
"msg": "Successfully set max daily transactions for account id oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a to 100000"
}
-
getMaxDailyAmount
- Diese Methode ruft den Wert
max_daily_amount
für einen angegebenen Account ab. Diese Methode kann nur von einer Token Admin
oder Token Auditor
des Chaincodes oder einer Org Admin
oder Org Auditor
der angegebenen Organisation aufgerufen werden.
@GetMethod()
@Validator(yup.string())
public async getMaxDailyAmount (account_id: string) {
await this.Ctx.Account.getAccountWithTokenIdValidation(account_id);
await this.Ctx.Auth.checkAuthorization('ACCOUNT.getMaxDailyAmount', 'TOKEN', { account_id });
return this.Ctx.Account.getMaxDailyAmount (account_id);
}
- Parameter:
account_id: string
: Die eindeutige ID des Tokenaccounts.
- Beispiel für Rückgabewert:
{
"max_daily_amount": "10000"
}
-
getMaxDailyTransactionCount
- Diese Methode ruft den Wert
max_daily_transactions
für einen angegebenen Account ab. Diese Methode kann nur von einer Token Admin
oder Token Auditor
des Chaincodes oder einer Org Admin
oder Org Auditor
der angegebenen Organisation aufgerufen werden.
@GetMethod()
@Validator(yup.string())
public async getMaxDailyTransactionCount (account_id: string) {
await this.Ctx.Account.getAccountWithTokenIdValidation(account_id);
await this.Ctx.Auth.checkAuthorization('ACCOUNT.getMaxDailyTransactionCount', 'TOKEN', { account_id });
return this.Ctx.Account.getMaxDailyTransactionCount (account_id);
}
- Parameter:
account_id: string
: Die eindeutige ID des Tokenaccounts.
- Beispiel für Rückgabewert:
{
"max_daily_transactions": "100"
}
-
consolidateRunningBalanceInTransactions
- Diese Methode berechnet die laufenden Kontensalden und speichert die aktualisierten Werte in den Transaktionsschlüssel/Wert-Paaren. Normalerweise rufen Systemadministratoren diese Methode mit einem REST-Proxy-Scheduler auf. Diese Methode kann nur mit einer
Token Admin
oder Org Admin
aufgerufen werden.
@Validator(yup.string())
public async consolidateRunningBalanceInTransactions() {
await this.Ctx.Auth.checkAuthorization("TRANSACTION.consolidateRunningBalanceInTransactions", "TOKEN");
return this.Ctx.Transaction.consolidateRunningBalanceInTransactions(true);
}
- Beispiel für Rückgabewert:
{ msg: "Successfully updated account running balance for pending transactions."}
-
processSendersAndReceivers
- Diese Methode berechnet und aktualisiert die Tokenkontensalden, die in den Schlüssel/Wert-Paaren des Absenders und Empfängers verteilt werden, die während zwischenbetrieblicher Transfers erstellt wurden, und löscht dann die Schlüssel/Wert-Paare des Absenders und Empfängers, die nicht mehr verwendet werden. Normalerweise rufen Systemadministratoren diese Methode mit einem REST-Proxy-Scheduler auf. Diese Methode kann nur mit einer
Token Admin
oder Org Admin
aufgerufen werden.
@Validator(yup.string())
public async processSendersAndReceivers() {
await this.Ctx.Auth.checkAuthorization("ACCOUNT.processSendersAndReceivers", "TOKEN");
return this.Ctx.Account.processSendersAndReceivers(true);
}
- Beispiel für Rückgabewert:
{ msg: "Successfully updated balance for accounts from pending receivers."}
-
addRole
- Diese Methode fügt einem angegebenen Benutzer und Token eine Rolle hinzu. Diese Methode kann nur von einer
Token Admin
des Chaincodes oder von einer Org Admin
der angegebenen Organisation aufgerufen werden, die auch die angegebene Rolle enthält.
@Validator(yup.string(), yup.string())
public async addRole(account_id: string, role: string) {
const account: FungibleAccount = await this.Ctx.Account.getAccountWithTokenIdValidation(account_id);
const token_asset = await this.getTokenObject(account.token_id);
await this.Ctx.Auth.checkAuthorization("TOKEN.addRoleMember", "TOKEN", { token_id: account.token_id, org_id: account.org_id, role });
await this.Ctx.Model.createEvent(EVENT_NAME.ADD_ROLE, { role, account_id }, token_asset);
return await this.Ctx.Token.addRoleMember(role, account_id, token_asset);
}
- Parameter:
account_id: string
: Die eindeutige ID des Tokenaccounts.
role: string
: Der Name der Rolle, die dem angegebenen Benutzer hinzugefügt werden soll. Das Verhalten von mintable
und burnable
entspricht den Eigenschaften minter_role_name
und burner_role_name
der Spezifikationsdatei. Entsprechend entspricht die Rolle notary
der Eigenschaft notary_role_name
der Spezifikationsdatei.
- Rückgabewert:
- Bei Erfolg eine Nachricht mit Accountdetails.
- Beispiel für Rückgabewert:
{
"msg": "Successfully added role 'notary' to Account Id: oaccount~2eb5f8a9bc561f8f41a4ea3be9511958cc6684ef14f2337ca396efc301b627d8"
}
-
removeRole
- Mit dieser Methode wird eine Rolle aus einem angegebenen Benutzer und Token entfernt. Diese Methode kann nur von einer
Token Admin
des Chaincodes oder von einer Org Admin
der angegebenen Organisation aufgerufen werden, die auch die angegebene Rolle enthält.
@Validator(yup.string(), yup.string())
public async removeRole(account_id: string, role: string) {
const account: FungibleAccount = await this.Ctx.Account.getAccountWithTokenIdValidation(account_id);
const token_asset = await this.getTokenObject(account.token_id);
await this.Ctx.Auth.checkAuthorization("TOKEN.removeRoleMember", "TOKEN", { token_id: account.token_id, org_id: account.org_id, role });
await this.Ctx.Model.createEvent(EVENT_NAME.REMOVE_ROLE, { role, account_id }, token_asset);
return await this.Ctx.Token.removeRoleMember(role, account_id, token_asset);
}
- Parameter:
account_id: string
: Die eindeutige ID des Tokenaccounts.
role: string
: Der Name der Rolle, die aus dem angegebenen Benutzer entfernt werden soll. Das Verhalten von mintable
und burnable
entspricht den Eigenschaften minter_role_name
und burner_role_name
der Spezifikationsdatei. Entsprechend entspricht die Rolle notary
der Eigenschaft notary_role_name
der Spezifikationsdatei.
- Rückgabewert:
- Bei Erfolg eine Nachricht mit Accountdetails.
- Beispiel für Rückgabewert:
{
"msg": "Successfully removed role 'notary' from Account Id: oaccount~2eb5f8a9bc561f8f41a4ea3be9511958cc6684ef14f2337ca396efc301b627d8"
}
-
getAccountsByRole
- Diese Methode gibt eine Liste aller Konto-IDs für eine angegebene Rolle und ein bestimmtes Token zurück. Diese Methode kann nur mit einer
Token Admin
oder Token Auditor
aufgerufen werden.
@GetMethod()
@Validator(yup.string(), yup.string())
public async getAccountsByRole(token_id: string, role: string) {
await this.Ctx.Auth.checkAuthorization("ROLE.getAccountsByRole", "TOKEN");
return await this.Ctx.Role.getAccountsByRole(token_id, role);
}
- Parameter:
token_id: string
: Die ID des Tokens.
role: string
: Der Name der Rolle, nach der gesucht werden soll.
- Rückgabewert:
- Bei Erfolg ein JSON-Array mit Konto-IDs.
- Beispiel für Rückgabewert:
{
"accounts": [
"oaccount~5abb4155f4b245bb1732321e3174ac81999b03495b5c74f8e1f270bafbadef75"
]
}
-
getOrgAccountsByRole
- Diese Methode gibt eine Liste aller Konto-IDs für eine angegebene Rolle, ein bestimmtes Token und eine bestimmte Organisation zurück. Diese Methode kann nur von einer
Token Admin
oder Token Auditor
oder von einer Org Admin
oder Org Auditor
der angegebenen Organisation aufgerufen werden.
@GetMethod()
@Validator(yup.string(), yup.string(), yup.string())
public async getOrgAccountsByRole(token_id: string, role: string, org_id: string) {
await this.Ctx.Auth.checkAuthorization("ROLE.getOrgAccountsByRole", "TOKEN", { org_id });
return await this.Ctx.Role.getOrgAccountsByRole(token_id, role, org_id);
}
- Parameter:
token_id: string
: Die ID des Tokens.
role: string
: Der Name der Rolle, nach der gesucht werden soll.
org_id: string
: Die Mitgliedsdienstanbieter-(MSP-)ID der Organisation.
- Rückgabewert:
- Bei Erfolg ein JSON-Array mit Konto-IDs.
- Beispiel für Rückgabewert:
{
"accounts": [
"oaccount~5abb4155f4b245bb1732321e3174ac81999b03495b5c74f8e1f270bafbadef75"
]
}
-
getUsersByRole
- Diese Methode gibt eine Liste aller Benutzer für eine angegebene Rolle und ein bestimmtes Token zurück. Diese Methode kann nur mit einer
Token Admin
oder Token Auditor
aufgerufen werden.
@GetMethod()
@Validator(yup.string(), yup.string())
public async getUsersByRole(token_id: string, role: string) {
await this.Ctx.Auth.checkAuthorization("ROLE.getUsersByRole", "TOKEN");
return await this.Ctx.Role.getUsersByRole(token_id, role);
}
- Parameter:
token_id: string
: Die ID des Tokens.
role: string
: Der Name der Rolle, nach der gesucht werden soll.
- Beispiel für Rückgabewert:
{
"users": [
{
"token_id": "token",
"org_id": "CentralBank"
}
]
}
-
getOrgUsersByRole
- Diese Methode gibt eine Liste aller Benutzer für eine angegebene Rolle, ein bestimmtes Token und eine bestimmte Organisation zurück. Diese Methode kann nur von einer
Token Admin
oder Token Auditor
oder von einer Org Admin
oder Org Auditor
der angegebenen Organisation aufgerufen werden.
@GetMethod()
@Validator(yup.string(), yup.string(), yup.string())
public async getOrgUsersByRole(token_id: string, role: string, org_id: string) {
await this.Ctx.Auth.checkAuthorization("ROLE.getOrgUsersByRole", "TOKEN", { org_id });
return await this.Ctx.Role.getOrgUsersByRole(token_id, role, org_id);
}
- Parameter:
token_id: string
: Die ID des Tokens.
role: string
: Der Name der Rolle, nach der gesucht werden soll.
org_id: string
: Die Mitgliedsdienstanbieter-(MSP-)ID der Organisation.
- Beispiel für Rückgabewert:
{
"users": [
{
"token_id": "token",
"org_id": "CentralBank",
"user_id": "cb1",
"custom_account_id": "1234567jh"
}
]
}
-
isInRole
- Diese Methode gibt einen booleschen Wert zurück, um anzugeben, ob ein Benutzer eine bestimmte Rolle hat. Diese Methode kann nur von einer
Token Admin
oder Token Auditor
, der AccountOwner
des Accounts oder einer Org Admin
oder Org Auditor
der angegebenen Organisation aufgerufen werden.
@GetMethod()
@Validator(yup.string(), yup.string())
public async isInRole(account_id: string, role: string) {
const account: FungibleAccount = await this.Ctx.Account.getAccountWithTokenIdValidation(account_id);
const token_asset = await this.getTokenObject(account.token_id);
await this.Ctx.Auth.checkAuthorization("TOKEN.isInRole", "TOKEN", { account_id });
return { result: await this.Ctx.Token.isInRole(role, account_id, token_asset) };
}
- Parameter:
account_id: string
: Die eindeutige ID des Tokenaccounts.
role: string
: Der Name der Rolle, nach der gesucht werden soll.
- Rückgabewert:
- Bei Erfolg eine JSON-Zeichenfolge des booleschen Ergebnisses.
- Beispiel für Rückgabewert:
{
"result": "true"
}
-
getTotalMintedTokens
- Diese Methode gibt die Gesamtanzahl der ausgeprägten Token für ein angegebenes Token zurück. Diese Methode kann nur mit
Token Admin
, Token Auditor
, Org Admin
oder Org Auditor
aufgerufen werden.
@GetMethod()
@Validator(yup.string())
public async getTotalMintedTokens(token_id: string) {
const token_asset = await this.getTokenObject(token_id);
await this.Ctx.Auth.checkAuthorization("TOKEN.getTotalMintedTokens", "TOKEN");
const totalMintedTokens = await this.Ctx.Token.getTotalMintedTokens(token_asset);
return {
msg: `Total minted token for Token Id: ${token_id} is ${totalMintedTokens} tokens.`,
quantity: totalMintedTokens,
};
}
- Parameter:
token_id: string
: Die ID des Tokens.
- Rückgabewert:
- Bei Erfolg eine JSON-Zeichenfolge, die die Gesamtanzahl der Token angibt.
- Beispiel für Rückgabewert:
{
"msg": "Total minted token for Token Id: USD is 910 tokens.",
"quantity": 910
}
-
getNetTokens
- Diese Methode gibt die Gesamtanzahl der Token zurück, die im System für ein angegebenes Token verfügbar sind. Die Nettotokensumme ist die Anzahl der verbleibenden Token, nachdem Token gebrannt wurden. In Gleichungsform: Nettotoken = Gesamtanzahl abgebrannter Token - Gesamtanzahl verbrannter Token. Wenn keine Token verbrannt werden, ist die Anzahl der Nettotoken gleich der Gesamtanzahl der abgebauten Token. Diese Methode kann nur mit
Token Admin
, Token Auditor
, Org Admin
oder Org Auditor
aufgerufen werden.
@GetMethod()
@Validator(yup.string())
public async getNetTokens(token_id: string) {
const token_asset = await this.getTokenObject(token_id);
await this.Ctx.Auth.checkAuthorization("TOKEN.getNetTokens", "TOKEN");
const netTokens = await this.Ctx.Token.getNetTokens(token_asset);
return {
msg: `Net supply of token for Token Id: ${token_id} is ${netTokens} tokens.`,
quantity: netTokens,
};
}
- Parameter:
token_id: string
: Die ID des Tokens.
- Rückgabewert:
- Bei Erfolg eine JSON-Zeichenfolge, die die Nettoanzahl von Token angibt.
- Beispiel für Rückgabewert:
{
"msg": "Net supply of token for Token Id: USD is 878 tokens.",
"quantity": 878
}
-
requestMint
- Diese Methode kann von einem Minter aufgerufen werden, um eine Anforderung an den Minter Notar zu senden, um eine bestimmte Anzahl von Token zu erstellen.
@Validator(
yup.string(),
yup.string(),
yup.number().positive(),
yup.date(),
yup.object().nullable()
)
public async requestMint(
operation_id: string,
notary_account_id: string,
quantity:number,
time_to_expiration: Date,
info_details ?: InfoDetails
) {
const notary_account: FungibleAccount = await this.Ctx.Account.getAccountWithTokenIdValidation(notary_account_id);
const token_asset = await this.getTokenObject(notary_account.token_id);
await this.Ctx.Model.createEvent(EVENT_NAME.REQUEST_MINT, { operation_id, notary_account_id, quantity, time_to_expiration, info_details }, token_asset);
return await this.Ctx.Hold.hold(operation_id, null, notary_account_id, quantity, time_to_expiration, token_asset, HoldOperationType.MINT, info_details);
}
- Parameter:
operation_id: string
: Die eindeutige Vorgangs-ID, die der Mint-Anforderung entspricht.
notary_account_id: string
: Die eindeutige Konto-ID des Notars, der die Anforderung verarbeitet.
quantity: number
- Die Anzahl der Token für Mint.
time_to_expiration
– Die Zeit, nach der die Minting-Anforderung abläuft und nicht mehr gültig ist.
info_details: JSON
: Ein Objekt, das die Kategorie (category
) und die Beschreibung (description
) der Anforderung angibt.
Sie geben den Parameter info_details
in einem anderen Format an, wenn Sie Visual Studio Code im Vergleich zur CLI oder Postman-Collection verwenden.
Visual Studio-Code: { "category": "category value", "description": "description value" }
CLI/Postman: "{\"category\":\"category value\",\"description\":\"description value\"}"
- Beispiel für Rückgabewert:
{
"msg": "AccountId oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41 has successfully submitted request to mint 200 tokens"
}
-
approveMint
- Diese Methode kann von einem Minter Notar aufgerufen werden, um eine Prägeanforderung zu genehmigen.
@Validator(yup.string(), yup.string())
public async approveMint(token_id: string, operation_id: string) {
const token_asset = await this.getTokenObject(token_id);
await this.Ctx.Model.createEvent(EVENT_NAME.APPROVE_MINT, { token_asset, operation_id }, token_asset);
return await this.Ctx.Hold.executeHold(operation_id, token_asset, HoldOperationType.MINT);
}
- Parameter:
token_id: string
: Die ID des zu prägenden Tokens.
operation_id: string
: Die eindeutige Vorgangs-ID, die der Mint-Anforderung entspricht.
- Beispiel für Rückgabewert:
{
"msg": "Successfully minted 1000 tokens to Account Id: oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41"
}
-
rejectMint
- Diese Methode kann von einem Minter Notar aufgerufen werden, um eine Prägeanforderung abzulehnen.
@Validator(yup.string(), yup.string())
public async rejectMint(token_id: string, operation_id: string) {
const token_asset = await this.getTokenObject(token_id);
await this.Ctx.Model.createEvent(EVENT_NAME.REJECT_MINT, { token_asset, operation_id }, token_asset);
return await this.Ctx.Hold.releaseHold(operation_id, token_asset, HoldOperationType.MINT);
}
- Parameter:
token_id: string
: Die ID des zu prägenden Tokens.
operation_id: string
: Die eindeutige Vorgangs-ID, die der Mint-Anforderung entspricht.
- Beispiel für Rückgabewert:
{
"msg": "Successfully rejected mint request with Operation Id '89ce' to mint 2000 tokens of token id USD"
}
-
issueTokens
- Mit dieser Methode werden Token abgebildet, die dann dem Aufrufer der Methode gehören.
@Validator(yup.string(), yup.number().positive(), yup.object().nullable())
public async issueTokens(token_id: string, quantity: number, info_details?: InfoDetails) {
const token_asset = await this.getTokenObject(token_id);
await this.Ctx.Model.createEvent(EVENT_NAME.ISSUE_TOKENS, { quantity, token_asset, info_details }, token_asset);
return await this.Ctx.Token.mint(quantity, token_asset, info_details);
}
- Parameter:
token_id: string
: Die ID des Tokens.
quantity
– Die Anzahl der zu mindernden Token.
info_details: JSON
: Ein Objekt, das die Kategorie (category
) und die Beschreibung (description
) der Anforderung angibt.
Sie geben den Parameter info_details
in einem anderen Format an, wenn Sie Visual Studio Code im Vergleich zur CLI oder Postman-Collection verwenden.
Visual Studio-Code: { "category": "category value", "description": "description value" }
CLI/Postman: "{\"category\":\"category value\",\"description\":\"description value\"}"
- Beispiel für Rückgabewert:
{
"msg": "Successfully minted 1000 tokens to Account Id: oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41"
}
-
transferTokens
- Mit dieser Methode werden Token vom Aufrufer an ein bestimmtes Konto übertragen.
@Validator(yup.string(), yup.number(), yup.object().nullable())
public async transferTokens(to_account_id: string, quantity: number, info_details ?: InfoDetails) {
if (quantity <= 0) {
throw new Error("The quantity should be a positive number.")
}
const to_account: FungibleAccount = await this.Ctx.Account.getAccountWithTokenIdValidation(to_account_id);
const token_asset = await this.getTokenObject(to_account.token_id);
await this.Ctx.Model.createEvent(EVENT_NAME.TRANSFER_TOKENS, { to_account_id, quantity, info_details }, token_asset);
let isNotary = await this.Ctx.Token.checkNotary(to_account_id, token_asset);
if(isNotary) {
throw new Error(`To Account Id '${to_account_id}' can not have a notary role!`);
}
return await this.Ctx.Token.transfer(to_account_id, quantity, token_asset, info_details);
}
- Parameter:
to_account_id: string
: Die eindeutige Konto-ID des Empfängers (Zahlungsempfängers).
quantity: number
: Die Anzahl der zu übertragenden Token.
info_details: JSON
: Ein Objekt, das die Kategorie (category
) und die Beschreibung (description
) der Anforderung angibt.
Sie geben den Parameter info_details
in einem anderen Format an, wenn Sie Visual Studio Code im Vergleich zur CLI oder Postman-Collection verwenden.
Visual Studio-Code: { "category": "category value", "description": "description value" }
CLI/Postman: "{\"category\":\"category value\",\"description\":\"description value\"}"
- Beispiel für Rückgabewert:
{
"msg": "Successfully transferred 10000 tokens from account id: oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41 to account id: oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a."
}
-
getAccountOnHoldBalance
- Diese Methode gibt den aktuellen einbehaltenen Saldo für ein angegebenes Konto zurück. Diese Methode kann nur von einer
Token Admin
oder Token Auditor
, einer Org Admin
oder Org Auditor
der angegebenen Organisation oder der AccountOwner
des Accounts aufgerufen werden.
@GetMethod()
@Validator(yup.string())
public async getAccountOnHoldBalance(account_id: string) {
await this.Ctx.Account.getAccountWithTokenIdValidation(account_id);
await this.Ctx.Auth.checkAuthorization("ACCOUNT.getAccountOnHoldBalance", "TOKEN", { account_id });
return await this.Ctx.Account.getAccountOnHoldBalance(account_id);
}
- Parameter:
account_id: string
: Die eindeutige ID des Tokenaccounts.
- Rückgabewert:
- Bei Erfolg eine JSON-Darstellung des aktuellen Saldo, der zurückgehalten wird.
- Beispiel für Rückgabewert:
{
"msg": "Total Holding Balance is: 0",
"holding_balance": 0
}
-
getOnHoldDetailsWithOperationId
- Diese Methode gibt die Details der zurückgestellten Transaktion für eine angegebene Vorgangs-ID und ein bestimmtes Token zurück. Diese Methode kann durch eine
Token Admin
oder Token Auditor
des Chaincodes oder durch einen Transaktionsteilnehmer (Absender, Empfänger, Notar) aufgerufen werden.
@GetMethod()
@Validator(yup.string(), yup.string())
public async getOnHoldDetailsWithOperationId(token_id: string, operation_id: string) {
await this.Ctx.Auth.checkAuthorization("ACCOUNT.getOnHoldDetailsWithOperationId", "TOKEN", { token_id, operation_id });
return await this.Ctx.Hold.getOnHoldDetailsWithOperationId(token_id, operation_id);
}
- Parameter:
token_id: string
: Die ID des Tokens.
operation_id: string
: Eine eindeutige ID zur Identifizierung des Sperrvorgangs. Normalerweise wird diese ID von der Clientanwendung übergeben.
- Beispiel für Rückgabewert:
{
"assetType": "ohold",
"holding_id": "ohold~cbdc~token~hold1",
"operation_id": "hold1",
"token_name": "cbdc",
"from_org_id": "CentralBank",
"operation_type": "transfer",
"status": "approved",
"from_account_id": "oaccount~5abb4155f4b245bb1732321e3174ac81999b03495b5c74f8e1f270bafbadef75",
"to_account_id": "oaccount~22776ada3efff6aaf4c68c204c1f063b139adfa1bca79ed53199117c34036cfc",
"notary_account_id": "oaccount~1da238c1491c919b151f777a615fb5779032c34b3ef3adeca6afe591bac10aaf",
"token_id": "token",
"quantity": "0",
"time_to_expiration": "2029-01-04T00:00:00.000Z",
"category": "category value",
"description": "description value"
}
-
getOnHoldIds
- Diese Methode gibt eine Liste aller Halte-IDs für ein angegebenes Konto zurück. Diese Methode kann durch eine
Token Admin
oder Token Auditor
des Chaincodes, eine Org Admin
oder Org Auditor
der angegebenen Organisation oder die AccountOwner
des Accounts aufgerufen werden.
@GetMethod()
@Validator(yup.string())
public async getOnHoldIds(account_id: string) {
await this.Ctx.Account.getAccountWithTokenIdValidation(account_id);
await this.Ctx.Auth.checkAuthorization("ACCOUNT.getOnHoldIds", "TOKEN", { account_id });
return await this.Ctx.Account.getOnHoldIds(account_id);
}
- Parameter:
account_id: string
: Die eindeutige ID des Tokenaccounts.
- Rückgabewert:
- Bei Erfolg eine JSON-Liste mit IDs.
- Beispiel für Rückgabewert:
{
"msg": "Holding Ids are: ",
"holding_ids": ["ohold~cbdc~token~hold1"]
}
-
getOnHoldBalanceWithOperationId
- Diese Methode gibt den Saldo für eine bestimmte Vorgangs-ID und ein bestimmtes Token zurück. Diese Methode kann durch eine
Token Admin
oder Token Auditor
des Chaincodes oder durch einen Transaktionsteilnehmer (Absender, Empfänger, Notar) aufgerufen werden.
@GetMethod()
@Validator(yup.string(), yup.string())
public async getOnHoldBalanceWithOperationId(token_id: string, operation_id: string) {
await this.Ctx.Auth.checkAuthorization("ACCOUNT.getOnHoldBalanceWithOperationId", "TOKEN", { token_id, operation_id });
return await this.Ctx.Hold.getOnHoldBalanceWithOperationId(token_id, operation_id);
}
- Parameter:
token_id: string
: Die ID des Tokens.
operation_id: string
: Eine eindeutige ID zur Identifizierung des Sperrvorgangs. Normalerweise wird diese ID von der Clientanwendung übergeben.
- Rückgabewert:
- Bei Erfolg eine JSON-Zeichenfolge, die den Haltebalance angibt.
- Beispiel für Rückgabewert:
{
"msg": "Current Holding Balance of Operation 'hold1' for token 'token' is: 0",
"holding_balance": 0
}
-
holdTokens
- Mit dieser Methode wird eine Sperre für den Aufrufer (den Eigentümer der Token) mit dem Account
to_account_id
erstellt. Das angegebene Notarkonto ist für den Abschluss oder die Freigabe der Sperre verantwortlich. Wenn die Sperre erstellt wird, wird der angegebene Tokensaldo des Zahlers gesperrt. Ein gesperrter Saldo kann erst übertragen werden, wenn die Sperre abgeschlossen oder freigegeben wurde.
@Validator(
yup.string(),
yup.string(),
yup.string(),
yup.number().positive(),
yup.date(),
yup.object().nullable()
)
public async holdTokens(
operation_id: string,
to_account_id: string,
notary_account_id: string,
quantity: number,
time_to_expiration: Date,
info_details ?: InfoDetails,
) {
const to_account: FungibleAccount = await this.Ctx.Account.getAccountWithTokenIdValidation(to_account_id);
await this.Ctx.Account.getAccountWithTokenIdValidation(notary_account_id);
const token_asset = await this.getTokenObject(to_account.token_id);
await this.Ctx.Model.createEvent(EVENT_NAME.HOLD_TOKENS, {
operation_id,
to_account_id,
notary_account_id,
quantity,
time_to_expiration,
info_details
}, token_asset);
return await this.Ctx.Hold.hold(operation_id, to_account_id, notary_account_id, quantity, time_to_expiration, token_asset, HoldOperationType.TRANSFER, info_details);
}
- Parameter:
operation_id: string
: Eine eindeutige ID zur Identifizierung des Sperrvorgangs. Normalerweise wird diese ID von der Clientanwendung übergeben.
to_account_id: string
: Die eindeutige Konto-ID des Empfängers.
notary_account_id: string
: Die eindeutige Konto-ID des Notars.
quantity: number
: Die Anzahl der zurückzustellenden Token.
time_to_expiration
: Der Zeitpunkt, zu dem die Sperre abläuft. Geben Sie 0 für eine permanente Sperre an. Verwenden Sie andernfalls das RFC-3339-Format. Beispiel: 2021-06-02T12:46:06Z.
info_details: JSON
: Ein Objekt, das die Kategorie (category
) und die Beschreibung (description
) der Anforderung angibt.
Sie geben den Parameter info_details
in einem anderen Format an, wenn Sie Visual Studio Code im Vergleich zur CLI oder Postman-Collection verwenden.
Visual Studio-Code: { "category": "category value", "description": "description value" }
CLI/Postman: "{\"category\":\"category value\",\"description\":\"description value\"}"
- Beispiel für Rückgabewert:
{
"msg": "AccountId oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3 is successfully holding 100 tokens"
}
-
executeHoldTokens
- Mit dieser Methode wird eine Sperre für ein Token abgeschlossen. Eine Menge von Token, die zuvor von einem Token-Eigentümer gehalten wurden, wird an einen Empfänger übertragen. Wenn der Wert
quantity
kleiner als der tatsächliche Zurückstellungswert ist, ist der verbleibende Betrag wieder für den ursprünglichen Eigentümer der Token verfügbar. Diese Methode kann nur von der AccountOwner
-ID mit der Rolle notary
für die angegebene Vorgangs-ID aufgerufen werden. Die Sperre kann nur vom Notar abgeschlossen werden.
@Validator(yup.string(), yup.string(), yup.number().positive())
public async executeHoldTokens(token_id: string, operation_id: string, quantity: number) {
const token_asset = await this.getTokenObject(token_id);
await this.Ctx.Model.createEvent(EVENT_NAME.EXECUTE_HOLD_TOKENS, { token_asset, operation_id, quantity }, token_asset);
return await this.Ctx.Hold.executeHold(operation_id, token_asset, HoldOperationType.TRANSFER, quantity);
}
- Parameter:
token_id: string
: Die ID des Tokens.
operation_id: string
: Eine eindeutige ID zur Identifizierung des Sperrvorgangs. Normalerweise wird diese ID von der Clientanwendung übergeben.
quantity: number
: Die Anzahl der zurückgestellten Token, die übertragen werden sollen.
- Rückgabewert:
- Bei Erfolg eine Nachricht mit der Konto-ID des Anrufers und der Menge der Transaktion.
- Beispiel für Rückgabewert:
{
"msg": "Account Id: oaccount~1e31495a0c149b08cb9d02bdcac5e83d88c0f1557d954dda12bb807d7f6fc111 is successfully executed '10' tokens from Operation Id '454f4bf6'."
}
-
releaseHoldTokens
- Diese Methode gibt eine Sperre für Token frei. Die Übertragung ist nicht abgeschlossen, und alle zurückgestellten Token stehen dem ursprünglichen Eigentümer erneut zur Verfügung. Diese Methode kann durch die
AccountOwner
-ID mit der Rolle notary
innerhalb der angegebenen Frist oder durch den Zahler, Zahlungsempfänger oder Notar nach der angegebenen Frist aufgerufen werden.
@Validator(yup.string(), yup.string())
public async releaseHoldTokens(token_id: string, operation_id: string) {
const token_asset = await this.getTokenObject(token_id);
await this.Ctx.Model.createEvent(EVENT_NAME.RELEASE_HOLD_TOKENS, { token_asset, operation_id }, token_asset);
return await this.Ctx.Hold.releaseHold(operation_id, token_asset, HoldOperationType.TRANSFER);
}
- Parameter:
token_id: string
: Die ID des Tokens.
operation_id: string
: Eine eindeutige ID zur Identifizierung des Sperrvorgangs. Normalerweise wird diese ID von der Clientanwendung übergeben.
- Rückgabewert:
- Bei Erfolg wird eine Meldung angezeigt, dass die Sperre freigegeben wurde.
- Beispiel für Rückgabewert:
{
"msg": "Successfully released '200' tokens from Operation Id '77b75873' to Account Id: oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a."
}
-
requestBurn
- Diese Methode kann von einem Brenner aufgerufen werden, um eine Anforderung an den Brennernotar zu senden, um eine bestimmte Anzahl von Token zu zerstören.
@Validator(
yup.string(),
yup.string(),
yup.number().positive(),
yup.date(),
yup.object().nullable()
)
public async requestBurn(
operation_id: string,
notary_account_id: string,
quantity:number,
time_to_expiration: Date,
info_details ?: InfoDetails,
) {
const notary_account: FungibleAccount = await this.Ctx.Account.getAccountWithTokenIdValidation(notary_account_id);
const token_asset = await this.getTokenObject(notary_account.token_id);
await this.Ctx.Model.createEvent(EVENT_NAME.REQUEST_BURN, { operation_id, notary_account_id, quantity, time_to_expiration, info_details }, token_asset);
return await this.Ctx.Hold.hold(operation_id, null, notary_account_id, quantity, time_to_expiration, token_asset, HoldOperationType.BURN, info_details);
}
- Parameter:
operation_id: string
: Die eindeutige Vorgangs-ID, die für die Burn-Anforderung steht.
notary_account_id: string
: Die eindeutige Account-ID des Notars, der die Anforderung verarbeitet.
quantity: number
- Die Anzahl der zu brennenden Token.
time_to_expiration
: Die Zeit, nach der die Brennen-Anforderung abläuft und nicht mehr gültig ist.
info_details: JSON
: Ein Objekt, das die Kategorie (category
) und die Beschreibung (description
) der Anforderung angibt.
Sie geben den Parameter info_details
in einem anderen Format an, wenn Sie Visual Studio Code im Vergleich zur CLI oder Postman-Collection verwenden.
Visual Studio-Code: { "category": "category value", "description": "description value" }
CLI/Postman: "{\"category\":\"category value\",\"description\":\"description value\"}"
- Beispiel für Rückgabewert:
{
"msg": "AccountId oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98 has successfully submitted request to burn 100 tokens"
}
-
approveBurn
- Diese Methode kann von einem Brennernotar aufgerufen werden, um eine Brennanforderung zu genehmigen.
@Validator(yup.string(), yup.string())
public async approveBurn(token_id: string, operation_id: string) {
const token_asset = await this.getTokenObject(token_id);
await this.Ctx.Model.createEvent(EVENT_NAME.APPROVE_BURN, { token_asset, operation_id }, token_asset);
return await this.Ctx.Hold.executeHold(operation_id, token_asset, HoldOperationType.BURN);
}
- Parameter:
token_id: string
: Die ID des zu brennenden Tokens.
operation_id: string
: Die eindeutige Vorgangs-ID, die für die Burn-Anforderung steht.
- Beispiel für Rückgabewert:
{
"msg": "Successfully burned 200 tokens from account id: oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98"
}
-
rejectBurn
- Diese Methode kann von einem Brennernotar aufgerufen werden, um eine Brennanforderung abzulehnen.
@Validator(yup.string(), yup.string())
public async rejectBurn(token_id: string, operation_id: string) {
const token_asset = await this.getTokenObject(token_id);
await this.Ctx.Model.createEvent(EVENT_NAME.REJECT_BURN, { token_asset, operation_id }, token_asset);
return await this.Ctx.Hold.releaseHold(operation_id, token_asset, HoldOperationType.BURN);
}
- Parameter:
token_id: string
: Die ID des zu brennenden Tokens.
operation_id: string
: Die eindeutige Vorgangs-ID, die für die Burn-Anforderung steht.
- Beispiel für Rückgabewert:
{
"msg": "Successfully rejected burn request with Operation Id '8d34' to burn 100 tokens of token id USD"
}