# zera.rust
Rust workspace for the ZERA SDK migration.
## Current state
Migration scaffolding and parity phases are landed in this repo:
- ✅ Workspace + toolchain setup (`Cargo.toml`, `rust-toolchain.toml`)
- ✅ Canonical protobuf snapshot in `proto/` + generated Rust types in `crates/zera-proto`
- ✅ Core SDK crate in `crates/zera-sdk`
- ✅ Phase 2 wrappers (bridge ZERA, dex, staking)
- ✅ Phase 3 bridge additions (guardian fetch/submit + solana builders/orchestration)
- ✅ CI matrix for default + feature-gated verification (`.github/workflows/ci.yml`)
For parity tracking, see `docs/parity-matrix.md`.
## Feature flags (`crates/zera-sdk`)
Default build keeps optional Phase 3 bridge modules off.
- `bridge-guardian`
- Enables guardian gRPC helpers and guardian bridge APIs
- Exposes `zera_sdk::smart_contracts::use_cases::bridge::guardian`
- Includes `submit_vaa_to_zera`
- `bridge-solana`
- Enables Solana bridge constants/types/utils/builders
- Exposes `zera_sdk::smart_contracts::use_cases::bridge::solana`
- `bridge-phase3`
- Convenience flag enabling both `bridge-guardian` and `bridge-solana`
`submit_vaa_to_solana` is exported from `bridge::guardian` and is available only when both `bridge-guardian` and `bridge-solana` are enabled.
## Recommended verification
Prereq: `protoc` must be installed (CI installs `protobuf-compiler`).
Run the same checks used in CI:
```bash
cargo test -p zera-sdk
cargo test -p zera-sdk --features bridge-guardian --test grpc__guardian --test smart_contracts__bridge_guardian
cargo test -p zera-sdk --features bridge-solana --test smart_contracts__bridge_solana_transactions --test smart_contracts__bridge_solana_utils
cargo test -p zera-sdk --features "bridge-guardian bridge-solana" --test grpc__guardian --test smart_contracts__bridge_guardian --test smart_contracts__bridge_guardian_solana --test smart_contracts__bridge_solana_transactions
cargo test -p zera-sdk --features "bridge-guardian bridge-solana" --examples
```
If you only want one Phase 3 flag switch, use:
```bash
cargo test -p zera-sdk --features bridge-phase3 --examples
```