input-output-hk / mithril

Stake-based threshold multi-signatures protocol
https://mithril.network
Apache License 2.0
123 stars 39 forks source link

Common Cardano transactions & Block range roots repository #1678

Closed Alenar closed 4 months ago

Alenar commented 4 months ago

Content

In order to reduce code duplication between nodes, this PR move the CardanoTransactionRepository, and the underlying providers and records, to mithril-persistence.

The only things that's still left in the nodes is the implementations of locally defined traits, but they are mostly pass-through to the shared repository functions.

Pre-submit checklist

Comments

This PR also the SignedEntityHydrator in persistence to simply Hydrator in order to have a shared set of tools to help with common hydration operations. Two existing methods that were doing that locally in the nodes have been migrated here.

Issue(s)

Closes #1677

github-actions[bot] commented 4 months ago

Test Results

    3 files  ± 0     43 suites  ±0   8m 22s :stopwatch: -15s   959 tests  - 20    959 :white_check_mark:  - 20  0 :zzz: ±0  0 :x: ±0  1 053 runs   - 20  1 053 :white_check_mark:  - 20  0 :zzz: ±0  0 :x: ±0 

Results for commit bf208171. ± Comparison against base commit dbe936c5.

This pull request removes 43 and adds 23 tests. Note that renamed tests count towards both. ``` mithril-aggregator ‑ database::record::block_range_root::tests::hydrate_fail_if_invalid_block_range_in_row mithril-aggregator ‑ database::record::block_range_root::tests::hydrate_succeed_if_valid_block_range_in_row mithril-aggregator ‑ database::record::interval_without_block_range_root::tests::db_with_both_block_range_and_transactions_yield_a_range mithril-aggregator ‑ database::record::interval_without_block_range_root::tests::db_with_last_transaction_block_number_below_the_end_of_the_last_block_range_yield_an_error mithril-aggregator ‑ database::record::interval_without_block_range_root::tests::db_with_last_transaction_block_number_right_at_the_end_of_the_last_block_range_yield_none mithril-aggregator ‑ database::record::interval_without_block_range_root::tests::db_with_only_block_range_and_no_transactions_yield_none mithril-aggregator ‑ database::record::interval_without_block_range_root::tests::db_with_only_transactions_yield_a_range mithril-aggregator ‑ database::record::interval_without_block_range_root::tests::db_without_block_range_nor_transactions_yield_none mithril-aggregator ‑ database::repository::cardano_transaction_repository::tests::repository_create_and_get_transaction mithril-aggregator ‑ database::repository::cardano_transaction_repository::tests::repository_create_ignore_further_transactions_when_exists … ``` ``` mithril-persistence ‑ database::record::block_range_root::tests::hydrate_fail_if_invalid_block_range_in_row mithril-persistence ‑ database::record::block_range_root::tests::hydrate_succeed_if_valid_block_range_in_row mithril-persistence ‑ database::record::interval_without_block_range_root::tests::db_with_both_block_range_and_transactions_yield_a_range mithril-persistence ‑ database::record::interval_without_block_range_root::tests::db_with_last_transaction_block_number_below_the_end_of_the_last_block_range_yield_an_error mithril-persistence ‑ database::record::interval_without_block_range_root::tests::db_with_last_transaction_block_number_right_at_the_end_of_the_last_block_range_yield_none mithril-persistence ‑ database::record::interval_without_block_range_root::tests::db_with_only_block_range_and_no_transactions_yield_none mithril-persistence ‑ database::record::interval_without_block_range_root::tests::db_with_only_transactions_yield_a_range mithril-persistence ‑ database::record::interval_without_block_range_root::tests::db_without_block_range_nor_transactions_yield_none mithril-persistence ‑ database::repository::cardano_transaction_repository::tests::repository_create_and_get_transaction mithril-persistence ‑ database::repository::cardano_transaction_repository::tests::repository_create_ignore_further_transactions_when_exists … ```

:recycle: This comment has been updated with latest results.