Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

zkSync Era智能合约部署教程

林中清泉筒
1240 0 0
注:本文来自@0xNing0x 推特,MarsBit整理如下:
( K+ c/ }- l$ A1 为什么要在zkSync Era部署智能合约+ i+ y$ \# p5 g1 T1 J  |

" G& s" M1 E% T超级空投规则的核心原则有两个:
; z) |% F( E0 _+ v6 i--链上行为,包括跨链、Swap、LP、投票等
% E1 s- e. _, U% p  a--链上资产价值: I. F9 _+ b7 z6 c5 N0 A! {
为了猎取空投,我们需要尽可能丰富链上行为
$ e6 {) w3 U8 k另一方面,因为ZkEVM的兼容性没OP L2方案好,zkSync可能需要空投奖励开发者迁移3 v; X  M, @3 g) J4 Q* J8 R( q4 X

3 s- q$ |1 F" H: i5 p2 系统环境准备
3 J2 A2 Z4 B9 F9 H6 i
3 c5 `. `& h( }3 h9 B' B--在本地电脑首先安装nodejs,设置好系统变量,再安装yarn和npm包管理
) \. R' q3 ~, F1 J. L! |--windows系统,建议使用PowerShell进行以上操作$ C3 n1 B7 _/ ]' [3 _0 G
--yarn包安装好运行会报错“该命令无法执行”,需要设置PowerShell权限。在PowerShell输入并执行“set-ExecutionPolicy RemoteSigned”命令,确认Y选项即可! }$ }# W& L$ v; S
3 准备一些Göerli测试网ETH: n$ ]5 B7 E2 V
我们先尝试在zkSync Era测试网部署智能合约,熟练之后再到主网部署
& }% b7 k, F* A1 j% yzkSync Era官方文档提供的hardhat合约部署模板,包括从Göerli测试网跨链到zkSync Era测试网的动作,所以我们需要准备一些Göerli测试网ETH
& @, p7 s7 ^4 H3 p推荐使用Alchemy的水龙头8 {' F  L! Z. T8 M& a' m
6 S1 ]: K. q4 e
https://goerlifaucet.com/( C4 s4 D7 Q6 e$ B+ o4 A
4 初始化项目
5 j/ `7 ~  p  K! x$ o& s2 V4 D% I" b9 N0 i* o0 X6 |
在PowerShell中运行以下命令:: K1 e. X" o& J+ a
mkdir greeter-example
1 i$ @3 k" ^/ ~5 ucd greeter-example
9 _+ r" y5 Q6 f0 o" gyarn init -y6 f# f$ h: l* R. F* @1 i
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
) b* h4 B2 }! V2 [. `7 g( D$ {3 e! v' s
5 配置
8 Y4 a  i5 c! G9 v0 t/ L5 u( m0 Y6 K: }5 u: ^
--使用“touch hardhat.config.ts”命令创建配置文件  e( d2 E; e/ d7 Q% D
--使用“notepad.exe hardhat.config.ts”打开配置文件$ |! m- u9 n5 v$ Q" t
--将附带连接里“configuration”下的代码复制粘贴到配置文件里,然后保存关闭
- b! @9 f( J* V; X; d9 d0 s! X" r* P% T* a1 U5 ]
https://era.zksync.io/docs/api/hardhat/getting-started.html#configuration; l9 ^, l7 }# e( N' {( Y
6 编译合约4 G: Z4 n4 ^8 s. |9 o3 q) E$ B# L; D

9 J4 n% m& _6 @. B. }--使用“mkdir contracts”命令创建contracts文件夹,存放智能合约文件
- W  V3 P# h/ ~2 t0 ~: o) ]--使用“touch contracts/Greeter.sol”创建智能合约文件$ f) U2 ?$ R8 R* `) s( b. U! E
--使用“notepad.exe contracts/Greeter.sol”命令打开文件
$ h" I6 X* q1 T/ U' p5 C  `--在官方文档找到Greeter.sol智能合约代码,将其粘贴到本地文件
, L. {( w0 K6 q7 k( d5 S--运行“yarn hardhat compile”命令编译
) q6 ^" H& i7 i) G0 y+ s9 w% x' z2 _
7 部署合约
9 R6 b6 }7 D; k# P/ v' r% _& M) h4 t  S& g6 \% M- N' m
--使用“mkdir deploy”命令创建deploy文件夹2 M, q! g4 ]6 y! o; }' t9 v
--使用“touch deploy/deploy.ts”创建部署配置文件
3 d& y. W: z  E--使用“notepad.exe deploy/deploy.ts”命令打开配置文件. k) o/ h) s2 j4 d  P& b2 y
--在官方文档找到deploy.ts代码,将其粘贴到本地5 f) `1 Y  O) B6 y0 H3 p3 `
--将代码中的WALLET-PRIVATE-KEY替换为私钥5 x* H& I9 u' Y8 L
--运行“yarn hardhat deploy-zksync”以部署
3 l! h; S, h/ s8 }
3 {+ B4 f. {, ^  L" t0 Q8 脚本动作
- e$ ~+ |" v6 \0 S
1 U+ j% ?- j* D' L' x部署成功后,该脚本将:7 t6 R7 K! J# N: B0 U5 {+ f( @
--从 Goerli 转 0.001 ETH 到 zkSync6 h: x0 Y6 X  L6 [
--部署Greeting带有消息“Hi there!”的合约。到zkSync Era 测试网
8 T: d7 G3 \7 p+ E; H$ @7 _0 @--从调用该方法的合约中检索消息greet()2 f; A" G& g- Z- ]& U/ i0 f. R
--使用该方法更新合约中的问候消息setGreeting()% R1 z4 C; z# i/ _
--再次从合约中检索消息
1 @9 o2 V# j  E4 E3 Y以上就是我的zkSync Era部署智能合约教程
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

林中清泉筒 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    6