Commit graph

503 commits

Author SHA1 Message Date
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
d4ba4af057
Merge pull request #197 from TheBlueMatt/master
Fix fuzztarget failures
2018-09-29 14:27:01 -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
Matt Corallo
b2a855b57a
Merge pull request #194 from TheBlueMatt/2018-09-doc-cleanup
Make docs look nicer by adding explicit spacing
2018-09-21 04:42:57 -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
92ff499bdb
Merge pull request #191 from TheBlueMatt/2018-09-chanmon-ser-framework
Migrate ChannelMonitor writing/reading to new serialization framework
2018-09-20 12:14:59 -04:00
Matt Corallo
d2a6ca529f Bump version to 0.0.5 to get new docs out 2018-09-20 10:57:18 -04:00
Matt Corallo
9d69bc9a48 Switch to -O1 in dev as we have long-running tests and O1 is cheap 2018-09-20 10:57:01 -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
66fbc66da0
Merge pull request #192 from TheBlueMatt/2018-09-docs-docs-docs
Add module and all-pub-things docs and deny missing docs
2018-09-20 10:44:23 -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
7f6c31ea15 Document ConfirmationTarget a little bit (closes #101) 2018-09-19 23:07:02 -04:00
Matt Corallo
a4528faa54 Document all the fields in Errors 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
ac821e448f
Merge pull request #186 from TheBlueMatt/2018-09-ser-rework-2
Drop old serialization framework
2018-09-18 16:14:49 -04:00
Matt Corallo
e0fad3f8a3
Merge pull request #185 from TheBlueMatt/2018-09-ser-rework
Serialization Framework Tweaks
2018-09-18 16:14:40 -04:00
Matt Corallo
c91f72c131 Drop MsgEncodable in favor of default fns on Writeable 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
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
19b92448c5 Utilize Writer size hinting in message fuzz targets and check them 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
712051a9fc Add size_hint in ser and call size_hint in all message serializers 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
ee9533a905 Split out Vec<u8> and Vec<Signature> ser impls cause there's 2
Should resolve any performance issues with Vec<u8> serialization.
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
1f1f82569a Simplify serialization a bit by removing the useless newtypes 2018-09-16 14:33:50 -04:00
Matt Corallo
51ba6ad2e9 Expose (de)serialziers as we'll need them and I don't like warnings 2018-09-16 14:33:48 -04:00
Matt Corallo
97488ad36e
Merge pull request #178 from TheBlueMatt/2018-09-channel_reestablish
Handle peer disconnect tracking/channel_reestablish
2018-09-15 11:36:59 -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