Kelas kontrak Admin
dalam kontrak token kami bertanggung jawab untuk menentukan hak administratif. Ini mencakup satu titik masuk: setAdministrator
. Titik masuk ini memungkinkan administrator saat ini untuk menetapkan administrator baru.
Admin kelas Python
(sp.Kontrak):
def __init__(mandiri, administrator):
self.init(administrator=administrator)
@sp.entrypointdef setAdministrator(self, params):
sp.verify(sp.sender == self.data.administrator)
mandiri.data.administrator = param
Fungsi setAdministrator
memverifikasi bahwa hanya administrator saat ini yang dapat menjalankan fungsi ini. Jika verifikasi gagal, operasi ditolak. Jika lolos, fungsi akan melanjutkan untuk menetapkan administrator baru.
Kelas kontrak Pause
menyediakan mekanisme untuk menjeda dan membatalkan jeda operasi kontrak. Ini mencakup setPause
titik masuk yang dapat mengubah status kontrak yang dijeda.
Kelas Python
Jeda(sp.Kontrak):
def __init__(mandiri):
self.init(jeda=Salah)
@sp.entrypointdef setPause(self, params):
sp.verify(sp.sender == self.data.administrator)
self.data.paused = params
Fungsi setPause
pertama-tama memeriksa apakah operasi dilakukan oleh administrator. Jika pemeriksaan berhasil, status kontrak yang dijeda akan diperbarui.
Kelas kontrak Mint
memungkinkan peningkatan pasokan token. Muncul dengan titik masuk mint
yang meningkatkan total pasokan dan memperbarui saldo alamat tertentu.
Python
kelas Mint(sp.Kontrak):
@sp.entrypointdef mint(self, params):
sp.verify(sp.sender == self.data.administrator)
mandiri.data.total_supply += params.value
self.data.balances[params.address].balance += params.nilai
Fungsi mint
pertama-tama memverifikasi bahwa pengirimnya adalah administrator. Kemudian menambah total pasokan dan saldo alamat yang ditentukan.
Kelas kontrak Burn
adalah untuk mengurangi pasokan token. Ini memiliki titik masuk burn
yang mengurangi total pasokan dan saldo alamat tertentu.
Pembakaran kelas Python
(sp.Kontrak):
@sp.entrypointdef pembakaran(mandiri, params):
sp.verify(sp.sender == self.data.administrator)
mandiri.data.total_supply -= params.value
self.data.balances[params.address].balance -= params.nilai
Fungsi burn
beroperasi mirip dengan fungsi mint
tetapi mengurangi total pasokan dan saldo alamat yang ditentukan.
Dengan kode berikut, Admin membakar token Bob
Python
sc.h2("Admin membakar token Bob")
c1.burn(alamat=bob.alamat, nilai=1).jalankan(pengirim=admin)
Kelas kontrak ChangeMetadata
adalah untuk memperbarui metadata kontrak. Ini mencakup fungsi update_metadata
yang memperbarui pasangan nilai kunci dalam metadata.
Kelas Python
ChangeMetadata(sp.Contract):
@sp.entrypointdef update_metadata(self, key, value):
sp.verify(sp.sender == self.data.administrator)
self.data.metadata[kunci] = nilai
Fungsi update_metadata
, mirip dengan fungsi sebelumnya, memverifikasi bahwa pengirim adalah administrator. Kemudian, ia memperbarui pasangan nilai kunci yang ditentukan dalam metadata.
Pada pelajaran berikutnya, kita akan mempelajari kontrak akhir yang mencakup semua fungsi ini, Fa1_2TestFull
. Kita akan mempelajari bagaimana kontrak ini mewarisi semua kelas yang kita diskusikan hari ini dan bagaimana semuanya berkontribusi pada fungsionalitas token. Pantau terus!
Kelas kontrak Admin
dalam kontrak token kami bertanggung jawab untuk menentukan hak administratif. Ini mencakup satu titik masuk: setAdministrator
. Titik masuk ini memungkinkan administrator saat ini untuk menetapkan administrator baru.
Admin kelas Python
(sp.Kontrak):
def __init__(mandiri, administrator):
self.init(administrator=administrator)
@sp.entrypointdef setAdministrator(self, params):
sp.verify(sp.sender == self.data.administrator)
mandiri.data.administrator = param
Fungsi setAdministrator
memverifikasi bahwa hanya administrator saat ini yang dapat menjalankan fungsi ini. Jika verifikasi gagal, operasi ditolak. Jika lolos, fungsi akan melanjutkan untuk menetapkan administrator baru.
Kelas kontrak Pause
menyediakan mekanisme untuk menjeda dan membatalkan jeda operasi kontrak. Ini mencakup setPause
titik masuk yang dapat mengubah status kontrak yang dijeda.
Kelas Python
Jeda(sp.Kontrak):
def __init__(mandiri):
self.init(jeda=Salah)
@sp.entrypointdef setPause(self, params):
sp.verify(sp.sender == self.data.administrator)
self.data.paused = params
Fungsi setPause
pertama-tama memeriksa apakah operasi dilakukan oleh administrator. Jika pemeriksaan berhasil, status kontrak yang dijeda akan diperbarui.
Kelas kontrak Mint
memungkinkan peningkatan pasokan token. Muncul dengan titik masuk mint
yang meningkatkan total pasokan dan memperbarui saldo alamat tertentu.
Python
kelas Mint(sp.Kontrak):
@sp.entrypointdef mint(self, params):
sp.verify(sp.sender == self.data.administrator)
mandiri.data.total_supply += params.value
self.data.balances[params.address].balance += params.nilai
Fungsi mint
pertama-tama memverifikasi bahwa pengirimnya adalah administrator. Kemudian menambah total pasokan dan saldo alamat yang ditentukan.
Kelas kontrak Burn
adalah untuk mengurangi pasokan token. Ini memiliki titik masuk burn
yang mengurangi total pasokan dan saldo alamat tertentu.
Pembakaran kelas Python
(sp.Kontrak):
@sp.entrypointdef pembakaran(mandiri, params):
sp.verify(sp.sender == self.data.administrator)
mandiri.data.total_supply -= params.value
self.data.balances[params.address].balance -= params.nilai
Fungsi burn
beroperasi mirip dengan fungsi mint
tetapi mengurangi total pasokan dan saldo alamat yang ditentukan.
Dengan kode berikut, Admin membakar token Bob
Python
sc.h2("Admin membakar token Bob")
c1.burn(alamat=bob.alamat, nilai=1).jalankan(pengirim=admin)
Kelas kontrak ChangeMetadata
adalah untuk memperbarui metadata kontrak. Ini mencakup fungsi update_metadata
yang memperbarui pasangan nilai kunci dalam metadata.
Kelas Python
ChangeMetadata(sp.Contract):
@sp.entrypointdef update_metadata(self, key, value):
sp.verify(sp.sender == self.data.administrator)
self.data.metadata[kunci] = nilai
Fungsi update_metadata
, mirip dengan fungsi sebelumnya, memverifikasi bahwa pengirim adalah administrator. Kemudian, ia memperbarui pasangan nilai kunci yang ditentukan dalam metadata.
Pada pelajaran berikutnya, kita akan mempelajari kontrak akhir yang mencakup semua fungsi ini, Fa1_2TestFull
. Kita akan mempelajari bagaimana kontrak ini mewarisi semua kelas yang kita diskusikan hari ini dan bagaimana semuanya berkontribusi pada fungsionalitas token. Pantau terus!