Skip to content
4 changes: 3 additions & 1 deletion crates/bitcoind_rpc/examples/filter_iter.rs
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,9 @@ fn main() -> anyhow::Result<()> {
println!("\ntook: {}s", start.elapsed().as_secs());
println!("Local tip: {}", chain.tip().height());

let canonical_view = graph.canonical_view(&chain, chain.tip().block_id(), Default::default());
let chain_tip = chain.tip().block_id();
let task = graph.canonicalization_task(chain_tip, Default::default());
let canonical_view = chain.canonicalize(task);
Comment on lines +72 to +74
Copy link
Member

Choose a reason for hiding this comment

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

What do you think about the following naming:

  • CanonicalizationTask -> CanonicalResolver.
  • TxGraph::canonicalization_task -> TxGraph::resolver.
  • LocalChain::canonicalize -> LocalChain::resolve.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I've been thinking about this, I agree with the CanonicalResolver, though the TxGraph::resolver and LocalChain::resolve seems a bit off.

What do you think about (?):

  • CanonicalResolver
  • TxGraph::canonical_resolver
  • LocalChain::canonical_resolve


let unspent: Vec<_> = canonical_view
.filter_unspent_outpoints(graph.index.outpoints().clone())
Expand Down
21 changes: 14 additions & 7 deletions crates/bitcoind_rpc/tests/test_emitter.rs
Original file line number Diff line number Diff line change
Expand Up @@ -320,9 +320,12 @@ fn get_balance(
) -> anyhow::Result<Balance> {
let chain_tip = recv_chain.tip().block_id();
let outpoints = recv_graph.index.outpoints().clone();
let balance = recv_graph
.canonical_view(recv_chain, chain_tip, CanonicalizationParams::default())
.balance(outpoints, |_, _| true, 1);
let task = recv_graph
.graph()
.canonicalization_task(chain_tip, CanonicalizationParams::default());
let balance = recv_chain
.canonicalize(task)
.balance(outpoints, |_, _| true, 0);
Ok(balance)
}

Expand Down Expand Up @@ -634,8 +637,9 @@ fn test_expect_tx_evicted() -> anyhow::Result<()> {
let _txid_2 = core.send_raw_transaction(&tx1b)?;

// Retrieve the expected unconfirmed txids and spks from the graph.
let exp_spk_txids = graph
.canonical_view(&chain, chain_tip, Default::default())
let task = graph.canonicalization_task(chain_tip, Default::default());
let exp_spk_txids = chain
.canonicalize(task)
.list_expected_spk_txids(&graph.index, ..)
.collect::<Vec<_>>();
assert_eq!(exp_spk_txids, vec![(spk, txid_1)]);
Expand All @@ -650,8 +654,11 @@ fn test_expect_tx_evicted() -> anyhow::Result<()> {
// Update graph with evicted tx.
let _ = graph.batch_insert_relevant_evicted_at(mempool_event.evicted);

let canonical_txids = graph
.canonical_view(&chain, chain_tip, CanonicalizationParams::default())
let task = graph
.graph()
.canonicalization_task(chain_tip, CanonicalizationParams::default());
let canonical_txids = chain
.canonicalize(task)
.txs()
.map(|tx| tx.txid)
.collect::<Vec<_>>();
Expand Down
30 changes: 15 additions & 15 deletions crates/chain/benches/canonicalization.rs
Original file line number Diff line number Diff line change
Expand Up @@ -95,31 +95,31 @@ fn setup<F: Fn(&mut KeychainTxGraph, &LocalChain)>(f: F) -> (KeychainTxGraph, Lo
}

fn run_list_canonical_txs(tx_graph: &KeychainTxGraph, chain: &LocalChain, exp_txs: usize) {
let view = tx_graph.canonical_view(
chain,
chain.tip().block_id(),
CanonicalizationParams::default(),
);
let chain_tip = chain.tip().block_id();
let task = tx_graph
.graph()
.canonicalization_task(chain_tip, CanonicalizationParams::default());
let view = chain.canonicalize(task);
let txs = view.txs();
assert_eq!(txs.count(), exp_txs);
}

fn run_filter_chain_txouts(tx_graph: &KeychainTxGraph, chain: &LocalChain, exp_txos: usize) {
let view = tx_graph.canonical_view(
chain,
chain.tip().block_id(),
CanonicalizationParams::default(),
);
let chain_tip = chain.tip().block_id();
let task = tx_graph
.graph()
.canonicalization_task(chain_tip, CanonicalizationParams::default());
let view = chain.canonicalize(task);
let utxos = view.filter_outpoints(tx_graph.index.outpoints().clone());
assert_eq!(utxos.count(), exp_txos);
}

fn run_filter_chain_unspents(tx_graph: &KeychainTxGraph, chain: &LocalChain, exp_utxos: usize) {
let view = tx_graph.canonical_view(
chain,
chain.tip().block_id(),
CanonicalizationParams::default(),
);
let chain_tip = chain.tip().block_id();
let task = tx_graph
.graph()
.canonicalization_task(chain_tip, CanonicalizationParams::default());
let view = chain.canonicalize(task);
let utxos = view.filter_unspent_outpoints(tx_graph.index.outpoints().clone());
assert_eq!(utxos.count(), exp_utxos);
}
Expand Down
7 changes: 4 additions & 3 deletions crates/chain/benches/indexer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -84,9 +84,10 @@ fn do_bench(indexed_tx_graph: &KeychainTxGraph, chain: &LocalChain) {
// Check balance
let chain_tip = chain.tip().block_id();
let op = graph.index.outpoints().clone();
let bal = graph
.canonical_view(chain, chain_tip, CanonicalizationParams::default())
.balance(op, |_, _| false, 1);
let task = graph
.graph()
.canonicalization_task(chain_tip, CanonicalizationParams::default());
let bal = chain.canonicalize(task).balance(op, |_, _| false, 1);
assert_eq!(bal.total(), AMOUNT * TX_CT as u64);
}

Expand Down
Loading