Modelo de Bond Marketplace

La versión mejorada de Blockchain App Builder incluye un atributo de modelo que genera métodos adicionales para el escenario de mercado de bonos.

Si incluye el parámetro model: bond en el archivo de especificación para tokens que utilizan el estándar ERC-1155 extendido, el código de cadena específico de la aplicación Blockchain App Builder, incluidos los siguientes métodos adicionales para su uso con la aplicación de mercado de bonos.

TypeScript Métodos para Bond Marketplace

El código de cadenas del mercado de bonos incluye todos los métodos disponibles en el código de cadenas genérico ERC-1155 NFT. Están disponibles los siguientes métodos adicionales específicos para el escenario de mercado de bonos.
postToken
Este método solo puede ser llamado por un creador de tokens. El método envía el token de bono para su inclusión en el mercado. Cuando se crea un token, su estado se define inicialmente en created. Este método actualiza el estado a posted. Los usuarios pueden ejecutar el método getAllTokensWithFilter para recuperar todos los NFT con el estado posted.
public async postToken(tokenId: string)
Parámetros:
  • tokenId: string: ID del token que se va a publicar.
Ejemplo de Valor de Devolución:
{
         "isValid":true,
         "payload":{
            "tokenMetadata":{
               "ISIN":"ISIN value",
               "Segment":"Segment value",
               "Issuer":"Issuer value",
               "FaceValue":10,
               "IssueSize":999,
               "CouponRate":10,
               "InterestPaymentType":"simple",
               "InterestFrequency":"monthly",
               "IssueDate":"2023-03-28T15:16:36.000Z",
               "MaturityDate":"2023-03-28T15:16:36.000Z"
            },
            "assetType":"otoken",
            "events":true,
            "tokenId":"bond1",
            "tokenName":"bond",
            "tokenDesc":"tokenDesc value",
            "tokenStandard":"erc1155+",
            "tokenType":"nonfungible",
            "tokenUnit":"fractional",
            "behaviors":[
               "divisible",
               "mintable",
               "transferable",
               "burnable",
               "roles"
            ],
            "roles":{
               "minter_role_name":"minter",
               "burner_role_name":"burner"
            },
            "mintable":{
               "max_mint_quantity":0
            },
            "quantity":100,
            "createdBy":"oaccount~276bcf1324b1ad1e493e22432db3b39f7a4b9bb17b8525c0391ea3ba36138e00",
            "creationDate":"2024-12-02T12:42:09.000Z",
            "divisible":{
               "decimal":0
            },
            "isBurned":false,
            "isLocked":false,
            "tokenUri":"tokenUri value",
            "status":"created"
         },
         "message":"Successfully updated asset with ID bond1"
      }
purchaseToken
Este método puede ser llamado por cualquier titular de cuenta para comprar un bono NFT. La compra transfiere el bono NFT de la cuenta del creador a la cuenta del emisor de la llamada y transfiere tokens CBDC de la cuenta del emisor de la llamada a la cuenta del creador. Debido a esto, el método se debe ejecutar en el contexto de una transacción atómica. El método también verifica el proceso de transferencia, lo que garantiza que se llame al código de cadena CBDC adecuado con los valores orgId y userId correctos para la transferencia. orgId y userId deben corresponder al creador del token, y el valor de transferencia del token CBDC debe ser igual al valor nominal del token de bono multiplicado por la cantidad que se compra.
public async purchaseToken(tokenId: string, quantity: number, orderId: string, additionalFees: number)
Parámetros:
  • tokenId: string: ID del token que se va a comprar.
  • quantity: number: cantidad de tokens para comprar.
  • orderId: string: ID de pedido de la operación de compra.
  • additionalFees: number – Las tarifas adicionales que se suman al precio de compra.
Ejemplo de Valor de Devolución:
{
   "returnCode":"Success",
   "error":"",
   "result":{
      "transactions":[
         {
            "channel":"test",
            "chaincode":"BondMarketplace",
            "txstatus":"Committed",
            "prepare":{
               "txid":"e969f962df5efda2ea6287380e308cc974efd79dfff3567840ed3844bf936160"
            },
            "commit":{
               "txid":"5544e928d3242291fb39189e8329679a9c81d61d6f72db60ca89135cd20fffef"
            },
            "rollback":{
               
            }
         },
         {
            "channel":"cbdctest",
            "chaincode":"cbdc",
            "txstatus":"Committed",
            "prepare":{
               "txid":"1245885b1a0c7f12c41fa2f2905549b8a5f37ab3a5e094b9dca122cb0611a117"
            },
            "commit":{
               "txid":"3c83e20c7d470cdc9c1b0e2e0ea8d9962d58ada8d1b8f0d2606c8aa1f0ae7741"
            },
            "rollback":{
               
            }
         }
      ],
      "lrc":{
         
      },
      "globalStatus":"Success",
      "globalTxid":"761bb7cc-1d66-4645-aeb2-50e4dbd23d83",
      "txStartTime":"2024-12-05T12:01:21.881988035Z"
   }
}
payInterest
Este método solo puede ser llamado por el creador o administrador del token para pagar los intereses obtenidos en el token del bono. Este método solo se puede llamar si la frecuencia de interés del token es mensual, trimestral o anual. No se puede pagar el interés si la frecuencia de interés está al vencimiento. El código de cadenas calcula el interés en función del tipo de cupón del token. La operación de compra transfiere tokens CBDC de la cuenta del emisor de la llamada a la cuenta del propietario del bono. Debido a esto, este método se debe ejecutar en el contexto de una transacción atómica. El método también verifica el proceso de transferencia, lo que garantiza que se llame al código de cadena CBDC adecuado con los valores orgId y userId correctos para la transferencia. orgId y userId deben corresponder al propietario del token, y el valor de transferencia del token CBDC debe ser igual al interés calculado por el código de cadena de bonos.
public async payInterest(orgId: string, userId: string, tokenId: string, orderId: string)
Parámetros:
  • orgId: string: ID del proveedor de servicios de miembros (MSP) del usuario.
  • userId: string: nombre de usuario o ID de correo electrónico del usuario.
  • tokenId: string: ID del token.
  • orderId: string: ID de pedido de la operación de compra.
Ejemplo de Valor de Devolución:
{
   "returnCode":"Success",
   "error":"",
   "result":{
      "transactions":[
         {
            "channel":"test",
            "chaincode":"BondMarketplace",
            "txstatus":"Committed",
            "prepare":{
               "txid":"e969f962df5efda2ea6287380e308cc974efd79dfff3567840ed3844bf936160"
            },
            "commit":{
               "txid":"5544e928d3242291fb39189e8329679a9c81d61d6f72db60ca89135cd20fffef"
            },
            "rollback":{
               
            }
         },
         {
            "channel":"cbdctest",
            "chaincode":"cbdc",
            "txstatus":"Committed",
            "prepare":{
               "txid":"1245885b1a0c7f12c41fa2f2905549b8a5f37ab3a5e094b9dca122cb0611a117"
            },
            "commit":{
               "txid":"3c83e20c7d470cdc9c1b0e2e0ea8d9962d58ada8d1b8f0d2606c8aa1f0ae7741"
            },
            "rollback":{
               
            }
         }
      ],
      "lrc":{
         
      },
      "globalStatus":"Success",
      "globalTxid":"761bb7cc-1d66-4645-aeb2-50e4dbd23d83",
      "txStartTime":"2024-12-05T12:01:21.881988035Z"
   }
}
requestTokenRedemption
Este método solo puede ser llamado por el propietario del token para presentar una solicitud para el canje de tokens de bonos después del vencimiento. Este método también implica el cálculo del precio de canje por el código de cadenas. Las solicitudes de canje solo se pueden generar en toda la cantidad del token de bono que posee el usuario. Los usuarios pueden generar varias solicitudes de canje en función de diferentes ID de liquidación, pero solo uno puede ser aprobado por el creador del token.
public async requestTokenRedemption(settlementId: string, tokenId: string, orderId: string, additionalFees: number)
Parámetros:
  • settlementId: string: ID de liquidación para la operación de canje.
  • tokenId: string: ID del token.
  • orderId: string: ID de pedido de la operación de compra.
  • additionalFees: number – Las tarifas adicionales que se añaden al precio de canje.
Ejemplo de Valor de Devolución:
{
         "tokenName":"bond",
         "assetType":"otokenApproval",
         "id":"otokenApproval~9e006057ac96ae997e3964531b1a08ad2316555701c7fe9ec7b88e38e20892bf",
         "settlementId":"op4",
         "userBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op4",
         "fromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
         "toAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "tokenId":"bond1",
         "quantity":1,
         "status":"PENDING",
         "orderId":"op4",
         "redeemPrice":11

}
approveTokenRedemption
Este método solo puede ser llamado por el creador del token para aprobar una solicitud para el canje de tokens de bonos. La operación de aprobación transfiere el bono NFT de la cuenta del propietario (el usuario que presentó la solicitud) a la cuenta del creador, y transfiere tokens CBDC del creador del bono a la cuenta del propietario. Debido a esto, este método se debe ejecutar en el contexto de una transacción atómica. El método también verifica el proceso de transferencia, lo que garantiza que se llame al código de cadena CBDC adecuado con los valores orgId y userId correctos para la transferencia. orgId y userId deben corresponder a la cuenta del propietario del token que ha generado la solicitud de canje, y el valor de transferencia del token de CBDC debe ser igual al precio de canje calculado que ha calculado el código de cadena al generar la solicitud de canje.
public async approveRedemption(fromOrgId: string, fromUserId: string, settlementId: string, tokenId: string)
Parámetros:
  • fromOrgId: string: ID del proveedor de servicios de miembros (MSP) del usuario.
  • fromUserId: string: nombre de usuario o ID de correo electrónico del usuario.
  • settlementId: string: ID de liquidación para la operación de canje.
  • tokenId: string: ID del token.
Ejemplo de Valor de Devolución:
{
   "returnCode":"Success",
   "error":"",
   "result":{
      "transactions":[
         {
            "channel":"test",
            "chaincode":"BondMarketplace",
            "txstatus":"Committed",
            "prepare":{
               "txid":"e969f962df5efda2ea6287380e308cc974efd79dfff3567840ed3844bf936160"
            },
            "commit":{
               "txid":"5544e928d3242291fb39189e8329679a9c81d61d6f72db60ca89135cd20fffef"
            },
            "rollback":{
               
            }
         },
         {
            "channel":"cbdctest",
            "chaincode":"cbdc",
            "txstatus":"Committed",
            "prepare":{
               "txid":"1245885b1a0c7f12c41fa2f2905549b8a5f37ab3a5e094b9dca122cb0611a117"
            },
            "commit":{
               "txid":"3c83e20c7d470cdc9c1b0e2e0ea8d9962d58ada8d1b8f0d2606c8aa1f0ae7741"
            },
            "rollback":{
               
            }
         }
      ],
      "lrc":{
         
      },
      "globalStatus":"Success",
      "globalTxid":"761bb7cc-1d66-4645-aeb2-50e4dbd23d83",
      "txStartTime":"2024-12-05T12:01:21.881988035Z"
   }
}
rejectRedemption
El creador del token puede llamar a este método para rechazar la solicitud de canje. Los propietarios de tokens pueden volver a generar una solicitud de canje utilizando un ID de liquidación diferente.
public async rejectRedemption(fromOrgId: string, fromUserId: string, settlementId: string, tokenId: string)
Parámetros:
  • fromOrgId: string: ID del proveedor de servicios de miembros (MSP) del usuario.
  • fromUserId: string: nombre de usuario o ID de correo electrónico del usuario.
  • settlementId: string: ID de liquidación para la operación de canje.
  • tokenId: string: ID del token.
Ejemplo de Valor de Devolución:
{
   "status":"success",
   "msg":"Successfully rejected the token approval request"
}
getAllTokensWithFilters
El administrador puede llamar a este método get para recuperar todos los tokens filtrados por estado, ya sea CREATED o POSTED.
public async getAllTokensWithFilters(status: string, pageSize: number, bookmark: string)
Parámetros:
  • status: string: estado del token, que puede ser CREATED o POSTED.
  • pageSize: number: tamaño de página del resultado devuelto.
  • bookmark: string: marcador del resultado devuelto.
Ejemplo de Valor de Devolución:
[{
            "tokenMetadata":{
               "ISIN":"ISIN value",
               "Segment":"Segment value",
               "Issuer":"Issuer value",
               "FaceValue":10,
               "IssueSize":999,
               "CouponRate":10,
               "InterestPaymentType":"simple",
               "InterestFrequency":"monthly",
               "IssueDate":"2023-03-28T15:16:36.000Z",
               "MaturityDate":"2023-03-28T15:16:36.000Z"
            },
            "assetType":"otoken",
            "events":true,
            "tokenId":"bond1",
            "tokenName":"bond",
            "tokenDesc":"tokenDesc value",
            "tokenStandard":"erc1155+",
            "tokenType":"nonfungible",
            "tokenUnit":"fractional",
            "behaviors":[
               "divisible",
               "mintable",
               "transferable",
               "burnable",
               "roles"
            ],
            "roles":{
               "minter_role_name":"minter",
               "burner_role_name":"burner"
            },
            "mintable":{
               "max_mint_quantity":0
            },
            "quantity":100,
            "createdBy":"oaccount~276bcf1324b1ad1e493e22432db3b39f7a4b9bb17b8525c0391ea3ba36138e00",
            "creationDate":"2024-12-02T12:42:09.000Z",
            "divisible":{
               "decimal":0
            },
            "isBurned":false,
            "isLocked":false,
            "tokenUri":"tokenUri value",
            "status":"posted"
         }

]
getTokenApprovalRequestByUser
Cualquier titular de cuenta puede llamar a este método get para obtener los detalles de todas las solicitudes de aprobación de token (solicitudes de canje) que ha realizado.
public async getTokenApprovalRequestByUser(status: string)
Parámetros:
  • status: string: estado de la solicitud, que puede ser PENDING, REJECTED o APPROVED.
Ejemplo de Valor de Devolución:
[
   {
      "tokenName":"bond",
      "assetType":"otokenApproval",
      "id":"otokenApproval~5b2a94283ae95e3d6e5b76ffd6f75b7bff231e4df270a82cdc1f6badd17dea4b",
      "settlementId":"op1",
      "userBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
      "fromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "toAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "tokenId":"bond1",
      "quantity":2,
      "status":"APPROVED",
      "orderId":"op1",
      "redeemPrice":1,
      "purchasedPrice":11,
      "interestEarned":0
   },
   {
      "tokenName":"bond",
      "assetType":"otokenApproval",
      "id":"otokenApproval~fdf28b2d271ac9c0fbd94a2dedbf365728c77795f3e931e5a4a2dcf48039a989",
      "settlementId":"op3",
      "userBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op3",
      "fromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "toAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "tokenId":"bond1",
      "quantity":1,
      "status":"APPROVED",
      "orderId":"op3",
      "redeemPrice":11,
      "purchasedPrice":11,
      "interestEarned":0
   }
]
getTokenApprovalRequestForUserByStatus
Cualquier titular de cuenta puede llamar a este método get para obtener los detalles de todas las solicitudes de aprobación de token (solicitudes de canje) que ha realizado.
public async getTokenApprovalRequestForUserByStatus(status: string)
Parámetros:
  • status: string: estado de la solicitud, que puede ser PENDING, REJECTED o APPROVED.
Ejemplo de Valor de Devolución:
[
   {
      "tokenName":"bond",
      "assetType":"otokenApproval",
      "id":"otokenApproval~5b2a94283ae95e3d6e5b76ffd6f75b7bff231e4df270a82cdc1f6badd17dea4b",
      "settlementId":"op1",
      "userBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
      "fromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "toAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "tokenId":"bond1",
      "quantity":2,
      "status":"APPROVED",
      "orderId":"op1",
      "redeemPrice":1,
      "purchasedPrice":11,
      "interestEarned":0
   },
   {
      "tokenName":"bond",
      "assetType":"otokenApproval",
      "id":"otokenApproval~fdf28b2d271ac9c0fbd94a2dedbf365728c77795f3e931e5a4a2dcf48039a989",
      "settlementId":"op3",
      "userBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op3",
      "fromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "toAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "tokenId":"bond1",
      "quantity":1,
      "status":"APPROVED",
      "orderId":"op3",
      "redeemPrice":11,
      "purchasedPrice":11,
      "interestEarned":0
   }
]
getAccountBondSummary
Cualquier titular de cuenta puede llamar a este método de obtención para obtener un resumen de la cuenta que incluya los detalles de los tokens comprados o canjeados y el precio de compra y el precio de canje.
public async getAccountBondSummary(orgId: string, userId: string)
Parámetros:
  • orgId: string: ID del proveedor de servicios de miembros (MSP) del usuario.
  • userId: string: nombre de usuario o ID de correo electrónico del usuario.
Ejemplo de Valor de Devolución:
{

   "userAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
   "orgId":"BondMPTest",
   "userId":"u10",
   "accountSummary":[
      {
         "purchasedQuantity":1,
         "assetType":"oUserBondDetails",
         "id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
         "tokenId":"bond1",
         "status":"Redeemed",
         "purchasedAmount":11,
         "purchasedDate":"2024-12-02T00:00:00.000Z",
         "purchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "orderId":"op1"
         "redeemPrice":11,
         "quantityRedeem":1,
         "redeemStatus":"REJECTED"
      },
      {
         "purchasedQuantity":1,
         "assetType":"oUserBondDetails",
         "id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op2",
         "tokenId":"bond1",
         "status":"Purchased",
         "purchasedAmount":11,
         "purchasedDate":"2024-12-02T00:00:00.000Z",
         "purchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "orderId":"op2",
         "redeemPrice":11,
         "quantityRedeem":1,
         "redeemStatus":"APPROVED"
      }
   ]
}
getAccountBondSummaryWithPagination
Cualquier titular de cuenta puede llamar a este método de obtención para obtener un resumen de la cuenta que incluya detalles de los tokens comprados o canjeados y el precio de compra y el precio de canje. Este método puede devolver resultados con paginación basada en valores de tamaño de página y marcador, y también filtrada por hora de inicio y hora de finalización.
public async getAccountBondSummaryWithPagination(orgId: string, userId: string, pageSize: number, bookmark?: string)
Parámetros:
  • orgId: string: ID del proveedor de servicios de miembros (MSP) del usuario.
  • userId: string: nombre de usuario o ID de correo electrónico del usuario.
  • pageSize: number: tamaño de página del resultado devuelto.
  • bookmark: string: marcador del resultado devuelto.
Ejemplo de Valor de Devolución:
{

   "userAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
   "orgId":"BondMPTest",
   "userId":"u10",
   "accountSummary":[
      {
         "purchasedQuantity":1,
         "assetType":"oUserBondDetails",
         "id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
         "tokenId":"bond1",
         "status":"Redeemed",
         "purchasedAmount":11,
         "purchasedDate":"2024-12-02T00:00:00.000Z",
         "purchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "orderId":"op1"
         "redeemPrice":11,
         "quantityRedeem":1,
         "redeemStatus":"REJECTED"
      },
      {
         "purchasedQuantity":1,
         "assetType":"oUserBondDetails",
         "id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op2",
         "tokenId":"bond1",
         "status":"Purchased",
         "purchasedAmount":11,
         "purchasedDate":"2024-12-02T00:00:00.000Z",
         "purchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "orderId":"op2",
         "redeemPrice":11,
         "quantityRedeem":1,
         "redeemStatus":"APPROVED"
      }
   ]
}

Métodos Go para Bond Marketplace

El código de cadenas del mercado de bonos incluye todos los métodos disponibles en el código de cadenas genérico ERC-1155 NFT. Están disponibles los siguientes métodos adicionales específicos para el escenario de mercado de bonos.
PostToken
Este método solo puede ser llamado por un creador de tokens. El método envía el token de bono para su inclusión en el mercado. Cuando se crea un token, su estado se define inicialmente en created. Este método actualiza el estado a posted. Los usuarios pueden ejecutar el método getAllTokensWithFilter para recuperar todos los NFT con el estado posted.
func (t *Controller) PostToken(tokenId string) (interface{}, error)
Parámetros:
  • tokenId: string: ID del token que se va a publicar.
Ejemplo de Valor de Devolución:
{
         "isValid":true,
         "payload":{
            "tokenMetadata":{
               "ISIN":"ISIN value",
               "Segment":"Segment value",
               "Issuer":"Issuer value",
               "FaceValue":10,
               "IssueSize":999,
               "CouponRate":10,
               "InterestPaymentType":"simple",
               "InterestFrequency":"monthly",
               "IssueDate":"2023-03-28T15:16:36.000Z",
               "MaturityDate":"2023-03-28T15:16:36.000Z"
            },
            "AssetType":"otoken",
            "Events":true,
            "TokenId":"bond1",
            "TokenName":"bond",
            "TokenDesc":"tokenDesc value",
            "TokenStandard":"erc1155+",
            "TokenType":"nonfungible",
            "TokenUnit":"fractional",
            "Behaviors":[
               "divisible",
               "mintable",
               "transferable",
               "burnable",
               "roles"
            ],
            "Roles":{
               "minter_role_name":"minter",
               "burner_role_name":"burner"
            },
            "Mintable":{
               "max_mint_quantity":0
            },
            "Quantity":100,
            "CreatedBy":"oaccount~276bcf1324b1ad1e493e22432db3b39f7a4b9bb17b8525c0391ea3ba36138e00",
            "CreationDate":"2024-12-02T12:42:09.000Z",
            "Divisible":{
               "decimal":0
            },
            "IsBurned":false,
            "IsLocked":false,
            "TokenUri":"tokenUri value",
            "Status":"created"
         },
         "message":"Successfully updated asset with ID bond1"
      }
PurchaseToken
Este método puede ser llamado por cualquier titular de cuenta para comprar un bono NFT. La compra transfiere el bono NFT de la cuenta del creador a la cuenta del emisor de la llamada y transfiere tokens CBDC de la cuenta del emisor de la llamada a la cuenta del creador. Debido a esto, el método se debe ejecutar en el contexto de una transacción atómica. El método también verifica el proceso de transferencia, lo que garantiza que se llame al código de cadena CBDC adecuado con los valores orgId y userId correctos para la transferencia. orgId y userId deben corresponder al creador del token, y el valor de transferencia del token CBDC debe ser igual al valor nominal del token de bono multiplicado por la cantidad que se compra.
func (t *Controller) PurchaseToken(tokenId string, quantity float64, orderId string, additionalFees float64) (interface{}, error)
Parámetros:
  • tokenId: string: ID del token que se va a comprar.
  • quantity: number: cantidad de tokens para comprar.
  • orderId: string: ID de pedido de la operación de compra.
  • additionalFees: number – Las tarifas adicionales que se suman al precio de compra.
Ejemplo de Valor de Devolución:
{
   "returnCode":"Success",
   "error":"",
   "result":{
      "transactions":[
         {
            "channel":"test",
            "chaincode":"BondMarketplace",
            "txstatus":"Committed",
            "prepare":{
               "txid":"e969f962df5efda2ea6287380e308cc974efd79dfff3567840ed3844bf936160"
            },
            "commit":{
               "txid":"5544e928d3242291fb39189e8329679a9c81d61d6f72db60ca89135cd20fffef"
            },
            "rollback":{
               
            }
         },
         {
            "channel":"cbdctest",
            "chaincode":"cbdc",
            "txstatus":"Committed",
            "prepare":{
               "txid":"1245885b1a0c7f12c41fa2f2905549b8a5f37ab3a5e094b9dca122cb0611a117"
            },
            "commit":{
               "txid":"3c83e20c7d470cdc9c1b0e2e0ea8d9962d58ada8d1b8f0d2606c8aa1f0ae7741"
            },
            "rollback":{
               
            }
         }
      ],
      "lrc":{
         
      },
      "globalStatus":"Success",
      "globalTxid":"761bb7cc-1d66-4645-aeb2-50e4dbd23d83",
      "txStartTime":"2024-12-05T12:01:21.881988035Z"
   }
}
PayInterest
Este método solo puede ser llamado por el creador o administrador del token para pagar los intereses obtenidos en el token del bono. Este método solo se puede llamar si la frecuencia de interés del token es mensual, trimestral o anual. No se puede pagar el interés si la frecuencia de interés está al vencimiento. El código de cadenas calcula el interés en función del tipo de cupón del token. La operación de compra transfiere tokens CBDC de la cuenta del emisor de la llamada a la cuenta del propietario del bono. Debido a esto, este método se debe ejecutar en el contexto de una transacción atómica. El método también verifica el proceso de transferencia, lo que garantiza que se llame al código de cadena CBDC adecuado con los valores orgId y userId correctos para la transferencia. orgId y userId deben corresponder al propietario del token, y el valor de transferencia del token CBDC debe ser igual al interés calculado por el código de cadena de bonos.
func (t *Controller) PayInterestEarned(orgId string, userId string, tokenId string, orderId string, additionalFees float64) (interface{}, error)
Parámetros:
  • orgId: string: ID del proveedor de servicios de miembros (MSP) del usuario.
  • userId: string: nombre de usuario o ID de correo electrónico del usuario.
  • tokenId: string: ID del token.
  • orderId: string: ID de pedido de la operación de compra.
Ejemplo de Valor de Devolución:
{
   "returnCode":"Success",
   "error":"",
   "result":{
      "transactions":[
         {
            "channel":"test",
            "chaincode":"BondMarketplace",
            "txstatus":"Committed",
            "prepare":{
               "txid":"e969f962df5efda2ea6287380e308cc974efd79dfff3567840ed3844bf936160"
            },
            "commit":{
               "txid":"5544e928d3242291fb39189e8329679a9c81d61d6f72db60ca89135cd20fffef"
            },
            "rollback":{
               
            }
         },
         {
            "channel":"cbdctest",
            "chaincode":"cbdc",
            "txstatus":"Committed",
            "prepare":{
               "txid":"1245885b1a0c7f12c41fa2f2905549b8a5f37ab3a5e094b9dca122cb0611a117"
            },
            "commit":{
               "txid":"3c83e20c7d470cdc9c1b0e2e0ea8d9962d58ada8d1b8f0d2606c8aa1f0ae7741"
            },
            "rollback":{
               
            }
         }
      ],
      "lrc":{
         
      },
      "globalStatus":"Success",
      "globalTxid":"761bb7cc-1d66-4645-aeb2-50e4dbd23d83",
      "txStartTime":"2024-12-05T12:01:21.881988035Z"
   }
}
RequestTokenRedemption
Este método solo puede ser llamado por el propietario del token para presentar una solicitud para el canje de tokens de bonos después del vencimiento. Este método también implica el cálculo del precio de canje por el código de cadenas. Las solicitudes de canje solo se pueden generar en toda la cantidad del token de bono que posee el usuario. Los usuarios pueden generar varias solicitudes de canje en función de diferentes ID de liquidación, pero solo uno puede ser aprobado por el creador del token.
func (t *Controller) RequestTokenRedemption(settlementId string, tokenId string, orderId string, additionalFees float64) (interface{}, error)
Parámetros:
  • settlementId: string: ID de liquidación para la operación de canje.
  • tokenId: string: ID del token.
  • orderId: string: ID de pedido de la operación de compra.
  • additionalFees: number – Las tarifas adicionales que se añaden al precio de canje.
Ejemplo de Valor de Devolución:
{
         "TokenName":"bond",
         "AssetType":"otokenApproval",
         "Id":"otokenApproval~9e006057ac96ae997e3964531b1a08ad2316555701c7fe9ec7b88e38e20892bf",
         "SettlementId":"op4",
         "UserBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op4",
         "FromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
         "ToAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "TokenId":"bond1",
         "Quantity":1,
         "Status":"PENDING",
         "OrderId":"op4",
         "RedeemPrice":11
}
ApproveTokenRedemption
Este método solo puede ser llamado por el creador del token para aprobar una solicitud para el canje de tokens de bonos. La operación de aprobación transfiere el bono NFT de la cuenta del propietario (el usuario que presentó la solicitud) a la cuenta del creador, y transfiere tokens CBDC del creador del bono a la cuenta del propietario. Debido a esto, este método se debe ejecutar en el contexto de una transacción atómica. El método también verifica el proceso de transferencia, lo que garantiza que se llame al código de cadena CBDC adecuado con los valores orgId y userId correctos para la transferencia. orgId y userId deben corresponder a la cuenta del propietario del token que ha generado la solicitud de canje, y el valor de transferencia del token de CBDC debe ser igual al precio de canje calculado que ha calculado el código de cadena al generar la solicitud de canje.
func (t *Controller) ApproveRedemption(fromOrgId string, fromUserId string, settlementId string, tokenId string) (interface{}, error)
Parámetros:
  • fromOrgId: string: ID del proveedor de servicios de miembros (MSP) del usuario.
  • fromUserId: string: nombre de usuario o ID de correo electrónico del usuario.
  • settlementId: string: ID de liquidación para la operación de canje.
  • tokenId: string: ID del token.
Ejemplo de Valor de Devolución:
{
   "returnCode":"Success",
   "error":"",
   "result":{
      "transactions":[
         {
            "channel":"test",
            "chaincode":"BondMarketplace",
            "txstatus":"Committed",
            "prepare":{
               "txid":"e969f962df5efda2ea6287380e308cc974efd79dfff3567840ed3844bf936160"
            },
            "commit":{
               "txid":"5544e928d3242291fb39189e8329679a9c81d61d6f72db60ca89135cd20fffef"
            },
            "rollback":{
               
            }
         },
         {
            "channel":"cbdctest",
            "chaincode":"cbdc",
            "txstatus":"Committed",
            "prepare":{
               "txid":"1245885b1a0c7f12c41fa2f2905549b8a5f37ab3a5e094b9dca122cb0611a117"
            },
            "commit":{
               "txid":"3c83e20c7d470cdc9c1b0e2e0ea8d9962d58ada8d1b8f0d2606c8aa1f0ae7741"
            },
            "rollback":{
               
            }
         }
      ],
      "lrc":{
         
      },
      "globalStatus":"Success",
      "globalTxid":"761bb7cc-1d66-4645-aeb2-50e4dbd23d83",
      "txStartTime":"2024-12-05T12:01:21.881988035Z"
   }
}
RejectRedemption
El creador del token puede llamar a este método para rechazar la solicitud de canje. Los propietarios de tokens pueden volver a generar una solicitud de canje utilizando un ID de liquidación diferente.
func (t *Controller) RejectRedemption(fromOrgId string, fromUserId string, settlementId string, tokenId string) (interface{}, error)
Parámetros:
  • fromOrgId: string: ID del proveedor de servicios de miembros (MSP) del usuario.
  • fromUserId: string: nombre de usuario o ID de correo electrónico del usuario.
  • settlementId: string: ID de liquidación para la operación de canje.
  • tokenId: string: ID del token.
Ejemplo de Valor de Devolución:
{
   "status":"success",
   "msg":"Successfully rejected the token approval request"
}
GetAllTokensWithFilter
El administrador puede llamar a este método get para recuperar todos los tokens filtrados por estado, ya sea CREATED o POSTED.
func (t *Controller) GetAllTokensWithFilters(status string, pageSize int32, bookmark string)
Parámetros:
  • status: string: estado del token, que puede ser CREATED o POSTED.
  • pageSize: number: tamaño de página del resultado devuelto.
  • bookmark: string: marcador del resultado devuelto.
Ejemplo de Valor de Devolución:
[ {

               "ISIN":"ISIN value",
               "Segment":"Segment value",
               "Issuer":"Issuer value",
               "FaceValue":10,
               "IssueSize":999,
               "CouponRate":10,
               "InterestPaymentType":"simple",
               "InterestFrequency":"monthly",
               "IssueDate":"2023-03-28T15:16:36.000Z",
               "MaturityDate":"2023-03-28T15:16:36.000Z"
            },
            "AssetType":"otoken",
            "Events":true,
            "TokenId":"bond1",
            "TokenName":"bond",
            "TokenDesc":"tokenDesc value",
            "TokenStandard":"erc1155+",
            "TokenType":"nonfungible",
            "TokenUnit":"fractional",
            "Behaviors":[
               "divisible",
               "mintable",
               "transferable",
               "burnable",
               "roles"
            ],
            "Roles":{
               "minter_role_name":"minter",
               "burner_role_name":"burner"
            },
            "Mintable":{
               "max_mint_quantity":0
            },
            "Quantity":100,
            "CreatedBy":"oaccount~276bcf1324b1ad1e493e22432db3b39f7a4b9bb17b8525c0391ea3ba36138e00",
            "CreationDate":"2024-12-02T12:42:09.000Z",
            "Divisible":{
               "decimal":0
            },
            "IsBurned":false,
            "IsLocked":false,
            "TokenUri":"tokenUri value",
            "Status":"posted"
         }

]
GetTokenApprovalRequestByUser
Cualquier titular de cuenta puede llamar a este método get para obtener los detalles de todas las solicitudes de aprobación de token (solicitudes de canje) que ha realizado.
func (t *Controller) GetTokenApprovalRequestByUser(status string) (interface{}, error)
Parámetros:
  • status: string: estado de la solicitud, que puede ser PENDING, REJECTED o APPROVED.
Ejemplo de Valor de Devolución:
[
   {
      "TokenName":"bond",
      "AssetType":"otokenApproval",
      "Id":"otokenApproval~5b2a94283ae95e3d6e5b76ffd6f75b7bff231e4df270a82cdc1f6badd17dea4b",
      "SettlementId":"op1",
      "UserBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
      "FromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "ToAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "TokenId":"bond1",
      "Quantity":2,
      "Status":"APPROVED",
      "OrderId":"op1",
      "RedeemPrice":1,
      "PurchasedPrice":11,
      "InterestEarned":0
   },
   {
      "TokenName":"bond",
      "AssetType":"otokenApproval",
      "Id":"otokenApproval~fdf28b2d271ac9c0fbd94a2dedbf365728c77795f3e931e5a4a2dcf48039a989",
      "SettlementId":"op3",
      "UserBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op3",
      "FromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "ToAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "TokenId":"bond1",
      "Quantity":1,
      "Status":"APPROVED",
      "OrderId":"op3",
      "RedeemPrice":11,
      "PurchasedPrice":11,
      "InterestEarned":0
   }
]
GetTokenApprovalRequestForUserByStatus
Cualquier titular de cuenta puede llamar a este método get para obtener los detalles de todas las solicitudes de aprobación de token (solicitudes de canje) que ha realizado.
func (t *Controller) GetTokenApprovalRequestForUserByStatus(status string) (interface{}, error)
Parámetros:
  • status: string: estado de la solicitud, que puede ser PENDING, REJECTED o APPROVED.
Ejemplo de Valor de Devolución:
[
   {
      "TokenName":"bond",
      "AssetType":"otokenApproval",
      "Id":"otokenApproval~5b2a94283ae95e3d6e5b76ffd6f75b7bff231e4df270a82cdc1f6badd17dea4b",
      "SettlementId":"op1",
      "UserBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
      "FromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "ToAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "TokenId":"bond1",
      "Quantity":2,
      "Status":"APPROVED",
      "OrderId":"op1",
      "RedeemPrice":1,
      "PurchasedPrice":11,
      "InterestEarned":0
   },
   {
      "TokenName":"bond",
      "AssetType":"otokenApproval",
      "Id":"otokenApproval~fdf28b2d271ac9c0fbd94a2dedbf365728c77795f3e931e5a4a2dcf48039a989",
      "SettlementId":"op3",
      "UserBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op3",
      "FromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "ToAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "TokenId":"bond1",
      "Quantity":1,
      "Status":"APPROVED",
      "OrderId":"op3",
      "RedeemPrice":11,
      "PurchasedPrice":11,
      "InterestEarned":0
   }
]
GetAccountBondSummary
Cualquier titular de cuenta puede llamar a este método de obtención para obtener un resumen de la cuenta que incluya los detalles de los tokens comprados o canjeados y el precio de compra y el precio de canje.
func (t *Controller) GetAccountBondSummary(orgId string, userId string) (interface{}, error)
Parámetros:
  • orgId: string: ID del proveedor de servicios de miembros (MSP) del usuario.
  • userId: string: nombre de usuario o ID de correo electrónico del usuario.
Ejemplo de Valor de Devolución:
{

   "userAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
   "orgId":"BondMPTest",
   "userId":"u10",
   "accountSummary":[
      {
         "PurchasedQuantity":1,
         "AssetType":"oUserBondDetails",
         "Id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
         "TokenId":"bond1",
         "Status":"Redeemed",
         "PurchasedAmount":11,
         "PurchasedDate":"2024-12-02T00:00:00.000Z",
         "PurchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "OrderId":"op1"
         "RedeemPrice":11,
         "QuantityRedeem":1,
         "RedeemStatus":"REJECTED"
      },
      {
         "PurchasedQuantity":1,
         "AssetType":"oUserBondDetails",
         "Id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op2",
         "TokenId":"bond1",
         "Status":"Purchased",
         "PurchasedAmount":11,
         "PurchasedDate":"2024-12-02T00:00:00.000Z",
         "PurchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "OrderId":"op2",
         "RedeemPrice":11,
         "QuantityRedeem":1,
         "RedeemStatus":"APPROVED"
      }
   ]
}
GetAccountBondSummaryWithPagination
Cualquier titular de cuenta puede llamar a este método de obtención para obtener un resumen de la cuenta que incluya detalles de los tokens comprados o canjeados y el precio de compra y el precio de canje. Este método puede devolver resultados con paginación basada en valores de tamaño de página y marcador, y también filtrada por hora de inicio y hora de finalización.
func (t *Controller) GetAccountBondSummaryWithPagination(orgId string, userId string, pageSize int32, bookmark string) (interface{}, error)
Parámetros:
  • orgId: string: ID del proveedor de servicios de miembros (MSP) del usuario.
  • userId: string: nombre de usuario o ID de correo electrónico del usuario.
  • pageSize: number: tamaño de página del resultado devuelto.
  • bookmark: string: marcador del resultado devuelto.
Ejemplo de Valor de Devolución:
{

   "userAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
   "orgId":"BondMPTest",
   "userId":"u10",
   "accountSummary":[
      {
         "PurchasedQuantity":1,
         "AssetType":"oUserBondDetails",
         "Id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
         "TokenId":"bond1",
         "Status":"Redeemed",
         "PurchasedAmount":11,
         "PurchasedDate":"2024-12-02T00:00:00.000Z",
         "PurchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "OrderId":"op1"
         "RedeemPrice":11,
         "QuantityRedeem":1,
         "RedeemStatus":"REJECTED"
      },
      {
         "PurchasedQuantity":1,
         "AssetType":"oUserBondDetails",
         "Id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op2",
         "TokenId":"bond1",
         "Status":"Purchased",
         "PurchasedAmount":11,
         "PurchasedDate":"2024-12-02T00:00:00.000Z",
         "PurchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "OrderId":"op2",
         "RedeemPrice":11,
         "QuantityRedeem":1,
         "RedeemStatus":"APPROVED"
      }
   ]
}

TypeScript Métodos SDK para Bond Marketplace

payInterest
El creador o administrador del token puede llamar a este método para pagar los intereses devengados en un token de bono. Este método solo se puede llamar si la frecuencia de interés del token es mensual, trimestral o anual. No se puede pagar el interés si la frecuencia de interés está al vencimiento. El propio código de cadenas calcula el interés en función del tipo de cupón del token. La operación de compra transfiere tokens CBDC de la cuenta del emisor de la llamada a la cuenta del propietario del bono. Debido a esto, este método se debe ejecutar en el contexto de una transacción atómica. El método también verifica el proceso de transferencia, lo que garantiza que se llame al código de cadena CBDC adecuado con los valores orgId y userId correctos para la transferencia. orgId y userId deben corresponder al propietario del token, y el valor de transferencia del token CBDC debe ser igual al interés calculado por el código de cadena de bonos.
this.Ctx.ERC1155AccountBondSummary.payInterest(userAccountId, tokenId, orderId)
Parámetros:
  • userAccountId: string: ID de cuenta del usuario.
  • tokenId: string: ID del token.
  • orderId: string: ID de pedido de la operación de compra.
Ejemplo de Valor de Devolución:
{
         "purchasedQuantity":1,
         "assetType":"oUserBondDetails",
         "id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
         "tokenId":"bond1",
         "status":"Redeemed",
         "purchasedAmount":11,
         "purchasedDate":"2024-12-02T00:00:00.000Z",
         "purchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "orderId":"op1"
         "interestEarned": 11,
         "interestEarnedDate": "2024-12-02T00:00:00.000Z"
}
requestTokenRedemption
Este método solo puede ser llamado por el propietario del token para presentar una solicitud para el canje de tokens de bonos después del vencimiento. Este método también implica el cálculo del precio de canje por el código de cadenas. Las solicitudes de canje solo se pueden generar en toda la cantidad del token de bono que posee el usuario. Los usuarios pueden generar varias solicitudes de canje en función de diferentes ID de liquidación, pero solo uno puede ser aprobado por el creador del token.
this.Ctx.ERC1155TokenApproval.requestTokenRedemption(callerUserAccountId, settlementId, tokenId, orderId, quantity, additionalFees);
Parámetros:
  • callerUserAccountId: string: ID de cuenta del usuario.
  • settlementId: string: ID de liquidación para la operación de canje.
  • tokenId: string: ID del token.
  • orderId: string: ID de pedido de la operación de compra.
  • additionalFees: number – Las tarifas adicionales que se añaden al precio de canje.
Ejemplo de Valor de Devolución:
{
         "tokenName":"bond",
         "assetType":"otokenApproval",
         "id":"otokenApproval~9e006057ac96ae997e3964531b1a08ad2316555701c7fe9ec7b88e38e20892bf",
         "settlementId":"op4",
         "userBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op4",
         "fromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
         "toAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "tokenId":"bond1",
         "quantity":1,
         "status":"PENDING",
         "orderId":"op4",
         "redeemPrice":11
}
approveTokenRedemption
Este método solo puede ser llamado por el creador del token para aprobar una solicitud para el canje de tokens de bonos. La operación de aprobación transfiere el bono NFT de la cuenta del propietario (el usuario que presentó la solicitud) a la cuenta del creador, y transfiere tokens CBDC del creador del bono a la cuenta del propietario. Debido a esto, este método se debe ejecutar en el contexto de una transacción atómica. El método también verifica el proceso de transferencia, lo que garantiza que se llame al código de cadena CBDC adecuado con los valores orgId y userId correctos para la transferencia. orgId y userId deben corresponder a la cuenta del propietario del token que ha generado la solicitud de canje, y el valor de transferencia del token de CBDC debe ser igual al precio de canje calculado que ha calculado el código de cadena al generar la solicitud de canje.
this.Ctx.ERC1155TokenApproval.approveTokenApprovalRequest(fromUserAccountId, settlementId, tokenId)
Parámetros:
  • fromUserAccountId: string: ID de cuenta del usuario.
  • settlementId: string: ID de liquidación para la operación de canje.
  • tokenId: string: ID del token.
Ejemplo de Valor de Devolución:
{
   "status":"success",
   "msg":"Successfully approved the token approval request"
}
rejectRedemption
El creador del token puede llamar a este método para rechazar la solicitud de canje. Los propietarios de tokens pueden volver a generar una solicitud de canje utilizando un ID de liquidación diferente.
this.Ctx.ERC1155TokenApproval.rejectTokenApprovalRequest(fromUserAccountId, settlementId, tokenId)
Parámetros:
  • fromOrgId: string: ID del proveedor de servicios de miembros (MSP) del usuario.
  • fromUserId: string: nombre de usuario o ID de correo electrónico del usuario.
  • settlementId: string: ID de liquidación para la operación de canje.
  • tokenId: string: ID del token.
Ejemplo de Valor de Devolución:
{
   "status":"success",
   "msg":"Successfully rejected the token approval request"
}
getAllTokensWithFilter
El administrador puede llamar a este método get para recuperar todos los tokens filtrados por estado, ya sea CREATED o POSTED.
this.Ctx.ERC1155Token.getAllTokensWithFilters(status, pageSize, bookmark)
Parámetros:
  • status: string: estado del token, que puede ser CREATED o POSTED.
  • pageSize: number: tamaño de página del resultado devuelto.
  • bookmark: string: marcador del resultado devuelto.
Ejemplo de Valor de Devolución:
[{
            "tokenMetadata":{
               "ISIN":"ISIN value",
               "Segment":"Segment value",
               "Issuer":"Issuer value",
               "FaceValue":10,
               "IssueSize":999,
               "CouponRate":10,
               "InterestPaymentType":"simple",
               "InterestFrequency":"monthly",
               "IssueDate":"2023-03-28T15:16:36.000Z",
               "MaturityDate":"2023-03-28T15:16:36.000Z"
            },
            "assetType":"otoken",
            "events":true,
            "tokenId":"bond1",
            "tokenName":"bond",
            "tokenDesc":"tokenDesc value",
            "tokenStandard":"erc1155+",
            "tokenType":"nonfungible",
            "tokenUnit":"fractional",
            "behaviors":[
               "divisible",
               "mintable",
               "transferable",
               "burnable",
               "roles"
            ],
            "roles":{
               "minter_role_name":"minter",
               "burner_role_name":"burner"
            },
            "mintable":{
               "max_mint_quantity":0
            },
            "quantity":100,
            "createdBy":"oaccount~276bcf1324b1ad1e493e22432db3b39f7a4b9bb17b8525c0391ea3ba36138e00",
            "creationDate":"2024-12-02T12:42:09.000Z",
            "divisible":{
               "decimal":0
            },
            "isBurned":false,
            "isLocked":false,
            "tokenUri":"tokenUri value",
            "status":"posted"
         }

]
getTokenApprovalRequestByUser
Cualquier titular de cuenta puede llamar a este método get para obtener los detalles de todas las solicitudes de aprobación de token (solicitudes de canje) que ha realizado.
this.Ctx.ERC1155TokenApproval.getAllTokenApprovalRequestByUserByStatus(status)
Parámetros:
  • status: string: estado de la solicitud, que puede ser PENDING, REJECTED o APPROVED.
Ejemplo de Valor de Devolución:
[
   {
      "tokenName":"bond",
      "assetType":"otokenApproval",
      "id":"otokenApproval~5b2a94283ae95e3d6e5b76ffd6f75b7bff231e4df270a82cdc1f6badd17dea4b",
      "settlementId":"op1",
      "userBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
      "fromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "toAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "tokenId":"bond1",
      "quantity":2,
      "status":"APPROVED",
      "orderId":"op1",
      "redeemPrice":1,
      "purchasedPrice":11,
      "interestEarned":0
   },
   {
      "tokenName":"bond",
      "assetType":"otokenApproval",
      "id":"otokenApproval~fdf28b2d271ac9c0fbd94a2dedbf365728c77795f3e931e5a4a2dcf48039a989",
      "settlementId":"op3",
      "userBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op3",
      "fromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "toAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "tokenId":"bond1",
      "quantity":1,
      "status":"APPROVED",
      "orderId":"op3",
      "redeemPrice":11,
      "purchasedPrice":11,
      "interestEarned":0
   }
]
getTokenApprovalRequestForUserByStatus
Cualquier titular de cuenta puede llamar a este método get para obtener los detalles de todas las solicitudes de aprobación de token (solicitudes de canje) que ha realizado.
this.Ctx.ERC1155TokenApproval.getAllTokenApprovalRequestForUserByStatus(status)
Parámetros:
  • status: string: estado de la solicitud, que puede ser PENDING, REJECTED o APPROVED.
Ejemplo de Valor de Devolución:
[
   {
      "tokenName":"bond",
      "assetType":"otokenApproval",
      "id":"otokenApproval~5b2a94283ae95e3d6e5b76ffd6f75b7bff231e4df270a82cdc1f6badd17dea4b",
      "settlementId":"op1",
      "userBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
      "fromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "toAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "tokenId":"bond1",
      "quantity":2,
      "status":"APPROVED",
      "orderId":"op1",
      "redeemPrice":1,
      "purchasedPrice":11,
      "interestEarned":0
   },
   {
      "tokenName":"bond",
      "assetType":"otokenApproval",
      "id":"otokenApproval~fdf28b2d271ac9c0fbd94a2dedbf365728c77795f3e931e5a4a2dcf48039a989",
      "settlementId":"op3",
      "userBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op3",
      "fromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "toAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "tokenId":"bond1",
      "quantity":1,
      "status":"APPROVED",
      "orderId":"op3",
      "redeemPrice":11,
      "purchasedPrice":11,
      "interestEarned":0
   }
]
getAccountBondSummary
Cualquier titular de cuenta puede llamar a este método de obtención para obtener un resumen de la cuenta que incluya los detalles de los tokens comprados o canjeados y el precio de compra y el precio de canje.
this.Ctx.ERC1155AccountBondSummary.getAllAccountBondSummary(userAccountId)
Parámetros:
  • userAccountId: string: ID de cuenta del usuario.
Ejemplo de Valor de Devolución:
{

   "userAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
   "orgId":"BondMPTest",
   "userId":"u10",
   "accountSummary":[
      {
         "purchasedQuantity":1,
         "assetType":"oUserBondDetails",
         "id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
         "tokenId":"bond1",
         "status":"Redeemed",
         "purchasedAmount":11,
         "purchasedDate":"2024-12-02T00:00:00.000Z",
         "purchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "orderId":"op1"
         "redeemPrice":11,
         "quantityRedeem":1,
         "redeemStatus":"REJECTED"
      },
      {
         "purchasedQuantity":1,
         "assetType":"oUserBondDetails",
         "id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op2",
         "tokenId":"bond1",
         "status":"Purchased",
         "purchasedAmount":11,
         "purchasedDate":"2024-12-02T00:00:00.000Z",
         "purchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "orderId":"op2",
         "redeemPrice":11,
         "quantityRedeem":1,
         "redeemStatus":"APPROVED"
      }
   ]
}
getAccountBondSummaryWithPagination
Cualquier titular de cuenta puede llamar a este método de obtención para obtener un resumen de la cuenta que incluya detalles de los tokens comprados o canjeados y el precio de compra y el precio de canje. Este método puede devolver resultados con paginación basada en valores de tamaño de página y marcador, y también filtrada por hora de inicio y hora de finalización.
this.Ctx.ERC1155AccountBondSummary.getAllAccountBondSummaryWithPagination(userAccountId, pageSize, bookmark)
Parámetros:
  • userAccountId: string: ID de cuenta del usuario.
  • pageSize: number: tamaño de página del resultado devuelto.
  • bookmark: string: marcador del resultado devuelto.
Ejemplo de Valor de Devolución:
    {

       "userAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
       "orgId":"BondMPTest",
       "userId":"u10",
       "accountSummary":[
          {
             "purchasedQuantity":1,
             "assetType":"oUserBondDetails",
             "id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
             "tokenId":"bond1",
             "status":"Redeemed",
             "purchasedAmount":11,
             "purchasedDate":"2024-12-02T00:00:00.000Z",
             "purchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
             "orderId":"op1"
             "redeemPrice":11,
             "quantityRedeem":1,
             "redeemStatus":"REJECTED"
          },
          {
             "purchasedQuantity":1,
             "assetType":"oUserBondDetails",
             "id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op2",
             "tokenId":"bond1",
             "status":"Purchased",
             "purchasedAmount":11,
             "purchasedDate":"2024-12-02T00:00:00.000Z",
             "purchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
             "orderId":"op2",
             "redeemPrice":11,
             "quantityRedeem":1,
             "redeemStatus":"APPROVED"
          }
       ]
    }

    	

    On success, it returns a message.

    {

       "userAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
       "orgId":"BondMPTest",
       "userId":"u10",
       "accountSummary":[
          {
             "PurchasedQuantity":1,
             "AssetType":"oUserBondDetails",
             "Id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
             "TokenId":"bond1",
             "Status":"Redeemed",
             "PurchasedAmount":11,
             "PurchasedDate":"2024-12-02T00:00:00.000Z",
             "PurchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
             "OrderId":"op1"
             "RedeemPrice":11,
             "QuantityRedeem":1,
             "RedeemStatus":"REJECTED"
          },
          {
             "PurchasedQuantity":1,
             "AssetType":"oUserBondDetails",
             "Id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op2",
             "TokenId":"bond1",
             "Status":"Purchased",
             "PurchasedAmount":11,
             "PurchasedDate":"2024-12-02T00:00:00.000Z",
             "PurchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
             "OrderId":"op2",
             "RedeemPrice":11,
             "QuantityRedeem":1,
             "RedeemStatus":"APPROVED"
          }
       ]
    }

Métodos de SDK de Go para Bond Marketplace

PayInterest
El creador o administrador del token puede llamar a este método para pagar los intereses devengados en un token de bono. Este método solo se puede llamar si la frecuencia de interés del token es mensual, trimestral o anual. No se puede pagar el interés si la frecuencia de interés está al vencimiento. El propio código de cadenas calcula el interés en función del tipo de cupón del token. La operación de compra transfiere tokens CBDC de la cuenta del emisor de la llamada a la cuenta del propietario del bono. Debido a esto, este método se debe ejecutar en el contexto de una transacción atómica. El método también verifica el proceso de transferencia, lo que garantiza que se llame al código de cadena CBDC adecuado con los valores orgId y userId correctos para la transferencia. orgId y userId deben corresponder al propietario del token, y el valor de transferencia del token CBDC debe ser igual al interés calculado por el código de cadena de bonos.
t.Ctx.ERC1155AccountBondSummary.PayInterestEarned(userAccountId, tokenId, orderId, additionalFees)
Parámetros:
  • userAccountId: string: ID de cuenta del usuario.
  • tokenId: string: ID del token.
  • orderId: string: ID de pedido de la operación de compra.
Ejemplo de Valor de Devolución:
{
         "PurchasedQuantity":1,
         "AssetType":"oUserBondDetails",
         "Id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
         "TokenId":"bond1",
         "Status":"Redeemed",
         "PurchasedAmount":11,
         "PurchasedDate":"2024-12-02T00:00:00.000Z",
         "PurchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "OrderId":"op1"
         "InterestEarned": 11,
         "InterestEarnedDate": "2024-12-02T00:00:00.000Z"

}
RequestTokenRedemption
Este método solo puede ser llamado por el propietario del token para presentar una solicitud para el canje de tokens de bonos después del vencimiento. Este método también implica el cálculo del precio de canje por el código de cadenas. Las solicitudes de canje solo se pueden generar en toda la cantidad del token de bono que posee el usuario. Los usuarios pueden generar varias solicitudes de canje en función de diferentes ID de liquidación, pero solo uno puede ser aprobado por el creador del token.
t.Ctx.ERC1155TokenApproval.RequestTokenRedemption(callerUserAccountId, settlementId, tokenId, orderId, quantity, additionalFees)
Parámetros:
  • callerUserAccountId: string: ID de cuenta del usuario.
  • settlementId: string: ID de liquidación para la operación de canje.
  • tokenId: string: ID del token.
  • orderId: string: ID de pedido de la operación de compra.
  • additionalFees: number – Las tarifas adicionales que se añaden al precio de canje.
Ejemplo de Valor de Devolución:
{
         "TokenName":"bond",
         "AssetType":"otokenApproval",
         "Id":"otokenApproval~9e006057ac96ae997e3964531b1a08ad2316555701c7fe9ec7b88e38e20892bf",
         "SettlementId":"op4",
         "UserBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op4",
         "FromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
         "ToAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "TokenId":"bond1",
         "Quantity":1,
         "Status":"PENDING",
         "OrderId":"op4",
         "RedeemPrice":11
}
ApproveTokenRedemption
Este método solo puede ser llamado por el creador del token para aprobar una solicitud para el canje de tokens de bonos. La operación de aprobación transfiere el bono NFT de la cuenta del propietario (el usuario que presentó la solicitud) a la cuenta del creador, y transfiere tokens CBDC del creador del bono a la cuenta del propietario. Debido a esto, este método se debe ejecutar en el contexto de una transacción atómica. El método también verifica el proceso de transferencia, lo que garantiza que se llame al código de cadena CBDC adecuado con los valores orgId y userId correctos para la transferencia. orgId y userId deben corresponder a la cuenta del propietario del token que ha generado la solicitud de canje, y el valor de transferencia del token de CBDC debe ser igual al precio de canje calculado que ha calculado el código de cadena al generar la solicitud de canje.
t.Ctx.ERC1155TokenApproval.ApproveTokenApprovalRequest(fromUserAccountId, settlementId, tokenId)
Parámetros:
  • fromUserAccountId: string: ID de cuenta del usuario.
  • settlementId: string: ID de liquidación para la operación de canje.
  • tokenId: string: ID del token.
Ejemplo de Valor de Devolución:
{
   "status":"success",
   "msg":"Successfully approved the token approval request"
}
RejectRedemption
El creador del token puede llamar a este método para rechazar la solicitud de canje. Los propietarios de tokens pueden volver a generar una solicitud de canje utilizando un ID de liquidación diferente.
t.Ctx.ERC1155TokenApproval.RejectTokenApprovalRequest(fromUserAccountId, settlementId, tokenId)
Parámetros:
  • fromOrgId: string: ID del proveedor de servicios de miembros (MSP) del usuario.
  • fromUserId: string: nombre de usuario o ID de correo electrónico del usuario.
  • settlementId: string: ID de liquidación para la operación de canje.
  • tokenId: string: ID del token.
Ejemplo de Valor de Devolución:
{
   "status":"success",
   "msg":"Successfully rejected the token approval request"
}
GetAllTokensWithFilter
El administrador puede llamar a este método get para recuperar todos los tokens filtrados por estado, ya sea CREATED o POSTED.
t.Ctx.ERC1155Token.GetAllTokensWithFilters(status, pageSize, bookmark)
Parámetros:
  • status: string: estado del token, que puede ser CREATED o POSTED.
  • pageSize: number: tamaño de página del resultado devuelto.
  • bookmark: string: marcador del resultado devuelto.
Ejemplo de Valor de Devolución:
[ {

               "ISIN":"ISIN value",
               "Segment":"Segment value",
               "Issuer":"Issuer value",
               "FaceValue":10,
               "IssueSize":999,
               "CouponRate":10,
               "InterestPaymentType":"simple",
               "InterestFrequency":"monthly",
               "IssueDate":"2023-03-28T15:16:36.000Z",
               "MaturityDate":"2023-03-28T15:16:36.000Z"
            },
            "AssetType":"otoken",
            "Events":true,
            "TokenId":"bond1",
            "TokenName":"bond",
            "TokenDesc":"tokenDesc value",
            "TokenStandard":"erc1155+",
            "TokenType":"nonfungible",
            "TokenUnit":"fractional",
            "Behaviors":[
               "divisible",
               "mintable",
               "transferable",
               "burnable",
               "roles"
            ],
            "Roles":{
               "minter_role_name":"minter",
               "burner_role_name":"burner"
            },
            "Mintable":{
               "max_mint_quantity":0
            },
            "Quantity":100,
            "CreatedBy":"oaccount~276bcf1324b1ad1e493e22432db3b39f7a4b9bb17b8525c0391ea3ba36138e00",
            "CreationDate":"2024-12-02T12:42:09.000Z",
            "Divisible":{
               "decimal":0
            },
            "IsBurned":false,
            "IsLocked":false,
            "TokenUri":"tokenUri value",
            "Status":"posted"
         }
]
GetTokenApprovalRequestByUser
Cualquier titular de cuenta puede llamar a este método get para obtener los detalles de todas las solicitudes de aprobación de token (solicitudes de canje) que ha realizado.
t.Ctx.ERC1155TokenApproval.GetAllTokenApprovalRequestByUserByStatus(status)
Parámetros:
  • status: string: estado de la solicitud, que puede ser PENDING, REJECTED o APPROVED.
Ejemplo de Valor de Devolución:
[
   {
      "TokenName":"bond",
      "AssetType":"otokenApproval",
      "Id":"otokenApproval~5b2a94283ae95e3d6e5b76ffd6f75b7bff231e4df270a82cdc1f6badd17dea4b",
      "SettlementId":"op1",
      "UserBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
      "FromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "ToAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "TokenId":"bond1",
      "Quantity":2,
      "Status":"APPROVED",
      "OrderId":"op1",
      "RedeemPrice":1,
      "PurchasedPrice":11,
      "InterestEarned":0
   },
   {
      "TokenName":"bond",
      "AssetType":"otokenApproval",
      "Id":"otokenApproval~fdf28b2d271ac9c0fbd94a2dedbf365728c77795f3e931e5a4a2dcf48039a989",
      "SettlementId":"op3",
      "UserBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op3",
      "FromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "ToAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "TokenId":"bond1",
      "Quantity":1,
      "Status":"APPROVED",
      "OrderId":"op3",
      "RedeemPrice":11,
      "PurchasedPrice":11,
      "InterestEarned":0
   }
]
GetTokenApprovalRequestForUserByStatus
Cualquier titular de cuenta puede llamar a este método get para obtener los detalles de todas las solicitudes de aprobación de token (solicitudes de canje) que ha realizado.
t.Ctx.ERC1155TokenApproval.GetAllTokenApprovalRequestForUserByStatus(status)
Parámetros:
  • status: string: estado de la solicitud, que puede ser PENDING, REJECTED o APPROVED.
Ejemplo de Valor de Devolución:
[
   {
      "TokenName":"bond",
      "AssetType":"otokenApproval",
      "Id":"otokenApproval~5b2a94283ae95e3d6e5b76ffd6f75b7bff231e4df270a82cdc1f6badd17dea4b",
      "SettlementId":"op1",
      "UserBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
      "FromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "ToAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "TokenId":"bond1",
      "Quantity":2,
      "Status":"APPROVED",
      "OrderId":"op1",
      "RedeemPrice":1,
      "PurchasedPrice":11,
      "InterestEarned":0
   },
   {
      "TokenName":"bond",
      "AssetType":"otokenApproval",
      "Id":"otokenApproval~fdf28b2d271ac9c0fbd94a2dedbf365728c77795f3e931e5a4a2dcf48039a989",
      "SettlementId":"op3",
      "UserBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op3",
      "FromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "ToAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "TokenId":"bond1",
      "Quantity":1,
      "Status":"APPROVED",
      "OrderId":"op3",
      "RedeemPrice":11,
      "PurchasedPrice":11,
      "InterestEarned":0
   }
]
GetAccountBondSummary
Cualquier titular de cuenta puede llamar a este método de obtención para obtener un resumen de la cuenta que incluya los detalles de los tokens comprados o canjeados y el precio de compra y el precio de canje.
t.Ctx.ERC1155AccountBondSummary.GetAllAccountBondSummary(userAccountId)
Parámetros:
  • userAccountId: string: ID de cuenta del usuario.
Ejemplo de Valor de Devolución:
{

   "userAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
   "orgId":"BondMPTest",
   "userId":"u10",
   "accountSummary":[
      {
         "PurchasedQuantity":1,
         "AssetType":"oUserBondDetails",
         "Id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
         "TokenId":"bond1",
         "Status":"Redeemed",
         "PurchasedAmount":11,
         "PurchasedDate":"2024-12-02T00:00:00.000Z",
         "PurchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "OrderId":"op1"
         "RedeemPrice":11,
         "QuantityRedeem":1,
         "RedeemStatus":"REJECTED"
      },
      {
         "PurchasedQuantity":1,
         "AssetType":"oUserBondDetails",
         "Id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op2",
         "TokenId":"bond1",
         "Status":"Purchased",
         "PurchasedAmount":11,
         "PurchasedDate":"2024-12-02T00:00:00.000Z",
         "PurchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "OrderId":"op2",
         "RedeemPrice":11,
         "QuantityRedeem":1,
         "RedeemStatus":"APPROVED"
      }
   ]
}
GetAccountBondSummaryWithPagination
Cualquier titular de cuenta puede llamar a este método de obtención para obtener un resumen de la cuenta que incluya detalles de los tokens comprados o canjeados y el precio de compra y el precio de canje. Este método puede devolver resultados con paginación basada en valores de tamaño de página y marcador, y también filtrada por hora de inicio y hora de finalización.
t.Ctx.ERC1155AccountBondSummary.GetAllAccountBondSummaryWithPagination(userAccountId, pageSize, bookmark)
Parámetros:
  • userAccountId: string: ID de cuenta del usuario.
  • pageSize: number: tamaño de página del resultado devuelto.
  • bookmark: string: marcador del resultado devuelto.
Ejemplo de Valor de Devolución:
{

   "userAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
   "orgId":"BondMPTest",
   "userId":"u10",
   "accountSummary":[
      {
         "PurchasedQuantity":1,
         "AssetType":"oUserBondDetails",
         "Id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
         "TokenId":"bond1",
         "Status":"Redeemed",
         "PurchasedAmount":11,
         "PurchasedDate":"2024-12-02T00:00:00.000Z",
         "PurchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "OrderId":"op1"
         "RedeemPrice":11,
         "QuantityRedeem":1,
         "RedeemStatus":"REJECTED"
      },
      {
         "PurchasedQuantity":1,
         "AssetType":"oUserBondDetails",
         "Id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op2",
         "TokenId":"bond1",
         "Status":"Purchased",
         "PurchasedAmount":11,
         "PurchasedDate":"2024-12-02T00:00:00.000Z",
         "PurchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "OrderId":"op2",
         "RedeemPrice":11,
         "QuantityRedeem":1,
         "RedeemStatus":"APPROVED"
      }
   ]
}