solana_message/versions/v1/
mod.rs1use crate::{MessageHeader, MESSAGE_VERSION_PREFIX};
2
3#[cfg(feature = "std")]
4mod cached;
5mod config;
6mod error;
7mod message;
8
9#[cfg(feature = "std")]
10pub use cached::*;
11use solana_hash::Hash;
12pub use {config::*, error::*, message::*};
13
14#[cfg_attr(feature = "wincode", derive(wincode::SchemaRead, wincode::SchemaWrite))]
15#[cfg_attr(feature = "wincode", wincode(assert_zero_copy))]
16#[repr(C)]
17pub struct WireInstructionHeader {
18 pub program_id_index: u8,
19 pub num_accounts: u8,
20 pub data_len: [u8; 2],
21}
22
23pub const V1_PREFIX: u8 = MESSAGE_VERSION_PREFIX | 1;
25
26pub const MAX_TRANSACTION_SIZE: usize = 4096;
28
29pub const MAX_ADDRESSES: u8 = 64;
31
32pub const MAX_INSTRUCTIONS: u8 = 64;
34
35pub const MAX_SIGNATURES: u8 = 12;
37
38pub const DEFAULT_HEAP_SIZE: u32 = MIN_HEAP_SIZE;
42
43pub const MIN_HEAP_SIZE: u32 = 32 * 1024;
45
46pub const MAX_HEAP_SIZE: u32 = 256 * 1024;
48
49pub 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;