-
isTokenAdmin
- Cette méthode retourne la valeur booléenne
true
si l'appelant de la fonction est Token Admin
, sinon elle retourne false
. Un Token Admin
, Token Auditor
, un Org Admin
ou un Org Auditor
peut appeler cette fonction sur n'importe quel autre utilisateur du réseau de chaîne de blocs. Les autres utilisateurs ne peuvent appeler cette méthode que sur leurs propres comptes.
@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);
}
- Paramètres :
org_id: string
– ID fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation courante.
user_id: string
– Nom d'utilisateur ou ID courriel de l'utilisateur.
- Retourne :
- La méthode retourne
true
si l'appelant est Token Admin
, sinon elle retourne false
.
-
addTokenAdmin
- Cette méthode ajoute un utilisateur en tant qu'
Token Admin
du code de chaîne. Cette méthode ne peut être appelée que par un Token Admin
du code de chaîne. Comme la valeur user_id
est stockée dans le livre public, n'utilisez pas d'informations d'identification personnelle pour la valeur 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);
}
- Paramètres :
org_id: string
– ID fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation courante.
user_id: string
– Nom d'utilisateur ou ID courriel de l'utilisateur.
- Retourne :
- En cas de succès, un message contenant les détails de l'utilisateur qui a été ajouté en tant que
Token Admin
du code de chaîne.
- Exemple de valeur renvoyée :
{
"msg": "Successfully added Token Admin (Org_Id: CentralBank, User_Id: cb1)"
}
-
removeTokenAdmin
- Cette méthode supprime un utilisateur en tant qu'
Token Admin
du code de chaîne. Cette méthode ne peut être appelée que par un Token Admin
du code de chaîne.
@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);
}
- Paramètres :
org_id: string
– ID fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation courante.
user_id: string
– Nom d'utilisateur ou ID courriel de l'utilisateur.
- Retourne :
- En cas de succès, un message contenant les détails de l'utilisateur qui a été supprimé en tant que
Token Admin
du code de chaîne.
- Exemple de valeur renvoyée :
{"msg": "Successfully removed Admin (Org_Id: Org1MSP, User_Id: User1)"}
-
addOrgAdmin
- Cette méthode ajoute un utilisateur en tant que
Org Admin
de l'organisation. Cette méthode ne peut être appelée que par un Token Admin
du code de chaîne ou un Org Admin
de l'organisation spécifiée. Comme la valeur user_id
est stockée dans le livre public, n'utilisez pas d'informations d'identification personnelle pour la valeur 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);
}
- Paramètres :
org_id: string
– ID fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation courante.
user_id: string
– Nom d'utilisateur ou ID courriel de l'utilisateur.
- Retourne :
- En cas de succès, un message qui inclut les détails de l'utilisateur ajouté en tant que
Org Admin
de l'organisation.
- Exemple de valeur renvoyée :
{
"msg": "Successfully added Org Admin (Org_Id: Org1MSP, User_Id: orgAdmin)"
}
-
removeOrgAdmin
- Cette méthode supprime un utilisateur en tant que
Org Admin
de l'organisation. Cette méthode ne peut être appelée que par un Token Admin
du code de chaîne ou par un Org Admin
de l'organisation spécifiée.
@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);
}
- Paramètres :
org_id: string
– ID fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation courante.
user_id: string
– Nom d'utilisateur ou ID courriel de l'utilisateur.
- Retourne :
- En cas de succès, un message qui inclut les détails de l'utilisateur qui a été supprimé en tant que
Org Admin
de l'organisation.
- Exemple de valeur renvoyée :
{
"msg": "Successfully removed Org Admin (Org_Id Org1MSP User_Id orgAdmin)"
}
-
addTokenAuditor
- Cette méthode ajoute un utilisateur en tant qu'
Token Auditor
du code de chaîne. Cette méthode ne peut être appelée que par un Token Admin
du code de chaîne. Comme la valeur user_id
est stockée dans le livre public, n'utilisez pas d'informations d'identification personnelle pour la valeur 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);
}
- Paramètres :
org_id: string
– ID fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation courante.
user_id: string
– Nom d'utilisateur ou ID courriel de l'utilisateur.
- Exemple de valeur renvoyée :
{
"msg": "Successfully added Token Auditor (Org_Id: CentralBank, User_Id: cb_admin_demo)"
}
-
removeTokenAuditor
- Cette méthode supprime un utilisateur en tant qu'
Token Auditor
du code de chaîne. Cette méthode ne peut être appelée que par un Token Admin
du code de chaîne.
@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);
}
- Paramètres :
org_id: string
– ID fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation courante.
user_id: string
– Nom d'utilisateur ou ID courriel de l'utilisateur.
- Exemple de valeur renvoyée :
{
"msg": "Successfully removed Token Auditor (Org_Id: CB, User_Id: cb)"
}
-
addOrgAuditor
- Cette méthode ajoute un utilisateur en tant qu'
Org Auditor
du code de chaîne. Cette méthode ne peut être appelée que par Token Admin
ou Org Admin
du code de chaîne. Comme la valeur user_id
est stockée dans le livre public, n'utilisez pas d'informations d'identification personnelle pour la valeur 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);
}
- Paramètres :
org_id: string
– ID fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation courante.
user_id: string
– Nom d'utilisateur ou ID courriel de l'utilisateur.
- Retourne :
- En cas de succès, un message contenant les détails de l'utilisateur qui a été ajouté en tant que
Org Auditor
du code de chaîne.
- Exemple de valeur renvoyée :
{
"msg": "Successfully added Org Auditor (Org_Id: CentralBank, User_Id: cb_admin_demo)"
}
-
removeOrgAuditor
- Cette méthode supprime un utilisateur en tant qu'
Org Auditor
du code de chaîne. Cette méthode ne peut être appelée que par Token Admin
ou Org Admin
du code de chaîne.
@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);
}
- Paramètres :
org_id: string
– ID fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation courante.
user_id: string
– Nom d'utilisateur ou ID courriel de l'utilisateur.
- Exemple de valeur renvoyée :
{
"msg": "Successfully removed Org Auditor (Org_Id: CB, User_Id: cb)"
}
-
createAccount
- Cette méthode crée un compte pour un utilisateur et un jeton spécifiés. Un compte doit être créé pour tout utilisateur qui aura des jetons à tout moment. Les comptes assurent le suivi des soldes, des soldes bloqués et de l'historique des transactions. Un ID compte est formé en concaténant le type d'immobilisation et l'ID jeton, puis en créant un hachage SHA-256 sur une concaténation de l'ID organisation et de l'ID utilisateur. Cette méthode ne peut être appelée que par
Token Admin
ou par Org Admin
de l'organisation spécifiée.
@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);
}
- Paramètres :
- Exemple de valeur renvoyée :
{
"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
- Cette méthode associe un jeton fongible à un compte. Cette méthode ne peut être appelée que par un
Token Admin
du code de chaîne ou par un Org Admin
de l'organisation concernée.
@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);
}
- Paramètres :
account_id: string
– ID du compte.
token_id: string
– ID du jeton.
custom_account_id: string
– Pour le mode confidentiel, l'ID compte bancaire du compte, un identificateur alphanumérique aléatoire unique. Par défaut, 14 caractères.
- Retourne :
- En cas de succès, un objet JSON du compte mis à jour. Le paramètre
bapAccountVersion
est défini dans l'objet de compte pour une utilisation interne.
- Exemple de valeur renvoyée :
{
"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
- Cette méthode retourne une liste de tous les comptes. Cette méthode ne peut être appelée que par
Token Admin
ou Token Auditor
. Cette méthode utilise des interrogations Berkeley DB SQL riches et ne peut être appelée qu'en cas de connexion au réseau distant Oracle Blockchain Platform.
@GetMethod()
@Validator()
public async getAllAccounts() {
await this.Ctx.Auth.checkAuthorization("ACCOUNT.getAllAccounts", "TOKEN");
return await this.Ctx.Account.getAllAccounts();
}
- Paramètres :
- Exemple de valeur renvoyée :
[
{
"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
- Cette méthode retourne une liste de tous les comptes de jeton appartenant à une organisation spécifiée. Cette méthode ne peut être appelée que par
Token Admin
ou Token Auditor
, ou par Org Admin
ou Org Auditor
de l'organisation spécifiée.
@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);
}
- Paramètres :
org_id: string
– ID fournisseur de services d'adhésion (MSP) de l'organisation.
- Retourne :
- En cas de succès, une liste de tous les comptes pour l'organisation spécifiée.
- Exemple de valeur renvoyée :
[
{
"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
- Cette méthode retourne une liste de tous les ID compte pour un ID organisation et un ID utilisateur spécifiés. Cette méthode ne peut être appelée que par
Token Admin
ou Token Auditor
, par Org Admin
ou Org Auditor
de l'organisation spécifiée, ou par Account Owner
spécifié dans les paramètres.
@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);
}
- Paramètres :
org_id string
– ID fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation courante.
user_id string
– Nom d'utilisateur ou ID courriel de l'utilisateur.
- Retourne :
- En cas de succès, un tableau JSON d'ID compte.
- Exemple de valeur renvoyée :
[
{
"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
- Cette méthode retourne les détails de l'utilisateur (
org_id
et user_id
) pour un compte spécifié. Cette méthode peut être appelée par Token Admin
ou Token Auditor
, ou par Org Admin
ou Org Auditor
de l'organisation spécifiée.
@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);
}
- Paramètres :
account_id: string
– ID du compte.
- Retourne :
- En cas de succès, un objet JSON des détails de l'utilisateur (
org_id
, token_id
et user_id
).
- Exemple de valeur renvoyée :
{
"token_id": "USD",
"org_id": "CentralBank",
"user_id": "cb_admin_demo",
"custom_account_id": "10101234000123"
}
-
getAccount
- Cette méthode retourne les détails d'un compte spécifié. Cette méthode ne peut être appelée que par
Token Admin
ou Token Auditor
, Org Admin
ou Org Auditor
de l'organisation spécifiée ou AccountOwner
du compte.
@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);
}
- Paramètres :
account_id: string
– ID unique du compte de jeton.
- Exemple de valeur renvoyée :
{
"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
- Cette méthode retourne les détails pour un ID compte personnalisé spécifié. Cette méthode ne peut être appelée que par
Token Admin
ou Token Auditor
, ou par Org Admin
ou Org Auditor
de l'organisation spécifiée.
@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);
}
- Paramètres :
custom_account_id: string
– ID compte bancaire du compte, un identificateur alphanumérique aléatoire unique.
org_id: string
– ID fournisseur de services d'adhésion (MSP) de l'organisation.
- Exemple de valeur renvoyée :
[
{
"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
- Cette méthode retourne un tableau des détails de l'historique des transactions de compte pour un compte spécifié. Cette méthode ne peut être appelée que par
Token Admin
ou Token Auditor
, Org Admin
ou Org Auditor
de l'organisation spécifiée ou AccountOwner
du compte.
@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);
}
- Paramètres :
account_id: string
– ID unique du compte.
- Exemple de valeur renvoyée :
[
{
"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
- Cette méthode retourne un tableau filtré des détails de l'historique des transactions de compte pour un utilisateur et un jeton spécifiés. Cette méthode ne peut être appelée que par
Token Admin
ou Token Auditor
, Org Admin
ou Org Auditor
de l'organisation spécifiée ou AccountOwner
du compte. Cette méthode ne peut être appelée que si elle est connectée à un réseau Oracle Blockchain Platform distant.
@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);
}
- Paramètres :
account_id: string
– ID unique du compte.
filters: string
– Paramètre facultatif. Si vide, tous les enregistrements sont retournés. La propriété PageSize
détermine le nombre d'enregistrements à retourner. Si PageSize
a la valeur 0, la taille de page par défaut est 20. La propriété Bookmark
détermine l'index de début des enregistrements à retourner. Pour plus d'informations, consultez la documentation sur Hyperledger Fabric. Les propriétés StartTime
et EndTime
doivent être spécifiées au format RFC-3339.
- Exemple de valeur renvoyée :
[
{
"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
- Cette méthode extrait l'historique des transactions de la base de données d'historique enrichi. Cette méthode ne peut être appelée que par
Token Admin
ou Token Auditor
, Org Admin
ou Org Auditor
de l'organisation spécifiée ou AccountOwner
du compte.
@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);
}
- Paramètres :
account_id: string
– ID unique du compte.
custom_endpoint
– Point d'extrémité du service RESTful de la base de données d'historique enrichi.
bearer_token
– Jeton d'autorisation d'accès pour le point d'extrémité du service RESTful.
filters: string
– Paramètre facultatif. Si vide, tous les enregistrements sont retournés. La propriété PageSize
détermine le nombre d'enregistrements à retourner. Si PageSize
a la valeur 0, la taille de page par défaut est 20. La propriété Bookmark
détermine l'index de début des enregistrements à retourner. Pour plus d'informations, consultez la documentation sur Hyperledger Fabric. Les propriétés StartTime
et EndTime
doivent être spécifiées au format RFC-3339.
- Exemple de valeur renvoyée :
[
{
"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
- Cette méthode extrait l'historique des transactions de la base de données d'historique complet pour l'organisation spécifiée. Cette méthode ne peut être appelée que par
Token Admin
ou Token Auditor
, Org Admin
ou Org Auditor
de l'organisation spécifiée ou AccountOwner
du compte.
@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);
}
- Paramètres :
org_id: string
– ID fournisseur de services d'adhésion (MSP) de l'organisation.
custom_endpoint
– Point d'extrémité du service RESTful de la base de données d'historique enrichi.
bearer_token
– Jeton d'autorisation d'accès pour le point d'extrémité du service RESTful.
filters: string
– Paramètre facultatif. Si vide, tous les enregistrements sont retournés. La propriété PageSize
détermine le nombre d'enregistrements à retourner. Si PageSize
a la valeur 0, la taille de page par défaut est 20. La propriété Bookmark
détermine l'index de début des enregistrements à retourner. Pour plus d'informations, consultez la documentation sur Hyperledger Fabric. Les propriétés StartTime
et EndTime
doivent être spécifiées au format RFC-3339.
- Exemple de valeur renvoyée :
[
{
"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
- Cette méthode extrait l'historique des transactions de la base de données d'historique complet pour toutes les organisations. Cette méthode ne peut être appelée que par
Token Admin
ou Token Auditor
.
@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);
}
- Paramètres :
custom_endpoint
– Point d'extrémité du service RESTful de la base de données d'historique enrichi.
bearer_token
– Jeton d'autorisation d'accès pour le point d'extrémité du service RESTful.
filters: string
– Paramètre facultatif. Si vide, tous les enregistrements sont retournés. La propriété PageSize
détermine le nombre d'enregistrements à retourner. Si PageSize
a la valeur 0, la taille de page par défaut est 20. La propriété Bookmark
détermine l'index de début des enregistrements à retourner. Pour plus d'informations, consultez la documentation sur Hyperledger Fabric. Les propriétés StartTime
et EndTime
doivent être spécifiées au format RFC-3339.
- Exemple de valeur renvoyée :
[
{
"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
- Cette méthode retourne le solde courant pour un compte spécifié. Cette méthode ne peut être appelée que par
Token Admin
ou Token Auditor
, Org Admin
ou Org Auditor
de l'organisation spécifiée ou AccountOwner
du compte.
@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);
}
- Paramètres :
account_id: string
– ID unique du compte de jeton.
- Retourne :
- En cas de succès, une représentation JSON du solde du compte courant.
- Exemple de valeur renvoyée :
{
"msg": "Current Balance is: 100",
"user_balance": 100
}
-
deleteHistoricalTransactions
- Cette méthode supprime les anciennes transactions de la base de données d'état. Cette méthode ne peut être appelée que par
Token Admin
.
@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);
}
- Paramètres :
time_to_expiration Date
– Horodatage qui indique quand supprimer des transactions. Les ressources de transaction antérieures à l'heure spécifiée seront supprimées.
- Exemple de valeur renvoyée :
{
"msg": "Successfully deleted transaction older than date: Thu Aug 19 2025 11:19:36 GMT+0000 (Coordinated Universal Time).",
"transactions": [
"otransaction~ec3366dd48b4ce2838f820f2f138648e6e55a07226713e59b411ff31b0d21058"
]
}
-
getTransactionById
- Cette méthode retourne l'historique d'une ressource
Transaction
. Cette méthode ne peut être appelée que par Token Admin
ou Token Auditor
, par Org Admin
ou Org Auditor
de l'organisation spécifiée, ou par un participant à la transaction (expéditeur, destinataire ou notaire).
@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);
}
- Paramètres :
transaction_id string
– ID de la ressource de transaction.
- Retourne :
- En cas de succès, un tableau JSON de l'historique de la transaction.
- Exemple de valeur renvoyée :
{
"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
- Cette méthode obtient le statut courant du compte de jeton. Cette méthode peut être appelée par
Token Admin
du code de chaîne, Org Admin
de l'organisation spécifiée ou par le responsable du compte de jeton.
@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);
}
}
- Paramètres :
account_id: string
– ID unique du compte de jeton.
- Retourne :
- En cas de succès, un message contenant les détails du statut du compte de jeton.
- Exemple de valeur renvoyée :
{
"assetType": "oaccountStatus",
"status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
"account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
"status": "active"
}
-
getAccountStatusHistory
- Cette méthode permet d'obtenir l'historique du statut du compte. Cette méthode peut être appelée par
Token Admin
du code de chaîne, Org Admin
de l'organisation spécifiée ou par le responsable du compte de jeton.
@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;
}
- Paramètres :
account_id: string
– ID unique du compte de jeton.
- Retourne :
- En cas de succès, un message qui inclut les détails de l'historique du statut du compte.
- Exemple de valeur renvoyée :
[
{
"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
- Cette méthode active un compte de jeton. Cette méthode ne peut être appelée que par un
Token Admin
du code de chaîne ou un Org Admin
de l'organisation spécifiée. Les comptes supprimés ne peuvent pas être activés.
@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);
}
- Paramètres :
account_id: string
– ID unique du compte de jeton.
- Retourne :
- En cas de succès, une représentation JSON de l'objet de statut de compte pour le compte de jeton spécifié.
- Exemple de valeur renvoyée :
{
"assetType": "oaccountStatus",
"status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
"account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
"status": "active"
}
-
suspendAccount
- Cette méthode suspend un compte de jeton. Cette méthode ne peut être appelée que par un
Token Admin
du code de chaîne ou un Org Admin
de l'organisation spécifiée. Une fois qu'un compte est suspendu, vous ne pouvez pas effectuer d'opérations de mise à jour du compte. Un compte supprimé ne peut pas être suspendu.
@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);
}
- Paramètres :
account_id: string
– ID unique du compte de jeton.
- Retourne :
- En cas de succès, une représentation JSON de l'objet de statut de compte pour le compte de jeton spécifié.
- Exemple de valeur renvoyée :
{
"assetType": "oaccountStatus",
"status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
"account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
"status": "suspended"
}
-
deleteAccount
- Cette méthode supprime un compte de jeton. Cette méthode ne peut être appelée que par un
Token Admin
du code de chaîne ou un Org Admin
de l'organisation spécifiée. Après la suppression d'un compte, vous ne pouvez pas effectuer d'opérations de mise à jour du compte. Le compte supprimé est à l'état final et ne peut pas passer à un autre état. Pour supprimer un compte, le solde du compte et le solde bloqué doivent être nuls.
@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);
}
- Paramètres :
account_id: string
– ID unique du compte de jeton.
- Retourne :
- En cas de succès, une représentation JSON de l'objet de statut de compte pour le compte de jeton spécifié.
- Exemple de valeur renvoyée :
{
"assetType": "oaccountStatus",
"status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
"account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
"status": "deleted"
}
-
setMaxDailyAmount
- Cette méthode définit la valeur
max_daily_amount
pour un compte spécifié. Cette méthode ne peut être appelée que par un Token Admin
du code de chaîne ou un Org Admin
de l'organisation spécifiée.
@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);
}
- Paramètres :
account_id: string
– ID unique du compte de jeton.
max_daily_amount?: string
– (Facultatif) Nombre maximal de jetons que l'utilisateur peut transférer quotidiennement. S'il n'est pas spécifié, l'utilisateur peut transférer n'importe quelle quantité de jetons par jour.
- Exemple de valeur renvoyée :
{
"msg": "Successfully set max daily amount for account id oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a to 1000000"
}
-
setMaxDailyTransactionCount
- Cette méthode définit la valeur
max_daily_transactions
pour un compte spécifié. Cette méthode ne peut être appelée que par un Token Admin
du code de chaîne ou un Org Admin
de l'organisation spécifiée.
@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);
}
- Paramètres :
account_id: string
– ID unique du compte de jeton.
max_daily_transactions?: string
– (Facultatif) Nombre maximal de transactions que l'utilisateur peut effectuer quotidiennement. S'il n'est pas spécifié, l'utilisateur peut effectuer un nombre illimité de transactions par jour.
- Exemple de valeur renvoyée :
{
"msg": "Successfully set max daily transactions for account id oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a to 100000"
}
-
getMaxDailyAmount
- Cette méthode obtient la valeur
max_daily_amount
pour un compte spécifié. Cette méthode ne peut être appelée que par Token Admin
ou Token Auditor
du code de chaîne ou par Org Admin
ou Org Auditor
de l'organisation spécifiée.
@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);
}
- Paramètres :
account_id: string
– ID unique du compte de jeton.
- Exemple de valeur renvoyée :
{
"max_daily_amount": "10000"
}
-
getMaxDailyTransactionCount
- Cette méthode obtient la valeur
max_daily_transactions
pour un compte spécifié. Cette méthode ne peut être appelée que par Token Admin
ou Token Auditor
du code de chaîne ou par Org Admin
ou Org Auditor
de l'organisation spécifiée.
@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);
}
- Paramètres :
account_id: string
– ID unique du compte de jeton.
- Exemple de valeur renvoyée :
{
"max_daily_transactions": "100"
}
-
consolidateRunningBalanceInTransactions
- Cette méthode calcule les soldes de compte courant pour enregistrer les valeurs mises à jour dans les paires clé/valeur de transaction. En général, les administrateurs de système appellent cette méthode à l'aide d'un programmateur de mandataire REST. Cette méthode ne peut être appelée que par
Token Admin
ou Org Admin
.
@Validator(yup.string())
public async consolidateRunningBalanceInTransactions() {
await this.Ctx.Auth.checkAuthorization("TRANSACTION.consolidateRunningBalanceInTransactions", "TOKEN");
return this.Ctx.Transaction.consolidateRunningBalanceInTransactions(true);
}
- Exemple de valeur renvoyée :
{ msg: "Successfully updated account running balance for pending transactions."}
-
processSendersAndReceivers
- Cette méthode calcule et met à jour les soldes de compte de jeton qui sont répartis dans les paires clé/valeur de l'expéditeur et du destinataire créées lors des transferts interorganisations, puis supprime les paires clé/valeur de l'expéditeur et du destinataire, qui ne sont plus utilisées. En général, les administrateurs de système appellent cette méthode à l'aide d'un programmateur de mandataire REST. Cette méthode ne peut être appelée que par
Token Admin
ou Org Admin
.
@Validator(yup.string())
public async processSendersAndReceivers() {
await this.Ctx.Auth.checkAuthorization("ACCOUNT.processSendersAndReceivers", "TOKEN");
return this.Ctx.Account.processSendersAndReceivers(true);
}
- Exemple de valeur renvoyée :
{ msg: "Successfully updated balance for accounts from pending receivers."}
-
addRole
- Cette méthode ajoute un rôle à un utilisateur et à un jeton spécifiés. Cette méthode ne peut être appelée que par une valeur
Token Admin
du code de chaîne ou par une valeur Org Admin
de l'organisation spécifiée qui détient également le rôle spécifié.
@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);
}
- Paramètres :
account_id: string
– ID unique du compte de jeton.
role: string
– Nom du rôle à ajouter à l'utilisateur spécifié. Les comportements mintable
et burnable
correspondent aux propriétés minter_role_name
et burner_role_name
du fichier de spécification. De même, le rôle notary
correspond à la propriété notary_role_name
du fichier de spécification.
- Retourne :
- En cas de succès, un message avec les détails du compte.
- Exemple de valeur renvoyée :
{
"msg": "Successfully added role 'notary' to Account Id: oaccount~2eb5f8a9bc561f8f41a4ea3be9511958cc6684ef14f2337ca396efc301b627d8"
}
-
removeRole
- Cette méthode supprime un rôle d'un utilisateur et d'un jeton spécifiés. Cette méthode ne peut être appelée que par une valeur
Token Admin
du code de chaîne ou par une valeur Org Admin
de l'organisation spécifiée qui détient également le rôle spécifié.
@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);
}
- Paramètres :
account_id: string
– ID unique du compte de jeton.
role: string
– Nom du rôle à supprimer de l'utilisateur spécifié. Les comportements mintable
et burnable
correspondent aux propriétés minter_role_name
et burner_role_name
du fichier de spécification. De même, le rôle notary
correspond à la propriété notary_role_name
du fichier de spécification.
- Retourne :
- En cas de succès, un message avec les détails du compte.
- Exemple de valeur renvoyée :
{
"msg": "Successfully removed role 'notary' from Account Id: oaccount~2eb5f8a9bc561f8f41a4ea3be9511958cc6684ef14f2337ca396efc301b627d8"
}
-
getAccountsByRole
- Cette méthode retourne une liste de tous les ID compte pour un rôle et un jeton spécifiés. Cette méthode ne peut être appelée que par
Token Admin
ou Token Auditor
.
@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);
}
- Paramètres :
token_id: string
– ID du jeton.
role: string
– Nom du rôle à rechercher.
- Retourne :
- En cas de succès, un tableau JSON d'ID compte.
- Exemple de valeur renvoyée :
{
"accounts": [
"oaccount~5abb4155f4b245bb1732321e3174ac81999b03495b5c74f8e1f270bafbadef75"
]
}
-
getOrgAccountsByRole
- Cette méthode retourne une liste de tous les ID compte pour un rôle, un jeton et une organisation spécifiés. Cette méthode ne peut être appelée que par
Token Admin
ou Token Auditor
, ou par Org Admin
ou Org Auditor
de l'organisation spécifiée.
@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);
}
- Paramètres :
token_id: string
– ID du jeton.
role: string
– Nom du rôle à rechercher.
org_id: string
– ID fournisseur de services d'adhésion (MSP) de l'organisation.
- Retourne :
- En cas de succès, un tableau JSON d'ID compte.
- Exemple de valeur renvoyée :
{
"accounts": [
"oaccount~5abb4155f4b245bb1732321e3174ac81999b03495b5c74f8e1f270bafbadef75"
]
}
-
getUsersByRole
- Cette méthode retourne une liste de tous les utilisateurs pour un rôle et un jeton spécifiés. Cette méthode ne peut être appelée que par
Token Admin
ou Token Auditor
.
@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);
}
- Paramètres :
token_id: string
– ID du jeton.
role: string
– Nom du rôle à rechercher.
- Exemple de valeur renvoyée :
{
"users": [
{
"token_id": "token",
"org_id": "CentralBank"
}
]
}
-
getOrgUsersByRole
- Cette méthode retourne une liste de tous les utilisateurs pour un rôle, un jeton et une organisation spécifiés. Cette méthode ne peut être appelée que par
Token Admin
ou Token Auditor
, ou par Org Admin
ou Org Auditor
de l'organisation spécifiée.
@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);
}
- Paramètres :
token_id: string
– ID du jeton.
role: string
– Nom du rôle à rechercher.
org_id: string
– ID fournisseur de services d'adhésion (MSP) de l'organisation.
- Exemple de valeur renvoyée :
{
"users": [
{
"token_id": "token",
"org_id": "CentralBank",
"user_id": "cb1",
"custom_account_id": "1234567jh"
}
]
}
-
isInRole
- Cette méthode retourne une valeur booléenne pour indiquer si un utilisateur a un rôle spécifié. Cette méthode ne peut être appelée que par
Token Admin
ou Token Auditor
, AccountOwner
du compte ou Org Admin
ou Org Auditor
de l'organisation spécifiée.
@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) };
}
- Paramètres :
account_id: string
– ID unique du compte de jeton.
role: string
– Nom du rôle à rechercher.
- Retourne :
- En cas de succès, une chaîne JSON du résultat booléen.
- Exemple de valeur renvoyée :
{
"result": "true"
}
-
getTotalMintedTokens
- Cette méthode retourne le nombre total de jetons frappés pour un jeton spécifié. Cette méthode ne peut être appelée que par
Token Admin
, Token Auditor
, Org Admin
ou Org Auditor
.
@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,
};
}
- Paramètres :
token_id: string
– ID du jeton.
- Retourne :
- En cas de succès, une chaîne JSON indiquant le nombre total de jetons.
- Exemple de valeur renvoyée :
{
"msg": "Total minted token for Token Id: USD is 910 tokens.",
"quantity": 910
}
-
getNetTokens
- Cette méthode retourne le nombre net total de jetons disponibles dans le système pour un jeton spécifié. Le total net des jetons correspond à la quantité de jetons restants après la gravure des jetons. Sous forme d'équation : net tokens = total des jetons frappés - total des jetons brûlés. Si aucun jeton n'est brûlé, le nombre de jetons nets est égal au nombre total de jetons frappés. Cette méthode ne peut être appelée que par
Token Admin
, Token Auditor
, Org Admin
ou Org Auditor
.
@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,
};
}
- Paramètres :
token_id: string
– ID du jeton.
- Retourne :
- En cas de succès, une chaîne JSON indiquant le nombre net de jetons.
- Exemple de valeur renvoyée :
{
"msg": "Net supply of token for Token Id: USD is 878 tokens.",
"quantity": 878
}
-
requestMint
- Cette méthode peut être appelée par un minter pour envoyer une demande au notaire minter de créer une quantité spécifiée de jetons.
@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);
}
- Paramètres :
operation_id: string
– ID opération unique qui représente la demande de menthe.
notary_account_id: string
– ID compte unique du notaire qui traitera la demande.
quantity: number
– La quantité de jetons à la menthe.
time_to_expiration
– Heure après laquelle la demande de frappe expire et n'est plus valide.
info_details: JSON
– Objet spécifiant la catégorie (category
) et la description (description
) de la demande.
Vous spécifiez le paramètre info_details
dans un format différent si vous utilisez Visual Studio Code par rapport à l'interface de ligne de commande ou à une collection Postman.
Visual Studio Code : { "category": "category value", "description": "description value" }
Interface de ligne de commande / Postman : "{\"category\":\"category value\",\"description\":\"description value\"}"
- Exemple de valeur renvoyée :
{
"msg": "AccountId oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41 has successfully submitted request to mint 200 tokens"
}
-
approveMint
- Cette méthode peut être appelée par un notaire pour approuver une demande de frappe.
@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);
}
- Paramètres :
token_id: string
- ID du jeton à extraire.
operation_id: string
– ID opération unique qui représente la demande de menthe.
- Exemple de valeur renvoyée :
{
"msg": "Successfully minted 1000 tokens to Account Id: oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41"
}
-
rejectMint
- Cette méthode peut être appelée par un notaire pour rejeter une demande de frappe.
@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);
}
- Paramètres :
token_id: string
- ID du jeton à extraire.
operation_id: string
– ID opération unique qui représente la demande de menthe.
- Exemple de valeur renvoyée :
{
"msg": "Successfully rejected mint request with Operation Id '89ce' to mint 2000 tokens of token id USD"
}
-
issueTokens
- Cette méthode extrait des jetons, qui sont ensuite détenus par l'appelant de la méthode.
@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);
}
- Paramètres :
token_id: string
– ID du jeton.
quantity
– Le nombre de jetons à la menthe.
info_details: JSON
– Objet spécifiant la catégorie (category
) et la description (description
) de la demande.
Vous spécifiez le paramètre info_details
dans un format différent si vous utilisez Visual Studio Code par rapport à l'interface de ligne de commande ou à une collection Postman.
Visual Studio Code : { "category": "category value", "description": "description value" }
Interface de ligne de commande / Postman : "{\"category\":\"category value\",\"description\":\"description value\"}"
- Exemple de valeur renvoyée :
{
"msg": "Successfully minted 1000 tokens to Account Id: oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41"
}
-
transferTokens
- Cette méthode transfère les jetons de l'appelant vers un compte spécifié.
@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);
}
- Paramètres :
to_account_id: string
– ID compte unique du destinataire (bénéficiaire).
quantity: number
– Le nombre de jetons à transférer.
info_details: JSON
– Objet spécifiant la catégorie (category
) et la description (description
) de la demande.
Vous spécifiez le paramètre info_details
dans un format différent si vous utilisez Visual Studio Code par rapport à l'interface de ligne de commande ou à une collection Postman.
Visual Studio Code : { "category": "category value", "description": "description value" }
Interface de ligne de commande / Postman : "{\"category\":\"category value\",\"description\":\"description value\"}"
- Exemple de valeur renvoyée :
{
"msg": "Successfully transferred 10000 tokens from account id: oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41 to account id: oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a."
}
-
getAccountOnHoldBalance
- Cette méthode retourne le solde bloqué courant pour un compte spécifié. Cette méthode ne peut être appelée que par
Token Admin
ou Token Auditor
, Org Admin
ou Org Auditor
de l'organisation spécifiée ou AccountOwner
du compte.
@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);
}
- Paramètres :
account_id: string
– ID unique du compte de jeton.
- Retourne :
- En cas de succès, une représentation JSON du solde bloqué courant.
- Exemple de valeur renvoyée :
{
"msg": "Total Holding Balance is: 0",
"holding_balance": 0
}
-
getOnHoldDetailsWithOperationId
- Cette méthode retourne les détails de transaction bloquée pour un ID opération et un jeton spécifiés. Cette méthode peut être appelée par
Token Admin
ou Token Auditor
du code de chaîne, ou par un participant à la transaction (expéditeur, destinataire, notaire).
@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);
}
- Paramètres :
token_id: string
– ID du jeton.
operation_id: string
– ID unique permettant d'identifier l'opération de blocage. En général, cet ID est transmis par l'application client.
- Exemple de valeur renvoyée :
{
"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
- Cette méthode retourne une liste de tous les ID de blocage pour un compte spécifié. Cette méthode peut être appelée par
Token Admin
ou Token Auditor
du code de chaîne, un Org Admin
ou un Org Auditor
de l'organisation spécifiée ou le AccountOwner
du compte.
@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);
}
- Paramètres :
account_id: string
– ID unique du compte de jeton.
- Retourne :
- En cas de succès, une liste JSON des ID détenus.
- Exemple de valeur renvoyée :
{
"msg": "Holding Ids are: ",
"holding_ids": ["ohold~cbdc~token~hold1"]
}
-
getOnHoldBalanceWithOperationId
- Cette méthode retourne le solde bloqué pour un ID opération et un jeton spécifiés. Cette méthode peut être appelée par
Token Admin
ou Token Auditor
du code de chaîne, ou par un participant à la transaction (expéditeur, destinataire, notaire).
@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);
}
- Paramètres :
token_id: string
– ID du jeton.
operation_id: string
– ID unique permettant d'identifier l'opération de blocage. En général, cet ID est transmis par l'application client.
- Retourne :
- En cas de succès, une chaîne JSON indiquant le solde de détention.
- Exemple de valeur renvoyée :
{
"msg": "Current Holding Balance of Operation 'hold1' for token 'token' is: 0",
"holding_balance": 0
}
-
holdTokens
- Cette méthode crée un blocage au nom de l'appelant (le responsable des jetons) avec le compte
to_account_id
. Le compte de notaire spécifié est responsable de l'achèvement ou du déblocage du blocage. Lorsque le blocage est créé, le solde de jeton spécifié par le payeur est bloqué. Un solde bloqué ne peut pas être transféré tant que le blocage n'est pas terminé ou annulé.
@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);
}
- Paramètres :
operation_id: string
– ID unique permettant d'identifier l'opération de blocage. En général, cet ID est transmis par l'application client.
to_account_id: string
– ID compte unique du destinataire.
notary_account_id: string
– ID compte unique du notaire.
quantity: number
– Nombre de jetons à mettre en attente.
time_to_expiration
– Heure à laquelle le blocage expire. Spécifiez 0 pour un blocage permanent. Sinon, utilisez le format RFC-3339. Par exemple, 2021-06-02T12 :46 :06Z.
info_details: JSON
– Objet spécifiant la catégorie (category
) et la description (description
) de la demande.
Vous spécifiez le paramètre info_details
dans un format différent si vous utilisez Visual Studio Code par rapport à l'interface de ligne de commande ou à une collection Postman.
Visual Studio Code : { "category": "category value", "description": "description value" }
Interface de ligne de commande / Postman : "{\"category\":\"category value\",\"description\":\"description value\"}"
- Exemple de valeur renvoyée :
{
"msg": "AccountId oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3 is successfully holding 100 tokens"
}
-
executeHoldTokens
- Cette méthode effectue un blocage sur un jeton. Une quantité de jetons précédemment détenus par un propriétaire de jeton est transférée à un destinataire. Si la valeur
quantity
est inférieure à la valeur de blocage réelle, le montant restant est de nouveau disponible pour le responsable initial des jetons. Cette méthode ne peut être appelée que par l'ID AccountOwner
avec le rôle notary
pour l'ID opération spécifié. Le blocage ne peut être effectué que par le notaire.
@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);
}
- Paramètres :
token_id: string
– ID du jeton.
operation_id: string
– ID unique permettant d'identifier l'opération de blocage. En général, cet ID est transmis par l'application client.
quantity: number
– Nombre de jetons bloqués à transférer.
- Retourne :
- En cas de succès, un message contenant le compte de l'appelant et la quantité de la transaction.
- Exemple de valeur renvoyée :
{
"msg": "Account Id: oaccount~1e31495a0c149b08cb9d02bdcac5e83d88c0f1557d954dda12bb807d7f6fc111 is successfully executed '10' tokens from Operation Id '454f4bf6'."
}
-
releaseHoldTokens
- Cette méthode libère un blocage sur les jetons. Le transfert n'est pas terminé et tous les jetons détenus sont à nouveau disponibles pour le propriétaire initial. Cette méthode peut être appelée par l'ID
AccountOwner
avec le rôle notary
dans la limite de temps spécifiée ou par le payeur, le bénéficiaire ou le notaire après la limite de temps spécifiée.
@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);
}
- Paramètres :
token_id: string
– ID du jeton.
operation_id: string
– ID unique permettant d'identifier l'opération de blocage. En général, cet ID est transmis par l'application client.
- Retourne :
- En cas de succès, un message indiquant que le blocage a été annulé.
- Exemple de valeur renvoyée :
{
"msg": "Successfully released '200' tokens from Operation Id '77b75873' to Account Id: oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a."
}
-
requestBurn
- Cette méthode peut être appelée par un brûleur pour envoyer une demande au notaire du brûleur de détruire une quantité spécifiée de jetons.
@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);
}
- Paramètres :
operation_id: string
– ID opération unique qui représente la demande de gravure.
notary_account_id: string
– ID compte unique du notaire du brûleur qui traitera la demande.
quantity: number
– La quantité de jetons à brûler.
time_to_expiration
– Heure après laquelle la demande de gravure expire et n'est plus valide.
info_details: JSON
– Objet spécifiant la catégorie (category
) et la description (description
) de la demande.
Vous spécifiez le paramètre info_details
dans un format différent si vous utilisez Visual Studio Code par rapport à l'interface de ligne de commande ou à une collection Postman.
Visual Studio Code : { "category": "category value", "description": "description value" }
Interface de ligne de commande / Postman : "{\"category\":\"category value\",\"description\":\"description value\"}"
- Exemple de valeur renvoyée :
{
"msg": "AccountId oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98 has successfully submitted request to burn 100 tokens"
}
-
approveBurn
- Cette méthode peut être appelée par un notaire du brûleur pour approuver une demande de gravure.
@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);
}
- Paramètres :
token_id: string
- ID du jeton à graver.
operation_id: string
– ID opération unique qui représente la demande de gravure.
- Exemple de valeur renvoyée :
{
"msg": "Successfully burned 200 tokens from account id: oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98"
}
-
rejectBurn
- Cette méthode peut être appelée par un notaire brûleur pour rejeter une demande de gravure.
@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);
}
- Paramètres :
token_id: string
- ID du jeton à graver.
operation_id: string
– ID opération unique qui représente la demande de gravure.
- Exemple de valeur renvoyée :
{
"msg": "Successfully rejected burn request with Operation Id '8d34' to burn 100 tokens of token id USD"
}