原文链接:https://blog.chain.link/using-chainlink-with-hardhat/
原文题目:How to Use Chainlink With Hardhat
原文作者:Harry Papacharissiou

Hardhat专一于自动化和重复性工作以及它自带本地以太坊网络,Hardhat正疾速成为泛滥以太坊开发者们的开发环境选项之一。在本篇技术文中,咱们将展现如何应用Hardhat来构建、部署并和应用Chainlink网络的三种不同类型的智能合约进行交互:

  1. 获取内部数据的API消费者合约
  2. 从Chainlink喂价中读取最新价格的喂价消费者合约
  3. 应用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-boxcd chainlink-hardhat-boxyarn

实现此操作后,须要依照我的项目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 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

读取返回的随机数

Summary

概括

Hardhat是一个开发环境,容许以太坊开发者们在他们的智能合约中疾速整合Chainlink预言机,并能通过应用可反复的预约义工作轻松地部署和测试合约。

如果你是开发人员,并且想要将智能合约连贯到链下数据和零碎,能够拜访开发者文档并退出Discord上的技术探讨。如果你心愿安顿一个电话来更深刻地探讨预言机的集成,可点击此处分割。

更多无关本主题的信息

  • How to Fetch the Current Price of Cryptocurrencies in Solidity
  • Random Number Generation in Solidity
  • APIs, Smart Contracts, and How to Connect Them
  • 如何在Solidity中获取加密货币的以后价格
  • Solidity中的随机数生成
  • API,智能合约以及如何连贯它们

Website |  Twitter | Reddit | YouTube | Telegram | Events | GitHub | Price Feeds | DeFi