Hardhat专注于自动化和重复性任务以及它自带本地以太坊网络,Hardhat正快速成为众多以太坊开发者们的开发环境选项之一。在本篇技术文中,我们将展示如何使用Hardhat来构建、部署并使用Chainlink网络的三种不同类型的智能合约进行交互: --获取外部数据的API消费者合约 --从Chainlink喂价中读取最新价格的喂价消费者合约 --使用Chainlink VRF请求随机数的VRF消费者合约 概览和前置条件 Hardhat是面向以太坊开发者的开发环境,可帮助开发者管理和自动化重复性的任务。这些任务是简单可重复函数,它们包含某些元数据,比如任务需要哪些参数。一种示例任务是向已部署的合约中充值ETH或其他代币。 Hardhat还带有自己的本地开发网络Hardhat Network,该网络专注于Solidity调试和额外的日志记录功能,并为开发者提供了一个本地开发环境,非常适合开发和优化代码。 Hardhat的许多功能都由插件提供,这些插件本质上是注入到项目的任务或外部代码。Hardhat有两个流行的插件web3和ethers.js,开发者可用任意一个与以太坊网络进行交互。 在我们的源代码中,我们创建了一个“ Chainlink Hardhat Box”,它是一个Hardhat项目,包含所有任务以及在Solidity智能合约中需要实现和部署的,且由当前Chainlink网络提供的主要功能的智能合约。 第一步是下载Chainlink Hardhat Box的源代码并安装所需的依赖项: git clone https://github.com/pappas999/chainlink-hardhat-box 完成此操作后,需要按照项目readme文件中的说明来设置所需的环境变量。在本教程中,我们将使用Kovan测试网。现在,可以开始部署智能合约了。 部署智能合约 如本文第一段提到的,Chainlink Hardhat Box项目有三个智能合约。你可以部署全部三个合约,也可以仅部署其中的一部分。为了选择要部署的合约并设置所需的环境特定参数,可以对部署脚本进行适当的修改。如果保留所有内容不变,它将使用默认值将全部三个合约部署到Kovan网络。在下面的示例中,我们将详解并使用项目中的默认值。 为了将我们的智能合约部署到Kovan网络,我们将使用hardhat-deploy插件,这是可重复部署和测试的Hardhat插件。为部署合约,我们运行以下命令: npx hardhat deploy 部署Chainlink Hardhat Box 运行Hardhat任务 现在已经部署了智能合约,我们将利用Hardhat任务来与部署的合约进行交互。 使用Chainlink喂价 喂价消费者合约有读取喂价的任务,会从指定的喂价合约中读取最新价格。如果使用了部署中的默认值,它将在Kovan网络上查询ETH/USD的价格。 npx hardhat read-price-feed --contract 0x0ef1181768A99E522FB5535fA2e0D172B36d3479npx hardhat read-price-feed --contract 0x0ef1181768A99E522FB5535fA2e0D172B36d3479 从喂价合约中读取数据 请求外部数据 API消费者合约有两个任务,一个基于一组参数请求外部数据,另一个查看数据请求的结果。首先需要向该合约充值一定的LINK代币: npx hardhat fund-link --contract 0xc719F4B720cB7cBcabB09dF0040b47f3F9CE6a58 充值合约 充完代币后,可以通过将多个参数传递到请求数据任务来请求外部数据。其中合约参数是强制性的,其余是可选的: npx hardhat request-data --contract 0xc719F4B720cB7cBcabB09dF0040b47f3F9CE6a58 请求外部数据 成功发出对外部数据的请求后,可以使用读取数据任务读取从Chainlink预言机中返回的结果。 npx hardhat read-data --contract 0xc719F4B720cB7cBcabB09dF0040b47f3F9CE6a58 读取返回的数据 使用Chainlink VRF VRFConsumer合约有两个任务,一个是请求随机数,另一个是读取随机数请求的结果。首先需要向该合约充值一定的LINK代币: npx hardhat fund-link --contract 0x524Bf15C1d63581Fcf27bC34105542F53AA378Bb 充值合约 充完代币后,可以使用请求随机数任务来执行VRF请求,并传递所需的种子值: npx hardhat request-random-number --contract 0x524Bf15C1d63581Fcf27bC34105542F53AA378Bb --seed '777' 使用Chainlink VRF请求随机数 成功发出对随机数的请求后,可以使用读取随机数任务读取Chainlink预言机返回的经过验证的随机数。 npx hardhat read-random-number --contract 0x524Bf15C1d63581Fcf27bC34105542F53AA378Bb 概括 Hardhat是一个开发环境,允许以太坊开发者们在他们的智能合约中快速整合Chainlink预言机,并能通过使用可重复的预定义任务轻松地部署和测试合约。 如果你是开发人员,并且想要将智能合约连接到链下数据和系统,可以访问开发者文档并加入Discord上的技术讨论。如果你希望安排一个电话来更深入地讨论预言机的集成,可点击此处联系。 —- 编译者/作者:Chainlink 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
如何在Hardhat中使用Chainlink
2021-07-08 Chainlink 来源:区块链网络
LOADING...
相关阅读:
- ShibaSwap 安全吗? DeFi 安全审查给它的分数仅为 3%2021-07-08
- MoonBaby(月亮宝宝)7月8日BSC首发2021-07-08
- 波卡Web3.0项目JamboNetwork(JAM)最新投研报告2021-07-08
- 官方|不仅仅是存储:Filecoin上的商机2021-07-08
- Floki Inu 是受 Elon Musk 推文启发的模因币,是最新的 DeFi 项目,以 749,002021-07-08