@symmetry-hq/baskets-v2-sdk
Version:
Symmetry Baskets V2 SDK
35 lines (30 loc) • 1.28 kB
text/typescript
// Core dependencies
import { Program } from "@coral-xyz/anchor";
import { AddressLookupTableProgram, PublicKey, SystemProgram, TransactionInstruction } from "@solana/web3.js";
// Local imports
import { BasketsProgram } from "../../idl/types";
import { fetchDeactivatedLookupTable } from "../../state/lut";
import { getBasketPda } from "../../utils/programAccounts";
export async function overwriteLookupTableIx(params: {
program: Program<BasketsProgram>;
deactivatedLookupTable: PublicKey;
}): Promise<TransactionInstruction> {
const { program } = params;
const deactivatedState = await fetchDeactivatedLookupTable(program, params.deactivatedLookupTable);
const basket = deactivatedState.authority;
const basketPda = getBasketPda(basket);
const recipient = deactivatedState.recipient;
const ix = await program.methods
.closeLookupTable()
.accountsStrict({
recipient,
basket,
basketPda,
lookupTable: deactivatedState.lookupTable,
deactivatedLookupTable: params.deactivatedLookupTable,
addressLookupTableProgram: AddressLookupTableProgram.programId,
systemProgram: SystemProgram.programId,
})
.instruction();
return ix;
}