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
Jeffrey Czyz
2db1f1f656
Track block height in ChannelMonitor
2021-04-14 12:57:05 -07:00
Jeffrey Czyz
5610ca193d
Combine ChannelManager's block hash and height
...
There is a possible race condition when both the latest block hash and
height are needed. Combine these in one struct and place them behind a
single lock.
2021-04-14 12:57:04 -07:00
Jeffrey Czyz
24351f5868
Add txid to on-chain event tracking
...
When using Electrum, transactions are individually unconfirmed during a
reorg rather than by block. Store the txid of the transaction creating
the on-chain event so that it can be used to determine which events need
to be removed when a transaction is unconfirmed.
2021-04-14 12:57:04 -07:00
Jeffrey Czyz
561ddc0b44
Check for duplicate HTLC events having matured
2021-04-14 12:57:04 -07:00
Jeffrey Czyz
a89996564c
Flatten onchain_events_waiting_threshold_conf
...
Rather than mapping height to a vector of events, use a single vector
for all events. This allows for easily processing events by either
height or transaction. The latter will be used for an interface suitable
for Electrum.
2021-04-14 12:57:04 -07:00
Matt Corallo
9397db6119
Merge pull request #853 from TheBlueMatt/2021-03-transaction_unconfirmed
...
Add method to note transaction unconfirmed/reorged-out
2021-04-14 18:50:52 +00:00
Matt Corallo
6982434c58
Test new transactions_unconfirmed
2021-04-14 14:26:31 -04:00
Matt Corallo
46ac4c796a
Expose ChannelManager's current config and use it in reload in tests
2021-04-14 14:26:18 -04:00
Matt Corallo
bdbba5e98f
Add method to note transaction unconfirmed/reorged-out
2021-04-14 14:26:17 -04:00
Matt Corallo
9577928557
Merge pull request #885 from p2pderivatives/use-secp256k1-consts-in-ser
...
Fix size check in Vec<Signature> serialization + use consts
2021-04-14 02:20:27 +00:00
Matt Corallo
eee1c30ea6
Merge pull request #875 from TheBlueMatt/2021-04-fix-bench
...
Fix benchmark compile warnings and errors
2021-04-14 01:51:33 +00:00
Tibo-lg
2e49758127
Fix size check in Vec<Signature> serialization + use consts
2021-04-14 10:37:49 +09:00
Matt Corallo
daa1979aae
Fix compile warning with --cfg require_route_graph_test
2021-04-12 23:35:44 -04:00
Matt Corallo
3d51b11fe9
Merge pull request #872 from valentinewallace/timer-tick-in-bg-processor
...
Call timer_tick_occurred in BackgroundProcessor
2021-04-13 01:37:52 +00:00
Valentine Wallace
e5b99c14e2
Call peer_manager.timer_tick_occurred() in background processor
2021-04-12 20:42:09 -04:00
Valentine Wallace
5b4c3c603c
Rename timer_chan_freshness_every_min for uniformity with PeerManager
2021-04-12 20:42:09 -04:00
Matt Corallo
bc899dcad3
Merge pull request #874 from TheBlueMatt/2021-04-persister-export
...
Prep lightning-persister for export in the C bindings
2021-04-12 23:56:01 +00:00
Matt Corallo
3fdf252bd3
Improve + fix indentation and style in lightning-persister
2021-04-12 19:28:17 -04:00
Matt Corallo
6b2e179bc1
Return ChannelMonitors in a Vec, not HashMap when loading from disk
...
There's little reason for the HashMap - the ChannelMonitors are
already unique (enforced by file names), and the eventual HashMap
that users need when deserializing the `ChannelManager` is a
slightly different form (it requires no BlockHash entry).
2021-04-12 18:35:24 -04:00
Matt Corallo
7e39f8735a
Fix benchmark compile warnings and errors
...
Hopefully soon once a few more PRs get merged we can require this
in CI so we won't have any more regressions here.
2021-04-12 18:04:55 -04:00
Matt Corallo
0a11eb19ab
Expand persistence to all ChannelManagers, not just Arc-based ones
2021-04-12 13:49:08 -04:00
Matt Corallo
8088e4ba15
Merge pull request #856 from TheBlueMatt/2021-03-check-tx
...
Take the full funding transaction from the user on generation
2021-04-10 20:27:24 +00:00
Matt Corallo
b77b547301
Merge pull request #870 from valentinewallace/invoices-crate
...
Invoices crate
2021-04-10 20:26:58 +00:00
Matt Corallo
ba3ef0a3ba
Merge pull request #873 from TheBlueMatt/2021-861-missing-eof-eol
...
Add missing EOF newline
2021-04-10 20:26:36 +00:00
Matt Corallo
3f2efcdfa7
Take the full funding transaction from the user on generation
...
Instead of relying on the user to ensure the funding transaction is
correct (and panicing when it is confirmed), we should check it is
correct when it is generated. By taking the full funding transaciton
from the user on generation, we can also handle broadcasting for
them instead of doing so via an event.
2021-04-09 19:59:06 -04:00
Matt Corallo
dba0709b08
Merge pull request #861 from lightning-signer/degenerify
...
De-generify Sign methods
2021-04-09 23:57:20 +00:00
Matt Corallo
32a9a82396
Add missing EOF newline
2021-04-09 19:57:12 -04:00
Matt Corallo
021959f822
Merge pull request #866 from TheBlueMatt/2021-04-log-err-node
...
Log the node generating an onion error
2021-04-09 22:23:14 +00:00
Matt Corallo
24c1cfe810
Merge pull request #863 from valentinewallace/expose-read-chanmons-from-disk
...
persister: Expose method to read ChannelMonitors from disk
2021-04-09 16:56:07 +00:00
Valentine Wallace
94aa47b510
persister: Expose method to read ChannelMonitors from disk
2021-04-09 11:19:17 -04:00
Valentine Wallace
c3d25ed4bd
Fix Windows
2021-04-09 10:08:27 -04:00
Valentine Wallace
741f118da4
Clean up lightning-invoice Cargo.toml and README
2021-04-09 10:08:27 -04:00
Valentine Wallace
b516b3da19
Add lightning invoice fuzzing to CI
2021-04-09 10:08:27 -04:00
Valentine Wallace
56069ba7aa
Clean up lightning-invoice CI, license, and add to workspaces
2021-04-09 10:08:27 -04:00
Sebastian
f00bb10a82
Pure import of lightning-invoice crate
...
Original repo: https://github.com/rust-bitcoin/rust-lightning-invoice
2021-04-09 10:08:27 -04:00
Devrandom
0821fb3de0
Test that BaseSign can have a vtable
2021-04-09 11:20:58 +02:00
Devrandom
14e094adc1
Move Writeable from BaseSign to Sign
2021-04-09 11:20:58 +02:00
Devrandom
db0287137f
Separate Clone from Sign
...
Clone requires Sized, which prevents Sign from being a dyn object.
2021-04-09 11:19:22 +02:00
Devrandom
b69ae07c11
Eliminate unnecessary generics from Sign
...
The generic methods prevent Sign from being a dyn object.
Use Secp256k1<All> as part of removing generics from Secp256k1 contexts passed into Sign methods.
2021-04-09 11:19:22 +02:00