Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

zkSync Era智能合约部署教程

林中清泉筒
1400 0 0
注:本文来自@0xNing0x 推特,MarsBit整理如下:
4 n$ e. Y2 f7 U4 a! ?3 x+ t1 为什么要在zkSync Era部署智能合约, a  W4 }) v, m  _) a, ^

( D. y9 G) m& ~% |超级空投规则的核心原则有两个:; ]' G% K* d* E; W  c/ R8 d6 N& I
--链上行为,包括跨链、Swap、LP、投票等
) F/ o: h7 v! K+ P/ s--链上资产价值
# j9 e5 F# p/ H4 N$ g6 w  d! e为了猎取空投,我们需要尽可能丰富链上行为) u+ x/ d+ ~7 A/ b+ P% S1 U
另一方面,因为ZkEVM的兼容性没OP L2方案好,zkSync可能需要空投奖励开发者迁移% {7 h- @8 E9 r; }2 W
) ?" r- W0 X) g" q# x. v* Z
2 系统环境准备
6 Q6 x! G, J, |3 n
2 u4 o, E  d4 Q) B/ ~5 ?+ N--在本地电脑首先安装nodejs,设置好系统变量,再安装yarn和npm包管理2 L4 L# t. W: g, ^) |2 y9 v
--windows系统,建议使用PowerShell进行以上操作5 ?8 t! v3 w. G
--yarn包安装好运行会报错“该命令无法执行”,需要设置PowerShell权限。在PowerShell输入并执行“set-ExecutionPolicy RemoteSigned”命令,确认Y选项即可; |8 {# w0 r$ a/ w6 R- N/ Y  v
3 准备一些Göerli测试网ETH, M8 R6 J1 y( I$ k
我们先尝试在zkSync Era测试网部署智能合约,熟练之后再到主网部署
  u" P7 }. I, g$ y- gzkSync Era官方文档提供的hardhat合约部署模板,包括从Göerli测试网跨链到zkSync Era测试网的动作,所以我们需要准备一些Göerli测试网ETH. R( b* T7 w# L: K/ [2 g
推荐使用Alchemy的水龙头* {$ q+ A1 S! Q, y- |, k( H
/ {2 a8 Z8 x  n* K& d  y
https://goerlifaucet.com/% h( @8 A. u: @! y# z0 g' d( B
4 初始化项目" A; b# F) M3 T+ ^0 R
) {& ?/ t$ \# I8 w6 j- b9 O# p
在PowerShell中运行以下命令:
( q( I8 [( }; h. X0 R4 Wmkdir greeter-example
) }: H* F$ w! Y' `cd greeter-example
0 l% U  a: d# Eyarn init -y
" z4 f0 y+ n" h  eyarn 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* U* p! D$ m( f7 ~
$ L1 ]: n3 Z7 I0 C
5 配置
9 q, v' \* m9 T) I: V: J! a' D; R' f$ c  f4 A7 Z8 t( b
--使用“touch hardhat.config.ts”命令创建配置文件
8 P- {) Q% l+ U5 Z- a- J--使用“notepad.exe hardhat.config.ts”打开配置文件9 d- N4 V$ {1 g$ w7 o1 j. M/ }
--将附带连接里“configuration”下的代码复制粘贴到配置文件里,然后保存关闭9 h$ h$ |# Y. F; r/ R4 L
, b! ^! I4 n  H0 Z8 i: g/ @2 j
https://era.zksync.io/docs/api/hardhat/getting-started.html#configuration1 Y" G3 n- y: b4 ?+ B4 e- f( L
6 编译合约
. G' [3 R5 K) b- _. B
( X2 J" B6 y- s# c7 V- E--使用“mkdir contracts”命令创建contracts文件夹,存放智能合约文件! {" |! S5 T! f( q
--使用“touch contracts/Greeter.sol”创建智能合约文件1 y# C2 A. W3 T/ W. T1 D4 U- Y
--使用“notepad.exe contracts/Greeter.sol”命令打开文件( v) M0 p" H, c8 v
--在官方文档找到Greeter.sol智能合约代码,将其粘贴到本地文件
: b# q. E) S2 w--运行“yarn hardhat compile”命令编译- ?. O1 p: {! M
. w  X: h$ V' l- h( |. i. G3 |
7 部署合约! m! b. v* O6 d0 Y' ^, T: B
1 g4 K: X! z0 i8 K# l2 B
--使用“mkdir deploy”命令创建deploy文件夹
4 z) X1 w5 t# ]7 y--使用“touch deploy/deploy.ts”创建部署配置文件
: L! S  M* U0 ^3 l  J--使用“notepad.exe deploy/deploy.ts”命令打开配置文件; y( b( H6 c% Z3 ?; u/ _
--在官方文档找到deploy.ts代码,将其粘贴到本地
$ \$ Z* @+ p: M' A. _--将代码中的WALLET-PRIVATE-KEY替换为私钥5 Y7 a2 y) ~' |& ^2 T
--运行“yarn hardhat deploy-zksync”以部署) @  ^8 z( a& o

. C5 H& f! ~8 g4 G0 F8 脚本动作
3 E& [2 y/ ^% ^/ O( R' C- g) G. z2 G2 F; y  V8 r- w# S" ^6 X9 |" X
部署成功后,该脚本将:9 X6 H: u4 S2 G. J5 j2 c
--从 Goerli 转 0.001 ETH 到 zkSync2 p* h3 G2 l) U1 {: x
--部署Greeting带有消息“Hi there!”的合约。到zkSync Era 测试网! X* F( n9 j# v# S$ I6 p5 g
--从调用该方法的合约中检索消息greet()
: |  T/ X$ P% g--使用该方法更新合约中的问候消息setGreeting()
+ b8 ]6 R1 d# L" B  q% u--再次从合约中检索消息
5 {$ s0 f) f; K4 `# x以上就是我的zkSync Era部署智能合约教程
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

林中清泉筒 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    6