use { solana_sdk::{instruction::Instruction, pubkey::Pubkey}, spl_memo::id, }; pub trait WithMemo { fn with_memo>(self, memo: Option) -> Self; } impl WithMemo for Vec { fn with_memo>(mut self, memo: Option) -> Self { if let Some(memo) = &memo { let memo = memo.as_ref(); let memo_ix = Instruction { program_id: Pubkey::new(&id().to_bytes()), accounts: vec![], data: memo.as_bytes().to_vec(), }; self.push(memo_ix); } self } }