projects
/
ldk-sample
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
ddc9414
)
sample no clone
2021-08-handle-network-updates
author
Matt Corallo
<git@bluematt.me>
Wed, 18 Aug 2021 23:48:08 +0000
(23:48 +0000)
committer
Matt Corallo
<git@bluematt.me>
Wed, 18 Aug 2021 23:48:08 +0000
(23:48 +0000)
Cargo.lock
patch
|
blob
|
history
src/main.rs
patch
|
blob
|
history
diff --git
a/Cargo.lock
b/Cargo.lock
index 03d573fe82c7a10614d0498b4d84a437d6950a19..57178673498a3043d8f837e0fee66a014f353a00 100644
(file)
--- a/
Cargo.lock
+++ b/
Cargo.lock
@@
-1,7
+1,5
@@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
-version = 3
-
[[package]]
name = "autocfg"
version = "1.0.1"
[[package]]
name = "autocfg"
version = "1.0.1"
diff --git
a/src/main.rs
b/src/main.rs
index 7846ad6d40afa3595210d6489a5baea4eda8734f..601b479985714ee12ebbad8baa264bf4cb32819d 100644
(file)
--- a/
src/main.rs
+++ b/
src/main.rs
@@
-100,7
+100,7
@@
pub(crate) type ChannelManager =
async fn handle_ldk_events(
channel_manager: Arc<ChannelManager>, bitcoind_client: Arc<BitcoindClient>,
keys_manager: Arc<KeysManager>, inbound_payments: PaymentInfoStorage,
async fn handle_ldk_events(
channel_manager: Arc<ChannelManager>, bitcoind_client: Arc<BitcoindClient>,
keys_manager: Arc<KeysManager>, inbound_payments: PaymentInfoStorage,
- outbound_payments: PaymentInfoStorage, network: Network, event: Event,
+ outbound_payments: PaymentInfoStorage, network: Network, event:
&
Event,
) {
match event {
Event::FundingGenerationReady {
) {
match event {
Event::FundingGenerationReady {
@@
-123,7
+123,7
@@
async fn handle_ldk_events(
.expect("Lightning funding tx should always be to a SegWit output")
.to_address();
let mut outputs = vec![HashMap::with_capacity(1)];
.expect("Lightning funding tx should always be to a SegWit output")
.to_address();
let mut outputs = vec![HashMap::with_capacity(1)];
- outputs[0].insert(addr, channel_value_satoshis as f64 / 100_000_000.0);
+ outputs[0].insert(addr,
*
channel_value_satoshis as f64 / 100_000_000.0);
let raw_tx = bitcoind_client.create_raw_transaction(outputs).await;
// Have your wallet put the inputs into the transaction such that the output is
let raw_tx = bitcoind_client.create_raw_transaction(outputs).await;
// Have your wallet put the inputs into the transaction such that the output is
@@
-152,9
+152,9
@@
async fn handle_ldk_events(
let mut payments = inbound_payments.lock().unwrap();
let (payment_preimage, payment_secret) = match purpose {
PaymentPurpose::InvoicePayment { payment_preimage, payment_secret, .. } => {
let mut payments = inbound_payments.lock().unwrap();
let (payment_preimage, payment_secret) = match purpose {
PaymentPurpose::InvoicePayment { payment_preimage, payment_secret, .. } => {
- (payment_preimage, Some(payment_secret))
+ (payment_preimage
.map(|a| a)
, Some(payment_secret))
}
}
- PaymentPurpose::SpontaneousPayment(preimage) => (Some(preimage), None),
+ PaymentPurpose::SpontaneousPayment(preimage) => (Some(
*
preimage), None),
};
let status = match channel_manager.claim_funds(payment_preimage.unwrap()) {
true => {
};
let status = match channel_manager.claim_funds(payment_preimage.unwrap()) {
true => {
@@
-169,19
+169,19
@@
async fn handle_ldk_events(
}
_ => HTLCStatus::Failed,
};
}
_ => HTLCStatus::Failed,
};
- match payments.entry(payment_hash) {
+ match payments.entry(
*
payment_hash) {
Entry::Occupied(mut e) => {
let payment = e.get_mut();
payment.status = status;
payment.preimage = payment_preimage;
Entry::Occupied(mut e) => {
let payment = e.get_mut();
payment.status = status;
payment.preimage = payment_preimage;
- payment.secret = payment_secret;
+ payment.secret = payment_secret
.map(|a| *a)
;
}
Entry::Vacant(e) => {
e.insert(PaymentInfo {
preimage: payment_preimage,
}
Entry::Vacant(e) => {
e.insert(PaymentInfo {
preimage: payment_preimage,
- secret: payment_secret,
+ secret: payment_secret
.map(|a| *a)
,
status,
status,
- amt_msat: MillisatAmount(Some(amt)),
+ amt_msat: MillisatAmount(Some(
*
amt)),
});
}
}
});
}
}
@@
-191,7
+191,7
@@
async fn handle_ldk_events(
let mut payments = outbound_payments.lock().unwrap();
for (payment_hash, payment) in payments.iter_mut() {
if *payment_hash == hashed {
let mut payments = outbound_payments.lock().unwrap();
for (payment_hash, payment) in payments.iter_mut() {
if *payment_hash == hashed {
- payment.preimage = Some(payment_preimage);
+ payment.preimage = Some(
*
payment_preimage);
payment.status = HTLCStatus::Succeeded;
println!(
"\nEVENT: successfully sent payment of {} millisatoshis from \
payment.status = HTLCStatus::Succeeded;
println!(
"\nEVENT: successfully sent payment of {} millisatoshis from \
@@
-210,7
+210,7
@@
async fn handle_ldk_events(
"\nEVENT: Failed to send payment to payment hash {:?}: ",
hex_utils::hex_str(&payment_hash.0)
);
"\nEVENT: Failed to send payment to payment hash {:?}: ",
hex_utils::hex_str(&payment_hash.0)
);
- if rejected_by_dest {
+ if
*
rejected_by_dest {
println!("re-attempting the payment will not succeed");
} else {
println!("payment may be retried");
println!("re-attempting the payment will not succeed");
} else {
println!("payment may be retried");
@@
-225,7
+225,7
@@
async fn handle_ldk_events(
}
}
Event::PaymentForwarded { fee_earned_msat, claim_from_onchain_tx } => {
}
}
Event::PaymentForwarded { fee_earned_msat, claim_from_onchain_tx } => {
- let from_onchain_str = if claim_from_onchain_tx {
+ let from_onchain_str = if
*
claim_from_onchain_tx {
"from onchain downstream claim"
} else {
"from HTLC fulfill message"
"from onchain downstream claim"
} else {
"from HTLC fulfill message"
@@
-243,8
+243,8
@@
async fn handle_ldk_events(
}
Event::PendingHTLCsForwardable { time_forwardable } => {
let forwarding_channel_manager = channel_manager.clone();
}
Event::PendingHTLCsForwardable { time_forwardable } => {
let forwarding_channel_manager = channel_manager.clone();
+ let min = time_forwardable.as_millis() as u64;
tokio::spawn(async move {
tokio::spawn(async move {
- let min = time_forwardable.as_millis() as u64;
let millis_to_sleep = thread_rng().gen_range(min, min * 5) as u64;
tokio::time::sleep(Duration::from_millis(millis_to_sleep)).await;
forwarding_channel_manager.process_pending_htlc_forwards();
let millis_to_sleep = thread_rng().gen_range(min, min * 5) as u64;
tokio::time::sleep(Duration::from_millis(millis_to_sleep)).await;
forwarding_channel_manager.process_pending_htlc_forwards();
@@
-557,7
+557,7
@@
async fn start_ldk() {
inbound_pmts_for_events.clone(),
outbound_pmts_for_events.clone(),
network,
inbound_pmts_for_events.clone(),
outbound_pmts_for_events.clone(),
network,
- event
.clone()
,
+ event,
))
};
// Step 16: Persist ChannelManager
))
};
// Step 16: Persist ChannelManager