Snowbridge is a trustless bridge between Polkadot and Ethereum. For documentation, visit https://docs.snowbridge.network.
Polkadot parachain and our pallets. See parachain/README.md.
Off-chain relayer services for relaying messages between Polkadot and Ethereum. See relayer/README.md
Ethereum contracts and unit tests. See core/packages/contracts/README.md
This component includes our end to end tests, that pull together all the above services and set them up easily through scripts for automated E2E tests. See core/packages/test/README.md.
We use the Nix package manager to provide a reproducible and maintainable developer environment.
After installing nix Nix, enable flakes:
mkdir -p ~/.config/nix
echo 'experimental-features = nix-command flakes' >> ~/.config/nix/nix.conf
(if you don't want to use flakes, you can instead pass the flag --experimental-features nix-command flakes
to nix, eg.
nix --experimental-features 'nix-command flakes' develop
)
Then activate a developer shell in the root of our repo, where flake.nix
is located:
nix develop
To ensure your code editor (such as VS Code) can execute tools in the nix shell, startup your editor within the interactive shell.
Example for VS Code:
nix develop
code .
The developer shell is bash by default. To preserve your existing shell:
nix develop --command $SHELL
To automatically enter the developer shell whenever you open the project, install
direnv
and use the template .envrc
:
cp .envrc.example .envrc
direnv allow
Sometimes we would like to upgrade rust toolchain. First update parachain/rust-toolchain.toml
as required and then update flake.lock
running
nix flake lock --update-input rust-overlay
The security policy and procedures can be found in SECURITY.md.