pub struct AccountKeys<'a> { /* private fields */ }
Expand description
Collection of static and dynamically loaded keys used to load accounts during transaction processing.
Implementations§
source§impl<'a> AccountKeys<'a>
impl<'a> AccountKeys<'a>
pub fn new( static_keys: &'a [Pubkey], dynamic_keys: Option<&'a LoadedAddresses>, ) -> Self
sourcepub 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.
sourcepub 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
sourcepub 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.
sourcepub 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§
source§impl<'a> Clone for AccountKeys<'a>
impl<'a> Clone for AccountKeys<'a>
source§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 moresource§impl<'a> Debug for AccountKeys<'a>
impl<'a> Debug for AccountKeys<'a>
source§impl<'a> Default for AccountKeys<'a>
impl<'a> Default for AccountKeys<'a>
source§fn default() -> AccountKeys<'a>
fn default() -> AccountKeys<'a>
source§impl Index<usize> for AccountKeys<'_>
impl Index<usize> for AccountKeys<'_>
source§impl PartialEq for AccountKeys<'_>
impl PartialEq for AccountKeys<'_>
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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)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