Lesson 3

Einen FA1.2-Vertrag verstehen

Willkommen zur dritten Lektion unseres Tokenisierungskurses. Nachdem wir den vollständigen Token-Vertrag bereitgestellt haben, wollen wir den Vertragscode aufschlüsseln und die verschiedenen Elemente verstehen. Diese Lektion soll Ihnen ein tiefes Verständnis dafür vermitteln, wie ein FA1.2-Token-Vertrag aufgebaut ist.

1. Admin-Vertrag

Die Admin Vertragsklasse in unserem Token-Vertrag ist für die Definition von Administratorrechten verantwortlich. Es enthält einen einzigen Einstiegspunkt: setAdministrator. Dieser Einstiegspunkt ermöglicht es dem aktuellen Administrator, einen neuen Administrator zuzuweisen.

Python 
 Klasse Admin(sp.Contract): 
 def __init__(selbst, Administrator): 
 self.init(administrator=administrator)

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

Die setAdministrator Funktion überprüft, ob nur der aktuelle Administrator diese Funktion ausführen kann. Schlägt die Überprüfung fehl, wird der Vorgang abgelehnt. Wenn die Prüfung erfolgreich ist, fährt die Funktion mit der Zuweisung des neuen Administrators fort.

2. Vertrag pausieren

Die Vertragsklasse Pause bietet einen Mechanismus zum Anhalten und Aufheben der Pause der Vertragsvorgänge. Es enthält einen Einstiegspunkt setPause , der den pausierten Status des Vertrags ändern kann.

Python 
 Klasse 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

Die Funktion setPause prüft zunächst, ob der Vorgang vom Administrator ausgeführt wird. Wenn die Prüfung erfolgreich ist, wird der pausierte Status des Vertrags aktualisiert.

3. Münzvertrag

Die Mint Vertragsklasse ermöglicht die Erhöhung des Token-Angebots. Es verfügt über einen mint Einstiegspunkt, der das Gesamtangebot erhöht und den Kontostand einer bestimmten Adresse aktualisiert.

Python 
 Klasse 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

Die mint Funktion überprüft zunächst, ob der Absender der Administrator ist. Dann erhöht es das Gesamtangebot und den Saldo der angegebenen Adresse.

4. Brennvertrag

Die Burn Vertragsklasse dient der Reduzierung des Token-Angebots. Es verfügt über einen burn Einstiegspunkt, der das Gesamtangebot und den Saldo einer bestimmten Adresse reduziert.

Python 
 Klasse 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

Die burn funktioniert ähnlich wie die mint Funktion, verringert jedoch stattdessen den Gesamtvorrat und den Saldo der angegebenen Adresse.

Mit dem folgenden Code brennt der Administrator das Bob-Token

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

5. Metadatenvertrag ändern

Die Vertragsklasse ChangeMetadata dient zum Aktualisieren der Metadaten des Vertrags. Es enthält eine Funktion update_metadata , die ein Schlüssel-Wert-Paar in den Metadaten aktualisiert.

Python 
 Klasse ChangeMetadata(sp.Contract): 
 @sp.entrypointdef update_metadata(self, key, value): 
 sp.verify(sp.sender == self.data.administrator)
        self.data.metadata[Schlüssel] = Wert

Die Funktion update_metadata überprüft, ähnlich wie die vorherigen Funktionen, ob der Absender der Administrator ist. Anschließend wird das angegebene Schlüssel-Wert-Paar in den Metadaten aktualisiert.

In der nächsten Lektion werden wir uns mit dem endgültigen Vertrag befassen, der alle diese Funktionen enthält: Fa1_2TestFull. Wir erfahren, wie dieser Vertrag von allen heute besprochenen Klassen erbt und wie sie alle zur Funktionalität des Tokens beitragen. Bleiben Sie dran!

Disclaimer
* Crypto investment involves significant risks. Please proceed with caution. The course is not intended as investment advice.
* The course is created by the author who has joined Gate Learn. Any opinion shared by the author does not represent Gate Learn.
Catalog
Lesson 3

Einen FA1.2-Vertrag verstehen

Willkommen zur dritten Lektion unseres Tokenisierungskurses. Nachdem wir den vollständigen Token-Vertrag bereitgestellt haben, wollen wir den Vertragscode aufschlüsseln und die verschiedenen Elemente verstehen. Diese Lektion soll Ihnen ein tiefes Verständnis dafür vermitteln, wie ein FA1.2-Token-Vertrag aufgebaut ist.

1. Admin-Vertrag

Die Admin Vertragsklasse in unserem Token-Vertrag ist für die Definition von Administratorrechten verantwortlich. Es enthält einen einzigen Einstiegspunkt: setAdministrator. Dieser Einstiegspunkt ermöglicht es dem aktuellen Administrator, einen neuen Administrator zuzuweisen.

Python 
 Klasse Admin(sp.Contract): 
 def __init__(selbst, Administrator): 
 self.init(administrator=administrator)

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

Die setAdministrator Funktion überprüft, ob nur der aktuelle Administrator diese Funktion ausführen kann. Schlägt die Überprüfung fehl, wird der Vorgang abgelehnt. Wenn die Prüfung erfolgreich ist, fährt die Funktion mit der Zuweisung des neuen Administrators fort.

2. Vertrag pausieren

Die Vertragsklasse Pause bietet einen Mechanismus zum Anhalten und Aufheben der Pause der Vertragsvorgänge. Es enthält einen Einstiegspunkt setPause , der den pausierten Status des Vertrags ändern kann.

Python 
 Klasse 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

Die Funktion setPause prüft zunächst, ob der Vorgang vom Administrator ausgeführt wird. Wenn die Prüfung erfolgreich ist, wird der pausierte Status des Vertrags aktualisiert.

3. Münzvertrag

Die Mint Vertragsklasse ermöglicht die Erhöhung des Token-Angebots. Es verfügt über einen mint Einstiegspunkt, der das Gesamtangebot erhöht und den Kontostand einer bestimmten Adresse aktualisiert.

Python 
 Klasse 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

Die mint Funktion überprüft zunächst, ob der Absender der Administrator ist. Dann erhöht es das Gesamtangebot und den Saldo der angegebenen Adresse.

4. Brennvertrag

Die Burn Vertragsklasse dient der Reduzierung des Token-Angebots. Es verfügt über einen burn Einstiegspunkt, der das Gesamtangebot und den Saldo einer bestimmten Adresse reduziert.

Python 
 Klasse 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

Die burn funktioniert ähnlich wie die mint Funktion, verringert jedoch stattdessen den Gesamtvorrat und den Saldo der angegebenen Adresse.

Mit dem folgenden Code brennt der Administrator das Bob-Token

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

5. Metadatenvertrag ändern

Die Vertragsklasse ChangeMetadata dient zum Aktualisieren der Metadaten des Vertrags. Es enthält eine Funktion update_metadata , die ein Schlüssel-Wert-Paar in den Metadaten aktualisiert.

Python 
 Klasse ChangeMetadata(sp.Contract): 
 @sp.entrypointdef update_metadata(self, key, value): 
 sp.verify(sp.sender == self.data.administrator)
        self.data.metadata[Schlüssel] = Wert

Die Funktion update_metadata überprüft, ähnlich wie die vorherigen Funktionen, ob der Absender der Administrator ist. Anschließend wird das angegebene Schlüssel-Wert-Paar in den Metadaten aktualisiert.

In der nächsten Lektion werden wir uns mit dem endgültigen Vertrag befassen, der alle diese Funktionen enthält: Fa1_2TestFull. Wir erfahren, wie dieser Vertrag von allen heute besprochenen Klassen erbt und wie sie alle zur Funktionalität des Tokens beitragen. Bleiben Sie dran!

Disclaimer
* Crypto investment involves significant risks. Please proceed with caution. The course is not intended as investment advice.
* The course is created by the author who has joined Gate Learn. Any opinion shared by the author does not represent Gate Learn.