chain: improvements to IndexedTxGraph and TxGraph APIs

For `IndexedTxGraph`:
- Remove `InsertTxItem` type (this is too complex).
    - `batch_insert_relevant` now uses a simple tuple `(&tx, anchors)`.
    - `batch_insert` is now also removed, as the same functionality can be
      done elsewhere.
- Add internal helper method `index_tx_graph_changeset` so we don't need
  to create a seprate `TxGraph` update in each method.
- `batch_insert_<relevant>_unconfirmed` no longer takes in an option of
  last_seen.
- `batch_insert_unconfirmed` no longer takes a reference of a
  transaction (since we apply all transactions anyway, so there is no
  need to clone).

For `TxGraph`:
- Add `batch_insert_unconfirmed` method.
This commit is contained in:
志宇
2023-10-06 02:05:31 +08:00
parent 150d6f8ab6
commit 4f5695d43a
6 changed files with 104 additions and 115 deletions

View File

@@ -74,7 +74,7 @@ fn insert_relevant_txs() {
};
assert_eq!(
graph.batch_insert_relevant(txs.iter().map(|tx| (tx, None, None))),
graph.batch_insert_relevant(txs.iter().map(|tx| (tx, None))),
changeset,
);
@@ -225,11 +225,10 @@ fn test_list_owned_txouts() {
anchor_block,
confirmation_height: anchor_block.height,
}),
None,
)
}));
let _ = graph.batch_insert_relevant([&tx4, &tx5].iter().map(|tx| (*tx, None, Some(100))));
let _ = graph.batch_insert_relevant_unconfirmed([&tx4, &tx5].iter().map(|tx| (*tx, 100)));
// A helper lambda to extract and filter data from the graph.
let fetch =