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);