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§
§impl SanitizedMessage
impl SanitizedMessage
pub fn try_new(
sanitized_msg: SanitizedVersionedMessage,
address_loader: impl AddressLoader
) -> Result<SanitizedMessage, SanitizeMessageError>
pub fn try_new( sanitized_msg: SanitizedVersionedMessage, address_loader: impl AddressLoader ) -> 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.
pub fn has_duplicates(&self) -> bool
pub fn has_duplicates(&self) -> bool
Return true if this message contains duplicate account keys
pub fn header(&self) -> &MessageHeader
pub fn header(&self) -> &MessageHeader
Message header which identifies the number of signer and writable or readonly accounts
pub fn legacy_message(&self) -> Option<&Message>
pub fn legacy_message(&self) -> Option<&Message>
Returns a legacy message if this sanitized message wraps one
pub fn recent_blockhash(&self) -> &Hash
pub fn recent_blockhash(&self) -> &Hash
The hash of a recent block, used for timing out a transaction
pub 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.
pub 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.
pub fn account_keys(&self) -> AccountKeys<'_>
pub fn account_keys(&self) -> AccountKeys<'_>
Returns the list of account keys that are loaded for this message.
pub 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.
pub 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.
pub fn is_non_loader_key(&self, key_index: usize) -> bool
pub fn is_non_loader_key(&self, key_index: usize) -> bool
Returns true if the account at the specified index is not invoked as a program or, if invoked, is passed to a program.
pub 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.
pub 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.
pub fn num_readonly_accounts(&self) -> usize
pub fn num_readonly_accounts(&self) -> usize
Return the number of readonly accounts loaded by this message.
pub fn decompile_instructions(&self) -> Vec<BorrowedInstruction<'_>>
pub fn decompile_instructions(&self) -> Vec<BorrowedInstruction<'_>>
Decompile message instructions without cloning account keys
pub fn is_upgradeable_loader_present(&self) -> bool
pub fn is_upgradeable_loader_present(&self) -> bool
Inspect all message keys for the bpf upgradeable loader
pub 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
pub 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
pub 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.
pub fn get_signature_details(&self) -> TransactionSignatureDetails
pub fn get_signature_details(&self) -> TransactionSignatureDetails
return detailed signature counts
Trait Implementations§
§impl Clone for SanitizedMessage
impl Clone for SanitizedMessage
§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 more§impl Debug for SanitizedMessage
impl Debug for SanitizedMessage
§impl PartialEq for SanitizedMessage
impl PartialEq for SanitizedMessage
§fn eq(&self, other: &SanitizedMessage) -> bool
fn eq(&self, other: &SanitizedMessage) -> bool
self
and other
values to be equal, and is used
by ==
.§impl TryFrom<Message> for SanitizedMessage
impl TryFrom<Message> for SanitizedMessage
§type Error = SanitizeMessageError
type Error = SanitizeMessageError
§fn try_from(
message: Message
) -> Result<SanitizedMessage, <SanitizedMessage as TryFrom<Message>>::Error>
fn try_from( message: Message ) -> Result<SanitizedMessage, <SanitizedMessage as TryFrom<Message>>::Error>
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
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
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