Study
Hardhat

Script Deployment Dasar (scripts/deploy.js)

Penjelasan

Deployment di Hardhat secara tradisional dilakukan lewat script JavaScript di folder `scripts/`, memakai library ethers.js yang terintegrasi lewat plugin `hardhat-ethers`. Pola umum: ambil contract factory dengan `ethers.getContractFactory()`, panggil `.deploy()` dengan argumen constructor jika ada, lalu tunggu deployment selesai dengan `waitForDeployment()`. Script dijalankan lewat `npx hardhat run scripts/deploy.js --network <nama>`, di mana nama network merujuk pada konfigurasi di `networks` pada hardhat.config.js. Tanpa flag `--network`, script otomatis berjalan di Hardhat Network in-memory sementara (state hilang setelah script selesai).

Contoh Konsep

// scripts/deploy.js
const { ethers } = require("hardhat");

async function main() {
  const Counter = await ethers.getContractFactory("Counter");
  const counter = await Counter.deploy();
  await counter.waitForDeployment();

  console.log("Counter deployed to:", await counter.getAddress());
}

main().catch((error) => {
  console.error(error);
  process.exitCode = 1;
});

Praktikum

Jalankan script deploy.js ke local Hardhat Network yang persisten (npx hardhat node) di terminal terpisah, lalu deploy dengan --network localhost.

Editor Latihan

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

Tips

Gunakan `npx hardhat node` (bukan hanya menjalankan script tanpa flag --network) kalau ingin state blockchain tetap ada setelah script selesai, misal untuk interaksi manual berikutnya.