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.
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.