部署合约时遇到 invalid sender 错误时怎么办

HDWalletProvider 升级到 1.3.x 之后,只能对以太坊网络进行比较好的支持,并且需要显式指定 chainId。对于非以太坊网络比如当下比较热门的 heco/bsc,在官方解决到相应问题之前,还是保持在 1.2.x 版本比较好。

最近在使用 truffle 往 heco 上部署合约时,突然就碰到了一个之前没碰到过的错误: ![image.png](https://img.learnblockchain.cn/attachments/2021/05/snVpEIpH609c3f9bacb1b.png) 多方查证,原来是最新版的 HDWalletProvider (版本 1.3.1) 需要指定 chainId 于是乎将将原来的写法: ```provider: () => new HDWalletProvider(mnemonic, `wss://ws-testnet.hecochain.com`)``` 改为了下面这种形式: ``` provider: () => new HDWalletProvider({ privateKeys: [mnemonic], providerOrUrl: `wss://ws-testnet.hecochain.com`, chainId: 256 }), ``` 但还是报错 "`Error: Chain with ID 256 not supported`", 原来这个版本只支持以太坊主网和测试网的 chainId,官方已经在[这里](https://github.com/trufflesuite/truffle/issues/4000)记下了这个问题并在着手修复。 **直接将HDWalletProvider版本调整到 1.2.6, 问题得以解决。**

最近在使用 truffle 往 heco 上部署合约时,突然就碰到了一个之前没碰到过的错误:

多方查证,原来是最新版的 HDWalletProvider (版本 1.3.1) 需要指定 chainId

于是乎将将原来的写法:

provider: () => new HDWalletProvider(mnemonic, `wss://ws-testnet.hecochain.com`)

改为了下面这种形式:

provider: () => new HDWalletProvider({
        privateKeys: [mnemonic],
        providerOrUrl: `wss://ws-testnet.hecochain.com`,
        chainId: 256
      }),

但还是报错 "Error: Chain with ID 256 not supported", 原来这个版本只支持以太坊主网和测试网的 chainId,官方已经在这里记下了这个问题并在着手修复。

直接将HDWalletProvider版本调整到 1.2.6, 问题得以解决。

区块链技术网。

  • 发表于 2021-05-13 04:51
  • 阅读 ( 868 )
  • 学分 ( 21 )
  • 分类:Solidity
原文链接:,转发请注明来源!
「部署合约时遇到 invalid sender 错误时怎么办」评论列表

发表评论