Study
Hardhat

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.

Editor Latihan

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.