> For the complete documentation index, see [llms.txt](https://relationlabs.gitbook.io/semantic-sbt/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://relationlabs.gitbook.io/semantic-sbt/semanticsbt-zh/untitled/shi-yong-hardhat-bu-shu-he-yue.md).

# 使用Hardhat部署合约

## Hardhat简介

**Hardhat**是一个方便在以太坊系列的链上上进行构建的任务运行器。使用它可以帮助开发人员管理和自动化构建智能合约和dApp的过程中固有的重复任务，以及轻松地围绕此工作流程引入更多功能。

**Hardhat**还内置了**Hardhat 网络**，**Hardhat 网络**是为开发而设计的本地以太坊网络。 用来部署合约，运行测试和**调试代码**。

## 环境搭建

### 安装Node.js

因为Hardhat是基于JavaScript编写的，所以需要确保运行系统中已经安装了Node.js >=12.0

#### Ubuntu

```shell
sudo apt update
sudo apt install curl git
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt install nodejs
```

#### MacOS

```shell
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.35.2/install.sh | bash
nvm install 12
nvm use 12
nvm alias default 12
npm install npm --global 
```

### 安装Hardhat

在Node环境安装成功后，就可以安装Hardhat了

```
npm install --save-dev hardhat
```

## 合约部署

### 下载合约

进入github，clone对应仓库

```
git clone git@github.com:relationlabs/relation-sbt.git
```

### 准备编译环境

```
npm install --save-dev hardhat
```

### 编译合约

```
cd relation-sbt
npm install
npx hardhat compile
```

### 部署合约

部署合约时，通过设置"network"参数来选择部署的环境。network可以是localhost，也可以测试网或者主网环境

```
npx hardhat run scripts/deploy.js --network {$network}
```
