Commit graph

385 commits

Author SHA1 Message Date
Matt Corallo
662485a4dd Use new ChannelError in funding_locked, filling out more handling 2018-09-30 20:05:39 -04:00
Matt Corallo
625e2b3532 Use new ChannelError type in accept_channel 2018-09-30 20:05:39 -04:00
Matt Corallo
aa2021dff5 Introduce a Channel-specific Err type and return it in a few places
This is way simpler than writing out the whole ErrorAction mess and
we can just convert it as appropriate in ChannelManager.
2018-09-30 20:05:38 -04:00
Matt Corallo
6c1123cafd
Merge pull request #199 from TheBlueMatt/2018-09-184-fixed-monitor
Fix simple to_local revoked output claim and rebase #184
2018-09-29 21:09:50 -04:00
Matt Corallo
af29adcfdc Macro-out checking a tx validly spends another (and add one more) 2018-09-29 20:28:15 -04:00
Antoine Riard
09831934d1 Test htlc outputs single tx claim due to timeout case 2018-09-29 20:28:15 -04:00
Antoine Riard
a805567683 Test htlc outputs shared tx claim case 2018-09-29 20:28:15 -04:00
Matt Corallo
ae8bd1ba48 Fix and test simple remote-revoked-commitment-output claiming 2018-09-29 20:27:05 -04:00
Matt Corallo
1d1c5da13d Add 2-inbound-in-flight update_fee test (that we wouldn't generate) 2018-09-29 20:01:36 -04:00
Matt Corallo
b9a155d75f Annotate test_update_fee to make events more clear 2018-09-29 20:01:36 -04:00
Matt Corallo
3833cc3736 Add test for out-of-order update_fee commitment_signed/RAA 2018-09-29 20:01:36 -04:00
Matt Corallo
3f0bc24f1e Add test for send_commitment pending non-committed feerate updates 2018-09-29 20:01:36 -04:00
Matt Corallo
75f6804fc4 Note that update_fee is likely not gonna be our final API 2018-09-29 20:01:36 -04:00
Yuntai Kyong
a610e275c6 Add update_fee tests 2018-09-29 20:01:32 -04:00
Yuntai Kyong
f1ca469e9f Expose updating fee on an individual channel 2018-09-29 19:58:09 -04:00
Yuntai Kyong
1dbc6fb0ef Implement update_fee handling 2018-09-29 19:58:08 -04:00
Matt Corallo
2b9ee0995f Macro out one-monitor-added check in network tests (thanks @yuntai)
Originally suggested by Yuntai Kyong <yuntai.kyong@gmail.com> in
some new tests.
2018-09-29 17:05:43 -04:00
Matt Corallo
2d33b92381 Macro out getting payment_preimage/hash in network tests 2018-09-29 17:05:43 -04:00
Matt Corallo
8d706789e7 Avoid double-panic in ChannelManager when tests fail 2018-09-28 18:55:31 -04:00
Matt Corallo
28e67db327 Handle temporary_channel_id collision in fuzztarget mode 2018-09-26 11:06:28 -04:00
Matt Corallo
ea8a1f3506 Narrow check_spend_remote_htlc input/output count check.
This fixes a crash found by fuzztester where a 0-output tx causes a
[] panic (though this shouldn't happen in the real-world as
0-output txn should never be able to be mined).
2018-09-26 11:06:28 -04:00
Matt Corallo
0112394e52
Merge pull request #193 from SWvheerden/Bolt2-specs-errors-of-closing-messages-
Added test for testing sciptpubkey of closing message per bolt 2 spec
2018-09-21 04:59:37 -04:00
Schalk van Heerden
b58bab0700 Added test for testing sciptpubkey of closing message per bolt 2 spec 2018-09-21 10:20:44 +02:00
Matt Corallo
6e1318b0e2 Make docs look nicer by adding explicit spacing 2018-09-20 12:58:10 -04:00
Matt Corallo
79a0a0c959 Migrate ChannelMonitor serialization to new ser framework(ish)
Sadly we can't straight up use the new serialization framework as
we have a few different serialization variants, but that's OK, it
looks identical and is just missing the Writeable impl
2018-09-20 10:46:13 -04:00
Matt Corallo
28d0d44e44 Move ChannelMonitor deserialization to new ser framework 2018-09-20 10:46:13 -04:00
Matt Corallo
c43e535bc0 Simplify DecodeError enum by removing some useless distinctions 2018-09-20 10:46:12 -04:00
Matt Corallo
3aeec96470 Add module and all-pub-things docs and deny missing docs 2018-09-19 23:07:02 -04:00
Matt Corallo
9373c5993f Make message fields pub(crate) and hide a few internal fns 2018-09-19 23:07:02 -04:00
Matt Corallo
fe90e13f84 Log peer features in peer_handler (and check for all req bits) 2018-09-19 22:47:14 -04:00
Matt Corallo
da6171d50d Remove fuzz channel_target.
It has bitrotted a lot and doesn't really make sense given all the
precondition enforcement that is in channelmanager, sadly.
2018-09-19 22:47:07 -04:00
Matt Corallo
c91f72c131 Drop MsgEncodable in favor of default fns on Writeable 2018-09-16 14:33:50 -04:00
Matt Corallo
e8a66ef0ea Make Writeable::write typed instead of Writeable
This lets us add some untyped default functions to the trait
2018-09-16 14:33:50 -04:00
Matt Corallo
8322c756cb Stop checking size > 64KB in serialization
This removes a bunch of potentially new error handling in writers
and the checks were kinda useless anyway - in normal operation we
unwrap()ed anyway, and we're gonna want to use the serializtion
framework for ChannelMonitor/ChannelManager serialization, which
may generate things larger than 64KB anyway.
2018-09-16 14:33:50 -04:00
Matt Corallo
dfbdcf9e01 Remove MsgDecodable and most MsgEncodable impls 2018-09-16 14:33:50 -04:00
Matt Corallo
8c460c1239 Remove uses of MsgDecodable from ChannelManager 2018-09-16 14:33:50 -04:00
Matt Corallo
8a7dd2f9b8 Fix peer_handler message serialization
Fixes a bug introduced in 3e89106163
where messages were being encoded with their size instead of their
type.
Also utilizes the new size_hinting in peer_handler
2018-09-16 14:33:50 -04:00
Matt Corallo
712051a9fc Add size_hint in ser and call size_hint in all message serializers 2018-09-16 14:33:50 -04:00
Matt Corallo
1f1f82569a Simplify serialization a bit by removing the useless newtypes 2018-09-16 14:33:50 -04:00
Matt Corallo
e606f13664 Constify 2**48-1 and add some additional comments in Channel 2018-09-15 10:53:16 -04:00
Matt Corallo
c003d043de Add a simple channel_reestablish test 2018-09-15 10:53:16 -04:00
Matt Corallo
28c5f6f309 Track peer-disconnection in Channel and handle channel_reestablish 2018-09-15 10:53:16 -04:00
Matt Corallo
ca712dfa36 Add a Disconnected ChannelState and check/handle it everywhere
Setting/removing it comes next
2018-09-15 10:53:16 -04:00
Matt Corallo
12a50627a3 Add channel_reestablish + peer_connected events to channel handler 2018-09-15 10:53:16 -04:00
Matt Corallo
4bcf00e5b8 Clarify update_fail/fulfill_htlc holding cell allowed Errs
Specifically, there really should be no Errs, but in case there is
some case where duplicate HTLC removes are possible, return
IgnoreError and debug_assert to see if fuzzing can find them.
2018-09-15 10:53:16 -04:00
Matt Corallo
5fe598c073 Drop channels on disconnection if we haven't funded them yet 2018-09-15 10:53:16 -04:00
Matt Corallo
f55f055b4e Remove/fail uncommitted HTLCs upon peer disconnection 2018-09-15 10:53:16 -04:00
Matt Corallo
2be7eda3b5
Merge pull request #179 from TheBlueMatt/2018-09-pre-178-cleanups
Pre-reconnect ChannelManager test cleanups
2018-09-15 10:50:57 -04:00
Yuntai Kyong
4e4fa56e2b unwrap channel.get_open_channel 2018-09-15 07:33:20 +09:00
Matt Corallo
5737b32424 Split claim and fail payment functions to be able to skip one hop 2018-09-14 16:24:30 -04:00