HDWalletProvider untuk Deploy ke Testnet
Penjelasan
Truffle secara default tidak tahu cara menandatangani transaksi ke network publik — untuk itu dibutuhkan package `@truffle/hdwallet-provider`, yang membungkus mnemonic (seed phrase) atau private key menjadi provider Web3 yang bisa menandatangani transaksi sekaligus terhubung ke RPC endpoint (misal Infura atau Alchemy). Mnemonic atau private key dibaca dari environment variable (lewat package `dotenv`), tidak pernah ditulis langsung di truffle-config.js. HDWalletProvider bisa dikonfigurasi memakai banyak akun sekaligus dari satu mnemonic, dengan `addressIndex` untuk memilih akun keberapa yang dipakai sebagai default sender.
Contoh Konsep
// Install: npm install @truffle/hdwallet-provider dotenv
// truffle-config.js
require("dotenv").config();
const HDWalletProvider = require("@truffle/hdwallet-provider");
module.exports = {
networks: {
sepolia: {
provider: () =>
new HDWalletProvider(
process.env.MNEMONIC,
`https://eth-sepolia.g.alchemy.com/v2/${process.env.ALCHEMY_KEY}`
),
network_id: 11155111,
},
},
};
// .env
// MNEMONIC="word1 word2 word3 ... word12"
// ALCHEMY_KEY=abcdef123456
Praktikum
Install @truffle/hdwallet-provider dan dotenv, lalu konfigurasikan network sepolia di truffle-config.js agar membaca mnemonic dari environment variable MNEMONIC.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Gunakan mnemonic wallet testing terpisah dengan saldo kecil, dan pastikan .env masuk .gitignore — kebocoran mnemonic sama bahayanya dengan kebocoran seluruh private key turunannya.