use crate::{MessageHeader, MESSAGE_VERSION_PREFIX};
#[cfg(feature = "std")]
mod cached;
mod config;
mod error;
mod message;
#[cfg(feature = "std")]
pub use cached::*;
use solana_hash::Hash;
pub use {config::*, error::*, message::*};
#[deprecated(since = "4.3.0", note = "Use WireInstructionHeader instead")]
pub type InstructionHeader = (u8, u8, [u8; 2]);
#[cfg_attr(feature = "wincode", derive(wincode::SchemaRead, wincode::SchemaWrite))]
#[cfg_attr(feature = "wincode", wincode(assert_zero_copy))]
#[repr(C)]
pub struct WireInstructionHeader {
pub program_id_index: u8,
pub num_accounts: u8,
pub data_len: [u8; 2],
}
pub const V1_PREFIX: u8 = MESSAGE_VERSION_PREFIX | 1;
pub const MAX_TRANSACTION_SIZE: usize = 4096;
pub const MAX_ADDRESSES: u8 = 64;
pub const MAX_INSTRUCTIONS: u8 = 64;
pub const MAX_SIGNATURES: u8 = 12;
pub const DEFAULT_HEAP_SIZE: u32 = MIN_HEAP_SIZE;
pub const MIN_HEAP_SIZE: u32 = 32 * 1024;
pub const MAX_HEAP_SIZE: u32 = 256 * 1024;
pub const FIXED_HEADER_SIZE: usize = size_of::<MessageHeader>() + size_of::<TransactionConfigMask>() + size_of::<Hash>() + size_of::<u8>() + size_of::<u8>();
pub const SIGNATURE_SIZE: usize = 64;