Skip to main content

SyncNative

Struct SyncNative 

Source
pub struct SyncNative<'account> {
    pub native_token: &'account AccountView,
    pub rent_sysvar: Option<&'account AccountView>,
}
Expand description

Given a wrapped / native token account (a token account containing SOL) updates its amount field based on the account’s underlying lamports. This is useful if a non-wrapped SOL account uses system_instruction::transfer to move lamports to a wrapped token account, and needs to have its token amount field updated.

Accounts expected by this instruction:

  • Using runtime Rent sysvar
  1. [writable] The native token account to sync with its underlying lamports.
  • Using Rent sysvar account
  1. [writable] The native token account to sync with its underlying lamports.
  2. [] Rent sysvar.

Fields§

§native_token: &'account AccountView

Native Token Account

§rent_sysvar: Option<&'account AccountView>

Implementations§

Source§

impl<'account> SyncNative<'account>

Source

pub const DISCRIMINATOR: u8 = 17

Source

pub const MAX_ACCOUNTS_LEN: usize = 2

Maximum number of accounts expected by this instruction.

The required number of accounts will depend whether the source account has a single owner or a multisignature owner.

Source

pub const DATA_LEN: usize = 1

Instruction data length:

  • discriminator (1 byte)
Source

pub fn new( native_token: &'account AccountView, rent_sysvar: Option<&'account AccountView>, ) -> Self

Source

pub fn invoke(&self) -> ProgramResult

Trait Implementations§

Source§

impl CpiWriter for SyncNative<'_>

Source§

fn write_accounts<'cpi>( &self, accounts: &mut [MaybeUninit<CpiAccount<'cpi>>], ) -> Result<usize, ProgramError>
where Self: 'cpi,

Writes the AccountViews required by this instruction into the provided slice. Read more
Source§

fn write_instruction_accounts<'cpi>( &self, accounts: &mut [MaybeUninit<InstructionAccount<'cpi>>], ) -> Result<usize, ProgramError>
where Self: 'cpi,

Writes the InstructionAccounts required by this instruction into the provided slice. Read more
Source§

fn write_instruction_data( &self, data: &mut [MaybeUninit<u8>], ) -> Result<usize, ProgramError>

Writes the instruction data for this instruction into the provided slice. Read more
Source§

impl IntoBatch for SyncNative<'_>

Source§

fn into_batch<'account, 'state>( self, batch: &mut Batch<'account, 'state>, ) -> ProgramResult
where Self: 'account + 'state,

Serializes self into the provided batch.

Auto Trait Implementations§

§

impl<'account> Freeze for SyncNative<'account>

§

impl<'account> RefUnwindSafe for SyncNative<'account>

§

impl<'account> !Send for SyncNative<'account>

§

impl<'account> !Sync for SyncNative<'account>

§

impl<'account> Unpin for SyncNative<'account>

§

impl<'account> UnsafeUnpin for SyncNative<'account>

§

impl<'account> UnwindSafe for SyncNative<'account>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.