lightning/ln/
mod.rs

1// This file is Copyright its original authors, visible in version control
2// history.
3//
4// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
5// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
6// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
7// You may not use this file except in accordance with one or both of these
8// licenses.
9
10//! Implementations of various parts of the Lightning protocol are in this module.
11
12#[cfg(any(test, feature = "_test_utils"))]
13#[macro_use]
14pub mod functional_test_utils;
15
16pub mod chan_utils;
17pub mod channel_keys;
18pub mod channel_state;
19pub mod channelmanager;
20mod features;
21pub mod funding;
22pub mod inbound_payment;
23pub mod msgs;
24pub mod onion_payment;
25pub mod our_peer_storage;
26pub mod peer_handler;
27pub mod script;
28pub mod types;
29
30// TODO: These modules were moved from lightning-invoice and need to be better integrated into this
31// crate now:
32pub mod invoice_utils;
33
34#[cfg(fuzzing)]
35pub mod peer_channel_encryptor;
36#[cfg(not(fuzzing))]
37pub(crate) mod peer_channel_encryptor;
38
39#[cfg(fuzzing)]
40pub mod channel;
41#[cfg(not(fuzzing))]
42pub(crate) mod channel;
43
44pub(crate) mod onion_utils;
45mod outbound_payment;
46pub mod wire;
47
48#[allow(dead_code)] // TODO(dual_funding): Remove once contribution to V2 channels is enabled.
49pub(crate) mod interactivetxs;
50
51pub use onion_utils::{create_payment_onion, LocalHTLCFailureReason};
52// Older rustc (which we support) refuses to let us call the get_payment_preimage_hash!() macro
53// without the node parameter being mut. This is incorrect, and thus newer rustcs will complain
54// about an unnecessary mut. Thus, we silence the unused_mut warning in two test modules below.
55
56#[cfg(fuzzing)]
57pub use onion_utils::decode_fulfill_attribution_data;
58#[cfg(fuzzing)]
59pub use onion_utils::process_onion_failure;
60
61#[cfg(fuzzing)]
62pub use onion_utils::AttributionData;
63
64#[cfg(test)]
65#[allow(unused_mut)]
66mod async_payments_tests;
67#[cfg(test)]
68#[allow(unused_mut)]
69mod async_signer_tests;
70#[cfg(test)]
71#[allow(unused_mut)]
72mod blinded_payment_tests;
73#[cfg(test)]
74#[allow(unused_mut)]
75pub mod bolt11_payment_tests;
76#[cfg(test)]
77#[allow(unused_mut)]
78mod chanmon_update_fail_tests;
79#[cfg(test)]
80#[allow(unused_mut)]
81mod channel_open_tests;
82#[cfg(test)]
83#[allow(unused_mut)]
84mod channel_type_tests;
85#[cfg(test)]
86#[allow(unused_mut)]
87mod dual_funding_tests;
88#[cfg(any(test, feature = "_externalize_tests"))]
89#[allow(unused_mut)]
90pub mod functional_tests;
91#[cfg(any(test, feature = "_externalize_tests"))]
92#[allow(unused_mut)]
93pub mod htlc_reserve_unit_tests;
94#[cfg(test)]
95#[allow(unused_mut)]
96mod max_payment_path_len_tests;
97#[cfg(test)]
98#[allow(unused_mut)]
99mod monitor_tests;
100#[cfg(test)]
101#[allow(unused_mut)]
102mod offers_tests;
103#[cfg(test)]
104#[allow(unused_mut)]
105mod onion_route_tests;
106#[cfg(test)]
107#[allow(unused_mut)]
108mod payment_tests;
109#[cfg(test)]
110#[allow(unused_mut)]
111mod priv_short_conf_tests;
112#[cfg(test)]
113mod quiescence_tests;
114#[cfg(test)]
115#[allow(unused_mut)]
116mod reload_tests;
117#[cfg(test)]
118#[allow(unused_mut)]
119mod reorg_tests;
120#[cfg(test)]
121#[allow(unused_mut)]
122mod shutdown_tests;
123#[cfg(any(feature = "_test_utils", test))]
124pub mod splicing_tests;
125#[cfg(any(test, feature = "_externalize_tests"))]
126#[allow(unused_mut)]
127pub mod update_fee_tests;
128#[cfg(test)]
129mod zero_fee_commitment_tests;
130
131pub use self::peer_channel_encryptor::LN_MAX_MSG_LEN;