pub struct TransactionMessage {
pub num_signers: u8,
pub num_writable_signers: u8,
pub num_writable_non_signers: u8,
pub account_keys: SmallVec<u8, Pubkey>,
pub instructions: SmallVec<u8, CompiledInstruction>,
pub address_table_lookups: SmallVec<u8, MessageAddressTableLookup>,
}Expand description
Unvalidated instruction data, must be treated as untrusted.
Fields§
§num_signers: u8The number of signer pubkeys in the account_keys vec.
num_writable_signers: u8The number of writable signer pubkeys in the account_keys vec.
num_writable_non_signers: u8The number of writable non-signer pubkeys in the account_keys vec.
account_keys: SmallVec<u8, Pubkey>The list of unique account public keys (including program IDs) that will be used in the provided instructions.
instructions: SmallVec<u8, CompiledInstruction>The list of instructions to execute.
address_table_lookups: SmallVec<u8, MessageAddressTableLookup>List of address table lookups used to load additional accounts for this transaction.
Trait Implementations§
Source§impl BorshDeserialize for TransactionMessage
impl BorshDeserialize for TransactionMessage
fn deserialize_reader<R>(reader: &mut R) -> Result<TransactionMessage, Error>where
R: Read,
Source§fn deserialize(buf: &mut &[u8]) -> Result<Self, Error>
fn deserialize(buf: &mut &[u8]) -> Result<Self, Error>
Deserializes this instance from a given slice of bytes.
Updates the buffer to point at the remaining bytes.
Source§fn try_from_slice(v: &[u8]) -> Result<Self, Error>
fn try_from_slice(v: &[u8]) -> Result<Self, Error>
Deserialize this instance from a slice of bytes.
fn try_from_reader<R>(reader: &mut R) -> Result<Self, Error>where
R: Read,
Source§impl BorshSerialize for TransactionMessage
impl BorshSerialize for TransactionMessage
Source§impl Clone for TransactionMessage
impl Clone for TransactionMessage
Source§fn clone(&self) -> TransactionMessage
fn clone(&self) -> TransactionMessage
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl VaultTransactionMessageExt for TransactionMessage
impl VaultTransactionMessageExt for TransactionMessage
fn as_transaction_message(&self) -> &TransactionMessage
Source§fn try_compile(
vault_key: &Pubkey,
instructions: &[Instruction],
address_lookup_table_accounts: &[AddressLookupTableAccount],
) -> Result<TransactionMessage, CompileError>
fn try_compile( vault_key: &Pubkey, instructions: &[Instruction], address_lookup_table_accounts: &[AddressLookupTableAccount], ) -> Result<TransactionMessage, CompileError>
This implementation is mostly a copy-paste from
solana_program::message::v0::Message::try_compile(),
but it constructs a TransactionMessage meant to be passed to vault_transaction_create.fn get_accounts_for_execute( &self, vault_pda: &Pubkey, transaction_pda: &Pubkey, address_lookup_table_accounts: &[AddressLookupTableAccount], num_ephemeral_signers: u8, program_id: &Pubkey, ) -> Result<Vec<AccountMeta>, Error>
Auto Trait Implementations§
impl Freeze for TransactionMessage
impl RefUnwindSafe for TransactionMessage
impl Send for TransactionMessage
impl Sync for TransactionMessage
impl Unpin for TransactionMessage
impl UnwindSafe for TransactionMessage
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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>
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 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>
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