From: 志宇 Date: Thu, 1 May 2025 00:28:42 +0000 (+1000) Subject: feat(chain): Add convenience conversions for `CanonicalTx` X-Git-Tag: core-0.5.0~1^2~1 X-Git-Url: http://internal-gitweb-vhost/?a=commitdiff_plain;h=0a02d26835a41556cf0f6899f97fdb42bf4d0f9d;p=bdk feat(chain): Add convenience conversions for `CanonicalTx` * `From for Txid` * `From for Arc` Also added a convenience method `ChainPosition::is_unconfirmed`. These are intended to simplify the calls needed to populate the `expected_mempool_txids` field of `Emitter::new`. --- diff --git a/crates/chain/src/chain_data.rs b/crates/chain/src/chain_data.rs index a4d764c0..4890b08a 100644 --- a/crates/chain/src/chain_data.rs +++ b/crates/chain/src/chain_data.rs @@ -40,6 +40,11 @@ impl ChainPosition { pub fn is_confirmed(&self) -> bool { matches!(self, Self::Confirmed { .. }) } + + /// Returns whether [`ChainPosition`] is unconfirmed or not. + pub fn is_unconfirmed(&self) -> bool { + matches!(self, Self::Unconfirmed { .. }) + } } impl ChainPosition<&A> { diff --git a/crates/chain/src/tx_graph.rs b/crates/chain/src/tx_graph.rs index a10f3e75..7916bf95 100644 --- a/crates/chain/src/tx_graph.rs +++ b/crates/chain/src/tx_graph.rs @@ -251,6 +251,18 @@ pub struct CanonicalTx<'a, T, A> { pub tx_node: TxNode<'a, T, A>, } +impl<'a, T, A> From> for Txid { + fn from(tx: CanonicalTx<'a, T, A>) -> Self { + tx.tx_node.txid + } +} + +impl<'a, A> From, A>> for Arc { + fn from(tx: CanonicalTx<'a, Arc, A>) -> Self { + tx.tx_node.tx + } +} + /// Errors returned by `TxGraph::calculate_fee`. #[derive(Debug, PartialEq, Eq)] pub enum CalculateFeeError {