feat: add zallet-rpc-diff parity harness (MVP)#404
Open
CreativesOnchain wants to merge 11 commits intozcash:mainfrom
Open
feat: add zallet-rpc-diff parity harness (MVP)#404CreativesOnchain wants to merge 11 commits intozcash:mainfrom
CreativesOnchain wants to merge 11 commits intozcash:mainfrom
Conversation
- Add tools/zallet-rpc-diff workspace with three crates: - zallet-parity-core: library with custom Error types - zallet-parity-cli: binary (zallet-rpc-diff) with clap, color-eyre, tracing - zallet-parity-testkit: test helpers with wiremock - Add DESIGN_NOTE.md defining MATCH/DIFF/MISSING/ERROR categories, report schema, and manifest format - Add CI workflow (.github/workflows/zallet-rpc-diff.yml) - All crates compile cleanly in the workspace This satisfies Milestone 1 deliverables: - Clearly defined report format and manifest structure - Rust crate + CLI skeleton ready for maintainer review
bb258ae to
84e8790
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This draft PR introduces the
zallet-rpc-diffparity harness — a reproducible, production-grade CLI tool that compareszcashdand Zallet wallet JSON-RPC responses, classifying each method asMATCH/DIFF/MISSING/ERROR.This addresses the upstream request in #16.
✅ MVP Deliverables
Design & Scaffolding
See
tools/zallet-rpc-diff/DESIGN_NOTE.mdwhich explicitly defines the result categories,report.jsonschema, and the versionedmanifest.tomlformat.Rust Crate + CLI Skeleton
zallet-parity-core— library with customErrortypes and result categorization.zallet-parity-cli— binaryzallet-rpc-diffwithclapv4,color-eyre, andtracing.zallet-parity-testkit— test helpers suite.CI Workflow
.github/workflows/zallet-rpc-diff.yml— scoped workspace checks (build, test, fmt, clippy).Execution Engine & Reporting
Implemented an async runner in
zallet-parity-coreusingtokio::task::JoinSet. It executes the entire manifest suite concurrently against both upstream and target endpoints.Deep Semantic Comparison
Integrated
assert-json-diffto perform recursive comparison ofserde_json::Valueresponses. It correctly identifies differences while being resilient to key ordering.Premium CLI & Reporting
indicatifprogress bars for real-time feedback during large suites.report.json(for automation) and a human-readablereport.md(for PR review).Automated Verification Suite
Implemented a robust testing suite using
wiremockin thetestkit:cargo test --workspaceQuestions for Maintainers
tools/zallet-rpc-diff/acceptable, or would you prefertesting/zallet-rpc-diff/?memberslist, or kept as a self-contained sub-workspace?manifest.tomlis a sample; I'm happy to align the v1 allowlist with your priorities.TODOs (Future Milestones)