برای اینکه بتوانید تراکنش های خود را قبل از ارسال به نودهای Infura امضا کنید، می توانید Truffle HD Wallet را به پروژه خود اضافه کنید.
برای افزودن این wallet دستور زیر را اجرا کنید:
npm install --save @truffle/hdwallet-provider
سپس در یک ترمینال مجزا دستور زیر را اجرا کنید:
ganache-cli
اگر Ganache به درستی نصب شده باشد با اجرای این دستور می توانیم آن را در ترمینال مشاهده کنیم. برای تست کارکرد اتصال به testnet، دستور زیر را اجرا کنید:
truffle console
در این مرحله احتیاج خواهیم داشت که تنظیماتی بر رووی hdwallet-provider که پیش از این نصب کردیم اعمال کنیم. صرفا برای یادآموری، hdwallet-provider یک اتصال شبکه راحت و آسان برای پیکربندی از طریق Infura به اتریوم است.
دستور زیر را در کنسول اجرا کنید:
const HDWalletProvider = require('@truffle/hdwallet-provider');
(HDWalletProvider در نتیجه اجرا undefined را بر خواهد گرداند)
در مرحله بعد mnemonic خود را تعریف کنید:(mnemonic در اینجا یک رشته تصادفی شامل 12 کلمه است)
const mnemonic = '12 words here';
(mnemonic در نتیجه اجرا undefined را بر خواهد گرداند)
در این مرحله wallet خود را اضافه خواهیم کرد:
const wallet = new HDWalletProvider(mnemonic, "http://localhost:8545");
در نتیجه، با اجرای دستور wallet لیست حساب ها/آدرس هایی که می توانیم از آنها استفاده کنیم را مشاهده می کنیم:
wallet
در نتیجه اجرای این دستور می توانید ببینید که یک wallet ساخته اید که می توانید از آن در ترمینال خود استفاده کنید. شما باید چیزی شبیه تصویر زیر در ترمینال خود مشاهده کنید:
نکته مهم: ما در اینجا از اولین آدرس از آرایه آدرس ها که wallet در اختیار ما قرار می دهد برای دیپلوی قرارداد هوشمند خود استفاده خواهیم کرد. باید اطمینان حاصل کنیم که این آدرس دارای موجودی است.
در تصویر زیر یک مثال از محل دسترسی به آدرس ذکر شده در ترمینال را مشاهده می کنید. دقت کنید که آدرسی که در اختیار شما قرار می گیرد با تصویر زیر متفاوت خواهد بود.