Skip to content

Commit c182567

Browse files
authoredApr 25, 2023
Merge pull request #2222 from benthecarman/pub-utxo-resolver
2 parents b734735 + 09e29c8 commit c182567

File tree

2 files changed

+17
-4
lines changed

2 files changed

+17
-4
lines changed
 

‎lightning/src/routing/gossip.rs

+16-3
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ use crate::ln::msgs::{DecodeError, ErrorAction, Init, LightningError, RoutingMes
2828
use crate::ln::msgs::{ChannelAnnouncement, ChannelUpdate, NodeAnnouncement, GossipTimestampFilter};
2929
use crate::ln::msgs::{QueryChannelRange, ReplyChannelRange, QueryShortChannelIds, ReplyShortChannelIdsEnd};
3030
use crate::ln::msgs;
31-
use crate::routing::utxo::{self, UtxoLookup};
31+
use crate::routing::utxo::{self, UtxoLookup, UtxoResolver};
3232
use crate::util::ser::{Readable, ReadableArgs, Writeable, Writer, MaybeReadable};
3333
use crate::util::logger::{Logger, Level};
3434
use crate::util::scid_utils::{block_from_scid, scid_from_parts, MAX_SCID_BLOCK};
@@ -1439,8 +1439,8 @@ impl<L: Deref> NetworkGraph<L> where L::Target: Logger {
14391439

14401440
/// Store or update channel info from a channel announcement.
14411441
///
1442-
/// You probably don't want to call this directly, instead relying on a P2PGossipSync's
1443-
/// RoutingMessageHandler implementation to call it indirectly. This may be useful to accept
1442+
/// You probably don't want to call this directly, instead relying on a [`P2PGossipSync`]'s
1443+
/// [`RoutingMessageHandler`] implementation to call it indirectly. This may be useful to accept
14441444
/// routing messages from a source using a protocol other than the lightning P2P protocol.
14451445
///
14461446
/// If a [`UtxoLookup`] object is provided via `utxo_lookup`, it will be called to verify
@@ -1459,6 +1459,19 @@ impl<L: Deref> NetworkGraph<L> where L::Target: Logger {
14591459
self.update_channel_from_unsigned_announcement_intern(&msg.contents, Some(msg), utxo_lookup)
14601460
}
14611461

1462+
/// Store or update channel info from a channel announcement.
1463+
///
1464+
/// You probably don't want to call this directly, instead relying on a [`P2PGossipSync`]'s
1465+
/// [`RoutingMessageHandler`] implementation to call it indirectly. This may be useful to accept
1466+
/// routing messages from a source using a protocol other than the lightning P2P protocol.
1467+
///
1468+
/// This will skip verification of if the channel is actually on-chain.
1469+
pub fn update_channel_from_announcement_no_lookup(
1470+
&self, msg: &ChannelAnnouncement
1471+
) -> Result<(), LightningError> {
1472+
self.update_channel_from_announcement::<&UtxoResolver>(msg, &None)
1473+
}
1474+
14621475
/// Store or update channel info from a channel announcement without verifying the associated
14631476
/// signatures. Because we aren't given the associated signatures here we cannot relay the
14641477
/// channel announcement to any of our peers.

‎lightning/src/routing/utxo.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ pub struct UtxoFuture {
125125

126126
/// A trivial implementation of [`UtxoLookup`] which is used to call back into the network graph
127127
/// once we have a concrete resolution of a request.
128-
struct UtxoResolver(Result<TxOut, UtxoLookupError>);
128+
pub(crate) struct UtxoResolver(Result<TxOut, UtxoLookupError>);
129129
impl UtxoLookup for UtxoResolver {
130130
fn get_utxo(&self, _genesis_hash: &BlockHash, _short_channel_id: u64) -> UtxoResult {
131131
UtxoResult::Sync(self.0.clone())

0 commit comments

Comments
 (0)
Please sign in to comment.