Study
Foundry

Tugas Akhir

Penjelasan

Saatnya menggabungkan seluruh materi Foundry yang sudah dipelajari — dari inisialisasi project, penulisan contract, unit test dan fuzz test dalam Solidity, penggunaan cheatcode, hingga deployment lewat forge script dan verifikasi di block explorer. Tugas ini mensimulasikan alur kerja nyata pengembangan smart contract memakai toolchain Foundry dari nol sampai live di testnet. Kerjakan secara bertahap: mulai dari `forge init`, tulis contract, tulis test (unit + fuzz + minimal satu cheatcode), jalankan gas report, lalu deploy ke local anvil sebelum akhirnya mencoba ke testnet publik dengan environment variable yang aman.

Tugas

Buat project Foundry baru bernama 'simple_bank'. Tulis contract SimpleBank dengan fungsi deposit() (payable), withdraw(uint256 amount) yang hanya bisa ditarik oleh depositor sendiri, dan getBalance(address) view. Tulis test yang mencakup: (1) unit test deposit dan withdraw normal, (2) fuzz test bahwa withdraw tidak pernah membuat saldo negatif, (3) test vm.expectRevert saat withdraw melebihi saldo, (4) test vm.prank untuk memastikan user lain tidak bisa menarik saldo user lain. Jalankan forge test --gas-report, lalu buat script deployment dan deploy ke anvil lokal memakai forge script.

Editor Latihan

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

Tips

Kerjakan test dulu sebelum deployment (mirip TDD) — dengan forge test yang hijau semua, kamu jauh lebih percaya diri saat akhirnya menjalankan forge script --broadcast ke testnet sungguhan.