Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 13 additions & 13 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -39,17 +39,17 @@ default = []
#lightning-liquidity = { version = "0.2.0", features = ["std"] }
#lightning-macros = { version = "0.2.0" }

lightning = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "2d2151a4e40734b871289e8bb0fa13466c0ea60a", features = ["std"] }
lightning-types = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "2d2151a4e40734b871289e8bb0fa13466c0ea60a" }
lightning-invoice = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "2d2151a4e40734b871289e8bb0fa13466c0ea60a", features = ["std"] }
lightning-net-tokio = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "2d2151a4e40734b871289e8bb0fa13466c0ea60a" }
lightning-persister = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "2d2151a4e40734b871289e8bb0fa13466c0ea60a", features = ["tokio"] }
lightning-background-processor = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "2d2151a4e40734b871289e8bb0fa13466c0ea60a" }
lightning-rapid-gossip-sync = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "2d2151a4e40734b871289e8bb0fa13466c0ea60a" }
lightning-block-sync = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "2d2151a4e40734b871289e8bb0fa13466c0ea60a", features = ["rest-client", "rpc-client", "tokio"] }
lightning-transaction-sync = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "2d2151a4e40734b871289e8bb0fa13466c0ea60a", features = ["esplora-async-https", "time", "electrum-rustls-ring"] }
lightning-liquidity = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "2d2151a4e40734b871289e8bb0fa13466c0ea60a", features = ["std"] }
lightning-macros = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "2d2151a4e40734b871289e8bb0fa13466c0ea60a" }
lightning = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "98501d6e5134228c41460dcf786ab53337e41245", features = ["std"] }
lightning-types = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "98501d6e5134228c41460dcf786ab53337e41245" }
lightning-invoice = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "98501d6e5134228c41460dcf786ab53337e41245", features = ["std"] }
lightning-net-tokio = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "98501d6e5134228c41460dcf786ab53337e41245" }
lightning-persister = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "98501d6e5134228c41460dcf786ab53337e41245", features = ["tokio"] }
lightning-background-processor = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "98501d6e5134228c41460dcf786ab53337e41245" }
lightning-rapid-gossip-sync = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "98501d6e5134228c41460dcf786ab53337e41245" }
lightning-block-sync = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "98501d6e5134228c41460dcf786ab53337e41245", features = ["rest-client", "rpc-client", "tokio"] }
lightning-transaction-sync = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "98501d6e5134228c41460dcf786ab53337e41245", features = ["esplora-async-https", "time", "electrum-rustls-ring"] }
lightning-liquidity = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "98501d6e5134228c41460dcf786ab53337e41245", features = ["std"] }
lightning-macros = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "98501d6e5134228c41460dcf786ab53337e41245" }

bdk_chain = { version = "0.23.0", default-features = false, features = ["std"] }
bdk_esplora = { version = "0.22.0", default-features = false, features = ["async-https-rustls", "tokio"]}
Expand Down Expand Up @@ -78,13 +78,13 @@ log = { version = "0.4.22", default-features = false, features = ["std"]}
vss-client = { package = "vss-client-ng", version = "0.5" }
prost = { version = "0.11.6", default-features = false}
#bitcoin-payment-instructions = { version = "0.6" }
bitcoin-payment-instructions = { git = "https://github.com/jkczyz/bitcoin-payment-instructions", rev = "8fbb1997917c9a5687f8e532cab9a453af3c3dc1" }
bitcoin-payment-instructions = { git = "https://github.com/jkczyz/bitcoin-payment-instructions", rev = "869fd348c3ca0c78f439d2f31181f4d798c6b20e" }

[target.'cfg(windows)'.dependencies]
winapi = { version = "0.3", features = ["winbase"] }

[dev-dependencies]
lightning = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "2d2151a4e40734b871289e8bb0fa13466c0ea60a", features = ["std", "_test_utils"] }
lightning = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "98501d6e5134228c41460dcf786ab53337e41245", features = ["std", "_test_utils"] }
rand = { version = "0.9.2", default-features = false, features = ["std", "thread_rng", "os_rng"] }
proptest = "1.0.0"
regex = "1.5.6"
Expand Down
36 changes: 22 additions & 14 deletions src/event.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ use bitcoin::secp256k1::PublicKey;
use bitcoin::{Amount, OutPoint};
use lightning::events::bump_transaction::BumpTransactionEvent;
use lightning::events::{
ClosureReason, Event as LdkEvent, PaymentFailureReason, PaymentPurpose, ReplayEvent,
ClosureReason, Event as LdkEvent, FundingInfo, PaymentFailureReason, PaymentPurpose,
ReplayEvent,
};
use lightning::impl_writeable_tlv_based_enum;
use lightning::ln::channelmanager::PaymentId;
Expand Down Expand Up @@ -1516,7 +1517,26 @@ where
},
};
},
LdkEvent::DiscardFunding { .. } => {},
LdkEvent::DiscardFunding { channel_id, funding_info } => {
if let FundingInfo::Contribution { inputs: _, outputs } = funding_info {
log_info!(
self.logger,
"Reclaiming unused addresses from channel {} funding",
channel_id,
);

let tx = bitcoin::Transaction {
version: bitcoin::transaction::Version::TWO,
lock_time: bitcoin::absolute::LockTime::ZERO,
input: vec![],
output: outputs,
};
if let Err(e) = self.wallet.cancel_tx(&tx) {
log_error!(self.logger, "Failed reclaiming unused addresses: {}", e);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, I think we should log that persistence failed here, as this is also why we replay the event. Otherwise we probably shouldn't replay.

return Err(ReplayEvent());
}
}
},
LdkEvent::HTLCIntercepted {
requested_next_hop_scid,
intercept_id,
Expand Down Expand Up @@ -1746,7 +1766,6 @@ where
user_channel_id,
counterparty_node_id,
abandoned_funding_txo,
contributed_outputs,
..
} => {
if let Some(funding_txo) = abandoned_funding_txo {
Expand All @@ -1766,17 +1785,6 @@ where
);
}

let tx = bitcoin::Transaction {
version: bitcoin::transaction::Version::TWO,
lock_time: bitcoin::absolute::LockTime::ZERO,
input: vec![],
output: contributed_outputs,
};
if let Err(e) = self.wallet.cancel_tx(&tx) {
log_error!(self.logger, "Failed reclaiming unused addresses: {}", e);
return Err(ReplayEvent());
}

let event = Event::SpliceFailed {
channel_id,
user_channel_id: UserChannelId(user_channel_id),
Expand Down
2 changes: 1 addition & 1 deletion src/payment/spontaneous.rs
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ impl SpontaneousPayment {
*max_channel_saturation_power_of_half;
}

let mut recipient_fields = RecipientOnionFields::spontaneous_empty();
let mut recipient_fields = RecipientOnionFields::spontaneous_empty(amount_msat);
if let Some(tlvs) = custom_tlvs {
let tlvs_vec = tlvs.into_iter().map(|tlv| (tlv.type_num, tlv.value)).collect();
recipient_fields = recipient_fields.with_custom_tlvs(
Expand Down
Loading