Elias Rohrer
8e08eafb4d
Fix minor nits in BumpTransactionEventHandler
2024-05-17 09:07:33 +02:00
Valentine Wallace
bcdb67e560
Extract onion_utils::build_onion_payloads_callback helper.
...
Will be useful when we want to calculate the total size of the payloads without
actually allocating for them.
2024-05-16 15:08:44 -07:00
valentinewallace
1237abffa7
Merge pull request #3036 from TheBlueMatt/2024-05-filter-color
...
Provide more color in filter registration methods
2024-05-14 16:23:30 -07:00
Valentine Wallace
2de600b984
Make MAX_PATH_LENGTH_ESTIMATE const pub and expand doc comment.
...
Will be used in the next commit when we make this configurable in
PaymentParameters.
2024-05-14 09:57:51 -07:00
Valentine Wallace
336c77c738
TestRouter: support checking only that route params are as expected.
2024-05-14 09:57:51 -07:00
Valentine Wallace
960dd658db
Remove unnecessary RecipientOnionFields clone.
...
Doable now that we take Vecs by reference in OutboundOnionPayload.
2024-05-14 09:57:51 -07:00
Valentine Wallace
e4e6e09b67
OutboundOnionPayload: hold Vec fields as references.
...
Will be useful when we reuse this enum to calculate the maximum path length,
to avoid cloning the vecs.
2024-05-14 09:57:51 -07:00
valentinewallace
da7a916682
Merge pull request #3061 from TheBlueMatt/2024-05-bindings-upstream
...
Minor bindings tweaks
2024-05-14 09:44:25 -07:00
Matt Corallo
e1d00063e2
Allow any Deref
to an EntropySource
in BlindedPath
building
...
This matches our normal API semantics and allows, for example,
`Arc`s to `EntropySource`s.
2024-05-14 13:17:03 +00:00
Matt Corallo
bccddcaabd
impl Clone
on various public (mostly BOLT12) types
...
This is required for bindings as passing types from Rust to GC'd
languages can't map the concept of a type that has a lifetime of
the called function but instead needs to clone for safety.
2024-05-14 13:17:03 +00:00
Matt Corallo
7e69d835b2
Expose ChannelManager
offer constructors in bindings
2024-05-13 18:55:22 +00:00
Matt Corallo
3da85c94ff
Mark io_extras
as no-bindings-export as its not for public use
2024-05-13 18:55:22 +00:00
Matt Corallo
6bc2a573bb
Make offers::Amount
Copy
and export it in bindings
...
`Amount` is less than two pointers long, so there's no reason it
shouldn't be `Copy`. Further, because its an enum, bindings can't
map a reference to it in an `Option`. Thus, here, we simply make it
`Copy` and return it in `Option`s rather than a reference to it.
2024-05-13 18:55:22 +00:00
Matt Corallo
5c21ee98a8
Use prelude by universal import, rather than single import
...
This avoids the bindings trying to figure out what a
`lightning::prelude::Vec` is rather than matching it as a `Vec`.
2024-05-13 18:55:22 +00:00
Matt Corallo
58febc36d1
Export ChannelId
in bindings rather than [u8; 32]
...
Now that `ChannelId` has useful constructors and methods we need
to start exposing it to bindings users rather than relying on using
`[u8; 32]`.
2024-05-13 18:55:22 +00:00
Matt Corallo
3fc3166b28
Skip BestBlock::new
in bindings as we already have one
2024-05-13 18:55:22 +00:00
Matt Corallo
1890e8049b
Merge pull request #3058 from benthecarman/deref-empty-nod-id-lookup
...
impl Deref for EmptyNodeIdLookUp
2024-05-13 06:09:31 -07:00
Matt Corallo
d3cd080253
Merge pull request #3059 from jkczyz/2024-05-drop-writeable-signer
...
Remove `WriteableEcdsaChannelSigner` trait
2024-05-11 05:57:28 -07:00
Jeffrey Czyz
efc75794f4
Remove WriteableEcdsaChannelSigner trait
...
WriteableEcdsaChannelSigner is no longer needed now that
EcdsaChannelSigner isn't written in OnchainTxHandler.
2024-05-10 17:17:41 -05:00
Jeffrey Czyz
ae98eccfa9
Stop writing EcdsaChannelSigner
...
EcdsaChannelSigner is no longer deserialized as of version 0.0.113 and
downgrades before version 0.0.113 are no longer supported as of version
0.0.119.
2024-05-10 17:17:34 -05:00
Matt Corallo
98022e6d6d
Add a utility to poll multiple futures simultaneously
...
If we have a handful of futures we want to make progress on
simultaneously we need some way to poll all of them in series,
which we add here in the form of `MultiFuturePoller`. Its probably
not as effecient as some of the options in the `futures` crate, but
it is very trivial and not that bad.
2024-05-10 21:29:53 +00:00
Matt Corallo
20f2dab5c0
Create an AOnionMessenger
trait similar to our other AStruct
s
...
This allows us to have a bound on any `OnionMessenger` without
having to create bounds for every bound in `OnionMessenger`.
2024-05-10 21:29:50 +00:00
Matt Corallo
0ffa4b3579
Merge pull request #2930 from jbesraa/Add-PaymentHash-to-Record
...
Add `PaymentHash` to `Record`
2024-05-10 09:55:55 -07:00
Arik
8f1dc54e6d
Merge pull request #2973 from valentinewallace/2024-03-om-mailbox
...
Support intercepting onion messages for offline peers
2024-05-09 15:27:49 -07:00
benthecarman
bfff6fda6e
impl Deref for EmptyNodeIdLookUp
2024-05-09 15:58:19 -05:00
Valentine Wallace
a5ada64866
Fill in top-level docs for onion message offline peer interception.
2024-05-09 15:29:48 -04:00
Valentine Wallace
edc86e319f
Limit OnionMessenger event buffer size.
2024-05-09 15:29:44 -04:00
Valentine Wallace
6613f1f0d2
Manually implement Debug for onion message packets.
...
Previously we derived Debug, but that caused a lot of unreadable encrypted
bytes to be printed.
2024-05-09 15:29:44 -04:00
Valentine Wallace
be31e632c2
Test offline peer onion message interception.
2024-05-09 15:29:41 -04:00
Valentine Wallace
4c7ecaaa3f
Fix outdated comment in onion message functional test.
2024-05-09 15:29:41 -04:00
Valentine Wallace
1fc8f115af
Refactor MessengerNode test util construction to take config.
...
Will be used in the next commit when another config parameter is added.
2024-05-09 15:29:41 -04:00
Valentine Wallace
7213458b82
Support forwarding prebuilt onion messages in OnionMessenger.
2024-05-09 15:29:38 -04:00
Valentine Wallace
1c28cc0713
OnionMessenger: support generating peer connection events.
...
Useful if we are in the mode of interception OMs for offline peers, so
users know when to re-inject intercepted OMs.
2024-05-09 15:29:34 -04:00
Valentine Wallace
e8f7fe1919
Support generating events when an OM for an offline peer is received.
...
Docs will be added in upcoming commits.
2024-05-09 15:29:29 -04:00
Matt Corallo
33b9ba558c
Merge pull request #3041 from G8XSU/followup-2957
...
Followups to #2957
2024-05-09 09:47:41 -07:00
Matt Corallo
4fd8cb8909
Ignore partially-pruned channels during routing
...
If we prune one side of a channel's `ChannelUpdateInfo` that means
the node hasn't been online for two weeks (as they haven't
generated a new `channel_update` in that time). In such cases, even
if we haven't yet pruned the channel entirely, we should definitely
not be treating these channels as candidates for routing.
Note that this requires some additional `channel_update`s in the
router tests, but all of the new ones are added as disabled
channels.
Fixes #1824
2024-05-09 15:27:42 +00:00
jbesraa
fe7f548ebb
Add payment_hash
to WithChannelMonitor
2024-05-09 11:59:39 +03:00
esraa
3fb329b004
Add PaymentHash
to Record
...
Adding the `payment_hash` to `Record` so we are able to track it
in logs.
2024-05-09 11:57:53 +03:00
Jeffrey Czyz
38690bf50a
Merge pull request #2907 from shaavan/issue2882
...
Introduce ResponseInstructions for OnionMessage Handling
2024-05-08 17:32:41 -05:00
Matt Corallo
74c9f9b183
Merge pull request #3012 from TheBlueMatt/2024-04-0.0.123-rl
...
Add draft release notes for 0.0.123
2024-05-08 13:35:52 -07:00
Matt Corallo
806b7f0e31
Merge pull request #3054 from TheBlueMatt/2024-04-fuzz-bolt11
...
Add fuzzing coverage for BOLT11 invoice deserialization
2024-05-08 13:24:31 -07:00
Matt Corallo
2804377f9e
Bump possiblyrandom
to 0.2
...
I'd uploaded `possiblyrandom` 0.1 to reserve the crate name but
with a dummy library so now we need ot use 0.2 for the release.
2024-05-08 20:08:52 +00:00
Matt Corallo
df4a09a273
Add changelog entries for 0.0.123
2024-05-08 20:08:52 +00:00
Matt Corallo
8db1226ae4
Use consistent byte/char offsets when parsing invoice HRPs
...
When parsing lightning-invoice HRPs we want to read them
char-by-char, tracking at which offset different fields were. Prior
to this commit this was done first by reading char-by-char and then
by indexing using the byte offset which works for ASCII strings but
fails on multi-byte characters.
This commit fixes this issue by simply always walking byte-by-byte
and rejecting multi-byte characters which don't belong in HRPs.
2024-05-08 19:56:21 +00:00
Matt Corallo
65ba75d500
Substantially increase coverage in BOLT11 deserialization fuzzer
2024-05-08 19:56:21 +00:00
Matt Corallo
d14ea82b5d
Move existing BOLT11 fuzz test to the fuzz
crate
2024-05-08 19:36:15 +00:00
Matt Corallo
676f242796
Merge pull request #3046 from TheBlueMatt/2024-03-fees-are-dust
...
Fix the `full_stack_target` breakage test and doc feerate requests
2024-05-08 12:24:04 -07:00
shaavan
15d016ac52
Implement ResponseInstruction Usage in OnionMessage Handling
...
This commit integrates the newly introduced ResponseInstruction structs
and enums into the codebase for handling OnionMessage responses.
2024-05-08 17:57:57 +05:30
Matt Corallo
28d85af955
Fix the full_stack_target
breakage test and doc feerate requests
...
When we added the additional deust exposure checks in
702196819e6445048b803574fcacef77d5ce8c9c we added several
additional feerate fetches which broke the `full_stack_target`
change-detection test.
This updates the hard-coded test to support the new feerate fetches
and also includes a comment on `FeeEstimator` to indicate that
users really need to be caching feerates as otherwise they'll slow
us down.
2024-05-07 16:51:38 +00:00
Matt Corallo
d1ac0717fe
Merge pull request #3045 from TheBlueMatt/2024-03-fees-are-dust
...
Include excess counterparty commitment transaction fees in dust exposure
2024-05-07 08:50:46 -07:00