Struct switchboard_solana::program_id::message::AccountKeys
pub struct AccountKeys<'a> { /* private fields */ }
Expand description
Collection of static and dynamically loaded keys used to load accounts during transaction processing.
Implementations§
§impl<'a> AccountKeys<'a>
impl<'a> AccountKeys<'a>
pub fn new( static_keys: &'a [Pubkey], dynamic_keys: Option<&'a LoadedAddresses> ) -> AccountKeys<'a>
pub fn get(&self, index: usize) -> Option<&'a Pubkey>
pub fn get(&self, index: usize) -> Option<&'a Pubkey>
Returns the address of the account at the specified index of the list of message account keys constructed from static keys, followed by dynamically loaded writable addresses, and lastly the list of dynamically loaded readonly addresses.
pub fn iter(&self) -> impl Iterator<Item = &'a Pubkey>
pub fn iter(&self) -> impl Iterator<Item = &'a Pubkey>
Iterator for the addresses of the loaded accounts for a message
pub fn compile_instructions(
&self,
instructions: &[Instruction]
) -> Vec<CompiledInstruction>
pub fn compile_instructions( &self, instructions: &[Instruction] ) -> Vec<CompiledInstruction>
Compile instructions using the order of account keys to determine compiled instruction account indexes.
§Panics
Panics when compiling fails. See AccountKeys::try_compile_instructions
for a full description of failure scenarios.
pub fn try_compile_instructions(
&self,
instructions: &[Instruction]
) -> Result<Vec<CompiledInstruction>, CompileError>
pub fn try_compile_instructions( &self, instructions: &[Instruction] ) -> Result<Vec<CompiledInstruction>, CompileError>
Compile instructions using the order of account keys to determine compiled instruction account indexes.
§Errors
Compilation will fail if any instructions
use account keys which are not
present in this account key collection.
Compilation will fail if any instructions
use account keys which are located
at an index which cannot be cast to a u8
without overflow.
Trait Implementations§
§impl<'a> Clone for AccountKeys<'a>
impl<'a> Clone for AccountKeys<'a>
§fn clone(&self) -> AccountKeys<'a>
fn clone(&self) -> AccountKeys<'a>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more§impl<'a> Debug for AccountKeys<'a>
impl<'a> Debug for AccountKeys<'a>
§impl<'a> Default for AccountKeys<'a>
impl<'a> Default for AccountKeys<'a>
§fn default() -> AccountKeys<'a>
fn default() -> AccountKeys<'a>
§impl Index<usize> for AccountKeys<'_>
impl Index<usize> for AccountKeys<'_>
§impl PartialEq for AccountKeys<'_>
impl PartialEq for AccountKeys<'_>
§fn eq(&self, other: &AccountKeys<'_>) -> bool
fn eq(&self, other: &AccountKeys<'_>) -> bool
self
and other
values to be equal, and is used
by ==
.impl<'a> Eq for AccountKeys<'a>
Auto Trait Implementations§
impl<'a> Freeze for AccountKeys<'a>
impl<'a> RefUnwindSafe for AccountKeys<'a>
impl<'a> Send for AccountKeys<'a>
impl<'a> Sync for AccountKeys<'a>
impl<'a> Unpin for AccountKeys<'a>
impl<'a> UnwindSafe for AccountKeys<'a>
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
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
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