Commit graph

22 commits

Author SHA1 Message Date
Matt Corallo
bce202536d Refer to generic types by importing them instead of a super-mod.
This avoids one case the bindings generation hasn't bothered to
handle by simply importing types that are referred to.
2020-08-25 17:09:50 -04:00
Matt Corallo
4441a06dee Reorder struct definitions so that they are in dependency order.
There are a few cases where the upcoming C bindings don't know how
to handle something which depends on something defined later in the
file. Instead of adding another pass to the C bindings generator,
it is much simpler to just reorder structs.
2020-08-25 17:09:02 -04:00
Matt Corallo
4395b92cc8 Relicense as dual Apache-2.0 + MIT
This changes the LICENSE file and adds license headers to most files
to relicense under dual Apache-2.0 and MIT. This is helpful in that
we retain the patent grant issued under Apache-2.0-licensed work,
avoiding some sticky patent issues, while still allowing users who
are more comfortable with the simpler MIT license to use that.

See https://github.com/rust-bitcoin/rust-lightning/issues/659 for
relicensing statements from code authors.
2020-08-10 21:12:44 -04:00
Gleb Naumenko
dd0e4f4034 Check htlc_maximum_msat on channel update 2020-07-27 14:06:20 +03:00
Gleb Naumenko
3a57cfc7c6 Store channel capacity if available 2020-07-27 14:06:20 +03:00
Gleb Naumenko
8b4f6e8861 Add htlc_maximum_msat field 2020-07-27 14:06:16 +03:00
Gleb Naumenko
a66b8017c0 Improve routing announcement test 2020-07-22 16:21:04 +03:00
joe.miyamoto
1fc6d6b5ee
Improve error message.
... for ChannelError and APIMisuseError
Before this commit, When rl returns error, we don't know
The actual parameter which caused the error.
By returning parameterised `String` instead of predefined `&'static str`,
We can give a caller improved error message.

TestLogger now has two additional methods
1. `assert_log_contains` which checks the logged messsage
  has how many entry which includes the specified string as a substring.
2. `aasert_log_regex` mostly the same with `assert_log_contains`
  but it is more flexible that caller specifies regex which has
  to be satisfied instead of just a substring.
For regex, tests now includes `regex` as dev-dependency.
2020-07-22 10:34:47 +09:00
Matt Corallo
ee6dd7f1bb Avoid references to primitives and add NetworkGraph::new()
non-mut references to primitives are only excess overhead, so
there's not much reason to ever have them. As a nice bonus, it also
is one less thing to worry about when generating C bindings
2020-06-23 16:12:55 -04:00
Matt Corallo
922fc8e9ee Avoid use std and use std::fmt and fmt:: instead in network_graph
This is more consistent with the way we use std::cmp over the
codebase and avoids `use std`, which is only actually needed to
support older rustcs, so feels a bit awkward.
2020-06-22 17:42:35 -04:00
Matt Corallo
c33a444267 Reduce RwLock usage in public interface of NetworkGraph
This isn't a big difference in the API, but it avoids needing to
wrap a given NetworkGraph in a RwLock before passing it, which
makes it much easier to generate C bindings for.
2020-06-22 13:42:28 -04:00
Valentine Wallace
87126b391b
ChannelManager+Router++ Logger Arc --> Deref
This caused a bunch of cascading changes, including
passing loggers down to Channels in function calls
rather than having each Channel have a pointer to the
ChannelManager's Logger (which was a circular reference).
Other structs that the Channel had passed its Logger to also
had their loggers removed. Other newly unused Loggers were
also removed, especially when keeping them would've caused
a bunch of extra test changes to be necessary, e.g. with
the ChainWatchInterfaceUtil's Logger.
2020-05-17 12:33:43 -04:00
Matt Corallo
b1c80970e9 Fix some new indentation nits 2020-05-12 14:16:43 -04:00
Matt Corallo
6e1aa6cab5 Fix a few new (and one old) issues in the new channel_update
We need to always set lowest_inbound_channel_fees to None if there
are no channels (and we should ignore the channels which are
disabled for the purpose of lowest-fee calculations). Further, we
cannot unwrap the channel lookups as they may be for channels which
are not related to the channel we are processing an update for.
Finally, we can satisfy borrowck much easier since things are on
self instead of on a MutexGuard.
2020-05-12 14:02:40 -04:00
Matt Corallo
57ac2ec1b6 Add missing comment on why last_update_message is None 2020-05-12 14:02:40 -04:00
Matt Corallo
0e3bf19b66 Move get_addresses to network_graph and drop now-useless log_trace
Because we expose the internals we don't need a method to log
their contents anymore, and get_addresses can now avoid copying as
we expose the RwLock directly
2020-05-12 14:02:40 -04:00
Gleb Naumenko
07a7e34f89 Improve routing-related documentation 2020-05-12 09:27:12 -04:00
Gleb Naumenko
7ec98e6206 Remove NetGraphMsgHandler serialization 2020-05-12 09:27:11 -04:00
Gleb Naumenko
8467223a5d Make DirectionalChannelInfo optional 2020-05-12 09:27:11 -04:00
Gleb Naumenko
afd4282107 Move node announcement fields into a separate struct 2020-05-12 09:27:11 -04:00
Gleb Naumenko
a7e193241c Expose some network graph methods 2020-05-12 09:27:11 -04:00
Gleb Naumenko
e553d2c2c0 Split routing from getting network messages 2020-05-12 09:27:11 -04:00