API contratto token ERC-1155

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

Metodi di configurazione token

__ERC1155Token_init
Questo metodo viene richiamato quando viene distribuito un contratto token. Questo metodo può essere chiamato solo da un Token Admin.
Parametri:
  • uri: string: l'URI per tutti i tipi di token.

Metodi di impostazione 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: NFTClassInfo – L'indirizzo del contratto dell'account, che varia a seconda che l'NFT sia intero o frazionario. NFT intero:
    {
        "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 }
    }
    NFT frazionale:
     "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 in base alle informazioni sulla classe NFT salvate. Questo metodo può essere richiamato da un utente con il ruolo minter o da Token Admin.
Parametri:
  • token: uint256 – L'ID del NFT, che contiene informazioni sulla classe NFT. I primi 128 bit del parametro tokenId rappresentano l'ID classe NFT, mentre i 128 bit inferiori rappresentano l'indice univoco del NFT.
  • quantity: uint256 – La quantità di NFT da menta (creare).
createFungibleToken
Questo metodo viene richiamato quando viene distribuito il contratto token. Questo metodo può essere chiamato solo da Token Admin.
Parametri:
  • tokenID: ERC1155Token: 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 specificato. Questo metodo può essere chiamato solo da un Token Admin o dal proprietario di un token.
Parametri:
  • token: ERC1155Token – Definizione del token, 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 }
  • metainfo: bytes: per i token fungibili, il parametro metainfo è vuoto. Per NFT interi, il parametro metainfo contiene dati codificati per la seguente struttura:
    struct ERC1155WholeNFT {
        bool isBurned;
        bool isLocked;
        uint256 creationDate;
        uint256 quantity;
        address createdBy;
        address owner;
    }
    Per i NFT frazionari, il parametro metainfo contiene dati codificati per la struttura seguente:
    struct ERC1155FractionalNFT {
        bool isBurned;
        bool isLocked;
        uint256 creationDate;
        uint256 quantity;
        address createdBy;
        Owners[] owners;
    }
getTokenDecimals
Questo metodo restituisce il numero di posizioni decimali configurate per un token. Questo metodo può essere chiamato solo da un Token Admin.
Parametri:
  • id: uint256: ID del token.
Restituzioni:
  • Valore uint8 che indica il numero di posizioni decimali.
tokenIdOf
Questo metodo restituisce l'ID 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.
Restituzioni:
  • Valore uint256 dell'ID token.
balanceOf
Questo metodo restituisce il saldo del token corrente per un utente specificato. Questo metodo può essere chiamato solo da un Token Admin o dal proprietario del token.
Parametri:
  • account: string – L'indirizzo dell'account dell'utente.
  • id: uint256: ID del token.
Restituzioni:
  • Valore uint256 che indica il saldo corrente.
balanceOfBatch
Questo metodo restituisce i saldi token correnti per un batch di utenti specificati. Questo metodo può essere chiamato solo da un Token Admin o dal proprietario del token.
Parametri:
  • accounts: string[]: elenco degli indirizzi degli account degli utenti.
  • ids: uint256[]: elenco degli ID dei token.
Restituzioni:
  • Elenco di valori uint256[] che indica i saldi correnti.
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.
Restituzioni:
  • Valore booleano (true o false).
totalSupply
Questo metodo restituisce la fornitura totale di token in un contratto. Questo metodo può essere chiamato solo da un Token Admin.
Parametri:
  • id: uint256 (facoltativo): ID del token. Se non si specifica un ID token, viene restituita la fornitura totale di tutti i token nel contratto
Restituzioni:
  • Valore uint256 che indica la fornitura totale.

Metodi di comportamento token - comportamento di importanza critica

mintBatch
Questo metodo estrae i token ERC-1155 in batch. I token devono essere già inizializzati. Questo metodo può essere chiamato da qualsiasi utente con il ruolo minore.
Parametri:
  • tokenIds: uint256[]: lista di ID token da zecca.
  • quantity: uint256[]: un elenco corrispondente di quantità di token da zecca.
  • data: bytes – Dati aggiuntivi in formato byte.

Metodi di comportamento token - comportamento masterizzabile

burnBatch
Questo metodo brucia i token ERC-1155 in batch. I token devono essere già inizializzati. Questo metodo può essere richiamato da qualsiasi utente con il ruolo di masterizzatore.
Parametri:
  • tokenIds: uint256[]: lista di ID token da masterizzare.
  • quantity: uint256[]: un elenco corrispondente di quantità di token da masterizzare.
  • data: bytes – Dati aggiuntivi in formato byte.
burnNFT
Questo metodo brucia NFT. Il token deve essere già inizializzato. Questo metodo può essere richiamato da qualsiasi utente con il ruolo di masterizzatore.
Parametri:
  • tokenId: uint256: l'ID del token da masterizzare.

Metodi di comportamento token - comportamento trasferibile

safeTransferFrom
Questo metodo può essere chiamato da qualsiasi utente con token per trasferirli 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.
  • id: uint256: l'ID del token da trasferire.
  • value: uint256 – La quantità di token da trasferire.
  • data: bytes – Dati aggiuntivi in formato byte.
safeBatchTransferFrom
Questo metodo può essere chiamato da qualsiasi utente con token per trasferirli in batch 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.
  • id: uint256[]: una lista di ID di token da trasferire.
  • value: uint256[]: un elenco corrispondente di quantità di token da trasferire.
  • data: bytes – Dati aggiuntivi in formato byte.

Metodi di comportamento token - comportamento delegabile

setApprovalForAll
Questo metodo può essere chiamato da qualsiasi utente che possiede token per concedere o revocare l'autorizzazione per un operatore di trasferire i token del chiamante.
Parametri:
  • operator: string: l'indirizzo del wallet dell'operatore, che non deve essere zero.
  • approved: bool: flag che indica se l'operatore dispone dell'autorizzazione per trasferire i token del chiamante.
isApprovedForAll
Questo metodo può essere chiamato da qualsiasi utente proprietario di token per verificare se un utente specificato dispone dell'autorizzazione come operatore per trasferire i token del chiamante.
Parametri:
  • account: string – L'indirizzo dell'utente che ha concesso o revocato il permesso per l'operazione di trasferire i propri token.
  • operator: string: l'indirizzo del wallet dell'operatore, che non deve essere zero.
Restituzioni:
  • Valore booleano (true o false) che indica se l'utente specificato dispone dell'autorizzazione come operatore per trasferire i token del chiamante.

Metodi comportamento token - comportamento con pausable

paused
Questo metodo controlla se un contratto è sospeso. Questo metodo può essere chiamato solo da qualsiasi utente.
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

lockNFT
Questo metodo blocca un NFT. 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 NFT è bloccato. Questo metodo può essere richiamato solo da un utente con ruolo TOKEN_SYS_VAULT_ROLE o da un utente Token Admin.
Parametri:
  • tokenId: uint256: l'ID del token da controllare.
Restituzioni:
  • Valore booleano (true o false) che indica se NFT è bloccato.

Metodi di gestione del contesto

setContext
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.
getContext
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 recupera i dettagli del contesto di governance. 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.