Lição 3

Compreendendo um contrato FA1.2

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

1. Contrato de administração

A classe de contrato Admin em nosso contrato de token é responsável por definir 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__(self, administrador): 
 self.init (administrador = administrador)

    @sp.entrypointdef setAdministrator(self, params): 
 sp.verify(sp.sender == self.data.administrator)
        self.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 será rejeitada. Se for aprovado, a função continuará atribuindo o novo administrador.

2. Pausar Contrato

A classe de contrato Pause fornece um mecanismo para pausar e retomar as operações do contrato. Inclui um ponto de entrada setPause que pode alterar o status de pausa do contrato.

Pausa da classe Python 
 (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

A função setPause primeiro verifica se a operação foi executada pelo administrador. Se a verificação for aprovada, ela atualizará o status de pausa do contrato.

3. Contrato da Casa da Moeda

A classe de contrato Mint permite aumentar o fornecimento de tokens. Ele vem com um ponto de entrada mint que aumenta a oferta total e atualiza o saldo de um determinado endereço.

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

A função mint primeiro verifica se o remetente é o administrador. Então, aumenta a oferta total e o saldo do endereço especificado.

4. Queimar contrato

A classe de contrato Burn serve para diminuir o fornecimento de tokens. Possui um ponto de entrada burn 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.valor 
 self.data.balances[params.address].balance -= params.valor

A função burn opera de forma semelhante à função mint , mas em vez disso diminui o fornecimento total e o saldo do endereço especificado.

Com o código a seguir, o administrador queima o token Bob

Python 
 sc.h2("Admin queima token de Bob") 
 c1.burn(address=bob.address, valor=1).run(remetente=admin)

5. Contrato ChangeMetadata

A classe de contrato ChangeMetadata serve para atualizar os metadados do contrato. Inclui uma função update_metadata que atualiza um par chave-valor nos metadados.

Python 
 classe ChangeMetadata(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, ele atualiza o par de valores-chave especificado nos metadados.

Na próxima lição nos aprofundaremos no contrato final que inclui todas essas funcionalidades, Fa1_2TestFull. Aprenderemos como este contrato herda de todas as classes que discutimos hoje e como todas elas contribuem para a funcionalidade do token. Fique atento!

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

Compreendendo um contrato FA1.2

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

1. Contrato de administração

A classe de contrato Admin em nosso contrato de token é responsável por definir 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__(self, administrador): 
 self.init (administrador = administrador)

    @sp.entrypointdef setAdministrator(self, params): 
 sp.verify(sp.sender == self.data.administrator)
        self.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 será rejeitada. Se for aprovado, a função continuará atribuindo o novo administrador.

2. Pausar Contrato

A classe de contrato Pause fornece um mecanismo para pausar e retomar as operações do contrato. Inclui um ponto de entrada setPause que pode alterar o status de pausa do contrato.

Pausa da classe Python 
 (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

A função setPause primeiro verifica se a operação foi executada pelo administrador. Se a verificação for aprovada, ela atualizará o status de pausa do contrato.

3. Contrato da Casa da Moeda

A classe de contrato Mint permite aumentar o fornecimento de tokens. Ele vem com um ponto de entrada mint que aumenta a oferta total e atualiza o saldo de um determinado endereço.

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

A função mint primeiro verifica se o remetente é o administrador. Então, aumenta a oferta total e o saldo do endereço especificado.

4. Queimar contrato

A classe de contrato Burn serve para diminuir o fornecimento de tokens. Possui um ponto de entrada burn 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.valor 
 self.data.balances[params.address].balance -= params.valor

A função burn opera de forma semelhante à função mint , mas em vez disso diminui o fornecimento total e o saldo do endereço especificado.

Com o código a seguir, o administrador queima o token Bob

Python 
 sc.h2("Admin queima token de Bob") 
 c1.burn(address=bob.address, valor=1).run(remetente=admin)

5. Contrato ChangeMetadata

A classe de contrato ChangeMetadata serve para atualizar os metadados do contrato. Inclui uma função update_metadata que atualiza um par chave-valor nos metadados.

Python 
 classe ChangeMetadata(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, ele atualiza o par de valores-chave especificado nos metadados.

Na próxima lição nos aprofundaremos no contrato final que inclui todas essas funcionalidades, Fa1_2TestFull. Aprenderemos como este contrato herda de todas as classes que discutimos hoje e como todas elas contribuem para a funcionalidade do token. Fique atento!

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.