Skip to content

Commit f0296d2

Browse files
authored
Merge pull request #634 from joostjager/splicing-balance
Adapt channel balance reporting to use confirmed candidate
2 parents 8f0e4fd + 006a06e commit f0296d2

File tree

2 files changed

+30
-24
lines changed

2 files changed

+30
-24
lines changed

Cargo.toml

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -52,17 +52,17 @@ default = []
5252
#lightning-liquidity = { git = "https://github.com/lightningdevkit/rust-lightning", branch = "main" }
5353
#lightning-macros = { git = "https://github.com/lightningdevkit/rust-lightning", branch = "main" }
5454

55-
lightning = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "4e32d85249359d8ef8ece97d89848e40154363ab", features = ["std"] }
56-
lightning-types = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "4e32d85249359d8ef8ece97d89848e40154363ab" }
57-
lightning-invoice = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "4e32d85249359d8ef8ece97d89848e40154363ab", features = ["std"] }
58-
lightning-net-tokio = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "4e32d85249359d8ef8ece97d89848e40154363ab" }
59-
lightning-persister = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "4e32d85249359d8ef8ece97d89848e40154363ab" }
60-
lightning-background-processor = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "4e32d85249359d8ef8ece97d89848e40154363ab" }
61-
lightning-rapid-gossip-sync = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "4e32d85249359d8ef8ece97d89848e40154363ab" }
62-
lightning-block-sync = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "4e32d85249359d8ef8ece97d89848e40154363ab", features = ["rest-client", "rpc-client", "tokio"] }
63-
lightning-transaction-sync = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "4e32d85249359d8ef8ece97d89848e40154363ab", features = ["esplora-async-https", "electrum-rustls-ring", "time"] }
64-
lightning-liquidity = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "4e32d85249359d8ef8ece97d89848e40154363ab" }
65-
lightning-macros = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "4e32d85249359d8ef8ece97d89848e40154363ab" }
55+
lightning = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "84398d9e5b3dc61c0a5c71972aa944f19948aef0", features = ["std"] }
56+
lightning-types = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "84398d9e5b3dc61c0a5c71972aa944f19948aef0" }
57+
lightning-invoice = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "84398d9e5b3dc61c0a5c71972aa944f19948aef0", features = ["std"] }
58+
lightning-net-tokio = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "84398d9e5b3dc61c0a5c71972aa944f19948aef0" }
59+
lightning-persister = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "84398d9e5b3dc61c0a5c71972aa944f19948aef0" }
60+
lightning-background-processor = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "84398d9e5b3dc61c0a5c71972aa944f19948aef0" }
61+
lightning-rapid-gossip-sync = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "84398d9e5b3dc61c0a5c71972aa944f19948aef0" }
62+
lightning-block-sync = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "84398d9e5b3dc61c0a5c71972aa944f19948aef0", features = ["rest-client", "rpc-client", "tokio"] }
63+
lightning-transaction-sync = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "84398d9e5b3dc61c0a5c71972aa944f19948aef0", features = ["esplora-async-https", "electrum-rustls-ring", "time"] }
64+
lightning-liquidity = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "84398d9e5b3dc61c0a5c71972aa944f19948aef0" }
65+
lightning-macros = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "84398d9e5b3dc61c0a5c71972aa944f19948aef0" }
6666

6767
#lightning = { path = "../rust-lightning/lightning", features = ["std"] }
6868
#lightning-types = { path = "../rust-lightning/lightning-types" }
@@ -109,7 +109,7 @@ winapi = { version = "0.3", features = ["winbase"] }
109109
[dev-dependencies]
110110
#lightning = { version = "0.1.0", features = ["std", "_test_utils"] }
111111
#lightning = { git = "https://github.com/lightningdevkit/rust-lightning", branch="main", features = ["std", "_test_utils"] }
112-
lightning = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "4e32d85249359d8ef8ece97d89848e40154363ab", features = ["std", "_test_utils"] }
112+
lightning = { git = "https://github.com/lightningdevkit/rust-lightning", rev = "84398d9e5b3dc61c0a5c71972aa944f19948aef0", features = ["std", "_test_utils"] }
113113
#lightning = { path = "../rust-lightning/lightning", features = ["std", "_test_utils"] }
114114
proptest = "1.0.0"
115115
regex = "1.5.6"

src/balance.rs

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,8 @@ pub struct BalanceDetails {
7373
pub enum LightningBalance {
7474
/// The channel is not yet closed (or the commitment or closing transaction has not yet
7575
/// appeared in a block). The given balance is claimable (less on-chain fees) if the channel is
76-
/// force-closed now.
76+
/// force-closed now. Values do not take into account any pending splices and are only based
77+
/// on the confirmed state of the channel.
7778
ClaimableOnChannelClose {
7879
/// The identifier of the channel this balance belongs to.
7980
channel_id: ChannelId,
@@ -224,21 +225,26 @@ impl LightningBalance {
224225
) -> Self {
225226
match balance {
226227
LdkBalance::ClaimableOnChannelClose {
227-
amount_satoshis,
228-
transaction_fee_satoshis,
229-
outbound_payment_htlc_rounded_msat,
230-
outbound_forwarded_htlc_rounded_msat,
231-
inbound_claiming_htlc_rounded_msat,
232-
inbound_htlc_rounded_msat,
233-
} => Self::ClaimableOnChannelClose {
234-
channel_id,
235-
counterparty_node_id,
236-
amount_satoshis,
237-
transaction_fee_satoshis,
228+
balance_candidates,
229+
confirmed_balance_candidate_index,
238230
outbound_payment_htlc_rounded_msat,
239231
outbound_forwarded_htlc_rounded_msat,
240232
inbound_claiming_htlc_rounded_msat,
241233
inbound_htlc_rounded_msat,
234+
} => {
235+
// unwrap safety: confirmed_balance_candidate_index is guaranteed to index into balance_candidates
236+
let balance = balance_candidates.get(confirmed_balance_candidate_index).unwrap();
237+
238+
Self::ClaimableOnChannelClose {
239+
channel_id,
240+
counterparty_node_id,
241+
amount_satoshis: balance.amount_satoshis,
242+
transaction_fee_satoshis: balance.transaction_fee_satoshis,
243+
outbound_payment_htlc_rounded_msat,
244+
outbound_forwarded_htlc_rounded_msat,
245+
inbound_claiming_htlc_rounded_msat,
246+
inbound_htlc_rounded_msat,
247+
}
242248
},
243249
LdkBalance::ClaimableAwaitingConfirmations {
244250
amount_satoshis,

0 commit comments

Comments
 (0)