solana_program/
instruction.rs1pub use {
2 crate::message::compiled_instruction::CompiledInstruction,
3 solana_instruction::{
4 error::InstructionError, AccountMeta, Instruction, ProcessedSiblingInstruction,
5 TRANSACTION_LEVEL_STACK_HEIGHT,
6 },
7};
8
9pub fn get_processed_sibling_instruction(index: usize) -> Option<Instruction> {
22 #[cfg(target_os = "solana")]
23 {
24 solana_instruction::syscalls::get_processed_sibling_instruction(index)
25 }
26
27 #[cfg(not(target_os = "solana"))]
28 {
29 crate::program_stubs::sol_get_processed_sibling_instruction(index)
30 }
31}
32
33pub fn get_stack_height() -> usize {
37 #[cfg(target_os = "solana")]
38 {
39 solana_instruction::syscalls::get_stack_height()
40 }
41
42 #[cfg(not(target_os = "solana"))]
43 {
44 crate::program_stubs::sol_get_stack_height() as usize
45 }
46}
47
48#[doc(hidden)]
53pub fn checked_add(a: u64, b: u64) -> Result<u64, InstructionError> {
54 a.checked_add(b).ok_or(InstructionError::InsufficientFunds)
55}