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.
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.
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.
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)
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!
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.
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.
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.
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)
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!