Truffle

我收到錯誤找不到模組“ethereumjs-wallet/hdkey”

  • August 7, 2018

我正在執行此程式碼 deploy.js

const HDWalletProvider = require('truffle-hdwallet-provider');
const Web3 = require('web3');
const { interface, bytecode } = require('./compile');

const provider = new HDWalletProvider(
   '***** ****** ********* ********************* ***********',
   'https://rinkeby.infura.io/v3/*****************'
);

const web3 = new Web3(provider);

const deploy = async () => {
 const accounts = await web3.eth.getAccounts();

 console.log('Attempting to deploy from account', accounts[0]);

 const result = await new web3.eth.Contract(JSON.parse(interface))
   .deploy({ data: bytecode, arguments: ['Hi there!'] })
   .send({ gas: '1000000', from: accounts[0] });

 console.log('Contract deployed to', result.options.address);
};
deploy();

我在下面給出了這個。

node deploy.js
module.js:549
   throw err;
   ^

Error: Cannot find module 'ethereumjs-wallet/hdkey'
   at Function.Module._resolveFilename (module.js:547:15)
   at Function.Module._load (module.js:474:25)
   at Module.require (module.js:596:17)
   at require (internal/module.js:11:18)
   at Object.<anonymous> (C:\Users\Saurabh\inbox\node_modules\truffle-hdwallet-provider\index.js:2:13)
   at Module._compile (module.js:652:30)
   at Object.Module._extensions..js (module.js:663:10)
   at Module.load (module.js:565:32)
   at tryModuleLoad (module.js:505:12)
   at Function.Module._load (module.js:497:3)

我很確定我沒有做任何錯字。這是一些包裝問題。有誰知道如何解決?

ethereumwalletjs 版本 > 0.6.0 有一些目錄問題。他們在 ethereumwallet 中創建了 dist 文件夾,並將 hdkey.js 和 index.js 模組保存在其中。這就是為什麼會出現這個問題。我將它保存在 ethereumwallet 包的直接位置並且它有效。現在,此解決方案將適用於大於 0.6.0 的每個更高版本。

更新: npm uninstall ethereumjs-wallet npm uninstall truffle-hdwallet-provider npm install --save ethereumjs-wallet@0.6.0 npm install --save truffle-hdwallet-provider@0.0.3

歸功於 udemy QA Sarshad 和Guang 的兩位先生


我嘗試將以前的版本安裝到 ethereumjs-wallet (npm install --save ethereumjs-wallet@0.5.2@0.6.0),這一次它開始執行,但在 async/await 上崩潰作為警告。

etherscan 上也沒有交易,所以它似乎需要使用先前版本 < 0.6.1 的 ethereumjs-wallet 的 Promise(還沒有嘗試過)。

ethereumjs-wallet@0.6.1 具有不同的文件結構,hdkey 不再位於其根文件夾中。

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