Skip to content

pietro-lopes/foundry-lift-aula04

Repository files navigation

Curso Defi - Lift Learning - Aula 04

Exercícios da Aula 04 usando o framework de smart contracts Foundry!

Iniciando

Requisitos

Por favor instale o seguinte:

  • Git
    • Você saberá que está pronto quando der git --version e aparecer por exemplo git version 2.34.1
  • Instalação manual do Foundry
    • Clique aqui, vá em Assets, baixe foundry_nightly_win32_amd64.zip para Windows ou outro caso seja Linux/Mac
    • Crie uma pasta por exemplo em C:\Users\Usuário\foundry\ e extraia os arquivos baixados para essa pasta
    • Adicione essa pasta no PATH das Variáveis de Ambiente (Windows)
      • Abra o executar (Windows + R) rode o comando sysdm.cpl
      • Vá em Avançado -> Variáveis de Ambiente
      • Selecione Path (da área de cima, não embaixo), clique em Editar...
      • Clique em Novo, cole o caminho de onde estão os executáveis do Foundry, por exemplo C:\Users\Usuário\foundry\
      • Dê OK em todas as janelas
    • Abra o terminal e digite forge --version e verifique se deu algo parecido com forge 0.2.0 (e385736 2022-08-13T00:11:42.087119284Z

Baixando repositório da aula

  • Baixe o repositório:
git clone https://github.com/pietro-lopes/foundry-lift-aula04
cd foundry-lift-aula04
git submodule update --init --recursive
  • Abra a pasta da aula no seu editor, por exemplo, VSCode.

Teste de smart contract

Abra o terminal do VSCode e digite o seguinte comando para testar todos os contratos:

forge test

Dando deploy nos contratos

Setup

Abra o arquivo .env.example. Você precisará atualizar as seguintes variáveis:

  • PRIVATE_KEY: Uma chave privada da sua carteira.
  • POLYGONSCAN_API_KEY: Se você for verificar o contrato no polygonscan.

Renomeie pra .env.example para .env

Deploy

Carregando variáveis de ambiente

Para dar deploy e precisamos carregas as variáveis que atualizamos no .env:

  • No Linux use source .env
  • No Windows
    • cmd
      • @echo off; for /F "tokens=*" %i in (.env) do set %i
    • PowerShell
      • foreach ($line in Get-Content .env) { $array = $line.Split("="); New-Item -Force -Path Env:$($array[0]) -Value $($array[1].Trim('"').Trim("'")) | Out-Null}

Para dar deploy e verificar na testnet da Polygon Mumbai por exemplo, use o seguinte comando: Não esqueça de carregar as variáveis que estão em .env Sempre que você fechar o terminal, você terá que recarregar as variáveis novamente.

  • No terminal do Linux use $NOME_DA_VARIAVEL

    forge create --verify --gas-price 60gwei --chain polygon-mumbai --rpc-url $MUMBAI_RPC --private-key $PRIVATE_KEY --etherscan-api-key $POLYGONSCAN_API_KEY src/T03TokenOwner.sol:T03TokenOwner

  • No PowerShell do Windows use $Env:NOME_DA_VARIAVEL

    forge create --verify --gas-price 60gwei --chain polygon-mumbai --rpc-url $Env:MUMBAI_RPC --private-key $Env:PRIVATE_KEY --etherscan-api-key $Env:POLYGONSCAN_API_KEY src/T03TokenOwner.sol:T03TokenOwner

  • No CMD do Windows use %NOME_DA_VARIAVEL%

    forge create --verify --gas-price 60gwei --chain polygon-mumbai --rpc-url %MUMBAI_RPC% --private-key %PRIVATE_KEY% --etherscan-api-key %POLYGONSCAN_API_KEY% src/T03TokenOwner.sol:T03TokenOwner

Edite onde for necessário, por exemplo o --gas-price e o contrato src/<contrato>.sol:<contrato> e adicione --constructor-args <arg1> <arg2> <arg3> caso seu contrato tenha construtor que precise de argumentos para inicialização

Contribuindo

Contribuições são sempre bem-vindas! Abra um PR or um issue!

Recursos

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published