Skip to main content

Foundry Workshop: Testing & Deploy EduLoan

Tentang Workshop Iniโ€‹

Level Up: Dari Remix ke Foundry!

Setelah berhasil membuat EduLoan di Remix, saatnya naik level! Workshop ini akan mengajarkan cara professional developers membangun, testing, dan deploy smart contract menggunakan Foundry.

โš’๏ธ Foundry๐Ÿงช Testingโšก Gas Optimization๐Ÿš€ Mantle Sepolia

๐ŸŽฏ Tujuan Pembelajaranโ€‹

Setelah menyelesaikan workshop ini, Anda akan mampu:

  1. Setup Foundry - Install dan konfigurasi Foundry di Windows/Mac
  2. Project Structure - Memahami struktur project Foundry
  3. Unit Testing - Menulis comprehensive tests dalam Solidity (bukan JavaScript!)
  4. Fuzz Testing - Menemukan edge cases dengan random inputs
  5. Gas Optimization - Teknik optimasi gas dengan measurement akurat
  6. Deployment - Deploy EduLoan ke Mantle Sepolia dengan script

๐Ÿ’ก Kenapa Foundry?โ€‹

Analogi: Remix vs Foundryโ€‹

Remix IDE (Yang Sudah Anda Pakai):

๐ŸŽจ Seperti menggambar dengan pensil dan kertas
- Mudah untuk belajar
- Bagus untuk eksperimen cepat
- Terbatas untuk project besar
- Testing manual satu per satu

Foundry (Professional Tool):

๐Ÿญ Seperti pabrik dengan mesin otomatis
- Testing otomatis ratusan kali per detik
- Gas report akurat
- Deployment script reusable
- Industry standard untuk DeFi protocols

Perbandingan Langsungโ€‹

FiturRemixFoundry
TestingManual klik satu-satuOtomatis 256+ test cases
Gas ReportLihat per transaksiReport lengkap semua fungsi
Fuzz TestingโŒ Tidak adaโœ… Built-in
DeploymentManual via UIScript otomatis
SpeedTergantung browserโšก Super cepat (native Rust)
ProfessionalLearning toolProduction-grade

Real World Usageโ€‹

Protocol yang pakai Foundry:

  • Uniswap V4
  • Aave V3
  • Compound
  • OpenSea Seaport
  • Lido
  • ...dan ratusan protocol DeFi lainnya!

Takeaway: Belajar Foundry = Skill yang dicari industry! ๐ŸŽฏ


๐Ÿ“‹ Prerequisitesโ€‹

Yang Harus Sudah Dipahami:โ€‹

โœ… Dari Mantle Co-Learning Camp:

  • Solidity basics (tipe data, struct, mapping, enum)
  • Smart contract structure
  • Events dan modifiers
  • Payable functions
  • EduLoan contract (sudah dibuat di challenge sebelumnya)

โœ… Command Line Basics:

  • Familiar dengan terminal/command prompt
  • Navigasi folder (cd, ls)
  • Basic git commands

Tools yang Dibutuhkan:โ€‹

โœ… Development:

  • VS Code atau code editor pilihan
  • Git untuk version control
  • Terminal (built-in di OS)

โœ… Blockchain:

  • MetaMask wallet
  • Mantle Sepolia MNT dari faucet

๐Ÿ’ก TIDAK PERLU Node.js! Foundry berbasis Rust, tidak butuh npm!


๐Ÿ“š Struktur Workshopโ€‹

Workshop dibagi menjadi 4 bagian yang fokus pada EduLoan smart contract:

๐Ÿ“– Part 1: Instalasi Foundryโ€‹

  • Apa itu Foundry? Foundry Suite (forge, cast, anvil, chisel)
  • Instalasi di Windows (Git Bash / WSL)
  • Instalasi di Mac (Homebrew)
  • Setup project pertama
  • Basic commands

๐Ÿ“– Part 2: Setup EduLoan Projectโ€‹

  • Membuat Foundry project untuk EduLoan
  • Memahami EduLoan contract
  • Compile dan inspect contract
  • Testing manual dengan Chisel

๐Ÿ“– Part 3: Testing EduLoanโ€‹

  • Filosofi testing smart contract
  • Unit tests untuk semua fungsi EduLoan
  • Fuzz testing untuk edge cases
  • Test coverage measurement
  • Testing best practices

๐Ÿ“– Part 4: Gas Optimization & Deploymentโ€‹

  • Gas optimization techniques
  • Membandingkan before/after
  • Deploy ke Mantle Sepolia
  • Verifikasi contract
  • Production checklist

๐Ÿ› ๏ธ Tech Stackโ€‹

Foundry Suite:โ€‹

ToolFungsi
forgeBuild, test, deploy smart contracts
castInteract dengan contracts & blockchain
anvilLocal Ethereum node untuk testing
chiselSolidity REPL untuk eksperimen cepat

Development:โ€‹

  • Solidity ^0.8.30 - Smart contract language
  • VS Code - Code editor dengan Solidity extension
  • Git - Version control

Network:โ€‹


๐ŸŽฎ Project Yang Akan Dibangunโ€‹

EduLoan Contract - Sistem pinjaman pendidikan dengan fitur lengkap:

Core Features:โ€‹

  • ๐Ÿ“ Apply Loan - Mahasiswa mengajukan pinjaman
  • โœ… Approve/Reject - Admin review pengajuan
  • ๐Ÿ’ฐ Disburse - Pencairan dana ke borrower
  • ๐Ÿ’ณ Make Payment - Pembayaran cicilan
  • โฐ Check Default - Cek status gagal bayar

Testing Coverage:โ€‹

  • โœ… Happy path untuk semua fungsi
  • โœ… Revert cases (error handling)
  • โœ… Edge cases dengan fuzz testing
  • โœ… Access control testing
  • โœ… Time-based logic testing

Gas Optimization:โ€‹

  • โœ… Before/after comparison
  • โœ… Optimization techniques applied
  • โœ… Gas snapshot tracking

๐Ÿ“… Alur Pembelajaranโ€‹

Part 1: Setup Foundation
โ†“
Install Foundry
Setup VS Code
Create first project
โ†“
Part 2: Understand EduLoan
โ†“
Setup EduLoan project
Compile & inspect
Manual testing dengan Chisel
โ†“
Part 3: Write Tests
โ†“
Unit tests semua fungsi
Fuzz testing
Coverage 100%
โ†“
Part 4: Optimize & Deploy
โ†“
Gas optimization
Deploy ke Mantle Sepolia
Verify contract
โ†“
๐ŸŽ‰ Production Ready!

๐Ÿ’ก Tips Belajarโ€‹

  1. Ikuti urutan Part 1 โ†’ 4 - Jangan skip, setiap part membangun dari sebelumnya
  2. Ketik sendiri, jangan copy-paste - Muscle memory penting untuk coding
  3. Baca error messages - Foundry memberikan error yang informatif
  4. Eksperimen dengan Chisel - Coba variasi untuk memahami lebih dalam
  5. Commit setiap milestone - Version control adalah best practice

๐Ÿ”— Resourcesโ€‹

Mantle Network:โ€‹

๐Ÿ”ง Mantle Sepolia Testnet:

Network Details:

Documentation:โ€‹

Community:โ€‹


๐Ÿš€ Ready to Start?โ€‹

Mari tingkatkan skill Solidity Anda ke level professional!

๐Ÿ“– Part 1: Instalasi Foundry โ†’


#BuildWithFoundry | #MantleNetwork | #EthereumJakarta