Avant disponibilité générale : 2026-02-26

API Solidity Smart Contract

Oracle Blockchain Platform Enterprise Edition pour Hyperledger Besu fournit des méthodes Solidity que vous pouvez utiliser pour utiliser les 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 jeton 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 un utilisateur spécifié. Les comptes suivent le solde des jetons d'un utilisateur et le solde bloqué, 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 Token Admin ou un Org Admin de l'organisation spécifiée.
Paramètres :
  • userId: string – Nom d'utilisateur ou ID courriel de l'utilisateur. La chaîne d'ID utilisateur ne peut pas être vide.
  • orgId: string – ID fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation courante. L'ID organisation ne peut pas être vide.
  • userAddress: address - Adresse du portefeuille de l'utilisateur. L'adresse ne peut pas être 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 Token Admin ou un Org Admin de l'organisation spécifiée.
Paramètres :
  • userAddress: address - Adresse du portefeuille de l'utilisateur. L'adresse ne peut pas être zéro.
getAccountStatus
Cette méthode obtient le statut courant du compte spécifié. Cette méthode ne peut être appelée que par Token Admin, Token Auditor, Org Admin de l'organisation spécifiée ou par l'utilisateur spécifié.
Paramètres :
  • userAddress: address - Adresse du portefeuille de l'utilisateur. L'adresse ne peut pas être zéro.
Retourne :
  • Valeur pour 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 Token Admin, Token Auditor, Org Admin de l'organisation spécifiée ou par l'utilisateur spécifié.
Paramètres :
  • userAddress: address - Adresse du portefeuille de l'utilisateur. L'adresse ne peut pas être 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 permet d'obtenir les informations sur tous les comptes compris dans un intervalle donné. Cette méthode ne peut être appelée que par Token Admin ou Token Auditor.
Paramètres :
  • offset: uint256 - Index de compensation à 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 d'utilisateur. Cette méthode ne peut être appelée que par Token Admin ou Org Admin de l'organisation spécifiée.
Paramètres :
  • userAddress: address - Adresse du portefeuille de l'utilisateur. L'adresse ne peut pas être zéro.
suspendAccount
Cette méthode suspend un compte d'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 ou Org Admin de l'organisation spécifiée.
Paramètres :
  • userAddress: address - Adresse du portefeuille de l'utilisateur. L'adresse ne peut pas être zéro.
setMaxDailyAmount
Cette méthode définit le montant maximal de jetons pouvant être utilisés quotidiennement dans les transactions. Cette méthode ne peut être appelée que par Token Admin ou Org Admin de l'organisation spécifiée.
Paramètres :
  • count: int256 – Quantité maximale de jetons pouvant être utilisés dans les transactions quotidiennes.
  • userAddress: address - Adresse du portefeuille de l'utilisateur. L'adresse ne peut pas être zéro.
setMaxDailyTransactionCount
Cette méthode définit le nombre maximal de transactions pouvant être effectuées quotidiennement. Cette méthode ne peut être appelée que par Token Admin ou Org Admin de l'organisation spécifiée.
Paramètres :
  • value: int256 – Nombre maximal de transactions pouvant être effectuées quotidiennement.
  • userAddress: address - Adresse du portefeuille de l'utilisateur. L'adresse ne peut pas être 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 illustré dans l'exemple suivant.
    {
        "userId": "tokenAdmin1",
        "orgId": "orgA",
    	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"    
    }
removeTokenAdmin
Cette méthode supprime un utilisateur en tant que Token Admin. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • userAddress: address - Adresse du portefeuille de l'utilisateur. L'adresse ne peut pas être zéro.
getAllTokenAdmins
Cette méthode retourne la liste de tous les utilisateurs qui sont un Token Admin. Cette méthode ne peut être appelée que par Token Admin ou Token Auditor.
Paramètres :
  • aucune
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 spécifié est 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 du portefeuille de l'utilisateur. L'adresse ne peut pas être zéro.
Retourne :
  • La méthode retourne true si l'utilisateur spécifié est Token Admin, sinon elle retourne false.
addOrgAdmin
Cette méthode ajoute un utilisateur en tant que Org Admin. Cette méthode ne peut être appelée que par Token Admin ou Org Admin de l'organisation spécifiée.
Paramètres :
  • adminDetails: JSON – Objet qui contient des détails sur l'utilisateur à ajouter en tant que Org Admin, comme illustré dans l'exemple suivant.
    {
        "userId": "tokenAdmin1",
        "orgId": "orgA",
    	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"    
    }
removeOrgAdmin
Cette méthode supprime un utilisateur en tant que Org Admin. Cette méthode ne peut être appelée que par Token Admin ou Org Admin de l'organisation spécifiée.
Paramètres :
  • userAddress: address - Adresse du portefeuille de l'utilisateur. L'adresse ne peut pas être zéro.
getAllOrgAdmins
Cette méthode retourne la liste de tous les utilisateurs qui sont un Org Admin. Cette méthode ne peut être appelée que par Token Admin, Token Auditor, Org Admin ou Org Auditor.
Paramètres :
  • aucune
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 spécifié est 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 du portefeuille de l'utilisateur. L'adresse ne peut pas être zéro.
Retourne :
  • La méthode retourne true si l'utilisateur spécifié est Org Admin, sinon elle retourne false.

Méthodes de gestion du vérificateur

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 illustré dans l'exemple suivant.
    {
        "userId": "tokenAuditor1",
        "orgId": "orgA",
    	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"    
    }
removeTokenAuditor
Cette méthode supprime un utilisateur en tant que Token Auditor. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • userAddress: address - Adresse du portefeuille de l'utilisateur. L'adresse ne peut pas être zéro.
getAllTokenAuditors
Cette méthode retourne la liste de tous les utilisateurs qui sont un Token Auditor. Cette méthode ne peut être appelée que par Token Admin ou Token Auditor.
Paramètres :
  • aucune
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 spécifié est Token Auditor. Cette méthode peut être appelée par n'importe quel utilisateur.
Paramètres :
  • userAddress: address - Adresse du portefeuille de l'utilisateur. L'adresse ne peut pas être zéro.
Retourne :
  • La méthode retourne true si l'utilisateur spécifié est Token Auditor, sinon elle retourne false.
addOrgAuditor
Cette méthode ajoute un utilisateur en tant que Org Auditor. Cette méthode ne peut être appelée que par Token Admin ou Org Admin de l'organisation spécifiée.
Paramètres :
  • adminDetails: JSON – Objet qui contient des détails sur l'utilisateur à ajouter en tant que Org Auditor, comme illustré dans l'exemple suivant.
    {
        "userId": "tokenAuditor1",
        "orgId": "orgA",
    	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"    
    }
removeOrgAuditor
Cette méthode supprime un utilisateur en tant que Org Auditor. Cette méthode ne peut être appelée que par Token Admin ou Org Admin de l'organisation spécifiée.
Paramètres :
  • userAddress: address - Adresse du portefeuille de l'utilisateur. L'adresse ne peut pas être zéro.
getAllOrgAuditors
Cette méthode retourne la liste de tous les utilisateurs qui sont un Org Auditor. Cette méthode ne peut être appelée que par Token Admin, Token Auditor, Org Admin ou Org Auditor.
Paramètres :
  • aucune
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 spécifié est Org Auditor. Cette méthode peut être appelée par n'importe quel utilisateur.
Paramètres :
  • userAddress: address - Adresse du portefeuille de l'utilisateur. L'adresse ne peut pas être zéro.
Retourne :
  • La méthode retourne true si l'utilisateur spécifié est Org Auditor, sinon elle retourne 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 ou Org Admin de l'organisation spécifiée.
Paramètres :
  • userAddress: address - Adresse du portefeuille de l'utilisateur. L'adresse ne peut pas être zéro.
  • role: string – Nom du rôle à ajouter à l'utilisateur spécifié. 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 Token Admin ou Org Admin de l'organisation spécifiée.
Paramètres :
  • userAddress: address - Adresse du portefeuille de l'utilisateur. L'adresse ne peut pas être zéro.
  • role: string – Nom du rôle à supprimer de l'utilisateur spécifié. Par exemple, minter, burner ou notary.
accountHasRole
Cette méthode vérifie si un utilisateur possède un rôle spécifique. Cette méthode peut être appelée par n'importe quel utilisateur.
Paramètres :
  • role: string – Code de hachage Keccak-256 du nom du rôle (minter, burner ou notary) à rechercher.
  • userAddress: address - Adresse du portefeuille de l'utilisateur. L'adresse ne peut pas être zéro.
Retourne :
  • La méthode retourne true si l'utilisateur a le rôle spécifié, sinon elle retourne false.

ERC-20 - Méthodes de contrat avec jeton

Méthodes de gestion de la configuration de jeton

__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 – L'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 illustré 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 :
  • aucune
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 :
  • aucune
Retours
  • 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 – L'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 illustré 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 :
  • aucune
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 :
  • aucune
Retours
  • Valeur uint256 du plafond d'approvisionnement de jeton.
balanceOf
Cette méthode obtient le solde du jeton pour l'utilisateur spécifié. Cette méthode ne peut être appelée que par Token Admin, Token Auditor, Org Admin, Org Auditor ou par l'utilisateur spécifié.
Paramètres :
  • userAddress: address - Adresse du portefeuille de l'utilisateur. L'adresse ne peut pas être zéro.
Retours
  • 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 doté du rôle minter.
Paramètres :
  • to: address - Adresse du portefeuille de l'utilisateur. L'adresse ne peut pas être zéro.
  • value: uint256 – La quantité de jetons à la menthe.
batchMint
Cette méthode crée des jetons (mints) pour plus d'un utilisateur à la fois. Cette méthode peut être appelée par n'importe quel utilisateur doté 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 minter pour envoyer une demande au notaire de créer une quantité spécifiée de jetons.
Paramètres :
  • notary: address – Adresse du portefeuille du notaire. L'adresse ne peut pas être zéro.
  • amount: uint256 – La quantité de jetons à la menthe.
  • expiration: uint256 – Délai d'expiration de la demande au format epoch.
  • opId: string – ID opération de la demande.
  • info: InfoDetails – Objet spécifiant 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 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 opération de la demande.

Gestion du comportement des jetons - Comportement Burnable

burn
Cette méthode désactive (brûle) les jetons. Cette méthode peut être appelée par n'importe quel utilisateur ayant le rôle de brûleur.
Paramètres :
  • account: address - Adresse du portefeuille de l'utilisateur. L'adresse ne peut pas être zéro.
  • value: uint256 – La quantité de jetons à brûler.
batchBurn
Cette méthode brûle des jetons pour plus d'un utilisateur à la fois. Cette méthode peut être appelée par n'importe quel utilisateur ayant le 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 zéro.
  • amount: uint256 – La quantité de jetons à brûler.
  • expiration: uint256 – Délai d'expiration de la demande au format epoch.
  • opId: string – ID opération de la demande.
  • info: InfoDetails – Objet spécifiant 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 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 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 du portefeuille du destinataire. L'adresse ne peut pas être zéro.
  • value: uint256 – La quantité de jetons à transférer.
batchTransfer
Cette méthode transfère les jetons à 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 destinataires. 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égable

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 du portefeuille du propriétaire qui délègue les dépenses des jetons. L'adresse ne peut pas être zéro.
  • spender: address - Adresse du portefeuille du programmeur de jetons. L'adresse ne peut pas être zéro.
Retours
  • Un montant de uint256 des jetons qui ont été délégués pour les dépenses.
approve
Cette méthode approuve le nombre de jetons pour un expéditeur délégué spécifié. Cette méthode peut être appelée par n'importe quel utilisateur avec des jetons.
Paramètres :
  • spender: address - Adresse du portefeuille du programmeur de jetons. L'adresse ne peut pas être zéro.
  • value: uint256 – La quantité de jetons que le spender est autorisé à dépenser.
transferFrom
Les dépensiers délégués utilisent cette méthode pour transférer des jetons.
Paramètres :
  • from: address - Adresse du portefeuille de l'expéditeur. L'adresse ne peut pas être zéro.
  • to: address - Adresse du portefeuille du destinataire. L'adresse ne peut pas être zéro.
  • value: uint256 – La quantité de jetons à transférer.

Gestion du comportement des jetons - Comportement Pausable

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

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

hold
Cette méthode crée un blocage au nom du responsable du jeton. Cette méthode peut être appelée par n'importe quel utilisateur avec des jetons.
Paramètres :
  • to: address - Adresse du portefeuille du destinataire. L'adresse ne peut pas être zéro.
  • notary: address – Adresse du portefeuille du notaire. L'adresse ne peut pas être zéro.
  • amount: uint256 – La quantité de jetons à transférer.
  • expiration: uint256 – Délai d'expiration de la demande au format epoch.
  • opId: string – ID opération de la demande.
  • holdType: string – Type de blocage. Par exemple, transfer.
  • info: InfoDetails – Objet spécifiant la catégorie (category) et la description (description) de la demande.
executeHold
Cette méthode permet d'approuver une demande de blocage. Cette méthode ne peut être appelée que par le notaire précédemment spécifié.
Paramètres :
  • amount: uint256 – La quantité de jetons à approuver.
  • opId: string – ID 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 précédemment spécifié.
Paramètres :
  • opId: string – ID opération de la demande.
getOnHoldBalanceWithOperationId
Cette méthode retourne le solde bloqué pour un ID opération spécifié. Cette méthode peut être appelée par Token Admin ou Token Auditor, Org Admin ou Org Auditor de l'organisation spécifiée, ou par un participant à la transaction (expéditeur, destinataire, notaire).
Paramètres :
  • opId: string – ID opération de la demande.
Retours
  • Un montant uint256 du solde bloqué.
getAccountOnHoldBalance
Cette méthode retourne le solde bloqué pour un compte spécifié. Cette méthode peut être appelée par Token Admin ou Token Auditor, Org Admin ou Org Auditor de l'organisation spécifiée, ou par un participant à la transaction (expéditeur, destinataire, notaire).
Paramètres :
  • account: address - Adresse du portefeuille du compte. L'adresse ne peut pas être zéro.
Retours
  • Un montant uint256 du solde bloqué.

ERC-1155 - Méthodes de contrat de compte

Méthodes de gestion des comptes

createAccount
Cette méthode crée un compte pour un 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 courriel de l'utilisateur. La chaîne d'ID utilisateur ne peut pas être vide.
  • orgId: string – ID fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation courante. L'ID organisation ne peut pas être vide.
  • userAddress: address - Adresse du portefeuille de l'utilisateur. L'adresse ne peut pas être 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 du portefeuille de l'utilisateur. L'adresse ne peut pas être zéro.
getAccountStatus
Cette méthode obtient le statut courant du compte spécifié. Cette méthode ne peut être appelée que par Token Admin ou par l'utilisateur spécifié.
Paramètres :
  • userAddress: address - Adresse du portefeuille de l'utilisateur. L'adresse ne peut pas être zéro.
Retourne :
  • Valeur pour 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 Token Admin ou par l'utilisateur spécifié.
Paramètres :
  • userAddress: address - Adresse du portefeuille de l'utilisateur. L'adresse ne peut pas être zéro.
Exemple de valeur renvoyée :
{
    "userId": "userA",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a",
	"status":0
}
getAllAccounts
Cette méthode permet d'obtenir les informations sur tous les comptes compris dans un intervalle donné. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • offset: uint256 - Index de compensation à 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 d'utilisateur. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • userAddress: address - Adresse du portefeuille de l'utilisateur. L'adresse ne peut pas être zéro.
suspendAccount
Cette méthode suspend un compte d'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 du portefeuille de l'utilisateur. L'adresse ne peut pas être 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 illustré dans l'exemple suivant.
    {
        "userId": "tokenAdmin1",
        "orgId": "orgA",
    	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"    
    }
removeTokenAdmin
Cette méthode supprime un utilisateur en tant que Token Admin. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • userAddress: address - Adresse du portefeuille de l'utilisateur. L'adresse ne peut pas être zéro.
getAllTokenAdmins
Cette méthode retourne la liste de tous les utilisateurs qui sont un Token Admin. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • aucune
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 spécifié est Token Admin. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • userAddress: address - Adresse du portefeuille de l'utilisateur. L'adresse ne peut pas être zéro.
Retourne :
  • La méthode retourne true si l'utilisateur spécifié est Token Admin, sinon elle retourne 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 du portefeuille de l'utilisateur. L'adresse ne peut pas être zéro.
  • role: string – Nom du rôle à ajouter à l'utilisateur spécifié. Par exemple, minter, burner ou notary.
  • scopeId: uint256 – ID classe de jeton non fongible (NFT) ou ID 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 Token Admin ou Org Admin de l'organisation spécifiée.
Paramètres :
  • userAddress: address - Adresse du portefeuille de l'utilisateur. L'adresse ne peut pas être zéro.
  • role: string – Nom du rôle à supprimer de l'utilisateur spécifié. Par exemple, minter, burner ou notary.
  • scopeId: uint256 – ID classe de jeton non fongible (NFT) ou ID jeton fongible.
accountHasRole
Cette méthode vérifie si un utilisateur possède un rôle spécifique. Cette méthode peut être appelée par n'importe quel utilisateur.
Paramètres :
  • role: string – Code de hachage Keccak-256 du nom du rôle (minter, burner ou notary) à rechercher.
  • userAddress: address - Adresse du portefeuille de l'utilisateur. L'adresse ne peut pas être zéro.
  • scopeId: uint256 – ID classe de jeton non fongible (NFT) ou ID jeton fongible.
Retourne :
  • La méthode retourne true si l'utilisateur a le rôle spécifié, sinon elle retourne false.
addTokenSysRole
Cette méthode ajoute le rôle TOKEN_SYS_VAULT_ROLE à un utilisateur spécifié. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • userAddress: address - Adresse du portefeuille de l'utilisateur. L'adresse ne peut pas être zéro.
  • role: string – Le seul rôle pris en charge est TOKEN_SYS_VAULT_ROLE.
Retourne :
  • La méthode retourne true si le rôle a été ajouté, sinon elle retourne false.
removeTokenSysRole
Cette méthode supprime 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 du portefeuille de l'utilisateur. L'adresse ne peut pas être zéro.
  • role: string – Le seul rôle pris en charge est TOKEN_SYS_VAULT_ROLE.
Retourne :
  • La méthode retourne true si le rôle a été supprimé, sinon elle retourne 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 du portefeuille de l'expéditeur. L'adresse ne peut pas être zéro.
  • toAddress: address - Adresse du portefeuille du destinataire. L'adresse ne peut pas être zéro.
  • role: string – Le seul rôle pris en charge est TOKEN_SYS_VAULT_ROLE.
Retourne :
  • La méthode retourne true si le rôle a été traité avec succès, sinon elle retourne false.

ERC-1155 Méthodes de contrat avec jeton

Méthodes de gestion de la configuration de jeton

__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 – L'adresse du contrat de compte.
  • uri: string – URI de type jeton.
saveNFTClass
Cette méthode enregistre les données sur la classe NFT dans le grand 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 montre 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 ayant le rôle de minter.
Paramètres :
  • tokenId: uint256 – ID jeton de la classe NFT, qui contient des informations sur la 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 à 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 illustré 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 responsable de jeton ou Token Admin.
Paramètres :
  • token – Définition du jeton fongible, comme illustré 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, spécifiez une valeur vide. Si le jeton est un NFT entier, spécifiez 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 fraction NFT, spécifiez 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 jeton.
Retours
  • Valeur uint8 du nombre de 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 classe NFT.
  • serialId: uint256 - ID série dans la classe NFT.
Retours
  • ID jeton uint256.
balanceOf
Cette méthode obtient le solde du jeton pour l'utilisateur spécifié. Cette méthode ne peut être appelée que par Token Admin ou par le responsable du jeton.
Paramètres :
  • account: address - Adresse du portefeuille de l'utilisateur. L'adresse ne peut pas être zéro.
  • id: uint256 – ID jeton.
Retours
  • Valeur uint256 du solde de jeton.
balanceOfBatch
Cette méthode obtient le solde de jetons pour une liste d'utilisateurs. Cette méthode ne peut être appelée que par Token Admin ou par le responsable du jeton.
Paramètres :
  • account: address[] - Liste des adresses de portefeuille des utilisateurs.
  • id: uint256[] - Liste des ID jetons.
Retours
  • 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 jeton.
Retourne :
  • La méthode retourne true si le jeton spécifié existe, sinon elle retourne false.
totalSupply
Cette méthode permet d'obtenir l'approvisionnement total de tous les jetons du contrat. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • aucune
Retourne :
  • Valeur uint256[] de l'approvisionnement total de jetons.
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 jeton.
Retourne :
  • Valeur uint256[] de l'approvisionnement total du jeton spécifié.
Gestion du comportement des jetons - Comportement mentable
mintBatch
Cette méthode crée des jetons ERC-1155 en mode batch. Les jetons doivent être initialisés. Cette méthode peut être appelée par n'importe quel utilisateur doté du rôle minter.
Paramètres :
  • tokenIds: uint256[] – La liste des jetons à la menthe.
  • quantity: uint256[] - Liste des quantités de jeton à extraire.
  • data: byte – Octets supplémentaires de données.

Gestion du comportement des jetons - Comportement Burnable

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 ayant le rôle de brûleur.
Paramètres :
  • tokenIds: uint256[] – Liste des jetons à brûler.
  • quantity: uint256[] - Liste des quantités de jeton à brûler.
  • data: byte – Octets supplémentaires de 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 ayant le rôle de brûleur.
Paramètres :
  • tokenId: uint256 - ID du jeton à graver.

Gestion du comportement des jetons - Comportement transférable

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

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

setApprovalForAll
Cette méthode accorde ou révoque l'autorisation pour un opérateur de transférer les jetons de l'appelant, en fonction du paramètre approved. Cette méthode peut être appelée par n'importe quel utilisateur qui détient des jetons.
Paramètres :
  • operator: address - Adresse du portefeuille de l'opérateur auquel des autorisations sont octroyées ou révoquées. L'adresse ne peut pas être 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 autorisé à transférer des jetons pour un compte spécifié. Cette méthode peut être appelée par n'importe quel utilisateur qui détient des jetons.
Paramètres :
  • account: address – Adresse du portefeuille des utilisateurs qui ont accordé ou révoqué des autorisations à l'opérateur pour le transfert de leurs jetons. L'adresse ne peut pas être zéro.
  • operator: address - Adresse du portefeuille de l'opérateur qui a obtenu ou révoqué des autorisations. L'adresse ne peut pas être zéro.
Retourne :
  • Valeur booléenne indiquant si l'opérateur est approuvé pour le transfert des jetons pour le compte spécifié.

Gestion du comportement des jetons - Comportement Pausable

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

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.
Retourne :
  • Valeur booléenne indiquant si le jeton est verrouillé.