火星链 火星链
Ctrl+D收藏火星链
首页 > ETH > 正文

ETH:三步实现自己的第一笔闪电贷合约

作者:

时间:1900/1/1 0:00:00

闪电贷是DeFi中一个独特的产品,在传统金融活动中没有与之对应的事物。会编写和使用闪电贷也是一项很重要的技能。

概念

闪电贷是一种无抵押、借贷金额无上限的贷款。它要求借贷人快借快还,快到还款和借款在同一个交易内。

闪电贷要求每笔借款在归还时,除了归还本金,还要支付一定利息。该利息由系统动态计算。

实现?

很多人对理解闪电贷有一定的难度。因为这需要了解智能合约执行原理和以太坊状态变化的机制。我们通过自己编写一个闪电贷合约,来理解其背后的运行原理。

以使用Aave提供的闪电贷为例,编写一个你自己的合约非常简单,你只需要实现一个叫?executeOperation的方法。

1.executeOperation

executeOperation方法参数中_reserve?是所借代币的合约地址,如果是ETH则是一个特殊的地址,_amount是借款的金额,_fee是本次借款要偿还的利息。_params暂时可忽略。

成都给予区块链产业专项补贴:金色财经报道,从成都市经信局市新经济委获悉,《成都市建设国家区块链创新应用综合性试点专项政策实施细则》、《成都市促进大数据产业发展专项政策实施细则(修订)》均于近日发布,支持相关产业发展。建设区块链技术测评机构给予最高200万元一次性补贴,企业自主投资建设数据服务平台给予最高300万元补助。[2023/7/27 16:01:28]

functionexecuteOperation(

??address_reserve,

???uint256_amount,

???uint256_fee,

??bytescalldata_params

??)

??external

{

??require(_amount<=getBalanceInternal(address(this),_reserve),"借款失败");

Dumpies项目Discord服务器已被入侵:金色财经报道,据CertiK监测,Dumpies项目Discord服务器已被入侵,黑客发布了网络钓鱼链接。在团队确认他们已经恢复服务器的控制权之前,请勿点击任何链接。[2023/3/9 12:51:05]

??//

??//用借来的?ETH去赚取更多的ETH

??//

??//还款

??uinttotalDebt=_amount.add(_fee);

??transferFundsBackToPoolInternal(_reserve,totalDebt);

}

当代码执行到executeOperation时,你已经拿到了借来的钱,你主要是写如何利用这些钱赚取更多钱的逻辑。例如你发现同一个交易对A/ETH在DEX1和DEX2的价格差较大,那么你的赚钱逻辑为:

SushiSwap宣布在Coinbase L2网络Base启动:金色财经报道,SushiSwap 宣布在 Coinbase L2 网络 Base 启动,将在 Base 发布时推出完整的 DeFi 堆栈。

此前报道,Coinbase L2 网络 Base 公布近 60 个生态合作伙伴,包括 Chainlink、The Graph、Aave 等。[2023/3/2 12:38:49]

已借得100ETH;

在价格低的DEX1中买入A;

在价格高的DEX2中卖出A;

卖得110ETH。

2.开始借款

executeOperation是借款成功后要执行的逻辑。而开始借款的逻辑需要用户自己触发,或者直接写在合约的构造函数里。例如:

functionflashloan()publiconlyOwner{

币安将在巴西开设两个新办事处:9月21日消息,币安将在巴西里约热内卢和圣保罗开设两个新办事处,以容纳150名员工,员工可以选择在办公室工作或远程工作。

据悉,币安目前正在努力在巴西实现合规,并且将在巴西推出允许加密货币支付的借记卡。(Bitcoin.com)[2022/9/21 7:10:53]

??bytesmemorydata="";

??uintamount=100ether;

??addressasset=address(0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE);//借ETH

??ILendingPoollendingPool=ILendingPool(addressesProvider.getLendingPool());

??lendingPool.flashLoan(address(this),asset,amount,data);

}

flashLoan()是真正的借款函数,例子中是借入100ETH。闪电贷由此方法触发,也由此方法结束。要完全理解它,我们需要看看flashLoan()的内部逻辑。我们摘取最重要的部分。

3.?flashLoan()内部逻辑

flashLoan()中首先进行各项数据验证,然后便借款给你,紧接着调用你的?executeOperation?的赚钱逻辑,最后验证你是否归还了本金加利息。主要逻辑如下所示:

????????//各种数据验证,池中是否还有足够的钱可以贷出?计算手续费等等

??????//将借款转给你

????core.transferToUser(_reserve,userPayable,_amount);

????//执行你的合约的赚钱逻辑

????receiver.executeOperation(_reserve,_amount,amountFee,_params);

????//检查目前池中余额

????uint256availableLiquidityAfter=_reserve==EthAddressLib.ethAddress()

???????address(core).balance

??????:IERC20(_reserve).balanceOf(address(core));

????????//通过池中余额变化来确认你是否已经归还了借款利息

????require(

??????availableLiquidityAfter==availableLiquidityBefore.add(amountFee),

??????"Theactualbalanceoftheprotocolisinconsistent"

????);

如果?require()验证失败,它将revert整个交易,让借款无效,从而保证借出方总是安全的。

结语

以上解释了实现第一笔闪电贷最基本的方法和原理。编译源码,以及部署到线上,大家可以参考Aave相关官方文档,这里就不一一介绍了。

编写闪电贷合约总体并不复杂。使用闪电贷风险也比较小。如果赚钱逻辑失败,变成了亏钱逻辑,不能完成还款,那么也不用担心借来的巨款无力偿还。整个交易将会执行失败,就如同借款从来没有发生过一样。

标签:RESEEEADDETHARESLEEE价格PADDY币ETHYS价格

ETH热门资讯
CLE:雅晴论币:11.19比特币以太坊晚间行情即将破位下跌瀑布要开启了

比特币行情分析:从四小时线上看比特币行情下跌到17500点后开始持续跌17391的位置,MACD成死叉运行绿色动能柱缩量.

1900/1/1 0:00:00
人工智能:专家热议:数字人民币“不计息”对货币政策有何影响?

今年以来,央行数字货币试用脚步明显加快,日益受到各界关注。数字人民币与第三方支付是怎样的关系?“不计付利息”对货币政策有何影响?近日,在2020中国-阿联酋创新投资大会上,中国社科院金融研究所研.

1900/1/1 0:00:00
BRI:金色观察丨如何为机构DeFi需求创造“入场轨道”?

金色财经区块链11月19日讯??近几年来,加密货币对传统金融和机构的潜在影响成为了热门话题。区块链技术将自动化引入到了金融行业,带来了颠覆和创新,尤其是最近兴起的去中心化金融引发了行业巨大关注.

1900/1/1 0:00:00
ATM:Asproex阿波罗上线ATMJ艾特基生态项目ESM,颠覆传统电竞行业

2020年11月16日,Asproex正式上线ATMJ艾特基生态项目ESM,并于当天16:16开放交易时间,其中充币时间为11月16日10:00;提币时间为11月17日10:00.

1900/1/1 0:00:00
EFI:DeFi 跨链项目 KIRA 将于 11 月 25 日进行公共流动性拍卖

链闻消息,DeFi跨链项目KIRA将于UTC时间11月25日15点开始公共流动性拍卖,并将在24小时内或在硬上限达到后结束。ERC20KEX代币将在拍卖结束后24小时内自动分发给参与者.

1900/1/1 0:00:00
EOS:价格还能再涨出个“0”?币圈支持者坚信比特币已“今非昔比”

在本周进一步击穿18000美元之后,比特币似乎即将再度刷新历史。自3月份疫情引发的至低点以来,比特币价格已经飙涨342%,距离2017年的历史最高价19994美元仅“一步之遥”.

1900/1/1 0:00:00