Package API wrapper framework token combinato
Oracle Blockchain Platform Digital Assets Edition include un package API wrapper che estende l'API REST per supportare operazioni specifiche per un marketplace NFT da collezione.
NFTCollectiblesWithERC1155WrapperAPI.zip, un file di archivio che contiene il package API wrapper, inclusi gli script Terraform necessari per la distribuzione. Questo file viene distribuito in uno stack di Resource Manager su Oracle Cloud Infrastructure (OCI) per creare le risorse Oracle necessarie per le API Wrapper.NFTCollectiblesWithERC1155_WrapperAPI.postman_collection.json, 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
-
registerOrg - Nome metodo originale:
registerOrg - Questo metodo POST registra un'organizzazione nel sistema. Questo metodo può essere chiamato solo da un amministratore di token.
- Payload:
{ "orgId": "{{bc-org-id}}", "orgName": "org_name value", "endorsers": {{endorsers}} } - Parametri:
orgId: string- L'ID MSP (Membership Service Provider) dell'utente nell'organizzazione corrente.orgName: string: (facoltativo) il nome dell'organizzazione.endorsers: string[]: un array di peer (ad esempio,peer1,peer2) che deve approvare la transazione.
- Esempio di valore restituito:
{ "assetType": "oorgregistry", "org_registry_id": "orgregistry", "registered_orgs": [ { "org_id": "Org1MSP", "org_name": "Organization name" } ] } -
getAllRegisteredOrgs - Nome metodo originale:
getAllRegisteredOrgs - Questo metodo GET recupera i dettagli di tutte le organizzazioni registrate. Questo metodo può essere chiamato solo da un amministratore di token.
- Query:
/getAllRegisteredOrgs - Parametri:
- nessuno
- Esempio di valore restituito:
[ { "org_id": "Org1MSP", "org_name": "Organization name" } ] -
activateAccount - Nome metodo originale:
activateAccount - Questo metodo POST attiva un account token. Questo metodo può essere chiamato solo da un amministratore o dal proprietario dell'account. Per i conti esistenti in cui non è stato trovato un
accountStatusnel libro contabile, il metodo restituisce un oggettoaccountStatuscon lo stato impostato suactive. - 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 MSP (Membership Service Provider) dell'utente nell'organizzazione corrente.userId: string: il nome utente o l'ID e-mail dell'utente.endorsers: string[]: un array di peer (ad esempio,peer1,peer2) che deve approvare la transazione.
- Restituisce:
- In caso di operazione riuscita, una rappresentazione JSON dell'oggetto stato account aggiornato per l'account token fungibile.
- 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 un utente come
Token Admindel codice concatenato. Questo metodo può essere chiamato solo da unToken Admindel codice concatenato. - Payload:
{ "orgId": "{{bc-org-id}}", "userId": "{{bc-user-id}}", "endorsers": {{endorsers}} } - Parametri:
orgId: string- L'ID MSP (Membership Service Provider) dell'utente nell'organizzazione corrente.userId: string: il nome utente o l'ID e-mail dell'utente.endorsers: string[]: un array di peer (ad esempio,peer1,peer2) che deve approvare la transazione.
- Restituisce:
- In caso di operazione riuscita, un messaggio che include i dettagli dell'utente aggiunto come
Token Admindel codice concatenato.
- In caso di operazione riuscita, un messaggio che include i dettagli dell'utente aggiunto come
- Esempio di valore restituito:
{ "msg": "Successfully added Admin (OrgId: appDev, UserId: user1)" } -
addRole - Nome metodo originale:
addRole - Questo metodo POST aggiunge il ruolo all'utente e al token specificati. Questo metodo può essere chiamato solo da un
Token Admindel codice concatenato. I token fungibili del parametro tokenDetails richiedono il valoretokenIdcome input. I token non fungibili richiedono l'input tokenName, per ottenere che usiamo il parametro tokenDetail per specificare i dettagli dei token fungibili e non fungibili in modo diverso. - 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:
tokenId: string: l'ID del token.orgId: string- L'ID MSP (Membership Service Provider) 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 fungibili, utilizzare il seguente formato:
Per i token non fungibili, utilizzare il seguente formato:{"tokenId":"token1"}{"tokenName":"artCollection"}endorsers: string[]: un array di peer (ad esempio,peer1,peer2) che deve approvare la transazione.
- Esempio di valore restituito:
{ "msg": "Successfully added role 'minter' to Account Id: oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a (Org-Id: appdev, User-Id: user2)" } -
associateFungibleTokenToAccount - Nome metodo originale:
associateFungibleTokenToAccount - Questo metodo POST associa l'account token fungibile di un utente a un token specificato.
- 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 MSP (Membership Service Provider) dell'utente nell'organizzazione corrente.userId: string: il nome utente o l'ID e-mail dell'utente.endorsers: string[]: un array di peer (ad esempio,peer1,peer2) che deve approvare la transazione.
- Esempio di valore restituito:
{ "assetType": "ouaccount", "accountId": "ouaccount~24ffd4d32a028a85b4b960f5d55536c837b5429bc7f346150adfa904ec2937cc", "userId": "user2", "orgId": "appdev", "totalAccounts": 1, "totalFtAccounts": 1, "associatedFtAccounts": [ { "accountId": "oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a", "tokenId": "tokenOne" } ], "associatedNftAccount": "" } -
buyWithEthCoin - Nome metodo originale:
buyWithEthCoin - Qualsiasi proprietario dell'account può utilizzare questo metodo POST per acquistare un NFT utilizzando Ethereum e per trasferire i token fedeltà come punti premio.
- Payload:
{ "fromOrgId":"from_org_id value", "fromUserId":"from_user_id value", "toOrgId":"to_org_id value", "toUserId":"to_user_id value", "nftId":"[\"nft_id value\"]", "loyaltyId":"[\"loyalty_id value\"]", "ethQty":"[eth_qty value]", "loyaltyRewardQuantity":"[loyalty_reward_quantity value]", "endorsers":{{"endorsers"}} } - Parametri:
fromOrgId: string– L'ID MSP (Membership Service Provider) del mittente (proprietario) dell'organizzazione corrente.fromUserId: string– Il nome utente o l'ID e-mail del mittente (proprietario).toOrgId: string- L'ID MSP (Membership Service Provider) del destinatario nell'organizzazione corrente.toUserId: string: il nome utente o l'ID e-mail del destinatario.nftId: string– L'ID del token da acquistare.loyaltyId: string– L'ID del token fungibile che rappresenta i punti fedeltà.ethQty: number– Il prezzo del token in Ethereum.loyaltyRewardQuantity: string– La quantità di punti fedeltà da trasferire.endorsers: string[]: un array di peer (ad esempio,peer1,peer2) che deve approvare la transazione.
- Esempio di valore restituito:
{ "msg": "Token ID : 'artcollection1' has been successfully transferred to UserID : 'user1'" } -
balanceOfBatch - Nome metodo originale:
balanceOfBatch - Questo metodo GET completa un'operazione batch che recupera i saldi dei conti token. Questo metodo può essere chiamato solo da un
Token Admindel codice concatenato o dal proprietario dell'account. - Query:
/balanceOfBatch?orgIds=["{{bc-org-id}}"]&userIds=["{{bc-user-id}}"]&tokenIds=["{{bc-token-id}}"] - Parametri:
orgIds: string[]: elenco degli ID MSP (Membership Service Provider) nell'organizzazione corrente.userIds: string[]: elenco del nome utente o degli ID e-mail.tokenIds: string[]: elenco degli ID del token.
- Esempio di valore restituito:
[ { "orgId": "AppBldFFFFMay22", "userId": "user2", "userAccountId": "ouaccount~412de5e3998dcd100973e1bad6e8729fddc1c7ff610beab8376d733a35c51f38", "tokenAccountId": "oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371", "tokenId": "FNFT", "balance": 100 }, { "orgId": "AppBldFFFFMay22", "userId": "user2", "userAccountId": "ouaccount~412de5e3998dcd100973e1bad6e8729fddc1c7ff610beab8376d733a35c51f38", "tokenAccountId": "oaccount~21206f309941a2a23c4f158a0fe1b8f12bb8e2b0c9a2e1358f5efebc0c7d410e", "tokenId": "FT", "balance": 50 }, { "orgId": "AppBldFFFFMay22", "userId": "example_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 un elenco di ID token da un utente a un altro utente. Questo metodo può essere chiamato da qualsiasi 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 MSP (Membership Service Provider) del mittente.fromUserId: string– L'ID utente del mittente.toOrgId: string– L'ID MSP (Membership Service Provider) del destinatario.toUserId: string: l'ID utente del destinatario.tokenIds: string[]: lista di ID token per i token da trasferire.quantity: number[]: l'elenco delle quantità di token da trasferire, corrispondente all'array ID token.endorsers: string[]: un array di peer (ad esempio,peer1,peer2) che deve approvare la transazione.
- Restituisce:
- In caso di operazione riuscita, 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: AppBldFFFFMay22, User-Id: user2) to Account-Id: oaccount~dcee860665db8740cb77b846e823752185a1e9a185814d0acb305890f5903446 (Org-Id: AppBldFFFFMay22, User-Id: example_minter)" }, { "msg": "Successfully transferred 10 FT token: 'FT' from Account-Id: oaccount~21206f309941a2a23c4f158a0fe1b8f12bb8e2b0c9a2e1358f5efebc0c7d410e (Org-Id: AppBldFFFFMay22, User-Id: user2) to Account-Id: oaccount~1089ee5122f367ee0ca38c6660298f4b81f199627e4f67f3691c0f628237974c (Org-Id: AppBldFFFFMay22, User-Id: example_minter)" }, { "msg": "Successfully transferred NFT token: 'NFT' from Account-Id: oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371 (Org-Id: AppBldFFFFMay22, User-Id: user2) to Account-Id: oaccount~dcee860665db8740cb77b846e823752185a1e9a185814d0acb305890f5903446 (Org-Id: AppBldFFFFMay22, User-Id: example_minter)" } ] -
burnBatch - Nome metodo originale:
burnBatch - Questo metodo POST disattiva, o brucia, i token fungibili e non fungibili specificati. Qualsiasi utente con il ruolo di masterizzatore 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 membership (MSP) nell'organizzazione corrente.userId: string: il nome utente o l'ID e-mail.tokenIds: string[]: la lista degli ID token da masterizzarequantity: number[]: l'elenco delle quantità di token da masterizzare, corrispondente all'array ID token.sameOrgEndorser: boolean: valore booleano che indica se le dichiarazioni a sostegno delle transazioni devono provenire dalla stessa organizzazione del richiedente.
- Restituisce:
- In caso di successo, un messaggio con 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: user2)" }, { "msg": "Successfully burned 5 tokens of tokenId: tokenOne from Account-ID oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a (Org-Id: appdev, User-Id: user2)" }, { "msg": "Successfully burned 2 token share of tokenId: FNFT from Account-ID oaccount~87bcb699d507368ee3966cd03ee6d7736ffc55dde8c0f0e16b14866334ac504a (Org-Id: AutoF1377358917, User-Id: user2)" } ] -
burnNFT - Nome metodo originale:
burnNFT - Questo metodo POST disattiva o brucia il token non fungibile specificato e restituisce un oggetto token e la cronologia token. Qualsiasi utente con il ruolo di masterizzatore può chiamare questo metodo.
- Payload:
{ "orgId": "{{bc-org-id}}", "userId": "{{bc-user-id}}", "tokenId": "{{bc-token-id}}", "sameOrgEndorser": true } - Parametri:
orgId: string- L'ID del provider di servizi di membership (MSP) nell'organizzazione corrente.userId: string: il nome utente o l'ID e-mail.tokenId: string– L'ID del token non fungibile da masterizzaresameOrgEndorser: boolean: valore booleano che indica se le dichiarazioni a sostegno delle transazioni devono provenire dalla stessa organizzazione del richiedente.
- Restituisce:
- In caso di operazione riuscita, un array JSON contenente un messaggio sull'operazione di masterizzazione.
- Esempio di valore restituito:
{ "msg": "Successfully burned NFT token: 'art' from Account-Id: oaccount~76cb672eeb1bd535899562a840d0c15a356db89e24bc8b43ac1dba845a4282c6 (Org-Id: appdev, User-Id: user2)" } -
createAccount - Nome metodo originale:
createAccount - Questo metodo POST crea un account per un utente specificato e gli account token associati per token fungibili o non fungibili. È 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. Gli utenti devono disporre di account nella rete per completare le operazioni correlate al token. Questo metodo può essere chiamato solo da un
Token Admindel codice concatenato.Un account utente ha un ID univoco, formato da un hash SHA-256 del parametro
orgIde del parametrouserId.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, il parametrouserId, la stringa costanteftseparata dal simbolo tilde (~) e un numero contatore che indica l'indice del conto fungibile che viene 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 parametrouserIde della stringa costantenftseparati dal simbolo tilde (~). Tutti i token non fungibili di proprietà di un utente, siano essi interi o frazionari, sono collegati a questo account.Gli ID account utente iniziano con
ouaccount~. Gli ID account token iniziano conoaccount~. - Payload:
{ "orgId": "{{bc-org-id}}", "userId": "{{bc-user-id}}", "ftAccount": true, "nftAccount": true, "endorsers": {{endorsers}} } - Parametri:
orgId: string- L'ID MSP (Membership Service Provider) dell'utente nell'organizzazione corrente.userId: string: il nome utente o l'ID e-mail dell'utente.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 e associato all'account utente.endorsers: string[]: un array di peer (ad esempio,peer1,peer2) che deve approvare la transazione.
- 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" } -
createArtCollectionToken - Nome metodo originale:
createArtCollectionToken - Questo metodo POST crea (mette) un NFT. L'asset e le proprietà associate vengono salvate nel database di stato. Il chiamante di questa transazione deve avere un account token. Il chiamante di questa transazione diventa il proprietario di NFT. Se il file di specifica del token include la sezione
rolesperbehaviorse la proprietàminter_role_nameperroles, il chiamante della transazione deve avere il ruolo minore. Altrimenti, qualsiasi chiamante può coniare NFT. - Payload:
{ "tokenAsset": "{\"tokenId\":\"{{bc-token-id}}\",\"tokenDesc\":\"tokenDesc value\",\"tokenUri\":\"tokenUri value\",\"tokenMetadata\":{\"Painting_Name\":\"Painting_Name value\",\"Description\":\"Description value\",\"Painter_Name\":\"Painter_Name value\"},\"Price\":999,\"On_Sale_Flag\":true}", "quantity": 1, "sameOrgEndorser": true } - Parametri:
tokenAsset: <Token Class>: l'asset token da zecca. Per ulteriori informazioni sulle proprietà dell'asset token, vedere il file delle specifiche di input.quantity: number: il numero di token da identificare. L'unico valore supportato per questo parametro è1.sameOrgEndorser: boolean: valore booleano che indica se le dichiarazioni a sostegno delle transazioni devono provenire dalla stessa organizzazione del richiedente.
- 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" } -
createLoyaltyToken - Nome metodo originale:
createLoyaltyToken - Questo metodo POST crea i token. Ogni token definito ha il proprio metodo di creazione. Questo metodo può essere chiamato solo da un
Token Admindel codice concatenato. - Payload:
{ "tokenAsset": "{\"tokenId\":\"{{bc-token-id}}\",\"tokenDesc\":\"tokenDesc value\",\"Token_Name\":\"Token_Name value\",\"Token_to_Currency_Ratio\":999}", "sameOrgEndorser": true } - Parametri:
tokenAsset: <Token Class>: asset del token. Le proprietà dell'asset sono definite nel file del modello.sameOrgEndorser: boolean: valore booleano che indica se le dichiarazioni a sostegno delle transazioni devono provenire dalla stessa organizzazione del richiedente.
- Esempio di valore restituito:
{ "assetType": "otoken", "events": false, "tokenId": "token2", "tokenName": "loyalty", "tokenDesc": "tokenDesc value", "tokenStandard": "erc1155+", "tokenType": "fungible", "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" } -
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, il parametrouserId, la stringa costanteftseparata dal simbolo tilde (~) e un numero contatore che indica l'indice del conto fungibile che viene 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 parametrouserIde della stringa costantenftseparati dal simbolo tilde (~). Tutti i token non fungibili di proprietà di un utente, siano essi interi o frazionari, sono collegati a questo account.Questo metodo può essere chiamato solo da un
Token Admindel codice concatenato. - Payload:
{ "orgId": "{{bc-org-id}}", "userId": "{{bc-user-id}}", "tokenType": "nonfungible", "endorsers": {{endorsers}} } - Parametri:
orgId: string- L'ID MSP (Membership Service Provider) 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 sonononfungibleefungible.endorsers: string[]: un array di peer (ad esempio,peer1,peer2) che deve approvare la transazione.
- 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": "oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a" } -
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. Gli utenti devono disporre di account nella rete per completare le operazioni correlate al token.
Un ID account è un hash SHA-256 del parametro
orgIde del parametrouserId. Questo metodo può essere chiamato solo da unToken Admindel codice concatenato. - Payload:
{ "orgId": "{{bc-org-id}}", "userId": "{{bc-user-id}}", "endorsers": {{endorsers}} } - Parametri:
orgId: string- L'ID MSP (Membership Service Provider) dell'utente nell'organizzazione corrente.userId: string: il nome utente o l'ID e-mail dell'utente.endorsers: string[]: un array di peer (ad esempio,peer1,peer2) che deve approvare la transazione.
- 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. Dopo l'eliminazione di un conto, il conto si trova in uno stato finale e non può essere aggiornato o modificato in un altro stato. Per eliminare un conto, il saldo del conto deve essere zero. Questo metodo può essere chiamato solo da un
Token Admindel codice concatenato. - Payload:
{ "orgId": "{{bc-org-id}}", "userId": "{{bc-user-id}}", "endorsers": {{endorsers}} } - Parametri:
orgId: string- L'ID MSP (Membership Service Provider) dell'utente nell'organizzazione corrente.userId: string: il nome utente o l'ID e-mail dell'utente.endorsers: string[]: un array di peer (ad esempio,peer1,peer2) che deve approvare la transazione.
- Restituisce:
- In caso di operazione riuscita, una rappresentazione JSON dello stato dell'account token.
- Esempio di valore restituito:
{ "assetType": "oaccountStatus", "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7", "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1", "status": "deleted" } -
exchangeToken - Nome metodo originale:
exchangeToken - Questo metodo scambia i token tra gli account specificati. Questo metodo supporta solo lo scambio tra un NFT e un token fungibile o un token fungibile e un NFT. Il NFT può essere intero o frazionario. Questo metodo può essere chiamato solo dal proprietario dell'account.
- Payload:
{ "fromTokenId": "fromTokenId value", "fromOrgId": "fromOrgId value", "fromUserId": "fromUserId value", "fromTokenQuantity": 1, "toTokenId": "toTokenId value", "toOrgId": "toOrgId value", "toUserId": "toUserId value", "toTokenQuantity": 1, "endorsers": {{endorsers}} } - Parametri:
fromTokenId: string: l'ID del token di proprietà del mittente.fromOrgId: string– L'ID MSP (Membership Service Provider) del mittente nell'organizzazione corrente.fromUserId: string– Il nome utente o l'ID e-mail del mittente.fromTokenQuantity: number– La quantità di token dal mittente da scambiare con il ricevitore.toTokenId: string: l'ID del token di proprietà del ricevente.toOrgId: string- L'ID MSP (Membership Service Provider) del destinatario nell'organizzazione corrente.toUserId: string: il nome utente o l'ID e-mail del destinatario.toTokenQuantity: number– La quantità di token dal destinatario da scambiare con il mittente.endorsers: string[]: un array di peer (ad esempio,peer1,peer2) che deve approvare la transazione.
- Restituisce:
- In caso di operazione riuscita, un messaggio con i dettagli dello scambio di token.
- Esempio di valore restituito:
{ "msg": "Succesfully exchanged 10 tokens of type nonfungible with tokenId: [r1] from Account oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371 (OrgId: AppBldFFFFMay22, UserId: user2) to 10 tokens of type fungible with tokenId: [loy1] from Account oaccount~1089ee5122f367ee0ca38c6660298f4b81f199627e4f67f3691c0f628237974c (OrgId: AppBldFFFFMay22, UserId: example_minter)" } -
getAccount - Nome metodo originale:
getAccount - Questo metodo GET restituisce i dettagli dell'account token per un utente specificato. Questo metodo può essere chiamato solo da un
Token Admindel codice concatenato o dalAccount Ownerdell'account. - Query:
/getAccount?orgId={{bc-org-id}}&userId={{bc-user-id}} - Parametri:
orgId: string- L'ID MSP (Membership Service Provider) 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 i dettagli dell'account token.
- Esempio di valore restituito
{ "assetType": "oaccount", "accountId": "oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371", "userId": "user2", "orgId": "AppBldFFFFMay22", "tokenType": "nonfungible", "noOfNfts": 3 } -
getAccountDetailsByUser - Nome metodo originale:
getAccountDetailsByUser - Questo metodo GET restituisce i dettagli del conto per un utente specificato. Questo metodo può essere chiamato solo da un
Token Admindel codice concatenato o dalAccount Ownerdell'account. - Query:
/getAccountDetailsByUser?orgId={{bc-org-id}}&userId={{bc-user-id}} - Parametri:
orgId: string- L'ID MSP (Membership Service Provider) dell'utente nell'organizzazione corrente.userId: string: il nome utente o l'ID e-mail 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" } ] } } -
getAccountHistory - Nome metodo originale:
getAccountHistory - Questo metodo GET restituisce la cronologia dell'account per un account token specificato. Per i conti NFT, il parametro
tokenIddeve essere vuoto. Questo metodo può essere chiamato solo dalToken Admindel codice concatenato o dal proprietario dell'account. - Query:
/getAccountHistory?orgId={{bc-org-id}}&userId={{bc-user-id}}&tokenId={{bc-token-id}} - Parametri:
orgId: string- L'ID MSP (Membership Service Provider) dell'utente nell'organizzazione corrente.userId: string: il nome utente o l'ID e-mail dell'utente.tokenId: string– L'ID del token fungibile.
- Esempio di valore restituito:
[ { "trxId": "a2cfc6fc064334d6b9931cdf67193711ec2ff5c50a4714f11855fe7384f00e35", "timeStamp": "2023-06-06T14:44:31.000Z", "value": { "accountId": "oaccount~21206f309941a2a23c4f158a0fe1b8f12bb8e2b0c9a2e1358f5efebc0c7d410e", "assetType": "oaccount", "balance": 100, "orgId": "AppBldFFFFMay22", "tokenId": "loy1", "tokenName": "loyalty", "tokenType": "fungible", "userId": "user2" } }, { "trxId": "de483cf7505ae4e7018c4b604c3ab9327c2fb1f802d9408e22735667c1d6997f", "timeStamp": "2023-06-06T14:43:23.000Z", "value": { "assetType": "oaccount", "accountId": "oaccount~21206f309941a2a23c4f158a0fe1b8f12bb8e2b0c9a2e1358f5efebc0c7d410e", "userId": "user2", "orgId": "AppBldFFFFMay22", "tokenType": "fungible", "tokenId": "loy1", "tokenName": "loyalty", "balance": 0 } }, { "trxId": "db053e653d3ad9aa5b7b6e04b7cd51aacfbb413272d857a155b60d2a6a12bf4d", "timeStamp": "2023-06-05T16:59:08.000Z", "value": { "assetType": "oaccount", "accountId": "oaccount~21206f309941a2a23c4f158a0fe1b8f12bb8e2b0c9a2e1358f5efebc0c7d410e", "userId": "user2", "orgId": "AppBldFFFFMay22", "tokenType": "fungible", "tokenId": "", "balance": 0 } } ] -
getAccountStatus - Nome metodo originale:
getAccountStatus - Questo metodo GET recupera lo stato corrente dell'account token. Questo metodo può essere chiamato dal
Token Admindel codice concatenato o dal proprietario dell'account token. - Query:
/getAccountStatus?orgId={{bc-org-id}}&userId={{bc-user-id}} - Parametri:
orgId: string- L'ID MSP (Membership Service Provider) 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", "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7", "account_id": "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 Admindel codice concatenato o dal proprietario dell'account token. - Query:
/getAccountStatusHistory?orgId={{bc-org-id}}&userId={{bc-user-id}} - Parametri:
orgId: string- L'ID MSP (Membership Service Provider) 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", "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7", "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1", "status": "suspended" } }, { "trxId": "e6c850cfa084dc20ad95fb2bb8165eef3a3bd62a0ac867cccee57c2003125183", "timeStamp": "2022-12-02T10:37:50.000Z", "value": { "assetType": "oaccountStatus", "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7", "account_id": "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 Admindel codice concatenato o dal proprietario dell'account. - Query:
/getAccountTransactionHistory?orgId={{bc-org-id}}&userId={{bc-user-id}} - Parametri:
orgId: string- L'ID MSP (Membership Service Provider) 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 restituisce un elenco di tutti gli ID account per un ruolo specificato. Questo metodo può essere chiamato solo da un
Token Admindel codice concatenato. - Query:
/getAccountsByRole?role=role value (for example minter / burner)&tokenDetail={"tokenName":"tokenName value"} - Parametri:
role: string: il nome del ruolo da cercare.tokenDetails: TokenDetail: i dettagli che specificano il token. Per i token fungibili, utilizzare il seguente formato:
Per i token non fungibili, utilizzare il seguente formato:{"tokenId":"token1"}{"tokenName":"artCollection"}
- 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 chiamato solo da un
Token Admindel codice concatenato. - Query:
/getAllAccounts - Parametri:
- nessuno
- Restituisce:
- Al successo, un array JSON di tutti gli account.
- Esempio di valore restituito:
[ { "assetType": "ouaccount", "accountId": "ouaccount~412de5e3998dcd100973e1bad6e8729fddc1c7ff610beab8376d733a35c51f38", "userId": "user2", "orgId": "AppBldFFFFMay22", "totalAccounts": 2, "totalFtAccounts": 1, "associatedFtAccounts": [ { "accountId": "oaccount~21206f309941a2a23c4f158a0fe1b8f12bb8e2b0c9a2e1358f5efebc0c7d410e", "tokenId": "loy1" } ], "associatedNftAccount": "oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371" }, { "assetType": "ouaccount", "accountId": "ouaccount~9501bb774c156eb8354dfe489250ea91f757523d70f08ee494bda98bb352003b", "userId": "example_minter", "orgId": "AppBldFFFFMay22", "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 Admindel codice concatenato. Questo metodo può essere chiamato solo dalToken Admindel codice concatenato. - Query:
/getAllTokenAdmins - Parametri:
- nessuno
- Restituisce:
- In caso di operazione riuscita, un array
adminsin formato JSON contenente oggettiorgIdeuserId.
- In caso di operazione riuscita, un array
- Esempio di valore restituito:
{ "admins": [ { "orgId": "appdev", "userId": "user2" }, { "orgId": "appdev", "userId": "user1" } ] } -
getAllTokens - Nome metodo originale:
getAllTokens - Questo metodo GET restituisce tutti gli asset token salvati nel database di stato. Questo metodo può essere chiamato solo da un
Token Admindel codice concatenato. Questo metodo utilizza query avanzate SQL DB Berkeley e può essere richiamato solo quando si è connessi alla rete remota di Oracle Blockchain Platform. - Query:
/getAllTokens - Parametri:
- nessuno
- 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 avanzate SQL DB Berkeley e può essere richiamato solo quando si è connessi alla rete remota di Oracle Blockchain Platform. Questo metodo può essere chiamato solo da un
Token Admindel codice concatenato o dal proprietario dell'account. - Query:
/getAllTokensByUser?orgId={{bc-org-id}}&userId={{bc-user-id}} - Parametri:
org_id: string- L'ID MSP (Membership Service Provider) dell'utente nell'organizzazione corrente.user_id: 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" }] -
getTokenById - Nome metodo originale:
getTokenById - Questo metodo GET restituisce un oggetto token se il token è presente nel database di stato. Questo metodo può essere chiamato solo da un
Token Admindel codice concatenato o dal proprietario del token. Per gli NFT frazionari, la risposta include l'elenco dei proprietari di 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" } ] -
getTokenDecimal - Nome metodo originale:
getTokenDecimal - Questo metodo restituisce il numero di posizioni decimali per un token specificato. Questo metodo può essere chiamato solo da un
Token Admindel codice concatenato. - Query:
/getTokenDecimal?tokenId={{bc-token-id}} - Parametri:
tokenId: string: l'ID del token.
- Esempio di valore restituito:
{ "msg": "Token Id: tokenOne has 2 decimal places." } -
getTokenHistory - Nome metodo originale:
getTokenHistory - Questo metodo GET restituisce la cronologia per un ID token specificato. Chiunque può chiamare questo metodo.
/getTokenHistory?tokenId={{bc-token-id}}- Parametri:
tokenId: string: l'ID del 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" } ] -
getTokensByName - Nome metodo originale:
getTokensByName - Questo metodo GET restituisce tutti gli asset token per un nome token specificato. Questo metodo utilizza query avanzate SQL DB Berkeley e può essere richiamato solo quando si è connessi alla rete remota di Oracle Blockchain Platform. Questo metodo può essere chiamato solo da un
Token Admindel codice concatenato. - Query:
/getTokensByName?tokenName=tokenName value - Parametri:
tokenName: string: il nome del token.
- Esempio di valore restituito:
[ { "key": "tokenOne", "valueJson": { "assetType": "otoken", "tokenId": "tokenOne", "tokenName": "moneytok", "tokenStandard": "erc1155+", "tokenType": "fungible", "tokenUnit": "fractional", "behaviors": [ "divisible", "mintable", "transferable", "roles" ], "roles": { "minter_role_name": "minter", "burner_role_name": "burner" }, "mintable": { "max_mint_quantity": 1000 }, "divisible": { "decimal": 2 } } }, { "key": "tokenTwo", "valueJson": { "assetType": "otoken", "tokenId": "tokenTwo", "tokenName": "moneytok", "tokenStandard": "erc1155+", "tokenType": "fungible", "tokenUnit": "fractional", "behaviors": [ "divisible", "mintable", "transferable", "roles" ], "roles": { "minter_role_name": "minter", "burner_role_name": "burner" }, "mintable": { "max_mint_quantity": 1000 }, "divisible": { "decimal": 2 } } } ] -
getTransactionById - Nome metodo originale:
getTransactionById - Questo metodo GET restituisce la cronologia delle transazioni per un ID transazione specificato. Questo è un metodo asincrono. Questo metodo può essere chiamato da qualsiasi utente.
- Query:
/getTransactionById?transactionId=transactionId value - Parametri:
transactionId: string– L'ID della transazione, che è il prefissootransaction~seguito dall'hash a 64 bit in formato esadecimale.
- Esempio di valore restituito:
{ "transactionId": "otransaction~9ea7b05ab099f7ff4db8342b8c3609031f1d54f11205906e7f1fe88661fe3cbe~33b59ce0c89e96c1e16449f24301581e8e71954f38ad977c7eb6f065e87f2a53", "history": [ { "trxId": "9ea7b05ab099f7ff4db8342b8c3609031f1d54f11205906e7f1fe88661fe3cbe", "timeStamp": "2022-12-08T09:01:28.000Z", "value": { "assetType": "otransaction", "transactionId": "otransaction~9ea7b05ab099f7ff4db8342b8c3609031f1d54f11205906e7f1fe88661fe3cbe~33b59ce0c89e96c1e16449f24301581e8e71954f38ad977c7eb6f065e87f2a53", "tokenId": "tokenOne", "fromAccountId": "oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a", "toAccountId": "", "transactionType": "BURN", "amount": 5, "timestamp": "2022-12-08T09:01:28.000Z", "triggeredByUserAccountId": "ouaccount~24ffd4d32a028a85b4b960f5d55536c837b5429bc7f346150adfa904ec2937cc" } } ] } -
getUserByAccountId - Nome metodo originale:
getUserByAccountId - Questo metodo GET restituisce l'ID organizzazione e l'ID utente per un ID account specificato.
- Query:
/getUserByAccountId?accountId=accountId value - Parametri:
accountId: string– L'ID dell'account.
- Esempio di valore restituito:
{ "orgId": "AppBldFFFFMay22", "userId": "user2" } -
getUsersByRole - Nome metodo originale:
getUsersByRole - Questo metodo GET restituisce un elenco di tutti gli utenti per un ruolo specificato.
- Query:
/getUsersByRole?role=role value (for example minter / burner)&tokenDetail={"tokenName":"tokenName value"} - Parametri:
role: string: il nome del ruolo da cercare.tokenDetail: TokenDetail: i dettagli che specificano il token. Per i token fungibili, utilizzare il seguente formato:
Per i token non fungibili, utilizzare il seguente formato:{"tokenId":"token1"}{"tokenName":"artCollection"}
- 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 richiamato quando viene distribuito il codice concatenato. Le informazioni utente vengono salvate come
Token Admindel codice concatenato. - Payload:
{ "adminList": "[{\"orgId\":\"{{bc-org-id}}\",\"userId\":\"{{bc-user-id}}\"}]" } - Parametri:
adminList array: array di informazioni{user_id, org_id}che specifica la lista di amministratori di token. L'arrayadminListè 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. Questo metodo può essere chiamato solo da un
Token Admindel codice concatenato o dalAccount Ownerdell'account. - 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 MSP (Membership Service Provider) 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.tokenDetail: TokenDetail: i dettagli che specificano il token. Per i token fungibili, utilizzare il seguente formato:
Per i token non fungibili, utilizzare il seguente formato:{"tokenId":"token1"}{"tokenName":"artCollection"}
- Esempio di valore restituito:
{ "result": true, "msg": "Account Id oaccount~1422a74d262a3a55a37cd9023ef8836f765d0be7b49d397696b9961d7434d22a (Org-Id: appdev, User-Id: user2) has minter role" } -
isTokenAdmin - Nome metodo originale:
isTokenAdmin - Questo metodo GET restituisce il valore booleano
truese il chiamante della funzione è unToken Admin, altrimenti restituiscefalse. Questo metodo può essere chiamato solo da unToken Admindel codice concatenato. - Query:
/isTokenAdmin?orgId={{bc-org-id}}&userId={{bc-user-id}} - Parametri:
orgId: string- L'ID MSP (Membership Service Provider) dell'utente nell'organizzazione corrente.userId: string: il nome utente o l'ID e-mail dell'utente.
- Restituisce:
- Il metodo restituisce
truese il chiamante èToken Admin, altrimenti restituiscefalse.
- Il metodo restituisce
- Esempio di valore restituito:
{ "result": true } -
mintBatch - Nome metodo originale:
mintBatch - Questo metodo POST crea (mette) più token in un'operazione batch. Questo metodo crea solo token fungibili o token non fungibili frazionari.
Per i token fungibili, se il ruolo più piccolo è definito nel file di specifica, qualsiasi utente con il ruolo più piccolo può chiamare questo metodo. In caso contrario, qualsiasi utente può utilizzare questo metodo per creare token. Non è possibile creare più di una proprietà
max_mint_quantitydel 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 creare token. Inoltre, il chiamante deve essere anche il creatore del token. Non esiste un limite superiore alla quantità di token non fungibili frazionari che possono essere coniati.
Non è possibile utilizzare questo metodo per coniare un token intero non fungibile.
- Payload:
{ "orgId": "{{bc-org-id}}", "userId": "{{bc-user-id}}", "tokenIds": "[\"{{bc-token-id}}\"]", "quantity": "[quantity value]", "sameOrgEndorser": true } - Parametri:
orgId: string- L'ID MSP (Membership Service Provider) dell'utente nell'organizzazione corrente.userId: string: il nome utente o l'ID e-mail dell'utente.tokenIds: string[]: la lista di ID token per i token mint.quantity: number[]: l'elenco delle quantità di token da mint, corrispondente all'array ID token.sameOrgEndorser: boolean: valore booleano che indica se le dichiarazioni a sostegno delle transazioni devono provenire dalla stessa organizzazione del richiedente.
- 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: AppBldFFFFMay22, User-Id: user2).", "details": [ { "msg": "Successfully minted 100 tokens of fractional tokenId: plot55 to Org-Id: AppBldFFFFMay22, User-Id: user2" }, { "msg": "Successfully minted 100 tokens of tokenId: loyalty to Token-Account-Id oaccount~21206f309941a2a23c4f158a0fe1b8f12bb8e2b0c9a2e1358f5efebc0c7d410e" } ] } -
post - Nome metodo originale:
post - Questo metodo POST pubblica un token per la vendita per un prezzo specificato.
- Payload:
{ "tokenId": "{{bc-token-id}}", "sellingPrice": 1, "endorsers": {{endorsers}} } - Parametri:
tokenId: string: l'ID del token.sellingPrice: number– Il prezzo del token.endorsers: string[]: un array di peer (ad esempio,peer1,peer2) che deve approvare la transazione.
- Esempio di valore restituito:
{ "msg": "Token ID : 'artCollection1' has been posted for selling in the marketplace" } -
removeRole - Nome metodo originale:
removeRole - Questo metodo rimuove un ruolo da un utente specificato. Questo metodo può essere chiamato solo da un
Token Admindel codice concatenato. - Payload:
{ "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 MSP (Membership Service Provider) 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.tokenDetail: TokenDetail: i dettagli che specificano il token. Per i token fungibili, utilizzare il seguente formato:
Per i token non fungibili, utilizzare il seguente formato:{"tokenId":"token1"}{"tokenName":"artCollection"}endorsers: string[]: un array di peer (ad esempio,peer1,peer2) che deve approvare la transazione.
- 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 Admindel codice concatenato. Questo metodo può essere chiamato solo da unToken Admindel codice concatenato. Un amministratore non può rimuovere se stesso. - Payload:
{ "orgId": "{{bc-org-id}}", "userId": "{{bc-user-id}}", "sameOrgEndorser": true } - Parametri:
org_id: string- L'ID MSP (Membership Service Provider) dell'utente nell'organizzazione corrente.user_id: string: il nome utente o l'ID e-mail dell'utente.sameOrgEndorser: boolean: valore booleano che indica se le dichiarazioni a sostegno delle transazioni devono provenire dalla stessa organizzazione del richiedente.
- Esempio di valore restituito:
{ "msg": "Successfully removed Admin (OrgId: appDev, UserId: user1)" } -
safeBatchTransferFrom - Nome metodo originale:
safeBatchTransferFrom - Questo metodo POST trasferisce la proprietà dei token specificati dal chiamante a un altro account. Il chiamante di questo metodo deve essere il mittente dei token e deve essere proprietario dei token specificati. Per i NFT frazionari, se un utente trasferisce tutte le proprie azioni a un altro utente, perde la proprietà del token.
- 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 MSP (Membership Service Provider) del mittente e del proprietario del token nell'organizzazione corrente.fromUserId: string– Il nome utente o l'ID e-mail del mittente e del proprietario del token.toOrgId: string- L'ID MSP (Membership Service Provider) del destinatario nell'organizzazione corrente.toUserId: string: il nome utente o l'ID e-mail del destinatario.tokenIds: string[]: array degli ID dei token da trasferire.quantity: number[]: l'elenco delle quantità di token da trasferire, corrispondente all'array ID token.endorsers: string[]: un array di peer (ad esempio,peer1,peer2) che deve approvare la transazione.
- Esempio di valore restituito:
[ { "msg": "Successfully transferred NFT token: 'FNFT' of '10' quantity from Account-Id: oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371 (Org-Id: AppBldFFFFMay22, User-Id: user2) to Account-Id: oaccount~dcee860665db8740cb77b846e823752185a1e9a185814d0acb305890f5903446 (Org-Id: AppBldFFFFMay22, User-Id: example_minter)" }, { "msg": "Successfully transferred 10 FT token: 'FT' from Account-Id: oaccount~21206f309941a2a23c4f158a0fe1b8f12bb8e2b0c9a2e1358f5efebc0c7d410e (Org-Id: AppBldFFFFMay22, User-Id: user2) to Account-Id: oaccount~1089ee5122f367ee0ca38c6660298f4b81f199627e4f67f3691c0f628237974c (Org-Id: AppBldFFFFMay22, User-Id: example_minter)" }, { "msg": "Successfully transferred NFT token: 'NFT' from Account-Id: oaccount~e88276a3be547e31b567346bdddde52d37734da4d5fae83ab2e5c98a10097371 (Org-Id: AppBldFFFFMay22, User-Id: user2) to Account-Id: oaccount~dcee860665db8740cb77b846e823752185a1e9a185814d0acb305890f5903446 (Org-Id: AppBldFFFFMay22, User-Id: example_minter)" } ] -
suspendAccount - Nome metodo originale:
suspendAccount - Questo metodo POST sospende un account token fungibile. Restituisce un errore se non viene trovato un valore
accountStatusnel libro contabile. Questo metodo può essere chiamato solo da unToken Admindel codice concatenato. - Payload:
{ "orgId": "{{bc-org-id}}", "userId": "{{bc-user-id}}", "endorsers": {{endorsers}} } - Parametri:
orgId: string- L'ID MSP (Membership Service Provider) dell'utente nell'organizzazione corrente.userId: string: il nome utente o l'ID e-mail dell'utente.endorsers: string[]: un array di peer (ad esempio,peer1,peer2) che deve approvare la transazione.
- Esempio di valore restituito:
{ "assetType": "oaccountStatus", "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7", "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1", "status": "suspended" } -
totalNetSupply - Nome metodo originale:
totalNetSupply - Questo metodo GET restituisce il numero totale di token coniati meno il numero di token bruciati. Questo metodo può essere chiamato solo da un
Token Admindel codice concatenato. - Query (token fungibili):
/totalNetSupply?tokenDetail={"tokenId":"{{bc-token-id}}"} - Query (token non fungibili):
/totalNetSupply?tokenDetail={"tokenName":"tokenName value"} - Parametri:
tokenDetail: TokenDetail: i dettagli che specificano il token. Per i token fungibili, utilizzare il seguente formato:
Per i token non fungibili, utilizzare il seguente formato:{"tokenId":"token1"}{"tokenName":"artCollection"}
- Esempio di valore restituito:
{ "totalNetSupply": 105 } -
totalSupply - Nome metodo originale:
totalSupply - Questo metodo GET restituisce il numero totale di token coniati. Questo metodo può essere chiamato solo da un
Token Admindel codice concatenato. - Query (token fungibili):
/totalSupply?tokenDetail={"tokenId":"{{bc-token-id}}"} - Query (token non fungibili):
/totalSupply?tokenDetail={"tokenName":"tokenName value"} - Parametri:
tokenDetail: TokenDetail: i dettagli che specificano il token. Per i token fungibili, utilizzare il seguente formato:
Per i token non fungibili, utilizzare il seguente formato:{"tokenId":"token1"}{"tokenName":"artCollection"}
- Esempio di valore restituito:
{ "totalSupply": 110 } -
updateArtCollectionToken - Nome metodo originale:
updateArtCollectionToken - Questo metodo POST aggiorna le proprietà del token. Solo il proprietario del token può chiamare questo metodo. Per gli NFT, i metadati del token e l'URI del token non possono essere aggiornati dopo la stampa 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 da aggiornare. Per ulteriori informazioni sulle proprietà dell'asset token, vedere il file delle specifiche di input.endorsers: string[]: un array di peer (ad esempio,peer1,peer2) che deve approvare la transazione.
- 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" } -
updateLoyaltyToken - Nome metodo originale:
updateLoyaltyToken - Questo metodo POST aggiorna le proprietà del token. Solo il proprietario del token può chiamare questo metodo. Per gli NFT, i metadati del token e l'URI del token non possono essere aggiornati dopo la stampa del token.
- Payload:
{ "tokenAsset": "{\"tokenId\":\"{{bc-token-id}}\",\"tokenDesc\":\"tokenDesc value\",\"Token_Name\":\"Token_Name value\",\"Token_to_Currency_Ratio\":999}", "sameOrgEndorser": true } - Parametri:
tokenAsset: <Token Class>: l'asset token da aggiornare. Per ulteriori informazioni sulle proprietà dell'asset token, vedere il file delle specifiche di input.endorsers: string[]: un array di peer (ad esempio,peer1,peer2) che deve approvare la transazione.
- Esempio di valore restituito:
{ "assetType": "otoken", "events": false, "tokenId": "token2", "tokenName": "loyalty", "tokenDesc": "tokenDesc value", "tokenStandard": "erc1155+", "tokenType": "fungible", "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 GET restituisce l'URI di un token specificato. Solo l'autore del token può chiamare questo metodo.
- Query
/URI?tokenId={{bc-token-id}} - Parametri:
tokenId: string: l'ID del token.
- Esempio di valore restituito:
{ "tokenUri": "example.com" }