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