Урок 3

Comprender un contrato FA1.2

Bienvenido a la tercera lección de nuestro curso de tokenización. Una vez implementado el contrato de token completo, analicemos el código del contrato y comprendamos los diferentes elementos. Esta lección tiene como objetivo brindarle una comprensión profunda de cómo se construye un contrato de token FA1.2.

1. Contrato de administración

La clase de contrato Admin en nuestro contrato token es responsable de definir los privilegios administrativos. Incluye un único punto de entrada: setAdministrator. Este punto de entrada permite al administrador actual asignar un nuevo administrador.

Python 
 clase Admin(sp.Contract): 
 def __init__(self, administrador): 
 self.init(administrator=administrator)

    @sp.entrypointdef setAdministrator(self, params): 
 sp.verify(sp.sender == self.data.administrator)
        administrador.de.auto.datos = parámetros

La función setAdministrator verifica que solo el administrador actual pueda ejecutar esta función. Si la verificación falla, la operación se rechaza. Si pasa, la función procede a asignar el nuevo administrador.

2. Pausar contrato

La clase de contrato Pause proporciona un mecanismo para pausar y reanudar las operaciones del contrato. Incluye un punto de entrada setPause que puede cambiar el estado de pausa del contrato.

Python 
 clase Pausa(sp.Contract): 
 def __init__(self): 
 self.init(paused=False)

    @sp.entrypointdef setPause(self, params): 
 sp.verify(sp.sender == self.data.administrator)
        self.data.paused = parámetros

La función setPause primero verifica que la operación la realice el administrador. Si se aprueba la verificación, se actualiza el estado de pausa del contrato.

3. Contrato de menta

La clase de contrato Mint permite aumentar el suministro de tokens. Viene con un punto de entrada mint que aumenta el suministro total y actualiza el saldo de una dirección en particular.

Python 
 clase Mint(sp.Contract): 
 @sp.entrypointdef mint(self, params): 
 sp.verify(sp.sender == self.data.administrator)
        self.data.total_supply += params.value 
 self.data.balances[params.address].balance += parámetros.valor

La función mint primero verifica que el remitente sea el administrador. Luego, aumenta la oferta total y el saldo de la dirección especificada.

4. Contrato de quema

La clase de contrato Burn sirve para disminuir el suministro de tokens. Tiene un punto de entrada burn que reduce el suministro total y el saldo de una dirección específica.

Python 
 clase Burn(sp.Contract): 
 @sp.entrypointdef burn(self, params): 
 sp.verify(sp.sender == self.data.administrator)
        self.data.total_supply -= params.valor 
 self.data.balances[params.address].balance -= parámetros.valor

La función burn funciona de manera similar a la función mint , pero en su lugar disminuye el suministro total y el saldo de la dirección especificada.

Con el siguiente código, el administrador quema el token de Bob

Python 
 sc.h2("El administrador quema el token de Bob") 
 c1.burn(dirección=bob.address, valor=1).run(remitente=admin)

5. Contrato de cambio de metadatos

La clase de contrato ChangeMetadata sirve para actualizar los metadatos del contrato. Incluye una función update_metadata que actualiza un par clave-valor en los metadatos.

Python 
 clase ChangeMetadata(sp.Contract): 
 @sp.entrypointdef update_metadata(self, key, value): 
 sp.verify(sp.sender == self.data.administrator)
        self.data.metadatos[clave] = valor

La función update_metadata , similar a las funciones anteriores, verifica que el remitente sea el administrador. Luego, actualiza el par clave-valor especificado en los metadatos.

En la siguiente lección profundizaremos en el contrato final que incluye todas estas funcionalidades, Fa1_2TestFull. Aprenderemos cómo este contrato hereda de todas las clases que analizamos hoy y cómo contribuyen todas a la funcionalidad del token. ¡Manténganse al tanto!

Отказ от ответственности
* Криптоинвестирование сопряжено со значительными рисками. Будьте осторожны. Курс не является инвестиционным советом.
* Курс создан автором, который присоединился к Gate Learn. Мнение автора может не совпадать с мнением Gate Learn.
Каталог
Урок 3

Comprender un contrato FA1.2

Bienvenido a la tercera lección de nuestro curso de tokenización. Una vez implementado el contrato de token completo, analicemos el código del contrato y comprendamos los diferentes elementos. Esta lección tiene como objetivo brindarle una comprensión profunda de cómo se construye un contrato de token FA1.2.

1. Contrato de administración

La clase de contrato Admin en nuestro contrato token es responsable de definir los privilegios administrativos. Incluye un único punto de entrada: setAdministrator. Este punto de entrada permite al administrador actual asignar un nuevo administrador.

Python 
 clase Admin(sp.Contract): 
 def __init__(self, administrador): 
 self.init(administrator=administrator)

    @sp.entrypointdef setAdministrator(self, params): 
 sp.verify(sp.sender == self.data.administrator)
        administrador.de.auto.datos = parámetros

La función setAdministrator verifica que solo el administrador actual pueda ejecutar esta función. Si la verificación falla, la operación se rechaza. Si pasa, la función procede a asignar el nuevo administrador.

2. Pausar contrato

La clase de contrato Pause proporciona un mecanismo para pausar y reanudar las operaciones del contrato. Incluye un punto de entrada setPause que puede cambiar el estado de pausa del contrato.

Python 
 clase Pausa(sp.Contract): 
 def __init__(self): 
 self.init(paused=False)

    @sp.entrypointdef setPause(self, params): 
 sp.verify(sp.sender == self.data.administrator)
        self.data.paused = parámetros

La función setPause primero verifica que la operación la realice el administrador. Si se aprueba la verificación, se actualiza el estado de pausa del contrato.

3. Contrato de menta

La clase de contrato Mint permite aumentar el suministro de tokens. Viene con un punto de entrada mint que aumenta el suministro total y actualiza el saldo de una dirección en particular.

Python 
 clase Mint(sp.Contract): 
 @sp.entrypointdef mint(self, params): 
 sp.verify(sp.sender == self.data.administrator)
        self.data.total_supply += params.value 
 self.data.balances[params.address].balance += parámetros.valor

La función mint primero verifica que el remitente sea el administrador. Luego, aumenta la oferta total y el saldo de la dirección especificada.

4. Contrato de quema

La clase de contrato Burn sirve para disminuir el suministro de tokens. Tiene un punto de entrada burn que reduce el suministro total y el saldo de una dirección específica.

Python 
 clase Burn(sp.Contract): 
 @sp.entrypointdef burn(self, params): 
 sp.verify(sp.sender == self.data.administrator)
        self.data.total_supply -= params.valor 
 self.data.balances[params.address].balance -= parámetros.valor

La función burn funciona de manera similar a la función mint , pero en su lugar disminuye el suministro total y el saldo de la dirección especificada.

Con el siguiente código, el administrador quema el token de Bob

Python 
 sc.h2("El administrador quema el token de Bob") 
 c1.burn(dirección=bob.address, valor=1).run(remitente=admin)

5. Contrato de cambio de metadatos

La clase de contrato ChangeMetadata sirve para actualizar los metadatos del contrato. Incluye una función update_metadata que actualiza un par clave-valor en los metadatos.

Python 
 clase ChangeMetadata(sp.Contract): 
 @sp.entrypointdef update_metadata(self, key, value): 
 sp.verify(sp.sender == self.data.administrator)
        self.data.metadatos[clave] = valor

La función update_metadata , similar a las funciones anteriores, verifica que el remitente sea el administrador. Luego, actualiza el par clave-valor especificado en los metadatos.

En la siguiente lección profundizaremos en el contrato final que incluye todas estas funcionalidades, Fa1_2TestFull. Aprenderemos cómo este contrato hereda de todas las clases que analizamos hoy y cómo contribuyen todas a la funcionalidad del token. ¡Manténganse al tanto!

Отказ от ответственности
* Криптоинвестирование сопряжено со значительными рисками. Будьте осторожны. Курс не является инвестиционным советом.
* Курс создан автором, который присоединился к Gate Learn. Мнение автора может не совпадать с мнением Gate Learn.