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.
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.