Pacchetto API wrapper Bond Marketplace

Oracle Blockchain Platform Digital Assets Edition include un package API wrapper che estende l'API REST per supportare operazioni specifiche di un marketplace NFT relativo alle obbligazioni.

Il pacchetto API wrapper utilizza il servizio gateway API e le funzioni OCI per distribuire instradamenti API in modo specifico per la gestione del ciclo di vita NFT del marketplace delle obbligazioni. Il package API wrapper del marketplace delle obbligazioni può essere scaricato dalla console di Oracle Blockchain Platform e include un file di archivio che contiene il package API wrapper, inclusi gli script Terraform necessari per la distribuzione. Puoi distribuire questo file in uno stack di Resource Manager su Oracle Cloud Infrastructure (OCI) per creare le risorse Oracle necessarie per le API wrapper. Include anche una raccolta Postman che consente di eseguire il test delle API wrapper distribuite. La raccolta include richieste preconfigurate con endpoint e payload corrispondenti alle API definite nel package API wrapper.

API wrapper

activateAccount
Nome metodo originale: activateAccount
Questo metodo POST attiva un account token. Questo metodo può essere richiamato solo da un amministratore o dal proprietario dell'account. Impossibile attivare gli account eliminati.
Payload:
{
    "tokenId": "{{bc-token-id}}",
    "orgId": "{{bc-org-id}}",
    "userId": "{{bc-user-id}}",
    "endorsers": {{endorsers}}
}
Parametri:
  • tokenId: string: l'ID del token.
  • orgId: string: l'ID del provider di servizi di appartenenza (MSP) dell'utente nell'organizzazione corrente.
  • userId: string: il nome utente o l'ID e-mail dell'utente.
Restituisce:
  • In caso di operazione riuscita, una rappresentazione JSON dell'oggetto stato account per l'account token specificato.
Esempio di valore restituito:
{
  "assetType": "oaccountStatus",
  "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
  "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
  "status": "active"
}
addTokenAdmin
Nome metodo originale: addTokenAdmin
Questo metodo POST aggiunge altri amministratori al codice concatenato del token. Questo metodo può essere richiamato solo dall'amministratore token del codice concatenato.
Payload:
{
    "orgId": "{{bc-org-id}}",
    "userId": "{{bc-user-id}}",
    "endorsers": {{endorsers}}
}
Parametri:
  • orgId: string: l'ID del provider di servizi di appartenenza (MSP) dell'utente nell'organizzazione corrente.
  • userId: string: il nome utente o l'ID e-mail dell'utente.
Restituisce:
  • In caso di operazione riuscita, un messaggio che include i dettagli dell'utente aggiunto come Token Admin del codice concatenato.
Esempio di valore restituito:
{
  "msg": "Successfully added Admin (OrgId: appDev, UserId: user1)"
}
addRole
Nome metodo originale: addRole
Questo metodo POST aggiunge un ruolo a un utente e a un token specificati. Questo metodo può essere richiamato solo da un Token Admin del codice concatenato. I token non fungibili sono specificati dal nome del token. L'utente specificato deve disporre di un account token non fungibile. Il ruolo specificato deve esistere nel file di specifica per il token.
Payload:
{
    "tokenId": "{{bc-token-id}}",
    "orgId": "{{bc-org-id}}",
    "userId": "{{bc-user-id}}",
    "role": "role minter/burner"
    "tokenDetails": "{"tokenName": "token name value"}"
    "endorsers": {{endorsers}}
}
Parametri:
  • orgId: string: l'ID del provider di servizi di appartenenza (MSP) dell'utente nell'organizzazione corrente.
  • userId: string: il nome utente o l'ID e-mail dell'utente.
  • role: string: il nome del ruolo da aggiungere all'utente specificato.
  • tokenDetails: TokenDetail: i dettagli che specificano il token. Per i token non fungibili, utilizzare il seguente formato:
    {"tokenName":"artCollection"}
Restituisce:
  • In caso di operazione riuscita, un messaggio con i dettagli dell'account.
Esempio di valore restituito:
{
  "msg": "Successfully added role 'minter' to Account Id: oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a (Org-Id: appdev, User-Id: idcqa)"
}
approveBondRedemption
Nome metodo originale: approveBondRedemption
Questo metodo POST può essere chiamato solo dal creatore del token per approvare una richiesta di riscatto dei token obbligazionari. L'operazione di approvazione trasferisce l'NFT dell'obbligazione dal conto del proprietario (l'utente che ha inoltrato la richiesta) al conto del creatore e trasferisce i token CBDC dal conto del creatore dell'obbligazione al conto del proprietario. Per questo motivo, questo metodo deve essere eseguito nel contesto di una transazione atomica. Il metodo verifica anche il processo di trasferimento, garantendo che il codice concatenato CBDC appropriato sia chiamato con i corretti orgId e userId per il trasferimento. I valori orgId e userId devono corrispondere al conto del proprietario del token che ha generato la richiesta di riscatto e il valore di trasferimento del token CBDC deve essere uguale al prezzo di riscatto calcolato calcolato dal codice concatenato durante la generazione della richiesta di riscatto.
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}}
}
Parametri:
  • fromOrgId: string: l'ID del provider di servizi di appartenenza (MSP) dell'utente.
  • fromUserId: string: il nome utente o l'ID e-mail dell'utente.
  • settlementId: string: l'ID liquidazione per l'operazione di riscatto.
  • tokenId: string: l'ID del token.
  • CBDCTokenId: string: l'ID del token nel codice concatenato CBDC.
  • CBDCOrgId: string: l'ID MSP dell'utente nel codice concatenato CBDC.
  • CBDCUserId: string: il nome utente o l'ID e-mail dell'utente nel codice concatenato CBDC.
  • CBDCQuantity: string: la quantità di token da trasferire nel codice concatenato CBDC.
  • CBDCRemark: string - Un'osservazione per il trasferimento nel codice concatenato CBDC, che deve essere nel formato mostrato in precedenza.
Esempio di valore restituito:
{
   "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
Nome metodo originale: balanceOfBatch
Questo metodo GET completa un'operazione batch che recupera il saldo dei conti token. I dettagli dell'account sono specificati in tre elenchi separati di ID organizzazione, ID utente e ID token. Questo metodo può essere chiamato solo da un Token Admin del codice concatenato o dai proprietari di account. I proprietari dei conti possono visualizzare i dettagli del saldo solo per i conti di loro proprietà.
Query:
/balanceOfBatch?orgIds=["{{bc-org-id}}"]&userIds=["{{bc-user-id}}"]&tokenIds=["{{bc-token-id}}"]
Parametri:
  • orgIds: string[]: elenco degli ID del provider di servizi di appartenenza (MSP) nell'organizzazione corrente.
  • userIds: string[]: elenco del nome utente o degli ID di posta elettronica.
  • tokenIds: string[]: lista degli ID token.
Esempio di valore restituito:

Nell'esempio seguente, l'ID token FNFT rappresenta un token non fungibile frazionario e l'ID token FT rappresenta un token fungibile.

[
    {
        "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
Nome metodo originale: batchTransferFrom
Questo metodo POST completa un'operazione batch che trasferisce i token specificati in una lista di ID token da un utente a un altro utente.
Payload:
{
 "fromOrgId": "fromOrgId value",
 "fromUserId": "fromUserId value",
 "toOrgId": "toOrgId value",
 "toUserId": "toUserId value",
 "tokenIds": "[\"{{bc-token-id}}\"]",
 "quantity": "[quantity value]",
 "endorsers": {{endorsers}}
}
Parametri:
  • fromOrgId: string: l'ID del provider di servizi di appartenenza (MSP) del mittente e del proprietario del token nell'organizzazione corrente.
  • fromUserId: string: il nome utente o l'ID di posta elettronica del mittente e del proprietario del token.
  • toOrgId: string: l'ID del provider di servizi di appartenenza (MSP) del destinatario nell'organizzazione corrente.
  • toUserId: string: il nome utente o l'ID e-mail del destinatario.
  • tokenIds: string[]: lista di ID token per i token da trasferire.
  • quantity: number[]: la lista delle quantità di token da trasferire, corrispondente all'array ID token.
Restituisce:
  • In caso di operazione riuscita, viene visualizzato un messaggio con i dettagli per ogni trasferimento di token.
Esempio di valore restituito:
[
    {
        "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
Nome metodo originale: burnBatch
Questo metodo POST disattiva o brucia i token specificati. Qualsiasi utente con il ruolo di bruciatore può chiamare questo metodo.
Payload:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "tokenIds": "[\"{{bc-token-id}}\"]",
 "quantity": "[quantity value]",
 "sameOrgEndorser": true
}
Parametri:
  • orgId: string: l'ID del provider di servizi di appartenenza (MSP) nell'organizzazione corrente.
  • userId: string: il nome utente o l'ID e-mail.
  • tokenIds: string[]: la lista degli ID token da masterizzare
  • quantity: number[]: la lista delle quantità di token da masterizzare, corrispondente all'array di ID token.
Restituisce:
  • In caso di successo, un messaggio con i dettagli sulle operazioni di masterizzazione.
Esempio di valore restituito:
[
  {
    "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
Nome metodo originale: createAccount
Questo metodo POST crea un account per un utente specificato e gli account token associati per i token. È necessario creare un account per qualsiasi utente che avrà token in qualsiasi momento. L'account utente tiene traccia dell'account NFT e degli account token fungibili detenuti da un utente. Per completare le operazioni relative ai token, gli utenti devono disporre di account nella rete. Questo metodo può essere richiamato solo da un Token Admin del codice concatenato.

Un account utente dispone di un ID univoco, formato da un hash SHA-256 del parametro orgId e del parametro userId.

Un utente può avere più account token fungibili con ID account univoci. Gli ID account token fungibili sono formati da un hash SHA-256 del parametro orgId, dal parametro userId, dalla stringa costante ft separata dal simbolo tilde (~) e da un numero di contatore che indica l'indice del conto fungibile creato separato dal simbolo tilde (~).

Un utente può avere un solo account token non fungibile. Gli ID account token non fungibili sono univoci e sono formati da un hash SHA-256 del parametro orgId, del parametro userId e della stringa costante nft separati dal simbolo tilde (~). Tutti i token non fungibili di proprietà di un utente, sia interi che frazionari, sono collegati a questo account.

Payload:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "ftAccount": true,
 "nftAccount": true,
 "endorsers": {{endorsers}}
}
Parametri:
  • orgId: l'ID del provider di servizi di appartenenza (MSP) dell'utente per il quale creare l'account. L'ID deve iniziare con un carattere alfanumerico e può includere lettere, numeri e caratteri speciali quali i caratteri di sottolineatura (_), i punti (.), i segni @ e i trattini (-).
  • userId: il nome utente o l'ID e-mail dell'utente. L'ID deve iniziare con un carattere alfanumerico e può includere lettere, numeri e caratteri speciali quali i caratteri di sottolineatura (_), i punti (.), i segni @ e i trattini (-).
  • ftAccount: boolean: se true, viene creato un account token fungibile associato all'account utente.
  • nftAccount: boolean: se true, viene creato un account token non fungibile associato all'account utente.
Restituisce:
  • In caso di operazione riuscita, un oggetto JSON dell'account creato.
Esempio di valore restituito:
{
  "assetType": "ouaccount",
  "accountId": "ouaccount~cf20877546f52687f387e7c91d88b9722c97e1a456cc0484f40c747f7804feae",
  "userId": "user1",
  "orgId": "appdev",
  "totalAccounts": 2,
  "totalFtAccounts": 1,
  "associatedFtAccounts": [
    {
      "accountId": "oaccount~60bb20c14a83f6e426e1437c479c5891e1c6477dfd7ad18b73acac5d80bc504b",
      "tokenId": ""
    }
  ],
  "associatedNftAccount": "oaccount~73c3e835dac6d0a56ca9d8def08269f83cefd59b9d297fe2cdc5a9083828fa58"
}
createAccountWithEnrollment
Nome metodo originale: createAccountWithEnrollment
Questo metodo POST crea un'iscrizione per un utente nel proxy REST dell'istanza e crea un conto NFT nel codice concatenato del marketplace delle obbligazioni.
Payload:
{
 "orgId": "orgId value",
 "userId": "userId value"
}
Parametri:
  • orgId: string: l'ID del provider di servizi di appartenenza (MSP) dell'utente nell'organizzazione corrente.
  • userId: string: il nome utente o l'ID e-mail dell'utente.
Restituisce:
  • In caso di operazione riuscita, un oggetto JSON dell'account creato.
Esempio di valore restituito:
{
 "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
Nome metodo originale: createBondToken
Questo metodo POST crea token. Ogni token definito ha il proprio metodo di creazione. Per i token non fungibili, il chiamante di questo metodo diventa il proprietario dell'NFT. Se il comportamento roles è definito nella proprietà behaviors del modello di token ed è specificato un valore minter_role_name, l'account chiamante deve avere il ruolo minter.
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
}
Parametri:
  • tokenAsset: <Token Class>: l'asset token. Le proprietà dell'asset sono definite nel file modello.
  • quantity: number: il numero di token da coniare. L'unico valore supportato per questo parametro è 1.
Restituisce:
  • In caso di operazione riuscita, un oggetto JSON dell'account creato.
Esempio di valore restituito:
{
            "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
Nome metodo originale: createIDCSUser
Questo metodo POST crea un utente di Identity Cloud Service nella tenancy specificata dall'URL nel file terraform.tfvars e assegna l'utente al gruppo di utenti specificato.
Payload:
{
 "userName": "userName value",
 "firstName": "firstName value",
 "lastName": "lastName value",
 "email": "email value",
 "groupName": "groupName value"
}
Parametri:
  • userName: string: l'ID dell'utente.
  • firstName: string: il nome dell'utente.
  • lastName: string: il cognome dell'utente.
  • email: string - L'indirizzo email dell'utente.
  • groupName: string: il nome del gruppo Identity Cloud Service da assegnare all'utente.
Esempio di valore restituito:
{
 "status": "Success",
 "msg": "User user1 is created and assigned to the group BOND_ADMIN"
}
createTokenAccount
Nome metodo originale: createTokenAccount
Questo metodo POST crea un account token fungibile o non fungibile da associare a un account utente.

Un utente può avere più account token fungibili con ID account univoci. Gli ID account token fungibili sono formati da un hash SHA-256 del parametro orgId, dal parametro userId, dalla stringa costante ft separata dal simbolo tilde (~) e da un numero di contatore che indica l'indice del conto fungibile creato separato dal simbolo tilde (~).

Un utente può avere un solo account token non fungibile. Gli ID account token non fungibili sono univoci e sono formati da un hash SHA-256 del parametro orgId, del parametro userId e della stringa costante nft separati dal simbolo tilde (~). Tutti i token non fungibili di proprietà di un utente, sia interi che frazionari, sono collegati a questo account.

Questo metodo può essere richiamato solo da un Token Admin del codice concatenato.

Payload:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "tokenType": "nonfungible",
 "endorsers": {{endorsers}}
}
Parametri:
  • orgId: string: l'ID del provider di servizi di appartenenza (MSP) dell'utente nell'organizzazione corrente.
  • userId: string: il nome utente o l'ID e-mail dell'utente.
  • tokenType: TokenType: il tipo di account token da creare. Gli unici tipi di token supportati sono nonfungible e fungible.
Restituisce:
  • In caso di operazione riuscita, un oggetto JSON dell'account token creato.
Esempio di valore restituito:
{
  "assetType": "ouaccount",
  "accountId": "ouaccount~24ffd4d32a028a85b4b960f5d55536c837b5429bc7f346150adfa904ec2937cc",
  "userId": "user2",
  "orgId": "appdev",
  "totalAccounts": 1,
  "totalFtAccounts": 1,
  "associatedFtAccounts": [
    {
      "accountId": "oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a",
      "tokenId": ""
    }
  ],
  "associatedNftAccount": ""
}
createUserAccount
Nome metodo originale: createUserAccount
Questo metodo POST crea un account per un utente specificato. È necessario creare un account per qualsiasi utente che avrà token in qualsiasi momento. L'account utente tiene traccia dell'account NFT e degli account token fungibili di cui dispone un utente. Per completare le operazioni relative ai token, gli utenti devono disporre di account nella rete.

Un ID account è un hash SHA-256 del parametro orgId e del parametro userId. Questo metodo può essere richiamato solo da un Token Admin del codice concatenato.

Payload:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "endorsers": {{endorsers}}
}
Parametri:
  • orgId: string: l'ID del provider di servizi di appartenenza (MSP) dell'utente nell'organizzazione corrente.
  • userId: string: il nome utente o l'ID e-mail dell'utente.
Restituisce:
  • In caso di operazione riuscita, un oggetto JSON dell'account utente creato.
Esempio di valore restituito:
{
  "assetType": "ouaccount",
  "accountId": "ouaccount~24ffd4d32a028a85b4b960f5d55536c837b5429bc7f346150adfa904ec2937cc",
  "userId": "user2",
  "orgId": "appdev",
  "totalAccounts": 0,
  "totalFtAccounts": 0,
  "associatedFtAccounts": [],
  "associatedNftAccount": ""
}
deleteAccount
Nome metodo originale: deleteAccount
Questo metodo POST elimina un account token. Questo metodo può essere richiamato solo da un Token Admin del codice concatenato. Questo metodo genera un errore se non viene trovato un valore accountStatus per il conto nel libro contabile.
Payload:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "endorsers": {{endorsers}}
}
Parametri:
  • orgId: string: l'ID del provider di servizi di appartenenza (MSP) dell'utente nell'organizzazione corrente.
  • userId: string: il nome utente o l'ID e-mail dell'utente.
Restituisce:
  • In caso di operazione riuscita, una rappresentazione JSON dello stato dell'account token.
Esempio di valore restituito:
{
  "assetType": "oaccountStatus",
  "statusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
  "accountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
  "status": "deleted"
}
getAccount
Nome metodo originale: getAccount
Questo metodo GET restituisce i dettagli dell'account token per un utente specificato. Questo metodo può essere richiamato solo da un Token Admin del codice concatenato o dall'Account Owner dell'account.
Query:
/getAccount?orgId={{bc-org-id}}&userId={{bc-user-id}}
Parametri:
  • orgId: string: l'ID del provider di servizi di appartenenza (MSP) dell'utente nell'organizzazione corrente.
  • userId: string: il nome utente o l'ID e-mail dell'utente.
  • tokenId?: string: per un account token non fungibile, una stringa vuota. Per un account token fungibile, l'ID token.
Restituisce:
  • In caso di operazione riuscita, un oggetto JSON che include i dettagli dell'account token.
Esempio di valore restituito
{
    "assetType": "oaccount",
    "accountId": "oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371",
    "userId": "user2",
    "orgId": "AppBldFFFFMay22",
    "tokenType": "nonfungible",
    "noOfNfts": 3
}
getAccountBondSummary
Nome metodo originale: getAccountBondSummary
Questo metodo GET restituisce un riepilogo dell'account per l'utente specificato, inclusi i dettagli dei token acquistati o riscattati e i relativi prezzi di acquisto e riscatto.
Query:
/getAccount?orgId={{bc-org-id}}&userId={{bc-user-id}}
Parametri:
  • orgId: string: l'ID del provider di servizi di appartenenza (MSP) dell'utente nell'organizzazione corrente.
  • userId: string: il nome utente o l'ID e-mail dell'utente.
Restituisce:
  • In caso di operazione riuscita, un oggetto JSON che include il riepilogo dell'account token.
Esempio di valore restituito
[
 {
   "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
Nome metodo originale: getAccountBondSummaryWithPagination
Questo metodo GET restituisce un riepilogo dell'account per l'utente specificato, inclusi i dettagli dei token acquistati o riscattati e i relativi prezzi di acquisto e riscatto. Questo metodo può restituire risultati con impaginazione basata su valori di pagesize e segnalibri e anche filtrati per ora di inizio e di fine.
Query:
/getAccountBondSummary?orgId={{bc-org-id}}&userId={{bc-user-id}}&pageSize=1&bookmark={{bookmark}}
Parametri:
  • orgId: string: l'ID del provider di servizi di appartenenza (MSP) dell'utente nell'organizzazione corrente.
  • userId: string: il nome utente o l'ID e-mail dell'utente.
  • pageSize: number: la dimensione della pagina del risultato restituito.
  • bookmark: string: il segnalibro del risultato restituito.
Restituisce:
  • In caso di operazione riuscita, un oggetto JSON che include il riepilogo dell'account token.
Esempio di valore restituito
[
 {

   "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
Nome metodo originale: getAccountDetailsByUser
Questo metodo GET restituisce un riepilogo dell'account per un utente specificato e i dettagli dei token fungibili e non fungibili associati all'utente. Questo metodo può essere richiamato solo da un Token Admin del codice concatenato o dall'Account Owner dell'account.
Query:
/getAccountDetailsByUser?orgId={{bc-org-id}}&userId={{bc-user-id}}
Parametri:
  • orgId: string: l'ID del provider di servizi di appartenenza (MSP) dell'utente nell'organizzazione corrente.
  • userId: string: il nome utente o l'ID e-mail dell'utente.
Restituisce:
  • In caso di operazione riuscita, un oggetto account JSON che include e riepiloga l'account per l'utente specificato e i dettagli dei token fungibili e non fungibili associati all'utente. Per i token non fungibili frazionari, la proprietà tokenShare nella sezione associatedNFTs mostra la condivisione di proprietà dell'utente.
Esempio di valore restituito:
{
    "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
Nome metodo originale: getAccountStatus
Questo metodo GET recupera lo stato corrente dell'account token. Questo metodo può essere chiamato dal Token Admin del codice concatenato o dal proprietario dell'account token.
Query:
/getAccountStatus?orgId={{bc-org-id}}&userId={{bc-user-id}}
Parametri:
  • orgId: string: l'ID del provider di servizi di appartenenza (MSP) dell'utente nell'organizzazione corrente.
  • userId: string: il nome utente o l'ID e-mail dell'utente.
Restituisce:
  • In caso di operazione riuscita, una rappresentazione JSON dello stato dell'account token.
Esempio di valore restituito:
{
    "assetType": "oaccountStatus",
    "statusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
    "accountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
    "status": "active"
}
getAccountStatusHistory
Nome metodo originale: getAccountStatusHistory
Questo metodo GET recupera la cronologia dello stato dell'account. Questo metodo può essere chiamato dal Token Admin del codice concatenato o dal proprietario dell'account token.
Query:
/getAccountStatusHistory?orgId={{bc-org-id}}&userId={{bc-user-id}}
Parametri:
  • orgId: string: l'ID del provider di servizi di appartenenza (MSP) dell'utente nell'organizzazione corrente.
  • userId: string: il nome utente o l'ID e-mail dell'utente.
Restituisce:
  • In caso di operazione riuscita, la cronologia dello stato dell'account in formato JSON.
Esempio di valore restituito:
[
  {
    "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
Nome metodo originale: getAccountTransactionHistory
Questo metodo GET restituisce la cronologia delle transazioni del conto. Questo metodo può essere chiamato solo da un Token Admin del codice concatenato o dal proprietario del conto.
/getAccountTransactionHistory?orgId={{bc-org-id}}&userId={{bc-user-id}}
Parametri:
  • orgId: string: l'ID del provider di servizi di appartenenza (MSP) dell'utente nell'organizzazione corrente.
  • userId: string: il nome utente o l'ID e-mail dell'utente.
Esempio di valore restituito:
[
    {
        "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
Nome metodo originale: getAccountsByRole
Questo metodo GET restituisce un elenco di tutti gli ID account per un ruolo e un token specificati.
Query:
/getAccountsByRole?role=role value (for example minter / burner)&tokenDetail={"tokenName":"tokenName value"}
Parametri:
  • role: string: il nome del ruolo da cercare.
  • tokenDetail: JSON: per i token fungibili, l'ID del token. Per i token non fungibili, è necessario specificare il nome del token.
Esempio di valore restituito:
{
  "accounts": [
    "oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a",
    "oaccount~60bb20c14a83f6e426e1437c479c5891e1c6477dfd7ad18b73acac5d80bc504b"
  ]
}
getAllAccounts
Nome metodo originale: getAllAccounts
Questo metodo GET restituisce i dettagli di tutti gli account utente. Questo metodo può essere richiamato solo da un Token Admin del codice concatenato.
Query:
/getAllAccounts
Parametri:
  • nessuno
Restituisce:
  • In caso di operazione riuscita, un array JSON di tutti gli account.
Esempio di valore restituito:
[
        {
            "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
Nome metodo originale: getAllTokenAdmins
Questo metodo GET restituisce un elenco di tutti gli utenti che sono un Token Admin del codice concatenato. Questo metodo può essere richiamato solo da un Token Admin del codice concatenato.
Query:
/getAllTokenAdmins
Parametri:
  • nessuno
Restituisce:
  • In caso di operazione riuscita, un array admins in formato JSON contenente gli oggetti orgId e userId.
Esempio di valore restituito:
{
  "admins": [
    {
      "orgId": "appdev",
      "userId": "user2"
    },
    {
      "orgId": "appdev",
      "userId": "user1"
    }
  ]
}
getAllTokens
Nome metodo originale: getAllTokens
Questo metodo restituisce tutti gli asset token salvati nel database di stato. Questo metodo può essere richiamato solo da un Token Admin del codice concatenato. Questo metodo utilizza query rich SQL di Berkeley DB e può essere richiamato solo quando si è connessi alla rete remota di Oracle Blockchain Platform.
/getAllTokens
Parametri:
  • nessuno
Restituisce:
  • Lista di tutti gli asset token in formato JSON.
Esempio di valore restituito:
[{
            "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
Nome metodo originale: getAllTokensByUser
Questo metodo GET restituisce tutti gli asset token di proprietà di un utente specificato. Questo metodo utilizza query rich SQL di Berkeley DB e può essere richiamato solo quando si è connessi alla rete remota di Oracle Blockchain Platform. Questo metodo può essere chiamato solo da un Token Admin del codice concatenato o dal proprietario del conto.
Query:
/getAllTokensByUser?orgId={{bc-org-id}}&userId={{bc-user-id}}
Parametri:
  • orgId: string: l'ID del provider di servizi di appartenenza (MSP) dell'utente nell'organizzazione corrente.
  • userId: string: il nome utente o l'ID e-mail dell'utente.
Esempio di valore restituito:
[{
            "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
Nome metodo originale: getAllTokensWithFilters
L'amministratore può chiamare questo metodo GET per recuperare tutti i token filtrati per stato.
Query:
/getAllTokensWithFilters?status=status&pageSize=pageSize&bookmark=bookmark
Parametri:
  • status: string: lo stato del token, che può essere CREATED o POSTED.
  • pageSize: number: la dimensione della pagina del risultato restituito.
  • bookmark: string: il segnalibro del risultato restituito.
Esempio di valore restituito:
[{
            "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
Nome metodo originale: getTokenApprovalRequestByUser
Qualsiasi titolare del conto può chiamare questo metodo GET per ottenere i dettagli di tutte le richieste di approvazione del token (richieste di riscatto) che ha effettuato.
Query:
/getTokenApprovalRequestByUser?status=status value
Parametri:
  • status: string: lo stato della richiesta, che può essere PENDING, REJECTED o APPROVED.
Esempio di valore restituito:
[
   {
      "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
Nome metodo originale: getTokenApprovalRequestByUser
Qualsiasi titolare del conto può chiamare questo metodo GET per ottenere i dettagli di tutte le richieste di approvazione del token (richieste di riscatto) che ha effettuato.
Query:
/getTokenApprovalRequestForUserByStatus?status=status value
Parametri:
  • status: string: lo stato della richiesta, che può essere PENDING, REJECTED o APPROVED.
Esempio di valore restituito:
[
   {
      "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
Nome metodo originale: getTokenById
Questo metodo GET restituisce un oggetto token se il token è presente nel database di stato. Per gli NFT frazionari, viene restituito anche l'elenco dei proprietari. Questo metodo può essere chiamato solo da un Token Admin del codice concatenato o dal proprietario del token.
Query:
/getTokenById?tokenId={{bc-token-id}}
Parametri:
  • tokenId: string: l'ID del token da ottenere.
Esempio di valore restituito:
[{
            "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
Nome metodo originale: getTokenHistory
Questo metodo GET restituisce la cronologia per un ID token specificato.
Query:
/getTokenHistory?tokenId={{bc-token-id}}
Parametri:
  • tokenId: string: l'ID del token.
Restituisce:
  • In caso di operazione riuscita, un array JSON contenente la cronologia dei token.
Esempio di valore restituito:
[{
            "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
Nome metodo originale: getUsersByRole
Questo metodo restituisce una lista di tutti gli utenti per un ruolo e un token specificati. Questo metodo può essere richiamato solo da un Token Admin del codice concatenato.
Query:
/getUsersByRole?role=role value (for example minter / burner)&tokenDetail={"tokenName":"tokenName value"}
Parametri:
  • role: string: il nome del ruolo da cercare.
  • tokenDetail: JSON: per i token fungibili, l'ID del token. Per i token non fungibili, è necessario specificare il nome del token.
Esempio di valore restituito:
{
    "users": [
        {
            "accountId": "oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a",
            "orgId": "appdev",
            "userId": "user2"
        },
        {
            "accountId": "oaccount~60bb20c14a83f6e426e1437c479c5891e1c6477dfd7ad18b73acac5d80bc504b",
            "orgId": "appdev",
            "userId": "user1"
        }
    ]
}
init
Nome metodo originale: init
Questo metodo POST viene chiamato quando viene creata un'istanza del codice concatenato. Ogni Token Admin viene identificato dalle informazioni userId e orgId nel parametro adminList. userId è il nome utente o l'ID di posta elettronica del proprietario dell'istanza o dell'utente che ha eseguito il login all'istanza. orgId è l'ID del provider di servizi di appartenenza (MSP) dell'utente nell'organizzazione di rete corrente. Il parametro adminList è obbligatorio la prima volta che si distribuisce il codice concatenato. Se si sta aggiornando il codice concatenato, passare una lista vuota ([]). Se si è l'utente che ha inizialmente distribuito il codice concatenato, è inoltre possibile specificare nuovi amministratori nel parametro adminList durante l'aggiornamento del codice concatenato. Qualsiasi altra informazione nel parametro adminList viene ignorata durante gli aggiornamenti.
Payload:
{
 "adminList": "[{\"orgId\":\"{{bc-org-id}}\",\"userId\":\"{{bc-user-id}}\"}]"
}
Parametri:
  • adminList array: un array di informazioni {orgId, userId} che specifica la lista degli amministratori di token. L'array adminList è un parametro obbligatorio.
Restituisce:
  • In caso di operazione riuscita, un messaggio senza payload.
Esempio di valore restituito:
{
}
isInRole
Nome metodo originale: isInRole
Questo metodo GET restituisce un valore booleano per indicare se un utente dispone di un ruolo specificato. I token non fungibili sono specificati dal nome del token. Questo metodo può essere richiamato solo da un Token Admin del codice concatenato o dall'Account Owner dell'account. L'utente specificato deve disporre di un account token associato al token fungibile o di un account token non fungibile per i ruoli NFT. Il ruolo specificato deve esistere nel file di specifica per il token.
Query:
/isInRole?orgId={{bc-org-id}}&userId={{bc-user-id}}&role=role value (for example minter / burner)&tokenDetail={"tokenName":"tokenName value"}
Parametri:
  • orgId: string: l'ID del provider di servizi di appartenenza (MSP) dell'utente nell'organizzazione corrente.
  • userId: string: il nome utente o l'ID e-mail dell'utente.
  • role: string: il nome del ruolo da cercare.
  • tokenDetails: TokenDetail: i dettagli che specificano il token. Per i token non fungibili, utilizzare il seguente formato:
    {"tokenName":"artCollection"}
Esempio di valore restituito:
{
    "result": true,
    "msg": "Account Id oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a (Org-Id: appdev, User-Id: idcqa) has minter role"
}
isTokenAdmin
Nome metodo originale: isTokenAdmin
Questo metodo GET restituisce il valore booleano true se il chiamante della funzione è un Token Admin, altrimenti restituisce false. Questo metodo può essere richiamato solo da un Token Admin del codice concatenato.
/isTokenAdmin?orgId={{bc-org-id}}&userId={{bc-user-id}}
Parametri:
  • orgId: string: l'ID del provider di servizi di appartenenza (MSP) dell'utente nell'organizzazione corrente.
  • userId: string: il nome utente o l'ID e-mail dell'utente.
Restituisce:
  • Il metodo restituisce true se il chiamante è un Token Admin, altrimenti restituisce false.
Esempio di valore restituito:
{"result": true}
mintBatch
Nome metodo originale: mintBatch
Questo metodo POST crea (mint) più token in un'operazione batch. Questo metodo crea solo token fungibili o token non fungibili frazionari.

Per i token fungibili, se il ruolo minter è definito nel file di specifica, qualsiasi utente con il ruolo minter può chiamare questo metodo. In caso contrario, qualsiasi utente può utilizzare questo metodo per coniare i token. Impossibile coniare più della proprietà max_mint_quantity del token se tale proprietà è stata specificata al momento della creazione o dell'aggiornamento del token.

Per i token non fungibili, se il ruolo minter è definito nel file di specifica, qualsiasi utente con il ruolo minter può chiamare questo metodo. In caso contrario, qualsiasi utente può utilizzare questo metodo per coniare i token. Inoltre, il chiamante deve essere anche il creatore del token. Non esiste un limite massimo per la quantità di token frazionari non fungibili che possono essere coniati.

Impossibile utilizzare questo metodo per coniare un token non fungibile intero.

Payload:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "tokenIds": "[\"{{bc-token-id}}\"]",
 "quantity": "[quantity value]",
 "sameOrgEndorser": true
}
Parametri:
  • orgId: string: l'ID del provider di servizi di appartenenza (MSP) dell'utente nell'organizzazione corrente.
  • userId: string: il nome utente o l'ID e-mail dell'utente.
  • tokenIds: string[]: la lista degli ID token per i quali creare i token.
  • quantity: number[]: la lista delle quantità di token da coniare, corrispondente all'array ID token.
Restituisce:
  • In caso di operazione riuscita, un oggetto JSON che include dettagli sui token coniati.
Esempio di valore restituito:
{
    "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
Nome metodo originale: ownerOf
Questo metodo GET restituisce l'ID account, l'ID organizzazione e l'ID utente del proprietario dell'ID token specificato. Chiunque può chiamare questo metodo.
Query:
/ownerOf?tokenId={{bc-token-id}}
Parametri:
  • tokenId: string: l'ID del token.
Esempio di valore restituito:
[
    {
        "accountId": "oaccount~42e89f4c72dfde9502814876423c6da630d466e87436dd1aae201d347ad1288d",
        "orgId": "Org1MSP",
        "userId": "admin"
    },
    {
        "accountId": "oaccount~74108eca702bab6d8548e740254f2cc7955d886885251d52d065042172a59db0",
        "orgId": "Org1MSP",
        "userId": "user"
    }
]
payInterest
Nome metodo originale: ownerOf
Questo metodo POST può essere chiamato solo dal creatore o dall'amministratore del token per pagare gli interessi maturati sul token obbligazionario. Questo metodo può essere chiamato solo se la frequenza di interesse del token è mensile, trimestrale o annuale. Gli interessi non possono essere pagati se la frequenza degli interessi è a scadenza. L'interesse viene calcolato dal codice concatenato in base al tasso coupon del token. L'operazione di acquisto trasferisce i token CBDC dal conto del chiamante al conto del proprietario dell'obbligazione. Per questo motivo, questo metodo deve essere eseguito nel contesto di una transazione atomica. Il metodo verifica anche il processo di trasferimento, garantendo che il codice concatenato CBDC appropriato sia chiamato con i corretti orgId e userId per il trasferimento. I valori orgId e userId devono corrispondere al proprietario del token e il valore di trasferimento del token CBDC deve essere uguale all'interesse calcolato dal codice concatenato dell'obbligazione.
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}}
}
Parametri:
  • orgId: string: l'ID del provider di servizi di appartenenza (MSP) dell'utente.
  • userId: string: il nome utente o l'ID e-mail dell'utente.
  • tokenId: string: l'ID del token.
  • orderId: string: l'ID ordine per l'operazione.
  • CBDCTokenId: string: l'ID del token nel codice concatenato CBDC.
  • CBDCOrgId: string: l'ID MSP dell'utente nel codice concatenato CBDC.
  • CBDCUserId: string: il nome utente o l'ID e-mail dell'utente nel codice concatenato CBDC.
  • CBDCQuantity: string: la quantità di token da trasferire nel codice concatenato CBDC.
  • CBDCRemark: string - Un'osservazione per il trasferimento nel codice concatenato CBDC, che deve essere nel formato mostrato in precedenza.
Esempio di valore restituito:
{
   "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
Nome metodo originale: postBondToken
Questo metodo POST può essere chiamato solo da un creatore di token. Il metodo sottomette il token di legame per l'inserimento nell'elenco sul mercato. Quando viene creato un token, il relativo stato viene inizialmente impostato su created. Questo metodo aggiorna lo stato in posted. Gli utenti possono eseguire il metodo getAllTokensWithFilter per recuperare tutti gli NFT con stato posted.
Payload:
{
 "tokenId": "{{bc-token-id}}",
 "sameOrgEndorser": true
}
Parametri:
  • tokenId: string: l'ID del token da inviare.
Esempio di valore restituito:
{
         "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
Nome metodo originale: purchaseBondToken
Questo metodo POST può essere chiamato da qualsiasi titolare di conto per acquistare un NFT obbligazionario quotato. L'acquisto trasferisce il bond NFT dal conto del creatore al conto del chiamante e trasferisce i token CBDC dal conto del chiamante al conto del creatore. Per questo motivo, il metodo deve essere eseguito nel contesto di una transazione atomica. Il metodo verifica anche il processo di trasferimento, garantendo che il codice concatenato CBDC appropriato sia chiamato con i corretti orgId e userId per il trasferimento. I valori orgId e userId devono corrispondere al creatore del token e il valore di trasferimento del token CBDC deve essere uguale al valore nominale del token obbligazionario moltiplicato per la quantità acquistata.
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}}
}
Parametri:
  • tokenId: string: l'ID del token da acquistare.
  • orgId: string: l'ID del provider di servizi di appartenenza (MSP) dell'utente.
  • userId: string: il nome utente o l'ID e-mail dell'utente.
  • settlementId: string: l'ID della liquidazione per l'operazione.
  • CBDCTokenId: string: l'ID del token nel codice concatenato CBDC.
  • CBDCOrgId: string: l'ID MSP dell'utente nel codice concatenato CBDC.
  • CBDCUserId: string: il nome utente o l'ID e-mail dell'utente nel codice concatenato CBDC.
  • CBDCQuantity: string: la quantità di token da trasferire nel codice concatenato CBDC.
  • CBDCRemark: string - Un'osservazione per il trasferimento nel codice concatenato CBDC, che deve essere nel formato mostrato in precedenza.
Esempio di valore restituito:
{
   "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
Nome metodo originale: rejectBondRedemption
Il creatore del token può chiamare questo metodo POST per rifiutare la richiesta di riscatto. I proprietari di token possono rilanciare una richiesta di riscatto utilizzando un ID liquidazione diverso.
Payload:
{
 "fromOrgId": "fromOrgId value",
 "fromUserId": "fromUserId value",
 "settlementId": "settlementId value",
 "tokenId": "{{bc-token-id}}",
 "endorsers": {{endorsers}}
}
Parametri:
  • fromOrgId: string: l'ID del provider di servizi di appartenenza (MSP) dell'utente.
  • fromUserId: string: il nome utente o l'ID e-mail dell'utente.
  • settlementId: string: l'ID liquidazione per l'operazione di riscatto.
  • tokenId: string: l'ID del token.
Esempio di valore restituito:
{
   "status":"success",
   "msg":"Successfully rejected the token approval request"
}
removeRole
Nome metodo originale: removeRole
Questo metodo POST rimuove un ruolo da un utente e un token specificati. I token fungibili sono specificati dall'ID token. I token non fungibili sono specificati dal nome del token. Questo metodo può essere richiamato solo da un Token Admin del codice concatenato.
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "role": "role value (for example minter / burner)",
 "tokenDetail": "{\"tokenName\":\"tokenName value\"}",
 "endorsers": {{endorsers}}
}
Parametri:
  • orgId: string: l'ID del provider di servizi di appartenenza (MSP) dell'utente nell'organizzazione corrente.
  • userId: string: il nome utente o l'ID e-mail dell'utente.
  • role: string: il nome del ruolo da rimuovere dall'utente specificato.
  • tokenDetails: TokenDetail: i dettagli che specificano il token. Per i token non fungibili, utilizzare il seguente formato:
    {"tokenName":"artCollection"}
Esempio di valore restituito:
{
  "msg": "Successfully removed role 'minter' from Account Id: oaccount~60bb20c14a83f6e426e1437c479c5891e1c6477dfd7ad18b73acac5d80bc504b (Org-Id: appdev, User-Id: user1)"
}
removeTokenAdmin
Nome metodo originale: removeTokenAdmin
Questo metodo POST rimuove un utente come Token Admin del codice concatenato. Questo metodo può essere richiamato solo da un Token Admin del codice concatenato. Impossibile rimuovere se stesso come Token Admin.
Payload:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "sameOrgEndorser": true
}
Parametri:
  • orgId: string: l'ID del provider di servizi di appartenenza (MSP) dell'utente nell'organizzazione corrente.
  • userId: string: il nome utente o l'ID e-mail dell'utente.
Restituisce:
  • In caso di operazione riuscita, un messaggio che include i dettagli dell'utente rimosso come Token Admin del codice concatenato.
Esempio di valore restituito:
{"msg": "Successfully removed Admin (OrgId: appDev, UserId: user1)"}
requestBondRedemption
Nome metodo originale: requestBondRedemption
Questo metodo POST può essere chiamato solo dal proprietario del token per presentare una richiesta di riscatto dei token obbligazionari dopo la scadenza. Questo metodo prevede anche il calcolo del prezzo di rimborso mediante il codice concatenato. Le richieste di riscatto possono essere generate solo sull'intera quantità del token obbligazionario di proprietà dell'utente. Gli utenti possono generare più richieste di riscatto in base a ID liquidazione diversi, ma solo uno può essere approvato dall'autore del token.
Payload:
{
 "settlementId": "settlementId value",
 "tokenId": "{{bc-token-id}}",
 "orderId": "orderId value",
 "additionalFees": 1,
 "endorsers": {{endorsers}}
}
Parametri:
  • settlementId: string: l'ID liquidazione per l'operazione di riscatto.
  • tokenId: string: l'ID del token.
  • orderId: string: l'ID dell'ordine per l'operazione di acquisto.
  • additionalFees: number - I costi aggiuntivi da aggiungere al prezzo di riscatto.
Esempio di valore restituito:
{
         "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
Nome metodo originale: safeBatchTransferFrom
Questo metodo POST completa un'operazione batch che trasferisce i token specificati in una lista di ID token da un utente a un altro utente.

Per gli NFT, poiché il metodo trasferisce la proprietà dell'NFT, il mittente dell'NFT deve possedere il token.

Per gli NFT frazionari, se un utente (incluso il creatore del token) trasferisce tutte le azioni di cui è proprietario, perde la proprietà del token. Se una qualsiasi parte di un token viene trasferita a un utente, tale utente diventa automaticamente uno dei proprietari dell'NFT frazionario.

Il chiamante del metodo deve essere il mittente specificato.

{
 "fromOrgId": "fromOrgId value",
 "fromUserId": "fromUserId value",
 "toOrgId": "toOrgId value",
 "toUserId": "toUserId value",
 "tokenIds": "[\"{{bc-token-id}}\"]",
 "quantity": "[quantity value]",
 "endorsers": {{endorsers}}
}
Parametri:
  • fromOrgId: string: l'ID del provider di servizi di appartenenza (MSP) del mittente e del proprietario del token nell'organizzazione corrente.
  • fromUserId: string: il nome utente o l'ID di posta elettronica del mittente e del proprietario del token.
  • toOrgId: string: l'ID del provider di servizi di appartenenza (MSP) del destinatario nell'organizzazione corrente.
  • toUserId: string: il nome utente o l'ID e-mail del destinatario.
  • tokenIds: string[]: lista di ID token per i token da trasferire.
  • quantity: number[]: la lista delle quantità di token da trasferire, corrispondente all'array ID token.
Restituisce:
  • In caso di operazione riuscita, viene visualizzato un messaggio con i dettagli per ogni trasferimento di token.
Esempio di valore restituito:
[
    {
        "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
Nome metodo originale: suspendAccount
Questo metodo POST sospende un account token. Questo metodo può essere richiamato solo da un Token Admin del codice concatenato. Dopo la sospensione di un conto, non è possibile completare le operazioni che lo aggiornano. Impossibile sospendere un account eliminato.
Payload:
{
 "orgId": "{{bc-org-id}}",
 "userId": "{{bc-user-id}}",
 "endorsers": {{endorsers}}
}
Parametri:
  • orgId: string: l'ID del provider di servizi di appartenenza (MSP) dell'utente nell'organizzazione corrente.
  • userId: string: il nome utente o l'ID e-mail dell'utente.
Restituisce:
  • In caso di operazione riuscita, una rappresentazione JSON dello stato dell'account token.
Esempio di valore restituito:
{
    "assetType": "oaccountStatus",
    "statusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
    "accountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
    "status": "suspended"
}
updateBondToken
Nome metodo originale: updateBondToken
Questo metodo POST aggiorna i token. Ogni token definito ha un proprio metodo di aggiornamento. Impossibile aggiornare i metadati del token o l'URI del token dei token non fungibili. Questo metodo può essere chiamato solo dal proprietario del token.
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
}
Parametri:
  • tokenAsset: <Token Class>: l'asset token. Le proprietà dell'asset sono definite nel file modello.
Restituisce:
  • In caso di operazione riuscita, l'asset token aggiornato in formato JSON.
Esempio di valore restituito (intero 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
Nome metodo originale: URI
Questo metodo restituisce l'URI di un token specificato.
Query:
/URI?tokenId={{bc-token-id}}
Parametri:
  • tokenId: string: l'ID del token.
Esempio di valore restituito:
{
    "tokenUri": "example.com"
}
La tabella riportata di seguito mostra il mapping tra i nomi API del codice concatenato e gli endpoint aggiornati. Per informazioni dettagliate sull'API del codice concatenato, vedere Scaffolded TypeScript Token Project in Blockchain App Builder for Oracle Blockchain Platform.
Endpoint aggiornato Nome API codice concatenato TypeScript Nome API codice concatenato Go Tipo di metodo
activateAccount activateAccount ActivateAccount Metodo nativo ERC-1155
addAdmin addAdmin AddAdmin Metodo nativo ERC-1155
addRole addRole AddRole Metodo nativo ERC-1155
approveBondRedemption approveTokenRedemption ApproveTokenRedemption Modificato
balanceOfBatch balanceOfBatch BalanceOfBatch Metodo nativo ERC-1155
batchTransferFrom batchTransferFrom BatchTransferFrom Metodo nativo ERC-1155
burnBatch burnBatch BurnBatch Metodo nativo ERC-1155
createAccount createAccount CreateAccount Metodo nativo ERC-1155
createAccountWithEnrollment createAccountWithEnrollment CreateAccountWithEnrollment Aggiunto
createBondToken createBondToken CreateBondToken Metodo nativo ERC-1155
createIDCSUser createIDCSUser CreateIDCSUser Aggiunto
createTokenAccount createTokenAccount CreateTokenAccount Metodo nativo ERC-1155
createUserAccount createUserAccount CreateUserAccount Metodo nativo ERC-1155
deleteAccount deleteAccount DeleteAccount Metodo nativo ERC-1155
getAccount getAccount GetAccount Metodo nativo ERC-1155
getAccountBondSummary getAccountBondSummary GetAccountBondSummary Metodo del mercato obbligazionario
getAccountBondSummaryWithPagination getAccountBondSummaryWithPagination GetAccountBondSummaryWithPagination Metodo del mercato obbligazionario
getAccountDetailsByUser getAccountDetailsByUser GetAccountDetailsByUser Metodo nativo ERC-1155
getAccountStatus getAccountStatus GetAccountStatus Metodo nativo ERC-1155
getAccountStatusHistory getAccountStatusHistory GetAccountStatusHistory Metodo nativo ERC-1155
getAccountTransactionHistory getAccountTransactionHistory GetAccountTransactionHistory Metodo nativo ERC-1155
getAccountsByRole getAccountsByRole GetAccountsByRole Metodo nativo ERC-1155
getAllAccounts getAllAccounts GetAllAccounts Metodo nativo ERC-1155
getAllTokenAdmins getAllTokenAdmins GetAllTokenAdmins Metodo nativo ERC-1155
getAllTokens getAllTokens GetAllTokens Metodo nativo ERC-1155
getAllTokensByUser getAllTokensByUser GetAllTokensByUser Metodo nativo ERC-1155
getAllTokensWithFilters getAllTokensWithFilters GetAllTokensWithFilters Metodo del mercato obbligazionario
getTokenApprovalRequestByUser getTokenApprovalRequestByUser GetTokenApprovalRequestByUser Metodo del mercato obbligazionario
getTokenApprovalRequestForUserByStatus getTokenApprovalRequestForUserByStatus GetTokenApprovalRequestForUserByStatus Metodo del mercato obbligazionario
getTokenById getTokenById GetTokenById Metodo nativo ERC-1155
getTokenHistory getTokenHistory GetTokenHistory Metodo nativo ERC-1155
getUsersByRole getUsersByRole GetUsersByRole Metodo nativo ERC-1155
init init Init Metodo nativo ERC-1155
isInRole isInRole IsInRole Metodo nativo ERC-1155
isTokenAdmin isTokenAdmin IsTokenAdmin Metodo nativo ERC-1155
mintBatch mintBatch MintBatch Metodo nativo ERC-1155
ownerOf ownerOf OwnerOf Metodo nativo ERC-1155
payInterest payInterest PayInterest Modificato
postBondToken postToken PostToken Metodo del mercato obbligazionario
purchaseBondToken purchaseToken PurchaseToken Modificato
rejectBondRedemption rejectTokenRedemption RejectTokenRedemption Metodo del mercato obbligazionario
removeRole removeRole RemoveRole Metodo nativo ERC-1155
removeTokenAdmin removeTokenAdmin RemoveTokenAdmin Metodo nativo ERC-1155
requestBondRedemption requestTokenRedemption RequestTokenRedemption Metodo del mercato obbligazionario
safeBatchTransferFrom safeBatchTransferFrom SafeBatchTransferFrom Metodo nativo ERC-1155
suspendAccount suspendAccount SuspendAccount Metodo nativo ERC-1155
updateBondToken updateBondToken UpdateBondToken Metodo nativo ERC-1155
URI URI URI Metodo nativo ERC-1155