fn get_optional_pubkey<'a>( transaction_context: &'a TransactionContext, instruction_context: &'a InstructionContext, instruction_account_index: IndexOfAccount, should_be_signer: bool ) -> Result<Option<&'a Pubkey>, InstructionError>