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

Uniswap swapExactTokensForTokens交易成功但代币未兑换问题排查

问题排查与修复方案

你的代码存在多个核心逻辑错误,所有扣减的ETH均为交易Gas费,未实际触发兑换逻辑,具体问题如下:

  • 兑换方法选择错误
    你调用的swapExactTokensForTokens是ERC20代币互兑的接口,不支持ETH作为输入资产。你要实现ETH兑代币的需求,应该使用swapExactETHForTokens方法。
  • 合约地址传参错误
    buyListedTokenWithEth函数的第二个入参要求传入Uniswap Router合约地址,你实际调用时传入的是个人钱包地址,导致交互对象错误,没有触发Uniswap的兑换逻辑。
  • 接收地址配置错误
    兑换方法的to参数你填了Uniswap Router的地址,就算兑换成功,代币也会打到Router合约,不会进入你的个人钱包,此处应该填写你自己的钱包地址。
  • 兑换路径配置错误
    如果要实现ETH兑换目标代币,路径应该设置为[WETH合约地址, 目标代币地址];如果要做FLOG和GCOIN的互兑,需要提前给Uniswap Router授权对应额度的输入代币,否则兑换会失败。
  • ETH兑换缺少value参数
    如果使用ETH作为兑换输入,需要在交易配置项中添加value: ethAmount参数,将对应数量的ETH发送给Router合约执行兑换。
// 核心修复示例
const uniswapRouterAbi = [
    // 新增ETH兑代币的方法ABI
    "function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts)",
];
const WETH_ROPSTEN_ADDRESS = "0xc778417E063141139Fce010982780140Aa0cD5Ab";

async function buyListedTokenWithEth(
    amountEthFloat,
    uniswapRouterAddress,
    targetTokenAddress,
    provider
) {
    let privateKey = "private_key";
    let provider2 = ethers.providers.getDefaultProvider({name: 'ropsten', chainId: 3});
    let wallet = new ethers.Wallet(privateKey, provider2);
    const signer = wallet.connect(provider2); 
    const exchangeContract = new ethers.Contract(
        uniswapRouterAddress,
        uniswapRouterAbi,
        signer
    );
    const ethAmount = ethers.utils.parseEther(amountEthFloat);
    const tx = await exchangeContract.swapExactETHForTokens(
        1, // 实际使用时建议设置合理滑点,避免三明治攻击
        [WETH_ROPSTEN_ADDRESS, targetTokenAddress],
        wallet.address, // 接收地址填自己的钱包
        Date.now() + 1000 * 60 * 10,
        {
            'gasLimit': 300000,
            'gasPrice': ethers.utils.parseUnits('500', 'gwei'),
            'value': ethAmount // 传入要兑换的ETH数量
        });
    console.log("交易哈希:" + tx.hash);
}

// 调用时传入正确的Uniswap Router地址和目标代币地址
buyListedTokenWithEth('1', ropstenUniswap, GCOINErc20Address, provider);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 01:45:04