diff --git a/sdk/program/src/message.rs b/sdk/program/src/message.rs index c58442500f..b72e865d90 100644 --- a/sdk/program/src/message.rs +++ b/sdk/program/src/message.rs @@ -280,6 +280,16 @@ impl Message { bincode::serialize(self).unwrap() } + pub fn program_id(&self, instruction_index: usize) -> Option<&Pubkey> { + Some( + &self.account_keys[self.instructions.get(instruction_index)?.program_id_index as usize], + ) + } + + pub fn program_index(&self, instruction_index: usize) -> Option { + Some(self.instructions.get(instruction_index)?.program_id_index as usize) + } + pub fn program_ids(&self) -> Vec<&Pubkey> { self.instructions .iter()