Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

zkSync Era智能合约部署教程

林中清泉筒
1212 0 0
注:本文来自@0xNing0x 推特,MarsBit整理如下:% B& D$ t: M( f$ q* k9 \/ B
1 为什么要在zkSync Era部署智能合约
9 b+ V! G* j5 R7 i; O5 h7 P" A8 _' _# T2 h6 T/ C2 C
超级空投规则的核心原则有两个:& z- v8 O, I- B, W8 d/ d% Z
--链上行为,包括跨链、Swap、LP、投票等( U5 e. U, v6 G" L$ B* a. O
--链上资产价值
3 z9 t5 _3 V/ u2 n, t) L为了猎取空投,我们需要尽可能丰富链上行为
% {9 z4 q* [# ?9 ]另一方面,因为ZkEVM的兼容性没OP L2方案好,zkSync可能需要空投奖励开发者迁移
' r" q$ f5 A4 N# C$ Y$ L# D
$ h; _, Z, l1 ~2 C( D0 q. `- e" m2 系统环境准备& h' i% \- |8 T, N5 N/ t

: B' J+ u" ]$ e* K# B+ Z--在本地电脑首先安装nodejs,设置好系统变量,再安装yarn和npm包管理  I: \8 I2 m0 t& f7 H
--windows系统,建议使用PowerShell进行以上操作
4 s2 N9 d9 C1 g, R- f2 |- T5 w--yarn包安装好运行会报错“该命令无法执行”,需要设置PowerShell权限。在PowerShell输入并执行“set-ExecutionPolicy RemoteSigned”命令,确认Y选项即可
+ R0 c- T/ z* F. o* t3 准备一些Göerli测试网ETH2 g% A! o  z- N3 R& Q4 K" ?
我们先尝试在zkSync Era测试网部署智能合约,熟练之后再到主网部署
% F/ [! x( S$ v, r! ?zkSync Era官方文档提供的hardhat合约部署模板,包括从Göerli测试网跨链到zkSync Era测试网的动作,所以我们需要准备一些Göerli测试网ETH6 L: Z0 T9 d& R# C9 s
推荐使用Alchemy的水龙头
3 V, _$ V5 i! L0 R8 `' p$ H& ~3 R* j# x" |/ A# u4 [9 k
https://goerlifaucet.com/
! b7 x" V; l1 M) F3 L4 ?+ I4 初始化项目
6 d* [! p, Z8 S% [+ V2 Y  {' k7 m' C: z" J. U; J; F0 E  _
在PowerShell中运行以下命令:/ ~+ h# i8 m$ S9 o0 G3 O6 ]7 u' ~: F( b
mkdir greeter-example
4 L7 M, Y* s& ?cd greeter-example
4 z+ v- Q9 v, n4 L0 W; U# ?% Ryarn init -y
' v" z  ~* r3 f# B+ N% L4 u3 C+ myarn 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; b9 n. d; l: W! G) [, z; Y4 ^
4 _1 z  N1 X8 \3 [8 B  R& _
5 配置& w' L6 T% i: s

. O) }. A' T/ X$ b, Y--使用“touch hardhat.config.ts”命令创建配置文件4 v8 w: B- ~& X  N; |; f
--使用“notepad.exe hardhat.config.ts”打开配置文件" Y3 Y5 l9 x. `/ Q, y7 {% U
--将附带连接里“configuration”下的代码复制粘贴到配置文件里,然后保存关闭
) [8 @9 F+ @6 t$ b% @- [" C- G2 ]2 R; ^' N
https://era.zksync.io/docs/api/hardhat/getting-started.html#configuration
. m' `/ j" Z. X' _6 编译合约
2 I2 n/ x' N: W, E$ o' G% j
1 o# d2 a# V" A& y* A4 u; d--使用“mkdir contracts”命令创建contracts文件夹,存放智能合约文件
( q, C0 Q( `. |, n( y  [--使用“touch contracts/Greeter.sol”创建智能合约文件4 \" C) L$ N5 p( e8 `+ j! i. Z/ x' A8 b
--使用“notepad.exe contracts/Greeter.sol”命令打开文件
0 z2 f) F" `8 _2 e' X. M--在官方文档找到Greeter.sol智能合约代码,将其粘贴到本地文件
5 p, w7 t5 d- q% x2 W1 h  w5 j--运行“yarn hardhat compile”命令编译7 L! y+ u; q# P- \9 L# z

5 g' d! W& w% @7 部署合约; _( H/ ]5 Z/ h* n/ w& H# X6 x6 C

: a  _$ }) g' t- ?7 A--使用“mkdir deploy”命令创建deploy文件夹
) M* u* [/ {# h  Z. R7 }) Q--使用“touch deploy/deploy.ts”创建部署配置文件' |/ i$ t% y* \, E0 h& {/ Q
--使用“notepad.exe deploy/deploy.ts”命令打开配置文件
# I1 }1 I) f& ~% w' i--在官方文档找到deploy.ts代码,将其粘贴到本地
5 H7 ]! p& P" q) `--将代码中的WALLET-PRIVATE-KEY替换为私钥
/ j' o6 A0 y- |, P7 |--运行“yarn hardhat deploy-zksync”以部署5 L$ v$ f4 F: Q5 f6 x& ^6 z" N6 w
" m( g' d. T9 J( f& j1 w* P* H
8 脚本动作: [7 ]# p  \8 K2 T: K! }
  J  _. p0 A) M4 k9 e( v! Q
部署成功后,该脚本将:1 j! w# j( K2 d8 D
--从 Goerli 转 0.001 ETH 到 zkSync8 l5 Z4 ?& ^( u
--部署Greeting带有消息“Hi there!”的合约。到zkSync Era 测试网
1 A" @5 F3 l$ Q# H  M0 o--从调用该方法的合约中检索消息greet()
8 \# V, c4 N+ w, [' h4 C# M  `--使用该方法更新合约中的问候消息setGreeting()+ N$ n- B; a' `
--再次从合约中检索消息
2 ?  O/ O" N  N* s; d以上就是我的zkSync Era部署智能合约教程
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

林中清泉筒 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    6