Lição 3

Comprendre un contrat FA1.2

Bienvenue à la troisième leçon de notre cours sur la tokenisation. Après avoir déployé le contrat de jeton complet, décomposons le code du contrat et comprenons les différents éléments. Cette leçon vise à vous donner une compréhension approfondie de la façon dont un contrat de jeton FA1.2 est construit.

1. Contrat administratif

La classe Admin de notre contrat de jeton est chargée de définir les privilèges administratifs. Il comprend un seul point d'entrée : setAdministrator. Ce point d'entrée permet à l'administrateur actuel de désigner un nouvel administrateur.

Python
classe Admin(sp.Contract) :
 def __init__(self, administrator) :
 self.init(administrator=administrator)

    @sp.entrypointdef setAdministrator(self, params) :
 sp.verify(sp.sender == self.data.administrator)
        self.data.administrator = params

La fonction setAdministrator vérifie que seul l'administrateur actuel peut exécuter cette fonction. Si la vérification échoue, l'opération est rejetée. Si elle est acceptée, la fonction procède à l'affectation du nouvel administrateur.

2. Pause Contrat

La classe de contrat Pause fournit un mécanisme permettant de mettre en pause et d'annuler les opérations du contrat. Il comprend un point d'entrée setPause qui permet de modifier l'état de pause du contrat.

Python
classe Pause(sp.Contract) :
 def __init__(self) :
 self.init(paused=False)

    @sp.entrypointdef setPause(self, params) :
 sp.verify(sp.sender == self.data.administrator)
        self.data.paused = params

La fonction setPause vérifie d'abord que l'opération est effectuée par l'administrateur. Si le contrôle est positif, il met à jour l'état de pause du contrat.

3. Contrat Mint

La classe de contrat Mint permet d'augmenter l'offre de jetons. Il s'accompagne d'un point d'entrée minime qui augmente l'offre totale et met à jour le solde d'une adresse particulière.

Python
classe Mint(sp.Contract) :
   @sp.entrypointdef mint(self, params) :
 sp.verify(sp.sender == self.data.administrator)
        self.data.total_supply += params.value
 self.data.balances[params.address].balance += params.value

La fonction Monnaie vérifie d'abord que l'expéditeur est bien l'administrateur. Ensuite, il augmente l'offre totale et le solde de l'adresse spécifiée.

4. Contrat de brûlage

La classe de contrat Burn permet de diminuer l'offre de jetons. Il possède un point d'entrée de brûlage qui réduit l'offre totale et le solde d'une adresse spécifique.

Python
class Burn(sp.Contract) :
   @sp.entrypointdef burn(self, params) :
 sp.verify(sp.sender == self.data.administrator)
        self.data.total_supply -= params.value
 self.data.balances[params.address].balance -= params.value

La fonction " brûler " fonctionne de la même manière que la fonction " battre monnaie ", mais elle diminue l'offre totale et le solde de l'adresse spécifiée.

Avec le code suivant, l'administrateur brûle le jeton Bob

Python
 sc.h2("Admin burns Bob token")
 c1.burn(address=bob.address, value=1).run(sender=admin)

5. Contrat ChangeMetadata

La classe de contrat ChangeMetadata permet de mettre à jour les métadonnées du contrat. Il comprend une fonction update_metadata qui met à jour une paire clé-valeur dans les métadonnées.

Python
class ChangeMetadata(sp.Contract) :
   @sp.entrypointdef update_metadata(self, key, value) :
 sp.verify(sp.sender == self.data.administrator)
        self.data.metadata[key] = valeur

La fonction update_metadata, semblable aux fonctions précédentes, vérifie que l'expéditeur est bien l'administrateur. Il met ensuite à jour la paire clé-valeur spécifiée dans les métadonnées.

Dans la prochaine leçon, nous nous pencherons sur le contrat final qui comprend toutes ces fonctionnalités, Fa1_2TestFull. Nous verrons comment ce contrat hérite de toutes les classes dont nous avons parlé aujourd'hui et comment elles contribuent toutes à la fonctionnalité du jeton. Restez à l'écoute !

Exclusão de responsabilidade
* O investimento em criptomoedas envolve riscos significativos. Prossiga com cuidado. O curso não pretende ser um conselho de investimento.
* O curso é criado pelo autor que se juntou ao Gate Learn. Qualquer opinião partilhada pelo autor não representa o Gate Learn.
Catálogo
Lição 3

Comprendre un contrat FA1.2

Bienvenue à la troisième leçon de notre cours sur la tokenisation. Après avoir déployé le contrat de jeton complet, décomposons le code du contrat et comprenons les différents éléments. Cette leçon vise à vous donner une compréhension approfondie de la façon dont un contrat de jeton FA1.2 est construit.

1. Contrat administratif

La classe Admin de notre contrat de jeton est chargée de définir les privilèges administratifs. Il comprend un seul point d'entrée : setAdministrator. Ce point d'entrée permet à l'administrateur actuel de désigner un nouvel administrateur.

Python
classe Admin(sp.Contract) :
 def __init__(self, administrator) :
 self.init(administrator=administrator)

    @sp.entrypointdef setAdministrator(self, params) :
 sp.verify(sp.sender == self.data.administrator)
        self.data.administrator = params

La fonction setAdministrator vérifie que seul l'administrateur actuel peut exécuter cette fonction. Si la vérification échoue, l'opération est rejetée. Si elle est acceptée, la fonction procède à l'affectation du nouvel administrateur.

2. Pause Contrat

La classe de contrat Pause fournit un mécanisme permettant de mettre en pause et d'annuler les opérations du contrat. Il comprend un point d'entrée setPause qui permet de modifier l'état de pause du contrat.

Python
classe Pause(sp.Contract) :
 def __init__(self) :
 self.init(paused=False)

    @sp.entrypointdef setPause(self, params) :
 sp.verify(sp.sender == self.data.administrator)
        self.data.paused = params

La fonction setPause vérifie d'abord que l'opération est effectuée par l'administrateur. Si le contrôle est positif, il met à jour l'état de pause du contrat.

3. Contrat Mint

La classe de contrat Mint permet d'augmenter l'offre de jetons. Il s'accompagne d'un point d'entrée minime qui augmente l'offre totale et met à jour le solde d'une adresse particulière.

Python
classe Mint(sp.Contract) :
   @sp.entrypointdef mint(self, params) :
 sp.verify(sp.sender == self.data.administrator)
        self.data.total_supply += params.value
 self.data.balances[params.address].balance += params.value

La fonction Monnaie vérifie d'abord que l'expéditeur est bien l'administrateur. Ensuite, il augmente l'offre totale et le solde de l'adresse spécifiée.

4. Contrat de brûlage

La classe de contrat Burn permet de diminuer l'offre de jetons. Il possède un point d'entrée de brûlage qui réduit l'offre totale et le solde d'une adresse spécifique.

Python
class Burn(sp.Contract) :
   @sp.entrypointdef burn(self, params) :
 sp.verify(sp.sender == self.data.administrator)
        self.data.total_supply -= params.value
 self.data.balances[params.address].balance -= params.value

La fonction " brûler " fonctionne de la même manière que la fonction " battre monnaie ", mais elle diminue l'offre totale et le solde de l'adresse spécifiée.

Avec le code suivant, l'administrateur brûle le jeton Bob

Python
 sc.h2("Admin burns Bob token")
 c1.burn(address=bob.address, value=1).run(sender=admin)

5. Contrat ChangeMetadata

La classe de contrat ChangeMetadata permet de mettre à jour les métadonnées du contrat. Il comprend une fonction update_metadata qui met à jour une paire clé-valeur dans les métadonnées.

Python
class ChangeMetadata(sp.Contract) :
   @sp.entrypointdef update_metadata(self, key, value) :
 sp.verify(sp.sender == self.data.administrator)
        self.data.metadata[key] = valeur

La fonction update_metadata, semblable aux fonctions précédentes, vérifie que l'expéditeur est bien l'administrateur. Il met ensuite à jour la paire clé-valeur spécifiée dans les métadonnées.

Dans la prochaine leçon, nous nous pencherons sur le contrat final qui comprend toutes ces fonctionnalités, Fa1_2TestFull. Nous verrons comment ce contrat hérite de toutes les classes dont nous avons parlé aujourd'hui et comment elles contribuent toutes à la fonctionnalité du jeton. Restez à l'écoute !

Exclusão de responsabilidade
* O investimento em criptomoedas envolve riscos significativos. Prossiga com cuidado. O curso não pretende ser um conselho de investimento.
* O curso é criado pelo autor que se juntou ao Gate Learn. Qualquer opinião partilhada pelo autor não representa o Gate Learn.