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

@zerodev/orchestra

v0.0.16

Published

Orchestra is a CLI for deterministically deploying contracts to multiple chains, even if you don't have gas tokens for each chain. It's able to do that thanks to ERC-4337 paymasters. Orchestra is built on [ZeroDev](https://docs.zerodev.app/).

Downloads

184

Readme

Orchestra

Orchestra is a CLI for deterministically deploying contracts to multiple chains, even if you don't have gas tokens for each chain. It's able to do that thanks to ERC-4337 paymasters. Orchestra is built on ZeroDev.

Installation

  1. npm install -g @zerodev/orchestra
  2. Create a .env file based on .env.example
  3. Test the installation by running zerodev -h

Usage

Deploying a Contract

  • Before deployment, make sure that you have the bytecode of the contract you want to deploy
  • You can deploy a contract to multiple chains with the following command
zerodev deploy [options]
  • For example, if you want to deploy a contract to the Optimism Sepolia and Polygon Mumbai testnet with bytecode file and zero bytes salt, you can run the following command
zerodev deploy -f ./bytecode -s 0 -c optimism-sepolia,polygon-mumbai
  • if you want to deploy to all testnets or all mainnets, use -t --testnet-all / -m --mainnet-all flag instead of -c --chain flag
zerodev deploy -f ./bytecode -s 0 -t
zerodev deploy -f ./bytecode -s 0 -m
  • After deployment, you can see the deployed contract address and its user operation hash with jiffy scan link.

Available Commands

All commands should be prefixed with zerodev

  • -h, --help: Show help
  • chains: Show the list of available chains
  • compute-address [options]: Compute the address to be deployed
    • -f, --file <path-to-bytecode>: file path of bytecode to deploy
    • -b, --bytecode <bytecode>: bytecode to deploy, should have constructor arguments encoded
    • -s, --salt <salt>: salt to use for deployment, this can be a full 32-byte hex string or a shorter numeric representation that will be converted to a 32-byte hex string.
  • get-deployer-address: Get the deployer's address
  • deploy [options]: Deploy contracts deterministically using CREATE2, in order of the chains specified
    • -f, --file <path-to-bytecode>: file path of bytecode to deploy
    • -b, --bytecode <bytecode>: bytecode to deploy, should have constructor arguments encoded
    • -s, --salt <salt>: salt to use for deployment, this can be a full 32-byte hex string or a shorter numeric representation that will be converted to a 32-byte hex string.
    • -t, --testnet-all: deploy to all testnets
    • -m, --mainnet-all: deploy to all mainnets
    • -c, --chains [CHAINS]: list of chains to deploy, with all selected by default
    • -e, --expected-address <address>: expected address to confirm
    • -v, --verify <CONTRACT_NAME>: contract name to be verified
  • check-deployment [options]: Check if the contract has been deployed on the specified chains
    • -f, --file <path-to-bytecode>: file path of bytecode used for deployment
    • -b, --bytecode <bytecode>: bytecode to deploy, should have constructor arguments encoded
    • -s, --salt <salt>: salt to use for deployment, this can be a full 32-byte hex string or a shorter numeric representation that will be converted to a 32-byte hex string.
    • -c, --chains [CHAINS]: list of chains to check, with all selected by default
    • -t, --testnet-all: check all testnets
    • -m, --mainnet-all: check all mainnets
  • clear-log: Clear the log files
  • generate-salt: Generate a random 32 bytes salt, or convert the input to salt
    • -i, --input <input>: input to convert to 32 bytes salt(ex. if input is given as 0, returns 0x0000000000000000000000000000000000000000000000000000000000000000)
  • help [command]: display help for command

Supported Networks

Orchestra supports all network supported by ZeroDev. Check details here

Help Wanted

  • Orchestra can in principle run on any AA infra, but since ERC-4337 paymasters tend to be incompatible across vendors, currently Orchestra only support ZeroDev paymasters. We welcome PRs to add support for other AA infra providers. To do so, you would first add support for other infra providers to Kernel.js, which Orchestra is built on top of. Feel free to reach out to us if you need help with this task.