Bond-Marktplatzmodell

Die erweiterte Version von Blockchain App Builder enthält ein Modellattribut, das zusätzliche Methoden für das Bond Marketplace-Szenario generiert.

Wenn Sie den Parameter model: bond in die Spezifikationsdatei für Token aufnehmen, die den erweiterten ERC-1155-Standard verwenden, enthält der anwendungsspezifische Blockchain App Builder-Chaincode die folgenden zusätzlichen Methoden zur Verwendung mit der Bond Marketplace-Anwendung.

TypeScript Methoden für Bond Marketplace

Der Anleihemarkt-Chaincode umfasst alle im generischen ERC-1155 NFT-Chaincode verfügbaren Methoden. Die folgenden zusätzlichen Methoden, die für das Anleihemarkt-Szenario spezifisch sind, sind verfügbar.
postToken
Diese Methode kann nur von einem Token-Ersteller aufgerufen werden. Die Methode leitet das Anleihe-Token zur Notierung auf dem Marktplatz weiter. Wenn ein Token erstellt wird, wird sein Status zunächst auf created gesetzt. Diese Methode aktualisiert den Status in posted. Benutzer können die Methode getAllTokensWithFilter ausführen, um alle NFTs mit dem Status posted abzurufen.
public async postToken(tokenId: number)
Parameter:
  • tokenId: number: Die ID des zu postenden Tokens.
Beispiel für Rückgabewert:
{
         "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
Diese Methode kann von jedem Kontoinhaber aufgerufen werden, um eine börsennotierte Anleihe NFT zu kaufen. Der Kauf überträgt die Anleihe NFT vom Konto des Erstellers auf das Konto des Anrufers und überträgt CBDC-Token vom Konto des Anrufers auf das Konto des Erstellers. Aus diesem Grund muss die Methode im Kontext einer atomaren Transaktion ausgeführt werden. Die Methode prüft auch den Übertragungsprozess und stellt sicher, dass der entsprechende CBDC-Chaincode mit den richtigen orgId und userId für die Übertragung aufgerufen wird. Die Werte für orgId und userId müssen dem Tokenersteller entsprechen, und der CBDC-Tokenübertragungswert muss dem Nennwert des Anleihtokens multipliziert mit der gekauften Menge entsprechen.
public async purchaseToken(tokenId: number, quantity: number, orderId: string, additionalFees: number)
Parameter:
  • tokenId: number: Die ID des zu kaufenden Tokens.
  • quantity: number - Die Anzahl der zu kaufenden Token.
  • orderId: string: Die Auftrags-ID für den Kaufvorgang.
  • additionalFees: number – Die zusätzlichen Vergütungen, die dem Kaufpreis hinzuzufügen sind.
Beispiel für Rückgabewert:
{
   "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
Diese Methode kann nur vom Token-Ersteller oder Admin aufgerufen werden, um die Zinsen zu bezahlen, die auf dem Anleihe-Token verdient wurden. Diese Methode kann nur aufgerufen werden, wenn die Zinshäufigkeit des Tokens monatlich, vierteljährlich oder jährlich ist. Zinsen können nicht gezahlt werden, wenn die Zinshäufigkeit fällig ist. Die Zinsen werden vom Chaincode basierend auf dem Kuponsatz des Tokens berechnet. Der Kaufvorgang überträgt CBDC-Token vom Konto des Anrufers auf das Konto des Anleiheeigentümers. Aus diesem Grund muss diese Methode im Kontext einer atomaren Transaktion ausgeführt werden. Die Methode prüft auch den Übertragungsprozess und stellt sicher, dass der entsprechende CBDC-Chaincode mit den richtigen orgId und userId für die Übertragung aufgerufen wird. Die Werte für orgId und userId müssen dem Tokeneigentümer entsprechen, und der CBDC-Tokenübertragungswert muss den vom Anleihekettencode berechneten Zinsen entsprechen.
public async payInterest(orgId: string, userId: string, tokenId: number, orderId: string)
Parameter:
  • orgId: string: Die Mitgliedsdienstanbieter-(MSP-)ID des Benutzers.
  • userId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
  • tokenId: number: Die ID des Tokens.
  • orderId: string: Die Auftrags-ID für den Kaufvorgang.
Beispiel für Rückgabewert:
{
   "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
Diese Methode kann nur vom Token-Eigentümer aufgerufen werden, um eine Anforderung zur Einlösung von Anleihe-Token nach der Fälligkeit zu stellen. Diese Methode beinhaltet auch die Berechnung des Rücknahmepreises durch den Chaincode. Einlösungsanforderungen können nur für die gesamte Menge des Anleihtokens ausgelöst werden, für das der Benutzer verantwortlich ist. Benutzer können mehrere Einlösungsanforderungen basierend auf verschiedenen Abrechnungs-IDs erstellen, aber nur eine kann vom Tokenersteller genehmigt werden.
public async requestTokenRedemption(settlementId: string, tokenId: number, orderId: string, additionalFees: number)
Parameter:
  • settlementId: string: Die Abrechnungs-ID für den Einlösungsvorgang.
  • tokenId: number: Die ID des Tokens.
  • orderId: string: Die Auftrags-ID für den Kaufvorgang.
  • additionalFees: number – Die zusätzlichen Vergütungen, die zum Einlösungspreis hinzuzufügen sind.
Beispiel für Rückgabewert:
{
         "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
Diese Methode kann nur vom Tokenersteller aufgerufen werden, um eine Anforderung zur Einlösung von Anleihe-Token zu genehmigen. Der Genehmigungsvorgang überträgt die Anleihe-NFT vom Konto des Eigentümers (dem Benutzer, der die Anforderung gestellt hat) auf das Konto des Erstellers und überträgt CBDC-Token vom Konto des Anleiheerstellers auf das Konto des Eigentümers. Aus diesem Grund muss diese Methode im Kontext einer atomaren Transaktion ausgeführt werden. Die Methode prüft auch den Übertragungsprozess und stellt sicher, dass der entsprechende CBDC-Chaincode mit den richtigen orgId und userId für die Übertragung aufgerufen wird. Die Werte für orgId und userId müssen dem Konto des Tokeneigentümers entsprechen, der die Einlösungsanforderung ausgelöst hat. Der CBDC-Tokenübertragungswert muss dem berechneten Einlösungspreis entsprechen, der vom Chaincode beim Anheben der Einlösungsanforderung berechnet wurde.
public async approveRedemption(fromOrgId: string, fromUserId: string, settlementId: string, tokenId: number)
Parameter:
  • fromOrgId: string: Die Mitgliedsdienstanbieter-(MSP-)ID des Benutzers.
  • fromUserId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
  • settlementId: string: Die Abrechnungs-ID für den Einlösungsvorgang.
  • tokenId: number: Die ID des Tokens.
Beispiel für Rückgabewert:
{
   "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
Der Tokenersteller kann diese Methode aufrufen, um die Einlösungsanforderung abzulehnen. Token-Eigentümer können eine Einlösungsanforderung mit einer anderen Abrechnungs-ID erneut auslösen.
public async rejectRedemption(fromOrgId: string, fromUserId: string, settlementId: string, tokenId: number)
Parameter:
  • fromOrgId: string: Die Mitgliedsdienstanbieter-(MSP-)ID des Benutzers.
  • fromUserId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
  • settlementId: string: Die Abrechnungs-ID für den Einlösungsvorgang.
  • tokenId: number: Die ID des Tokens.
Beispiel für Rückgabewert:
{
   "status":"success",
   "msg":"Successfully rejected the token approval request"
}
getAllTokensWithFilters
Der Administrator kann diese Get-Methode aufrufen, um alle nach Status gefilterten Token abzurufen, entweder CREATED oder POSTED.
public async getAllTokensWithFilters(status: string, pageSize: number, bookmark: string)
Parameter:
  • status: string: Der Status des Tokens, der entweder CREATED oder POSTED lauten kann.
  • pageSize: number: Die Seitengröße des zurückgegebenen Ergebnisses.
  • bookmark: string: Das Lesezeichen des zurückgegebenen Ergebnisses.
Beispiel für Rückgabewert:
[{
            "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
Jeder Kontoinhaber kann diese Get-Methode aufrufen, um die Details aller Tokengenehmigungsanforderungen (Rücknahmeanforderungen) abzurufen, die er erstellt hat.
public async getTokenApprovalRequestByUser(status: string)
Parameter:
  • status: string: Der Status der Anforderung, der PENDING, REJECTED oder APPROVED lauten kann.
Beispiel für Rückgabewert:
[
   {
      "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
Jeder Kontoinhaber kann diese Get-Methode aufrufen, um die Details aller Tokengenehmigungsanforderungen (Rücknahmeanforderungen) abzurufen, die er erstellt hat.
public async getTokenApprovalRequestForUserByStatus(status: string)
Parameter:
  • status: string: Der Status der Anforderung, der PENDING, REJECTED oder APPROVED lauten kann.
Beispiel für Rückgabewert:
[
   {
      "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
Jeder Kontoinhaber kann diese Get-Methode aufrufen, um eine Kontenübersicht zu erhalten, die die Details der gekauften oder eingelösten Token sowie den Kaufpreis und den Einlösungspreis enthält.
public async getAccountBondSummary(orgId: string, userId: string)
Parameter:
  • orgId: string: Die Mitgliedsdienstanbieter-(MSP-)ID des Benutzers.
  • userId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
Beispiel für Rückgabewert:
{

   "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
Jeder Kontoinhaber kann diese Get-Methode aufrufen, um eine Kontenübersicht zu erhalten, die Details von gekauften oder eingelösten Token sowie den Kaufpreis und den Einlösungspreis enthält. Diese Methode kann Ergebnisse mit Seitenumbruch basierend auf Seitengröße und Lesezeichenwerten zurückgeben und auch nach Startzeit und Endzeit gefiltert werden.
public async getAccountBondSummaryWithPagination(orgId: string, userId: string, pageSize: number, bookmark?: string)
Parameter:
  • orgId: string: Die Mitgliedsdienstanbieter-(MSP-)ID des Benutzers.
  • userId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
  • pageSize: number: Die Seitengröße des zurückgegebenen Ergebnisses.
  • bookmark: string: Das Lesezeichen des zurückgegebenen Ergebnisses.
Beispiel für Rückgabewert:
{

   "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-Methoden für Bond Marketplace

Der Anleihemarkt-Chaincode umfasst alle im generischen ERC-1155 NFT-Chaincode verfügbaren Methoden. Die folgenden zusätzlichen Methoden, die für das Anleihemarkt-Szenario spezifisch sind, sind verfügbar.
PostToken
Diese Methode kann nur von einem Token-Ersteller aufgerufen werden. Die Methode leitet das Anleihe-Token zur Notierung auf dem Marktplatz weiter. Wenn ein Token erstellt wird, wird sein Status zunächst auf created gesetzt. Diese Methode aktualisiert den Status in posted. Benutzer können die Methode getAllTokensWithFilter ausführen, um alle NFTs mit dem Status posted abzurufen.
func (t *Controller) PostToken(tokenId float64) (interface{}, error)
Parameter:
  • tokenId: float64: Die ID des zu postenden Tokens.
Beispiel für Rückgabewert:
{
         "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
Diese Methode kann von jedem Kontoinhaber aufgerufen werden, um eine börsennotierte Anleihe NFT zu kaufen. Der Kauf überträgt die Anleihe NFT vom Konto des Erstellers auf das Konto des Anrufers und überträgt CBDC-Token vom Konto des Anrufers auf das Konto des Erstellers. Aus diesem Grund muss die Methode im Kontext einer atomaren Transaktion ausgeführt werden. Die Methode prüft auch den Übertragungsprozess und stellt sicher, dass der entsprechende CBDC-Chaincode mit den richtigen orgId und userId für die Übertragung aufgerufen wird. Die Werte für orgId und userId müssen dem Tokenersteller entsprechen, und der CBDC-Tokenübertragungswert muss dem Nennwert des Anleihtokens multipliziert mit der gekauften Menge entsprechen.
func (t *Controller) PurchaseToken(tokenId float64, quantity float64, orderId string, additionalFees float64) (interface{}, error)
Parameter:
  • tokenId: float64: Die ID des zu kaufenden Tokens.
  • quantity: number - Die Anzahl der zu kaufenden Token.
  • orderId: string: Die Auftrags-ID für den Kaufvorgang.
  • additionalFees: number – Die zusätzlichen Vergütungen, die dem Kaufpreis hinzuzufügen sind.
Beispiel für Rückgabewert:
{
   "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
Diese Methode kann nur vom Token-Ersteller oder Admin aufgerufen werden, um die Zinsen zu bezahlen, die auf dem Anleihe-Token verdient wurden. Diese Methode kann nur aufgerufen werden, wenn die Zinshäufigkeit des Tokens monatlich, vierteljährlich oder jährlich ist. Zinsen können nicht gezahlt werden, wenn die Zinshäufigkeit fällig ist. Die Zinsen werden vom Chaincode basierend auf dem Kuponsatz des Tokens berechnet. Der Kaufvorgang überträgt CBDC-Token vom Konto des Anrufers auf das Konto des Anleiheeigentümers. Aus diesem Grund muss diese Methode im Kontext einer atomaren Transaktion ausgeführt werden. Die Methode prüft auch den Übertragungsprozess und stellt sicher, dass der entsprechende CBDC-Chaincode mit den richtigen orgId und userId für die Übertragung aufgerufen wird. Die Werte für orgId und userId müssen dem Tokeneigentümer entsprechen, und der CBDC-Tokenübertragungswert muss den vom Anleihekettencode berechneten Zinsen entsprechen.
func (t *Controller) PayInterestEarned(orgId string, userId string, tokenId float64, orderId string, additionalFees float64) (interface{}, error)
Parameter:
  • orgId: string: Die Mitgliedsdienstanbieter-(MSP-)ID des Benutzers.
  • userId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
  • tokenId: float64: Die ID des Tokens.
  • orderId: string: Die Auftrags-ID für den Kaufvorgang.
Beispiel für Rückgabewert:
{
   "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
Diese Methode kann nur vom Token-Eigentümer aufgerufen werden, um eine Anforderung zur Einlösung von Anleihe-Token nach der Fälligkeit zu stellen. Diese Methode beinhaltet auch die Berechnung des Rücknahmepreises durch den Chaincode. Einlösungsanforderungen können nur für die gesamte Menge des Anleihtokens ausgelöst werden, für das der Benutzer verantwortlich ist. Benutzer können mehrere Einlösungsanforderungen basierend auf verschiedenen Abrechnungs-IDs erstellen, aber nur eine kann vom Tokenersteller genehmigt werden.
func (t *Controller) RequestTokenRedemption(settlementId string, tokenId float64, orderId string, additionalFees float64) (interface{}, error)
Parameter:
  • settlementId: string: Die Abrechnungs-ID für den Einlösungsvorgang.
  • tokenId: float64: Die ID des Tokens.
  • orderId: string: Die Auftrags-ID für den Kaufvorgang.
  • additionalFees: number – Die zusätzlichen Vergütungen, die zum Einlösungspreis hinzuzufügen sind.
Beispiel für Rückgabewert:
{
         "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
Diese Methode kann nur vom Tokenersteller aufgerufen werden, um eine Anforderung zur Einlösung von Anleihe-Token zu genehmigen. Der Genehmigungsvorgang überträgt die Anleihe-NFT vom Konto des Eigentümers (dem Benutzer, der die Anforderung gestellt hat) auf das Konto des Erstellers und überträgt CBDC-Token vom Konto des Anleiheerstellers auf das Konto des Eigentümers. Aus diesem Grund muss diese Methode im Kontext einer atomaren Transaktion ausgeführt werden. Die Methode prüft auch den Übertragungsprozess und stellt sicher, dass der entsprechende CBDC-Chaincode mit den richtigen orgId und userId für die Übertragung aufgerufen wird. Die Werte für orgId und userId müssen dem Konto des Tokeneigentümers entsprechen, der die Einlösungsanforderung ausgelöst hat. Der CBDC-Tokenübertragungswert muss dem berechneten Einlösungspreis entsprechen, der vom Chaincode beim Anheben der Einlösungsanforderung berechnet wurde.
func (t *Controller) ApproveRedemption(fromOrgId string, fromUserId string, settlementId string, tokenId float64) (interface{}, error)
Parameter:
  • fromOrgId: string: Die Mitgliedsdienstanbieter-(MSP-)ID des Benutzers.
  • fromUserId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
  • settlementId: string: Die Abrechnungs-ID für den Einlösungsvorgang.
  • tokenId: float64: Die ID des Tokens.
Beispiel für Rückgabewert:
{
   "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
Der Tokenersteller kann diese Methode aufrufen, um die Einlösungsanforderung abzulehnen. Token-Eigentümer können eine Einlösungsanforderung mit einer anderen Abrechnungs-ID erneut auslösen.
func (t *Controller) RejectRedemption(fromOrgId string, fromUserId string, settlementId string, tokenId float64) (interface{}, error)
Parameter:
  • fromOrgId: string: Die Mitgliedsdienstanbieter-(MSP-)ID des Benutzers.
  • fromUserId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
  • settlementId: string: Die Abrechnungs-ID für den Einlösungsvorgang.
  • tokenId: float64: Die ID des Tokens.
Beispiel für Rückgabewert:
{
   "status":"success",
   "msg":"Successfully rejected the token approval request"
}
GetAllTokensWithFilter
Der Administrator kann diese Get-Methode aufrufen, um alle nach Status gefilterten Token abzurufen, entweder CREATED oder POSTED.
func (t *Controller) GetAllTokensWithFilters(status string, pageSize int32, bookmark string)
Parameter:
  • status: string: Der Status des Tokens, der entweder CREATED oder POSTED lauten kann.
  • pageSize: number: Die Seitengröße des zurückgegebenen Ergebnisses.
  • bookmark: string: Das Lesezeichen des zurückgegebenen Ergebnisses.
Beispiel für Rückgabewert:
[ {

               "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
Jeder Kontoinhaber kann diese Get-Methode aufrufen, um die Details aller Tokengenehmigungsanforderungen (Rücknahmeanforderungen) abzurufen, die er erstellt hat.
func (t *Controller) GetTokenApprovalRequestByUser(status string) (interface{}, error)
Parameter:
  • status: string: Der Status der Anforderung, der PENDING, REJECTED oder APPROVED lauten kann.
Beispiel für Rückgabewert:
[
   {
      "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
Jeder Kontoinhaber kann diese Get-Methode aufrufen, um die Details aller Tokengenehmigungsanforderungen (Rücknahmeanforderungen) abzurufen, die er erstellt hat.
func (t *Controller) GetTokenApprovalRequestForUserByStatus(status string) (interface{}, error)
Parameter:
  • status: string: Der Status der Anforderung, der PENDING, REJECTED oder APPROVED lauten kann.
Beispiel für Rückgabewert:
[
   {
      "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
Jeder Kontoinhaber kann diese Get-Methode aufrufen, um eine Kontenübersicht zu erhalten, die die Details der gekauften oder eingelösten Token sowie den Kaufpreis und den Einlösungspreis enthält.
func (t *Controller) GetAccountBondSummary(orgId string, userId string) (interface{}, error)
Parameter:
  • orgId: string: Die Mitgliedsdienstanbieter-(MSP-)ID des Benutzers.
  • userId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
Beispiel für Rückgabewert:
{

   "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
Jeder Kontoinhaber kann diese Get-Methode aufrufen, um eine Kontenübersicht zu erhalten, die Details von gekauften oder eingelösten Token sowie den Kaufpreis und den Einlösungspreis enthält. Diese Methode kann Ergebnisse mit Seitenumbruch basierend auf Seitengröße und Lesezeichenwerten zurückgeben und auch nach Startzeit und Endzeit gefiltert werden.
func (t *Controller) GetAccountBondSummaryWithPagination(orgId string, userId string, pageSize int32, bookmark string) (interface{}, error)
Parameter:
  • orgId: string: Die Mitgliedsdienstanbieter-(MSP-)ID des Benutzers.
  • userId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
  • pageSize: number: Die Seitengröße des zurückgegebenen Ergebnisses.
  • bookmark: string: Das Lesezeichen des zurückgegebenen Ergebnisses.
Beispiel für Rückgabewert:
{

   "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 SDK-Methoden für Bond Marketplace

payInterest
Der Token-Ersteller oder Administrator kann diese Methode aufrufen, um die auf einem Anleihe-Token erworbenen Zinsen zu bezahlen. Diese Methode kann nur aufgerufen werden, wenn die Zinshäufigkeit des Tokens monatlich, vierteljährlich oder jährlich ist. Zinsen können nicht gezahlt werden, wenn die Zinshäufigkeit fällig ist. Die Zinsen werden vom Chaincode selbst basierend auf dem Kuponsatz des Tokens berechnet. Der Kaufvorgang überträgt CBDC-Token vom Konto des Anrufers auf das Konto des Anleiheeigentümers. Aus diesem Grund muss diese Methode im Kontext einer atomaren Transaktion ausgeführt werden. Die Methode prüft auch den Übertragungsprozess und stellt sicher, dass der entsprechende CBDC-Chaincode mit den richtigen orgId und userId für die Übertragung aufgerufen wird. Die Werte orgId und userId müssen dem Tokeneigentümer entsprechen, und der CBDC-Tokenübertragungswert muss den Zinsen entsprechen, die vom Anleihekettencode berechnet werden.
this.Ctx.ERC1155AccountBondSummary.payInterest(userAccountId, tokenId, orderId)
Parameter:
  • userAccountId: string: Die Konto-ID des Benutzers.
  • tokenId: string: Die ID des Tokens.
  • orderId: string: Die Auftrags-ID für den Kaufvorgang.
Beispiel für Rückgabewert:
{
         "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
Diese Methode kann nur vom Token-Eigentümer aufgerufen werden, um eine Anforderung zur Einlösung von Anleihe-Token nach der Fälligkeit zu stellen. Diese Methode beinhaltet auch die Berechnung des Rücknahmepreises durch den Chaincode. Einlösungsanforderungen können nur für die gesamte Menge des Anleihtokens ausgelöst werden, für das der Benutzer verantwortlich ist. Benutzer können mehrere Einlösungsanforderungen basierend auf verschiedenen Abrechnungs-IDs erstellen, aber nur eine kann vom Tokenersteller genehmigt werden.
this.Ctx.ERC1155TokenApproval.requestTokenRedemption(callerUserAccountId, settlementId, tokenId, orderId, quantity, additionalFees);
Parameter:
  • callerUserAccountId: string: Die Konto-ID des Benutzers.
  • settlementId: string: Die Abrechnungs-ID für den Einlösungsvorgang.
  • tokenId: string: Die ID des Tokens.
  • orderId: string: Die Auftrags-ID für den Kaufvorgang.
  • additionalFees: number – Die zusätzlichen Vergütungen, die zum Einlösungspreis hinzuzufügen sind.
Beispiel für Rückgabewert:
{
         "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
Diese Methode kann nur vom Tokenersteller aufgerufen werden, um eine Anforderung zur Einlösung von Anleihe-Token zu genehmigen. Der Genehmigungsvorgang überträgt die Anleihe-NFT vom Konto des Eigentümers (dem Benutzer, der die Anforderung gestellt hat) auf das Konto des Erstellers und überträgt CBDC-Token vom Konto des Anleiheerstellers auf das Konto des Eigentümers. Aus diesem Grund muss diese Methode im Kontext einer atomaren Transaktion ausgeführt werden. Die Methode prüft auch den Übertragungsprozess und stellt sicher, dass der entsprechende CBDC-Chaincode mit den richtigen orgId und userId für die Übertragung aufgerufen wird. Die Werte für orgId und userId müssen dem Konto des Tokeneigentümers entsprechen, der die Einlösungsanforderung ausgelöst hat. Der CBDC-Tokenübertragungswert muss dem berechneten Einlösungspreis entsprechen, der vom Chaincode beim Anheben der Einlösungsanforderung berechnet wurde.
this.Ctx.ERC1155TokenApproval.approveTokenApprovalRequest(fromUserAccountId, settlementId, tokenId)
Parameter:
  • fromUserAccountId: string: Die Konto-ID des Benutzers.
  • settlementId: string: Die Abrechnungs-ID für den Einlösungsvorgang.
  • tokenId: string: Die ID des Tokens.
Beispiel für Rückgabewert:
{
   "status":"success",
   "msg":"Successfully approved the token approval request"
}
rejectRedemption
Der Tokenersteller kann diese Methode aufrufen, um die Einlösungsanforderung abzulehnen. Token-Eigentümer können eine Einlösungsanforderung mit einer anderen Abrechnungs-ID erneut auslösen.
this.Ctx.ERC1155TokenApproval.rejectTokenApprovalRequest(fromUserAccountId, settlementId, tokenId)
Parameter:
  • fromOrgId: string: Die Mitgliedsdienstanbieter-(MSP-)ID des Benutzers.
  • fromUserId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
  • settlementId: string: Die Abrechnungs-ID für den Einlösungsvorgang.
  • tokenId: string: Die ID des Tokens.
Beispiel für Rückgabewert:
{
   "status":"success",
   "msg":"Successfully rejected the token approval request"
}
getAllTokensWithFilter
Der Administrator kann diese Get-Methode aufrufen, um alle nach Status gefilterten Token abzurufen, entweder CREATED oder POSTED.
this.Ctx.ERC1155Token.getAllTokensWithFilters(status, pageSize, bookmark)
Parameter:
  • status: string: Der Status des Tokens, der entweder CREATED oder POSTED lauten kann.
  • pageSize: number: Die Seitengröße des zurückgegebenen Ergebnisses.
  • bookmark: string: Das Lesezeichen des zurückgegebenen Ergebnisses.
Beispiel für Rückgabewert:
[{
            "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
Jeder Kontoinhaber kann diese Get-Methode aufrufen, um die Details aller Tokengenehmigungsanforderungen (Rücknahmeanforderungen) abzurufen, die er erstellt hat.
this.Ctx.ERC1155TokenApproval.getAllTokenApprovalRequestByUserByStatus(status)
Parameter:
  • status: string: Der Status der Anforderung, der PENDING, REJECTED oder APPROVED lauten kann.
Beispiel für Rückgabewert:
[
   {
      "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
Jeder Kontoinhaber kann diese Get-Methode aufrufen, um die Details aller Tokengenehmigungsanforderungen (Rücknahmeanforderungen) abzurufen, die er erstellt hat.
this.Ctx.ERC1155TokenApproval.getAllTokenApprovalRequestForUserByStatus(status)
Parameter:
  • status: string: Der Status der Anforderung, der PENDING, REJECTED oder APPROVED lauten kann.
Beispiel für Rückgabewert:
[
   {
      "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
Jeder Kontoinhaber kann diese Get-Methode aufrufen, um eine Kontenübersicht zu erhalten, die die Details der gekauften oder eingelösten Token sowie den Kaufpreis und den Einlösungspreis enthält.
this.Ctx.ERC1155AccountBondSummary.getAllAccountBondSummary(userAccountId)
Parameter:
  • userAccountId: string: Die Konto-ID des Benutzers.
Beispiel für Rückgabewert:
{

   "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
Jeder Kontoinhaber kann diese Get-Methode aufrufen, um eine Kontenübersicht zu erhalten, die Details von gekauften oder eingelösten Token sowie den Kaufpreis und den Einlösungspreis enthält. Diese Methode kann Ergebnisse mit Seitenumbruch basierend auf Seitengröße und Lesezeichenwerten zurückgeben und auch nach Startzeit und Endzeit gefiltert werden.
this.Ctx.ERC1155AccountBondSummary.getAllAccountBondSummaryWithPagination(userAccountId, pageSize, bookmark)
Parameter:
  • userAccountId: string: Die Konto-ID des Benutzers.
  • pageSize: number: Die Seitengröße des zurückgegebenen Ergebnisses.
  • bookmark: string: Das Lesezeichen des zurückgegebenen Ergebnisses.
Beispiel für Rückgabewert:
    {

       "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-Methoden für Bond Marketplace

PayInterest
Der Token-Ersteller oder Administrator kann diese Methode aufrufen, um die auf einem Anleihe-Token erworbenen Zinsen zu bezahlen. Diese Methode kann nur aufgerufen werden, wenn die Zinshäufigkeit des Tokens monatlich, vierteljährlich oder jährlich ist. Zinsen können nicht gezahlt werden, wenn die Zinshäufigkeit fällig ist. Die Zinsen werden vom Chaincode selbst basierend auf dem Kuponsatz des Tokens berechnet. Der Kaufvorgang überträgt CBDC-Token vom Konto des Anrufers auf das Konto des Anleiheeigentümers. Aus diesem Grund muss diese Methode im Kontext einer atomaren Transaktion ausgeführt werden. Die Methode prüft auch den Übertragungsprozess und stellt sicher, dass der entsprechende CBDC-Chaincode mit den richtigen orgId und userId für die Übertragung aufgerufen wird. Die Werte orgId und userId müssen dem Tokeneigentümer entsprechen, und der CBDC-Tokenübertragungswert muss den Zinsen entsprechen, die vom Anleihekettencode berechnet werden.
t.Ctx.ERC1155AccountBondSummary.PayInterestEarned(userAccountId, tokenId, orderId, additionalFees)
Parameter:
  • userAccountId: string: Die Konto-ID des Benutzers.
  • tokenId: string: Die ID des Tokens.
  • orderId: string: Die Auftrags-ID für den Kaufvorgang.
Beispiel für Rückgabewert:
{
         "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
Diese Methode kann nur vom Token-Eigentümer aufgerufen werden, um eine Anforderung zur Einlösung von Anleihe-Token nach der Fälligkeit zu stellen. Diese Methode beinhaltet auch die Berechnung des Rücknahmepreises durch den Chaincode. Einlösungsanforderungen können nur für die gesamte Menge des Anleihtokens ausgelöst werden, für das der Benutzer verantwortlich ist. Benutzer können mehrere Einlösungsanforderungen basierend auf verschiedenen Abrechnungs-IDs erstellen, aber nur eine kann vom Tokenersteller genehmigt werden.
t.Ctx.ERC1155TokenApproval.RequestTokenRedemption(callerUserAccountId, settlementId, tokenId, orderId, quantity, additionalFees)
Parameter:
  • callerUserAccountId: string: Die Konto-ID des Benutzers.
  • settlementId: string: Die Abrechnungs-ID für den Einlösungsvorgang.
  • tokenId: string: Die ID des Tokens.
  • orderId: string: Die Auftrags-ID für den Kaufvorgang.
  • additionalFees: number – Die zusätzlichen Vergütungen, die zum Einlösungspreis hinzuzufügen sind.
Beispiel für Rückgabewert:
{
         "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
Diese Methode kann nur vom Tokenersteller aufgerufen werden, um eine Anforderung zur Einlösung von Anleihe-Token zu genehmigen. Der Genehmigungsvorgang überträgt die Anleihe-NFT vom Konto des Eigentümers (dem Benutzer, der die Anforderung gestellt hat) auf das Konto des Erstellers und überträgt CBDC-Token vom Konto des Anleiheerstellers auf das Konto des Eigentümers. Aus diesem Grund muss diese Methode im Kontext einer atomaren Transaktion ausgeführt werden. Die Methode prüft auch den Übertragungsprozess und stellt sicher, dass der entsprechende CBDC-Chaincode mit den richtigen orgId und userId für die Übertragung aufgerufen wird. Die Werte für orgId und userId müssen dem Konto des Tokeneigentümers entsprechen, der die Einlösungsanforderung ausgelöst hat. Der CBDC-Tokenübertragungswert muss dem berechneten Einlösungspreis entsprechen, der vom Chaincode beim Anheben der Einlösungsanforderung berechnet wurde.
t.Ctx.ERC1155TokenApproval.ApproveTokenApprovalRequest(fromUserAccountId, settlementId, tokenId)
Parameter:
  • fromUserAccountId: string: Die Konto-ID des Benutzers.
  • settlementId: string: Die Abrechnungs-ID für den Einlösungsvorgang.
  • tokenId: string: Die ID des Tokens.
Beispiel für Rückgabewert:
{
   "status":"success",
   "msg":"Successfully approved the token approval request"
}
RejectRedemption
Der Tokenersteller kann diese Methode aufrufen, um die Einlösungsanforderung abzulehnen. Token-Eigentümer können eine Einlösungsanforderung mit einer anderen Abrechnungs-ID erneut auslösen.
t.Ctx.ERC1155TokenApproval.RejectTokenApprovalRequest(fromUserAccountId, settlementId, tokenId)
Parameter:
  • fromOrgId: string: Die Mitgliedsdienstanbieter-(MSP-)ID des Benutzers.
  • fromUserId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
  • settlementId: string: Die Abrechnungs-ID für den Einlösungsvorgang.
  • tokenId: string: Die ID des Tokens.
Beispiel für Rückgabewert:
{
   "status":"success",
   "msg":"Successfully rejected the token approval request"
}
GetAllTokensWithFilter
Der Administrator kann diese Get-Methode aufrufen, um alle nach Status gefilterten Token abzurufen, entweder CREATED oder POSTED.
t.Ctx.ERC1155Token.GetAllTokensWithFilters(status, pageSize, bookmark)
Parameter:
  • status: string: Der Status des Tokens, der entweder CREATED oder POSTED lauten kann.
  • pageSize: number: Die Seitengröße des zurückgegebenen Ergebnisses.
  • bookmark: string: Das Lesezeichen des zurückgegebenen Ergebnisses.
Beispiel für Rückgabewert:
[ {

               "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
Jeder Kontoinhaber kann diese Get-Methode aufrufen, um die Details aller Tokengenehmigungsanforderungen (Rücknahmeanforderungen) abzurufen, die er erstellt hat.
t.Ctx.ERC1155TokenApproval.GetAllTokenApprovalRequestByUserByStatus(status)
Parameter:
  • status: string: Der Status der Anforderung, der PENDING, REJECTED oder APPROVED lauten kann.
Beispiel für Rückgabewert:
[
   {
      "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
Jeder Kontoinhaber kann diese Get-Methode aufrufen, um die Details aller Tokengenehmigungsanforderungen (Rücknahmeanforderungen) abzurufen, die er erstellt hat.
t.Ctx.ERC1155TokenApproval.GetAllTokenApprovalRequestForUserByStatus(status)
Parameter:
  • status: string: Der Status der Anforderung, der PENDING, REJECTED oder APPROVED lauten kann.
Beispiel für Rückgabewert:
[
   {
      "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
Jeder Kontoinhaber kann diese Get-Methode aufrufen, um eine Kontenübersicht zu erhalten, die die Details der gekauften oder eingelösten Token sowie den Kaufpreis und den Einlösungspreis enthält.
t.Ctx.ERC1155AccountBondSummary.GetAllAccountBondSummary(userAccountId)
Parameter:
  • userAccountId: string: Die Konto-ID des Benutzers.
Beispiel für Rückgabewert:
{

   "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
Jeder Kontoinhaber kann diese Get-Methode aufrufen, um eine Kontenübersicht zu erhalten, die Details von gekauften oder eingelösten Token sowie den Kaufpreis und den Einlösungspreis enthält. Diese Methode kann Ergebnisse mit Seitenumbruch basierend auf Seitengröße und Lesezeichenwerten zurückgeben und auch nach Startzeit und Endzeit gefiltert werden.
t.Ctx.ERC1155AccountBondSummary.GetAllAccountBondSummaryWithPagination(userAccountId, pageSize, bookmark)
Parameter:
  • userAccountId: string: Die Konto-ID des Benutzers.
  • pageSize: number: Die Seitengröße des zurückgegebenen Ergebnisses.
  • bookmark: string: Das Lesezeichen des zurückgegebenen Ergebnisses.
Beispiel für Rückgabewert:
{

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