API contratto token ERC-20

È possibile utilizzare i seguenti metodi relativi alla funzionalità token nei contratti token ERC-20.

Metodi di configurazione token

__ERC20Token_init
Questo metodo viene richiamato quando viene distribuito un 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.
initializeERC20Token
Questo metodo inizializza un token ERC-20. Questo metodo può essere chiamato solo da un Token Admin.
Parametri:
  • token: ERC20Token – La struttura che definisce il token ERC-20, come mostrato 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 un token ERC-20. 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 restituisce il numero di posizioni decimali configurate per un token. Questo metodo può essere chiamato solo da Token Admin, Token Auditor, Org Admin o Org Auditor.
Parametri:
  • Nessuno
Restituzioni:
  • Valore uint8 che indica il numero di posizioni decimali.
cap
Questo metodo restituisce il valore limite (la fornitura totale massima) per un token ERC-20. Questo metodo può essere chiamato solo da Token Admin, Token Auditor, Org Admin o Org Auditor.
Parametri:
  • Nessuno
Restituzioni:
  • Valore uint256 che indica il valore limite.
balanceOf
Questo metodo restituisce il saldo del token corrente per un utente specificato. Questo metodo può essere chiamato solo da un Token Admin o Token Auditor, o il Org Admin o Org Auditor dell'organizzazione specificata.
Parametri:
  • userAddress: string: l'indirizzo wallet dell'utente, che non deve essere zero.
Restituzioni:
  • Valore uint256 che indica il saldo corrente.

Metodi di comportamento token - comportamento di importanza critica

mint
Questo metodo estrae i token ERC-20. Questo metodo può essere chiamato da qualsiasi utente con il ruolo minore.
Parametri:
  • to: string: l'indirizzo del wallet dell'utente per il quale vengono creati i token, che non deve essere zero.
  • value: uint256 – La quantità di token da mint.
requestMint
Questo metodo può essere chiamato da qualsiasi utente con il ruolo minter per inviare una richiesta al notaio per creare una quantità specificata di token.
Parametri:
  • notary: string: l'indirizzo del wallet dell'utente notarile, che non deve essere zero.
  • amount: uint256 – La quantità di token da mint.
  • expiration: uint256 – L'ora di scadenza della richiesta in formato epocale.
  • opId: string: ID dell'operazione della richiesta.
  • info_details: JSON: un oggetto che specifica la categoria (category) e la descrizione (description) della richiesta.

    È possibile specificare il parametro info_details in un formato diverso se si utilizza Visual Studio Code rispetto all'interfaccia CLI o a una raccolta Postman.

    Codice Visual Studio: { "category": "category value", "description": "description value" }

    CLI / Postman: "{\"category\":\"category value\",\"description\":\"description value\"}"

approveMint
Questo metodo può essere chiamato da un approvatore con il ruolo notarile per approvare una richiesta di zecca per i token ERC-20.
Parametri:
  • opId: string: ID dell'operazione della richiesta mint.
rejectMint
Questo metodo può essere chiamato da un approvatore con il ruolo notarile per rifiutare una richiesta di mint per i token ERC-20.
Parametri:
  • opId: string: ID dell'operazione della richiesta mint.

Metodi di comportamento token - comportamento masterizzabile

burn
Questo metodo brucia i token ERC-20. Questo metodo può essere richiamato da qualsiasi utente con il ruolo di masterizzatore.
Parametri:
  • account: string: l'indirizzo del wallet dell'utente per il quale vengono masterizzati i token, che non deve essere zero.
  • value: uint256 – La quantità di token da bruciare.
burnFrom
Questo metodo può essere chiamato da qualsiasi utente con un'indennità delegata.
Parametri:
  • account: string – L'indirizzo del portafoglio dell'account da cui masterizzare i token, che non deve essere zero.
  • value: uint256 – La quantità di token da bruciare.
requestBurn
Questo metodo può essere chiamato da qualsiasi utente con un ruolo di masterizzatore per approvare una richiesta di masterizzazione per i token ERC-20.
Parametri:
  • notary: string: l'indirizzo del wallet dell'utente notarile, che non deve essere zero.
  • amount: uint256 – La quantità di token da bruciare.
  • expiration: uint256 – L'ora di scadenza della richiesta in formato epocale.
  • opId: string: ID dell'operazione della richiesta.
  • info_details: JSON: un oggetto che specifica la categoria (category) e la descrizione (description) della richiesta.

    È possibile specificare il parametro info_details in un formato diverso se si utilizza Visual Studio Code rispetto all'interfaccia CLI o a una raccolta Postman.

    Codice Visual Studio: { "category": "category value", "description": "description value" }

    CLI / Postman: "{\"category\":\"category value\",\"description\":\"description value\"}"

approveBurn
Questo metodo può essere chiamato da un approvatore con il ruolo notarile per approvare una richiesta di burn per i token ERC-20.
Parametri:
  • opId: string: l'ID dell'operazione della richiesta di masterizzazione.
rejectBurn
Questo metodo può essere richiamato da un approvatore con ruolo notarile per rifiutare una richiesta di burn per i token ERC-20.
Parametri:
  • opId: string: l'ID dell'operazione della richiesta di masterizzazione.

Metodi di comportamento token - comportamento trasferibile

transfer
Questo metodo può essere chiamato da qualsiasi utente con token per trasferirli a un altro utente.
Parametri:
  • to: string: l'indirizzo del wallet del destinatario, che non deve essere zero.
  • value: uint256 – La quantità di token da trasferire.
batchTransfer
Questo metodo può essere chiamato da qualsiasi utente con token per trasferirli in batch ad altri utenti.
Parametri:
  • toList: string[]: lista di indirizzi wallet dei ricevitori.
  • amounts: uint256[] – Un elenco della quantità di token da trasferire.

Metodi di comportamento token - comportamento delegabile

allowance
Questo metodo può essere chiamato da qualsiasi utente che possiede token per delegare un altro utente a spenderli.
Parametri:
  • owner: string: l'indirizzo del wallet del proprietario del token, che non deve essere zero.
  • spender: string: l'indirizzo del wallet dello spender token, che non deve essere zero.
Restituzioni:
  • Valore uint256 della quantità di token delegati da spendere.
approve
Questo metodo può essere chiamato da qualsiasi utente che possiede token per impostare l'importo che un spender delegato può spendere.
Parametri:
  • spender: string: l'indirizzo del wallet dello spender token, che non deve essere zero.
  • value: uint256 – La quantità di token che lo spender può spendere.
transferFrom
Questo metodo può essere chiamato da un utente con un'indennità delegata per trasferire i token a un altro utente.
Parametri:
  • from: string – L'indirizzo del wallet del mittente, che non deve essere zero.
  • to: string: l'indirizzo del wallet del destinatario, che non deve essere zero.
  • value: uint256 – La quantità di token da trasferire.

Metodi comportamento token - comportamento con pausable

paused
Questo metodo controlla se un contratto è sospeso. Questo metodo può essere chiamato solo da Token Admin, Token Auditor, Org Admin o Org Auditor.
Parametri:
  • Nessuno
pause
Questo metodo sospende un contratto. Questo metodo può essere chiamato solo da un Token Admin.
Parametri:
  • Nessuno
unpause
Questo metodo avvia un contratto in pausa. Questo metodo può essere chiamato solo da un Token Admin.
Parametri:
  • Nessuno

Metodi di comportamento token - comportamento bloccabile

hold
Questo metodo può essere chiamato da qualsiasi utente con token per richiedere un trasferimento di token.
Parametri:
  • to: string: l'indirizzo del wallet del destinatario, che non deve essere zero.
  • notary: string: l'indirizzo del wallet dell'utente notarile, che non deve essere zero.
  • amount: uint256 – La quantità di token da trasferire.
  • expiration: uint256 – L'ora di scadenza della richiesta in formato epocale.
  • opId: string: ID dell'operazione della richiesta.
  • holdType: string: tipo di blocco. Ad esempio, transfer.
  • info_details: JSON: un oggetto che specifica la categoria (category) e la descrizione (description) della richiesta.

    È possibile specificare il parametro info_details in un formato diverso se si utilizza Visual Studio Code rispetto all'interfaccia CLI o a una raccolta Postman.

    Codice Visual Studio: { "category": "category value", "description": "description value" }

    CLI / Postman: "{\"category\":\"category value\",\"description\":\"description value\"}"

holdFrom
Questo metodo può essere chiamato da un utente delegato con un'autorizzazione a contenere i token dall'indirizzo wallet di un altro utente. Questo metodo richiede il comportamento delegabile.
Parametri:
  • fromAccount: string: l'indirizzo del wallet dell'utente i cui token verranno mantenuti, che non deve essere zero.
  • toAccount: string: l'indirizzo del wallet del destinatario, che non deve essere zero.
  • notary: string: l'indirizzo del wallet dell'utente notarile, che non deve essere zero.
  • amount: uint256 – La quantità di token da trasferire.
  • expiration: uint256 – L'ora di scadenza della richiesta in formato epocale.
  • opId: string: ID dell'operazione della richiesta.
  • holdType: string: tipo di blocco. Ad esempio, transfer.
  • info_details: JSON: un oggetto che specifica la categoria (category) e la descrizione (description) della richiesta.

    È possibile specificare il parametro info_details in un formato diverso se si utilizza Visual Studio Code rispetto all'interfaccia CLI o a una raccolta Postman.

    Codice Visual Studio: { "category": "category value", "description": "description value" }

    CLI / Postman: "{\"category\":\"category value\",\"description\":\"description value\"}"

executeHold
Questo metodo può essere richiamato da un approvatore con il ruolo notarile per approvare una richiesta di blocco.
Parametri:
  • amount: uint256: la quantità di token da approvare per il trasferimento.
  • opId: string: ID dell'operazione della richiesta di blocco.
releaseHold
Questo metodo può essere richiamato da un approvatore con ruolo notarile per rifiutare una richiesta di blocco.
Parametri:
  • opId: string: ID dell'operazione della richiesta di blocco.
updateNotary
Questo metodo può essere richiamato da un approvatore con ruolo notarile per aggiornare il notaio per una richiesta specificata.
Parametri:
  • opId: string: ID dell'operazione della richiesta di blocco.
  • newNotary: string: l'indirizzo wallet del nuovo utente notaio, che non deve essere zero.
getOnHoldBalanceWithOperationId
Questo metodo recupera il saldo del blocco per un ID operazione specificato. Questo metodo può essere chiamato solo 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: ID dell'operazione della richiesta di blocco.
Restituzioni:
  • Valore uint256 del saldo del blocco.
getOnHoldDetailsWithOperationId
Questo metodo recupera i dettagli del blocco per un ID operazione specificato. Questo metodo può essere chiamato solo 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: ID dell'operazione della richiesta di blocco.
Restituzioni:
  • Un oggetto hold con le seguenti informazioni.
    • to: address: l'indirizzo del wallet del destinatario.
    • notary: address – L'indirizzo del portafoglio del notaio.
    • amount: uint256 – La quantità di token da trasferire.
    • expiration: uint256 – L'ora di scadenza della richiesta, in formato epocale.
    • opId: string: ID dell'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.
getAccountOnHoldBalance
Questo metodo recupera il saldo del blocco per un conto specificato. Questo metodo può essere chiamato solo 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: string: l'indirizzo del wallet dell'account da controllare, che non deve essere zero.
Restituzioni:
  • Valore uint256 del saldo del blocco.

Metodi comportamento token - comportamento approvazione a più livelli

createOrupdateAccountPolicy
Questo metodo può essere richiamato da Token Admin o Org Admin per creare o aggiornare un criterio per un account specificato.
Parametri:
  • accountPolicyId: questo ID viene generato dai campi orgId e userId specificati. Questo campo non viene fornito manualmente.
  • orgId: l'ID MSP (Membership Service Provider) dell'utente per cui creare la polizza.
  • userId: il nome utente o l'ID e-mail dell'utente per il quale creare il criterio.
  • kycCompliance: valore stringa (true o false) che indica se l'account soddisfa i requisiti KYC (Know Your Customer).
  • amlCompliance: valore stringa (true o false) che indica se il conto soddisfa i requisiti AML (Anti-Money Laundering).
  • riskScore: il punteggio di rischio associato all'account, utilizzato per la valutazione della conformità.
  • restrictionFlag: valore stringa (true o false) che indica se l'account è soggetto a trasferimenti limitati. Se l'impostazione è true, i trasferimenti diretti seguono i limiti del periodo fisso delle restrizioni di trasferimento e i trasferimenti dei blocchi seguono la soglia dei criteri di approvazione più bassa.
getAccountPolicyById
Questo metodo recupera i dettagli dei criteri dell'account per un ID criterio specificato. Questo metodo può essere chiamato da un Token Admin o Token Auditor, o Org Admin o Org Auditor dell'organizzazione il cui criterio account verrà recuperato.
Parametri:
  • accountPolicyId: string: l'ID criterio account univoco.
Restituzioni:
  • accountPolicyId: questo ID viene generato dai campi orgId e userId specificati. Questo campo non viene fornito manualmente.
  • orgId – L'ID MSP (Membership Service Provider) dell'utente.
  • userId: il nome utente o l'ID e-mail dell'utente.
  • kycCompliance: valore stringa (true o false) che indica se l'account soddisfa i requisiti KYC (Know Your Customer).
  • amlCompliance: valore stringa (true o false) che indica se il conto soddisfa i requisiti AML (Anti-Money Laundering).
  • riskScore: il punteggio di rischio associato all'account, utilizzato per la valutazione della conformità.
  • restrictionFlag: valore stringa (true o false) che indica se l'account è soggetto a trasferimenti limitati. Se l'impostazione è true, i trasferimenti diretti seguono i limiti del periodo fisso delle restrizioni di trasferimento e i trasferimenti dei blocchi seguono la soglia dei criteri di approvazione più bassa.
getAccountPolicyById
Questo metodo recupera i dettagli dei criteri account per un utente specificato. Questo metodo può essere chiamato da qualsiasi utente.
Parametri:
  • who: address: l'indirizzo wallet dell'utente.
Restituzioni:
  • La stringa accountPolicyId.
deleteAccountPolicyById
Questo metodo elimina un criterio per un ID criterio specificato. Questo metodo può essere chiamato da un Token Admin, o Org Admin dell'organizzazione che include l'utente il cui criterio account verrà eliminato.
Parametri:
  • accountPolicyId: l'ID criterio account univoco.
Restituzioni:
  • La stringa accountPolicyId.
createOrupdateApprovalPolicy
Questo metodo può essere chiamato da un Token Admin.
Parametri:
  • approvalPolicyId: questo ID viene generato dal sistema. Questo campo non viene fornito manualmente.
  • transactionLowerLimit: l'importo minimo della transazione a cui si applica il criterio di approvazione.
  • transactionUpperLimit: l'importo massimo della transazione a cui si applica il criterio di approvazione.
  • numberOfApprovalsRequired: il numero totale di approvazioni necessarie prima del completamento della transazione.
  • approverDetails: elenco di approvatori insieme alla sequenza di approvazione assegnata, che definisce l'ordine obbligatorio per le approvazioni.
  • version: versione del criterio di approvazione. Utilizzare 0 quando si crea un nuovo criterio.
  • status – Attivo o inattivo.
getApprovalPolicyById
Questo metodo recupera i dettagli dei criteri di approvazione per un ID criterio specificato. Questo metodo può essere chiamato da un Token Admin o Token Auditor.
Parametri:
  • approvalPolicyId: string: ID univoco del criterio di approvazione.
Restituzioni:
  • approvalPolicyId: questo ID viene generato dal sistema.
  • transactionLowerLimit: l'importo minimo della transazione a cui si applica il criterio di approvazione.
  • transactionUpperLimit: l'importo massimo della transazione a cui si applica il criterio di approvazione.
  • numberOfApprovalsRequired: il numero totale di approvazioni necessarie prima del completamento della transazione.
  • approverDetails: elenco di approvatori insieme alla sequenza di approvazione assegnata, che definisce l'ordine obbligatorio per le approvazioni.
  • version: versione del criterio di approvazione.
  • status – Attivo o inattivo.
deleteApprovalPolicy
Questo metodo elimina un criterio per un ID criterio specificato. Questo metodo può essere chiamato da un Token Admin.
Parametri:
  • approvalPolicyId: string: ID univoco del criterio di approvazione.
getApprovalTransactionsById
Questo metodo recupera il saldo in sospeso per un conto specificato. Questo metodo può essere chiamato da Token Admin, Token Auditor, Org Admin o Org Auditor.
Parametri:
  • opId: string: ID dell'operazione per la richiesta di blocco.
Restituzioni:
  • Oggetto approvalTransactions.
Esempio di valore restituito:
{
"approvalTransactionId": "",
"approvalPolicyId": "",
"approvalPolicyVersion": "",
"fromAccount": "",
"toAccount": "",
"totalApprovals": "",
"numberaOfApprovalsRequired": "",
"status": "",
"approverDetails": ""
}
getApprovalStatusByOperationId
Questo metodo recupera i dettagli di approvazione per una richiesta di blocco specificata. Questo metodo può essere chiamato da Token Admin, Token Auditor, Org Admin o Org Auditor.
Parametri:
  • opId: string: ID dell'operazione per la richiesta di blocco.
Esempio di valore restituito:
{
"approvalWorkflowExists": "",
"activePolicyFound": "",
"receivedApprovals": "",
"requiredApprovals": "",
"approvalRequirementMet": "",
"nextApprovalSequence": "",
"nextApprover": "",
"workflowStatus": "",
"approvalPolicyId": "",
"approvalPolicyVersion": ""
}
approveTransaction
Un approvatore può utilizzare questo metodo per approvare una transazione di blocco.
Parametri:
  • opId: string: ID dell'operazione per la richiesta di blocco.
  • amount: uint256: l'importo da approvare.
rejectTransaction
Un notaio può utilizzare questo metodo per rifiutare una transazione di blocco.
Parametri:
  • opId: string: ID dell'operazione per la richiesta di blocco.
getTransferRestriction
Questo metodo restituisce la configurazione della restrizione di trasferimento corrente, inclusi i limiti di transazione inferiore e superiore. Questo metodo può essere chiamato da un Token Admin o Token Auditor.
Parametri:
  • account: address: l'indirizzo del wallet dell'utente per il quale controllare il saldo in sospeso. L'indirizzo non deve essere zero.
Restituzioni:
  • Oggetto transferRestriction.
Esempio di valore restituito:
transactionLowerLimit: 0transactionUpperLimit: 100
setOrupdateTransferRestriction
Questo metodo aggiorna la configurazione delle restrizioni di trasferimento impostando nuovi limiti di transazione inferiore e superiore. Questo metodo può essere chiamato da un Token Admin.
Parametri:
  • transactionLowerLimit: uint256: l'importo minimo consentito per la transazione.
  • transactionUpperLimit: uint256: l'importo massimo consentito per la transazione.

Metodi di gestione del contesto

setTokenContext
Questo metodo imposta l'indirizzo del contratto token per il contratto conto. Questo metodo può essere chiamato solo da un Token Admin.
Parametri:
  • tokenAddress: address: l'indirizzo del contratto del token distribuito, che non deve essere zero.
getTokenContext
Questo metodo recupera l'indirizzo del contratto token per il contratto conto. Questo metodo può essere chiamato da qualsiasi utente.
Parametri:
  • Nessuno
Restituzioni
  • Indirizzo contratto token
setGovernanceContext
Questo metodo imposta il contratto di governance da utilizzare per gestire il ciclo di vita della governance per il contratto conto. Questo metodo può essere chiamato solo da un Token Admin.
Parametri:
  • uuid: string: l'ID univoco impostato dagli asset digitali Token Admin prima della distribuzione del contratto.
  • governance: address – L'indirizzo contrattuale del contratto di governance distribuito, che non deve essere zero.
getGovernanceContext
Questo metodo ottiene i dettagli del contesto di gestione. Questo metodo può essere chiamato da qualsiasi utente.
Parametri:
  • Nessuno
Restituzioni
  • Oggetto governanceContext.
Esempio di valore restituito:
{
    "governanceUUID": "abc-def",
    "governance": "0x0000000",
	"deploymentActive": "true"
}
isDeploymentActive
Questo metodo controlla se la distribuzione è attiva. Questo metodo può essere chiamato da qualsiasi utente.
Parametri:
  • Nessuno
Restituzioni:
  • Valore booleano (true o false) che indica se la distribuzione è attiva.