Study
Truffle

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.

Editor Latihan

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.