Dalam struktur data FIFO, elemen pertama yang ditambahkan ke antrian akan menjadi elemen pertama yang dihapus. Hal ini setara dengan persyaratan bahwa setelah elemen baru ditambahkan, semua elemen yang ditambahkan sebelumnya harus dihapus sebelum elemen baru dapat dihapus.
Sumber: Invostopedia
Dalam konteks kontrak pintar, penerapan antrean FIFO dapat berguna untuk banyak skenario, seperti sistem antrean yang adil di mana setiap orang dilayani (atau diproses) sesuai urutan masuknya.
Mari kita lanjutkan dan tulis kontrak FIFO. Operasi utama untuk kontrak kita adalah push
, untuk menambahkan elemen ke antrian, dan pop
, untuk menghapus elemen dari antrian.
Kontrak menyimpan antrian dalam daftar di penyimpanannya, dan setiap operasi push
menambahkan elemen ke akhir daftar, sementara setiap operasi pop
menghapus elemen dari awal daftar.
Berikut tampilan kontraknya:
Python
import smartpy as sp
@sp.module
def main():
# Kelas Fifo mendefinisikan kontrak sederhana yang menangani instruksi push dan pop
# dengan basis first-in first-out.
class SimpleFifo(sp.Contract):
def __init__(mandiri):
self.data.first = 0
self.data.last = -1
self.data.saved = {}
@sp.entrypoint
def pop(self):
menegaskan self.data.first < self.data.last
del self.data.saved[self.data.first]
self.data.first += 1
@sp.entrypoint
def push(self, elemen):
self.data.last += 1
self.data.saved[self.data.last] = elemen
@sp.onchain_view
def head(self):
return self.data.saved[self.data.first]
jika "templat" tidak ada di __name__:
@sp.add_test(name="Fifo")
def test():
skenario = sp.test_scenario(main)
skenario.h1("Sederhana Kontrak Fifo")
c1 = main.SimpleFifo()
skenario += c1
c1.push(4)
c1.push(5)
c1.push(6)
c1.push(7)
c1.pop( )
skenario.verifikasi(sp.View(c1, "head")() == 5)
Untuk menguji kontrak FIFO:
Langkah 1: Salin kode kontrak dan tempel ke SmartPy IDE.
Langkah 2: Klik tombol Run
di kanan atas untuk mengkompilasi dan mensimulasikan kontrak.
Langkah 3: Periksa sisi kanan IDE untuk melihat hasil simulasi. Anda akan melihat status penyimpanan kontrak setelah setiap operasi.
Langkah 4: Bereksperimenlah dengan mengubah urutan operasi atau menambahkan operasi baru.
Anda sekarang telah mempelajari cara membuat kontrak FIFO di blockchain Tezos! Pada pelajaran berikutnya, kita akan membahas lebih jauh dengan tampilan rekursif, sebuah fitur canggih dari SmartPy yang memungkinkan kontrak memanggil pandangannya sendiri. Teruslah menjelajah dan selamat coding!
Dalam struktur data FIFO, elemen pertama yang ditambahkan ke antrian akan menjadi elemen pertama yang dihapus. Hal ini setara dengan persyaratan bahwa setelah elemen baru ditambahkan, semua elemen yang ditambahkan sebelumnya harus dihapus sebelum elemen baru dapat dihapus.
Sumber: Invostopedia
Dalam konteks kontrak pintar, penerapan antrean FIFO dapat berguna untuk banyak skenario, seperti sistem antrean yang adil di mana setiap orang dilayani (atau diproses) sesuai urutan masuknya.
Mari kita lanjutkan dan tulis kontrak FIFO. Operasi utama untuk kontrak kita adalah push
, untuk menambahkan elemen ke antrian, dan pop
, untuk menghapus elemen dari antrian.
Kontrak menyimpan antrian dalam daftar di penyimpanannya, dan setiap operasi push
menambahkan elemen ke akhir daftar, sementara setiap operasi pop
menghapus elemen dari awal daftar.
Berikut tampilan kontraknya:
Python
import smartpy as sp
@sp.module
def main():
# Kelas Fifo mendefinisikan kontrak sederhana yang menangani instruksi push dan pop
# dengan basis first-in first-out.
class SimpleFifo(sp.Contract):
def __init__(mandiri):
self.data.first = 0
self.data.last = -1
self.data.saved = {}
@sp.entrypoint
def pop(self):
menegaskan self.data.first < self.data.last
del self.data.saved[self.data.first]
self.data.first += 1
@sp.entrypoint
def push(self, elemen):
self.data.last += 1
self.data.saved[self.data.last] = elemen
@sp.onchain_view
def head(self):
return self.data.saved[self.data.first]
jika "templat" tidak ada di __name__:
@sp.add_test(name="Fifo")
def test():
skenario = sp.test_scenario(main)
skenario.h1("Sederhana Kontrak Fifo")
c1 = main.SimpleFifo()
skenario += c1
c1.push(4)
c1.push(5)
c1.push(6)
c1.push(7)
c1.pop( )
skenario.verifikasi(sp.View(c1, "head")() == 5)
Untuk menguji kontrak FIFO:
Langkah 1: Salin kode kontrak dan tempel ke SmartPy IDE.
Langkah 2: Klik tombol Run
di kanan atas untuk mengkompilasi dan mensimulasikan kontrak.
Langkah 3: Periksa sisi kanan IDE untuk melihat hasil simulasi. Anda akan melihat status penyimpanan kontrak setelah setiap operasi.
Langkah 4: Bereksperimenlah dengan mengubah urutan operasi atau menambahkan operasi baru.
Anda sekarang telah mempelajari cara membuat kontrak FIFO di blockchain Tezos! Pada pelajaran berikutnya, kita akan membahas lebih jauh dengan tampilan rekursif, sebuah fitur canggih dari SmartPy yang memungkinkan kontrak memanggil pandangannya sendiri. Teruslah menjelajah dan selamat coding!