New and Modified passport-input-gen library#287
Conversation
There was a problem hiding this comment.
Pull request overview
This PR updates the Provekit proving API to support in-memory inputs (via InputMap) while preserving TOML-based proving, and adds a new passport-input-gen workspace crate that can generate Noir-compatible passport circuit inputs (TBS-720 and TBS-1300) including Poseidon2/partial-SHA256 commitment chains and a unified CLI.
Changes:
- Refactor
provekit_prover::ProvesoproveacceptsInputMap, and addprove_with_tomlfor file-driven proving. - Update CLI/FFI/bench callers to use
prove_with_tomlwhere TOML inputs are provided. - Add
playground/passport-input-gencrate with Poseidon2 + partial SHA256 utilities, commitment computation, input struct generation, TOML writers, and a new interactive CLI.
Reviewed changes
Copilot reviewed 13 out of 16 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| tooling/provekit-ffi/src/ffi.rs | Switch FFI proving to prove_with_toml for TOML input paths. |
| tooling/provekit-bench/tests/compiler.rs | Update bench test to prove from TOML via prove_with_toml. |
| tooling/provekit-bench/benches/bench.rs | Update benchmarks to use TOML proving helper. |
| tooling/cli/src/cmd/prove.rs | CLI prove now uses prove_with_toml for TOML inputs. |
| provekit/prover/src/lib.rs | Change prove to accept InputMap; add prove_with_toml. |
| playground/passport-input-gen/src/poseidon2.rs | Add Noir-compatible Poseidon2 implementation + tests. |
| playground/passport-input-gen/src/partial_sha256.rs | Add partial SHA256 state computation matching Noir. |
| playground/passport-input-gen/src/parser/types.rs | Split TBS sizing constants for 720 vs 1300 and add Merkle constants. |
| playground/passport-input-gen/src/mock_generator.rs | Add padded-TBS mock SOD generator and update tests to new APIs. |
| playground/passport-input-gen/src/lib.rs | Major refactor: new configs, circuit input structs, commitment chaining, TOML output, and tests. |
| playground/passport-input-gen/src/commitment.rs | Add Noir-compatible commitment/packing utilities + tests. |
| playground/passport-input-gen/src/bin/passport_cli/span_stats.rs | Add tracing span-based perf/memory stats layer. |
| playground/passport-input-gen/src/bin/passport_cli/profiling_alloc.rs | Add global allocator tracking for CLI profiling. |
| playground/passport-input-gen/src/bin/passport_cli/main.rs | Add unified interactive CLI for generating inputs and proofs. |
| playground/passport-input-gen/Cargo.toml | Wire new dependencies and use workspace edition. |
| Cargo.toml | Include playground/passport-input-gen in workspace members. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 14 out of 17 changed files in this pull request and generated 3 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 16 out of 19 changed files in this pull request and generated 7 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
9fce7c0 to
f8369a0
Compare
f8369a0 to
50cf370
Compare
The passport-input-gen crate was migrated from complete_age_check to merkle_age_check, introducing support for direct proof generation (bypassing TOML), improved input/output structuring, and an integrated CLI with profiling. Supporting libraries and documentation were updated for these new workflows.
Changes
Refactored passport-input-gen to target the more modular merkle_age_check pipeline, supporting both TBS-720 and TBS-1300 circuit chains.
Extended the Prove trait and CLI to allow proof generation from in-memory inputs, without requiring TOML files.
Added a new passport_cli binary with runtime prompts, direct proof generation, and detailed span/memory profiling (
profiling_alloc.rs,span_stats.rs) similar toprovekit-climemory stats .Redesigned input struct layout, introduced new configuration and serialization helpers, and split circuit inputs for both TBS-720 and TBS-1300 flows.