solana_sdk/
simple_vote_transaction_checker.rs1#![cfg(feature = "full")]
2
3use crate::{message::VersionedMessage, transaction::SanitizedVersionedTransaction};
4
5pub fn is_simple_vote_transaction(
11 sanitized_versioned_transaction: &SanitizedVersionedTransaction,
12) -> bool {
13 let signatures_count = sanitized_versioned_transaction.signatures.len();
14 let is_legacy_message = matches!(
15 sanitized_versioned_transaction.message.message,
16 VersionedMessage::Legacy(_)
17 );
18 let mut instructions = sanitized_versioned_transaction
19 .message
20 .program_instructions_iter();
21 signatures_count < 3
22 && is_legacy_message
23 && instructions
24 .next()
25 .xor(instructions.next())
26 .map(|(program_id, _ix)| program_id == &solana_sdk::vote::program::id())
27 .unwrap_or(false)
28}