PancakeSwap 合约 / 用另一个代币交换代币

Posted

技术标签:

【中文标题】PancakeSwap 合约 / 用另一个代币交换代币【英文标题】:PancakeSwap Contract / Swaping token for another token 【发布时间】:2021-07-17 07:03:51 【问题描述】:

我想通过 web3 使用 pancakeswap testnet contarct 将一些 testnet bep20 令牌交换到 busd(bep20)。 我查看了合同,但我无法理解“amountOutMin”和“路径”的含义。 我怎样才能用这个合同交换它们?请告诉我例子!

Pancakeswap 测试网合约

function swapExactTokensForTokens(
    uint amountIn,
    uint amountOutMin,
    address[] calldata path,
    address to,
    uint deadline
) external virtual override ensure(deadline) returns (uint[] memory amounts) 
    amounts = PancakeLibrary.getAmountsOut(factory, amountIn, path);
    require(amounts[amounts.length - 1] >= amountOutMin, 'PancakeRouter: INSUFFICIENT_OUTPUT_AMOUNT');
    TransferHelper.safeTransferFrom(
        path[0], msg.sender, PancakeLibrary.pairFor(factory, path[0], path[1]), amounts[0]
    );
    _swap(amounts, path, to);

谢谢!

【问题讨论】:

【参考方案1】:

amountOutMin 是您希望收到的最低金额。如果金额小于该金额,则交易将被撤销。这就像在 PancakeSwap 上设置滑点一样。

Path 是交换所采用的路径。如果有直接路径,例如Token -> WBNB,路径就是["TOKEN_CONTRACT_ADDRESS", "WBNB_CONTRACT_ADDRESS"]

【讨论】:

以上是关于PancakeSwap 合约 / 用另一个代币交换代币的主要内容,如果未能解决你的问题,请参考以下文章

在 PancakeSwap 上获取币安智能链代币价格的 API

如何以编程方式在 pancakeswap 上获得代币的买卖税

如何将 ERC20 代币发送到智能合约余额?

使用 Web3 和 Python 计算 BSC 代币的价格

BSC使用Python玩转PancakeSwap(入门篇)

BSC使用Python玩转PancakeSwap(入门篇)