Skip to content

Repository files navigation

rain.deploy

Tooling to deploy Solidity contracts deterministically across EVM networks via the Zoltu deployment proxy.

Fundamentally Rain code is EVM-compatible and permissionlessly deployable anywhere, but only a curated subset of networks are active deploy targets for the Rain organisation. This library provides shared infrastructure for that subset.

It answers:

  • Are the dependencies of the current deployment available on this network?
  • Does this deployment match other deployments on other networks?
  • Have I deployed successfully to all expected networks?
  • How do I track deployments over time and share addresses with other people?
  • How do I ensure deployed code is bytecode-equivalent to local compilations?

Approach:

  • Zoltu deterministic deployment proxy: same address on every supported network.
  • Caller-provided supported-network and dependency lists.
  • Hard guards against deploying to networks where dependencies are missing.
  • Pre-calculated addresses asserted against the creation code before deploying, and against the chain after: silent failures fail loudly.
  • Bytecode integrity checks (e.g. via the Rain Extrospection lib) supported post-deploy.

Install

Via soldeer:

forge soldeer install rain-deploy~<version>

Develop

This repo uses nix. The default shell is the slim sol-shell from rainix.

nix develop          # enter the shell
forge soldeer install # install deps declared in foundry.toml
forge test

Tasks:

  • rainix-sol-testforge test
  • rainix-sol-static — slither
  • rainix-sol-legalreuse lint

Use the nix-pinned forge for all development.

Publish

Tag v<x.y.z> on main. The Publish to Soldeer wrapper delegates to rainix's reusable workflow, which derives the package name from the repo name (rain.deployrain-deploy).

License

DecentraLicense 1.0 (DCL-1.0) — full text in LICENSES/. Roughly CAL-1.0 (opensource.org) plus user-data disclosure obligations consistent with permissionless-blockchain assumptions.

This repo is REUSE 3.2 compliant. Verify locally:

nix develop -c rainix-sol-legal

Contributions

Welcome under the same license. Contributors warrant that their contributions are compliant.

About

Tools for deploying Solidity code and checking existing deployments to supported networks.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages