PancakeSwap 合约 / 将代币换成另一个代币

问题描述

我想通过 web3 用 pancakeswap testnet contarct 将一些 testnet bep20 令牌交换到 busd(bep20)。 我查看了合同,但我不明白“amountOutMin”和“path”是什么意思。 我怎样才能用这个合同交换它们?请举例说明!

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);
}

谢谢!

解决方法

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

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...