pub use solana_instruction::{
error::InstructionError, AccountMeta, Instruction, ProcessedSiblingInstruction,
TRANSACTION_LEVEL_STACK_HEIGHT,
};
pub fn get_processed_sibling_instruction(index: usize) -> Option<Instruction> {
#[cfg(target_os = "solana")]
{
solana_instruction::syscalls::get_processed_sibling_instruction(index)
}
#[cfg(not(target_os = "solana"))]
{
crate::program_stubs::sol_get_processed_sibling_instruction(index)
}
}
pub fn get_stack_height() -> usize {
#[cfg(target_os = "solana")]
{
solana_instruction::syscalls::get_stack_height()
}
#[cfg(not(target_os = "solana"))]
{
crate::program_stubs::sol_get_stack_height() as usize
}
}
#[doc(hidden)]
pub fn checked_add(a: u64, b: u64) -> Result<u64, InstructionError> {
a.checked_add(b).ok_or(InstructionError::InsufficientFunds)
}