solana_svm_transaction/svm_message/
sanitized_message.rsuse {
crate::{
instruction::SVMInstruction, message_address_table_lookup::SVMMessageAddressTableLookup,
svm_message::SVMMessage,
},
solana_sdk::{
hash::Hash,
message::{AccountKeys, SanitizedMessage},
pubkey::Pubkey,
},
};
impl SVMMessage for SanitizedMessage {
fn num_total_signatures(&self) -> u64 {
SanitizedMessage::num_total_signatures(self)
}
fn num_write_locks(&self) -> u64 {
SanitizedMessage::num_write_locks(self)
}
fn recent_blockhash(&self) -> &Hash {
SanitizedMessage::recent_blockhash(self)
}
fn num_instructions(&self) -> usize {
SanitizedMessage::instructions(self).len()
}
fn instructions_iter(&self) -> impl Iterator<Item = SVMInstruction> {
SanitizedMessage::instructions(self)
.iter()
.map(SVMInstruction::from)
}
fn program_instructions_iter(&self) -> impl Iterator<Item = (&Pubkey, SVMInstruction)> {
SanitizedMessage::program_instructions_iter(self)
.map(|(pubkey, ix)| (pubkey, SVMInstruction::from(ix)))
}
fn account_keys(&self) -> AccountKeys {
SanitizedMessage::account_keys(self)
}
fn fee_payer(&self) -> &Pubkey {
SanitizedMessage::fee_payer(self)
}
fn is_writable(&self, index: usize) -> bool {
SanitizedMessage::is_writable(self, index)
}
fn is_signer(&self, index: usize) -> bool {
SanitizedMessage::is_signer(self, index)
}
fn is_invoked(&self, key_index: usize) -> bool {
SanitizedMessage::is_invoked(self, key_index)
}
fn num_lookup_tables(&self) -> usize {
SanitizedMessage::message_address_table_lookups(self).len()
}
fn message_address_table_lookups(&self) -> impl Iterator<Item = SVMMessageAddressTableLookup> {
SanitizedMessage::message_address_table_lookups(self)
.iter()
.map(SVMMessageAddressTableLookup::from)
}
}