Matt Corallo
affefb677e
Merge pull request #854 from TheBlueMatt/2021-03-fix-lens
...
Fix serialization expected lengths and check them in test/fuzzing
2021-04-27 02:05:29 +00:00
Matt Corallo
ee0ffe5dfd
Use more descriptive names in serialization impl macros
2021-04-27 01:09:12 +00:00
Matt Corallo
25b9fd8079
Fix serialization expected lengths and check them in test/fuzzing
2021-04-27 01:09:12 +00:00
Matt Corallo
7af9976261
Merge pull request #897 from TheBlueMatt/2021-04-fix-ci
...
Bump MSRV to 1.36
2021-04-27 01:06:11 +00:00
Matt Corallo
5625c3ab52
Test lightning-persister on rustc 1.36 as well
2021-04-27 00:36:52 +00:00
Matt Corallo
c4ab6756dd
Bump MSRV to 1.36.0
...
Debian is shipping 1.41 on oldstable and rust-bitcoin will likely
move to 1.36 over the coming months, so there's little reason to
wait on this.
cc https://github.com/rust-bitcoin/rust-bitcoin/issues/510
2021-04-27 00:36:52 +00:00
Matt Corallo
6b9ec8b6e6
Merge pull request #894 from TheBlueMatt/2021-04-fix-docs
...
Fix doc resolution in rustc 1.48
2021-04-26 19:59:32 +00:00
Matt Corallo
cc18e8a279
Merge pull request #876 from valentinewallace/invoice-features
...
Invoice features
2021-04-26 18:00:33 +00:00
Valentine Wallace
b24d02c6a2
Add Features feature to invoices.
2021-04-26 12:29:46 -04:00
Matt Corallo
36570f4593
Merge pull request #890 from TheBlueMatt/2021-04-fix-chan-shutdown-crash
...
Fix (and test) panic when our counterparty uses a bogus funding tx
2021-04-24 00:03:42 +00:00
Matt Corallo
eb42caf8a0
Fix (and test) panic when our counterparty uses a bogus funding tx
...
During the block API refactor, we started calling
Channel::force_shutdown when a channel is closed due to a bogus
funding tx. However, we still set the channel's state to Shutdown
prior to doing so, leading to an assertion in force_shutdown (that
the channel is not already closed).
This removes the state-set call and adds a (long-overdue) test for
this case.
Fixes: 60b962a18e
2021-04-23 22:52:43 +00:00
Valentine Wallace
f52b617c12
Expose Features::from_le_bytes() method
...
Useful for constructing features objects from raw feature bytes.
2021-04-23 17:11:40 -04:00
Valentine Wallace
2cbe4a09ec
Fix indentation in payment_secret function
2021-04-23 17:11:40 -04:00
Matt Corallo
f1fa961c40
Fix doc resolution in rustc 1.48
2021-04-23 20:42:11 +00:00
Matt Corallo
0d75a63ead
Merge pull request #889 from jkczyz/2021-04-electrum-trait
...
Define chain::Confirm trait for use by Electrum clients
2021-04-23 19:13:23 +00:00
Jeffrey Czyz
99e2283aee
Drop pub functions for ChainMonitor's Listen impl
2021-04-22 14:17:26 -07:00
Jeffrey Czyz
93d20ff63e
Implement chain::Confirm for ChainMonitor
2021-04-22 14:17:26 -07:00
Jeffrey Czyz
23c4c8b7c7
Implement chain::Confirm for relevant structs
2021-04-22 14:17:26 -07:00
Jeffrey Czyz
6b12dd207f
Define chain::Confirm trait
...
Define a separate trait akin to chain::Listen for notifying when
transactions have been confirmed on chain or unconfirmed during a chain
reorganization. Whereas chain::Listen is used for block-oriented chain
sources, chain::Confirm is used for chain sources supplying data for
activity related to transactions and outputs registered via
chain::Filter.
2021-04-22 14:17:25 -07:00
Matt Corallo
4f6a038e61
Merge pull request #891 from TheBlueMatt/2021-04-peer_handler_lock
...
[peer_handler] Take the peers lock before getting messages to send
2021-04-22 14:16:05 +00:00
Matt Corallo
bfd1128213
[peer_handler] Take the peers lock before getting messages to send
...
Previously, if a user simultaneously called
`PeerHandler::process_events()` from two threads, we'd race, which
ended up sending messages out-of-order in the real world.
Specifically, we first called `get_and_clear_pending_msg_events`,
then take the `peers` lock and push the messages we got into the
sending queue. Two threads may both get some set of messages to
send, but then race each other into the `peers` lock and send the
messages in random order.
Because we already hold the `peers` lock when calling most message
handler functions, we can simply take the lock before calling
`get_and_clear_pending_msg_events`, solving the race.
2021-04-21 22:03:45 +00:00
Matt Corallo
f40e47c1ef
Merge pull request #887 from valentinewallace/invoice-use-RL-routehint
...
invoice: swap RouteHop for RouteHint
2021-04-21 15:21:39 +00:00
Valentine Wallace
11641fe99e
Test lightning-invoice on 1.30.0
2021-04-20 16:26:56 -04:00
Valentine Wallace
a62a71cb52
invoice: rename Route to RouteHint (which is more accurate)
2021-04-20 16:26:56 -04:00
Valentine Wallace
ad900658ce
Rename RouteHint to RouteHintHop (which is more accurate)
2021-04-20 16:26:56 -04:00
Valentine Wallace
21cb8db1b6
invoice: swap RouteHop for RouteHint
...
To prevent naming conflicts in bindings
2021-04-20 16:26:52 -04:00
Matt Corallo
e6c922803f
Merge pull request #844 from sr-gi/843-ln-signing
...
Adds lightning message signing/verification/pk_recovery
2021-04-20 00:45:30 +00:00
Sergi Delgado Segura
7bcf5a1731
Changes zbase32 crate from pub to pub(crate)
2021-04-16 07:35:04 +02:00
Matt Corallo
f13e38c3f7
Correct license header in zbase32 to match original work
...
The original work is licensed dual MIT+Apache-2 just like us, so
the license header should not only mention MIT.
2021-04-16 07:35:04 +02:00
Matt Corallo
d8716455b3
Replace spaces with tabs in zbase32.rs
2021-04-16 07:35:04 +02:00
Matt Corallo
7c9302f6a7
Fix a number of bugs in zbase32 and add a fuzzer which caught them.
2021-04-16 07:35:03 +02:00
Sergi Delgado Segura
6f7a2bcdd1
Adds lightning message signing/verification/pk_recovery
2021-04-16 07:34:51 +02:00
Matt Corallo
52f1d45bb2
Merge pull request #886 from TheBlueMatt/2021-04-pub-alias
...
Make the used-in-pub-interfaces TransactionOutputs type alias pub
2021-04-15 21:55:53 +00:00
Matt Corallo
2213f24ec6
Merge pull request #884 from TheBlueMatt/2021-04-bp-bindings
...
Prep background-processor for bindings inclusion
2021-04-15 20:11:19 +00:00
Matt Corallo
ffedc055b5
Make the used-in-pub-interfaces TransactionOutputs type alias pub
2021-04-15 16:10:21 -04:00
Matt Corallo
452b72078e
Rename background-processor to lightning-... to match other crates
2021-04-15 15:23:05 -04:00
Matt Corallo
34e429fdf6
Use a trait to handle ChannelManager persistence instead of an Fn
...
This avoids having to write new support for closures in the C
bindings generation but, more importantly, we really need to also
be handling Events in the same trait, so it makes sense to go ahead
and convert it.
For compatibility, the trait is implemented for any matching
closure.
2021-04-15 15:23:05 -04:00
Matt Corallo
f223d2a72e
Loosen background-persister so bindings are happy
2021-04-15 15:23:05 -04:00
Matt Corallo
feeb89305a
Merge pull request #858 from jkczyz/2021-03-electrum-interface
...
Electrum interface for ChannelMonitor
2021-04-15 14:25:54 +00:00
Jeffrey Czyz
524c532d40
Rename onchain_events_waiting_threshold_conf
2021-04-14 13:00:16 -07:00
Jeffrey Czyz
5e8b683333
Parameterize test_htlc_on_chain_timeout
...
This test failed when ConnectionStyle was set to a SkippingBlocks
variant because of a bug in ChannelMonitor::update_best_block.
Parameterize the test with these styles to catch any regressions.
2021-04-14 13:00:16 -07:00
Jeffrey Czyz
d45b38f43f
Test ChainMonitor's Electrum interface
2021-04-14 12:57:06 -07:00
Jeffrey Czyz
87f74fd451
Reuse txdata in functional_test_utils.rs
2021-04-14 12:57:06 -07:00
Jeffrey Czyz
1c72489e52
Add an internal typedef for transaction outputs
2021-04-14 12:57:06 -07:00
Jeffrey Czyz
34792d0f1a
Remove unnecessary script_pubkey clones
2021-04-14 12:57:05 -07:00
Jeffrey Czyz
f57c8856b5
Electrum interface for ChainMonitor
...
Add an interface to ChainMonitor for Electrum users, delegating to the
corresponding methods in each ChannelMonitor.
2021-04-14 12:57:05 -07:00
Jeffrey Czyz
c57bf73a02
Add ChannelMonitor::get_relevant_txids
...
Define an Electrum-friendly interface for ChannelMonitor where txids of
relevant transactions can be obtained. For any of these transactions
that are re-orged out of the chain, users must call
transaction_unconfirmed.
2021-04-14 12:57:05 -07:00
Jeffrey Czyz
65e588fd92
Add ChannelMonitor::transaction_unconfirmed
...
Define an Electrum-friendly interface for ChannelMonitor where
transactions are unconfirmed independently from updating the latest
block.
2021-04-14 12:57:05 -07:00
Jeffrey Czyz
8e3744813a
Add ChannelMonitor::update_best_block
...
Expose a way for Electrum users to update the best block on a
ChannelMonitor independently of confirming transactions.
2021-04-14 12:57:05 -07:00
Jeffrey Czyz
13a33409b5
Add ChannelMonitor::transactions_confirmed
...
Define an Electrum-friendly interface for ChannelMonitor where
transactions are confirmed independently of updating the last connected
block.
2021-04-14 12:57:05 -07:00