1
resposta

[Dúvida] Não consigo realizar deploy do token na testnet

Ao executar o comando forge create --rpc-url https://rpc.ankr.com/polygon_amoy/$API_KEY --private-key $PRIVATE_KEY src/MeuPrimeiroToken.sol:MyToken --constructor-args 10000000 --broadcast, surge a seguinte mensagem:

Warning: Dry run enabled, not broadcasting transaction

Warning: To broadcast this transaction, add --broadcast to the previous command. See forge create --help for more

Note que, conforme mensagem acima, eu adicionei o --broadcast no final do comando, mas independentemente disso, o forge não realiza o deploy na testnet.

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta

E ai Darlan.
Beleza?
Vamos tentar achar uma soluçao para este problema:
Pelo que você descreveu, mesmo utilizando o parâmetro --broadcast, o comando forge create ainda está executando em modo "dry run", ou seja, ele simula a transação mas não a envia de fato para a blockchain.
Vamos revisar o que pode estar acontecendo e como resolver:
Aqui está a forma correta de rodar o comando forge create com deploy real (ou seja, broadcasting):

forge create \
  --rpc-url https://rpc.ankr.com/polygon_amoy/YOUR_API_KEY \
  --private-key YOUR_PRIVATE_KEY \
  src/MeuPrimeiroToken.sol:MyToken \
  --constructor-args 10000000 \
  --broadcast \
  --legacy

Possíveis causas:
Omitindo o --legacy:
* A rede Polygon (incluindo a testnet Amoy) ainda não suporta EIP-1559 completamente, e o Foundry usa esse tipo de transação por padrão.
Solução:

  • Adicione --legacy ao seu comando para enviar transações legadas (tipo 0), compatíveis com a Polygon.
    Variáveis de ambiente não estão sendo resolvidas:
  • Certifique-se de que você está substituindo corretamente:
    • $API_KEY → sua chave da Ankr (sem o símbolo $)
    • $PRIVATE_KEY → sua chave privada (sem o símbolo $)
      Se você quiser usar variáveis de ambiente, defina-as antes com:
export API_KEY=suachavedaankr
export PRIVATE_KEY=suachaveprivada

E use no comando:

forge create \
  --rpc-url https://rpc.ankr.com/polygon_amoy/$API_KEY \
  --private-key $PRIVATE_KEY \
  ...

Configuração do Foundry (foundry.toml):

  • Se o seu projeto tiver um foundry.toml, ele pode estar sobrescrevendo alguma configuração.
  • Certifique-se de que não há nenhuma configuração simulate = true ou algo semelhante.
    Exemplo funcional (substitua seus dados reais):
forge create \
  --rpc-url https://rpc.ankr.com/polygon_amoy/YOUR_API_KEY \
  --private-key 0xyoursecretprivatekey \
  src/MeuPrimeiroToken.sol:MyToken \
  --constructor-args 10000000 \
  --broadcast \
  --legacy

Teste com --verify (opcional):

  • Você pode verificar também o contrato no Polygonscan (se suportado), usando a flag --verify, mas precisa configurar a API Key do Polygonscan em .env.

Analisa ai e me envie um feedback.
Bons estudos.