الدرس رقم 3

Memahami Kontrak FA1.2

Selamat datang di pelajaran ketiga dari kursus tokenisasi kami. Setelah menerapkan kontrak token lengkap, mari kita uraikan kode kontrak dan pahami elemen-elemen yang berbeda. Pelajaran ini bertujuan untuk memberi Anda pemahaman mendalam tentang bagaimana kontrak token FA1.2 dibuat.

1. Kontrak Admin

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.

2. Jeda Kontrak

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.

3. Kontrak Pencetakan

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.

4. Kontrak Pembakaran

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)

5. Kontrak Perubahan Metadata

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!

إخلاء المسؤولية
* ينطوي الاستثمار في العملات الرقمية على مخاطر كبيرة. فيرجى المتابعة بحذر. ولا تهدف الدورة التدريبية إلى تقديم المشورة الاستثمارية.
* تم إنشاء الدورة التدريبية من قبل المؤلف الذي انضم إلى مركز التعلّم في Gate. ويُرجى العلم أنّ أي رأي يشاركه المؤلف لا يمثّل مركز التعلّم في Gate.
الكتالوج
الدرس رقم 3

Memahami Kontrak FA1.2

Selamat datang di pelajaran ketiga dari kursus tokenisasi kami. Setelah menerapkan kontrak token lengkap, mari kita uraikan kode kontrak dan pahami elemen-elemen yang berbeda. Pelajaran ini bertujuan untuk memberi Anda pemahaman mendalam tentang bagaimana kontrak token FA1.2 dibuat.

1. Kontrak Admin

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.

2. Jeda Kontrak

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.

3. Kontrak Pencetakan

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.

4. Kontrak Pembakaran

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)

5. Kontrak Perubahan Metadata

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!

إخلاء المسؤولية
* ينطوي الاستثمار في العملات الرقمية على مخاطر كبيرة. فيرجى المتابعة بحذر. ولا تهدف الدورة التدريبية إلى تقديم المشورة الاستثمارية.
* تم إنشاء الدورة التدريبية من قبل المؤلف الذي انضم إلى مركز التعلّم في Gate. ويُرجى العلم أنّ أي رأي يشاركه المؤلف لا يمثّل مركز التعلّم في Gate.