solana_sdk::transaction

Struct SanitizedTransaction

Source
pub struct SanitizedTransaction { /* private fields */ }
Expand description

Sanitized transaction and the hash of its message

Implementations§

Source§

impl SanitizedTransaction

Source

pub fn try_new( tx: SanitizedVersionedTransaction, message_hash: Hash, is_simple_vote_tx: bool, address_loader: impl AddressLoader, reserved_account_keys: &HashSet<Pubkey>, ) -> Result<Self>

Create a sanitized transaction from a sanitized versioned transaction. If the input transaction uses address tables, attempt to lookup the address for each table index.

Source

pub fn try_create( tx: VersionedTransaction, message_hash: impl Into<MessageHash>, is_simple_vote_tx: Option<bool>, address_loader: impl AddressLoader, reserved_account_keys: &HashSet<Pubkey>, ) -> Result<Self>

Create a sanitized transaction from an un-sanitized versioned transaction. If the input transaction uses address tables, attempt to lookup the address for each table index.

Source

pub fn try_from_legacy_transaction( tx: Transaction, reserved_account_keys: &HashSet<Pubkey>, ) -> Result<Self>

Create a sanitized transaction from a legacy transaction

Source

pub fn from_transaction_for_tests(tx: Transaction) -> Self

Create a sanitized transaction from a legacy transaction. Used for tests only.

Source

pub fn signature(&self) -> &Signature

Return the first signature for this transaction.

Notes:

Sanitized transactions must have at least one signature because the number of signatures must be greater than or equal to the message header value num_required_signatures which must be greater than 0 itself.

Source

pub fn signatures(&self) -> &[Signature]

Return the list of signatures for this transaction

Source

pub fn message(&self) -> &SanitizedMessage

Return the signed message

Source

pub fn message_hash(&self) -> &Hash

Return the hash of the signed message

Source

pub fn is_simple_vote_transaction(&self) -> bool

Returns true if this transaction is a simple vote

Source

pub fn to_versioned_transaction(&self) -> VersionedTransaction

Convert this sanitized transaction into a versioned transaction for recording in the ledger.

Source

pub fn get_account_locks( &self, tx_account_lock_limit: usize, ) -> Result<TransactionAccountLocks<'_>>

Validate and return the account keys locked by this transaction

Source

pub fn get_account_locks_unchecked(&self) -> TransactionAccountLocks<'_>

Return the list of accounts that must be locked during processing this transaction.

Source

pub fn get_loaded_addresses(&self) -> LoadedAddresses

Return the list of addresses loaded from on-chain address lookup tables

Source

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

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

Source

pub fn verify(&self) -> Result<()>

Verify the transaction signatures

Source

pub fn verify_precompiles(&self, feature_set: &FeatureSet) -> Result<()>

Verify the precompiled programs in this transaction

Source

pub fn validate_account_locks( message: &SanitizedMessage, tx_account_lock_limit: usize, ) -> Result<()>

Validate a transaction message against locked accounts

Trait Implementations§

Source§

impl Clone for SanitizedTransaction

Source§

fn clone(&self) -> SanitizedTransaction

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 SanitizedTransaction

Source§

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

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

impl PartialEq for SanitizedTransaction

Source§

fn eq(&self, other: &SanitizedTransaction) -> 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 SanitizedTransaction

Source§

impl StructuralPartialEq for SanitizedTransaction

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<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. 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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
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