diff --git a/crates/core/src/tx_update.rs b/crates/core/src/tx_update.rs index a1ff75de7..29d6c2530 100644 --- a/crates/core/src/tx_update.rs +++ b/crates/core/src/tx_update.rs @@ -33,6 +33,23 @@ impl Default for TxUpdate { } impl TxUpdate { + /// Transforms the [`TxUpdate`] to have `anchors` (`A`) of another type (`A2`). + /// + /// This takes in a closure with signature `FnMut(A) -> A2` which is called for each anchor to + /// transform it. + pub fn map_anchors A2>(self, mut map: F) -> TxUpdate { + TxUpdate { + txs: self.txs, + txouts: self.txouts, + anchors: self + .anchors + .into_iter() + .map(|(a, txid)| (map(a), txid)) + .collect(), + seen_ats: self.seen_ats, + } + } + /// Extend this update with `other`. pub fn extend(&mut self, other: TxUpdate) { self.txs.extend(other.txs);