Informativa sulla documentazione provvisoria in attesa della messa a disposizione alla generalità dei clienti: 26-02-2026

API Solidity Smart Contract

Oracle Blockchain Platform Enterprise Edition per Hyperledger Besu fornisce metodi Solidity che puoi utilizzare per lavorare con gli smart contract Solidity.

L'API supporta token basati sullo standard ERC-20 e sullo standard ERC-1155. Le implementazioni ERC-20 e ERC-1155 comprendono uno smart contract per conto e uno smart contract per token. Lo smart contract dell'account fornisce metodi di controllo dell'identità e dell'accesso. Il token smart contract fornisce funzioni specificamente correlate ai token.

ERC-20 - Metodi contratto conto

Metodi per la gestione degli account

createAccount
Questo metodo crea un account per un utente specificato. Gli account tengono traccia del saldo token e del saldo in sospeso di un utente e devono essere creati per tutti gli utenti che avranno token in qualsiasi momento. Questo metodo può essere chiamato solo da un Token Admin o da un Org Admin dell'organizzazione specificata.
Parametri:
  • userId: string: il nome utente o l'ID e-mail dell'utente. La stringa ID utente non può essere vuota.
  • orgId: string - L'ID MSP (Membership Service Provider) dell'utente nell'organizzazione corrente. L'ID organizzazione non può essere vuoto.
  • userAddress: address: l'indirizzo wallet dell'utente. L'indirizzo non può essere zero.
  • maxDailyAmount: int256: la quantità massima di token che possono essere utilizzati nelle transazioni ogni giorno. Se maxDailyAmount è -1, non è previsto alcun limite.
  • maxDailyTransactions: int256 – Il numero massimo di transazioni che possono essere completate quotidianamente. Se maxDailyTransactions è -1, non è previsto alcun limite.
deleteAccount
Questo metodo elimina l'account di un utente specificato. Un conto può essere eliminato solo se il saldo del token è zero. Questo metodo può essere chiamato solo da un Token Admin o da un Org Admin dell'organizzazione specificata.
Parametri:
  • userAddress: address: l'indirizzo wallet dell'utente. L'indirizzo non può essere zero.
getAccountStatus
Questo metodo ottiene lo stato corrente del conto specificato. Questo metodo può essere chiamato solo da un Token Admin, Token Auditor, Org Admin dell'organizzazione specificata o dall'utente specificato.
Parametri:
  • userAddress: address: l'indirizzo wallet dell'utente. L'indirizzo non può essere zero.
Restituisce:
  • Valore per l'oggetto enum AccountStatus, 0, 1 o 2.
    enum AccountStatus {
    active,
    suspended,
    deleted
    }
getAccountByAddress
Questo metodo recupera le informazioni sull'account per un utente specificato. Questo metodo può essere chiamato solo da un Token Admin, Token Auditor, Org Admin dell'organizzazione specificata o dall'utente specificato.
Parametri:
  • userAddress: address: l'indirizzo wallet dell'utente. L'indirizzo non può essere zero.
Esempio di valore restituito:
{
    "userId": "userA",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a",
    "dailyLimits": {
          "isMaxDailyTxnEnabled": true,
    	  "isMaxDailyAmtEnabled": true, 
		  "dailyAmount": 100,
    	  "dailyTransactions": 5,
		  "maxDailyAmount": 100000,
    	  "maxDailyTransactions": 50           
	},
	"status":0
}
getAllAccounts
Questo metodo recupera le informazioni sul conto per tutti i conti che rientrano in un intervallo specificato. Questo metodo può essere chiamato solo da un Token Admin o Token Auditor.
Parametri:
  • offset: uint256: l'indice di offset da cui recuperare i conti.
  • limit: uint256: il numero di elementi da recuperare.
Esempio di valore restituito:
Return (UserAccount[] memory items, uint256 total, uint256 nextOffset)
[{
    "userId": "userA",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a",
    "dailyLimits": {
          "isMaxDailyTxnEnabled": true,
    	  "isMaxDailyAmtEnabled": true, 
		  "dailyAmount": 100,
    	  "dailyTransactions": 5,
		  "maxDailyAmount": 100000,
    	  "maxDailyTransactions": 50           
	},
	"status":0
}]
total: 15
nextoffset: 6
activateAccount
Questo metodo attiva un account utente. Questo metodo può essere chiamato solo da un Token Admin o Org Admin dell'organizzazione specificata.
Parametri:
  • userAddress: address: l'indirizzo wallet dell'utente. L'indirizzo non può essere zero.
suspendAccount
Questo metodo sospende un account utente. Per eliminare un conto, il saldo del conto deve essere zero. Questo metodo può essere chiamato solo da un Token Admin o Org Admin dell'organizzazione specificata.
Parametri:
  • userAddress: address: l'indirizzo wallet dell'utente. L'indirizzo non può essere zero.
setMaxDailyAmount
Questo metodo imposta la quantità massima di token che possono essere utilizzati nelle transazioni ogni giorno. Questo metodo può essere chiamato solo da un Token Admin o Org Admin dell'organizzazione specificata.
Parametri:
  • count: int256: la quantità massima di token che possono essere utilizzati nelle transazioni ogni giorno.
  • userAddress: address: l'indirizzo wallet dell'utente. L'indirizzo non può essere zero.
setMaxDailyTransactionCount
Questo metodo imposta il numero massimo di transazioni che è possibile completare quotidianamente. Questo metodo può essere chiamato solo da un Token Admin o Org Admin dell'organizzazione specificata.
Parametri:
  • value: int256 – Il numero massimo di transazioni che possono essere completate quotidianamente.
  • userAddress: address: l'indirizzo wallet dell'utente. L'indirizzo non può essere zero.

Metodi per la gestione degli amministratori

addTokenAdmin
Questo metodo aggiunge un utente come Token Admin. Questo metodo può essere chiamato solo da un Token Admin.
Parametri:
  • adminDetails: JSON: oggetto contenente i dettagli sull'utente da aggiungere come Token Admin, come mostrato nell'esempio seguente.
    {
        "userId": "tokenAdmin1",
        "orgId": "orgA",
    	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"    
    }
removeTokenAdmin
Questo metodo rimuove un utente come Token Admin. Questo metodo può essere chiamato solo da un Token Admin.
Parametri:
  • userAddress: address: l'indirizzo wallet dell'utente. L'indirizzo non può essere zero.
getAllTokenAdmins
Questo metodo restituisce un elenco di tutti gli utenti che sono Token Admin. Questo metodo può essere chiamato solo da Token Admin o Token Auditor.
Parametri:
  • nessuno
Esempio di valore restituito:
[{
    "userId": "tokenadmin1",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"
},
{
    "userId": "tokenadmin2",
    "orgId": "orgB",
	"accountAddress": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73"
}]
isTokenAdmin
Questo metodo controlla se l'utente specificato è un Token Admin. Questo metodo può essere chiamato solo da Token Admin, Token Auditor, Org Admin o Org Auditor.
Parametri:
  • userAddress: address: l'indirizzo wallet dell'utente. L'indirizzo non può essere zero.
Restituisce:
  • Il metodo restituisce true se l'utente specificato è Token Admin, altrimenti restituisce false.
addOrgAdmin
Questo metodo aggiunge un utente come Org Admin. Questo metodo può essere chiamato solo da un Token Admin o Org Admin dell'organizzazione specificata.
Parametri:
  • adminDetails: JSON: oggetto contenente i dettagli sull'utente da aggiungere come Org Admin, come mostrato nell'esempio seguente.
    {
        "userId": "tokenAdmin1",
        "orgId": "orgA",
    	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"    
    }
removeOrgAdmin
Questo metodo rimuove un utente come Org Admin. Questo metodo può essere chiamato solo da un Token Admin o Org Admin dell'organizzazione specificata.
Parametri:
  • userAddress: address: l'indirizzo wallet dell'utente. L'indirizzo non può essere zero.
getAllOrgAdmins
Questo metodo restituisce un elenco di tutti gli utenti che sono Org Admin. Questo metodo può essere chiamato solo da Token Admin, Token Auditor, Org Admin o Org Auditor.
Parametri:
  • nessuno
Esempio di valore restituito:
[{
    "userId": "orgadmin1",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"
},
{
    "userId": "orgadmin2",
    "orgId": "orgB",
	"accountAddress": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73"
}]
isOrgAdmin
Questo metodo controlla se l'utente specificato è un Org Admin. Questo metodo può essere chiamato solo da Token Admin, Token Auditor, Org Admin o Org Auditor.
Parametri:
  • userAddress: address: l'indirizzo wallet dell'utente. L'indirizzo non può essere zero.
Restituisce:
  • Il metodo restituisce true se l'utente specificato è Org Admin, altrimenti restituisce false.

Metodi per la gestione dei revisori

addTokenAuditor
Questo metodo aggiunge un utente come Token Auditor. Questo metodo può essere chiamato solo da un Token Admin.
Parametri:
  • adminDetails: JSON: oggetto contenente i dettagli sull'utente da aggiungere come Token Auditor, come mostrato nell'esempio seguente.
    {
        "userId": "tokenAuditor1",
        "orgId": "orgA",
    	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"    
    }
removeTokenAuditor
Questo metodo rimuove un utente come Token Auditor. Questo metodo può essere chiamato solo da un Token Admin.
Parametri:
  • userAddress: address: l'indirizzo wallet dell'utente. L'indirizzo non può essere zero.
getAllTokenAuditors
Questo metodo restituisce un elenco di tutti gli utenti che sono Token Auditor. Questo metodo può essere chiamato solo da Token Admin o Token Auditor.
Parametri:
  • nessuno
Esempio di valore restituito:
[{
    "userId": "tokenAuditor1",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"
},
{
    "userId": "tokenAuditor2",
    "orgId": "orgB",
	"accountAddress": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73"
}]
isTokenAuditor
Questo metodo controlla se l'utente specificato è un Token Auditor. Questo metodo può essere chiamato da qualsiasi utente.
Parametri:
  • userAddress: address: l'indirizzo wallet dell'utente. L'indirizzo non può essere zero.
Restituisce:
  • Il metodo restituisce true se l'utente specificato è Token Auditor, altrimenti restituisce false.
addOrgAuditor
Questo metodo aggiunge un utente come Org Auditor. Questo metodo può essere chiamato solo da un Token Admin o Org Admin dell'organizzazione specificata.
Parametri:
  • adminDetails: JSON: oggetto contenente i dettagli sull'utente da aggiungere come Org Auditor, come mostrato nell'esempio seguente.
    {
        "userId": "tokenAuditor1",
        "orgId": "orgA",
    	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"    
    }
removeOrgAuditor
Questo metodo rimuove un utente come Org Auditor. Questo metodo può essere chiamato solo da un Token Admin o Org Admin dell'organizzazione specificata.
Parametri:
  • userAddress: address: l'indirizzo wallet dell'utente. L'indirizzo non può essere zero.
getAllOrgAuditors
Questo metodo restituisce un elenco di tutti gli utenti che sono Org Auditor. Questo metodo può essere chiamato solo da Token Admin, Token Auditor, Org Admin o Org Auditor.
Parametri:
  • nessuno
Esempio di valore restituito:
[{
    "userId": "orgAuditor1",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"
},
{
    "userId": "orgAuditor2",
    "orgId": "orgB",
	"accountAddress": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73"
}]
isOrgAuditor
Questo metodo controlla se l'utente specificato è un Org Auditor. Questo metodo può essere chiamato da qualsiasi utente.
Parametri:
  • userAddress: address: l'indirizzo wallet dell'utente. L'indirizzo non può essere zero.
Restituisce:
  • Il metodo restituisce true se l'utente specificato è Org Auditor, altrimenti restituisce false.

Metodi per gestione ruoli

addRole
Questo metodo aggiunge un ruolo a un utente specificato. Questo metodo può essere chiamato solo da un Token Admin o Org Admin dell'organizzazione specificata.
Parametri:
  • userAddress: address: l'indirizzo wallet dell'utente. L'indirizzo non può essere zero.
  • role: string: il nome del ruolo da aggiungere all'utente specificato. Ad esempio, minter, burner o notary.
removeRole
Questo metodo rimuove un ruolo da un utente specificato. Questo metodo può essere chiamato solo da un Token Admin o Org Admin dell'organizzazione specificata.
Parametri:
  • userAddress: address: l'indirizzo wallet dell'utente. L'indirizzo non può essere zero.
  • role: string: il nome del ruolo da rimuovere dall'utente specificato. Ad esempio, minter, burner o notary.
accountHasRole
Questo metodo controlla se un utente dispone di un ruolo specificato. Questo metodo può essere chiamato da qualsiasi utente.
Parametri:
  • role: string – L'hash Keccak-256 del nome del ruolo (minter, burner, o notary) da cercare.
  • userAddress: address: l'indirizzo wallet dell'utente. L'indirizzo non può essere zero.
Restituisce:
  • Il metodo restituisce true se l'utente dispone del ruolo specificato, altrimenti restituisce false.

ERC-20 - Metodi contratto token

Metodi per la gestione della configurazione token

__ERC20Token_init
Questo metodo viene richiamato quando viene distribuito il contratto token. Questo metodo può essere chiamato solo da un Token Admin.
Parametri:
  • name: string: il nome del token.
  • symbol: string: il simbolo del token.
  • accountContract: address – L'indirizzo del contratto.
initializeERC20Token
Questo metodo inizializza un token ERC-20. Questo metodo può essere chiamato solo da un Token Admin.
Parametri:
  • token: JSON: oggetto che definisce il token, come illustrato nell'esempio seguente.
    {
        "tokenId": "WCBDC-100",
        "tokenName": "wholesale cbdc",
        "tokenDesc": "this is wcbdc contract",
        "tokenStandard": "ttf+",
        "tokenType": "fungible",
        "tokenUnit": "fractional",
        "behaviors": ["mintable", "burnable", "transferable", "roles", "holdable", "pausable"],
        "decimals": 2,
        "mintable": { "maxMintQuantity": 1000000, "mintApprovalRequired": false },
        "burnable": { "burnApprovalRequired": false }
    }
getToken
Questo metodo ottiene i dettagli per un token. Questo metodo può essere chiamato solo da Token Admin, Token Auditor, Org Admin o Org Auditor.
Parametri:
  • nessuno
Esempio di valore restituito:
{
    "tokenId": "WCBDC-100",
    "tokenName": "wholesale cbdc",
    "tokenDesc": "this is wcbdc contract",
    "tokenStandard": "ttf+",
    "tokenType": "fungible",
    "tokenUnit": "fractional",
    "behaviors": ["mintable", "burnable", "transferable", "roles", "holdable", "pausable"],
    "decimals": 2,
    "mintable": { "maxMintQuantity": 1000000, "mintApprovalRequired": false },
    "burnable": { "burnApprovalRequired": false }
}
decimals
Questo metodo ottiene il valore decimale per un token. Questo metodo può essere chiamato solo da Token Admin, Token Auditor, Org Admin o Org Auditor.
Parametri:
  • nessuno
Valore restituito
  • Valore uint8 del numero di posizioni decimali.
__ERC20Token_init
Questo metodo viene richiamato quando viene distribuito il contratto token. Questo metodo può essere chiamato solo da un Token Admin.
Parametri:
  • name: string: il nome del token.
  • symbol: string: il simbolo del token.
  • accountContract: address – L'indirizzo del contratto.
initializeERC20Token
Questo metodo inizializza un token ERC-20. Questo metodo può essere chiamato solo da un Token Admin.
Parametri:
  • token: JSON: oggetto che definisce il token, come illustrato nell'esempio seguente.
    {
        "tokenId": "WCBDC-100",
        "tokenName": "wholesale cbdc",
        "tokenDesc": "this is wcbdc contract",
        "tokenStandard": "ttf+",
        "tokenType": "fungible",
        "tokenUnit": "fractional",
        "behaviors": ["mintable", "burnable", "transferable", "roles", "holdable", "pausable"],
        "decimals": 2,
        "mintable": { "maxMintQuantity": 1000000, "mintApprovalRequired": false },
        "burnable": { "burnApprovalRequired": false }
    }
getToken
Questo metodo ottiene i dettagli per un token. Questo metodo può essere chiamato solo da Token Admin, Token Auditor, Org Admin o Org Auditor.
Parametri:
  • nessuno
Esempio di valore restituito:
{
    "tokenId": "WCBDC-100",
    "tokenName": "wholesale cbdc",
    "tokenDesc": "this is wcbdc contract",
    "tokenStandard": "ttf+",
    "tokenType": "fungible",
    "tokenUnit": "fractional",
    "behaviors": ["mintable", "burnable", "transferable", "roles", "holdable", "pausable"],
    "decimals": 2,
    "mintable": { "maxMintQuantity": 1000000, "mintApprovalRequired": false },
    "burnable": { "burnApprovalRequired": false }
}
cap
Questo metodo ottiene il limite massimo di fornitura del token. Questo metodo può essere chiamato solo da Token Admin, Token Auditor, Org Admin o Org Auditor.
Parametri:
  • nessuno
Valore restituito
  • Valore uint256 del limite di fornitura del token.
balanceOf
Questo metodo recupera il saldo del token per l'utente specificato. Questo metodo può essere chiamato solo da un Token Admin, Token Auditor, Org Admin, Org Auditor o dall'utente specificato.
Parametri:
  • userAddress: address: l'indirizzo wallet dell'utente. L'indirizzo non può essere zero.
Valore restituito
  • Valore uint256 del saldo del token.
Gestione comportamento token - comportamento di importanza minore
mint
Questo metodo crea token (mints). Questo metodo può essere chiamato da qualsiasi utente con il ruolo minore.
Parametri:
  • to: address: l'indirizzo wallet dell'utente. L'indirizzo non può essere zero.
  • value: uint256 – La quantità di token da mint.
batchMint
Questo metodo crea token (mints) per più utenti alla volta. Questo metodo può essere chiamato da qualsiasi utente con il ruolo minore.
Parametri:
  • toList: address[]: la lista degli indirizzi wallet degli utenti. Gli indirizzi non possono essere zero.
  • amounts: uint256[] – L'elenco delle quantità di token da zecca.
requestMint
Questo metodo può essere chiamato da un minter per inviare una richiesta al notaio per creare una quantità specificata di token.
Parametri:
  • notary: address – L'indirizzo del portafoglio del notaio. L'indirizzo non può essere zero.
  • amount: uint256 – La quantità di token da mint.
  • expiration: uint256 – L'ora di scadenza della richiesta in formato epocale.
  • opId: string: l'ID operazione della richiesta.
  • info: InfoDetails: un oggetto che specifica la categoria (category) e la descrizione (description) della richiesta.
approveMint
Questo metodo può essere chiamato da un notaio per approvare una richiesta di conio.
Parametri:
  • opId: string: l'ID operazione della richiesta.
rejectMint
Questo metodo può essere chiamato da un notaio per rifiutare una richiesta di conio.
Parametri:
  • opId: string: l'ID operazione della richiesta.

Gestione comportamento token - comportamento masterizzabile

burn
Questo metodo disattiva i token (bruci). Questo metodo può essere richiamato da qualsiasi utente con il ruolo di masterizzatore.
Parametri:
  • account: address: l'indirizzo wallet dell'utente. L'indirizzo non può essere zero.
  • value: uint256 – La quantità di token da bruciare.
batchBurn
Questo metodo masterizza i token per più di un utente alla volta. Questo metodo può essere richiamato da qualsiasi utente con il ruolo di masterizzatore.
Parametri:
  • toList: address[]: la lista degli indirizzi wallet degli utenti. Gli indirizzi non possono essere zero.
  • amounts: uint256[] – L'elenco delle quantità di token da bruciare.
requestBurn
Questo metodo può essere chiamato da un bruciatore per inviare una richiesta al notaio di bruciare una determinata quantità di token.
Parametri:
  • notary: address – L'indirizzo del portafoglio del notaio. L'indirizzo non può essere zero.
  • amount: uint256 – La quantità di token da bruciare.
  • expiration: uint256 – L'ora di scadenza della richiesta in formato epocale.
  • opId: string: l'ID operazione della richiesta.
  • info: InfoDetails: un oggetto che specifica la categoria (category) e la descrizione (description) della richiesta.
approveBurn
Questo metodo può essere chiamato da un notaio per approvare una richiesta di masterizzazione.
Parametri:
  • opId: string: l'ID operazione della richiesta.
rejectBurn
Questo metodo può essere chiamato da un notaio per rifiutare una richiesta di masterizzazione.
Parametri:
  • opId: string: l'ID operazione della richiesta.

Gestione comportamento token - comportamento trasferibile

transfer
Questo metodo trasferisce i token a un utente specificato. Questo metodo può essere chiamato da qualsiasi utente con token.
Parametri:
  • to: address: l'indirizzo del wallet del destinatario. L'indirizzo non può essere zero.
  • value: uint256 – La quantità di token da trasferire.
batchTransfer
Questo metodo trasferisce i token a una lista di utenti specificata. Questo metodo può essere chiamato da qualsiasi utente con token.
Parametri:
  • toList: address[]: la lista degli indirizzi wallet dei ricevitori. Gli indirizzi non possono essere zero.
  • amounts: uint256[] – L'elenco delle quantità di token da trasferire.

Gestione comportamento token - comportamento delegabile

allowance
Questo metodo delega la spesa del token a un utente specificato. Questo metodo può essere chiamato da qualsiasi utente con token.
Parametri:
  • owner: address – L'indirizzo del wallet del proprietario che sta delegando la spesa dei token. L'indirizzo non può essere zero.
  • spender: address: l'indirizzo del wallet dello spender token. L'indirizzo non può essere zero.
Valore restituito
  • Importo uint256 dei token delegati per la spesa.
approve
Questo metodo approva la quantità di token per uno spender delegato specificato. Questo metodo può essere chiamato da qualsiasi utente con token.
Parametri:
  • spender: address: l'indirizzo del wallet dello spender token. L'indirizzo non può essere zero.
  • value: uint256 – La quantità di token che lo spender può spendere.
transferFrom
I responsabili spese delegati utilizzano questo metodo per trasferire i token.
Parametri:
  • from: address – L'indirizzo del wallet del mittente. L'indirizzo non può essere zero.
  • to: address: l'indirizzo del wallet del destinatario. L'indirizzo non può essere zero.
  • value: uint256 – La quantità di token da trasferire.

Gestione comportamento token - comportamento con pausable

isPaused
Questo metodo controlla se il contratto è sospeso. Questo metodo può essere chiamato solo da Token Admin, Token Auditor, Org Admin o Org Auditor.
Parametri:
  • nessuno
pause
Questo metodo sospende il contratto. Questo metodo può essere chiamato solo da un Token Admin.
Parametri:
  • nessuno
unpause
Questo metodo riprende il contratto. Questo metodo può essere chiamato solo da un Token Admin.
Parametri:
  • nessuno

Gestione comportamento token - comportamento bloccabile

hold
Questo metodo crea un blocco per conto del proprietario del token. Questo metodo può essere chiamato da qualsiasi utente con token.
Parametri:
  • to: address: l'indirizzo del wallet del destinatario. L'indirizzo non può essere zero.
  • notary: address – L'indirizzo del portafoglio del notaio. L'indirizzo non può essere zero.
  • amount: uint256 – La quantità di token da trasferire.
  • expiration: uint256 – L'ora di scadenza della richiesta in formato epocale.
  • opId: string: l'ID operazione della richiesta.
  • holdType: string: tipo di blocco. Ad esempio, transfer.
  • info: InfoDetails: un oggetto che specifica la categoria (category) e la descrizione (description) della richiesta.
executeHold
Questo metodo approva una richiesta di blocco. Questo metodo può essere chiamato solo dal notaio precedentemente specificato.
Parametri:
  • amount: uint256: la quantità di token da approvare.
  • opId: string: l'ID operazione della richiesta.
releaseHold
Questo metodo rifiuta una richiesta di blocco. Questo metodo può essere chiamato solo dal notaio precedentemente specificato.
Parametri:
  • opId: string: l'ID operazione della richiesta.
getOnHoldBalanceWithOperationId
Questo metodo restituisce il saldo in sospeso per un ID operazione specificato. Questo metodo può essere chiamato da un Token Admin o Token Auditor, Org Admin o Org Auditor dell'organizzazione specificata, o da un partecipante alla transazione (mittente, destinatario, notaio).
Parametri:
  • opId: string: l'ID operazione della richiesta.
Valore restituito
  • Importo uint256 del saldo in sospeso.
getAccountOnHoldBalance
Questo metodo restituisce il saldo in sospeso per un conto specificato. Questo metodo può essere chiamato da un Token Admin o Token Auditor, Org Admin o Org Auditor dell'organizzazione specificata, o da un partecipante alla transazione (mittente, destinatario, notaio).
Parametri:
  • account: address: l'indirizzo del wallet dell'account. L'indirizzo non può essere zero.
Valore restituito
  • Importo uint256 del saldo in sospeso.

ERC-1155 - Metodi contratto conto

Metodi per la gestione degli account

createAccount
Questo metodo crea un account per un utente specificato. Gli account tengono traccia del saldo dei token di un utente e devono essere creati per tutti gli utenti che avranno token in qualsiasi momento. Questo metodo può essere chiamato solo da un Token Admin.
Parametri:
  • userId: string: il nome utente o l'ID e-mail dell'utente. La stringa ID utente non può essere vuota.
  • orgId: string - L'ID MSP (Membership Service Provider) dell'utente nell'organizzazione corrente. L'ID organizzazione non può essere vuoto.
  • userAddress: address: l'indirizzo wallet dell'utente. L'indirizzo non può essere zero.
deleteAccount
Questo metodo elimina l'account di un utente specificato. Un conto può essere eliminato solo se il saldo del token è zero. Questo metodo può essere chiamato solo da un Token Admin.
Parametri:
  • userAddress: address: l'indirizzo wallet dell'utente. L'indirizzo non può essere zero.
getAccountStatus
Questo metodo ottiene lo stato corrente del conto specificato. Questo metodo può essere chiamato solo da un utente Token Admin o dall'utente specificato.
Parametri:
  • userAddress: address: l'indirizzo wallet dell'utente. L'indirizzo non può essere zero.
Restituisce:
  • Valore per l'oggetto enum AccountStatus, 0, 1 o 2.
    enum AccountStatus {
    active,
    suspended,
    deleted
    }
getAccountByAddress
Questo metodo recupera le informazioni sull'account per un utente specificato. Questo metodo può essere chiamato solo da un utente Token Admin o dall'utente specificato.
Parametri:
  • userAddress: address: l'indirizzo wallet dell'utente. L'indirizzo non può essere zero.
Esempio di valore restituito:
{
    "userId": "userA",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a",
	"status":0
}
getAllAccounts
Questo metodo recupera le informazioni sul conto per tutti i conti che rientrano in un intervallo specificato. Questo metodo può essere chiamato solo da un Token Admin.
Parametri:
  • offset: uint256: l'indice di offset da cui recuperare i conti.
  • limit: uint256: il numero di elementi da recuperare.
Esempio di valore restituito:
Return (UserAccount[] memory items, uint256 total, uint256 nextOffset)
[{
    "userId": "userA",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a",
	"status":0
}]
total: 15
nextoffset: 6
activateAccount
Questo metodo attiva un account utente. Questo metodo può essere chiamato solo da un Token Admin.
Parametri:
  • userAddress: address: l'indirizzo wallet dell'utente. L'indirizzo non può essere zero.
suspendAccount
Questo metodo sospende un account utente. Per eliminare un conto, il saldo del conto deve essere zero. Questo metodo può essere chiamato solo da un Token Admin.
Parametri:
  • userAddress: address: l'indirizzo wallet dell'utente. L'indirizzo non può essere zero.

Metodi per la gestione degli amministratori

addTokenAdmin
Questo metodo aggiunge un utente come Token Admin. Questo metodo può essere chiamato solo da un Token Admin.
Parametri:
  • adminDetails: JSON: oggetto contenente i dettagli sull'utente da aggiungere come Token Admin, come mostrato nell'esempio seguente.
    {
        "userId": "tokenAdmin1",
        "orgId": "orgA",
    	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"    
    }
removeTokenAdmin
Questo metodo rimuove un utente come Token Admin. Questo metodo può essere chiamato solo da un Token Admin.
Parametri:
  • userAddress: address: l'indirizzo wallet dell'utente. L'indirizzo non può essere zero.
getAllTokenAdmins
Questo metodo restituisce un elenco di tutti gli utenti che sono Token Admin. Questo metodo può essere chiamato solo da Token Admin.
Parametri:
  • nessuno
Esempio di valore restituito:
[{
    "userId": "tokenadmin1",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"
},
{
    "userId": "tokenadmin2",
    "orgId": "orgB",
	"accountAddress": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73"
}]
isTokenAdmin
Questo metodo controlla se l'utente specificato è un Token Admin. Questo metodo può essere chiamato solo da un Token Admin.
Parametri:
  • userAddress: address: l'indirizzo wallet dell'utente. L'indirizzo non può essere zero.
Restituisce:
  • Il metodo restituisce true se l'utente specificato è Token Admin, altrimenti restituisce false.

Metodi per gestione ruoli

addRole
Questo metodo aggiunge un ruolo a un utente specificato. Questo metodo può essere chiamato solo da un Token Admin.
Parametri:
  • userAddress: address: l'indirizzo wallet dell'utente. L'indirizzo non può essere zero.
  • role: string: il nome del ruolo da aggiungere all'utente specificato. Ad esempio, minter, burner o notary.
  • scopeId: uint256 - ID classe token non fungibile (NFT) o ID token fungibile.
removeRole
Questo metodo rimuove un ruolo da un utente specificato. Questo metodo può essere chiamato solo da un Token Admin o Org Admin dell'organizzazione specificata.
Parametri:
  • userAddress: address: l'indirizzo wallet dell'utente. L'indirizzo non può essere zero.
  • role: string: il nome del ruolo da rimuovere dall'utente specificato. Ad esempio, minter, burner o notary.
  • scopeId: uint256 - ID classe token non fungibile (NFT) o ID token fungibile.
accountHasRole
Questo metodo controlla se un utente dispone di un ruolo specificato. Questo metodo può essere chiamato da qualsiasi utente.
Parametri:
  • role: string – L'hash Keccak-256 del nome del ruolo (minter, burner, o notary) da cercare.
  • userAddress: address: l'indirizzo wallet dell'utente. L'indirizzo non può essere zero.
  • scopeId: uint256 - ID classe token non fungibile (NFT) o ID token fungibile.
Restituisce:
  • Il metodo restituisce true se l'utente dispone del ruolo specificato, altrimenti restituisce false.
addTokenSysRole
Questo metodo aggiunge il ruolo TOKEN_SYS_VAULT_ROLE a un utente specificato. Questo metodo può essere chiamato solo da un Token Admin.
Parametri:
  • userAddress: address: l'indirizzo wallet dell'utente. L'indirizzo non può essere zero.
  • role: string: l'unico ruolo supportato è TOKEN_SYS_VAULT_ROLE.
Restituisce:
  • Il metodo restituisce true se il ruolo è stato aggiunto correttamente, altrimenti restituisce false.
removeTokenSysRole
Questo metodo rimuove il ruolo TOKEN_SYS_VAULT_ROLE da un utente specificato. Questo metodo può essere chiamato solo da un Token Admin.
Parametri:
  • userAddress: address: l'indirizzo wallet dell'utente. L'indirizzo non può essere zero.
  • role: string: l'unico ruolo supportato è TOKEN_SYS_VAULT_ROLE.
Restituisce:
  • Il metodo restituisce true se il ruolo è stato rimosso correttamente, altrimenti restituisce false.
transferTokenSysRole
Questo metodo trasferisce il ruolo TOKEN_SYS_VAULT_ROLE da un utente a un altro. Questo metodo può essere chiamato solo da un Token Admin.
Parametri:
  • fromAddress: address – L'indirizzo del wallet del mittente. L'indirizzo non può essere zero.
  • toAddress: address: l'indirizzo del wallet del destinatario. L'indirizzo non può essere zero.
  • role: string: l'unico ruolo supportato è TOKEN_SYS_VAULT_ROLE.
Restituisce:
  • Il metodo restituisce true se il trasferimento del ruolo è riuscito, altrimenti restituisce false.

ERC-1155 - Metodi contratto token

Metodi per la gestione della configurazione token

__ERC1155Token_init
Questo metodo viene richiamato quando viene distribuito il contratto token. Questo metodo può essere chiamato solo da un Token Admin.
Parametri:
  • accountContract: address – L'indirizzo del contratto.
  • uri: string: URI del tipo di token.
saveNFTClass
Questo metodo salva le informazioni sulla classe NFT nel libro contabile. Questo metodo può essere chiamato solo da un Token Admin.
Parametri:
  • classinfo: JSON: l'oggetto informazioni classe conto NFT. Il codice seguente mostra un esempio per un intero NFT.
    {
        "nftClassId": (BigInt(1)),
        "tokenName": "ArtCollection2",
        "tokenDesc": "this is art collection contract",
        "tokenStandard": "erc1155",
        "tokenUnit": 0,
        "behaviors": ["mintable", "burnable", "transferable", "roles", "indivisible"],
        "divisible": { "decimals": 0 },
        "mintable": { "maxMintQuantity": 2 }
    }
    Il codice seguente mostra un esempio per un NFT frazionario.
    {
      "nftClassId": (BigInt(0)),
      "tokenName": "ArtCollection",
      "tokenDesc": "this is art collection contract",
      "tokenStandard": "erc1155",
      "tokenUnit": 1,
      "behaviors": ["mintable", "burnable", "transferable", "roles", "divisible"],
      "divisible": { "decimals": 0 },
      "mintable": { "maxMintQuantity": 1 }
    }
createNonFungibleToken
Questo metodo estrae NFT. Questo metodo può essere chiamato solo da un utente con il ruolo minore.
Parametri:
  • tokenId: uint256: l'ID token di NFT, che contiene informazioni sulla classe NFT. I primi 128 bit dell'ID rappresentano l'ID classe NFT e i 128 bit inferiori rappresentano l'indice univoco dell'NFT.
  • quantity: uint256 – La quantità di NFT da mint (creare).
createFungibleToken
Questo metodo viene richiamato quando viene distribuito il contratto token. Questo metodo può essere chiamato solo da un Token Admin.
Parametri:
  • token: definizione del token fungibile da registrare nel libro contabile, come mostrato nell'esempio riportato di seguito.
     "tokenId": BigInt(0),
     "tokenName": "wcbdc",
     "tokenDesc": "this is wcbdc token",
     "tokenStandard": "erc1155",
     "tokenType": 1,
     "tokenUnit": 1,
     "behaviors": ["mintable", "burnable", "transferable", "roles", "divisible"],
     "divisible": { "decimals": 2 },
     "quantity": 1,
     "mintable": { "maxMintQuantity": 1 }
getTokenById
Questo metodo ottiene i dettagli per un token. Questo metodo può essere chiamato solo da un proprietario di token o Token Admin.
Parametri:
  • token: definizione del token fungibile, come mostrato nell'esempio seguente.
     "tokenId": BigInt(0),
     "tokenName": "wcbdc",
     "tokenDesc": "this is wcbdc token",
     "tokenStandard": "erc1155",
     "tokenType": 1,
     "tokenUnit": 1,
     "behaviors": ["mintable", "burnable", "transferable", "roles", "divisible"],
     "divisible": { "decimals": 2 },
     "quantity": 1,
     "mintable": { "maxMintQuantity": 1 }
  • metaInfo: bytes: se il token è fungibile, specificare un valore vuoto. Se il token è un NFT intero, specificare una versione codificata del seguente oggetto struct.
    struct ERC1155WholeNFT {
        bool isBurned;
        bool isLocked;
        uint256 creationDate;
        uint256 quantity;
        address createdBy;
        address owner;
    }
    Se il token è un NFT frazionario, specificare una versione codificata del seguente oggetto struct.
    struct ERC1155FractionalNFT {
        bool isBurned;
        bool isLocked;
        uint256 creationDate;
        uint256 quantity;
        address createdBy;
        Owners[] owners;
    }
geTokenDecimals
Questo metodo ottiene il valore decimale per un token. Questo metodo può essere chiamato solo da un Token Admin.
Parametri:
  • id: uint256: ID del token.
Valore restituito
  • Valore uint8 del numero di posizioni decimali.
tokenIdOf
Questo metodo ottiene l'ID di un token. Questo metodo può essere chiamato solo da un Token Admin.
Parametri:
  • classId: uint256: ID classe NFT.
  • serialId: uint256 – L'ID seriale nella classe NFT.
Valore restituito
  • ID del token uint256.
balanceOf
Questo metodo recupera il saldo del token per l'utente specificato. Questo metodo può essere chiamato solo da un Token Admin o dal proprietario del token.
Parametri:
  • account: address: l'indirizzo wallet dell'utente. L'indirizzo non può essere zero.
  • id: uint256: ID del token.
Valore restituito
  • Valore uint256 del saldo del token.
balanceOfBatch
Questo metodo recupera il saldo del token per un elenco di utenti. Questo metodo può essere chiamato solo da un Token Admin o dal proprietario del token.
Parametri:
  • account: address[]: lista degli indirizzi wallet degli utenti.
  • id: uint256[]: elenco degli ID dei token.
Valore restituito
  • Elenco uint256[] dei saldi token.
exists
Questo metodo controlla se esiste un token specificato. Questo metodo può essere chiamato solo da un Token Admin.
Parametri:
  • id: uint256: ID del token.
Restituisce:
  • Il metodo restituisce true se il token specificato esiste, altrimenti restituisce false.
totalSupply
Questo metodo controlla la fornitura totale di tutti i token nel contratto. Questo metodo può essere chiamato solo da un Token Admin.
Parametri:
  • nessuno
Restituisce:
  • Valore uint256[] del token totale fornito.
totalSupply
Questo metodo controlla la fornitura totale di un token specificato nel contratto. Questo metodo può essere chiamato solo da un Token Admin.
Parametri:
  • id: uint256: ID del token.
Restituisce:
  • Valore uint256[] dell'offerta totale del token specificato.
Gestione comportamento token - comportamento di importanza minore
mintBatch
Questo metodo crea (min) token ERC-1155 in modalità batch. I token devono essere inizializzati. Questo metodo può essere chiamato da qualsiasi utente con il ruolo minore.
Parametri:
  • tokenIds: uint256[]: l'elenco dei token da mint.
  • quantity: uint256[]: elenco delle quantità di token da zecca.
  • data: byte – Byte aggiuntivi di dati.

Gestione comportamento token - comportamento masterizzabile

burnBatch
Questo metodo distrugge (brucia) i token ERC-1155 in modalità batch. I token devono essere inizializzati. Questo metodo può essere richiamato da qualsiasi utente con il ruolo di masterizzatore.
Parametri:
  • tokenIds: uint256[] – La lista dei token da masterizzare.
  • quantity: uint256[]: elenco delle quantità di token da masterizzare.
  • data: byte – Byte aggiuntivi di dati.
burnNFT
Questo metodo distrugge (brucia) un token non fungibile. I token devono essere inizializzati. Questo metodo può essere richiamato da qualsiasi utente con il ruolo di masterizzatore.
Parametri:
  • tokenId: uint256: l'ID del token da masterizzare.

Gestione comportamento token - comportamento trasferibile

safeTransferFrom
Questo metodo trasferisce i token da un mittente a un destinatario. Questo metodo può essere chiamato da qualsiasi utente che detiene i token.
Parametri:
  • from: address – L'indirizzo del wallet del mittente. L'indirizzo non può essere zero.
  • to: address: l'indirizzo del wallet del destinatario. L'indirizzo non può essere zero.
  • id: uint256 – L'ID del token ERC-1155 da trasferire.
  • value: uint256: la quantità di token da trasferire.
  • data: byte – Byte aggiuntivi di dati.
safeBatchTransferFrom
Questo metodo trasferisce i token da un mittente a un destinatario. Questo metodo può essere chiamato da qualsiasi utente che detiene i token.
Parametri:
  • from: address – L'indirizzo del wallet del mittente. L'indirizzo non può essere zero.
  • to: address: l'indirizzo del wallet del destinatario. L'indirizzo non può essere zero.
  • id: uint256 – L'ID del token ERC-1155 da trasferire.
  • value: uint256: la quantità di token da trasferire.
  • data: byte – Byte aggiuntivi di dati.

Gestione comportamento token - comportamento delegabile

setApprovalForAll
Questo metodo concede o revoca l'autorizzazione per un operatore a trasferire i token del chiamante, in base al parametro approved. Questo metodo può essere chiamato da qualsiasi utente che detiene i token.
Parametri:
  • operator: address: l'indirizzo del wallet dell'operatore al quale vengono concesse o revocate le autorizzazioni. L'indirizzo non può essere zero.
  • approved: bool: un flag booleano indica se l'operatore dispone dell'autorizzazione per trasferire i token del chiamante.
isApprovedForAll
Questo metodo controlla se un operatore è approvato per il trasferimento dei token per un conto specificato. Questo metodo può essere chiamato da qualsiasi utente che detiene i token.
Parametri:
  • account: address: l'indirizzo del wallet degli utenti che hanno concesso o revocato le autorizzazioni all'operatore per il trasferimento dei propri token. L'indirizzo non può essere zero.
  • operator: address: l'indirizzo del wallet dell'operatore al quale sono state concesse o revocate le autorizzazioni. L'indirizzo non può essere zero.
Restituisce:
  • Valore booleano che indica se l'operatore è autorizzato a trasferire i token per il conto specificato.

Gestione comportamento token - comportamento con pausable

paused
Questo metodo controlla se il contratto è sospeso. Questo metodo può essere chiamato da qualsiasi utente.
Parametri:
  • nessuno
pause
Questo metodo sospende il contratto. Questo metodo può essere chiamato solo da un Token Admin.
Parametri:
  • nessuno
unpause
Questo metodo riprende un contratto in pausa. Questo metodo può essere chiamato solo da un Token Admin.
Parametri:
  • nessuno

Gestione comportamento token - comportamento bloccabile

lockNFT
Questo metodo blocca un token non fungibile. Questo metodo può essere richiamato solo da un utente con ruolo TOKEN_SYS_VAULT_ROLE.
Parametri:
  • tokenId: uint256: l'ID del token da bloccare.
isNFTLocked
Questo metodo controlla se un token non fungibile è bloccato. Questo metodo può essere richiamato solo da un utente con ruolo TOKEN_SYS_VAULT_ROLE o da Token Admin.
Parametri:
  • tokenId: uint256: l'ID del token da controllare.
Restituisce:
  • Valore booleano che indica se il token è bloccato.