Modelo CBDC de Atacado Confidencial

A versão aprimorada do Blockchain App Builder inclui atributos de modelo que geram métodos adicionais para uma versão confidencial do cenário de moeda digital do banco central atacadista (CBDC).

Se você incluir os parâmetros model: wcbdc e confidential: true no arquivo de especificação para tokens que usam o padrão Token Taxonomy Framework estendido, o Blockchain App Builder gerará chaincode específico do aplicativo, incluindo os seguintes métodos e funcionalidades adicionais TypeScript para uso com o aplicativo CBDC de atacado confidencial. Além disso, os métodos createAccount são modificados para o modelo CBDC de atacado confidencial.

Para obter informações sobre como configurar e instalar o aplicativo CBDC de atacado de amostra (versões genéricas e confidenciais), consulte: Oracle Database View Definitions for Wholesale CBDC e Wholesale CBDC Sample Application and Analytics Package.

TypeScript Métodos para CBDC de Atacado Confidencial

O chaincode CBDC de atacado confidencial inclui todos os métodos disponíveis no chaincode do Token Taxonomy Framework estendido. Estão disponíveis os seguintes métodos adicionais específicos do cenário de CBDC de atacado confidencial.
createAccount
Este método cria uma conta para um usuário e token especificados. É necessário criar uma conta para qualquer usuário que tenha tokens a qualquer momento. Esse método só pode ser chamado por uma Token Admin ou por uma Org Admin da organização especificada.
@Validator(yup.string(), yup.string(), yup.string(), yup.array().of(yup.string()), yup.object().nullable())
  public async createAccount(org_id: string, user_id: string, token_type: string, application_groups: string[], dailyLimits?: DailyLimits) {
    await this.Ctx.Auth.checkAuthorization("ACCOUNT.createAccount", "TOKEN", { org_id });
    await this.Ctx.Model.createEvent(EVENT_NAME.CREATE_ACCOUNT, { org_id, user_id, token_type, application_groups, dailyLimits });
    return await this.Ctx.Account.createAccount(org_id, user_id, token_type, application_groups, dailyLimits);
  }
Parâmetros:
  • org_id – O ID do provedor de serviços de associação (MSP) do usuário para o qual a conta será criada. O ID deve começar com um caractere alfanumérico e pode incluir letras, números e caracteres especiais, como sublinhados (_), pontos (.), sinais (@) e hifens (-).
  • user_id – O nome de usuário ou ID de e-mail do usuário. O ID deve começar com um caractere alfanumérico e pode incluir letras, números e caracteres especiais, como sublinhados (_), pontos (.), sinais (@) e hifens (-).
  • token_type: string – O tipo de token, que deve ser fungible.
  • application_groups: string[] – Uma lista de grupos de aplicativos aos quais o ID do usuário pertence, que definem as associações do usuário no aplicativo CBDC.
  • daily_limits: DailyLimits – Um objeto JSON do tipo a seguir.
    {
         "max_daily_amount": 100000
         "max_daily_transactions": 10000
     }
    No exemplo, o valor max_daily_amount é a quantidade máxima de tokens que podem ser transacionados diariamente e o valor max_daily_transactions é o número máximo de transações que podem ser concluídas diariamente.
Exemplo de Valor de Retorno:
{
    "bapAccountVersion": 0,
    "assetType": "oaccount",
    "account_id": "oaccount~b53cb2c19c92d1d5c8cb9f6e988e7761c34e03e014e6c4b889565fc0abf46c8a",
    "org_id": "CentralBank",
    "token_type": "fungible",
    "token_id": "",
    "token_name": "",
    "balance": "028b72742c8aa9a0395c828fe4f0e46226a3e40d4e731d0b994c8028c8b7bd4df6",
    "onhold_balance": "028b72742c8aa9a0395c828fe4f0e46226a3e40d4e731d0b994c8028c8b7bd4df6",
    "onhold_burn_balance": "028b72742c8aa9a0395c828fe4f0e46226a3e40d4e731d0b994c8028c8b7bd4df6",
    "application_groups": [
        "CENTRAL_BANK_USERS"
    ]
}
setApplicationGroups
Este método define o parâmetro application_groups nos detalhes da conta para os grupos de aplicativos especificados na API. Esse método só pode ser chamado por uma Token Admin ou Org Admin da organização especificada.
@Validator(yup.string(), yup.array().of(yup.string()))
  public async setApplicationGroups (account_id: string, application_groups: string[]) {
    const account: FungibleAccount = await this.Ctx.Account.getAccountWithTokenIdValidation(account_id);
    await this.Ctx.Auth.checkAuthorization('CBDC_TOKEN.setApplicationGroups', 'TOKEN', { org_id: account.org_id });
    const token_asset = await this.getTokenObject(account.token_id);
    await this.Ctx.Model.createEvent(EVENT_NAME.SET_APPLICATION_GROUPS, { account_id, application_groups }, token_asset);
    return this.Ctx.Account.setApplicationGroups (account_id, application_groups)
  }
Parâmetros:
  • account_id: string – O ID exclusivo da conta de token.
  • application_groups: string[] – Uma lista de grupos de aplicativos aos quais o ID da conta pertence, que definem as associações do usuário no aplicativo CBDC.
Exemplo de Valor de Retorno:
{
          "bapAccountVersion": 10,
          "assetType": "oaccount",
          "account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
          "org_id": "CentralBank",
          "token_type": "fungible",
          "token_id": "USD",
          "token_name": "cbdc",
          "balance": "02c4601262fa7ece1ffc909811f829ad973d4133ca27c9c0fa82972d441400ad3e",
          "onhold_balance": "028954d23bfabee1a10d9f5a07793dec08ab0f93fd506079b0fa33f525d527595f",
          "onhold_burn_balance": "028954d23bfabee1a10d9f5a07793dec08ab0f93fd506079b0fa33f525d527595f",
          "application_groups": [
              "SYSTEM_RETIRERS"
          ]
      }
getBurnQuantity
Este método retorna a quantidade total de tokens gravados para uma organização especificada. Esse método só pode ser chamado por um Token Admin, Token Auditor ou por um usuário com a função de gravador.
@GetMethod()
  @Validator(yup.string())
  public async getBurnQuantity(token_id: string) {
    return await this.Ctx.CBDCToken.getBurnQuantity(token_id);
  }
Parâmetros:
  • token_id: string – O ID do token.
Exemplo de Valor de Retorno:
{
           "burnt_quantity": 1200
       }
getActionHistory
Este método recupera o histórico de aprovações ou rejeições feitas pelo chamador para operações de hortelã, queima e transferência (emissão), incluindo detalhes da organização, e IDs de usuário das contas envolvidas (remetente, destinatário e notário).
@GetMethod()
  @Validator(yup.string())
  public async getActionHistory(token_id: string) {
    return await this.Ctx.CBDCToken.getActionHistory(token_id);
  }
Parâmetros:
  • token_id: string – O ID do token.
Exemplo de Valor de Retorno:
[
           {
               "from_account_id": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
               "from_org_id": "CentralBank",
               "holding_id": "ohold~cbdc~USD~b770",
               "holding_status": "APPROVE_BURN",
               "last_updated_time": "2025-08-25T13:21:24.000Z",
               "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
               "notary_org_id": "CentralBank",
               "operation_id": null,
               "timetoexpiration": null,
               "to_account_id": null,
               "to_org_id": null,
               "token_name": null,
               "quantity": 200
           },
           {
               "from_account_id": null,
               "from_org_id": null,
               "holding_id": "ohold~cbdc~USD~e7b6",
               "holding_status": "APPROVE_MINT",
               "last_updated_time": "2025-08-25T13:20:50.000Z",
               "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
               "notary_org_id": "CentralBank",
               "operation_id": null,
               "timetoexpiration": null,
               "to_account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
               "to_org_id": "CentralBank",
               "token_name": null,
               "quantity": 1000
           },
           {
               "from_account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
               "from_org_id": "CentralBank",
               "holding_id": "ohold~cbdc~USD~81d7c4ac",
               "holding_status": "EXECUTEHOLD",
               "last_updated_time": "2025-08-25T13:16:55.000Z",
               "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
               "notary_org_id": "CentralBank",
               "operation_id": null,
               "timetoexpiration": null,
               "to_account_id": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
               "to_org_id": "Org1",
               "token_name": null,
               "quantity": 200
           },
           {
               "from_account_id": null,
               "from_org_id": null,
               "holding_id": "ohold~cbdc~USD~1e19",
               "holding_status": "APPROVE_MINT",
               "last_updated_time": "2025-08-13T06:12:41.000Z",
               "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
               "notary_org_id": "CentralBank",
               "operation_id": null,
               "timetoexpiration": null,
               "to_account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
               "to_org_id": "CentralBank",
               "token_name": null,
               "quantity": 10000
           },
           {
               "from_account_id": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
               "from_org_id": "CentralBank",
               "holding_id": "ohold~cbdc~USD~1f74",
               "holding_status": "REJECT_BURN",
               "last_updated_time": "2025-08-12T21:09:53.000Z",
               "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
               "notary_org_id": "CentralBank",
               "operation_id": null,
               "timetoexpiration": null,
               "to_account_id": "",
               "to_org_id": null,
               "token_name": null,
               "quantity": 1000
           },
           {
               "from_account_id": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
               "from_org_id": "CentralBank",
               "holding_id": "ohold~cbdc~USD~d67c",
               "holding_status": "REJECT_BURN",
               "last_updated_time": "2025-08-12T21:09:47.000Z",
               "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
               "notary_org_id": "CentralBank",
               "operation_id": null,
               "timetoexpiration": null,
               "to_account_id": "",
               "to_org_id": null,
               "token_name": null,
               "quantity": 2000
           },
           {
               "from_account_id": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
               "from_org_id": "CentralBank",
               "holding_id": "ohold~cbdc~USD~911b",
               "holding_status": "APPROVE_BURN",
               "last_updated_time": "2025-08-12T21:09:40.000Z",
               "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
               "notary_org_id": "CentralBank",
               "operation_id": null,
               "timetoexpiration": null,
               "to_account_id": null,
               "to_org_id": null,
               "token_name": null,
               "quantity": 1000
           },
           {
               "from_account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
               "from_org_id": "CentralBank",
               "holding_id": "ohold~cbdc~USD~ed815e20",
               "holding_status": "EXECUTEHOLD",
               "last_updated_time": "2025-08-12T21:09:25.000Z",
               "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
               "notary_org_id": "CentralBank",
               "operation_id": null,
               "timetoexpiration": null,
               "to_account_id": "oaccount~3954f54a8bc7acdd0c3d0960104240f60d56c26c8a179430267359cd80ce3709",
               "to_org_id": "org2",
               "token_name": null,
               "quantity": 10000
           },
           {
               "from_account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
               "from_org_id": "CentralBank",
               "holding_id": "ohold~cbdc~USD~12d87129",
               "holding_status": "EXECUTEHOLD",
               "last_updated_time": "2025-08-12T21:09:17.000Z",
               "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
               "notary_org_id": "CentralBank",
               "operation_id": null,
               "timetoexpiration": null,
               "to_account_id": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
               "to_org_id": "Org1",
               "token_name": null,
               "quantity": 10000
           },
           {
               "from_account_id": "",
               "from_org_id": null,
               "holding_id": "ohold~cbdc~USD~54a4",
               "holding_status": "REJECT_MINT",
               "last_updated_time": "2025-08-12T21:01:27.000Z",
               "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
               "notary_org_id": "CentralBank",
               "operation_id": null,
               "timetoexpiration": null,
               "to_account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
               "to_org_id": "CentralBank",
               "token_name": null,
               "quantity": 40000
           },
           {
               "from_account_id": null,
               "from_org_id": null,
               "holding_id": "ohold~cbdc~USD~9b27",
               "holding_status": "APPROVE_MINT",
               "last_updated_time": "2025-08-12T21:01:16.000Z",
               "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
               "notary_org_id": "CentralBank",
               "operation_id": null,
               "timetoexpiration": null,
               "to_account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
               "to_org_id": "CentralBank",
               "token_name": null,
               "quantity": 30000
           },
           {
               "from_account_id": null,
               "from_org_id": null,
               "holding_id": "ohold~cbdc~USD~eda0",
               "holding_status": "APPROVE_MINT",
               "last_updated_time": "2025-08-12T21:01:05.000Z",
               "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
               "notary_org_id": "CentralBank",
               "operation_id": null,
               "timetoexpiration": null,
               "to_account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
               "to_org_id": "CentralBank",
               "token_name": null,
               "quantity": 20000
           },
           {
               "from_account_id": null,
               "from_org_id": null,
               "holding_id": "ohold~cbdc~USD~1baa",
               "holding_status": "APPROVE_MINT",
               "last_updated_time": "2025-08-12T21:01:03.000Z",
               "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
               "notary_org_id": "CentralBank",
               "operation_id": null,
               "timetoexpiration": null,
               "to_account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
               "to_org_id": "CentralBank",
               "token_name": null,
               "quantity": 10000
           }
       ]
getPendingIssuance
Esse método recupera todas as transações de emissão (transferência) pendentes em que o chamador é atribuído como aprovador, incluindo detalhes da organização, e IDs de usuário das contas envolvidas (remetente, destinatário e notário). Esse método só pode ser chamado por uma Token Admin ou Token Auditor do chaincode, uma Org Admin ou Org Auditor da organização especificada ou a Notary.
@GetMethod()
  @Validator(yup.string(), yup.string())
  public async getPendingIssuance(token_id: string, org_id: string) {
    return await this.Ctx.CBDCToken.getPendingIssuance(token_id, org_id);
  }
Parâmetros:
  • token_id: string – O ID do token.
  • org_id: string – O ID do provedor de serviços de associação (MSP) da organização para obter as transferências pendentes.
Exemplo de Valor de Retorno:
[
           {
               "asset_type": "ONHOLD",
               "category": "issuance",
               "from_account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
               "from_org_id": "CentralBank",
               "holding_id": "ohold~cbdc~USD~77b75873",
               "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
               "notary_org_id": "CentralBank",
               "operation_id": "77b75873",
               "timetoexpiration": "0",
               "to_account_id": "oaccount~3954f54a8bc7acdd0c3d0960104240f60d56c26c8a179430267359cd80ce3709",
               "to_org_id": "org2",
               "token_id": "USD",
               "token_name": "cbdc",
               "quantity": 200
           },
           {
               "asset_type": "ONHOLD",
               "category": "transfer",
               "from_account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
               "from_org_id": "CentralBank",
               "holding_id": "ohold~cbdc~USD~e26f11da",
               "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
               "notary_org_id": "CentralBank",
               "operation_id": "e26f11da",
               "timetoexpiration": "0",
               "to_account_id": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
               "to_org_id": "Org1",
               "token_id": "USD",
               "token_name": "cbdc",
               "quantity": 100
           }
       ]
getPendingRequest
Este método recupera todas as solicitações pendentes de um tipo especificado em que o chamador é atribuído como um aprovador. Esse método só pode ser chamado por uma Token Admin ou Token Auditor do chaincode, uma Org Admin ou Org Auditor da organização especificada ou a Notary.
@GetMethod()
  @Validator(yup.string(), yup.string(), yup.string())
  public async getPendingRequest(token_id: string, request_type: string, org_id: string) {
    return await this.Ctx.CBDCToken.getPendingRequest(token_id, request_type, org_id);
  }
Parâmetros:
  • token_id: string – O ID do token.
  • org_id: string – O ID do provedor de serviços de associação (MSP) da organização para obter as solicitações pendentes.
  • request_type: string – O tipo de transação. Por exemplo, mint ou burn.
Exemplo de Valor de Retorno:
[
           {
               "valueJson": {
                   "assetType": "ohold",
                   "holding_id": "ohold~cbdc~USD~89ce",
                   "operation_id": "89ce",
                   "token_name": "cbdc",
                   "from_org_id": "CentralBank",
                   "operation_type": "mint",
                   "status": "pending",
                   "from_account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
                   "to_account_id": "",
                   "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
                   "token_id": "USD",
                   "quantity": 2000,
                   "time_to_expiration": "0",
                   "description": "Minting 2000 tokens"
               }
           },
           {
               "valueJson": {
                   "assetType": "ohold",
                   "holding_id": "ohold~cbdc~USD~cf73",
                   "operation_id": "cf73",
                   "token_name": "cbdc",
                   "from_org_id": "CentralBank",
                   "operation_type": "mint",
                   "status": "pending",
                   "from_account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
                   "to_account_id": "",
                   "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
                   "token_id": "USD",
                   "quantity": 200,
                   "time_to_expiration": "0",
                   "description": "Minting 200"
               }
           }
       ]
getTotalBalanceByCallerOrgId
Este método recupera o saldo total da organização do chamador. Ele pode ser chamado por um Token Admin, Token Auditor, Org Admin, Org Auditor ou qualquer proprietário de conta.
@GetMethod()
  @Validator()
  public async getTotalBalanceByCallerOrgId() {
    const org_id =  await this.Ctx.Model.getCallerOrgId()
    await this.Ctx.Auth.checkAuthorization("CBDC_TOKEN.getTotalBalanceByCallerOrgId", "TOKEN", { org_id });
    return await this.Ctx.CBDCToken.getTotalBalanceByCallerOrgId();
  }
Exemplo de Valor de Retorno:
{
           "totalBalance": 50500
       }
getTransactionWithBlockNumber
Este método retorna os detalhes da transação para o ID da transação especificado. Esse método só pode ser chamado por um Token Admin, Token Auditor, Org Admin, Org Auditor ou qualquer participante da transação.
@GetMethod()
  @Validator(yup.string(), yup.string())
  public async getTransactionWithBlockNumber(token_id: string, transaction_id: string) {
    return await this.Ctx.CBDCToken.getTransactionWithBlockNumber(token_id, transaction_id);
  }
Parâmetros:
  • token_id: string – O ID do token.
  • transaction_id: string – O ID da transação.
Exemplo de Valor de Retorno:
[
          {
              "blockNo": 340,
              "key": "otransaction~3140569a4ecb3c3f141cc2468fe21276640b7fd79013d951d9104b79072d8f9c",
              "metadata": null,
              "txnNo": 0,
              "value": null,
              "valueJson": {
                  "assetType": "otransaction",
                  "blockNo": 336,
                  "txnNo": 1,
                  "transaction_id": "otransaction~3140569a4ecb3c3f141cc2468fe21276640b7fd79013d951d9104b79072d8f9c",
                  "token_id": "USD",
                  "from_account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
                  "from_account_balance": 26800,
                  "from_account_onhold_balance": 300,
                  "to_account_id": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
                  "transaction_type": "EXECUTE_HOLD_SENDER",
                  "amount": 200,
                  "timestamp": "2025-08-25T13:16:55.000Z",
                  "number_of_sub_transactions": 0,
                  "holding_id": "ohold~cbdc~USD~81d7c4ac",
                  "sub_transaction": "false",
                  "category": "transfer",
                  "global_transaction_id": "b54d4333-f4bb-4ca4-a7b7-cc75b659d912"
              }
          }
      ]
getAllActiveAccounts
Este método retorna todas as contas ativas associadas ao ID do token especificado.
@GetMethod()
  @Validator(yup.string(), yup.string())
  public async getAllActiveAccounts(orgId: string, tokenId: string) {
    return this.Ctx.CBDCToken.getAllActiveAccounts(orgId, tokenId);
  }
Parâmetros:
  • token_id: string – O ID do token.
  • org_id: string – O ID do provedor de serviços de associação (MSP) da organização para a qual obter as contas ativas.
Retorna:
  • Em caso de sucesso, uma mensagem que inclui detalhes do usuário. A saída varia de acordo com a função do usuário, conforme mostrado nos exemplos a seguir.
Exemplo de Valor de Retorno (Administrador de Token, Auditor de Token, Administrador de Organização, Auditor de Organização):
[
           {
               "key": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61",
               "role_name": null,
               "valueJson": {
                   "account_id": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61",
                   "org_id": "CentralBank",
                   "token_id": "USD",
                   "application_groups": [
                       "SYSTEM_ADMINS"
                   ],
                   "max_daily_amount": "10000",
                   "max_daily_transactions": "1000"
               },
               "non_account_role_name": [
                   "token_admin"
               ]
           },
           {
               "key": "oaccount~1a6ea9aaa59c9ae8385bfdc870bf02616995c881ffeb111f526c8b31dbbdd43c",
               "role_name": null,
               "valueJson": {
                   "account_id": "oaccount~1a6ea9aaa59c9ae8385bfdc870bf02616995c881ffeb111f526c8b31dbbdd43c",
                   "org_id": "CentralBank",
                   "token_id": "USD",
                   "application_groups": [
                       "SYSTEM_AUDITORS"
                   ],
                   "max_daily_amount": "10000",
                   "max_daily_transactions": "1000"
               },
               "non_account_role_name": [
                   "token_auditor"
               ]
           },
           {
               "key": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
               "role_name": "minter",
               "valueJson": {
                   "account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
                   "org_id": "CentralBank",
                   "token_id": "USD",
                   "application_groups": [
                       "SYSTEM_CREATORS"
                   ],
                   "max_daily_amount": "1000000",
                   "max_daily_transactions": "100000"
               },
               "non_account_role_name": []
           },
           {
               "key": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
               "role_name": "notary",
               "valueJson": {
                   "account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
                   "org_id": "CentralBank",
                   "token_id": "USD",
                   "application_groups": [
                       "SYSTEM_MANAGERS"
                   ],
                   "max_daily_amount": "10000",
                   "max_daily_transactions": "1000"
               },
               "non_account_role_name": []
           },
           {
               "key": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
               "role_name": null,
               "valueJson": {
                   "account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
                   "org_id": "CentralBank",
                   "token_id": "USD",
                   "application_groups": [
                       "SYSTEM_ISSUERS"
                   ],
                   "max_daily_amount": "100000",
                   "max_daily_transactions": "10000"
               },
               "non_account_role_name": []
           },
           {
               "key": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
               "role_name": "burner",
               "valueJson": {
                   "account_id": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
                   "org_id": "CentralBank",
                   "token_id": "USD",
                   "application_groups": [
                       "SYSTEM_RETIRERS"
                   ],
                   "max_daily_amount": "10000",
                   "max_daily_transactions": "1000"
               },
               "non_account_role_name": []
           }
       ]
Exemplo de Valor de Retorno (todos os outros usuários):
[
            {
                "key": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61",
                "role_name": null,
                "valueJson": {
                    "account_id": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61",
                    "org_id": "CentralBank",
                    "token_id": "USD",
                    "application_groups": [
                        "SYSTEM_ADMINS"
                    ]
                }
            },
            {
                "key": "oaccount~1a6ea9aaa59c9ae8385bfdc870bf02616995c881ffeb111f526c8b31dbbdd43c",
                "role_name": null,
                "valueJson": {
                    "account_id": "oaccount~1a6ea9aaa59c9ae8385bfdc870bf02616995c881ffeb111f526c8b31dbbdd43c",
                    "org_id": "CentralBank",
                    "token_id": "USD",
                    "application_groups": [
                        "SYSTEM_AUDITORS"
                    ]
                }
            },
            {
                "key": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
                "role_name": "minter",
                "valueJson": {
                    "account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
                    "org_id": "CentralBank",
                    "token_id": "USD",
                    "application_groups": [
                        "SYSTEM_CREATORS"
                    ]
                }
            },
            {
                "key": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
                "role_name": "notary",
                "valueJson": {
                    "account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
                    "org_id": "CentralBank",
                    "token_id": "USD",
                    "application_groups": [
                        "SYSTEM_MANAGERS"
                    ]
                }
            },
            {
                "key": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
                "role_name": null,
                "valueJson": {
                    "account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
                    "org_id": "CentralBank",
                    "token_id": "USD",
                    "application_groups": [
                        "SYSTEM_ISSUERS"
                    ]
                }
            },
            {
                "key": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
                "role_name": "burner",
                "valueJson": {
                    "account_id": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
                    "org_id": "CentralBank",
                    "token_id": "USD",
                    "application_groups": [
                        "SYSTEM_RETIRERS"
                    ]
                }
            }
        ]
getAllSuspendedAccounts
Este método retorna todas as contas suspensas associadas ao ID do token especificado.
@GetMethod()
  @Validator(yup.string(), yup.string())
  public async getAllSuspendedAccounts(orgId: string, tokenId: string) {
    return this.Ctx.CBDCToken.getAllSuspendedAccounts(orgId, tokenId);
  }
Parâmetros:
  • token_id: string – O ID do token.
  • org_id: string – O ID do provedor de serviços de associação (MSP) da organização para a qual as contas suspensas serão obtidas.
Retorna:
  • Em caso de sucesso, uma mensagem que inclui detalhes do usuário. A saída varia de acordo com a função do usuário, conforme mostrado nos exemplos a seguir.
Exemplo de Valor de Retorno (Administrador de Token, Auditor de Token, Administrador de Organização, Auditor de Organização):
[
           {
               "key": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61",
               "role_name": null,
               "valueJson": {
                   "account_id": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61",
                   "org_id": "CentralBank",
                   "token_id": "USD",
                   "application_groups": [
                       "SYSTEM_ADMINS"
                   ],
                   "max_daily_amount": "10000",
                   "max_daily_transactions": "1000"
               },
               "non_account_role_name": [
                   "token_admin"
               ]
           }
       ]
Exemplo de Valor de Retorno (todos os outros usuários):
[
            {
                "key": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61",
                "role_name": null,
                "valueJson": {
                    "account_id": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61",
                    "org_id": "CentralBank",
                    "token_id": "USD",
                    "application_groups": [
                        "SYSTEM_ADMINS"
                    ]
                }
            }
        ]

TypeScript Métodos SDK para CBDC de Atacado Confidencial

O chaincode CBDC de atacado confidencial inclui todos os métodos SDK disponíveis no chaincode NFT genérico do Token Taxonomy Framework. Os seguintes métodos SDK adicionais que são específicos do cenário CBDC de atacado confidencial estão disponíveis.

createAccount
Este método cria uma conta para um usuário e token especificados. Todo usuário que tem tokens em qualquer ponto deve ter uma conta.
Ctx.Account.createAccount(org_id: string, user_id: string, token_type: string, application_groups: string[], dailyLimits);
Parâmetros:
  • org_id: string – O ID do provedor de serviços de associação (MSP) do usuário na organização atual. O ID deve começar com um caractere alfanumérico e pode incluir letras, números e caracteres especiais, como sublinhados (_), pontos (.), sinais (@) e hifens (-).
  • user_id: string – O nome de usuário ou ID de e-mail do usuário. O ID deve começar com um caractere alfanumérico e pode incluir letras, números e caracteres especiais, como sublinhados (_), pontos (.), sinais (@) e hifens (-).
  • token_type: string – O tipo do token, que deve ser fungible.
  • application_groups: string[] – Uma lista de grupos de aplicativos aos quais o ID da conta pertence, que definem as associações do usuário no aplicativo CBDC.
  • daily_limits: DailyLimits – Um objeto JSON do tipo a seguir.
    {
         "max_daily_amount": 100000
         "max_daily_transactions": 10000
     }
    No exemplo, o valor max_daily_amount é a quantidade máxima de tokens que podem ser transacionados diariamente e o valor max_daily_transactions é o número máximo de transações que podem ser concluídas diariamente.
Exemplo de Valor de Retorno:
{
    "bapAccountVersion": 0,
    "assetType": "oaccount",
    "account_id": "oaccount~b53cb2c19c92d1d5c8cb9f6e988e7761c34e03e014e6c4b889565fc0abf46c8a",
    "org_id": "CentralBank",
    "token_type": "fungible",
    "token_id": "",
    "token_name": "",
    "balance": "028b72742c8aa9a0395c828fe4f0e46226a3e40d4e731d0b994c8028c8b7bd4df6",
    "onhold_balance": "028b72742c8aa9a0395c828fe4f0e46226a3e40d4e731d0b994c8028c8b7bd4df6",
    "onhold_burn_balance": "028b72742c8aa9a0395c828fe4f0e46226a3e40d4e731d0b994c8028c8b7bd4df6",
    "application_groups": [
        "CENTRAL_BANK_USERS"
    ]
}
setApplicationGroups
Este método define o parâmetro application_groups nos detalhes da conta para os grupos de aplicativos especificados na API.
Ctx.Account.setApplicationGroups (account_id: string, application_groups: string[])
Parâmetros:
  • account_id: string – O ID exclusivo da conta de token.
  • application_groups: string[] – Uma lista de grupos de aplicativos aos quais o ID da conta pertence, que definem as associações do usuário no aplicativo CBDC.
Exemplo de Valor de Retorno:
{
          "bapAccountVersion": 10,
          "assetType": "oaccount",
          "account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
          "org_id": "CentralBank",
          "token_type": "fungible",
          "token_id": "USD",
          "token_name": "cbdc",
          "balance": "02c4601262fa7ece1ffc909811f829ad973d4133ca27c9c0fa82972d441400ad3e",
          "onhold_balance": "028954d23bfabee1a10d9f5a07793dec08ab0f93fd506079b0fa33f525d527595f",
          "onhold_burn_balance": "028954d23bfabee1a10d9f5a07793dec08ab0f93fd506079b0fa33f525d527595f",
          "application_groups": [
              "SYSTEM_RETIRERS"
          ]
      }
getBurnQuantity
Este método retorna a quantidade total de tokens gravados para uma organização especificada.
Ctx.CBDCToken.getBurnQuantity(token_id: string);
Parâmetros:
  • token_id: string – O ID do token.
Exemplo de Valor de Retorno:
{
           "burnt_quantity": 1200
       }
getActionHistory
Este método recupera o histórico de aprovações ou rejeições feitas pelo chamador para operações de hortelã, queima e transferência (emissão), incluindo detalhes da organização, e IDs de usuário das contas envolvidas (remetente, destinatário e notário).
Ctx.CBDCToken.getActionHistory(token_id: string);
Parâmetros:
  • token_id: string – O ID do token.
Exemplo de Valor de Retorno:
[
           {
               "from_account_id": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
               "from_org_id": "CentralBank",
               "holding_id": "ohold~cbdc~USD~b770",
               "holding_status": "APPROVE_BURN",
               "last_updated_time": "2025-08-25T13:21:24.000Z",
               "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
               "notary_org_id": "CentralBank",
               "operation_id": null,
               "timetoexpiration": null,
               "to_account_id": null,
               "to_org_id": null,
               "token_name": null,
               "quantity": 200
           },
           {
               "from_account_id": null,
               "from_org_id": null,
               "holding_id": "ohold~cbdc~USD~e7b6",
               "holding_status": "APPROVE_MINT",
               "last_updated_time": "2025-08-25T13:20:50.000Z",
               "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
               "notary_org_id": "CentralBank",
               "operation_id": null,
               "timetoexpiration": null,
               "to_account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
               "to_org_id": "CentralBank",
               "token_name": null,
               "quantity": 1000
           },
           {
               "from_account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
               "from_org_id": "CentralBank",
               "holding_id": "ohold~cbdc~USD~81d7c4ac",
               "holding_status": "EXECUTEHOLD",
               "last_updated_time": "2025-08-25T13:16:55.000Z",
               "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
               "notary_org_id": "CentralBank",
               "operation_id": null,
               "timetoexpiration": null,
               "to_account_id": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
               "to_org_id": "Org1",
               "token_name": null,
               "quantity": 200
           },
           {
               "from_account_id": null,
               "from_org_id": null,
               "holding_id": "ohold~cbdc~USD~1e19",
               "holding_status": "APPROVE_MINT",
               "last_updated_time": "2025-08-13T06:12:41.000Z",
               "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
               "notary_org_id": "CentralBank",
               "operation_id": null,
               "timetoexpiration": null,
               "to_account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
               "to_org_id": "CentralBank",
               "token_name": null,
               "quantity": 10000
           },
           {
               "from_account_id": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
               "from_org_id": "CentralBank",
               "holding_id": "ohold~cbdc~USD~1f74",
               "holding_status": "REJECT_BURN",
               "last_updated_time": "2025-08-12T21:09:53.000Z",
               "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
               "notary_org_id": "CentralBank",
               "operation_id": null,
               "timetoexpiration": null,
               "to_account_id": "",
               "to_org_id": null,
               "token_name": null,
               "quantity": 1000
           },
           {
               "from_account_id": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
               "from_org_id": "CentralBank",
               "holding_id": "ohold~cbdc~USD~d67c",
               "holding_status": "REJECT_BURN",
               "last_updated_time": "2025-08-12T21:09:47.000Z",
               "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
               "notary_org_id": "CentralBank",
               "operation_id": null,
               "timetoexpiration": null,
               "to_account_id": "",
               "to_org_id": null,
               "token_name": null,
               "quantity": 2000
           },
           {
               "from_account_id": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
               "from_org_id": "CentralBank",
               "holding_id": "ohold~cbdc~USD~911b",
               "holding_status": "APPROVE_BURN",
               "last_updated_time": "2025-08-12T21:09:40.000Z",
               "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
               "notary_org_id": "CentralBank",
               "operation_id": null,
               "timetoexpiration": null,
               "to_account_id": null,
               "to_org_id": null,
               "token_name": null,
               "quantity": 1000
           },
           {
               "from_account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
               "from_org_id": "CentralBank",
               "holding_id": "ohold~cbdc~USD~ed815e20",
               "holding_status": "EXECUTEHOLD",
               "last_updated_time": "2025-08-12T21:09:25.000Z",
               "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
               "notary_org_id": "CentralBank",
               "operation_id": null,
               "timetoexpiration": null,
               "to_account_id": "oaccount~3954f54a8bc7acdd0c3d0960104240f60d56c26c8a179430267359cd80ce3709",
               "to_org_id": "org2",
               "token_name": null,
               "quantity": 10000
           },
           {
               "from_account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
               "from_org_id": "CentralBank",
               "holding_id": "ohold~cbdc~USD~12d87129",
               "holding_status": "EXECUTEHOLD",
               "last_updated_time": "2025-08-12T21:09:17.000Z",
               "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
               "notary_org_id": "CentralBank",
               "operation_id": null,
               "timetoexpiration": null,
               "to_account_id": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
               "to_org_id": "Org1",
               "token_name": null,
               "quantity": 10000
           },
           {
               "from_account_id": "",
               "from_org_id": null,
               "holding_id": "ohold~cbdc~USD~54a4",
               "holding_status": "REJECT_MINT",
               "last_updated_time": "2025-08-12T21:01:27.000Z",
               "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
               "notary_org_id": "CentralBank",
               "operation_id": null,
               "timetoexpiration": null,
               "to_account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
               "to_org_id": "CentralBank",
               "token_name": null,
               "quantity": 40000
           },
           {
               "from_account_id": null,
               "from_org_id": null,
               "holding_id": "ohold~cbdc~USD~9b27",
               "holding_status": "APPROVE_MINT",
               "last_updated_time": "2025-08-12T21:01:16.000Z",
               "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
               "notary_org_id": "CentralBank",
               "operation_id": null,
               "timetoexpiration": null,
               "to_account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
               "to_org_id": "CentralBank",
               "token_name": null,
               "quantity": 30000
           },
           {
               "from_account_id": null,
               "from_org_id": null,
               "holding_id": "ohold~cbdc~USD~eda0",
               "holding_status": "APPROVE_MINT",
               "last_updated_time": "2025-08-12T21:01:05.000Z",
               "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
               "notary_org_id": "CentralBank",
               "operation_id": null,
               "timetoexpiration": null,
               "to_account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
               "to_org_id": "CentralBank",
               "token_name": null,
               "quantity": 20000
           },
           {
               "from_account_id": null,
               "from_org_id": null,
               "holding_id": "ohold~cbdc~USD~1baa",
               "holding_status": "APPROVE_MINT",
               "last_updated_time": "2025-08-12T21:01:03.000Z",
               "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
               "notary_org_id": "CentralBank",
               "operation_id": null,
               "timetoexpiration": null,
               "to_account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
               "to_org_id": "CentralBank",
               "token_name": null,
               "quantity": 10000
           }
       ]
getPendingIssuance
Esse método recupera todas as transações de emissão (transferência) pendentes em que o chamador é atribuído como aprovador, incluindo detalhes da organização, e IDs de usuário das contas envolvidas (remetente, destinatário e notário).
Ctx.CBDCToken.getPendingIssuance(token_id: string, org_id: string);
Parâmetros:
  • token_id: string – O ID do token.
  • org_id: string – O ID do provedor de serviços de associação (MSP) da organização para obter as transferências pendentes.
Exemplo de Valor de Retorno:
[
           {
               "asset_type": "ONHOLD",
               "category": "issuance",
               "from_account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
               "from_org_id": "CentralBank",
               "holding_id": "ohold~cbdc~USD~77b75873",
               "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
               "notary_org_id": "CentralBank",
               "operation_id": "77b75873",
               "timetoexpiration": "0",
               "to_account_id": "oaccount~3954f54a8bc7acdd0c3d0960104240f60d56c26c8a179430267359cd80ce3709",
               "to_org_id": "org2",
               "token_id": "USD",
               "token_name": "cbdc",
               "quantity": 200
           },
           {
               "asset_type": "ONHOLD",
               "category": "transfer",
               "from_account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
               "from_org_id": "CentralBank",
               "holding_id": "ohold~cbdc~USD~e26f11da",
               "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
               "notary_org_id": "CentralBank",
               "operation_id": "e26f11da",
               "timetoexpiration": "0",
               "to_account_id": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
               "to_org_id": "Org1",
               "token_id": "USD",
               "token_name": "cbdc",
               "quantity": 100
           }
       ]
getPendingRequest
Este método recupera todas as solicitações pendentes de um tipo especificado em que o chamador é atribuído como um aprovador.
Ctx.CBDCToken.getPendingRequest(token_id: string, request_type: string, org_id: string)
Parâmetros:
  • token_id: string – O ID do token.
  • org_id: string – O ID do provedor de serviços de associação (MSP) da organização para obter as solicitações pendentes.
  • request_type: string – O tipo de transação. Por exemplo, mint ou burn.
Exemplo de Valor de Retorno:
[
           {
               "valueJson": {
                   "assetType": "ohold",
                   "holding_id": "ohold~cbdc~USD~89ce",
                   "operation_id": "89ce",
                   "token_name": "cbdc",
                   "from_org_id": "CentralBank",
                   "operation_type": "mint",
                   "status": "pending",
                   "from_account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
                   "to_account_id": "",
                   "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
                   "token_id": "USD",
                   "quantity": 2000,
                   "time_to_expiration": "0",
                   "description": "Minting 2000 tokens"
               }
           },
           {
               "valueJson": {
                   "assetType": "ohold",
                   "holding_id": "ohold~cbdc~USD~cf73",
                   "operation_id": "cf73",
                   "token_name": "cbdc",
                   "from_org_id": "CentralBank",
                   "operation_type": "mint",
                   "status": "pending",
                   "from_account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
                   "to_account_id": "",
                   "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
                   "token_id": "USD",
                   "quantity": 200,
                   "time_to_expiration": "0",
                   "description": "Minting 200"
               }
           }
       ]
getTotalBalanceByCallerOrgId
Este método recupera o saldo total da organização do chamador.
Ctx.CBDCToken.getTotalBalanceByCallerOrgId();
Exemplo de Valor de Retorno:
{
           "totalBalance": 50500
       }
getTransactionWithBlockNumber
Este método retorna os detalhes da transação para o ID da transação especificado.
Ctx.CBDCToken.getTransactionWithBlockNumber(token_id: string, transaction_id: string);
Parâmetros:
  • token_id: string – O ID do token.
  • transaction_id: string – O ID da transação.
Exemplo de Valor de Retorno:
[
          {
              "blockNo": 340,
              "key": "otransaction~3140569a4ecb3c3f141cc2468fe21276640b7fd79013d951d9104b79072d8f9c",
              "metadata": null,
              "txnNo": 0,
              "value": null,
              "valueJson": {
                  "assetType": "otransaction",
                  "blockNo": 336,
                  "txnNo": 1,
                  "transaction_id": "otransaction~3140569a4ecb3c3f141cc2468fe21276640b7fd79013d951d9104b79072d8f9c",
                  "token_id": "USD",
                  "from_account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
                  "from_account_balance": 26800,
                  "from_account_onhold_balance": 300,
                  "to_account_id": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
                  "transaction_type": "EXECUTE_HOLD_SENDER",
                  "amount": 200,
                  "timestamp": "2025-08-25T13:16:55.000Z",
                  "number_of_sub_transactions": 0,
                  "holding_id": "ohold~cbdc~USD~81d7c4ac",
                  "sub_transaction": "false",
                  "category": "transfer",
                  "global_transaction_id": "b54d4333-f4bb-4ca4-a7b7-cc75b659d912"
              }
          }
      ]
getAllActiveAccounts
Este método retorna todas as contas ativas associadas ao ID do token especificado.
Ctx.CBDCToken.getAllActiveAccounts(orgId: string, tokenId: string);
Parâmetros:
  • token_id: string – O ID do token.
  • org_id: string – O ID do provedor de serviços de associação (MSP) da organização para a qual obter as contas ativas.
Retorna:
  • Em caso de sucesso, uma mensagem que inclui detalhes do usuário. A saída varia de acordo com a função do usuário, conforme mostrado nos exemplos a seguir.
Exemplo de Valor de Retorno (Administrador de Token, Auditor de Token, Administrador de Organização, Auditor de Organização):
[
           {
               "key": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61",
               "role_name": null,
               "valueJson": {
                   "account_id": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61",
                   "org_id": "CentralBank",
                   "token_id": "USD",
                   "application_groups": [
                       "SYSTEM_ADMINS"
                   ],
                   "max_daily_amount": "10000",
                   "max_daily_transactions": "1000"
               },
               "non_account_role_name": [
                   "token_admin"
               ]
           },
           {
               "key": "oaccount~1a6ea9aaa59c9ae8385bfdc870bf02616995c881ffeb111f526c8b31dbbdd43c",
               "role_name": null,
               "valueJson": {
                   "account_id": "oaccount~1a6ea9aaa59c9ae8385bfdc870bf02616995c881ffeb111f526c8b31dbbdd43c",
                   "org_id": "CentralBank",
                   "token_id": "USD",
                   "application_groups": [
                       "SYSTEM_AUDITORS"
                   ],
                   "max_daily_amount": "10000",
                   "max_daily_transactions": "1000"
               },
               "non_account_role_name": [
                   "token_auditor"
               ]
           },
           {
               "key": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
               "role_name": "minter",
               "valueJson": {
                   "account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
                   "org_id": "CentralBank",
                   "token_id": "USD",
                   "application_groups": [
                       "SYSTEM_CREATORS"
                   ],
                   "max_daily_amount": "1000000",
                   "max_daily_transactions": "100000"
               },
               "non_account_role_name": []
           },
           {
               "key": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
               "role_name": "notary",
               "valueJson": {
                   "account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
                   "org_id": "CentralBank",
                   "token_id": "USD",
                   "application_groups": [
                       "SYSTEM_MANAGERS"
                   ],
                   "max_daily_amount": "10000",
                   "max_daily_transactions": "1000"
               },
               "non_account_role_name": []
           },
           {
               "key": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
               "role_name": null,
               "valueJson": {
                   "account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
                   "org_id": "CentralBank",
                   "token_id": "USD",
                   "application_groups": [
                       "SYSTEM_ISSUERS"
                   ],
                   "max_daily_amount": "100000",
                   "max_daily_transactions": "10000"
               },
               "non_account_role_name": []
           },
           {
               "key": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
               "role_name": "burner",
               "valueJson": {
                   "account_id": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
                   "org_id": "CentralBank",
                   "token_id": "USD",
                   "application_groups": [
                       "SYSTEM_RETIRERS"
                   ],
                   "max_daily_amount": "10000",
                   "max_daily_transactions": "1000"
               },
               "non_account_role_name": []
           }
       ]
Exemplo de Valor de Retorno (todos os outros usuários):
[
            {
                "key": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61",
                "role_name": null,
                "valueJson": {
                    "account_id": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61",
                    "org_id": "CentralBank",
                    "token_id": "USD",
                    "application_groups": [
                        "SYSTEM_ADMINS"
                    ]
                }
            },
            {
                "key": "oaccount~1a6ea9aaa59c9ae8385bfdc870bf02616995c881ffeb111f526c8b31dbbdd43c",
                "role_name": null,
                "valueJson": {
                    "account_id": "oaccount~1a6ea9aaa59c9ae8385bfdc870bf02616995c881ffeb111f526c8b31dbbdd43c",
                    "org_id": "CentralBank",
                    "token_id": "USD",
                    "application_groups": [
                        "SYSTEM_AUDITORS"
                    ]
                }
            },
            {
                "key": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
                "role_name": "minter",
                "valueJson": {
                    "account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
                    "org_id": "CentralBank",
                    "token_id": "USD",
                    "application_groups": [
                        "SYSTEM_CREATORS"
                    ]
                }
            },
            {
                "key": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
                "role_name": "notary",
                "valueJson": {
                    "account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
                    "org_id": "CentralBank",
                    "token_id": "USD",
                    "application_groups": [
                        "SYSTEM_MANAGERS"
                    ]
                }
            },
            {
                "key": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
                "role_name": null,
                "valueJson": {
                    "account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
                    "org_id": "CentralBank",
                    "token_id": "USD",
                    "application_groups": [
                        "SYSTEM_ISSUERS"
                    ]
                }
            },
            {
                "key": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
                "role_name": "burner",
                "valueJson": {
                    "account_id": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
                    "org_id": "CentralBank",
                    "token_id": "USD",
                    "application_groups": [
                        "SYSTEM_RETIRERS"
                    ]
                }
            }
        ]
getAllSuspendedAccounts
Este método retorna todas as contas suspensas associadas ao ID do token especificado.
Ctx.CBDCToken.getAllSuspendedAccounts(orgId: string, tokenId: string);
Parâmetros:
  • token_id: string – O ID do token.
  • org_id: string – O ID do provedor de serviços de associação (MSP) da organização para a qual as contas suspensas serão obtidas.
Retorna:
  • Em caso de sucesso, uma mensagem que inclui detalhes do usuário. A saída varia de acordo com a função do usuário, conforme mostrado nos exemplos a seguir.
Exemplo de Valor de Retorno (Administrador de Token, Auditor de Token, Administrador de Organização, Auditor de Organização):
[
           {
               "key": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61",
               "role_name": null,
               "valueJson": {
                   "account_id": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61",
                   "org_id": "CentralBank",
                   "token_id": "USD",
                   "application_groups": [
                       "SYSTEM_ADMINS"
                   ],
                   "max_daily_amount": "10000",
                   "max_daily_transactions": "1000"
               },
               "non_account_role_name": [
                   "token_admin"
               ]
           }
       ]
Exemplo de Valor de Retorno (todos os outros usuários):
[
            {
                "key": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61",
                "role_name": null,
                "valueJson": {
                    "account_id": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61",
                    "org_id": "CentralBank",
                    "token_id": "USD",
                    "application_groups": [
                        "SYSTEM_ADMINS"
                    ]
                }
            }
        ]