Matt Corallo
dfbcacfe0e
Split channel_reserve_test so we don't rely on unfilled Err actions
...
Currently channel_reserve_test sends a garbage update_add_htlc
message and then relies on it being silently ignored to continue
using the channel. This shouldn't be the case, so take the easy
way out and split the test in two, at first not delivering the
bogus update_add_htlc and then delivering it, but not running the
rest of the test.
2018-11-22 23:57:54 -05:00
Matt Corallo
dae97a4858
Merge pull request #257 from TheBlueMatt/2018-11-007-bump
...
Bump to 0.0.7 for API rev
2018-11-21 16:45:17 -05:00
Matt Corallo
bde921ea20
Bump to 0.0.7 for API rev
2018-11-21 16:18:18 -05:00
Matt Corallo
241b0cb449
Merge pull request #246 from TheBlueMatt/2018-11-fuzz-crash-redux
...
Several fuzz-found bugfixes.
2018-11-21 16:17:01 -05:00
Matt Corallo
93c8760086
Merge pull request #255 from TheBlueMatt/2018-11-230-ext
...
Two post-#230 fixups
2018-11-21 11:41:42 -05:00
Matt Corallo
3af20fd507
Check P2WPKH script against expected before gen'ing an output event
...
This fixes a bug in 3518f1f85d
where
we may generate an output event for a P2WPKH output which is not
ours if the transaction has a sequence/lock_time combination which
false-positives our remote tx detection.
Also note that the TODO is removed as this should already be
covered without issue if the client properly replays the chain on
restart.
2018-11-20 19:03:57 -05:00
Matt Corallo
90b0ed937e
Provide commitment point to monitor with the remote txn update
...
This extends 1b33064554
by
re-simplifying the ChannelMonitor <-> Channel interface a bit as we
never have any use for the latest remote commitment point until we
have knowledge of a remote transaction generated using it.
2018-11-20 19:03:57 -05:00
Matt Corallo
7687e02d6c
Merge pull request #254 from TheBlueMatt/2018-11-channelerror
...
Move a ton of Channel functions to ChannelError from HandleError
2018-11-20 19:00:49 -05:00
Matt Corallo
f2280e580a
Fix two compiler warnings introduced in a51dbb4a4d
2018-11-20 16:34:40 -05:00
Matt Corallo
90816dd9d8
Move a ton of Channel functions to ChannelError from HandleError
...
This is a big patch, but its all very mechanical, everything here
should be pretty obvious, and it all has to happen at once due to a
few common utility functions all having the same return type.
Note that this exposes a race in channel closure where we may
access a channel via some non-peer-specific mechanism like
forwarding an HTLC or sending a payment during the time between
the channel gave us a Close error and expected us to never call it
again and the time we actually removed it from the channel_state
set outside of the internal_* handler.
2018-11-20 16:33:32 -05:00
Matt Corallo
3155890766
Create simple ChannelMonitor-specific Err type
2018-11-20 16:31:41 -05:00
Matt Corallo
86944d34a1
Merge pull request #231 from philipr-za/philip-204-check-commitment-transaction-fee
...
Check funder can afford commitment transaction fee when receiving update_fee
2018-11-20 16:29:21 -05:00
Matt Corallo
7efaf2e8ac
Merge pull request #230 from ariard/handle_sizeable_push_msat
...
Handle sizeable push msat (fix #195 ) + handle two first per_commitment_point + keys interface tests
2018-11-20 15:51:27 -05:00
Antoine Riard
3a7b40e494
Add test_static_output_closing_tx
2018-11-19 20:51:26 -05:00
Antoine Riard
890d1768b7
Add test_dynamic_spendable_outputs_local_htlc_*
...
Cover both local HTLC-Timeout/Success case
2018-11-19 20:51:17 -05:00
Antoine Riard
394b11c7b5
Add key_storage selection in ChannelMonitor insert_combine
...
Based on commitment_number
2018-11-19 20:42:55 -05:00
Antoine Riard
b6b5decfa9
Add test_static_spendable_outputs_justice_tx_revoked_htlc*
...
Cover both HTLC-Timeout/Success cases
2018-11-19 20:42:55 -05:00
Antoine Riard
73415a8951
Add test_static_spendable_outputs_justice_tx_revoked_commitment_tx
2018-11-19 20:42:55 -05:00
Antoine Riard
e22220d79f
Add test_claim_on_remote_sizeable_push_msat
...
Contrary to sizeable push_msat on local
commitment tx, the output go to a P2WPKH
2018-11-19 20:42:52 -05:00
Antoine Riard
1255885a80
Add check_spend_closing_transaction ChannelMonitor
...
Aims to send back closing output descriptor to user wallet
2018-11-19 20:40:07 -05:00
Antoine Riard
3518f1f85d
Add test_static_spendable_outputs_preimage_tx
...
Aims to covered both keysinterace preimage tx case and
detection of second remote commitment tx
Split DynamicDescriptor between *P2WSH and *P2WKH
2018-11-19 20:39:38 -05:00
Matt Corallo
3a066ccbf2
Ensure fuzz release builds use codegen-units=1 and LTO
2018-11-18 16:17:06 -05:00
Matt Corallo
e67d8c6314
Don't unwrap() get_channel_update result in HTLC router
...
This fixes a bug in 78232f2aed
found
by fuzzer - if the channel isn't yet fully established we will call
get_channel_update(), get an Err result, and then unwrap() it. If
this actually happens it means someone on the network is making up
short_channel_ids and trying to route over them, but that shouldn't
result in us crashing
2018-11-18 16:17:06 -05:00
Matt Corallo
b4fc5b65e0
Fix pre-noise peer disconnect panic on non-Err disconnect
...
366e79615b
fixed the same crash for
Errs that come up during handshake, but was incomplete and should
have just dropped the node_id being different based on
inbound/outbound. This patch does so and actually fixes the issue.
Found by fuzzer.
2018-11-18 12:59:02 -05:00
Matt Corallo
b14baa03ab
Merge pull request #253 from TheBlueMatt/2018-11-misc-tweaks
...
Misc Tweaks
2018-11-16 11:47:50 -05:00
Antoine Riard
1b33064554
Split provide_their_next_commitment_point from provide_secret
...
We needed it to be able to track remote_per_commitment_point
after channel opening and funds locking
2018-11-15 19:08:27 -05:00
Antoine Riard
f053169363
Add test_claim_sizeable_push_msat
...
Aims to cover both claiming of sizeable_push_msat and
spendable output generation for to_local output
2018-11-15 19:08:27 -05:00
Antoine Riard
f88f826b28
Add TxOut in DynamicOutput
2018-11-15 19:07:34 -05:00
Antoine Riard
8c638ffc81
Track local_commitment_tx at funding_created
...
Goal to claim sizeable push_msat and in event of
local commitment tx being broadcast without htlcs
2018-11-15 19:07:34 -05:00
Antoine Riard
04e6be9f00
Implement spendable output to_local output on local commitment tx
2018-11-15 19:07:34 -05:00
Matt Corallo
2258d2b6d3
Merge pull request #249 from stevenroose/bitcoin-0.15
...
Update to rust-bitcoin v0.15
2018-11-16 06:37:44 +13:00
Matt Corallo
968720344c
Panic if funding transaction has non-witness inputs
2018-11-15 12:25:09 -05:00
Matt Corallo
ed006f5e46
Clarify get_update_*_htlc docs and tweak one case slightly
2018-11-15 12:22:16 -05:00
Matt Corallo
4a697dbdf2
Expand test_funding_peer_disconnect somewhat by being non-symmetric
...
I thought I found a bug in one-side-funded-first reconnect, but
seems I can't reproduce it here. Either way worth improving the
test coverage.
2018-11-15 12:22:16 -05:00
Philip Robinson
a51dbb4a4d
Check affordability of new fee during update_fee call #204
2018-11-14 14:14:10 +02:00
Steven Roose
7ff7561f2d
Update to rust-bitcoin v0.15
2018-11-14 11:43:54 +00:00
Matt Corallo
3c44d6beca
Merge pull request #248 from TheBlueMatt/2018-11-monitor-test-split
...
Split up channel_monitor_network_test a little bit
2018-11-14 09:20:54 +10:30
Matt Corallo
2be7c5debe
Merge pull request #247 from TheBlueMatt/2018-11-202-redux
...
Handle-initial_routing_sync-requests-from-peers-in-their-Init-messages
2018-11-14 07:18:40 +10:30
Matt Corallo
44f56f84b6
Split up channel_monitor_network_test a little bit
2018-11-09 15:01:53 +10:30
Schalk van Heerden
8d7b498974
Handle-initial_routing_sync-requests-from-peers-in-their-Init-messages
2018-11-09 13:53:13 +10:30
Antoine Riard
fa2ac8cd84
Add test justice tx on revoked htlc_success
...
Extend channel_monitor_network_test to cover
all check_spend_remote_htlc cases
2018-11-08 02:21:28 +00:00
Matt Corallo
74f59a2177
Merge pull request #242 from yuntai/201811-malformed
...
Fail channel when BADONION is not set
2018-11-05 16:14:34 -05:00
Yuntai Kyong
05b580e10b
fail channel when BADONION is not set.
2018-11-05 21:10:17 +09:00
Matt Corallo
0e098d4bab
Merge pull request #241 from TheBlueMatt/2018-10-peer-free-panic
...
Fix pre-noise outbound peer disconnect panic found by fuzzer
2018-11-02 23:59:59 -04:00
Matt Corallo
af89de3d86
Merge pull request #233 from TheBlueMatt/2018-10-shutdown-updates
...
Shutdown Updates
2018-11-02 23:07:54 -04:00
Matt Corallo
182affc03b
Test the various shutdown handling updates
2018-11-02 22:26:51 -04:00
Matt Corallo
224fb05cc5
Rebroadcast shutdown on channel_reestablish (and reprocess them)
2018-11-02 22:26:51 -04:00
Matt Corallo
527d036c1b
Delay closing_signed until update_fee exchanges complete
...
See https://github.com/lightningnetwork/lightning-rfc/issues/499
for a bit more about the ambiguity we're addressing here.
Also drop holding cell update_fee the same way we drop holding
cell update_add_htlcs when sending shutdown, resolving a bug.
2018-11-02 22:26:51 -04:00
Matt Corallo
78232f2aed
Fail incoming HTLCs sent after we start shutdown, not the chan
2018-11-02 22:26:51 -04:00
Matt Corallo
38584e3efe
Avoid double-panic in full_stack_target to assist debugging
2018-11-02 10:54:25 -04:00