4

我正在使用 HardHat 在 Polygon (Matic) 上部署合约,它在部署或铸造时大部分时间都可以工作。但是当我从测试网切换到主网时它通常会中断。

例如:我从主网切换到 rpc-mumbai.maticvigil.com,然后我收到错误 ProviderError: invalid sender。

然后我更新了我的 hardhat.config.js 以指向 matic-mumbai.chainstacklabs.com,我能够毫无错误地创建和部署合约。

我想看看这是否是多边形和/或安全帽发生的已知问题?

4

3 回答 3

7

将此添加到您的 hardhat.config.js,在帐户之后:

 gasPrice: 8000000000, // default is 'auto' which breaks chains without the london hardfork

完整条目:

  matic: {
      url: "https://matic-mumbai.chainstacklabs.com",
      accounts: [PRIVATE_KEY],
      gasPrice: 8000000000, // default is 'auto' which breaks chains without the london hardfork
    }

参考:https ://github.com/nomiclabs/hardhat/issues/1828

于 2021-08-26T07:17:27.203 回答
1

确认“The Vikk”的解决方案有效。在私钥之前还添加了帐户详细信息和 0x。

 mumbai: {
  url: "https://polygon-mumbai.g.alchemy.com/v2/<API_KEY>",
  accounts: [`0x${PRIVATE_KEY}`]
  }
于 2021-08-31T06:28:26.373 回答
0

我发现了“无效发件人”的问题。这对我来说是钱包地址没有发送任何交易,只有来自测试网水龙头的存款。无论出于何种原因,当我通过 Metamask 手动发送事务然后将其发回然后尝试再次发出安全帽运行命令时,它使该错误消失了。

然而,从我现在看到的情况来看,事务仍然挂起,没有任何错误,而且 --verbose 没有提供任何有用的东西。这似乎是与伦敦硬分叉有关的某种冲突。我还没有解决这个问题。如果我有更多信息,稍后会报告。

到目前为止我做了什么:

  1. 尝试添加gasPrice和/或gas到 hardhat.config.js networks.matic 对象
  2. 试图放在0xprivateKey前面
  3. 尝试添加chainId:80001到 hardhat.config.js networks.matic 对象
  4. 尝试将 gasPrice 增加到 500 gwei 以上
  5. 尝试了 3 个不同的 RPC 端点,包括一个需要 API 密钥的私有端点

Hardhat github 对 2.6.2 进行了更新,但也没有解决问题。

于 2021-08-28T09:39:05.477 回答