Skip to main content

RecoverNested

Struct RecoverNested 

Source
pub struct RecoverNested<'a> {
    pub account: &'a AccountView,
    pub mint: &'a AccountView,
    pub destination_account: &'a AccountView,
    pub owner_account: &'a AccountView,
    pub owner_mint: &'a AccountView,
    pub wallet: &'a AccountView,
    pub token_program: &'a AccountView,
}
Expand description

Transfers from and closes a nested associated token account: an associated token account owned by an associated token account.

The tokens are moved from the nested associated token account to the wallet’s associated token account, and the nested account lamports are moved to the wallet.

Note: Nested token accounts are an anti-pattern, and almost always created unintentionally, so this instruction should only be used to recover from errors

§Accounts:

  1. [WRITE] Nested associated token account, must be owned by 3
  2. [] Token mint for the nested associated token account
  3. [WRITE] Wallet’s associated token account
  4. [] Owner associated token account address, must be owned by 5
  5. [] Token mint for the owner associated token account
  6. [WRITE, SIGNER] Wallet address for the owner associated token account
  7. [] SPL Token program

Fields§

§account: &'a AccountView

Nested associated token account, must be owned by owner_associated_token_account

§mint: &'a AccountView

Token mint for the nested associated token account

§destination_account: &'a AccountView

Wallet’s associated token account

§owner_account: &'a AccountView

Owner associated token account address, must be owned by wallet_account

§owner_mint: &'a AccountView

Token mint for the owner associated token account

§wallet: &'a AccountView

Wallet address for the owner associated token account

§token_program: &'a AccountView

SPL Token program

Implementations§

Source§

impl RecoverNested<'_>

Source

pub fn invoke(&self) -> Result<(), ProgramError>

Source

pub fn invoke_signed( &self, signers: &[Signer<'_, '_>], ) -> Result<(), ProgramError>

Auto Trait Implementations§

§

impl<'a> Freeze for RecoverNested<'a>

§

impl<'a> RefUnwindSafe for RecoverNested<'a>

§

impl<'a> !Send for RecoverNested<'a>

§

impl<'a> !Sync for RecoverNested<'a>

§

impl<'a> Unpin for RecoverNested<'a>

§

impl<'a> UnsafeUnpin for RecoverNested<'a>

§

impl<'a> UnwindSafe for RecoverNested<'a>

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> Same for T

Source§

type Output = T

Should always be Self
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.