pub enum SanitizedMessage {
Legacy(LegacyMessage<'static>),
V0(LoadedMessage<'static>),
V1(CachedMessage<'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
V1(CachedMessage<'static>)
Sanitized version #1 message (4KB transactions, no address lookup tables)
Implementations§
Source§impl SanitizedMessage
impl SanitizedMessage
Sourcepub fn try_new(
sanitized_msg: SanitizedVersionedMessage,
address_loader: impl AddressLoader,
reserved_account_keys: &HashSet<Address>,
) -> Result<Self, SanitizeMessageError>
Available on non-target_os=solana only.
pub fn try_new( sanitized_msg: SanitizedVersionedMessage, address_loader: impl AddressLoader, reserved_account_keys: &HashSet<Address>, ) -> Result<Self, SanitizeMessageError>
target_os=solana only.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<Address>,
) -> Result<Self, SanitizeMessageError>
Available on non-target_os=solana only.
pub fn try_from_legacy_message( message: Message, reserved_account_keys: &HashSet<Address>, ) -> Result<Self, SanitizeMessageError>
target_os=solana only.Create a sanitized legacy message
Sourcepub fn has_duplicates(&self) -> bool
Available on non-target_os=solana only.
pub fn has_duplicates(&self) -> bool
target_os=solana only.Return true if this message contains duplicate account keys
Sourcepub fn header(&self) -> &MessageHeader
Available on non-target_os=solana only.
pub fn header(&self) -> &MessageHeader
target_os=solana only.Message header which identifies the number of signer and writable or readonly accounts
Sourcepub fn legacy_message(&self) -> Option<&Message>
Available on non-target_os=solana only.
pub fn legacy_message(&self) -> Option<&Message>
target_os=solana only.Returns a legacy message if this sanitized message wraps one
Sourcepub fn fee_payer(&self) -> &Address
Available on non-target_os=solana only.
pub fn fee_payer(&self) -> &Address
target_os=solana only.Returns the fee payer for the transaction
Sourcepub fn recent_blockhash(&self) -> &Hash
Available on non-target_os=solana only.
pub fn recent_blockhash(&self) -> &Hash
target_os=solana only.The hash of a recent block, used for timing out a transaction
Sourcepub fn instructions(&self) -> &[CompiledInstruction]
Available on non-target_os=solana only.
pub fn instructions(&self) -> &[CompiledInstruction]
target_os=solana only.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 = (&Address, &CompiledInstruction)> + Clone
Available on non-target_os=solana only.
pub fn program_instructions_iter( &self, ) -> impl Iterator<Item = (&Address, &CompiledInstruction)> + Clone
target_os=solana only.Program instructions iterator which includes each instruction’s program id.
Sourcepub fn static_account_keys(&self) -> &[Address]
Available on non-target_os=solana only.
pub fn static_account_keys(&self) -> &[Address]
target_os=solana only.Return the list of statically included account keys.
Sourcepub fn account_keys(&self) -> AccountKeys<'_>
Available on non-target_os=solana only.
pub fn account_keys(&self) -> AccountKeys<'_>
target_os=solana only.Returns the list of account keys that are loaded for this message.
Sourcepub fn message_address_table_lookups(&self) -> &[MessageAddressTableLookup]
Available on non-target_os=solana only.
pub fn message_address_table_lookups(&self) -> &[MessageAddressTableLookup]
target_os=solana only.Returns the list of account keys used for account lookup tables.
Sourcepub fn is_instruction_account(&self, key_index: usize) -> bool
Available on non-target_os=solana only.
pub fn is_instruction_account(&self, key_index: usize) -> bool
target_os=solana only.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
Available on non-target_os=solana only.
pub fn is_invoked(&self, key_index: usize) -> bool
target_os=solana only.Returns true if the account at the specified index is invoked as a program in this message.
Sourcepub fn is_writable(&self, index: usize) -> bool
Available on non-target_os=solana only.
pub fn is_writable(&self, index: usize) -> bool
target_os=solana only.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
Available on non-target_os=solana only.
pub fn is_signer(&self, index: usize) -> bool
target_os=solana only.Returns true if the account at the specified index signed this message.
Sourcepub fn num_readonly_accounts(&self) -> usize
Available on non-target_os=solana only.
pub fn num_readonly_accounts(&self) -> usize
target_os=solana only.Return the number of readonly accounts loaded by this message.
Sourcepub fn decompile_instructions(&self) -> Vec<BorrowedInstruction<'_>>
Available on non-target_os=solana only.
pub fn decompile_instructions(&self) -> Vec<BorrowedInstruction<'_>>
target_os=solana only.Decompile message instructions without cloning account keys
Sourcepub fn is_upgradeable_loader_present(&self) -> bool
Available on non-target_os=solana only.
pub fn is_upgradeable_loader_present(&self) -> bool
target_os=solana only.Inspect all message keys for the bpf upgradeable loader
Sourcepub fn get_ix_signers(&self, ix_index: usize) -> impl Iterator<Item = &Address>
Available on non-target_os=solana only.
pub fn get_ix_signers(&self, ix_index: usize) -> impl Iterator<Item = &Address>
target_os=solana only.Get a list of signers for the instruction at the given index
Sourcepub fn get_durable_nonce(&self) -> Option<&Address>
Available on non-target_os=solana only.
pub fn get_durable_nonce(&self) -> Option<&Address>
target_os=solana only.If the message uses a durable nonce, return the pubkey of the nonce account
Sourcepub fn num_total_signatures(&self) -> u64
Available on non-target_os=solana only.
pub fn num_total_signatures(&self) -> u64
target_os=solana only.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
Available on non-target_os=solana only.
pub fn num_write_locks(&self) -> u64
target_os=solana only.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
Available on non-target_os=solana only.
pub fn get_signature_details(&self) -> TransactionSignatureDetails
target_os=solana only.return detailed signature counts
Trait Implementations§
Source§impl Clone for SanitizedMessage
Available on non-target_os=solana only.
impl Clone for SanitizedMessage
target_os=solana only.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
Available on non-target_os=solana only.
impl Debug for SanitizedMessage
target_os=solana only.Source§impl PartialEq for SanitizedMessage
Available on non-target_os=solana only.
impl PartialEq for SanitizedMessage
target_os=solana only.impl Eq for SanitizedMessage
target_os=solana only.impl StructuralPartialEq for SanitizedMessage
target_os=solana only.Auto Trait Implementations§
impl Freeze for SanitizedMessage
impl RefUnwindSafe for SanitizedMessage
impl Send for SanitizedMessage
impl Sync for SanitizedMessage
impl Unpin for SanitizedMessage
impl UnsafeUnpin 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