A classe de contrato de administrador
no nosso contrato de token é responsável pela definição de privilégios administrativos. Inclui um único ponto de entrada: SetAdministrator
. Este ponto de entrada permite que o administrador atual atribua um novo administrador.
Python
classe Admin (SP.Contract):
def __init__(auto, administrador):
self.init (administrador=administrador)
@sp .entrypointdef setAdministrator (self, parâmetros):
sp.verify (sp.sender == self.data.administrator)
auto.data.administrador = parâmetros
A função SetAdministrator
verifica se apenas o administrador atual pode executar esta função. Se a verificação falhar, a operação é rejeitada. Se passar, a função passa a atribuir o novo administrador.
A classe de contrato Pause
fornece um mecanismo para pausar e desfazer as operações do contrato. Inclui um ponto de entrada SetPause
que pode alterar o estado de pausa do contrato.
Python
classe Pausa (SP.Contract):
def __init__(self):
self.init (paused=False)
@sp .entrypointdef setPause (self, parâmetros):
sp.verify (sp.sender == self.data.administrator)
self.data.pause=parâmetros
A função setPause
primeiro verifica se a operação é executada pelo administrador. Se o cheque passar, atualiza o estado de pausa do contrato.
A classe contratual Mint
permite aumentar o fornecimento de tokens. Vem com um ponto de entrada da casa da moeda
que aumenta a oferta total e atualiza o saldo de um determinado endereço.
Python
classe Mint (SP.Contract):
@sp .entrypointdef mint (self, parâmetros):
sp.verify (sp.sender == self.data.administrator)
self.data.total_supply += params.value
self.data.balances [params.address] .balance += params.value
A função mint
primeiro verifica se o remetente é o administrador. Depois, aumenta a oferta total e o saldo do endereço especificado.
A classe de contrato Burn
é para diminuir o fornecimento de token. Tem um ponto de entrada de queima
que reduz a oferta total e o saldo de um endereço específico.
Python
classe Burn (SP.Contract):
@sp .entrypointdef burn (self, params):
sp.verify (sp.sender == self.data.administrator)
self.data.total_supply -= params.value
self.data.balances [params.address] .balance -= params.value
A função de gravação
funciona de forma semelhante à função mint
mas diminui a oferta total e o saldo do endereço especificado.
Com o código a seguir, o administrador queima o token Bob
Python
sc.h2 (O " administrador queima o token Bob) "
c1.burn (endereço=bob.address, valor=1) .run (remetente = administrador)
A classe de contrato ChangeMetaData
é para atualizar os metadados do contrato. Inclui uma função update_metadata
que actualiza um par chave-valor nos metadados.
Python
metadados de alteração de classe (SP.Contract):
@sp .entrypointdef update_metadata (self, chave, valor):
sp.verify (sp.sender == self.data.administrator)
self.data.metadata [chave] = valor
A função update_metadata
, semelhante às funções anteriores, verifica se o remetente é o administrador. Em seguida, atualiza o par chave-valor especificado nos metadados.
Na próxima lição, vamos nos aprofundar no contrato final que inclui todas estas funcionalidades, FA1_2TestFull.
Vamos aprender como este contrato herda de todas as classes que discutimos hoje e como todas contribuem para a funcionalidade do token. Fiquem atentos!
A classe de contrato de administrador
no nosso contrato de token é responsável pela definição de privilégios administrativos. Inclui um único ponto de entrada: SetAdministrator
. Este ponto de entrada permite que o administrador atual atribua um novo administrador.
Python
classe Admin (SP.Contract):
def __init__(auto, administrador):
self.init (administrador=administrador)
@sp .entrypointdef setAdministrator (self, parâmetros):
sp.verify (sp.sender == self.data.administrator)
auto.data.administrador = parâmetros
A função SetAdministrator
verifica se apenas o administrador atual pode executar esta função. Se a verificação falhar, a operação é rejeitada. Se passar, a função passa a atribuir o novo administrador.
A classe de contrato Pause
fornece um mecanismo para pausar e desfazer as operações do contrato. Inclui um ponto de entrada SetPause
que pode alterar o estado de pausa do contrato.
Python
classe Pausa (SP.Contract):
def __init__(self):
self.init (paused=False)
@sp .entrypointdef setPause (self, parâmetros):
sp.verify (sp.sender == self.data.administrator)
self.data.pause=parâmetros
A função setPause
primeiro verifica se a operação é executada pelo administrador. Se o cheque passar, atualiza o estado de pausa do contrato.
A classe contratual Mint
permite aumentar o fornecimento de tokens. Vem com um ponto de entrada da casa da moeda
que aumenta a oferta total e atualiza o saldo de um determinado endereço.
Python
classe Mint (SP.Contract):
@sp .entrypointdef mint (self, parâmetros):
sp.verify (sp.sender == self.data.administrator)
self.data.total_supply += params.value
self.data.balances [params.address] .balance += params.value
A função mint
primeiro verifica se o remetente é o administrador. Depois, aumenta a oferta total e o saldo do endereço especificado.
A classe de contrato Burn
é para diminuir o fornecimento de token. Tem um ponto de entrada de queima
que reduz a oferta total e o saldo de um endereço específico.
Python
classe Burn (SP.Contract):
@sp .entrypointdef burn (self, params):
sp.verify (sp.sender == self.data.administrator)
self.data.total_supply -= params.value
self.data.balances [params.address] .balance -= params.value
A função de gravação
funciona de forma semelhante à função mint
mas diminui a oferta total e o saldo do endereço especificado.
Com o código a seguir, o administrador queima o token Bob
Python
sc.h2 (O " administrador queima o token Bob) "
c1.burn (endereço=bob.address, valor=1) .run (remetente = administrador)
A classe de contrato ChangeMetaData
é para atualizar os metadados do contrato. Inclui uma função update_metadata
que actualiza um par chave-valor nos metadados.
Python
metadados de alteração de classe (SP.Contract):
@sp .entrypointdef update_metadata (self, chave, valor):
sp.verify (sp.sender == self.data.administrator)
self.data.metadata [chave] = valor
A função update_metadata
, semelhante às funções anteriores, verifica se o remetente é o administrador. Em seguida, atualiza o par chave-valor especificado nos metadados.
Na próxima lição, vamos nos aprofundar no contrato final que inclui todas estas funcionalidades, FA1_2TestFull.
Vamos aprender como este contrato herda de todas as classes que discutimos hoje e como todas contribuem para a funcionalidade do token. Fiquem atentos!