Venta al por mayor Modelo CBDC

La versión mejorada de Blockchain App Builder incluye un atributo de modelo que genera métodos adicionales para el escenario de moneda digital (CBDC) del banco central mayorista.

Si incluye el parámetro model: wcbdc en el archivo de especificación para tokens que utilizan el estándar extendido Token Taxonomy Framework, Blockchain App Builder genera un código de cadena específico de la aplicación, incluidos los siguientes métodos y funcionalidades adicionales para su uso con la aplicación mayorista CBDC.

TypeScript Métodos para la venta al por mayor CBDC

El código de cadena CBDC al por mayor incluye todos los métodos disponibles en el código de cadena NFT de Token Taxonomy Framework genérico. Están disponibles los siguientes métodos adicionales que son específicos del escenario CBDC mayorista.
setApplicationGroups
Este método define el parámetro application_groups en los detalles de la cuenta para los grupos de aplicaciones especificados en la API. Este método solo puede ser llamado por un Token Admin o Org Admin de la organización especificada.
public async setApplicationGroups (org_id: string, user_id: string, token_id: string, application_groups: string[])
Parámetros:
  • org_id: string: ID del proveedor de servicios de afiliación (MSP) del usuario de la organización actual.
  • user_id: string: nombre de usuario o ID de correo electrónico del usuario.
  • token_id: string: ID del token.
  • application_groups: string[]: lista de grupos de aplicaciones a los que pertenece el ID de usuario, que definen las asociaciones del usuario en la aplicación CBDC.
Ejemplo de valor devuelto:
{
    "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
Este método devuelve todas las cuentas activas que están asociadas con el ID de token especificado. Cualquier usuario puede llamar a este método.
public async getAllActiveAccounts(token_id: string)
Parámetros:
  • token_id: string: ID del token.
Devuelve:
  • Cuando se realiza correctamente, se muestra un mensaje que incluye los detalles del usuario. La salida varía según el rol del usuario, como se muestra en los siguientes ejemplos.
Ejemplo de valor de devolución (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"
    }
}
Ejemplo de valor devuelto (administrador de la organización, auditor de la organización):
{
  "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"
  }
}
Ejemplo de valor devuelto (todos los demás usuarios):
{
  "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
Este método devuelve todas las cuentas suspendidas que están asociadas con el ID de token especificado. Cualquier usuario puede llamar a este método.
func (t *Controller) GetAllSuspendedAccounts(token_id string) (interface{}, error)
Parámetros:
  • token_id: string: ID del token.
Devuelve:
  • Cuando se realiza correctamente, se muestra un mensaje que incluye los detalles del usuario. La salida varía según el rol del usuario, como se muestra en los siguientes ejemplos.
Ejemplo de valor de devolución (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"
    }
}
Ejemplo de valor devuelto (administrador de la organización, auditor de la organización):
{
  "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"
  }
}
Ejemplo de valor devuelto (todos los demás usuarios):
{
  "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 devuelve la cantidad total de tokens quemados para una organización especificada. Este método solo puede ser llamado por Token Admin, Token Auditor o un usuario con el rol de quemador.
public async getBurnQuantity(token_id: string)
Parámetros:
  • token_id: string: ID del token.
Ejemplo de valor devuelto:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": {
          "burnt_quantity": 31
      },
      "encode": "JSON"
  }
}
getActionHistory
Este método recupera el historial de aprobaciones o rechazos realizados por el emisor de la llamada para operaciones de menta, quema y transferencia (emisión), incluidos los detalles de la organización y los ID de usuario de las cuentas implicadas (emisor, destinatario y notario).
public async getActionHistory(token_id: string)
Parámetros:
  • token_id: string: ID del token.
Ejemplo de valor devuelto:
{
  "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 las transacciones de emisión (transferencia) pendientes en las que el emisor de la llamada está asignado como aprobador, incluidos los detalles de la organización y los ID de usuario de las cuentas implicadas (emisor, destinatario y notario). Este método solo puede ser llamado por un Token Admin o Token Auditor del código de cadena, un Org Admin o Org Auditor de la organización especificada o el Notary.
public async getPendingIssuance(token_id: string)
Parámetros:
  • token_id: string: ID del token.
Ejemplo de valor devuelto:
{
  "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 las solicitudes pendientes de un tipo especificado en las que el emisor de llamada está asignado como aprobador. Este método solo puede ser llamado por un Token Admin o Token Auditor del código de cadena, un Org Admin o Org Auditor de la organización especificada o el Notary.
public async getPendingRequest(token_id: string, request_type: string)
Parámetros:
  • token_id: string: ID del token.
  • request_type: string: tipo de transacción. Por ejemplo, mint o burn.
Ejemplo de valor devuelto:
{
  "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 el saldo total de la organización del emisor de la llamada. Puede ser llamado por un Token Admin, Token Auditor, Org Admin, Org Auditor o cualquier propietario de cuenta.
public async getTotalBalanceByCallerOrgId()
Parámetros:
  • token_id: string: ID del token.
Ejemplo de valor devuelto:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "totalBalance": 704
          }
      ],
      "encode": "JSON"
  }
}
getTransactionWithBlockNumber
Este método devuelve los detalles de la transacción para el ID de transacción especificado.
public async getTransactionWithBlockNumber(token_id: string, transaction_id: string)
Parámetros:
  • token_id: string: ID del token.
  • transaction_id: string: ID de la transacción.
Ejemplo de valor devuelto:
{
  "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"
  }
}

La siguiente API se ha modificado para el modelo CBDC mayorista.

createAccount
Este método crea una cuenta para un usuario y token especificados. Se debe crear una cuenta para cualquier usuario que tenga tokens en cualquier momento. Las cuentas realizan un seguimiento de los saldos, los saldos retenidos y el historial de transacciones. Un ID de cuenta se forma concatenando el tipo de activo y el ID de token y, a continuación, creando un hash SHA-256 en una concatenación del ID de organización y el ID de usuario. Este método solo puede ser llamado por un Token Admin del código de cadena.
public async createAccount(org_id: string, user_id: string, token_type: string, application_groups: string[], daily_limits?: DailyLimits)
Parámetros:
  • orgId: ID del proveedor de servicios de afiliación (MSP) del usuario para el que se creará la cuenta. El ID debe empezar por un carácter alfanumérico y puede incluir letras, números y caracteres especiales, como guiones bajos (_), puntos (.), signos at (@) y guiones (-).
  • userId: nombre de usuario o ID de correo electrónico del usuario. El ID debe empezar por un carácter alfanumérico y puede incluir letras, números y caracteres especiales, como guiones bajos (_), puntos (.), signos at (@) y guiones (-).
  • tokenType: TokenType: tipo de token, que debe ser fungible.
  • application_groups: string[]: lista de grupos de aplicaciones a los que pertenece el ID de usuario, que definen las asociaciones del usuario en la aplicación CBDC.
  • daily_limits: DailyLimits: objeto JSON del siguiente tipo.
    {
         "max_daily_amount": 100000
         "max_daily_transactions": 10000
     }
    En el ejemplo, el valor max_daily_amount es la cantidad máxima de tokens que se pueden realizar diariamente y el valor max_daily_transactions es el número máximo de transacciones que se pueden completar diariamente.
  • endorsers: string[]: matriz de los pares (por ejemplo, peer1, peer2) que deben respaldar la transacción.
Ejemplo de valor devuelto:
{
    "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 venta al por mayor CBDC

El código de cadena CBDC al por mayor incluye todos los métodos disponibles en el código de cadena NFT de Token Taxonomy Framework genérico. Están disponibles los siguientes métodos adicionales que son específicos del escenario CBDC mayorista.
SetApplicationGroups
Este método define el parámetro application_groups en los detalles de la cuenta para los grupos de aplicaciones especificados en la API. Este método solo puede ser llamado por un Token Admin o Org Admin de la organización especificada.
func (t *Controller) SetApplicationGroups(token_id string, org_id string, user_id string, application_groups []string) (interface{}, error)
Parámetros:
  • org_id: string: ID del proveedor de servicios de afiliación (MSP) del usuario de la organización actual.
  • user_id: string: nombre de usuario o ID de correo electrónico del usuario.
  • token_id: string: ID del token.
  • application_groups: string[]: lista de grupos de aplicaciones a los que pertenece el ID de usuario, que definen las asociaciones del usuario en la aplicación CBDC.
Ejemplo de valor devuelto:
{
    "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
Este método devuelve todas las cuentas activas que están asociadas con el ID de token especificado. Cualquier usuario puede llamar a este método.
func (t *Controller) GetAllActiveAccounts(token_id string) (interface{}, error)
Parámetros:
  • token_id: string: ID del token.
Devuelve:
  • Cuando se realiza correctamente, se muestra un mensaje que incluye los detalles del usuario. La salida varía según el rol del usuario, como se muestra en los siguientes ejemplos.
Ejemplo de valor de devolución (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"
    }
}
Ejemplo de valor devuelto (administrador de la organización, auditor de la organización):
{
  "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"
  }
}
Ejemplo de valor devuelto (todos los demás usuarios):
{
  "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
Este método devuelve todas las cuentas suspendidas que están asociadas con el ID de token especificado. Cualquier usuario puede llamar a este método.
public async getAllSuspendedAccounts(token_id: string)
Parámetros:
  • token_id: string: ID del token.
Devuelve:
  • Cuando se realiza correctamente, se muestra un mensaje que incluye los detalles del usuario. La salida varía según el rol del usuario, como se muestra en los siguientes ejemplos.
Ejemplo de valor de devolución (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"
  }
}
Ejemplo de valor devuelto (administrador de la organización, auditor de la organización):
{
  "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"
  }
}
Ejemplo de valor devuelto (todos los demás usuarios):
{
    "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 devuelve la cantidad total de tokens quemados para una organización especificada. Este método solo puede ser llamado por Token Admin, Token Auditor o un usuario con el rol de quemador.
func (t *Controller) GetBurnQuantity(token_id string) (interface{}, error)
Parámetros:
  • token_id: string: ID del token.
Ejemplo de valor devuelto:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": {
          "BurnQuantity": 10
      },
      "encode": "JSON"
  }
}
GetActionHistory
Este método recupera el historial de aprobaciones o rechazos realizados por el emisor de la llamada para operaciones de menta, quema y transferencia (emisión), incluidos los detalles de la organización y los ID de usuario de las cuentas implicadas (emisor, destinatario y notario).
func (t *Controller) GetActionHistory(token_id string) (interface{}, error)
Parámetros:
  • token_id: string: ID del token.
Ejemplo de valor devuelto:
{
  "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 las transacciones de emisión (transferencia) pendientes en las que el emisor de la llamada está asignado como aprobador, incluidos los detalles de la organización y los ID de usuario de las cuentas implicadas (emisor, destinatario y notario). Este método solo puede ser llamado por un Token Admin o Token Auditor del código de cadena, un Org Admin o Org Auditor de la organización especificada o el Notary.
func (t *Controller) GetPendingIssuance(token_id string) (interface{}, error)
Parámetros:
  • token_id: string: ID del token.
Ejemplo de valor devuelto:
{
  "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 las solicitudes pendientes de un tipo especificado en las que el emisor de llamada está asignado como aprobador. Este método solo puede ser llamado por un Token Admin o Token Auditor del código de cadena, un Org Admin o Org Auditor de la organización especificada o el Notary.
func (t *Controller) GetPendingRequest(token_id string, request_type string) (interface{}, error)
Parámetros:
  • token_id: string: ID del token.
  • request_type: string: tipo de transacción. Por ejemplo, mint o burn.
Ejemplo de valor devuelto:
{
  "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 el saldo total de la organización del emisor de la llamada. Puede ser llamado por un Token Admin, Token Auditor, Org Admin, Org Auditor o cualquier propietario de cuenta.
func (t *Controller) GetTotalBalanceByCallerOrgId() (interface{}, error)
Parámetros:
  • token_id: string: ID del token.
Ejemplo de valor devuelto:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "TotalBalance": 180
          }
      ],
      "encode": "JSON"
  }
}
GetTransactionWithBlockNumber
Este método devuelve los detalles de la transacción para el ID de transacción especificado.
func (t *Controller) GetTransactionWithBlockNumber(token_id string, transaction_id string)
Parámetros:
  • token_id: string: ID del token.
  • transaction_id: string: ID de la transacción.
Ejemplo de valor devuelto:
{
  "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"
  }
}

La siguiente API se ha modificado para el modelo CBDC mayorista.

CreateAccount
Este método crea una cuenta para un usuario y token especificados. Se debe crear una cuenta para cualquier usuario que tenga tokens en cualquier momento. Las cuentas realizan un seguimiento de los saldos, los saldos retenidos y el historial de transacciones. Un ID de cuenta se forma concatenando el tipo de activo y el ID de token y, a continuación, creando un hash SHA-256 en una concatenación del ID de organización y el ID de usuario. Este método solo puede ser llamado por un Token Admin del código de cadena.
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: ID del proveedor de servicios de afiliación (MSP) del usuario para el que se creará la cuenta. El ID debe empezar por un carácter alfanumérico y puede incluir letras, números y caracteres especiales, como guiones bajos (_), puntos (.), signos at (@) y guiones (-).
  • userId: nombre de usuario o ID de correo electrónico del usuario. El ID debe empezar por un carácter alfanumérico y puede incluir letras, números y caracteres especiales, como guiones bajos (_), puntos (.), signos at (@) y guiones (-).
  • tokenType: TokenType: tipo de token, que debe ser fungible.
  • application_groups: string[]: lista de grupos de aplicaciones a los que pertenece el ID de usuario, que definen las asociaciones del usuario en la aplicación CBDC.
  • daily_limits: DailyLimits: objeto JSON del siguiente tipo.
    {
         "max_daily_amount": 100000
         "max_daily_transactions": 10000
     }
    En el ejemplo, el valor max_daily_amount es la cantidad máxima de tokens que se pueden realizar diariamente y el valor max_daily_transactions es el número máximo de transacciones que se pueden completar diariamente.
  • endorsers: string[]: matriz de los pares (por ejemplo, peer1, peer2) que deben respaldar la transacción.
Ejemplo de valor devuelto:
{
    "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 venta al por mayor CBDC

setApplicationGroups
Este método define el parámetro application_groups en los detalles de la cuenta para los grupos de aplicaciones especificados en la API.
this.Ctx.Account.setApplicationGroups (account_id, application_groups)
Parámetros:
  • account_id: string: ID de la cuenta.
  • application_groups: string[]: lista de grupos de aplicaciones a los que pertenece el ID de usuario, que definen las asociaciones del usuario en la aplicación CBDC.
Ejemplo de valor devuelto:
{
    "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
Este método devuelve todas las cuentas activas que están asociadas con el ID de token especificado.
this.Ctx.CBDCToken.getAllActiveAccounts(token_id)
Parámetros:
  • token_id: string: ID del token.
Devuelve:
  • Cuando se realiza correctamente, se muestra un mensaje que incluye los detalles del usuario. La salida varía según el rol del usuario, como se muestra en los siguientes ejemplos.
Ejemplo de valor de devolución (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"
    }
}
Ejemplo de valor devuelto (administrador de la organización, auditor de la organización):
{
  "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"
  }
}
Ejemplo de valor devuelto (todos los demás usuarios):
{
  "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
Este método devuelve todas las cuentas suspendidas que están asociadas con el ID de token especificado.
this.Ctx.CBDCToken.getAllSuspendedAccounts(token_id)
Parámetros:
  • token_id: string: ID del token.
Devuelve:
  • Cuando se realiza correctamente, se muestra un mensaje que incluye los detalles del usuario. La salida varía según el rol del usuario, como se muestra en los siguientes ejemplos.
Ejemplo de valor de devolución (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"
    }
}
Ejemplo de valor devuelto (administrador de la organización, auditor de la organización):
{
  "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"
  }
}
Ejemplo de valor devuelto (todos los demás usuarios):
{
  "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 devuelve la cantidad total de tokens quemados para una organización especificada.
this.Ctx.CBDCToken.getBurnQuantity(token_id)
Parámetros:
  • token_id: string: ID del token.
Ejemplo de valor devuelto:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": {
          "burnt_quantity": 31
      },
      "encode": "JSON"
  }
}
getActionHistory
Este método recupera el historial de aprobaciones o rechazos realizados por el emisor de la llamada para operaciones de menta, quema y transferencia (emisión), incluidos los detalles de la organización y los ID de usuario de las cuentas implicadas (emisor, destinatario y notario).
this.Ctx.CBDCToken.getActionHistory(token_id)
Parámetros:
  • token_id: string: ID del token.
Ejemplo de valor devuelto:
{
  "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 las transacciones de emisión (transferencia) pendientes en las que el emisor de la llamada está asignado como aprobador, incluidos los detalles de la organización y los ID de usuario de las cuentas implicadas (emisor, destinatario y notario).
this.Ctx.CBDCToken.getPendingIssuance(token_id)
Parámetros:
  • token_id: string: ID del token.
Ejemplo de valor devuelto:
{
  "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 las solicitudes pendientes de un tipo especificado en las que el emisor de llamada está asignado como aprobador.
this.Ctx.CBDCToken.getPendingRequest(token_id, request_type)
Parámetros:
  • token_id: string: ID del token.
  • request_type: string: tipo de transacción. Por ejemplo, mint o burn.
Ejemplo de valor devuelto:
{
  "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 el saldo total de la organización del emisor de la llamada.
this.Ctx.CBDCToken.getTotalBalanceByCallerOrgId()
Parámetros:
  • token_id: string: ID del token.
Ejemplo de valor devuelto:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "totalBalance": 704
          }
      ],
      "encode": "JSON"
  }
}
getTransactionWithBlockNumber
Este método devuelve los detalles de la transacción para el ID de transacción especificado.
this.Ctx.CBDCToken.getTransactionWithBlockNumber(token_id, transaction_id)
Parámetros:
  • token_id: string: ID del token.
  • transaction_id: string: ID de la transacción.
Ejemplo de valor devuelto:
{
  "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"
  }
}

El siguiente método SDK se modifica para el modelo CBDC mayorista.

createAccount
Este método crea una cuenta para un usuario y token especificados. Se debe crear una cuenta para cualquier usuario que tenga tokens en cualquier momento. Las cuentas realizan un seguimiento de los saldos, los saldos retenidos y el historial de transacciones. Un ID de cuenta se forma concatenando el tipo de activo y el ID de token y, a continuación, creando un hash SHA-256 en una concatenación del ID de organización y el ID de usuario.
this.Ctx.Account.createAccount(org_id, user_id, token_type, application_groups, daily_limits)
Parámetros:
  • orgId: ID del proveedor de servicios de afiliación (MSP) del usuario para el que se creará la cuenta. El ID debe empezar por un carácter alfanumérico y puede incluir letras, números y caracteres especiales, como guiones bajos (_), puntos (.), signos at (@) y guiones (-).
  • userId: nombre de usuario o ID de correo electrónico del usuario. El ID debe empezar por un carácter alfanumérico y puede incluir letras, números y caracteres especiales, como guiones bajos (_), puntos (.), signos at (@) y guiones (-).
  • tokenType: TokenType: tipo de token, que debe ser fungible.
  • application_groups: string[]: lista de grupos de aplicaciones a los que pertenece el ID de usuario, que definen las asociaciones del usuario en la aplicación CBDC.
  • daily_limits: DailyLimits: objeto JSON del siguiente tipo.
    {
         "max_daily_amount": 100000
         "max_daily_transactions": 10000
     }
    En el ejemplo, el valor max_daily_amount es la cantidad máxima de tokens que se pueden realizar diariamente y el valor max_daily_transactions es el número máximo de transacciones que se pueden completar diariamente.
  • endorsers: string[]: matriz de los pares (por ejemplo, peer1, peer2) que deben respaldar la transacción.
Ejemplo de valor devuelto:
{
    "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
    }
}

Go SDK Métodos para venta al por mayor CBDC

SetApplicationGroups
Este método define el parámetro application_groups en los detalles de la cuenta para los grupos de aplicaciones especificados en la API.
t.Ctx.CbdcToken.SetApplicationGroups(account_id, application_groups)
Parámetros:
  • account_id: string: ID de la cuenta.
  • application_groups: string[]: lista de grupos de aplicaciones a los que pertenece el ID de usuario, que definen las asociaciones del usuario en la aplicación CBDC.
Ejemplo de valor devuelto:
{
    "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
Este método devuelve todas las cuentas activas que están asociadas con el ID de token especificado.
t.Ctx.CbdcToken.GetAllActiveAccounts(token_id)
Parámetros:
  • token_id: string: ID del token.
Devuelve:
  • Cuando se realiza correctamente, se muestra un mensaje que incluye los detalles del usuario. La salida varía según el rol del usuario, como se muestra en los siguientes ejemplos.
Ejemplo de valor de devolución (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"
    }
}
Ejemplo de valor devuelto (administrador de la organización, auditor de la organización):
{
  "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"
  }
}
Ejemplo de valor devuelto (todos los demás usuarios):
{
  "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
Este método devuelve todas las cuentas suspendidas que están asociadas con el ID de token especificado.
t.Ctx.CbdcToken.GetAllSuspendedAccounts(token_id)
Parámetros:
  • token_id: string: ID del token.
Devuelve:
  • Cuando se realiza correctamente, se muestra un mensaje que incluye los detalles del usuario. La salida varía según el rol del usuario, como se muestra en los siguientes ejemplos.
Ejemplo de valor de devolución (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"
  }
}
Ejemplo de valor devuelto (administrador de la organización, auditor de la organización):
{
  "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"
  }
}
Ejemplo de valor devuelto (todos los demás usuarios):
{
    "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 devuelve la cantidad total de tokens quemados para una organización especificada.
t.Ctx.CbdcToken.GetBurnQuantity(token_id)
Parámetros:
  • token_id: string: ID del token.
Ejemplo de valor devuelto:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": {
          "BurnQuantity": 10
      },
      "encode": "JSON"
  }
}
GetActionHistory
Este método recupera el historial de aprobaciones o rechazos realizados por el emisor de la llamada para operaciones de menta, quema y transferencia (emisión), incluidos los detalles de la organización y los ID de usuario de las cuentas implicadas (emisor, destinatario y notario).
t.Ctx.CbdcToken.GetActionHistory(token_id)
Parámetros:
  • token_id: string: ID del token.
Ejemplo de valor devuelto:
{
  "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 las transacciones de emisión (transferencia) pendientes en las que el emisor de la llamada está asignado como aprobador, incluidos los detalles de la organización y los ID de usuario de las cuentas implicadas (emisor, destinatario y notario).
t.Ctx.CbdcToken.GetPendingIssuance(token_id)
Parámetros:
  • token_id: string: ID del token.
Ejemplo de valor devuelto:
{
  "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 las solicitudes pendientes de un tipo especificado en las que el emisor de llamada está asignado como aprobador.
t.Ctx.CbdcToken.GetPendingRequest(token_id, request_type)
Parámetros:
  • token_id: string: ID del token.
  • request_type: string: tipo de transacción. Por ejemplo, mint o burn.
Ejemplo de valor devuelto:
{
  "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 el saldo total de la organización del emisor de la llamada.
t.Ctx.CbdcToken.GetTotalBalanceByCallerOrgId()
Parámetros:
  • token_id: string: ID del token.
Ejemplo de valor devuelto:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "TotalBalance": 180
          }
      ],
      "encode": "JSON"
  }
}
GetTransactionWithBlockNumber
Este método devuelve los detalles de la transacción para el ID de transacción especificado.
t.Ctx.CbdcToken.GetTransactionWithBlockNumber(token_id, transaction_id)
Parámetros:
  • token_id: string: ID del token.
  • transaction_id: string: ID de la transacción.
Ejemplo de valor devuelto:
{
  "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"
  }
}

El siguiente método SDK se modifica para el modelo CBDC mayorista.

CreateAccount
Este método crea una cuenta para un usuario y token especificados. Se debe crear una cuenta para cualquier usuario que tenga tokens en cualquier momento. Las cuentas realizan un seguimiento de los saldos, los saldos retenidos y el historial de transacciones. Un ID de cuenta se forma concatenando el tipo de activo y el ID de token y, a continuación, creando un hash SHA-256 en una concatenación del ID de organización y el ID de usuario.
t.Ctx.Account.CreateAccount(org_id, user_id, token_type, application_groups, daily_limits...)
Parámetros:
  • orgId: ID del proveedor de servicios de afiliación (MSP) del usuario para el que se creará la cuenta. El ID debe empezar por un carácter alfanumérico y puede incluir letras, números y caracteres especiales, como guiones bajos (_), puntos (.), signos at (@) y guiones (-).
  • userId: nombre de usuario o ID de correo electrónico del usuario. El ID debe empezar por un carácter alfanumérico y puede incluir letras, números y caracteres especiales, como guiones bajos (_), puntos (.), signos at (@) y guiones (-).
  • tokenType: TokenType: tipo de token, que debe ser fungible.
  • application_groups: string[]: lista de grupos de aplicaciones a los que pertenece el ID de usuario, que definen las asociaciones del usuario en la aplicación CBDC.
  • daily_limits: DailyLimits: objeto JSON del siguiente tipo.
    {
         "max_daily_amount": 100000
         "max_daily_transactions": 10000
     }
    En el ejemplo, el valor max_daily_amount es la cantidad máxima de tokens que se pueden realizar diariamente y el valor max_daily_transactions es el número máximo de transacciones que se pueden completar diariamente.
  • endorsers: string[]: matriz de los pares (por ejemplo, peer1, peer2) que deben respaldar la transacción.
Ejemplo de valor devuelto:
{
    "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
    }
}