如何在 zkSync Era 主网部署智能合约

gm365 热度: 34081

zkSync Era 上部署合约教程,帮你避坑

原文作者:gm365

原文来源:twitter

注:本文来自@gm365 推特,MarsBit整理如下:

前面演示过,如何用 5 分钟在 EVM 兼容链上部署一个智能合约。但刚刚尝试在 zkSync Era 上部署合约,却花了我 2 个小时

好消息是,我之前踩过的坑,你不用重踩一遍

准备好花 15 分钟来摸索的话,那可以来尝试一下

大致流程

注意:Era 不是完全的 EVM 兼容链,目前无法使用 remix 这类工具部署合约,当前建议使用 hardhat 命令行工具

🔹 命令行安装必须的软件包

🔹 准备合约文件、部署代码文件等

🔹 编译合约(此处有坑)

🔹 部署合约

🔹 验证合约(此处亦有坑)

部署教程

整个过程中,我大量、反复参考了 zkSync 官方文档及 @cutepandaweb3 的 Mirror 文档

我不打算赘述,请自行完整且认真参阅以下两份文档:

https://era.zksync.io/docs/dev/building-on-zksync/hello-world.html

合约编译的坑

不论是官方教程,还是第三方教程,在合约编译时,极大概率都会报错(我在这里卡了俩小时)

@cutepandaweb3 大佬说是网络环境问题。为此,我还用一台VPS测试,同样失败

解决方案:本地重装一遍 zksync-solc 这个包

https://era.zksync.io/docs/api/hardhat/hardhat-zksync-solc.html

zkSync Era

zkSync Era

合约部署

解决了合约编译的天坑,部署合约就顺利多了

🔹 请确保你 `deploy.ts` 文档填入了正确的 Era 主网信息、部署合约用的钱包私钥心思

💰 部署合约花费相当低,当前 gas (20 gWei)下,只花了约 $0.3 左右

zkSync Era

zkSync Era

合约验证

🔸 此处有坑:按照官方文档方法,各种姿势,反复测试,均告失败

🎯 解决方案

🔹 改文件 deploy.ts,加一行代码

🔹 提取 constructor arguments

🔹 区块链浏览器验证合约

🔹 多个参数都不能填错

官方文档:

🌍 https://era.zksync.io/docs/api/tools/block-explorer/contract-verification.html#enter-contract-details

注:此步骤非必需

zkSync ErazkSync Era

声明:本文为入驻“MarsBit 专栏”作者作品,不代表MarsBit官方立场。
转载请联系网页底部:内容合作栏目,邮件进行授权。授权后转载时请注明出处、作者和本文链接。未经许可擅自转载本站文章,将追究相关法律责任,侵权必究。
提示:投资有风险,入市须谨慎,本资讯不作为投资理财建议。
免责声明:本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况,及遵守所在国家和地区的相关法律法规。
关键字:zkSync Era