WEB3DEV

Cover image for Como estimar o gás e o custo (em dólares americanos) para implantar contratos e funções
Diogo Jorge
Diogo Jorge

Posted on

Como estimar o gás e o custo (em dólares americanos) para implantar contratos e funções

TL;DR (“Too Long; Don’t Read” - Resumo)

Neste tutorial, vamos explorar como aproveitar o pacote hardhat-gas-reporter para calcular com precisão o custo do gás para implantar um contrato inteligente ou chamar funções específicas, como Mint ou Transfer, com facilidade. Além disso, aprenderemos como converter esses custos do gás em moedas fiduciárias, como USD ou INR, permitindo calcular as implicações financeiras exatas de suas operações.

Esse conhecimento é particularmente valioso se você estiver se preparando para lançar seu projeto na rede principal e precisar de projeções orçamentárias detalhadas que incluam estratégias de otimização para uma execução eficiente. Seguindo as etapas descritas neste tutorial, você pode avaliar com segurança o desempenho e o custo do seu contrato inteligente, garantindo o lançamento bem-sucedido do seu projeto.

Image description

Vamos começar.

Como desenvolvedor do Solidity, é crucial não apenas focar na auditoria do seu contrato inteligente, mas também em otimizá-lo para uso de gás. Um contrato mal otimizado pode resultar em custos inesperados para os usuários na hora de chamar funções, o que pode gerar frustração e decepção.

Para evitar isto, é importante ter uma boa compreensão dos custos do gás envolvidos na implementação de um contrato e na chamada das suas funções. Além disso, ao preparar o lançamento do seu contrato de produção, você deve considerar o orçamento de gás disponível.

A eficiência das habilidades de um desenvolvedor é frequentemente medida pela sua capacidade de redigir contratos que utilizam a menor quantidade de gás possível. Ao minimizar o uso de gás, você pode aumentar a velocidade do contrato e reduzir o custo geral de uso, o que proporcionará uma melhor experiência para os usuários.

Pré-requisitos:

I. Familiarizado com contratos inteligentes do Solidity

II. Estrutura prática e rígida

III. Compreensão básica ao escrever casos de teste de Chai Mocha

Então, neste tópico vou compartilhar sobre um pacote npm chamado “hardhat-gas-reporter”. Segundo a fonte,

Um relatório do Mocha para suítes de testes Ethereum:

  • Uso de gás por teste de unidade.
  • Métricas para chamadas e implantações de métodos.
  • Custos em moeda nacional para implantar e usar seu sistema de contrato.

Então você precisa configurar a estrutura Hardhat para este tópico. Iremos considerar o contrato_ lock.sol_ e seu caso de teste já estão escritos por padrão.

O contrato inteligente Lock.sol ficará assim:

Image description

Lock.sol

Agora vamos entender o passo a passo para calcular o gás necessário para implantar seu contrato e para chamar outras funções.

  1. Você precisa instalar o pacote:
npm install hardhat-gas-reporter --save-dev
Enter fullscreen mode Exit fullscreen mode
  1. Agora você precisa criar chaves API no site CoinMarketCap. Você pode visitar este link para criar API. Uma vez logado, copie a API.

  2. Para aumentar a segurança do seu código, é recomendado criar um arquivo .env separado e armazenar sua chave CoinMarketApi lá. Dessa forma, você pode fazer referência à chave em seu arquivo hardhat.config.js _usando a variável _process.env.COINMARKETCAP_API_KEY. Alternativamente, você pode colar diretamente sua chave API no campo coinmarketcap.

  3. No arquivo hardhat.config.js, vá para a seção module.exports _e adicione a seção _gasReporter conforme mostrado na imagem abaixo:

Image description

OBSERVAÇÃO:

Se você não especificar um campo de token, o relatório será gerado em ETH por padrão. No entanto, você tem a opção de gerar relatórios para outros tokens especificando o nome do campo do token, como MATIC, BNB e assim por diante. Isso permite alternar facilmente entre diferentes tokens e visualizar seus respectivos relatórios.

Image description

  1. Para gerar um relatório, você precisará escrever casos de teste que executarão as funções e implantação do seu contrato inteligente. Para isso, recomendo usar Chai Mocha em JavaScript, que é um framework de testes amplamente utilizado. Ao executar os casos de teste, o relatório será gerado automaticamente em formato de arquivo txt para fácil visualização e análise.

Image description

Caso de teste Chai Mocha do Lock.sol

Para calcular com precisão o preço e o gás apropriados para o seu contrato inteligente, é crucial incluir uma gama diversificada de casos de teste que cubram todas as funções importantes.

Image description
arquivo de texto gerado

Image description
Relatório de gás ETH para Lock.sol

Image description
Relatório de gás Matic para Lock.sol

Como você pode ver acima, para implantar o Lock.sol na rede Ethereum você precisa pagar 15,98 USD, enquanto na rede Matic custa apenas 0,01 USD. Da mesma forma, a função de ‘retirada’ custará 1,67 USD no Ethereum e quase 0 na rede Matic.

Portanto, reserve um tempo para planejar e otimizar cuidadosamente seu contrato inteligente para garantir que ele seja eficiente em termos de gás e econômico. Isso não apenas beneficiará seus usuários, mas também aumentará sua reputação como um desenvolvedor Solidity qualificado e experiente.

Siga me e eu te sigo de volta ;)

Twitter: 0x_Abhijeet

LinkedIn

Discord: #Abhijeet9181

Obrigado :)

Este artigo foi escrito por Abhijeet Sinha e traduzido por Diogo Jorge. O artigo original pode ser encontrado aqui.

Top comments (0)