#![cfg_attr(doctest, doc=include_str!("../README.md"))]
mod blobs;
mod config;
mod download;
mod export;
mod import;
mod protocol;
use iroh::{NodeAddr as IrohNodeAddr, NodeId};
use iroh_blobs::store;
pub use blobs::Blobs;
pub use config::Config;
pub use download::DownloadBlobEvent;
pub use import::ImportBlobEvent;
use p2panda_net::NodeAddress;
pub use protocol::{BLOBS_ALPN, BlobsProtocol};
pub type MemoryStore = store::mem::Store;
pub type FilesystemStore = store::fs::Store;
pub(crate) fn from_node_addr(addr: NodeAddress) -> IrohNodeAddr {
let node_id = NodeId::from_bytes(addr.public_key.as_bytes()).expect("invalid public key");
let mut node_addr =
IrohNodeAddr::new(node_id).with_direct_addresses(addr.direct_addresses.to_vec());
if let Some(url) = addr.relay_url {
node_addr = node_addr.with_relay_url(url.into());
}
node_addr
}