solana_transaction_context/
lib.rs1#![cfg(feature = "agave-unstable-api")]
2#![deny(clippy::indexing_slicing)]
4#![cfg_attr(docsrs, feature(doc_cfg))]
5
6pub mod instruction;
7pub mod instruction_accounts;
8pub mod transaction_accounts;
9mod vm_addresses;
10pub mod vm_slice;
11
12pub mod transaction;
13
14pub const MAX_ACCOUNTS_PER_TRANSACTION: usize = 256;
15pub const MAX_ACCOUNTS_PER_INSTRUCTION: usize = 255;
18pub const MAX_INSTRUCTION_DATA_LEN: usize = 10 * 1024;
19pub const MAX_ACCOUNT_DATA_LEN: u64 = 10 * 1024 * 1024;
20pub const MAX_ACCOUNT_DATA_GROWTH_PER_TRANSACTION: i64 = MAX_ACCOUNT_DATA_LEN as i64 * 2;
24pub const MAX_ACCOUNT_DATA_GROWTH_PER_INSTRUCTION: usize = 10 * 1_024;
25pub const MAX_INSTRUCTION_TRACE_LENGTH: usize = 64;
27
28#[cfg(test)]
29static_assertions::const_assert_eq!(
30 MAX_ACCOUNTS_PER_INSTRUCTION,
31 solana_program_entrypoint::NON_DUP_MARKER as usize,
32);
33#[cfg(test)]
34static_assertions::const_assert_eq!(
35 MAX_ACCOUNT_DATA_LEN,
36 solana_system_interface::MAX_PERMITTED_DATA_LENGTH,
37);
38#[cfg(test)]
39static_assertions::const_assert_eq!(
40 MAX_ACCOUNT_DATA_GROWTH_PER_TRANSACTION,
41 solana_system_interface::MAX_PERMITTED_ACCOUNTS_DATA_ALLOCATIONS_PER_TRANSACTION,
42);
43#[cfg(test)]
44static_assertions::const_assert_eq!(
45 MAX_ACCOUNT_DATA_GROWTH_PER_INSTRUCTION,
46 solana_account_info::MAX_PERMITTED_DATA_INCREASE,
47);
48
49pub type IndexOfAccount = u16;