AssociatedTokenAccountProgram.recoverNested constructor

AssociatedTokenAccountProgram.recoverNested({
  1. required SolAddress nestedAssociatedToken,
  2. required SolAddress nestedMint,
  3. required SolAddress destinationAssociatedToken,
  4. required SolAddress ownerAssociatedToken,
  5. required SolAddress ownerMint,
  6. required SolAddress owner,
  7. SolAddress tokenProgramId = SPLTokenProgramConst.tokenProgramId,
  8. SolAddress associatedTokenProgramId = AssociatedTokenAccountProgramConst.associatedTokenProgramId,
})

Factory method for recovering a nested associated token account

Implementation

factory AssociatedTokenAccountProgram.recoverNested({
  /// Nested associated token account
  required SolAddress nestedAssociatedToken,

  /// Token mint for the nested associated token account
  required SolAddress nestedMint,

  /// Wallet's associated token account
  required SolAddress destinationAssociatedToken,

  /// Owner associated token account address
  required SolAddress ownerAssociatedToken,

  /// Token mint for the owner associated token account
  required SolAddress ownerMint,

  /// Wallet address for the owner associated token account
  required SolAddress owner,

  /// SPL Token program account
  SolAddress tokenProgramId = SPLTokenProgramConst.tokenProgramId,

  /// SPL Associated Token program account
  SolAddress associatedTokenProgramId =
      AssociatedTokenAccountProgramConst.associatedTokenProgramId,
}) {
  return AssociatedTokenAccountProgram(
    keys: [
      nestedAssociatedToken.toWritable(),
      nestedMint.toReadOnly(),
      destinationAssociatedToken.toWritable(),
      ownerAssociatedToken.toWritable(),
      ownerMint.toReadOnly(),
      owner.toSignerAndWritable(),
      tokenProgramId.toReadOnly(),
    ],
    programId: associatedTokenProgramId,
    layout: const AssociatedTokenAccountProgramRecoverNestedLayout(),
  );
}