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.