//! @brief Example Rust-based BPF program that issues a cross-program-invocation use solana_sdk::{ instruction::{AccountMeta, Instruction}, pubkey::Pubkey, }; pub fn create_instruction( program_id: Pubkey, arguments: &[(&Pubkey, bool, bool)], data: Vec, ) -> Instruction { let accounts = arguments .iter() .map(|(key, is_writable, is_signer)| { if *is_writable { AccountMeta::new(**key, *is_signer) } else { AccountMeta::new_readonly(**key, *is_signer) } }) .collect(); Instruction { program_id, accounts, data, } }