Implantação de um contrato em uma rede pública

Vamos descrever esse procedimento utilizando a rede Sepolia e o acesso por meio do Alchemy.

Os passos 1 a 5 que seguimos no exemplo anterior são os mesmos neste caso, pois precisamos partir de um contrato já compilado para então implantá-lo na Sepolia.

1. Definir variáveis de ambiente

Precisamos configurar as seguintes variáveis:

  • A chave da API do Alchemy, que permitirá o acesso ao nó Sepolia do Alchemy.

  • A chave privada da nossa carteira em Sepolia, necessária para assinar a transação de criação do contrato.

  • A chave da API do Etherscan, que permitirá publicar e verificar o contrato. Para obter essa chave, acesse o site do Etherscan, crie sua conta (caso ainda não tenha uma) e gere sua chave na seção API Keys.

Normalmente usaríamos um arquivo .env para armazenar essas informações, mas neste exemplo usaremos tarefas de configuração de variáveis no novo escopo vars do Hardhat. Se quiser se aprofundar no assunto, leia este este artículo.

Nosso arquivo hardhat.config.js deve conter as seguintes informações:

require("@nomicfoundation/hardhat-toolbox");
const { vars } = require("hardhat/config");

const ALCHEMY_API_KEY = vars.get("ALCHEMY_API_KEY");
const SEPOLIA_PRIVATE_KEY = vars.get("SEPOLIA_PRIVATE_KEY");
const ETHERSCAN_API_KEY = vars.get("ETHERSCAN_API_KEY");

module.exports = {
  solidity: "0.8.24",
  networks: {
    sepolia: {
      url: `https://eth-sepolia.g.alchemy.com/v2/${ALCHEMY_API_KEY}`,
      accounts: [SEPOLIA_PRIVATE_KEY],
    },
  },
  etherscan: {
    apiKey: {
      sepolia: ETHERSCAN_API_KEY,
    },
  },
};

Aqui, indicamos que vamos usar as tarefas de vars para gerenciar variáveis de ambiente. Utilizamos vars.get para recuperar as variáveis ALCHEMY_API_KEY, SEPOLIA_PRIVATE_KEY e ETHERSCAN_API_KEY.

Agora devemos declarar os valores dessas variáveis usando o comando vars set no terminal:

a) Definir a chave da API do Alchemy

npx hardhat vars set ALCHEMY_API_KEY

Isso solicitará que você insira a chave da API do Alchemy.

b) Definir a chave privada

npx hardhat vars set SEPOLIA_PRIVATE_KEY

Isso solicitará que você insira a chave privada da sua carteira.

c) Definir a chave da API do Etherscan

npx hardhat vars set ETHERSCAN_API_KEY

Isso solicitará que você insira a chave da API do Etherscan.

Uma vez definidas, essas variáveis são armazenadas fora do repositório para maior segurança.

Para ver todas as variáveis de ambiente do seu projeto:

npx hardhat vars setup

Para ver apenas as variáveis já definidas:

npx hardhat vars list

2. Implantar o contrato

Para implantar o contrato na Sepolia, execute o seguinte comando:

npx hardhat ignition deploy ignition/modules/Greeter.js --network sepolia --verify

Você receberá como resposta o endereço do contrato e a URL do contrato verificado no Etherscan.

🙌🏻 Parabéns! Você implantou seu primeiro contrato usando o Hardhat na rede pública.

$ npx hardhat vars delete SEPOLIA_PRIVATE_KEY

Last updated