Pré-requisitos
Preparação do Contrato
O contrato de exemplo a seguir será usado ao longo deste guia:
Foundry é um toolkit rápido baseado em Rust para desenvolvimento Ethereum.
-
Instale o Foundry:
Talvez seja necessário fazer source do seu arquivo
.bashrc ou .zshrc.
-
Configure um novo projeto Foundry:
-
Atualize
foundry.toml com as configurações da Plasma testnet:
-
Crie um arquivo
.env na raiz do projeto:
-
Carregue as variáveis de ambiente:
-
Salve o código do contrato como
src/SimpleStorage.sol e, em seguida, implante:
O Foundry exibirá o hash da transação de implantação e o endereço do contrato:
-
Teste seu contrato implantado usando a ferramenta cast do Foundry. Primeiro, leia os dados armazenados:
-
Em seguida, atualize os dados e leia novamente:
Isso deverá gerar uma saída semelhante a:
Hardhat é um framework de desenvolvimento completo com rico suporte a plugins.
- Garanta que você tenha o seguinte:
- Node.js 20+ (necessário para compatibilidade com versões modernas do Hardhat)
- Familiaridade com desenvolvimento Ethereum
- Uma wallet com tokens da testnet (consulte detalhes da chain testnet)
Node.js 18 e anteriores não são mais suportados pelo Hardhat e podem causar problemas de compatibilidade com módulos ES.
-
Verifique a versão do Node.js:
Se você estiver usando Node.js 18 ou anterior, atualize para Node.js 20+:
-
Inicialize um novo projeto Hardhat:
Se encontrar problemas de compatibilidade, consulte a documentação do Hardhat para as versões suportadas mais recentes.
Escolha Create a JavaScript project quando solicitado.
-
Atualize
hardhat.config.js:
-
Crie um arquivo
.env na raiz do projeto:
-
Crie o diretório scripts e o script de implantação:
-
Crie
scripts/deploy.js:
-
Salve o código do contrato como
contracts/SimpleStorage.sol e, em seguida, implante:
-
Pronto!
Ethers.js fornece um fluxo de implantação mínimo e programático.
-
Crie um novo projeto:
-
Crie um arquivo
.env na raiz do projeto:
-
Crie
compile.js para compilar seu contrato Solidity:
-
Salve seu contrato como
SimpleStorage.sol e, em seguida, compile:
Isso deverá gerar:
-
Crie
deploy.js:
-
Execute o script de implantação:
Isso deverá gerar uma saída semelhante a:
Verifique a Implantação
Após implantar com qualquer um dos métodos acima, verifique a implantação do seu contrato.
Solução de Problemas
Se encontrar erros como Error [ERR_REQUIRE_ESM]: require() of ES Module, isso geralmente significa:
-
Versão do Node.js muito antiga: Atualize para Node.js 20+ conforme mencionado nos pré-requisitos
-
Incompatibilidade de versão de dependência: Se atualizar o Node.js não for possível, você pode fazer downgrade da dependência problemática:
Avisos de Versão do Node.js
Se você ver avisos sobre versões não suportadas do Node.js:
Atualize para Node.js 20+ seguindo as etapas na seção de pré-requisitos.
Fundos Insuficientes
Garanta que sua wallet tenha tokens da testnet suficientes. Visite um faucet da testnet.
Configuração de Rede Incorreta
Verifique se a configuração de rede corresponde aos detalhes da chain testnet.
Falha na Estimativa de Gas
Defina limites de gas explícitos em sua configuração de implantação: