pub enum VersionedMessage {
Legacy(Message),
V0(Message),
}
Expand description
Either a legacy message or a v0 message.
§Serialization
If the first bit is set, the remaining 7 bits will be used to determine
which message version is serialized starting from version 0
. If the first
is bit is not set, all bytes are used to encode the legacy Message
format.
Variants§
Implementations§
Source§impl VersionedMessage
impl VersionedMessage
pub fn sanitize(&self) -> Result<(), SanitizeError>
pub fn header(&self) -> &MessageHeader
pub fn static_account_keys(&self) -> &[Pubkey]
pub fn address_table_lookups(&self) -> Option<&[MessageAddressTableLookup]>
Sourcepub fn is_signer(&self, index: usize) -> bool
pub fn is_signer(&self, index: usize) -> bool
Returns true if the account at the specified index signed this message.
Sourcepub fn is_maybe_writable(
&self,
index: usize,
reserved_account_keys: Option<&HashSet<Pubkey>>,
) -> bool
pub fn is_maybe_writable( &self, index: usize, reserved_account_keys: Option<&HashSet<Pubkey>>, ) -> bool
Returns true if the account at the specified index is writable by the instructions in this message. Since dynamically loaded addresses can’t have write locks demoted without loading addresses, this shouldn’t be used in the runtime.
pub fn is_key_passed_to_program(&self, key_index: usize) -> bool
is_instruction_account
insteadpub fn is_invoked(&self, key_index: usize) -> bool
Sourcepub fn is_non_loader_key(&self, key_index: usize) -> bool
pub fn is_non_loader_key(&self, key_index: usize) -> bool
Returns true if the account at the specified index is not invoked as a program or, if invoked, is passed to a program.
pub fn recent_blockhash(&self) -> &Hash
pub fn set_recent_blockhash(&mut self, recent_blockhash: Hash)
Sourcepub fn instructions(&self) -> &[CompiledInstruction]
pub fn instructions(&self) -> &[CompiledInstruction]
Program instructions that will be executed in sequence and committed in one atomic transaction if all succeed.
pub fn serialize(&self) -> Vec<u8> ⓘ
Sourcepub fn hash_raw_message(message_bytes: &[u8]) -> Hash
pub fn hash_raw_message(message_bytes: &[u8]) -> Hash
Compute the blake3 hash of a raw transaction message
Trait Implementations§
Source§impl Clone for VersionedMessage
impl Clone for VersionedMessage
Source§fn clone(&self) -> VersionedMessage
fn clone(&self) -> VersionedMessage
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for VersionedMessage
impl Debug for VersionedMessage
Source§impl Default for VersionedMessage
impl Default for VersionedMessage
Source§fn default() -> VersionedMessage
fn default() -> VersionedMessage
Source§impl<'de> Deserialize<'de> for VersionedMessage
impl<'de> Deserialize<'de> for VersionedMessage
Source§fn deserialize<D>(
deserializer: D,
) -> Result<VersionedMessage, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D,
) -> Result<VersionedMessage, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
Source§impl PartialEq for VersionedMessage
impl PartialEq for VersionedMessage
Source§impl Serialize for VersionedMessage
impl Serialize for VersionedMessage
Source§fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
Source§impl TryFrom<VersionedMessage> for SanitizedVersionedMessage
impl TryFrom<VersionedMessage> for SanitizedVersionedMessage
Source§type Error = SanitizeError
type Error = SanitizeError
Source§fn try_from(
message: VersionedMessage,
) -> Result<SanitizedVersionedMessage, <SanitizedVersionedMessage as TryFrom<VersionedMessage>>::Error>
fn try_from( message: VersionedMessage, ) -> Result<SanitizedVersionedMessage, <SanitizedVersionedMessage as TryFrom<VersionedMessage>>::Error>
impl Eq for VersionedMessage
impl StructuralPartialEq for VersionedMessage
Auto Trait Implementations§
impl Freeze for VersionedMessage
impl RefUnwindSafe for VersionedMessage
impl Send for VersionedMessage
impl Sync for VersionedMessage
impl Unpin for VersionedMessage
impl UnwindSafe for VersionedMessage
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