// Copyright (c) Subzero Labs, Inc.
// SPDX-License-Identifier: Apache-2.0

//! Constants used throughout the API validation

/// Minimum transaction size in bytes
pub const MIN_TRANSACTION_SIZE: usize = 10;

/// Maximum transaction size in bytes (Solana limit)
pub const MAX_TRANSACTION_SIZE: usize = 1232;

/// Maximum possible lamports (500 million SOL * 1e9 lamports/SOL)
pub const MAX_LAMPORTS: u64 = 500_000_000_000_000_000;

/// Maximum airdrop amount in lamports (1000 SOL)
pub const MAX_AIRDROP_AMOUNT: u64 = 1_000_000_000_000;

/// Maximum limit for paginated requests
pub const MAX_PAGINATION_LIMIT: u64 = 1000;

/// Maximum nonce length in characters
pub const MAX_NONCE_LENGTH: usize = 64;

/// Minimum signature length in base58 characters
pub const MIN_SIGNATURE_LENGTH: usize = 87;

/// Maximum signature length in base58 characters
pub const MAX_SIGNATURE_LENGTH: usize = 88;

/// Minimum blockhash length in base58 characters
pub const MIN_BLOCKHASH_LENGTH: usize = 43;

/// Maximum blockhash length in base58 characters
pub const MAX_BLOCKHASH_LENGTH: usize = 44;
