1 为什么要在zkSync Era部署智能合约, K3 ^0 A/ R. B9 T; g4 G' P
超级空投规则的核心原则有两个:
--链上行为,包括跨链、Swap、LP、投票等
--链上资产价值
为了猎取空投,我们需要尽可能丰富链上行为
另一方面,因为ZkEVM的兼容性没OP L2方案好,zkSync可能需要空投奖励开发者迁移
9 Z2 B6 \# r) c( Z H; x. L2 系统环境准备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进行以上操作
--yarn包安装好运行会报错“该命令无法执行”,需要设置PowerShell权限。在PowerShell输入并执行“set-ExecutionPolicy RemoteSigned”命令,确认Y选项即可$ H6 n+ b) G/ _
3 准备一些Göerli测试网ETH
我们先尝试在zkSync Era测试网部署智能合约,熟练之后再到主网部署8 U5 w# x: m$ G, s
zkSync Era官方文档提供的hardhat合约部署模板,包括从Göerli测试网跨链到zkSync Era测试网的动作,所以我们需要准备一些Göerli测试网ETH
推荐使用Alchemy的水龙头

https://goerlifaucet.com/
4 初始化项目
! u8 ~4 x3 r3 p& R, Q6 L$ T( o
在PowerShell中运行以下命令:2 F7 C9 \: w( v8 L% c5 b7 y
mkdir greeter-example
cd greeter-example
yarn init -y
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-deploy2 z0 o$ _: x, P0 v' W" ~ p. K" T

5 配置" R- _. J7 f# W% Z! w J6 C7 m2 ?; v8 W5 _
--使用“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

https://era.zksync.io/docs/api/hardhat/getting-started.html#configuration7 t3 U( A/ N( T" Q4 L7 \+ E' N
6 编译合约
7 Z: m9 @3 G9 w1 D8 n- s' n# J) `
--使用“mkdir contracts”命令创建contracts文件夹,存放智能合约文件0 a0 t( p8 f3 \( w
--使用“touch contracts/Greeter.sol”创建智能合约文件
--使用“notepad.exe contracts/Greeter.sol”命令打开文件
--在官方文档找到Greeter.sol智能合约代码,将其粘贴到本地文件 O; i8 z* c h% O5 ^
--运行“yarn hardhat compile”命令编译

7 部署合约4 s u' t% c' B$ F! h+ c
--使用“mkdir deploy”命令创建deploy文件夹
--使用“touch deploy/deploy.ts”创建部署配置文件& A; F6 W' ], i4 _, R
--使用“notepad.exe deploy/deploy.ts”命令打开配置文件
--在官方文档找到deploy.ts代码,将其粘贴到本地
--将代码中的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, O8 脚本动作$ H: D6 }+ K: J5 U$ G! r% {
部署成功后,该脚本将:$ `: v& z n% n7 o" m# w
--从 Goerli 转 0.001 ETH 到 zkSync# `/ w4 P! R, a
--部署Greeting带有消息“Hi there!”的合约。到zkSync Era 测试网
--从调用该方法的合约中检索消息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部署智能合约教程



