譯文出自:登鏈翻譯計劃
譯者:翻譯小組
校對:Tiny熊
概述
Aave,以前稱為ETHLender,現在是DeFi領域的前沿應用。Aave是該領域中第一個提出閃電貸概念的人。在閃電貸之前,你必須用一個超額抵押的資產來借貸另一個資產。例如,如果我想借一個DAI),我將不得不存入另一個超過該價值的加密貨幣。換句話說,你必須有錢才能借到錢。閃電貸打破了這種想法。他們為一個新的貸款系統打開了大門,并且做到了這一點,允許用戶在不提供任何東西作為抵押的情況下借款。
在本教程中,你將了解到閃電貸是如何實現的,以及如何自己實現執行一筆閃電貸。
關于Aave
摘自Aave官網:Aave是一個去中心化的非托管流動性市場協議,用戶可以作為存款人或借款人參與。儲戶向市場提供流動性,以賺取被動收入,而借款人能夠以過度抵押或不足抵押的方式借款。
這個定義完全正確的,但如果你不熟悉DeFi行業的行話,你可能并不理解它的含義。你可以把Aave看成是一個去中心化的偽銀行。Aave沒有一個驗證所有交易的中央銀行,而是利用智能合約,以自動化的方式完成所有這些工作。存款人將他們的代幣放入Aave,并開始為他們的存款賺取利息。另一方面,借款人會做相反的事情。他們從Aave中取出錢,并開始對所借的金額計息。不過他們必須超額抵押才能借到錢。
對于那些不想把錢存入Aave,而只想借錢的人來說,還有一種方法。這就是我們前面提到的閃電貸。
關于閃電貸
之前提到的閃電貸是一種在區塊鏈上借入資產的新方式。最初由Aave實現,其他趨勢性的DeFi協議,如dYdX迅速跟進,增加了這個新功能。所有以太坊交易的一個特性,使閃電貸成為可能。而這個關鍵特性就是原子性#:~:text=一個原子交易就是,直接拒絕整個系列。)。
日本經濟安全大臣:日本方面有必要考慮如何使用數字貨幣:日本經濟安全大臣小林鷹之:日本方面有必要考慮如何使用數字貨幣,以便在國際規則制定中發揮主導作用。(金十)[2021/10/14 20:29:08]
一個交易的操作系列是不可分割和不可消減的,它就是原子的。簡單來說就是:要么_所有執行_,要么_什么都沒有_發生。沒有中間狀態!閃電貸利用原子性,允許用戶在不提交抵押品的情況下先進行借款。首先,每當你在閃電貸中借入一項資產時,你必須支付貸款金額的0
/**Thisfunctioniscalledafteryourcontracthasreceivedtheflashloanedamount*/functionexecuteOperation(address_reserve,uint256_amount,uint256_fee,bytescalldata_params)externaloverride{require(_amount<=getBalanceInternal(address(this),_reserve),"Invalidbalance,wastheflashLoansuccessful?");////Yourlogicgoeshere.//!!Ensurethat*thiscontract*hasenoughof`_reserve`fundstopaybackthe`_fee`!!//uinttotalDebt=_amount
}
總而言之,我們首先要導入執行閃電貸所需的依賴。其中一些依賴關系被稱為抽象合約)。一個抽象合約至少有個函數沒有實現。你可以把它想象成一個房子的圖紙。一個建筑商使用這個圖紙來建造房子。然而,在我們的比喻中,圖紙是一個抽象合約,你是建造者,而房子是派生合約。
在我們的案例中,閃電貸合約使用的是一個名為FlashLoanReceiverBaseV1的抽象合約,它提供了必要的實現細節,如閃電貸的償還。
直播|Philip Gradwell:如何知道新一輪牛市是否到來:金色財經 · 直播主辦的金點Trend《以太坊之外的DeFi,香嗎? 》馬上開始!16:30準時開播!本場嘉賓來自Chainalysis的首席經濟分析師分享“如何知道新一輪牛市是否到來”,請掃碼移步收聽![2020/8/28]
現在來逐行解讀代碼:
1首先,我們必須定義solidity編譯器的版本。在這個例子中,它是0.6.6。
2-4為智能合約導入依賴項#6FlashLoanV1合約是繼承自FlashLoanReceiverBaseV1合約。
8傳遞了Aave的一個借貸池提供者的地址。在這個例子中,我們提供的是DAI借貸池的地址。
13定義了一個叫做flashLoan的函數。參數是想要閃電貸的資產地址。在這種情況下,該資產是DAI。
14由于這里不需要任何閃電貸的數據,所以我們傳遞一個空字符串。
15.定義我們想要借出的DAI的數量。
16.通過Aave提供的ILendingPoolV1初始化LendingPool接口,這樣我們就可以調用flashLoan函數。#17.最后,調用flashLoan函數。該函數需要4個主要參數。首先,傳遞將接收貸款的地址。在我們的例子中,它是當前合約。其次,我們傳遞資產的地址。在我們的例子中,它是Kovan網絡中DAI的地址。第三,傳遞資產的數量,在我們的案例中,它是1個ether單位的數量。第四,傳遞額外的空數據。
24-31.接下來第二個函數executeOperation。這就是我們利用閃電貸的地方。它在flashLoan函數成功執行后被內部調用。它需要4個主要參數,分別是:
1).必須償還貸款的儲備資產地址。2).資產的數額3).協議書所收取的費用4).額外的參數,由函數內部使用。
幣情觀察室 | 全球遇冷 比特幣橫盤震蕩 如何布局進場:4月3日16:30,金色盤面邀請行情大V星河區塊鏈做客金色財經《幣情觀察室》直播間,將分享《全球遇冷 比特幣橫盤震蕩 如何布局進場》,敬請關注,掃描下圖二維碼即可觀看。[2020/4/3]
33.檢查我們是否收到了適當的貸款金額,否則它將拋出一個錯誤信息。
34.在這里,可以根據你自己的使用場景,定制自己的實現邏輯。
40.我們通過使用SafeMaths庫提供的add函數,將費用和貸款金額加在一起。
41.最后,把總的債務或貸款金額還給貸款人。
部署合約
首先,打開你的MetaMask,將你的網絡設置為Kovan測試網絡。Kovan測試網絡
使用這個gist代碼來定義flashloan智能合約的依賴關系。點擊每個鏈接并將代碼粘貼到你之前創建的相應的Solidity文件中:a.ILendingPoolb.IFlashLoanReceiverc.ILendingPoolAddressesProviderd.FlashLoanReceiverBasee.WithdrawableSolidity文件
切換到SolidityCompiler標簽。將編譯器設置為0.6.6并點擊compileFlashLoan.sol。
你應該看到一些警告,但沒有錯誤信息。
現在,我們已經準備好將合約部署到Kovan網絡。切換到Deploy&RunTransctions標簽。把部署環境,從JavaScriptVM改為InjectedWeb3。這應該會打開MetaMask詢問你的權限。
部署環境
確保合約選擇的是FlashLoan.sol。在部署按鈕旁邊的文本字段中提供LendingPool的地址。在我們的例子中,它將是0x506B0B2CF20FAA8f38a4E2B524EE43e1f4458Cc5。然后點擊Deploy(部署),它應該會打開MetaMask。注意。所有已部署的合約地址列表可在這里找到。在那里,你可以找到Aave支持的各種借貸池的地址。雖然每個代幣的地址都不同,但程序是相同的。
行情 | 救贖說幣:WFEE最好不要買入,不管外界如何利好:據救贖分析,WFEE走勢圖可以看出,下跌之后,一直橫在那里,然后后面一波上漲漲幅1.3倍左右,接著再高點跌下來7倍。無論官方怎么發文也好,外界怎么利好也好,這幣沒有做市值管理,如果有,就不會跌那么慘,也不會橫盤那么久。所以這個幣種堅決不能買入。幣圈沒有底線,更沒有下限。技術分析來說,買盤不強,但是賣盤也幾乎沒有。但是賣盤只是暫時沒有,項目方還是手里有幣的。但是買盤沒有就真的沒有了。[2018/7/16]
點擊確認(Confirm)。這樣做后,你應該看到MetaMask發出的成功通知。之后側邊欄應該有一個“已部署的合約”。為閃電貸準備資金
在新的已部署合約標簽下,可以復制已部署合約的地址。我們稍后會回到這一步;與此同時,我們需要給閃電貸合約添加一些DAI。這是因為閃電貸需要合約中的資金才能成功執行。為此,你可以跳轉到水龍頭鏈接,獲得一些DAI代幣。點擊Faucet,粘貼你的MetaMask錢包地址,然后等待確認。
獲得確認后,我們將把DAI代幣添加到MetaMask中。為此,打開你的MetaMask。點擊底部的AddToken。在代幣合約地址欄輸入0xF795577d9AC8bD7D90Ee22b6C1703490b6512FD。這是Kovan的DAI的合約地址。點擊下一步后,它應該顯示你先前從水龍頭得到的DAI。
img
接下來,點擊DAI代幣。點擊發送,它應該打開一個類似于下圖的窗口:
輸入我們的閃電貸的合約地址,之前已經復制了該地址。輸入我們要發送的金額。在我們的案例中,發送10DAI。然后點擊下一步。點擊確認!你現在已經成功地給你的閃電貸合約發送了10DAI。
執行閃電貸
回到Remix,在部署的閃電貸合約下,還有一個flashloan函數。這個函數需要一個我們想使用的資產的合約地址。在我們的例子中,它是Kovan測試網的DAI合約,是0xF795577d9AC8bD7D90Ee22b6C1703490b6512FD。正確填寫該字段后,你現在可以點擊交易按鈕,如下圖所示:
芬蘭政府因不知如何存放沒收的比特幣犯難:芬蘭政府正為如何存放沒收來的2000余個比特幣而犯難。根據該國政府周二發布的指導方針,執法機構和人員不得持有沒收的加密貨幣,執法人員不得將沒收的加密貨幣存儲在交易所里,必須要保持它們處于離線狀態且不能在互聯網上被訪問。此外,該文件還指出,當局不能將比特幣等加密貨幣視為貨幣,也不能作為支付手段。[2018/2/21]
點擊按鈕后,MetaMask會彈出交易確認。確認交易后,你應該收到一條成功信息。在Remix的終端,你應該看到一個URL。點擊后會跳轉到Etherscan。
remix
在代幣轉移下,你應該看到三個不同的轉賬:
紅色的箭頭強調了從LendingPool轉移1個DAI到我們的合約。橙色的箭頭表示將1個DAI連同費用一起返還給Landingpool。藍色的箭頭表示產生利息的DAI。
小結
我們成功地編寫了閃電貸的智能合約,它能夠從資金池中借入DAI,支付閃電貸費用,然后在一次交易中償還所借金額。不需要沒有任何抵押物就借到了錢!
本翻譯由CellETF贊助支持。
來源:HowtoMakeaFlashLoanusingAave
參考資料
登鏈翻譯計劃:https://github.com/lbc-team/Pioneer
翻譯小組:https://learnblockchain.cn/people/412
Tiny熊:https://learnblockchain.cn/people/15
閃電貸:https://aave.com/flash-loans/
閃電貸:https://learnblockchain.cn/tags/閃電貸
Aave官網:https://aave.com/
超額抵押:https://www.oxfordreference.com/view/10.1093/oi/authority.20110803100257900
dYdX:https://dydx.exchange/
資產間套利:https://en.wikipedia.org/wiki/Arbitrage
RemixIDE:https://remix.ethereum.org/
以太坊智能合約:https://ethereum.org/en/developers/docs/smart-contracts/
跟我學Solidity:開發環境:https://learnblockchain.cn/article/1755
MetaMask:https://metamask.io/
Solidity:https://learnblockchain.cn/docs/solidity/
全面掌握Solidity智能合約開發:https://learnblockchain.cn/column/1
抽象合約:https://learnblockchain.cn/docs/solidity/contracts.html#abstract-contract
ILendingPool:https://gist.github.com/akp111/e254b2b5b98aa5a79f3f8dc501dfaedb#file-ilendingpool-sol
IFlashLoanReceiver:https://gist.github.com/akp111/e254b2b5b98aa5a79f3f8dc501dfaedb#file-iflashloanreceiver-sol
ILendingPoolAddressesProvider:https://gist.github.com/akp111/e254b2b5b98aa5a79f3f8dc501dfaedb#file-ilendingpooladdressesprovider-sol
FlashLoanReceiverBase:https://gist.github.com/akp111/e254b2b5b98aa5a79f3f8dc501dfaedb#file-flashloanreceiverbase-sol
Withdrawable:https://gist.github.com/akp111/e254b2b5b98aa5a79f3f8dc501dfaedb#file-withdrawable-sol
這里:https://docs.aave.com/developers/v/1.0/deployed-contracts/deployed-contract-instances
水龍頭:https://testnet.aave.com/faucet/DAI
CellETF:https://celletf.io/?utm_souce=learnblockchain
HowtoMakeaFlashLoanusingAave:https://www.quicknode.com/guides/defi/how-to-make-a-flash-loan-using-aave
免責聲明:作為區塊鏈信息平臺,本站所發布文章僅代表作者個人觀點,與鏈聞ChainNews立場無關。文章內的信息、意見等均僅供參考,并非作為或被視為實際投資建議。
本文來源于非小號媒體平臺:
登鏈社區
現已在非小號資訊平臺發布105篇作品,
非小號開放平臺歡迎幣圈作者入駐
入駐指南:
/apply_guide/
本文網址:
/news/10232365.html
免責聲明:
1.資訊內容不構成投資建議,投資者應獨立決策并自行承擔風險
2.本文版權歸屬原作所有,僅代表作者本人觀點,不代表非小號的觀點或立場
上一篇:
比爾·蓋茨再談ChatGPT:將改變我們的世界!
本文主要講述保險基金的作用、保險基金的原則和保險基金的運用規則等一些常見的關于保險基金的基本問題。 什么是保險基金 保險基金用來避免交易者的倉位被自動減倉.
1900/1/1 0:00:00Gate.io將于2021年8月6日16:00上線Buying.com(BUY)交易。Buying.com為希望將產品上傳到其原生平臺并提供1小時送達服務的企業提供服務.
1900/1/1 0:00:00要想贏,就一定不能怕輸。不怕輸,結果未必能贏。但是怕輸,結果則一定是輸。當前整個市場,參與IPFS項目的礦商有很多,產品也很多,比如:算.力、實體服務器、滿算.力、聯合挖.礦等等.
1900/1/1 0:00:00親愛的大幣網(Dcoin)用戶:大幣網(Dcoin)已完成對永續合約系統功能的升級維護,現已恢復正常交易.
1900/1/1 0:00:00“我覺得中國新經濟形態產生了,所以不能光講金融經濟、實體經濟,還要加一個科技經濟。這么多科學技術創新要以經濟方式運作的,科技經濟將像文化經濟一樣,成為重要經濟生態.
1900/1/1 0:00:00尊敬的XT用戶: 為了提供更好的杠桿交易服務,XT.COM杠桿交易區現已增加多個資產與交易對,具體如下:新增可抵押資產:TRX,XLM新增可借貸資產:TRX.
1900/1/1 0:00:00