Comment créer et implémenter des jetons ERC-20 sur la blockchain Ethereum

Tout ce que vous devez savoir sur les jetons ERC sur Ethereum - AAX Academy

Comment créer et mettre en œuvre Jetons ERC-20 sur la blockchain Ethereum. Au rythme actuel de développement, la blockchain conquiert progressivement le monde. Bitcoin, le plus populaire crypto-monnaie, est le produit de la première et la plus connue technologie blockchain au monde. Ethereum est un sous-produit de la blockchain et est né lorsque Bitcoin a commencé à prospérer.

d'ether

Alors que Bitcoin a seulement évolué vers une monnaie, Ethereum est allé encore plus loin avec sa vision de fournir des machines virtuelles (EVM) et des contrats intelligents permettant aux utilisateurs de créer des jetons sur le réseau.

Les jetons peuvent représenter de l'argent, de l'or, des billets de loterie… vous pouvez développer tous types de jetons sur la blockchain Ethereum, mais ce tutoriel se concentrera sur la création et le déploiement de jetons ERC-20.

Avant de créer un jeton, vous devez avoir au moins une compréhension de base de la technologie blockchain, du langage de solidité et du fonctionnement d’Ethereum.

Qu'est-ce que la blockchain et méthode Comment cela fonctionne ? 

En bref, la blockchain est un enregistrement des transactions dans un grand livre distribué ou une base de données pour de nombreux participants au réseau. Ce grand livre contient un enregistrement des transactions effectuées sur le réseau.

Une transaction est l'acte de transférer une devise ou un montant spécifique d'un utilisateur à un autre sur le réseau. Supposons qu'Alice transmette 30BLC à Bob. Cette transaction est hachée cryptographiquement par un nœud spécifique du réseau et enregistrée dans le grand livre.

Ce nœud envoie la transaction aux autres nœuds du réseau, c'est-à-dire qu'il propage la transaction sur le réseau. D'autres nœuds reçoivent la transaction, la examinent à l'aide de la méthode standard, puis l'ajoutent au grand livre.

Les nœuds du réseau reçoivent la transaction nouvellement transmise sur le réseau, puis l'ajoutent au grand livre. Chaque nœud du réseau possède ou possède une copie du grand livre. Cela se traduit par le caractère décentralisé de la blockchain.

Le mot « blockchain » vient du fait que les transactions ou les enregistrements dans un grand livre sont liés pour former une chaîne. Comme nous le savons tous, la transaction représente l'échange de devises entre deux parties dans le nœud, qui peut être représenté en JSON comme suit :

{
  "à": "0xalice",
  "de": "0xbob",
  "montant": "30BLC"
}

Il s’agit d’un simple enregistrement ou transaction. Bob a transféré 30BLC à Alice.

Cette transaction est enregistrée dans un bloc écrit en utilisant le format de données JSON suivant :

[
  {
    "à": "0xalice",
    "de": "0xbob",
    "montant": "30BLC"
  }
]

Un bloc est comme une séquence contenant de nombreux objets de transaction. Ce bloc peut donc contenir plusieurs transactions :

[
  {
    "à": "0xalice",
    "de": "0xbob",
    "montant": "30BLC"
  },
  {
    "à": "0xtheresa",
    "de": "0xarinze",
    "montant": "5BLC"
  }
]

Vous pouvez voir l'emplacement du bloc auquel la transaction sera ajoutée. Les chaînes sont constituées de blocs interconnectés. Chaque blockchain commence par un bloc Genesis, que le créateur ajoute et distribue au réseau.

Chaque bloc possède également un hachage cryptographique qui fait office d'identifiant unique sur le réseau. Il n’y a pas deux blocs qui ont le même hachage.

Lorsqu'un bloc est vérifié par des nœuds et ajouté au réseau, il possède un pointeur vers le hachage du dernier bloc du réseau.

[
  {
    "hacher": "0x0",
    "précHash": "",
    "txns": [
      {
        "à": "0xalice",
        "de": "0xbob",
        "montant": "30BLC"
      },
      {
        "hacher": "0x1",
        "précHash": "0x0",
        "à": "0xtheresa",
        "de": "0xarinze",
        "montant": "5BLC"
      }
    ]
  },
  {
    "hacher": "0x1",
    "précHash": "0x0",
    "txns": [
      {
        "à": "0xalice",
        "de": "0xbob",
        "montant": "30BLC"
      },
      {
        "à": "0xtheresa",
        "de": "0xarinze",
        "montant": "5BLC"
      }
    ]
  }
]

Le premier bloc avec le hachage 0x0 est le bloc d'origine. Le bloc suivant avec le hachage 0x1 a un prevHash qui pointe vers 0x0, c'est-à-dire vers le premier bloc du réseau.

De cette façon, chaque nouveau bloc inséré dans le réseau pointe en premier vers le bloc le plus récent adjacent. Cela crée une « chaîne » dans la blockchain.

Qu'est-ce que l'éthereum

Ethereum est une blockchain possédant sa propre monnaie numérique appelée ETH. Tout comme les autres blockchains, les transactions sont stockées dans un grand livre.

Ce qui distingue Ethereum des autres blockchains, c’est sa flexibilité. Alors que de nombreuses plateformes blockchain ne prennent en charge que les transferts d’argent, Ethereum permet de transférer toutes les données via la blockchain et de payer les frais en ETH.

Comment fonctionne Ethereum?

Comme mentionné ci-dessus, nous pouvons transférer n’importe quelle donnée dans la blockchain Ethereum et payer des frais dans l’ETH.

Tout comme la transaction BLC dans l'exemple ci-dessus, la blockchain Ethereum prend en charge les transactions ETH. Supposons qu'Alice transfère 1 ETH à Bob. Cette transaction est validée par les nœuds du réseau et ajoutée au bloc dans la blockchain.

De plus, Ethereum dispose d’un système minier, ce qui nécessite du travail pour obtenir l’ETH. Cette tâche consiste à résoudre un calcul difficile en essayant de nombreuses façons différentes jusqu'à ce que vous trouviez la bonne réponse. N'importe quel nœud du réseau peut participer. Un nœud qui résout avec succès le calcul est récompensé par une certaine quantité d’ETH. La difficulté du calcul augmente à mesure que les transactions sont réduites.

Chaque fois qu'une transaction est déclenchée dans la blockchain Ethereum, un nœud minier du réseau effectue cette transaction. L'expéditeur de la transaction doit accepter de payer un certain montant d'ETH à ce nœud. C’est ce qu’on appelle le prix du gaz.

Qu'est-ce qu'un contrat intelligent?

Un contrat intelligent est un outil qui contient du code qui s'exécute sur la blockchain Ethereum. Les contrats intelligents sont écrits dans le langage Solidity et compilés en code ABI. Ce code ABI est fourni sur la blockchain Ethereum. Le contrat intelligent prend l'adresse externe de l'expéditeur et la mélange avec un nom occasionnel (numéro unique) pour former une adresse sur la blockchain Ethereum.

Les contrats intelligents permettent la création de contrats numériques. Comme les contrats réels, les contrats numériques aident à établir une transaction entre deux ou plusieurs parties au sein de la blockchain Ethereum.

Un contrat intelligent est un type de compte dans Ethereum, ce qui signifie qu'il n'est pas contrôlé par l'utilisateur et peut envoyer des transactions sur la blockchain. Puisqu'il s'agit d'un compte, le contrat intelligent a un solde et contient le code EVM.

Que sont les jetons ERC-20?
Tutoriel sur les jetons ERC20 | Toptal

La machine virtuelle Ethereum (EVM) est une machine virtuelle qui exécute le code Solidity ABI compilé. Les contrats intelligents sur Ethereum sont devenus la norme mondiale pour créer une gamme de jetons. Ces normes sont connues sous le nom de norme Ethereum Request for Comment (ERC).

Ethereum en a beaucoup défaut, mais les plus couramment utilisés et les plus largement utilisés sont ERC-20 et ERC-721. ERC-20 est utilisé pour la génération de jetons tandis que ERC-721 est utilisé pour le développement NFT.

ERC-20 est le standard proposé par Fabian Vogelsteller, un contrat intelligent qui contient un certain nombre d'API. ERC20 est un ensemble de règles qui s'appliquent à tous les jetons qui choisissent la norme ERC-20.

Comme mentionné ci-dessus, l'ERC-20 peut être utilisé pour créer des monnaies virtuelles comme Bitcoin et ETH. Certains des jetons les plus célèbres créés selon la norme ERC-20 sont Binance Coin (BNB) et Shiba Shabu (KOBE).

Les utilisateurs peuvent envoyer et recevoir des jetons ERC-20. Ces tokens sont fongibles, ce qui signifie que leur valeur est la même partout sur la blockchain.

suivre Blockchain.com, Les portefeuilles et les échanges utilisent cette norme pour intégrer divers jetons ERC-20 dans la plateforme et pour faciliter leur échange et de nombreuses autres crypto-monnaies.

Maintenant que nous comprenons ce qu'est la norme ERC-20, examinons le contenu du jeton ERC-20.

Contenu du jeton ERC-20

Le jeton ERC-20 contient les méthodes et les événements qu'un jeton ERC-20 doit avoir.

Les jetons ERC-20 doivent pouvoir :

  • Transférer des jetons d'un compte à un autre
  • Restituer le solde du compte
  • Renvoie le nombre total de jetons disponibles dans les jetons
  • Transférer des jetons sur votre compte

En fait, s'il était écrit en Solidity, l'ERC-20 ressemblerait à ceci :

fonction prénom() public vue Retours (un magnifique)

fonction symbole() public vue Retours (un magnifique)

fonction décimales() public vue Retours (uint8)

fonction approvisionnement total() public vue Retours (uint256)

fonction équilibre des(adresse _propriétaire) public vue Retours (solde uint256)

fonction transférer(Adressé à, uint256 _valeur) public Retours (bool succès)

fonction transfert à partir de(adresse _de, Adressé à, uint256 _valeur) public Retours (bool succès)

fonction approuver(adresse _spender, uint256 _valeur) public Retours (bool succès)

fonction allocation(adresse _propriétaire, adresse _spender) public vue Retours (uint256 restant)

Un jeton ERC-20 peut avoir les méthodes suivantes :

  • name – renvoie le nom du token (par exemple Binance Coin)
  • symbole – renvoie le symbole du jeton (par exemple BNB)
  • Places décimales – Renvoie le nombre de décimales utilisées par le jeton
  • totalSupply – renvoie la totalité du stock initial du jeton
  • balanceOf – renvoie le solde du compte
  • transfert – transférer un certain nombre de jetons vers une adresse
  • transferFrom – transfère un certain nombre de jetons de l’adresse du destinataire à l’adresse du destinataire
  • approuver – retirer des jetons jusqu'à un certain nombre de jetons de l'adresse du propriétaire
  • Exemption – renvoie le nombre de jetons pouvant être retirés du compte du propriétaire

Les événements peuvent également être enregistrés sur le jeton afin d'être capturés à temps lorsqu'un signal est envoyé. Les jetons ERC-20 ont les événements suivants :

Transfert d'événement (adresse indexée _from, adresse indexée _to, uint256 _value)

Approbation de l'événement (adresse indexée _owner, adresse indexée _spender, uint256 _value)

  • Transfert – activé lors du transfert de jetons
  • Approbation – activé lorsque le compte a été approuvé pour recevoir un certain nombre de jetons

Générer un jeton ERC 20

Pour faciliter la compréhension dans cette section, l'article montre comment écrire un jeton simple et l'appeler ND Coin.

// Identifiant de licence SPDX : GPL-3.0
solidité pragma >=0.7.0 <0.9.0;

contrat NDCoinERC20 {

    un événement Transferts(adresse indexée de, adresse indexée à, uint tokens);
    un événement Garantie(adresse indexée tokenOwner, adresse dépensière indexée, uint tokens);

    un magnifique public nom de constante = "Pièce ND";
    un magnifique public symbole constant = "NDN";
    uint8 public décimales constantes = 18;

    cartographie(propos => uint256) soldes;

    cartographie(propos => cartographie (propos => uint256)) permis;

    uint256 totalSupply_;

    constructeur(uint256 au total) {
      approvisionnement total_ = la totalité de votre cycle de coaching doit être payée avant votre dernière session.;
      soldes[msg.expéditeur] = approvisionnement total_;
    }

    fonction approvisionnement total() public vue Retours (uint256) {
      retourner approvisionnement total_;
    }

    fonction équilibre des(propriétaire du jeton d'adresse) public vue Retours (uint) {
        retourner soldes[propriétaire de jeton];
    }

    fonction transférer(adresse du destinataire, uint nombre de jetons) public Retours (bool) {
        exigent(nombre de jetons <= soldes[msg.expéditeur]);
        soldes[msg.expéditeur] -= nombre de jetons;
        soldes[récepteur] += nombre de jetons;
        émettre Transferts(msg.expéditeur, récepteur, nombre de jetons);
        retourner oui;
    }

    fonction approuver(propos déléguer, uint nombre de jetons) public Retours (bool) {
        autorisé\[msg.expéditeur\][déléguer] = nombre de jetons;
        émettre Garantie(msg.expéditeur, déléguer, nombre de jetons);
        retourner oui;
    }

    fonction allocation(propriétaire de l'adresse, propos déléguer) public vue Retours (uint) {
        retourner autorisé\[propriétaire\][déléguer];
    }

    fonction transfert à partir de(propriétaire de l'adresse, adresse de l'acheteur, uint nombre de jetons) public Retours (bool) {
        exigent(nombre de jetons <= soldes[propriétaire]);
        exigent(nombre de jetons <= autorisé\[propriétaire\][msg.expéditeur]);

        soldes[propriétaire] -= nombre de jetons;
        autorisé\[propriétaire\][msg.expéditeur] -= nombre de jetons;
        soldes[acheteur] += nombre de jetons;
        émettre Transferts(propriétaire, acheteur, nombre de jetons);
        retourner oui;
    }
}

Comment créer et implémenter des jetons ERC-20 sur la blockchain Ethereum

Tout ce que vous devez savoir sur les jetons ERC sur Ethereum - AAX Academy

Comment créer et mettre en œuvre Jetons ERC-20 sur la blockchain Ethereum. Au rythme actuel de développement, la blockchain conquiert progressivement le monde. Bitcoin, le plus populaire crypto-monnaie, est le produit de la première et la plus connue technologie blockchain au monde. Ethereum est un sous-produit de la blockchain et est né lorsque Bitcoin a commencé à prospérer.

d'ether

Alors que Bitcoin a seulement évolué vers une monnaie, Ethereum est allé encore plus loin avec sa vision de fournir des machines virtuelles (EVM) et des contrats intelligents permettant aux utilisateurs de créer des jetons sur le réseau.

Les jetons peuvent représenter de l'argent, de l'or, des billets de loterie… vous pouvez développer tous types de jetons sur la blockchain Ethereum, mais ce tutoriel se concentrera sur la création et le déploiement de jetons ERC-20.

Avant de créer un jeton, vous devez avoir au moins une compréhension de base de la technologie blockchain, du langage de solidité et du fonctionnement d’Ethereum.

Qu'est-ce que la blockchain et méthode Comment cela fonctionne ? 

En bref, la blockchain est un enregistrement des transactions dans un grand livre distribué ou une base de données pour de nombreux participants au réseau. Ce grand livre contient un enregistrement des transactions effectuées sur le réseau.

Une transaction est l'acte de transférer une devise ou un montant spécifique d'un utilisateur à un autre sur le réseau. Supposons qu'Alice transmette 30BLC à Bob. Cette transaction est hachée cryptographiquement par un nœud spécifique du réseau et enregistrée dans le grand livre.

Ce nœud envoie la transaction aux autres nœuds du réseau, c'est-à-dire qu'il propage la transaction sur le réseau. D'autres nœuds reçoivent la transaction, la examinent à l'aide de la méthode standard, puis l'ajoutent au grand livre.

Les nœuds du réseau reçoivent la transaction nouvellement transmise sur le réseau, puis l'ajoutent au grand livre. Chaque nœud du réseau possède ou possède une copie du grand livre. Cela se traduit par le caractère décentralisé de la blockchain.

Le mot « blockchain » vient du fait que les transactions ou les enregistrements dans un grand livre sont liés pour former une chaîne. Comme nous le savons tous, la transaction représente l'échange de devises entre deux parties dans le nœud, qui peut être représenté en JSON comme suit :

{
  "à": "0xalice",
  "de": "0xbob",
  "montant": "30BLC"
}

Il s’agit d’un simple enregistrement ou transaction. Bob a transféré 30BLC à Alice.

Cette transaction est enregistrée dans un bloc écrit en utilisant le format de données JSON suivant :

[
  {
    "à": "0xalice",
    "de": "0xbob",
    "montant": "30BLC"
  }
]

Un bloc est comme une séquence contenant de nombreux objets de transaction. Ce bloc peut donc contenir plusieurs transactions :

[
  {
    "à": "0xalice",
    "de": "0xbob",
    "montant": "30BLC"
  },
  {
    "à": "0xtheresa",
    "de": "0xarinze",
    "montant": "5BLC"
  }
]

Vous pouvez voir l'emplacement du bloc auquel la transaction sera ajoutée. Les chaînes sont constituées de blocs interconnectés. Chaque blockchain commence par un bloc Genesis, que le créateur ajoute et distribue au réseau.

Chaque bloc possède également un hachage cryptographique qui fait office d'identifiant unique sur le réseau. Il n’y a pas deux blocs qui ont le même hachage.

Lorsqu'un bloc est vérifié par des nœuds et ajouté au réseau, il possède un pointeur vers le hachage du dernier bloc du réseau.

[
  {
    "hacher": "0x0",
    "précHash": "",
    "txns": [
      {
        "à": "0xalice",
        "de": "0xbob",
        "montant": "30BLC"
      },
      {
        "hacher": "0x1",
        "précHash": "0x0",
        "à": "0xtheresa",
        "de": "0xarinze",
        "montant": "5BLC"
      }
    ]
  },
  {
    "hacher": "0x1",
    "précHash": "0x0",
    "txns": [
      {
        "à": "0xalice",
        "de": "0xbob",
        "montant": "30BLC"
      },
      {
        "à": "0xtheresa",
        "de": "0xarinze",
        "montant": "5BLC"
      }
    ]
  }
]

Le premier bloc avec le hachage 0x0 est le bloc d'origine. Le bloc suivant avec le hachage 0x1 a un prevHash qui pointe vers 0x0, c'est-à-dire vers le premier bloc du réseau.

De cette façon, chaque nouveau bloc inséré dans le réseau pointe en premier vers le bloc le plus récent adjacent. Cela crée une « chaîne » dans la blockchain.

Qu'est-ce que l'éthereum

Ethereum est une blockchain possédant sa propre monnaie numérique appelée ETH. Tout comme les autres blockchains, les transactions sont stockées dans un grand livre.

Ce qui distingue Ethereum des autres blockchains, c’est sa flexibilité. Alors que de nombreuses plateformes blockchain ne prennent en charge que les transferts d’argent, Ethereum permet de transférer toutes les données via la blockchain et de payer les frais en ETH.

Comment fonctionne Ethereum?

Comme mentionné ci-dessus, nous pouvons transférer n’importe quelle donnée dans la blockchain Ethereum et payer des frais dans l’ETH.

Tout comme la transaction BLC dans l'exemple ci-dessus, la blockchain Ethereum prend en charge les transactions ETH. Supposons qu'Alice transfère 1 ETH à Bob. Cette transaction est validée par les nœuds du réseau et ajoutée au bloc dans la blockchain.

De plus, Ethereum dispose d’un système minier, ce qui nécessite du travail pour obtenir l’ETH. Cette tâche consiste à résoudre un calcul difficile en essayant de nombreuses façons différentes jusqu'à ce que vous trouviez la bonne réponse. N'importe quel nœud du réseau peut participer. Un nœud qui résout avec succès le calcul est récompensé par une certaine quantité d’ETH. La difficulté du calcul augmente à mesure que les transactions sont réduites.

Chaque fois qu'une transaction est déclenchée dans la blockchain Ethereum, un nœud minier du réseau effectue cette transaction. L'expéditeur de la transaction doit accepter de payer un certain montant d'ETH à ce nœud. C’est ce qu’on appelle le prix du gaz.

Qu'est-ce qu'un contrat intelligent?

Un contrat intelligent est un outil qui contient du code qui s'exécute sur la blockchain Ethereum. Les contrats intelligents sont écrits dans le langage Solidity et compilés en code ABI. Ce code ABI est fourni sur la blockchain Ethereum. Le contrat intelligent prend l'adresse externe de l'expéditeur et la mélange avec un nom occasionnel (numéro unique) pour former une adresse sur la blockchain Ethereum.

Les contrats intelligents permettent la création de contrats numériques. Comme les contrats réels, les contrats numériques aident à établir une transaction entre deux ou plusieurs parties au sein de la blockchain Ethereum.

Un contrat intelligent est un type de compte dans Ethereum, ce qui signifie qu'il n'est pas contrôlé par l'utilisateur et peut envoyer des transactions sur la blockchain. Puisqu'il s'agit d'un compte, le contrat intelligent a un solde et contient le code EVM.

Que sont les jetons ERC-20?
Tutoriel sur les jetons ERC20 | Toptal

La machine virtuelle Ethereum (EVM) est une machine virtuelle qui exécute le code Solidity ABI compilé. Les contrats intelligents sur Ethereum sont devenus la norme mondiale pour créer une gamme de jetons. Ces normes sont connues sous le nom de norme Ethereum Request for Comment (ERC).

Ethereum en a beaucoup défaut, mais les plus couramment utilisés et les plus largement utilisés sont ERC-20 et ERC-721. ERC-20 est utilisé pour la génération de jetons tandis que ERC-721 est utilisé pour le développement NFT.

ERC-20 est le standard proposé par Fabian Vogelsteller, un contrat intelligent qui contient un certain nombre d'API. ERC20 est un ensemble de règles qui s'appliquent à tous les jetons qui choisissent la norme ERC-20.

Comme mentionné ci-dessus, l'ERC-20 peut être utilisé pour créer des monnaies virtuelles comme Bitcoin et ETH. Certains des jetons les plus célèbres créés selon la norme ERC-20 sont Binance Coin (BNB) et Shiba Shabu (KOBE).

Les utilisateurs peuvent envoyer et recevoir des jetons ERC-20. Ces tokens sont fongibles, ce qui signifie que leur valeur est la même partout sur la blockchain.

suivre Blockchain.com, Les portefeuilles et les échanges utilisent cette norme pour intégrer divers jetons ERC-20 dans la plateforme et pour faciliter leur échange et de nombreuses autres crypto-monnaies.

Maintenant que nous comprenons ce qu'est la norme ERC-20, examinons le contenu du jeton ERC-20.

Contenu du jeton ERC-20

Le jeton ERC-20 contient les méthodes et les événements qu'un jeton ERC-20 doit avoir.

Les jetons ERC-20 doivent pouvoir :

  • Transférer des jetons d'un compte à un autre
  • Restituer le solde du compte
  • Renvoie le nombre total de jetons disponibles dans les jetons
  • Transférer des jetons sur votre compte

En fait, s'il était écrit en Solidity, l'ERC-20 ressemblerait à ceci :

fonction prénom() public vue Retours (un magnifique)

fonction symbole() public vue Retours (un magnifique)

fonction décimales() public vue Retours (uint8)

fonction approvisionnement total() public vue Retours (uint256)

fonction équilibre des(adresse _propriétaire) public vue Retours (solde uint256)

fonction transférer(Adressé à, uint256 _valeur) public Retours (bool succès)

fonction transfert à partir de(adresse _de, Adressé à, uint256 _valeur) public Retours (bool succès)

fonction approuver(adresse _spender, uint256 _valeur) public Retours (bool succès)

fonction allocation(adresse _propriétaire, adresse _spender) public vue Retours (uint256 restant)

Un jeton ERC-20 peut avoir les méthodes suivantes :

  • name – renvoie le nom du token (par exemple Binance Coin)
  • symbole – renvoie le symbole du jeton (par exemple BNB)
  • Places décimales – Renvoie le nombre de décimales utilisées par le jeton
  • totalSupply – renvoie la totalité du stock initial du jeton
  • balanceOf – renvoie le solde du compte
  • transfert – transférer un certain nombre de jetons vers une adresse
  • transferFrom – transfère un certain nombre de jetons de l’adresse du destinataire à l’adresse du destinataire
  • approuver – retirer des jetons jusqu'à un certain nombre de jetons de l'adresse du propriétaire
  • Exemption – renvoie le nombre de jetons pouvant être retirés du compte du propriétaire

Les événements peuvent également être enregistrés sur le jeton afin d'être capturés à temps lorsqu'un signal est envoyé. Les jetons ERC-20 ont les événements suivants :

Transfert d'événement (adresse indexée _from, adresse indexée _to, uint256 _value)

Approbation de l'événement (adresse indexée _owner, adresse indexée _spender, uint256 _value)

  • Transfert – activé lors du transfert de jetons
  • Approbation – activé lorsque le compte a été approuvé pour recevoir un certain nombre de jetons

Générer un jeton ERC 20

Pour faciliter la compréhension dans cette section, l'article montre comment écrire un jeton simple et l'appeler ND Coin.

// Identifiant de licence SPDX : GPL-3.0
solidité pragma >=0.7.0 <0.9.0;

contrat NDCoinERC20 {

    un événement Transferts(adresse indexée de, adresse indexée à, uint tokens);
    un événement Garantie(adresse indexée tokenOwner, adresse dépensière indexée, uint tokens);

    un magnifique public nom de constante = "Pièce ND";
    un magnifique public symbole constant = "NDN";
    uint8 public décimales constantes = 18;

    cartographie(propos => uint256) soldes;

    cartographie(propos => cartographie (propos => uint256)) permis;

    uint256 totalSupply_;

    constructeur(uint256 au total) {
      approvisionnement total_ = la totalité de votre cycle de coaching doit être payée avant votre dernière session.;
      soldes[msg.expéditeur] = approvisionnement total_;
    }

    fonction approvisionnement total() public vue Retours (uint256) {
      retourner approvisionnement total_;
    }

    fonction équilibre des(propriétaire du jeton d'adresse) public vue Retours (uint) {
        retourner soldes[propriétaire de jeton];
    }

    fonction transférer(adresse du destinataire, uint nombre de jetons) public Retours (bool) {
        exigent(nombre de jetons <= soldes[msg.expéditeur]);
        soldes[msg.expéditeur] -= nombre de jetons;
        soldes[récepteur] += nombre de jetons;
        émettre Transferts(msg.expéditeur, récepteur, nombre de jetons);
        retourner oui;
    }

    fonction approuver(propos déléguer, uint nombre de jetons) public Retours (bool) {
        autorisé\[msg.expéditeur\][déléguer] = nombre de jetons;
        émettre Garantie(msg.expéditeur, déléguer, nombre de jetons);
        retourner oui;
    }

    fonction allocation(propriétaire de l'adresse, propos déléguer) public vue Retours (uint) {
        retourner autorisé\[propriétaire\][déléguer];
    }

    fonction transfert à partir de(propriétaire de l'adresse, adresse de l'acheteur, uint nombre de jetons) public Retours (bool) {
        exigent(nombre de jetons <= soldes[propriétaire]);
        exigent(nombre de jetons <= autorisé\[propriétaire\][msg.expéditeur]);

        soldes[propriétaire] -= nombre de jetons;
        autorisé\[propriétaire\][msg.expéditeur] -= nombre de jetons;
        soldes[acheteur] += nombre de jetons;
        émettre Transferts(propriétaire, acheteur, nombre de jetons);
        retourner oui;
    }
}
Visité 67 fois, 1 visite(s) aujourd'hui

Soyez sympa! Laissez un commentaire