Zksync Era合约部署超详细教程,避坑实录

这篇具有很好参考价值的文章主要介绍了Zksync Era合约部署超详细教程,避坑实录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

说明:

1.zksync era部署合约和ETH等网络不同,不能直接使用remix进行部署,官方出的解决方案是使用hardhat插件。

2.合约中的constructor需要传参进去,不能直接写入

3.官方的python sdk也是不能使用的状态。

系统环境:ubuntu 22.04

1.升级apt

sudo apt update

2.安装并激活NVM

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
source ~/.bashrc

3.安装NodeJS LTS版本

nvm install --lts

4.确认已成功安装 Node.js 和 npm

node --version
npm --version

能正常显示版本就安装成功了

5.创建文件夹并初始化环境

mkdir greeter-example
cd greeter-example
npm init -y
npm i -D typescript ts-node ethers@^5.7.2 zksync-web3@^0.14.3 hardhat @matterlabs/hardhat-zksync-solc @matterlabs/hardhat-zksync-deploy

ethers 版本当前只兼容v5.7.x

zksync-web3 版本需要对应本地版本

6.设置对应的文件

文件结构如图

Zksync Era合约部署超详细教程,避坑实录

hardhat.config.ts

import "@matterlabs/hardhat-zksync-deploy";
import "@matterlabs/hardhat-zksync-solc";

module.exports = {
  zksolc: {
    version: "1.3.5",
    compilerSource: "binary",
    settings: {},
  },
  defaultNetwork: "zkSyncTestnet",

  networks: {
    zkSyncTestnet: {
      url: "https://zksync2-testnet.zksync.dev",
      ethNetwork: "goerli", // Can also be the RPC URL of the network (e.g. `https://goerli.infura.io/v3/<API_KEY>`)
      zksync: true,
    },
  },
  solidity: {
    version: "0.8.17",
  },
};

 这是在测试网发布的例子,如果想在Era主网发布

url: "https://mainnet.era.zksync.io",
ethNetwork: "mainnet"  //或者改为你自己的infura ETH主网地址

修改这两项即可。

deploy文件夹下放部署脚本deploy.ts

import { Wallet, utils } from "zksync-web3";
import * as ethers from "ethers";
import { HardhatRuntimeEnvironment } from "hardhat/types";
import { Deployer } from "@matterlabs/hardhat-zksync-deploy";

export default async function (hre: HardhatRuntimeEnvironment) {
  console.log(`Running deploy script for the Greeter contract`);

  // 初始化钱包 填入私钥
  const wallet = new Wallet("your private key");

  // 创建deployer
  const deployer = new Deployer(hre, wallet);
  // 设置部署的合约名
  const artifact = await deployer.loadArtifact("Greeter");

  // 计算gas fee
  // 参数为合约中construct的参数
  const greeting = "Hi there!";
  const deploymentFee = await deployer.estimateDeployFee(artifact, [greeting]);

  //部署合约
  
  const parsedFee = ethers.utils.formatEther(deploymentFee.toString());
  console.log(`The deployment is estimated to cost ${parsedFee} ETH`);

  const greeterContract = await deployer.deploy(artifact, [greeting]);

  console.log("constructor args:" + greeterContract.interface.encodeDeploy([greeting]));

  const contractAddress = greeterContract.address;
  console.log(`${artifact.contractName} was deployed to ${contractAddress}`);
}

contracts文件夹下放需要部署的合约sol文件

举例:Greeter.sol

//SPDX-License-Identifier: Unlicense
pragma solidity ^0.8.0;

contract Greeter {
    string private greeting;

    constructor(string memory _greeting) {
        greeting = _greeting;
    }

    function greet() public view returns (string memory) {
        return greeting;
    }

    function setGreeting(string memory _greeting) public {
        greeting = _greeting;
    }
}

 7.编译合约

按规则放置完成之后,可以进行合约编译和部署

npx hardhat compile
npx hardhat deploy-zksync

部署完成之后会提示部署合约的地址和手续费用。文章来源地址https://www.toymoban.com/news/detail-452328.html

到了这里,关于Zksync Era合约部署超详细教程,避坑实录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Laravel 使用rdkafka_laravel详细教程(实操避坑)

    首先要看版本兼容问题,我的是Laravel5.6,PHP是7.3.13,所以需要下载兼容此的rdkafka,去 Packagist 搜索 kafka ,我用的是 enqueue/rdkafka选择里面0.10.5版本, 在 Laravel 项目中,通过 Composer 安装  enqueue/rdkafka  扩展包。在项目根目录下的  composer.json  文件中,添加以下依赖项: 也可

    2024年01月25日
    浏览(49)
  • 教你如何使用Docker部署Prometheus,全套教程,一步到位,避坑

    前言: 本文使用doker部署Prometheus,文中命令直接复制粘贴即可 一、概念 Prometheus是一个开源的系统监控和报警系统,它前身是SoundCloud的警告工具包。 二、组件介绍 1. Node Exporter :收集服务器硬件和操作系统信息 2. mysqld-exporter:收集mysql使用情况数据信息 3. cAdvisor:负责收集

    2023年04月16日
    浏览(59)
  • 用 Android Studio 打包 uni-app 的安卓apk;手把手教程、巨详细避坑

    Uni-app 离线打包 apk 1. Android Studio 下载 Android Studio官网 2. HBuilderX下载 HBuilderX下载 3. App离线SDK下载 Android 离线SDK - 正式版 下载后解压文件,将 HBuilder-Integrate-AS 重命名 build-template 并拷贝到一个专门打包用的文件夹下作为打包模板 该文件夹中有一个 simpleDemo 文件夹 即 build-temp

    2024年02月04日
    浏览(57)
  • 本地部署LLaMA-中文LoRA部署详细说明

    硬件环境 AMD 5950X 128GB RAM RTX 3090(24G VRAM) 操作系统 Ubuntu 18.04 编译环境(可选) llama.cpp 编译: 遇到Ubuntu18.04默认稳定版本gcc和g++不兼容问题,报错: 通过更新Ubuntu的gcc,g++版本后,make进行编译; Python虚拟环境 Python = 3.10.7 requirements.txt 安装CUDA,CUDA == 11.7; 卸载老版本: 安装新版本CUDA(实际为

    2024年02月13日
    浏览(52)
  • 区块链入门教程(9)--使用WeBASE-Front部署及调用合约

    FISCO BCOS除了可以使用控制台,还可以使用WeBASE-Front对合约进行可视化开发、编译、部署、调用。 开发一个最基本的HelloWorld智能合约,并编译、部署、调用。 智能合约概念: 智能合约概念于1995年由Nick Szabo首次提出,指以数字形式定义的能自动执行条款的合约,数字形式意味

    2024年02月17日
    浏览(39)
  • jeecg-boot微服务部署步骤详细说明

    大家好,我是小龙人。 通常小企业是如何成长起来的?接外包,然后将公司慢慢的养起来,最后开始研发自己的产品,产品上线,上市! 哈哈,可能有点理想化了,但是身边好多朋友都自己出去创业了,今儿个张三开了个公司,明儿个李四也注册了个公司,但是了解了下,

    2023年04月09日
    浏览(85)
  • 独立部署Xray反练平台——详细说明加举例xxe漏洞

    xray——详细使用说明(二)_萧风的博客-CSDN博客 xray 是一款功能强大的安全评估工具,由多名经验丰富的一线安全从业者呕心打造而成,主要特性有:检测速度快。发包速度快; 漏洞检测算法高效。支持范围广。大至 OWASP Top 10 通用漏洞检测,小至各种 CMS 框架 POC,均可以支持

    2024年02月09日
    浏览(41)
  • Prometheus部署指南:安装、配置、启动及与Grafana集成详细说明

    了解如何部署Prometheus,包括安装、配置、启动以及与Grafana的集成方法。适合需要监控和可视化大规模指标数据的用户。

    2023年04月15日
    浏览(37)
  • keil 新建 编译 下载与调试 详细图片说明教程

    Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起 ——百度百科节选 如百度介绍,开发单片机的时候,可以使用keil完成 编译 下载 与调试 代码程序,那么我们该怎

    2023年04月08日
    浏览(31)
  • Flyway详解(使用说明及避坑指南、一文搞懂flyway)

    Flyway是一款开源的数据库版本管理工具,可以实现管理并跟踪数据库变更,支持数据库版本自动升级,而且不需要复杂的配置,能够帮助团队更加方便、合理的管理数据库变更。 例:创建两个sql变更文件,项目启动后会将两个文件中的sql语句全部执行。 简单举个例子:开发

    2023年04月22日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包