Hardhat Ignition (Deployment Module Modern)
Penjelasan
Hardhat Ignition adalah sistem deployment generasi baru yang direkomendasikan Hardhat, menggantikan pendekatan script imperatif dengan pendekatan deklaratif berbasis "module". Alih-alih menulis langkah demi langkah proses deploy, kita mendefinisikan module yang mendeskripsikan contract apa saja yang perlu di-deploy dan bagaimana mereka saling terhubung — Ignition yang mengurus urutan eksekusi, retry otomatis jika gagal, dan resume dari titik terakhir kalau proses terputus. Module ditulis di folder `ignition/modules/`, menggunakan `buildModule()` dari `@nomicfoundation/hardhat-ignition/modules`. Deployment dijalankan dengan `npx hardhat ignition deploy`, dan Ignition otomatis menyimpan journal (log) tiap transaksi sehingga proses deploy idempotent — aman dijalankan ulang tanpa deploy ganda.
Contoh Konsep
// ignition/modules/Counter.js
const { buildModule } = require("@nomicfoundation/hardhat-ignition/modules");
module.exports = buildModule("CounterModule", (m) => {
const counter = m.contract("Counter");
m.call(counter, "setNumber", [10]);
return { counter };
});
Praktikum
Buat Ignition module untuk contract SimpleBank (tanpa constructor argument), lalu deploy ke Hardhat Network lokal memakai npx hardhat ignition deploy.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Ignition menyimpan riwayat deployment per network di folder `ignition/deployments/` — jangan hapus folder ini kalau ingin bisa upgrade/resume deployment yang sama di masa depan.