Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

zkSync Era智能合约部署教程

林中清泉筒
1434 0 0
注:本文来自@0xNing0x 推特,MarsBit整理如下:
2 `4 y: _9 e& d/ B4 L1 为什么要在zkSync Era部署智能合约, K3 ^0 A/ R. B9 T; g4 G' P

0 {( U; o% r# n8 M4 R) E超级空投规则的核心原则有两个:
6 f% Z! i8 _2 U# s' r$ J--链上行为,包括跨链、Swap、LP、投票等
- B7 t0 {& l8 D  c--链上资产价值
6 g& a! S2 w8 v) }! l  t1 ?/ H为了猎取空投,我们需要尽可能丰富链上行为
; `( v. y" u9 ?" j另一方面,因为ZkEVM的兼容性没OP L2方案好,zkSync可能需要空投奖励开发者迁移
( L' D4 V- X. y! ]+ k" t% v9 Z2 B6 \# r) c( Z  H; x. L
2 系统环境准备2 B2 U5 b4 N3 R$ f* `
. G" b! W1 n: J  P& R- G1 X% E. q
--在本地电脑首先安装nodejs,设置好系统变量,再安装yarn和npm包管理; q1 ?4 Q+ t9 O* W* [/ ^, F
--windows系统,建议使用PowerShell进行以上操作
  t9 R. O/ y9 t--yarn包安装好运行会报错“该命令无法执行”,需要设置PowerShell权限。在PowerShell输入并执行“set-ExecutionPolicy RemoteSigned”命令,确认Y选项即可$ H6 n+ b) G/ _
3 准备一些Göerli测试网ETH
3 z3 l0 _( C" a- `" e" O我们先尝试在zkSync Era测试网部署智能合约,熟练之后再到主网部署8 U5 w# x: m$ G, s
zkSync Era官方文档提供的hardhat合约部署模板,包括从Göerli测试网跨链到zkSync Era测试网的动作,所以我们需要准备一些Göerli测试网ETH
3 y" p# X9 W# W: n推荐使用Alchemy的水龙头
+ r: c7 ?' x* K! {# P
# M6 b" V: g7 \$ {1 U; a- T" N+ X7 ?https://goerlifaucet.com/
7 ~# x# f. n/ Z3 ]$ v" [4 初始化项目
7 O/ c7 Q8 Z. g! u8 ~4 x3 r3 p& R, Q6 L$ T( o
在PowerShell中运行以下命令:2 F7 C9 \: w( v8 L% c5 b7 y
mkdir greeter-example
' m6 V/ U/ O" }. d3 w/ ccd greeter-example
7 A' u9 m& f) `. O1 @; K9 Dyarn init -y
" D6 x) _$ `% v9 W6 Hyarn 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-deploy2 z0 o$ _: x, P0 v' W" ~  p. K" T

( r/ D' v# L# U# z, h% l% x! s5 配置" R- _. J7 f# W% Z! w  J6 C7 m2 ?; v8 W5 _

2 F" B0 P( }  L--使用“touch hardhat.config.ts”命令创建配置文件2 ~5 L2 g- p7 ~) P
--使用“notepad.exe hardhat.config.ts”打开配置文件7 l  ~. F; G  v8 T7 f4 m! |( {: o
--将附带连接里“configuration”下的代码复制粘贴到配置文件里,然后保存关闭% d  L" E5 o2 m8 ]: }7 R. l" V

: Q' {5 H" V  S/ l1 N) c8 X/ fhttps://era.zksync.io/docs/api/hardhat/getting-started.html#configuration7 t3 U( A/ N( T" Q4 L7 \+ E' N
6 编译合约
) L, f8 R. H" Z0 ]9 M( g+ ~7 Z: m9 @3 G9 w1 D8 n- s' n# J) `
--使用“mkdir contracts”命令创建contracts文件夹,存放智能合约文件0 a0 t( p8 f3 \( w
--使用“touch contracts/Greeter.sol”创建智能合约文件
; j2 U! o' K8 T" e--使用“notepad.exe contracts/Greeter.sol”命令打开文件
0 M6 D5 P( R6 Z: Z3 b--在官方文档找到Greeter.sol智能合约代码,将其粘贴到本地文件  O; i8 z* c  h% O5 ^
--运行“yarn hardhat compile”命令编译
+ b4 q$ P9 D; T8 U, ?
2 N9 ^8 d) q+ k6 S( C8 A7 部署合约4 s  u' t% c' B$ F! h+ c

; n/ V) _7 w: s/ t$ [9 k3 v--使用“mkdir deploy”命令创建deploy文件夹
$ L( Q, }! `+ T" m: ]$ o--使用“touch deploy/deploy.ts”创建部署配置文件& A; F6 W' ], i4 _, R
--使用“notepad.exe deploy/deploy.ts”命令打开配置文件
5 b3 T! _9 T8 G% ^2 D1 l, _3 L9 s5 r$ C--在官方文档找到deploy.ts代码,将其粘贴到本地
. E4 {" u7 n+ V5 Y8 k* a2 o  w--将代码中的WALLET-PRIVATE-KEY替换为私钥( y0 p- K5 j2 o: t' }
--运行“yarn hardhat deploy-zksync”以部署+ @6 J% ~/ q* g6 x/ g+ W
4 A( E% p7 J- G) F, O
8 脚本动作$ H: D6 }+ K: J5 U$ G! r% {

# C* e# W4 R$ h. C- z部署成功后,该脚本将:$ `: v& z  n% n7 o" m# w
--从 Goerli 转 0.001 ETH 到 zkSync# `/ w4 P! R, a
--部署Greeting带有消息“Hi there!”的合约。到zkSync Era 测试网
" {, q' K; i* y. i7 Z' T9 a" N--从调用该方法的合约中检索消息greet()8 X! @+ N1 t+ B* b4 A$ @- e6 \
--使用该方法更新合约中的问候消息setGreeting()2 D8 }% ]" J6 ~$ M: g; Q; F! e  i
--再次从合约中检索消息; Y9 E( f' ~" O2 B3 S2 W( \
以上就是我的zkSync Era部署智能合约教程
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

林中清泉筒 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    6