This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
- Build:
cargo buildorcargo build --release - Format:
cargo fmt --all -- --check - Lint:
cargo clippy --all-targets --all-features --workspace --exclude zksync_os_integration_tests -- -D warnings - Unit tests:
cargo nextest run --workspace --exclude zksync_os_integration_tests - Integration tests:
cargo nextest run -p zksync_os_integration_tests --profile no-pig(no live anvil needed — each test manages its own L1/node;--profile no-pigdisables Prover Input Generation for faster runs)
- Run script:
./run_local.sh ./local-chains/v30.2/default - To restart chain:
rm -rf db/*then re-run the script
PR titles must follow the Conventional Commits specification:
<type>(<scope>): <short description>
Examples: feat(eth_sender): Support new transaction type, fix(state_keeper): Correctly handle edge case, ci: Add new workflow for linting
If the PR title uses the breaking-change marker (feat!: ..., fix!: ...), you must uncomment and fill in the Breaking Changes and Rollout Instructions sections in the PR description (see .github/pull_request_template.md).
Do not modify existing versioned wire format files under lib/network/src/wire/replays/v*.rs. Add a new versioned file instead.