# 临阵磨枪-部署zkSync智能合约教程

By [链光使者 ｜ Dev](https://paragraph.com/@jenguan) · 2024-03-01

---

使用 zksync-cli和 Hardhat快速部署，官方文档参考 [https://docs.zksync.io/build/quick-start/hello-world.html](https://docs.zksync.io/build/quick-start/hello-world.html)

### 一、安装及环境

**下载安装**

node.js: [https://nodejs.cn/download/](https://nodejs.cn/download/)

vscode: [https://code.visualstudio.com/](https://code.visualstudio.com/)

Git: [https://git-scm.com/downloads](https://git-scm.com/downloads)

**创建项目**

1、在自己电脑上创建一个空文件夹(名字无所谓)

2、打开电脑的终端，mac在启动台中搜‘终端’，windows直接按你键盘上的Win+R 后，在运行框里输入cmd确定就行了。

3、将创建的文件夹拖拽到终端中打开，或者 cd+文件夹路径

4、打开后在终端中输入：`npx zksync-cli create hello-zksync` （此处hello-zksync是项目名称，可以随意起最好英文的） 然后回车，等待一会会出现一些选项让你配置，具体可以参考下图：（每一步选择或输入完按回车，上下选择选项）

![](https://storage.googleapis.com/papyrus_images/0ada305d6a1103cd51fab47d8311d3a1953bdc33d9ea6d2dc169d59708f7dfe3.png)

5、由于网络关系每个人等待时间不一样，当显示成功后，在你创建的空文件夹里面就会出现一个新的项目文件夹（例如我的项目文件夹：hello-zksync），将“hello-zksync”文件夹拖拽或直接在vscode中打开(这里一定要注意，要将生成的项目文件夹作为项目根目录，也就是将终端创建的文件夹拖拽到Vscode,不然编译部署会报错失败的)，之后打开集成终端如下图：

![](https://storage.googleapis.com/papyrus_images/b1365457887ff84402e51ce97a8a14a2145f18a19d8f68d45c3844686e3b6a3a.png)

6、安装pnpm：

7、在终端中输入 `npm install -g pnpm`

8、mac电脑输入：`sudo npm install -g pnpm` 回车后需要输入你的管理员密码进行全局安装。

![](https://storage.googleapis.com/papyrus_images/1aab02877653cbea41c2d7adc6599adc9bc651e8770b68fcfc4a401bb7b51553.png)

9、pnpm安装成功后显示如上图，之后继续在终端输入 `pnpm install` 回车安装依赖，等待安装完成后显示如下：

![](https://storage.googleapis.com/papyrus_images/975eb6f9660bd7c3aeaf71b61d63e6c06d15074a6adab52b4c3cd9057d482c0b.png)

**二、编译和部署合约**

1、点击左侧文件区域的package.json将文件代码中的 测试"deploy" 整行替换成下方主网代码（注意不要少逗号以及多加少加空格）：

`"deploy": "hardhat deploy-zksync --script deploy.ts --network zkSyncMainnet",`

![](https://storage.googleapis.com/papyrus_images/d5d1df140076b9104670ac744e659f8d90dca770b190965af3de497a91ef0619.png)

2、修改保存代码后，继续在终端输入 `pnpm run compile` 或者 `pnpm compile` 编译你的合约代码，编译成功后如下图：

![](https://storage.googleapis.com/papyrus_images/f9d9cedd0ff90d8891ffd295d832983ca0a28838f4a2d67fb83a9879bb9ba4a2.png)

3、最后在终端输入 `pnpm run deploy` 回车部署你的合约，确保钱包内有足够的ETH。

![](https://storage.googleapis.com/papyrus_images/005691ca918577104402c6aab8f4845da5c085bee7e8e4a4af2e664cf307e74d.png)

4、部署成功后会看到部署的合约地址，在[zkSync浏览器](https://era.zksync.network/)中输入查询信息，正常情况是自动验证合约的。

5、其他钱包部署：任何配置不需要变，只需要在左侧 .env 文件内修改成你要部署的钱包私钥，然后依次在终端执行编译`pnpm run compile` 和 部署`pnpm  run deploy`的步骤即可。

![](https://storage.googleapis.com/papyrus_images/eb899940216d269e909008b56fd5dfe093473d2f6c3defea06b86db292f9e875.png)

教程写的有点仓促，可能有疏忽的地方，如遇到BUG问题欢迎私信[链光使者 | Dev](https://twitter.com/JenGuan_eth) 或

+V: pzg0203

**感谢你的点赞关注，2024币需A10！**

---

*Originally published on [链光使者 ｜ Dev](https://paragraph.com/@jenguan/zksync)*
