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 bond marketplace.

TypeScript Métodos para Bond Marketplace

El código de cadena de mercado de bonos incluye todos los métodos disponibles en el código de cadena ERC-1155 NFT genérico. Están disponibles los siguientes métodos adicionales que son específicos del escenario de mercado de bonos.
postToken
Este método solo puede ser llamado por un creador de token. 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: number)
Parámetros:
  • tokenId: number: ID del token que se va a publicar.
Ejemplo de valor devuelto:
{
         "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":"1",
            "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 una NFT de bonos listados. La compra transfiere el bono NFT de la cuenta del creador a la cuenta del emisor de llamada, y transfiere tokens CBDC de la cuenta del emisor de llamada a la cuenta del creador. Por este motivo, 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 y 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 de token CBDC debe ser igual al valor nominal del token de bono multiplicado por la cantidad que se compra.
public async purchaseToken(tokenId: number, quantity: number, orderId: string, additionalFees: number)
Parámetros:
  • tokenId: number: ID del token que se va a comprar.
  • quantity: number: cantidad de tokens que se van a comprar.
  • orderId: string: ID de pedido de la operación de compra.
  • additionalFees: number – Las tarifas adicionales para añadir al precio de compra.
Ejemplo de valor devuelto:
{
   "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 ganados 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 interés se calcula mediante el código de cadena en función del tipo de cupón del token. La operación de compra transfiere tokens CBDC desde la cuenta del emisor de llamada a la cuenta del propietario del bono. Por este motivo, 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 y 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: number, orderId: string)
Parámetros:
  • orgId: string: ID del proveedor de servicios de membresía (MSP) del usuario.
  • userId: string: nombre de usuario o ID de correo electrónico del usuario.
  • tokenId: number: ID del token.
  • orderId: string: ID de pedido de la operación de compra.
Ejemplo de valor devuelto:
{
   "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 generar 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 rescate por el código de cadena. Las solicitudes de canje solo se pueden generar en la cantidad completa del token de bono que posee el usuario. Los usuarios pueden emitir varias solicitudes de canje basadas en diferentes ID de liquidación, pero solo uno puede ser aprobado por el creador del token.
public async requestTokenRedemption(settlementId: string, tokenId: number, orderId: string, additionalFees: number)
Parámetros:
  • settlementId: string: ID de liquidación para la operación de rescate.
  • tokenId: number: ID del token.
  • orderId: string: ID de pedido de la operación de compra.
  • additionalFees: number – Las tarifas adicionales para añadir al precio de canje.
Ejemplo de valor devuelto:
{
         "tokenName":"bond",
         "assetType":"otokenApproval",
         "id":"otokenApproval~9e006057ac96ae997e3964531b1a08ad2316555701c7fe9ec7b88e38e20892bf",
         "settlementId":"op4",
         "userBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op4",
         "fromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
         "toAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "tokenId":"1",
         "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 NFT del bono de la cuenta del propietario (el usuario que emitió la solicitud) a la cuenta del creador y transfiere tokens CBDC del creador del bono a la cuenta del propietario. Por este motivo, 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 y 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 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: number)
Parámetros:
  • fromOrgId: string: ID del proveedor de servicios de membresía (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 rescate.
  • tokenId: number: ID del token.
Ejemplo de valor devuelto:
{
   "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 mediante un ID de liquidación diferente.
public async rejectRedemption(fromOrgId: string, fromUserId: string, settlementId: string, tokenId: number)
Parámetros:
  • fromOrgId: string: ID del proveedor de servicios de membresía (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 rescate.
  • tokenId: number: ID del token.
Ejemplo de valor devuelto:
{
   "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 devuelto:
[{
            "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":"1",
            "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 han realizado.
public async getTokenApprovalRequestByUser(status: string)
Parámetros:
  • status: string: estado de la solicitud, que puede ser PENDING, REJECTED o APPROVED.
Ejemplo de valor devuelto:
[
   {
      "tokenName":"bond",
      "assetType":"otokenApproval",
      "id":"otokenApproval~5b2a94283ae95e3d6e5b76ffd6f75b7bff231e4df270a82cdc1f6badd17dea4b",
      "settlementId":"op1",
      "userBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
      "fromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "toAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "tokenId":"1",
      "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":"1",
      "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 han realizado.
public async getTokenApprovalRequestForUserByStatus(status: string)
Parámetros:
  • status: string: estado de la solicitud, que puede ser PENDING, REJECTED o APPROVED.
Ejemplo de valor devuelto:
[
   {
      "tokenName":"bond",
      "assetType":"otokenApproval",
      "id":"otokenApproval~5b2a94283ae95e3d6e5b76ffd6f75b7bff231e4df270a82cdc1f6badd17dea4b",
      "settlementId":"op1",
      "userBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
      "fromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "toAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "tokenId":"1",
      "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":"1",
      "quantity":1,
      "status":"APPROVED",
      "orderId":"op3",
      "redeemPrice":11,
      "purchasedPrice":11,
      "interestEarned":0
   }
]
getAccountBondSummary
Cualquier titular de cuenta puede llamar a este método get para obtener un resumen de la cuenta que incluye 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 membresía (MSP) del usuario.
  • userId: string: nombre de usuario o ID de correo electrónico del usuario.
Ejemplo de valor devuelto:
{

   "userAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
   "orgId":"BondMPTest",
   "userId":"u10",
   "accountSummary":[
      {
         "purchasedQuantity":1,
         "assetType":"oUserBondDetails",
         "id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
         "tokenId":"1",
         "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":"1",
         "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 get para obtener un resumen de la cuenta que incluye 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 membresía (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 devuelto:
{

   "userAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
   "orgId":"BondMPTest",
   "userId":"u10",
   "accountSummary":[
      {
         "purchasedQuantity":1,
         "assetType":"oUserBondDetails",
         "id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
         "tokenId":"1",
         "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":"1",
         "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 cadena de mercado de bonos incluye todos los métodos disponibles en el código de cadena ERC-1155 NFT genérico. Están disponibles los siguientes métodos adicionales que son específicos del escenario de mercado de bonos.
PostToken
Este método solo puede ser llamado por un creador de token. 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 float64) (interface{}, error)
Parámetros:
  • tokenId: float64: ID del token que se va a publicar.
Ejemplo de valor devuelto:
{
         "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":"1",
            "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 una NFT de bonos listados. La compra transfiere el bono NFT de la cuenta del creador a la cuenta del emisor de llamada, y transfiere tokens CBDC de la cuenta del emisor de llamada a la cuenta del creador. Por este motivo, 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 y 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 de token CBDC debe ser igual al valor nominal del token de bono multiplicado por la cantidad que se compra.
func (t *Controller) PurchaseToken(tokenId float64, quantity float64, orderId string, additionalFees float64) (interface{}, error)
Parámetros:
  • tokenId: float64: ID del token que se va a comprar.
  • quantity: number: cantidad de tokens que se van a comprar.
  • orderId: string: ID de pedido de la operación de compra.
  • additionalFees: number – Las tarifas adicionales para añadir al precio de compra.
Ejemplo de valor devuelto:
{
   "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 ganados 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 interés se calcula mediante el código de cadena en función del tipo de cupón del token. La operación de compra transfiere tokens CBDC desde la cuenta del emisor de llamada a la cuenta del propietario del bono. Por este motivo, 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 y 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 float64, orderId string, additionalFees float64) (interface{}, error)
Parámetros:
  • orgId: string: ID del proveedor de servicios de membresía (MSP) del usuario.
  • userId: string: nombre de usuario o ID de correo electrónico del usuario.
  • tokenId: float64: ID del token.
  • orderId: string: ID de pedido de la operación de compra.
Ejemplo de valor devuelto:
{
   "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 generar 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 rescate por el código de cadena. Las solicitudes de canje solo se pueden generar en la cantidad completa del token de bono que posee el usuario. Los usuarios pueden emitir varias solicitudes de canje basadas en diferentes ID de liquidación, pero solo uno puede ser aprobado por el creador del token.
func (t *Controller) RequestTokenRedemption(settlementId string, tokenId float64, orderId string, additionalFees float64) (interface{}, error)
Parámetros:
  • settlementId: string: ID de liquidación para la operación de rescate.
  • tokenId: float64: ID del token.
  • orderId: string: ID de pedido de la operación de compra.
  • additionalFees: number – Las tarifas adicionales para añadir al precio de canje.
Ejemplo de valor devuelto:
{
         "TokenName":"bond",
         "AssetType":"otokenApproval",
         "Id":"otokenApproval~9e006057ac96ae997e3964531b1a08ad2316555701c7fe9ec7b88e38e20892bf",
         "SettlementId":"op4",
         "UserBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op4",
         "FromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
         "ToAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "TokenId":"1",
         "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 NFT del bono de la cuenta del propietario (el usuario que emitió la solicitud) a la cuenta del creador y transfiere tokens CBDC del creador del bono a la cuenta del propietario. Por este motivo, 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 y 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 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 float64) (interface{}, error)
Parámetros:
  • fromOrgId: string: ID del proveedor de servicios de membresía (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 rescate.
  • tokenId: float64: ID del token.
Ejemplo de valor devuelto:
{
   "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 mediante un ID de liquidación diferente.
func (t *Controller) RejectRedemption(fromOrgId string, fromUserId string, settlementId string, tokenId float64) (interface{}, error)
Parámetros:
  • fromOrgId: string: ID del proveedor de servicios de membresía (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 rescate.
  • tokenId: float64: ID del token.
Ejemplo de valor devuelto:
{
   "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 devuelto:
[ {

               "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":"1",
            "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 han 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 devuelto:
[
   {
      "TokenName":"bond",
      "AssetType":"otokenApproval",
      "Id":"otokenApproval~5b2a94283ae95e3d6e5b76ffd6f75b7bff231e4df270a82cdc1f6badd17dea4b",
      "SettlementId":"op1",
      "UserBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
      "FromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "ToAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "TokenId":"1",
      "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":"1",
      "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 han 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 devuelto:
[
   {
      "TokenName":"bond",
      "AssetType":"otokenApproval",
      "Id":"otokenApproval~5b2a94283ae95e3d6e5b76ffd6f75b7bff231e4df270a82cdc1f6badd17dea4b",
      "SettlementId":"op1",
      "UserBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
      "FromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "ToAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "TokenId":"1",
      "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":"1",
      "Quantity":1,
      "Status":"APPROVED",
      "OrderId":"op3",
      "RedeemPrice":11,
      "PurchasedPrice":11,
      "InterestEarned":0
   }
]
GetAccountBondSummary
Cualquier titular de cuenta puede llamar a este método get para obtener un resumen de la cuenta que incluye 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 membresía (MSP) del usuario.
  • userId: string: nombre de usuario o ID de correo electrónico del usuario.
Ejemplo de valor devuelto:
{

   "userAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
   "orgId":"BondMPTest",
   "userId":"u10",
   "accountSummary":[
      {
         "PurchasedQuantity":1,
         "AssetType":"oUserBondDetails",
         "Id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
         "TokenId":"1",
         "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":"1",
         "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 get para obtener un resumen de la cuenta que incluye 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 membresía (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 devuelto:
{

   "userAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
   "orgId":"BondMPTest",
   "userId":"u10",
   "accountSummary":[
      {
         "PurchasedQuantity":1,
         "AssetType":"oUserBondDetails",
         "Id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
         "TokenId":"1",
         "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":"1",
         "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 de SDK para Bond Marketplace

payInterest
El creador o administrador de tokens puede llamar a este método para pagar los intereses devengados en un token de bonos. 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 interés se calcula mediante el propio código de cadena en función del tipo de cupón del token. La operación de compra transfiere tokens CBDC desde la cuenta del emisor de llamada a la cuenta del propietario del bono. Por este motivo, 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 y 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 devuelto:
{
         "purchasedQuantity":1,
         "assetType":"oUserBondDetails",
         "id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
         "tokenId":"1",
         "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 generar 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 rescate por el código de cadena. Las solicitudes de canje solo se pueden generar en la cantidad completa del token de bono que posee el usuario. Los usuarios pueden emitir varias solicitudes de canje basadas en 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 rescate.
  • tokenId: string: ID del token.
  • orderId: string: ID de pedido de la operación de compra.
  • additionalFees: number – Las tarifas adicionales para añadir al precio de canje.
Ejemplo de valor devuelto:
{
         "tokenName":"bond",
         "assetType":"otokenApproval",
         "id":"otokenApproval~9e006057ac96ae997e3964531b1a08ad2316555701c7fe9ec7b88e38e20892bf",
         "settlementId":"op4",
         "userBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op4",
         "fromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
         "toAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "tokenId":"1",
         "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 NFT del bono de la cuenta del propietario (el usuario que emitió la solicitud) a la cuenta del creador y transfiere tokens CBDC del creador del bono a la cuenta del propietario. Por este motivo, 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 y 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 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 rescate.
  • tokenId: string: ID del token.
Ejemplo de valor devuelto:
{
   "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 mediante un ID de liquidación diferente.
this.Ctx.ERC1155TokenApproval.rejectTokenApprovalRequest(fromUserAccountId, settlementId, tokenId)
Parámetros:
  • fromOrgId: string: ID del proveedor de servicios de membresía (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 rescate.
  • tokenId: string: ID del token.
Ejemplo de valor devuelto:
{
   "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 devuelto:
[{
            "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":"1",
            "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 han realizado.
this.Ctx.ERC1155TokenApproval.getAllTokenApprovalRequestByUserByStatus(status)
Parámetros:
  • status: string: estado de la solicitud, que puede ser PENDING, REJECTED o APPROVED.
Ejemplo de valor devuelto:
[
   {
      "tokenName":"bond",
      "assetType":"otokenApproval",
      "id":"otokenApproval~5b2a94283ae95e3d6e5b76ffd6f75b7bff231e4df270a82cdc1f6badd17dea4b",
      "settlementId":"op1",
      "userBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
      "fromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "toAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "tokenId":"1",
      "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":"1",
      "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 han realizado.
this.Ctx.ERC1155TokenApproval.getAllTokenApprovalRequestForUserByStatus(status)
Parámetros:
  • status: string: estado de la solicitud, que puede ser PENDING, REJECTED o APPROVED.
Ejemplo de valor devuelto:
[
   {
      "tokenName":"bond",
      "assetType":"otokenApproval",
      "id":"otokenApproval~5b2a94283ae95e3d6e5b76ffd6f75b7bff231e4df270a82cdc1f6badd17dea4b",
      "settlementId":"op1",
      "userBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
      "fromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "toAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "tokenId":"1",
      "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":"1",
      "quantity":1,
      "status":"APPROVED",
      "orderId":"op3",
      "redeemPrice":11,
      "purchasedPrice":11,
      "interestEarned":0
   }
]
getAccountBondSummary
Cualquier titular de cuenta puede llamar a este método get para obtener un resumen de la cuenta que incluye 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 devuelto:
{

   "userAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
   "orgId":"BondMPTest",
   "userId":"u10",
   "accountSummary":[
      {
         "purchasedQuantity":1,
         "assetType":"oUserBondDetails",
         "id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
         "tokenId":"1",
         "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":"1",
         "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 get para obtener un resumen de la cuenta que incluye 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 devuelto:
    {

       "userAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
       "orgId":"BondMPTest",
       "userId":"u10",
       "accountSummary":[
          {
             "purchasedQuantity":1,
             "assetType":"oUserBondDetails",
             "id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
             "tokenId":"1",
             "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":"1",
             "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":"1",
             "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":"1",
             "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 de tokens puede llamar a este método para pagar los intereses devengados en un token de bonos. 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 interés se calcula mediante el propio código de cadena en función del tipo de cupón del token. La operación de compra transfiere tokens CBDC desde la cuenta del emisor de llamada a la cuenta del propietario del bono. Por este motivo, 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 y 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 devuelto:
{
         "PurchasedQuantity":1,
         "AssetType":"oUserBondDetails",
         "Id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
         "TokenId":"1",
         "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 generar 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 rescate por el código de cadena. Las solicitudes de canje solo se pueden generar en la cantidad completa del token de bono que posee el usuario. Los usuarios pueden emitir varias solicitudes de canje basadas en 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 rescate.
  • tokenId: string: ID del token.
  • orderId: string: ID de pedido de la operación de compra.
  • additionalFees: number – Las tarifas adicionales para añadir al precio de canje.
Ejemplo de valor devuelto:
{
         "TokenName":"bond",
         "AssetType":"otokenApproval",
         "Id":"otokenApproval~9e006057ac96ae997e3964531b1a08ad2316555701c7fe9ec7b88e38e20892bf",
         "SettlementId":"op4",
         "UserBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op4",
         "FromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
         "ToAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "TokenId":"1",
         "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 NFT del bono de la cuenta del propietario (el usuario que emitió la solicitud) a la cuenta del creador y transfiere tokens CBDC del creador del bono a la cuenta del propietario. Por este motivo, 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 y 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 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 rescate.
  • tokenId: string: ID del token.
Ejemplo de valor devuelto:
{
   "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 mediante un ID de liquidación diferente.
t.Ctx.ERC1155TokenApproval.RejectTokenApprovalRequest(fromUserAccountId, settlementId, tokenId)
Parámetros:
  • fromOrgId: string: ID del proveedor de servicios de membresía (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 rescate.
  • tokenId: string: ID del token.
Ejemplo de valor devuelto:
{
   "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 devuelto:
[ {

               "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":"1",
            "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 han realizado.
t.Ctx.ERC1155TokenApproval.GetAllTokenApprovalRequestByUserByStatus(status)
Parámetros:
  • status: string: estado de la solicitud, que puede ser PENDING, REJECTED o APPROVED.
Ejemplo de valor devuelto:
[
   {
      "TokenName":"bond",
      "AssetType":"otokenApproval",
      "Id":"otokenApproval~5b2a94283ae95e3d6e5b76ffd6f75b7bff231e4df270a82cdc1f6badd17dea4b",
      "SettlementId":"op1",
      "UserBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
      "FromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "ToAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "TokenId":"1",
      "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":"1",
      "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 han realizado.
t.Ctx.ERC1155TokenApproval.GetAllTokenApprovalRequestForUserByStatus(status)
Parámetros:
  • status: string: estado de la solicitud, que puede ser PENDING, REJECTED o APPROVED.
Ejemplo de valor devuelto:
[
   {
      "TokenName":"bond",
      "AssetType":"otokenApproval",
      "Id":"otokenApproval~5b2a94283ae95e3d6e5b76ffd6f75b7bff231e4df270a82cdc1f6badd17dea4b",
      "SettlementId":"op1",
      "UserBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
      "FromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "ToAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "TokenId":"1",
      "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":"1",
      "Quantity":1,
      "Status":"APPROVED",
      "OrderId":"op3",
      "RedeemPrice":11,
      "PurchasedPrice":11,
      "InterestEarned":0
   }
]
GetAccountBondSummary
Cualquier titular de cuenta puede llamar a este método get para obtener un resumen de la cuenta que incluye 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 devuelto:
{

   "userAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
   "orgId":"BondMPTest",
   "userId":"u10",
   "accountSummary":[
      {
         "PurchasedQuantity":1,
         "AssetType":"oUserBondDetails",
         "Id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
         "TokenId":"1",
         "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":"1",
         "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 get para obtener un resumen de la cuenta que incluye 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 devuelto:
{

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