译文出自:登链翻译计划
译者:翻译小组
校对:Tiny熊
概述
Aave,以前称为ETHLender,现在是DeFi领域的前沿应用。Aave是该领域中第一个提出闪电贷概念的人。在闪电贷之前,你必须用一个超额抵押的资产来借贷另一个资产。例如,如果我想借一个DAI),我将不得不存入另一个超过该价值的加密货币。换句话说,你必须有钱才能借到钱。闪电贷打破了这种想法。他们为一个新的贷款系统打开了大门,并且做到了这一点,允许用户在不提供任何东西作为抵押的情况下借款。
在本教程中,你将了解到闪电贷是如何实现的,以及如何自己实现执行一笔闪电贷。
关于Aave
摘自Aave官网:Aave是一个去中心化的非托管流动性市场协议,用户可以作为存款人或借款人参与。储户向市场提供流动性,以赚取被动收入,而借款人能够以过度抵押或不足抵押的方式借款。
这个定义完全正确的,但如果你不熟悉DeFi行业的行话,你可能并不理解它的含义。你可以把Aave看成是一个去中心化的伪银行。Aave没有一个验证所有交易的中央银行,而是利用智能合约,以自动化的方式完成所有这些工作。存款人将他们的代币放入Aave,并开始为他们的存款赚取利息。另一方面,借款人会做相反的事情。他们从Aave中取出钱,并开始对所借的金额计息。不过他们必须超额抵押才能借到钱。
对于那些不想把钱存入Aave,而只想借钱的人来说,还有一种方法。这就是我们前面提到的闪电贷。
关于闪电贷
之前提到的闪电贷是一种在区块链上借入资产的新方式。最初由Aave实现,其他趋势性的DeFi协议,如dYdX迅速跟进,增加了这个新功能。所有以太坊交易的一个特性,使闪电贷成为可能。而这个关键特性就是原子性#:~:text=一个原子交易就是,直接拒绝整个系列。)。
北冥社区创始人北冥:数字资产价格走势无法提前预知,核心在于如何应对:6月19日19:00,MXC抹茶特邀分析师,北冥社区创始人北冥做客MXC抹茶社区进行分享。北冥表示:“交易是对认知的变现,通过数字资产交易获取收益,离不开技术分析。均线缠论系统,有助于远离盲目多空。“中枢”一词源自《缠论》第108课,《缠论》作者禅师通过归纳演绎等数学方法,对任何走势进行统一的定义和分类,并给出一个较为合理的解决方案,《缠论》最厉害的地方就是“完全分类“,大部分走势都是无法提前被预知的,核心就在于应对。缠者,价格重叠区间也,买卖双方阵地战之区域也;禅者,破解之道也。以阵地战为中心,比较前后两段之力度大小。大者,留之,小者,去之。”[2020/6/19]
一个交易的操作系列是不可分割和不可消减的,它就是原子的。简单来说就是:要么_所有执行_,要么_什么都没有_发生。没有中间状态!闪电贷利用原子性,允许用户在不提交抵押品的情况下先进行借款。首先,每当你在闪电贷中借入一项资产时,你必须支付贷款金额的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
亚马逊Prime播放的新纪录片展示比特币如何改变非洲:关于南非比特币先驱的新纪录片《非洲银行业:比特币革命》正在亚马逊Prime上推出。一同发布的还有一份研究报告,该报告介绍了有关非洲加密货币的全面和最新信息。(Decrypt)[2020/5/20]
}
总而言之,我们首先要导入执行闪电贷所需的依赖。其中一些依赖关系被称为抽象合约)。一个抽象合约至少有个函数没有实现。你可以把它想象成一个房子的图纸。一个建筑商使用这个图纸来建造房子。然而,在我们的比喻中,图纸是一个抽象合约,你是建造者,而房子是派生合约。
在我们的案例中,闪电贷合约使用的是一个名为FlashLoanReceiverBaseV1的抽象合约,它提供了必要的实现细节,如闪电贷的偿还。
现在来逐行解读代码:
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单位的数量。第四,传递额外的空数据。
动态 | V神阐述如何进行ETH委托挖矿:V神回复网友提问“1.可以通过合约合租一个validator(平民化参与,共享投票身份)吗?2.一个客户端可以跑多个valifator (共享机器)吗?”表示,“你开一个validator,需要设置两个公钥:签名的公钥和取款的公钥。Phase 2后,不一定需要设置取款公钥,也可以设置取款合约。签名的私钥能withdraw,withdraw完成后validator里面的资金都给取款合约的地址。所以你开新的validator到时候,可以先发比如1以太币,设置取款合约,这个合约的规则是,谁deposit多少谁按照比例withdraw多少。一段时间后,你发withdraw的交易。现在因为奖励这个validator的balance是33.6以太币(加 5%),33.6以太币给合约,合约的规则分配1.05给你,8.4, 10.5和13.65 给其他的参与者。签名的私钥是你的,谁能withdraw多少的规则是合约定的。别人能看一个还未activated的validator的withdraw合约的规则,如果他们觉得是合理的,则他们能发他们的币给这个validator,这个是委托的方法。”[2019/10/22]
24-31.接下来第二个函数executeOperation。这就是我们利用闪电贷的地方。它在flashLoan函数成功执行后被内部调用。它需要4个主要参数,分别是:
1).必须偿还贷款的储备资产地址。2).资产的数额3).协议书所收取的费用4).额外的参数,由函数内部使用。
33.检查我们是否收到了适当的贷款金额,否则它将抛出一个错误信息。
34.在这里,可以根据你自己的使用场景,定制自己的实现逻辑。
40.我们通过使用SafeMaths库提供的add函数,将费用和贷款金额加在一起。
41.最后,把总的债务或贷款金额还给贷款人。
声音 | Galaxy Digital创始人:山寨币需要向比特币学习如何逐步吸引用户建立生态系统:加密公司Galaxy Digital创始人Mike Novogratz认为,并不是所有的山寨币都会成功,但是一些具有潜力和价值的必须寻求建立渠道,以使人们和机构更容易购买它们。他表示:”有很多垃圾筹集了很多资金,但没有可持续性。他们承诺要建立许多协议和生态系统,然后吸引用户使用该生态系统,使之成为投机资产。为了保持投机市场的活力,需要时不时以新闻和更新的形式加油。我们必须将这些代币视为风险投资。”同时他补充说,这些山寨币之所以失败,是因为它们在如何将人们引入其生态系统方面没有发挥作用。他强调这样的山寨币必须仰赖比特币,并观察该生态系统如何为逐步采用奠定基础。(AMBCrypto)[2019/10/7]
部署合约
首先,打开你的MetaMask,将你的网络设置为Kovan测试网络。Kovan测试网络
使用这个gist代码来定义flashloan智能合约的依赖关系。点击每个链接并将代码粘贴到你之前创建的相应的Solidity文件中:a.ILendingPoolb.IFlashLoanReceiverc.ILendingPoolAddressesProviderd.FlashLoanReceiverBasee.WithdrawableSolidity文件
切换到SolidityCompiler标签。将编译器设置为0.6.6并点击compileFlashLoan.sol。
你应该看到一些警告,但没有错误信息。
现在,我们已经准备好将合约部署到Kovan网络。切换到Deploy&RunTransctions标签。把部署环境,从JavaScriptVM改为InjectedWeb3。这应该会打开MetaMask询问你的权限。
部署环境
布鲁金斯学会:全球监管机构之间没有就如何处理加密货币达成协议:据福布斯消息,布鲁金斯学会昨日发布关于央行和加密货币的研究报告。报告指出,世界各地的银行监管机构并未采取统一的方式来规范加密货币。该报告还指出,目前的大型经济体中,没有任何一个国家的央行认真考虑是否推出自己的加密货币。然而,美联储、日本央行、加拿大央行、英国央行和欧洲央行均表示正在评估央行加密货币的利与弊。研究表明,央行领导人目前主要对于加密货币潜在的逃税和可能表示担心。[2018/4/18]
确保合约选择的是FlashLoan.sol。在部署按钮旁边的文本字段中提供LendingPool的地址。在我们的例子中,它将是0x506B0B2CF20FAA8f38a4E2B524EE43e1f4458Cc5。然后点击Deploy(部署),它应该会打开MetaMask。注意。所有已部署的合约地址列表可在这里找到。在那里,你可以找到Aave支持的各种借贷池的地址。虽然每个代币的地址都不同,但程序是相同的。
点击确认(Confirm)。这样做后,你应该看到MetaMask发出的成功通知。之后侧边栏应该有一个“已部署的合约”。为闪电贷准备资金
在新的已部署合约标签下,可以复制已部署合约的地址。我们稍后会回到这一步;与此同时,我们需要给闪电贷合约添加一些DAI。这是因为闪电贷需要合约中的资金才能成功执行。为此,你可以跳转到水龙头链接,获得一些DAI代币。点击Faucet,粘贴你的MetaMask钱包地址,然后等待确认。
获得确认后,我们将把DAI代币添加到MetaMask中。为此,打开你的MetaMask。点击底部的AddToken。在代币合约地址栏输入0xF795577d9AC8bD7D90Ee22b6C1703490b6512FD。这是Kovan的DAI的合约地址。点击下一步后,它应该显示你先前从水龙头得到的DAI。
img
接下来,点击DAI代币。点击发送,它应该打开一个类似于下图的窗口:
输入我们的闪电贷的合约地址,之前已经复制了该地址。输入我们要发送的金额。在我们的案例中,发送10DAI。然后点击下一步。点击确认!你现在已经成功地给你的闪电贷合约发送了10DAI。
执行闪电贷
回到Remix,在部署的闪电贷合约下,还有一个flashloan函数。这个函数需要一个我们想使用的资产的合约地址。在我们的例子中,它是Kovan测试网的DAI合约,是0xF795577d9AC8bD7D90Ee22b6C1703490b6512FD。正确填写该字段后,你现在可以点击交易按钮,如下图所示:
点击按钮后,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:将改变我们的世界!
标签:TPSENDNGPmetamaskhttps://etherscan.iolend币交易行情startingpointmetamask官网钱包
尊敬的用户: 应项目方要求,现暂停SMN/USDT的买入交易,卖出交易不受影响,恢复买入交易时间以公告为准。为您带来不便,敬请谅解,如有任何问题,请联系WBF官方客服.
尊敬的用户: WBF即将在开放区上线DPS/USDT交易对,具体上线时间请关注官方公告。项目介绍:巴厘岛基于体育赛道区块链的现状,利用区块链技术来保障行业落地实现技术赋能产业难以实现,基于此,巴.
关于DIBI平台整体品牌升级的公告 尊敬的用户: 为了进一步完善DIBI生态全球战略布局以及进一步拓展欧洲市场,DIBI生态与英国卡尔蒙特量子基金达成了战略投资协议.
尊敬的用户: WBF天天理财产品第十五期-10天TRX定期理财将于8月5日12:00正式上线。详情如下: 认购说明: 1.本次认购仅支持APP端,可在APP端“挖矿宝”-“定期理财”中认购,电脑.
链闻消息,跨链资产桥ChainSwap发布与去中心化跨链交易协议Anyswap集成的进度和更新.
尊敬的Bibox用户: Bibox创新区将于2021年8月7日(UTC8)上线CrustNetwork(CRU)。该项目已通过精选提前尝鲜渠道正式上线.