Version préliminaire de Disponibilité Générale ("Pre-GA") : 2026-02-26

API de contrat intelligent Solidity

Oracle Blockchain Platform Enterprise Edition for Hyperledger Besu fournit des méthodes Solidity que vous pouvez utiliser pour travailler avec des contrats intelligents Solidity.

L'API prend en charge les jetons basés sur la norme ERC-20 et la norme ERC-1155. Les implémentations ERC-20 et ERC-1155 comprennent un contrat intelligent de compte et un contrat intelligent de jeton. Le contrat intelligent de compte fournit des méthodes de contrôle d'identité et d'accès. Le contrat intelligent de jetons fournit des fonctions spécifiquement liées aux jetons.

ERC-20 - Méthodes de contrat de compte

Méthodes de gestion des comptes

createAccount
Cette méthode crée un compte pour l'utilisateur spécifié. Les comptes suivent le solde des jetons et le solde des retenues d'un utilisateur, et doivent être créés pour tous les utilisateurs qui auront des jetons à tout moment. Cette méthode ne peut être appelée que par un élément Token Admin ou Org Admin de l'organisation indiquée.
Paramètres :
  • userId: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur. La chaîne d'ID utilisateur ne peut pas être vide.
  • orgId: string : ID du fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation actuelle. L'ID organisation ne peut pas être vide.
  • userAddress: address : adresse de portefeuille de l'utilisateur. L'adresse ne peut pas être égale à zéro.
  • maxDailyAmount: int256 : quantité maximale de jetons pouvant être utilisés dans les transactions quotidiennes. Si maxDailyAmount est -1, il n'y a pas de limite.
  • maxDailyTransactions: int256 : nombre maximal de transactions pouvant être effectuées quotidiennement. Si maxDailyTransactions est -1, il n'y a pas de limite.
deleteAccount
Cette méthode supprime le compte d'un utilisateur spécifié. Un compte ne peut être supprimé que si le solde du jeton est égal à zéro. Cette méthode ne peut être appelée que par un élément Token Admin ou Org Admin de l'organisation indiquée.
Paramètres :
  • userAddress: address : adresse de portefeuille de l'utilisateur. L'adresse ne peut pas être égale à zéro.
getAccountStatus
Cette méthode obtient le statut actuel du compte spécifié. Cette méthode peut être appelée uniquement par un élément Token Admin, Token Auditor, Org Admin de l'organisation indiquée ou par l'utilisateur indiqué.
Paramètres :
  • userAddress: address : adresse de portefeuille de l'utilisateur. L'adresse ne peut pas être égale à zéro.
Renvoie :
  • Valeur de l'objet enum AccountStatus, 0, 1 ou 2.
    enum AccountStatus {
    active,
    suspended,
    deleted
    }
getAccountByAddress
Cette méthode obtient les informations de compte pour un utilisateur spécifié. Cette méthode peut être appelée uniquement par un élément Token Admin, Token Auditor, Org Admin de l'organisation indiquée ou par l'utilisateur indiqué.
Paramètres :
  • userAddress: address : adresse de portefeuille de l'utilisateur. L'adresse ne peut pas être égale à zéro.
Exemple de valeur renvoyée :
{
    "userId": "userA",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a",
    "dailyLimits": {
          "isMaxDailyTxnEnabled": true,
    	  "isMaxDailyAmtEnabled": true, 
		  "dailyAmount": 100,
    	  "dailyTransactions": 5,
		  "maxDailyAmount": 100000,
    	  "maxDailyTransactions": 50           
	},
	"status":0
}
getAllAccounts
Cette méthode obtient les informations de compte pour tous les comptes compris dans une plage spécifiée. Cette méthode ne peut être appelée que par Token Admin ou Token Auditor.
Paramètres :
  • offset: uint256 : index de décalage à partir duquel obtenir les comptes.
  • limit: uint256 : nombre d'éléments à extraire.
Exemple de valeur renvoyée :
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
Cette méthode active un compte utilisateur. Cette méthode ne peut être appelée que par un élément Token Admin ou Org Admin de l'organisation indiquée.
Paramètres :
  • userAddress: address : adresse de portefeuille de l'utilisateur. L'adresse ne peut pas être égale à zéro.
suspendAccount
Cette méthode suspend un compte utilisateur. Pour supprimer un compte, le solde du compte doit être égal à zéro. Cette méthode ne peut être appelée que par un élément Token Admin ou Org Admin de l'organisation indiquée.
Paramètres :
  • userAddress: address : adresse de portefeuille de l'utilisateur. L'adresse ne peut pas être égale à zéro.
setMaxDailyAmount
Cette méthode définit le nombre maximum de jetons pouvant être utilisés quotidiennement dans les transactions. Cette méthode ne peut être appelée que par un élément Token Admin ou Org Admin de l'organisation indiquée.
Paramètres :
  • count: int256 : quantité maximale de jetons pouvant être utilisés dans les transactions quotidiennes.
  • userAddress: address : adresse de portefeuille de l'utilisateur. L'adresse ne peut pas être égale à zéro.
setMaxDailyTransactionCount
Cette méthode définit le nombre maximum de transactions pouvant être effectuées quotidiennement. Cette méthode ne peut être appelée que par un élément Token Admin ou Org Admin de l'organisation indiquée.
Paramètres :
  • value: int256 : nombre maximal de transactions pouvant être effectuées quotidiennement.
  • userAddress: address : adresse de portefeuille de l'utilisateur. L'adresse ne peut pas être égale à zéro.

Méthodes de gestion des administrateurs

addTokenAdmin
Cette méthode ajoute un utilisateur en tant que Token Admin. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • adminDetails: JSON : objet qui contient des détails sur l'utilisateur à ajouter en tant que Token Admin, comme indiqué dans l'exemple suivant.
    {
        "userId": "tokenAdmin1",
        "orgId": "orgA",
    	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"    
    }
removeTokenAdmin
Cette méthode enlève un utilisateur en tant que Token Admin. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • userAddress: address : adresse de portefeuille de l'utilisateur. L'adresse ne peut pas être égale à zéro.
getAllTokenAdmins
Cette méthode renvoie la liste de tous les utilisateurs qui sont Token Admin. Cette méthode ne peut être appelée que par Token Admin ou Token Auditor.
Paramètres :
  • Aucun élément
Exemple de valeur renvoyée :
[{
    "userId": "tokenadmin1",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"
},
{
    "userId": "tokenadmin2",
    "orgId": "orgB",
	"accountAddress": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73"
}]
isTokenAdmin
Cette méthode vérifie si l'utilisateur indiqué est un utilisateur Token Admin. Cette méthode ne peut être appelée que par Token Admin, Token Auditor, Org Admin ou Org Auditor.
Paramètres :
  • userAddress: address : adresse de portefeuille de l'utilisateur. L'adresse ne peut pas être égale à zéro.
Renvoie :
  • La méthode renvoie true si l'utilisateur indiqué est Token Admin, sinon elle renvoie false.
addOrgAdmin
Cette méthode ajoute un utilisateur en tant que Org Admin. Cette méthode ne peut être appelée que par un élément Token Admin ou Org Admin de l'organisation indiquée.
Paramètres :
  • adminDetails: JSON : objet qui contient des détails sur l'utilisateur à ajouter en tant que Org Admin, comme indiqué dans l'exemple suivant.
    {
        "userId": "tokenAdmin1",
        "orgId": "orgA",
    	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"    
    }
removeOrgAdmin
Cette méthode enlève un utilisateur en tant que Org Admin. Cette méthode ne peut être appelée que par un élément Token Admin ou Org Admin de l'organisation indiquée.
Paramètres :
  • userAddress: address : adresse de portefeuille de l'utilisateur. L'adresse ne peut pas être égale à zéro.
getAllOrgAdmins
Cette méthode renvoie la liste de tous les utilisateurs qui sont des Org Admin. Cette méthode ne peut être appelée que par Token Admin, Token Auditor, Org Admin ou Org Auditor.
Paramètres :
  • Aucun élément
Exemple de valeur renvoyée :
[{
    "userId": "orgadmin1",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"
},
{
    "userId": "orgadmin2",
    "orgId": "orgB",
	"accountAddress": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73"
}]
isOrgAdmin
Cette méthode vérifie si l'utilisateur indiqué est un utilisateur Org Admin. Cette méthode ne peut être appelée que par Token Admin, Token Auditor, Org Admin ou Org Auditor.
Paramètres :
  • userAddress: address : adresse de portefeuille de l'utilisateur. L'adresse ne peut pas être égale à zéro.
Renvoie :
  • La méthode renvoie true si l'utilisateur indiqué est Org Admin, sinon elle renvoie false.

Méthodes de gestion des auditeurs

addTokenAuditor
Cette méthode ajoute un utilisateur en tant que Token Auditor. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • adminDetails: JSON : objet qui contient des détails sur l'utilisateur à ajouter en tant que Token Auditor, comme indiqué dans l'exemple suivant.
    {
        "userId": "tokenAuditor1",
        "orgId": "orgA",
    	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"    
    }
removeTokenAuditor
Cette méthode enlève un utilisateur en tant que Token Auditor. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • userAddress: address : adresse de portefeuille de l'utilisateur. L'adresse ne peut pas être égale à zéro.
getAllTokenAuditors
Cette méthode renvoie la liste de tous les utilisateurs qui sont Token Auditor. Cette méthode ne peut être appelée que par Token Admin ou Token Auditor.
Paramètres :
  • Aucun élément
Exemple de valeur renvoyée :
[{
    "userId": "tokenAuditor1",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"
},
{
    "userId": "tokenAuditor2",
    "orgId": "orgB",
	"accountAddress": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73"
}]
isTokenAuditor
Cette méthode vérifie si l'utilisateur indiqué est un utilisateur Token Auditor. Cette méthode peut être appelée par n'importe quel utilisateur.
Paramètres :
  • userAddress: address : adresse de portefeuille de l'utilisateur. L'adresse ne peut pas être égale à zéro.
Renvoie :
  • La méthode renvoie true si l'utilisateur indiqué est Token Auditor, sinon elle renvoie false.
addOrgAuditor
Cette méthode ajoute un utilisateur en tant que Org Auditor. Cette méthode ne peut être appelée que par un élément Token Admin ou Org Admin de l'organisation indiquée.
Paramètres :
  • adminDetails: JSON : objet qui contient des détails sur l'utilisateur à ajouter en tant que Org Auditor, comme indiqué dans l'exemple suivant.
    {
        "userId": "tokenAuditor1",
        "orgId": "orgA",
    	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"    
    }
removeOrgAuditor
Cette méthode enlève un utilisateur en tant que Org Auditor. Cette méthode ne peut être appelée que par un élément Token Admin ou Org Admin de l'organisation indiquée.
Paramètres :
  • userAddress: address : adresse de portefeuille de l'utilisateur. L'adresse ne peut pas être égale à zéro.
getAllOrgAuditors
Cette méthode renvoie la liste de tous les utilisateurs qui sont des Org Auditor. Cette méthode ne peut être appelée que par Token Admin, Token Auditor, Org Admin ou Org Auditor.
Paramètres :
  • Aucun élément
Exemple de valeur renvoyée :
[{
    "userId": "orgAuditor1",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"
},
{
    "userId": "orgAuditor2",
    "orgId": "orgB",
	"accountAddress": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73"
}]
isOrgAuditor
Cette méthode vérifie si l'utilisateur indiqué est un utilisateur Org Auditor. Cette méthode peut être appelée par n'importe quel utilisateur.
Paramètres :
  • userAddress: address : adresse de portefeuille de l'utilisateur. L'adresse ne peut pas être égale à zéro.
Renvoie :
  • La méthode renvoie true si l'utilisateur indiqué est Org Auditor, sinon elle renvoie false.

Méthodes de gestion des rôles

addRole
Cette méthode ajoute un rôle à un utilisateur spécifié. Cette méthode ne peut être appelée que par un élément Token Admin ou Org Admin de l'organisation indiquée.
Paramètres :
  • userAddress: address : adresse de portefeuille de l'utilisateur. L'adresse ne peut pas être égale à zéro.
  • role: string : nom du rôle à ajouter à l'utilisateur indiqué. Par exemple, minter, burner ou notary.
removeRole
Cette méthode supprime un rôle d'un utilisateur spécifié. Cette méthode ne peut être appelée que par un élément Token Admin ou Org Admin de l'organisation indiquée.
Paramètres :
  • userAddress: address : adresse de portefeuille de l'utilisateur. L'adresse ne peut pas être égale à zéro.
  • role: string : nom du rôle à enlever de l'utilisateur indiqué. Par exemple, minter, burner ou notary.
accountHasRole
Cette méthode vérifie si un utilisateur a un rôle spécifié. Cette méthode peut être appelée par n'importe quel utilisateur.
Paramètres :
  • role: string – Hachage Keccak-256 du nom du rôle (minter, burner ou notary) à rechercher.
  • userAddress: address : adresse de portefeuille de l'utilisateur. L'adresse ne peut pas être égale à zéro.
Renvoie :
  • La méthode renvoie true si l'utilisateur dispose du rôle indiqué, sinon elle renvoie false.

ERC-20 Méthodes contractuelles par jeton

Méthodes de gestion de la configuration des jetons

__ERC20Token_init
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 :
  • name: string : nom du jeton.
  • symbol: string : symbole du jeton.
  • accountContract: address – Adresse du contrat de compte.
initializeERC20Token
Cette méthode initialise un jeton ERC-20. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • token: JSON : objet qui définit le jeton, comme indiqué dans l'exemple suivant.
    {
        "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
Cette méthode obtient les détails d'un jeton. Cette méthode ne peut être appelée que par Token Admin, Token Auditor, Org Admin ou Org Auditor.
Paramètres :
  • Aucun élément
Exemple de valeur renvoyée :
{
    "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
Cette méthode obtient la valeur décimale d'un jeton. Cette méthode ne peut être appelée que par Token Admin, Token Auditor, Org Admin ou Org Auditor.
Paramètres :
  • Aucun élément
Valeur renvoyée
  • Valeur uint8 du nombre de décimales.
__ERC20Token_init
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 :
  • name: string : nom du jeton.
  • symbol: string : symbole du jeton.
  • accountContract: address – Adresse du contrat de compte.
initializeERC20Token
Cette méthode initialise un jeton ERC-20. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • token: JSON : objet qui définit le jeton, comme indiqué dans l'exemple suivant.
    {
        "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
Cette méthode obtient les détails d'un jeton. Cette méthode ne peut être appelée que par Token Admin, Token Auditor, Org Admin ou Org Auditor.
Paramètres :
  • Aucun élément
Exemple de valeur renvoyée :
{
    "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
Cette méthode obtient l'approvisionnement maximal de jeton (cap). Cette méthode ne peut être appelée que par Token Admin, Token Auditor, Org Admin ou Org Auditor.
Paramètres :
  • Aucun élément
Valeur renvoyée
  • Valeur uint256 de la limite d'approvisionnement de jeton.
balanceOf
Cette méthode obtient le solde de jeton pour l'utilisateur spécifié. Cette méthode peut être appelée uniquement par Token Admin, Token Auditor, Org Admin, Org Auditor ou par l'utilisateur indiqué.
Paramètres :
  • userAddress: address : adresse de portefeuille de l'utilisateur. L'adresse ne peut pas être égale à zéro.
Valeur renvoyée
  • Valeur uint256 du solde de jeton.
Gestion du comportement des jetons - Comportement mentable
mint
Cette méthode crée des jetons (mints). Cette méthode peut être appelée par n'importe quel utilisateur disposant du rôle minter.
Paramètres :
  • to: address : adresse de portefeuille de l'utilisateur. L'adresse ne peut pas être égale à zéro.
  • value: uint256 : quantité de jetons à la menthe.
batchMint
Cette méthode crée des jetons (mints) pour plusieurs utilisateurs à la fois. Cette méthode peut être appelée par n'importe quel utilisateur disposant du rôle minter.
Paramètres :
  • toList: address[] : liste des adresses de portefeuille des utilisateurs. Les adresses ne peuvent pas être égales à zéro.
  • amounts: uint256[] : liste des quantités de jetons à la menthe.
requestMint
Cette méthode peut être appelée par un mineur pour envoyer une demande au notaire afin de créer un nombre spécifié de jetons.
Paramètres :
  • notary: address : adresse du portefeuille du notaire. L'adresse ne peut pas être égale à zéro.
  • amount: uint256 : quantité de jetons à la menthe.
  • expiration: uint256 : heure d'expiration de la demande au format epoch.
  • opId: string : ID d'opération de la demande.
  • info: InfoDetails : objet indiquant la catégorie (category) et la description (description) de la demande.
approveMint
Cette méthode peut être appelée par un notaire pour approuver une demande de frappe.
Paramètres :
  • opId: string : ID d'opération de la demande.
rejectMint
Cette méthode peut être appelée par un notaire pour rejeter une demande de frappe.
Paramètres :
  • opId: string : ID d'opération de la demande.

Gestion du comportement des jetons - Comportement gravable

burn
Cette méthode désactive les jetons (brûlures). Cette méthode peut être appelée par n'importe quel utilisateur disposant du rôle de brûleur.
Paramètres :
  • account: address : adresse de portefeuille de l'utilisateur. L'adresse ne peut pas être égale à zéro.
  • value: uint256 : quantité de jetons à brûler.
batchBurn
Cette méthode consiste à graver des jetons pour plusieurs utilisateurs à la fois. Cette méthode peut être appelée par n'importe quel utilisateur disposant du rôle de brûleur.
Paramètres :
  • toList: address[] : liste des adresses de portefeuille des utilisateurs. Les adresses ne peuvent pas être égales à zéro.
  • amounts: uint256[] : liste des quantités de jetons à brûler.
requestBurn
Cette méthode peut être appelée par un brûleur pour envoyer une demande au notaire de brûler une quantité spécifiée de jetons.
Paramètres :
  • notary: address : adresse du portefeuille du notaire. L'adresse ne peut pas être égale à zéro.
  • amount: uint256 : quantité de jetons à brûler.
  • expiration: uint256 : heure d'expiration de la demande au format epoch.
  • opId: string : ID d'opération de la demande.
  • info: InfoDetails : objet indiquant la catégorie (category) et la description (description) de la demande.
approveBurn
Cette méthode peut être appelée par un notaire pour approuver une demande de gravure.
Paramètres :
  • opId: string : ID d'opération de la demande.
rejectBurn
Cette méthode peut être appelée par un notaire pour rejeter une demande de gravure.
Paramètres :
  • opId: string : ID d'opération de la demande.

Gestion du comportement des jetons - Comportement transférable

transfer
Cette méthode transfère les jetons à un utilisateur spécifié. Cette méthode peut être appelée par n'importe quel utilisateur avec des jetons.
Paramètres :
  • to: address : adresse de portefeuille du destinataire. L'adresse ne peut pas être égale à zéro.
  • value: uint256 : quantité de jetons à transférer.
batchTransfer
Cette méthode transfère les jetons vers une liste d'utilisateurs spécifiée. Cette méthode peut être appelée par n'importe quel utilisateur avec des jetons.
Paramètres :
  • toList: address[] : liste des adresses de portefeuille des récepteurs. Les adresses ne peuvent pas être égales à zéro.
  • amounts: uint256[] : liste des quantités de jetons à transférer.

Gestion du comportement des jetons - Comportement déléguable

allowance
Cette méthode délègue les dépenses de jeton à un utilisateur spécifié. Cette méthode peut être appelée par n'importe quel utilisateur avec des jetons.
Paramètres :
  • owner: address : adresse de portefeuille du propriétaire qui délègue les dépenses de jetons. L'adresse ne peut pas être égale à zéro.
  • spender: address : adresse de portefeuille de l'expéditeur de jeton. L'adresse ne peut pas être égale à zéro.
Valeur renvoyée
  • Montant uint256 des jetons délégués pour les dépenses.
approve
Cette méthode approuve le montant des jetons pour une dépense déléguée spécifiée. Cette méthode peut être appelée par n'importe quel utilisateur avec des jetons.
Paramètres :
  • spender: address : adresse de portefeuille de l'expéditeur de jeton. L'adresse ne peut pas être égale à zéro.
  • value: uint256 : quantité de jetons que l'expéditeur est autorisé à dépenser.
transferFrom
Les dépensés délégués utilisent cette méthode pour transférer des jetons.
Paramètres :
  • from: address : adresse de portefeuille de l'expéditeur. L'adresse ne peut pas être égale à zéro.
  • to: address : adresse de portefeuille du destinataire. L'adresse ne peut pas être égale à zéro.
  • value: uint256 : quantité de jetons à transférer.

Gestion du comportement des jetons - Comportement pouvant être suspendu

isPaused
Cette méthode vérifie si le contrat est en pause. Cette méthode ne peut être appelée que par Token Admin, Token Auditor, Org Admin ou Org Auditor.
Paramètres :
  • Aucun élément
pause
Cette méthode met le contrat en pause. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • Aucun élément
unpause
Cette méthode reprend le contrat. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • Aucun élément

Gestion du comportement des jetons - Comportement pouvant être conservé

hold
Cette méthode crée un blocage pour le compte du propriétaire du jeton. Cette méthode peut être appelée par n'importe quel utilisateur avec des jetons.
Paramètres :
  • to: address : adresse de portefeuille du destinataire. L'adresse ne peut pas être égale à zéro.
  • notary: address : adresse du portefeuille du notaire. L'adresse ne peut pas être égale à zéro.
  • amount: uint256 : quantité de jetons à transférer.
  • expiration: uint256 : heure d'expiration de la demande au format epoch.
  • opId: string : ID d'opération de la demande.
  • holdType: string : type de blocage. Par exemple, transfer.
  • info: InfoDetails : objet indiquant la catégorie (category) et la description (description) de la demande.
executeHold
Cette méthode approuve une demande de blocage. Cette méthode ne peut être appelée que par le notaire spécifié précédemment.
Paramètres :
  • amount: uint256 : quantité de jetons à approuver.
  • opId: string : ID d'opération de la demande.
releaseHold
Cette méthode rejette une demande de blocage. Cette méthode ne peut être appelée que par le notaire spécifié précédemment.
Paramètres :
  • opId: string : ID d'opération de la demande.
getOnHoldBalanceWithOperationId
Cette méthode renvoie le solde retenu pour un ID d'opération spécifié. Cette méthode peut être appelée par un élément Token Admin ou Token Auditor, Org Admin ou Org Auditor de l'organisation indiquée, ou par un participant à la transaction (expéditeur, destinataire, notaire).
Paramètres :
  • opId: string : ID d'opération de la demande.
Valeur renvoyée
  • Un montant de uint256 du solde retenu.
getAccountOnHoldBalance
Cette méthode renvoie le solde de retenue pour un compte spécifié. Cette méthode peut être appelée par un élément Token Admin ou Token Auditor, Org Admin ou Org Auditor de l'organisation indiquée, ou par un participant à la transaction (expéditeur, destinataire, notaire).
Paramètres :
  • account: address : adresse de portefeuille du compte. L'adresse ne peut pas être égale à zéro.
Valeur renvoyée
  • Un montant de uint256 du solde retenu.

ERC-1155 Méthodes de contrat de compte

Méthodes de gestion des comptes

createAccount
Cette méthode crée un compte pour l'utilisateur spécifié. Les comptes suivent le solde des jetons d'un utilisateur et doivent être créés pour tous les utilisateurs qui auront des jetons à tout moment. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • userId: string : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur. La chaîne d'ID utilisateur ne peut pas être vide.
  • orgId: string : ID du fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation actuelle. L'ID organisation ne peut pas être vide.
  • userAddress: address : adresse de portefeuille de l'utilisateur. L'adresse ne peut pas être égale à zéro.
deleteAccount
Cette méthode supprime le compte d'un utilisateur spécifié. Un compte ne peut être supprimé que si le solde du jeton est égal à zéro. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • userAddress: address : adresse de portefeuille de l'utilisateur. L'adresse ne peut pas être égale à zéro.
getAccountStatus
Cette méthode obtient le statut actuel du compte spécifié. Cette méthode ne peut être appelée que par un élément Token Admin ou par l'utilisateur indiqué.
Paramètres :
  • userAddress: address : adresse de portefeuille de l'utilisateur. L'adresse ne peut pas être égale à zéro.
Renvoie :
  • Valeur de l'objet enum AccountStatus, 0, 1 ou 2.
    enum AccountStatus {
    active,
    suspended,
    deleted
    }
getAccountByAddress
Cette méthode obtient les informations de compte pour un utilisateur spécifié. Cette méthode ne peut être appelée que par un élément Token Admin ou par l'utilisateur indiqué.
Paramètres :
  • userAddress: address : adresse de portefeuille de l'utilisateur. L'adresse ne peut pas être égale à zéro.
Exemple de valeur renvoyée :
{
    "userId": "userA",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a",
	"status":0
}
getAllAccounts
Cette méthode obtient les informations de compte pour tous les comptes compris dans une plage spécifiée. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • offset: uint256 : index de décalage à partir duquel obtenir les comptes.
  • limit: uint256 : nombre d'éléments à extraire.
Exemple de valeur renvoyée :
Return (UserAccount[] memory items, uint256 total, uint256 nextOffset)
[{
    "userId": "userA",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a",
	"status":0
}]
total: 15
nextoffset: 6
activateAccount
Cette méthode active un compte utilisateur. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • userAddress: address : adresse de portefeuille de l'utilisateur. L'adresse ne peut pas être égale à zéro.
suspendAccount
Cette méthode suspend un compte utilisateur. Pour supprimer un compte, le solde du compte doit être égal à zéro. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • userAddress: address : adresse de portefeuille de l'utilisateur. L'adresse ne peut pas être égale à zéro.

Méthodes de gestion des administrateurs

addTokenAdmin
Cette méthode ajoute un utilisateur en tant que Token Admin. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • adminDetails: JSON : objet qui contient des détails sur l'utilisateur à ajouter en tant que Token Admin, comme indiqué dans l'exemple suivant.
    {
        "userId": "tokenAdmin1",
        "orgId": "orgA",
    	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"    
    }
removeTokenAdmin
Cette méthode enlève un utilisateur en tant que Token Admin. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • userAddress: address : adresse de portefeuille de l'utilisateur. L'adresse ne peut pas être égale à zéro.
getAllTokenAdmins
Cette méthode renvoie la liste de tous les utilisateurs qui sont Token Admin. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • Aucun élément
Exemple de valeur renvoyée :
[{
    "userId": "tokenadmin1",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"
},
{
    "userId": "tokenadmin2",
    "orgId": "orgB",
	"accountAddress": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73"
}]
isTokenAdmin
Cette méthode vérifie si l'utilisateur indiqué est un utilisateur Token Admin. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • userAddress: address : adresse de portefeuille de l'utilisateur. L'adresse ne peut pas être égale à zéro.
Renvoie :
  • La méthode renvoie true si l'utilisateur indiqué est Token Admin, sinon elle renvoie false.

Méthodes de gestion des rôles

addRole
Cette méthode ajoute un rôle à un utilisateur spécifié. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • userAddress: address : adresse de portefeuille de l'utilisateur. L'adresse ne peut pas être égale à zéro.
  • role: string : nom du rôle à ajouter à l'utilisateur indiqué. Par exemple, minter, burner ou notary.
  • scopeId: uint256 : ID de classe de jeton non fongible (NFT) ou ID de jeton fongible.
removeRole
Cette méthode supprime un rôle d'un utilisateur spécifié. Cette méthode ne peut être appelée que par un élément Token Admin ou Org Admin de l'organisation indiquée.
Paramètres :
  • userAddress: address : adresse de portefeuille de l'utilisateur. L'adresse ne peut pas être égale à zéro.
  • role: string : nom du rôle à enlever de l'utilisateur indiqué. Par exemple, minter, burner ou notary.
  • scopeId: uint256 : ID de classe de jeton non fongible (NFT) ou ID de jeton fongible.
accountHasRole
Cette méthode vérifie si un utilisateur a un rôle spécifié. Cette méthode peut être appelée par n'importe quel utilisateur.
Paramètres :
  • role: string – Hachage Keccak-256 du nom du rôle (minter, burner ou notary) à rechercher.
  • userAddress: address : adresse de portefeuille de l'utilisateur. L'adresse ne peut pas être égale à zéro.
  • scopeId: uint256 : ID de classe de jeton non fongible (NFT) ou ID de jeton fongible.
Renvoie :
  • La méthode renvoie true si l'utilisateur dispose du rôle indiqué, sinon elle renvoie false.
addTokenSysRole
Cette méthode ajoute le rôle TOKEN_SYS_VAULT_ROLE à l'utilisateur indiqué. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • userAddress: address : adresse de portefeuille de l'utilisateur. L'adresse ne peut pas être égale à zéro.
  • role: string : le seul rôle pris en charge est TOKEN_SYS_VAULT_ROLE.
Renvoie :
  • La méthode renvoie true si le rôle a été ajouté. Sinon, elle renvoie false.
removeTokenSysRole
Cette méthode enlève le rôle TOKEN_SYS_VAULT_ROLE d'un utilisateur spécifié. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • userAddress: address : adresse de portefeuille de l'utilisateur. L'adresse ne peut pas être égale à zéro.
  • role: string : le seul rôle pris en charge est TOKEN_SYS_VAULT_ROLE.
Renvoie :
  • La méthode renvoie true si le rôle a été enlevé. Sinon, elle renvoie false.
transferTokenSysRole
Cette méthode transfère le rôle TOKEN_SYS_VAULT_ROLE d'un utilisateur à un autre. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • fromAddress: address : adresse de portefeuille de l'expéditeur. L'adresse ne peut pas être égale à zéro.
  • toAddress: address : adresse de portefeuille du destinataire. L'adresse ne peut pas être égale à zéro.
  • role: string : le seul rôle pris en charge est TOKEN_SYS_VAULT_ROLE.
Renvoie :
  • La méthode renvoie true si le rôle a été transmis. Sinon, elle renvoie false.

ERC-1155 Méthodes contractuelles par jeton

Méthodes de gestion de la configuration des jetons

__ERC1155Token_init
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 :
  • accountContract: address – Adresse du contrat de compte.
  • uri: string : URI de type 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: JSON : objet d'informations sur la classe de compte NFT. Le code suivant montre un exemple pour un 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 }
    }
    Le code suivant illustre un exemple de 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. Cette méthode ne peut être appelée que par un utilisateur doté du rôle minter.
Paramètres :
  • tokenId: uint256 : ID de jeton de la NFT, qui contient les informations de classe NFT. Les 128 bits supérieurs de l'ID représentent l'ID de classe NFT et les 128 bits inférieurs représentent l'index unique de la NFT.
  • quantity: uint256 – La quantité de NFT à effectuer (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 :
  • token : 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. Cette méthode ne peut être appelée que par un propriétaire de jeton ou Token Admin.
Paramètres :
  • token : définition de jeton fongible, 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 : si le jeton est fongible, indiquez une valeur vide. Si le jeton est un NFT entier, indiquez une version encodée de l'objet struct suivant.
    struct ERC1155WholeNFT {
        bool isBurned;
        bool isLocked;
        uint256 creationDate;
        uint256 quantity;
        address createdBy;
        address owner;
    }
    Si le jeton est une NFT fractionnaire, indiquez une version encodée de l'objet struct suivant.
    struct ERC1155FractionalNFT {
        bool isBurned;
        bool isLocked;
        uint256 creationDate;
        uint256 quantity;
        address createdBy;
        Owners[] owners;
    }
geTokenDecimals
Cette méthode obtient la valeur décimale d'un jeton. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • id: uint256 : ID de jeton.
Valeur renvoyée
  • Valeur uint8 du nombre de positions décimales.
tokenIdOf
Cette méthode obtient l'ID d'un 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.
Valeur renvoyée
  • ID de jeton uint256.
balanceOf
Cette méthode obtient le solde de jeton pour l'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: address : adresse de portefeuille de l'utilisateur. L'adresse ne peut pas être égale à zéro.
  • id: uint256 : ID de jeton.
Valeur renvoyée
  • Valeur uint256 du solde de jeton.
balanceOfBatch
Cette méthode obtient le solde de jeton pour une liste d'utilisateurs. 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: address[] : liste des adresses de portefeuille des utilisateurs.
  • id: uint256[] : liste des ID de jeton.
Valeur renvoyée
  • Liste uint256[] des soldes de jeton.
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.
Renvoie :
  • La méthode renvoie true si le jeton indiqué existe, sinon elle renvoie false.
totalSupply
Cette méthode vérifie l'approvisionnement total de tous les jetons du contrat. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • Aucun élément
Renvoie :
  • Valeur uint256[] de l'approvisionnement total du jeton.
totalSupply
Cette méthode vérifie l'approvisionnement total d'un jeton spécifié dans le contrat. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • id: uint256 : ID de jeton.
Renvoie :
  • Valeur uint256[] de l'approvisionnement total du jeton indiqué.
Gestion du comportement des jetons - Comportement mentable
mintBatch
Cette méthode crée des jetons (mints) ERC-1155 en mode batch. Les jetons doivent ê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 jetons à mint.
  • quantity: uint256[] : liste des quantités de jeton à mint.
  • data: byte : octets supplémentaires des données.

Gestion du comportement des jetons - Comportement gravable

burnBatch
Cette méthode détruit (brûle) les jetons ERC-1155 en mode batch. Les jetons doivent ê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 jetons à brûler.
  • quantity: uint256[] : liste des quantités de jetons à graver.
  • data: byte : octets supplémentaires des données.
burnNFT
Cette méthode détruit (brûle) un jeton non fongible. Les jetons doivent être initialisés. 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.

Gestion du comportement des jetons - Comportement transférable

safeTransferFrom
Cette méthode transfère des jetons d'un expéditeur à un destinataire. Cette méthode peut être appelée par tout utilisateur qui détient des jetons.
Paramètres :
  • from: address : adresse de portefeuille de l'expéditeur. L'adresse ne peut pas être égale à zéro.
  • to: address : adresse de portefeuille du destinataire. L'adresse ne peut pas être égale à zéro.
  • id: uint256 : ID du jeton ERC-1155 à transférer.
  • value: uint256 : quantité de jetons à transférer.
  • data: byte : octets supplémentaires des données.
safeBatchTransferFrom
Cette méthode transfère des jetons d'un expéditeur à un destinataire. Cette méthode peut être appelée par tout utilisateur qui détient des jetons.
Paramètres :
  • from: address : adresse de portefeuille de l'expéditeur. L'adresse ne peut pas être égale à zéro.
  • to: address : adresse de portefeuille du destinataire. L'adresse ne peut pas être égale à zéro.
  • id: uint256 : ID du jeton ERC-1155 à transférer.
  • value: uint256 : quantité de jetons à transférer.
  • data: byte : octets supplémentaires des données.

Gestion du comportement des jetons - Comportement déléguable

setApprovalForAll
Cette méthode accorde ou révoque le droit d'accès d'un opérateur pour transférer les jetons de l'appelant, en fonction du paramètre approved. Cette méthode peut être appelée par tout utilisateur qui détient des jetons.
Paramètres :
  • operator: address : adresse de portefeuille de l'opérateur auquel des droits d'accès sont accordés ou révoqués. L'adresse ne peut pas être égale à zéro.
  • approved: bool : un indicateur booléen indique si l'opérateur est autorisé à transférer les jetons de l'appelant.
isApprovedForAll
Cette méthode vérifie si un opérateur est approuvé pour transférer des jetons pour un compte spécifié. Cette méthode peut être appelée par tout utilisateur qui détient des jetons.
Paramètres :
  • account: address : adresse de portefeuille des utilisateurs qui ont accordé ou révoqué des droits d'accès à l'opérateur pour le transfert de leurs jetons. L'adresse ne peut pas être égale à zéro.
  • operator: address : adresse de portefeuille de l'opérateur auquel des droits d'accès ont été accordés ou révoqués. L'adresse ne peut pas être égale à zéro.
Renvoie :
  • Valeur booléenne indiquant si l'opérateur est approuvé pour le transfert de jetons pour le compte spécifié.

Gestion du comportement des jetons - Comportement pouvant être suspendu

paused
Cette méthode vérifie si le contrat est en pause. Cette méthode peut être appelée par n'importe quel utilisateur.
Paramètres :
  • Aucun élément
pause
Cette méthode met le contrat en pause. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • Aucun élément
unpause
Cette méthode reprend un contrat en pause. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • Aucun élément

Gestion du comportement des jetons - Comportement verrouillable

lockNFT
Cette méthode verrouille un jeton non fongible. 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 jeton non fongible est verrouillé. Cette méthode ne peut être appelée que par un utilisateur doté du rôle TOKEN_SYS_VAULT_ROLE ou par Token Admin.
Paramètres :
  • tokenId: uint256 : ID du jeton à vérifier.
Renvoie :
  • Valeur booléenne indiquant si le jeton est verrouillé.