Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

zkSync Era智能合约部署教程

林中清泉筒
1206 0 0
注:本文来自@0xNing0x 推特,MarsBit整理如下:' _1 q- ^  }1 K1 x4 m6 _) L* G
1 为什么要在zkSync Era部署智能合约
  h/ G+ Q: Y' [8 O) |$ D, {! X7 ?6 ~+ q
超级空投规则的核心原则有两个:
( |5 j" `) Q3 V$ t: Y--链上行为,包括跨链、Swap、LP、投票等. Y: h1 U" f0 T2 A
--链上资产价值
% {1 o* |  T& O  y* c8 l) @为了猎取空投,我们需要尽可能丰富链上行为3 e# v2 {7 q+ `( [3 o4 ]  V% F
另一方面,因为ZkEVM的兼容性没OP L2方案好,zkSync可能需要空投奖励开发者迁移
$ u8 [7 C) l1 [5 d: ?4 F2 A+ j" T& X; u' r4 O) t& K
2 系统环境准备
1 W- ~( a9 R9 ^4 H9 S1 O
+ r. e( D) L8 ^' s$ m7 J--在本地电脑首先安装nodejs,设置好系统变量,再安装yarn和npm包管理- P7 z8 g% ]: c9 t. Z. A
--windows系统,建议使用PowerShell进行以上操作& Q. l  ], K+ U, p
--yarn包安装好运行会报错“该命令无法执行”,需要设置PowerShell权限。在PowerShell输入并执行“set-ExecutionPolicy RemoteSigned”命令,确认Y选项即可
2 U$ C- x+ I6 j3 准备一些Göerli测试网ETH  l( L( [5 _; {# ]4 z7 h
我们先尝试在zkSync Era测试网部署智能合约,熟练之后再到主网部署6 t  T6 ^: w& g* `2 R
zkSync Era官方文档提供的hardhat合约部署模板,包括从Göerli测试网跨链到zkSync Era测试网的动作,所以我们需要准备一些Göerli测试网ETH
$ c5 f0 S6 z! h8 F1 \推荐使用Alchemy的水龙头! R' C1 N$ B# {7 _# W/ K/ h6 O

  E) t: f3 r9 W6 E. O- Shttps://goerlifaucet.com/) m. z! `( ^! V# d9 s, U7 a
4 初始化项目
" H. D6 Z) A% p3 z3 w
$ q( f! f3 B; `+ v- f" P( T  T在PowerShell中运行以下命令:
* i8 I/ N5 i8 h0 z( |% i5 \mkdir greeter-example
. n4 @6 `% M' Jcd greeter-example0 n. Y( j! o7 t( z" t
yarn init -y
6 ]$ O6 [% v6 H9 Iyarn 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
1 S9 H* @" _2 ~) _$ d& o
5 k1 e% g4 y& r( D* m# M5 配置+ D' k/ d: G5 D- o  y& k

7 y3 h9 E8 p# B) V: v: N3 N$ N2 |--使用“touch hardhat.config.ts”命令创建配置文件
' \& {- J2 x& T. r2 o--使用“notepad.exe hardhat.config.ts”打开配置文件
/ _. J2 B& N5 ?: c--将附带连接里“configuration”下的代码复制粘贴到配置文件里,然后保存关闭3 y' x, f% u1 v! G! [5 Y
1 G$ `+ D, h9 f. Z% u
https://era.zksync.io/docs/api/hardhat/getting-started.html#configuration
2 i' I2 F' {5 g( e6 `. p6 x6 编译合约
6 Z3 z4 z/ o; V# ?$ m; ?0 O1 A# {! V( r+ p: Y& @
--使用“mkdir contracts”命令创建contracts文件夹,存放智能合约文件
% o1 u3 d( l# a' K/ R--使用“touch contracts/Greeter.sol”创建智能合约文件6 @# o; ~" T0 ?: k8 H* Z3 W
--使用“notepad.exe contracts/Greeter.sol”命令打开文件
: L8 L9 r$ o- }( y7 o: }--在官方文档找到Greeter.sol智能合约代码,将其粘贴到本地文件
' V  e$ J$ D; Q5 |8 @, ?4 s+ f--运行“yarn hardhat compile”命令编译
  ]* ?* c- o: @: X) ^
- [2 W3 }5 v' L6 N9 |7 部署合约
& a( M3 A# V# b" C2 `, Q# M9 E
) q+ o% t4 ~+ @6 T6 {" P' k--使用“mkdir deploy”命令创建deploy文件夹" @$ E- j  t% m" n
--使用“touch deploy/deploy.ts”创建部署配置文件" ^6 o+ M4 P, F
--使用“notepad.exe deploy/deploy.ts”命令打开配置文件
+ r3 S$ Q+ y  t# a, D--在官方文档找到deploy.ts代码,将其粘贴到本地3 {% M( ~8 s: o7 }1 O" G
--将代码中的WALLET-PRIVATE-KEY替换为私钥8 w% U9 g/ G4 [% T% G# R
--运行“yarn hardhat deploy-zksync”以部署. S1 }% ~: l* r( M( U; h5 p
5 k  _6 Y2 z. r0 g0 O  h3 M1 j
8 脚本动作8 J: z" B. b0 I6 D+ B+ I/ D

! F2 G3 W5 Y, @5 K部署成功后,该脚本将:
! \" `! W% s5 }--从 Goerli 转 0.001 ETH 到 zkSync4 m+ i) T6 ?7 a% y0 @
--部署Greeting带有消息“Hi there!”的合约。到zkSync Era 测试网
. _9 f$ F$ `7 s) E--从调用该方法的合约中检索消息greet()
7 t. m* O! y$ u* j3 q7 y- p--使用该方法更新合约中的问候消息setGreeting()
% q' M' Q3 ^( a" w--再次从合约中检索消息3 J/ n2 l" X" ~* K
以上就是我的zkSync Era部署智能合约教程
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

林中清泉筒 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    6