Truffle

NodeJS 與 HDWalletProvider

  • March 28, 2022

我想從 NodeJS 程序執行簽名的乙太坊交易。我正在創建這樣的 web3_provider

var contract = require("truffle-contract");

var provider = new HDWalletProvider("nemonic", "https://rinkeby.infura.io/xxxxx");
// if I change the above line to: var provider = new Web3.providers.HttpProvider("https://rinkeby.infura.io/xxxxx");
// Everything works fine
var web3 = new Web3(provider); 

var myContract = contract(myABI);
myContract.setProvider(web3.currentProvider);

當我嘗試使用 HDWalletProvider 執行交易時,我收到錯誤消息:“找不到帳戶”。有沒有人能夠使用 HDWalletProvider 成功執行簽名交易?還是我使用不當?

確保var HDWalletProvider = require("truffle-hdwallet-provider");安裝正確且是必需的。npm install truffle-hdwallet-provider --save將安裝模組。

其次,您的“助記符”片語格式不正確。種子助記符應如下所示:retreat attack lift winter amazing noodle interest dutch craft old solve save並且可能是您出錯的原因。

這是我在 JS 中一直使用的 HDWallet Provider 的程式碼語法。每次都能正常工作。

provider: () => new HDWalletProvider(secret, "http://IP_address:Port"),

注意:我使用 http,而不是 http(s)

引用自:https://ethereum.stackexchange.com/questions/54893