閃電貸是DeFi中一個獨特的產品,在傳統金融活動中沒有與之對應的事物。會編寫和使用閃電貸也是一項很重要的技能。
概念
閃電貸是一種無抵押、借貸金額無上限的貸款。它要求借貸人快借快還,快到還款和借款在同一個交易內。
閃電貸要求每筆借款在歸還時,除了歸還本金,還要支付一定利息。該利息由系統動態計算。
實現?
很多人對理解閃電貸有一定的難度。因為這需要了解智能合約執行原理和以太坊狀態變化的機制。我們通過自己編寫一個閃電貸合約,來理解其背后的運行原理。
以使用Aave提供的閃電貸為例,編寫一個你自己的合約非常簡單,你只需要實現一個叫?executeOperation的方法。
1.executeOperation
executeOperation方法參數中_reserve?是所借代幣的合約地址,如果是ETH則是一個特殊的地址,_amount是借款的金額,_fee是本次借款要償還的利息。_params暫時可忽略。
數據:86個可疑地址曾共向交易所存入90萬億枚LADYS,現仍持131萬億枚:5月16日消息,Lookonchain更新了LADYS可疑地址列表,86個地址共向交易所存入了90萬億枚LADYS (約1080萬美元),并發現這些代幣在轉入交易所后LADYS的價格開始下跌。這86個地址目前持有131萬億枚LADYS(約1500萬美元)。[2023/5/16 15:06:16]
functionexecuteOperation(
??address_reserve,
???uint256_amount,
???uint256_fee,
??bytescalldata_params
??)
??external
{
??require(_amount<=getBalanceInternal(address(this),_reserve),"借款失敗");
英國金融時報:瑞士檢察官對瑞銀收購瑞信展開調查:4月2日消息,據英國金融時報報道,瑞士聯邦檢察官已對瑞士信貸在政府支持下被規模更大的競爭對手瑞銀收購一事展開調查。總部位于伯爾尼的檢察官正在調查牽涉到這兩家銀行的政府官員、監管機構和高管是否違反了瑞士刑法。上個月,為了避免一場潛在的災難性金融危機,這兩家銀行僅在一個周末就達成了緊急合并協議。瑞士聯邦檢察官辦公室表示,聯邦檢察官辦公室希望積極履行其使命和責任,為建立一個廉潔的瑞士金融中心做出貢獻,并已建立監督機制,以便在其活動范圍內的任何情況下立即采取行動。”檢察官Stefan Bl?ttler已經向政府機構發布了一系列“調查命令”。(金十)[2023/4/2 13:40:39]
??//
??//用借來的?ETH去賺取更多的ETH
??//
??//還款
??uinttotalDebt=_amount.add(_fee);
Conflux與加密支付網關Alchemy Pay達成合作:2月25日消息,據官方消息,Conflux宣布與加密支付網關Alchemy Pay達成合作,將提供一個簡單的法幣入金支付解決方案,使用戶能夠使用當地法定貨幣購買加密貨幣。[2023/2/25 12:29:19]
??transferFundsBackToPoolInternal(_reserve,totalDebt);
}
當代碼執行到executeOperation時,你已經拿到了借來的錢,你主要是寫如何利用這些錢賺取更多錢的邏輯。例如你發現同一個交易對A/ETH在DEX1和DEX2的價格差較大,那么你的賺錢邏輯為:
已借得100ETH;
在價格低的DEX1中買入A;
在價格高的DEX2中賣出A;
賣得110ETH。
7月Solana鏈上NFT銷售額不足6000萬美元,創迄今最低紀錄:金色財經報道,據 cryptoslam 數據顯示,7 月 Solana 鏈上 NFT 銷售額僅為 56,119,690.69 美元,創下迄今最低紀錄。截至目前,Solana 鏈上銷售額最高記錄發生在 2022 年 1 月,當月銷售額為 299,505,608.29 美元。此外,當前 Solana 鏈上銷售總額為 2,506,864,870 美元,交易量 9,287,725 筆。[2022/8/1 2:50:30]
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相關官方文檔,這里就不一一介紹了。
編寫閃電貸合約總體并不復雜。使用閃電貸風險也比較小。如果賺錢邏輯失敗,變成了虧錢邏輯,不能完成還款,那么也不用擔心借來的巨款無力償還。整個交易將會執行失敗,就如同借款從來沒有發生過一樣。
公告編號2020112001各位關心ZBG的投資者們和項目方:ZBG將于HKT2020年11月22日0點開放FIN—DeFi挖礦,用戶存入FIN參與DeFi挖礦,每日收入FIN幣.
1900/1/1 0:00:00北京時間11月18日晚,以太坊基金會在海外知名論壇reddit上進行了一次AMA線上問答,對以太坊未來發展中涉及到的若干重要問題進行了回復.
1900/1/1 0:00:00在完成將近零個月的提款后,OKEx宣布將開放提款服務。關于創始人徐明興被釋放的傳言,之后OKB代幣上漲了13%。但是,對此沒有任何確認.
1900/1/1 0:00:00Filecoin主網啟動上線已經1個月,對所有礦工和投資者來說,最大的感受就是落差太大,不是之前說好的單T產出為0.1枚FIL嗎?甚至最夸張的前期宣傳單T能到0.5枚左右!但主網上線之后的差異太.
1900/1/1 0:00:00各位朋友們,你們好,我是薪火,跟著我的客戶都是做了很久的,不是我帶他們賺了多少,而是我用心在指導,毫無保留的教技術,經常熬夜盯盤。深夜致電告知客戶出場或進單.
1900/1/1 0:00:00OKEx暫停提幣危機近期可能會看到解決的曙光。OKEx數據顯示,OKEx平臺幣OKB從11月18日晚開始自4.8USDT開始一路上漲,19日上午漲至5.738USDT,漲幅高達19.5%.
1900/1/1 0:00:00