@@ -2994,6 +2994,9 @@ pub struct ChannelManager<
29942994 /// offer they resolve to to the given one.
29952995 pub testing_dnssec_proof_offer_resolution_override: Mutex<HashMap<HumanReadableName, Offer>>,
29962996
2997+ /// When set, new monitors will have persistent events enabled.
2998+ persistent_monitor_events: bool,
2999+
29973000 #[cfg(test)]
29983001 pub(super) entropy_source: ES,
29993002 #[cfg(not(test))]
@@ -3683,6 +3686,8 @@ impl<
36833686
36843687 logger,
36853688
3689+ persistent_monitor_events: false,
3690+
36863691 #[cfg(feature = "_test_utils")]
36873692 testing_dnssec_proof_offer_resolution_override: Mutex::new(new_hash_map()),
36883693 }
@@ -18092,6 +18097,7 @@ impl<
1809218097 (17, in_flight_monitor_updates, option),
1809318098 (19, peer_storage_dir, optional_vec),
1809418099 (21, WithoutLength(&self.flow.writeable_async_receive_offer_cache()), required),
18100+ (23, self.persistent_monitor_events, required),
1809518101 });
1809618102
1809718103 // Remove the SpliceFailed and DiscardFunding events added earlier.
@@ -18185,6 +18191,7 @@ pub(super) struct ChannelManagerData<SP: SignerProvider> {
1818518191 forward_htlcs_legacy: HashMap<u64, Vec<HTLCForwardInfo>>,
1818618192 pending_intercepted_htlcs_legacy: HashMap<InterceptId, PendingAddHTLCInfo>,
1818718193 decode_update_add_htlcs_legacy: HashMap<u64, Vec<msgs::UpdateAddHTLC>>,
18194+ persistent_monitor_events: bool,
1818818195 // The `ChannelManager` version that was written.
1818918196 version: u8,
1819018197}
@@ -18370,6 +18377,7 @@ impl<'a, ES: EntropySource, SP: SignerProvider, L: Logger>
1837018377 let mut inbound_payment_id_secret = None;
1837118378 let mut peer_storage_dir: Option<Vec<(PublicKey, Vec<u8>)>> = None;
1837218379 let mut async_receive_offer_cache: AsyncReceiveOfferCache = AsyncReceiveOfferCache::new();
18380+ let mut persistent_monitor_events = false;
1837318381 read_tlv_fields!(reader, {
1837418382 (1, pending_outbound_payments_no_retry, option),
1837518383 (2, pending_intercepted_htlcs_legacy, option),
@@ -18388,6 +18396,7 @@ impl<'a, ES: EntropySource, SP: SignerProvider, L: Logger>
1838818396 (17, in_flight_monitor_updates, option),
1838918397 (19, peer_storage_dir, optional_vec),
1839018398 (21, async_receive_offer_cache, (default_value, async_receive_offer_cache)),
18399+ (23, persistent_monitor_events, (default_value, false)),
1839118400 });
1839218401
1839318402 // Merge legacy pending_outbound_payments fields into a single HashMap.
@@ -18506,6 +18515,7 @@ impl<'a, ES: EntropySource, SP: SignerProvider, L: Logger>
1850618515 peer_storage_dir: peer_storage_dir.unwrap_or_default(),
1850718516 async_receive_offer_cache,
1850818517 version,
18518+ persistent_monitor_events,
1850918519 })
1851018520 }
1851118521}
@@ -18807,6 +18817,7 @@ impl<
1880718817 mut in_flight_monitor_updates,
1880818818 peer_storage_dir,
1880918819 async_receive_offer_cache,
18820+ persistent_monitor_events,
1881018821 version: _version,
1881118822 } = data;
1881218823
@@ -20072,6 +20083,8 @@ impl<
2007220083 logger: args.logger,
2007320084 config: RwLock::new(args.config),
2007420085
20086+ persistent_monitor_events,
20087+
2007520088 #[cfg(feature = "_test_utils")]
2007620089 testing_dnssec_proof_offer_resolution_override: Mutex::new(new_hash_map()),
2007720090 };
0 commit comments