关于智能合约:如何在Hardhat中使用Chainlink

57次阅读

共计 2687 个字符,预计需要花费 7 分钟才能阅读完成。

原文链接: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-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 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

正文完
 0