Lição 3

Noções básicas sobre um contrato FA1.2

Bem-vindo à terceira lição do nosso curso de tokenização. Tendo implantado o contrato de token completo, vamos quebrar o código do contrato e entender os diferentes elementos. Esta lição tem como objetivo dar-lhe uma compreensão profunda de como um contrato de token FA1.2 é construído.

1. Contrato de administrador

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.

2. Pausar o Contrato

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.

3. Contrato de Mint

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.

4. Gravar Contrato

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)

5. Alterar Contrato de metadados

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!

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 3

Noções básicas sobre um contrato FA1.2

Bem-vindo à terceira lição do nosso curso de tokenização. Tendo implantado o contrato de token completo, vamos quebrar o código do contrato e entender os diferentes elementos. Esta lição tem como objetivo dar-lhe uma compreensão profunda de como um contrato de token FA1.2 é construído.

1. Contrato de administrador

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.

2. Pausar o Contrato

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.

3. Contrato de Mint

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.

4. Gravar Contrato

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)

5. Alterar Contrato de metadados

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!

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.
It seems that you are attempting to access our services from a Restricted Location where Gate.io is unable to provide services. We apologize for any inconvenience this may cause. Currently, the Restricted Locations include but not limited to: the United States of America, Canada, Cambodia, Thailand, Cuba, Iran, North Korea and so on. For more information regarding the Restricted Locations, please refer to the User Agreement. Should you have any other questions, please contact our Customer Support Team.