pub enum SanitizedMessage {
Legacy(LegacyMessage<'static>),
V0(LoadedMessage<'static>),
}
Expand description
Sanitized message of a transaction.
Variants§
Legacy(LegacyMessage<'static>)
Sanitized legacy message
V0(LoadedMessage<'static>)
Sanitized version #0 message with dynamically loaded addresses
Implementations§
Source§impl SanitizedMessage
impl SanitizedMessage
Sourcepub fn try_new(
sanitized_msg: SanitizedVersionedMessage,
address_loader: impl AddressLoader,
reserved_account_keys: &HashSet<Pubkey>,
) -> Result<SanitizedMessage, SanitizeMessageError>
pub fn try_new( sanitized_msg: SanitizedVersionedMessage, address_loader: impl AddressLoader, reserved_account_keys: &HashSet<Pubkey>, ) -> Result<SanitizedMessage, SanitizeMessageError>
Create a sanitized message from a sanitized versioned message. If the input message uses address tables, attempt to look up the address for each table index.
Sourcepub fn try_from_legacy_message(
message: Message,
reserved_account_keys: &HashSet<Pubkey>,
) -> Result<SanitizedMessage, SanitizeMessageError>
pub fn try_from_legacy_message( message: Message, reserved_account_keys: &HashSet<Pubkey>, ) -> Result<SanitizedMessage, SanitizeMessageError>
Create a sanitized legacy message
Sourcepub fn has_duplicates(&self) -> bool
pub fn has_duplicates(&self) -> bool
Return true if this message contains duplicate account keys
Sourcepub fn header(&self) -> &MessageHeader
pub fn header(&self) -> &MessageHeader
Message header which identifies the number of signer and writable or readonly accounts
Sourcepub fn legacy_message(&self) -> Option<&Message>
pub fn legacy_message(&self) -> Option<&Message>
Returns a legacy message if this sanitized message wraps one
Sourcepub fn recent_blockhash(&self) -> &Hash
pub fn recent_blockhash(&self) -> &Hash
The hash of a recent block, used for timing out a transaction
Sourcepub fn instructions(&self) -> &[CompiledInstruction]
pub fn instructions(&self) -> &[CompiledInstruction]
Program instructions that will be executed in sequence and committed in one atomic transaction if all succeed.
Sourcepub fn program_instructions_iter(
&self,
) -> impl Iterator<Item = (&Pubkey, &CompiledInstruction)>
pub fn program_instructions_iter( &self, ) -> impl Iterator<Item = (&Pubkey, &CompiledInstruction)>
Program instructions iterator which includes each instruction’s program id.
Sourcepub fn account_keys(&self) -> AccountKeys<'_>
pub fn account_keys(&self) -> AccountKeys<'_>
Returns the list of account keys that are loaded for this message.
Sourcepub fn message_address_table_lookups(&self) -> &[MessageAddressTableLookup]
pub fn message_address_table_lookups(&self) -> &[MessageAddressTableLookup]
Returns the list of account keys used for account lookup tables.
Sourcepub fn is_key_passed_to_program(&self, key_index: usize) -> bool
👎Deprecated since 2.0.0: Please use is_instruction_account
instead
pub fn is_key_passed_to_program(&self, key_index: usize) -> bool
is_instruction_account
insteadReturns true if the account at the specified index is an input to some program instruction in this message.
Sourcepub fn is_instruction_account(&self, key_index: usize) -> bool
pub fn is_instruction_account(&self, key_index: usize) -> bool
Returns true if the account at the specified index is an input to some program instruction in this message.
Sourcepub fn is_invoked(&self, key_index: usize) -> bool
pub fn is_invoked(&self, key_index: usize) -> bool
Returns true if the account at the specified index is invoked as a program in this message.
Sourcepub fn is_non_loader_key(&self, key_index: usize) -> bool
👎Deprecated since 2.0.0: Please use is_invoked
and is_instruction_account
instead
pub fn is_non_loader_key(&self, key_index: usize) -> bool
is_invoked
and is_instruction_account
insteadReturns true if the account at the specified index is not invoked as a program or, if invoked, is passed to a program.
Sourcepub fn is_writable(&self, index: usize) -> bool
pub fn is_writable(&self, index: usize) -> bool
Returns true if the account at the specified index is writable by the instructions in this message.
Sourcepub fn is_signer(&self, index: usize) -> bool
pub fn is_signer(&self, index: usize) -> bool
Returns true if the account at the specified index signed this message.
Sourcepub fn num_readonly_accounts(&self) -> usize
pub fn num_readonly_accounts(&self) -> usize
Return the number of readonly accounts loaded by this message.
Sourcepub fn decompile_instructions(&self) -> Vec<BorrowedInstruction<'_>>
pub fn decompile_instructions(&self) -> Vec<BorrowedInstruction<'_>>
Decompile message instructions without cloning account keys
Sourcepub fn is_upgradeable_loader_present(&self) -> bool
pub fn is_upgradeable_loader_present(&self) -> bool
Inspect all message keys for the bpf upgradeable loader
Sourcepub fn get_ix_signers(&self, ix_index: usize) -> impl Iterator<Item = &Pubkey>
pub fn get_ix_signers(&self, ix_index: usize) -> impl Iterator<Item = &Pubkey>
Get a list of signers for the instruction at the given index
Sourcepub fn get_durable_nonce(&self) -> Option<&Pubkey>
pub fn get_durable_nonce(&self) -> Option<&Pubkey>
If the message uses a durable nonce, return the pubkey of the nonce account
pub fn num_signatures(&self) -> u64
SanitizedMessage::num_total_signatures
instead.Sourcepub fn num_total_signatures(&self) -> u64
pub fn num_total_signatures(&self) -> u64
Returns the total number of signatures in the message. This includes required transaction signatures as well as any pre-compile signatures that are attached in instructions.
Sourcepub fn num_write_locks(&self) -> u64
pub fn num_write_locks(&self) -> u64
Returns the number of requested write-locks in this message. This does not consider if write-locks are demoted.
Sourcepub fn get_signature_details(&self) -> TransactionSignatureDetails
pub fn get_signature_details(&self) -> TransactionSignatureDetails
return detailed signature counts
Trait Implementations§
Source§impl Clone for SanitizedMessage
impl Clone for SanitizedMessage
Source§fn clone(&self) -> SanitizedMessage
fn clone(&self) -> SanitizedMessage
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for SanitizedMessage
impl Debug for SanitizedMessage
Source§impl PartialEq for SanitizedMessage
impl PartialEq for SanitizedMessage
impl Eq for SanitizedMessage
impl StructuralPartialEq for SanitizedMessage
Auto Trait Implementations§
impl Freeze for SanitizedMessage
impl RefUnwindSafe for SanitizedMessage
impl Send for SanitizedMessage
impl Sync for SanitizedMessage
impl Unpin for SanitizedMessage
impl UnwindSafe for SanitizedMessage
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more