Matt Corallo [Wed, 29 Mar 2023 21:54:58 +0000 (21:54 +0000)]
Merge pull request #2059 from wpaulino/broadcast-missing-anchors-event
Queue BackgroundEvent to force close channels upon ChannelManager::read
Marc Tyndel [Tue, 28 Mar 2023 16:29:00 +0000 (12:29 -0400)]
add outbound_amount_forwarded_msat field to PaymentForwarded event
valentinewallace [Wed, 29 Mar 2023 15:37:51 +0000 (11:37 -0400)]
Merge pull request #2062 from alecchendev/2023-02-allow-overshoot-mpp
Allow overshooting final htlc amount and expiry
Wilmer Paulino [Tue, 28 Mar 2023 20:22:47 +0000 (13:22 -0700)]
Add pending changelog noting possible backwards compat panic
Wilmer Paulino [Wed, 22 Mar 2023 18:46:05 +0000 (11:46 -0700)]
Ignore lockorder violation on same callsite with different construction
As long as the lock order on such locks is still valid, we should allow
them regardless of whether they were constructed at the same location or
not. Note that we can only really enforce this if we require one lock
call per line, or if we have access to symbol columns (as we do on Linux
and macOS). We opt for a smaller patch by relying on the latter.
This was previously triggered by some recent test changes to
`test_manager_serialize_deserialize_inconsistent_monitor`. When the
test ends and a node is dropped causing us to persist each, we'd detect
a possible lockorder violation deadlock across three different `Mutex`
instances that are held at the same location when serializing our
`per_peer_states` in `ChannelManager::write`.
The presumed lockorder violation happens because the first `Mutex` held
shares the same construction location with the third one, while the
second `Mutex` has a different construction location. When we hold the
second one, we consider the first as a dependency, and then consider the
second as a dependency when holding the third, causing a circular
dependency (since the third shares the same construction location as the
first).
This isn't considered a lockorder violation that could result in a
deadlock as the comment suggests inline though, since we are under a
dependent write lock which no one else can have access to.
Arik [Wed, 29 Mar 2023 00:14:59 +0000 (17:14 -0700)]
Merge pull request #2082 from wpaulino/bump-htlc-resolution-tx-locktime
Expose HTLC transaction locktime in BumpTransactionEvent::HTLCResolution
Alec Chen [Tue, 7 Mar 2023 01:51:44 +0000 (19:51 -0600)]
Use onion amount `amt_to_forward` for MPP set calculation
If routing nodes take less fees and pay the final node more than
`amt_to_forward`, the receiver may see that `total_msat` has been met
before all of the sender's intended HTLCs have arrived. The receiver
may then prematurely claim the payment and release the payment hash,
allowing routing nodes to claim the remaining HTLCs. Using the onion
value `amt_to_forward` to determine when `total_msat` has been met
allows the sender to control the set total.
Alec Chen [Tue, 7 Mar 2023 01:33:45 +0000 (19:33 -0600)]
Allow overshooting final cltv_expiry
Final nodes previously had stricter requirements on HTLC contents
matching onion value compared to intermediate nodes. This allowed
for probing, i.e. the last intermediate node could overshoot the
value by a small amount and conclude from the acceptance or rejection
of the HTLC whether the next node was the destination. This also
applies to the msat amount, however this change was already present.
Alec Chen [Wed, 1 Mar 2023 00:42:39 +0000 (18:42 -0600)]
Allow overshooting `total_msat` for an MPP
While retrying a failed path of an MPP, a node may want to overshoot
the `total_msat` in order to use a path with an `htlc_minimum_msat`
greater than the remaining value being sent. This commit no longer
fails MPPs that overshoot the `total_msat`, however it does fail
HTLCs with the same payment hash that are received *after* a
payment has become claimable.
Alec Chen [Thu, 23 Mar 2023 19:34:57 +0000 (14:34 -0500)]
Add `total_value_received` to `ClaimableHTLC` for claim validation
This is pre-work for allowing nodes to overshoot onion values and
changing validation for MPP completion. This adds a field to
`ClaimableHTLC` that is separate from the onion values, which
represents the actual received amount reported in `PaymentClaimable`
which is what we want to validate against when a user goes to claim.
Wilmer Paulino [Tue, 7 Mar 2023 01:01:21 +0000 (17:01 -0800)]
Expose HTLC transaction locktime in BumpTransactionEvent::HTLCResolution
While users could easily figure it out based on the set of HTLC
descriptors included within, we already track it within the
`OnchainTxHandler`, so we might as well expose it to users as a
nice-to-have. It's also yet another thing they must get right to ensure
their HTLC transaction broadcasts are valid.
Wilmer Paulino [Tue, 28 Mar 2023 19:09:13 +0000 (12:09 -0700)]
Set transaction locktime on malleable packages to discourage fee sniping
This only applies to all malleable packages on channels pre-dating
anchors and malleables packages for counterparty commitments
post-anchors. Malleables packages for holder commitments post-anchors
should have their transaction locktime applied manually by the consumer
of `BumpTransactionEvent::HTLCResolution` events.
Wilmer Paulino [Tue, 28 Mar 2023 19:03:19 +0000 (12:03 -0700)]
Re-work PackageSolvingData::absolute_tx_timelock
Previously, this would return the earliest height the output could be
confirmed, which seems to no longer be useful. The only use of the
method was to determine whether we should delay a package to a future
block. Instead, we choose to return the absolute locktime the
transaction spending the output should have, which better corresponds to
the method name and still supports the delay functionality mentioned.
Doing so also allows us to expose the locktime required for HTLC
transactions we need to broadcast based on our own commitments for
anchor channels.
Wilmer Paulino [Tue, 28 Mar 2023 17:16:39 +0000 (10:16 -0700)]
Merge pull request #2133 from tnull/2023-03-pin-syn
Pin`tokio` to fix CI
Matt Corallo [Tue, 28 Mar 2023 16:42:44 +0000 (16:42 +0000)]
Merge pull request #2132 from tnull/2023-03-tx-sync-even-more-robustness
Drop `OnceCell` in `lightning-transaction-sync` tests
Matt Corallo [Tue, 28 Mar 2023 16:37:55 +0000 (16:37 +0000)]
Merge pull request #2083 from wpaulino/events-module
Move events.rs into its own top-level module
Elias Rohrer [Tue, 28 Mar 2023 10:56:38 +0000 (12:56 +0200)]
Pin `tokio` to fix CI
Recently `tokio` got updated to 1.27.0, which bumped MSRV from 1.49 to
1.56.
Here we pin `tokio` accordingly to unbreak CI.
Elias Rohrer [Mon, 27 Mar 2023 11:33:01 +0000 (13:33 +0200)]
Remove unnecessary restriction on `esplora-client` version
Elias Rohrer [Mon, 27 Mar 2023 11:19:15 +0000 (13:19 +0200)]
Move test `bitcoind`/`electrsd` out of `OnceCell`
`OnceCell` doesn't call `drop`, which makes the spawned
`bitcoind`/`electrsd` instances linger around after our tests have
finished. To fix this, we move them out of `OnceCell` and let every test
that needs them spawn their own instances. This additional let us drop
the `OnceCell` dev dependency.
Matt Corallo [Mon, 27 Mar 2023 22:54:05 +0000 (22:54 +0000)]
Merge pull request #2125 from benthecarman/invoice-expire-time
Add helper functions for invoice expiry
benthecarman [Thu, 23 Mar 2023 20:41:55 +0000 (15:41 -0500)]
Add helper functions for invoice expiry
Matt Corallo [Mon, 27 Mar 2023 18:12:00 +0000 (18:12 +0000)]
Merge pull request #2110 from munjesi/docs_fixes
Replacing (C-not exported) in the docs
Jeffrey Czyz [Fri, 24 Mar 2023 20:00:10 +0000 (15:00 -0500)]
Merge pull request #2123 from benthecarman/create-inv-desc
Add generic InvoiceDescription to invoice in InvoiceBuilder
Matt Corallo [Fri, 10 Mar 2023 23:32:48 +0000 (23:32 +0000)]
Support future removal of redundant per-HTLC data in `ChanMonUpd`s
`ChannelMonitorUpdate`s are our most size-sensitive objects - they
are the minimal objects which need to be written to disk on each
commitment update. Thus, we should be careful to ensure we don't
pack too much extraneous information into each one.
Here we add future support for removing the per-HTLC explicit
`Option<Signature>` and `HTLCInCommitmentUpdate` for non-dust HTLCs
in holder commitment tx updates, which are redundant with the
`HolderCommitmentTransaction`.
While we cannot remove them entirely as previous versions rely on
them, adding support for filling in the in-memory structures from
the redundant fields will let us remove them in a future version.
We also add test-only generation logic to test the new derivation.
benthecarman [Thu, 23 Mar 2023 05:06:32 +0000 (00:06 -0500)]
Add generic InvoiceDescription to invoice in InvoiceBuilder
Wilmer Paulino [Tue, 7 Mar 2023 22:20:31 +0000 (14:20 -0800)]
Add new sub-module for BumpTransactionEvent
Its accompanying event handler will also live here.
Wilmer Paulino [Tue, 7 Mar 2023 21:57:01 +0000 (13:57 -0800)]
Move events.rs into its own top-level module
This is largely motivated by some follow-up work for anchors that will
introduce an event handler for `BumpTransaction` events, which we can
now include in this new top-level `events` module.
Jeffrey Czyz [Wed, 22 Mar 2023 17:32:22 +0000 (12:32 -0500)]
Merge pull request #2114 from Evanfeenstra/force_close_msg_display
use PrintableString to Display CounterpartyForceClosed peer_msg
munjesi [Thu, 16 Mar 2023 17:35:52 +0000 (20:35 +0300)]
Replacing (C-not exported) in the docs
Evan Feenstra [Sat, 18 Mar 2023 05:24:23 +0000 (22:24 -0700)]
SanitizedString struct to safely Display CounterpartyForceClosed peer_msg
Wilmer Paulino [Tue, 28 Feb 2023 18:45:49 +0000 (10:45 -0800)]
Remove unused broadcast_latest_holder_commitment_txn method
Wilmer Paulino [Tue, 28 Feb 2023 18:45:48 +0000 (10:45 -0800)]
Avoid refusing ChannelMonitorUpdates we expect to receive after closing
There is no need to fill the user's logs with errors that are expected
to be hit based on specific edge cases, like providing preimages after
a monitor has seen a confirmed commitment on-chain.
This doesn't really change our behavior – we still apply and persist the
state changes resulting from processing these updates regardless of
whether they succeed or not.
Wilmer Paulino [Tue, 28 Feb 2023 18:45:48 +0000 (10:45 -0800)]
Queue BackgroundEvent to force close channels upon ChannelManager::read
This results in a new, potentially redundant, `ChannelMonitorUpdate`
that must be applied to `ChannelMonitor`s to broadcast the holder's
latest commitment transaction.
This is a behavior change for anchor channels since their commitments
may require additional fees to be attached through a child anchor
transaction. Recall that anchor transactions are only generated by the
event consumer after processing a `BumpTransactionEvent::ChannelClose`
event, which is yielded after applying a
`ChannelMonitorUpdateStep::ChannelForceClosed` monitor update. Assuming
the node operator is not watching the mempool to generate these anchor
transactions without LDK, an anchor channel which we had to fail when
deserializing our `ChannelManager` would have its commitment transaction
broadcast by itself, potentially exposing the node operator to loss of
funds if the commitment transaction's fee is not enough to be accepted
into the network's mempools.
Wilmer Paulino [Tue, 28 Feb 2023 18:45:44 +0000 (10:45 -0800)]
Use CLOSED_CHANNEL_UPDATE_ID in force closing ChannelMonitorUpdates
Currently, all that is required to force close a channel is to broadcast
either of the available commitment transactions, but this changes with
anchor outputs – commitment transactions may need to have
additional fees attached in order to confirm in a timely manner. While
we may be able to just queue a new update using the channel's next
available update ID, this may result in a violation of the
`ChannelMonitor` API (each update ID must strictly increase by 1) if the
channel had updates that were persisted by its `ChannelMonitor`, but not
the `ChannelManager`. Therefore, we choose to re-purpose the existing
`CLOSED_CHANNEL_UPDATE_ID` update ID to also apply to
`ChannelMonitorUpdate`s that will force close their respective channel
by broadcasting the holder's latest commitment transaction.
Matt Corallo [Tue, 21 Mar 2023 22:42:16 +0000 (22:42 +0000)]
Merge pull request #2102 from douglaz/node_info_addresses
Remove NodeAnnouncementInfo addresses
Matt Corallo [Tue, 21 Mar 2023 22:32:18 +0000 (22:32 +0000)]
Merge pull request #2034 from wpaulino/anchor-revoked-aggregate-claim
Add test for aggregated revoked HTLC claim on anchors channel
Matt Corallo [Tue, 21 Mar 2023 18:44:23 +0000 (18:44 +0000)]
Merge pull request #2100 from douglaz/docs_fixes
Docs improvements
Allan Douglas R. de Oliveira [Mon, 13 Mar 2023 20:13:28 +0000 (20:13 +0000)]
Remove redundant `addresses` field from `NodeAnnouncementInfo`
...replacing it with an acessor `addresses()`.
Besides removing a redundant data structure already present on inner
`NodeAnnouncement`, this change makes it possible to discover new address types
upon deserialization thanks to `UnsignedNodeAnnouncement`'s implementation.
Allan Douglas R. de Oliveira [Tue, 14 Mar 2023 19:54:44 +0000 (19:54 +0000)]
Docs improvements
Wilmer Paulino [Wed, 15 Feb 2023 00:32:45 +0000 (16:32 -0800)]
Test anchors build in CI
Matt Corallo [Mon, 20 Mar 2023 23:24:56 +0000 (23:24 +0000)]
Add an `optional_vec` TLV format which makes sense, unlike vec_type
`vec_type` is confusing - it is happy to have a missing entry,
"reading" an empty `Vec` instead, but always writes something,
making a serialization round-trip different.
This is a problem for writing a new `Vec` which is
backwards-incompatible, but only if filled in. In that case we'd
really like the same read behavior, but not write anything if the
`Vec` is empty. Here we introduce such semantics via a new
`optional_vec` TLV format.
Matt Corallo [Mon, 20 Mar 2023 22:22:56 +0000 (22:22 +0000)]
Merge pull request #2118 from TheBlueMatt/2023-03-no-useless-strings
Remove unnecessary heap allocations in log-entry-matching tests
Matt Corallo [Mon, 20 Mar 2023 20:08:29 +0000 (20:08 +0000)]
Remove unnecessary use in `channelmonitor` tests module
Matt Corallo [Mon, 20 Mar 2023 20:07:18 +0000 (20:07 +0000)]
Remove unnecessary heap allocations in log-entry-matching tests
Wilmer Paulino [Wed, 15 Feb 2023 00:10:52 +0000 (16:10 -0800)]
Add test for aggregated revoked HTLC claim on anchors channel
Wilmer Paulino [Tue, 14 Feb 2023 23:49:37 +0000 (15:49 -0800)]
Maintain order of yielded claim events
Since the claim events are stored internally within a HashMap, they will
be yielded in a random order once dispatched. Claim events may be
invalidated if a conflicting claim has confirmed on-chain and we need to
generate a new claim event; the randomized order could result in the
new claim event being handled prior to the previous. To maintain the
order in which the claim events are generated, we track them in a Vec
instead and ensure only one instance of a PackageId only ever exists
within it.
This would have certain performance implications, but since we're
bounded by the total number of HTLCs in a commitment anyway, we're
comfortable with taking the cost.
Wilmer Paulino [Tue, 14 Feb 2023 23:48:44 +0000 (15:48 -0800)]
Rename keys for OnchainTxHandler::claimable_outpoints map
Wilmer Paulino [Wed, 15 Feb 2023 00:24:30 +0000 (16:24 -0800)]
Clarify OnchainEvent::Claim behavior
The previous documentation was slightly incorrect, a `Claim` can also be
from the counterparty if they happened to claim the same exact set of
outputs as a claiming transaction we generated.
Wilmer Paulino [Wed, 15 Feb 2023 00:14:03 +0000 (16:14 -0800)]
Add missing docs for BumpHTLCResolution
Wilmer Paulino [Tue, 14 Feb 2023 23:38:20 +0000 (15:38 -0800)]
Fix stale import behind anchors build tag
Wilmer Paulino [Tue, 14 Feb 2023 23:36:37 +0000 (15:36 -0800)]
Derive Eq on structs behind anchors build flag
Wilmer Paulino [Tue, 14 Feb 2023 23:35:40 +0000 (15:35 -0800)]
Implement PartialEq manually
Since we don't store `pending_claim_events` within `OnchainTxHandler` as
they'll be regenerated on restarts, we opt to implement `PartialEq`
manually such that the field is not longer considered.
Matt Corallo [Mon, 20 Mar 2023 18:31:12 +0000 (18:31 +0000)]
Merge pull request #2116 from TheBlueMatt/2023-03-serde-sucks
Drop `serde` dependency from `lightning-block-sync`
Matt Corallo [Sun, 19 Mar 2023 23:39:56 +0000 (23:39 +0000)]
Drop `serde` dependency from `lightning-block-sync`
`serde` doesn't bother with MSRVs, so its expected to break
frequently. Yesterday, the `derive` feature had its MSRV broken in
a patch version without care.
Luckily its trivial for us to remove the `serde` dependency in
`lightning-block-sync`, using only `serde_json` for the JSON
deserialization part. It even ends up net-negative on LoC.
Matt Corallo [Sun, 19 Mar 2023 23:42:15 +0000 (23:42 +0000)]
Merge pull request #2024 from TheBlueMatt/2023-02-6conf-pub-hints
Include a route hint for public, not-yet-announced channels
Matt Corallo [Thu, 9 Feb 2023 19:02:04 +0000 (19:02 +0000)]
Include a route hint for public, not-yet-announced channels
If we have a public channel which doesn't yet have six
confirmations the network can't possibly know about it as we cannot
have announced it yet. However, because we refuse to include
route-hints if we have any public channels, we will generate
invoices that no one can pay.
Thus, if we have any public, not-yet-announced channels, include
them as a route-hint.
Matt Corallo [Fri, 17 Mar 2023 19:21:49 +0000 (19:21 +0000)]
Merge pull request #2107 from TheBlueMatt/2023-04-msrv-cleanup
Bump MSRV to 1.48 and replace most of CI with a bash script
Matt Corallo [Wed, 15 Mar 2023 19:20:08 +0000 (19:20 +0000)]
Replace the bulk of CI with a (much simpler) bash script
Matt Corallo [Wed, 15 Mar 2023 21:16:23 +0000 (21:16 +0000)]
Merge pull request #2094 from johncantrell97/expose-fee
expose `feerate_per_kw` in `ChannelDetails`
Matt Corallo [Wed, 15 Mar 2023 19:19:49 +0000 (19:19 +0000)]
Fix onion_message functional_tests `no-std` build
Matt Corallo [Wed, 15 Mar 2023 18:18:01 +0000 (18:18 +0000)]
Remove `build-features` CI flag now that its always true
Matt Corallo [Wed, 15 Mar 2023 18:17:02 +0000 (18:17 +0000)]
Remove `build-no-std` CI flag now that its always true
Matt Corallo [Wed, 15 Mar 2023 18:16:01 +0000 (18:16 +0000)]
Remove `build-net-tokio` flag in CI since its now always true
Matt Corallo [Wed, 15 Mar 2023 18:08:35 +0000 (18:08 +0000)]
Bump MSRV to 1.48
1.48.0 was released at the end of 2020, nearly 2.5 years ago. It
has been the rustc available on Debian stable since bullseye,
released in 2021. supporting Debian oldstable for more than a year
seems more than sufficient time to give Debian folks to upgrade,
and bullseye is set to become `oldstable` later this year with the
release of `bookworm`, likely this summer.
This also allows us to clean up our MSRV substantially, having a
single MSRV across our crates rather than a number of separate
ones. Sadly, windows already requires 1.49.
John Cantrell [Thu, 9 Mar 2023 22:00:49 +0000 (17:00 -0500)]
expose `feerate_sat_per_1000_weight` in `ChannelDetails`
renames Channel::get_feerate to get_feerate_sat_per_1000_weight
Matt Corallo [Tue, 14 Mar 2023 19:01:59 +0000 (19:01 +0000)]
Merge pull request #2045 from wpaulino/fix-broken-commitment-test-vectors
Update commitment test vectors
Matt Corallo [Mon, 13 Mar 2023 23:01:38 +0000 (23:01 +0000)]
Merge pull request #2063 from valentinewallace/2023-03-remove-paymentpathfailed-retry
Remove `PaymentPathFailed::retry`
Matt Corallo [Mon, 13 Mar 2023 17:44:08 +0000 (17:44 +0000)]
Merge pull request #2099 from tnull/2023-03-pin-ntapi-on-windows
Pin tokio to 1.26 on windows to fix CI
Matt Corallo [Mon, 13 Mar 2023 16:32:19 +0000 (16:32 +0000)]
Merge pull request #2091 from tnull/2023-03-expose-impl-writeable-tlv-based-enum-common
Valentine Wallace [Tue, 7 Mar 2023 22:13:57 +0000 (17:13 -0500)]
Ensure payment_params present when checking is_retryable_now
Valentine Wallace [Wed, 1 Mar 2023 17:11:35 +0000 (12:11 -0500)]
Remove payment_params from send_payent_along_path
It's unused since it no longer inserts it into HTLCSource
Valentine Wallace [Wed, 1 Mar 2023 17:02:52 +0000 (12:02 -0500)]
Remove HTLCSource::OutboundRoute::payment_params
No longer used since it is no longer used to construct PaymentPathFailed events
Valentine Wallace [Wed, 1 Mar 2023 16:46:15 +0000 (11:46 -0500)]
Remove PaymentPathFailed::retry
We now support automatic retries in ChannelManager and no longer support manual
retries, so the field is useless.
Elias Rohrer [Fri, 10 Mar 2023 21:24:39 +0000 (22:24 +0100)]
Pin tokio to 1.26 on windows to fix CI
Matt Corallo [Thu, 9 Mar 2023 21:49:09 +0000 (21:49 +0000)]
Merge pull request #2092 from TheBlueMatt/2023-03-find-route-id
Correct `outbound_payment` route-fetch calls to pass the hash + ID
Matt Corallo [Thu, 9 Mar 2023 20:06:23 +0000 (20:06 +0000)]
Further simplify the `outbound_payments` failure macro
Matt Corallo [Thu, 9 Mar 2023 19:23:58 +0000 (19:23 +0000)]
Correct `outbound_payment` route-fetch calls to pass the hash + ID
`Route::get_route_with_id` exists to provide users payment-specific
data when fetching a route, however we were failing to call it when
we have such info, opting for the simple `get_route` instead. This
defeats the purpose of the additional-metadata method, which we
swap to using here.
Elias Rohrer [Thu, 9 Mar 2023 14:47:19 +0000 (15:47 +0100)]
Expose `_impl_writeable_tlv_based_enum_common` macro
As it isn't currently, and it's used by the exposed
`impl_writeable_tlv_based_enum`.
Matt Corallo [Wed, 8 Mar 2023 21:55:32 +0000 (21:55 +0000)]
Merge pull request #2079 from tnull/2023-03-add-list-channel-by-counterparty
Matt Corallo [Wed, 8 Mar 2023 20:03:58 +0000 (20:03 +0000)]
Merge pull request #2078 from AdvaitPote/bigsize_tests
Added encoding and decoding tests for BigSize
Matt Corallo [Wed, 8 Mar 2023 19:41:10 +0000 (19:41 +0000)]
Merge pull request #2085 from tnull/2023-03-introduce-async-https-feature
Support HTTPS Esplora endpoints in `lightning-transaction-sync` via new feature
Advait [Tue, 7 Mar 2023 07:10:46 +0000 (12:40 +0530)]
encoding/decoding tests added for BigSize
removed unnecessary debugging line
using io::Cursor in place of the std one
encoding/decoding tests added for BigSize
made the code concise
encoding/decoding tests added for BigSize
Elias Rohrer [Wed, 8 Mar 2023 11:11:51 +0000 (12:11 +0100)]
Remove unnecessary logging imports
Elias Rohrer [Wed, 8 Mar 2023 11:05:57 +0000 (12:05 +0100)]
Support HTTPS Esplora endpoints via new feature
To support HTTPS endpoints, the async HTTP library `reqwest` needs one of
the `-tls` features enabled. While the users could specify this in their
own cargo dependencies, we here provide a new `esplora-async-https`
feature for conveinience.
valentinewallace [Wed, 8 Mar 2023 16:59:36 +0000 (11:59 -0500)]
Merge pull request #2084 from zpv/fix-changelog-all-paths-failed-typo
Fix `all_paths_failed` typo in changelog
Matt Corallo [Wed, 8 Mar 2023 15:49:43 +0000 (15:49 +0000)]
Merge pull request #2081 from TheBlueMatt/2023-03-future-poll-panic
Steven Zhao [Wed, 8 Mar 2023 08:23:09 +0000 (00:23 -0800)]
Fix `Event::PaymentPathFailed` typo in changelog
Steven [Wed, 8 Mar 2023 00:51:35 +0000 (16:51 -0800)]
Fix `all_paths_failed` typo in changelog
Elias Rohrer [Tue, 7 Mar 2023 10:19:41 +0000 (11:19 +0100)]
Add `list_channels_by_counterparty` method
While we already provide a `list_channels` method, it could result in
quite a large `Vec<ChannelDetails>`. Here, we provide the means to query
our channels by `counterparty_node_id` and DRY up the code.
Matt Corallo [Tue, 7 Mar 2023 18:06:12 +0000 (18:06 +0000)]
Avoid `poll`ing completed futures in the `background-processor`
`poll`ing completed futures invokes undefined behavior in Rust
(panics, etc, obviously not memory corruption as its not unsafe).
Sadly, in our futures-based version of
`lightning-background-processor` we have one case where we can
`poll` a completed future - if the timer for the network graph
prune + persist completes without a network graph to prune +
persist we'll happily poll the same future over and over again,
likely panicing in user code.
Matt Corallo [Mon, 6 Mar 2023 21:28:38 +0000 (21:28 +0000)]
Merge pull request #2049 from douglaz/run-clippy-fix
Run clippy fix
Allan Douglas R. de Oliveira [Mon, 27 Feb 2023 18:24:57 +0000 (18:24 +0000)]
Run clippy --fix and cleanup code
Wilmer Paulino [Wed, 22 Feb 2023 19:46:21 +0000 (11:46 -0800)]
Update same amount and preimage test vector
The amount for HTLC #6 was updated in the spec's test vectors, but the
"same amount and preimage" test vector itself was not updated, even
though the new HTLC amount resulted in a different commitment
transaction, and thus, different signatures.
Wilmer Paulino [Wed, 22 Feb 2023 19:45:43 +0000 (11:45 -0800)]
Add missing test vector for anchors_zero_fee_htlc_tx
Tests the case where only one anchor output exists for the funder in the
commitment transaction due to the remote having a dust balance (in this
case, 0).
Matt Corallo [Mon, 6 Mar 2023 17:26:59 +0000 (17:26 +0000)]
Merge pull request #2074 from TheBlueMatt/2023-03-fix-threaded-test
Make `fuzz_threaded_connections` more robust
Matt Corallo [Mon, 6 Mar 2023 16:56:08 +0000 (16:56 +0000)]
Merge pull request #2028 from TheBlueMatt/2023-02-macros-for-wilmer
Reduce macro usage in tests
Matt Corallo [Sat, 4 Mar 2023 02:01:49 +0000 (02:01 +0000)]
Merge pull request #1497 from TheBlueMatt/2022-05-no-default-opt
Disable LTO builds in tests (and bump deps to -O2)
Matt Corallo [Sat, 4 Mar 2023 01:16:57 +0000 (01:16 +0000)]
Make `fuzz_threaded_connections` more robust
In `fuzz_threaded_connections`, if one thread is being run while
another is starved, and the running thread manages to call
`timer_tick_ocurred` twice after the starved thread constructs the
inbound connection but before it delivers the first bytes, we'll
receive an immediate error and `unwrap` it, causing failure.
The fix is trivial, simply remove the unwrap and return if we're
already disconnected when we do the initial read.
While we're here, we also reduce the frequency of the
`timer_tick_ocurred` calls to give us a chance to occasionally
deliver some additional messages.
Fixes #2073
Matt Corallo [Sat, 4 Mar 2023 01:00:06 +0000 (01:00 +0000)]
Merge pull request #2065 from TheBlueMatt/2023-02-0.0.114
Cut 0.0.114
Matt Corallo [Wed, 1 Mar 2023 05:06:03 +0000 (05:06 +0000)]
Update crate versions to 0.0.114/invoice 0.22