赞
踩
前断时间 pancakeswap抢币 比较流行,所以研究了下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 swapExactTokensForTo
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。