Study
Foundry

Konfigurasi Profil foundry.toml

Penjelasan

foundry.toml mendukung banyak profil sekaligus dalam satu file, masing-masing diawali `[profile.<nama>]`. Profil `default` selalu dipakai kecuali kita mengganti lewat environment variable `FOUNDRY_PROFILE`. Ini berguna untuk memisahkan konfigurasi antara development lokal, CI, dan production — misalnya optimizer runs berbeda, atau jumlah fuzz run yang lebih tinggi khusus saat CI. Selain profil, foundry.toml juga bisa mendefinisikan RPC endpoint bernama (`[rpc_endpoints]`) dan Etherscan API key per chain (`[etherscan]`), sehingga perintah seperti `forge script` bisa memakai alias singkat (`--rpc-url sepolia`) alih-alih menulis URL panjang berulang kali.

Contoh Konsep

# foundry.toml
[profile.default]
src = "src"
optimizer = true
optimizer_runs = 200

[profile.ci]
fuzz = { runs = 5000 }
verbosity = 4

[rpc_endpoints]
sepolia = "${SEPOLIA_RPC_URL}"
mainnet = "${MAINNET_RPC_URL}"

[etherscan]
sepolia = { key = "${ETHERSCAN_API_KEY}" }

Praktikum

Tambahkan profil bernama 'ci' di foundry.toml dengan jumlah fuzz run 10000, lalu jalankan test memakai profil itu lewat environment variable FOUNDRY_PROFILE.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

Gunakan variabel environment `${VAR_NAME}` di dalam foundry.toml untuk RPC URL dan API key, jangan hardcode nilai sensitif langsung di file yang ter-commit ke git.