在安全帽上部署合约或铸造 NFT 时出现错误:ProviderError: invalid sender

Posted

技术标签:

【中文标题】在安全帽上部署合约或铸造 NFT 时出现错误:ProviderError: invalid sender【英文标题】:On hardhat when deploying a contract or minting an NFT getting error: ProviderError: invalid sender 【发布时间】:2021-10-26 06:08:01 【问题描述】:

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

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

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

我正在联系,看看这是否是多边形和/或安全帽出现的已知问题?

【问题讨论】:

【参考方案1】:

将此添加到您的 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

【讨论】:

我在发布到测试网时也遇到了这个问题。不幸的是,您的解决方案不能为我解决问题。你有任何进一步的信息或细节吗?谢谢。【参考方案2】:

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

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

到目前为止我做了什么:

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

Hardhat github 更新到 2.6.2,也没有解决问题。

【讨论】:

【参考方案3】:

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

 mumbai: 
  url: "https://polygon-mumbai.g.alchemy.com/v2/<API_KEY>",
  accounts: [`0x$PRIVATE_KEY`]
  

【讨论】:

以上是关于在安全帽上部署合约或铸造 NFT 时出现错误:ProviderError: invalid sender的主要内容,如果未能解决你的问题,请参考以下文章

以太坊。 gas * price + value 资金不足

ERC-721 智能合约一次铸造 2 个 NFT

“铸造 NFT”和 OpenSea.io 问题的含义

铸造一个NFT - ERC721

部署智能合约时出现节点错误 - Web3.js

弄清楚如何通过延迟发布、元数据未在 opensea 上验证来铸造 NFT