Modèle de marché des obligations

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

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 de chaîne propre à l'application Blockchain App Builder, y compris les méthodes supplémentaires suivantes à utiliser avec l'application de marché des obligations.

TypeScript Méthodes pour Bond Marketplace

Le code de chaîne du marché des obligations inclut toutes les méthodes disponibles dans le code de 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 l'inscription sur le marché des applications. Lorsqu'un jeton est créé, son statut est initialement réglé à created. Cette méthode met à jour le statut à posted. Les utilisateurs peuvent exécuter la méthode getAllTokensWithFilter pour extraire tous les fichiers NFT ayant le statut posted.
public async postToken(tokenId: number)
Paramètres :
  • tokenId: number – 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":"1",
            "tokenName":"bond",
            "tokenDesc":"tokenDesc value",
            "tokenStandard":"erc1155+",
            "tokenType":"nonfungible",
            "tokenUnit":"fractional",
            "behaviors":[
               "divisible",
               "mintable",
               "transferable",
               "burnable",
               "roles"
            ],
            "roles":{
               "minter_role_name":"minter",
               "burner_role_name":"burner"
            },
            "mintable":{
               "max_mint_quantity":0
            },
            "quantity":100,
            "createdBy":"oaccount~276bcf1324b1ad1e493e22432db3b39f7a4b9bb17b8525c0391ea3ba36138e00",
            "creationDate":"2024-12-02T12:42:09.000Z",
            "divisible":{
               "decimal":0
            },
            "isBurned":false,
            "isLocked":false,
            "tokenUri":"tokenUri value",
            "status":"created"
         },
         "message":"Successfully updated asset with ID bond1"
      }
purchaseToken
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 de chaîne CBDC approprié est appelé avec les orgId et userId appropriés pour le transfert. Les valeurs orgId et userId doivent correspondre au créateur du jeton et la valeur de transfert du jeton CBDC doit être égale à la valeur faciale du jeton d'obligation multipliée par la quantité achetée.
public async purchaseToken(tokenId: number, quantity: number, orderId: string, additionalFees: number)
Paramètres :
  • tokenId: number - ID du jeton à acheter.
  • quantity: number – Le montant des jetons à acheter.
  • orderId: string – ID commande pour 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 de 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 à l'échéance. L'intérêt est calculé par le code de 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 au 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 de chaîne CBDC approprié est appelé avec les orgId et userId appropriés pour le transfert. Les valeurs orgId et userId doivent correspondre au responsable du jeton et la valeur de transfert du jeton CBDC doit être égale aux intérêts calculés par le code de chaîne de liaison.
public async payInterest(orgId: string, userId: string, tokenId: number, orderId: string)
Paramètres :
  • orgId: string – ID fournisseur de services d'adhésion (MSP) de l'utilisateur.
  • userId: string – Nom d'utilisateur ou ID courriel de l'utilisateur.
  • tokenId: number – ID du jeton.
  • orderId: string – ID commande pour 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 émettre une demande de rachat de jetons d'obligation après l'échéance. Cette méthode implique également le calcul du prix de rachat par le code de chaîne. Les demandes d'échange ne peuvent être déclenchées que sur la quantité entière du jeton d'obligation dont l'utilisateur est propriétaire. Les utilisateurs peuvent lancer plusieurs demandes d'échange en fonction de différents ID règlement, mais un seul peut être approuvé par le créateur du jeton.
public async requestTokenRedemption(settlementId: string, tokenId: number, orderId: string, additionalFees: number)
Paramètres :
  • settlementId: string - ID règlement pour l'opération d'échange.
  • tokenId: number – ID du jeton.
  • orderId: string – ID commande pour 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":"1",
         "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 d'obligation. L'opération d'approbation transfère l'obligation NFT du compte du propriétaire (l'utilisateur qui a soulevé la demande) au compte du créateur, et transfère les jetons CBDC du créateur de l'obligation au 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 de chaîne CBDC approprié est appelé avec les orgId et userId appropriés pour le transfert. Les valeurs orgId et userId doivent correspondre au compte du responsable du jeton qui a déclenché la demande de remboursement, et la valeur de transfert du jeton CBDC doit être égale au prix de remboursement calculé qui a été calculé par le code de chaîne lors de la demande de remboursement.
public async approveRedemption(fromOrgId: string, fromUserId: string, settlementId: string, tokenId: number)
Paramètres :
  • fromOrgId: string – ID fournisseur de services d'adhésion (MSP) de l'utilisateur.
  • fromUserId: string – Nom d'utilisateur ou ID courriel de l'utilisateur.
  • settlementId: string - ID règlement pour l'opération d'échange.
  • tokenId: number – 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 lancer à nouveau une demande d'échange en utilisant un autre ID règlement.
public async rejectRedemption(fromOrgId: string, fromUserId: string, settlementId: string, tokenId: number)
Paramètres :
  • fromOrgId: string – ID fournisseur de services d'adhésion (MSP) de l'utilisateur.
  • fromUserId: string – Nom d'utilisateur ou ID courriel de l'utilisateur.
  • settlementId: string - ID règlement pour l'opération d'échange.
  • tokenId: number – 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, CREATED ou 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 retourné.
  • bookmark: string – Signet du résultat retourné.
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":"1",
            "tokenName":"bond",
            "tokenDesc":"tokenDesc value",
            "tokenStandard":"erc1155+",
            "tokenType":"nonfungible",
            "tokenUnit":"fractional",
            "behaviors":[
               "divisible",
               "mintable",
               "transferable",
               "burnable",
               "roles"
            ],
            "roles":{
               "minter_role_name":"minter",
               "burner_role_name":"burner"
            },
            "mintable":{
               "max_mint_quantity":0
            },
            "quantity":100,
            "createdBy":"oaccount~276bcf1324b1ad1e493e22432db3b39f7a4b9bb17b8525c0391ea3ba36138e00",
            "creationDate":"2024-12-02T12:42:09.000Z",
            "divisible":{
               "decimal":0
            },
            "isBurned":false,
            "isLocked":false,
            "tokenUri":"tokenUri value",
            "status":"posted"
         }

]
getTokenApprovalRequestByUser
Tout titulaire de compte peut appeler cette méthode get pour obtenir les détails de toutes les demandes d'approbation de jeton (demandes d'échange) 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":"1",
      "quantity":2,
      "status":"APPROVED",
      "orderId":"op1",
      "redeemPrice":1,
      "purchasedPrice":11,
      "interestEarned":0
   },
   {
      "tokenName":"bond",
      "assetType":"otokenApproval",
      "id":"otokenApproval~fdf28b2d271ac9c0fbd94a2dedbf365728c77795f3e931e5a4a2dcf48039a989",
      "settlementId":"op3",
      "userBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op3",
      "fromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "toAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "tokenId":"1",
      "quantity":1,
      "status":"APPROVED",
      "orderId":"op3",
      "redeemPrice":11,
      "purchasedPrice":11,
      "interestEarned":0
   }
]
getTokenApprovalRequestForUserByStatus
Tout titulaire de compte peut appeler cette méthode get pour obtenir les détails de toutes les demandes d'approbation de jeton (demandes d'échange) 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":"1",
      "quantity":2,
      "status":"APPROVED",
      "orderId":"op1",
      "redeemPrice":1,
      "purchasedPrice":11,
      "interestEarned":0
   },
   {
      "tokenName":"bond",
      "assetType":"otokenApproval",
      "id":"otokenApproval~fdf28b2d271ac9c0fbd94a2dedbf365728c77795f3e931e5a4a2dcf48039a989",
      "settlementId":"op3",
      "userBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op3",
      "fromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "toAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "tokenId":"1",
      "quantity":1,
      "status":"APPROVED",
      "orderId":"op3",
      "redeemPrice":11,
      "purchasedPrice":11,
      "interestEarned":0
   }
]
getAccountBondSummary
Tout titulaire de compte peut appeler cette méthode get pour obtenir un résumé de compte qui comprend les détails des jetons achetés ou échangés ainsi que le prix d'achat et le prix de remboursement.
public async getAccountBondSummary(orgId: string, userId: string)
Paramètres :
  • orgId: string – ID fournisseur de services d'adhésion (MSP) de l'utilisateur.
  • userId: string – Nom d'utilisateur ou ID courriel 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":"1",
         "status":"Redeemed",
         "purchasedAmount":11,
         "purchasedDate":"2024-12-02T00:00:00.000Z",
         "purchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "orderId":"op1"
         "redeemPrice":11,
         "quantityRedeem":1,
         "redeemStatus":"REJECTED"
      },
      {
         "purchasedQuantity":1,
         "assetType":"oUserBondDetails",
         "id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op2",
         "tokenId":"1",
         "status":"Purchased",
         "purchasedAmount":11,
         "purchasedDate":"2024-12-02T00:00:00.000Z",
         "purchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "orderId":"op2",
         "redeemPrice":11,
         "quantityRedeem":1,
         "redeemStatus":"APPROVED"
      }
   ]
}
getAccountBondSummaryWithPagination
Tout titulaire de compte peut appeler cette méthode get pour obtenir un résumé de compte qui comprend les détails des jetons achetés ou échangés ainsi que le prix d'achat et le prix de remboursement. Cette méthode peut retourner des résultats avec pagination en fonction de la taille des pages et des valeurs 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 fournisseur de services d'adhésion (MSP) de l'utilisateur.
  • userId: string – Nom d'utilisateur ou ID courriel de l'utilisateur.
  • pageSize: number – Taille de page du résultat retourné.
  • bookmark: string – Signet du résultat retourné.
Exemple de valeur renvoyée :
{

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

Go Methods for Bond Marketplace

Le code de chaîne du marché des obligations inclut toutes les méthodes disponibles dans le code de 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 l'inscription sur le marché des applications. Lorsqu'un jeton est créé, son statut est initialement réglé à created. Cette méthode met à jour le statut à posted. Les utilisateurs peuvent exécuter la méthode getAllTokensWithFilter pour extraire tous les fichiers NFT ayant le statut posted.
func (t *Controller) PostToken(tokenId float64) (interface{}, error)
Paramètres :
  • tokenId: float64 – 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":"1",
            "TokenName":"bond",
            "TokenDesc":"tokenDesc value",
            "TokenStandard":"erc1155+",
            "TokenType":"nonfungible",
            "TokenUnit":"fractional",
            "Behaviors":[
               "divisible",
               "mintable",
               "transferable",
               "burnable",
               "roles"
            ],
            "Roles":{
               "minter_role_name":"minter",
               "burner_role_name":"burner"
            },
            "Mintable":{
               "max_mint_quantity":0
            },
            "Quantity":100,
            "CreatedBy":"oaccount~276bcf1324b1ad1e493e22432db3b39f7a4b9bb17b8525c0391ea3ba36138e00",
            "CreationDate":"2024-12-02T12:42:09.000Z",
            "Divisible":{
               "decimal":0
            },
            "IsBurned":false,
            "IsLocked":false,
            "TokenUri":"tokenUri value",
            "Status":"created"
         },
         "message":"Successfully updated asset with ID bond1"
      }
PurchaseToken
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 de chaîne CBDC approprié est appelé avec les orgId et userId appropriés pour le transfert. Les valeurs orgId et userId doivent correspondre au créateur du jeton et la valeur de transfert du jeton CBDC doit être égale à la valeur faciale du jeton d'obligation multipliée par la quantité achetée.
func (t *Controller) PurchaseToken(tokenId float64, quantity float64, orderId string, additionalFees float64) (interface{}, error)
Paramètres :
  • tokenId: float64 - ID du jeton à acheter.
  • quantity: number – Le montant des jetons à acheter.
  • orderId: string – ID commande pour 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 de 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 à l'échéance. L'intérêt est calculé par le code de 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 au 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 de chaîne CBDC approprié est appelé avec les orgId et userId appropriés pour le transfert. Les valeurs orgId et userId doivent correspondre au responsable du jeton et la valeur de transfert du jeton CBDC doit être égale aux intérêts calculés par le code de chaîne de liaison.
func (t *Controller) PayInterestEarned(orgId string, userId string, tokenId float64, orderId string, additionalFees float64) (interface{}, error)
Paramètres :
  • orgId: string – ID fournisseur de services d'adhésion (MSP) de l'utilisateur.
  • userId: string – Nom d'utilisateur ou ID courriel de l'utilisateur.
  • tokenId: float64 – ID du jeton.
  • orderId: string – ID commande pour 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 émettre une demande de rachat de jetons d'obligation après l'échéance. Cette méthode implique également le calcul du prix de rachat par le code de chaîne. Les demandes d'échange ne peuvent être déclenchées que sur la quantité entière du jeton d'obligation dont l'utilisateur est propriétaire. Les utilisateurs peuvent lancer plusieurs demandes d'échange en fonction de différents ID règlement, mais un seul peut être approuvé par le créateur du jeton.
func (t *Controller) RequestTokenRedemption(settlementId string, tokenId float64, orderId string, additionalFees float64) (interface{}, error)
Paramètres :
  • settlementId: string - ID règlement pour l'opération d'échange.
  • tokenId: float64 – ID du jeton.
  • orderId: string – ID commande pour 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":"1",
         "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 d'obligation. L'opération d'approbation transfère l'obligation NFT du compte du propriétaire (l'utilisateur qui a soulevé la demande) au compte du créateur, et transfère les jetons CBDC du créateur de l'obligation au 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 de chaîne CBDC approprié est appelé avec les orgId et userId appropriés pour le transfert. Les valeurs orgId et userId doivent correspondre au compte du responsable du jeton qui a déclenché la demande de remboursement, et la valeur de transfert du jeton CBDC doit être égale au prix de remboursement calculé qui a été calculé par le code de chaîne lors de la demande de remboursement.
func (t *Controller) ApproveRedemption(fromOrgId string, fromUserId string, settlementId string, tokenId float64) (interface{}, error)
Paramètres :
  • fromOrgId: string – ID fournisseur de services d'adhésion (MSP) de l'utilisateur.
  • fromUserId: string – Nom d'utilisateur ou ID courriel de l'utilisateur.
  • settlementId: string - ID règlement pour l'opération d'échange.
  • tokenId: float64 – 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 lancer à nouveau une demande d'échange en utilisant un autre ID règlement.
func (t *Controller) RejectRedemption(fromOrgId string, fromUserId string, settlementId string, tokenId float64) (interface{}, error)
Paramètres :
  • fromOrgId: string – ID fournisseur de services d'adhésion (MSP) de l'utilisateur.
  • fromUserId: string – Nom d'utilisateur ou ID courriel de l'utilisateur.
  • settlementId: string - ID règlement pour l'opération d'échange.
  • tokenId: float64 – 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, CREATED ou 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 retourné.
  • bookmark: string – Signet du résultat retourné.
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":"1",
            "TokenName":"bond",
            "TokenDesc":"tokenDesc value",
            "TokenStandard":"erc1155+",
            "TokenType":"nonfungible",
            "TokenUnit":"fractional",
            "Behaviors":[
               "divisible",
               "mintable",
               "transferable",
               "burnable",
               "roles"
            ],
            "Roles":{
               "minter_role_name":"minter",
               "burner_role_name":"burner"
            },
            "Mintable":{
               "max_mint_quantity":0
            },
            "Quantity":100,
            "CreatedBy":"oaccount~276bcf1324b1ad1e493e22432db3b39f7a4b9bb17b8525c0391ea3ba36138e00",
            "CreationDate":"2024-12-02T12:42:09.000Z",
            "Divisible":{
               "decimal":0
            },
            "IsBurned":false,
            "IsLocked":false,
            "TokenUri":"tokenUri value",
            "Status":"posted"
         }

]
GetTokenApprovalRequestByUser
Tout titulaire de compte peut appeler cette méthode get pour obtenir les détails de toutes les demandes d'approbation de jeton (demandes d'échange) 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":"1",
      "Quantity":2,
      "Status":"APPROVED",
      "OrderId":"op1",
      "RedeemPrice":1,
      "PurchasedPrice":11,
      "InterestEarned":0
   },
   {
      "TokenName":"bond",
      "AssetType":"otokenApproval",
      "Id":"otokenApproval~fdf28b2d271ac9c0fbd94a2dedbf365728c77795f3e931e5a4a2dcf48039a989",
      "SettlementId":"op3",
      "UserBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op3",
      "FromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "ToAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "TokenId":"1",
      "Quantity":1,
      "Status":"APPROVED",
      "OrderId":"op3",
      "RedeemPrice":11,
      "PurchasedPrice":11,
      "InterestEarned":0
   }
]
GetTokenApprovalRequestForUserByStatus
Tout titulaire de compte peut appeler cette méthode get pour obtenir les détails de toutes les demandes d'approbation de jeton (demandes d'échange) 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":"1",
      "Quantity":2,
      "Status":"APPROVED",
      "OrderId":"op1",
      "RedeemPrice":1,
      "PurchasedPrice":11,
      "InterestEarned":0
   },
   {
      "TokenName":"bond",
      "AssetType":"otokenApproval",
      "Id":"otokenApproval~fdf28b2d271ac9c0fbd94a2dedbf365728c77795f3e931e5a4a2dcf48039a989",
      "SettlementId":"op3",
      "UserBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op3",
      "FromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "ToAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "TokenId":"1",
      "Quantity":1,
      "Status":"APPROVED",
      "OrderId":"op3",
      "RedeemPrice":11,
      "PurchasedPrice":11,
      "InterestEarned":0
   }
]
GetAccountBondSummary
Tout titulaire de compte peut appeler cette méthode get pour obtenir un résumé de compte qui comprend les détails des jetons achetés ou échangés ainsi que le prix d'achat et le prix de remboursement.
func (t *Controller) GetAccountBondSummary(orgId string, userId string) (interface{}, error)
Paramètres :
  • orgId: string – ID fournisseur de services d'adhésion (MSP) de l'utilisateur.
  • userId: string – Nom d'utilisateur ou ID courriel 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":"1",
         "Status":"Redeemed",
         "PurchasedAmount":11,
         "PurchasedDate":"2024-12-02T00:00:00.000Z",
         "PurchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "OrderId":"op1"
         "RedeemPrice":11,
         "QuantityRedeem":1,
         "RedeemStatus":"REJECTED"
      },
      {
         "PurchasedQuantity":1,
         "AssetType":"oUserBondDetails",
         "Id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op2",
         "TokenId":"1",
         "Status":"Purchased",
         "PurchasedAmount":11,
         "PurchasedDate":"2024-12-02T00:00:00.000Z",
         "PurchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "OrderId":"op2",
         "RedeemPrice":11,
         "QuantityRedeem":1,
         "RedeemStatus":"APPROVED"
      }
   ]
}
GetAccountBondSummaryWithPagination
Tout titulaire de compte peut appeler cette méthode get pour obtenir un résumé de compte qui comprend les détails des jetons achetés ou échangés ainsi que le prix d'achat et le prix de remboursement. Cette méthode peut retourner des résultats avec pagination en fonction de la taille des pages et des valeurs 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 fournisseur de services d'adhésion (MSP) de l'utilisateur.
  • userId: string – Nom d'utilisateur ou ID courriel de l'utilisateur.
  • pageSize: number – Taille de page du résultat retourné.
  • bookmark: string – Signet du résultat retourné.
Exemple de valeur renvoyée :
{

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

TypeScript Mé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 à l'échéance. L'intérêt est calculé par le code de 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 au 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 de chaîne CBDC approprié est appelé avec les orgId et userId appropriés pour le transfert. Les valeurs orgId et userId doivent correspondre au responsable du jeton et la valeur de transfert du jeton CBDC doit être égale à l'intérêt calculé par le code de chaîne de la liaison.
this.Ctx.ERC1155AccountBondSummary.payInterest(userAccountId, tokenId, orderId)
Paramètres :
  • userAccountId: string – ID compte de l'utilisateur.
  • tokenId: string – ID du jeton.
  • orderId: string – ID commande pour l'opération d'achat.
Exemple de valeur renvoyée :
{
         "purchasedQuantity":1,
         "assetType":"oUserBondDetails",
         "id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
         "tokenId":"1",
         "status":"Redeemed",
         "purchasedAmount":11,
         "purchasedDate":"2024-12-02T00:00:00.000Z",
         "purchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "orderId":"op1"
         "interestEarned": 11,
         "interestEarnedDate": "2024-12-02T00:00:00.000Z"
}
requestTokenRedemption
Cette méthode ne peut être appelée que par le propriétaire du jeton pour émettre une demande de rachat de jetons d'obligation après l'échéance. Cette méthode implique également le calcul du prix de rachat par le code de chaîne. Les demandes d'échange ne peuvent être déclenchées que sur la quantité entière du jeton d'obligation dont l'utilisateur est propriétaire. Les utilisateurs peuvent lancer plusieurs demandes d'échange en fonction de différents ID 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 compte de l'utilisateur.
  • settlementId: string - ID règlement pour l'opération d'échange.
  • tokenId: string – ID du jeton.
  • orderId: string – ID commande pour 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":"1",
         "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 d'obligation. L'opération d'approbation transfère l'obligation NFT du compte du propriétaire (l'utilisateur qui a soulevé la demande) au compte du créateur, et transfère les jetons CBDC du créateur de l'obligation au 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 de chaîne CBDC approprié est appelé avec les orgId et userId appropriés pour le transfert. Les valeurs orgId et userId doivent correspondre au compte du responsable du jeton qui a déclenché la demande de remboursement, et la valeur de transfert du jeton CBDC doit être égale au prix de remboursement calculé qui a été calculé par le code de chaîne lors de la demande de remboursement.
this.Ctx.ERC1155TokenApproval.approveTokenApprovalRequest(fromUserAccountId, settlementId, tokenId)
Paramètres :
  • fromUserAccountId: string – ID compte de l'utilisateur.
  • settlementId: string - ID règlement pour l'opération d'échange.
  • 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 lancer à nouveau une demande d'échange en utilisant un autre ID règlement.
this.Ctx.ERC1155TokenApproval.rejectTokenApprovalRequest(fromUserAccountId, settlementId, tokenId)
Paramètres :
  • fromOrgId: string – ID fournisseur de services d'adhésion (MSP) de l'utilisateur.
  • fromUserId: string – Nom d'utilisateur ou ID courriel de l'utilisateur.
  • settlementId: string - ID règlement pour l'opération d'échange.
  • 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, CREATED ou 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 retourné.
  • bookmark: string – Signet du résultat retourné.
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":"1",
            "tokenName":"bond",
            "tokenDesc":"tokenDesc value",
            "tokenStandard":"erc1155+",
            "tokenType":"nonfungible",
            "tokenUnit":"fractional",
            "behaviors":[
               "divisible",
               "mintable",
               "transferable",
               "burnable",
               "roles"
            ],
            "roles":{
               "minter_role_name":"minter",
               "burner_role_name":"burner"
            },
            "mintable":{
               "max_mint_quantity":0
            },
            "quantity":100,
            "createdBy":"oaccount~276bcf1324b1ad1e493e22432db3b39f7a4b9bb17b8525c0391ea3ba36138e00",
            "creationDate":"2024-12-02T12:42:09.000Z",
            "divisible":{
               "decimal":0
            },
            "isBurned":false,
            "isLocked":false,
            "tokenUri":"tokenUri value",
            "status":"posted"
         }

]
getTokenApprovalRequestByUser
Tout titulaire de compte peut appeler cette méthode get pour obtenir les détails de toutes les demandes d'approbation de jeton (demandes d'échange) 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":"1",
      "quantity":2,
      "status":"APPROVED",
      "orderId":"op1",
      "redeemPrice":1,
      "purchasedPrice":11,
      "interestEarned":0
   },
   {
      "tokenName":"bond",
      "assetType":"otokenApproval",
      "id":"otokenApproval~fdf28b2d271ac9c0fbd94a2dedbf365728c77795f3e931e5a4a2dcf48039a989",
      "settlementId":"op3",
      "userBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op3",
      "fromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "toAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "tokenId":"1",
      "quantity":1,
      "status":"APPROVED",
      "orderId":"op3",
      "redeemPrice":11,
      "purchasedPrice":11,
      "interestEarned":0
   }
]
getTokenApprovalRequestForUserByStatus
Tout titulaire de compte peut appeler cette méthode get pour obtenir les détails de toutes les demandes d'approbation de jeton (demandes d'échange) 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":"1",
      "quantity":2,
      "status":"APPROVED",
      "orderId":"op1",
      "redeemPrice":1,
      "purchasedPrice":11,
      "interestEarned":0
   },
   {
      "tokenName":"bond",
      "assetType":"otokenApproval",
      "id":"otokenApproval~fdf28b2d271ac9c0fbd94a2dedbf365728c77795f3e931e5a4a2dcf48039a989",
      "settlementId":"op3",
      "userBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op3",
      "fromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "toAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "tokenId":"1",
      "quantity":1,
      "status":"APPROVED",
      "orderId":"op3",
      "redeemPrice":11,
      "purchasedPrice":11,
      "interestEarned":0
   }
]
getAccountBondSummary
Tout titulaire de compte peut appeler cette méthode get pour obtenir un résumé de compte qui comprend les détails des jetons achetés ou échangés ainsi que le prix d'achat et le prix de remboursement.
this.Ctx.ERC1155AccountBondSummary.getAllAccountBondSummary(userAccountId)
Paramètres :
  • userAccountId: string – ID 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":"1",
         "status":"Redeemed",
         "purchasedAmount":11,
         "purchasedDate":"2024-12-02T00:00:00.000Z",
         "purchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "orderId":"op1"
         "redeemPrice":11,
         "quantityRedeem":1,
         "redeemStatus":"REJECTED"
      },
      {
         "purchasedQuantity":1,
         "assetType":"oUserBondDetails",
         "id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op2",
         "tokenId":"1",
         "status":"Purchased",
         "purchasedAmount":11,
         "purchasedDate":"2024-12-02T00:00:00.000Z",
         "purchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "orderId":"op2",
         "redeemPrice":11,
         "quantityRedeem":1,
         "redeemStatus":"APPROVED"
      }
   ]
}
getAccountBondSummaryWithPagination
Tout titulaire de compte peut appeler cette méthode get pour obtenir un résumé de compte qui comprend les détails des jetons achetés ou échangés ainsi que le prix d'achat et le prix de remboursement. Cette méthode peut retourner des résultats avec pagination en fonction de la taille des pages et des valeurs 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 compte de l'utilisateur.
  • pageSize: number – Taille de page du résultat retourné.
  • bookmark: string – Signet du résultat retourné.
Exemple de valeur renvoyée :
    {

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

    	

    On success, it returns a message.

    {

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

Go SDK Méthodes 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 à l'échéance. L'intérêt est calculé par le code de 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 au 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 de chaîne CBDC approprié est appelé avec les orgId et userId appropriés pour le transfert. Les valeurs orgId et userId doivent correspondre au responsable du jeton et la valeur de transfert du jeton CBDC doit être égale à l'intérêt calculé par le code de chaîne de la liaison.
t.Ctx.ERC1155AccountBondSummary.PayInterestEarned(userAccountId, tokenId, orderId, additionalFees)
Paramètres :
  • userAccountId: string – ID compte de l'utilisateur.
  • tokenId: string – ID du jeton.
  • orderId: string – ID commande pour l'opération d'achat.
Exemple de valeur renvoyée :
{
         "PurchasedQuantity":1,
         "AssetType":"oUserBondDetails",
         "Id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
         "TokenId":"1",
         "Status":"Redeemed",
         "PurchasedAmount":11,
         "PurchasedDate":"2024-12-02T00:00:00.000Z",
         "PurchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "OrderId":"op1"
         "InterestEarned": 11,
         "InterestEarnedDate": "2024-12-02T00:00:00.000Z"

}
RequestTokenRedemption
Cette méthode ne peut être appelée que par le propriétaire du jeton pour émettre une demande de rachat de jetons d'obligation après l'échéance. Cette méthode implique également le calcul du prix de rachat par le code de chaîne. Les demandes d'échange ne peuvent être déclenchées que sur la quantité entière du jeton d'obligation dont l'utilisateur est propriétaire. Les utilisateurs peuvent lancer plusieurs demandes d'échange en fonction de différents ID 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 compte de l'utilisateur.
  • settlementId: string - ID règlement pour l'opération d'échange.
  • tokenId: string – ID du jeton.
  • orderId: string – ID commande pour 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":"1",
         "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 d'obligation. L'opération d'approbation transfère l'obligation NFT du compte du propriétaire (l'utilisateur qui a soulevé la demande) au compte du créateur, et transfère les jetons CBDC du créateur de l'obligation au 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 de chaîne CBDC approprié est appelé avec les orgId et userId appropriés pour le transfert. Les valeurs orgId et userId doivent correspondre au compte du responsable du jeton qui a déclenché la demande de remboursement, et la valeur de transfert du jeton CBDC doit être égale au prix de remboursement calculé qui a été calculé par le code de chaîne lors de la demande de remboursement.
t.Ctx.ERC1155TokenApproval.ApproveTokenApprovalRequest(fromUserAccountId, settlementId, tokenId)
Paramètres :
  • fromUserAccountId: string – ID compte de l'utilisateur.
  • settlementId: string - ID règlement pour l'opération d'échange.
  • 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 lancer à nouveau une demande d'échange en utilisant un autre ID règlement.
t.Ctx.ERC1155TokenApproval.RejectTokenApprovalRequest(fromUserAccountId, settlementId, tokenId)
Paramètres :
  • fromOrgId: string – ID fournisseur de services d'adhésion (MSP) de l'utilisateur.
  • fromUserId: string – Nom d'utilisateur ou ID courriel de l'utilisateur.
  • settlementId: string - ID règlement pour l'opération d'échange.
  • 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, CREATED ou 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 retourné.
  • bookmark: string – Signet du résultat retourné.
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":"1",
            "TokenName":"bond",
            "TokenDesc":"tokenDesc value",
            "TokenStandard":"erc1155+",
            "TokenType":"nonfungible",
            "TokenUnit":"fractional",
            "Behaviors":[
               "divisible",
               "mintable",
               "transferable",
               "burnable",
               "roles"
            ],
            "Roles":{
               "minter_role_name":"minter",
               "burner_role_name":"burner"
            },
            "Mintable":{
               "max_mint_quantity":0
            },
            "Quantity":100,
            "CreatedBy":"oaccount~276bcf1324b1ad1e493e22432db3b39f7a4b9bb17b8525c0391ea3ba36138e00",
            "CreationDate":"2024-12-02T12:42:09.000Z",
            "Divisible":{
               "decimal":0
            },
            "IsBurned":false,
            "IsLocked":false,
            "TokenUri":"tokenUri value",
            "Status":"posted"
         }
]
GetTokenApprovalRequestByUser
Tout titulaire de compte peut appeler cette méthode get pour obtenir les détails de toutes les demandes d'approbation de jeton (demandes d'échange) 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":"1",
      "Quantity":2,
      "Status":"APPROVED",
      "OrderId":"op1",
      "RedeemPrice":1,
      "PurchasedPrice":11,
      "InterestEarned":0
   },
   {
      "TokenName":"bond",
      "AssetType":"otokenApproval",
      "Id":"otokenApproval~fdf28b2d271ac9c0fbd94a2dedbf365728c77795f3e931e5a4a2dcf48039a989",
      "SettlementId":"op3",
      "UserBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op3",
      "FromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "ToAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "TokenId":"1",
      "Quantity":1,
      "Status":"APPROVED",
      "OrderId":"op3",
      "RedeemPrice":11,
      "PurchasedPrice":11,
      "InterestEarned":0
   }
]
GetTokenApprovalRequestForUserByStatus
Tout titulaire de compte peut appeler cette méthode get pour obtenir les détails de toutes les demandes d'approbation de jeton (demandes d'échange) 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":"1",
      "Quantity":2,
      "Status":"APPROVED",
      "OrderId":"op1",
      "RedeemPrice":1,
      "PurchasedPrice":11,
      "InterestEarned":0
   },
   {
      "TokenName":"bond",
      "AssetType":"otokenApproval",
      "Id":"otokenApproval~fdf28b2d271ac9c0fbd94a2dedbf365728c77795f3e931e5a4a2dcf48039a989",
      "SettlementId":"op3",
      "UserBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op3",
      "FromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "ToAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "TokenId":"1",
      "Quantity":1,
      "Status":"APPROVED",
      "OrderId":"op3",
      "RedeemPrice":11,
      "PurchasedPrice":11,
      "InterestEarned":0
   }
]
GetAccountBondSummary
Tout titulaire de compte peut appeler cette méthode get pour obtenir un résumé de compte qui comprend les détails des jetons achetés ou échangés ainsi que le prix d'achat et le prix de remboursement.
t.Ctx.ERC1155AccountBondSummary.GetAllAccountBondSummary(userAccountId)
Paramètres :
  • userAccountId: string – ID 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":"1",
         "Status":"Redeemed",
         "PurchasedAmount":11,
         "PurchasedDate":"2024-12-02T00:00:00.000Z",
         "PurchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "OrderId":"op1"
         "RedeemPrice":11,
         "QuantityRedeem":1,
         "RedeemStatus":"REJECTED"
      },
      {
         "PurchasedQuantity":1,
         "AssetType":"oUserBondDetails",
         "Id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op2",
         "TokenId":"1",
         "Status":"Purchased",
         "PurchasedAmount":11,
         "PurchasedDate":"2024-12-02T00:00:00.000Z",
         "PurchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "OrderId":"op2",
         "RedeemPrice":11,
         "QuantityRedeem":1,
         "RedeemStatus":"APPROVED"
      }
   ]
}
GetAccountBondSummaryWithPagination
Tout titulaire de compte peut appeler cette méthode get pour obtenir un résumé de compte qui comprend les détails des jetons achetés ou échangés ainsi que le prix d'achat et le prix de remboursement. Cette méthode peut retourner des résultats avec pagination en fonction de la taille des pages et des valeurs 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 compte de l'utilisateur.
  • pageSize: number – Taille de page du résultat retourné.
  • bookmark: string – Signet du résultat retourné.
Exemple de valeur renvoyée :
{

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