木星链 木星链
Ctrl+D收藏木星链

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

作者:

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

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

概念

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

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

实现?

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

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

1.executeOperation

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

Web3应用程序Kresus推出加密和NFT钱包:金色财经报道,Web3应用程序Kresus在iOS应用商店上线加密和NFT钱包SuperApp Kresus。每个Kresus用户将获得Kresus Web3 ID,可通过信用卡或Apple pay购买加密货币。

此前3月报道,Web3应用程序Kresus筹集到2500万美元A轮融资,LibertyCity Ventures领投。[2023/5/12 14:59:34]

functionexecuteOperation(

??address_reserve,

???uint256_amount,

???uint256_fee,

??bytescalldata_params

??)

??external

Chainge Finance推出Chainge WEB 提升跨链聚合去中心化交易体验:据官方消息,Chainge Finance宣布其Chainge WEB APP正式上线,该平台为用户提供最具流动性的跨链聚合去中心化交易场所,支持多条链的数字资产跨链互换。用户可以通过Chainge WEB APP轻松进行跨链互换和套利,享受跨链流动性聚合带来的最佳交易价格。此次上线有助于加强区块链生态系统的互操作性,提升用户交易体验。作为区块链行业的领先者之一,Chainge Finance将继续推动区块链技术的创新和发展,为用户创造更多价值。[2023/4/11 13:56:09]

{

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

??//

Sei Labs正以4亿美元估值进行A轮融资:金色财经报道,据 The Block 援引消息人士报道,Sei Network 开发公司 Sei Labs 正以 4 亿美元代币估值进行 A 轮融资。Sei Labs 联合创始人 Jayendra Jog 表示,Sei Network 预计将在未来几个月启动主网并进行空投。[2023/2/27 12:32:13]

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

??//

??//还款

??uinttotalDebt=_amount.add(_fee);

??transferFundsBackToPoolInternal(_reserve,totalDebt);

}

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

西安19项举措拓展数字人民币应用场景:金色财经报道,由西安市金融工作局、人行西安分行营管部联合印发的《西安市2022年加快数字人民币场景拓展应用工作方案》出台。该方案将通过19项具体工作举措,积极扩大数字人民币在政府端的试点场景应用,带动企业端、商户端、消费端和“三农”、普惠金融等特色场景拓展。

据悉,西安市于2020年11月25日被列为全国数字人民币试点城市。今年上半年,全市共开立数字人民币个人钱包2263.92万个、对公钱包163.01万个;正式投产场景46.08万个、商户门店21.26万个;流通交易2736.12万笔、金额63.67亿元。(西安发布)[2022/7/15 2:15:30]

已借得100ETH;

在价格低的DEX1中买入A;

在价格高的DEX2中卖出A;

卖得110ETH。

2.开始借款

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

functionflashloan()publiconlyOwner{

??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相关官方文档,这里就不一一介绍了。

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

标签:RESEEEADDETHXPRESS价格LEEEDADDYDOGE币ETH是什么意思啊

比特币行情热门资讯
比特币:一文了解 BTC 挖矿现状

随着比特币价格呈上升趋势,其市场价格与生产成本之间的差距越来越大。就像影响汇率的因素有很多种一样,生产成本也会因为地点、能源成本、软硬件的不同而大相径庭。挖矿主要看效率,而价格则取决于供求关系.

1900/1/1 0:00:00
ABEL:关于ZT创新板即将上线ABEL的公告

尊敬的ZT用户:ZT创新板即将上线ABEL,并开启ABEL/USDT交易对。神灯计划已达到500人充值要求.

1900/1/1 0:00:00
CAE:数交所联合CAE项目推出 “CAE合约排行榜 - 寻找合约最强王者”

对期货合约交易有信心吗?现数交所联合CAE项目推出全币种合约CAE币种交易排行争霸赛,4000枚CAE点燃全币种合约交易热情!最高100倍杠杆,连续7天决出10位合约最强王者.

1900/1/1 0:00:00
ETH:币安“质押借币“平台新增可借资产EUR、 DASH及新增DAI质押

亲爱的用户:币安“质押借币”平台新增可借资产EUR、DASH及新增DAI质押。注意:币安会根据市场实际运行情况和风险程度动态调整,可借币种/质押币种/利率/最大可借额度等参数.

1900/1/1 0:00:00
KEX:OKEx提币危机曙光初现,比特币能否坐稳“灰度牛”?

OKEx暂停提币危机近期可能会看到解决的曙光。OKEx数据显示,OKEx平台币OKB从11月18日晚开始自4.8USDT开始一路上涨,19日上午涨至5.738USDT,涨幅高达19.5%.

1900/1/1 0:00:00
比特币:比特币这次减半牛市和2017年的牛市相比有多大区别?

比特币又杀回来了?周三,比特币短暂飙升至1.8万美元上方,短短十天里,币价势如破竹,接连突破了1.5万美元、1.6万美元和1.7万美元的整数关口.

1900/1/1 0:00:00