diff --git a/lightning-background-processor/src/lib.rs b/lightning-background-processor/src/lib.rs
index 19333c5823a..6fd4f899d5c 100644
--- a/lightning-background-processor/src/lib.rs
+++ b/lightning-background-processor/src/lib.rs
@@ -51,6 +51,7 @@ use lightning::routing::utxo::UtxoLookup;
use lightning::sign::{
ChangeDestinationSource, ChangeDestinationSourceSync, EntropySource, OutputSpender,
};
+use lightning::util::async_poll::{MaybeSend, MaybeSync};
use lightning::util::logger::Logger;
use lightning::util::persist::{
KVStore, KVStoreSync, KVStoreSyncWrapper, CHANNEL_MANAGER_PERSISTENCE_KEY,
@@ -184,8 +185,8 @@ pub enum GossipSync<
U: Deref,
L: Deref,
> where
+ L::Target: Logger + MaybeSend + MaybeSync,
U::Target: UtxoLookup,
- L::Target: Logger,
{
/// Gossip sync via the lightning peer-to-peer network as defined by BOLT 7.
P2P(P),
@@ -203,8 +204,8 @@ impl<
L: Deref,
> GossipSync
where
+ L::Target: Logger + MaybeSend + MaybeSync,
U::Target: UtxoLookup,
- L::Target: Logger,
{
fn network_graph(&self) -> Option<&G> {
match self {
@@ -237,8 +238,8 @@ impl<
L: Deref,
> GossipSync
, G, U, L>
where
+ L::Target: Logger + MaybeSend + MaybeSync,
U::Target: UtxoLookup,
- L::Target: Logger,
{
/// Initializes a new [`GossipSync::P2P`] variant.
pub fn p2p(gossip_sync: P) -> Self {
@@ -260,7 +261,7 @@ impl<
&'a (dyn UtxoLookup + Send + Sync),
L,
> where
- L::Target: Logger,
+ L::Target: Logger + MaybeSend + MaybeSync,
{
/// Initializes a new [`GossipSync::Rapid`] variant.
pub fn rapid(gossip_sync: R) -> Self {
@@ -277,7 +278,7 @@ impl<'a, L: Deref>
&'a (dyn UtxoLookup + Send + Sync),
L,
> where
- L::Target: Logger,
+ L::Target: Logger + MaybeSend + MaybeSync,
{
/// Initializes a new [`GossipSync::None`] variant.
pub fn none() -> Self {
@@ -287,7 +288,7 @@ impl<'a, L: Deref>
fn handle_network_graph_update(network_graph: &NetworkGraph, event: &Event)
where
- L::Target: Logger,
+ L::Target: Logger + MaybeSend + MaybeSync,
{
if let Event::PaymentPathFailed {
failure: PathFailure::OnPath { network_update: Some(ref upd) },
@@ -911,11 +912,11 @@ pub async fn process_events_async<
sleeper: Sleeper, mobile_interruptable_platform: bool, fetch_time: FetchTime,
) -> Result<(), lightning::io::Error>
where
+ L::Target: Logger + MaybeSend + MaybeSync,
UL::Target: UtxoLookup,
CF::Target: chain::Filter,
T::Target: BroadcasterInterface,
F::Target: FeeEstimator,
- L::Target: Logger,
P::Target: Persist<::Signer>,
ES::Target: EntropySource,
CM::Target: AChannelManager,
@@ -1382,11 +1383,11 @@ pub async fn process_events_async_with_kv_store_sync<
sleeper: Sleeper, mobile_interruptable_platform: bool, fetch_time: FetchTime,
) -> Result<(), lightning::io::Error>
where
+ L::Target: Logger + MaybeSend + MaybeSync,
UL::Target: UtxoLookup,
CF::Target: chain::Filter,
T::Target: BroadcasterInterface,
F::Target: FeeEstimator,
- L::Target: Logger,
P::Target: Persist<::Signer>,
ES::Target: EntropySource,
CM::Target: AChannelManager,
@@ -1500,7 +1501,7 @@ impl BackgroundProcessor {
CF::Target: 'static + chain::Filter,
T::Target: 'static + BroadcasterInterface,
F::Target: 'static + FeeEstimator,
- L::Target: 'static + Logger,
+ L::Target: Logger + MaybeSend + MaybeSync,
P::Target: 'static + Persist<::Signer>,
ES::Target: 'static + EntropySource,
CM::Target: AChannelManager,
diff --git a/lightning-block-sync/src/gossip.rs b/lightning-block-sync/src/gossip.rs
index 0fe221b9231..6904ec67f8e 100644
--- a/lightning-block-sync/src/gossip.rs
+++ b/lightning-block-sync/src/gossip.rs
@@ -12,6 +12,7 @@ use bitcoin::transaction::{OutPoint, TxOut};
use lightning::ln::peer_handler::APeerManager;
use lightning::routing::gossip::{NetworkGraph, P2PGossipSync};
use lightning::routing::utxo::{UtxoFuture, UtxoLookup, UtxoLookupError, UtxoResult};
+use lightning::util::async_poll::{MaybeSend, MaybeSync};
use lightning::util::logger::Logger;
use lightning::util::native_async::FutureSpawner;
@@ -127,8 +128,8 @@ pub struct GossipVerifier<
Blocks: Deref + Send + Sync + 'static + Clone,
L: Deref + Send + Sync + 'static,
> where
+ L::Target: Logger + MaybeSend + MaybeSync,
Blocks::Target: UtxoSource,
- L::Target: Logger,
{
source: Blocks,
peer_manager_wake: Arc,
@@ -142,8 +143,8 @@ const BLOCK_CACHE_SIZE: usize = 5;
impl
GossipVerifier
where
+ L::Target: Logger + MaybeSend + MaybeSync,
Blocks::Target: UtxoSource,
- L::Target: Logger,
{
/// Constructs a new [`GossipVerifier`].
///
@@ -251,8 +252,8 @@ where
impl Deref
for GossipVerifier
where
+ L::Target: Logger + MaybeSend + MaybeSync,
Blocks::Target: UtxoSource,
- L::Target: Logger,
{
type Target = Self;
fn deref(&self) -> &Self {
@@ -263,8 +264,8 @@ where
impl UtxoLookup
for GossipVerifier
where
+ L::Target: Logger + MaybeSend + MaybeSync,
Blocks::Target: UtxoSource,
- L::Target: Logger,
{
fn get_utxo(&self, _chain_hash: &ChainHash, short_channel_id: u64) -> UtxoResult {
let res = UtxoFuture::new();
diff --git a/lightning-rapid-gossip-sync/src/lib.rs b/lightning-rapid-gossip-sync/src/lib.rs
index 429a3560be0..79ac39515c7 100644
--- a/lightning-rapid-gossip-sync/src/lib.rs
+++ b/lightning-rapid-gossip-sync/src/lib.rs
@@ -87,6 +87,7 @@ use core::sync::atomic::{AtomicBool, Ordering};
use lightning::io;
use lightning::ln::msgs::{DecodeError, LightningError};
use lightning::routing::gossip::NetworkGraph;
+use lightning::util::async_poll::{MaybeSend, MaybeSync};
use lightning::util::logger::Logger;
/// Core functionality of this crate
@@ -134,7 +135,7 @@ impl From for GraphSyncError {
/// [crate-level documentation]: crate
pub struct RapidGossipSync>, L: Deref>
where
- L::Target: Logger,
+ L::Target: Logger + MaybeSend + MaybeSync,
{
network_graph: NG,
logger: L,
@@ -143,7 +144,7 @@ where
impl>, L: Deref> RapidGossipSync
where
- L::Target: Logger,
+ L::Target: Logger + MaybeSend + MaybeSync,
{
/// Instantiate a new [`RapidGossipSync`] instance.
pub fn new(network_graph: NG, logger: L) -> Self {
diff --git a/lightning-rapid-gossip-sync/src/processing.rs b/lightning-rapid-gossip-sync/src/processing.rs
index 8319506b574..6389a58edfc 100644
--- a/lightning-rapid-gossip-sync/src/processing.rs
+++ b/lightning-rapid-gossip-sync/src/processing.rs
@@ -10,6 +10,7 @@ use lightning::ln::msgs::{
UnsignedNodeAnnouncement,
};
use lightning::routing::gossip::{NetworkGraph, NodeAlias, NodeId};
+use lightning::util::async_poll::{MaybeSend, MaybeSync};
use lightning::util::logger::Logger;
use lightning::util::ser::{BigSize, FixedLengthReader, Readable};
use lightning::{log_debug, log_given_level, log_gossip, log_trace, log_warn};
@@ -39,7 +40,7 @@ const STALE_RGS_UPDATE_AGE_LIMIT_SECS: u64 = 60 * 60 * 24 * 14;
impl>, L: Deref> RapidGossipSync
where
- L::Target: Logger,
+ L::Target: Logger + MaybeSend + MaybeSync,
{
#[cfg(feature = "std")]
pub(crate) fn update_network_graph_from_byte_stream(
diff --git a/lightning/src/chain/chainmonitor.rs b/lightning/src/chain/chainmonitor.rs
index 046e285e206..1cc534f0c06 100644
--- a/lightning/src/chain/chainmonitor.rs
+++ b/lightning/src/chain/chainmonitor.rs
@@ -53,7 +53,7 @@ use crate::sync::{Mutex, MutexGuard, RwLock, RwLockReadGuard};
use crate::types::features::{InitFeatures, NodeFeatures};
use crate::util::async_poll::{MaybeSend, MaybeSync};
use crate::util::errors::APIError;
-use crate::util::logger::{Logger, WithContext};
+use crate::util::logger::{Logger, LoggerScope, WithContext};
use crate::util::native_async::FutureSpawner;
use crate::util::persist::{KVStore, MonitorName, MonitorUpdatingPersisterAsync};
#[cfg(peer_storage)]
@@ -1426,6 +1426,8 @@ where
Some(monitor_state) => {
let monitor = &monitor_state.monitor;
let logger = WithChannelMonitor::from(&self.logger, &monitor, None);
+ let _scope = LoggerScope::new(&logger);
+
log_trace!(
logger,
"Updating ChannelMonitor to id {} for channel {}",
diff --git a/lightning/src/chain/channelmonitor.rs b/lightning/src/chain/channelmonitor.rs
index 1d035b68650..6fde79dc1b3 100644
--- a/lightning/src/chain/channelmonitor.rs
+++ b/lightning/src/chain/channelmonitor.rs
@@ -3815,6 +3815,12 @@ impl ChannelMonitorImpl {
}
}));
}
+
+ log_info_tls!(
+ "Recording counterparty fulfillment of HTLC id {:?} with preimage {} in channel monitor",
+ *claimed_htlc_id,
+ *claimed_preimage
+ );
self.counterparty_fulfilled_htlcs.insert(*claimed_htlc_id, *claimed_preimage);
}
diff --git a/lightning/src/ln/channelmanager.rs b/lightning/src/ln/channelmanager.rs
index 8abb2378627..aebcb999dd5 100644
--- a/lightning/src/ln/channelmanager.rs
+++ b/lightning/src/ln/channelmanager.rs
@@ -1953,7 +1953,7 @@ where
/// # fn read_channel_monitors() -> Vec> { vec![] }
/// # fn example<
/// # 'a,
-/// # L: lightning::util::logger::Logger,
+/// # L: lightning::util::logger::Logger + Send + Sync,
/// # ES: lightning::sign::EntropySource,
/// # S: for <'b> lightning::routing::scoring::LockableScore<'b, ScoreLookUp = SL>,
/// # SL: lightning::routing::scoring::ScoreLookUp,
diff --git a/lightning/src/onion_message/messenger.rs b/lightning/src/onion_message/messenger.rs
index 9a2c06bb72f..fc0769030fc 100644
--- a/lightning/src/onion_message/messenger.rs
+++ b/lightning/src/onion_message/messenger.rs
@@ -38,7 +38,7 @@ use crate::ln::onion_utils;
use crate::routing::gossip::{NetworkGraph, NodeId, ReadOnlyNetworkGraph};
use crate::sign::{EntropySource, NodeSigner, ReceiveAuthKey, Recipient};
use crate::types::features::{InitFeatures, NodeFeatures};
-use crate::util::async_poll::{MultiResultFuturePoller, ResultFuture};
+use crate::util::async_poll::{MaybeSend, MaybeSync, MultiResultFuturePoller, ResultFuture};
use crate::util::logger::{Logger, WithContext};
use crate::util::ser::Writeable;
use crate::util::wakers::{Future, Notifier};
@@ -548,7 +548,7 @@ pub trait MessageRouter {
/// message, and thus an `Err` is returned.
pub struct DefaultMessageRouter>, L: Deref, ES: Deref>
where
- L::Target: Logger,
+ L::Target: Logger + MaybeSend + MaybeSync,
ES::Target: EntropySource,
{
network_graph: G,
@@ -565,7 +565,7 @@ pub(crate) const PADDED_PATH_LENGTH: usize = 4;
impl>, L: Deref, ES: Deref> DefaultMessageRouter
where
- L::Target: Logger,
+ L::Target: Logger + MaybeSend + MaybeSync,
ES::Target: EntropySource,
{
/// Creates a [`DefaultMessageRouter`] using the given [`NetworkGraph`].
@@ -719,7 +719,7 @@ where
impl>, L: Deref, ES: Deref> MessageRouter
for DefaultMessageRouter
where
- L::Target: Logger,
+ L::Target: Logger + MaybeSend + MaybeSync,
ES::Target: EntropySource,
{
fn find_path(
@@ -758,7 +758,7 @@ where
/// message, and thus an `Err` is returned.
pub struct NodeIdMessageRouter>, L: Deref, ES: Deref>
where
- L::Target: Logger,
+ L::Target: Logger + MaybeSend + MaybeSync,
ES::Target: EntropySource,
{
network_graph: G,
@@ -767,7 +767,7 @@ where
impl>, L: Deref, ES: Deref> NodeIdMessageRouter
where
- L::Target: Logger,
+ L::Target: Logger + MaybeSend + MaybeSync,
ES::Target: EntropySource,
{
/// Creates a [`NodeIdMessageRouter`] using the given [`NetworkGraph`].
@@ -779,7 +779,7 @@ where
impl>, L: Deref, ES: Deref> MessageRouter
for NodeIdMessageRouter
where
- L::Target: Logger,
+ L::Target: Logger + MaybeSend + MaybeSync,
ES::Target: EntropySource,
{
fn find_path(
diff --git a/lightning/src/routing/gossip.rs b/lightning/src/routing/gossip.rs
index 80ffbf9fb6c..e54eefceba7 100644
--- a/lightning/src/routing/gossip.rs
+++ b/lightning/src/routing/gossip.rs
@@ -37,10 +37,11 @@ use crate::ln::types::ChannelId;
use crate::routing::utxo::{self, UtxoLookup, UtxoResolver};
use crate::types::features::{ChannelFeatures, InitFeatures, NodeFeatures};
use crate::types::string::PrintableString;
+use crate::util::async_poll::{MaybeSend, MaybeSync};
use crate::util::indexed_map::{
Entry as IndexedMapEntry, IndexedMap, OccupiedEntry as IndexedMapOccupiedEntry,
};
-use crate::util::logger::{Level, Logger};
+use crate::util::logger::{Level, Logger, LoggerScope};
use crate::util::scid_utils::{block_from_scid, scid_from_parts, MAX_SCID_BLOCK};
use crate::util::ser::{MaybeReadable, Readable, ReadableArgs, RequiredWrapper, Writeable, Writer};
@@ -185,7 +186,7 @@ impl FromStr for NodeId {
/// Represents the network as nodes and channels between them
pub struct NetworkGraph
where
- L::Target: Logger,
+ L::Target: Logger + MaybeSend + MaybeSync,
{
secp_ctx: Secp256k1,
last_rapid_gossip_sync_timestamp: Mutex