Bond Marketplace-Modell

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, den anwendungsspezifischen Chaincode von Blockchain App Builder, einschließlich der folgenden zusätzlichen Methoden zur Verwendung mit der Bond Marketplace-Anwendung.

TypeScript Methoden für den Bond Marketplace

Der Bond Marketplace Chaincode umfasst alle im generischen ERC-1155 NFT Chaincode verfügbaren Methoden. Die folgenden zusätzlichen Methoden, die für das Anleihemarktszenario 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. Mit dieser Methode wird der Status in posted aktualisiert. Benutzer können die Methode getAllTokensWithFilter ausführen, um alle NFTs mit dem Status posted abzurufen.
public async postToken(tokenId: string)
Parameter:
  • tokenId: string: Die ID des zu postenden Tokens.
Beispiel für einen 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":"bond1",
            "tokenName":"bond",
            "tokenDesc":"tokenDesc value",
            "tokenStandard":"erc1155+",
            "tokenType":"nonfungible",
            "tokenUnit":"fractional",
            "behaviors":[
               "divisible",
               "mintable",
               "transferable",
               "burnable",
               "roles"
            ],
            "roles":{
               "minter_role_name":"minter",
               "burner_role_name":"burner"
            },
            "mintable":{
               "max_mint_quantity":0
            },
            "quantity":100,
            "createdBy":"oaccount~276bcf1324b1ad1e493e22432db3b39f7a4b9bb17b8525c0391ea3ba36138e00",
            "creationDate":"2024-12-02T12:42:09.000Z",
            "divisible":{
               "decimal":0
            },
            "isBurned":false,
            "isLocked":false,
            "tokenUri":"tokenUri value",
            "status":"created"
         },
         "message":"Successfully updated asset with ID bond1"
      }
purchaseToken
Diese Methode kann von jedem Kontoinhaber aufgerufen werden, um eine börsennotierte Anleihe zu erwerben. 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 überprüft auch den Übertragungsprozess und stellt sicher, dass der entsprechende CBDC-Kettencode mit dem richtigen orgId und userId für die Übertragung aufgerufen wird. orgId und userId müssen dem Tokenersteller entsprechen, und der CBDC-Tokenübertragungswert muss dem Nennwert des Bond-Tokens multipliziert mit der gekauften Menge entsprechen.
public async purchaseToken(tokenId: string, quantity: number, orderId: string, additionalFees: number)
Parameter:
  • tokenId: string: Die ID des zu kaufenden Tokens.
  • quantity: number - Die Anzahl der zu kaufenden Token.
  • orderId: string: Die Bestell-ID für den Kaufvorgang.
  • additionalFees: number - Die zusätzlichen Gebühren, die zum Kaufpreis hinzugefügt werden müssen.
Beispiel für einen 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 -Administrator aufgerufen werden, um die Zinsen für den Anleihe-Token zu zahlen. 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 bei Fälligkeit ist. Die Zinsen werden durch den Chaincode basierend auf dem Kuponsatz des Tokens berechnet. Der Kaufvorgang überträgt CBDC-Token vom Konto des Anrufers auf das Konto des Anleihebesitzers. Aus diesem Grund muss diese Methode im Kontext einer atomaren Transaktion ausgeführt werden. Die Methode überprüft auch den Übertragungsprozess und stellt sicher, dass der entsprechende CBDC-Kettencode mit dem richtigen orgId und userId für die Übertragung aufgerufen wird. orgId und userId müssen dem Tokeneigentümer entsprechen, und der CBDC-Tokentransferwert muss dem vom Bond Chaincode berechneten Interesse entsprechen.
public async payInterest(orgId: string, userId: string, tokenId: string, orderId: string)
Parameter:
  • orgId: string – Die Mitgliedschaftsdienstleister-ID (MSP) des Benutzers.
  • userId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
  • tokenId: string: Die ID des Tokens.
  • orderId: string: Die Bestell-ID für den Kaufvorgang.
Beispiel für einen 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. Rücknahmeanforderungen können nur für die gesamte Menge des Anleihetokens ausgelöst werden, deren Eigentümer der Benutzer ist. Benutzer können mehrere Einlösungsanforderungen basierend auf verschiedenen Abrechnungs-IDs auslösen, aber nur eine kann vom Tokenersteller genehmigt werden.
public async requestTokenRedemption(settlementId: string, tokenId: string, orderId: string, additionalFees: number)
Parameter:
  • settlementId: string: Die Abwicklungs-ID für den Rücknahmevorgang.
  • tokenId: string: Die ID des Tokens.
  • orderId: string: Die Bestell-ID für den Kaufvorgang.
  • additionalFees: number - Die zusätzlichen Gebühren, die dem Einlösungspreis hinzugefügt werden müssen.
Beispiel für einen Rückgabewert:
{
         "tokenName":"bond",
         "assetType":"otokenApproval",
         "id":"otokenApproval~9e006057ac96ae997e3964531b1a08ad2316555701c7fe9ec7b88e38e20892bf",
         "settlementId":"op4",
         "userBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op4",
         "fromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
         "toAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "tokenId":"bond1",
         "quantity":1,
         "status":"PENDING",
         "orderId":"op4",
         "redeemPrice":11

}
approveTokenRedemption
Diese Methode kann nur vom Token-Ersteller 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 Anleiherstellers auf das Konto des Eigentümers. Aus diesem Grund muss diese Methode im Kontext einer atomaren Transaktion ausgeführt werden. Die Methode überprüft auch den Übertragungsprozess und stellt sicher, dass der entsprechende CBDC-Kettencode mit dem richtigen orgId und userId für die Übertragung aufgerufen wird. orgId und userId müssen dem Konto des Tokenverantwortlichen entsprechen, der die Einlösungsanforderung ausgelöst hat, und der CBDC-Tokenübertragungswert muss dem berechneten Einlösungspreis entsprechen, der vom Chaincode beim Auslösen der Einlösungsanforderung berechnet wurde.
public async approveRedemption(fromOrgId: string, fromUserId: string, settlementId: string, tokenId: string)
Parameter:
  • fromOrgId: string – Die Mitgliedschaftsdienstleister-ID (MSP) des Benutzers.
  • fromUserId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
  • settlementId: string: Die Abwicklungs-ID für den Rücknahmevorgang.
  • tokenId: string: Die ID des Tokens.
Beispiel für einen 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. Tokenverantwortliche können eine Einlösungsanforderung mit einer anderen Abrechnungs-ID erneut auslösen.
public async rejectRedemption(fromOrgId: string, fromUserId: string, settlementId: string, tokenId: string)
Parameter:
  • fromOrgId: string – Die Mitgliedschaftsdienstleister-ID (MSP) des Benutzers.
  • fromUserId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
  • settlementId: string: Die Abwicklungs-ID für den Rücknahmevorgang.
  • tokenId: string: Die ID des Tokens.
Beispiel für einen 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 einen 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":"bond1",
            "tokenName":"bond",
            "tokenDesc":"tokenDesc value",
            "tokenStandard":"erc1155+",
            "tokenType":"nonfungible",
            "tokenUnit":"fractional",
            "behaviors":[
               "divisible",
               "mintable",
               "transferable",
               "burnable",
               "roles"
            ],
            "roles":{
               "minter_role_name":"minter",
               "burner_role_name":"burner"
            },
            "mintable":{
               "max_mint_quantity":0
            },
            "quantity":100,
            "createdBy":"oaccount~276bcf1324b1ad1e493e22432db3b39f7a4b9bb17b8525c0391ea3ba36138e00",
            "creationDate":"2024-12-02T12:42:09.000Z",
            "divisible":{
               "decimal":0
            },
            "isBurned":false,
            "isLocked":false,
            "tokenUri":"tokenUri value",
            "status":"posted"
         }

]
getTokenApprovalRequestByUser
Jeder Kontoinhaber kann diese get-Methode aufrufen, um die Details aller Tokengenehmigungsanforderungen (Rücknahmeanforderungen) abzurufen, die er gestellt hat.
public async getTokenApprovalRequestByUser(status: string)
Parameter:
  • status: string: Der Status der Anforderung, z.B. PENDING, REJECTED oder APPROVED.
Beispiel für einen Rückgabewert:
[
   {
      "tokenName":"bond",
      "assetType":"otokenApproval",
      "id":"otokenApproval~5b2a94283ae95e3d6e5b76ffd6f75b7bff231e4df270a82cdc1f6badd17dea4b",
      "settlementId":"op1",
      "userBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
      "fromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "toAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "tokenId":"bond1",
      "quantity":2,
      "status":"APPROVED",
      "orderId":"op1",
      "redeemPrice":1,
      "purchasedPrice":11,
      "interestEarned":0
   },
   {
      "tokenName":"bond",
      "assetType":"otokenApproval",
      "id":"otokenApproval~fdf28b2d271ac9c0fbd94a2dedbf365728c77795f3e931e5a4a2dcf48039a989",
      "settlementId":"op3",
      "userBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op3",
      "fromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "toAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "tokenId":"bond1",
      "quantity":1,
      "status":"APPROVED",
      "orderId":"op3",
      "redeemPrice":11,
      "purchasedPrice":11,
      "interestEarned":0
   }
]
getTokenApprovalRequestForUserByStatus
Jeder Kontoinhaber kann diese get-Methode aufrufen, um die Details aller Tokengenehmigungsanforderungen (Rücknahmeanforderungen) abzurufen, die er gestellt hat.
public async getTokenApprovalRequestForUserByStatus(status: string)
Parameter:
  • status: string: Der Status der Anforderung, z.B. PENDING, REJECTED oder APPROVED.
Beispiel für einen Rückgabewert:
[
   {
      "tokenName":"bond",
      "assetType":"otokenApproval",
      "id":"otokenApproval~5b2a94283ae95e3d6e5b76ffd6f75b7bff231e4df270a82cdc1f6badd17dea4b",
      "settlementId":"op1",
      "userBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
      "fromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "toAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "tokenId":"bond1",
      "quantity":2,
      "status":"APPROVED",
      "orderId":"op1",
      "redeemPrice":1,
      "purchasedPrice":11,
      "interestEarned":0
   },
   {
      "tokenName":"bond",
      "assetType":"otokenApproval",
      "id":"otokenApproval~fdf28b2d271ac9c0fbd94a2dedbf365728c77795f3e931e5a4a2dcf48039a989",
      "settlementId":"op3",
      "userBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op3",
      "fromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "toAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "tokenId":"bond1",
      "quantity":1,
      "status":"APPROVED",
      "orderId":"op3",
      "redeemPrice":11,
      "purchasedPrice":11,
      "interestEarned":0
   }
]
getAccountBondSummary
Jeder Kontoinhaber kann diese get-Methode aufrufen, um eine Kontoü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 Mitgliedschaftsdienstleister-ID (MSP) des Benutzers.
  • userId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
Beispiel für einen Rückgabewert:
{

   "userAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
   "orgId":"BondMPTest",
   "userId":"u10",
   "accountSummary":[
      {
         "purchasedQuantity":1,
         "assetType":"oUserBondDetails",
         "id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
         "tokenId":"bond1",
         "status":"Redeemed",
         "purchasedAmount":11,
         "purchasedDate":"2024-12-02T00:00:00.000Z",
         "purchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "orderId":"op1"
         "redeemPrice":11,
         "quantityRedeem":1,
         "redeemStatus":"REJECTED"
      },
      {
         "purchasedQuantity":1,
         "assetType":"oUserBondDetails",
         "id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op2",
         "tokenId":"bond1",
         "status":"Purchased",
         "purchasedAmount":11,
         "purchasedDate":"2024-12-02T00:00:00.000Z",
         "purchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "orderId":"op2",
         "redeemPrice":11,
         "quantityRedeem":1,
         "redeemStatus":"APPROVED"
      }
   ]
}
getAccountBondSummaryWithPagination
Jeder Kontoinhaber kann diese get-Methode aufrufen, um eine Kontoübersicht zu erhalten, die Details zu gekauften oder eingelösten Token sowie den Kaufpreis und den Einlösungspreis enthält. Diese Methode kann Ergebnisse mit Paginierung basierend auf Seitengrößen- und Lesezeichenwerten zurückgeben und auch nach Start- und Endzeit gefiltert werden.
public async getAccountBondSummaryWithPagination(orgId: string, userId: string, pageSize: number, bookmark?: string)
Parameter:
  • orgId: string – Die Mitgliedschaftsdienstleister-ID (MSP) 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 einen Rückgabewert:
{

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

Go-Methoden für Bond Marketplace

Der Bond Marketplace Chaincode umfasst alle im generischen ERC-1155 NFT Chaincode verfügbaren Methoden. Die folgenden zusätzlichen Methoden, die für das Anleihemarktszenario 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. Mit dieser Methode wird der Status in posted aktualisiert. Benutzer können die Methode getAllTokensWithFilter ausführen, um alle NFTs mit dem Status posted abzurufen.
func (t *Controller) PostToken(tokenId string) (interface{}, error)
Parameter:
  • tokenId: string: Die ID des zu postenden Tokens.
Beispiel für einen 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":"bond1",
            "TokenName":"bond",
            "TokenDesc":"tokenDesc value",
            "TokenStandard":"erc1155+",
            "TokenType":"nonfungible",
            "TokenUnit":"fractional",
            "Behaviors":[
               "divisible",
               "mintable",
               "transferable",
               "burnable",
               "roles"
            ],
            "Roles":{
               "minter_role_name":"minter",
               "burner_role_name":"burner"
            },
            "Mintable":{
               "max_mint_quantity":0
            },
            "Quantity":100,
            "CreatedBy":"oaccount~276bcf1324b1ad1e493e22432db3b39f7a4b9bb17b8525c0391ea3ba36138e00",
            "CreationDate":"2024-12-02T12:42:09.000Z",
            "Divisible":{
               "decimal":0
            },
            "IsBurned":false,
            "IsLocked":false,
            "TokenUri":"tokenUri value",
            "Status":"created"
         },
         "message":"Successfully updated asset with ID bond1"
      }
PurchaseToken
Diese Methode kann von jedem Kontoinhaber aufgerufen werden, um eine börsennotierte Anleihe zu erwerben. 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 überprüft auch den Übertragungsprozess und stellt sicher, dass der entsprechende CBDC-Kettencode mit dem richtigen orgId und userId für die Übertragung aufgerufen wird. orgId und userId müssen dem Tokenersteller entsprechen, und der CBDC-Tokenübertragungswert muss dem Nennwert des Bond-Tokens multipliziert mit der gekauften Menge entsprechen.
func (t *Controller) PurchaseToken(tokenId string, quantity float64, orderId string, additionalFees float64) (interface{}, error)
Parameter:
  • tokenId: string: Die ID des zu kaufenden Tokens.
  • quantity: number - Die Anzahl der zu kaufenden Token.
  • orderId: string: Die Bestell-ID für den Kaufvorgang.
  • additionalFees: number - Die zusätzlichen Gebühren, die zum Kaufpreis hinzugefügt werden müssen.
Beispiel für einen 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 -Administrator aufgerufen werden, um die Zinsen für den Anleihe-Token zu zahlen. 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 bei Fälligkeit ist. Die Zinsen werden durch den Chaincode basierend auf dem Kuponsatz des Tokens berechnet. Der Kaufvorgang überträgt CBDC-Token vom Konto des Anrufers auf das Konto des Anleihebesitzers. Aus diesem Grund muss diese Methode im Kontext einer atomaren Transaktion ausgeführt werden. Die Methode überprüft auch den Übertragungsprozess und stellt sicher, dass der entsprechende CBDC-Kettencode mit dem richtigen orgId und userId für die Übertragung aufgerufen wird. orgId und userId müssen dem Tokeneigentümer entsprechen, und der CBDC-Tokentransferwert muss dem vom Bond Chaincode berechneten Interesse entsprechen.
func (t *Controller) PayInterestEarned(orgId string, userId string, tokenId string, orderId string, additionalFees float64) (interface{}, error)
Parameter:
  • orgId: string – Die Mitgliedschaftsdienstleister-ID (MSP) des Benutzers.
  • userId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
  • tokenId: string: Die ID des Tokens.
  • orderId: string: Die Bestell-ID für den Kaufvorgang.
Beispiel für einen 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. Rücknahmeanforderungen können nur für die gesamte Menge des Anleihetokens ausgelöst werden, deren Eigentümer der Benutzer ist. Benutzer können mehrere Einlösungsanforderungen basierend auf verschiedenen Abrechnungs-IDs auslösen, aber nur eine kann vom Tokenersteller genehmigt werden.
func (t *Controller) RequestTokenRedemption(settlementId string, tokenId string, orderId string, additionalFees float64) (interface{}, error)
Parameter:
  • settlementId: string: Die Abwicklungs-ID für den Rücknahmevorgang.
  • tokenId: string: Die ID des Tokens.
  • orderId: string: Die Bestell-ID für den Kaufvorgang.
  • additionalFees: number - Die zusätzlichen Gebühren, die dem Einlösungspreis hinzugefügt werden müssen.
Beispiel für einen Rückgabewert:
{
         "TokenName":"bond",
         "AssetType":"otokenApproval",
         "Id":"otokenApproval~9e006057ac96ae997e3964531b1a08ad2316555701c7fe9ec7b88e38e20892bf",
         "SettlementId":"op4",
         "UserBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op4",
         "FromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
         "ToAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "TokenId":"bond1",
         "Quantity":1,
         "Status":"PENDING",
         "OrderId":"op4",
         "RedeemPrice":11
}
ApproveTokenRedemption
Diese Methode kann nur vom Token-Ersteller 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 Anleiherstellers auf das Konto des Eigentümers. Aus diesem Grund muss diese Methode im Kontext einer atomaren Transaktion ausgeführt werden. Die Methode überprüft auch den Übertragungsprozess und stellt sicher, dass der entsprechende CBDC-Kettencode mit dem richtigen orgId und userId für die Übertragung aufgerufen wird. orgId und userId müssen dem Konto des Tokenverantwortlichen entsprechen, der die Einlösungsanforderung ausgelöst hat, und der CBDC-Tokenübertragungswert muss dem berechneten Einlösungspreis entsprechen, der vom Chaincode beim Auslösen der Einlösungsanforderung berechnet wurde.
func (t *Controller) ApproveRedemption(fromOrgId string, fromUserId string, settlementId string, tokenId string) (interface{}, error)
Parameter:
  • fromOrgId: string – Die Mitgliedschaftsdienstleister-ID (MSP) des Benutzers.
  • fromUserId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
  • settlementId: string: Die Abwicklungs-ID für den Rücknahmevorgang.
  • tokenId: string: Die ID des Tokens.
Beispiel für einen 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. Tokenverantwortliche können eine Einlösungsanforderung mit einer anderen Abrechnungs-ID erneut auslösen.
func (t *Controller) RejectRedemption(fromOrgId string, fromUserId string, settlementId string, tokenId string) (interface{}, error)
Parameter:
  • fromOrgId: string – Die Mitgliedschaftsdienstleister-ID (MSP) des Benutzers.
  • fromUserId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
  • settlementId: string: Die Abwicklungs-ID für den Rücknahmevorgang.
  • tokenId: string: Die ID des Tokens.
Beispiel für einen 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 einen 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":"bond1",
            "TokenName":"bond",
            "TokenDesc":"tokenDesc value",
            "TokenStandard":"erc1155+",
            "TokenType":"nonfungible",
            "TokenUnit":"fractional",
            "Behaviors":[
               "divisible",
               "mintable",
               "transferable",
               "burnable",
               "roles"
            ],
            "Roles":{
               "minter_role_name":"minter",
               "burner_role_name":"burner"
            },
            "Mintable":{
               "max_mint_quantity":0
            },
            "Quantity":100,
            "CreatedBy":"oaccount~276bcf1324b1ad1e493e22432db3b39f7a4b9bb17b8525c0391ea3ba36138e00",
            "CreationDate":"2024-12-02T12:42:09.000Z",
            "Divisible":{
               "decimal":0
            },
            "IsBurned":false,
            "IsLocked":false,
            "TokenUri":"tokenUri value",
            "Status":"posted"
         }

]
GetTokenApprovalRequestByUser
Jeder Kontoinhaber kann diese get-Methode aufrufen, um die Details aller Tokengenehmigungsanforderungen (Rücknahmeanforderungen) abzurufen, die er gestellt hat.
func (t *Controller) GetTokenApprovalRequestByUser(status string) (interface{}, error)
Parameter:
  • status: string: Der Status der Anforderung, z.B. PENDING, REJECTED oder APPROVED.
Beispiel für einen Rückgabewert:
[
   {
      "TokenName":"bond",
      "AssetType":"otokenApproval",
      "Id":"otokenApproval~5b2a94283ae95e3d6e5b76ffd6f75b7bff231e4df270a82cdc1f6badd17dea4b",
      "SettlementId":"op1",
      "UserBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
      "FromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "ToAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "TokenId":"bond1",
      "Quantity":2,
      "Status":"APPROVED",
      "OrderId":"op1",
      "RedeemPrice":1,
      "PurchasedPrice":11,
      "InterestEarned":0
   },
   {
      "TokenName":"bond",
      "AssetType":"otokenApproval",
      "Id":"otokenApproval~fdf28b2d271ac9c0fbd94a2dedbf365728c77795f3e931e5a4a2dcf48039a989",
      "SettlementId":"op3",
      "UserBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op3",
      "FromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "ToAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "TokenId":"bond1",
      "Quantity":1,
      "Status":"APPROVED",
      "OrderId":"op3",
      "RedeemPrice":11,
      "PurchasedPrice":11,
      "InterestEarned":0
   }
]
GetTokenApprovalRequestForUserByStatus
Jeder Kontoinhaber kann diese get-Methode aufrufen, um die Details aller Tokengenehmigungsanforderungen (Rücknahmeanforderungen) abzurufen, die er gestellt hat.
func (t *Controller) GetTokenApprovalRequestForUserByStatus(status string) (interface{}, error)
Parameter:
  • status: string: Der Status der Anforderung, z.B. PENDING, REJECTED oder APPROVED.
Beispiel für einen Rückgabewert:
[
   {
      "TokenName":"bond",
      "AssetType":"otokenApproval",
      "Id":"otokenApproval~5b2a94283ae95e3d6e5b76ffd6f75b7bff231e4df270a82cdc1f6badd17dea4b",
      "SettlementId":"op1",
      "UserBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
      "FromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "ToAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "TokenId":"bond1",
      "Quantity":2,
      "Status":"APPROVED",
      "OrderId":"op1",
      "RedeemPrice":1,
      "PurchasedPrice":11,
      "InterestEarned":0
   },
   {
      "TokenName":"bond",
      "AssetType":"otokenApproval",
      "Id":"otokenApproval~fdf28b2d271ac9c0fbd94a2dedbf365728c77795f3e931e5a4a2dcf48039a989",
      "SettlementId":"op3",
      "UserBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op3",
      "FromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "ToAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "TokenId":"bond1",
      "Quantity":1,
      "Status":"APPROVED",
      "OrderId":"op3",
      "RedeemPrice":11,
      "PurchasedPrice":11,
      "InterestEarned":0
   }
]
GetAccountBondSummary
Jeder Kontoinhaber kann diese get-Methode aufrufen, um eine Kontoü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 Mitgliedschaftsdienstleister-ID (MSP) des Benutzers.
  • userId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
Beispiel für einen Rückgabewert:
{

   "userAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
   "orgId":"BondMPTest",
   "userId":"u10",
   "accountSummary":[
      {
         "PurchasedQuantity":1,
         "AssetType":"oUserBondDetails",
         "Id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
         "TokenId":"bond1",
         "Status":"Redeemed",
         "PurchasedAmount":11,
         "PurchasedDate":"2024-12-02T00:00:00.000Z",
         "PurchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "OrderId":"op1"
         "RedeemPrice":11,
         "QuantityRedeem":1,
         "RedeemStatus":"REJECTED"
      },
      {
         "PurchasedQuantity":1,
         "AssetType":"oUserBondDetails",
         "Id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op2",
         "TokenId":"bond1",
         "Status":"Purchased",
         "PurchasedAmount":11,
         "PurchasedDate":"2024-12-02T00:00:00.000Z",
         "PurchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "OrderId":"op2",
         "RedeemPrice":11,
         "QuantityRedeem":1,
         "RedeemStatus":"APPROVED"
      }
   ]
}
GetAccountBondSummaryWithPagination
Jeder Kontoinhaber kann diese get-Methode aufrufen, um eine Kontoübersicht zu erhalten, die Details zu gekauften oder eingelösten Token sowie den Kaufpreis und den Einlösungspreis enthält. Diese Methode kann Ergebnisse mit Paginierung basierend auf Seitengrößen- und Lesezeichenwerten zurückgeben und auch nach Start- und Endzeit gefiltert werden.
func (t *Controller) GetAccountBondSummaryWithPagination(orgId string, userId string, pageSize int32, bookmark string) (interface{}, error)
Parameter:
  • orgId: string – Die Mitgliedschaftsdienstleister-ID (MSP) 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 einen Rückgabewert:
{

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

TypeScript SDK-Methoden für Bond Marketplace

payInterest
Der Token-Ersteller oder -Administrator kann diese Methode aufrufen, um die Zinsen für ein Anleihe-Token zu zahlen. 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 bei Fälligkeit ist. Die Zinsen werden durch den Chaincode selbst auf der Grundlage des Kuponsatzes des Tokens berechnet. Der Kaufvorgang überträgt CBDC-Token vom Konto des Anrufers auf das Konto des Anleihebesitzers. Aus diesem Grund muss diese Methode im Kontext einer atomaren Transaktion ausgeführt werden. Die Methode überprüft auch den Übertragungsprozess und stellt sicher, dass der entsprechende CBDC-Kettencode mit dem richtigen orgId und userId für die Übertragung aufgerufen wird. orgId und userId müssen dem Tokeneigentümer entsprechen, und der CBDC-Tokentransferwert muss dem vom Bond Chaincode berechneten Interesse entsprechen.
this.Ctx.ERC1155AccountBondSummary.payInterest(userAccountId, tokenId, orderId)
Parameter:
  • userAccountId: string: Die Konto-ID des Benutzers.
  • tokenId: string: Die ID des Tokens.
  • orderId: string: Die Bestell-ID für den Kaufvorgang.
Beispiel für einen Rückgabewert:
{
         "purchasedQuantity":1,
         "assetType":"oUserBondDetails",
         "id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
         "tokenId":"bond1",
         "status":"Redeemed",
         "purchasedAmount":11,
         "purchasedDate":"2024-12-02T00:00:00.000Z",
         "purchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "orderId":"op1"
         "interestEarned": 11,
         "interestEarnedDate": "2024-12-02T00:00:00.000Z"
}
requestTokenRedemption
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. Rücknahmeanforderungen können nur für die gesamte Menge des Anleihetokens ausgelöst werden, deren Eigentümer der Benutzer ist. Benutzer können mehrere Einlösungsanforderungen basierend auf verschiedenen Abrechnungs-IDs auslösen, 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 Abwicklungs-ID für den Rücknahmevorgang.
  • tokenId: string: Die ID des Tokens.
  • orderId: string: Die Bestell-ID für den Kaufvorgang.
  • additionalFees: number - Die zusätzlichen Gebühren, die dem Einlösungspreis hinzugefügt werden müssen.
Beispiel für einen Rückgabewert:
{
         "tokenName":"bond",
         "assetType":"otokenApproval",
         "id":"otokenApproval~9e006057ac96ae997e3964531b1a08ad2316555701c7fe9ec7b88e38e20892bf",
         "settlementId":"op4",
         "userBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op4",
         "fromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
         "toAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "tokenId":"bond1",
         "quantity":1,
         "status":"PENDING",
         "orderId":"op4",
         "redeemPrice":11
}
approveTokenRedemption
Diese Methode kann nur vom Token-Ersteller 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 Anleiherstellers auf das Konto des Eigentümers. Aus diesem Grund muss diese Methode im Kontext einer atomaren Transaktion ausgeführt werden. Die Methode überprüft auch den Übertragungsprozess und stellt sicher, dass der entsprechende CBDC-Kettencode mit dem richtigen orgId und userId für die Übertragung aufgerufen wird. orgId und userId müssen dem Konto des Tokenverantwortlichen entsprechen, der die Einlösungsanforderung ausgelöst hat, und der CBDC-Tokenübertragungswert muss dem berechneten Einlösungspreis entsprechen, der vom Chaincode beim Auslösen der Einlösungsanforderung berechnet wurde.
this.Ctx.ERC1155TokenApproval.approveTokenApprovalRequest(fromUserAccountId, settlementId, tokenId)
Parameter:
  • fromUserAccountId: string: Die Konto-ID des Benutzers.
  • settlementId: string: Die Abwicklungs-ID für den Rücknahmevorgang.
  • tokenId: string: Die ID des Tokens.
Beispiel für einen Rückgabewert:
{
   "status":"success",
   "msg":"Successfully approved the token approval request"
}
rejectRedemption
Der Tokenersteller kann diese Methode aufrufen, um die Einlösungsanforderung abzulehnen. Tokenverantwortliche können eine Einlösungsanforderung mit einer anderen Abrechnungs-ID erneut auslösen.
this.Ctx.ERC1155TokenApproval.rejectTokenApprovalRequest(fromUserAccountId, settlementId, tokenId)
Parameter:
  • fromOrgId: string – Die Mitgliedschaftsdienstleister-ID (MSP) des Benutzers.
  • fromUserId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
  • settlementId: string: Die Abwicklungs-ID für den Rücknahmevorgang.
  • tokenId: string: Die ID des Tokens.
Beispiel für einen 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 einen 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":"bond1",
            "tokenName":"bond",
            "tokenDesc":"tokenDesc value",
            "tokenStandard":"erc1155+",
            "tokenType":"nonfungible",
            "tokenUnit":"fractional",
            "behaviors":[
               "divisible",
               "mintable",
               "transferable",
               "burnable",
               "roles"
            ],
            "roles":{
               "minter_role_name":"minter",
               "burner_role_name":"burner"
            },
            "mintable":{
               "max_mint_quantity":0
            },
            "quantity":100,
            "createdBy":"oaccount~276bcf1324b1ad1e493e22432db3b39f7a4b9bb17b8525c0391ea3ba36138e00",
            "creationDate":"2024-12-02T12:42:09.000Z",
            "divisible":{
               "decimal":0
            },
            "isBurned":false,
            "isLocked":false,
            "tokenUri":"tokenUri value",
            "status":"posted"
         }

]
getTokenApprovalRequestByUser
Jeder Kontoinhaber kann diese get-Methode aufrufen, um die Details aller Tokengenehmigungsanforderungen (Rücknahmeanforderungen) abzurufen, die er gestellt hat.
this.Ctx.ERC1155TokenApproval.getAllTokenApprovalRequestByUserByStatus(status)
Parameter:
  • status: string: Der Status der Anforderung, z.B. PENDING, REJECTED oder APPROVED.
Beispiel für einen Rückgabewert:
[
   {
      "tokenName":"bond",
      "assetType":"otokenApproval",
      "id":"otokenApproval~5b2a94283ae95e3d6e5b76ffd6f75b7bff231e4df270a82cdc1f6badd17dea4b",
      "settlementId":"op1",
      "userBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
      "fromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "toAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "tokenId":"bond1",
      "quantity":2,
      "status":"APPROVED",
      "orderId":"op1",
      "redeemPrice":1,
      "purchasedPrice":11,
      "interestEarned":0
   },
   {
      "tokenName":"bond",
      "assetType":"otokenApproval",
      "id":"otokenApproval~fdf28b2d271ac9c0fbd94a2dedbf365728c77795f3e931e5a4a2dcf48039a989",
      "settlementId":"op3",
      "userBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op3",
      "fromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "toAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "tokenId":"bond1",
      "quantity":1,
      "status":"APPROVED",
      "orderId":"op3",
      "redeemPrice":11,
      "purchasedPrice":11,
      "interestEarned":0
   }
]
getTokenApprovalRequestForUserByStatus
Jeder Kontoinhaber kann diese get-Methode aufrufen, um die Details aller Tokengenehmigungsanforderungen (Rücknahmeanforderungen) abzurufen, die er gestellt hat.
this.Ctx.ERC1155TokenApproval.getAllTokenApprovalRequestForUserByStatus(status)
Parameter:
  • status: string: Der Status der Anforderung, z.B. PENDING, REJECTED oder APPROVED.
Beispiel für einen Rückgabewert:
[
   {
      "tokenName":"bond",
      "assetType":"otokenApproval",
      "id":"otokenApproval~5b2a94283ae95e3d6e5b76ffd6f75b7bff231e4df270a82cdc1f6badd17dea4b",
      "settlementId":"op1",
      "userBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
      "fromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "toAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "tokenId":"bond1",
      "quantity":2,
      "status":"APPROVED",
      "orderId":"op1",
      "redeemPrice":1,
      "purchasedPrice":11,
      "interestEarned":0
   },
   {
      "tokenName":"bond",
      "assetType":"otokenApproval",
      "id":"otokenApproval~fdf28b2d271ac9c0fbd94a2dedbf365728c77795f3e931e5a4a2dcf48039a989",
      "settlementId":"op3",
      "userBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op3",
      "fromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "toAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "tokenId":"bond1",
      "quantity":1,
      "status":"APPROVED",
      "orderId":"op3",
      "redeemPrice":11,
      "purchasedPrice":11,
      "interestEarned":0
   }
]
getAccountBondSummary
Jeder Kontoinhaber kann diese get-Methode aufrufen, um eine Kontoü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 einen Rückgabewert:
{

   "userAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
   "orgId":"BondMPTest",
   "userId":"u10",
   "accountSummary":[
      {
         "purchasedQuantity":1,
         "assetType":"oUserBondDetails",
         "id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
         "tokenId":"bond1",
         "status":"Redeemed",
         "purchasedAmount":11,
         "purchasedDate":"2024-12-02T00:00:00.000Z",
         "purchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "orderId":"op1"
         "redeemPrice":11,
         "quantityRedeem":1,
         "redeemStatus":"REJECTED"
      },
      {
         "purchasedQuantity":1,
         "assetType":"oUserBondDetails",
         "id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op2",
         "tokenId":"bond1",
         "status":"Purchased",
         "purchasedAmount":11,
         "purchasedDate":"2024-12-02T00:00:00.000Z",
         "purchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "orderId":"op2",
         "redeemPrice":11,
         "quantityRedeem":1,
         "redeemStatus":"APPROVED"
      }
   ]
}
getAccountBondSummaryWithPagination
Jeder Kontoinhaber kann diese get-Methode aufrufen, um eine Kontoübersicht zu erhalten, die Details zu gekauften oder eingelösten Token sowie den Kaufpreis und den Einlösungspreis enthält. Diese Methode kann Ergebnisse mit Paginierung basierend auf Seitengrößen- und Lesezeichenwerten zurückgeben und auch nach Start- 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 einen Rückgabewert:
    {

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

    	

    On success, it returns a message.

    {

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

Go SDK-Methoden für Bond Marketplace

PayInterest
Der Token-Ersteller oder -Administrator kann diese Methode aufrufen, um die Zinsen für ein Anleihe-Token zu zahlen. 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 bei Fälligkeit ist. Die Zinsen werden durch den Chaincode selbst auf der Grundlage des Kuponsatzes des Tokens berechnet. Der Kaufvorgang überträgt CBDC-Token vom Konto des Anrufers auf das Konto des Anleihebesitzers. Aus diesem Grund muss diese Methode im Kontext einer atomaren Transaktion ausgeführt werden. Die Methode überprüft auch den Übertragungsprozess und stellt sicher, dass der entsprechende CBDC-Kettencode mit dem richtigen orgId und userId für die Übertragung aufgerufen wird. orgId und userId müssen dem Tokeneigentümer entsprechen, und der CBDC-Tokentransferwert muss dem vom Bond Chaincode berechneten Interesse entsprechen.
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 Bestell-ID für den Kaufvorgang.
Beispiel für einen Rückgabewert:
{
         "PurchasedQuantity":1,
         "AssetType":"oUserBondDetails",
         "Id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
         "TokenId":"bond1",
         "Status":"Redeemed",
         "PurchasedAmount":11,
         "PurchasedDate":"2024-12-02T00:00:00.000Z",
         "PurchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "OrderId":"op1"
         "InterestEarned": 11,
         "InterestEarnedDate": "2024-12-02T00:00:00.000Z"

}
RequestTokenRedemption
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. Rücknahmeanforderungen können nur für die gesamte Menge des Anleihetokens ausgelöst werden, deren Eigentümer der Benutzer ist. Benutzer können mehrere Einlösungsanforderungen basierend auf verschiedenen Abrechnungs-IDs auslösen, 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 Abwicklungs-ID für den Rücknahmevorgang.
  • tokenId: string: Die ID des Tokens.
  • orderId: string: Die Bestell-ID für den Kaufvorgang.
  • additionalFees: number - Die zusätzlichen Gebühren, die dem Einlösungspreis hinzugefügt werden müssen.
Beispiel für einen Rückgabewert:
{
         "TokenName":"bond",
         "AssetType":"otokenApproval",
         "Id":"otokenApproval~9e006057ac96ae997e3964531b1a08ad2316555701c7fe9ec7b88e38e20892bf",
         "SettlementId":"op4",
         "UserBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op4",
         "FromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
         "ToAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "TokenId":"bond1",
         "Quantity":1,
         "Status":"PENDING",
         "OrderId":"op4",
         "RedeemPrice":11
}
ApproveTokenRedemption
Diese Methode kann nur vom Token-Ersteller 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 Anleiherstellers auf das Konto des Eigentümers. Aus diesem Grund muss diese Methode im Kontext einer atomaren Transaktion ausgeführt werden. Die Methode überprüft auch den Übertragungsprozess und stellt sicher, dass der entsprechende CBDC-Kettencode mit dem richtigen orgId und userId für die Übertragung aufgerufen wird. orgId und userId müssen dem Konto des Tokenverantwortlichen entsprechen, der die Einlösungsanforderung ausgelöst hat, und der CBDC-Tokenübertragungswert muss dem berechneten Einlösungspreis entsprechen, der vom Chaincode beim Auslösen der Einlösungsanforderung berechnet wurde.
t.Ctx.ERC1155TokenApproval.ApproveTokenApprovalRequest(fromUserAccountId, settlementId, tokenId)
Parameter:
  • fromUserAccountId: string: Die Konto-ID des Benutzers.
  • settlementId: string: Die Abwicklungs-ID für den Rücknahmevorgang.
  • tokenId: string: Die ID des Tokens.
Beispiel für einen Rückgabewert:
{
   "status":"success",
   "msg":"Successfully approved the token approval request"
}
RejectRedemption
Der Tokenersteller kann diese Methode aufrufen, um die Einlösungsanforderung abzulehnen. Tokenverantwortliche können eine Einlösungsanforderung mit einer anderen Abrechnungs-ID erneut auslösen.
t.Ctx.ERC1155TokenApproval.RejectTokenApprovalRequest(fromUserAccountId, settlementId, tokenId)
Parameter:
  • fromOrgId: string – Die Mitgliedschaftsdienstleister-ID (MSP) des Benutzers.
  • fromUserId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
  • settlementId: string: Die Abwicklungs-ID für den Rücknahmevorgang.
  • tokenId: string: Die ID des Tokens.
Beispiel für einen 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 einen 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":"bond1",
            "TokenName":"bond",
            "TokenDesc":"tokenDesc value",
            "TokenStandard":"erc1155+",
            "TokenType":"nonfungible",
            "TokenUnit":"fractional",
            "Behaviors":[
               "divisible",
               "mintable",
               "transferable",
               "burnable",
               "roles"
            ],
            "Roles":{
               "minter_role_name":"minter",
               "burner_role_name":"burner"
            },
            "Mintable":{
               "max_mint_quantity":0
            },
            "Quantity":100,
            "CreatedBy":"oaccount~276bcf1324b1ad1e493e22432db3b39f7a4b9bb17b8525c0391ea3ba36138e00",
            "CreationDate":"2024-12-02T12:42:09.000Z",
            "Divisible":{
               "decimal":0
            },
            "IsBurned":false,
            "IsLocked":false,
            "TokenUri":"tokenUri value",
            "Status":"posted"
         }
]
GetTokenApprovalRequestByUser
Jeder Kontoinhaber kann diese get-Methode aufrufen, um die Details aller Tokengenehmigungsanforderungen (Rücknahmeanforderungen) abzurufen, die er gestellt hat.
t.Ctx.ERC1155TokenApproval.GetAllTokenApprovalRequestByUserByStatus(status)
Parameter:
  • status: string: Der Status der Anforderung, z.B. PENDING, REJECTED oder APPROVED.
Beispiel für einen Rückgabewert:
[
   {
      "TokenName":"bond",
      "AssetType":"otokenApproval",
      "Id":"otokenApproval~5b2a94283ae95e3d6e5b76ffd6f75b7bff231e4df270a82cdc1f6badd17dea4b",
      "SettlementId":"op1",
      "UserBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
      "FromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "ToAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "TokenId":"bond1",
      "Quantity":2,
      "Status":"APPROVED",
      "OrderId":"op1",
      "RedeemPrice":1,
      "PurchasedPrice":11,
      "InterestEarned":0
   },
   {
      "TokenName":"bond",
      "AssetType":"otokenApproval",
      "Id":"otokenApproval~fdf28b2d271ac9c0fbd94a2dedbf365728c77795f3e931e5a4a2dcf48039a989",
      "SettlementId":"op3",
      "UserBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op3",
      "FromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "ToAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "TokenId":"bond1",
      "Quantity":1,
      "Status":"APPROVED",
      "OrderId":"op3",
      "RedeemPrice":11,
      "PurchasedPrice":11,
      "InterestEarned":0
   }
]
GetTokenApprovalRequestForUserByStatus
Jeder Kontoinhaber kann diese get-Methode aufrufen, um die Details aller Tokengenehmigungsanforderungen (Rücknahmeanforderungen) abzurufen, die er gestellt hat.
t.Ctx.ERC1155TokenApproval.GetAllTokenApprovalRequestForUserByStatus(status)
Parameter:
  • status: string: Der Status der Anforderung, z.B. PENDING, REJECTED oder APPROVED.
Beispiel für einen Rückgabewert:
[
   {
      "TokenName":"bond",
      "AssetType":"otokenApproval",
      "Id":"otokenApproval~5b2a94283ae95e3d6e5b76ffd6f75b7bff231e4df270a82cdc1f6badd17dea4b",
      "SettlementId":"op1",
      "UserBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
      "FromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "ToAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "TokenId":"bond1",
      "Quantity":2,
      "Status":"APPROVED",
      "OrderId":"op1",
      "RedeemPrice":1,
      "PurchasedPrice":11,
      "InterestEarned":0
   },
   {
      "TokenName":"bond",
      "AssetType":"otokenApproval",
      "Id":"otokenApproval~fdf28b2d271ac9c0fbd94a2dedbf365728c77795f3e931e5a4a2dcf48039a989",
      "SettlementId":"op3",
      "UserBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op3",
      "FromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "ToAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "TokenId":"bond1",
      "Quantity":1,
      "Status":"APPROVED",
      "OrderId":"op3",
      "RedeemPrice":11,
      "PurchasedPrice":11,
      "InterestEarned":0
   }
]
GetAccountBondSummary
Jeder Kontoinhaber kann diese get-Methode aufrufen, um eine Kontoü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 einen Rückgabewert:
{

   "userAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
   "orgId":"BondMPTest",
   "userId":"u10",
   "accountSummary":[
      {
         "PurchasedQuantity":1,
         "AssetType":"oUserBondDetails",
         "Id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
         "TokenId":"bond1",
         "Status":"Redeemed",
         "PurchasedAmount":11,
         "PurchasedDate":"2024-12-02T00:00:00.000Z",
         "PurchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "OrderId":"op1"
         "RedeemPrice":11,
         "QuantityRedeem":1,
         "RedeemStatus":"REJECTED"
      },
      {
         "PurchasedQuantity":1,
         "AssetType":"oUserBondDetails",
         "Id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op2",
         "TokenId":"bond1",
         "Status":"Purchased",
         "PurchasedAmount":11,
         "PurchasedDate":"2024-12-02T00:00:00.000Z",
         "PurchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "OrderId":"op2",
         "RedeemPrice":11,
         "QuantityRedeem":1,
         "RedeemStatus":"APPROVED"
      }
   ]
}
GetAccountBondSummaryWithPagination
Jeder Kontoinhaber kann diese get-Methode aufrufen, um eine Kontoübersicht zu erhalten, die Details zu gekauften oder eingelösten Token sowie den Kaufpreis und den Einlösungspreis enthält. Diese Methode kann Ergebnisse mit Paginierung basierend auf Seitengrößen- und Lesezeichenwerten zurückgeben und auch nach Start- 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 einen Rückgabewert:
{

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