pub struct BorrowedInstructionAccount<'a, 'ix_data> { /* private fields */ }Expand description
Shared account borrowed from the TransactionContext and an InstructionContext.
Implementations§
Source§impl BorrowedInstructionAccount<'_, '_>
impl BorrowedInstructionAccount<'_, '_>
Sourcepub fn get_index_in_transaction(&self) -> IndexOfAccount
pub fn get_index_in_transaction(&self) -> IndexOfAccount
Returns the index of this account (transaction wide)
Sourcepub fn set_owner(&mut self, pubkey: &[u8]) -> Result<(), InstructionError>
pub fn set_owner(&mut self, pubkey: &[u8]) -> Result<(), InstructionError>
Assignes the owner of this account (transaction wide)
Sourcepub fn get_lamports(&self) -> u64
pub fn get_lamports(&self) -> u64
Returns the number of lamports of this account (transaction wide)
Sourcepub fn set_lamports(&mut self, lamports: u64) -> Result<(), InstructionError>
pub fn set_lamports(&mut self, lamports: u64) -> Result<(), InstructionError>
Overwrites the number of lamports of this account (transaction wide)
Sourcepub fn checked_add_lamports(
&mut self,
lamports: u64,
) -> Result<(), InstructionError>
pub fn checked_add_lamports( &mut self, lamports: u64, ) -> Result<(), InstructionError>
Adds lamports to this account (transaction wide)
Sourcepub fn checked_sub_lamports(
&mut self,
lamports: u64,
) -> Result<(), InstructionError>
pub fn checked_sub_lamports( &mut self, lamports: u64, ) -> Result<(), InstructionError>
Subtracts lamports from this account (transaction wide)
Sourcepub fn get_data(&self) -> &[u8] ⓘ
pub fn get_data(&self) -> &[u8] ⓘ
Returns a read-only slice of the account data (transaction wide)
Sourcepub fn get_data_mut(&mut self) -> Result<&mut [u8], InstructionError>
pub fn get_data_mut(&mut self) -> Result<&mut [u8], InstructionError>
Returns a writable slice of the account data (transaction wide)
Sourcepub fn set_data_from_slice(
&mut self,
data: &[u8],
) -> Result<(), InstructionError>
pub fn set_data_from_slice( &mut self, data: &[u8], ) -> Result<(), InstructionError>
Overwrites the account data and size (transaction wide).
Call this when you have a slice of data you do not own and want to replace the account data with it.
Sourcepub fn set_data_length(
&mut self,
new_length: usize,
) -> Result<(), InstructionError>
pub fn set_data_length( &mut self, new_length: usize, ) -> Result<(), InstructionError>
Resizes the account data (transaction wide)
Fills it with zeros at the end if is extended or truncates at the end otherwise.
Sourcepub fn extend_from_slice(&mut self, data: &[u8]) -> Result<(), InstructionError>
pub fn extend_from_slice(&mut self, data: &[u8]) -> Result<(), InstructionError>
Appends all elements in a slice to the account
Returns whether the underlying AccountSharedData is shared.
The data is shared if the account has been loaded from the accounts database and has never been written to. Writing to an account unshares it.
During account serialization, if an account is shared it’ll get mapped as CoW, else it’ll get mapped directly as writable.
Sourcepub fn get_state<T: DeserializeOwned>(&self) -> Result<T, InstructionError>
pub fn get_state<T: DeserializeOwned>(&self) -> Result<T, InstructionError>
Deserializes the account data into a state
Sourcepub fn set_state<T: Serialize>(
&mut self,
state: &T,
) -> Result<(), InstructionError>
pub fn set_state<T: Serialize>( &mut self, state: &T, ) -> Result<(), InstructionError>
Serializes a state into the account data
pub fn is_rent_exempt_at_data_length(&self, data_length: usize) -> bool
Sourcepub fn is_executable(&self) -> bool
👎Deprecated since 2.1.0: Use get_owner instead
pub fn is_executable(&self) -> bool
get_owner insteadReturns whether this account is executable (transaction wide)
Sourcepub fn set_executable(
&mut self,
is_executable: bool,
) -> Result<(), InstructionError>
pub fn set_executable( &mut self, is_executable: bool, ) -> Result<(), InstructionError>
Configures whether this account is executable (transaction wide)
Sourcepub fn get_rent_epoch(&self) -> u64
pub fn get_rent_epoch(&self) -> u64
Returns the rent epoch of this account (transaction wide)
Sourcepub fn is_writable(&self) -> bool
pub fn is_writable(&self) -> bool
Returns whether this account is writable (instruction wide)
Sourcepub fn is_owned_by_current_program(&self) -> bool
pub fn is_owned_by_current_program(&self) -> bool
Returns true if the owner of this account is the current InstructionContexts last program (instruction wide)
Sourcepub fn can_data_be_changed(&self) -> Result<(), InstructionError>
pub fn can_data_be_changed(&self) -> Result<(), InstructionError>
Returns an error if the account data can not be mutated by the current program
Sourcepub fn can_data_be_resized(
&self,
new_len: usize,
) -> Result<(), InstructionError>
pub fn can_data_be_resized( &self, new_len: usize, ) -> Result<(), InstructionError>
Returns an error if the account data can not be resized to the given length
Trait Implementations§
Auto Trait Implementations§
impl<'a, 'ix_data> Freeze for BorrowedInstructionAccount<'a, 'ix_data>
impl<'a, 'ix_data> !RefUnwindSafe for BorrowedInstructionAccount<'a, 'ix_data>
impl<'a, 'ix_data> !Send for BorrowedInstructionAccount<'a, 'ix_data>
impl<'a, 'ix_data> !Sync for BorrowedInstructionAccount<'a, 'ix_data>
impl<'a, 'ix_data> Unpin for BorrowedInstructionAccount<'a, 'ix_data>
impl<'a, 'ix_data> !UnwindSafe for BorrowedInstructionAccount<'a, 'ix_data>
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> 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