Skip to content

Commit 6ff4e41

Browse files
committed
Add hrn_resolver to Node
This commit adds a HRN Resolver to the Node struct which will be useful for resolving HRNs when making BIP 353 payments
1 parent 7961b8f commit 6ff4e41

File tree

3 files changed

+18
-1
lines changed

3 files changed

+18
-1
lines changed

src/builder.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,8 @@ use std::sync::{Arc, Mutex, RwLock};
7979
use std::time::SystemTime;
8080
use vss_client::headers::{FixedHeaders, LnurlAuthToJwtProvider, VssHeaderProvider};
8181

82+
use bitcoin_payment_instructions::onion_message_resolver::LDKOnionMessageDNSSECHrnResolver;
83+
8284
const VSS_HARDENED_CHILD_INDEX: u32 = 877;
8385
const VSS_LNURL_AUTH_HARDENED_CHILD_INDEX: u32 = 138;
8486
const LSPS_HARDENED_CHILD_INDEX: u32 = 577;
@@ -1633,6 +1635,14 @@ fn build_with_store_internal(
16331635
let (stop_sender, _) = tokio::sync::watch::channel(());
16341636
let background_processor_task = Mutex::new(None);
16351637

1638+
let hrn_resolver = Arc::new(LDKOnionMessageDNSSECHrnResolver::new(network_graph.clone()));
1639+
1640+
let peer_manager_clone = peer_manager.clone();
1641+
1642+
hrn_resolver.register_post_queue_action(Box::new(move || {
1643+
peer_manager_clone.process_events();
1644+
}));
1645+
16361646
Ok(Node {
16371647
runtime,
16381648
stop_sender,
@@ -1660,6 +1670,7 @@ fn build_with_store_internal(
16601670
payment_store,
16611671
is_listening,
16621672
node_metrics,
1673+
hrn_resolver,
16631674
})
16641675
}
16651676

src/lib.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,8 @@ use payment::{
143143
use peer_store::{PeerInfo, PeerStore};
144144
use types::{
145145
Broadcaster, BumpTransactionEventHandler, ChainMonitor, ChannelManager, DynStore, Graph,
146-
KeysManager, OnionMessenger, PaymentStore, PeerManager, Router, Scorer, Sweeper, Wallet,
146+
HRNResolver, KeysManager, OnionMessenger, PaymentStore, PeerManager, Router, Scorer, Sweeper,
147+
Wallet,
147148
};
148149
pub use types::{ChannelDetails, CustomTlvRecord, PeerDetails, UserChannelId};
149150

@@ -202,6 +203,7 @@ pub struct Node {
202203
payment_store: Arc<PaymentStore>,
203204
is_listening: Arc<AtomicBool>,
204205
node_metrics: Arc<RwLock<NodeMetrics>>,
206+
hrn_resolver: Arc<HRNResolver>,
205207
}
206208

207209
impl Node {

src/types.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ use lightning_net_tokio::SocketDescriptor;
3636
use bitcoin::secp256k1::PublicKey;
3737
use bitcoin::OutPoint;
3838

39+
use bitcoin_payment_instructions::onion_message_resolver::LDKOnionMessageDNSSECHrnResolver;
40+
3941
use std::sync::{Arc, Mutex};
4042

4143
pub(crate) type DynStore = dyn KVStore + Sync + Send;
@@ -147,6 +149,8 @@ pub(crate) type BumpTransactionEventHandler =
147149

148150
pub(crate) type PaymentStore = DataStore<PaymentDetails, Arc<Logger>>;
149151

152+
pub(crate) type HRNResolver = LDKOnionMessageDNSSECHrnResolver<Arc<Graph>, Arc<Logger>>;
153+
150154
/// A local, potentially user-provided, identifier of a channel.
151155
///
152156
/// By default, this will be randomly generated for the user to ensure local uniqueness.

0 commit comments

Comments
 (0)