#![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 DEFAULT_FT_TRANSFER_GAS: u64 = 30_000_000_000_000;
pub const DEFAULT_MAX_SPONSORED_GAS: u64 = 100_000_000_000_000;
pub const ONE_YOCTO: u128 = 1;
pub const ESTIMATED_BLOCK_SECONDS: u64 = 1;
pub const NONCE_RANGE_MULTIPLIER: u64 = 1_000_000;
pub const EMPTY_CONTRACT_CODE_HASH: &str = "11111111111111111111111111111111";
pub const FT_TRANSFER_METHOD: &str = "ft_transfer";
pub const DEFAULT_TOKEN_DECIMALS: u8 = 6;
pub mod chain;
pub mod exact;
mod networks;
#[cfg(any(feature = "client", feature = "facilitator"))]
pub use chain::NearJsonRpc;
#[cfg(feature = "facilitator")]
pub use chain::{NearChainProvider, NearRelayer};
pub use exact::NearExact;
#[cfg(feature = "client")]
pub use exact::client::{NearExactClient, NearSigner};
pub use networks::*;
#[must_use]
pub const fn timeout_blocks(max_timeout_seconds: u64) -> u64 {
let blocks = max_timeout_seconds.div_ceil(ESTIMATED_BLOCK_SECONDS);
if blocks == 0 { 1 } else { blocks }
}