Polygon主网使用Truffle部署Smart Contract时遭遇‘transaction underpriced’错误求助
解决Truffle部署Polygon主网合约时的"transaction underpriced"问题
你遇到的这个"transaction underpriced"错误,本质是部署合约的交易gas价格低于Polygon主网节点要求的最低阈值,导致节点拒绝打包你的交易。Polygon主网采用EIP-1559计费模式,需要明确设置maxFeePerGas和maxPriorityFeePerGas两个参数,而Truffle默认配置可能没跟上当前网络的实时gas行情。
下面是具体的解决方法:
方法一:在truffle-config.js中手动指定gas参数
直接在你的matic网络配置里添加maxFeePerGas和maxPriorityFeePerGas,数值可以参考Polygon主网当前的推荐gas价格(一般maxPriorityFee设10-20 Gwei,maxFee设20-30 Gwei,可根据网络拥堵情况调整):
matic: { provider: () => new HDWalletProvider(mnemonic, `https://polygon-mainnet.g.alchemy.com/v2/key`), network_id: 137, confirmations: 2, timeoutBlocks: 200, skipDryRun: true, maxFeePerGas: 30000000000, // 30 Gwei,单位为wei maxPriorityFeePerGas: 20000000000 // 20 Gwei },
设置完成后重新执行truffle migrate --network matic即可。
方法二:通过命令行临时指定gas参数
如果不想修改配置文件,也可以在执行migrate命令时直接传入参数:
truffle migrate --network matic --maxFeePerGas 30000000000 --maxPriorityFeePerGas 20000000000
额外注意事项
- 确保你的钱包里有足够的MATIC余额用来支付gas费用,余额不足也可能引发异常(不过你的报错明确是underpriced,所以优先检查gas价格)。
- 如果还是报错,可以适当调高这两个参数的数值,比如把maxFee调到35 Gwei、maxPriority调到25 Gwei,或者避开网络拥堵时段再尝试部署。
内容的提问来源于stack exchange,提问作者Allennick
相关产品推荐
相关产品推荐

