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::{
36 CchInvoice, CchOrder, CchOrderStatus, CchReceiveBtcOrderCreation, CchSendBtcOrderCreation,
37};
38pub use channel::*;
39pub use config::*;
40pub use invoice::*;
41pub use network::{HopRequire, PersistentNetworkActorState};
42pub use onion::*;
43pub use payment::*;
44pub use primitives::{Hash256, NodeId, Privkey, Pubkey};
45pub use protocol::*;
46
47#[cfg(feature = "watchtower")]
48pub use watchtower::{ChannelData, RevocationData, SettlementData, SettlementTlc};
49
50#[cfg(feature = "watchtower")]
51pub mod watchtower;
52
53pub use serde_utils::{
54 duration_hex, from_hex, to_hex, CompactSignatureAsBytes, EntityHex, PartialSignatureAsBytes,
55 PubNonceAsBytes, SliceBase58, SliceHex, SliceHexNoPrefix, U128Hex, U16Hex, U32Hex, U64Hex,
56};
57
58pub use tentacle_multiaddr::Multiaddr;
59
60#[cfg(not(target_arch = "wasm32"))]
61pub(crate) use std::time as crate_time;
62#[cfg(target_arch = "wasm32")]
63pub(crate) use web_time as crate_time;
64
65pub fn now_timestamp_as_millis_u64() -> u64 {
67 crate_time::SystemTime::now()
68 .duration_since(crate_time::UNIX_EPOCH)
69 .expect("Duration since unix epoch")
70 .as_millis() as u64
71}
72
73pub fn deserialize<'a, T: serde::Deserialize<'a>>(bytes: &'a [u8]) -> Result<T, bincode::Error> {
88 bincode::deserialize(bytes)
89}
90
91pub fn serialize<T: serde::Serialize>(value: &T) -> Result<Vec<u8>, bincode::Error> {
95 bincode::serialize(value)
96}