Skip to content

Commit 2659a23

Browse files
authored
Merge pull request #2512 from arik-so/taproot/2023-08-taproot-signer-variant
Taproot signer variant
2 parents 83af951 + 88ce7d6 commit 2659a23

23 files changed

+600
-286
lines changed

fuzz/src/chanmon_consistency.rs

+5-3
Original file line numberDiff line numberDiff line change
@@ -230,14 +230,16 @@ impl NodeSigner for KeyProvider {
230230
}
231231

232232
impl SignerProvider for KeyProvider {
233-
type Signer = TestChannelSigner;
233+
type EcdsaSigner = TestChannelSigner;
234+
#[cfg(taproot)]
235+
type TaprootSigner = TestChannelSigner;
234236

235237
fn generate_channel_keys_id(&self, _inbound: bool, _channel_value_satoshis: u64, _user_channel_id: u128) -> [u8; 32] {
236238
let id = self.rand_bytes_id.fetch_add(1, atomic::Ordering::Relaxed) as u8;
237239
[id; 32]
238240
}
239241

240-
fn derive_channel_signer(&self, channel_value_satoshis: u64, channel_keys_id: [u8; 32]) -> Self::Signer {
242+
fn derive_channel_signer(&self, channel_value_satoshis: u64, channel_keys_id: [u8; 32]) -> Self::EcdsaSigner {
241243
let secp_ctx = Secp256k1::signing_only();
242244
let id = channel_keys_id[0];
243245
let keys = InMemorySigner::new(
@@ -256,7 +258,7 @@ impl SignerProvider for KeyProvider {
256258
TestChannelSigner::new_with_revoked(keys, revoked_commitment, false)
257259
}
258260

259-
fn read_chan_signer(&self, buffer: &[u8]) -> Result<Self::Signer, DecodeError> {
261+
fn read_chan_signer(&self, buffer: &[u8]) -> Result<Self::EcdsaSigner, DecodeError> {
260262
let mut reader = std::io::Cursor::new(buffer);
261263

262264
let inner: InMemorySigner = ReadableArgs::read(&mut reader, self)?;

fuzz/src/full_stack.rs

+4-2
Original file line numberDiff line numberDiff line change
@@ -340,15 +340,17 @@ impl NodeSigner for KeyProvider {
340340
}
341341

342342
impl SignerProvider for KeyProvider {
343-
type Signer = TestChannelSigner;
343+
type EcdsaSigner = TestChannelSigner;
344+
#[cfg(taproot)]
345+
type TaprootSigner = TestChannelSigner;
344346

345347
fn generate_channel_keys_id(&self, inbound: bool, _channel_value_satoshis: u64, _user_channel_id: u128) -> [u8; 32] {
346348
let ctr = self.counter.fetch_add(1, Ordering::Relaxed) as u8;
347349
self.signer_state.borrow_mut().insert(ctr, (inbound, Arc::new(Mutex::new(EnforcementState::new()))));
348350
[ctr; 32]
349351
}
350352

351-
fn derive_channel_signer(&self, channel_value_satoshis: u64, channel_keys_id: [u8; 32]) -> Self::Signer {
353+
fn derive_channel_signer(&self, channel_value_satoshis: u64, channel_keys_id: [u8; 32]) -> Self::EcdsaSigner {
352354
let secp_ctx = Secp256k1::signing_only();
353355
let ctr = channel_keys_id[0];
354356
let (inbound, state) = self.signer_state.borrow().get(&ctr).unwrap().clone();

fuzz/src/onion_message.rs

+4-2
Original file line numberDiff line numberDiff line change
@@ -189,11 +189,13 @@ impl NodeSigner for KeyProvider {
189189
}
190190

191191
impl SignerProvider for KeyProvider {
192-
type Signer = TestChannelSigner;
192+
type EcdsaSigner = TestChannelSigner;
193+
#[cfg(taproot)]
194+
type TaprootSigner = TestChannelSigner;
193195

194196
fn generate_channel_keys_id(&self, _inbound: bool, _channel_value_satoshis: u64, _user_channel_id: u128) -> [u8; 32] { unreachable!() }
195197

196-
fn derive_channel_signer(&self, _channel_value_satoshis: u64, _channel_keys_id: [u8; 32]) -> Self::Signer {
198+
fn derive_channel_signer(&self, _channel_value_satoshis: u64, _channel_keys_id: [u8; 32]) -> Self::EcdsaSigner {
197199
unreachable!()
198200
}
199201

lightning-background-processor/src/lib.rs

+6-6
Original file line numberDiff line numberDiff line change
@@ -599,7 +599,7 @@ pub async fn process_events_async<
599599
EventHandlerFuture: core::future::Future<Output = ()>,
600600
EventHandler: Fn(Event) -> EventHandlerFuture,
601601
PS: 'static + Deref + Send,
602-
M: 'static + Deref<Target = ChainMonitor<<SP::Target as SignerProvider>::Signer, CF, T, F, L, P>> + Send + Sync,
602+
M: 'static + Deref<Target = ChainMonitor<<SP::Target as SignerProvider>::EcdsaSigner, CF, T, F, L, P>> + Send + Sync,
603603
CM: 'static + Deref<Target = ChannelManager<CW, T, ES, NS, SP, F, R, L>> + Send + Sync,
604604
PGS: 'static + Deref<Target = P2PGossipSync<G, UL, L>> + Send + Sync,
605605
RGS: 'static + Deref<Target = RapidGossipSync<G, L>> + Send,
@@ -617,15 +617,15 @@ pub async fn process_events_async<
617617
where
618618
UL::Target: 'static + UtxoLookup,
619619
CF::Target: 'static + chain::Filter,
620-
CW::Target: 'static + chain::Watch<<SP::Target as SignerProvider>::Signer>,
620+
CW::Target: 'static + chain::Watch<<SP::Target as SignerProvider>::EcdsaSigner>,
621621
T::Target: 'static + BroadcasterInterface,
622622
ES::Target: 'static + EntropySource,
623623
NS::Target: 'static + NodeSigner,
624624
SP::Target: 'static + SignerProvider,
625625
F::Target: 'static + FeeEstimator,
626626
R::Target: 'static + Router,
627627
L::Target: 'static + Logger,
628-
P::Target: 'static + Persist<<SP::Target as SignerProvider>::Signer>,
628+
P::Target: 'static + Persist<<SP::Target as SignerProvider>::EcdsaSigner>,
629629
PS::Target: 'static + Persister<'a, CW, T, ES, NS, SP, F, R, L, SC>,
630630
{
631631
let mut should_break = false;
@@ -738,7 +738,7 @@ impl BackgroundProcessor {
738738
P: 'static + Deref + Send + Sync,
739739
EH: 'static + EventHandler + Send,
740740
PS: 'static + Deref + Send,
741-
M: 'static + Deref<Target = ChainMonitor<<SP::Target as SignerProvider>::Signer, CF, T, F, L, P>> + Send + Sync,
741+
M: 'static + Deref<Target = ChainMonitor<<SP::Target as SignerProvider>::EcdsaSigner, CF, T, F, L, P>> + Send + Sync,
742742
CM: 'static + Deref<Target = ChannelManager<CW, T, ES, NS, SP, F, R, L>> + Send + Sync,
743743
PGS: 'static + Deref<Target = P2PGossipSync<G, UL, L>> + Send + Sync,
744744
RGS: 'static + Deref<Target = RapidGossipSync<G, L>> + Send,
@@ -753,15 +753,15 @@ impl BackgroundProcessor {
753753
where
754754
UL::Target: 'static + UtxoLookup,
755755
CF::Target: 'static + chain::Filter,
756-
CW::Target: 'static + chain::Watch<<SP::Target as SignerProvider>::Signer>,
756+
CW::Target: 'static + chain::Watch<<SP::Target as SignerProvider>::EcdsaSigner>,
757757
T::Target: 'static + BroadcasterInterface,
758758
ES::Target: 'static + EntropySource,
759759
NS::Target: 'static + NodeSigner,
760760
SP::Target: 'static + SignerProvider,
761761
F::Target: 'static + FeeEstimator,
762762
R::Target: 'static + Router,
763763
L::Target: 'static + Logger,
764-
P::Target: 'static + Persist<<SP::Target as SignerProvider>::Signer>,
764+
P::Target: 'static + Persist<<SP::Target as SignerProvider>::EcdsaSigner>,
765765
PS::Target: 'static + Persister<'a, CW, T, ES, NS, SP, F, R, L, SC>,
766766
{
767767
let stop_thread = Arc::new(AtomicBool::new(false));

lightning-block-sync/src/init.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -69,10 +69,10 @@ BlockSourceResult<ValidatedBlockHeader> where B::Target: BlockSource {
6969
/// R: Router,
7070
/// L: Logger,
7171
/// C: chain::Filter,
72-
/// P: chainmonitor::Persist<SP::Signer>,
72+
/// P: chainmonitor::Persist<SP::EcdsaSigner>,
7373
/// >(
7474
/// block_source: &B,
75-
/// chain_monitor: &ChainMonitor<SP::Signer, &C, &T, &F, &L, &P>,
75+
/// chain_monitor: &ChainMonitor<SP::EcdsaSigner, &C, &T, &F, &L, &P>,
7676
/// config: UserConfig,
7777
/// entropy_source: &ES,
7878
/// node_signer: &NS,
@@ -85,7 +85,7 @@ BlockSourceResult<ValidatedBlockHeader> where B::Target: BlockSource {
8585
/// ) {
8686
/// // Read a serialized channel monitor paired with the block hash when it was persisted.
8787
/// let serialized_monitor = "...";
88-
/// let (monitor_block_hash, mut monitor) = <(BlockHash, ChannelMonitor<SP::Signer>)>::read(
88+
/// let (monitor_block_hash, mut monitor) = <(BlockHash, ChannelMonitor<SP::EcdsaSigner>)>::read(
8989
/// &mut Cursor::new(&serialized_monitor), (entropy_source, signer_provider)).unwrap();
9090
///
9191
/// // Read the channel manager paired with the block hash when it was persisted.
@@ -103,7 +103,7 @@ BlockSourceResult<ValidatedBlockHeader> where B::Target: BlockSource {
103103
/// config,
104104
/// vec![&mut monitor],
105105
/// );
106-
/// <(BlockHash, ChannelManager<&ChainMonitor<SP::Signer, &C, &T, &F, &L, &P>, &T, &ES, &NS, &SP, &F, &R, &L>)>::read(
106+
/// <(BlockHash, ChannelManager<&ChainMonitor<SP::EcdsaSigner, &C, &T, &F, &L, &P>, &T, &ES, &NS, &SP, &F, &R, &L>)>::read(
107107
/// &mut Cursor::new(&serialized_manager), read_args).unwrap()
108108
/// };
109109
///

lightning-invoice/src/utils.rs

+7-7
Original file line numberDiff line numberDiff line change
@@ -335,7 +335,7 @@ pub fn create_invoice_from_channelmanager<M: Deref, T: Deref, ES: Deref, NS: Der
335335
min_final_cltv_expiry_delta: Option<u16>,
336336
) -> Result<Bolt11Invoice, SignOrCreationError<()>>
337337
where
338-
M::Target: chain::Watch<<SP::Target as SignerProvider>::Signer>,
338+
M::Target: chain::Watch<<SP::Target as SignerProvider>::EcdsaSigner>,
339339
T::Target: BroadcasterInterface,
340340
ES::Target: EntropySource,
341341
NS::Target: NodeSigner,
@@ -376,7 +376,7 @@ pub fn create_invoice_from_channelmanager_with_description_hash<M: Deref, T: Der
376376
invoice_expiry_delta_secs: u32, min_final_cltv_expiry_delta: Option<u16>,
377377
) -> Result<Bolt11Invoice, SignOrCreationError<()>>
378378
where
379-
M::Target: chain::Watch<<SP::Target as SignerProvider>::Signer>,
379+
M::Target: chain::Watch<<SP::Target as SignerProvider>::EcdsaSigner>,
380380
T::Target: BroadcasterInterface,
381381
ES::Target: EntropySource,
382382
NS::Target: NodeSigner,
@@ -406,7 +406,7 @@ pub fn create_invoice_from_channelmanager_with_description_hash_and_duration_sin
406406
duration_since_epoch: Duration, invoice_expiry_delta_secs: u32, min_final_cltv_expiry_delta: Option<u16>,
407407
) -> Result<Bolt11Invoice, SignOrCreationError<()>>
408408
where
409-
M::Target: chain::Watch<<SP::Target as SignerProvider>::Signer>,
409+
M::Target: chain::Watch<<SP::Target as SignerProvider>::EcdsaSigner>,
410410
T::Target: BroadcasterInterface,
411411
ES::Target: EntropySource,
412412
NS::Target: NodeSigner,
@@ -431,7 +431,7 @@ pub fn create_invoice_from_channelmanager_and_duration_since_epoch<M: Deref, T:
431431
invoice_expiry_delta_secs: u32, min_final_cltv_expiry_delta: Option<u16>,
432432
) -> Result<Bolt11Invoice, SignOrCreationError<()>>
433433
where
434-
M::Target: chain::Watch<<SP::Target as SignerProvider>::Signer>,
434+
M::Target: chain::Watch<<SP::Target as SignerProvider>::EcdsaSigner>,
435435
T::Target: BroadcasterInterface,
436436
ES::Target: EntropySource,
437437
NS::Target: NodeSigner,
@@ -455,7 +455,7 @@ fn _create_invoice_from_channelmanager_and_duration_since_epoch<M: Deref, T: Der
455455
duration_since_epoch: Duration, invoice_expiry_delta_secs: u32, min_final_cltv_expiry_delta: Option<u16>,
456456
) -> Result<Bolt11Invoice, SignOrCreationError<()>>
457457
where
458-
M::Target: chain::Watch<<SP::Target as SignerProvider>::Signer>,
458+
M::Target: chain::Watch<<SP::Target as SignerProvider>::EcdsaSigner>,
459459
T::Target: BroadcasterInterface,
460460
ES::Target: EntropySource,
461461
NS::Target: NodeSigner,
@@ -488,7 +488,7 @@ pub fn create_invoice_from_channelmanager_and_duration_since_epoch_with_payment_
488488
invoice_expiry_delta_secs: u32, payment_hash: PaymentHash, min_final_cltv_expiry_delta: Option<u16>,
489489
) -> Result<Bolt11Invoice, SignOrCreationError<()>>
490490
where
491-
M::Target: chain::Watch<<SP::Target as SignerProvider>::Signer>,
491+
M::Target: chain::Watch<<SP::Target as SignerProvider>::EcdsaSigner>,
492492
T::Target: BroadcasterInterface,
493493
ES::Target: EntropySource,
494494
NS::Target: NodeSigner,
@@ -518,7 +518,7 @@ fn _create_invoice_from_channelmanager_and_duration_since_epoch_with_payment_has
518518
payment_secret: PaymentSecret, min_final_cltv_expiry_delta: Option<u16>,
519519
) -> Result<Bolt11Invoice, SignOrCreationError<()>>
520520
where
521-
M::Target: chain::Watch<<SP::Target as SignerProvider>::Signer>,
521+
M::Target: chain::Watch<<SP::Target as SignerProvider>::EcdsaSigner>,
522522
T::Target: BroadcasterInterface,
523523
ES::Target: EntropySource,
524524
NS::Target: NodeSigner,

lightning/src/chain/chainmonitor.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ use crate::chain::{ChannelMonitorUpdateStatus, Filter, WatchedOutput};
3131
use crate::chain::chaininterface::{BroadcasterInterface, FeeEstimator};
3232
use crate::chain::channelmonitor::{ChannelMonitor, ChannelMonitorUpdate, Balance, MonitorEvent, TransactionOutputs, LATENCY_GRACE_PERIOD_BLOCKS};
3333
use crate::chain::transaction::{OutPoint, TransactionData};
34-
use crate::sign::WriteableEcdsaChannelSigner;
34+
use crate::sign::ecdsa::WriteableEcdsaChannelSigner;
3535
use crate::events;
3636
use crate::events::{Event, EventHandler};
3737
use crate::util::atomic_counter::AtomicCounter;

lightning/src/chain/channelmonitor.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ use crate::chain;
4343
use crate::chain::{BestBlock, WatchedOutput};
4444
use crate::chain::chaininterface::{BroadcasterInterface, FeeEstimator, LowerBoundedFeeEstimator};
4545
use crate::chain::transaction::{OutPoint, TransactionData};
46-
use crate::sign::{ChannelDerivationParameters, HTLCDescriptor, SpendableOutputDescriptor, StaticPaymentOutputDescriptor, DelayedPaymentOutputDescriptor, WriteableEcdsaChannelSigner, SignerProvider, EntropySource};
46+
use crate::sign::{ChannelDerivationParameters, HTLCDescriptor, SpendableOutputDescriptor, StaticPaymentOutputDescriptor, DelayedPaymentOutputDescriptor, ecdsa::WriteableEcdsaChannelSigner, SignerProvider, EntropySource};
4747
use crate::chain::onchaintx::{ClaimEvent, OnchainTxHandler};
4848
use crate::chain::package::{CounterpartyOfferedHTLCOutput, CounterpartyReceivedHTLCOutput, HolderFundingOutput, HolderHTLCOutput, PackageSolvingData, PackageTemplate, RevokedOutput, RevokedHTLCOutput};
4949
use crate::chain::Filter;
@@ -1459,7 +1459,7 @@ impl<Signer: WriteableEcdsaChannelSigner> ChannelMonitor<Signer> {
14591459
/// to the commitment transaction being revoked, this will return a signed transaction, but
14601460
/// the signature will not be valid.
14611461
///
1462-
/// [`EcdsaChannelSigner::sign_justice_revoked_output`]: crate::sign::EcdsaChannelSigner::sign_justice_revoked_output
1462+
/// [`EcdsaChannelSigner::sign_justice_revoked_output`]: crate::sign::ecdsa::EcdsaChannelSigner::sign_justice_revoked_output
14631463
/// [`Persist`]: crate::chain::chainmonitor::Persist
14641464
pub fn sign_to_local_justice_tx(&self, justice_tx: Transaction, input_idx: usize, value: u64, commitment_number: u64) -> Result<Transaction, ()> {
14651465
self.inner.lock().unwrap().sign_to_local_justice_tx(justice_tx, input_idx, value, commitment_number)
@@ -4179,7 +4179,7 @@ where
41794179
const MAX_ALLOC_SIZE: usize = 64*1024;
41804180

41814181
impl<'a, 'b, ES: EntropySource, SP: SignerProvider> ReadableArgs<(&'a ES, &'b SP)>
4182-
for (BlockHash, ChannelMonitor<SP::Signer>) {
4182+
for (BlockHash, ChannelMonitor<SP::EcdsaSigner>) {
41834183
fn read<R: io::Read>(reader: &mut R, args: (&'a ES, &'b SP)) -> Result<Self, DecodeError> {
41844184
macro_rules! unwrap_obj {
41854185
($key: expr) => {
@@ -4365,7 +4365,7 @@ impl<'a, 'b, ES: EntropySource, SP: SignerProvider> ReadableArgs<(&'a ES, &'b SP
43654365
return Err(DecodeError::InvalidValue);
43664366
}
43674367
}
4368-
let onchain_tx_handler: OnchainTxHandler<SP::Signer> = ReadableArgs::read(
4368+
let onchain_tx_handler: OnchainTxHandler<SP::EcdsaSigner> = ReadableArgs::read(
43694369
reader, (entropy_source, signer_provider, channel_value_satoshis, channel_keys_id)
43704370
)?;
43714371

lightning/src/chain/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ use bitcoin::network::constants::Network;
1717
use bitcoin::secp256k1::PublicKey;
1818

1919
use crate::chain::channelmonitor::{ChannelMonitor, ChannelMonitorUpdate, MonitorEvent};
20-
use crate::sign::WriteableEcdsaChannelSigner;
20+
use crate::sign::ecdsa::WriteableEcdsaChannelSigner;
2121
use crate::chain::transaction::{OutPoint, TransactionData};
2222

2323
use crate::prelude::*;

lightning/src/chain/onchaintx.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ use bitcoin::secp256k1::{Secp256k1, ecdsa::Signature};
2323
use bitcoin::secp256k1;
2424

2525
use crate::chain::chaininterface::compute_feerate_sat_per_1000_weight;
26-
use crate::sign::{ChannelDerivationParameters, HTLCDescriptor, ChannelSigner, EntropySource, SignerProvider, WriteableEcdsaChannelSigner};
26+
use crate::sign::{ChannelDerivationParameters, HTLCDescriptor, ChannelSigner, EntropySource, SignerProvider, ecdsa::WriteableEcdsaChannelSigner};
2727
use crate::ln::msgs::DecodeError;
2828
use crate::ln::PaymentPreimage;
2929
use crate::ln::chan_utils::{self, ChannelTransactionParameters, HTLCOutputInCommitment, HolderCommitmentTransaction};
@@ -339,7 +339,7 @@ impl<ChannelSigner: WriteableEcdsaChannelSigner> OnchainTxHandler<ChannelSigner>
339339
}
340340
}
341341

342-
impl<'a, 'b, ES: EntropySource, SP: SignerProvider> ReadableArgs<(&'a ES, &'b SP, u64, [u8; 32])> for OnchainTxHandler<SP::Signer> {
342+
impl<'a, 'b, ES: EntropySource, SP: SignerProvider> ReadableArgs<(&'a ES, &'b SP, u64, [u8; 32])> for OnchainTxHandler<SP::EcdsaSigner> {
343343
fn read<R: io::Read>(reader: &mut R, args: (&'a ES, &'b SP, u64, [u8; 32])) -> Result<Self, DecodeError> {
344344
let entropy_source = args.0;
345345
let signer_provider = args.1;

lightning/src/chain/package.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ use crate::ln::features::ChannelTypeFeatures;
2828
use crate::ln::channel_keys::{DelayedPaymentBasepoint, HtlcBasepoint};
2929
use crate::ln::msgs::DecodeError;
3030
use crate::chain::chaininterface::{FeeEstimator, ConfirmationTarget, MIN_RELAY_FEE_SAT_PER_1000_WEIGHT, compute_feerate_sat_per_1000_weight, FEERATE_FLOOR_SATS_PER_KW};
31-
use crate::sign::WriteableEcdsaChannelSigner;
31+
use crate::sign::ecdsa::WriteableEcdsaChannelSigner;
3232
use crate::chain::onchaintx::{ExternalHTLCClaim, OnchainTxHandler};
3333
use crate::util::logger::Logger;
3434
use crate::util::ser::{Readable, Writer, Writeable, RequiredWrapper};

lightning/src/events/bump_transaction.rs

+7-7
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ use crate::ln::chan_utils::{
2525
};
2626
use crate::prelude::*;
2727
use crate::sign::{
28-
ChannelDerivationParameters, HTLCDescriptor, EcdsaChannelSigner, SignerProvider,
29-
WriteableEcdsaChannelSigner, P2WPKH_WITNESS_WEIGHT
28+
ChannelDerivationParameters, HTLCDescriptor, SignerProvider, P2WPKH_WITNESS_WEIGHT
3029
};
30+
use crate::sign::ecdsa::{EcdsaChannelSigner, WriteableEcdsaChannelSigner};
3131
use crate::sync::Mutex;
3232
use crate::util::logger::Logger;
3333

@@ -92,7 +92,7 @@ impl AnchorDescriptor {
9292
/// Derives the channel signer required to sign the anchor input.
9393
pub fn derive_channel_signer<S: WriteableEcdsaChannelSigner, SP: Deref>(&self, signer_provider: &SP) -> S
9494
where
95-
SP::Target: SignerProvider<Signer = S>
95+
SP::Target: SignerProvider<EcdsaSigner= S>
9696
{
9797
let mut signer = signer_provider.derive_channel_signer(
9898
self.channel_derivation_parameters.value_satoshis,
@@ -142,8 +142,8 @@ pub enum BumpTransactionEvent {
142142
/// an empty `pending_htlcs`), confirmation of the commitment transaction can be considered to
143143
/// be not urgent.
144144
///
145-
/// [`EcdsaChannelSigner`]: crate::sign::EcdsaChannelSigner
146-
/// [`EcdsaChannelSigner::sign_holder_anchor_input`]: crate::sign::EcdsaChannelSigner::sign_holder_anchor_input
145+
/// [`EcdsaChannelSigner`]: crate::sign::ecdsa::EcdsaChannelSigner
146+
/// [`EcdsaChannelSigner::sign_holder_anchor_input`]: crate::sign::ecdsa::EcdsaChannelSigner::sign_holder_anchor_input
147147
/// [`build_anchor_input_witness`]: crate::ln::chan_utils::build_anchor_input_witness
148148
ChannelClose {
149149
/// The unique identifier for the claim of the anchor output in the commitment transaction.
@@ -196,8 +196,8 @@ pub enum BumpTransactionEvent {
196196
/// longer able to commit external confirmed funds to the HTLC transaction or the fee committed
197197
/// to the HTLC transaction is greater in value than the HTLCs being claimed.
198198
///
199-
/// [`EcdsaChannelSigner`]: crate::sign::EcdsaChannelSigner
200-
/// [`EcdsaChannelSigner::sign_holder_htlc_transaction`]: crate::sign::EcdsaChannelSigner::sign_holder_htlc_transaction
199+
/// [`EcdsaChannelSigner`]: crate::sign::ecdsa::EcdsaChannelSigner
200+
/// [`EcdsaChannelSigner::sign_holder_htlc_transaction`]: crate::sign::ecdsa::EcdsaChannelSigner::sign_holder_htlc_transaction
201201
HTLCResolution {
202202
/// The unique identifier for the claim of the HTLCs in the confirmed commitment
203203
/// transaction.

0 commit comments

Comments
 (0)