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

Polygon(Matic)链上Web3发送至QuickSwap的交易卡住无法执行如何解决

问题原因及解决方案

核心错误点

  • Web3实例未初始化:你创建了HDWalletProvider后未将其传入Web3构造函数,代码中使用的web3变量未定义,会直接导致交易构造异常。
  • gasPrice单位错误:代码中填写的gasPrice: "25"单位为wei,远低于Polygon主网当前最低打包要求(通常为30~50 gwei,1 gwei = 10^9 wei),矿工不会优先打包如此低gasPrice的交易,是交易卡住的核心原因。
  • 交易参数不合理:swapExactETHForTokens第一个参数设为0,意味着你放弃滑点保护,即使交易执行时你只能拿到极少的目标代币也会成交,极易出现交易打包后执行失败的问题;deadline参数设置过大,交易长时间pending后执行会面临极高的价格偏离风险。

已卡住交易的处理方法

  • 加速交易:构造一笔和卡住交易相同nonce的swap交易,将gasPrice设置为当前网络推荐值的1.1倍以上,广播后会顶替原来的pending交易,矿工优先打包高gasPrice的交易。
  • 取消交易:构造一笔和卡住交易相同nonce的转账交易,给自己地址转0ETH,gasPrice设置为当前网络推荐值的1.1倍以上,广播后会顶替原来的pending交易,原swap交易作废。

代码修正示例

const Web3 = require('web3')
const HDWalletProvider = require('@truffle/hdwallet-provider');
var provider = new HDWalletProvider(privateKey, rpcEndpoint);
// 补全Web3实例初始化
const web3 = new Web3(provider)

const init = async () => {
    const QuickSwap = new web3.eth.Contract(contracts.QuickSwap.ABI, contracts.QuickSwap.address)
    const path = ["0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270", "0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619"]
    // 动态获取当前网络gasPrice,也可以手动设置为web3.utils.toWei('35', 'gwei')
    const gasPrice = await web3.eth.getGasPrice()
    // 按1%滑点计算最小获得代币数量,实际使用时可根据接受的滑点阈值调整系数
    const amountsOut = await QuickSwap.methods.getAmountsOut("10000000000000", path).call()
    const amountOutMin = Math.floor(amountsOut[1] * 0.99)
    // 设置10分钟交易有效期
    const deadline = Math.floor(Date.now() / 1000) + 60 * 10
    // 预估gasLimit
    const gasLimit = await QuickSwap.methods.swapExactETHForTokens(amountOutMin, path, addr, deadline).estimateGas({
        value: "10000000000000",
        from: addr
    })

    await QuickSwap.methods.swapExactETHForTokens(amountOutMin, path, addr, deadline).send({
        value: "10000000000000",
        from: addr,
        gasPrice: gasPrice,
        gas: Math.floor(gasLimit * 1.2) // 加20%冗余避免gas不足导致交易失败
    }).on('transactionHash', function(hash){
        console.log(hash)
    }).on('confirmation', () => {
        console.log("Transaction confirmed")
    })
}

内容的提问来源于stack exchange,提问作者Riccardo Perego

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 20:24:00