Documentation

Downloading metadata from a Substrate node

Use the subxt-cli tool to download the metadata for your target runtime from a node.

  1. Install:
cargo install subxt-cli
  1. To Save the metadata of protocol-substrate: Run the release build of the protocol-substrate node, then on another terminal run:
subxt metadata -f bytes > ./metadata/protocol-substrate-runtime.scale
  1. To Save the metadata of dkg: Run the release build of the dkg node, then on another terminal run:
subxt metadata -f bytes > ./metadata/dkg-runtime.scale

Same goes for any future runtimes.

Note: This defaults to querying the metadata of a locally running node on the default http://localhost:9933/. If querying a different node then the metadata command accepts a --url argument.

  1. Generating the rust code from the metadata:
cargo build --features generate-substrate

Tip: See the build.rs file to see how everything is being generated.

Generating EVM Contracts

  1. Update any contracts inside the contracts directory.
  2. Run
cargo build --features generate-contracts

Tip: See the build.rs file to see how everything is being generated.

Using Nix (with flakes)

  1. Install Nix
  2. Enable flakes (if you haven't already)
  3. Run nix develop to enter a shell with all the dependencies installed

Additionally, if you have direnv installed, you can run direnv allow to automatically enter the shell whenever you enter the directory.

Safety

This crate uses #![deny(unsafe_code)] to ensure everything is implemented in 100% Safe Rust.

Contributing

Want to join us? take a look at some of these issues:

License