Bond Marketplace Wrapper API-Paket

Die Oracle Blockchain Platform Digital Assets Edition umfasst ein Wrapper-API-Package, mit dem die REST-API erweitert wird, um spezifische Vorgänge für einen Bond-NFT-Marktplatz zu unterstützen.

Das Wrapper-API-Package verwendet den API-Gateway-Service und OCI Functions, um API-Routen speziell für die Verwaltung des NFT-Lebenszyklus des Bond Marketplace bereitzustellen. Das Wrapper-API-Package für Bond Marketplace kann von der Oracle Blockchain Platform-Konsole heruntergeladen werden. Es enthält eine Archivdatei, die das Wrapper-API-Package enthält, einschließlich der für das Deployment erforderlichen Terraform-Skripte. Sie stellen diese Datei in einem Resource Manager-Stack auf Oracle Cloud Infrastructure (OCI) bereit, um die erforderlichen Oracle-Ressourcen für die Wrapper-APIs zu erstellen. Es enthält auch eine Postman-Collection, mit der Sie die bereitgestellten Wrapper-APIs testen können. Die Sammlung umfasst vorkonfigurierte Anforderungen mit Endpunkten und Payloads, die den im Wrapper-API-Package definierten APIs entsprechen.

Wrapper-APIs

activateAccount
Ursprünglicher Methodenname: activateAccount
Diese POST-Methode aktiviert ein Token-Konto. Diese Methode kann nur von einem Administrator oder Kontoinhaber aufgerufen werden. Gelöschte Accounts können nicht aktiviert werden.
Payload:
{
    "tokenId": "{{bc-token-id}}",
    "orgId": "{{bc-org-id}}",
    "userId": "{{bc-user-id}}",
    "endorsers": {{endorsers}}
}
Parameter:
  • tokenId: string: Die ID des Tokens.
  • orgId: string - Die Mitgliedschaftsserviceanbieter-ID (MSP) des Benutzers in der aktuellen Organisation.
  • userId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
Rückgabewert:
  • Bei Erfolg eine JSON-Darstellung des Accountstatusobjekts für den angegebenen Tokenaccount.
Beispiel für einen Rückgabewert:
{
  "assetType": "oaccountStatus",
  "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
  "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
  "status": "active"
}
addTokenAdmin
Ursprünglicher Methodenname: addTokenAdmin
Diese POST-Methode fügt dem Token Chaincode weitere Administratoren hinzu. Diese Methode kann nur vom Token-Admin des Chaincodes aufgerufen werden.
Payload:
{
    "orgId": "{{bc-org-id}}",
    "userId": "{{bc-user-id}}",
    "endorsers": {{endorsers}}
}
Parameter:
  • orgId: string - Die Mitgliedschaftsserviceanbieter-ID (MSP) des Benutzers in der aktuellen Organisation.
  • userId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
Rückgabewert:
  • Bei erfolgreicher Ausführung eine Meldung mit Details des Benutzers, der als Token Admin des Chaincodes hinzugefügt wurde.
Beispiel für einen Rückgabewert:
{
  "msg": "Successfully added Admin (OrgId: appDev, UserId: user1)"
}
addRole
Ursprünglicher Methodenname: addRole
Diese POST-Methode fügt einem angegebenen Benutzer und Token eine Rolle hinzu. Diese Methode kann nur von einem Token Admin des Chaincodes aufgerufen werden. Nicht fungible Token werden durch den Tokennamen angegeben. Der angegebene Benutzer muss über einen nicht fungiblen Tokenaccount verfügen. Die angegebene Rolle muss in der Spezifikationsdatei für das Token vorhanden sein.
Payload:
{
    "tokenId": "{{bc-token-id}}",
    "orgId": "{{bc-org-id}}",
    "userId": "{{bc-user-id}}",
    "role": "role minter/burner"
    "tokenDetails": "{"tokenName": "token name value"}"
    "endorsers": {{endorsers}}
}
Parameter:
  • orgId: string - Die Mitgliedschaftsserviceanbieter-ID (MSP) des Benutzers in der aktuellen Organisation.
  • userId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
  • role: string: Der Name der Rolle, die dem angegebenen Benutzer hinzugefügt werden soll.
  • tokenDetails: TokenDetail: Die Details, die das Token angeben. Verwenden Sie für nicht fungible Token das folgende Format:
    {"tokenName":"artCollection"}
Rückgabewert:
  • Bei Erfolg eine Nachricht mit Accountdetails.
Beispiel für einen Rückgabewert:
{
  "msg": "Successfully added role 'minter' to Account Id: oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a (Org-Id: appdev, User-Id: idcqa)"
}
approveBondRedemption
Ursprünglicher Methodenname: approveBondRedemption
Diese POST-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.
Payload:
{
   "fromOrgId": "fromOrgId value",
   "fromUserId": "fromUserId value",
   "settlementId": "settlementId value",
   "tokenId": "{{bc-token-id}}",
   "CBDCTokenId": "CBDCTokenId value",
   "CBDCFromOrgId": "CBDCFromOrgId value",
   "CBDCFromUserId": "CBDCFromUserId value",
   "CBDCQuantity": 0,
   "CBDCRemark": "{\\\"category\\\":\\\"category value\\\",\\\"description\\\":\\\"description value\\\"}",
   "endorsers": {{endorsers}}
}
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.
  • CBDCTokenId: string: Die ID des Tokens im CBDC-Kettencode.
  • CBDCOrgId: string: Die MSP-ID des Benutzers im CBDC-Kettencode.
  • CBDCUserId: string: Der Benutzername oder die E-Mail-ID des Benutzers im CBDC-Kettencode.
  • CBDCQuantity: string - Die Menge der Token, die im CBDC-Kettencode übertragen werden sollen.
  • CBDCRemark: string – Eine Bemerkung für die Übertragung im CBDC-Kettencode, der im zuvor gezeigten Format vorliegen muss.
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"
   }
}
balanceOfBatch
Ursprünglicher Methodenname: balanceOfBatch
Diese GET-Methode schließt einen Batchvorgang ab, der den Saldo von Tokenkonten abruft. Die Kontodetails werden in drei separaten Listen mit Organisationskennungen, Benutzerkennungen und Tokenkennungen angegeben. Diese Methode kann nur von einem Token Admin des Chaincodes oder von Accounteigentümern aufgerufen werden. Kontoinhaber können Saldendetails nur für Konten anzeigen, für die sie verantwortlich sind.
Abfrage:
/balanceOfBatch?orgIds=["{{bc-org-id}}"]&userIds=["{{bc-user-id}}"]&tokenIds=["{{bc-token-id}}"]
Parameter:
  • orgIds: string[]: Eine Liste der Mitgliedschaftsserviceprovider-(MSP-)IDs in der aktuellen Organisation.
  • userIds: string[]: Eine Liste der Benutzernamen oder E-Mail-IDs.
  • tokenIds: string[]: Eine Liste der Token-IDs.
Beispiel für einen Rückgabewert:

Im folgenden Beispiel stellt die Token-ID FNFT ein fraktioniertes nicht fungibles Token dar, und die Token-ID FT stellt ein fungibles Token dar.

[
    {
        "orgId": "appdev",
        "userId": "idcqa",
        "userAccountId": "ouaccount~412de5e3998dcd100973e1bad6e8729fddc1c7ff610beab8376d733a35c51f38",
        "tokenAccountId": "oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371",
        "tokenId": "FNFT",
        "balance": 100
    },
    {
        "orgId": "appdev",
        "userId": "idcqa",
        "userAccountId": "ouaccount~412de5e3998dcd100973e1bad6e8729fddc1c7ff610beab8376d733a35c51f38",
        "tokenAccountId": "oaccount~21206f309941a2a23c4f158a0fe1b8f12bb8e2b0c9a2e1358f5efebc0c7d410e",
        "tokenId": "FT",
        "balance": 50
    },
    {
        "orgId": "appdev",
        "userId": "user1_minter",
        "userAccountId": "ouaccount~9501bb774c156eb8354dfe489250ea91f757523d70f08ee494bda98bb352003b",
        "tokenAccountId": "oaccount~dcee860665db8740cb77b846e823752185a1e9a185814d0acb305890f5903446",
        "tokenId": "FNFT",
        "balance": 10
    }
]
batchTransferFrom
Ursprünglicher Methodenname: batchTransferFrom
Diese POST-Methode schließt einen Batchvorgang ab, bei dem Token, die in einer Liste mit Token-IDs angegeben sind, von einem Benutzer an einen anderen Benutzer übertragen werden.
Payload:
{
 "fromOrgId": "fromOrgId value",
 "fromUserId": "fromUserId value",
 "toOrgId": "toOrgId value",
 "toUserId": "toUserId value",
 "tokenIds": "[\"{{bc-token-id}}\"]",
 "quantity": "[quantity value]",
 "endorsers": {{endorsers}}
}
Parameter:
  • fromOrgId: string: Die Mitgliedschaftsserviceprovider-(MSP-)ID des Absenders und Tokeneigentümers in der aktuellen Organisation.
  • fromUserId: string: Der Benutzername oder die E-Mail-ID des Absenders und Tokeneigentümers.
  • toOrgId: string: Die Mitgliedschaftsdienstleister-ID (MSP) des Empfängers in der aktuellen Organisation.
  • toUserId: string: Der Benutzername oder die E-Mail-ID des Empfängers.
  • tokenIds: string[]: Eine Liste der Token-IDs für die zu übertragenden Token.
  • quantity: number[]: Die Liste der zu übertragenden Tokenmengen entsprechend dem Token-ID-Array.
Rückgabewert:
  • Bei erfolgreicher Ausführung wird eine Nachricht mit Details für jede Tokentransfer angezeigt.
Beispiel für einen Rückgabewert:
[
    {
        "msg": "Successfully transferred NFT token: 'FNFT' of '10' quantity from Account-Id: oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371 (Org-Id: appdev, User-Id: idcqa) to Account-Id: oaccount~dcee860665db8740cb77b846e823752185a1e9a185814d0acb305890f5903446 (Org-Id: appdev, User-Id: user1_minter)"
    },
    {
        "msg": "Successfully transferred 10 FT token: 'FT' from Account-Id: oaccount~21206f309941a2a23c4f158a0fe1b8f12bb8e2b0c9a2e1358f5efebc0c7d410e (Org-Id: appdev, User-Id: idcqa) to Account-Id: oaccount~1089ee5122f367ee0ca38c6660298f4b81f199627e4f67f3691c0f628237974c (Org-Id: appdev, User-Id: user1_minter)"
    },
    {
        "msg": "Successfully transferred NFT token: 'NFT' from Account-Id: oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371 (Org-Id: appdev, User-Id: idcqa) to Account-Id: oaccount~dcee860665db8740cb77b846e823752185a1e9a185814d0acb305890f5903446 (Org-Id: appdev, User-Id: user1_minter)"
    }
]
burnBatch
Ursprünglicher Methodenname: burnBatch
Diese POST-Methode deaktiviert oder brennen die angegebenen Token. Jeder Benutzer mit der Brennerrolle kann diese Methode aufrufen.
Payload:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "tokenIds": "[\"{{bc-token-id}}\"]",
 "quantity": "[quantity value]",
 "sameOrgEndorser": true
}
Parameter:
  • orgId: string – Die Mitgliedschaftsdienstleister-ID (MSP) in der aktuellen Organisation.
  • userId: string: Der Benutzername oder die E-Mail-ID.
  • tokenIds: string[]: Die Liste der zu brennenden Token-IDs
  • quantity: number[] - Die Liste der zu brennenden Tokenmengen, die dem Token-ID-Array entsprechen.
Rückgabewert:
  • Bei Erfolg eine Meldung mit Details zu den Burn-Vorgängen.
Beispiel für einen Rückgabewert:
[
  {
    "msg": "Successfully burned NFT token: 'art' from Account-Id: oaccount~76cb672eeb1bd535899562a840d0c15a356db89e24bc8b43ac1dba845a4282c6 (Org-Id: appdev, User-Id: idcqa)"
  },
  {
    "msg": "Successfully burned 5 tokens of tokenId: tokenOne from Account-ID oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a (Org-Id: appdev, User-Id: idcqa)"
  },
  {
    "msg": "Successfully burned 2 token share of tokenId: FNFT from Account-ID oaccount~87bcb699d507368ee3966cd03ee6d7736ffc55dde8c0f0e16b14866334ac504a (Org-Id: AutoF1377358917, User-Id: idcqa)"
  }
]
createAccount
Ursprünglicher Methodenname: createAccount
Diese POST-Methode erstellt ein Konto für einen angegebenen Benutzer und zugehörige Tokenkonten für Token. Ein Konto muss für jeden Benutzer erstellt werden, der zu einem beliebigen Zeitpunkt Token hat. Das Benutzerkonto verfolgt das NFT-Konto und die fungiblen Token-Konten, die ein Benutzer besitzt. Benutzer müssen über Konten im Netzwerk verfügen, um tokenbezogene Vorgänge abzuschließen. Diese Methode kann nur von einem Token Admin des Chaincodes aufgerufen werden.

Ein Benutzerkonto hat eine eindeutige ID, die durch einen SHA-256-Hash des Parameters orgId und des Parameters userId gebildet wird.

Ein Benutzer kann mehrere fungible Token-Konten mit eindeutigen Konto-IDs haben. Fungible Token-Konto-IDs werden durch einen SHA-256-Hash des Parameters orgId, den Parameter userId, die durch das Tilde-Symbol (~) getrennte konstante Zeichenfolge ft und eine Zählernummer gebildet, die den Index des fungiblen Kontos angibt, das durch das Tilde-Symbol (~) getrennt erstellt wird.

Ein Benutzer kann nur einen nicht fungiblen Tokenaccount haben. Konto-IDs für nicht fungible Token sind eindeutig und werden durch einen SHA-256-Hash des Parameters orgId, den Parameter userId und die durch das Tilde-Symbol (~) getrennte konstante Zeichenfolge nft gebildet. Alle nicht fungiblen Token, für die ein Benutzer verantwortlich ist, ob ganz oder teilweise, sind mit diesem Konto verknüpft.

Payload:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "ftAccount": true,
 "nftAccount": true,
 "endorsers": {{endorsers}}
}
Parameter:
  • orgId - Die Mitgliedschaftsserviceprovider-(MSP-)ID des Benutzers, für den das Konto erstellt wird. Die ID muss mit einem alphanumerischen Zeichen beginnen und kann Buchstaben, Zahlen und Sonderzeichen wie Unterstriche (_), Punkte (.), At-Zeichen (@) und Bindestriche (-) enthalten.
  • userId: Der Benutzername oder die E-Mail-ID des Benutzers. Die ID muss mit einem alphanumerischen Zeichen beginnen und kann Buchstaben, Zahlen und Sonderzeichen wie Unterstriche (_), Punkte (.), At-Zeichen (@) und Bindestriche (-) enthalten.
  • ftAccount: boolean: Bei "true" wird ein fungibler Tokenaccount erstellt und mit dem Benutzeraccount verknüpft.
  • nftAccount: boolean: Bei "true" wird ein nicht fungibler Tokenaccount erstellt und mit dem Benutzeraccount verknüpft.
Rückgabewert:
  • Bei Erfolg ein JSON-Objekt des erstellten Accounts.
Beispiel für einen Rückgabewert:
{
  "assetType": "ouaccount",
  "accountId": "ouaccount~cf20877546f52687f387e7c91d88b9722c97e1a456cc0484f40c747f7804feae",
  "userId": "user1",
  "orgId": "appdev",
  "totalAccounts": 2,
  "totalFtAccounts": 1,
  "associatedFtAccounts": [
    {
      "accountId": "oaccount~60bb20c14a83f6e426e1437c479c5891e1c6477dfd7ad18b73acac5d80bc504b",
      "tokenId": ""
    }
  ],
  "associatedNftAccount": "oaccount~73c3e835dac6d0a56ca9d8def08269f83cefd59b9d297fe2cdc5a9083828fa58"
}
createAccountWithEnrollment
Ursprünglicher Methodenname: createAccountWithEnrollment
Diese POST-Methode erstellt eine Registrierung für einen Benutzer im REST-Proxy der Instanz und erstellt ein NFT-Konto im Kettencode des Bond Marketplace.
Payload:
{
 "orgId": "orgId value",
 "userId": "userId value"
}
Parameter:
  • orgId: string - Die Mitgliedschaftsserviceanbieter-ID (MSP) des Benutzers in der aktuellen Organisation.
  • userId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
Rückgabewert:
  • Bei Erfolg ein JSON-Objekt des erstellten Accounts.
Beispiel für einen Rückgabewert:
{
 "blockNumber": 44,
 "encode": "JSON",
 "payload": {
 "accountId": "ouaccount~1930ec223036c0fe2ea97c58fd9a8d2456d13c0fd0c98217ce075ceddb8add02",
 "assetType": "ouaccount",
 "associatedFtAccounts": [],
 "associatedNftAccount": "oaccount~03f8a6949f6c5c453354a4a8eed8503a39766085b476430e95ce305769fba861",
 "orgId": "BondMPTest",
 "totalAccounts": 1,
 "totalFtAccounts": 0,
 "userId": "u14"
 },
 "sourceURL": "bondmptest-oabcs1-iad.blockchain.ocp.example.com:20010",
 "txid": "9fa75a631f0de2ddf2ed85742dcc4d4b97b7afb0d3f9a07988e5cb9120ed633f"
}
createBondToken
Ursprünglicher Methodenname: createBondToken
Diese POST-Methode erstellt Token. Jedes definierte Token verfügt über eine eigene Erstellungsmethode. Bei nicht fungiblen Token wird der Aufrufer dieser Methode zum Eigentümer der NFT. Wenn das roles-Verhalten in der Eigenschaft behaviors des Tokenmodells definiert und ein minter_role_name angegeben ist, muss der Aufruferkonto die Minterrolle aufweisen.
Payload:
{
 "tokenAsset": "{\"tokenId\":\"{{bc-token-id}}\",\"tokenDesc\":\"tokenDesc value\",\"tokenUri\":\"tokenUri value\",\"tokenMetadata\":{\"ISIN\":\"ISIN value\",\"Segment\":\"Segment value\",\"Issuer\":\"Issuer value\",\"FaceValue\":999,\"IssueSize\":999,\"CouponRate\":999,\"InterestPaymentType\":\"InterestPaymentType value\",\"InterestFrequency\":\"InterestFrequency value\",\"IssueDate\":\"2023-03-28T15:16:36+00:00\",\"MaturityDate\":\"2023-03-28T15:16:36+00:00\"},\"status\":\"status value\"}",
 "quantity": 1,
 "sameOrgEndorser": true
}
Parameter:
  • tokenAsset: <Token Class>: Das Tokenasset. Die Eigenschaften des Assets werden in der Modelldatei definiert.
  • quantity: number: Die Anzahl der zu prägenden Token. Der einzige unterstützte Wert für diesen Parameter ist 1.
Rückgabewert:
  • Bei Erfolg ein JSON-Objekt des erstellten Accounts.
Beispiel für einen Rückgabewert:
{
            "tokenMetadata": {
                "ISIN": "ISIN value",
                "Segment": "Segment value",
                "Issuer": "Issuer value",
                "FaceValue": 999,
                "IssueSize": 999,
                "CouponRate": 999,
                "InterestPaymentType": "simple",
                "InterestFrequency": "monthly",
                "IssueDate": "2023-03-28T15:16:36.000Z",
                "MaturityDate": "2023-03-28T15:16:36.000Z"
            },
            "assetType": "otoken",
            "events": false,
            "tokenId": "token2",
            "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": 10,
            "createdBy": "oaccount~85dfd98d1b99e5b8891e0a0fdcd7d2e07fc5d37958f5d2a5796290b6a9204a43",
            "creationDate": "2024-12-03T12:07:24.000Z",
            "divisible": {
                "decimal": 0
            },
            "isBurned": false,
            "isLocked": false,
            "tokenUri": "tokenUri value",
            "status": "created"
}
createIDSCUser
Ursprünglicher Methodenname: createIDCSUser
Diese POST-Methode erstellt einen Identity Cloud Service-Benutzer im Mandanten, der durch die URL in der Datei terraform.tfvars angegeben wird, und weist den Benutzer der angegebenen Benutzergruppe zu.
Payload:
{
 "userName": "userName value",
 "firstName": "firstName value",
 "lastName": "lastName value",
 "email": "email value",
 "groupName": "groupName value"
}
Parameter:
  • userName: string: Die ID des Benutzers.
  • firstName: string: Der Vorname des Benutzers.
  • lastName: string: Der Nachname des Benutzers.
  • email: string - Die E-Mail-Adresse des Benutzers.
  • groupName: string: Der Name der Identity Cloud Service-Gruppe, die dem Benutzer zugewiesen werden soll.
Beispiel für einen Rückgabewert:
{
 "status": "Success",
 "msg": "User user1 is created and assigned to the group BOND_ADMIN"
}
createTokenAccount
Ursprünglicher Methodenname: createTokenAccount
Diese POST-Methode erstellt ein fungibles oder nicht fungibles Token-Konto, das einem Benutzerkonto zugeordnet werden kann.

Ein Benutzer kann mehrere fungible Token-Konten mit eindeutigen Konto-IDs haben. Fungible Token-Konto-IDs werden durch einen SHA-256-Hash des Parameters orgId, den Parameter userId, die durch das Tilde-Symbol (~) getrennte konstante Zeichenfolge ft und eine Zählernummer gebildet, die den Index des fungiblen Kontos angibt, das durch das Tilde-Symbol (~) getrennt erstellt wird.

Ein Benutzer kann nur einen nicht fungiblen Tokenaccount haben. Konto-IDs für nicht fungible Token sind eindeutig und werden durch einen SHA-256-Hash des Parameters orgId, den Parameter userId und die durch das Tilde-Symbol (~) getrennte konstante Zeichenfolge nft gebildet. Alle nicht fungiblen Token, für die ein Benutzer verantwortlich ist, ob ganz oder teilweise, sind mit diesem Konto verknüpft.

Diese Methode kann nur von einem Token Admin des Chaincodes aufgerufen werden.

Payload:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "tokenType": "nonfungible",
 "endorsers": {{endorsers}}
}
Parameter:
  • orgId: string - Die Mitgliedschaftsserviceanbieter-ID (MSP) des Benutzers in der aktuellen Organisation.
  • userId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
  • tokenType: TokenType: Der Typ des zu erstellenden Tokenaccounts. Die einzigen unterstützten Tokentypen sind nonfungible und fungible.
Rückgabewert:
  • Bei Erfolg ein JSON-Objekt des erstellten Tokenaccounts.
Beispiel für einen Rückgabewert:
{
  "assetType": "ouaccount",
  "accountId": "ouaccount~24ffd4d32a028a85b4b960f5d55536c837b5429bc7f346150adfa904ec2937cc",
  "userId": "user2",
  "orgId": "appdev",
  "totalAccounts": 1,
  "totalFtAccounts": 1,
  "associatedFtAccounts": [
    {
      "accountId": "oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a",
      "tokenId": ""
    }
  ],
  "associatedNftAccount": ""
}
createUserAccount
Ursprünglicher Methodenname: createUserAccount
Diese POST-Methode erstellt ein Konto für einen angegebenen Benutzer. Ein Konto muss für jeden Benutzer erstellt werden, der zu einem beliebigen Zeitpunkt Token hat. Das Benutzerkonto verfolgt das NFT-Konto und die fungiblen Token-Konten, die ein Benutzer hat. Benutzer müssen über Konten im Netzwerk verfügen, um tokenbezogene Vorgänge abzuschließen.

Eine Konto-ID ist ein SHA-256-Hash des Parameters orgId und des Parameters userId. Diese Methode kann nur von einem Token Admin des Chaincodes aufgerufen werden.

Payload:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "endorsers": {{endorsers}}
}
Parameter:
  • orgId: string - Die Mitgliedschaftsserviceanbieter-ID (MSP) des Benutzers in der aktuellen Organisation.
  • userId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
Rückgabewert:
  • Bei Erfolg ein JSON-Objekt des erstellten Benutzerkontos.
Beispiel für einen Rückgabewert:
{
  "assetType": "ouaccount",
  "accountId": "ouaccount~24ffd4d32a028a85b4b960f5d55536c837b5429bc7f346150adfa904ec2937cc",
  "userId": "user2",
  "orgId": "appdev",
  "totalAccounts": 0,
  "totalFtAccounts": 0,
  "associatedFtAccounts": [],
  "associatedNftAccount": ""
}
deleteAccount
Ursprünglicher Methodenname: deleteAccount
Diese POST-Methode löscht ein Tokenkonto. Diese Methode kann nur von einem Token Admin des Chaincodes aufgerufen werden. Diese Methode löst einen Fehler aus, wenn kein accountStatus-Wert für das Konto im Buch gefunden wird.
Payload:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "endorsers": {{endorsers}}
}
Parameter:
  • orgId: string - Die Mitgliedschaftsserviceanbieter-ID (MSP) des Benutzers in der aktuellen Organisation.
  • userId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
Rückgabewert:
  • Bei Erfolg eine JSON-Darstellung des Tokenaccountstatus.
Beispiel für einen Rückgabewert:
{
  "assetType": "oaccountStatus",
  "statusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
  "accountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
  "status": "deleted"
}
getAccount
Ursprünglicher Methodenname: getAccount
Diese GET-Methode gibt Tokenaccountdetails für einen angegebenen Benutzer zurück. Diese Methode kann nur von einem Token Admin des Chaincodes oder dem Account Owner des Accounts aufgerufen werden.
Abfrage:
/getAccount?orgId={{bc-org-id}}&userId={{bc-user-id}}
Parameter:
  • orgId: string - Die Mitgliedschaftsserviceanbieter-ID (MSP) des Benutzers in der aktuellen Organisation.
  • userId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
  • tokenId?: string: Bei einem nicht fungiblen Tokenaccount eine leere Zeichenfolge. Bei einem fungiblen Token-Konto die Token-ID.
Rückgabewert:
  • Bei Erfolg ein JSON-Objekt, das Tokenaccountdetails enthält.
Beispiel für einen Rückgabewert
{
    "assetType": "oaccount",
    "accountId": "oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371",
    "userId": "user2",
    "orgId": "AppBldFFFFMay22",
    "tokenType": "nonfungible",
    "noOfNfts": 3
}
getAccountBondSummary
Ursprünglicher Methodenname: getAccountBondSummary
Diese GET-Methode gibt eine Kontoübersicht für den angegebenen Benutzer zurück, einschließlich Details zu gekauften oder eingelösten Token und deren Kauf- und Einlösungspreisen.
Abfrage:
/getAccount?orgId={{bc-org-id}}&userId={{bc-user-id}}
Parameter:
  • orgId: string - Die Mitgliedschaftsserviceanbieter-ID (MSP) des Benutzers in der aktuellen Organisation.
  • userId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
Rückgabewert:
  • Bei Erfolg ein JSON-Objekt, das die Tokenaccountübersicht enthält.
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
Ursprünglicher Methodenname: getAccountBondSummaryWithPagination
Diese GET-Methode gibt eine Kontoübersicht für den angegebenen Benutzer zurück, einschließlich Details zu gekauften oder eingelösten Token und deren Kauf- und Einlösungspreisen. Diese Methode kann Ergebnisse mit Paginierung basierend auf Seitengrößen- und Lesezeichenwerten zurückgeben und auch nach Start- und Endzeit gefiltert werden.
Abfrage:
/getAccountBondSummary?orgId={{bc-org-id}}&userId={{bc-user-id}}&pageSize=1&bookmark={{bookmark}}
Parameter:
  • orgId: string - Die Mitgliedschaftsserviceanbieter-ID (MSP) des Benutzers in der aktuellen Organisation.
  • 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.
Rückgabewert:
  • Bei Erfolg ein JSON-Objekt, das die Tokenaccountübersicht enthält.
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"
      }
   ]
getAccountDetailsByUser
Ursprünglicher Methodenname: getAccountDetailsByUser
Diese GET-Methode gibt eine Kontenübersicht für einen angegebenen Benutzer und Details zu fungiblen und nicht fungiblen Token zurück, die dem Benutzer zugeordnet sind. Diese Methode kann nur von einem Token Admin des Chaincodes oder dem Account Owner des Accounts aufgerufen werden.
Abfrage:
/getAccountDetailsByUser?orgId={{bc-org-id}}&userId={{bc-user-id}}
Parameter:
  • orgId: string - Die Mitgliedschaftsserviceanbieter-ID (MSP) des Benutzers in der aktuellen Organisation.
  • userId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
Rückgabewert:
  • Bei Erfolg ein JSON-Accountobjekt, das eine Zusammenfassung für den angegebenen Benutzer und Details zu fungiblen und nicht fungiblen Token enthält, die dem Benutzer zugeordnet sind. Bei partiellen nicht fungiblen Token zeigt die Eigenschaft tokenShare im Abschnitt associatedNFTs den Anteil an, für den der Benutzer verantwortlich ist.
Beispiel für einen Rückgabewert:
{
    "userAccountId": "ouaccount~412de5e3998dcd100973e1bad6e8729fddc1c7ff610beab8376d733a35c51f38",
    "associatedFTAccounts": [
        {
            "accountId": "oaccount~21206f309941a2a23c4f158a0fe1b8f12bb8e2b0c9a2e1358f5efebc0c7d410e",
            "tokenId": "FT",
            "balance": 50
        }
    ],
    "associatedNFTAccount": {
        "accountId": "oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371",
        "associatedNFTs": [
            {
                "nftTokenId": "FNFT",
                "tokenShare": 100
            },
            {
                "nftTokenId": "FNFT2",
                "tokenShare": 110
            },
            {
                "nftTokenId": "NFT"
            }
        ]
    }
}
getAccountStatus
Ursprünglicher Methodenname: getAccountStatus
Diese GET-Methode ruft den aktuellen Status des Tokenaccounts ab. Diese Methode kann vom Token Admin des Chaincodes oder vom Eigentümer des Tokenaccounts aufgerufen werden.
Abfrage:
/getAccountStatus?orgId={{bc-org-id}}&userId={{bc-user-id}}
Parameter:
  • orgId: string - Die Mitgliedschaftsserviceanbieter-ID (MSP) des Benutzers in der aktuellen Organisation.
  • userId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
Rückgabewert:
  • Bei Erfolg eine JSON-Darstellung des Tokenaccountstatus.
Beispiel für einen Rückgabewert:
{
    "assetType": "oaccountStatus",
    "statusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
    "accountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
    "status": "active"
}
getAccountStatusHistory
Ursprünglicher Methodenname: getAccountStatusHistory
Diese GET-Methode ruft die Historie des Kontostatus ab. Diese Methode kann vom Token Admin des Chaincodes oder vom Eigentümer des Tokenaccounts aufgerufen werden.
Abfrage:
/getAccountStatusHistory?orgId={{bc-org-id}}&userId={{bc-user-id}}
Parameter:
  • orgId: string - Die Mitgliedschaftsserviceanbieter-ID (MSP) des Benutzers in der aktuellen Organisation.
  • userId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
Rückgabewert:
  • Bei Erfolg die Kontostatushistorie im JSON-Format.
Beispiel für einen Rückgabewert:
[
  {
    "trxId": "d5c6d6f601257ba9b6edaf5b7660f00adc13c37d5321b8f7d3a35afab2e93e63",
    "timeStamp": "2022-12-02T10:39:14.000Z",
    "value": {
      "assetType": "oaccountStatus",
      "statusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
      "accountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
      "status": "suspended"
    }
  },
  {
    "trxId": "e6c850cfa084dc20ad95fb2bb8165eef3a3bd62a0ac867cccee57c2003125183",
    "timeStamp": "2022-12-02T10:37:50.000Z",
    "value": {
      "assetType": "oaccountStatus",
      "statusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
      "accountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
      "status": "active"
    }
  }
]
getAccountTransactionHistory
Ursprünglicher Methodenname: getAccountTransactionHistory
Diese GET-Methode gibt die Kontotransaktionshistorie zurück. Diese Methode kann nur von einem Token Admin des Chaincodes oder vom Accounteigentümer aufgerufen werden.
/getAccountTransactionHistory?orgId={{bc-org-id}}&userId={{bc-user-id}}
Parameter:
  • orgId: string - Die Mitgliedschaftsserviceanbieter-ID (MSP) des Benutzers in der aktuellen Organisation.
  • userId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
Beispiel für einen Rückgabewert:
[
    {
        "transactionId": "otransaction~3a6b23c3003626f3947e990eddbd7ac23398d2200e2eb3eac745e6ddfae140bc~7c88c736df38d5622512f1e8dcdd50710eb47c953f1ecb24ac44790a9e2f475b",
        "timestamp": "2023-06-06T14:48:08.000Z",
        "tokenId": "FNFT",
        "transactedAmount": 10,
        "triggeredByUserAccountId": "ouaccount~412de5e3998dcd100973e1bad6e8729fddc1c7ff610beab8376d733a35c51f38",
        "transactedAccount": "oaccount~dcee860665db8740cb77b846e823752185a1e9a185814d0acb305890f5903446",
        "transactionType": "DEBIT",
        "balance": 90
    },
    {
        "transactionId": "otransaction~3a6b23c3003626f3947e990eddbd7ac23398d2200e2eb3eac745e6ddfae140bc~178e3730bc5bee50d02f1464a4eebf733a051905f651e5789039adb4a3edc114",
        "timestamp": "2023-06-06T14:48:08.000Z",
        "tokenId": "NFT",
        "triggeredByUserAccountId": "ouaccount~412de5e3998dcd100973e1bad6e8729fddc1c7ff610beab8376d733a35c51f38",
        "transactedAccount": "oaccount~dcee860665db8740cb77b846e823752185a1e9a185814d0acb305890f5903446",
        "transactionType": "DEBIT"
    },
    {
        "transactionId": "otransaction~c369929e28e78de06c72d020f1418c9a154a7dd280b2e22ebb4ea4485e249124~a7cefb22ff39ee7e36967be71de27da6798548c872061a62dabc56d88d50b930",
        "timestamp": "2023-06-06T14:47:08.000Z",
        "tokenId": "NFT",
        "triggeredByUserAccountId": "ouaccount~412de5e3998dcd100973e1bad6e8729fddc1c7ff610beab8376d733a35c51f38",
        "transactedAccount": "oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371",
        "transactionType": "MINT"
    },
    {
        "transactionId": "otransaction~114a1bc78d04be48ee6dc140c32c042ee9481cb118959626f090eec744522422~e4eb15d9354f694230df8835ade012100d82aa43672896a2c7125a86e3048f9f",
        "timestamp": "2023-06-05T17:17:57.000Z",
        "tokenId": "FNFT",
        "transactedAmount": 100,
        "triggeredByUserAccountId": "ouaccount~412de5e3998dcd100973e1bad6e8729fddc1c7ff610beab8376d733a35c51f38",
        "transactedAccount": "oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371",
        "transactionType": "MINT",
        "balance": 100
    }
]
getAccountsByRole
Ursprünglicher Methodenname: getAccountsByRole
Diese GET-Methode gibt eine Liste aller Konto-IDs für eine angegebene Rolle und ein bestimmtes Token zurück.
Abfrage:
/getAccountsByRole?role=role value (for example minter / burner)&tokenDetail={"tokenName":"tokenName value"}
Parameter:
  • role: string: Der Name der Rolle, nach der gesucht werden soll.
  • tokenDetail: JSON: Bei fungiblen Token die Token-ID. Für nicht fungible Token ist der Tokenname erforderlich.
Beispiel für einen Rückgabewert:
{
  "accounts": [
    "oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a",
    "oaccount~60bb20c14a83f6e426e1437c479c5891e1c6477dfd7ad18b73acac5d80bc504b"
  ]
}
getAllAccounts
Ursprünglicher Methodenname: getAllAccounts
Diese GET-Methode gibt Details aller Benutzerkonten zurück. Diese Methode kann nur von einem Token Admin des Chaincodes aufgerufen werden.
Abfrage:
/getAllAccounts
Parameter:
  • Kein
Rückgabewert:
  • Bei Erfolg ein JSON-Array aller Konten.
Beispiel für einen Rückgabewert:
[
        {
            "assetType": "ouaccount",
            "accountId": "ouaccount~412de5e3998dcd100973e1bad6e8729fddc1c7ff610beab8376d733a35c51f38",
            "userId": "user2",
            "orgId": "appdev",
            "totalAccounts": 2,
            "totalFtAccounts": 1,
            "associatedFtAccounts": [
                {
                    "accountId": "oaccount~21206f309941a2a23c4f158a0fe1b8f12bb8e2b0c9a2e1358f5efebc0c7d410e",
                    "tokenId": "loy1"
                }
            ],
            "associatedNftAccount": "oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371"
        },
        {
            "assetType": "ouaccount",
            "accountId": "ouaccount~9501bb774c156eb8354dfe489250ea91f757523d70f08ee494bda98bb352003b",
            "userId": "user1_minter",
            "orgId": "appdev",
            "totalAccounts": 2,
            "totalFtAccounts": 1,
            "associatedFtAccounts": [
                {
                    "accountId": "oaccount~1089ee5122f367ee0ca38c6660298f4b81f199627e4f67f3691c0f628237974c",
                    "tokenId": "loy1"
                }
            ],
            "associatedNftAccount": "oaccount~dcee860665db8740cb77b846e823752185a1e9a185814d0acb305890f5903446"
        },
    ]
getAllTokenAdmins
Ursprünglicher Methodenname: getAllTokenAdmins
Diese GET-Methode gibt eine Liste aller Benutzer zurück, die ein Token Admin des Chaincodes sind. Diese Methode kann nur von einem Token Admin des Chaincodes aufgerufen werden.
Abfrage:
/getAllTokenAdmins
Parameter:
  • Kein
Rückgabewert:
  • Bei Erfolg ein admins-Array im JSON-Format, das orgId- und userId-Objekte enthält.
Beispiel für einen Rückgabewert:
{
  "admins": [
    {
      "orgId": "appdev",
      "userId": "user2"
    },
    {
      "orgId": "appdev",
      "userId": "user1"
    }
  ]
}
getAllTokens
Ursprünglicher Methodenname: getAllTokens
Diese Methode gibt alle Tokenassets zurück, die in der Statusdatenbank gespeichert sind. Diese Methode kann nur von einem Token Admin des Chaincodes aufgerufen werden. Diese Methode verwendet SQL-Rich-Abfragen der Berkeley-DB und kann nur aufgerufen werden, wenn eine Verbindung zum Remote-Oracle Blockchain Platform-Netzwerk besteht.
/getAllTokens
Parameter:
  • Kein
Rückgabewert:
  • Eine Liste aller Tokenassets im JSON-Format.
Beispiel für einen Rückgabewert:
[{
            "tokenMetadata": {
                "ISIN": "ISIN value",
                "Segment": "Segment value",
                "Issuer": "Issuer value",
                "FaceValue": 999,
                "IssueSize": 999,
                "CouponRate": 999,
                "InterestPaymentType": "simple",
                "InterestFrequency": "monthly",
                "IssueDate": "2023-03-28T15:16:36.000Z",
                "MaturityDate": "2023-03-28T15:16:36.000Z"
            },
            "assetType": "otoken",
            "events": false,
            "tokenId": "token2",
            "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": 10,
            "createdBy": "oaccount~85dfd98d1b99e5b8891e0a0fdcd7d2e07fc5d37958f5d2a5796290b6a9204a43",
            "creationDate": "2024-12-03T12:07:24.000Z",
            "divisible": {
                "decimal": 0
            },
            "isBurned": false,
            "isLocked": false,
            "tokenUri": "tokenUri value",
            "status": "status value"
}]
getAllTokensByUser
Ursprünglicher Methodenname: getAllTokensByUser
Diese GET-Methode gibt alle Tokenassets zurück, deren Eigentümer ein bestimmter Benutzer ist. Diese Methode verwendet SQL-Rich-Abfragen der Berkeley-DB und kann nur aufgerufen werden, wenn eine Verbindung zum Remote-Oracle Blockchain Platform-Netzwerk besteht. Diese Methode kann nur von einem Token Admin des Chaincodes oder vom Accounteigentümer aufgerufen werden.
Abfrage:
/getAllTokensByUser?orgId={{bc-org-id}}&userId={{bc-user-id}}
Parameter:
  • orgId: string - Die Mitgliedschaftsserviceanbieter-ID (MSP) des Benutzers in der aktuellen Organisation.
  • userId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
Beispiel für einen Rückgabewert:
[{
            "tokenMetadata": {
                "ISIN": "ISIN value",
                "Segment": "Segment value",
                "Issuer": "Issuer value",
                "FaceValue": 999,
                "IssueSize": 999,
                "CouponRate": 999,
                "InterestPaymentType": "simple",
                "InterestFrequency": "monthly",
                "IssueDate": "2023-03-28T15:16:36.000Z",
                "MaturityDate": "2023-03-28T15:16:36.000Z"
            },
            "assetType": "otoken",
            "events": false,
            "tokenId": "token2",
            "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": 10,
            "createdBy": "oaccount~85dfd98d1b99e5b8891e0a0fdcd7d2e07fc5d37958f5d2a5796290b6a9204a43",
            "creationDate": "2024-12-03T12:07:24.000Z",
            "divisible": {
                "decimal": 0
            },
            "isBurned": false,
            "isLocked": false,
            "tokenUri": "tokenUri value",
            "status": "status value"
}]
getAllTokensWithFilters
Ursprünglicher Methodenname: getAllTokensWithFilters
Der Administrator kann diese GET-Methode aufrufen, um alle nach Status gefilterten Token abzurufen.
Abfrage:
/getAllTokensWithFilters?status=status&pageSize=pageSize&bookmark=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
Ursprünglicher Methodenname: getTokenApprovalRequestByUser
Jeder Kontoinhaber kann diese GET-Methode aufrufen, um die Details aller Tokengenehmigungsanforderungen (Einlösungsanforderungen) abzurufen, die er gestellt hat.
Abfrage:
/getTokenApprovalRequestByUser?status=status value
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
Ursprünglicher Methodenname: getTokenApprovalRequestByUser
Jeder Kontoinhaber kann diese GET-Methode aufrufen, um die Details aller Tokengenehmigungsanforderungen (Einlösungsanforderungen) abzurufen, die er gestellt hat.
Abfrage:
/getTokenApprovalRequestForUserByStatus?status=status value
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
   }
]
getTokenById
Ursprünglicher Methodenname: getTokenById
Diese GET-Methode gibt ein Tokenobjekt zurück, wenn das Token in der Statusdatenbank vorhanden ist. Bei NFTs mit Bruchteilen wird auch die Liste der Eigentümer zurückgegeben. Diese Methode kann nur von einem Token Admin des Chaincodes oder des Tokeneigentümers aufgerufen werden.
Abfrage:
/getTokenById?tokenId={{bc-token-id}}
Parameter:
  • tokenId: string: Die ID des abzurufenden Tokens.
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"
         }

]
getTokenHistory
Ursprünglicher Methodenname: getTokenHistory
Diese GET-Methode gibt die Historie für eine angegebene Token-ID zurück.
Abfrage:
/getTokenHistory?tokenId={{bc-token-id}}
Parameter:
  • tokenId: string: Die ID des Tokens.
Rückgabewert:
  • Bei Erfolg ein JSON-Array, das die Tokenhistorie enthält.
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"
         }

]
getUsersByRole
Ursprünglicher Methodenname: getUsersByRole
Diese Methode gibt eine Liste aller Benutzer für eine angegebene Rolle und ein bestimmtes Token zurück. Diese Methode kann nur von einem Token Admin des Chaincodes aufgerufen werden.
Abfrage:
/getUsersByRole?role=role value (for example minter / burner)&tokenDetail={"tokenName":"tokenName value"}
Parameter:
  • role: string: Der Name der Rolle, nach der gesucht werden soll.
  • tokenDetail: JSON: Bei fungiblen Token die Token-ID. Für nicht fungible Token ist der Tokenname erforderlich.
Beispiel für einen Rückgabewert:
{
    "users": [
        {
            "accountId": "oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a",
            "orgId": "appdev",
            "userId": "user2"
        },
        {
            "accountId": "oaccount~60bb20c14a83f6e426e1437c479c5891e1c6477dfd7ad18b73acac5d80bc504b",
            "orgId": "appdev",
            "userId": "user1"
        }
    ]
}
init
Ursprünglicher Methodenname: init
Diese POST-Methode wird aufgerufen, wenn der Chaincode instanziiert wird. Jede Token Admin wird durch die Informationen userId und orgId im Parameter adminList identifiziert. userId ist der Benutzername oder die E-Mail-ID des Instanzeigentümers oder des Benutzers, der bei der Instanz angemeldet ist. orgId ist die Mitgliedschaftsserviceprovider-(MSP-)ID des Benutzers in der aktuellen Netzwerkorganisation. Der Parameter adminList ist erforderlich, wenn Sie den Chaincode zum ersten Mal bereitstellen. Wenn Sie ein Upgrade des Chaincodes durchführen, übergeben Sie eine leere Liste ([]). Wenn Sie der Benutzer sind, der den Chaincode ursprünglich bereitgestellt hat, können Sie beim Upgrade des Chaincodes auch neue Admins im Parameter adminList angeben. Alle anderen Informationen im Parameter adminList werden bei Upgrades ignoriert.
Payload:
{
 "adminList": "[{\"orgId\":\"{{bc-org-id}}\",\"userId\":\"{{bc-user-id}}\"}]"
}
Parameter:
  • adminList array: Ein Array mit {orgId, userId}-Informationen, das die Liste der Tokenadministratoren angibt. Das Array adminList ist ein obligatorischer Parameter.
Rückgabewert:
  • Bei Erfolg eine Meldung ohne Payload.
Beispiel für einen Rückgabewert:
{
}
isInRole
Ursprünglicher Methodenname: isInRole
Diese GET-Methode gibt einen booleschen Wert zurück, um anzugeben, ob ein Benutzer über eine angegebene Rolle verfügt. Nicht fungible Token werden durch den Tokennamen angegeben. Diese Methode kann nur von einem Token Admin des Chaincodes oder dem Account Owner des Accounts aufgerufen werden. Der angegebene Benutzer muss über ein Tokenkonto verfügen, das mit dem fungiblen Token verknüpft ist, oder über ein nicht fungibles Tokenkonto für NFT-Rollen. Die angegebene Rolle muss in der Spezifikationsdatei für das Token vorhanden sein.
Abfrage:
/isInRole?orgId={{bc-org-id}}&userId={{bc-user-id}}&role=role value (for example minter / burner)&tokenDetail={"tokenName":"tokenName value"}
Parameter:
  • orgId: string - Die Mitgliedschaftsserviceanbieter-ID (MSP) des Benutzers in der aktuellen Organisation.
  • userId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
  • role: string: Der Name der Rolle, nach der gesucht werden soll.
  • tokenDetails: TokenDetail: Die Details, die das Token angeben. Verwenden Sie für nicht fungible Token das folgende Format:
    {"tokenName":"artCollection"}
Beispiel für einen Rückgabewert:
{
    "result": true,
    "msg": "Account Id oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a (Org-Id: appdev, User-Id: idcqa) has minter role"
}
isTokenAdmin
Ursprünglicher Methodenname: isTokenAdmin
Diese GET-Methode gibt den booleschen Wert true zurück, wenn der Aufrufer der Funktion ein Token Admin ist. Andernfalls wird false zurückgegeben. Diese Methode kann nur von einem Token Admin des Chaincodes aufgerufen werden.
/isTokenAdmin?orgId={{bc-org-id}}&userId={{bc-user-id}}
Parameter:
  • orgId: string - Die Mitgliedschaftsserviceanbieter-ID (MSP) des Benutzers in der aktuellen Organisation.
  • userId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
Rückgabewert:
  • Die Methode gibt true zurück, wenn der Aufrufer ein Token Admin ist. Andernfalls wird false zurückgegeben.
Beispiel für einen Rückgabewert:
{"result": true}
mintBatch
Ursprünglicher Methodenname: mintBatch
Diese POST-Methode erstellt (mindert) mehrere Token in einem Batchvorgang. Diese Methode erstellt nur fungible Token oder fraktionierte nicht fungible Token.

Wenn für fungible Token die Minter-Rolle in der Spezifikationsdatei definiert ist, kann jeder Benutzer mit der Minter-Rolle diese Methode aufrufen. Wenn nicht, kann jeder Benutzer diese Methode verwenden, um Token zu mintieren. Sie können nicht mehr als die Eigenschaft max_mint_quantity des Tokens mintieren, wenn diese Eigenschaft beim Erstellen oder Aktualisieren des Tokens angegeben wurde.

Wenn für nicht fungible Token die Minter-Rolle in der Spezifikationsdatei definiert ist, kann jeder Benutzer mit der Minter-Rolle diese Methode aufrufen. Wenn nicht, kann jeder Benutzer diese Methode verwenden, um Token zu mintieren. Darüber hinaus muss der Aufrufer auch der Ersteller des Tokens sein. Es gibt keine Obergrenze für die Menge an fraktionierten nicht fungiblen Token, die geprägt werden können.

Sie können diese Methode nicht verwenden, um ein ganzes nicht fungibles Token zu prägen.

Payload:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "tokenIds": "[\"{{bc-token-id}}\"]",
 "quantity": "[quantity value]",
 "sameOrgEndorser": true
}
Parameter:
  • orgId: string - Die Mitgliedschaftsserviceanbieter-ID (MSP) des Benutzers in der aktuellen Organisation.
  • userId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
  • tokenIds: string[]: Die Liste der Token-IDs, für die Token geprägt werden sollen.
  • quantity: number[]: Die Liste der Mengen der zu prägenden Token, die dem Token-ID-Array entsprechen.
Rückgabewert:
  • Bei Erfolg ein JSON-Objekt, das Details zu den geprägten Token enthält.
Beispiel für einen Rückgabewert:
{
    "msg": "Successfully minted batch of tokens for User-Account-Id ouaccount~412de5e3998dcd100973e1bad6e8729fddc1c7ff610beab8376d733a35c51f38 (Org-Id: appdev, User-Id: idcqa).",
    "details": [
        {
            "msg": "Successfully minted 100 tokens of fractional tokenId: plot55 to Org-Id: appdev, User-Id: idcqa"
        },
        {
            "msg": "Successfully minted 100 tokens of tokenId: loyalty to Token-Account-Id oaccount~21206f309941a2a23c4f158a0fe1b8f12bb8e2b0c9a2e1358f5efebc0c7d410e"
        }
    ]
}
ownerOf
Ursprünglicher Methodenname: ownerOf
Diese GET-Methode gibt die Konto-ID, Organisations-ID und Benutzer-ID des Eigentümers der angegebenen Token-ID zurück. Jeder kann diese Methode nennen.
Abfrage:
/ownerOf?tokenId={{bc-token-id}}
Parameter:
  • tokenId: string: Die ID des Tokens.
Beispiel für einen Rückgabewert:
[
    {
        "accountId": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d",
        "orgId": "Org1MSP",
        "userId": "admin"
    },
    {
        "accountId": "oaccount~74108eca702bab6d8548e740254f2cc7955d886885251d52d065042172a59db0",
        "orgId": "Org1MSP",
        "userId": "user"
    }
]
payInterest
Ursprünglicher Methodenname: ownerOf
Diese POST-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.
Payload:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "tokenId": "{{bc-token-id}}",
 "orderId": "orderId value",
 "CBDCTokenId": "CBDCTokenId value",
 "CBDCFromOrgId": "CBDCFromOrgId value",
 "CBDCFromUserId": "CBDCFromUserId value",
 "CBDCQuantity": 0,
 "CBDCRemark": "{\\\"category\\\":\\\"category value\\\",\\\"description\\\":\\\"description value\\\"}",
 "endorsers": {{endorsers}}
}
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 Auftrags-ID für den Vorgang.
  • CBDCTokenId: string: Die ID des Tokens im CBDC-Kettencode.
  • CBDCOrgId: string: Die MSP-ID des Benutzers im CBDC-Kettencode.
  • CBDCUserId: string: Der Benutzername oder die E-Mail-ID des Benutzers im CBDC-Kettencode.
  • CBDCQuantity: string - Die Menge der Token, die im CBDC-Kettencode übertragen werden sollen.
  • CBDCRemark: string – Eine Bemerkung für die Übertragung im CBDC-Kettencode, der im zuvor gezeigten Format vorliegen muss.
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"
   }
}
postBondToken
Ursprünglicher Methodenname: postBondToken
Diese POST-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.
Payload:
{
 "tokenId": "{{bc-token-id}}",
 "sameOrgEndorser": true
}
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"
      }
purchaseBondToken
Ursprünglicher Methodenname: purchaseBondToken
Diese POST-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.
Payload:
{
 "tokenId": "{{bc-token-id}}",
 "quantity": 1,
 "orderId": "orderId value",
 "additionalFees": 1,
 "CBDCTokenId": "CBDCTokenId value",
 "CBDCFromOrgId": "CBDCFromOrgId value",
 "CBDCFromUserId": "CBDCFromUserId value",
 "CBDCQuantity": 0,
 "CBDCRemark": "{\\\"category\\\":\\\"category value\\\",\\\"description\\\":\\\"description value\\\"}",
 "endorsers": {{endorsers}}
}
Parameter:
  • tokenId: string: Die ID des zu kaufenden Tokens.
  • orgId: string – Die Mitgliedschaftsdienstleister-ID (MSP) des Benutzers.
  • userId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
  • settlementId: string: Die Abwicklungs-ID für den Vorgang.
  • CBDCTokenId: string: Die ID des Tokens im CBDC-Kettencode.
  • CBDCOrgId: string: Die MSP-ID des Benutzers im CBDC-Kettencode.
  • CBDCUserId: string: Der Benutzername oder die E-Mail-ID des Benutzers im CBDC-Kettencode.
  • CBDCQuantity: string - Die Menge der Token, die im CBDC-Kettencode übertragen werden sollen.
  • CBDCRemark: string – Eine Bemerkung für die Übertragung im CBDC-Kettencode, der im zuvor gezeigten Format vorliegen muss.
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"
   }
}
rejectBondRedemption
Ursprünglicher Methodenname: rejectBondRedemption
Der Tokenersteller kann diese POST-Methode aufrufen, um die Einlösungsanforderung abzulehnen. Tokenverantwortliche können eine Einlösungsanforderung mit einer anderen Abrechnungs-ID erneut auslösen.
Payload:
{
 "fromOrgId": "fromOrgId value",
 "fromUserId": "fromUserId value",
 "settlementId": "settlementId value",
 "tokenId": "{{bc-token-id}}",
 "endorsers": {{endorsers}}
}
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"
}
removeRole
Ursprünglicher Methodenname: removeRole
Diese POST-Methode entfernt eine Rolle aus einem angegebenen Benutzer und Token. Fungible Token werden durch die Token-ID angegeben. Nicht fungible Token werden durch den Tokennamen angegeben. Diese Methode kann nur von einem Token Admin des Chaincodes aufgerufen werden.
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "role": "role value (for example minter / burner)",
 "tokenDetail": "{\"tokenName\":\"tokenName value\"}",
 "endorsers": {{endorsers}}
}
Parameter:
  • orgId: string - Die Mitgliedschaftsserviceanbieter-ID (MSP) des Benutzers in der aktuellen Organisation.
  • userId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
  • role: string: Der Name der Rolle, die vom angegebenen Benutzer entfernt werden soll.
  • tokenDetails: TokenDetail: Die Details, die das Token angeben. Verwenden Sie für nicht fungible Token das folgende Format:
    {"tokenName":"artCollection"}
Beispiel für einen Rückgabewert:
{
  "msg": "Successfully removed role 'minter' from Account Id: oaccount~60bb20c14a83f6e426e1437c479c5891e1c6477dfd7ad18b73acac5d80bc504b (Org-Id: appdev, User-Id: user1)"
}
removeTokenAdmin
Ursprünglicher Methodenname: removeTokenAdmin
Diese POST-Methode entfernt einen Benutzer als Token Admin des Chaincodes. Diese Methode kann nur von einem Token Admin des Chaincodes aufgerufen werden. Sie können sich nicht selbst als Token Admin entfernen.
Payload:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "sameOrgEndorser": true
}
Parameter:
  • orgId: string - Die Mitgliedschaftsserviceanbieter-ID (MSP) des Benutzers in der aktuellen Organisation.
  • userId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
Rückgabewert:
  • Bei erfolgreicher Ausführung eine Meldung mit Details des Benutzers, der als Token Admin des Chaincodes entfernt wurde.
Beispiel für einen Rückgabewert:
{"msg": "Successfully removed Admin (OrgId: appDev, UserId: user1)"}
requestBondRedemption
Ursprünglicher Methodenname: requestBondRedemption
Diese POST-Methode kann nur vom Token-Eigentümer aufgerufen werden, um eine Anforderung zur Einlösung von Anleihetoken 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.
Payload:
{
 "settlementId": "settlementId value",
 "tokenId": "{{bc-token-id}}",
 "orderId": "orderId value",
 "additionalFees": 1,
 "endorsers": {{endorsers}}
}
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

}
safeBatchTransferFrom
Ursprünglicher Methodenname: safeBatchTransferFrom
Diese POST-Methode schließt einen Batchvorgang ab, bei dem Token, die in einer Liste mit Token-IDs angegeben sind, von einem Benutzer an einen anderen Benutzer übertragen werden.

Bei NFTs muss der Absender des NFT das Token besitzen, da die Methode das Eigentum an dem NFT überträgt.

Bei teilweisen NFTs verliert ein Benutzer (einschließlich des Erstellers des Tokens) alle Aktien, die er besitzt, das Eigentum an dem Token. Wenn ein Teil eines Tokens an einen Benutzer übertragen wird, wird dieser Benutzer automatisch zu einem Eigentümer des partiellen NFT.

Der Aufrufer der Methode muss der angegebene Absender sein.

{
 "fromOrgId": "fromOrgId value",
 "fromUserId": "fromUserId value",
 "toOrgId": "toOrgId value",
 "toUserId": "toUserId value",
 "tokenIds": "[\"{{bc-token-id}}\"]",
 "quantity": "[quantity value]",
 "endorsers": {{endorsers}}
}
Parameter:
  • fromOrgId: string: Die Mitgliedschaftsserviceprovider-(MSP-)ID des Absenders und Tokeneigentümers in der aktuellen Organisation.
  • fromUserId: string: Der Benutzername oder die E-Mail-ID des Absenders und Tokeneigentümers.
  • toOrgId: string: Die Mitgliedschaftsdienstleister-ID (MSP) des Empfängers in der aktuellen Organisation.
  • toUserId: string: Der Benutzername oder die E-Mail-ID des Empfängers.
  • tokenIds: string[]: Eine Liste der Token-IDs für die zu übertragenden Token.
  • quantity: number[]: Die Liste der zu übertragenden Tokenmengen entsprechend dem Token-ID-Array.
Rückgabewert:
  • Bei erfolgreicher Ausführung wird eine Nachricht mit Details für jede Tokentransfer angezeigt.
Beispiel für einen Rückgabewert:
[
    {
        "msg": "Successfully transferred NFT token: 'FNFT' of '10' quantity from Account-Id: oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371 (Org-Id: appdev, User-Id: idcqa) to Account-Id: oaccount~dcee860665db8740cb77b846e823752185a1e9a185814d0acb305890f5903446 (Org-Id: appdev, User-Id: user1_minter)"
    },
    {
        "msg": "Successfully transferred 10 FT token: 'FT' from Account-Id: oaccount~21206f309941a2a23c4f158a0fe1b8f12bb8e2b0c9a2e1358f5efebc0c7d410e (Org-Id: appdev, User-Id: idcqa) to Account-Id: oaccount~1089ee5122f367ee0ca38c6660298f4b81f199627e4f67f3691c0f628237974c (Org-Id: appdev, User-Id: user1_minter)"
    },
    {
        "msg": "Successfully transferred NFT token: 'NFT' from Account-Id: oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371 (Org-Id: appdev, User-Id: idcqa) to Account-Id: oaccount~dcee860665db8740cb77b846e823752185a1e9a185814d0acb305890f5903446 (Org-Id: appdev, User-Id: user1_minter)"
    }
]
suspendAccount
Ursprünglicher Methodenname: suspendAccount
Diese POST-Methode setzt ein Token-Konto aus. Diese Methode kann nur von einem Token Admin des Chaincodes aufgerufen werden. Nachdem ein Konto gesperrt wurde, können Sie keine Vorgänge abschließen, die das Konto aktualisieren. Ein gelöschtes Konto kann nicht ausgesetzt werden.
Payload:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "endorsers": {{endorsers}}
}
Parameter:
  • orgId: string - Die Mitgliedschaftsserviceanbieter-ID (MSP) des Benutzers in der aktuellen Organisation.
  • userId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
Rückgabewert:
  • Bei Erfolg eine JSON-Darstellung des Tokenaccountstatus.
Beispiel für einen Rückgabewert:
{
    "assetType": "oaccountStatus",
    "statusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
    "accountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
    "status": "suspended"
}
updateBondToken
Ursprünglicher Methodenname: updateBondToken
Diese POST-Methode aktualisiert Token. Jedes definierte Token verfügt über eine eigene Aktualisierungsmethode. Sie können keine Tokenmetadaten oder die Token-URI von nicht fungiblen Token aktualisieren. Diese Methode kann nur vom Token-Eigentümer aufgerufen werden.
Payload:
{
 "tokenAsset": "{\"tokenId\":\"{{bc-token-id}}\",\"tokenDesc\":\"tokenDesc value\",\"tokenUri\":\"tokenUri value\",\"status\":\"status value\", \"tokenMetadata\":{\"ISIN\":\"ISIN value\",\"Segment\":\"Segment value\",\"Issuer\":\"Issuer value\",\"FaceValue\":999,\"IssueSize\":999,\"CouponRate\":999,\"InterestPaymentType\":\"InterestPaymentType value\",\"InterestFrequency\":\"InterestFrequency value\",\"IssueDate\":\"2023-03-28T15:16:36+00:00\",\"MaturityDate\":\"2023-03-28T15:16:36+00:00\"},\"status\":\"status value\"}",
 "sameOrgEndorser": true
}
Parameter:
  • tokenAsset: <Token Class>: Das Tokenasset. Die Eigenschaften des Assets werden in der Modelldatei definiert.
Rückgabewert:
  • Bei Erfolg das aktualisierte Tokenasset im JSON-Format.
Beispiel für Rückgabewert (ganzer NFT)
{
            "tokenMetadata": {
                "ISIN": "ISIN value",
                "Segment": "Segment value",
                "Issuer": "Issuer value",
                "FaceValue": 999,
                "IssueSize": 999,
                "CouponRate": 999,
                "InterestPaymentType": "simple",
                "InterestFrequency": "monthly",
                "IssueDate": "2023-03-28T15:16:36.000Z",
                "MaturityDate": "2023-03-28T15:16:36.000Z"
            },
            "assetType": "otoken",
            "events": false,
            "tokenId": "token2",
            "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": 10,
            "createdBy": "oaccount~85dfd98d1b99e5b8891e0a0fdcd7d2e07fc5d37958f5d2a5796290b6a9204a43",
            "creationDate": "2024-12-03T12:07:24.000Z",
            "divisible": {
                "decimal": 0
            },
            "isBurned": false,
            "isLocked": false,
            "tokenUri": "tokenUri value",
            "status": "created"
}
URI
Ursprünglicher Methodenname: URI
Diese Methode gibt die URI eines angegebenen Tokens zurück.
Abfrage:
/URI?tokenId={{bc-token-id}}
Parameter:
  • tokenId: string: Die ID des Tokens.
Beispiel für einen Rückgabewert:
{
    "tokenUri": "example.com"
}
Die folgende Tabelle zeigt die Zuordnung zwischen den Chaincode-API-Namen und den aktualisierten Endpunkten. Ausführliche Informationen zur Chaincode-API finden Sie unter Scaffolded TypeScript Token Project in Blockchain App Builder for Oracle Blockchain Platform.
Endpunkt aktualisiert TypeScript Chaincode-API-Name Go Chaincode-API-Name Methodentyp
activateAccount activateAccount ActivateAccount Native ERC-1155-Methode
addAdmin addAdmin AddAdmin Native ERC-1155-Methode
addRole addRole AddRole Native ERC-1155-Methode
approveBondRedemption approveTokenRedemption ApproveTokenRedemption Geändert
balanceOfBatch balanceOfBatch BalanceOfBatch Native ERC-1155-Methode
batchTransferFrom batchTransferFrom BatchTransferFrom Native ERC-1155-Methode
burnBatch burnBatch BurnBatch Native ERC-1155-Methode
createAccount createAccount CreateAccount Native ERC-1155-Methode
createAccountWithEnrollment createAccountWithEnrollment CreateAccountWithEnrollment Hinzugefügt
createBondToken createBondToken CreateBondToken Native ERC-1155-Methode
createIDCSUser createIDCSUser CreateIDCSUser Hinzugefügt
createTokenAccount createTokenAccount CreateTokenAccount Native ERC-1155-Methode
createUserAccount createUserAccount CreateUserAccount Native ERC-1155-Methode
deleteAccount deleteAccount DeleteAccount Native ERC-1155-Methode
getAccount getAccount GetAccount Native ERC-1155-Methode
getAccountBondSummary getAccountBondSummary GetAccountBondSummary Bond Marketplace-Methode
getAccountBondSummaryWithPagination getAccountBondSummaryWithPagination GetAccountBondSummaryWithPagination Bond Marketplace-Methode
getAccountDetailsByUser getAccountDetailsByUser GetAccountDetailsByUser Native ERC-1155-Methode
getAccountStatus getAccountStatus GetAccountStatus Native ERC-1155-Methode
getAccountStatusHistory getAccountStatusHistory GetAccountStatusHistory Native ERC-1155-Methode
getAccountTransactionHistory getAccountTransactionHistory GetAccountTransactionHistory Native ERC-1155-Methode
getAccountsByRole getAccountsByRole GetAccountsByRole Native ERC-1155-Methode
getAllAccounts getAllAccounts GetAllAccounts Native ERC-1155-Methode
getAllTokenAdmins getAllTokenAdmins GetAllTokenAdmins Native ERC-1155-Methode
getAllTokens getAllTokens GetAllTokens Native ERC-1155-Methode
getAllTokensByUser getAllTokensByUser GetAllTokensByUser Native ERC-1155-Methode
getAllTokensWithFilters getAllTokensWithFilters GetAllTokensWithFilters Bond Marketplace-Methode
getTokenApprovalRequestByUser getTokenApprovalRequestByUser GetTokenApprovalRequestByUser Bond Marketplace-Methode
getTokenApprovalRequestForUserByStatus getTokenApprovalRequestForUserByStatus GetTokenApprovalRequestForUserByStatus Bond Marketplace-Methode
getTokenById getTokenById GetTokenById Native ERC-1155-Methode
getTokenHistory getTokenHistory GetTokenHistory Native ERC-1155-Methode
getUsersByRole getUsersByRole GetUsersByRole Native ERC-1155-Methode
init init Init Native ERC-1155-Methode
isInRole isInRole IsInRole Native ERC-1155-Methode
isTokenAdmin isTokenAdmin IsTokenAdmin Native ERC-1155-Methode
mintBatch mintBatch MintBatch Native ERC-1155-Methode
ownerOf ownerOf OwnerOf Native ERC-1155-Methode
payInterest payInterest PayInterest Geändert
postBondToken postToken PostToken Bond Marketplace-Methode
purchaseBondToken purchaseToken PurchaseToken Geändert
rejectBondRedemption rejectTokenRedemption RejectTokenRedemption Bond Marketplace-Methode
removeRole removeRole RemoveRole Native ERC-1155-Methode
removeTokenAdmin removeTokenAdmin RemoveTokenAdmin Native ERC-1155-Methode
requestBondRedemption requestTokenRedemption RequestTokenRedemption Bond Marketplace-Methode
safeBatchTransferFrom safeBatchTransferFrom SafeBatchTransferFrom Native ERC-1155-Methode
suspendAccount suspendAccount SuspendAccount Native ERC-1155-Methode
updateBondToken updateBondToken UpdateBondToken Native ERC-1155-Methode
URI URI URI Native ERC-1155-Methode