#![cfg_attr(docsrs, feature(doc_cfg))]
#![cfg_attr(
test,
allow(
unknown_lints,
clippy::unused_async_trait_impl,
reason = "in-crate mock impls of AFIT traits have no .await"
)
)]
#[cfg(not(any(feature = "client", feature = "facilitator")))]
use base64 as _;
#[cfg(feature = "telemetry")]
use tracing_core as _;
pub const MAX_TRANSACTION_GROUP_SIZE: usize = 16;
pub const MAX_REASONABLE_FEE_PER_TXN: u64 = 5_000;
pub const DEFAULT_VALIDITY_ROUNDS: u64 = 1_000;
pub const DEFAULT_WAIT_ROUNDS: u32 = 10;
pub const DEFAULT_TOKEN_DECIMALS: u8 = 6;
#[must_use]
pub fn max_reasonable_group_fee(group_size: usize) -> u64 {
let size = u64::try_from(group_size).unwrap_or(u64::MAX);
MAX_REASONABLE_FEE_PER_TXN.saturating_mul(size)
}
pub mod chain;
pub mod exact;
mod networks;
#[cfg(any(feature = "client", feature = "facilitator"))]
pub use chain::AlgodClient;
#[cfg(feature = "facilitator")]
pub use chain::AlgorandChainProvider;
#[cfg(any(feature = "client", feature = "facilitator"))]
pub use chain::AlgorandSigner;
pub use exact::AlgorandExact;
#[cfg(feature = "client")]
pub use exact::client::AlgorandExactClient;
pub use networks::*;