Skip to content

Commit 6e7dda4

Browse files
benthecarmanjkczyz
andcommitted
Update ldk-node to 0.7.0-rc0
Co-Authored-By: Jeffrey Czyz <jkczyz@gmail.com>
1 parent 4bf8685 commit 6e7dda4

9 files changed

Lines changed: 1004 additions & 670 deletions

File tree

Cargo.lock

Lines changed: 935 additions & 648 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ldk-server-protos/src/proto/types.proto

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,12 @@ message Bolt11Jit {
101101
// See [`LdkChannelConfig::accept_underpaying_htlcs`](https://docs.rs/lightning/latest/lightning/util/config/struct.ChannelConfig.html#structfield.accept_underpaying_htlcs)
102102
// for more information.
103103
LSPFeeLimits lsp_fee_limits = 4;
104+
105+
// The value, in thousands of a satoshi, that was deducted from this payment as an extra
106+
// fee taken by our channel counterparty.
107+
//
108+
// Will only be `Some` once we received the payment.
109+
optional uint64 counterparty_skimmed_fee_msat = 5;
104110
}
105111

106112
// Represents a BOLT 12 ‘offer’ payment, i.e., a payment for an Offer.

ldk-server-protos/src/types.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,12 @@ pub struct Bolt11Jit {
134134
/// for more information.
135135
#[prost(message, optional, tag = "4")]
136136
pub lsp_fee_limits: ::core::option::Option<LspFeeLimits>,
137+
/// The value, in thousands of a satoshi, that was deducted from this payment as an extra
138+
/// fee taken by our channel counterparty.
139+
///
140+
/// Will only be `Some` once we received the payment.
141+
#[prost(uint64, optional, tag = "5")]
142+
pub counterparty_skimmed_fee_msat: ::core::option::Option<u64>,
137143
}
138144
/// Represents a BOLT 12 ‘offer’ payment, i.e., a payment for an Offer.
139145
#[allow(clippy::derive_partial_eq_without_eq)]

ldk-server/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ version = "0.1.0"
44
edition = "2021"
55

66
[dependencies]
7-
ldk-node = { git = "https://github.com/lightningdevkit/ldk-node.git", rev = "f0338d19256615088fabab2b6927d478ae3ec1a1" }
7+
ldk-node = { version = "0.7.0-rc.0" }
88
serde = { version = "1.0.203", default-features = false, features = ["derive"] }
99
hyper = { version = "1", default-features = false, features = ["server", "http1"] }
1010
http-body-util = { version = "0.1", default-features = false }

ldk-server/src/api/bolt12_send.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,15 @@ pub(crate) fn handle_bolt12_send_request(
1313
Offer::from_str(&request.offer.as_str()).map_err(|_| ldk_node::NodeError::InvalidOffer)?;
1414

1515
let payment_id = match request.amount_msat {
16-
None => context.node.bolt12_payment().send(&offer, request.quantity, request.payer_note),
16+
None => {
17+
context.node.bolt12_payment().send(&offer, request.quantity, request.payer_note, None)
18+
},
1719
Some(amount_msat) => context.node.bolt12_payment().send_using_amount(
1820
&offer,
1921
amount_msat,
2022
request.quantity,
2123
request.payer_note,
24+
None,
2225
),
2326
}?;
2427

ldk-server/src/api/error.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,9 @@ impl From<NodeError> for LdkServerError {
7878
| NodeError::InvalidNodeAlias
7979
| NodeError::InvalidDateTime
8080
| NodeError::InvalidFeeRate
81-
| NodeError::UriParameterParsingFailed => {
81+
| NodeError::UriParameterParsingFailed
82+
| NodeError::InvalidBlindedPaths
83+
| NodeError::AsyncPaymentServicesDisabled => {
8284
(error.to_string(), LdkServerErrorCode::InvalidRequestError)
8385
},
8486

@@ -92,6 +94,7 @@ impl From<NodeError> for LdkServerError {
9294
| NodeError::ProbeSendingFailed
9395
| NodeError::ChannelCreationFailed
9496
| NodeError::ChannelClosingFailed
97+
| NodeError::ChannelSplicingFailed
9598
| NodeError::ChannelConfigUpdateFailed
9699
| NodeError::DuplicatePayment
97100
| NodeError::InsufficientFunds

ldk-server/src/main.rs

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,13 @@ fn main() {
7979
let mut builder = Builder::from_config(ldk_node_config);
8080
builder.set_log_facade_logger();
8181

82+
if let Some(alias) = config_file.alias {
83+
if let Err(e) = builder.set_node_alias(alias.to_string()) {
84+
eprintln!("Failed to set node alias: {e}");
85+
std::process::exit(-1);
86+
}
87+
}
88+
8289
match config_file.chain_source {
8390
ChainSource::Rpc { rpc_address, rpc_user, rpc_password } => {
8491
builder.set_chain_source_bitcoind_rpc(
@@ -107,6 +114,8 @@ fn main() {
107114
},
108115
};
109116

117+
builder.set_runtime(runtime.handle().clone());
118+
110119
let node = match builder.build() {
111120
Ok(node) => Arc::new(node),
112121
Err(e) => {
@@ -136,7 +145,7 @@ fn main() {
136145
};
137146

138147
println!("Starting up...");
139-
match node.start_with_runtime(Arc::clone(&runtime)) {
148+
match node.start() {
140149
Ok(()) => {},
141150
Err(e) => {
142151
eprintln!("Failed to start up LDK Node: {}", e);
@@ -171,14 +180,18 @@ fn main() {
171180
"CHANNEL_PENDING: {} from counterparty {}",
172181
channel_id, counterparty_node_id
173182
);
174-
event_node.event_handled();
183+
if let Err(e) = event_node.event_handled() {
184+
eprintln!("Failed to mark event as handled: {e}");
185+
}
175186
},
176187
Event::ChannelReady { channel_id, counterparty_node_id, .. } => {
177188
println!(
178189
"CHANNEL_READY: {} from counterparty {:?}",
179190
channel_id, counterparty_node_id
180191
);
181-
event_node.event_handled();
192+
if let Err(e) = event_node.event_handled() {
193+
eprintln!("Failed to mark event as handled: {e}");
194+
}
182195
},
183196
Event::PaymentReceived { payment_id, payment_hash, amount_msat, .. } => {
184197
println!(
@@ -281,15 +294,19 @@ fn main() {
281294
&forwarded_payment.encode_to_vec(),
282295
) {
283296
Ok(_) => {
284-
event_node.event_handled();
297+
if let Err(e) = event_node.event_handled() {
298+
eprintln!("Failed to mark event as handled: {e}");
299+
}
285300
}
286301
Err(e) => {
287302
println!("Failed to write forwarded payment to persistence: {}", e);
288303
}
289304
}
290305
},
291306
_ => {
292-
event_node.event_handled();
307+
if let Err(e) = event_node.event_handled() {
308+
eprintln!("Failed to mark event as handled: {e}");
309+
}
293310
},
294311
}
295312
},
@@ -361,7 +378,9 @@ fn upsert_payment_details(
361378
&payment.encode_to_vec(),
362379
) {
363380
Ok(_) => {
364-
event_node.event_handled();
381+
if let Err(e) = event_node.event_handled() {
382+
eprintln!("Failed to mark event as handled: {e}");
383+
}
365384
},
366385
Err(e) => {
367386
eprintln!("Failed to write payment to persistence: {}", e);

ldk-server/src/util/config.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,7 @@ struct LSPS2ServiceTomlConfig {
188188
max_client_to_self_delay: u32,
189189
min_payment_size_msat: u64,
190190
max_payment_size_msat: u64,
191+
client_trusts_lsp: bool,
191192
require_token: Option<String>,
192193
}
193194

@@ -203,6 +204,7 @@ impl Into<LSPS2ServiceConfig> for LSPS2ServiceTomlConfig {
203204
max_client_to_self_delay,
204205
min_payment_size_msat,
205206
max_payment_size_msat,
207+
client_trusts_lsp,
206208
require_token,
207209
} => LSPS2ServiceConfig {
208210
advertise_service,
@@ -213,6 +215,7 @@ impl Into<LSPS2ServiceConfig> for LSPS2ServiceTomlConfig {
213215
min_payment_size_msat,
214216
max_client_to_self_delay,
215217
max_payment_size_msat,
218+
client_trusts_lsp,
216219
require_token,
217220
},
218221
}
@@ -274,6 +277,7 @@ mod tests {
274277
max_client_to_self_delay = 1440 # ~10 days
275278
min_payment_size_msat = 10000000 # 10,000 satoshis
276279
max_payment_size_msat = 25000000000 # 0.25 BTC
280+
client_trusts_lsp = true
277281
"#;
278282

279283
fs::write(storage_path.join(config_file_name), toml_config).unwrap();
@@ -304,6 +308,7 @@ mod tests {
304308
max_client_to_self_delay: 1440,
305309
min_payment_size_msat: 10000000,
306310
max_payment_size_msat: 25000000000,
311+
client_trusts_lsp: true,
307312
}),
308313
};
309314

ldk-server/src/util/proto_adapter.rs

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -147,19 +147,24 @@ pub(crate) fn payment_kind_to_proto(
147147
secret: secret.map(|s| Bytes::copy_from_slice(&s.0)),
148148
})),
149149
},
150-
PaymentKind::Bolt11Jit { hash, preimage, secret, lsp_fee_limits } => {
151-
ldk_server_protos::types::PaymentKind {
152-
kind: Some(Bolt11Jit(ldk_server_protos::types::Bolt11Jit {
153-
hash: hash.to_string(),
154-
preimage: preimage.map(|p| p.to_string()),
155-
secret: secret.map(|s| Bytes::copy_from_slice(&s.0)),
156-
lsp_fee_limits: Some(LspFeeLimits {
157-
max_total_opening_fee_msat: lsp_fee_limits.max_total_opening_fee_msat,
158-
max_proportional_opening_fee_ppm_msat: lsp_fee_limits
159-
.max_proportional_opening_fee_ppm_msat,
160-
}),
161-
})),
162-
}
150+
PaymentKind::Bolt11Jit {
151+
hash,
152+
preimage,
153+
secret,
154+
lsp_fee_limits,
155+
counterparty_skimmed_fee_msat,
156+
} => ldk_server_protos::types::PaymentKind {
157+
kind: Some(Bolt11Jit(ldk_server_protos::types::Bolt11Jit {
158+
hash: hash.to_string(),
159+
preimage: preimage.map(|p| p.to_string()),
160+
secret: secret.map(|s| Bytes::copy_from_slice(&s.0)),
161+
lsp_fee_limits: Some(LspFeeLimits {
162+
max_total_opening_fee_msat: lsp_fee_limits.max_total_opening_fee_msat,
163+
max_proportional_opening_fee_ppm_msat: lsp_fee_limits
164+
.max_proportional_opening_fee_ppm_msat,
165+
}),
166+
counterparty_skimmed_fee_msat,
167+
})),
163168
},
164169
PaymentKind::Bolt12Offer { hash, preimage, secret, offer_id, payer_note, quantity } => {
165170
ldk_server_protos::types::PaymentKind {

0 commit comments

Comments
 (0)