比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads
首頁 > TRX > Info

三步實現自己的第一筆閃電貸合約_EEE

Author:

Time:1900/1/1 0:00:00

閃電貸是DeFi中一個獨特的產品,在傳統金融活動中沒有與之對應的事物。會編寫和使用閃電貸也是一項很重要的技能。

概念

閃電貸是一種無抵押、借貸金額無上限的貸款。它要求借貸人快借快還,快到還款和借款在同一個交易內。

閃電貸要求每筆借款在歸還時,除了歸還本金,還要支付一定利息。該利息由系統動態計算。

實現?

很多人對理解閃電貸有一定的難度。因為這需要了解智能合約執行原理和以太坊狀態變化的機制。我們通過自己編寫一個閃電貸合約,來理解其背后的運行原理。

以使用Aave提供的閃電貸為例,編寫一個你自己的合約非常簡單,你只需要實現一個叫?executeOperation的方法。

1.executeOperation

executeOperation方法參數中_reserve?是所借代幣的合約地址,如果是ETH則是一個特殊的地址,_amount是借款的金額,_fee是本次借款要償還的利息。_params暫時可忽略。

StarkWare 將開源加密證明生成引擎 STARK Prover:金色財經報道,StarkWare 宣布將在 Apache 2.0 許可下開源加密證明生成引擎 STARK Prover,STARK Prover 為 StarkNet 和 StarkEx 提供支持,用于在保持以太坊安全性的同時實現大規模擴瞳。這是 StarkWare 在開源 Cairo 1.0、Papyrus Full Node 和 StarkNet 新 Sequencer 之后的又一開源舉措。[2023/2/5 11:48:35]

functionexecuteOperation(

??address_reserve,

???uint256_amount,

???uint256_fee,

??bytescalldata_params

Alameda Research已退出Klaytn治理委員會:11月14日消息,Klaytn 基金會發布公告稱,Alameda Research 不再是 Klaytn 治理委員會的成員,自2022年11月12日起生效。Klaytn 基金會得出結論,鑒于最近的事件及其第 11 章破產文件,Alameda Research 不再適合參與治理或運營 Klaytn 共識節點。[2022/11/14 13:02:36]

??)

??external

{

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

??//

??//用借來的?ETH去賺取更多的ETH

??//

隱私性DeFi借貸協議Forlend今日上線流動性挖礦功能:據官方消息,今日Forlend正式上線質押FLD-FRA LP流動性挖礦活動。據悉,Forlend是建立在Findora鏈上的首個隱私借貸協議,在PST時間8月28日上線。Forlend將提供FLD總量的50%供用戶進行質押挖礦。該活動旨在支持Forlend的第一批用戶。[2022/9/6 13:10:58]

??//還款

??uinttotalDebt=_amount.add(_fee);

??transferFundsBackToPoolInternal(_reserve,totalDebt);

}

當代碼執行到executeOperation時,你已經拿到了借來的錢,你主要是寫如何利用這些錢賺取更多錢的邏輯。例如你發現同一個交易對A/ETH在DEX1和DEX2的價格差較大,那么你的賺錢邏輯為:

調查:全球擁有銀行賬戶的成年人口比例為76%:金色財經消息,最新的世界銀行全球金融指數調查結果顯示,在2011年至2021年間,擁有銀行賬戶的世界成年人口比例從51%上升至76%。然而,大約14億成年人仍然沒有銀行賬戶,沒有資金或開立銀行賬戶所需的身份證明。(news.bitcoin)[2022/7/17 2:18:11]

已借得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相關官方文檔,這里就不一一介紹了。

編寫閃電貸合約總體并不復雜。使用閃電貸風險也比較小。如果賺錢邏輯失敗,變成了虧錢邏輯,不能完成還款,那么也不用擔心借來的巨款無力償還。整個交易將會執行失敗,就如同借款從來沒有發生過一樣。

Tags:RESEEEADDETHceres幣價格LEEE價格7ADDethereum和erc20的地址一樣嗎

TRX
Bitget關于恢復BCH充提業務的公告_BITG

Bitget全球站用戶:BitcoinCash硬分叉已完成,根據原定計劃,BCHN節點方案已繼承BCH原有名稱、K線和交易對.

1900/1/1 0:00:00
深度:揭秘灰度一直買買買的真相_GBTC

Grayscale,幣圈人口中的“灰度”,一直沒有停止購買比特幣,即便是超過17000美元1枚的高價比特幣。11月17日,灰度旗下的BTC信托持倉量新增1773枚BTC.

1900/1/1 0:00:00
超過Netflix?協議實驗室創始人稱Filecoin存儲容量已經達到了1eb_NET

這里是IPFS資訊快車,想進filecoin技術交流群的以及與圈內大佬深入溝通,或者了解更多FIL資訊,深入了解FIL的(+V:FIL101).

1900/1/1 0:00:00
幣安寶上線BAKE、BEL、CVC、EGLD理財項目,年化高達20%_BIN

親愛的用戶:“幣安寶”上線BAKE、BEL、CVC、EGLD理財活動,為用戶提供閑置數字資產增值服務.

1900/1/1 0:00:00
火幣晚報:BTC總市值超支付巨頭萬事達 目前約3381億美元_BTC

日期:2020-11-20 行情分析 BTC日內持續震蕩,或將繼續上升根據火幣交易平臺數據顯示,BTC日內持續震蕩,下午小幅攀升,最高至18394.94USDT.

1900/1/1 0:00:00
幣安“質押借幣“平臺新增可借資產EUR、 DASH及新增DAI質押_BEP2

親愛的用戶:幣安“ 質押借幣”平臺新增可借資產EUR、DASH及新增DAI質押。注意:幣安:將支持BNB智能鏈(BEP20)升級和硬分叉:金色財經報道,據幣安官方公告,幣安將支持BNB智能鏈(B.

1900/1/1 0:00:00
ads