Study
← Semua Kategori

Foundry

Instalasi Foundry & forge init

Cara memasang toolchain Foundry lewat foundryup dan membuat project baru dengan forge init.

Struktur Project Foundry

Mengenal foundry.toml dan folder src/, test/, script/ dalam project Foundry.

Forge Build & Kompilasi

Mengompilasi smart contract dengan forge build dan memahami output artifact.

Menulis Test dalam Solidity dengan forge-std

Menulis unit test Solidity menggunakan Test contract dari forge-std dan assertEq.

Cheatcodes Dasar (vm.prank, vm.deal, vm.expectRevert)

Memanipulasi state EVM saat testing lewat cheatcode vm.prank, vm.deal, dan vm.expectRevert.

Fuzz Testing Otomatis

Menulis fuzz test yang otomatis dijalankan dengan input acak oleh Foundry.

Forge Script untuk Deployment

Menulis dan menjalankan script deployment dengan forge script.

Anvil sebagai Local Node

Menjalankan blockchain lokal cepat dengan anvil untuk development dan testing manual.

Cast untuk Interaksi CLI

Berinteraksi cepat dengan blockchain dan contract lewat perintah cast.

Gas Report dengan forge test --gas-report

Menganalisis konsumsi gas tiap fungsi contract lewat laporan gas Foundry.

Forking Mainnet untuk Testing (vm.createFork)

Menguji contract terhadap state mainnet nyata menggunakan cheatcode vm.createFork.

Invariant Testing Dasar

Menguji properti yang harus selalu benar pada contract lewat invariant testing.

Remapping Dependency (lib/ via forge install)

Mengelola dependency eksternal dengan forge install dan konfigurasi remapping.

Environment Variable & .env di Script

Membaca private key dan API key dari file .env dalam script Foundry.

Verifikasi Contract (forge verify-contract)

Memverifikasi source code contract yang sudah di-deploy di block explorer lewat forge verify-contract.

Debugging dengan forge debug/traces

Menelusuri eksekusi transaksi step-by-step lewat forge debug dan call traces.

Konfigurasi Profil foundry.toml

Mengatur beberapa profil konfigurasi berbeda dalam satu foundry.toml.

Integrasi CI Dasar

Menjalankan forge build dan forge test otomatis lewat GitHub Actions.

Tugas Akhir

Proyek capstone: membangun, menguji, dan men-deploy smart contract lengkap dengan workflow Foundry.