基础知识点
pancake和uniswap类似,想要实现flash swap需要创建一个类似uniswapV2Call
的函数,你可以在这个找到
https://docs.uniswap.org/protocol/V2/guides/smart-contract-integration/using-flash-swaps
function uniswapV2Call(address sender, uint amount0, uint amount1, bytes calldata data) {
address token0 = IUniswapV2Pair(msg.sender).token0(); // fetch the address of token0
address token1 = IUniswapV2Pair(msg.sender).token1(); // fetch the address of token1
assert(msg.sender == IUniswapV2Factory(factoryV2).getPair(token0, token1)); // ensure that msg.sender is a V2 pair
// rest of the function goes here!
}
例子
这里引用@Fankouzu
老师的视频作为例子。下面代码展示借USDT
,换ETH
的过程,当然也可以还USDT
。
下面代码内部是USDT
转换为USDC
,USDC
再转化为WETH
function uniswapV2Call(address account,uint256 amount0,uint