Commit Graph

8094 Commits

Author SHA1 Message Date
Elias Rohrer
bd28ad085f
rustfmt: Drop util/macro_logger.rs from exclusion list 2024-09-19 09:40:36 +02:00
Elias Rohrer
77536453e2
rustfmt: Run on util/macro_logger.rs 2024-09-19 09:40:23 +02:00
Elias Rohrer
7d6dc78b20
rustfmt: Drop util/logger.rs from exclusion list 2024-09-19 09:40:18 +02:00
Elias Rohrer
9c6c9abb0e
rustfmt: Run on util/logger.rs 2024-09-19 09:34:17 +02:00
Elias Rohrer
ea22956bf7
rustfmt: Drop util/indexed_map.rs from exclusion list 2024-09-19 09:34:16 +02:00
Elias Rohrer
f26001f2ea
rustfmt: Run on util/indexed_map.rs 2024-09-19 09:33:57 +02:00
Elias Rohrer
c9bae0e02c
rustfmt: Drop util/fuzz_wrappers.rs from exclusion list 2024-09-19 09:33:55 +02:00
Elias Rohrer
8fb3c3f16e
rustfmt: Run on util/fuzz_wrappers.rs 2024-09-19 09:33:34 +02:00
Elias Rohrer
6b36273324
rustfmt: Drop util/errors.rs from exclusion list 2024-09-19 09:33:33 +02:00
Elias Rohrer
32b55bb85d
rustfmt: Run on util/errors.rs 2024-09-19 09:33:13 +02:00
Elias Rohrer
719d147b28
rustfmt: Drop util/config.rs from exclusion list 2024-09-19 09:33:12 +02:00
Elias Rohrer
fff097a476
rustfmt: Run on util/config.rs 2024-09-19 09:32:38 +02:00
Elias Rohrer
9cb979dc20
rustfmt: Drop util/byte_utils.rs from exclusion list 2024-09-19 09:32:37 +02:00
Elias Rohrer
8e506301ca
rustfmt: Run on util/byte_utils.rs 2024-09-19 09:32:24 +02:00
Elias Rohrer
ece7aab949
rustfmt: Drop util/base32.rs from exclusion list 2024-09-19 09:32:20 +02:00
Elias Rohrer
8e2c0e22de
rustfmt: Run on util/base32.rs 2024-09-19 09:31:49 +02:00
Elias Rohrer
ebb213f7c0
rustfmt: Drop util/atomic_counter.rs from exclusion list 2024-09-19 09:31:47 +02:00
Elias Rohrer
95fd1f7bc7
rustfmt: Run on util/atomic_counter.rs 2024-09-19 09:31:21 +02:00
Elias Rohrer
66fb520098
Merge pull request #3327 from TheBlueMatt/2024-09-local-ci-rustfmt
Only attempt to `rustfmt` files checked into git
2024-09-19 09:30:23 +02:00
Matt Corallo
930f5fbf9a Only attempt to rustfmt files checked into git
This avoids `rustfmt` failing on Rust files generated by dependent
crates in `target`, eg

```
+ rustfmt --edition 2021 --check ./target/debug/build/thiserror-8230374e07b5c05a/out/probe.rs
Diff in /home/matt/rust-lightning-3/target/debug/build/thiserror-8230374e07b5c05a/out/probe.rs at line 1:

-    #![feature(provide_any)]
+#![feature(provide_any)]

-    use std::any::{Demand, Provider};
+use std::any::{Demand, Provider};

-    fn _f<'a, P: Provider>(p: &'a P, demand: &mut Demand<'a>) {
-        p.provide(demand);
-    }
+fn _f<'a, P: Provider>(p: &'a P, demand: &mut Demand<'a>) {
+	p.provide(demand);
+}
```
2024-09-18 18:04:54 +00:00
Jeffrey Czyz
538fc5ff9b
Re-order imports 2024-09-18 12:45:33 -05:00
Matt Corallo
cdd1298a38
Merge pull request #3289 from tnull/2024-09-fix-rgs-bp-builds
Fix builds of `lightning-rapid-gossip-sync` and `lightning-background-processor` crates
2024-09-18 14:31:18 +00:00
Elias Rohrer
545b037827
Drop no-std feature
We drop the `lightning/no-std` feature and just take
`hashbrown`,`possiblyrandom` and `libm` as required dependencies.
2024-09-18 09:07:58 +02:00
Elias Rohrer
a06e7b9133
Check workspace members with default features individually in CI
Previously, we would only check the workspace as a whole. This however
would mean that we would check/test crates with `lightning`'s default
features enabled, allowing failures-to-build under the crates own
default features to slip through, if they didn't explicitly enable
`lightning/std`, for example.

Here, we extend the CI to check the workspace as a whole but then run
checks, tests, and doc generation on the workspace members individually,
asserting that all of them build even when not built as part of the same
workspace as `lightning`.
2024-09-18 09:07:58 +02:00
Elias Rohrer
3c1a5d3aa1
Re-add optional std feature dependencies to fix RGS and BP builds
We previously removed these, leading to failure to build under default
features including `std`.
2024-09-18 09:07:58 +02:00
Matt Corallo
ca27a85492
Merge pull request #3321 from valentinewallace/2024-09-fix-main
Fix silent rebase conflict that broke tests
2024-09-17 21:45:30 +00:00
Valentine Wallace
487d6a09a7
Fix silent rebase conflict that broke tests
429cbe1a06 merged a PR that renamed
Offer::signing_pubkey to Offer::issuer_signing_pubkey. However, there was a
silent rebase conflict and a test added as part of
1059f5ffc5 did not get the memo and used the old
method name, breaking the test build.
2024-09-17 17:24:42 -04:00
Matt Corallo
815d255aa8
Merge pull request #3319 from tnull/2024-09-rustfmt-sync
`rustfmt`: Run on `lightning/src/sync/*`
2024-09-17 19:37:51 +00:00
Matt Corallo
866cedf17a
Merge pull request #3313 from valentinewallace/2024-09-fix-offer-double-pay
Don't pay a duplicate BOLT 12 invoice if `ChannelManager` is stale
2024-09-17 17:38:04 +00:00
Matt Corallo
429cbe1a06
Merge pull request #3218 from jkczyz/2024-07-offers-spec-update
Rename `Offer::signing_pubkey` to `Offer::issuer_id`
2024-09-17 14:01:43 +00:00
Valentine Wallace
fbb3ab2704
Fix bug where we double-pay an offer due to stale manager
This fixes the following bug:
- An outbound payment is AwaitingInvoice
- We receive an invoice and lock the HTLCs into the relevant ChannelMonitors
- The monitors are successfully persisted, but the ChannelManager fails to
  persist, so the outbound payment remains AwaitingInvoice
- We restart, causing the channels to close due to a stale ChannelManager
- We receive a duplicate invoice, and attempt to pay it again due to the
  payment still being AwaitingInvoice in the stale ChannelManager

After the fix for this, we will notice that the payment is already locked into
the monitor on startup and transition the incorrectly-AwaitingInvoice payment
to Retryable, which prevents double-paying on duplicate invoice receipt.
2024-09-17 09:52:49 -04:00
Elias Rohrer
555bd7536f
rustfmt: Drop sync/mod.rs from exclusion list 2024-09-17 13:07:52 +02:00
Elias Rohrer
8746a80977
rustfmt: Run on sync/mod.rs 2024-09-17 13:07:28 +02:00
Elias Rohrer
a3de52f847
rustfmt: Drop sync/test_lockorder_checks.rs from exclusion list 2024-09-17 13:06:51 +02:00
Elias Rohrer
6f1949b0d6
rustfmt: Run on sync/test_lockorder_checks.rs 2024-09-17 13:06:29 +02:00
Elias Rohrer
cffbeb09b9
rustfmt: Drop sync/nostd_sync.rs from exclusion list 2024-09-17 13:06:00 +02:00
Elias Rohrer
e3fb566e05
rustfmt: Run on sync/nostd_sync.rs 2024-09-17 13:05:40 +02:00
Elias Rohrer
a161834f90
rustfmt: Drop sync/fairrwlock.rs from exclusion list 2024-09-17 13:04:55 +02:00
Elias Rohrer
2cb1664cf6
rustfmt: Run on sync/fairrwlock.rs 2024-09-17 13:04:35 +02:00
Elias Rohrer
edcdc565c4
rustfmt: Drop sync/debug_sync.rs from exclusion list 2024-09-17 13:03:59 +02:00
Elias Rohrer
9962e4b497
rustfmt: Run on sync/debug_sync.rs 2024-09-17 13:03:25 +02:00
Jeffrey Czyz
e11025f94d
Rename Refund::payer_id
For consistency with Offer::issuer_signing_pubkey, rename
Refund::payer_id to use "signing_pubkey" instead of "id".
2024-09-16 13:56:47 -05:00
Jeffrey Czyz
dd8f744257
Rename InvoiceRequest::payer_id
For consistency with Offer::issuer_signing_pubkey, rename
InvoiceRequest::payer_id to use "signing_pubkey" instead of "id".
2024-09-16 13:56:46 -05:00
Jeffrey Czyz
de29295bb4
Update offer test vectors from latest spec changes 2024-09-16 13:56:46 -05:00
Jeffrey Czyz
cfe84305cd
Use unsigned invoice types in docs 2024-09-16 13:56:46 -05:00
Jeffrey Czyz
a466f2e2f4
Add issuer_signing_pubkey to Bolt12Invoice
Useful for determining if the signing_pubkey is the
issuer_signing_pubkey or is from a blinded path.
2024-09-16 13:56:46 -05:00
Jeffrey Czyz
73512709e7
Re-write Offer::issuer_signing_pubkey documentation 2024-09-16 13:56:46 -05:00
Jeffrey Czyz
df58f26ada
Rename Offer::signing_pubkey to Offer::issuer_signing_pubkey
The spec was recently changed to use offer_issuer_id instead of
offer_node_id. LDK always used signing_pubkey to avoid confusion with a
node_id. Rename it to issuer_signing_pubkey now as InvoiceRequest and
Bolt12Invoice will have similarly named methods in upcoming commits.
2024-09-16 13:56:41 -05:00
Valentine Wallace
3c2da4147c
Move monitor<>outbound_payments startup htlc syncing code.
Move the code that ensures that HTLCs locked into ChannelMonitors are
synchronized with the ChannelManager's OutboundPayments store to the
outbound_payments module.

This is useful both because ChannelManager::read is very long/confusing method,
so it's nice to encapsulate some of its functionality, and because we need to
fix an existing bug in this logic where we may risk double-paying an offer due
to outbound_payments being stale on startup. See the next commit for this
bugfix.
2024-09-16 13:34:03 -04:00
Valentine Wallace
8c356d8658
Test utils: use full import path in reload_node macro. 2024-09-16 13:34:03 -04:00