Lição 4

Creación de contratos FIFO

En esta lección, profundizaremos en un ejemplo más complejo de contratos SmartPy: una cola Primero en entrar, primero en salir (FIFO). FIFO es un método para organizar y manipular un búfer de datos, donde la entrada más antigua (primera) o "cabeza" de la cola se procesa primero.

Teoría

En una estructura de datos FIFO, el primer elemento agregado a la cola será el primero en eliminarse. Esto equivale al requisito de que una vez que se agrega un nuevo elemento, todos los elementos que se agregaron antes deben eliminarse antes de que se pueda eliminar el nuevo elemento.

Fuente: Invostoppedia

En el contexto de los contratos inteligentes, implementar una cola FIFO puede ser útil para muchos escenarios, como un sistema de cola justo donde todos son atendidos (o procesados) en el orden en que llegan.

Práctico

Sigamos adelante y escribamos un contrato FIFO. Las operaciones principales de nuestro contrato serán push, para agregar elementos a la cola, y pop, para eliminar elementos de la cola.

El contrato almacena la cola en una lista en su almacenamiento, y cada operación push agrega un elemento al final de la lista, mientras que cada operación pop elimina un elemento del principio de la lista.

Así es como podría verse el contrato:

Python 
 importa smartpy como sp 


 @sp.module 
 def main(): 
 # La clase Fifo define un contrato simple que maneja instrucciones push y pop 
 # según el principio de primero en entrar, primero en salir.

    clase SimpleFifo(sp.Contract): 
 def __init__(self): 
 self.data.first = 0 
 self.data.last = -1 
 self.data.saved = {} 

 @sp.entrypoint 
 def pop(self): 
 afirmar self.data.first < self.data.last 
 del self.data.saved[self.data.first]
            self.data.first += 1 

 @sp.entrypoint 
 def push(self, elemento): 
 self.data.last += 1 
 self.data.saved[self.data.last] = elemento 

 @sp.onchain_view 
 def head(self): 
 return self.data.saved[self.data.first]


si "plantillas" no están en __name__: 

 @sp.add_test(name="Fifo") 
 def test(): 
 escenario = sp.test_scenario(main)
        escenario.h1("Simple Contrato Fifo") 
 c1 = main.SimpleFifo() 
 escenario += c1 
 c1.push(4) 
 c1.push(5) 
 c1.push(6) 
 c1.push(7) 
 c1.pop( ) 
 escenario.verificar(sp.View(c1, "cabeza")() == 5)

Para probar el contrato FIFO:

Paso 1: Copie el código del contrato y péguelo en el IDE de SmartPy.

Paso 2: haga clic en el botón Run en la esquina superior derecha para compilar y simular el contrato.

Paso 3: consulte el lado derecho del IDE para ver los resultados de la simulación. Verás el estado del almacenamiento del contrato después de cada operación.

Paso 4: Experimente cambiando el orden de las operaciones o agregando nuevas operaciones.

¡Ahora has aprendido cómo crear un contrato FIFO en la cadena de bloques de Tezos! En la próxima lección, iremos más allá con las vistas recursivas, una característica poderosa de SmartPy que permite a los contratos llamar a sus propias vistas. ¡Sigue explorando y codificando felizmente!

Exclusão de responsabilidade
* O investimento em criptomoedas envolve riscos significativos. Prossiga com cuidado. O curso não pretende ser um conselho de investimento.
* O curso é criado pelo autor que se juntou ao Gate Learn. Qualquer opinião partilhada pelo autor não representa o Gate Learn.
Catálogo
Lição 4

Creación de contratos FIFO

En esta lección, profundizaremos en un ejemplo más complejo de contratos SmartPy: una cola Primero en entrar, primero en salir (FIFO). FIFO es un método para organizar y manipular un búfer de datos, donde la entrada más antigua (primera) o "cabeza" de la cola se procesa primero.

Teoría

En una estructura de datos FIFO, el primer elemento agregado a la cola será el primero en eliminarse. Esto equivale al requisito de que una vez que se agrega un nuevo elemento, todos los elementos que se agregaron antes deben eliminarse antes de que se pueda eliminar el nuevo elemento.

Fuente: Invostoppedia

En el contexto de los contratos inteligentes, implementar una cola FIFO puede ser útil para muchos escenarios, como un sistema de cola justo donde todos son atendidos (o procesados) en el orden en que llegan.

Práctico

Sigamos adelante y escribamos un contrato FIFO. Las operaciones principales de nuestro contrato serán push, para agregar elementos a la cola, y pop, para eliminar elementos de la cola.

El contrato almacena la cola en una lista en su almacenamiento, y cada operación push agrega un elemento al final de la lista, mientras que cada operación pop elimina un elemento del principio de la lista.

Así es como podría verse el contrato:

Python 
 importa smartpy como sp 


 @sp.module 
 def main(): 
 # La clase Fifo define un contrato simple que maneja instrucciones push y pop 
 # según el principio de primero en entrar, primero en salir.

    clase SimpleFifo(sp.Contract): 
 def __init__(self): 
 self.data.first = 0 
 self.data.last = -1 
 self.data.saved = {} 

 @sp.entrypoint 
 def pop(self): 
 afirmar self.data.first < self.data.last 
 del self.data.saved[self.data.first]
            self.data.first += 1 

 @sp.entrypoint 
 def push(self, elemento): 
 self.data.last += 1 
 self.data.saved[self.data.last] = elemento 

 @sp.onchain_view 
 def head(self): 
 return self.data.saved[self.data.first]


si "plantillas" no están en __name__: 

 @sp.add_test(name="Fifo") 
 def test(): 
 escenario = sp.test_scenario(main)
        escenario.h1("Simple Contrato Fifo") 
 c1 = main.SimpleFifo() 
 escenario += c1 
 c1.push(4) 
 c1.push(5) 
 c1.push(6) 
 c1.push(7) 
 c1.pop( ) 
 escenario.verificar(sp.View(c1, "cabeza")() == 5)

Para probar el contrato FIFO:

Paso 1: Copie el código del contrato y péguelo en el IDE de SmartPy.

Paso 2: haga clic en el botón Run en la esquina superior derecha para compilar y simular el contrato.

Paso 3: consulte el lado derecho del IDE para ver los resultados de la simulación. Verás el estado del almacenamiento del contrato después de cada operación.

Paso 4: Experimente cambiando el orden de las operaciones o agregando nuevas operaciones.

¡Ahora has aprendido cómo crear un contrato FIFO en la cadena de bloques de Tezos! En la próxima lección, iremos más allá con las vistas recursivas, una característica poderosa de SmartPy que permite a los contratos llamar a sus propias vistas. ¡Sigue explorando y codificando felizmente!

Exclusão de responsabilidade
* O investimento em criptomoedas envolve riscos significativos. Prossiga com cuidado. O curso não pretende ser um conselho de investimento.
* O curso é criado pelo autor que se juntou ao Gate Learn. Qualquer opinião partilhada pelo autor não representa o Gate Learn.