Modèle de paiement confidentiel

La version améliorée de Blockchain App Builder inclut un attribut de modèle qui génère des méthodes supplémentaires pour le mode confidentiel.

Si vous incluez le paramètre confidential: true dans le fichier de spécification pour les jetons qui utilisent la norme étendue de structure de taxonomie de jeton, Blockchain App Builder génère un code chaîne à utiliser en mode confidentiel, y compris les versions modifiées suivantes de la norme générées automatiquement et des méthodes SDK (TypeScript uniquement).

Pour plus d'informations sur les paiements confidentiels et le scénario confidentiel de devise numérique de la banque centrale de gros (CBDC), voir Devise numérique de la banque centrale de gros avec paiement confidentiel.

Méthodes TypeScript modifiées pour le code chaîne confidentiel

Si vous incluez le paramètre confidential: true dans le fichier de spécification pour les jetons qui utilisent la norme étendue Token Taxonomy Framework, Blockchain App Builder génère des versions modifiées des méthodes standard générées automatiquement ainsi que des méthodes supplémentaires.

isTokenAdmin
Cette méthode renvoie la valeur booléenne true si l'appelant de la fonction est un Token Admin, sinon elle renvoie false. Un élément Token Admin, Token Auditor, Org Admin ou 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 leur propre compte.
@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 du fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation actuelle.
  • user_id: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
Renvoie :
  • La méthode renvoie true si l'appelant est un Token Admin, sinon elle renvoie false.
addTokenAdmin
Cette méthode ajoute un utilisateur en tant que Token Admin du code chaîne. Cette méthode ne peut être appelée que par un élément Token Admin du code chaîne. Etant donné que la valeur user_id est stockée dans le grand 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 du fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation actuelle.
  • user_id: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
Renvoie :
  • En cas de réussite, message qui inclut les détails de l'utilisateur ajouté en tant que Token Admin du code chaîne.
Exemple de valeur renvoyée :
{
  "msg": "Successfully added Token Admin (Org_Id: CentralBank, User_Id: cb1)"
}
removeTokenAdmin
Cette méthode enlève un utilisateur en tant qu'élément Token Admin du code chaîne. Cette méthode ne peut être appelée que par un élément Token Admin du code 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 du fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation actuelle.
  • user_id: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
Renvoie :
  • En cas de réussite, message qui inclut les détails de l'utilisateur qui a été enlevé en tant que Token Admin du code 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 qu'utilisateur Org Admin de l'organisation. Cette méthode peut uniquement être appelée par un élément Token Admin du code chaîne ou par un élément Org Admin de l'organisation indiquée. Etant donné que la valeur user_id est stockée dans le grand 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 du fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation actuelle.
  • user_id: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
Renvoie :
  • En cas de réussite, message qui inclut les détails de l'utilisateur qui a été 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 qu'utilisateur Org Admin de l'organisation. Cette méthode peut uniquement être appelée par un élément Token Admin du code chaîne ou par un élément Org Admin de l'organisation indiqué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 du fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation actuelle.
  • user_id: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
Renvoie :
  • En cas de réussite, message qui inclut les détails de l'utilisateur qui a été enlevé 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 que Token Auditor du code chaîne. Cette méthode ne peut être appelée que par un élément Token Admin du code chaîne. Etant donné que la valeur user_id est stockée dans le grand 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 du fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation actuelle.
  • user_id: string : nom d'utilisateur ou ID d'adresse électronique 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 enlève un utilisateur en tant qu'élément Token Auditor du code chaîne. Cette méthode ne peut être appelée que par un élément Token Admin du code 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 du fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation actuelle.
  • user_id: string : nom d'utilisateur ou ID d'adresse électronique 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 que Org Auditor du code chaîne. Cette méthode ne peut être appelée que par un élément Token Admin ou Org Admin du code chaîne. Etant donné que la valeur user_id est stockée dans le grand 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 du fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation actuelle.
  • user_id: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
Renvoie :
  • En cas de réussite, message qui inclut les détails de l'utilisateur ajouté en tant que Org Auditor du code chaîne.
Exemple de valeur renvoyée :
{
           "msg": "Successfully added Org Auditor (Org_Id: CentralBank, User_Id: cb_admin_demo)"
       }
removeOrgAuditor
Cette méthode enlève un utilisateur en tant qu'élément Org Auditor du code chaîne. Cette méthode ne peut être appelée que par un élément Token Admin ou Org Admin du code 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 du fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation actuelle.
  • user_id: string : nom d'utilisateur ou ID d'adresse électronique 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 l'utilisateur et le 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 de compte est formé en concaténant le type d'immobilisation et l'ID de jeton, puis en créant un hachage SHA-256 sur une concaténation de l'ID d'organisation et de l'ID d'utilisateur. Cette méthode peut être appelée uniquement par un élément Token Admin ou par un élément Org Admin de l'organisation indiqué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 :
  • org_id : ID du fournisseur de services d'adhésion (MSP) de l'utilisateur pour lequel créer le compte. L'ID doit commencer par un caractère alphanumérique et peut inclure des lettres, des chiffres et des caractères spéciaux tels que des traits de soulignement (_), des points (.), des signes arobase (@) et des traits d'union (-).
  • user_id : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur. L'ID doit commencer par un caractère alphanumérique et peut inclure des lettres, des chiffres et des caractères spéciaux tels que des traits de soulignement (_), des points (.), des signes arobase (@) et des traits d'union (-).
  • token_type: string : type de jeton, qui doit être fungible.
  • daily_limits: DailyLimits : objet JSON du type suivant.
    {
         "max_daily_amount": 100000
         "max_daily_transactions": 10000
     }
    Dans l'exemple, la valeur max_daily_amount est la quantité maximale de jetons pouvant être traités quotidiennement et la valeur max_daily_transactions est le nombre maximal de transactions pouvant être effectuées quotidiennement.
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 peut uniquement être appelée par un élément Token Admin du code chaîne ou par un élément 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 du compte bancaire, un identifiant alphanumérique aléatoire unique. Par défaut, 14 caractères.
Renvoie :
  • En cas de succès, 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 renvoie la 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 requêtes enrichies Berkeley DB SQL et ne peut être appelée qu'en cas de connexion au réseau Oracle Blockchain Platform distant.
@GetMethod()
  @Validator()
  public async getAllAccounts() {
    await this.Ctx.Auth.checkAuthorization("ACCOUNT.getAllAccounts", "TOKEN");
    return await this.Ctx.Account.getAllAccounts();
  }
Paramètres :
  • Aucun élément
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 renvoie la liste de tous les comptes de jetons appartenant à une organisation spécifiée. Cette méthode peut être appelée uniquement par un élément Token Admin ou Token Auditor, ou par un élément Org Admin ou Org Auditor de l'organisation indiqué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 du prestataire de services d'adhésion (MSP) de l'organisation.
Renvoie :
  • 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 renvoie la liste de tous les ID de compte pour un ID d'organisation et un ID utilisateur donnés. Cette méthode peut être appelée uniquement par Token Admin ou Token Auditor, par Org Admin ou Org Auditor de l'organisation indiqué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 du fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation actuelle.
  • user_id string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
Renvoie :
  • En cas de succès, tableau JSON d'ID de 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 renvoie les détails de l'utilisateur (org_id et user_id) pour un compte spécifié. Cette méthode peut être appelée par un élément Token Admin ou Token Auditor, ou par un élément Org Admin ou Org Auditor de l'organisation indiqué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.
Renvoie :
  • En cas de réussite, 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 renvoie 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 indiqué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 renvoie les détails d'un ID de compte personnalisé spécifié. Cette méthode peut être appelée uniquement par un élément Token Admin ou Token Auditor, ou par un élément Org Admin ou Org Auditor de l'organisation indiqué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 de compte bancaire du compte, identifiant alphanumérique aléatoire unique.
  • org_id: string – ID du prestataire 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 renvoie 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 indiqué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 renvoie 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 indiquée ou AccountOwner du compte. Cette méthode peut être appelée uniquement lorsqu'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. S'il est vide, tous les enregistrements sont renvoyés. La propriété PageSize détermine le nombre d'enregistrements à renvoyer. 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 à renvoyer. Pour plus d'informations, reportez-vous à la documentation d'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 indiqué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 : adresse de service RESTful de la base de données d'historique enrichie.
  • bearer_token : jeton d'autorisation d'accès pour l'adresse de service RESTful.
  • filters: string : paramètre facultatif. S'il est vide, tous les enregistrements sont renvoyés. La propriété PageSize détermine le nombre d'enregistrements à renvoyer. 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 à renvoyer. Pour plus d'informations, reportez-vous à la documentation d'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 enrichi pour l'organisation indiquée. Cette méthode ne peut être appelée que par Token Admin ou Token Auditor, Org Admin ou Org Auditor de l'organisation indiqué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 du prestataire de services d'adhésion (MSP) de l'organisation.
  • custom_endpoint : adresse de service RESTful de la base de données d'historique enrichie.
  • bearer_token : jeton d'autorisation d'accès pour l'adresse de service RESTful.
  • filters: string : paramètre facultatif. S'il est vide, tous les enregistrements sont renvoyés. La propriété PageSize détermine le nombre d'enregistrements à renvoyer. 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 à renvoyer. Pour plus d'informations, reportez-vous à la documentation d'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 enrichi 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 : adresse de service RESTful de la base de données d'historique enrichie.
  • bearer_token : jeton d'autorisation d'accès pour l'adresse de service RESTful.
  • filters: string : paramètre facultatif. S'il est vide, tous les enregistrements sont renvoyés. La propriété PageSize détermine le nombre d'enregistrements à renvoyer. 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 à renvoyer. Pour plus d'informations, reportez-vous à la documentation d'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 renvoie le solde actuel 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 indiqué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.
Renvoie :
  • 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 indiquant quand supprimer des transactions. Les ressources de transaction antérieures à l'heure indiqué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 renvoie l'historique d'une ressource Transaction. Cette méthode ne peut être appelée que par un élément Token Admin ou Token Auditor, par un élément Org Admin ou Org Auditor de l'organisation indiqué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.
Renvoie :
  • En cas de succès, 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 actuel du compte de jeton. Cette méthode peut être appelée par l'élément Token Admin du code chaîne, un élément Org Admin de l'organisation indiquée ou par le propriétaire 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.
Renvoie :
  • En cas de succès, message qui inclut 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 l'élément Token Admin du code chaîne, un élément Org Admin de l'organisation indiquée ou par le propriétaire 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.
Renvoie :
  • En cas de succès, 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 peut uniquement être appelée par un élément Token Admin du code chaîne ou par un élément Org Admin de l'organisation indiqué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.
Renvoie :
  • En cas de succès, une représentation JSON de l'objet de statut de compte pour le compte de jeton indiqué.
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 peut uniquement être appelée par un élément Token Admin du code chaîne ou par un élément Org Admin de l'organisation indiquée. Une fois qu'un compte est suspendu, vous ne pouvez effectuer aucune opération 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.
Renvoie :
  • En cas de succès, une représentation JSON de l'objet de statut de compte pour le compte de jeton indiqué.
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 peut uniquement être appelée par un élément Token Admin du code chaîne ou par un élément Org Admin de l'organisation indiquée. Une fois qu'un compte est supprimé, vous ne pouvez plus effectuer d'opérations de mise à jour du compte. Le compte supprimé est dans un état final et ne peut être modifié en aucun autre état. Pour supprimer un compte, le solde du compte et le solde en attente doivent être égaux à zéro.
@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.
Renvoie :
  • En cas de succès, une représentation JSON de l'objet de statut de compte pour le compte de jeton indiqué.
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 peut uniquement être appelée par un élément Token Admin du code chaîne ou par un élément Org Admin de l'organisation indiqué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) quantité maximale 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 quotidiennement.
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 peut uniquement être appelée par un élément Token Admin du code chaîne ou par un élément Org Admin de l'organisation indiqué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 indiqué, 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 peut uniquement être appelée par un élément Token Admin ou Token Auditor du code chaîne ou par un élément Org Admin ou Org Auditor de l'organisation indiqué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 peut uniquement être appelée par un élément Token Admin ou Token Auditor du code chaîne ou par un élément Org Admin ou Org Auditor de l'organisation indiqué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 des comptes en cours d'exécution et enregistre les valeurs mises à jour dans les paires clé/valeur de transaction. En général, les administrateurs système appellent cette méthode à l'aide d'un planificateur de proxy 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 jetons qui sont répartis dans les paires clé/valeur d'émetteur et de récepteur qui ont été créées lors des transferts interorganisations, puis supprime les paires clé/valeur d'émetteur et de récepteur, qui ne sont plus utilisées. En général, les administrateurs système appellent cette méthode à l'aide d'un planificateur de proxy 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 peut uniquement être appelée par un élément Token Admin du code chaîne ou par un élément Org Admin de l'organisation indiquée qui détient également le rôle indiqué.
@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 indiqué. 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.
Renvoie :
  • En cas de succès, un message contenant 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 peut uniquement être appelée par un élément Token Admin du code chaîne ou par un élément Org Admin de l'organisation indiquée qui détient également le rôle indiqué.
@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 à enlever de l'utilisateur indiqué. 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.
Renvoie :
  • En cas de succès, un message contenant les détails du compte.
Exemple de valeur renvoyée :
{
   "msg": "Successfully removed role 'notary' from Account Id: oaccount~2eb5f8a9bc561f8f41a4ea3be9511958cc6684ef14f2337ca396efc301b627d8"
}
getAccountsByRole
Cette méthode renvoie la liste de tous les ID de 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.
Renvoie :
  • En cas de succès, tableau JSON d'ID de compte.
Exemple de valeur renvoyée :
{
           "accounts": [
               "oaccount~5abb4155f4b245bb1732321e3174ac81999b03495b5c74f8e1f270bafbadef75"
           ]
       }
getOrgAccountsByRole
Cette méthode renvoie la liste de tous les ID de compte pour un rôle, un jeton et une organisation donnés. Cette méthode peut être appelée uniquement par un élément Token Admin ou Token Auditor, ou par un élément Org Admin ou Org Auditor de l'organisation indiqué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 du prestataire de services d'adhésion (MSP) de l'organisation.
Renvoie :
  • En cas de succès, tableau JSON d'ID de compte.
Exemple de valeur renvoyée :
{
           "accounts": [
               "oaccount~5abb4155f4b245bb1732321e3174ac81999b03495b5c74f8e1f270bafbadef75"
           ]
       }
getUsersByRole
Cette méthode renvoie la 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 renvoie la liste de tous les utilisateurs pour un rôle, un jeton et une organisation donnés. Cette méthode peut être appelée uniquement par un élément Token Admin ou Token Auditor, ou par un élément Org Admin ou Org Auditor de l'organisation indiqué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 du prestataire 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 renvoie 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 indiqué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.
Renvoie :
  • En cas de succès, chaîne JSON du résultat booléen.
Exemple de valeur renvoyée :
{
           "result": "true"
       }
getTotalMintedTokens
Cette méthode renvoie le nombre total de jetons extraits 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.
Renvoie :
  • 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 renvoie le nombre total net de jetons disponibles dans le système pour un jeton spécifié. Le total net des jetons correspond à la quantité restante de jetons après leur gravure. Sous forme d'équation : jetons net = total des jetons minés - total des jetons brûlés. Si aucun jeton n'est brûlé, le nombre de jetons réseau est égal au nombre total de jetons extraits. 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.
Renvoie :
  • 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 mineur pour envoyer une demande au notaire mineur pour 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 d'opération unique qui représente la demande mint.
  • notary_account_id: string : ID de compte unique du notaire du mineur qui traitera la demande.
  • quantity: number – La quantité de jetons à la menthe.
  • time_to_expiration : heure après laquelle la demande d'extraction expire et n'est plus valide.
  • info_details: JSON : objet indiquant la catégorie (category) et la description (description) de la demande.

    Vous indiquez 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" }

    CLI / 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 de mineur 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 à mint.
  • operation_id: string : ID d'opération unique qui représente la demande mint.
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 de mineur 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 à mint.
  • operation_id: string : ID d'opération unique qui représente la demande mint.
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 les 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 : nombre de sèmes à traiter.
  • info_details: JSON : objet indiquant la catégorie (category) et la description (description) de la demande.

    Vous indiquez 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" }

    CLI / 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 de compte unique du bénéficiaire (bénéficiaire).
  • quantity: number : nombre de sèmes à transférer.
  • info_details: JSON : objet indiquant la catégorie (category) et la description (description) de la demande.

    Vous indiquez 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" }

    CLI / 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 renvoie le solde de retenue actuel 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 indiqué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.
Renvoie :
  • En cas de succès, une représentation JSON du solde de blocage actuel.
Exemple de valeur renvoyée :
{
           "msg": "Total Holding Balance is: 0",
           "holding_balance": 0
       }
getOnHoldDetailsWithOperationId
Cette méthode renvoie les détails de la transaction bloquée pour un ID d'opération et un jeton spécifiés. Cette méthode peut être appelée par une chaîne (Token Admin) ou une chaîne (Token Auditor) du code 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 renvoie la liste de tous les ID blocage pour un compte donné. Cette méthode peut être appelée par une chaîne (Token Admin) ou une chaîne (Token Auditor) du code chaîne, une chaîne (Org Admin) ou une chaîne (Org Auditor) de l'organisation indiquée, ou par la chaîne (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.
Renvoie :
  • En cas de succès, une liste JSON contenant des ID.
Exemple de valeur renvoyée :
{
           "msg": "Holding Ids are: ",
           "holding_ids": ["ohold~cbdc~token~hold1"]
       }
getOnHoldBalanceWithOperationId
Cette méthode renvoie le solde de blocage pour un ID d'opération et un jeton spécifiés. Cette méthode peut être appelée par une chaîne (Token Admin) ou une chaîne (Token Auditor) du code 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.
Renvoie :
  • En cas de succès, une chaîne JSON indiquant le solde d'attente.
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 pour le compte de l'appelant (propriétaire des jetons) avec le compte to_account_id. Le compte notaire spécifié est chargé de terminer ou de lever le blocage. Lorsque la mise en suspens est créée, le solde de token spécifié du payeur est mis en suspens. Un solde bloqué ne peut pas être transféré tant que le blocage n'est pas terminé ou levé.
@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 de compte unique du destinataire.
  • notary_account_id: string : ID de compte unique du notaire.
  • quantity: number : nombre de jetons à bloquer.
  • 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 indiquant la catégorie (category) et la description (description) de la demande.

    Vous indiquez 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" }

    CLI / 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 met fin à 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 récepteur. Si la valeur quantity est inférieure à la valeur de blocage réelle, le montant restant est à nouveau disponible pour le propriétaire d'origine des jetons. Cette méthode ne peut être appelée que par l'ID AccountOwner avec le rôle notary pour l'ID d'opération indiqué. La mise en attente ne peut être effectuée 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.
Renvoie :
  • En cas de succès, un message avec l'ID de 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 permet de bloquer les jetons. Le transfert n'est pas terminé et tous les jetons détenus sont à nouveau disponibles pour le propriétaire d'origine. 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.
Renvoie :
  • En cas de succès, un message indiquant que le blocage a été levé.
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 pour 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 d'opération unique qui représente la demande de gravure.
  • notary_account_id: string : ID de compte unique du notaire du brûleur qui traitera la demande.
  • quantity: number : 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 indiquant la catégorie (category) et la description (description) de la demande.

    Vous indiquez 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" }

    CLI / 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 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 à brûler.
  • operation_id: string : ID d'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 à brûler.
  • operation_id: string : ID d'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"
       }

TypeScript Méthodes pour les transferts interorganisations

Les transferts interorganisations ont deux parties : d'abord le montant est débité de l'expéditeur, puis le montant est crédité au bénéficiaire. Les deux API suivantes sont appelées ensemble en tant que transaction atomique à l'aide de l'API de validation en deux phases du proxy REST Oracle Blockchain Platform. Les transferts confidentiels sont effectués de cette manière parce que les collectes de données privées des deux organisations sont distinctes et ne sont pas accessibles dans une seule transaction.

Les deux transactions sont envoyées à l'aide de l'API de validation en deux phases du proxy REST. Pour plus d'informations, reportez-vous à Appeler une transaction atomique.

Vous pouvez créer une demande POST dans la collection Postman où l'URL est similaire à https://test-xyz-abc.blockchain.ocp.oraclecloud.com:7443/restproxy/api/v2/atomicTransactions. Vous devez envoyer tous les en-têtes essentiels, y compris les suivants.
- Content-Type: application/json
- Confidential-Transaction: true
Dans le corps de la demande, incluez les méthodes executeHoldTokensSenderet executeHoldTokensReceiver comme indiqué dans la demande suivante.
{
 "transactions": [
   {
        "chaincode": "<chaincode>",
        "args": [
            "executeHoldTokensSender"
        ],
        "timeout": 6000,
        "sync": true,
        "transientMap": {
            "args": "[ \"bc-token-id value\",\"operation_id value\",\"quantity value\"]"
        },
        "endorsers" : <Sender's endorsers List>,
        "channel":"<channel name>"
   },
   {
        "chaincode": "<chaincode name>",
        "args": [
            "executeHoldTokensReceiver"
        ],
        "timeout": 6000,
        "sync": true,
        "transientMap": {
            "args": "[ \"bc-token-id value\",\"operation_id value\",\"quantity value\"]"
        },
        "endorsers" : <Recipient endorsers List>,
        "channel":"<channelName>"
    }
 ],
 "isolationLevel": "readCommitted",
 "prepareTimeout": 10000,
 "copyInputsToTransientMap": true,
 "sync": true,
 "parallelPrepare": true
}
L'exemple suivant illustre un corps de demande.
{
 "transactions": [
   {
        "chaincode": "WholesaleCBDCConfidential",
        "args": [
            "executeHoldTokensSender"
        ],
        "timeout": 6000,
        "sync": true,
        "transientMap": {
            "args": "[ \"bc-token-id value\",\"operation_id value\",\"quantity value\"]"
        },
        "endorsers" : ["org1-xyz-abc.blockchain.ocp.oraclecloud.com:20009", "org1-xyz-abc.blockchain.ocp.oraclecloud.com:20009"],
        "channel":"default"
   },
   {
        "chaincode": "WholesaleCBDCConfidential",
        "args": [
            "executeHoldTokensReceiver"
        ],
        "timeout": 6000,
        "sync": true,
        "transientMap": {
            "args": "[ \"bc-token-id value\",\"operation_id value\",\"quantity value\"]"
        },
        "endorsers" : ["org2-xyz-abc.blockchain.ocp.oraclecloud.com:20009", "org2-xyz-abc.blockchain.ocp.oraclecloud.com:20009"],
        "channel":"default"
    }
 ],
 "isolationLevel": "readCommitted",
 "prepareTimeout": 10000,
 "copyInputsToTransientMap": true,
 "sync": true,
 "parallelPrepare": true
}
executeHoldTokensSender
Cette méthode ne peut être appelée que par l'utilisateur ayant le rôle de notaire pour l'ID d'opération spécifié. Cette méthode est la première partie d'une approbation d'un transfert entre organisations. Le montant spécifié est déduit du compte de l'expéditeur.
@ExcludeFromPostmanCollection()
  @Validator(yup.string(), yup.string(), yup.number().positive(), yup.string(), yup.string())
  public async executeHoldTokensSender(token_id: string, operation_id: string, quantity: number,  isolationLevel: string, globalIdInput:string) {
    if (!this.Ctx.Utils.isValidInterOrgTransferRequest()) {
      throw new Error("The request for the inter-org transfer is invalid.")
    }
    const globalTxId =  this.Ctx.Utils.extractGlobalTransactionId(globalIdInput);
    const token_asset = await this.getTokenObject(token_id);
    return await this.Ctx.Hold.executeHoldSender(operation_id, quantity, globalTxId, token_asset);
  }
Paramètres :
  • token_id: string : ID du jeton à brûler.
  • operation_id: string : ID d'opération unique qui représente la demande de mise en attente à approuver.
  • quantity: number : montant des jetons détenus à transférer.
  • isolationLevel: string : niveau d'isolement de la transaction atomique, serializable ou readCommitted.
  • globalIdInput: string
Exemple de valeur renvoyée :
{
      "msg":
        "Account Id: oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a is successfully executed '10' tokens from Operation Id 'hold1'."
    }
executeHoldTokensReceiver
Cette méthode ne peut être appelée que par l'utilisateur ayant le rôle de notaire pour l'ID d'opération spécifié. Cette méthode est la deuxième partie d'une approbation d'un transfert entre organisations. Le montant spécifié est crédité sur le compte du bénéficiaire.
@ExcludeFromPostmanCollection()
  @Validator(yup.string(), yup.string(), yup.number().positive(), yup.string(), yup.string())
  public async executeHoldTokensReceiver(token_id: string, operation_id: string, quantity: number,  isolationLevel: string, globalIdInput:string) {
    if (!this.Ctx.Utils.isValidInterOrgTransferRequest()) {
      throw new Error("The request for the inter-org transfer is invalid.")
    }
    const globalTxId =  this.Ctx.Utils.extractGlobalTransactionId(globalIdInput);
    const token_asset = await this.getTokenObject(token_id);
    return await this.Ctx.Hold.executeHoldReceiver(operation_id, quantity, globalTxId, token_asset);
  }
Paramètres :
  • token_id: string : ID du jeton à brûler.
  • operation_id: string : ID d'opération unique qui représente la demande de mise en attente à approuver.
  • quantity: number : montant des jetons détenus à transférer.
  • isolationLevel: string : niveau d'isolement de la transaction atomique, serializable ou readCommitted.
  • globalIdInput: string
Exemple de valeur renvoyée :
{
      "msg":
        "Account Id: oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a is successfully executed '10' tokens from Operation Id 'hold1, receiverId oreceiver~72d9bfcf-2c68-4c33-b8c3-fe3374983bf2'."
    }

Méthodes SDK TypeScript modifiées pour le code chaîne confidentiel

Si vous incluez le paramètre confidential: true dans le fichier de spécification pour les jetons qui utilisent la norme étendue de structure de taxonomie de jeton, Blockchain App Builder génère des versions modifiées des méthodes standard du kit SDK ainsi que des méthodes supplémentaires.

isUserTokenAdmin
Cette méthode renvoie la valeur booléenne true si l'appelant de la fonction est un Token Admin. Sinon, la méthode renvoie false.
Ctx.Auth.isUserTokenAdmin(org_id: string, user_id: string);
Paramètres :
  • org_id : ID du fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation réseau actuelle.
  • user_id : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
Exemple de valeur renvoyée :
{
    "result": true
}
addTokenAdmin
Cette méthode ajoute un utilisateur en tant que Token Admin du code chaîne de jeton. Etant donné que la valeur user_id est stockée dans le grand livre public, n'utilisez pas d'informations d'identification personnelle pour la valeur user_id.
Ctx.Admin.addTokenAdmin(org_id: string, user_id: string);
Paramètres :
  • user_id : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
  • org_id : ID du fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation réseau actuelle.
Exemple de valeur renvoyée :
{
  "msg": "Successfully added Token Admin (Org_Id: CentralBank, User_Id: cb1)"
}
removeTokenAdmin
Cette méthode enlève un utilisateur en tant qu'utilisateur Token Admin du code chaîne de jeton.
Ctx.Admin.removeTokenAdmin(org_id: string, user_id: string);
Paramètres :
  • user_id : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
  • org_id : ID du fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation réseau actuelle.
Exemple de valeur renvoyée :
{"msg": "Successfully removed Admin (Org_Id: Org1MSP, User_Id: User1)"}
getAllTokenAdmins
Cette méthode renvoie la liste de tous les utilisateurs qui sont un Token Admin du code chaîne.
Ctx.Admin.getAllTokenAdmins();
Paramètres :
  • Aucun élément
Exemple de valeur renvoyée :
{"admins":[{"org_id":"Org1MSP","user_id":"admin"}]}
addOrgAdmin
Cette méthode ajoute un utilisateur en tant qu'utilisateur Org Admin de l'organisation. Etant donné que la valeur user_id est stockée dans le grand livre public, n'utilisez pas d'informations d'identification personnelle pour la valeur user_id.
 Ctx.Admin.addOrgAdmin(org_id: string, user_id: string);
Paramètres :
  • org_id: string : ID du fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation actuelle.
  • user_id: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
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 qu'utilisateur Org Admin de l'organisation.
Ctx.Admin.removeOrgAdmin(org_id: string, user_id: string);
Paramètres :
  • org_id: string : ID du fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation actuelle.
  • user_id: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
Exemple de valeur renvoyée :
{
  "msg": "Successfully removed Org Admin (Org_Id Org1MSP User_Id orgAdmin)"
}
getAllOrgAdmins
Cette méthode renvoie la liste de tous les utilisateurs qui sont un Org Admin d'une organisation.
Ctx.Admin.getAllOrgAdmins();
Paramètres :
  • Aucun élément
Exemple de valeur renvoyée :
{
    "admins": [
        {
            "org_id": "Org1MSP",
            "user_id": "orgadmin"
        },
        {
            "org_id": "Org1MSP",
            "user_id": "orgadmin1"
        },
        {
            "org_id": "Org1MSP",
            "user_id": "orgadmin2"
        }
    ]
}
addTokenAuditor
Cette méthode ajoute un utilisateur en tant que Token Auditor du code chaîne. Etant donné que la valeur user_id est stockée dans le grand livre public, n'utilisez pas d'informations d'identification personnelle pour la valeur user_id.
Ctx.Admin.addTokenAuditor(org_id: string, user_id: string);
Paramètres :
  • org_id: string : ID du fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation actuelle.
  • user_id: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
Renvoie :
  • En cas de réussite, message qui inclut les détails de l'utilisateur ajouté en tant que Token Auditor du code chaîne.
Exemple de valeur renvoyée :
{
  "msg": "Successfully added Token Auditor (Org_Id: CentralBank, User_Id: cb_admin_demo)"
}
removeTokenAuditor
Cette méthode enlève un utilisateur en tant qu'élément Token Auditor du code chaîne.
Ctx.Admin.removeTokenAuditor(org_id: string, user_id: string);
Paramètres :
  • org_id: string : ID du fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation actuelle.
  • user_id: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
Exemple de valeur renvoyée :
{
           "msg": "Successfully removed Token Auditor (Org_Id: CB, User_Id: cb)"
       }
getAllTokenAuditors
Cette méthode renvoie l'ensemble des éléments Token Auditors du code chaîne.
this.Ctx.Admin.getAllTokenAuditors();
addOrgAuditor
Cette méthode ajoute un utilisateur en tant que Org Auditor du code chaîne.
Ctx.Admin.addOrgAuditor(org_id: string, user_id: string);
Paramètres :
  • org_id: string : ID du fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation actuelle.
  • user_id: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
Exemple de valeur renvoyée :
{
           "msg": "Successfully added Org Auditor (Org_Id: CentralBank, User_Id: cb_admin_demo)"
       }
removeOrgAuditor
Cette méthode enlève un utilisateur en tant qu'élément Org Auditor du code chaîne.
this.Ctx.Admin.removeOrgAuditor(org_id: string, user_id: string);
Paramètres :
  • org_id: string : ID du fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation actuelle.
  • user_id: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
Exemple de valeur renvoyée :
{
           "msg": "Successfully removed Org Auditor (Org_Id: CB, User_Id: cb)"
       }
getAllOrgAuditors
Cette méthode renvoie l'ensemble des éléments Org Auditors du code chaîne.
this.Ctx.Admin.getAllOrgAuditors()
getAllTokens
Cette méthode renvoie toutes les ressources de jeton enregistrées dans la base de données d'état. Cette méthode utilise des requêtes enrichies Berkeley DB SQL et ne peut être appelée qu'en cas de connexion au réseau Oracle Blockchain Platform distant.
this.Ctx.Token.getAllTokens();
Paramètres :
  • Aucun élément
Renvoie :
  • En cas de succès, il renvoie une promesse avec tous les actifs de jeton. En cas d'erreur, un message d'erreur est renvoyé.
getDecimals
Cette méthode renvoie le nombre de décimales disponibles pour un jeton fractionnaire. Si le comportement divisible n'est pas indiqué, la valeur par défaut est 0.
this.Ctx.Token.getDecimals(token_asset)
Paramètres :
  • token_id: string : ID du jeton.
Exemple de valeur renvoyée :
1
history
Cette méthode renvoie l'historique du jeton spécifié.
Ctx.Token.history(tokenId: string);
Paramètres :
  • token_id: string : ID du jeton.
Exemple de valeur renvoyée :
[
    {
        "trxId": "0d75f09446a60088afb948c6aca046e261fddcd43df416076201cdc5565f1a35",
        "timeStamp": "2023-09-01T16:48:41.000Z",
        "value": {
            "assetType": "otoken",
            "token_id": "token",
            "token_name": "fiatmoneytok",
            "token_desc": "updatedDesc",
            "token_standard": "ttf+",
            "token_type": "fungible",
            "token_unit": "fractional",
            "behaviors": [
                "divisible",
                "mintable",
                "transferable",
                "burnable",
                "roles"
            ],
            "roles": {
                "minter_role_name": "minter"
            },
            "mintable": {
                "max_mint_quantity": 1000
            },
            "divisible": {
                "decimal": 2
            }
        }
    },
    {
        "trxId": "3666344878b043b65d5b821cc79c042ba52aec467618800df5cf14eac69f72fa",
        "timeStamp": "2023-08-31T20:24:55.000Z",
        "value": {
            "assetType": "otoken",
            "token_id": "token",
            "token_name": "fiatmoneytok",
            "token_standard": "ttf+",
            "token_type": "fungible",
            "token_unit": "fractional",
            "behaviors": [
                "divisible",
                "mintable",
                "transferable",
                "burnable",
                "roles"
            ],
            "roles": {
                "minter_role_name": "minter"
            },
            "mintable": {
                "max_mint_quantity": 1000
            },
            "divisible": {
                "decimal": 2
            }
        }
    }
]
getTokensByName
Cette méthode renvoie toutes les ressources de jeton portant le nom indiqué. Cette méthode utilise des requêtes enrichies Berkeley DB SQL et ne peut être appelée qu'en cas de connexion au réseau Oracle Blockchain Platform distant.
Ctx.Token.getTokensByName(token_name: string);
Paramètres :
  • token_name: string : nom du jeton, qui correspond à la propriété Token_name du modèle. La valeur est le nom de classe du jeton.
Exemple de valeur renvoyée :
[
 {
    "assetType": "otoken",
    "token_id": "digiCurr101",
    "token_name": "digicur",
    "token_desc": "Digital Currency equiv of dollar",
    "token_type": "fungible",
    "behaviors": [
        "divisible",
        "mintable",
        "transferable",
        "burnable",
        "roles"
    ],
    "roles": {
        "minter_role_name": "minter"
        "burner_role_name": "burner",
        "notary_role_name": "notary"
    },
    "mintable": {
        "max_mint_quantity": 2000
    },
    "divisible": {
        "decimal": 1
    },
    "currency_name": "DOLLAR",
    "token_to_currency_ratio": 1
 }
]
createAccount
Cette méthode crée un compte pour l'utilisateur et le jeton spécifiés. Chaque utilisateur qui a des jetons à un moment donné doit avoir un compte.
Ctx.Account.createAccount(org_id: string, user_id: string, token_type: string, dailyLimits);
Paramètres :
  • org_id: string : ID du fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation actuelle. L'ID doit commencer par un caractère alphanumérique et peut inclure des lettres, des chiffres et des caractères spéciaux tels que des traits de soulignement (_), des points (.), des signes arobase (@) et des traits d'union (-).
  • user_id: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur. L'ID doit commencer par un caractère alphanumérique et peut inclure des lettres, des chiffres et des caractères spéciaux tels que des traits de soulignement (_), des points (.), des signes arobase (@) et des traits d'union (-).
  • token_type: string : type du jeton, qui doit être fungible.
  • daily_limits: DailyLimits : objet JSON du type suivant.
    {
         "max_daily_amount": 100000
         "max_daily_transactions": 10000
     }
    Dans l'exemple, la valeur max_daily_amount est la quantité maximale de jetons pouvant être traités quotidiennement et la valeur max_daily_transactions est le nombre maximal de transactions pouvant être effectuées quotidiennement.
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"
}
associateToken
Cette méthode associe un jeton fongible à un compte.
Ctx.Account.associateToken(account_id: string, token_id: string, custom_account_id?: string);
Paramètres :
  • account_id: string : ID du compte.
  • token_id: string : ID du jeton.
  • custom_account_id: string – Pour le mode confidentiel, l'ID du compte bancaire, un identifiant alphanumérique aléatoire unique. Par défaut, 14 caractères.
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 renvoie la liste de tous les comptes. Cette méthode utilise des requêtes enrichies Berkeley DB SQL et ne peut être appelée qu'en cas de connexion au réseau Oracle Blockchain Platform distant.
this.Ctx.Account.getAllAccounts();
Paramètres :
  • Aucun élément
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 renvoie la liste de tous les comptes de jetons appartenant à une organisation spécifiée.
Ctx.Account.getAllOrgAccounts(org_id: string);
Paramètres :
  • org_id: string – ID du prestataire de services d'adhésion (MSP) de l'organisation.
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 renvoie la liste de tous les ID de compte pour un utilisateur et une organisation donnés.
Ctx.Account.getAccountsByUser(org_id: string, user_id: string);
Paramètres :
  • org_id string – ID du prestataire de services d'adhésion (MSP) de l'organisation.
  • user_id string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
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 renvoie les détails de l'utilisateur pour un compte spécifié.
this.Ctx.Account.getUserByAccountId(account_id: string);
Paramètres :
  • account_id: string : ID unique du compte de jeton.
Exemple de valeur renvoyée :
{
    "token_id": "USD",
    "org_id": "CentralBank",
    "user_id": "cb_admin_demo",
    "custom_account_id": "10101234000123"
}
getAccountWithStatus
Cette méthode renvoie les détails de compte pour un utilisateur et un jeton spécifiés.
Ctx.Account.getAccountWithStatus(account_id: string);
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 renvoie tous les détails du compte de jetons pour une organisation et un ID de compte spécifiés.
Ctx.Account.getAccountDetailsByCustomAccountId(custom_account_id: string, org_id: string)
Paramètres :
  • custom_account_id: string : ID de compte bancaire du compte, identifiant alphanumérique aléatoire unique.
  • org_id string – ID du prestataire 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 renvoie un tableau des détails de l'historique des transactions pour un compte spécifié.
Ctx.Account.getAccountTransactionHistory(account_id: string)
Paramètres :
  • account_id: string : ID unique du compte de jeton.
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 renvoie un tableau des détails de l'historique des transactions pour un compte spécifié. Cette méthode ne peut être appelée que lorsqu'elle est connectée au réseau Oracle Blockchain Platform distant.
Ctx.Account.getAccountTransactionHistoryWithFilters(account_id: string, org_id: string, filters);
Paramètres :
  • account_id: string : ID du compte.
  • org_id: string – ID du prestataire de services d'adhésion (MSP) de l'organisation.
  • filters: string : paramètre facultatif. S'il est vide, tous les enregistrements sont renvoyés. La propriété PageSize détermine le nombre d'enregistrements à renvoyer. 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 à renvoyer. Pour plus d'informations, reportez-vous à la documentation d'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"
           }
       ]
getAccountTrxHistoryWithFiltersFromRichHistDB
Cette méthode renvoie un tableau des détails de l'historique des transactions de la base de données d'historique enrichie.
Ctx.Account.getAccountTrxHistoryWithFiltersFromRichHistDB(account_id: string, org_id: string, custom_endpoint: string, bearer_token: string, filters);
Paramètres :
  • account_id: string : ID unique du compte de jeton.
  • org_id: string – ID du prestataire de services d'adhésion (MSP) de l'organisation.
  • custom_endpoint : adresse de service RESTful de la base de données d'historique enrichie.
  • bearer_token : jeton d'autorisation d'accès pour l'adresse de service RESTful.
  • filters: string : paramètre facultatif. S'il est vide, tous les enregistrements sont renvoyés. La propriété PageSize détermine le nombre d'enregistrements à renvoyer. 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 à renvoyer. Pour plus d'informations, reportez-vous à la documentation d'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
    }
]
getOrgAccountsTrxHistoryWithFiltersFromRichHistDB
Cette méthode renvoie un tableau des détails de l'historique des transactions pour une organisation donnée à partir de la base de données d'historique riche.
Ctx.Account.getOrgAccountsTrxHistoryWithFiltersFromRichHistDB(org_id: string, custom_endpoint: string, bearer_token: string, filters);
Paramètres :
  • org_id string – ID du prestataire de services d'adhésion (MSP) de l'organisation.
  • custom_endpoint : adresse de service RESTful de la base de données d'historique enrichie.
  • bearer_token : jeton d'autorisation d'accès pour l'adresse de service RESTful.
  • filters: string : paramètre facultatif. S'il est vide, tous les enregistrements sont renvoyés. La propriété PageSize détermine le nombre d'enregistrements à renvoyer. 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 à renvoyer. Pour plus d'informations, reportez-vous à la documentation d'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"
    }
]
getAllAccountsTrxHistoryWithFiltersFromRichHistDB
Cette méthode renvoie un tableau des détails de l'historique des transactions pour toutes les organisations à partir de la base de données riche en historique.
Ctx.Account.getAllAccountsTrxHistoryWithFiltersFromRichHistDB(custom_endpoint: string, bearer_token: string, filters);
Paramètres :
  • org_id string – ID du prestataire de services d'adhésion (MSP) de l'organisation.
  • custom_endpoint : adresse de service RESTful de la base de données d'historique enrichie.
  • bearer_token : jeton d'autorisation d'accès pour l'adresse de service RESTful.
  • filters: string : paramètre facultatif. S'il est vide, tous les enregistrements sont renvoyés. La propriété PageSize détermine le nombre d'enregistrements à renvoyer. 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 à renvoyer. Pour plus d'informations, reportez-vous à la documentation d'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 renvoie le solde du compte pour un compte spécifié.
Ctx.Account.getAccountBalance(account_id: string);
Paramètres :
  • account_id: string : ID unique du compte de jeton.
Exemple de valeur renvoyée :
{
    "msg": "Current Balance is: 100",
    "user_balance": 100
}
deleteTransactions
Cette méthode supprime les anciennes transactions de la base de données d'état.
Ctx.Transaction.deleteTransactions(time_to_expiration: Date);
Paramètres :
  • time_to_expiration: Date : horodatage indiquant quand supprimer des transactions. Les ressources de transaction antérieures à l'heure indiqué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 renvoie l'historique d'une ressource Transaction.
Ctx.Transaction.getTransactionById(transaction_id: string);
Paramètres :
  • transaction_id string : ID de la ressource de 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 actuel du compte de jeton.
Ctx.AccountStatus.getAccountStatus(account_id: string);
Paramètres :
  • account_id: string : ID unique du compte de jeton.
Exemple de valeur renvoyée :
{
    "assetType": "oaccountStatus",
    "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
    "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
    "status": "active"
}
history (Account Status)
Cette méthode permet d'obtenir l'historique du statut du compte.
Ctx.AccountStatus.history(status_id: string);
Paramètres :
  • account_id: string : ID unique du compte de jeton.
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. Les comptes supprimés ne peuvent pas être activés.
Ctx.Account.activateAccount(account_id: string);
Paramètres :
  • account_id: string : ID unique du compte de jeton.
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. Une fois qu'un compte est suspendu, vous ne pouvez effectuer aucune opération de mise à jour du compte. Un compte supprimé ne peut pas être suspendu.
Ctx.Account.suspendAccount(account_id: string);
Paramètres :
  • account_id: string : ID unique du compte de jeton.
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. Une fois qu'un compte est supprimé, vous ne pouvez plus effectuer d'opérations de mise à jour du compte. Le compte supprimé est dans un état final et ne peut être modifié en aucun autre état. Pour supprimer un compte, le solde du compte et le solde en attente doivent être égaux à zéro.
Ctx.Account.deleteAccount(account_id: string);
Paramètres :
  • account_id: string : ID unique du compte de jeton.
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é.
Ctx.Account.setMaxDailyAmount(account_id: string, max_daily_amount?: string);
Paramètres :
  • account_id: string : ID unique du compte de jeton.
  • max_daily_amount?: string : (facultatif) quantité maximale 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 quotidiennement.
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é.
Ctx.Account.setMaxDailyTransactionCount(account_id: string, max_daily_transactions?: string);
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 indiqué, 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 (montant maximal pouvant être transféré quotidiennement) pour un compte spécifié.
Ctx.Account.getMaxDailyAmount(account_id: string);
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 (nombre maximal de transactions autorisé par jour) pour un compte spécifié.
Ctx.Account.getMaxDailyTransactionCount(account_id: string);
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 des comptes en cours d'exécution et enregistre les valeurs mises à jour dans les paires clé/valeur de transaction. En général, les administrateurs système appellent cette méthode à l'aide d'un planificateur de proxy REST.
Ctx.Transaction.consolidateRunningBalanceInTransactions(save: boolean);
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 jetons qui sont répartis dans les paires clé/valeur d'émetteur et de récepteur qui ont été créées lors des transferts interorganisations, puis supprime les paires clé/valeur d'émetteur et de récepteur, qui ne sont plus utilisées. En général, les administrateurs système appellent cette méthode à l'aide d'un planificateur de proxy REST.
Ctx.Account.processSendersAndReceivers(save: boolean);
Exemple de valeur renvoyée :
{ msg: "Successfully updated balance for accounts from pending receivers."}
addRoleMember
Cette méthode ajoute un rôle à un compte spécifié.
Ctx.Token.addRoleMember(role: string, account_id: string, token_asset);
Paramètres :
  • account_id: number – ID du compte auquel ajouter le rôle.
  • role: string : nom du rôle à ajouter à l'utilisateur indiqué.
  • token_asset: any : ressource de jeton transmise en tant que paramètre. Les propriétés de la ressource de jeton sont décrites dans le fichier de modèle.
Exemple de valeur renvoyée :
{
     "msg": "Successfully added role 'notary' to Account Id: oaccount~2eb5f8a9bc561f8f41a4ea3be9511958cc6684ef14f2337ca396efc301b627d8"
}
removeRoleMember
Cette méthode supprime un rôle d'un compte spécifié.
Ctx.Token.removeRoleMember(role: string, account_id: string, token_asset);
Paramètres :
  • account_id: number : ID de compte duquel enlever le rôle.
  • role: string : nom du rôle à enlever de l'utilisateur indiqué.
  • token_asset: any : ressource de jeton transmise en tant que paramètre. Les propriétés de la ressource de jeton sont décrites dans le fichier de modèle.
Exemple de valeur renvoyée :
{
   "msg": "Successfully removed role 'notary' from Account Id: oaccount~2eb5f8a9bc561f8f41a4ea3be9511958cc6684ef14f2337ca396efc301b627d8"
}
getAccountsByRole
Cette méthode renvoie la liste de tous les comptes pour un rôle et un jeton spécifiés.
Ctx.Role.getAccountsByRole(token_id: string, role: string);
Paramètres :
  • token_id: string : ID du jeton.
  • role: string : nom du rôle à rechercher.
Exemple de valeur renvoyée :
{
           "accounts": [
               "oaccount~5abb4155f4b245bb1732321e3174ac81999b03495b5c74f8e1f270bafbadef75"
           ]
       }
getOrgAccountsByRole
Cette méthode renvoie des informations sur tous les comptes qui ont un rôle spécifié dans une organisation spécifiée.
Ctx.Role.getOrgAccountsByRole(token_id: string, role: string, org_id: string);
Paramètres :
  • token_id: string : ID du jeton.
  • role: string : nom du rôle à vérifier.
  • org_id: string – ID du prestataire de services d'adhésion (MSP) de l'organisation.
Exemple de valeur renvoyée :
{
           "accounts": [
               "oaccount~5abb4155f4b245bb1732321e3174ac81999b03495b5c74f8e1f270bafbadef75"
           ]
       }
getUsersByRole
Cette méthode renvoie la liste de tous les utilisateurs pour un rôle et un jeton spécifiés.
Ctx.Role.getUsersByRole(token_id: string, role: string);
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 renvoie des informations sur tous les utilisateurs qui ont un rôle spécifié dans une organisation donnée.
 Ctx.Role.getOrgUsersByRole(token_id: string, role: string, org_id: string);
Paramètres :
  • token_id: string : ID du jeton.
  • role: string : nom du rôle à vérifier.
  • org_id: string – ID du prestataire 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 indique si un utilisateur a un rôle spécifié.
Ctx.Token.isInRole(role: string, account_id: string, token_asset)
Paramètres :
  • account_id: number : ID unique du compte de jeton.
  • role: string – Nom du rôle à vérifier.
  • token_asset: any : ressource de jeton transmise en tant que paramètre. Les propriétés de la ressource de jeton sont décrites dans le fichier de modèle.
Exemple de valeur renvoyée :
{
           "result": "true"
       }
getTotalMintedTokens
Cette méthode renvoie le nombre total de jetons extraits.
Ctx.Token.getTotalMintedTokens(token_asset);
Paramètres :
  • token_asset: any : ressource de jeton transmise en tant que paramètre. Les propriétés de la ressource de jeton sont décrites dans le fichier de modèle.
Exemple de valeur renvoyée :
{
    "msg": "Total minted token for Token Id: USD is 910 tokens.",
    "quantity": 910
}
getNetTokens
Cette méthode renvoie la quantité nette de jetons disponibles dans le système. Les jetons réseau sont la quantité de jetons restants après que les jetons sont brûlés. Sous forme d'équation : jetons net = total des jetons minés - total des jetons brûlés. Si aucun jeton n'est brûlé, le nombre de jetons réseau est égal au nombre total de jetons extraits.
Ctx.Token.getNetTokens(token_asset);
Paramètres :
  • token_asset: any : ressource de jeton transmise en tant que paramètre. Les propriétés de la ressource de jeton sont décrites dans le fichier de modèle.
Exemple de valeur renvoyée :
{
    "msg": "Net supply of token for Token Id: USD is 878 tokens.",
    "quantity": 878
}
hold
Cette méthode est utilisée par le mineur pour envoyer une demande au notaire du mineur pour créer un nombre spécifié de jetons. Le compte notaire spécifié est chargé de terminer ou de lever le blocage.
Ctx.Hold.hold(operation_id: string, to_account_id: string, notary_account_id: string, quantity: number, time_to_expiration: Date, token, type: HoldOperationType, info_details?: InfoDetails)
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 du compte destinataire.
  • notary__account_id: string : ID du compte notaire.
  • quantity: number : nombre total de jetons à bloquer.
  • time_to_expiration: Date : durée jusqu'à l'expiration du blocage. Spécifiez 0 pour un blocage permanent. Sinon, utilisez le format RFC-3339. Par exemple, 2021-06-02T12.
  • token: any : ressource de jeton transmise en tant que paramètre. Les propriétés de la ressource de jeton sont décrites dans le fichier de modèle.
  • type: HoldOperationType : type d'opération de blocage à demander. Il doit s'agir de l'une des trois valeurs possibles : MINT, BURN ou TRANSFER.
  • info_details: JSON : objet indiquant la catégorie (category) et la description (description) de la demande.

    Vous indiquez 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" }

    CLI / Postman : "{\"category\":\"category value\",\"description\":\"description value\"}"

Exemple de valeur renvoyée :
{
           "msg": "AccountId oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41 has successfully submitted request to mint 200 tokens"
       }
executeHold
Les notaires peuvent appeler cette méthode pour approuver une opération de blocage, qui peut être de l'un des trois types suivants : menthe, brûlure ou transfert.
Ctx.Hold. executeHold(operation_id: string, token, operation_type: HoldOperationType, quantity? :number)
Paramètres :
  • operation_type: HoldOperationType : type d'opération de blocage à approuver. Il doit s'agir de l'une des trois valeurs possibles : MINT, BURN ou TRANSFER.
  • quantity: number – (Facultatif) Pour les opérations de transfert uniquement, le montant approuvé à transférer au destinataire.
  • token: any : ressource de jeton transmise en tant que paramètre. Les propriétés de la ressource de jeton sont décrites dans le fichier de modèle.
  • operation_id: string : ID unique de la demande.
Exemple de valeur renvoyée :
{
           "msg": "Successfully minted 1000 tokens to Account Id: oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41"
       }
releaseHold
Les notaires peuvent appeler cette méthode pour rejeter une opération de blocage, qui peut être l'un des trois types suivants : menthe, brûlure ou transfert.
Ctx.Hold.releaseHold(operation_id: string, token, operation_type: HoldOperationType)
Paramètres :
  • operation_type: HoldOperationType : type d'opération de blocage à rejeter. Il doit s'agir de l'une des trois valeurs possibles : MINT, BURN ou TRANSFER.
  • token: any : ressource de jeton transmise en tant que paramètre. Les propriétés de la ressource de jeton sont décrites dans le fichier de modèle.
  • operation_id: string : ID unique de la demande.
Exemple de valeur renvoyée :
{
           "msg": "Successfully rejected mint request with Operation Id '89ce' to mint 2000 tokens of token id USD"
       }
issueTokens
Minters peut appeler cette méthode pour créer un nombre spécifié de jetons.
this.Ctx.Token.mint(quantity, token_asset, info_details)
Paramètres :
  • token_id: string : ID du jeton.
  • quantity : nombre de sèmes à traiter.
  • info_details: JSON : objet indiquant la catégorie (category) et la description (description) de la demande.

    Vous indiquez 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" }

    CLI / 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é. L'appelant de la méthode doit avoir un compte. La quantité doit être comprise dans les valeurs décimales spécifiées par le paramètre decimal du comportement divisible dans le fichier de spécification.
this.Ctx.Token.transfer(to_account_id: string, quantity, token_asset, info_details);
Paramètres :
  • to_account_id: string – ID de compte du bénéficiaire (bénéficiaire).
  • quantity: number : nombre de sèmes à transférer.
  • info_details: JSON : objet indiquant la catégorie (category) et la description (description) de la demande.

    Vous indiquez 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" }

    CLI / 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 renvoie le solde de retenue pour un compte spécifié.
Ctx.Account.getAccountOnHoldBalance(account_id: string);
Paramètres :
  • account_id: string : ID unique du compte de jeton.
Exemple de valeur renvoyée :
{
           "msg": "Total Holding Balance is: 0",
           "holding_balance": 0
       }
getOnHoldDetailsWithOperationId
Cette méthode renvoie les détails de la transaction bloquée pour un ID d'opération et un jeton spécifiés.
Ctx.Hold.getOnHoldDetailsWithOperationId(token_id: string, operation_id: string);
Paramètres :
  • token_id: string : ID du jeton.
  • operation_id: string : ID unique identifiant l'opération de mise en suspens.
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 renvoie la liste de tous les ID blocage pour un compte donné.
Ctx.Account.getOnHoldIds(account_id: string);
Paramètres :
  • account_id: string : ID unique du compte de jeton.
Exemple de valeur renvoyée :
{
           "msg": "Holding Ids are: ",
           "holding_ids": ["ohold~cbdc~token~hold1"]
       }
getOnHoldBalanceWithOperationId
Cette méthode renvoie le solde de blocage pour un ID d'opération et un jeton spécifiés. Cette méthode peut être appelée par n'importe qui.
Ctx.Hold.getOnHoldBalanceWithOperationId(token_id: string, operation_id: string);
Paramètres :
  • token_id: string : ID du jeton.
  • operation_id: string : ID unique identifiant l'opération de mise en suspens.
Exemple de valeur renvoyée :
{
           "msg": "Current Holding Balance of Operation 'hold1' for token 'token' is: 0",
           "holding_balance": 0
       }

TypeScript Méthodes SDK pour les transferts entre organisations

Les transferts interorganisations ont deux parties : d'abord le montant est débité de l'expéditeur, puis le montant est crédité au bénéficiaire. Les deux API suivantes sont appelées ensemble en tant que transaction atomique à l'aide de l'API de validation en deux phases du proxy REST Oracle Blockchain Platform. Les transferts confidentiels sont effectués de cette manière parce que les collectes de données privées des deux organisations sont distinctes et ne sont pas accessibles dans une seule transaction.

executeHoldTokensSender
Cette méthode ne peut être appelée que par l'utilisateur ayant le rôle de notaire pour l'ID d'opération spécifié. Cette méthode est la première partie d'une approbation d'un transfert entre organisations. Le montant spécifié est déduit du compte de l'expéditeur.
Ctx.Hold.executeHoldSender(operation_id: string, quantity, globalTxId: string, token: any);
Paramètres :
  • token: any : ressource de jeton transmise en tant que paramètre. Les propriétés de la ressource de jeton sont décrites dans le fichier de modèle.
  • operation_id: string : ID d'opération unique qui représente la demande de mise en attente à approuver.
  • quantity: number : montant des jetons détenus à transférer.
  • globalTxid: string : ID de transaction global généré par le proxy REST pour une demande de validation en deux phases. Dans ce cas, il est utilisé comme référence commune qui lie les opérations de débit et de crédit dans un transfert interorganisation.
Exemple de valeur renvoyée :
{
      "msg":
        "Account Id: oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a is successfully executed '10' tokens from Operation Id 'hold1'."
    }
executeHoldTokensReceiver
Cette méthode ne peut être appelée que par l'utilisateur ayant le rôle de notaire pour l'ID d'opération spécifié. Cette méthode est la deuxième partie d'une approbation d'un transfert entre organisations. Le montant spécifié est crédité sur le compte du bénéficiaire.
Ctx.Hold.executeHoldReceiver(operation_id: string, quantity, globalTxId: string, token: any);
Paramètres :
  • token: any : ressource de jeton transmise en tant que paramètre. Les propriétés de la ressource de jeton sont décrites dans le fichier de modèle.
  • operation_id: string : ID d'opération unique qui représente la demande de mise en attente à approuver.
  • quantity: number : montant des jetons détenus à transférer.
  • globalTxid: string : ID de transaction global généré par le proxy REST pour une demande de validation en deux phases. Dans ce cas, il est utilisé comme référence commune qui lie les opérations de débit et de crédit dans un transfert interorganisation.
Exemple de valeur renvoyée :
{
      "msg":
        "Account Id: oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a is successfully executed '10' tokens from Operation Id 'hold1, receiverId oreceiver~72d9bfcf-2c68-4c33-b8c3-fe3374983bf2'."
    }