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#[deprecated(since = "4.3.0", note = "Use WireInstructionHeader instead")]
21pub type InstructionHeader = (u8, u8, [u8; 2]);
22
23#[cfg_attr(feature = "wincode", derive(wincode::SchemaRead, wincode::SchemaWrite))]
24#[cfg_attr(feature = "wincode", wincode(assert_zero_copy))]
25#[repr(C)]
26pub struct WireInstructionHeader {
27 pub program_id_index: u8,
28 pub num_accounts: u8,
29 pub data_len: [u8; 2],
30}
31
32pub const V1_PREFIX: u8 = MESSAGE_VERSION_PREFIX | 1;
34
35pub const MAX_TRANSACTION_SIZE: usize = 4096;
37
38pub const MAX_ADDRESSES: u8 = 64;
40
41pub const MAX_INSTRUCTIONS: u8 = 64;
43
44pub const MAX_SIGNATURES: u8 = 12;
46
47pub const DEFAULT_HEAP_SIZE: u32 = MIN_HEAP_SIZE;
51
52pub const MIN_HEAP_SIZE: u32 = 32 * 1024;
54
55pub const MAX_HEAP_SIZE: u32 = 256 * 1024;
57
58pub 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;