[PoI]: Add Proof of Inclusion support - #305
Draft
itsyaasir wants to merge 56 commits into
Draft
Conversation
[PoI]: Define proof envelope and API surface
[PoI]: Add verifier dispatch and transaction verification
…ruction feat: Add gRPC client support for Proof of Inclusion and enhance error handling
…port feat: Add support for object proofs
feat: Add support for event proofs in source and enhance related error handling
…add related tests
…tion feat: Implement committee resolution
feat: Add verified committee cache
…ction and verification
…ent targets, and update related tests
Feat/297 poi golden fixtures
- Added `clap` dependency for command-line argument parsing with derive feature. - Introduced a new binary `iota-poi` for creating and verifying IOTA Proof of Inclusion proofs. - Implemented command-line interface with subcommands for creating and verifying proofs, including detailed help messages. - Updated `ProofBuilder` to accept object IDs instead of object references, improving clarity and functionality. - Enhanced error handling in `Source` and `Proof` modules to better manage object and event verification. - Added tests for new functionality, ensuring robust handling of object and event targets in proofs. - Updated dependencies in `Cargo.toml` for improved functionality and security.
feat: Enhance Proof of Inclusion CLI and underlying logic
- Implement tests for NodePoiSource to validate BCS evidence retrieval. - Create WASM source tests to ensure transaction evidence handling. - Introduce TypeScript configuration for building WASM bindings. - Update Rust dependencies and features for native gRPC support. - Refactor source trait to return decoded transaction and checkpoint evidence. - Enhance proof builder to handle stacked targets and deduplicate requests.
- Added LedgerSource class to handle ledger reads required by Proof of Inclusion. - Introduced PoiClient class for creating Proof of Inclusion builders backed by IOTA ledger endpoints. - Created source-types.ts to define interfaces for transaction and checkpoint evidence. - Updated TypeScript configuration for the new structure. - Implemented tests for LedgerSource and PoiClient to ensure functionality. - Refactored existing code to integrate new classes and improve modularity.
… in WASM bindings
…N files - Deleted outdated JSON fixture files: committee.json, event.json, object.json, transaction.json. - Updated test cases in golden.rs to reference new fixture paths under "fixtures/current". - Adjusted proof builder tests to accommodate changes in the iota_sdk_types module. - Modified utility functions to use new types and structures from iota_sdk_types. - Ensured compatibility with the latest changes in the IOTA SDK and proof verification logic.
…mittee feat: update the committee anchored walking with the latest changes.
…at/poi/nodejs-implementation # Conflicts: # poi-rs/Cargo.toml # poi-rs/src/builder.rs # poi-rs/src/source.rs # poi-rs/tests/proof_builder.rs
…or committee resolution
- Introduced `ProofTarget` enum to represent different proof requests (Transaction, Object, Event). - Updated `ProofBuilder` to utilize `ProofTarget` instead of the previous `SourceTarget`. - Enhanced error handling in `ProofBuilderError` to provide more specific error types related to proof construction failures. - Modified `SourceError` to streamline error reporting and removed unnecessary complexity. - Adjusted tests to align with the new error handling and proof target structure.
…r handling in LedgerSource
…mittee deserialization
…placing CommitteeResolver with trustedNodeVerifier and anchoredVerifier methods
…port for genesis blob anchoring
…truction in WASM and Rust implementations
feat: WASM implementation for NodeJS
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.
Description of change
Links to any relevant issues
Type of change
How the change has been tested
Change checklist