闪电贷是指借用资产的贷款,在交易结束前就已归还资金(和费用)。此类贷款使你仅需花费很少的费用(在撰写 Aave 时为 0.09%,在 Dy/Dx 中为 0%)即可无担保的使用资金。闪电贷可用于跨 DEX 的套利,Dy/Dx 等协议的头寸清算以及 CDP(Collateralized Debt Positions:抵押债仓)的迁移。
在本教程中,我们将介绍你在 Solidity 智能合约中进行闪电贷的不同方式。如果你想了解更多有关可以用于闪电贷的信息,我们建议你阅读几篇文章:什么是闪电贷[4], 这篇报告[5]或这个文章[6].
另一种获取有关如何使用闪电贷如何工作的好方法是在区块浏览器中检查使用闪电贷的某些交易,看看它们都做了什么[7].
当前可用的闪电贷协议仅提供每笔交易借入一项资产,但是如果你拥有 ETH,则可以很容易地通过它来轻松铸造获得 DAI,或者可以使用 1inch 聚合器兑换到任何其他代币[8]。
以下是可用于在以太坊区块链上执行闪电贷的不同协议:
Aave 是一个开源和非托管协议,旨在获取存款和借贷资产的利息。由于他们的文档确实完善,因此我建议你查看他们的文档[9].
?优势:
?缺点:
访问 AAVE 文档[10]
DyDx 确实提供本地闪电贷。但是你仍然可以通过对 SoloMargin 合约执行一系列操作来实现类似的行为。为了模仿 DyDx 上的 Aave Flashloan,你需要:
你可以在Money Legos 网站上找到一个实现示例[11]。此实现基于上面列出的 Kollateral 的源代码。
?优势:
?缺点:
检查代码[12]
Kollateral[13]是一个智能合约,可汇总来自 Aave 和 Dy/Dx 平台的流动资金,并通过简单的界面展示给开发人员。
?优势:
?缺点:
带有 Kollateral 的闪电贷的代码如下所示:
import "@kollateral/contracts/invoke/KollateralInvokable.sol";
contract MyContract is KollateralInvokable {
constructor () public { }
function execute(bytes calldata data) external payable {
// liquidate
// swap
// refinance
// etc...
repay();
}
}
可以通过一种非常简单的方式从 javaScript 调用:
import { Kollateral, Token } from '@kollateral/kollateral'
const kollateral = await Kollateral.init(ethereum);
kollateral.invoke({
contract: myContractAddress
}, {
token: Token.DAI,
amount: web3.utils.toWei(1000)
}).then(() => console.log("success!");
访问 Kollateral 文档[14]
本翻译由 Cell Network[15] 赞助支持。
来源:https://ethereumdev.io/making-a-flash-loan-with-solidity-aave-dy-dx-kollateral/
[1]
登链翻译计划: https://github.com/lbc-team/Pioneer
[2]
翻译小组: https://learnblockchain.cn/people/412
[3]
Tiny 熊: https://learnblockchain.cn/people/15
[4]
什么是闪电贷: https://hedgetrade.com/what-are-defi-flash-loans/
[5]
这篇报告: https://arxiv.org/pdf/2003.03810.pdf
[6]
这个文章: https://medium.com/aave/flash-loans-one-month-in-73bde954a239
[7]
在区块浏览器中检查使用闪电贷的某些交易,看看它们都做了什么: https://aavewatch.now.sh/flash-loans
[8]
使用1inch聚合器兑换到任何其他代币: https://learnblockchain.cn/article/1856
[9]
查看他们的文档: https://docs.aave.com/developers/tutorials/performing-a-flash-loan
[10]
访问AAVE文档: https://docs.aave.com/developers/tutorials/performing-a-flash-loan
[11]
Money Legos 网站上找到一个实现示例: https://money-legos.studydefi.com/#/dydx
[12]
检查代码: https://money-legos.studydefi.com/#/dydx
[13]
Kollateral: https://www.kollateral.co/
[14]
访问Kollateral文档: https://www.kollateral.co/
[15]
Cell Network: https://www.cellnetwork.io/?utm_souce=learnblockchain