npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

zksync-cli

v1.7.1

Published

CLI tool that simplifies the process of developing applications and interacting with the zkSync network

Downloads

878

Readme

‣ zkSync CLI

zkSync CLI

This CLI tool simplifies the process of developing applications and interacting with zkSync.

Documentation | Report a bug | Request a feature

Table of Contents

🛠 Prerequisites

📥 Usage

You can run commands without installation: npx zksync-cli. For example: npx zksync-cli dev start.

💻 Commands

Local development commands

npx zksync-cli dev - Manage local zkSync development environment. It allows to easily start zkSync stack locally, for example: local Ethereum and zkSync nodes, Block Explorer, Wallet and Bridge.

  • npx zksync-cli dev start - start local development environment (will ask to configure if starting for the first time)
  • npx zksync-cli dev clean - clean data for configured modules
  • npx zksync-cli dev config - select modules to run in local development environment

Run npx zksync-cli dev to see the full list of commands.

Create Project commands

  • npx zksync-cli create: Create a project using updated templates.
    • Frontend: Rapid UI development with templates for Vue, React, Next.js, Nuxt, Vite, etc. Options include viem, ethers, web3modal, rainbowkit. More Info
    • Contracts: Quick contract deployment and testing with tools like Hardhat on Solidity or Vyper. Contract templates
    • Scripting: Automated interactions and advanced zkSync operations using Node.js, with examples of wallet or contract interactions using viem, ethers or web3.js. Scripting Templates

Contract interaction commands

See full documentation and advanced examples here.

  • npx zksync-cli contract read: run read-only contract methods
  • npx zksync-cli contract write: send transactions to the contract
  • npx zksync-cli contract encode: get calldata from the contract method

Transaction commands

See full documentation and advanced examples here.

  • npx zksync-cli transaction info: get information about a transaction

Wallet commands

  • npx zksync-cli wallet transfer: send funds on L2 to another account
  • npx zksync-cli wallet balance: displays token balance of the specified address

Bridge commands

  • npx zksync-cli bridge deposit: deposits funds from Ethereum (L1) to zkSync (L2)
  • npx zksync-cli bridge withdraw: withdraws funds from zkSync (L2) to Ethereum (L1)
  • npx zksync-cli bridge withdraw-finalize: finalizes withdrawal of funds from zkSync (L2) to Ethereum (L1)

Other commands

  • npx zksync-cli config chains: Add or edit custom chains
  • npx zksync-cli help: Provides information about all supported commands
  • npx zksync-cli <command> --help: Provides detailed information about how to use a specific command. Replace <command> with the name of the command you want help with (e.g., create, dev config, bridge withdraw-finalize)
  • npx zksync-cli --version: Returns the current version

🔗 Supported chains

By default zkSync CLI bridge commands support zkSync Sepolia Testnet, zkSync Goerli Testnet and zkSync Mainnet. You can also use other networks by using one the options below:

  • Adding custom chain using npx zksync-cli config chains command.
  • Overwriting L1 and L2 RPC URLs. For example: npx zksync-cli deposit --rpc=http://... --l1-rpc=http://...

If you're using local setup (dockerized testing node) with default L1 and L2 RPC URLs, you can select Local Dockerized node option in the CLI or provide option --chain local-dockerized.

👩‍💻 Developing new features

Run in development mode

  1. Install all dependencies with npm i.
  2. To use CLI in development mode run npm run dev -- [command] [options] (e.g. npm run dev -- bridge deposit --chain=zksync-sepolia).

Building for production

  1. Install all dependencies with npm i.
  2. This project was build with Typescript. Run npm run build to compile the code into /bin.
  3. You can run your local build with node ./bin

Testing

At the moment, we don't have any tests, but we are working on it. In the meantime, you can test the code manually by running the code in development mode.

🌍 Official Links

📜 License

This project is licensed under MIT.

❓ Troubleshooting

Encountering issues with zkSync CLI? Below are some common problems with step-by-step recommendations for resolving them:

If you encounter an unknown command error, follow these steps:

a. Check the zkSync CLI Version

  • Run npx zksync-cli --version to check your current version.
  • Compare it with the latest version available on npm.
  • If your version is lower than the one on npm follow the steps bellow. If your version is up-to-date, it's possible that the command was moved or renamed. Use npx zksync-cli help for a list of current commands or refer to the documentation.

b. Verify Local Installation

  • Use npm list zksync-cli to check if zksync-cli is installed in the current directory or any parent directories from where you are running your terminal.
  • If it is indeed installed, make sure to uninstall it by running npm uninstall zksync-cli in its installation location. Remove all instances of zksync-cli until there are no more found by npm list zksync-cli.

c. Verify Global Installation

  • Use npm list -g zksync-cli to check if zksync-cli is installed globally.
  • If it is installed globally, uninstall it using npm uninstall -g zksync-cli.

d. Clean npm Cache

  • Run npm cache clean --force.

e. Use the Latest Version

  • As a quick fix, or if the above steps don't resolve the issue, use npx zksync-cli@latest [command], for example, npx zksync-cli@latest dev start.

If npx zksync-cli is not running the latest version:

  • Refer to the guide above to check and update your zkSync CLI version.

If you receive a command not found: npx error, it means Node.js is not installed or not correctly set up on your system:

  • Install Node.js from https://nodejs.org/. This will also install npm and npx.
  • After installation, restart your terminal and try running npx zksync-cli again.

For all other issues, we encourage you to ask for help or report them in our GitHub Discussions.