类型错误:无法读取未定义的属性“_alreadyWrapped”

Leo*_*Leo 3 javascript ethereum truffle

我创建了一个集成truffle和react框架的项目\xef\xbc\x8c然后我在truffle-config.js中配置了以太坊的rinkeby测试网络。但是,当我将合约迁移到rinkeby网络时,出现了问题。

\n\n
truffle compile    \ntruffle migrate  --network rinkeby\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后出现了一些错误

\n\n
TypeError: Cannot read property \'_alreadyWrapped\' of undefined\n    at Object.wrap (C:\\Users\\Lsy\\AppData\\Roaming\\npm\\node_modules\\truffle\\build\\webpack:\\packages\\provider\\wrapper.js:13:1)\n    at Object.wrap (C:\\Users\\Lsy\\AppData\\Roaming\\npm\\node_modules\\truffle\\build\\webpack:\\packages\\provider\\index.js:9:1)\n    at Object.create (C:\\Users\\Lsy\\AppData\\Roaming\\npm\\node_modules\\truffle\\build\\webpack:\\packages\\provider\\index.js:14:1)\n    at TruffleConfig.get [as provider] (C:\\Users\\Lsy\\AppData\\Roaming\\npm\\node_modules\\truffle\\build\\webpack:\\packages\\config\\dist\\configDefa\nults.js:189:1)\n    at Object.detect (C:\\Users\\Lsy\\AppData\\Roaming\\npm\\node_modules\\truffle\\build\\webpack:\\packages\\environment\\environment.js:19:1)\n    at C:\\Users\\Lsy\\AppData\\Roaming\\npm\\node_modules\\truffle\\build\\webpack:\\packages\\core\\lib\\commands\\migrate.js:192:1\nTruffle v5.1.1 (core: 5.1.1)\nNode v12.13.0\n
Run Code Online (Sandbox Code Playgroud)\n\n

项目目录如下所示\xef\xbc\x9a

\n\n

在此输入图像描述

\n\n

truffle-config.js

\n\n
 const path = require("path");\n    const HDWalletProvider = require(\'@truffle/hdwallet-provider\');\n    const fs = require(\'fs\')  \n\n    let secrets;\n    console.log(path.join(__dirname, "secrets.json"));\n\n    if (fs.existsSync(path.join(__dirname, "secrets.json"))){\n      secrets = JSON.parse(fs.readFileSync(path.join(__dirname, "secrets.json"),\'utf8\'));\n    }else{\n      console.log("secrets.json doesn\'t exist!")\n    }\n\n    module.exports = {\n      contracts_build_directory: path.join(__dirname, "client/src/contracts"),\n      networks: {\n        ganache:{\n          host:"127.0.0.1",\n          port:7545,\n          network_id:"*"\n        },\n        develop: {\n          port: 8545\n        },\n        rinkeby:{\n          provider:()=>{\n            new HDWalletProvider(secrets.mnemonic,"https://rinkeby.infura.io/v3/"+secrets.infuraProjectId);\n          },\n          network_id: \'4\'\n        }\n      }\n    };\n
Run Code Online (Sandbox Code Playgroud)\n\n

这个问题困扰我好久了,谁能帮帮我!真的感谢!

\n

Sti*_*asy 5

您忘记了返回语句:

rinkeby: {
  provider: () => {
    return new HDWalletProvider(secrets.mnemonic,"https://rinkeby.infura.io/v3/"+secrets.infuraProjectId);
  },
  network_id: 4
}
Run Code Online (Sandbox Code Playgroud)