API de contrat de jeton ERC-1155

Vous pouvez utiliser les méthodes suivantes liées à la fonctionnalité de token dans les contrats de token ERC-1155.

Méthodes de configuration de jeton

__ERC1155Token_init
Cette méthode est appelée lorsqu'un contrat de jeton est déployé. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • uri: string : URI de tous les types de jeton.

Méthodes de configuration de jeton

saveNFTClass
Cette méthode enregistre les informations de classe NFT dans le livre. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • classInfo: NFTClassInfo – L'adresse du contrat du compte, qui varie selon que le NFT est entier ou fractionnaire. NFT entier :
    {
        "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 fractionnaire :
     "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
Cette méthode extrait les NFT en fonction des informations de classe NFT enregistrées. Cette méthode peut être appelée par un utilisateur doté du rôle minter ou par Token Admin.
Paramètres :
  • token: uint256 : ID de la NFT, qui contient les informations de classe NFT. Les 128 bits supérieurs du paramètre tokenId représentent l'ID de classe NFT, tandis que les 128 bits inférieurs représentent l'index unique de la NFT.
  • quantity: uint256 – La quantité de NFT à mint (créer).
createFungibleToken
Cette méthode est appelée lorsque le contrat de jeton est déployé. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • tokenID: ERC1155Token : définition de jeton fongible à enregistrer dans le livre, comme indiqué dans l'exemple suivant.
    "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
Cette méthode obtient les détails d'un jeton spécifié. Cette méthode ne peut être appelée que par un élément Token Admin ou par un propriétaire de jeton.
Paramètres :
  • token: ERC1155Token : définition de jeton, comme indiqué dans l'exemple suivant :
     "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 : pour les jetons fongibles, le paramètre metainfo est vide. Pour les NFT entiers, le paramètre metainfo contient des données codées pour la structure suivante :
    struct ERC1155WholeNFT {
        bool isBurned;
        bool isLocked;
        uint256 creationDate;
        uint256 quantity;
        address createdBy;
        address owner;
    }
    Pour les NFT fractionnaires, le paramètre metainfo contient des données codées pour la structure suivante :
    struct ERC1155FractionalNFT {
        bool isBurned;
        bool isLocked;
        uint256 creationDate;
        uint256 quantity;
        address createdBy;
        Owners[] owners;
    }
getTokenDecimals
Cette méthode renvoie le nombre de décimales configurées pour un jeton. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • id: uint256 : ID de jeton.
Retours :
  • Valeur uint8 indiquant le nombre de décimales.
tokenIdOf
Cette méthode renvoie l'ID de jeton. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • classId: uint256 : ID de classe NFT.
  • serialId: uint256 : ID de série dans la classe NFT.
Retours :
  • Valeur uint256 de l'ID de jeton.
balanceOf
Cette méthode renvoie le solde actuel du jeton pour un utilisateur spécifié. Cette méthode ne peut être appelée que par un élément Token Admin ou par le propriétaire du jeton.
Paramètres :
  • account: string – Adresse du compte de l'utilisateur.
  • id: uint256 : ID de jeton.
Retours :
  • Valeur uint256 indiquant le solde actuel.
balanceOfBatch
Cette méthode renvoie les soldes de jeton actuels pour un lot d'utilisateurs spécifiés. Cette méthode ne peut être appelée que par un élément Token Admin ou par le propriétaire du jeton.
Paramètres :
  • accounts: string[] : liste des adresses de compte des utilisateurs.
  • ids: uint256[] : liste des ID de jeton.
Retours :
  • Liste de valeurs uint256[] indiquant les soldes en cours.
exists
Cette méthode vérifie si un jeton spécifié existe. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • id: uint256 : ID de jeton.
Retours :
  • Valeur booléenne (True ou False).
totalSupply
Cette méthode renvoie l'approvisionnement total de jetons dans un contrat. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • id: uint256 (facultatif) : ID de jeton. Si vous ne spécifiez pas d'ID de jeton, l'approvisionnement total de tous les jetons du contrat est renvoyé.
Retours :
  • Valeur uint256 indiquant l'approvisionnement total.

Méthodes de comportement des jetons - Comportement mentable

mintBatch
Cette méthode extrait les jetons ERC-1155 par lots. Les jetons doivent déjà être initialisés. Cette méthode peut être appelée par n'importe quel utilisateur disposant du rôle minter.
Paramètres :
  • tokenIds: uint256[] : liste des ID de jeton à extraire.
  • quantity: uint256[] : liste correspondante des quantités de jeton à mint.
  • data: bytes : données supplémentaires au format octet.

Méthodes de comportement des jetons - Comportement gravable

burnBatch
Cette méthode brûle les jetons ERC-1155 par lots. Les jetons doivent déjà être initialisés. Cette méthode peut être appelée par n'importe quel utilisateur disposant du rôle de brûleur.
Paramètres :
  • tokenIds: uint256[] : liste des ID de jeton à graver.
  • quantity: uint256[] : liste correspondante des quantités de jeton à graver.
  • data: bytes : données supplémentaires au format octet.
burnNFT
Cette méthode brûle les NFT. Le jeton doit déjà être initialisé. Cette méthode peut être appelée par n'importe quel utilisateur disposant du rôle de brûleur.
Paramètres :
  • tokenId: uint256 : ID du jeton à brûler.

Méthodes de comportement de jeton - Comportement transférable

safeTransferFrom
Cette méthode peut être appelée par tout utilisateur avec des jetons pour les transférer à un autre utilisateur.
Paramètres :
  • from: string : adresse de portefeuille de l'expéditeur, qui ne doit pas être nulle.
  • to: string : adresse de portefeuille du récepteur, qui ne doit pas être nulle.
  • id: uint256 : ID du jeton à transférer.
  • value: uint256 : quantité de jetons à transférer.
  • data: bytes : données supplémentaires au format octet.
safeBatchTransferFrom
Cette méthode peut être appelée par n'importe quel utilisateur avec des jetons pour les transférer par lots à un autre utilisateur.
Paramètres :
  • from: string : adresse de portefeuille de l'expéditeur, qui ne doit pas être nulle.
  • to: string : adresse de portefeuille du récepteur, qui ne doit pas être nulle.
  • id: uint256[] : liste des ID des jetons à transférer.
  • value: uint256[] : liste correspondante des quantités de jetons à transférer.
  • data: bytes : données supplémentaires au format octet.

Méthodes de comportement des jetons - Comportement déléguable

setApprovalForAll
Cette méthode peut être appelée par tout utilisateur propriétaire de jetons pour accorder ou révoquer l'autorisation d'un opérateur de transférer les jetons de l'appelant.
Paramètres :
  • operator: string : adresse de portefeuille de l'opérateur, qui ne doit pas être nulle.
  • approved: bool : indicateur indiquant si l'opérateur est autorisé à transférer les jetons de l'appelant.
isApprovedForAll
Cette méthode peut être appelée par n'importe quel utilisateur propriétaire de jetons pour vérifier si un utilisateur spécifié est autorisé en tant qu'opérateur à transférer les jetons de l'appelant.
Paramètres :
  • account: string : adresse de l'utilisateur qui a accordé ou révoqué l'autorisation pour l'opération de transfert de ses jetons.
  • operator: string : adresse de portefeuille de l'opérateur, qui ne doit pas être nulle.
Retours :
  • Valeur booléenne (True ou False) indiquant si l'utilisateur spécifié est autorisé en tant qu'opérateur à transférer les jetons de l'appelant.

Méthodes de comportement de jeton - Comportement pouvant être suspendu

paused
Cette méthode vérifie si un contrat est mis en pause. Cette méthode ne peut être appelée que par un utilisateur.
Paramètres :
  • Aucun
pause
Cette méthode met un contrat en pause. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • Aucun
unpause
Cette méthode démarre un contrat en pause. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • Aucun

Méthodes de comportement de jeton - Comportement verrouillable

lockNFT
Cette méthode verrouille un NFT. Cette méthode ne peut être appelée que par un utilisateur doté du rôle TOKEN_SYS_VAULT_ROLE.
Paramètres :
  • tokenId: uint256 : ID du jeton à verrouiller.
isNFTLocked
Cette méthode vérifie si un NFT est verrouillé. Cette méthode ne peut être appelée que par un utilisateur doté du rôle TOKEN_SYS_VAULT_ROLE ou par un élément Token Admin.
Paramètres :
  • tokenId: uint256 : ID du jeton à vérifier.
Retours :
  • Valeur booléenne (True ou False) indiquant si le NFT est verrouillé.

Méthodes de gestion du contexte

setContext
Cette méthode définit l'adresse du contrat avec jeton pour le contrat de compte. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • tokenAddress: address : adresse du contrat du jeton déployé, qui ne doit pas être nulle.
getContext
Cette méthode obtient l'adresse de contrat avec jeton pour le contrat de compte. Cette méthode peut être appelée par n'importe quel utilisateur.
Paramètres :
  • Aucun
Retours
  • Adresse du contrat de jeton
setGovernanceContext
Cette méthode définit le contrat de gouvernance à utiliser pour gérer le cycle de vie de gouvernance du contrat de compte. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • uuid: string – ID unique défini par les ressources numériques Token Admin avant le déploiement du contrat.
  • governance: address – L'adresse du contrat de gouvernance déployé, qui ne doit pas être nulle.
getGovernanceContext
Cette méthode obtient les détails du contexte de gouvernance. Cette méthode peut être appelée par n'importe quel utilisateur.
Paramètres :
  • Aucun
Retours
  • Objet governanceContext.
Exemple de valeur renvoyée :
{
    "governanceUUID": "abc-def",
    "governance": "0x0000000",
	"deploymentActive": "true"
}
isDeploymentActive
Cette méthode vérifie si le déploiement est actif. Cette méthode peut être appelée par n'importe quel utilisateur.
Paramètres :
  • Aucun
Retours :
  • Valeur booléenne (True ou False) indiquant si le déploiement est actif.