1#[cfg(feature = "cch")]
18pub mod cch;
19pub mod channel;
20pub mod config;
21pub mod gen;
22pub mod invoice;
23pub mod network;
24pub mod onion;
25pub mod payment;
26pub mod primitives;
27pub mod protocol;
28pub mod schema;
29pub mod serde_utils;
30
31#[cfg(feature = "sample")]
32pub mod sample;
33
34#[cfg(feature = "cch")]
35pub use cch::{CchInvoice, CchOrder, CchOrderStatus};
36pub use channel::*;
37pub use config::*;
38pub use invoice::*;
39pub use network::{HopRequire, PersistentNetworkActorState};
40pub use onion::*;
41pub use payment::*;
42pub use primitives::{Hash256, NodeId, Privkey, Pubkey};
43pub use protocol::*;
44
45#[cfg(feature = "watchtower")]
46pub use watchtower::{ChannelData, RevocationData, SettlementData, SettlementTlc};
47
48#[cfg(feature = "watchtower")]
49pub mod watchtower;
50
51pub use serde_utils::{
52 duration_hex, from_hex, to_hex, CompactSignatureAsBytes, EntityHex, PartialSignatureAsBytes,
53 PubNonceAsBytes, SliceBase58, SliceHex, SliceHexNoPrefix, U128Hex, U16Hex, U32Hex, U64Hex,
54};
55
56pub use tentacle_multiaddr::Multiaddr;
57
58#[cfg(not(target_arch = "wasm32"))]
59pub(crate) use std::time as crate_time;
60#[cfg(target_arch = "wasm32")]
61pub(crate) use web_time as crate_time;
62
63pub fn now_timestamp_as_millis_u64() -> u64 {
65 crate_time::SystemTime::now()
66 .duration_since(crate_time::UNIX_EPOCH)
67 .expect("Duration since unix epoch")
68 .as_millis() as u64
69}
70
71pub fn deserialize<'a, T: serde::Deserialize<'a>>(bytes: &'a [u8]) -> Result<T, bincode::Error> {
86 bincode::deserialize(bytes)
87}
88
89pub fn serialize<T: serde::Serialize>(value: &T) -> Result<Vec<u8>, bincode::Error> {
93 bincode::serialize(value)
94}