Study
Foundry

Forge Script untuk Deployment

Penjelasan

Forge script adalah cara Foundry melakukan deployment: file Solidity berakhiran `.s.sol` di folder `script/`, meng-inherit contract `Script` dari forge-std, dan membungkus logika deployment di dalam `vm.startBroadcast()` / `vm.stopBroadcast()`. Semua pemanggilan di antara kedua fungsi itu akan benar-benar dikirim sebagai transaksi ke network saat dijalankan. Script dijalankan lewat `forge script <path> --rpc-url <url> --broadcast`. Tanpa flag `--broadcast`, Forge hanya melakukan dry-run (simulasi) tanpa mengirim transaksi sungguhan — cara aman untuk memastikan script berjalan benar sebelum deploy ke network asli.

Contoh Konsep

// script/Counter.s.sol
import "forge-std/Script.sol";
import "../src/Counter.sol";

contract CounterScript is Script {
    function run() external {
        vm.startBroadcast();

        Counter counter = new Counter();
        counter.setNumber(10);

        vm.stopBroadcast();
    }
}

Praktikum

Jalankan script CounterScript ke local node anvil (http://127.0.0.1:8545) dengan flag --broadcast.

Editor Latihan

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

Tips

Selalu jalankan script tanpa `--broadcast` dulu (dry-run) untuk melihat simulasi gas dan hasil, sebelum menambahkan flag itu ke deployment sungguhan.