Admin
トークンコントラクトのコントラクトクラスは、管理者権限を定義する役割を担います。これには、1 つのエントリ ポイント が含まれます setAdministrator
。 このエントリ ポイントを使用すると、現在の管理者は新しい管理者を割り当てることができます。
ニシキヘビ
class Admin(sp.契約):
デフ __init__(自己、管理者):
self.init(管理者=管理者) @sp.entrypointdef setAdministrator(self、params):
sp.verify(sp.sender == self.data.administrator) self.data.administrator (セルフ・データ・アドミニストレーター) = パラメータ
この関数は、現在の管理者のみがこの setAdministrator
関数を実行できることを確認します。 検証に失敗した場合、操作は拒否されます。 合格すると、関数は新しい管理者の割り当てに進みます。
コントラクト クラスは Pause
、コントラクト操作を一時停止および一時停止解除するメカニズムを提供します。 これには、契約の一時停止ステータスを変更できるエントリポイント setPause
が含まれています。
ニシキヘビ
class Pause(sp.契約):
デフ __init__(セルフ):
self.init(一時停止=False) @sp.entrypointdef setPause(self、params):
sp.verify(sp.sender == self.data.administrator) self.data.paused = パラメータ
この関数 setPause
は、最初に操作が管理者によって実行されたことを確認します。 チェックに合格すると、契約の一時停止ステータスが更新されます。
コントラクトクラスにより Mint
、トークンの供給量を増やすことができます。 総供給量を増やし、特定のアドレスの残高を更新するエントリポイントが付属 mint
しています。
ニシキヘビ
class Mint(sp.契約):
@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
この関数は mint
、最初に送信者が管理者であることを確認します。 次に、指定されたアドレスの総供給量と残高を増やします。
コントラクトクラスは Burn
、トークンの供給量を減らすためのものです。 特定のアドレスの総供給量と残高を減らすエントリポイントがあります burn
。
ニシキヘビ
class Burn(sp.契約):
@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
この関数は burn
関数 mint
と同様に動作しますが、代わりに指定されたアドレスの総供給量と残高を減らします。
次のコードでは、管理者は Bob トークンを書き込みます
ニシキヘビ
sc.h2("管理者がボブトークンを燃やす")
c1.burn(アドレス= bob.address、 値=1).run(送信者=管理者)
コントラクト クラスは ChangeMetadata
、コントラクトのメタデータを更新するためのものです。 これには、メタデータのキーと値のペアを更新する関数 update_metadata
が含まれています。
ニシキヘビ
class ChangeMetadata(sp.契約):
@sp.entrypointdef update_metadata(self, key, value):
sp.verify(sp.sender == self.data.administrator) self.data.metadata[キー] = 値
この関数は update_metadata
、前の関数と同様に、送信者が管理者であることを確認します。 次に、メタデータ内の指定されたキーと値のペアを更新します。
次のレッスンでは、これらすべての機能 Fa1_2TestFull
を含む最終的なコントラクトについて掘り下げます。 このコントラクトが今日説明したすべてのクラスからどのように継承され、それらすべてがトークンの機能にどのように貢献するかについて学びます。 乞うご期待!
Admin
トークンコントラクトのコントラクトクラスは、管理者権限を定義する役割を担います。これには、1 つのエントリ ポイント が含まれます setAdministrator
。 このエントリ ポイントを使用すると、現在の管理者は新しい管理者を割り当てることができます。
ニシキヘビ
class Admin(sp.契約):
デフ __init__(自己、管理者):
self.init(管理者=管理者) @sp.entrypointdef setAdministrator(self、params):
sp.verify(sp.sender == self.data.administrator) self.data.administrator (セルフ・データ・アドミニストレーター) = パラメータ
この関数は、現在の管理者のみがこの setAdministrator
関数を実行できることを確認します。 検証に失敗した場合、操作は拒否されます。 合格すると、関数は新しい管理者の割り当てに進みます。
コントラクト クラスは Pause
、コントラクト操作を一時停止および一時停止解除するメカニズムを提供します。 これには、契約の一時停止ステータスを変更できるエントリポイント setPause
が含まれています。
ニシキヘビ
class Pause(sp.契約):
デフ __init__(セルフ):
self.init(一時停止=False) @sp.entrypointdef setPause(self、params):
sp.verify(sp.sender == self.data.administrator) self.data.paused = パラメータ
この関数 setPause
は、最初に操作が管理者によって実行されたことを確認します。 チェックに合格すると、契約の一時停止ステータスが更新されます。
コントラクトクラスにより Mint
、トークンの供給量を増やすことができます。 総供給量を増やし、特定のアドレスの残高を更新するエントリポイントが付属 mint
しています。
ニシキヘビ
class Mint(sp.契約):
@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
この関数は mint
、最初に送信者が管理者であることを確認します。 次に、指定されたアドレスの総供給量と残高を増やします。
コントラクトクラスは Burn
、トークンの供給量を減らすためのものです。 特定のアドレスの総供給量と残高を減らすエントリポイントがあります burn
。
ニシキヘビ
class Burn(sp.契約):
@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
この関数は burn
関数 mint
と同様に動作しますが、代わりに指定されたアドレスの総供給量と残高を減らします。
次のコードでは、管理者は Bob トークンを書き込みます
ニシキヘビ
sc.h2("管理者がボブトークンを燃やす")
c1.burn(アドレス= bob.address、 値=1).run(送信者=管理者)
コントラクト クラスは ChangeMetadata
、コントラクトのメタデータを更新するためのものです。 これには、メタデータのキーと値のペアを更新する関数 update_metadata
が含まれています。
ニシキヘビ
class ChangeMetadata(sp.契約):
@sp.entrypointdef update_metadata(self, key, value):
sp.verify(sp.sender == self.data.administrator) self.data.metadata[キー] = 値
この関数は update_metadata
、前の関数と同様に、送信者が管理者であることを確認します。 次に、メタデータ内の指定されたキーと値のペアを更新します。
次のレッスンでは、これらすべての機能 Fa1_2TestFull
を含む最終的なコントラクトについて掘り下げます。 このコントラクトが今日説明したすべてのクラスからどのように継承され、それらすべてがトークンの機能にどのように貢献するかについて学びます。 乞うご期待!