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.
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.
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.
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)
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!
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.
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.
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.
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)
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!