API de contrat de jeton ERC-20

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

Méthodes de configuration de jeton

__ERC20Token_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 :
  • name: string : nom du jeton.
  • symbol: string : symbole du jeton.
initializeERC20Token
Cette méthode initialise un jeton ERC-20. Cette méthode ne peut être appelée que par Token Admin.
Paramètres :
  • token: ERC20Token : structure définissant le jeton ERC-20, 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 un jeton ERC-20. Cette méthode ne peut être appelée que par Token Admin, Token Auditor, Org Admin ou Org Auditor.
Paramètres :
  • Aucun
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 renvoie le nombre de décimales configurées pour un jeton. Cette méthode ne peut être appelée que par Token Admin, Token Auditor, Org Admin ou Org Auditor.
Paramètres :
  • Aucun
Retours :
  • Valeur uint8 indiquant le nombre de décimales.
cap
Cette méthode renvoie la valeur de limite (approvisionnement total maximum) pour un jeton ERC-20. Cette méthode ne peut être appelée que par Token Admin, Token Auditor, Org Admin ou Org Auditor.
Paramètres :
  • Aucun
Retours :
  • Valeur uint256 indiquant la valeur de limite.
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 Token Admin ou Token Auditor, ou Org Admin ou Org Auditor de l'organisation indiquée.
Paramètres :
  • userAddress: string : adresse de portefeuille de l'utilisateur, qui ne doit pas être nulle.
Retours :
  • Valeur uint256 indiquant le solde actuel.

Méthodes de comportement des jetons - Comportement mentable

mint
Cette méthode extrait les jetons ERC-20. Cette méthode peut être appelée par n'importe quel utilisateur disposant du rôle minter.
Paramètres :
  • to: string : adresse de portefeuille de l'utilisateur pour lequel les jetons sont extraits, qui ne doit pas être nulle.
  • value: uint256 : quantité de jetons à la menthe.
requestMint
Cette méthode peut être appelée par n'importe quel utilisateur disposant du rôle de mineur pour envoyer une demande au notaire afin de créer une quantité spécifiée de jetons.
Paramètres :
  • notary: string : adresse de portefeuille de l'utilisateur notaire, qui ne doit pas être nulle.
  • 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_details: JSON : objet indiquant la catégorie (category) et la description (description) de la demande.

    Vous indiquez le paramètre info_details dans un format différent si vous utilisez Visual Studio Code par rapport à l'interface de ligne de commande ou une collection Postman.

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

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

approveMint
Cette méthode peut être appelée par un approbateur doté du rôle de notaire pour approuver une demande de transaction pour les jetons ERC-20.
Paramètres :
  • opId: string : ID d'opération de la demande mint.
rejectMint
Cette méthode peut être appelée par un approbateur doté du rôle de notaire pour rejeter une demande de transaction pour les jetons ERC-20.
Paramètres :
  • opId: string : ID d'opération de la demande mint.

Méthodes de comportement des jetons - Comportement gravable

burn
Cette méthode brûle les jetons ERC-20. Cette méthode peut être appelée par n'importe quel utilisateur disposant du rôle de brûleur.
Paramètres :
  • account: string : adresse de portefeuille de l'utilisateur pour lequel les jetons sont gravés, qui ne doit pas être nulle.
  • value: uint256 : quantité de jetons à brûler.
burnFrom
Cette méthode peut être appelée par tout utilisateur disposant d'une autorisation déléguée.
Paramètres :
  • account: string : adresse de portefeuille du compte à partir duquel brûler les jetons, qui ne doit pas être nulle.
  • value: uint256 : quantité de jetons à brûler.
requestBurn
Cette méthode peut être appelée par tout utilisateur disposant d'un rôle de brûleur pour approuver une demande de gravure pour les jetons ERC-20.
Paramètres :
  • notary: string : adresse de portefeuille de l'utilisateur notaire, qui ne doit pas être nulle.
  • 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_details: JSON : objet indiquant la catégorie (category) et la description (description) de la demande.

    Vous indiquez le paramètre info_details dans un format différent si vous utilisez Visual Studio Code par rapport à l'interface de ligne de commande ou une collection Postman.

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

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

approveBurn
Cette méthode peut être appelée par un approbateur doté du rôle de notaire pour approuver une demande de brûlure pour les jetons ERC-20.
Paramètres :
  • opId: string : ID d'opération de la demande de gravure.
rejectBurn
Cette méthode peut être appelée par un approbateur doté du rôle de notaire pour rejeter une demande de brûlure pour les jetons ERC-20.
Paramètres :
  • opId: string : ID d'opération de la demande de gravure.

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

transfer
Cette méthode peut être appelée par tout utilisateur avec des jetons pour les transférer à un autre utilisateur.
Paramètres :
  • to: string : adresse de portefeuille du récepteur, qui ne doit pas être nulle.
  • value: uint256 : quantité de jetons à transférer.
batchTransfer
Cette méthode peut être appelée par n'importe quel utilisateur avec des jetons pour les transférer par lots à d'autres utilisateurs.
Paramètres :
  • toList: string[] : liste des adresses de portefeuille des récepteurs.
  • amounts: uint256[] : liste de la quantité de jetons à transférer.

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

allowance
Cette méthode peut être appelée par tout utilisateur propriétaire de jetons pour déléguer à un autre utilisateur de les dépenser.
Paramètres :
  • owner: string : adresse de portefeuille du propriétaire du jeton, qui ne doit pas être nulle.
  • spender: string : adresse de portefeuille de l'expéditeur de jeton, qui ne doit pas être égale à zéro.
Retours :
  • Valeur uint256 de la quantité de jetons délégués à dépenser.
approve
Cette méthode peut être appelée par tout utilisateur propriétaire de jetons pour définir le montant qu'un dépendant délégué peut dépenser.
Paramètres :
  • spender: string : adresse de portefeuille de l'expéditeur de jeton, qui ne doit pas être égale à zéro.
  • value: uint256 : quantité de jetons que l'expéditeur est autorisé à dépenser.
transferFrom
Cette méthode peut être appelée par un utilisateur disposant d'une autorisation déléguée pour transférer des jetons à 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.
  • value: uint256 : quantité de jetons à transférer.

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 Token Admin, Token Auditor, Org Admin ou Org Auditor.
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 pouvant être conservé

hold
Cette méthode peut être appelée par tout utilisateur disposant de jetons pour demander un transfert de jeton.
Paramètres :
  • to: string : adresse de portefeuille du récepteur, qui ne doit pas être nulle.
  • notary: string : adresse de portefeuille de l'utilisateur notaire, qui ne doit pas être nulle.
  • 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_details: JSON : objet indiquant la catégorie (category) et la description (description) de la demande.

    Vous indiquez le paramètre info_details dans un format différent si vous utilisez Visual Studio Code par rapport à l'interface de ligne de commande ou une collection Postman.

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

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

holdFrom
Cette méthode peut être appelée par un utilisateur délégué autorisé à détenir des jetons de l'adresse de portefeuille d'un autre utilisateur. Cette méthode nécessite le comportement délégable.
Paramètres :
  • fromAccount: string : adresse de portefeuille de l'utilisateur dont les jetons seront conservés, qui ne doit pas être zéro.
  • toAccount: string : adresse de portefeuille du récepteur, qui ne doit pas être nulle.
  • notary: string : adresse de portefeuille de l'utilisateur notaire, qui ne doit pas être nulle.
  • 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_details: JSON : objet indiquant la catégorie (category) et la description (description) de la demande.

    Vous indiquez le paramètre info_details dans un format différent si vous utilisez Visual Studio Code par rapport à l'interface de ligne de commande ou une collection Postman.

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

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

executeHold
Cette méthode peut être appelée par un approbateur doté du rôle de notaire pour approuver une demande de blocage.
Paramètres :
  • amount: uint256 – Quantité de jetons à approuver pour le transfert.
  • opId: string : ID d'opération de la demande de mise en attente.
releaseHold
Cette méthode peut être appelée par un approbateur doté du rôle de notaire pour rejeter une demande de blocage.
Paramètres :
  • opId: string : ID d'opération de la demande de mise en attente.
updateNotary
Cette méthode peut être appelée par un approbateur doté du rôle de notaire pour mettre à jour le notaire pour une demande spécifiée.
Paramètres :
  • opId: string : ID d'opération de la demande de mise en attente.
  • newNotary: string : adresse de portefeuille du nouvel utilisateur notaire, qui ne doit pas être nulle.
getOnHoldBalanceWithOperationId
Cette méthode obtient le solde de blocage pour un ID d'opération spécifié. Cette méthode ne peut être appelée que 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 de mise en attente.
Retours :
  • Valeur uint256 du solde de blocage.
getOnHoldDetailsWithOperationId
Cette méthode obtient les détails de blocage pour un ID d'opération spécifié. Cette méthode ne peut être appelée que 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 de mise en attente.
Retours :
  • Objet hold, avec les informations suivantes.
    • to: address : adresse de portefeuille du destinataire.
    • notary: address : adresse du portefeuille du notaire.
    • 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 conservation (par exemple, transfer).
    • info: infoDetails : objet indiquant la catégorie (category) et la description (description) de la demande.
getAccountOnHoldBalance
Cette méthode obtient le solde de blocage pour un compte spécifié. Cette méthode ne peut être appelée que 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: string : adresse de portefeuille du compte à vérifier, qui ne doit pas être nulle.
Retours :
  • Valeur uint256 du solde de blocage.

Méthodes de comportement de jeton - Comportement d'approbation multiniveau

createOrupdateAccountPolicy
Cette méthode peut être appelée par Token Admin ou Org Admin pour créer ou mettre à jour une stratégie pour un compte spécifié.
Paramètres :
  • accountPolicyId : le système génère cet ID à partir des champs orgId et userId spécifiés. Vous ne renseignez pas ce champ manuellement.
  • orgId : ID du fournisseur de services d'adhésion (MSP) de l'utilisateur pour lequel créer la stratégie.
  • userId : nom utilisateur ou ID de courriel de l'utilisateur pour lequel créer la stratégie.
  • kycCompliance : valeur de chaîne (true ou false) qui indique si le compte répond aux exigences de KYC (Know Your Customer).
  • amlCompliance : valeur de chaîne (true ou false) qui indique si le compte répond aux exigences de lutte contre le blanchiment d'argent (AML).
  • riskScore – Score de risque associé au compte, utilisé pour l'évaluation de la conformité.
  • restrictionFlag : valeur de chaîne (true ou false) indiquant si le compte fait l'objet de transferts restreints. Si la valeur est définie sur Vrai, les transferts directs respectent les limites de catégorie de restriction de transfert et les transferts bloqués respectent le seuil de politique d'approbation le plus bas.
getAccountPolicyById
Cette méthode obtient les détails de stratégie de compte pour un ID de stratégie spécifié. Cette méthode peut être appelée par un élément Token Admin ou Token Auditor, ou par un élément Org Admin ou Org Auditor de l'organisation dont la stratégie de compte sera extraite.
Paramètres :
  • accountPolicyId: string : ID de stratégie de compte unique.
Retours :
  • accountPolicyId : le système génère cet ID à partir des champs orgId et userId spécifiés. Vous ne renseignez pas ce champ manuellement.
  • orgId : ID du fournisseur de services d'adhésion (MSP) de l'utilisateur.
  • userId : nom d'utilisateur ou ID d'adresse électronique de l'utilisateur.
  • kycCompliance : valeur de chaîne (true ou false) qui indique si le compte répond aux exigences de KYC (Know Your Customer).
  • amlCompliance : valeur de chaîne (true ou false) qui indique si le compte répond aux exigences de lutte contre le blanchiment d'argent (AML).
  • riskScore – Score de risque associé au compte, utilisé pour l'évaluation de la conformité.
  • restrictionFlag : valeur de chaîne (true ou false) indiquant si le compte fait l'objet de transferts restreints. Si la valeur est définie sur Vrai, les transferts directs respectent les limites de catégorie de restriction de transfert et les transferts bloqués respectent le seuil de politique d'approbation le plus bas.
getAccountPolicyById
Cette méthode obtient les détails de stratégie de compte pour un utilisateur spécifié. Cette méthode peut être appelée par n'importe quel utilisateur.
Paramètres :
  • who: address : adresse de portefeuille de l'utilisateur.
Retours :
  • Chaîne accountPolicyId.
deleteAccountPolicyById
Cette méthode supprime une stratégie pour un ID de stratégie spécifié. Cette méthode peut être appelée par un élément Token Admin ou Org Admin de l'organisation qui inclut l'utilisateur dont la stratégie de compte sera supprimée.
Paramètres :
  • accountPolicyId : ID de stratégie de compte unique.
Retours :
  • Chaîne accountPolicyId.
createOrupdateApprovalPolicy
Cette méthode peut être appelée par Token Admin.
Paramètres :
  • approvalPolicyId : le système génère cet ID. Vous ne renseignez pas ce champ manuellement.
  • transactionLowerLimit – Montant de transaction minimum auquel la stratégie d'approbation s'applique.
  • transactionUpperLimit : montant de transaction maximal auquel la stratégie d'approbation s'applique.
  • numberOfApprovalsRequired : nombre total d'approbations nécessaires pour que la transaction puisse être terminée.
  • approverDetails : liste des approbateurs avec la séquence d'approbation qui leur est affectée, qui définit l'ordre obligatoire pour les approbations.
  • version : version de la stratégie d'approbation. Utilisez 0 lors de la création d'une nouvelle stratégie.
  • status : actif ou inactif.
getApprovalPolicyById
Cette méthode obtient les détails de la stratégie d'approbation pour un ID de stratégie spécifié. Cette méthode peut être appelée par Token Admin ou Token Auditor.
Paramètres :
  • approvalPolicyId: string : ID de stratégie d'approbation unique.
Retours :
  • approvalPolicyId : le système génère cet ID.
  • transactionLowerLimit – Montant de transaction minimum auquel la stratégie d'approbation s'applique.
  • transactionUpperLimit : montant de transaction maximal auquel la stratégie d'approbation s'applique.
  • numberOfApprovalsRequired : nombre total d'approbations nécessaires pour que la transaction puisse être terminée.
  • approverDetails : liste des approbateurs avec la séquence d'approbation qui leur est affectée, qui définit l'ordre obligatoire pour les approbations.
  • version : version de la stratégie d'approbation.
  • status : actif ou inactif.
deleteApprovalPolicy
Cette méthode supprime une stratégie pour un ID de stratégie spécifié. Cette méthode peut être appelée par Token Admin.
Paramètres :
  • approvalPolicyId: string : ID de stratégie d'approbation unique.
getApprovalTransactionsById
Cette méthode obtient le solde de blocage pour un compte spécifié. Cette méthode peut être appelée par Token Admin, Token Auditor, Org Admin ou Org Auditor.
Paramètres :
  • opId: string : ID d'opération de la demande de mise en attente.
Retours :
  • Objet approvalTransactions.
Exemple de valeur renvoyée :
{
"approvalTransactionId": "",
"approvalPolicyId": "",
"approvalPolicyVersion": "",
"fromAccount": "",
"toAccount": "",
"totalApprovals": "",
"numberaOfApprovalsRequired": "",
"status": "",
"approverDetails": ""
}
getApprovalStatusByOperationId
Cette méthode obtient les détails d'approbation pour une demande de blocage spécifiée. Cette méthode peut être appelée par Token Admin, Token Auditor, Org Admin ou Org Auditor.
Paramètres :
  • opId: string : ID d'opération de la demande de mise en attente.
Exemple de valeur renvoyée :
{
"approvalWorkflowExists": "",
"activePolicyFound": "",
"receivedApprovals": "",
"requiredApprovals": "",
"approvalRequirementMet": "",
"nextApprovalSequence": "",
"nextApprover": "",
"workflowStatus": "",
"approvalPolicyId": "",
"approvalPolicyVersion": ""
}
approveTransaction
Un approbateur peut utiliser cette méthode pour approuver une transaction de blocage.
Paramètres :
  • opId: string : ID d'opération de la demande de mise en attente.
  • amount: uint256 – Montant à approuver.
rejectTransaction
Un notaire peut utiliser cette méthode pour rejeter une transaction de blocage.
Paramètres :
  • opId: string : ID d'opération de la demande de mise en attente.
getTransferRestriction
Cette méthode renvoie la configuration de restriction de transfert actuelle, y compris les limites de transaction inférieure et supérieure. Cette méthode peut être appelée par Token Admin ou Token Auditor.
Paramètres :
  • account: address : adresse de portefeuille de l'utilisateur pour laquelle vérifier le solde en attente. L'adresse ne doit pas être égale à zéro.
Retours :
  • Objet transferRestriction.
Exemple de valeur renvoyée :
transactionLowerLimit: 0transactionUpperLimit: 100
setOrupdateTransferRestriction
Cette méthode met à jour la configuration des restrictions de transfert en définissant de nouvelles limites de transaction inférieure et supérieure. Cette méthode peut être appelée par Token Admin.
Paramètres :
  • transactionLowerLimit: uint256 – Montant de transaction minimal autorisé.
  • transactionUpperLimit: uint256 – Montant de transaction maximum autorisé.

Méthodes de gestion du contexte

setTokenContext
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.
getTokenContext
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 gestion. 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.