Skip to content

Commit d43218a

Browse files
Merge pull request #3145 from valentinewallace/2024-06-AP-prefactor-followup
Followups to #3125
2 parents 88e1b56 + 9695787 commit d43218a

File tree

5 files changed

+40
-9
lines changed

5 files changed

+40
-9
lines changed

fuzz/src/onion_message.rs

+8-3
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ use lightning::ln::script::ShutdownScript;
1313
use lightning::offers::invoice::UnsignedBolt12Invoice;
1414
use lightning::offers::invoice_request::UnsignedInvoiceRequest;
1515
use lightning::onion_message::async_payments::{
16-
AsyncPaymentsMessage, AsyncPaymentsMessageHandler, HeldHtlcAvailable, ReleaseHeldHtlc,
16+
AsyncPaymentsMessageHandler, HeldHtlcAvailable, ReleaseHeldHtlc,
1717
};
1818
use lightning::onion_message::messenger::{
1919
CustomOnionMessageHandler, Destination, MessageRouter, OnionMessagePath, OnionMessenger,
@@ -114,9 +114,14 @@ struct TestAsyncPaymentsMessageHandler {}
114114

115115
impl AsyncPaymentsMessageHandler for TestAsyncPaymentsMessageHandler {
116116
fn held_htlc_available(
117-
&self, _message: HeldHtlcAvailable, _responder: Option<Responder>,
117+
&self, message: HeldHtlcAvailable, responder: Option<Responder>,
118118
) -> ResponseInstruction<ReleaseHeldHtlc> {
119-
ResponseInstruction::NoResponse
119+
let responder = match responder {
120+
Some(resp) => resp,
121+
None => return ResponseInstruction::NoResponse,
122+
};
123+
responder
124+
.respond(ReleaseHeldHtlc { payment_release_secret: message.payment_release_secret })
120125
}
121126
fn release_held_htlc(&self, _message: ReleaseHeldHtlc) {}
122127
}

lightning-background-processor/src/lib.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -996,7 +996,7 @@ mod tests {
996996
type PGS = Arc<P2PGossipSync<Arc<NetworkGraph<Arc<test_utils::TestLogger>>>, Arc<test_utils::TestChainSource>, Arc<test_utils::TestLogger>>>;
997997
type RGS = Arc<RapidGossipSync<Arc<NetworkGraph<Arc<test_utils::TestLogger>>>, Arc<test_utils::TestLogger>>>;
998998

999-
type OM = OnionMessenger<Arc<KeysManager>, Arc<KeysManager>, Arc<test_utils::TestLogger>, Arc<ChannelManager>, Arc<DefaultMessageRouter<Arc<NetworkGraph<Arc<test_utils::TestLogger>>>, Arc<test_utils::TestLogger>, Arc<KeysManager>>>, IgnoringMessageHandler, IgnoringMessageHandler, IgnoringMessageHandler>;
999+
type OM = OnionMessenger<Arc<KeysManager>, Arc<KeysManager>, Arc<test_utils::TestLogger>, Arc<ChannelManager>, Arc<DefaultMessageRouter<Arc<NetworkGraph<Arc<test_utils::TestLogger>>>, Arc<test_utils::TestLogger>, Arc<KeysManager>>>, IgnoringMessageHandler, Arc<ChannelManager>, IgnoringMessageHandler>;
10001000

10011001
struct Node {
10021002
node: Arc<ChannelManager>,
@@ -1291,7 +1291,7 @@ mod tests {
12911291
let best_block = BestBlock::from_network(network);
12921292
let params = ChainParameters { network, best_block };
12931293
let manager = Arc::new(ChannelManager::new(fee_estimator.clone(), chain_monitor.clone(), tx_broadcaster.clone(), router.clone(), logger.clone(), keys_manager.clone(), keys_manager.clone(), keys_manager.clone(), UserConfig::default(), params, genesis_block.header.time));
1294-
let messenger = Arc::new(OnionMessenger::new(keys_manager.clone(), keys_manager.clone(), logger.clone(), manager.clone(), msg_router.clone(), IgnoringMessageHandler {}, IgnoringMessageHandler {}, IgnoringMessageHandler {}));
1294+
let messenger = Arc::new(OnionMessenger::new(keys_manager.clone(), keys_manager.clone(), logger.clone(), manager.clone(), msg_router.clone(), IgnoringMessageHandler {}, manager.clone(), IgnoringMessageHandler {}));
12951295
let wallet = Arc::new(TestWallet {});
12961296
let sweeper = Arc::new(OutputSweeper::new(best_block, Arc::clone(&tx_broadcaster), Arc::clone(&fee_estimator),
12971297
None::<Arc<dyn Filter + Sync + Send>>, Arc::clone(&keys_manager), wallet, Arc::clone(&kv_store), Arc::clone(&logger)));

lightning/src/ln/channelmanager.rs

+26
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ use crate::offers::invoice_request::{DerivedPayerId, InvoiceRequestBuilder};
6666
use crate::offers::offer::{Offer, OfferBuilder};
6767
use crate::offers::parse::Bolt12SemanticError;
6868
use crate::offers::refund::{Refund, RefundBuilder};
69+
use crate::onion_message::async_payments::{AsyncPaymentsMessage, HeldHtlcAvailable, ReleaseHeldHtlc, AsyncPaymentsMessageHandler};
6970
use crate::onion_message::messenger::{new_pending_onion_message, Destination, MessageRouter, PendingOnionMessage, Responder, ResponseInstruction};
7071
use crate::onion_message::offers::{OffersMessage, OffersMessageHandler};
7172
use crate::sign::{EntropySource, NodeSigner, Recipient, SignerProvider};
@@ -10400,6 +10401,31 @@ where
1040010401
}
1040110402
}
1040210403

10404+
impl<M: Deref, T: Deref, ES: Deref, NS: Deref, SP: Deref, F: Deref, R: Deref, L: Deref>
10405+
AsyncPaymentsMessageHandler for ChannelManager<M, T, ES, NS, SP, F, R, L>
10406+
where
10407+
M::Target: chain::Watch<<SP::Target as SignerProvider>::EcdsaSigner>,
10408+
T::Target: BroadcasterInterface,
10409+
ES::Target: EntropySource,
10410+
NS::Target: NodeSigner,
10411+
SP::Target: SignerProvider,
10412+
F::Target: FeeEstimator,
10413+
R::Target: Router,
10414+
L::Target: Logger,
10415+
{
10416+
fn held_htlc_available(
10417+
&self, _message: HeldHtlcAvailable, _responder: Option<Responder>
10418+
) -> ResponseInstruction<ReleaseHeldHtlc> {
10419+
ResponseInstruction::NoResponse
10420+
}
10421+
10422+
fn release_held_htlc(&self, _message: ReleaseHeldHtlc) {}
10423+
10424+
fn release_pending_messages(&self) -> Vec<PendingOnionMessage<AsyncPaymentsMessage>> {
10425+
Vec::new()
10426+
}
10427+
}
10428+
1040310429
impl<M: Deref, T: Deref, ES: Deref, NS: Deref, SP: Deref, F: Deref, R: Deref, L: Deref>
1040410430
NodeIdLookUp for ChannelManager<M, T, ES, NS, SP, F, R, L>
1040510431
where

lightning/src/ln/functional_test_utils.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -422,7 +422,7 @@ type TestOnionMessenger<'chan_man, 'node_cfg, 'chan_mon_cfg> = OnionMessenger<
422422
&'chan_man TestChannelManager<'node_cfg, 'chan_mon_cfg>,
423423
&'node_cfg test_utils::TestMessageRouter<'chan_mon_cfg>,
424424
&'chan_man TestChannelManager<'node_cfg, 'chan_mon_cfg>,
425-
IgnoringMessageHandler,
425+
&'chan_man TestChannelManager<'node_cfg, 'chan_mon_cfg>,
426426
IgnoringMessageHandler,
427427
>;
428428

@@ -3259,7 +3259,7 @@ pub fn create_network<'a, 'b: 'a, 'c: 'b>(node_count: usize, cfgs: &'b Vec<NodeC
32593259
let dedicated_entropy = DedicatedEntropy(RandomBytes::new([i as u8; 32]));
32603260
let onion_messenger = OnionMessenger::new(
32613261
dedicated_entropy, cfgs[i].keys_manager, cfgs[i].logger, &chan_mgrs[i],
3262-
&cfgs[i].message_router, &chan_mgrs[i], IgnoringMessageHandler {}, IgnoringMessageHandler {},
3262+
&cfgs[i].message_router, &chan_mgrs[i], &chan_mgrs[i], IgnoringMessageHandler {},
32633263
);
32643264
let gossip_sync = P2PGossipSync::new(cfgs[i].network_graph.as_ref(), None, cfgs[i].logger);
32653265
let wallet_source = Arc::new(test_utils::TestWalletSource::new(SecretKey::from_slice(&[i as u8 + 1; 32]).unwrap()));

lightning/src/onion_message/messenger.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1633,7 +1633,7 @@ pub type SimpleArcOnionMessenger<M, T, F, L> = OnionMessenger<
16331633
Arc<SimpleArcChannelManager<M, T, F, L>>,
16341634
Arc<DefaultMessageRouter<Arc<NetworkGraph<Arc<L>>>, Arc<L>, Arc<KeysManager>>>,
16351635
Arc<SimpleArcChannelManager<M, T, F, L>>,
1636-
IgnoringMessageHandler,
1636+
Arc<SimpleArcChannelManager<M, T, F, L>>,
16371637
IgnoringMessageHandler
16381638
>;
16391639

@@ -1654,7 +1654,7 @@ pub type SimpleRefOnionMessenger<
16541654
&'i SimpleRefChannelManager<'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, M, T, F, L>,
16551655
&'j DefaultMessageRouter<&'g NetworkGraph<&'b L>, &'b L, &'a KeysManager>,
16561656
&'i SimpleRefChannelManager<'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, M, T, F, L>,
1657-
IgnoringMessageHandler,
1657+
&'i SimpleRefChannelManager<'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, M, T, F, L>,
16581658
IgnoringMessageHandler
16591659
>;
16601660

0 commit comments

Comments
 (0)