Skip to main content

Criando o Hello World em Solidity

Vamos criar nosso primeiro contrato inteligente em Solidity usando o Foundry: um simples "Hello World", onde aprenderemos a estrutura básica de um smart contract, como declarar variáveis, funções e inicializações.


Passo 1: Criar a pasta do projeto

Abra o terminal e execute os seguintes comandos:

mkdir hello-world
cd hello-world

Passo 2: Passo 2: Inicializar o projeto com Foundry

Dentro da pasta, inicialize o projeto:

forge init

Isso criará a seguinte estrutura de pastas: hello-world/
├── .github/
├── lib/
├── script/
├── src/
├── test/
├── .gitignore
├── .gitmodules
├── foundry.toml
└── README.md

Passo 3: Limpeza da estrutura

Para este projeto básico, podemos apagar as pastas que não serão usadas agora:

rm -rf script test

Passo 4: Criar o contrato HelloWorld

  1. Acesse a pasta src/

  2. Dentro dela, renomeie o arquivo Counter.sol para HelloWorld.sol

  3. Apague o conteúdo existente e escreva o seguinte:

// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.13;

contract HelloWorld {
string public greeting;

constructor() {
greeting = "Hello, World!";
}

function setGreeting(string memory _newGreeting) public {
greeting = _newGreeting;
}

function getGreeting() public view returns (string memory) {
return greeting;
}

O que está acontecendo aqui?

LinhaDescrição
SPDX-LicenseDeclaração padrão de licença de código-fonte
pragmaDefine a versão do compilador Solidity
contract HelloWorldInício do contrato inteligente
greetingVariável pública de texto
constructor()Função chamada na criação do contrato
setGreeting()Permite atualizar o texto
getGreeting()Permite ler o texto atual

Passo 5: Compilar o contrato

No terminal, ainda dentro da pasta do projeto, rode:

forge build

Se tudo estiver certo, você verá algo como:

[⠊] Compiling...
[⠒] Compiling 1 files with Solc 0.8.29
[⠢] Solc 0.8.29 finished in 29.78ms
Compiler run successful!

Pronto!

Você criou com sucesso seu primeiro contrato inteligente em Solidity usando Foundry!
Agora já pode explorar testes, deploy e interação com sua DApp nas próximas etapas.