Commit graph

5739 commits

Author SHA1 Message Date
Matt Corallo
fb9f169279 Assert usize is 32 or 64 bits, as required in a TODO 2018-07-29 13:30:04 -04:00
Matt Corallo
d5e316f5a0 Remove some excess mut's 1.22 complains about 2018-07-29 13:30:04 -04:00
Matt Corallo
c7c8a123ba Add pending-HTLC-failure to and unify force_shutdown() handling
This patch got a bit bigger than I'd intended, but primarily this
unifies force_shutdown() handling so all the callsites at least
look similar. It also fails backwards any HTLCs which were
completely pending (ie hadn't been committed to) and ensures we
broadcast our local commitment transaction. It also adds a
force_close_channel method to ChannelManager to expose
force-closure.
2018-07-29 02:23:02 -04:00
Matt Corallo
c26967348d Remove some useless Vecs 2018-07-29 02:23:02 -04:00
Matt Corallo
5c32e3cb91 Clean up forward_/claimable_htlcs handling and document consistency 2018-07-28 18:36:24 -04:00
Matt Corallo
9aed28fbf0 Fix force_shutdown() bug where we lose knowledge of a preimage
In case we are in AwaitingRemoteRevoke and we go to claim an HTLC
(at which point we've already given up the money to the next hop in
the payment) we just write it to holding_cell_htlc_updates.
However, we should be ensuring we *also* write it to our
channel_monitor as we need to make sure we can still claim it after
a force_shutdown() or otherwise after hitting the chain.
2018-07-28 18:34:01 -04:00
Matt Corallo
982317a444
Merge pull request #95 from savil/rm-bitcoin-util-hexbytes
replace use of bitcoin::utils::misc::hex_bytes with hex::decode
2018-07-28 16:19:33 -04:00
Savil Srivastava
4c44b787f1 use hex::decode instead of extend_vec_from_hex 2018-07-28 10:09:29 -07:00
Savil Srivastava
ca6b44b8cc replace use of bitcoin::utils::misc::hex_bytes with hex::decode
as requested in #84 discussion
https://github.com/rust-bitcoin/rust-lightning/pull/84#discussion_r205508845
2018-07-27 18:19:00 -07:00
Matt Corallo
194367fc3d
Merge pull request #94 from TheBlueMatt/2018-07-duplicate_hash
Handle duplicate payment_hash send_payment()s
2018-07-27 12:24:14 -04:00
Matt Corallo
e0c75caa3a Handle duplicate payment_hash send_payment()s
We don't bother doing anything smart, we just return an Err in
case we have a pending outbound HTLC with the payment_hash provided
for the send.

This doesn't resolve the TODO as users can still send duplicative
payments that have the same payment_hash as was already sent,
though the docs are updated and hopefully users do so on their own.
2018-07-26 19:39:26 -04:00
Matt Corallo
c75d07fdd4
Merge pull request #93 from TheBlueMatt/2018-07-announce-bug
Properly calculate Channel::announce_publicly
2018-07-26 15:34:39 -04:00
Matt Corallo
78023d6fa1 Remove excess mut warned on in 1.22 2018-07-26 15:11:36 -04:00
Matt Corallo
da014797b0 Properly calculate Channel::announce_publicly
For some reason we were only setting "announce_publicly" when
Channel::new_from_req had announce_publicly set to true and the
open_channel message had the relevant flag set. However, this
resulted in us rejecting peers for sending unsolicited
announcement_signatures messages, despite them having indicated,
and us having accepted, their announce-bit-set open_channel.
2018-07-26 15:11:36 -04:00
Matt Corallo
731aeab1f8
Merge pull request #90 from TheBlueMatt/2018-07-percent-bump
Bump README percent usable
2018-07-26 12:48:28 -04:00
Matt Corallo
7f4602596c Fix some tab-space errors in #84 2018-07-26 11:57:43 -04:00
Matt Corallo
8ec816e72a ACHIEVEMENT UNLOCKED 2018-07-26 11:57:40 -04:00
Matt Corallo
fe9bb1d970
Merge pull request #84 from savil/sort_outputs
[RFC][Tx Sort] Implement sorting of inputs
2018-07-26 11:54:17 -04:00
Matt Corallo
27d655fde1
Merge pull request #92 from savil/editorconfig-fix
fix editorconfig so it applies to every file
2018-07-25 23:46:40 -04:00
Savil Srivastava
da09c4d7f3 adding BIP69 test-cases 2018-07-25 18:33:03 -07:00
Savil Srivastava
2f9f0f1c63 fix editorconfig so it applies to every file 2018-07-25 18:14:06 -07:00
Matt Corallo
fb4be8a163
Merge pull request #89 from TheBlueMatt/2018-07-route-fuzz-fix-1
Fix fee addition overflow in get_route
2018-07-25 18:44:41 -04:00
Matt Corallo
158d0c16dc Fix fee addition overflow in get_route 2018-07-25 18:10:46 -04:00
Matt Corallo
a331849005
Merge pull request #87 from savil/editorconfig
add .editorconfig to ensure we use tabs, not spaces
2018-07-25 18:08:38 -04:00
Matt Corallo
62543a60e1
Merge pull request #88 from TheBlueMatt/2018-07-new-fuzzing
Add Router Fuzz Target
2018-07-25 17:03:24 -04:00
Matt Corallo
c45d8eb41e Only abort channel_target fuzz test on Err if ErrorAction says to 2018-07-25 16:25:12 -04:00
Matt Corallo
0ce6e397a7 Add router_target to fuzzing which fuzzes router msgs + get_route 2018-07-25 16:25:12 -04:00
Matt Corallo
07f08409f8 Catch fee overflow panic in get_route 2018-07-25 16:25:12 -04:00
Matt Corallo
66023b7886 Update NodeAnnouncement addr deserialization to check addr len.
This more aggressively checks the message contents are correct
before returning WrongLength so existing fuzz setup has an easier
time.
2018-07-25 15:57:36 -04:00
Matt Corallo
d4bb39a1dd Ensure all msg deserialization can provide extra bytes, rename err 2018-07-25 15:56:46 -04:00
Savil Srivastava
dfc3421302 add .editorconfig to ensure we use tabs, not spaces 2018-07-25 12:49:58 -07:00
Matt Corallo
29710eb4f0
Merge pull request #86 from TheBlueMatt/2018-07-event-fixes
Fix one bug on event handling, clean up docs
2018-07-24 22:59:46 -04:00
Matt Corallo
d7c1cfcc22 Make claim_funds_INTERNAL private 2018-07-24 22:33:12 -04:00
Matt Corallo
bdd77ae1fa Do not pass DisconnectPeer events upstream to the client 2018-07-24 22:33:12 -04:00
Matt Corallo
af5c6e8186 PendingHTLCsForwardable really should just be upstreamed.
This is just a comment/docs/function rename change
2018-07-24 22:33:10 -04:00
Matt Corallo
29906e7995
Merge pull request #85 from TheBlueMatt/2018-07-fees
Convert fee API to per_kw instead of per_vb
2018-07-24 20:59:49 -04:00
Matt Corallo
b8b7cb238d Convert fee API to per_kw instead of per_vb
This (a) cuts down a bit on some conversions, reducing chances for
bugsand (b) provides greater accuracy for clients.
2018-07-24 20:34:56 -04:00
Matt Corallo
f98d4b37d3
Merge pull request #82 from TheBlueMatt/2018-07-send-initial
Initial fixes for payment sending
2018-07-24 15:41:38 -04:00
Matt Corallo
d61abf6c04 Fix HTLC exclusion balance calculation criteria 2018-07-24 15:11:38 -04:00
Matt Corallo
ad147a20e6 Half-ass some CLTV fixes for real channel creation 2018-07-23 23:31:37 -04:00
Savil Srivastava
eb1eddcea0 [RFC][Tx Sort] Implement sorting of inputs
Follows BIP69: https://github.com/bitcoin/bips/blob/master/bip-0069.mediawiki

1. Implements sorting of transactoin inputs.
- BIP says to use "reversed byte-order" for the `prev_hash`. I interpreted this as: little-endian.
- TODO need to add tests

2. Re: improve sorting of TxOut's script_pubkey to use lexicographic ordering, and not length.
From the test-cases i've included it seems that the current code already does lexicographic ordering (and not length based). Am i missing something?
2018-07-23 20:26:26 -07:00
Matt Corallo
12a55ae6fc Set associated_data to payment_hash 2018-07-23 22:47:36 -04:00
Matt Corallo
7dac0bd1ff
Merge pull request #83 from TheBlueMatt/2018-07-direct-route
Short-circuit router for an outbound specified direct channel
2018-07-23 22:46:51 -04:00
Matt Corallo
ccf18e1b47 Short-circuit router for an outbound specified direct channel 2018-07-23 22:00:19 -04:00
Matt Corallo
7580b721ee
Merge pull request #79 from TheBlueMatt/2018-07-chanmon-oom
Fix OOM crash in ChannelMonitor::deserialize found by AFL
2018-07-23 15:26:09 -04:00
Matt Corallo
ab22bed7ed Fix OOM crash in ChannelMonitor::deserialize found by AFL 2018-07-23 15:01:25 -04:00
Matt Corallo
c0bcb4b532
Merge pull request #78 from TheBlueMatt/2018-07-43-rebased
Add DisconnectPeer event
2018-07-23 14:59:24 -04:00
Antoine Riard
20fa9d331d Add DisconnectPeer events
Add test for DisconnectPeer event
Update DisconnectPeer with optional ErrorMessage
Manage error for funding_transaction_generated
Add disconnect_socket to SocketDescriptor trait
2018-07-23 14:31:44 -04:00
Antoine Riard
1c12e83941 Implement ErrorMessage msg and ErrorAction::SendErrorMessage + fuzz test 2018-07-23 14:31:44 -04:00
Matt Corallo
fa9715dccf
Merge pull request #77 from TheBlueMatt/2018-07-route-tweaks
Add arg to get_route to specify our local channels explicitly
2018-07-23 13:57:00 -04:00