第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!

免责声明
* 投资有风险,入市须谨慎。本课程不作为投资理财建议。
* 本课程由入驻Gate Learn的作者创作,观点仅代表作者本人,绝不代表Gate Learn赞同其观点或证实其描述。
目录
第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!

免责声明
* 投资有风险,入市须谨慎。本课程不作为投资理财建议。
* 本课程由入驻Gate Learn的作者创作,观点仅代表作者本人,绝不代表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.