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.
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:
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.
- Você precisa instalar o pacote:
npm install hardhat-gas-reporter --save-dev
Agora você precisa criar chaves API no site CoinMarketCap. Você pode visitar este link para criar API. Uma vez logado, copie a API.
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.
No arquivo hardhat.config.js, vá para a seção module.exports _e adicione a seção _gasReporter conforme mostrado na imagem abaixo:
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.
- 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.
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.
Relatório de gás ETH para Lock.sol
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
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)