You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Hardhat部署至BSC_TESTNET时出现NETWORK_ERROR问题求助

BSC测试网部署合约时触发NETWORK_ERROR错误

我用Solidity编写的智能合约已完成编译和测试,所有测试用例均通过,但执行部署命令:

npx hardhat run scripts/deploy.js --network bsctest

将合约部署至BSC测试网时,返回NETWORK_ERROR错误。

我的Hardhat配置代码如下:

require("@nomiclabs/hardhat-ethers");
require("dotenv").config();
require("@nomiclabs/hardhat-etherscan")

/** @type import('hardhat/config').HardhatUserConfig */
module.exports = {
  solidity: "0.6.12",
  settings: {
    optimizer: true,
    runs: 200
  },
  networks: {
    dev: {
        url: "http://localhost:7545",
        gasPrice: 20,
        saveDeployments: true
    },
    bsctest: {
        url: "https://data-seed-prebsc-2-s2.binance.org:8545/",
        accounts: [process.env.PRIV_KEY],
        gasPrice: 10000000000,
        blockGasLimit: 1000000
    },
},
etherscan:{
  apiKey:process.env.API_KEY
}
};

排查与解决方案

  • 修正Solidity配置结构:当前配置中settings与solidity同级是错误的,正确写法应将settings嵌套在solidity对象内,同时优化器配置需规范为enabled字段:
    solidity: {
      version: "0.6.12",
      settings: {
        optimizer: {
          enabled: true,
          runs: 200
        }
      }
    },
    
  • 更换BSC测试网节点:当前使用的节点可能存在访问问题,建议替换为官方推荐的其他测试网节点,例如:
    • https://data-seed-prebsc-1-s1.binance.org:8545/
    • https://data-seed-prebsc-1-s2.binance.org:8545/
  • 验证私钥与账户余额:确认.env文件中的PRIV_KEY是BSC测试网账户的有效私钥,且账户内有足够的测试BNB(可通过BSC测试网水龙头领取)
  • 移除不合理的Gas配置:blockGasLimit设置为1000000远低于BSC测试网的实际区块Gas上限,建议直接删除该配置,让Hardhat自动估算Gas用量
  • 测试节点连通性:通过curl命令验证本地能否正常访问节点:
    curl -X POST https://data-seed-prebsc-2-s2.binance.org:8545/ -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
    
    若返回正常区块号则节点可用,否则检查网络连接或更换节点
  • 更新依赖版本:确保@nomiclabs/hardhat-ethers、@nomiclabs/hardhat-etherscan等依赖与Hardhat版本兼容,可执行npm update更新所有依赖包

内容的提问来源于stack exchange,提问作者Adi Miuprix

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 12:57:11