首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将智能合同部署到Rinkeby

将智能合同部署到Rinkeby
EN

Ethereum用户
提问于 2020-10-19 21:41:50
回答 2查看 3.9K关注 0票数 2

当我试图使用Rinkeby将智能契约部署到Truffle时,会出现以下错误:

代码语言:javascript
复制
Error: Unknown arguments format passed to new HDWalletProvider. Please check your
configuration and try again

注意:在本地使用Truffle部署相同的合同时,我没有遇到任何问题,只部署到Rinkeby

这是我的密码:

代码语言:javascript
复制
require('dotenv').config();
const HDWalletProvider = require('@truffle/hdwallet-provider');  

module.exports = {
  networks: {
     development: {
        host: "127.0.0.1",     
        port: 8545,            
        network_id: "*",   
     },

     rinkeby: {
        provider: () => new HDWalletProvider(process.env.RINKEBY_MNENOMIC, 
        "https://rinkeby.infura.io/v3/${process.env.INFURA_API_KEY}"),
         host: "127.0.0.1", 
         network_id: 4,
         gas: 4612388,
         gasPrice: 10000000000
     },
 },

 // Configure your compilers
 compilers: {
    solc: {
       version: "0.6.2",  
    }
 }

}

我想知道这是否是某种版本问题,因为我看到我以前的合同使用了'truffle-hdwallet-provider',而这个合同使用的是'@truffle/hdwallet-provider'

同时,我的.env文件包含以下内容:

代码语言:javascript
复制
#MNENOMIC="word1 word2 word3, ...word12"
RINKEBY_MNENOMIC="word1 word2 word3, ...word12"
PRODUCTION_MNENOMIC="word1 word2 word3, ...word12"

INFURA_API_KEY="xxxxxxxxxxxxxxxxxxxx"

那么这里可能发生了什么?这个Unknown arguments format passed to new HDWalletProvider错误是关于什么的?

EN

回答 2

Ethereum用户

回答已采纳

发布于 2020-10-20 02:41:27

好像是版本的事。

根据特弗莱的官方readme (这里有:https://github.com/trufflesuite/truffle/tree/develop/packages/hdwallet-provider#truffle-usage),现在这样做的方法如下:

代码语言:javascript
复制
rinkeby: {
  provider: () =>
    new HDWalletProvider({
      mnemonic: {
        phrase: rinkebyMnemonic
      },
      providerOrUrl: "https://rinkeby.infura.io/v3/" + infuraKey,
      numberOfAddresses: 1,
      shareNonce: true,
    }),
  network_id: '4',
}
票数 2
EN

Ethereum用户

发布于 2022-01-28 16:47:44

您还可以尝试安装带有以下注释的钱包处理程序:

代码语言:javascript
复制
#~>npm install truffle-hdwallet-provider

然后,在您的松露中- Then有以下内容:

代码语言:javascript
复制
var mnemonicPhrase = "word1 word2 word3 ....word12";
var HDWalletProvider = require("truffle-hdwallet-provider");

module.exports = {
  networks: {
    development: {
      host: "127.0.0.1",
      port: 7545,
      network_id: "*" // Match any network id
    },
    rinkeby: {
        // must be a thunk, otherwise truffle commands may hang in CI
      provider: () =>
      new HDWalletProvider(mnemonicPhrase, "https://rinkeyb.infura.io/v3/YOUR-INFURA-PROJECT-KEY"),
      network_id: '4',
    }
  },

  compilers: {
    solc: {
      version: '0.8.9',
      optimizer: {
        enabled: true,
        runs: 200
      }
    }
  },
};

然后尝试使用松露运行:松露迁移--网络rinkeby

你也可以用炼金术"https://rinkeyb.infura.io/v3/YOUR-INFURA-PROJECT-KEY“代替"https://eth-rinkeby.alchemyapi.io/v2/YOUR-ALCHEMY-JEY

票数 0
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/89497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档