薄饼核心函数swapExactTokensForTokens 您所在的位置:网站首页 pancake薄饼平台下载 薄饼核心函数swapExactTokensForTokens

薄饼核心函数swapExactTokensForTokens

2023-08-14 19:45| 来源: 网络整理| 查看: 265

pancakeswap 合约抢币核心函数就是 swapExactTokensForTokens,

即使用一种币换另外一种币。

pancakeswap合约分为 factory router pair 3个核心部分,其他的还有些周边合约,暂时用不上(bakeryswap和uniswap都一样的架构)

第一步: 先向币1合约地址 approve 允许router合约花费当前账户多少数量的币

approve函数如下

function approve(address spender, uint value) external returns (bool);

第二步:获取2个币的交易对,使用factory合约的getPair函数

function getPair(address tokenA, address tokenB) external view returns (address pair);

如果获取到的地址是0x000000....,因为还未创建交易对

第三步:获取流动性,使用pair合约的getReserves获取流动性(未添加流动性之前交易会失败)

function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);

第四步:调用router合约的 swapExactTokensForTokens 用一种币换另外一种币

比如用wbnb来换doge

wbnb是token bnb是基础币,汇率1:1,但他们不是同一个

函数如下

function swapExactTokensForTokens(         uint amountIn, //币1的数量 这里的单位是wei,记得转换         uint amountOutMin, //单位wei,最少要获得币2的数量,如果换不到这么多就交易失败         address[] calldata path, //交易路径  从币1到币2,多路径不在本文章讨论范围         address to, //当前账户地址         uint deadline //时间戳     ) external returns (uint[] memory amounts);

换币的函数有以下几个

swapExactTokensForTokens 根据精确的token交换尽量多的token swapTokensForExactTokens 使用尽量少的token交换精确的token swapExactETHForTokens 根据精确的ETH交换尽量多的token swapTokensForExactETH 使用尽量少的token交换精确的ETH swapExactTokensForETH 根据精确的token交换尽量多的ETH swapETHForExactTokens 使用尽量少的ETH交换精确的token swapExactTokensForTokensSupportingFeeOnTransferTokens 支持收税的根据精确的token交换尽量多的token swapExactETHForTokensSupportingFeeOnTransferTokens 支持收税的根据精确的ETH交换尽量多的token swapExactTokensForETHSupportingFeeOnTransferTokens 支持收税的根据精确的token交换尽量多的ETH

具体使用不再详述,自行百度就有了

如果要换回来,把2个币的顺序对调一下就行了



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有