Modèle de place de marché obligataire

La version améliorée de Blockchain App Builder inclut un attribut de modèle qui génère des méthodes supplémentaires pour le scénario de marché obligataire.

Si vous incluez le paramètre model: bond dans le fichier de spécification pour les jetons qui utilisent la norme ERC-1155 étendue, le code chaîne propre à l'application Blockchain App Builder, y compris les méthodes supplémentaires suivantes à utiliser avec l'application de marché d'obligations.

TypeScript Méthodes pour la place de marché obligataire

Le code chaîne du marché des obligations inclut toutes les méthodes disponibles dans le code chaîne générique ERC-1155 NFT. Les méthodes supplémentaires suivantes propres au scénario de marché obligataire sont disponibles.
postToken
Cette méthode ne peut être appelée que par un créateur de jeton. La méthode soumet le jeton d'obligation pour inscription sur le marché. Lorsqu'un jeton est créé, son statut est initialement défini sur created. Cette méthode met à jour le statut sur posted. Les utilisateurs peuvent exécuter la méthode getAllTokensWithFilter pour extraire tous les NFT avec un statut posted.
public async postToken(tokenId: string)
Paramètres :
  • tokenId: string : ID du jeton à publier.
Exemple de valeur renvoyée :
{
         "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
Cette méthode peut être appelée par n'importe quel titulaire de compte pour acheter une obligation cotée NFT. L'achat transfère l'obligation NFT du compte du créateur au compte de l'appelant, et transfère les jetons CBDC du compte de l'appelant au compte du créateur. Pour cette raison, la méthode doit être exécutée dans le contexte d'une transaction atomique. La méthode vérifie également le processus de transfert, en s'assurant que le code chaîne CBDC approprié est appelé avec les valeurs orgId et userId correctes pour le transfert. orgId et userId doivent correspondre au créateur du jeton, et la valeur de transfert du jeton CBDC doit être égale à la valeur nominale du jeton d'obligation multipliée par la quantité achetée.
public async purchaseToken(tokenId: string, quantity: number, orderId: string, additionalFees: number)
Paramètres :
  • tokenId: string : ID du jeton à acheter.
  • quantity: number – Le nombre de jetons à acheter.
  • orderId: string : ID de commande de l'opération d'achat.
  • additionalFees: number – Les frais supplémentaires à ajouter au prix d'achat.
Exemple de valeur renvoyée :
{
   "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
Cette méthode ne peut être appelée que par le créateur du jeton ou l'administrateur pour payer les intérêts gagnés sur le jeton d'obligation. Cette méthode ne peut être appelée que si la fréquence d'intérêt du jeton est mensuelle, trimestrielle ou annuelle. Les intérêts ne peuvent pas être payés si la fréquence des intérêts est à échéance. Les intérêts sont calculés par le code chaîne en fonction du taux de coupon du jeton. L'opération d'achat transfère les jetons CBDC du compte de l'appelant vers le compte du propriétaire de l'obligation. Pour cette raison, cette méthode doit être exécutée dans le contexte d'une transaction atomique. La méthode vérifie également le processus de transfert, en s'assurant que le code chaîne CBDC approprié est appelé avec les valeurs orgId et userId correctes pour le transfert. orgId et userId doivent correspondre au propriétaire du jeton, et la valeur de transfert du jeton CBDC doit être égale à l'intérêt calculé par le code chaîne de liaison.
public async payInterest(orgId: string, userId: string, tokenId: string, orderId: string)
Paramètres :
  • orgId: string : ID du fournisseur de services d'adhésion de l'utilisateur.
  • userId: string : nom d'utilisateur ou adresse électronique de l'utilisateur.
  • tokenId: string : ID du jeton.
  • orderId: string : ID de commande de l'opération d'achat.
Exemple de valeur renvoyée :
{
   "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
Cette méthode ne peut être appelée que par le propriétaire du jeton pour lancer une demande de rachat de jetons d'obligations après l'échéance. Cette méthode implique également le calcul du prix d'échange par le code chaîne. Les demandes d'échange ne peuvent être émises que sur la totalité du jeton d'obligation dont l'utilisateur est propriétaire. Les utilisateurs peuvent émettre plusieurs demandes d'échange en fonction de différents ID de règlement, mais un seul peut être approuvé par le créateur du jeton.
public async requestTokenRedemption(settlementId: string, tokenId: string, orderId: string, additionalFees: number)
Paramètres :
  • settlementId: string – ID de règlement pour l'opération de rachat.
  • tokenId: string : ID du jeton.
  • orderId: string : ID de commande de l'opération d'achat.
  • additionalFees: number – Les frais supplémentaires à ajouter au prix de rachat.
Exemple de valeur renvoyée :
{
         "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
Cette méthode ne peut être appelée que par le créateur du jeton pour approuver une demande de rachat de jetons de liaison. L'opération d'approbation transfère le NFT d'obligation du compte du propriétaire (l'utilisateur qui a émis la demande) vers le compte du créateur et transfère les jetons CBDC du créateur de l'obligation vers le compte du propriétaire. Pour cette raison, cette méthode doit être exécutée dans le contexte d'une transaction atomique. La méthode vérifie également le processus de transfert, en s'assurant que le code chaîne CBDC approprié est appelé avec les valeurs orgId et userId correctes pour le transfert. orgId et userId doivent correspondre au compte du propriétaire du jeton qui a déclenché la demande d'échange, et la valeur de transfert du jeton CBDC doit être égale au prix d'échange calculé qui a été calculé par le code chaîne lors de la génération de la demande d'échange.
public async approveRedemption(fromOrgId: string, fromUserId: string, settlementId: string, tokenId: string)
Paramètres :
  • fromOrgId: string : ID du fournisseur de services d'adhésion de l'utilisateur.
  • fromUserId: string : nom d'utilisateur ou adresse électronique de l'utilisateur.
  • settlementId: string – ID de règlement pour l'opération de rachat.
  • tokenId: string : ID du jeton.
Exemple de valeur renvoyée :
{
   "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
Le créateur du jeton peut appeler cette méthode pour rejeter la demande d'échange. Les propriétaires de jetons peuvent relancer une demande d'échange en utilisant un ID de règlement différent.
public async rejectRedemption(fromOrgId: string, fromUserId: string, settlementId: string, tokenId: string)
Paramètres :
  • fromOrgId: string : ID du fournisseur de services d'adhésion de l'utilisateur.
  • fromUserId: string : nom d'utilisateur ou adresse électronique de l'utilisateur.
  • settlementId: string – ID de règlement pour l'opération de rachat.
  • tokenId: string : ID du jeton.
Exemple de valeur renvoyée :
{
   "status":"success",
   "msg":"Successfully rejected the token approval request"
}
getAllTokensWithFilters
L'administrateur peut appeler cette méthode get pour extraire tous les jetons filtrés par statut, soit CREATED, soit POSTED.
public async getAllTokensWithFilters(status: string, pageSize: number, bookmark: string)
Paramètres :
  • status: string : statut du jeton, qui peut être CREATED ou POSTED.
  • pageSize: number : taille de page du résultat renvoyé.
  • bookmark: string : marque-page du résultat renvoyé.
Exemple de valeur renvoyée :
[{
            "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
Tout titulaire de compte peut appeler cette méthode get pour obtenir les détails de toutes les demandes d'approbation de jeton (demandes de remboursement) qu'il a effectuées.
public async getTokenApprovalRequestByUser(status: string)
Paramètres :
  • status: string : statut de la demande, qui peut être PENDING, REJECTED ou APPROVED.
Exemple de valeur renvoyée :
[
   {
      "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
Tout titulaire de compte peut appeler cette méthode get pour obtenir les détails de toutes les demandes d'approbation de jeton (demandes de remboursement) qu'il a effectuées.
public async getTokenApprovalRequestForUserByStatus(status: string)
Paramètres :
  • status: string : statut de la demande, qui peut être PENDING, REJECTED ou APPROVED.
Exemple de valeur renvoyée :
[
   {
      "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
Tout titulaire de compte peut appeler cette méthode get pour obtenir un résumé du compte qui inclut les détails des jetons achetés ou échangés, ainsi que le prix d'achat et le prix de rachat.
public async getAccountBondSummary(orgId: string, userId: string)
Paramètres :
  • orgId: string : ID du fournisseur de services d'adhésion de l'utilisateur.
  • userId: string : nom d'utilisateur ou adresse électronique de l'utilisateur.
Exemple de valeur renvoyée :
{

   "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
Tout titulaire de compte peut appeler cette méthode get pour obtenir un résumé du compte qui inclut les détails des jetons achetés ou échangés, ainsi que le prix d'achat et le prix de rachat. Cette méthode peut renvoyer des résultats avec une pagination basée sur les valeurs de taille de page et de signet, et également filtrée par heure de début et heure de fin.
public async getAccountBondSummaryWithPagination(orgId: string, userId: string, pageSize: number, bookmark?: string)
Paramètres :
  • orgId: string : ID du fournisseur de services d'adhésion de l'utilisateur.
  • userId: string : nom d'utilisateur ou adresse électronique de l'utilisateur.
  • pageSize: number : taille de page du résultat renvoyé.
  • bookmark: string : marque-page du résultat renvoyé.
Exemple de valeur renvoyée :
{

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

Méthodes Go pour Bond Marketplace

Le code chaîne du marché des obligations inclut toutes les méthodes disponibles dans le code chaîne générique ERC-1155 NFT. Les méthodes supplémentaires suivantes propres au scénario de marché obligataire sont disponibles.
PostToken
Cette méthode ne peut être appelée que par un créateur de jeton. La méthode soumet le jeton d'obligation pour inscription sur le marché. Lorsqu'un jeton est créé, son statut est initialement défini sur created. Cette méthode met à jour le statut sur posted. Les utilisateurs peuvent exécuter la méthode getAllTokensWithFilter pour extraire tous les NFT avec un statut posted.
func (t *Controller) PostToken(tokenId string) (interface{}, error)
Paramètres :
  • tokenId: string : ID du jeton à publier.
Exemple de valeur renvoyée :
{
         "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
Cette méthode peut être appelée par n'importe quel titulaire de compte pour acheter une obligation cotée NFT. L'achat transfère l'obligation NFT du compte du créateur au compte de l'appelant, et transfère les jetons CBDC du compte de l'appelant au compte du créateur. Pour cette raison, la méthode doit être exécutée dans le contexte d'une transaction atomique. La méthode vérifie également le processus de transfert, en s'assurant que le code chaîne CBDC approprié est appelé avec les valeurs orgId et userId correctes pour le transfert. orgId et userId doivent correspondre au créateur du jeton, et la valeur de transfert du jeton CBDC doit être égale à la valeur nominale du jeton d'obligation multipliée par la quantité achetée.
func (t *Controller) PurchaseToken(tokenId string, quantity float64, orderId string, additionalFees float64) (interface{}, error)
Paramètres :
  • tokenId: string : ID du jeton à acheter.
  • quantity: number – Le nombre de jetons à acheter.
  • orderId: string : ID de commande de l'opération d'achat.
  • additionalFees: number – Les frais supplémentaires à ajouter au prix d'achat.
Exemple de valeur renvoyée :
{
   "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
Cette méthode ne peut être appelée que par le créateur du jeton ou l'administrateur pour payer les intérêts gagnés sur le jeton d'obligation. Cette méthode ne peut être appelée que si la fréquence d'intérêt du jeton est mensuelle, trimestrielle ou annuelle. Les intérêts ne peuvent pas être payés si la fréquence des intérêts est à échéance. Les intérêts sont calculés par le code chaîne en fonction du taux de coupon du jeton. L'opération d'achat transfère les jetons CBDC du compte de l'appelant vers le compte du propriétaire de l'obligation. Pour cette raison, cette méthode doit être exécutée dans le contexte d'une transaction atomique. La méthode vérifie également le processus de transfert, en s'assurant que le code chaîne CBDC approprié est appelé avec les valeurs orgId et userId correctes pour le transfert. orgId et userId doivent correspondre au propriétaire du jeton, et la valeur de transfert du jeton CBDC doit être égale à l'intérêt calculé par le code chaîne de liaison.
func (t *Controller) PayInterestEarned(orgId string, userId string, tokenId string, orderId string, additionalFees float64) (interface{}, error)
Paramètres :
  • orgId: string : ID du fournisseur de services d'adhésion de l'utilisateur.
  • userId: string : nom d'utilisateur ou adresse électronique de l'utilisateur.
  • tokenId: string : ID du jeton.
  • orderId: string : ID de commande de l'opération d'achat.
Exemple de valeur renvoyée :
{
   "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
Cette méthode ne peut être appelée que par le propriétaire du jeton pour lancer une demande de rachat de jetons d'obligations après l'échéance. Cette méthode implique également le calcul du prix d'échange par le code chaîne. Les demandes d'échange ne peuvent être émises que sur la totalité du jeton d'obligation dont l'utilisateur est propriétaire. Les utilisateurs peuvent émettre plusieurs demandes d'échange en fonction de différents ID de règlement, mais un seul peut être approuvé par le créateur du jeton.
func (t *Controller) RequestTokenRedemption(settlementId string, tokenId string, orderId string, additionalFees float64) (interface{}, error)
Paramètres :
  • settlementId: string – ID de règlement pour l'opération de rachat.
  • tokenId: string : ID du jeton.
  • orderId: string : ID de commande de l'opération d'achat.
  • additionalFees: number – Les frais supplémentaires à ajouter au prix de rachat.
Exemple de valeur renvoyée :
{
         "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
Cette méthode ne peut être appelée que par le créateur du jeton pour approuver une demande de rachat de jetons de liaison. L'opération d'approbation transfère le NFT d'obligation du compte du propriétaire (l'utilisateur qui a émis la demande) vers le compte du créateur et transfère les jetons CBDC du créateur de l'obligation vers le compte du propriétaire. Pour cette raison, cette méthode doit être exécutée dans le contexte d'une transaction atomique. La méthode vérifie également le processus de transfert, en s'assurant que le code chaîne CBDC approprié est appelé avec les valeurs orgId et userId correctes pour le transfert. orgId et userId doivent correspondre au compte du propriétaire du jeton qui a déclenché la demande d'échange, et la valeur de transfert du jeton CBDC doit être égale au prix d'échange calculé qui a été calculé par le code chaîne lors de la génération de la demande d'échange.
func (t *Controller) ApproveRedemption(fromOrgId string, fromUserId string, settlementId string, tokenId string) (interface{}, error)
Paramètres :
  • fromOrgId: string : ID du fournisseur de services d'adhésion de l'utilisateur.
  • fromUserId: string : nom d'utilisateur ou adresse électronique de l'utilisateur.
  • settlementId: string – ID de règlement pour l'opération de rachat.
  • tokenId: string : ID du jeton.
Exemple de valeur renvoyée :
{
   "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
Le créateur du jeton peut appeler cette méthode pour rejeter la demande d'échange. Les propriétaires de jetons peuvent relancer une demande d'échange en utilisant un ID de règlement différent.
func (t *Controller) RejectRedemption(fromOrgId string, fromUserId string, settlementId string, tokenId string) (interface{}, error)
Paramètres :
  • fromOrgId: string : ID du fournisseur de services d'adhésion de l'utilisateur.
  • fromUserId: string : nom d'utilisateur ou adresse électronique de l'utilisateur.
  • settlementId: string – ID de règlement pour l'opération de rachat.
  • tokenId: string : ID du jeton.
Exemple de valeur renvoyée :
{
   "status":"success",
   "msg":"Successfully rejected the token approval request"
}
GetAllTokensWithFilter
L'administrateur peut appeler cette méthode get pour extraire tous les jetons filtrés par statut, soit CREATED, soit POSTED.
func (t *Controller) GetAllTokensWithFilters(status string, pageSize int32, bookmark string)
Paramètres :
  • status: string : statut du jeton, qui peut être CREATED ou POSTED.
  • pageSize: number : taille de page du résultat renvoyé.
  • bookmark: string : marque-page du résultat renvoyé.
Exemple de valeur renvoyée :
[ {

               "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
Tout titulaire de compte peut appeler cette méthode get pour obtenir les détails de toutes les demandes d'approbation de jeton (demandes de remboursement) qu'il a effectuées.
func (t *Controller) GetTokenApprovalRequestByUser(status string) (interface{}, error)
Paramètres :
  • status: string : statut de la demande, qui peut être PENDING, REJECTED ou APPROVED.
Exemple de valeur renvoyée :
[
   {
      "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
Tout titulaire de compte peut appeler cette méthode get pour obtenir les détails de toutes les demandes d'approbation de jeton (demandes de remboursement) qu'il a effectuées.
func (t *Controller) GetTokenApprovalRequestForUserByStatus(status string) (interface{}, error)
Paramètres :
  • status: string : statut de la demande, qui peut être PENDING, REJECTED ou APPROVED.
Exemple de valeur renvoyée :
[
   {
      "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
Tout titulaire de compte peut appeler cette méthode get pour obtenir un résumé du compte qui inclut les détails des jetons achetés ou échangés, ainsi que le prix d'achat et le prix de rachat.
func (t *Controller) GetAccountBondSummary(orgId string, userId string) (interface{}, error)
Paramètres :
  • orgId: string : ID du fournisseur de services d'adhésion de l'utilisateur.
  • userId: string : nom d'utilisateur ou adresse électronique de l'utilisateur.
Exemple de valeur renvoyée :
{

   "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
Tout titulaire de compte peut appeler cette méthode get pour obtenir un résumé du compte qui inclut les détails des jetons achetés ou échangés, ainsi que le prix d'achat et le prix de rachat. Cette méthode peut renvoyer des résultats avec une pagination basée sur les valeurs de taille de page et de signet, et également filtrée par heure de début et heure de fin.
func (t *Controller) GetAccountBondSummaryWithPagination(orgId string, userId string, pageSize int32, bookmark string) (interface{}, error)
Paramètres :
  • orgId: string : ID du fournisseur de services d'adhésion de l'utilisateur.
  • userId: string : nom d'utilisateur ou adresse électronique de l'utilisateur.
  • pageSize: number : taille de page du résultat renvoyé.
  • bookmark: string : marque-page du résultat renvoyé.
Exemple de valeur renvoyée :
{

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

TypeScript Méthodes SDK pour Bond Marketplace

payInterest
Le créateur de jeton ou l'administrateur peut appeler cette méthode pour payer les intérêts gagnés sur un jeton d'obligation. Cette méthode ne peut être appelée que si la fréquence d'intérêt du jeton est mensuelle, trimestrielle ou annuelle. Les intérêts ne peuvent pas être payés si la fréquence des intérêts est à échéance. Les intérêts sont calculés par le code chaîne lui-même en fonction du taux de coupon du jeton. L'opération d'achat transfère les jetons CBDC du compte de l'appelant vers le compte du propriétaire de l'obligation. Pour cette raison, cette méthode doit être exécutée dans le contexte d'une transaction atomique. La méthode vérifie également le processus de transfert, en s'assurant que le code chaîne CBDC approprié est appelé avec les valeurs orgId et userId correctes pour le transfert. orgId et userId doivent correspondre au propriétaire du jeton, et la valeur de transfert du jeton CBDC doit être égale à l'intérêt calculé par le code chaîne de liaison.
this.Ctx.ERC1155AccountBondSummary.payInterest(userAccountId, tokenId, orderId)
Paramètres :
  • userAccountId: string : ID de compte de l'utilisateur.
  • tokenId: string : ID du jeton.
  • orderId: string : ID de commande de l'opération d'achat.
Exemple de valeur renvoyée :
{
         "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
Cette méthode ne peut être appelée que par le propriétaire du jeton pour lancer une demande de rachat de jetons d'obligations après l'échéance. Cette méthode implique également le calcul du prix d'échange par le code chaîne. Les demandes d'échange ne peuvent être émises que sur la totalité du jeton d'obligation dont l'utilisateur est propriétaire. Les utilisateurs peuvent émettre plusieurs demandes d'échange en fonction de différents ID de règlement, mais un seul peut être approuvé par le créateur du jeton.
this.Ctx.ERC1155TokenApproval.requestTokenRedemption(callerUserAccountId, settlementId, tokenId, orderId, quantity, additionalFees);
Paramètres :
  • callerUserAccountId: string : ID de compte de l'utilisateur.
  • settlementId: string – ID de règlement pour l'opération de rachat.
  • tokenId: string : ID du jeton.
  • orderId: string : ID de commande de l'opération d'achat.
  • additionalFees: number – Les frais supplémentaires à ajouter au prix de rachat.
Exemple de valeur renvoyée :
{
         "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
Cette méthode ne peut être appelée que par le créateur du jeton pour approuver une demande de rachat de jetons de liaison. L'opération d'approbation transfère le NFT d'obligation du compte du propriétaire (l'utilisateur qui a émis la demande) vers le compte du créateur et transfère les jetons CBDC du créateur de l'obligation vers le compte du propriétaire. Pour cette raison, cette méthode doit être exécutée dans le contexte d'une transaction atomique. La méthode vérifie également le processus de transfert, en s'assurant que le code chaîne CBDC approprié est appelé avec les valeurs orgId et userId correctes pour le transfert. orgId et userId doivent correspondre au compte du propriétaire du jeton qui a déclenché la demande d'échange, et la valeur de transfert du jeton CBDC doit être égale au prix d'échange calculé qui a été calculé par le code chaîne lors de la génération de la demande d'échange.
this.Ctx.ERC1155TokenApproval.approveTokenApprovalRequest(fromUserAccountId, settlementId, tokenId)
Paramètres :
  • fromUserAccountId: string : ID de compte de l'utilisateur.
  • settlementId: string – ID de règlement pour l'opération de rachat.
  • tokenId: string : ID du jeton.
Exemple de valeur renvoyée :
{
   "status":"success",
   "msg":"Successfully approved the token approval request"
}
rejectRedemption
Le créateur du jeton peut appeler cette méthode pour rejeter la demande d'échange. Les propriétaires de jetons peuvent relancer une demande d'échange en utilisant un ID de règlement différent.
this.Ctx.ERC1155TokenApproval.rejectTokenApprovalRequest(fromUserAccountId, settlementId, tokenId)
Paramètres :
  • fromOrgId: string : ID du fournisseur de services d'adhésion de l'utilisateur.
  • fromUserId: string : nom d'utilisateur ou adresse électronique de l'utilisateur.
  • settlementId: string – ID de règlement pour l'opération de rachat.
  • tokenId: string : ID du jeton.
Exemple de valeur renvoyée :
{
   "status":"success",
   "msg":"Successfully rejected the token approval request"
}
getAllTokensWithFilter
L'administrateur peut appeler cette méthode get pour extraire tous les jetons filtrés par statut, soit CREATED, soit POSTED.
this.Ctx.ERC1155Token.getAllTokensWithFilters(status, pageSize, bookmark)
Paramètres :
  • status: string : statut du jeton, qui peut être CREATED ou POSTED.
  • pageSize: number : taille de page du résultat renvoyé.
  • bookmark: string : marque-page du résultat renvoyé.
Exemple de valeur renvoyée :
[{
            "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
Tout titulaire de compte peut appeler cette méthode get pour obtenir les détails de toutes les demandes d'approbation de jeton (demandes de remboursement) qu'il a effectuées.
this.Ctx.ERC1155TokenApproval.getAllTokenApprovalRequestByUserByStatus(status)
Paramètres :
  • status: string : statut de la demande, qui peut être PENDING, REJECTED ou APPROVED.
Exemple de valeur renvoyée :
[
   {
      "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
Tout titulaire de compte peut appeler cette méthode get pour obtenir les détails de toutes les demandes d'approbation de jeton (demandes de remboursement) qu'il a effectuées.
this.Ctx.ERC1155TokenApproval.getAllTokenApprovalRequestForUserByStatus(status)
Paramètres :
  • status: string : statut de la demande, qui peut être PENDING, REJECTED ou APPROVED.
Exemple de valeur renvoyée :
[
   {
      "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
Tout titulaire de compte peut appeler cette méthode get pour obtenir un résumé du compte qui inclut les détails des jetons achetés ou échangés, ainsi que le prix d'achat et le prix de rachat.
this.Ctx.ERC1155AccountBondSummary.getAllAccountBondSummary(userAccountId)
Paramètres :
  • userAccountId: string : ID de compte de l'utilisateur.
Exemple de valeur renvoyée :
{

   "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
Tout titulaire de compte peut appeler cette méthode get pour obtenir un résumé du compte qui inclut les détails des jetons achetés ou échangés, ainsi que le prix d'achat et le prix de rachat. Cette méthode peut renvoyer des résultats avec une pagination basée sur les valeurs de taille de page et de signet, et également filtrée par heure de début et heure de fin.
this.Ctx.ERC1155AccountBondSummary.getAllAccountBondSummaryWithPagination(userAccountId, pageSize, bookmark)
Paramètres :
  • userAccountId: string : ID de compte de l'utilisateur.
  • pageSize: number : taille de page du résultat renvoyé.
  • bookmark: string : marque-page du résultat renvoyé.
Exemple de valeur renvoyée :
    {

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

    	

    On success, it returns a message.

    {

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

Méthodes Go SDK pour Bond Marketplace

PayInterest
Le créateur de jeton ou l'administrateur peut appeler cette méthode pour payer les intérêts gagnés sur un jeton d'obligation. Cette méthode ne peut être appelée que si la fréquence d'intérêt du jeton est mensuelle, trimestrielle ou annuelle. Les intérêts ne peuvent pas être payés si la fréquence des intérêts est à échéance. Les intérêts sont calculés par le code chaîne lui-même en fonction du taux de coupon du jeton. L'opération d'achat transfère les jetons CBDC du compte de l'appelant vers le compte du propriétaire de l'obligation. Pour cette raison, cette méthode doit être exécutée dans le contexte d'une transaction atomique. La méthode vérifie également le processus de transfert, en s'assurant que le code chaîne CBDC approprié est appelé avec les valeurs orgId et userId correctes pour le transfert. orgId et userId doivent correspondre au propriétaire du jeton, et la valeur de transfert du jeton CBDC doit être égale à l'intérêt calculé par le code chaîne de liaison.
t.Ctx.ERC1155AccountBondSummary.PayInterestEarned(userAccountId, tokenId, orderId, additionalFees)
Paramètres :
  • userAccountId: string : ID de compte de l'utilisateur.
  • tokenId: string : ID du jeton.
  • orderId: string : ID de commande de l'opération d'achat.
Exemple de valeur renvoyée :
{
         "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
Cette méthode ne peut être appelée que par le propriétaire du jeton pour lancer une demande de rachat de jetons d'obligations après l'échéance. Cette méthode implique également le calcul du prix d'échange par le code chaîne. Les demandes d'échange ne peuvent être émises que sur la totalité du jeton d'obligation dont l'utilisateur est propriétaire. Les utilisateurs peuvent émettre plusieurs demandes d'échange en fonction de différents ID de règlement, mais un seul peut être approuvé par le créateur du jeton.
t.Ctx.ERC1155TokenApproval.RequestTokenRedemption(callerUserAccountId, settlementId, tokenId, orderId, quantity, additionalFees)
Paramètres :
  • callerUserAccountId: string : ID de compte de l'utilisateur.
  • settlementId: string – ID de règlement pour l'opération de rachat.
  • tokenId: string : ID du jeton.
  • orderId: string : ID de commande de l'opération d'achat.
  • additionalFees: number – Les frais supplémentaires à ajouter au prix de rachat.
Exemple de valeur renvoyée :
{
         "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
Cette méthode ne peut être appelée que par le créateur du jeton pour approuver une demande de rachat de jetons de liaison. L'opération d'approbation transfère le NFT d'obligation du compte du propriétaire (l'utilisateur qui a émis la demande) vers le compte du créateur et transfère les jetons CBDC du créateur de l'obligation vers le compte du propriétaire. Pour cette raison, cette méthode doit être exécutée dans le contexte d'une transaction atomique. La méthode vérifie également le processus de transfert, en s'assurant que le code chaîne CBDC approprié est appelé avec les valeurs orgId et userId correctes pour le transfert. orgId et userId doivent correspondre au compte du propriétaire du jeton qui a déclenché la demande d'échange, et la valeur de transfert du jeton CBDC doit être égale au prix d'échange calculé qui a été calculé par le code chaîne lors de la génération de la demande d'échange.
t.Ctx.ERC1155TokenApproval.ApproveTokenApprovalRequest(fromUserAccountId, settlementId, tokenId)
Paramètres :
  • fromUserAccountId: string : ID de compte de l'utilisateur.
  • settlementId: string – ID de règlement pour l'opération de rachat.
  • tokenId: string : ID du jeton.
Exemple de valeur renvoyée :
{
   "status":"success",
   "msg":"Successfully approved the token approval request"
}
RejectRedemption
Le créateur du jeton peut appeler cette méthode pour rejeter la demande d'échange. Les propriétaires de jetons peuvent relancer une demande d'échange en utilisant un ID de règlement différent.
t.Ctx.ERC1155TokenApproval.RejectTokenApprovalRequest(fromUserAccountId, settlementId, tokenId)
Paramètres :
  • fromOrgId: string : ID du fournisseur de services d'adhésion de l'utilisateur.
  • fromUserId: string : nom d'utilisateur ou adresse électronique de l'utilisateur.
  • settlementId: string – ID de règlement pour l'opération de rachat.
  • tokenId: string : ID du jeton.
Exemple de valeur renvoyée :
{
   "status":"success",
   "msg":"Successfully rejected the token approval request"
}
GetAllTokensWithFilter
L'administrateur peut appeler cette méthode get pour extraire tous les jetons filtrés par statut, soit CREATED, soit POSTED.
t.Ctx.ERC1155Token.GetAllTokensWithFilters(status, pageSize, bookmark)
Paramètres :
  • status: string : statut du jeton, qui peut être CREATED ou POSTED.
  • pageSize: number : taille de page du résultat renvoyé.
  • bookmark: string : marque-page du résultat renvoyé.
Exemple de valeur renvoyée :
[ {

               "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
Tout titulaire de compte peut appeler cette méthode get pour obtenir les détails de toutes les demandes d'approbation de jeton (demandes de remboursement) qu'il a effectuées.
t.Ctx.ERC1155TokenApproval.GetAllTokenApprovalRequestByUserByStatus(status)
Paramètres :
  • status: string : statut de la demande, qui peut être PENDING, REJECTED ou APPROVED.
Exemple de valeur renvoyée :
[
   {
      "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
Tout titulaire de compte peut appeler cette méthode get pour obtenir les détails de toutes les demandes d'approbation de jeton (demandes de remboursement) qu'il a effectuées.
t.Ctx.ERC1155TokenApproval.GetAllTokenApprovalRequestForUserByStatus(status)
Paramètres :
  • status: string : statut de la demande, qui peut être PENDING, REJECTED ou APPROVED.
Exemple de valeur renvoyée :
[
   {
      "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
Tout titulaire de compte peut appeler cette méthode get pour obtenir un résumé du compte qui inclut les détails des jetons achetés ou échangés, ainsi que le prix d'achat et le prix de rachat.
t.Ctx.ERC1155AccountBondSummary.GetAllAccountBondSummary(userAccountId)
Paramètres :
  • userAccountId: string : ID de compte de l'utilisateur.
Exemple de valeur renvoyée :
{

   "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
Tout titulaire de compte peut appeler cette méthode get pour obtenir un résumé du compte qui inclut les détails des jetons achetés ou échangés, ainsi que le prix d'achat et le prix de rachat. Cette méthode peut renvoyer des résultats avec une pagination basée sur les valeurs de taille de page et de signet, et également filtrée par heure de début et heure de fin.
t.Ctx.ERC1155AccountBondSummary.GetAllAccountBondSummaryWithPagination(userAccountId, pageSize, bookmark)
Paramètres :
  • userAccountId: string : ID de compte de l'utilisateur.
  • pageSize: number : taille de page du résultat renvoyé.
  • bookmark: string : marque-page du résultat renvoyé.
Exemple de valeur renvoyée :
{

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