Modelo CBDC de atacado

A versão aprimorada do Blockchain App Builder inclui um atributo de modelo que gera métodos adicionais para o cenário de moeda digital do banco central de atacado (CBDC).

Se você incluir o parâmetro model: wcbdc 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 para uso com o aplicativo CBDC de atacado.

TypeScript Métodos para CBDC Atacadista

O chaincode CBDC de atacado inclui todos os métodos disponíveis no chaincode NFT genérico do Token Taxonomy Framework. Os seguintes métodos adicionais que são específicos para o cenário CBDC de atacado estão disponíveis.
setApplicationGroups
Esse método define o parâmetro application_groups nos detalhes da conta dos grupos de aplicativos especificados na API. Esse método só pode ser chamado por um Token Admin ou Org Admin da organização especificada.
public async setApplicationGroups (org_id: string, user_id: string, token_id: string, application_groups: string[])
Parâmetros:
  • org_id: string – O ID do prestador de serviço de associação (MSP) do usuário na organização atual.
  • user_id: string – O nome do usuário ou o ID do e-mail do usuário.
  • token_id: string – O ID do token.
  • 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.
Exemplo de valor de retorno:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "453821c7ffd477987ef8ccbd836b893969531ab768098cd4a99e3b89cd38a391",
        "payload": {
            "bapAccountVersion": 0,
            "assetType": "oaccount",
            "account_id": "oaccount~28ac774001f374064029d51af4fb67e26ea1ea9ef62828b7a72dbf3beb8efd8d",
            "user_id": "admin_user_cb",
            "org_id": "CB",
            "token_type": "fungible",
            "token_id": "",
            "token_name": "",
            "balance": 0,
            "onhold_balance": 0,
            "onhold_burn_balance": 0,
            "application_groups": [
                "System_Admins"
            ],
            "max_daily_amount": 10000,
            "daily_amount": 0,
            "max_daily_transactions": 100,
            "daily_transactions": 0,
            "current_date": "2024-12-09T00:00:00.000Z"
        },
        "encode": "JSON",
        "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009",
        "blockNumber": 188
    }
}
getAllActiveAccounts
Esse método retorna todas as contas ativas associadas ao ID do token especificado. Qualquer usuário pode chamar esse método.
public async getAllActiveAccounts(token_id: string)
Parâmetros:
  • token_id: string – O ID do token.
Retorna:
  • Em caso de êxito, uma mensagem que inclui detalhes do usuário. A saída varia com base na atribuição do usuário, conforme mostrado nos exemplos a seguir.
Exemplo de valor de retorno (Administrador de token, Auditor de token):
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": [
            {
                "key": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe",
                "non_account_role_name": [
                    "token_admin"
                ],
                "role_name": null,
                "valueJson": {
                    "bapAccountVersion": 0,
                    "assetType": "oaccount",
                    "account_id": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe",
                    "user_id": "admin_user_cb",
                    "org_id": "CB",
                    "token_type": "fungible",
                    "token_id": "USD",
                    "token_name": "cbdc",
                    "balance": 0,
                    "onhold_balance": 0,
                    "onhold_burn_balance": 0,
                    "application_groups": [
                        "System_Admins"
                    ],
                    "max_daily_amount": 10000,
                    "daily_amount": 0,
                    "max_daily_transactions": 1000,
                    "daily_transactions": 0,
                    "current_date": "2024-11-20T00:00:00.000Z"
                }
            }
        ],
        "encode": "JSON"
    }
}
Exemplo de Valor de Retorno (Administrador da Organização, Auditor da Organização):
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "key": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe",
              "non_account_role_name": [
                  "token_admin"
              ],
              "role_name": null,
              "valueJson": {
                  "account_id": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe",
                  "org_id": "CB",
                  "user_id": "admin_user_cb",
                  "token_id": "USD",
                  "max_daily_amount": 10000,
                  "max_daily_transactions": 1000
              }
          }
      ],
      "encode": "JSON"
  }
}
Exemplo de Valor de Retorno (todos os outros usuários):
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "key": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe",
              "non_account_role_name": [
                  "token_admin"
              ],
              "role_name": null,
              "valueJson": {
                  "account_id": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe",
                  "org_id": "CB",
                  "user_id": "admin_user_cb",
                  "token_id": "USD",
                  "max_daily_amount": 10000,
                  "max_daily_transactions": 1000
              }
          }
      ],
      "encode": "JSON"
  }
}
getAllSuspendedAccounts
Esse método retorna todas as contas suspensas associadas ao ID do token especificado. Qualquer usuário pode chamar esse método.
func (t *Controller) GetAllSuspendedAccounts(token_id string) (interface{}, error)
Parâmetros:
  • token_id: string – O ID do token.
Retorna:
  • Em caso de êxito, uma mensagem que inclui detalhes do usuário. A saída varia com base na atribuição do usuário, conforme mostrado nos exemplos a seguir.
Exemplo de valor de retorno (Administrador de token, Auditor de token):
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": [
            {
                "key": "oaccount~802bf8da5579c6103b2dddaa6c4385df8e722d639a18029e0e93d7a5d6f826d6",
                "non_account_role_name": null,
                "role_name": null,
                "valueJson": {
                    "assetType": "oaccount",
                    "bapAccountVersion": 1,
                    "account_id": "oaccount~802bf8da5579c6103b2dddaa6c4385df8e722d639a18029e0e93d7a5d6f826d6",
                    "user_id": "user1_fi1",
                    "org_id": "FI1",
                    "token_type": "fungible",
                    "token_id": "USD",
                    "token_name": "cbdc",
                    "balance": 5,
                    "onhold_balance": 0,
                    "onhold_burn_balance": 0,
                    "application_groups": [
                        "Org_Users"
                    ],
                    "max_daily_amount": 10000,
                    "daily_amount": 0,
                    "max_daily_transactions": 1000,
                    "daily_transactions": 0,
                    "current_date": "2024-11-20T00:00:00.000Z"
                }
            }
        ],
        "encode": "JSON"
    }
}
Exemplo de Valor de Retorno (Administrador da Organização, Auditor da Organização):
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "key": "oaccount~802bf8da5579c6103b2dddaa6c4385df8e722d639a18029e0e93d7a5d6f826d6",
              "non_account_role_name": null,
              "role_name": null,
              "valueJson": {
                  "account_id": "oaccount~802bf8da5579c6103b2dddaa6c4385df8e722d639a18029e0e93d7a5d6f826d6",
                  "org_id": "FI1",
                  "user_id": "user1_fi1",
                  "token_id": "USD",
                  "max_daily_amount": 10000,
                  "max_daily_transactions": 1000
              }
          }
      ],
      "encode": "JSON"
  }
}
Exemplo de Valor de Retorno (todos os outros usuários):
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "key": "oaccount~802bf8da5579c6103b2dddaa6c4385df8e722d639a18029e0e93d7a5d6f826d6",
              "non_account_role_name": null,
              "role_name": null,
              "valueJson": {
                  "account_id": "oaccount~802bf8da5579c6103b2dddaa6c4385df8e722d639a18029e0e93d7a5d6f826d6",
                  "org_id": "FI1",
                  "user_id": "user1_fi1",
                  "token_id": "USD"
              }
          }
      ],
      "encode": "JSON"
  }
}
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 um usuário com a atribuição de gravador.
public async getBurnQuantity(token_id: string)
Parâmetros:
  • token_id: string – O ID do token.
Exemplo de valor de retorno:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": {
          "burnt_quantity": 31
      },
      "encode": "JSON"
  }
}
getActionHistory
Este método recupera o histórico de aprovações ou rejeições feitas pelo chamador para operações de menta, 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).
public async getActionHistory(token_id: string)
Parâmetros:
  • token_id: string – O ID do token.
Exemplo de valor de retorno:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "from_account_id": "oaccount~0d7b3f73aea28065017ce8b79c0bb19256dc0cb475a0b2a85192bd110f69535c",
              "from_org_id": "CB",
              "from_user_id": "retirer_user_cb",
              "holding_id": "ohold~cbdc~USD~eaf6",
              "holding_status": "REJECT_BURN",
              "last_updated_time": "2024-11-26T21:43:22.000Z",
              "notary_account_id": null,
              "notary_org_id": null,
              "notary_user_id": null,
              "operation_id": null,
              "quantity": 3,
              "timetoexpiration": null,
              "to_account_id": "",
              "to_org_id": null,
              "to_user_id": null,
              "token_id": "USD",
              "token_name": null
          },
          {
              "from_account_id": "oaccount~0d7b3f73aea28065017ce8b79c0bb19256dc0cb475a0b2a85192bd110f69535c",
              "from_org_id": "CB",
              "from_user_id": "retirer_user_cb",
              "holding_id": "ohold~cbdc~USD~0031",
              "holding_status": "REJECT_BURN",
              "last_updated_time": "2024-11-26T21:43:15.000Z",
              "notary_account_id": null,
              "notary_org_id": null,
              "notary_user_id": null,
              "operation_id": null,
              "quantity": 2,
              "timetoexpiration": null,
              "to_account_id": "",
              "to_org_id": null,
              "to_user_id": null,
              "token_id": "USD",
              "token_name": null
          }
      ],
      "encode": "JSON"
  }
}
getPendingIssuance
Este método recupera todas as transações de emissão (transferência) pendentes nas quais 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 um Token Admin ou Token Auditor do chaincode, um Org Admin ou Org Auditor da organização especificada ou o Notary.
public async getPendingIssuance(token_id: string)
Parâmetros:
  • token_id: string – O ID do token.
Exemplo de valor de retorno:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "asset_type": "ONHOLD",
              "category": "category value",
              "from_account_id": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
              "from_org_id": "CB",
              "from_user_id": "creator_user_cb",
              "holding_id": "ohold~cbdc~USD~8e314",
              "notary_account_id": "oaccount~2eb5f8a9bc561f8f41a4ea3be9511958cc6684ef14f2337ca396efc301b627d8",
              "notary_org_id": "CB",
              "notary_user_id": "manager_user_cb",
              "operation_id": "8e314",
              "quantity": 10,
              "timetoexpiration": "0",
              "to_account_id": "oaccount~44b844deccc6c314e14b8b9b95b51db5c8de499dbdbd3def2a44ba54c899c142",
              "to_org_id": "FI1",
              "to_user_id": "officer_user1_fi1",
              "token_id": "USD",
              "token_name": "cbdc"
          },
          {
              "asset_type": "ONHOLD",
              "category": "category value",
              "from_account_id": "oaccount~51e676d7182a02ea7418ef58a6d54ecfe3858ef40b4ffb3d859b320da3921594",
              "from_org_id": "CB",
              "from_user_id": "issuer_user_cb",
              "holding_id": "ohold~cbdc~USD~8e315",
              "notary_account_id": "oaccount~2eb5f8a9bc561f8f41a4ea3be9511958cc6684ef14f2337ca396efc301b627d8",
              "notary_org_id": "CB",
              "notary_user_id": "manager_user_cb",
              "operation_id": "8e315",
              "quantity": 10,
              "timetoexpiration": "0",
              "to_account_id": "oaccount~44b844deccc6c314e14b8b9b95b51db5c8de499dbdbd3def2a44ba54c899c142",
              "to_org_id": "FI1",
              "to_user_id": "officer_user1_fi1",
              "token_id": "USD",
              "token_name": "cbdc"
          }
      ],
      "encode": "JSON"
  }
}
getPendingRequest
Este método recupera todas as solicitações pendentes de um tipo especificado em que o chamador é atribuído como aprovador. Esse método só pode ser chamado por um Token Admin ou Token Auditor do chaincode, um Org Admin ou Org Auditor da organização especificada ou o Notary.
public async getPendingRequest(token_id: string, request_type: string)
Parâmetros:
  • token_id: string – O ID do token.
  • request_type: string – O tipo da transação. Por exemplo, mint ou burn.
Exemplo de valor de retorno:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "valueJson": {
                  "assetType": "ohold",
                  "holding_id": "ohold~cbdc~USD~op123",
                  "operation_id": "op123",
                  "token_id": "USD",
                  "token_name": "cbdc",
                  "operation_type": "mint",
                  "status": "pending",
                  "from_account_id": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
                  "to_account_id": "",
                  "notary_account_id": "oaccount~2eb5f8a9bc561f8f41a4ea3be9511958cc6684ef14f2337ca396efc301b627d8",
                  "quantity": 10,
                  "time_to_expiration": "0",
                  "category": "category value",
                  "description": "description value"
              }
          }
      ],
      "encode": "JSON"
  }
}
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 da conta.
public async getTotalBalanceByCallerOrgId()
Parâmetros:
  • token_id: string – O ID do token.
Exemplo de valor de retorno:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "totalBalance": 704
          }
      ],
      "encode": "JSON"
  }
}
getTransactionWithBlockNumber
Este método retorna os detalhes da transação para o ID de transação especificado.
public async 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:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "blockNo": 82,
              "key": "otransaction~24f391919a8837d654beaa7346148ea8b2b9704624aef482ce68078c485f5b1b",
              "metadata": null,
              "txnNo": 0,
              "value": null,
              "valueJson": {
                  "assetType": "otransaction",
                  "transaction_id": "otransaction~24f391919a8837d654beaa7346148ea8b2b9704624aef482ce68078c485f5b1b",
                  "token_id": "USD",
                  "from_account_id": "",
                  "from_account_balance": 0,
                  "from_account_onhold_balance": 0,
                  "to_account_id": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
                  "to_account_balance": 100,
                  "to_account_onhold_balance": 0,
                  "transaction_type": "REQUEST_MINT",
                  "amount": 200,
                  "timestamp": "2024-11-20T06:48:42.000Z",
                  "number_of_sub_transactions": 0,
                  "holding_id": "",
                  "sub_transaction": "false",
                  "description": ""
              }
          }
      ],
      "encode": "JSON"
  }
}

A API a seguir foi modificada para o modelo CBDC de atacado.

createAccount
Esse método cria uma conta para um usuário e token especificados. Uma conta deve ser criada para qualquer usuário que terá tokens a qualquer momento. As contas rastreiam saldos, saldos em retenção e histórico de transações. Um ID de conta é formado pela concatenação do tipo de ativo e do ID do token e, em seguida, pela criação de um hash SHA-256 sobre uma concatenação do ID da organização e do ID do usuário. Este método pode ser chamado somente por um Token Admin do chaincode.
public async createAccount(org_id: string, user_id: string, token_type: string, application_groups: string[], daily_limits?: DailyLimits)
Parâmetros:
  • orgId – 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 (-).
  • userId – O nome do usuário ou o ID do 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 (-).
  • tokenType: TokenType – 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 é o valor máximo 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.
  • endorsers: string[] – Um array dos pares (por exemplo, peer1, peer2) que deve endossar a transação.
Exemplo de valor de retorno:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "453821c7ffd477987ef8ccbd836b893969531ab768098cd4a99e3b89cd38a391",
        "payload": {
            "bapAccountVersion": 0,
            "assetType": "oaccount",
            "account_id": "oaccount~28ac774001f374064029d51af4fb67e26ea1ea9ef62828b7a72dbf3beb8efd8d",
            "user_id": "admin_user_cb",
            "org_id": "CB",
            "token_type": "fungible",
            "token_id": "",
            "token_name": "",
            "balance": 0,
            "onhold_balance": 0,
            "onhold_burn_balance": 0,
            "application_groups": [
                "System_Admins"
            ],
            "max_daily_amount": 10000,
            "daily_amount": 0,
            "max_daily_transactions": 100,
            "daily_transactions": 0,
            "current_date": "2024-12-09T00:00:00.000Z"
        },
        "encode": "JSON",
        "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009",
        "blockNumber": 188
    }
}

Métodos Go para Atacado CBDC

O chaincode CBDC de atacado inclui todos os métodos disponíveis no chaincode NFT genérico do Token Taxonomy Framework. Os seguintes métodos adicionais que são específicos para o cenário CBDC de atacado estão disponíveis.
SetApplicationGroups
Esse método define o parâmetro application_groups nos detalhes da conta dos grupos de aplicativos especificados na API. Esse método só pode ser chamado por um Token Admin ou Org Admin da organização especificada.
func (t *Controller) SetApplicationGroups(token_id string, org_id string, user_id string, application_groups []string) (interface{}, error)
Parâmetros:
  • org_id: string – O ID do prestador de serviço de associação (MSP) do usuário na organização atual.
  • user_id: string – O nome do usuário ou o ID do e-mail do usuário.
  • token_id: string – O ID do token.
  • 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.
Exemplo de valor de retorno:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "261c3da4bb6f1724bc8f674c7b001a9b986bc9900d0508363039424926b143ed",
        "payload": {
            "AssetType": "oaccount",
            "AccountId": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe",
            "UserId": "admin_user_cb",
            "OrgId": "CB",
            "TokenType": "fungible",
            "TokenId": "",
            "TokenName": "",
            "Balance": 0,
            "BalanceOnHold": 0,
            "OnHoldBurnBalance": 0,
            "BapAccountVersion": 0,
            "ApplicationGroups": [
                "System_Admins"
            ],
            "MaxDailyAmount": 10000,
            "DailyAmount": 0,
            "MaxDailyTransactions": 100,
            "DailyTransactions": 0,
            "CurrentDate": "2024-12-09"
        },
        "encode": "JSON",
        "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009",
        "blockNumber": 246
    }
}
GetAllActiveAccounts
Esse método retorna todas as contas ativas associadas ao ID do token especificado. Qualquer usuário pode chamar esse método.
func (t *Controller) GetAllActiveAccounts(token_id string) (interface{}, error)
Parâmetros:
  • token_id: string – O ID do token.
Retorna:
  • Em caso de êxito, uma mensagem que inclui detalhes do usuário. A saída varia com base na atribuição do usuário, conforme mostrado nos exemplos a seguir.
Exemplo de valor de retorno (Administrador de token, Auditor de token):
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": [
            {
                "NonAccountRoleName": "[\"token_admin\"]",
                "RoleName": null,
                "key": "oaccount~8db15b42910eeec401e1bf22c69dfdd11c820ecc26539ea03a3426fa25cb8c28",
                "valueJson": {
                    "AccountId": "oaccount~8db15b42910eeec401e1bf22c69dfdd11c820ecc26539ea03a3426fa25cb8c28",
                    "ApplicationGroups": [
                        "System_Issuers"
                    ],
                    "AssetType": "oaccount",
                    "Balance": 0,
                    "BalanceOnHold": 0,
                    "OnHoldBurnBalance": 0,
                    "BapAccountVersion": 0,
                    "CurrentDate": "2024-11-21",
                    "DailyAmount": 0,
                    "DailyTransactions": 0,
                    "MaxDailyAmount": 10000,
                    "MaxDailyTransactions": 100,
                    "OrgId": "CB",
                    "TokenId": "USD",
                    "TokenName": "cbdc",
                    "TokenType": "fungible",
                    "UserId": "admin_user_cb"
                }
            }
        ],
        "encode": "JSON"
    }
}
Exemplo de Valor de Retorno (Administrador da Organização, Auditor da Organização):
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "NonAccountRoleName": "[\"token_auditor\"]",
              "RoleName": null,
              "key": "oaccount~bd6262ffdf582675dd9b2506c1d5488864feef0b9e297a9a3322b7c683ad6214",
              "valueJson": {
                  "AccountId": "oaccount~bd6262ffdf582675dd9b2506c1d5488864feef0b9e297a9a3322b7c683ad6214",
                  "OrgId": "CB",
                  "TokenId": "USD",
                  "UserId": "auditor_user_cb",
                  "MaxDailyAmount": 10000,
                  "MaxDailyTransactions": 100,
              }
          }
      ],
      "encode": "JSON"
  }
}
Exemplo de Valor de Retorno (todos os outros usuários):
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "NonAccountRoleName": "[\"token_admin\"]",
              "RoleName": null,
              "key": "oaccount~8db15b42910eeec401e1bf22c69dfdd11c820ecc26539ea03a3426fa25cb8c28",
              "valueJson": {
                  "AccountId": "oaccount~8db15b42910eeec401e1bf22c69dfdd11c820ecc26539ea03a3426fa25cb8c28",
                  "OrgId": "CB",
                  "TokenId": "USD",
                  "UserId": "admin_user_cb"
              }
          }
      ],
      "encode": "JSON"
  }
}
GetAllSuspendedAccounts
Esse método retorna todas as contas suspensas associadas ao ID do token especificado. Qualquer usuário pode chamar esse método.
public async getAllSuspendedAccounts(token_id: string)
Parâmetros:
  • token_id: string – O ID do token.
Retorna:
  • Em caso de êxito, uma mensagem que inclui detalhes do usuário. A saída varia com base na atribuição do usuário, conforme mostrado nos exemplos a seguir.
Exemplo de valor de retorno (Administrador de token, Auditor de token):
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "NonAccountRoleName": null,
              "RoleName": "minter",
              "key": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
              "valueJson": {
                  "AccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
                  "ApplicationGroups": [
                      "System_Admins"
                  ],
                  "AssetType": "oaccount",
                  "Balance": 140,
                  "BalanceOnHold": 0,
                  "OnHoldBurnBalance": 0,
                  "BapAccountVersion": 8,
                  "CurrentDate": "2024-11-21",
                  "DailyAmount": 70,
                  "DailyTransactions": 3,
                  "MaxDailyAmount": 10000,
                  "MaxDailyTransactions": 100,
                  "OrgId": "CB",
                  "TokenId": "USD",
                  "TokenName": "cbdc",
                  "TokenType": "fungible",
                  "UserId": "creator_user_cb"
              }
          }
      ],
      "encode": "JSON"
  }
}
Exemplo de Valor de Retorno (Administrador da Organização, Auditor da Organização):
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "NonAccountRoleName": null,
              "RoleName": "minter",
              "key": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
              "valueJson": {
                  "AccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
                  "OrgId": "CB",
                  "TokenId": "USD",
                  "UserId": "creator_user_cb",
                  "MaxDailyAmount": 10000,
                  "MaxDailyTransactions": 100,
              }
          }
      ],
      "encode": "JSON"
  }
}
Exemplo de Valor de Retorno (todos os outros usuários):
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": [
            {
                "NonAccountRoleName": null,
                "RoleName": "minter",
                "key": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
                "valueJson": {
                    "AccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
                    "OrgId": "CB",
                    "TokenId": "USD",
                    "UserId": "creator_user_cb"
                }
            }
        ],
        "encode": "JSON"
    }
}
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 um usuário com a atribuição de gravador.
func (t *Controller) GetBurnQuantity(token_id string) (interface{}, error)
Parâmetros:
  • token_id: string – O ID do token.
Exemplo de valor de retorno:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": {
          "BurnQuantity": 10
      },
      "encode": "JSON"
  }
}
GetActionHistory
Este método recupera o histórico de aprovações ou rejeições feitas pelo chamador para operações de menta, 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).
func (t *Controller) GetActionHistory(token_id string) (interface{}, error)
Parâmetros:
  • token_id: string – O ID do token.
Exemplo de valor de retorno:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "FromAccountId": "oaccount~0d7b3f73aea28065017ce8b79c0bb19256dc0cb475a0b2a85192bd110f69535c",
              "FromOrgId": "CB",
              "FromUserId": "retirer_user_cb",
              "HoldingId": "ohold~cbdc~USD~6e1223",
              "HoldingStatus": "REJECT_BURN",
              "LastUpdatedTime": "2024-11-21T22:08:26Z",
              "NotaryAccountId": null,
              "NotaryOrgId": null,
              "NotaryUserId": null,
              "OperationId": null,
              "Quantity": 5,
              "TimeToExpiration": null,
              "ToAccountId": "",
              "ToOrgId": null,
              "ToUserId": null,
              "TokenId": "USD",
              "TokenName": null
          },
          {
              "FromAccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
              "FromOrgId": "CB",
              "FromUserId": "creator_user_cb",
              "HoldingId": "ohold~cbdc~USD~hold2",
              "HoldingStatus": "RELEASEHOLD",
              "LastUpdatedTime": "2024-11-21T21:54:33Z",
              "NotaryAccountId": null,
              "NotaryOrgId": null,
              "NotaryUserId": null,
              "OperationId": null,
              "Quantity": 10,
              "TimeToExpiration": null,
              "ToAccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
              "ToOrgId": "CB",
              "ToUserId": "creator_user_cb",
              "TokenId": "USD",
              "TokenName": null
          }
      ],
      "encode": "JSON"
  }
}
GetPendingIssuance
Este método recupera todas as transações de emissão (transferência) pendentes nas quais 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 um Token Admin ou Token Auditor do chaincode, um Org Admin ou Org Auditor da organização especificada ou o Notary.
func (t *Controller) GetPendingIssuance(token_id string) (interface{}, error)
Parâmetros:
  • token_id: string – O ID do token.
Exemplo de valor de retorno:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "AssetType": "ONHOLD",
              "FromAccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
              "FromOrgId": "CB",
              "FromUserId": "creator_user_cb",
              "HoldingId": "ohold~cbdc~USD~h123",
              "NotaryAccountId": "oaccount~2eb5f8a9bc561f8f41a4ea3be9511958cc6684ef14f2337ca396efc301b627d8",
              "NotaryOrgId": "CB",
              "NotaryUserId": "manager_user_cb",
              "OperationId": "h123",
              "Quantity": 10,
              "TimeToExpiration": "0",
              "ToAccountId": "oaccount~51e676d7182a02ea7418ef58a6d54ecfe3858ef40b4ffb3d859b320da3921594",
              "ToOrgId": "CB",
              "ToUserId": "issuer_user_cb",
              "TokenId": "USD",
              "TokenName": "cbdc"
          }
      ],
      "encode": "JSON"
  }
}
GetPendingRequest
Este método recupera todas as solicitações pendentes de um tipo especificado em que o chamador é atribuído como aprovador. Esse método só pode ser chamado por um Token Admin ou Token Auditor do chaincode, um Org Admin ou Org Auditor da organização especificada ou o Notary.
func (t *Controller) GetPendingRequest(token_id string, request_type string) (interface{}, error)
Parâmetros:
  • token_id: string – O ID do token.
  • request_type: string – O tipo da transação. Por exemplo, mint ou burn.
Exemplo de valor de retorno:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "valueJson": {
                  "AssetType": "ohold",
                  "Category": "Category value",
                  "Description": "Description value",
                  "FromAccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
                  "HoldingId": "ohold~cbdc~USD~8e1232",
                  "NotaryAccountId": "oaccount~2eb5f8a9bc561f8f41a4ea3be9511958cc6684ef14f2337ca396efc301b627d8",
                  "OperationId": "8e1232",
                  "OperationType": "mint",
                  "Quantity": 100,
                  "Status": "pending",
                  "TimeToExpiration": "0",
                  "ToAccountId": "",
                  "TokenId": "USD",
                  "TokenName": "cbdc"
              }
          }
      ],
      "encode": "JSON"
  }
}
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 da conta.
func (t *Controller) GetTotalBalanceByCallerOrgId() (interface{}, error)
Parâmetros:
  • token_id: string – O ID do token.
Exemplo de valor de retorno:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "TotalBalance": 180
          }
      ],
      "encode": "JSON"
  }
}
GetTransactionWithBlockNumber
Este método retorna os detalhes da transação para o ID de transação especificado.
func (t *Controller) 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:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "blockNo": 152,
              "key": "otransaction~eee2de20b4b042884da83e3b7b85d8532ad56f26a546ee25d227acce33375c1c",
              "metadata": null,
              "txnNo": 0,
              "value": null,
              "valueJson": {
                  "Amount": 10,
                  "AssetType": "otransaction",
                  "Category": "Category value",
                  "Description": "",
                  "FromAccountBalance": 130,
                  "FromAccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
                  "FromAccountOnHoldBalance": 10,
                  "HoldingId": "ohold~cbdc~USD~hold1",
                  "NumberOfSubTransactions": 0,
                  "SubTransaction": "false",
                  "SubTransactionType": "",
                  "Timestamp": "2024-11-21T20:43:59Z",
                  "ToAccountBalance": 10,
                  "ToAccountId": "oaccount~51e676d7182a02ea7418ef58a6d54ecfe3858ef40b4ffb3d859b320da3921594",
                  "ToAccountOnHoldBalance": 0,
                  "TokenId": "USD",
                  "TransactionId": "otransaction~eee2de20b4b042884da83e3b7b85d8532ad56f26a546ee25d227acce33375c1c",
                  "TransactionType": "EXECUTEHOLD"
              }
          }
      ],
      "encode": "JSON"
  }
}

A API a seguir foi modificada para o modelo CBDC de atacado.

CreateAccount
Esse método cria uma conta para um usuário e token especificados. Uma conta deve ser criada para qualquer usuário que terá tokens a qualquer momento. As contas rastreiam saldos, saldos em retenção e histórico de transações. Um ID de conta é formado pela concatenação do tipo de ativo e do ID do token e, em seguida, pela criação de um hash SHA-256 sobre uma concatenação do ID da organização e do ID do usuário. Este método pode ser chamado somente por um Token Admin do chaincode.
func (t *Controller) CreateAccount(org_id string, user_id string, token_type string, application_groups []string, daily_limits ...account.AccountDailyLimits) (interface{}, error)
Parâmetros:
  • orgId – 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 (-).
  • userId – O nome do usuário ou o ID do 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 (-).
  • tokenType: TokenType – 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 é o valor máximo 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.
  • endorsers: string[] – Um array dos pares (por exemplo, peer1, peer2) que deve endossar a transação.
Exemplo de valor de retorno:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "261c3da4bb6f1724bc8f674c7b001a9b986bc9900d0508363039424926b143ed",
        "payload": {
            "AssetType": "oaccount",
            "AccountId": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe",
            "UserId": "admin_user_cb",
            "OrgId": "CB",
            "TokenType": "fungible",
            "TokenId": "",
            "TokenName": "",
            "Balance": 0,
            "BalanceOnHold": 0,
            "OnHoldBurnBalance": 0,
            "BapAccountVersion": 0,
            "ApplicationGroups": [
                "System_Admins"
            ],
            "MaxDailyAmount": 10000,
            "DailyAmount": 0,
            "MaxDailyTransactions": 100,
            "DailyTransactions": 0,
            "CurrentDate": "2024-12-09"
        },
        "encode": "JSON",
        "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009",
        "blockNumber": 246
    }
}

TypeScript Métodos SDK para CBDC Atacadista

setApplicationGroups
Esse método define o parâmetro application_groups nos detalhes da conta dos grupos de aplicativos especificados na API.
this.Ctx.Account.setApplicationGroups (account_id, application_groups)
Parâmetros:
  • account_id: string – O ID da conta.
  • 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.
Exemplo de valor de retorno:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "453821c7ffd477987ef8ccbd836b893969531ab768098cd4a99e3b89cd38a391",
        "payload": {
            "bapAccountVersion": 0,
            "assetType": "oaccount",
            "account_id": "oaccount~28ac774001f374064029d51af4fb67e26ea1ea9ef62828b7a72dbf3beb8efd8d",
            "user_id": "admin_user_cb",
            "org_id": "CB",
            "token_type": "fungible",
            "token_id": "",
            "token_name": "",
            "balance": 0,
            "onhold_balance": 0,
            "onhold_burn_balance": 0,
            "application_groups": [
                "System_Admins"
            ],
            "max_daily_amount": 10000,
            "daily_amount": 0,
            "max_daily_transactions": 100,
            "daily_transactions": 0,
            "current_date": "2024-12-09T00:00:00.000Z"
        },
        "encode": "JSON",
        "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009",
        "blockNumber": 188
    }
}
getAllActiveAccounts
Esse método retorna todas as contas ativas associadas ao ID do token especificado.
this.Ctx.CBDCToken.getAllActiveAccounts(token_id)
Parâmetros:
  • token_id: string – O ID do token.
Retorna:
  • Em caso de êxito, uma mensagem que inclui detalhes do usuário. A saída varia com base na atribuição do usuário, conforme mostrado nos exemplos a seguir.
Exemplo de valor de retorno (Administrador de token, Auditor de token):
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": [
            {
                "key": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe",
                "non_account_role_name": [
                    "token_admin"
                ],
                "role_name": null,
                "valueJson": {
                    "bapAccountVersion": 0,
                    "assetType": "oaccount",
                    "account_id": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe",
                    "user_id": "admin_user_cb",
                    "org_id": "CB",
                    "token_type": "fungible",
                    "token_id": "USD",
                    "token_name": "cbdc",
                    "balance": 0,
                    "onhold_balance": 0,
                    "onhold_burn_balance": 0,
                    "application_groups": [
                        "System_Admins"
                    ],
                    "max_daily_amount": 10000,
                    "daily_amount": 0,
                    "max_daily_transactions": 1000,
                    "daily_transactions": 0,
                    "current_date": "2024-11-20T00:00:00.000Z"
                }
            }
        ],
        "encode": "JSON"
    }
}
Exemplo de Valor de Retorno (Administrador da Organização, Auditor da Organização):
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "key": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe",
              "non_account_role_name": [
                  "token_admin"
              ],
              "role_name": null,
              "valueJson": {
                  "account_id": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe",
                  "org_id": "CB",
                  "user_id": "admin_user_cb",
                  "token_id": "USD",
                  "max_daily_amount": 10000,
                  "max_daily_transactions": 1000
              }
          }
      ],
      "encode": "JSON"
  }
}
Exemplo de Valor de Retorno (todos os outros usuários):
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "key": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe",
              "non_account_role_name": [
                  "token_admin"
              ],
              "role_name": null,
              "valueJson": {
                  "account_id": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe",
                  "org_id": "CB",
                  "user_id": "admin_user_cb",
                  "token_id": "USD",
                  "max_daily_amount": 10000,
                  "max_daily_transactions": 1000
              }
          }
      ],
      "encode": "JSON"
  }
}
getAllSuspendedAccounts
Esse método retorna todas as contas suspensas associadas ao ID do token especificado.
this.Ctx.CBDCToken.getAllSuspendedAccounts(token_id)
Parâmetros:
  • token_id: string – O ID do token.
Retorna:
  • Em caso de êxito, uma mensagem que inclui detalhes do usuário. A saída varia com base na atribuição do usuário, conforme mostrado nos exemplos a seguir.
Exemplo de valor de retorno (Administrador de token, Auditor de token):
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": [
            {
                "key": "oaccount~802bf8da5579c6103b2dddaa6c4385df8e722d639a18029e0e93d7a5d6f826d6",
                "non_account_role_name": null,
                "role_name": null,
                "valueJson": {
                    "assetType": "oaccount",
                    "bapAccountVersion": 1,
                    "account_id": "oaccount~802bf8da5579c6103b2dddaa6c4385df8e722d639a18029e0e93d7a5d6f826d6",
                    "user_id": "user1_fi1",
                    "org_id": "FI1",
                    "token_type": "fungible",
                    "token_id": "USD",
                    "token_name": "cbdc",
                    "balance": 5,
                    "onhold_balance": 0,
                    "onhold_burn_balance": 0,
                    "application_groups": [
                        "Org_Users"
                    ],
                    "max_daily_amount": 10000,
                    "daily_amount": 0,
                    "max_daily_transactions": 1000,
                    "daily_transactions": 0,
                    "current_date": "2024-11-20T00:00:00.000Z"
                }
            }
        ],
        "encode": "JSON"
    }
}
Exemplo de Valor de Retorno (Administrador da Organização, Auditor da Organização):
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "key": "oaccount~802bf8da5579c6103b2dddaa6c4385df8e722d639a18029e0e93d7a5d6f826d6",
              "non_account_role_name": null,
              "role_name": null,
              "valueJson": {
                  "account_id": "oaccount~802bf8da5579c6103b2dddaa6c4385df8e722d639a18029e0e93d7a5d6f826d6",
                  "org_id": "FI1",
                  "user_id": "user1_fi1",
                  "token_id": "USD",
                  "max_daily_amount": 10000,
                  "max_daily_transactions": 1000
              }
          }
      ],
      "encode": "JSON"
  }
}
Exemplo de Valor de Retorno (todos os outros usuários):
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "key": "oaccount~802bf8da5579c6103b2dddaa6c4385df8e722d639a18029e0e93d7a5d6f826d6",
              "non_account_role_name": null,
              "role_name": null,
              "valueJson": {
                  "account_id": "oaccount~802bf8da5579c6103b2dddaa6c4385df8e722d639a18029e0e93d7a5d6f826d6",
                  "org_id": "FI1",
                  "user_id": "user1_fi1",
                  "token_id": "USD"
              }
          }
      ],
      "encode": "JSON"
  }
}
getBurnQuantity
Este método retorna a quantidade total de tokens gravados para uma organização especificada.
this.Ctx.CBDCToken.getBurnQuantity(token_id)
Parâmetros:
  • token_id: string – O ID do token.
Exemplo de valor de retorno:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": {
          "burnt_quantity": 31
      },
      "encode": "JSON"
  }
}
getActionHistory
Este método recupera o histórico de aprovações ou rejeições feitas pelo chamador para operações de menta, 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).
this.Ctx.CBDCToken.getActionHistory(token_id)
Parâmetros:
  • token_id: string – O ID do token.
Exemplo de valor de retorno:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "from_account_id": "oaccount~0d7b3f73aea28065017ce8b79c0bb19256dc0cb475a0b2a85192bd110f69535c",
              "from_org_id": "CB",
              "from_user_id": "retirer_user_cb",
              "holding_id": "ohold~cbdc~USD~eaf6",
              "holding_status": "REJECT_BURN",
              "last_updated_time": "2024-11-26T21:43:22.000Z",
              "notary_account_id": null,
              "notary_org_id": null,
              "notary_user_id": null,
              "operation_id": null,
              "quantity": 3,
              "timetoexpiration": null,
              "to_account_id": "",
              "to_org_id": null,
              "to_user_id": null,
              "token_id": "USD",
              "token_name": null
          },
          {
              "from_account_id": "oaccount~0d7b3f73aea28065017ce8b79c0bb19256dc0cb475a0b2a85192bd110f69535c",
              "from_org_id": "CB",
              "from_user_id": "retirer_user_cb",
              "holding_id": "ohold~cbdc~USD~0031",
              "holding_status": "REJECT_BURN",
              "last_updated_time": "2024-11-26T21:43:15.000Z",
              "notary_account_id": null,
              "notary_org_id": null,
              "notary_user_id": null,
              "operation_id": null,
              "quantity": 2,
              "timetoexpiration": null,
              "to_account_id": "",
              "to_org_id": null,
              "to_user_id": null,
              "token_id": "USD",
              "token_name": null
          }
      ],
      "encode": "JSON"
  }
}
getPendingIssuance
Este método recupera todas as transações de emissão (transferência) pendentes nas quais 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).
this.Ctx.CBDCToken.getPendingIssuance(token_id)
Parâmetros:
  • token_id: string – O ID do token.
Exemplo de valor de retorno:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "asset_type": "ONHOLD",
              "category": "category value",
              "from_account_id": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
              "from_org_id": "CB",
              "from_user_id": "creator_user_cb",
              "holding_id": "ohold~cbdc~USD~8e314",
              "notary_account_id": "oaccount~2eb5f8a9bc561f8f41a4ea3be9511958cc6684ef14f2337ca396efc301b627d8",
              "notary_org_id": "CB",
              "notary_user_id": "manager_user_cb",
              "operation_id": "8e314",
              "quantity": 10,
              "timetoexpiration": "0",
              "to_account_id": "oaccount~44b844deccc6c314e14b8b9b95b51db5c8de499dbdbd3def2a44ba54c899c142",
              "to_org_id": "FI1",
              "to_user_id": "officer_user1_fi1",
              "token_id": "USD",
              "token_name": "cbdc"
          },
          {
              "asset_type": "ONHOLD",
              "category": "category value",
              "from_account_id": "oaccount~51e676d7182a02ea7418ef58a6d54ecfe3858ef40b4ffb3d859b320da3921594",
              "from_org_id": "CB",
              "from_user_id": "issuer_user_cb",
              "holding_id": "ohold~cbdc~USD~8e315",
              "notary_account_id": "oaccount~2eb5f8a9bc561f8f41a4ea3be9511958cc6684ef14f2337ca396efc301b627d8",
              "notary_org_id": "CB",
              "notary_user_id": "manager_user_cb",
              "operation_id": "8e315",
              "quantity": 10,
              "timetoexpiration": "0",
              "to_account_id": "oaccount~44b844deccc6c314e14b8b9b95b51db5c8de499dbdbd3def2a44ba54c899c142",
              "to_org_id": "FI1",
              "to_user_id": "officer_user1_fi1",
              "token_id": "USD",
              "token_name": "cbdc"
          }
      ],
      "encode": "JSON"
  }
}
getPendingRequest
Este método recupera todas as solicitações pendentes de um tipo especificado em que o chamador é atribuído como aprovador.
this.Ctx.CBDCToken.getPendingRequest(token_id, request_type)
Parâmetros:
  • token_id: string – O ID do token.
  • request_type: string – O tipo da transação. Por exemplo, mint ou burn.
Exemplo de valor de retorno:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "valueJson": {
                  "assetType": "ohold",
                  "holding_id": "ohold~cbdc~USD~op123",
                  "operation_id": "op123",
                  "token_id": "USD",
                  "token_name": "cbdc",
                  "operation_type": "mint",
                  "status": "pending",
                  "from_account_id": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
                  "to_account_id": "",
                  "notary_account_id": "oaccount~2eb5f8a9bc561f8f41a4ea3be9511958cc6684ef14f2337ca396efc301b627d8",
                  "quantity": 10,
                  "time_to_expiration": "0",
                  "category": "category value",
                  "description": "description value"
              }
          }
      ],
      "encode": "JSON"
  }
}
getTotalBalanceByCallerOrgId
Este método recupera o saldo total da organização do chamador.
this.Ctx.CBDCToken.getTotalBalanceByCallerOrgId()
Parâmetros:
  • token_id: string – O ID do token.
Exemplo de valor de retorno:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "totalBalance": 704
          }
      ],
      "encode": "JSON"
  }
}
getTransactionWithBlockNumber
Este método retorna os detalhes da transação para o ID de transação especificado.
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:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "blockNo": 82,
              "key": "otransaction~24f391919a8837d654beaa7346148ea8b2b9704624aef482ce68078c485f5b1b",
              "metadata": null,
              "txnNo": 0,
              "value": null,
              "valueJson": {
                  "assetType": "otransaction",
                  "transaction_id": "otransaction~24f391919a8837d654beaa7346148ea8b2b9704624aef482ce68078c485f5b1b",
                  "token_id": "USD",
                  "from_account_id": "",
                  "from_account_balance": 0,
                  "from_account_onhold_balance": 0,
                  "to_account_id": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
                  "to_account_balance": 100,
                  "to_account_onhold_balance": 0,
                  "transaction_type": "REQUEST_MINT",
                  "amount": 200,
                  "timestamp": "2024-11-20T06:48:42.000Z",
                  "number_of_sub_transactions": 0,
                  "holding_id": "",
                  "sub_transaction": "false",
                  "description": ""
              }
          }
      ],
      "encode": "JSON"
  }
}

O método SDK a seguir é modificado para o modelo CBDC de atacado.

createAccount
Esse método cria uma conta para um usuário e token especificados. Uma conta deve ser criada para qualquer usuário que terá tokens a qualquer momento. As contas rastreiam saldos, saldos em retenção e histórico de transações. Um ID de conta é formado pela concatenação do tipo de ativo e do ID do token e, em seguida, pela criação de um hash SHA-256 sobre uma concatenação do ID da organização e do ID do usuário.
this.Ctx.Account.createAccount(org_id, user_id, token_type, application_groups, daily_limits)
Parâmetros:
  • orgId – 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 (-).
  • userId – O nome do usuário ou o ID do 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 (-).
  • tokenType: TokenType – 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 é o valor máximo 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.
  • endorsers: string[] – Um array dos pares (por exemplo, peer1, peer2) que deve endossar a transação.
Exemplo de valor de retorno:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "453821c7ffd477987ef8ccbd836b893969531ab768098cd4a99e3b89cd38a391",
        "payload": {
            "bapAccountVersion": 0,
            "assetType": "oaccount",
            "account_id": "oaccount~28ac774001f374064029d51af4fb67e26ea1ea9ef62828b7a72dbf3beb8efd8d",
            "user_id": "admin_user_cb",
            "org_id": "CB",
            "token_type": "fungible",
            "token_id": "",
            "token_name": "",
            "balance": 0,
            "onhold_balance": 0,
            "onhold_burn_balance": 0,
            "application_groups": [
                "System_Admins"
            ],
            "max_daily_amount": 10000,
            "daily_amount": 0,
            "max_daily_transactions": 100,
            "daily_transactions": 0,
            "current_date": "2024-12-09T00:00:00.000Z"
        },
        "encode": "JSON",
        "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009",
        "blockNumber": 188
    }
}

Métodos Go SDK para Atacado CBDC

SetApplicationGroups
Esse método define o parâmetro application_groups nos detalhes da conta dos grupos de aplicativos especificados na API.
t.Ctx.CbdcToken.SetApplicationGroups(account_id, application_groups)
Parâmetros:
  • account_id: string – O ID da conta.
  • 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.
Exemplo de valor de retorno:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "261c3da4bb6f1724bc8f674c7b001a9b986bc9900d0508363039424926b143ed",
        "payload": {
            "AssetType": "oaccount",
            "AccountId": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe",
            "UserId": "admin_user_cb",
            "OrgId": "CB",
            "TokenType": "fungible",
            "TokenId": "",
            "TokenName": "",
            "Balance": 0,
            "BalanceOnHold": 0,
            "OnHoldBurnBalance": 0,
            "BapAccountVersion": 0,
            "ApplicationGroups": [
                "System_Admins"
            ],
            "MaxDailyAmount": 10000,
            "DailyAmount": 0,
            "MaxDailyTransactions": 100,
            "DailyTransactions": 0,
            "CurrentDate": "2024-12-09"
        },
        "encode": "JSON",
        "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009",
        "blockNumber": 246
    }
}
GetAllActiveAccounts
Esse método retorna todas as contas ativas associadas ao ID do token especificado.
t.Ctx.CbdcToken.GetAllActiveAccounts(token_id)
Parâmetros:
  • token_id: string – O ID do token.
Retorna:
  • Em caso de êxito, uma mensagem que inclui detalhes do usuário. A saída varia com base na atribuição do usuário, conforme mostrado nos exemplos a seguir.
Exemplo de valor de retorno (Administrador de token, Auditor de token):
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": [
            {
                "NonAccountRoleName": "[\"token_admin\"]",
                "RoleName": null,
                "key": "oaccount~8db15b42910eeec401e1bf22c69dfdd11c820ecc26539ea03a3426fa25cb8c28",
                "valueJson": {
                    "AccountId": "oaccount~8db15b42910eeec401e1bf22c69dfdd11c820ecc26539ea03a3426fa25cb8c28",
                    "ApplicationGroups": [
                        "System_Issuers"
                    ],
                    "AssetType": "oaccount",
                    "Balance": 0,
                    "BalanceOnHold": 0,
                    "OnHoldBurnBalance": 0,
                    "BapAccountVersion": 0,
                    "CurrentDate": "2024-11-21",
                    "DailyAmount": 0,
                    "DailyTransactions": 0,
                    "MaxDailyAmount": 10000,
                    "MaxDailyTransactions": 100,
                    "OrgId": "CB",
                    "TokenId": "USD",
                    "TokenName": "cbdc",
                    "TokenType": "fungible",
                    "UserId": "admin_user_cb"
                }
            }
        ],
        "encode": "JSON"
    }
}
Exemplo de Valor de Retorno (Administrador da Organização, Auditor da Organização):
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "NonAccountRoleName": "[\"token_auditor\"]",
              "RoleName": null,
              "key": "oaccount~bd6262ffdf582675dd9b2506c1d5488864feef0b9e297a9a3322b7c683ad6214",
              "valueJson": {
                  "AccountId": "oaccount~bd6262ffdf582675dd9b2506c1d5488864feef0b9e297a9a3322b7c683ad6214",
                  "OrgId": "CB",
                  "TokenId": "USD",
                  "UserId": "auditor_user_cb",
                  "MaxDailyAmount": 10000,
                  "MaxDailyTransactions": 100,
              }
          }
      ],
      "encode": "JSON"
  }
}
Exemplo de Valor de Retorno (todos os outros usuários):
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "NonAccountRoleName": "[\"token_admin\"]",
              "RoleName": null,
              "key": "oaccount~8db15b42910eeec401e1bf22c69dfdd11c820ecc26539ea03a3426fa25cb8c28",
              "valueJson": {
                  "AccountId": "oaccount~8db15b42910eeec401e1bf22c69dfdd11c820ecc26539ea03a3426fa25cb8c28",
                  "OrgId": "CB",
                  "TokenId": "USD",
                  "UserId": "admin_user_cb"
              }
          }
      ],
      "encode": "JSON"
  }
}
GetAllSuspendedAccounts
Esse método retorna todas as contas suspensas associadas ao ID do token especificado.
t.Ctx.CbdcToken.GetAllSuspendedAccounts(token_id)
Parâmetros:
  • token_id: string – O ID do token.
Retorna:
  • Em caso de êxito, uma mensagem que inclui detalhes do usuário. A saída varia com base na atribuição do usuário, conforme mostrado nos exemplos a seguir.
Exemplo de valor de retorno (Administrador de token, Auditor de token):
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "NonAccountRoleName": null,
              "RoleName": "minter",
              "key": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
              "valueJson": {
                  "AccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
                  "ApplicationGroups": [
                      "System_Admins"
                  ],
                  "AssetType": "oaccount",
                  "Balance": 140,
                  "BalanceOnHold": 0,
                  "OnHoldBurnBalance": 0,
                  "BapAccountVersion": 8,
                  "CurrentDate": "2024-11-21",
                  "DailyAmount": 70,
                  "DailyTransactions": 3,
                  "MaxDailyAmount": 10000,
                  "MaxDailyTransactions": 100,
                  "OrgId": "CB",
                  "TokenId": "USD",
                  "TokenName": "cbdc",
                  "TokenType": "fungible",
                  "UserId": "creator_user_cb"
              }
          }
      ],
      "encode": "JSON"
  }
}
Exemplo de Valor de Retorno (Administrador da Organização, Auditor da Organização):
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "NonAccountRoleName": null,
              "RoleName": "minter",
              "key": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
              "valueJson": {
                  "AccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
                  "OrgId": "CB",
                  "TokenId": "USD",
                  "UserId": "creator_user_cb",
                  "MaxDailyAmount": 10000,
                  "MaxDailyTransactions": 100,
              }
          }
      ],
      "encode": "JSON"
  }
}
Exemplo de Valor de Retorno (todos os outros usuários):
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": [
            {
                "NonAccountRoleName": null,
                "RoleName": "minter",
                "key": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
                "valueJson": {
                    "AccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
                    "OrgId": "CB",
                    "TokenId": "USD",
                    "UserId": "creator_user_cb"
                }
            }
        ],
        "encode": "JSON"
    }
}
GetBurnQuantity
Este método retorna a quantidade total de tokens gravados para uma organização especificada.
t.Ctx.CbdcToken.GetBurnQuantity(token_id)
Parâmetros:
  • token_id: string – O ID do token.
Exemplo de valor de retorno:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": {
          "BurnQuantity": 10
      },
      "encode": "JSON"
  }
}
GetActionHistory
Este método recupera o histórico de aprovações ou rejeições feitas pelo chamador para operações de menta, 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).
t.Ctx.CbdcToken.GetActionHistory(token_id)
Parâmetros:
  • token_id: string – O ID do token.
Exemplo de valor de retorno:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "FromAccountId": "oaccount~0d7b3f73aea28065017ce8b79c0bb19256dc0cb475a0b2a85192bd110f69535c",
              "FromOrgId": "CB",
              "FromUserId": "retirer_user_cb",
              "HoldingId": "ohold~cbdc~USD~6e1223",
              "HoldingStatus": "REJECT_BURN",
              "LastUpdatedTime": "2024-11-21T22:08:26Z",
              "NotaryAccountId": null,
              "NotaryOrgId": null,
              "NotaryUserId": null,
              "OperationId": null,
              "Quantity": 5,
              "TimeToExpiration": null,
              "ToAccountId": "",
              "ToOrgId": null,
              "ToUserId": null,
              "TokenId": "USD",
              "TokenName": null
          },
          {
              "FromAccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
              "FromOrgId": "CB",
              "FromUserId": "creator_user_cb",
              "HoldingId": "ohold~cbdc~USD~hold2",
              "HoldingStatus": "RELEASEHOLD",
              "LastUpdatedTime": "2024-11-21T21:54:33Z",
              "NotaryAccountId": null,
              "NotaryOrgId": null,
              "NotaryUserId": null,
              "OperationId": null,
              "Quantity": 10,
              "TimeToExpiration": null,
              "ToAccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
              "ToOrgId": "CB",
              "ToUserId": "creator_user_cb",
              "TokenId": "USD",
              "TokenName": null
          }
      ],
      "encode": "JSON"
  }
}
GetPendingIssuance
Este método recupera todas as transações de emissão (transferência) pendentes nas quais 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).
t.Ctx.CbdcToken.GetPendingIssuance(token_id)
Parâmetros:
  • token_id: string – O ID do token.
Exemplo de valor de retorno:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "AssetType": "ONHOLD",
              "FromAccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
              "FromOrgId": "CB",
              "FromUserId": "creator_user_cb",
              "HoldingId": "ohold~cbdc~USD~h123",
              "NotaryAccountId": "oaccount~2eb5f8a9bc561f8f41a4ea3be9511958cc6684ef14f2337ca396efc301b627d8",
              "NotaryOrgId": "CB",
              "NotaryUserId": "manager_user_cb",
              "OperationId": "h123",
              "Quantity": 10,
              "TimeToExpiration": "0",
              "ToAccountId": "oaccount~51e676d7182a02ea7418ef58a6d54ecfe3858ef40b4ffb3d859b320da3921594",
              "ToOrgId": "CB",
              "ToUserId": "issuer_user_cb",
              "TokenId": "USD",
              "TokenName": "cbdc"
          }
      ],
      "encode": "JSON"
  }
}
GetPendingRequest
Este método recupera todas as solicitações pendentes de um tipo especificado em que o chamador é atribuído como aprovador.
t.Ctx.CbdcToken.GetPendingRequest(token_id, request_type)
Parâmetros:
  • token_id: string – O ID do token.
  • request_type: string – O tipo da transação. Por exemplo, mint ou burn.
Exemplo de valor de retorno:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "valueJson": {
                  "AssetType": "ohold",
                  "Category": "Category value",
                  "Description": "Description value",
                  "FromAccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
                  "HoldingId": "ohold~cbdc~USD~8e1232",
                  "NotaryAccountId": "oaccount~2eb5f8a9bc561f8f41a4ea3be9511958cc6684ef14f2337ca396efc301b627d8",
                  "OperationId": "8e1232",
                  "OperationType": "mint",
                  "Quantity": 100,
                  "Status": "pending",
                  "TimeToExpiration": "0",
                  "ToAccountId": "",
                  "TokenId": "USD",
                  "TokenName": "cbdc"
              }
          }
      ],
      "encode": "JSON"
  }
}
GetTotalBalanceByCallerOrgId
Este método recupera o saldo total da organização do chamador.
t.Ctx.CbdcToken.GetTotalBalanceByCallerOrgId()
Parâmetros:
  • token_id: string – O ID do token.
Exemplo de valor de retorno:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "TotalBalance": 180
          }
      ],
      "encode": "JSON"
  }
}
GetTransactionWithBlockNumber
Este método retorna os detalhes da transação para o ID de transação especificado.
t.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:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "blockNo": 152,
              "key": "otransaction~eee2de20b4b042884da83e3b7b85d8532ad56f26a546ee25d227acce33375c1c",
              "metadata": null,
              "txnNo": 0,
              "value": null,
              "valueJson": {
                  "Amount": 10,
                  "AssetType": "otransaction",
                  "Category": "Category value",
                  "Description": "",
                  "FromAccountBalance": 130,
                  "FromAccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
                  "FromAccountOnHoldBalance": 10,
                  "HoldingId": "ohold~cbdc~USD~hold1",
                  "NumberOfSubTransactions": 0,
                  "SubTransaction": "false",
                  "SubTransactionType": "",
                  "Timestamp": "2024-11-21T20:43:59Z",
                  "ToAccountBalance": 10,
                  "ToAccountId": "oaccount~51e676d7182a02ea7418ef58a6d54ecfe3858ef40b4ffb3d859b320da3921594",
                  "ToAccountOnHoldBalance": 0,
                  "TokenId": "USD",
                  "TransactionId": "otransaction~eee2de20b4b042884da83e3b7b85d8532ad56f26a546ee25d227acce33375c1c",
                  "TransactionType": "EXECUTEHOLD"
              }
          }
      ],
      "encode": "JSON"
  }
}

O método SDK a seguir é modificado para o modelo CBDC de atacado.

CreateAccount
Esse método cria uma conta para um usuário e token especificados. Uma conta deve ser criada para qualquer usuário que terá tokens a qualquer momento. As contas rastreiam saldos, saldos em retenção e histórico de transações. Um ID de conta é formado pela concatenação do tipo de ativo e do ID do token e, em seguida, pela criação de um hash SHA-256 sobre uma concatenação do ID da organização e do ID do usuário.
t.Ctx.Account.CreateAccount(org_id, user_id, token_type, application_groups, daily_limits...)
Parâmetros:
  • orgId – 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 (-).
  • userId – O nome do usuário ou o ID do 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 (-).
  • tokenType: TokenType – 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 é o valor máximo 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.
  • endorsers: string[] – Um array dos pares (por exemplo, peer1, peer2) que deve endossar a transação.
Exemplo de valor de retorno:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "261c3da4bb6f1724bc8f674c7b001a9b986bc9900d0508363039424926b143ed",
        "payload": {
            "AssetType": "oaccount",
            "AccountId": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe",
            "UserId": "admin_user_cb",
            "OrgId": "CB",
            "TokenType": "fungible",
            "TokenId": "",
            "TokenName": "",
            "Balance": 0,
            "BalanceOnHold": 0,
            "OnHoldBurnBalance": 0,
            "BapAccountVersion": 0,
            "ApplicationGroups": [
                "System_Admins"
            ],
            "MaxDailyAmount": 10000,
            "DailyAmount": 0,
            "MaxDailyTransactions": 100,
            "DailyTransactions": 0,
            "CurrentDate": "2024-12-09"
        },
        "encode": "JSON",
        "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009",
        "blockNumber": 246
    }
}