Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

zkSync Era智能合约部署教程

林中清泉筒
1275 0 0
注:本文来自@0xNing0x 推特,MarsBit整理如下:, M; i# ]( Z3 ?7 E2 K) I
1 为什么要在zkSync Era部署智能合约0 \1 ]# b2 I- I( Z/ }7 ?% h" Z

; ?: {! `# Y  X. L超级空投规则的核心原则有两个:
% m* g3 q1 Y8 \5 T/ H, S$ Y; M--链上行为,包括跨链、Swap、LP、投票等
! D# t- d0 E  B$ N% N- j, G# G! B; r--链上资产价值
& C7 G4 {, }( }. q! d. Q为了猎取空投,我们需要尽可能丰富链上行为
* ^+ a. r. ]6 T另一方面,因为ZkEVM的兼容性没OP L2方案好,zkSync可能需要空投奖励开发者迁移
" h( p, y& u1 x/ U) w5 _
$ }. S' u# F- |2 w2 系统环境准备" U( x6 Q. Y/ I3 W

0 J5 f( o4 S, |4 Y7 @& k% B--在本地电脑首先安装nodejs,设置好系统变量,再安装yarn和npm包管理$ ?8 w! ^# [* E+ y% n# g
--windows系统,建议使用PowerShell进行以上操作( B1 n! Z* _0 i. D" f
--yarn包安装好运行会报错“该命令无法执行”,需要设置PowerShell权限。在PowerShell输入并执行“set-ExecutionPolicy RemoteSigned”命令,确认Y选项即可  v$ ]9 K" X' G+ C- V; K4 v  m7 N
3 准备一些Göerli测试网ETH  j0 g; `, ]4 h8 ?. V
我们先尝试在zkSync Era测试网部署智能合约,熟练之后再到主网部署
9 V) H" X4 N) ~8 ~7 o0 ^zkSync Era官方文档提供的hardhat合约部署模板,包括从Göerli测试网跨链到zkSync Era测试网的动作,所以我们需要准备一些Göerli测试网ETH9 W2 D5 u8 Z4 @5 \) Z" Q
推荐使用Alchemy的水龙头- d# R' K  o& ~* ~; `4 B
2 C$ C0 E& H1 ?. o9 z6 o
https://goerlifaucet.com/- _5 `* H7 s1 g* H
4 初始化项目* B4 {' t9 g# ]. G
3 E3 Z. @& A4 X  q: Q, K
在PowerShell中运行以下命令:# T  C5 f' i) V7 j! }7 C' x5 g  `1 V1 A
mkdir greeter-example4 J) _* {% M4 p
cd greeter-example
( x% c# g, z- Z4 j9 M# @8 @yarn init -y6 z% m' w# G" l" O' e5 v
yarn add -D typescript ts-node @types/node [email protected]^5.7.2 zksync-web3 @ethersproject/hash @ethersproject/web hardhat @matterlabs/hardhat-zksync-solc @matterlabs/hardhat-zksync-deploy
' {+ A, A; w. i: ]& m( e) S0 K1 f8 T$ a2 e. X) n$ r
5 配置; W/ f' K4 G1 c- k9 u1 ~" S
8 I( A" a" p2 W- g; B( t
--使用“touch hardhat.config.ts”命令创建配置文件
) s& g/ U& N6 f2 Z3 k--使用“notepad.exe hardhat.config.ts”打开配置文件2 e. C) l( l2 `0 A- N' _4 l7 Y$ Z
--将附带连接里“configuration”下的代码复制粘贴到配置文件里,然后保存关闭
5 q/ r! ?& K% `8 X3 U" g3 @# M  i# D4 q+ L* V+ z$ Z
https://era.zksync.io/docs/api/hardhat/getting-started.html#configuration( k9 H% I$ l& v  N( t& k' Z
6 编译合约
4 e; m# T% Q' ^( p; r& F/ |
( j9 ~9 g2 N% L1 a  ^# p# n. o# c--使用“mkdir contracts”命令创建contracts文件夹,存放智能合约文件
3 H. I9 d2 ^8 I7 T--使用“touch contracts/Greeter.sol”创建智能合约文件
" m4 ?% A, c# \0 S--使用“notepad.exe contracts/Greeter.sol”命令打开文件% Y/ H# l( }, h  [
--在官方文档找到Greeter.sol智能合约代码,将其粘贴到本地文件4 Q. B9 P' S0 O8 r* k$ c9 ~9 e" ]
--运行“yarn hardhat compile”命令编译4 P% f8 n" {" G1 c+ j/ ?

$ e& C1 N" H5 V0 N: q# a7 部署合约. T+ |& l1 R: q$ [! l; t
+ g6 |( |% L. t4 j4 I( x
--使用“mkdir deploy”命令创建deploy文件夹
. J- x. b# ~8 d--使用“touch deploy/deploy.ts”创建部署配置文件, A: x" h2 ^/ A7 T, J% \% j- D( J
--使用“notepad.exe deploy/deploy.ts”命令打开配置文件
+ ]9 G# }! y' U: t  Y--在官方文档找到deploy.ts代码,将其粘贴到本地4 R* e: A. G  l' {
--将代码中的WALLET-PRIVATE-KEY替换为私钥
/ H4 Z& |  c! I1 P0 Q8 ~--运行“yarn hardhat deploy-zksync”以部署' _$ ]$ D* Y" Z( a

7 ]1 H& ^- G" y2 x. b3 e8 脚本动作
1 e. h3 j% n. Z, m4 w0 D5 c! |! r0 Q8 a
部署成功后,该脚本将:
' T" O& z! w) p--从 Goerli 转 0.001 ETH 到 zkSync
" z6 j+ a- i$ a' O--部署Greeting带有消息“Hi there!”的合约。到zkSync Era 测试网  L" H# E% H0 n8 F) W4 ^! y- P
--从调用该方法的合约中检索消息greet()
- p  t: }: h, V--使用该方法更新合约中的问候消息setGreeting()5 y4 u: o- f% n2 s
--再次从合约中检索消息8 O# I/ p3 D6 Y6 B* @9 X
以上就是我的zkSync Era部署智能合约教程
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

林中清泉筒 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    6