solana_program::message

Enum SanitizedMessage

Source
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

Source

pub fn try_new( sanitized_msg: SanitizedVersionedMessage, address_loader: impl AddressLoader, reserved_account_keys: &HashSet<Pubkey>, ) -> Result<Self, 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.

Source

pub fn try_from_legacy_message( message: Message, reserved_account_keys: &HashSet<Pubkey>, ) -> Result<Self, SanitizeMessageError>

Create a sanitized legacy message

Source

pub fn has_duplicates(&self) -> bool

Return true if this message contains duplicate account keys

Source

pub fn header(&self) -> &MessageHeader

Message header which identifies the number of signer and writable or readonly accounts

Source

pub fn legacy_message(&self) -> Option<&Message>

Returns a legacy message if this sanitized message wraps one

Source

pub fn fee_payer(&self) -> &Pubkey

Returns the fee payer for the transaction

Source

pub fn recent_blockhash(&self) -> &Hash

The hash of a recent block, used for timing out a transaction

Source

pub fn instructions(&self) -> &[CompiledInstruction]

Program instructions that will be executed in sequence and committed in one atomic transaction if all succeed.

Source

pub fn program_instructions_iter( &self, ) -> impl Iterator<Item = (&Pubkey, &CompiledInstruction)>

Program instructions iterator which includes each instruction’s program id.

Source

pub fn account_keys(&self) -> AccountKeys<'_>

Returns the list of account keys that are loaded for this message.

Source

pub fn message_address_table_lookups(&self) -> &[MessageAddressTableLookup]

Returns the list of account keys used for account lookup tables.

Source

pub fn is_key_passed_to_program(&self, key_index: usize) -> bool

👎Deprecated since 2.0.0: Please use is_instruction_account instead

Returns true if the account at the specified index is an input to some program instruction in this message.

Source

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.

Source

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.

Source

pub fn is_non_loader_key(&self, key_index: usize) -> bool

👎Deprecated since 2.0.0: Please use is_invoked and is_instruction_account instead

Returns true if the account at the specified index is not invoked as a program or, if invoked, is passed to a program.

Source

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.

Source

pub fn is_signer(&self, index: usize) -> bool

Returns true if the account at the specified index signed this message.

Source

pub fn num_readonly_accounts(&self) -> usize

Return the number of readonly accounts loaded by this message.

Source

pub fn decompile_instructions(&self) -> Vec<BorrowedInstruction<'_>>

Decompile message instructions without cloning account keys

Source

pub fn is_upgradeable_loader_present(&self) -> bool

Inspect all message keys for the bpf upgradeable loader

Source

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

Source

pub fn get_durable_nonce(&self) -> Option<&Pubkey>

If the message uses a durable nonce, return the pubkey of the nonce account

Source

pub fn num_signatures(&self) -> u64

👎Deprecated since 2.1.0: Please use SanitizedMessage::num_total_signatures instead.
Source

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.

Source

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.

Source

pub fn get_signature_details(&self) -> TransactionSignatureDetails

return detailed signature counts

Trait Implementations§

Source§

impl Clone for SanitizedMessage

Source§

fn clone(&self) -> SanitizedMessage

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for SanitizedMessage

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for SanitizedMessage

Source§

fn eq(&self, other: &SanitizedMessage) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for SanitizedMessage

Source§

impl StructuralPartialEq for SanitizedMessage

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V