首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对PancakeSwap进行闪存贷款?

如何对PancakeSwap进行闪存贷款?
EN

Ethereum用户
提问于 2021-07-21 11:21:33
回答 1查看 6.3K关注 0票数 0

显然,在PancakeSwap上获得一笔闪存贷款是可能的,因为它是Uniswap的一个分支。但是,我没有在PancakeSwap上找到任何闪存贷款的例子,也没有任何文档提到它。

从PancakeSwap获得闪存贷款的合同最简单的例子是什么?

闪存贷款将:

  1. 从PancakeSwap借来一定数量的令牌(比如蛋糕)
  2. 偿还所需的令牌金额。
EN

回答 1

Ethereum用户

发布于 2021-07-29 01:39:35

PancakeSwap是Uniswap V2的一个分支,它允许闪存交换。使用Uniswap V2的闪存交换示例可以在这里找到:https://github.com/Uniswap/uniswap-v2-periphery/blob/master/contracts/examples/ExampleFlashSwap.sol

它是通过调用您希望获得贷款的Uniswap V2对的交换函数来调用的,它将在您的合同中调用一个回调函数。它起源于UniswapV2Pair.sol合同中的这一行(来源:https://github.com/Uniswap/uniswap-v2-core/blob/master/contracts/UniswapV2Pair.sol):

代码语言:javascript
复制
if (data.length > 0) IUniswapV2Callee(to).uniswapV2Call(msg.sender, amount0Out, amount1Out, data);

在煎饼中,一切都是一样的,只是回调的名称变成了pancakeCall (而不是uniswapV2Call)

代码语言:javascript
复制
if (data.length > 0) IPancakeCallee(to).pancakeCall(msg.sender, amount0Out, amount1Out, data);

只需更改FlashLoan接收方法中的函数签名,如下所示:

代码语言:javascript
复制
function uniswapV2Call(address sender, uint amount0, uint amount1, bytes calldata data) external override { ... }

到这个

代码语言:javascript
复制
function pancakeCall(address sender, uint amount0, uint amount1, bytes calldata data) external override { ... }

编辑:链接到pancakeswap池合同这里:https://github.com/pancakeswap/pancake-swap-core/blob/master/contracts/PancakePair.sol

您将需要指定您希望从

票数 3
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/103865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档