Skip to content

implement list of transactions proofs and artifacts v2 in client#3083

Merged
turmelclem merged 21 commits intomainfrom
ctl/3031-implement-list-of-transactions-proofs-and-artifacts-v2-in-client
Mar 23, 2026
Merged

implement list of transactions proofs and artifacts v2 in client#3083
turmelclem merged 21 commits intomainfrom
ctl/3031-implement-list-of-transactions-proofs-and-artifacts-v2-in-client

Conversation

@turmelclem
Copy link
Copy Markdown
Collaborator

@turmelclem turmelclem commented Mar 11, 2026

Content

This PR add cardano_transaction_v2 and cardano_block to the client library with the ability to retrieve snapshots, retrieves proofs and verify them, validate the certificate chain and validate that the verified blocs/transactions are signed by the certificate.

Pre-submit checklist

  • Branch
    • Tests are provided (if possible)
    • Crates versions are updated (if relevant)
    • CHANGELOG file is updated (if relevant)
    • Commit sequence broadly makes sense
    • Key commits have useful messages
  • PR
    • All check jobs of the CI have succeeded
    • Self-reviewed the diff
    • Useful pull request description
    • Reviewer requested
  • Documentation
    • Update README file (if relevant)
    • Update documentation website (if relevant)
    • Add dev blog post (if relevant)
    • Add ADR blog post or Dev ADR entry (if relevant)
    • No new TODOs introduced

Closes #3031

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Mar 11, 2026

Test Results

    5 files  ± 0    201 suites  +8   1h 10m 32s ⏱️ +36s
2 802 tests +23  2 802 ✅ +23  0 💤 ±0  0 ❌ ±0 
9 900 runs  +94  9 900 ✅ +94  0 💤 ±0  0 ❌ ±0 

Results for commit c7bf1b4. ± Comparison against base commit 09d7683.

♻️ This comment has been updated with latest results.

@turmelclem turmelclem force-pushed the ctl/3031-implement-list-of-transactions-proofs-and-artifacts-v2-in-client branch from a78538e to 1d81392 Compare March 11, 2026 16:45
@turmelclem turmelclem force-pushed the ctl/3031-implement-list-of-transactions-proofs-and-artifacts-v2-in-client branch from 1d81392 to 6219679 Compare March 11, 2026 17:01
@turmelclem turmelclem force-pushed the ctl/3031-implement-list-of-transactions-proofs-and-artifacts-v2-in-client branch from 6219679 to 1fd1147 Compare March 20, 2026 14:28
Comment thread mithril-common/src/test/double/dummies.rs Fixed
Comment thread mithril-common/src/test/double/dummies.rs Fixed
@turmelclem turmelclem force-pushed the ctl/3031-implement-list-of-transactions-proofs-and-artifacts-v2-in-client branch 3 times, most recently from 7f7fcdc to 078a189 Compare March 20, 2026 16:43
@turmelclem turmelclem force-pushed the ctl/3031-implement-list-of-transactions-proofs-and-artifacts-v2-in-client branch from 078a189 to 17b9550 Compare March 20, 2026 17:07
@turmelclem turmelclem changed the title WIP: implement list of transactions proofs and artifacts v2 in client implement list of transactions proofs and artifacts v2 in client Mar 20, 2026
@turmelclem turmelclem marked this pull request as ready for review March 20, 2026 17:11
@turmelclem turmelclem requested review from Alenar and jpraynaud March 20, 2026 17:11
Copy link
Copy Markdown
Member

@jpraynaud jpraynaud left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 👍

Comment thread mithril-client/src/cardano_transaction_v2_client.rs Outdated
Comment thread mithril-client/src/cardano_transaction_v2_client.rs Outdated
Copy link
Copy Markdown
Collaborator

@Alenar Alenar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM !

Comment thread mithril-client/src/aggregator_client.rs Outdated
Comment thread mithril-client/src/type_alias.rs Outdated
Comment thread mithril-client/src/cardano_transaction_v2_client.rs Outdated
Comment thread mithril-client/src/cardano_block_client.rs Outdated
Comment thread mithril-client/src/cardano_block_client.rs Outdated
Comment thread mithril-client/src/cardano_transaction_v2_client.rs Outdated
Copilot AI review requested due to automatic review settings March 23, 2026 15:41
@turmelclem turmelclem force-pushed the ctl/3031-implement-list-of-transactions-proofs-and-artifacts-v2-in-client branch from 4f24181 to 0c10df5 Compare March 23, 2026 15:41
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds support in the Rust client library (behind the unstable feature) for Cardano blocks proofs and Cardano transactions v2 proofs, including snapshot listing/fetching, plus supporting test utilities and aggregator-client queries.

Changes:

  • Introduce CardanoBlockClient and CardanoTransactionV2Client in mithril-client, wire them into Client, and add MessageBuilder helpers for certificate/message matching.
  • Add new internal/mithril-aggregator-client GET queries for v2 proof endpoints and for cardano-blocks-transactions artifact listing/fetching.
  • Extend test infrastructure (fake aggregator routes + mithril-common test crypto helpers) and update the documentation website.

Reviewed changes

Copilot reviewed 28 out of 29 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
mithril-common/src/test/entities_extensions.rs Refactors block-range grouping helper into a reusable extension trait + adds unit test.
mithril-common/src/test/double/dummies.rs Adds Dummy implementations for new proof-related message parts/messages.
mithril-common/src/test/crypto_helper/mod.rs Exposes new helper modules for MKMap/MKProof test utilities.
mithril-common/src/test/crypto_helper/helpers.rs Adds shared MKMap folding helper used by multiple test extensions.
mithril-common/src/test/crypto_helper/mk_extensions.rs Adds MKProof/MKMap test extension traits for building proofs and proof messages.
mithril-common/src/test/crypto_helper/cardano/extensions.rs Removes MKProof test extension from Cardano-specific extensions (moved to mk_extensions).
mithril-client/tests/extensions/routes/proof_v2.rs Adds fake aggregator routes for v2 transaction proofs and block proofs.
mithril-client/tests/extensions/routes/mod.rs Gating of new proof v2 routes behind unstable.
mithril-client/tests/extensions/fake_aggregator/mod.rs Adds unstable fake aggregator module for v2 proofs.
mithril-client/tests/extensions/fake_aggregator/cardano_proof_v2.rs Builds and serves v2 proofs + certificate wiring for integration tests.
mithril-client/tests/cardano_transaction_v2_proof.rs New integration test for fetching/verifying tx v2 proofs and matching a certificate.
mithril-client/tests/cardano_block_proof.rs New integration test for fetching/verifying block proofs and matching a certificate.
mithril-client/src/type_alias.rs Re-exports v2 proof/snapshot/message types behind unstable.
mithril-client/src/message.rs Adds MessageBuilder helpers for block proofs and tx v2 proofs (unstable).
mithril-client/src/lib.rs Exposes new clients behind unstable.
mithril-client/src/client.rs Wires new clients into Client + ClientBuilder behind unstable.
mithril-client/src/cardano_transaction_v2_client.rs Implements tx v2 proof + snapshot list/get client API and unit tests.
mithril-client/src/cardano_block_client.rs Implements block proof + snapshot list/get client API and unit tests.
mithril-client/src/aggregator_client.rs Adds HTTP implementations for new v2 queries (unstable).
mithril-client/Cargo.toml Registers new unstable-only integration tests.
internal/mithril-aggregator-client/src/query/get/mod.rs Exports new GET queries.
internal/mithril-aggregator-client/src/query/get/get_cardano_transaction_proof_v2.rs Adds query for /proof/v2/cardano-transaction.
internal/mithril-aggregator-client/src/query/get/get_cardano_block_proof.rs Adds query for /proof/v2/cardano-block.
internal/mithril-aggregator-client/src/query/get/get_cardano_blocks_transactions.rs Adds query for fetching a blocks+txs snapshot artifact by hash.
internal/mithril-aggregator-client/src/query/get/get_cardano_blocks_transactions_list.rs Adds query for listing blocks+txs snapshot artifacts.
docs/website/root/manual/develop/nodes/mithril-client-library.md Documents new unstable client capabilities (blocks proofs + tx v2 proofs).

Comment thread docs/website/root/manual/develop/nodes/mithril-client-library.md Outdated
Comment thread docs/website/root/manual/develop/nodes/mithril-client-library.md Outdated
Comment thread docs/website/root/manual/develop/nodes/mithril-client-library.md Outdated
Comment thread mithril-client/tests/cardano_transaction_v2_proof.rs Outdated
Comment thread mithril-client/tests/cardano_block_proof.rs Outdated
@turmelclem turmelclem force-pushed the ctl/3031-implement-list-of-transactions-proofs-and-artifacts-v2-in-client branch from 2b8e78c to f31d3ad Compare March 23, 2026 16:09
@turmelclem turmelclem force-pushed the ctl/3031-implement-list-of-transactions-proofs-and-artifacts-v2-in-client branch from f31d3ad to 9dba82d Compare March 23, 2026 16:28
* mithril-aggregator-client from `0.1.8` to `0.1.9`
* mithril-client from `0.13.6` to `0.13.7`
* mithril-common from `0.6.59` to `0.6.60`
@turmelclem turmelclem force-pushed the ctl/3031-implement-list-of-transactions-proofs-and-artifacts-v2-in-client branch from 9dba82d to c7bf1b4 Compare March 23, 2026 16:34
@turmelclem turmelclem merged commit d0e7a3d into main Mar 23, 2026
57 checks passed
@turmelclem turmelclem deleted the ctl/3031-implement-list-of-transactions-proofs-and-artifacts-v2-in-client branch March 23, 2026 16:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement Cardano Blocks and Transactions in client library

5 participants