#![deny(unsafe_code)]
#![warn(missing_docs)]
#![warn(clippy::all)]
#![warn(clippy::pedantic)]
#![cfg_attr(not(feature = "logging"), allow(unused_variables, unused_assignments))]
pub mod chunk;
pub mod chunk_protocol;
pub mod data_types;
pub mod devnet_manifest;
pub mod error;
pub mod logging;
pub mod payment;
pub use chunk::{
ChunkGetRequest, ChunkGetResponse, ChunkMessage, ChunkMessageBody, ChunkPutRequest,
ChunkPutResponse, ChunkQuoteRequest, ChunkQuoteResponse, MerkleCandidateQuoteRequest,
MerkleCandidateQuoteResponse, ProtocolError, XorName, CHUNK_PROTOCOL_ID, CLOSE_GROUP_MAJORITY,
CLOSE_GROUP_SIZE, DATA_TYPE_CHUNK, MAX_CHUNK_SIZE, MAX_WIRE_MESSAGE_SIZE, PROOF_TAG_MERKLE,
PROOF_TAG_SINGLE_NODE, PROTOCOL_VERSION, XORNAME_LEN,
};
pub use chunk_protocol::send_and_await_chunk_response;
pub use data_types::{compute_address, peer_id_to_xor_name, xor_distance, ChunkStats, DataChunk};
pub use devnet_manifest::{DevnetEvmInfo, DevnetManifest};
pub use error::{Error, Result};
pub use payment::{
deserialize_merkle_proof, deserialize_proof, detect_proof_type, serialize_merkle_proof,
serialize_single_node_proof, verify_merkle_candidate_signature, verify_quote_content,
verify_quote_signature, PaymentProof, ProofType, QuotePaymentInfo, SingleNodePayment,
};
pub mod evm {
pub use evmlib::common::{Address, Amount, QuoteHash, TxHash, U256};
pub use evmlib::merkle_batch_payment::PoolCommitment;
pub use evmlib::merkle_payments::{
MerklePaymentCandidateNode, MerklePaymentCandidatePool, MerklePaymentProof,
MerklePaymentVerificationError, MerkleTree, MidpointProof, CANDIDATES_PER_POOL, MAX_LEAVES,
MERKLE_PAYMENT_EXPIRATION,
};
pub use evmlib::wallet::{PayForQuotesError, Wallet};
pub use evmlib::{
CustomNetwork, EncodedPeerId, Network, PaymentQuote, ProofOfPayment, RewardsAddress,
};
pub mod testnet {
pub use evmlib::testnet::Testnet;
}
pub mod contract {
pub use evmlib::contract::payment_vault;
}
pub mod utils {
pub use evmlib::transaction_config::TransactionConfig;
pub use evmlib::utils::{dummy_address, dummy_hash, http_provider};
}
}
pub mod transport {
pub use saorsa_core::identity::{NodeIdentity, PeerId};
pub use saorsa_core::{
IPDiversityConfig, MlDsa65, MultiAddr, NodeConfig as CoreNodeConfig, NodeMode, P2PEvent,
P2PNode,
};
}
pub mod pqc {
pub mod ops {
pub use saorsa_pqc::pqc::types::{MlDsaPublicKey, MlDsaSecretKey, MlDsaSignature};
pub use saorsa_pqc::pqc::MlDsaOperations;
}
pub mod api {
pub use saorsa_pqc::api::sig::{ml_dsa_65, MlDsaPublicKey, MlDsaSignature, MlDsaVariant};
}
}