X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=lightning%2Fsrc%2Fln%2Fmod.rs;h=3a0efd38690946cd5a7f48da324449d52f13fe2c;hb=e94647ca4ebc63be4a8164804d08cf37e4655d6c;hp=c2190d62a115ffc3eb37cbc42bff8d85b0a8c2a4;hpb=4e5381a50fa524cb183a3d92dee05cb4f2950255;p=rust-lightning diff --git a/lightning/src/ln/mod.rs b/lightning/src/ln/mod.rs index c2190d62..3a0efd38 100644 --- a/lightning/src/ln/mod.rs +++ b/lightning/src/ln/mod.rs @@ -7,19 +7,7 @@ // You may not use this file except in accordance with one or both of these // licenses. -//! High level lightning structs and impls live here. -//! -//! You probably want to create a [`ChannelManager`], and a [`P2PGossipSync`] first. -//! Then, you probably want to pass them both on to a peer_handler::PeerManager and use that to -//! create/manage connections and call get_and_clear_pending_events after each action, handling -//! them appropriately. -//! -//! When you want to open/close a channel or send a payment, call into your [`ChannelManager`] and -//! when you want to learn things about the network topology (eg get a route for sending a payment), -//! call into your [`P2PGossipSync`]. -//! -//! [`ChannelManager`]: channelmanager::ChannelManager -//! [`P2PGossipSync`]: crate::routing::gossip::P2PGossipSync +//! Implementations of various parts of the Lightning protocol are in this module. #[cfg(any(test, feature = "_test_utils"))] #[macro_use] @@ -44,6 +32,7 @@ pub mod channel; pub(crate) mod channel; pub(crate) mod onion_utils; +mod outbound_payment; pub mod wire; // Older rustc (which we support) refuses to let us call the get_payment_preimage_hash!() macro @@ -67,6 +56,9 @@ mod chanmon_update_fail_tests; mod reorg_tests; #[cfg(test)] #[allow(unused_mut)] +mod reload_tests; +#[cfg(test)] +#[allow(unused_mut)] mod onion_route_tests; #[cfg(test)] #[allow(unused_mut)] @@ -78,19 +70,24 @@ mod shutdown_tests; pub use self::peer_channel_encryptor::LN_MAX_MSG_LEN; /// payment_hash type, use to cross-lock hop -/// (C-not exported) as we just use [u8; 32] directly +/// +/// This is not exported to bindings users as we just use [u8; 32] directly #[derive(Hash, Copy, Clone, PartialEq, Eq, Debug)] -pub struct PaymentHash(pub [u8;32]); +#[cfg_attr(test, derive(PartialOrd, Ord))] +pub struct PaymentHash(pub [u8; 32]); /// payment_preimage type, use to route payment between hop -/// (C-not exported) as we just use [u8; 32] directly +/// +/// This is not exported to bindings users as we just use [u8; 32] directly #[derive(Hash, Copy, Clone, PartialEq, Eq, Debug)] -pub struct PaymentPreimage(pub [u8;32]); +#[cfg_attr(test, derive(PartialOrd, Ord))] +pub struct PaymentPreimage(pub [u8; 32]); /// payment_secret type, use to authenticate sender to the receiver and tie MPP HTLCs together -/// (C-not exported) as we just use [u8; 32] directly +/// +/// This is not exported to bindings users as we just use [u8; 32] directly #[derive(Hash, Copy, Clone, PartialEq, Eq, Debug)] -pub struct PaymentSecret(pub [u8;32]); +pub struct PaymentSecret(pub [u8; 32]); -use prelude::*; +use crate::prelude::*; use bitcoin::bech32; use bitcoin::bech32::{Base32Len, FromBase32, ToBase32, WriteBase32, u5};