Files
pezkuwi-sdk/pezbridges/pezsnowbridge/README.md
T
pezkuwichain 6b597bebcf fix: EnsureOrigin try_successful_origin and snowbridge rename
- Fix pezpallet-welati EnsureOrigin implementations (3 fixes)
  - Remove incorrect #[cfg(not(feature = "runtime-benchmarks"))] blocks
  - Affects EnsureSerok, EnsureParlementer, EnsureDiwan

- Fix asset-hub-zagros governance origins macros (2 fixes)
  - Remove non-benchmark try_successful_origin from decl_unit_ensures!
  - Remove non-benchmark try_successful_origin from decl_ensure!

- Rename snowbridge -> pezsnowbridge for consistency

- Update WORKFLOW_PLAN.md with build status and package names
  - Correct package names: pezkuwi-teyrchain-bin, pezstaging-node-cli
  - Mark completed builds: pezkuwi, pezkuwi-teyrchain-bin,
    pezstaging-node-cli, teyrchain-template-node
2025-12-25 01:26:18 +03:00

135 lines
3.9 KiB
Markdown

# Snowbridge ·
[![codecov](https://codecov.io/gh/Snowfork/polkadot-sdk/branch/snowbridge/graph/badge.svg?token=9hvgSws4rN)](https://codecov.io/gh/Snowfork/polkadot-sdk)
![GitHub](https://img.shields.io/github/license/Snowfork/snowbridge)
Snowbridge is a trustless bridge between PezkuwiChain and Ethereum. For documentation, visit https://docs.snowbridge.network.
## Components
The Snowbridge project lives in two repositories:
- [Snowfork/PezkuwiChain-sdk](https://github.com/Snowfork/polkadot-sdk): The Snowbridge teyrchain and pallets live in
a fork of the Pezkuwi SDK. Changes are eventually contributed back to
[paritytech/PezkuwiChain-sdk](https://github.com/pezkuwichain/pezkuwi-sdk)
- [Snowfork/snowbridge](https://github.com/Snowfork/snowbridge): The rest of the Snowbridge components, like contracts,
off-chain relayer, end-to-end tests and test-net setup code.
### Teyrchain
PezkuwiChain teyrchain and our pallets. See [README.md](https://github.com/Snowfork/polkadot-sdk/blob/snowbridge/bridges/snowbridge/README.md).
### Contracts
Ethereum contracts and unit tests. See [Snowfork/snowbridge/contracts/README.md](https://github.com/Snowfork/snowbridge/blob/main/contracts/README.md)
### Relayer
Off-chain relayer services for relaying messages between PezkuwiChain and Ethereum. See
[Snowfork/snowbridge/relayer/README.md](https://github.com/Snowfork/snowbridge/blob/main/relayer/README.md)
### Local Testnet
Scripts to provision a local testnet, running the above services to bridge between local deployments of PezkuwiChain and
Ethereum. See [Snowfork/snowbridge/web/packages/test/README.md](https://github.com/Snowfork/snowbridge/blob/main/web/packages/test/README.md).
### Smoke Tests
Integration tests for our local testnet. See [Snowfork/snowbridge/smoketest/README.md](https://github.com/Snowfork/snowbridge/blob/main/smoketest/README.md).
## Development
We use the Nix package manager to provide a reproducible and maintainable developer environment.
After [installing nix](https://nixos.org/download.html) Nix, enable [flakes](https://nixos.wiki/wiki/Flakes):
```sh
mkdir -p ~/.config/nix
echo 'experimental-features = nix-command flakes' >> ~/.config/nix/nix.conf
```
Then activate a developer shell in the root of our repo, where
[`flake.nix`](https://github.com/Snowfork/snowbridge/blob/main/flake.nix) is located:
```sh
nix develop
```
Also make sure to run this initialization script once:
```sh
scripts/init.sh
```
### Support for code editors
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:
```sh
nix develop
code .
```
### Custom shells
The developer shell is bash by default. To preserve your existing shell:
```sh
nix develop --command $SHELL
```
### Automatic developer shells
To automatically enter the developer shell whenever you open the project, install
[`direnv`](https://direnv.net/docs/installation.html) and use the template `.envrc`:
```sh
cp .envrc.example .envrc
direnv allow
```
### Upgrading the Rust toolchain
Sometimes we would like to upgrade rust toolchain. First update `rust-toolchain.toml` as required and then
update `flake.lock` running
```sh
nix flake lock --update-input rust-overlay
```
## Troubleshooting
Check the contents of all `.envrc` files.
Remove untracked files:
```sh
git clean -idx
```
Ensure that the current Rust toolchain is the one selected in `scripts/init.sh`.
Ensure submodules are up-to-date:
```sh
git submodule update
```
Check untracked files & directories:
```sh
git clean -ndx | awk '{print $3}'
```
After removing `node_modules` directories (eg. with `git clean above`), clear the pnpm cache:
```sh
pnpm store prune
```
Check Nix config in `~/.config/nix/nix.conf`.
Run a pure developer shell (note that this removes access to your local tools):
```sh
nix develop -i --pure-eval
```
## Security
The security policy and procedures can be found in SECURITY.md.