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

worm-deployer

v0.0.4

Published

A wormhole multichain deployer tool

Downloads

0

Readme

[!WARNING]
This is a proof of concept developed for the Wormhole Hackathon. This is a project driven by personal interest and is currently in an experimental stage (Although people are using it). Mainnet deployment is still under active development.

Features

  • Single-transaction Multi-chain Deployment: Deploy to multiple chains from a single source transaction.
  • Deterministic Addressing via CREATE2: Same contract address across all target chains.
  • Source Chain Gas Payment: Pay gas only on the source chain.
  • Flexible Chain Selection: Support for various source and destination chain combinations. (supported chains)

Supported Frameworks

Supported Chains (Testnet only)

Getting Started

[!IMPORTANT]
Need to install node v21.1.0 on your system (steps here using nvm).

Remote usage (as npx command)

npx worm-deployer@latest

Then follow the prompts to deploy the contracts.

Local usage (as local command)

  1. Clone the repository:
git clone https://github.com/startup-dreamer/worm-deployer.git
  1. Install dependencies:
cd worm-deployer
npm install
  1. Link the package:
npm link
  1. Run the command:
worm-deployer
  1. Then follow the prompts to deploy the contracts.

Demo Deployment

Test deployment contract: https://wormholescan.io/#/tx/0xb4032d06e1a5f87429ee7628543984d1d3fa9623ad0b137571c7cb42e5463d38

Worm-Deployer Architecture

Contract Architecture

User Flow

Wormhole Tech Used

  • Standard Relaying for EVM chains message passing through Wormhole protocol.
  • Wormhole Solidity SDK to connect wormdeployer contract with relayer interface.
  • Wormhole Base SDK to get the wormhole specific chain parameters for configuring the deployment.

Worm-Deployer Development

  • Implemented as an NPX package compatible with both Hardhat and Foundry projects.

Workflow:

  • User runs the worm-deployer package in their project directory.
  • Selects the contract to deploy.
  • worm-deployer compiles the contract using appropriate build tools.
  • Extracts bytecode from contract artifacts.
  • User provides custom salt for deterministic address generation.
  • Calls deployAcrossChains function on source chain's WormholeDeployer contract.
  • Wormhole relayer sends transaction to destination chains.
  • receiveWormholeMessages function deploys the contract on destination chains using CREATE2 opcode.

Future Work

Pre-Mainnet Launch

  1. Mainnet readiness
  2. Multi-chain support expansion
  3. Batch deployments
    • Deploy multiple contracts in a single transaction
    • Optimize gas fees and simplify complex deployments
  4. Automatic contract verification
    • Integrate with block explorers across supported chains

Post-Mainnet Launch

  1. Cross-chain contract interaction

    • Allow initialization and configuration of newly deployed contracts
    • Support interaction with deployed contracts on other chains
  2. Upgrade Mechanism

    • Contract upgradeability across multiple chains, Using proxy patterns.
  3. Specialized relayer integration

Contact

Twitter - @Krieger
Mail - [email protected]

Contribution

Contributions are more than welcome! Please open an issue for any bugs or feature requests and maybe submit a PR as well.

Acknowledgment

Thanks to Encode Club for making the Wormhole Hackathon possible, and to the Wormhole Foundation for providing the innovative and user-friendly framework for cross-chain messaging that inspired me to create Worm-Deployer. I would greatly appreciate any feedback or guidance from the judges.

References