加密貨幣交易所 加密貨幣交易所
Ctrl+D 加密貨幣交易所
ads

三步實現自己的第一筆閃電貸合約_RES:EEE

Author:

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

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

概念

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

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

實現?

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

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

1.executeOperation

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

數據:Blur旗下NFT借貸協議Blend交易額突破20萬枚ETH,價值超4億美元:金色財經報道,據Dune Analytics最新數據顯示,NFT聚合交易市場Blur旗下借貸協議Blend的交易總額已突破20萬枚ETH,本文撰寫時達到219,849 ETH,價值約合406,141,768美元。此外當前Blend平臺交易量為28,936筆,其中獨立借款方數量1775個,獨立貸款方1192個。[2023/6/5 21:15:24]

functionexecuteOperation(

??address_reserve,

???uint256_amount,

???uint256_fee,

??bytescalldata_params

??)

??external

處于虧損狀態的ETH地址數創7個月低點:3月22日消息,Glassnode數據顯示,處于虧損狀態的ETH地址數達到32,559,530.500,創7個月低點。[2023/3/22 13:19:56]

{

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

??//

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

??//

??//還款

??uinttotalDebt=_amount.add(_fee);

??transferFundsBackToPoolInternal(_reserve,totalDebt);

}

“無聊猿”BAYC完成Dookey Dash游戲分數審查和驗證:僅2%玩家分數被重置:金色財經報道,“無聊猿”BAYC在社交媒體宣布已完成Dookey Dash游戲分數審查和驗證,@Mongraal獲得金鑰匙第一名。此外,BAYC宣布所有“下水道通行證(Sewer Pass)”NFT持有者可以刷新元數據以查看最終分數,并且可以在3月8日使用NFT召喚能量源。另據BAYC透露,Dookey Dash玩家并沒有大量作弊行為,只有2%的游戲分數按照審查規則進行了重置,此外玩家還可以在2月22日加入新的限時活動“舔蟾蜍(Lick the Toad)”。[2023/2/16 12:09:57]

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

數據:過去5日,Alameda已累計從Circle提取超4.8億USDC至FTX:11月7日消息,據Etherscan數據,自11月3日以來,Alameda已累計從Circle提取487,936,947枚USDC至FTX。[2022/11/7 12:27:15]

已借得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:RESETHEEEADDARESethics翻譯EEEE價格ADDC

幣贏交易所
《街頭足球》11.20正式上線鏈游玩家|C羅代言、足球競技_ETH:BAYC

導語:C羅代言,震撼出場!國內首款4V4實時競技足球手游——《街頭足球》來啦!由國內一線制作團隊打造,采用PHD超高清游戲畫面,PBR真實物理引擎搭配慣性運動系統.

1900/1/1 0:00:00
雅晴論幣:K線知識入門基礎學習_ETH:illuvium幣價格

雅晴論幣:K線知識入門基礎學習 認識移動平均線對邁入投資市場有一個巨大的促進作用,也會對日后追漲技巧的學習打下一個基礎,這些主要是由移動平均線的性質和作用決定的.

1900/1/1 0:00:00
薪火言幣:11.21比特幣的奇思妙想_比特幣:ICEBT幣

現在時間是2020.11.21日3:53分,最近呀,我在回看ahr999屯幣指數發明人,就是那個匿名大神他在2018年9月20號寫的一篇文章,這篇文章時隔兩年再看一遍依然有收獲.

1900/1/1 0:00:00
薪火言幣:11.20比特幣多頭無力上沖18400,以形成重壓_BTC:DEF

各位朋友們,你們好,我是薪火,跟著我的客戶都是做了很久的,不是我帶他們賺了多少,而是我用心在指導,毫無保留的教技術,經常熬夜盯盤。深夜致電告知客戶出場或進單.

1900/1/1 0:00:00
首創區塊鏈門票 2020網易未來大會報名正式開啟_區塊鏈:web3游戲項目價值排名

備受關注的2020年網易未來大會觀眾報名11月18日正式開啟。今年網易未來大會延續了其持續創新之路,為每位參與大會的觀眾打造了一張全球唯一、不可替代、獨一無二的區塊鏈NFT門票,作為大會入場的指.

1900/1/1 0:00:00
雅晴論幣:11.20比特幣以太坊晚間行情操作分析建議_以太坊:Aptos

任何時候保本都是第一位的,盈利是第二位的;止損的最終目的是保存實力,提高資金利用率和效率,避免小錯鑄成大錯,甚至導致全軍覆沒,止損不能規避風險,但可以避免遭到更大的意外風險.

1900/1/1 0:00:00
ads