LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 区块链资产 > 如何在Hardhat中使用Chainlink

如何在Hardhat中使用Chainlink

2021-07-08 Chainlink 来源:区块链网络

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
cd chainlink-hardhat-box
yarn

完成此操作后,需要按照项目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

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...