pub struct SanitizedTransaction { /* private fields */ }
Expand description
Sanitized transaction and the hash of its message
Implementations§
Source§impl SanitizedTransaction
impl SanitizedTransaction
Sourcepub fn try_new(
tx: SanitizedVersionedTransaction,
message_hash: Hash,
is_simple_vote_tx: bool,
address_loader: impl AddressLoader,
reserved_account_keys: &HashSet<Pubkey>,
) -> Result<Self>
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.
Sourcepub 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>
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.
Sourcepub fn try_from_legacy_transaction(
tx: Transaction,
reserved_account_keys: &HashSet<Pubkey>,
) -> Result<Self>
pub fn try_from_legacy_transaction( tx: Transaction, reserved_account_keys: &HashSet<Pubkey>, ) -> Result<Self>
Create a sanitized transaction from a legacy transaction
Sourcepub fn from_transaction_for_tests(tx: Transaction) -> Self
pub fn from_transaction_for_tests(tx: Transaction) -> Self
Create a sanitized transaction from a legacy transaction. Used for tests only.
Sourcepub fn signature(&self) -> &Signature
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.
Sourcepub fn signatures(&self) -> &[Signature]
pub fn signatures(&self) -> &[Signature]
Return the list of signatures for this transaction
Sourcepub fn message(&self) -> &SanitizedMessage
pub fn message(&self) -> &SanitizedMessage
Return the signed message
Sourcepub fn message_hash(&self) -> &Hash
pub fn message_hash(&self) -> &Hash
Return the hash of the signed message
Sourcepub fn is_simple_vote_transaction(&self) -> bool
pub fn is_simple_vote_transaction(&self) -> bool
Returns true if this transaction is a simple vote
Sourcepub fn to_versioned_transaction(&self) -> VersionedTransaction
pub fn to_versioned_transaction(&self) -> VersionedTransaction
Convert this sanitized transaction into a versioned transaction for recording in the ledger.
Sourcepub fn get_account_locks(
&self,
tx_account_lock_limit: usize,
) -> Result<TransactionAccountLocks<'_>>
pub fn get_account_locks( &self, tx_account_lock_limit: usize, ) -> Result<TransactionAccountLocks<'_>>
Validate and return the account keys locked by this transaction
Sourcepub fn get_account_locks_unchecked(&self) -> TransactionAccountLocks<'_>
pub fn get_account_locks_unchecked(&self) -> TransactionAccountLocks<'_>
Return the list of accounts that must be locked during processing this transaction.
Sourcepub fn get_loaded_addresses(&self) -> LoadedAddresses
pub fn get_loaded_addresses(&self) -> LoadedAddresses
Return the list of addresses loaded from on-chain address lookup tables
Sourcepub fn get_durable_nonce(&self) -> Option<&Pubkey>
pub fn get_durable_nonce(&self) -> Option<&Pubkey>
If the transaction uses a durable nonce, return the pubkey of the nonce account
Sourcepub fn verify_precompiles(&self, feature_set: &FeatureSet) -> Result<()>
pub fn verify_precompiles(&self, feature_set: &FeatureSet) -> Result<()>
Verify the precompiled programs in this transaction
Sourcepub fn validate_account_locks(
message: &SanitizedMessage,
tx_account_lock_limit: usize,
) -> Result<()>
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
impl Clone for SanitizedTransaction
Source§fn clone(&self) -> SanitizedTransaction
fn clone(&self) -> SanitizedTransaction
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for SanitizedTransaction
impl Debug for SanitizedTransaction
Source§impl PartialEq for SanitizedTransaction
impl PartialEq for SanitizedTransaction
impl Eq for SanitizedTransaction
impl StructuralPartialEq for SanitizedTransaction
Auto Trait Implementations§
impl Freeze for SanitizedTransaction
impl RefUnwindSafe for SanitizedTransaction
impl Send for SanitizedTransaction
impl Sync for SanitizedTransaction
impl Unpin for SanitizedTransaction
impl UnwindSafe for SanitizedTransaction
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