# 闪电贷相关知识 **Published by:** [想住大房子的java程序员](https://paragraph.com/@java-3/) **Published on:** 2022-10-13 **URL:** https://paragraph.com/@java-3/x2KWHLuFw5Fl1wuQog0q ## Content 提供闪电贷的资金哪里来 来自于 DeFi 项目 Decentralized Exchanges 去中心化交易所: Uniswap, Sushiswap, etc. Lending Protocols 借贷协议: Aave, Compound, etc. Stablecoins 稳定币协议: MakerDAO 不是所有 DeFi 项目都支持闪电贷,最早支持的项目是 Aave,后来还有其他链的 DeFi 项目比如 BSC 的 DODO 也添加了这个功能,比较早期或者规模较小的链上存在大量的套利空间,需求更多,同时闪电贷可以给 DeFi 项目带来手续费收益。 function flashLoan( address receiverAddress, // 接收资产的地址 address asset, // 资产名称 uint256 amount, // 数量 bytes calldata params // 自定义执行参数 ) { // 1. 记录余额, 把指定数量的资产转给 receiverAddress uint256 balance = IERC20(asset).balanceOf(this); IERC20(asset).transferTo(receiverAddress, amount); // 2. 执行自定义方法 IFlashLoanReceiver receiver = IFlashLoanReceiver(receiverAddress); // receiver.executeOperation 里可以做任何事情, 但最后需要把 asset 转回来 receiver.executeOperation(params); // 3. 检查 receiverAddress 是否在步骤 2 执行完以后归还资产并支付手续费 0.3% require(IERC20(asset).balanceOf(this) >= balance * 1003 / 1000); // 4. 如果上面的检查失败, 则 flashLoan 执行失败, 交易回滚(状态变更不会被记录) } ## Publication Information - [想住大房子的java程序员](https://paragraph.com/@java-3/): Publication homepage - [All Posts](https://paragraph.com/@java-3/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@java-3): Subscribe to updates