Skip to content

Commit 51a5a1a

Browse files
committed
Move ln/channelmonitor.rs to chain/chainmonitor.rs
1 parent e09767b commit 51a5a1a

17 files changed

+82
-82
lines changed

fuzz/src/chanmon_consistency.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,11 @@ use bitcoin::hashes::sha256::Hash as Sha256;
2929
use bitcoin::hash_types::{BlockHash, WPubkeyHash};
3030

3131
use lightning::chain;
32+
use lightning::chain::chainmonitor;
33+
use lightning::chain::chainmonitor::{ChannelMonitor, ChannelMonitorUpdateErr, MonitorEvent};
3234
use lightning::chain::transaction::OutPoint;
3335
use lightning::chain::chaininterface::{BroadcasterInterface, ConfirmationTarget, FeeEstimator};
3436
use lightning::chain::keysinterface::{KeysInterface, InMemoryChannelKeys};
35-
use lightning::ln::channelmonitor;
36-
use lightning::ln::channelmonitor::{ChannelMonitor, ChannelMonitorUpdateErr, MonitorEvent};
3737
use lightning::ln::channelmanager::{ChannelManager, PaymentHash, PaymentPreimage, PaymentSecret, ChannelManagerReadArgs};
3838
use lightning::ln::features::{ChannelFeatures, InitFeatures, NodeFeatures};
3939
use lightning::ln::msgs::{CommitmentUpdate, ChannelMessageHandler, ErrorAction, UpdateAddHTLC, Init};
@@ -83,8 +83,8 @@ impl Writer for VecWriter {
8383

8484
struct TestChainMonitor {
8585
pub logger: Arc<dyn Logger>,
86-
pub chain_monitor: Arc<channelmonitor::ChainMonitor<EnforcingChannelKeys, Arc<dyn chain::Filter>, Arc<TestBroadcaster>, Arc<FuzzEstimator>, Arc<dyn Logger>>>,
87-
pub update_ret: Mutex<Result<(), channelmonitor::ChannelMonitorUpdateErr>>,
86+
pub chain_monitor: Arc<chainmonitor::ChainMonitor<EnforcingChannelKeys, Arc<dyn chain::Filter>, Arc<TestBroadcaster>, Arc<FuzzEstimator>, Arc<dyn Logger>>>,
87+
pub update_ret: Mutex<Result<(), chainmonitor::ChannelMonitorUpdateErr>>,
8888
// If we reload a node with an old copy of ChannelMonitors, the ChannelManager deserialization
8989
// logic will automatically force-close our channels for us (as we don't have an up-to-date
9090
// monitor implying we are not able to punish misbehaving counterparties). Because this test
@@ -96,7 +96,7 @@ struct TestChainMonitor {
9696
impl TestChainMonitor {
9797
pub fn new(broadcaster: Arc<TestBroadcaster>, logger: Arc<dyn Logger>, feeest: Arc<FuzzEstimator>) -> Self {
9898
Self {
99-
chain_monitor: Arc::new(channelmonitor::ChainMonitor::new(None, broadcaster, logger.clone(), feeest)),
99+
chain_monitor: Arc::new(chainmonitor::ChainMonitor::new(None, broadcaster, logger.clone(), feeest)),
100100
logger,
101101
update_ret: Mutex::new(Ok(())),
102102
latest_monitors: Mutex::new(HashMap::new()),
@@ -107,7 +107,7 @@ impl TestChainMonitor {
107107
impl chain::Watch for TestChainMonitor {
108108
type Keys = EnforcingChannelKeys;
109109

110-
fn watch_channel(&self, funding_txo: OutPoint, monitor: channelmonitor::ChannelMonitor<EnforcingChannelKeys>) -> Result<(), channelmonitor::ChannelMonitorUpdateErr> {
110+
fn watch_channel(&self, funding_txo: OutPoint, monitor: chainmonitor::ChannelMonitor<EnforcingChannelKeys>) -> Result<(), chainmonitor::ChannelMonitorUpdateErr> {
111111
let mut ser = VecWriter(Vec::new());
112112
monitor.write_for_disk(&mut ser).unwrap();
113113
if let Some(_) = self.latest_monitors.lock().unwrap().insert(funding_txo, (monitor.get_latest_update_id(), ser.0)) {
@@ -118,13 +118,13 @@ impl chain::Watch for TestChainMonitor {
118118
self.update_ret.lock().unwrap().clone()
119119
}
120120

121-
fn update_channel(&self, funding_txo: OutPoint, update: channelmonitor::ChannelMonitorUpdate) -> Result<(), channelmonitor::ChannelMonitorUpdateErr> {
121+
fn update_channel(&self, funding_txo: OutPoint, update: chainmonitor::ChannelMonitorUpdate) -> Result<(), chainmonitor::ChannelMonitorUpdateErr> {
122122
let mut map_lock = self.latest_monitors.lock().unwrap();
123123
let mut map_entry = match map_lock.entry(funding_txo) {
124124
hash_map::Entry::Occupied(entry) => entry,
125125
hash_map::Entry::Vacant(_) => panic!("Didn't have monitor on update call"),
126126
};
127-
let mut deserialized_monitor = <(BlockHash, channelmonitor::ChannelMonitor<EnforcingChannelKeys>)>::
127+
let mut deserialized_monitor = <(BlockHash, chainmonitor::ChannelMonitor<EnforcingChannelKeys>)>::
128128
read(&mut Cursor::new(&map_entry.get().1)).unwrap().1;
129129
deserialized_monitor.update_monitor(update.clone(), &&TestBroadcaster {}, &self.logger).unwrap();
130130
let mut ser = VecWriter(Vec::new());

fuzz/src/chanmon_deser.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33

44
use bitcoin::hash_types::BlockHash;
55

6+
use lightning::chain::chainmonitor;
67
use lightning::util::enforcing_trait_impls::EnforcingChannelKeys;
7-
use lightning::ln::channelmonitor;
88
use lightning::util::ser::{Readable, Writer};
99

1010
use utils::test_logger;
@@ -24,10 +24,10 @@ impl Writer for VecWriter {
2424

2525
#[inline]
2626
pub fn do_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
27-
if let Ok((latest_block_hash, monitor)) = <(BlockHash, channelmonitor::ChannelMonitor<EnforcingChannelKeys>)>::read(&mut Cursor::new(data)) {
27+
if let Ok((latest_block_hash, monitor)) = <(BlockHash, chainmonitor::ChannelMonitor<EnforcingChannelKeys>)>::read(&mut Cursor::new(data)) {
2828
let mut w = VecWriter(Vec::new());
2929
monitor.write_for_disk(&mut w).unwrap();
30-
let deserialized_copy = <(BlockHash, channelmonitor::ChannelMonitor<EnforcingChannelKeys>)>::read(&mut Cursor::new(&w.0)).unwrap();
30+
let deserialized_copy = <(BlockHash, chainmonitor::ChannelMonitor<EnforcingChannelKeys>)>::read(&mut Cursor::new(&w.0)).unwrap();
3131
assert!(latest_block_hash == deserialized_copy.0);
3232
assert!(monitor == deserialized_copy.1);
3333
}

fuzz/src/full_stack.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ use lightning::chain;
2929
use lightning::chain::chaininterface::{BroadcasterInterface, ConfirmationTarget, FeeEstimator};
3030
use lightning::chain::transaction::OutPoint;
3131
use lightning::chain::keysinterface::{InMemoryChannelKeys, KeysInterface};
32-
use lightning::ln::channelmonitor;
32+
use lightning::chain::chainmonitor;
3333
use lightning::ln::channelmanager::{ChannelManager, PaymentHash, PaymentPreimage, PaymentSecret};
3434
use lightning::ln::peer_handler::{MessageHandler,PeerManager,SocketDescriptor};
3535
use lightning::routing::router::get_route;
@@ -145,13 +145,13 @@ impl<'a> std::hash::Hash for Peer<'a> {
145145

146146
type ChannelMan = ChannelManager<
147147
EnforcingChannelKeys,
148-
Arc<channelmonitor::ChainMonitor<EnforcingChannelKeys, Arc<dyn chain::Filter>, Arc<TestBroadcaster>, Arc<FuzzEstimator>, Arc<dyn Logger>>>,
148+
Arc<chainmonitor::ChainMonitor<EnforcingChannelKeys, Arc<dyn chain::Filter>, Arc<TestBroadcaster>, Arc<FuzzEstimator>, Arc<dyn Logger>>>,
149149
Arc<TestBroadcaster>, Arc<KeyProvider>, Arc<FuzzEstimator>, Arc<dyn Logger>>;
150150
type PeerMan<'a> = PeerManager<Peer<'a>, Arc<ChannelMan>, Arc<NetGraphMsgHandler<Arc<dyn chain::Access>, Arc<dyn Logger>>>, Arc<dyn Logger>>;
151151

152152
struct MoneyLossDetector<'a> {
153153
manager: Arc<ChannelMan>,
154-
monitor: Arc<channelmonitor::ChainMonitor<EnforcingChannelKeys, Arc<dyn chain::Filter>, Arc<TestBroadcaster>, Arc<FuzzEstimator>, Arc<dyn Logger>>>,
154+
monitor: Arc<chainmonitor::ChainMonitor<EnforcingChannelKeys, Arc<dyn chain::Filter>, Arc<TestBroadcaster>, Arc<FuzzEstimator>, Arc<dyn Logger>>>,
155155
handler: PeerMan<'a>,
156156

157157
peers: &'a RefCell<[bool; 256]>,
@@ -165,7 +165,7 @@ struct MoneyLossDetector<'a> {
165165
impl<'a> MoneyLossDetector<'a> {
166166
pub fn new(peers: &'a RefCell<[bool; 256]>,
167167
manager: Arc<ChannelMan>,
168-
monitor: Arc<channelmonitor::ChainMonitor<EnforcingChannelKeys, Arc<dyn chain::Filter>, Arc<TestBroadcaster>, Arc<FuzzEstimator>, Arc<dyn Logger>>>,
168+
monitor: Arc<chainmonitor::ChainMonitor<EnforcingChannelKeys, Arc<dyn chain::Filter>, Arc<TestBroadcaster>, Arc<FuzzEstimator>, Arc<dyn Logger>>>,
169169
handler: PeerMan<'a>) -> Self {
170170
MoneyLossDetector {
171171
manager,
@@ -333,7 +333,7 @@ pub fn do_test(data: &[u8], logger: &Arc<dyn Logger>) {
333333
};
334334

335335
let broadcast = Arc::new(TestBroadcaster{});
336-
let monitor = Arc::new(channelmonitor::ChainMonitor::new(None, broadcast.clone(), Arc::clone(&logger), fee_est.clone()));
336+
let monitor = Arc::new(chainmonitor::ChainMonitor::new(None, broadcast.clone(), Arc::clone(&logger), fee_est.clone()));
337337

338338
let keys_manager = Arc::new(KeyProvider { node_secret: our_network_key.clone(), counter: AtomicU64::new(0) });
339339
let mut config = UserConfig::default();
@@ -900,6 +900,6 @@ mod tests {
900900
assert_eq!(log_entries.get(&("lightning::ln::peer_handler".to_string(), "Handling UpdateHTLCs event in peer_handler for node 030200000000000000000000000000000000000000000000000000000000000000 with 1 adds, 0 fulfills, 0 fails for channel 3900000000000000000000000000000000000000000000000000000000000000".to_string())), Some(&3)); // 7
901901
assert_eq!(log_entries.get(&("lightning::ln::peer_handler".to_string(), "Handling UpdateHTLCs event in peer_handler for node 030000000000000000000000000000000000000000000000000000000000000000 with 0 adds, 1 fulfills, 0 fails for channel 3d00000000000000000000000000000000000000000000000000000000000000".to_string())), Some(&1)); // 8
902902
assert_eq!(log_entries.get(&("lightning::ln::peer_handler".to_string(), "Handling UpdateHTLCs event in peer_handler for node 030000000000000000000000000000000000000000000000000000000000000000 with 0 adds, 0 fulfills, 1 fails for channel 3d00000000000000000000000000000000000000000000000000000000000000".to_string())), Some(&2)); // 9
903-
assert_eq!(log_entries.get(&("lightning::ln::channelmonitor".to_string(), "Input spending counterparty commitment tx (00000000000000000000000000000000000000000000000000000000000000a1:0) in 0000000000000000000000000000000000000000000000000000000000000018 resolves outbound HTLC with payment hash ff00000000000000000000000000000000000000000000000000000000000000 with timeout".to_string())), Some(&1)); // 10
903+
assert_eq!(log_entries.get(&("lightning::chain::chainmonitor".to_string(), "Input spending counterparty commitment tx (00000000000000000000000000000000000000000000000000000000000000a1:0) in 0000000000000000000000000000000000000000000000000000000000000018 resolves outbound HTLC with payment hash ff00000000000000000000000000000000000000000000000000000000000000 with timeout".to_string())), Some(&1)); // 10
904904
}
905905
}

lightning-net-tokio/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
//! type Logger = dyn lightning::util::logger::Logger;
3737
//! type ChainAccess = dyn lightning::chain::Access;
3838
//! type ChainFilter = dyn lightning::chain::Filter;
39-
//! type ChainMonitor = lightning::ln::channelmonitor::ChainMonitor<lightning::chain::keysinterface::InMemoryChannelKeys, Arc<ChainFilter>, Arc<TxBroadcaster>, Arc<FeeEstimator>, Arc<Logger>>;
39+
//! type ChainMonitor = lightning::chain::chainmonitor::ChainMonitor<lightning::chain::keysinterface::InMemoryChannelKeys, Arc<ChainFilter>, Arc<TxBroadcaster>, Arc<FeeEstimator>, Arc<Logger>>;
4040
//! type ChannelManager = lightning::ln::channelmanager::SimpleArcChannelManager<ChainMonitor, TxBroadcaster, FeeEstimator, Logger>;
4141
//! type PeerManager = lightning::ln::peer_handler::SimpleArcPeerManager<lightning_net_tokio::SocketDescriptor, ChainMonitor, TxBroadcaster, FeeEstimator, ChainAccess, Logger>;
4242
//!

lightning/src/ln/channelmonitor.rs renamed to lightning/src/chain/chainmonitor.rs

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ use std::io::Error;
6464
#[derive(Clone)]
6565
#[must_use]
6666
pub struct ChannelMonitorUpdate {
67-
pub(super) updates: Vec<ChannelMonitorUpdateStep>,
67+
pub(crate) updates: Vec<ChannelMonitorUpdateStep>,
6868
/// The sequence number of this update. Updates *must* be replayed in-order according to this
6969
/// sequence number (and updates may panic if they are not). The update_id values are strictly
7070
/// increasing and increase by one for each new update.
@@ -183,9 +183,9 @@ pub enum MonitorEvent {
183183
/// [`chain::Watch`]: ../../chain/trait.Watch.html
184184
#[derive(Clone, PartialEq)]
185185
pub struct HTLCUpdate {
186-
pub(super) payment_hash: PaymentHash,
187-
pub(super) payment_preimage: Option<PaymentPreimage>,
188-
pub(super) source: HTLCSource
186+
pub(crate) payment_hash: PaymentHash,
187+
pub(crate) payment_preimage: Option<PaymentPreimage>,
188+
pub(crate) source: HTLCSource
189189
}
190190
impl_writeable!(HTLCUpdate, 0, { payment_hash, payment_preimage, source });
191191

@@ -654,7 +654,7 @@ const MIN_SERIALIZATION_VERSION: u8 = 1;
654654

655655
#[cfg_attr(test, derive(PartialEq))]
656656
#[derive(Clone)]
657-
pub(super) enum ChannelMonitorUpdateStep {
657+
pub(crate) enum ChannelMonitorUpdateStep {
658658
LatestHolderCommitmentTXInfo {
659659
commitment_tx: HolderCommitmentTransaction,
660660
htlc_outputs: Vec<(HTLCOutputInCommitment, Option<Signature>, Option<HTLCSource>)>,
@@ -1117,7 +1117,7 @@ impl<ChanSigner: ChannelKeys + Writeable> ChannelMonitor<ChanSigner> {
11171117
}
11181118

11191119
impl<ChanSigner: ChannelKeys> ChannelMonitor<ChanSigner> {
1120-
pub(super) fn new(keys: ChanSigner, shutdown_pubkey: &PublicKey,
1120+
pub(crate) fn new(keys: ChanSigner, shutdown_pubkey: &PublicKey,
11211121
on_counterparty_tx_csv: u16, destination_script: &Script, funding_info: (OutPoint, Script),
11221122
counterparty_htlc_base_key: &PublicKey, counterparty_delayed_payment_base_key: &PublicKey,
11231123
on_holder_tx_csv: u16, funding_redeemscript: Script, channel_value_satoshis: u64,
@@ -1254,7 +1254,7 @@ impl<ChanSigner: ChannelKeys> ChannelMonitor<ChanSigner> {
12541254
/// The monitor watches for it to be broadcasted and then uses the HTLC information (and
12551255
/// possibly future revocation/preimage information) to claim outputs where possible.
12561256
/// We cache also the mapping hash:commitment number to lighten pruning of old preimages by watchtowers.
1257-
pub(super) fn provide_latest_counterparty_commitment_tx_info<L: Deref>(&mut self, unsigned_commitment_tx: &Transaction, htlc_outputs: Vec<(HTLCOutputInCommitment, Option<Box<HTLCSource>>)>, commitment_number: u64, their_revocation_point: PublicKey, logger: &L) where L::Target: Logger {
1257+
pub(crate) fn provide_latest_counterparty_commitment_tx_info<L: Deref>(&mut self, unsigned_commitment_tx: &Transaction, htlc_outputs: Vec<(HTLCOutputInCommitment, Option<Box<HTLCSource>>)>, commitment_number: u64, their_revocation_point: PublicKey, logger: &L) where L::Target: Logger {
12581258
// TODO: Encrypt the htlc_outputs data with the single-hash of the commitment transaction
12591259
// so that a remote monitor doesn't learn anything unless there is a malicious close.
12601260
// (only maybe, sadly we cant do the same for local info, as we need to be aware of
@@ -1329,11 +1329,11 @@ impl<ChanSigner: ChannelKeys> ChannelMonitor<ChanSigner> {
13291329

13301330
/// Provides a payment_hash->payment_preimage mapping. Will be automatically pruned when all
13311331
/// commitment_tx_infos which contain the payment hash have been revoked.
1332-
pub(super) fn provide_payment_preimage(&mut self, payment_hash: &PaymentHash, payment_preimage: &PaymentPreimage) {
1332+
pub(crate) fn provide_payment_preimage(&mut self, payment_hash: &PaymentHash, payment_preimage: &PaymentPreimage) {
13331333
self.payment_preimages.insert(payment_hash.clone(), payment_preimage.clone());
13341334
}
13351335

1336-
pub(super) fn broadcast_latest_holder_commitment_txn<B: Deref, L: Deref>(&mut self, broadcaster: &B, logger: &L)
1336+
pub(crate) fn broadcast_latest_holder_commitment_txn<B: Deref, L: Deref>(&mut self, broadcaster: &B, logger: &L)
13371337
where B::Target: BroadcasterInterface,
13381338
L::Target: Logger,
13391339
{
@@ -1438,19 +1438,19 @@ impl<ChanSigner: ChannelKeys> ChannelMonitor<ChanSigner> {
14381438
}
14391439

14401440
/// Can only fail if idx is < get_min_seen_secret
1441-
pub(super) fn get_secret(&self, idx: u64) -> Option<[u8; 32]> {
1441+
pub(crate) fn get_secret(&self, idx: u64) -> Option<[u8; 32]> {
14421442
self.commitment_secrets.get_secret(idx)
14431443
}
14441444

1445-
pub(super) fn get_min_seen_secret(&self) -> u64 {
1445+
pub(crate) fn get_min_seen_secret(&self) -> u64 {
14461446
self.commitment_secrets.get_min_seen_secret()
14471447
}
14481448

1449-
pub(super) fn get_cur_counterparty_commitment_number(&self) -> u64 {
1449+
pub(crate) fn get_cur_counterparty_commitment_number(&self) -> u64 {
14501450
self.current_counterparty_commitment_number
14511451
}
14521452

1453-
pub(super) fn get_cur_holder_commitment_number(&self) -> u64 {
1453+
pub(crate) fn get_cur_holder_commitment_number(&self) -> u64 {
14541454
self.current_holder_commitment_number
14551455
}
14561456

@@ -2595,9 +2595,9 @@ mod tests {
25952595
use bitcoin::hashes::hex::FromHex;
25962596
use bitcoin::hash_types::Txid;
25972597
use hex;
2598+
use chain::chainmonitor::ChannelMonitor;
25982599
use chain::transaction::OutPoint;
25992600
use ln::channelmanager::{PaymentPreimage, PaymentHash};
2600-
use ln::channelmonitor::ChannelMonitor;
26012601
use ln::onchaintx::{OnchainTxHandler, InputDescriptors};
26022602
use ln::chan_utils;
26032603
use ln::chan_utils::{HTLCOutputInCommitment, HolderCommitmentTransaction};

lightning/src/chain/mod.rs

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,10 @@ use bitcoin::hash_types::{BlockHash, Txid};
1515

1616
use chain::keysinterface::ChannelKeys;
1717
use chain::transaction::OutPoint;
18-
use ln::channelmonitor::{ChannelMonitor, ChannelMonitorUpdate, ChannelMonitorUpdateErr, MonitorEvent};
18+
use chain::chainmonitor::{ChannelMonitor, ChannelMonitorUpdate, ChannelMonitorUpdateErr, MonitorEvent};
1919

2020
pub mod chaininterface;
21+
pub mod chainmonitor;
2122
pub mod transaction;
2223
pub mod keysinterface;
2324

@@ -62,9 +63,9 @@ pub enum AccessError {
6263
/// funds in the channel. See [`ChannelMonitorUpdateErr`] for more details about how to handle
6364
/// multiple instances.
6465
///
65-
/// [`ChannelMonitor`]: ../ln/channelmonitor/struct.ChannelMonitor.html
66-
/// [`ChannelMonitorUpdateErr`]: ../ln/channelmonitor/enum.ChannelMonitorUpdateErr.html
67-
/// [`PermanentFailure`]: ../ln/channelmonitor/enum.ChannelMonitorUpdateErr.html#variant.PermanentFailure
66+
/// [`ChannelMonitor`]: chainmonitor/struct.ChannelMonitor.html
67+
/// [`ChannelMonitorUpdateErr`]: chainmonitor/enum.ChannelMonitorUpdateErr.html
68+
/// [`PermanentFailure`]: chainmonitor/enum.ChannelMonitorUpdateErr.html#variant.PermanentFailure
6869
pub trait Watch: Send + Sync {
6970
/// Keys needed by monitors for creating and signing transactions.
7071
type Keys: ChannelKeys;
@@ -75,18 +76,18 @@ pub trait Watch: Send + Sync {
7576
/// with any spends of outputs returned by [`get_outputs_to_watch`]. In practice, this means
7677
/// calling [`block_connected`] and [`block_disconnected`] on the monitor.
7778
///
78-
/// [`get_outputs_to_watch`]: ../ln/channelmonitor/struct.ChannelMonitor.html#method.get_outputs_to_watch
79-
/// [`block_connected`]: ../ln/channelmonitor/struct.ChannelMonitor.html#method.block_connected
80-
/// [`block_disconnected`]: ../ln/channelmonitor/struct.ChannelMonitor.html#method.block_disconnected
79+
/// [`get_outputs_to_watch`]: chainmonitor/struct.ChannelMonitor.html#method.get_outputs_to_watch
80+
/// [`block_connected`]: chainmonitor/struct.ChannelMonitor.html#method.block_connected
81+
/// [`block_disconnected`]: chainmonitor/struct.ChannelMonitor.html#method.block_disconnected
8182
fn watch_channel(&self, funding_txo: OutPoint, monitor: ChannelMonitor<Self::Keys>) -> Result<(), ChannelMonitorUpdateErr>;
8283

8384
/// Updates a channel identified by `funding_txo` by applying `update` to its monitor.
8485
///
8586
/// Implementations must call [`update_monitor`] with the given update. See
8687
/// [`ChannelMonitorUpdateErr`] for invariants around returning an error.
8788
///
88-
/// [`update_monitor`]: ../ln/channelmonitor/struct.ChannelMonitor.html#method.update_monitor
89-
/// [`ChannelMonitorUpdateErr`]: ../ln/channelmonitor/enum.ChannelMonitorUpdateErr.html
89+
/// [`update_monitor`]: chainmonitor/struct.ChannelMonitor.html#method.update_monitor
90+
/// [`ChannelMonitorUpdateErr`]: chainmonitor/enum.ChannelMonitorUpdateErr.html
9091
fn update_channel(&self, funding_txo: OutPoint, update: ChannelMonitorUpdate) -> Result<(), ChannelMonitorUpdateErr>;
9192

9293
/// Returns any monitor events since the last call. Subsequent calls must only return new
@@ -112,7 +113,7 @@ pub trait Watch: Send + Sync {
112113
/// invocation that has called the `Filter` must return [`TemporaryFailure`].
113114
///
114115
/// [`Watch`]: trait.Watch.html
115-
/// [`TemporaryFailure`]: ../ln/channelmonitor/enum.ChannelMonitorUpdateErr.html#variant.TemporaryFailure
116+
/// [`TemporaryFailure`]: chainmonitor/enum.ChannelMonitorUpdateErr.html#variant.TemporaryFailure
116117
/// [BIP 157]: https://github.com/bitcoin/bips/blob/master/bip-0157.mediawiki
117118
/// [BIP 158]: https://github.com/bitcoin/bips/blob/master/bip-0158.mediawiki
118119
pub trait Filter: Send + Sync {

0 commit comments

Comments
 (0)