Modello Bond Marketplace

La versione migliorata di Blockchain App Builder include un attributo del modello che genera metodi aggiuntivi per lo scenario di mercato obbligazionario.

Se si include il parametro model: bond nel file di specifica per i token che utilizzano lo standard ERC-1155 esteso, il codice concatenato specifico dell'applicazione Blockchain App Builder, inclusi i seguenti metodi aggiuntivi da utilizzare con l'applicazione di mercato delle obbligazioni.

TypeScript Metodi per Bond Marketplace

Il codice concatenato del mercato obbligazionario include tutti i metodi disponibili nel codice concatenato NFT generico ERC-1155. Sono disponibili i seguenti metodi aggiuntivi specifici per lo scenario del mercato obbligazionario.
postToken
Questo metodo può essere chiamato solo da un creatore di token. Il metodo sottomette il token di legame per l'inserimento nell'elenco sul mercato. Quando viene creato un token, il relativo stato viene inizialmente impostato su created. Questo metodo aggiorna lo stato in posted. Gli utenti possono eseguire il metodo getAllTokensWithFilter per recuperare tutti gli NFT con stato posted.
public async postToken(tokenId: string)
Parametri:
  • tokenId: string: l'ID del token da inviare.
Esempio di valore restituito:
{
         "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
Questo metodo può essere chiamato da qualsiasi titolare di conto per acquistare un NFT obbligazionario quotato. L'acquisto trasferisce il bond NFT dal conto del creatore al conto del chiamante e trasferisce i token CBDC dal conto del chiamante al conto del creatore. Per questo motivo, il metodo deve essere eseguito nel contesto di una transazione atomica. Il metodo verifica anche il processo di trasferimento, garantendo che il codice concatenato CBDC appropriato sia chiamato con i corretti orgId e userId per il trasferimento. I valori orgId e userId devono corrispondere al creatore del token e il valore di trasferimento del token CBDC deve essere uguale al valore nominale del token obbligazionario moltiplicato per la quantità acquistata.
public async purchaseToken(tokenId: string, quantity: number, orderId: string, additionalFees: number)
Parametri:
  • tokenId: string: l'ID del token da acquistare.
  • quantity: number - La quantità di token da acquistare.
  • orderId: string: l'ID dell'ordine per l'operazione di acquisto.
  • additionalFees: number - I costi aggiuntivi da aggiungere al prezzo di acquisto.
Esempio di valore restituito:
{
   "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
Questo metodo può essere chiamato solo dal creatore o dall'amministratore del token per pagare gli interessi maturati sul token obbligazionario. Questo metodo può essere chiamato solo se la frequenza di interesse del token è mensile, trimestrale o annuale. Gli interessi non possono essere pagati se la frequenza degli interessi è a scadenza. L'interesse viene calcolato dal codice concatenato in base al tasso coupon del token. L'operazione di acquisto trasferisce i token CBDC dal conto del chiamante al conto del proprietario dell'obbligazione. Per questo motivo, questo metodo deve essere eseguito nel contesto di una transazione atomica. Il metodo verifica anche il processo di trasferimento, garantendo che il codice concatenato CBDC appropriato sia chiamato con i corretti orgId e userId per il trasferimento. I valori orgId e userId devono corrispondere al proprietario del token e il valore di trasferimento del token CBDC deve essere uguale all'interesse calcolato dal codice concatenato dell'obbligazione.
public async payInterest(orgId: string, userId: string, tokenId: string, orderId: string)
Parametri:
  • orgId: string: l'ID del provider di servizi di appartenenza (MSP) dell'utente.
  • userId: string: il nome utente o l'ID e-mail dell'utente.
  • tokenId: string: l'ID del token.
  • orderId: string: l'ID dell'ordine per l'operazione di acquisto.
Esempio di valore restituito:
{
   "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
Questo metodo può essere chiamato solo dal proprietario del token per presentare una richiesta di rimborso dei token obbligazionari dopo la scadenza. Questo metodo prevede anche il calcolo del prezzo di rimborso mediante il codice concatenato. Le richieste di riscatto possono essere generate solo sull'intera quantità del token obbligazionario di proprietà dell'utente. Gli utenti possono generare più richieste di riscatto in base a ID liquidazione diversi, ma solo uno può essere approvato dall'autore del token.
public async requestTokenRedemption(settlementId: string, tokenId: string, orderId: string, additionalFees: number)
Parametri:
  • settlementId: string: l'ID liquidazione per l'operazione di riscatto.
  • tokenId: string: l'ID del token.
  • orderId: string: l'ID dell'ordine per l'operazione di acquisto.
  • additionalFees: number - I costi aggiuntivi da aggiungere al prezzo di riscatto.
Esempio di valore restituito:
{
         "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
Questo metodo può essere chiamato solo dal creatore del token per approvare una richiesta di riscatto dei token obbligazionari. L'operazione di approvazione trasferisce l'NFT dell'obbligazione dal conto del proprietario (l'utente che ha inoltrato la richiesta) al conto del creatore e trasferisce i token CBDC dal conto del creatore dell'obbligazione al conto del proprietario. Per questo motivo, questo metodo deve essere eseguito nel contesto di una transazione atomica. Il metodo verifica anche il processo di trasferimento, garantendo che il codice concatenato CBDC appropriato sia chiamato con i corretti orgId e userId per il trasferimento. I valori orgId e userId devono corrispondere al conto del proprietario del token che ha generato la richiesta di riscatto e il valore di trasferimento del token CBDC deve essere uguale al prezzo di riscatto calcolato calcolato dal codice concatenato durante la generazione della richiesta di riscatto.
public async approveRedemption(fromOrgId: string, fromUserId: string, settlementId: string, tokenId: string)
Parametri:
  • fromOrgId: string: l'ID del provider di servizi di appartenenza (MSP) dell'utente.
  • fromUserId: string: il nome utente o l'ID e-mail dell'utente.
  • settlementId: string: l'ID liquidazione per l'operazione di riscatto.
  • tokenId: string: l'ID del token.
Esempio di valore restituito:
{
   "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
L'autore del token può richiamare questo metodo per rifiutare la richiesta di riscatto. I proprietari di token possono rilanciare una richiesta di riscatto utilizzando un ID liquidazione diverso.
public async rejectRedemption(fromOrgId: string, fromUserId: string, settlementId: string, tokenId: string)
Parametri:
  • fromOrgId: string: l'ID del provider di servizi di appartenenza (MSP) dell'utente.
  • fromUserId: string: il nome utente o l'ID e-mail dell'utente.
  • settlementId: string: l'ID liquidazione per l'operazione di riscatto.
  • tokenId: string: l'ID del token.
Esempio di valore restituito:
{
   "status":"success",
   "msg":"Successfully rejected the token approval request"
}
getAllTokensWithFilters
L'amministratore può chiamare questo metodo get per recuperare tutti i token filtrati in base allo stato, CREATED o POSTED.
public async getAllTokensWithFilters(status: string, pageSize: number, bookmark: string)
Parametri:
  • status: string: lo stato del token, che può essere CREATED o POSTED.
  • pageSize: number: la dimensione della pagina del risultato restituito.
  • bookmark: string: il segnalibro del risultato restituito.
Esempio di valore restituito:
[{
            "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
Qualsiasi titolare del conto può chiamare questo metodo get per ottenere i dettagli di tutte le richieste di approvazione del token (richieste di riscatto) che ha effettuato.
public async getTokenApprovalRequestByUser(status: string)
Parametri:
  • status: string: lo stato della richiesta, che può essere PENDING, REJECTED o APPROVED.
Esempio di valore restituito:
[
   {
      "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
Qualsiasi titolare del conto può chiamare questo metodo get per ottenere i dettagli di tutte le richieste di approvazione del token (richieste di riscatto) che ha effettuato.
public async getTokenApprovalRequestForUserByStatus(status: string)
Parametri:
  • status: string: lo stato della richiesta, che può essere PENDING, REJECTED o APPROVED.
Esempio di valore restituito:
[
   {
      "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
Qualsiasi titolare del conto può chiamare questo metodo get per ottenere un riepilogo del conto che include i dettagli dei token acquistati o riscattati e il prezzo di acquisto e il prezzo di riscatto.
public async getAccountBondSummary(orgId: string, userId: string)
Parametri:
  • orgId: string: l'ID del provider di servizi di appartenenza (MSP) dell'utente.
  • userId: string: il nome utente o l'ID e-mail dell'utente.
Esempio di valore restituito:
{

   "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
Qualsiasi titolare del conto può chiamare questo metodo get per ottenere un riepilogo del conto che include i dettagli dei token acquistati o riscattati e il prezzo di acquisto e il prezzo di riscatto. Questo metodo può restituire risultati con impaginazione basata su valori di pagesize e segnalibri e anche filtrati per ora di inizio e di fine.
public async getAccountBondSummaryWithPagination(orgId: string, userId: string, pageSize: number, bookmark?: string)
Parametri:
  • orgId: string: l'ID del provider di servizi di appartenenza (MSP) dell'utente.
  • userId: string: il nome utente o l'ID e-mail dell'utente.
  • pageSize: number: la dimensione della pagina del risultato restituito.
  • bookmark: string: il segnalibro del risultato restituito.
Esempio di valore restituito:
{

   "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"
      }
   ]
}

Metodi Go per Bond Marketplace

Il codice concatenato del mercato obbligazionario include tutti i metodi disponibili nel codice concatenato NFT generico ERC-1155. Sono disponibili i seguenti metodi aggiuntivi specifici per lo scenario del mercato obbligazionario.
PostToken
Questo metodo può essere chiamato solo da un creatore di token. Il metodo sottomette il token di legame per l'inserimento nell'elenco sul mercato. Quando viene creato un token, il relativo stato viene inizialmente impostato su created. Questo metodo aggiorna lo stato in posted. Gli utenti possono eseguire il metodo getAllTokensWithFilter per recuperare tutti gli NFT con stato posted.
func (t *Controller) PostToken(tokenId string) (interface{}, error)
Parametri:
  • tokenId: string: l'ID del token da inviare.
Esempio di valore restituito:
{
         "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
Questo metodo può essere chiamato da qualsiasi titolare di conto per acquistare un NFT obbligazionario quotato. L'acquisto trasferisce il bond NFT dal conto del creatore al conto del chiamante e trasferisce i token CBDC dal conto del chiamante al conto del creatore. Per questo motivo, il metodo deve essere eseguito nel contesto di una transazione atomica. Il metodo verifica anche il processo di trasferimento, garantendo che il codice concatenato CBDC appropriato sia chiamato con i corretti orgId e userId per il trasferimento. I valori orgId e userId devono corrispondere al creatore del token e il valore di trasferimento del token CBDC deve essere uguale al valore nominale del token obbligazionario moltiplicato per la quantità acquistata.
func (t *Controller) PurchaseToken(tokenId string, quantity float64, orderId string, additionalFees float64) (interface{}, error)
Parametri:
  • tokenId: string: l'ID del token da acquistare.
  • quantity: number - La quantità di token da acquistare.
  • orderId: string: l'ID dell'ordine per l'operazione di acquisto.
  • additionalFees: number - I costi aggiuntivi da aggiungere al prezzo di acquisto.
Esempio di valore restituito:
{
   "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
Questo metodo può essere chiamato solo dal creatore o dall'amministratore del token per pagare gli interessi maturati sul token obbligazionario. Questo metodo può essere chiamato solo se la frequenza di interesse del token è mensile, trimestrale o annuale. Gli interessi non possono essere pagati se la frequenza degli interessi è a scadenza. L'interesse viene calcolato dal codice concatenato in base al tasso coupon del token. L'operazione di acquisto trasferisce i token CBDC dal conto del chiamante al conto del proprietario dell'obbligazione. Per questo motivo, questo metodo deve essere eseguito nel contesto di una transazione atomica. Il metodo verifica anche il processo di trasferimento, garantendo che il codice concatenato CBDC appropriato sia chiamato con i corretti orgId e userId per il trasferimento. I valori orgId e userId devono corrispondere al proprietario del token e il valore di trasferimento del token CBDC deve essere uguale all'interesse calcolato dal codice concatenato dell'obbligazione.
func (t *Controller) PayInterestEarned(orgId string, userId string, tokenId string, orderId string, additionalFees float64) (interface{}, error)
Parametri:
  • orgId: string: l'ID del provider di servizi di appartenenza (MSP) dell'utente.
  • userId: string: il nome utente o l'ID e-mail dell'utente.
  • tokenId: string: l'ID del token.
  • orderId: string: l'ID dell'ordine per l'operazione di acquisto.
Esempio di valore restituito:
{
   "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
Questo metodo può essere chiamato solo dal proprietario del token per presentare una richiesta di rimborso dei token obbligazionari dopo la scadenza. Questo metodo prevede anche il calcolo del prezzo di rimborso mediante il codice concatenato. Le richieste di riscatto possono essere generate solo sull'intera quantità del token obbligazionario di proprietà dell'utente. Gli utenti possono generare più richieste di riscatto in base a ID liquidazione diversi, ma solo uno può essere approvato dall'autore del token.
func (t *Controller) RequestTokenRedemption(settlementId string, tokenId string, orderId string, additionalFees float64) (interface{}, error)
Parametri:
  • settlementId: string: l'ID liquidazione per l'operazione di riscatto.
  • tokenId: string: l'ID del token.
  • orderId: string: l'ID dell'ordine per l'operazione di acquisto.
  • additionalFees: number - I costi aggiuntivi da aggiungere al prezzo di riscatto.
Esempio di valore restituito:
{
         "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
Questo metodo può essere chiamato solo dal creatore del token per approvare una richiesta di riscatto dei token obbligazionari. L'operazione di approvazione trasferisce l'NFT dell'obbligazione dal conto del proprietario (l'utente che ha inoltrato la richiesta) al conto del creatore e trasferisce i token CBDC dal conto del creatore dell'obbligazione al conto del proprietario. Per questo motivo, questo metodo deve essere eseguito nel contesto di una transazione atomica. Il metodo verifica anche il processo di trasferimento, garantendo che il codice concatenato CBDC appropriato sia chiamato con i corretti orgId e userId per il trasferimento. I valori orgId e userId devono corrispondere al conto del proprietario del token che ha generato la richiesta di riscatto e il valore di trasferimento del token CBDC deve essere uguale al prezzo di riscatto calcolato calcolato dal codice concatenato durante la generazione della richiesta di riscatto.
func (t *Controller) ApproveRedemption(fromOrgId string, fromUserId string, settlementId string, tokenId string) (interface{}, error)
Parametri:
  • fromOrgId: string: l'ID del provider di servizi di appartenenza (MSP) dell'utente.
  • fromUserId: string: il nome utente o l'ID e-mail dell'utente.
  • settlementId: string: l'ID liquidazione per l'operazione di riscatto.
  • tokenId: string: l'ID del token.
Esempio di valore restituito:
{
   "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
L'autore del token può richiamare questo metodo per rifiutare la richiesta di riscatto. I proprietari di token possono rilanciare una richiesta di riscatto utilizzando un ID liquidazione diverso.
func (t *Controller) RejectRedemption(fromOrgId string, fromUserId string, settlementId string, tokenId string) (interface{}, error)
Parametri:
  • fromOrgId: string: l'ID del provider di servizi di appartenenza (MSP) dell'utente.
  • fromUserId: string: il nome utente o l'ID e-mail dell'utente.
  • settlementId: string: l'ID liquidazione per l'operazione di riscatto.
  • tokenId: string: l'ID del token.
Esempio di valore restituito:
{
   "status":"success",
   "msg":"Successfully rejected the token approval request"
}
GetAllTokensWithFilter
L'amministratore può chiamare questo metodo get per recuperare tutti i token filtrati in base allo stato, CREATED o POSTED.
func (t *Controller) GetAllTokensWithFilters(status string, pageSize int32, bookmark string)
Parametri:
  • status: string: lo stato del token, che può essere CREATED o POSTED.
  • pageSize: number: la dimensione della pagina del risultato restituito.
  • bookmark: string: il segnalibro del risultato restituito.
Esempio di valore restituito:
[ {

               "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
Qualsiasi titolare del conto può chiamare questo metodo get per ottenere i dettagli di tutte le richieste di approvazione del token (richieste di riscatto) che ha effettuato.
func (t *Controller) GetTokenApprovalRequestByUser(status string) (interface{}, error)
Parametri:
  • status: string: lo stato della richiesta, che può essere PENDING, REJECTED o APPROVED.
Esempio di valore restituito:
[
   {
      "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
Qualsiasi titolare del conto può chiamare questo metodo get per ottenere i dettagli di tutte le richieste di approvazione del token (richieste di riscatto) che ha effettuato.
func (t *Controller) GetTokenApprovalRequestForUserByStatus(status string) (interface{}, error)
Parametri:
  • status: string: lo stato della richiesta, che può essere PENDING, REJECTED o APPROVED.
Esempio di valore restituito:
[
   {
      "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
Qualsiasi titolare del conto può chiamare questo metodo get per ottenere un riepilogo del conto che include i dettagli dei token acquistati o riscattati e il prezzo di acquisto e il prezzo di riscatto.
func (t *Controller) GetAccountBondSummary(orgId string, userId string) (interface{}, error)
Parametri:
  • orgId: string: l'ID del provider di servizi di appartenenza (MSP) dell'utente.
  • userId: string: il nome utente o l'ID e-mail dell'utente.
Esempio di valore restituito:
{

   "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
Qualsiasi titolare del conto può chiamare questo metodo get per ottenere un riepilogo del conto che include i dettagli dei token acquistati o riscattati e il prezzo di acquisto e il prezzo di riscatto. Questo metodo può restituire risultati con impaginazione basata su valori di pagesize e segnalibri e anche filtrati per ora di inizio e di fine.
func (t *Controller) GetAccountBondSummaryWithPagination(orgId string, userId string, pageSize int32, bookmark string) (interface{}, error)
Parametri:
  • orgId: string: l'ID del provider di servizi di appartenenza (MSP) dell'utente.
  • userId: string: il nome utente o l'ID e-mail dell'utente.
  • pageSize: number: la dimensione della pagina del risultato restituito.
  • bookmark: string: il segnalibro del risultato restituito.
Esempio di valore restituito:
{

   "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 Metodi SDK per Bond Marketplace

payInterest
Il creatore o l'amministratore del token può chiamare questo metodo per pagare gli interessi maturati su un token obbligazionario. Questo metodo può essere chiamato solo se la frequenza di interesse del token è mensile, trimestrale o annuale. Gli interessi non possono essere pagati se la frequenza degli interessi è a scadenza. L'interesse viene calcolato dal codice concatenato stesso in base al tasso coupon del token. L'operazione di acquisto trasferisce i token CBDC dal conto del chiamante al conto del proprietario dell'obbligazione. Per questo motivo, questo metodo deve essere eseguito nel contesto di una transazione atomica. Il metodo verifica anche il processo di trasferimento, garantendo che il codice concatenato CBDC appropriato sia chiamato con i corretti orgId e userId per il trasferimento. I valori orgId e userId devono corrispondere al proprietario del token e il valore di trasferimento del token CBDC deve essere uguale all'interesse calcolato dal codice concatenato dell'obbligazione.
this.Ctx.ERC1155AccountBondSummary.payInterest(userAccountId, tokenId, orderId)
Parametri:
  • userAccountId: string: l'ID account dell'utente.
  • tokenId: string: l'ID del token.
  • orderId: string: l'ID dell'ordine per l'operazione di acquisto.
Esempio di valore restituito:
{
         "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
Questo metodo può essere chiamato solo dal proprietario del token per presentare una richiesta di rimborso dei token obbligazionari dopo la scadenza. Questo metodo prevede anche il calcolo del prezzo di rimborso mediante il codice concatenato. Le richieste di riscatto possono essere generate solo sull'intera quantità del token obbligazionario di proprietà dell'utente. Gli utenti possono generare più richieste di riscatto in base a ID liquidazione diversi, ma solo uno può essere approvato dall'autore del token.
this.Ctx.ERC1155TokenApproval.requestTokenRedemption(callerUserAccountId, settlementId, tokenId, orderId, quantity, additionalFees);
Parametri:
  • callerUserAccountId: string: l'ID account dell'utente.
  • settlementId: string: l'ID liquidazione per l'operazione di riscatto.
  • tokenId: string: l'ID del token.
  • orderId: string: l'ID dell'ordine per l'operazione di acquisto.
  • additionalFees: number - I costi aggiuntivi da aggiungere al prezzo di riscatto.
Esempio di valore restituito:
{
         "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
Questo metodo può essere chiamato solo dal creatore del token per approvare una richiesta di riscatto dei token obbligazionari. L'operazione di approvazione trasferisce l'NFT dell'obbligazione dal conto del proprietario (l'utente che ha inoltrato la richiesta) al conto del creatore e trasferisce i token CBDC dal conto del creatore dell'obbligazione al conto del proprietario. Per questo motivo, questo metodo deve essere eseguito nel contesto di una transazione atomica. Il metodo verifica anche il processo di trasferimento, garantendo che il codice concatenato CBDC appropriato sia chiamato con i corretti orgId e userId per il trasferimento. I valori orgId e userId devono corrispondere al conto del proprietario del token che ha generato la richiesta di riscatto e il valore di trasferimento del token CBDC deve essere uguale al prezzo di riscatto calcolato calcolato dal codice concatenato durante la generazione della richiesta di riscatto.
this.Ctx.ERC1155TokenApproval.approveTokenApprovalRequest(fromUserAccountId, settlementId, tokenId)
Parametri:
  • fromUserAccountId: string: l'ID account dell'utente.
  • settlementId: string: l'ID liquidazione per l'operazione di riscatto.
  • tokenId: string: l'ID del token.
Esempio di valore restituito:
{
   "status":"success",
   "msg":"Successfully approved the token approval request"
}
rejectRedemption
L'autore del token può richiamare questo metodo per rifiutare la richiesta di riscatto. I proprietari di token possono rilanciare una richiesta di riscatto utilizzando un ID liquidazione diverso.
this.Ctx.ERC1155TokenApproval.rejectTokenApprovalRequest(fromUserAccountId, settlementId, tokenId)
Parametri:
  • fromOrgId: string: l'ID del provider di servizi di appartenenza (MSP) dell'utente.
  • fromUserId: string: il nome utente o l'ID e-mail dell'utente.
  • settlementId: string: l'ID liquidazione per l'operazione di riscatto.
  • tokenId: string: l'ID del token.
Esempio di valore restituito:
{
   "status":"success",
   "msg":"Successfully rejected the token approval request"
}
getAllTokensWithFilter
L'amministratore può chiamare questo metodo get per recuperare tutti i token filtrati in base allo stato, CREATED o POSTED.
this.Ctx.ERC1155Token.getAllTokensWithFilters(status, pageSize, bookmark)
Parametri:
  • status: string: lo stato del token, che può essere CREATED o POSTED.
  • pageSize: number: la dimensione della pagina del risultato restituito.
  • bookmark: string: il segnalibro del risultato restituito.
Esempio di valore restituito:
[{
            "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
Qualsiasi titolare del conto può chiamare questo metodo get per ottenere i dettagli di tutte le richieste di approvazione del token (richieste di riscatto) che ha effettuato.
this.Ctx.ERC1155TokenApproval.getAllTokenApprovalRequestByUserByStatus(status)
Parametri:
  • status: string: lo stato della richiesta, che può essere PENDING, REJECTED o APPROVED.
Esempio di valore restituito:
[
   {
      "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
Qualsiasi titolare del conto può chiamare questo metodo get per ottenere i dettagli di tutte le richieste di approvazione del token (richieste di riscatto) che ha effettuato.
this.Ctx.ERC1155TokenApproval.getAllTokenApprovalRequestForUserByStatus(status)
Parametri:
  • status: string: lo stato della richiesta, che può essere PENDING, REJECTED o APPROVED.
Esempio di valore restituito:
[
   {
      "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
Qualsiasi titolare del conto può chiamare questo metodo get per ottenere un riepilogo del conto che include i dettagli dei token acquistati o riscattati e il prezzo di acquisto e il prezzo di riscatto.
this.Ctx.ERC1155AccountBondSummary.getAllAccountBondSummary(userAccountId)
Parametri:
  • userAccountId: string: l'ID account dell'utente.
Esempio di valore restituito:
{

   "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
Qualsiasi titolare del conto può chiamare questo metodo get per ottenere un riepilogo del conto che include i dettagli dei token acquistati o riscattati e il prezzo di acquisto e il prezzo di riscatto. Questo metodo può restituire risultati con impaginazione basata su valori di pagesize e segnalibri e anche filtrati per ora di inizio e di fine.
this.Ctx.ERC1155AccountBondSummary.getAllAccountBondSummaryWithPagination(userAccountId, pageSize, bookmark)
Parametri:
  • userAccountId: string: l'ID account dell'utente.
  • pageSize: number: la dimensione della pagina del risultato restituito.
  • bookmark: string: il segnalibro del risultato restituito.
Esempio di valore restituito:
    {

       "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"
          }
       ]
    }

Metodi Go SDK per Bond Marketplace

PayInterest
Il creatore o l'amministratore del token può chiamare questo metodo per pagare gli interessi maturati su un token obbligazionario. Questo metodo può essere chiamato solo se la frequenza di interesse del token è mensile, trimestrale o annuale. Gli interessi non possono essere pagati se la frequenza degli interessi è a scadenza. L'interesse viene calcolato dal codice concatenato stesso in base al tasso coupon del token. L'operazione di acquisto trasferisce i token CBDC dal conto del chiamante al conto del proprietario dell'obbligazione. Per questo motivo, questo metodo deve essere eseguito nel contesto di una transazione atomica. Il metodo verifica anche il processo di trasferimento, garantendo che il codice concatenato CBDC appropriato sia chiamato con i corretti orgId e userId per il trasferimento. I valori orgId e userId devono corrispondere al proprietario del token e il valore di trasferimento del token CBDC deve essere uguale all'interesse calcolato dal codice concatenato dell'obbligazione.
t.Ctx.ERC1155AccountBondSummary.PayInterestEarned(userAccountId, tokenId, orderId, additionalFees)
Parametri:
  • userAccountId: string: l'ID account dell'utente.
  • tokenId: string: l'ID del token.
  • orderId: string: l'ID dell'ordine per l'operazione di acquisto.
Esempio di valore restituito:
{
         "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
Questo metodo può essere chiamato solo dal proprietario del token per presentare una richiesta di rimborso dei token obbligazionari dopo la scadenza. Questo metodo prevede anche il calcolo del prezzo di rimborso mediante il codice concatenato. Le richieste di riscatto possono essere generate solo sull'intera quantità del token obbligazionario di proprietà dell'utente. Gli utenti possono generare più richieste di riscatto in base a ID liquidazione diversi, ma solo uno può essere approvato dall'autore del token.
t.Ctx.ERC1155TokenApproval.RequestTokenRedemption(callerUserAccountId, settlementId, tokenId, orderId, quantity, additionalFees)
Parametri:
  • callerUserAccountId: string: l'ID account dell'utente.
  • settlementId: string: l'ID liquidazione per l'operazione di riscatto.
  • tokenId: string: l'ID del token.
  • orderId: string: l'ID dell'ordine per l'operazione di acquisto.
  • additionalFees: number - I costi aggiuntivi da aggiungere al prezzo di riscatto.
Esempio di valore restituito:
{
         "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
Questo metodo può essere chiamato solo dal creatore del token per approvare una richiesta di riscatto dei token obbligazionari. L'operazione di approvazione trasferisce l'NFT dell'obbligazione dal conto del proprietario (l'utente che ha inoltrato la richiesta) al conto del creatore e trasferisce i token CBDC dal conto del creatore dell'obbligazione al conto del proprietario. Per questo motivo, questo metodo deve essere eseguito nel contesto di una transazione atomica. Il metodo verifica anche il processo di trasferimento, garantendo che il codice concatenato CBDC appropriato sia chiamato con i corretti orgId e userId per il trasferimento. I valori orgId e userId devono corrispondere al conto del proprietario del token che ha generato la richiesta di riscatto e il valore di trasferimento del token CBDC deve essere uguale al prezzo di riscatto calcolato calcolato dal codice concatenato durante la generazione della richiesta di riscatto.
t.Ctx.ERC1155TokenApproval.ApproveTokenApprovalRequest(fromUserAccountId, settlementId, tokenId)
Parametri:
  • fromUserAccountId: string: l'ID account dell'utente.
  • settlementId: string: l'ID liquidazione per l'operazione di riscatto.
  • tokenId: string: l'ID del token.
Esempio di valore restituito:
{
   "status":"success",
   "msg":"Successfully approved the token approval request"
}
RejectRedemption
L'autore del token può richiamare questo metodo per rifiutare la richiesta di riscatto. I proprietari di token possono rilanciare una richiesta di riscatto utilizzando un ID liquidazione diverso.
t.Ctx.ERC1155TokenApproval.RejectTokenApprovalRequest(fromUserAccountId, settlementId, tokenId)
Parametri:
  • fromOrgId: string: l'ID del provider di servizi di appartenenza (MSP) dell'utente.
  • fromUserId: string: il nome utente o l'ID e-mail dell'utente.
  • settlementId: string: l'ID liquidazione per l'operazione di riscatto.
  • tokenId: string: l'ID del token.
Esempio di valore restituito:
{
   "status":"success",
   "msg":"Successfully rejected the token approval request"
}
GetAllTokensWithFilter
L'amministratore può chiamare questo metodo get per recuperare tutti i token filtrati in base allo stato, CREATED o POSTED.
t.Ctx.ERC1155Token.GetAllTokensWithFilters(status, pageSize, bookmark)
Parametri:
  • status: string: lo stato del token, che può essere CREATED o POSTED.
  • pageSize: number: la dimensione della pagina del risultato restituito.
  • bookmark: string: il segnalibro del risultato restituito.
Esempio di valore restituito:
[ {

               "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
Qualsiasi titolare del conto può chiamare questo metodo get per ottenere i dettagli di tutte le richieste di approvazione del token (richieste di riscatto) che ha effettuato.
t.Ctx.ERC1155TokenApproval.GetAllTokenApprovalRequestByUserByStatus(status)
Parametri:
  • status: string: lo stato della richiesta, che può essere PENDING, REJECTED o APPROVED.
Esempio di valore restituito:
[
   {
      "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
Qualsiasi titolare del conto può chiamare questo metodo get per ottenere i dettagli di tutte le richieste di approvazione del token (richieste di riscatto) che ha effettuato.
t.Ctx.ERC1155TokenApproval.GetAllTokenApprovalRequestForUserByStatus(status)
Parametri:
  • status: string: lo stato della richiesta, che può essere PENDING, REJECTED o APPROVED.
Esempio di valore restituito:
[
   {
      "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
Qualsiasi titolare del conto può chiamare questo metodo get per ottenere un riepilogo del conto che include i dettagli dei token acquistati o riscattati e il prezzo di acquisto e il prezzo di riscatto.
t.Ctx.ERC1155AccountBondSummary.GetAllAccountBondSummary(userAccountId)
Parametri:
  • userAccountId: string: l'ID account dell'utente.
Esempio di valore restituito:
{

   "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
Qualsiasi titolare del conto può chiamare questo metodo get per ottenere un riepilogo del conto che include i dettagli dei token acquistati o riscattati e il prezzo di acquisto e il prezzo di riscatto. Questo metodo può restituire risultati con impaginazione basata su valori di pagesize e segnalibri e anche filtrati per ora di inizio e di fine.
t.Ctx.ERC1155AccountBondSummary.GetAllAccountBondSummaryWithPagination(userAccountId, pageSize, bookmark)
Parametri:
  • userAccountId: string: l'ID account dell'utente.
  • pageSize: number: la dimensione della pagina del risultato restituito.
  • bookmark: string: il segnalibro del risultato restituito.
Esempio di valore restituito:
{

   "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"
      }
   ]
}