@symmetry-hq/baskets-v2-sdk
Version:
Symmetry Baskets V2 SDK
38 lines (33 loc) • 1.24 kB
text/typescript
// Core dependencies
import { Program } from "@coral-xyz/anchor";
import { PublicKey, SystemProgram, TransactionInstruction } from "@solana/web3.js";
// Local imports
import { BasketsProgram } from "../../idl/types";
import { fetchBasketState } from "../../state/basket";
export async function overwriteLookupTableIx(params: {
program: Program<BasketsProgram>;
manager: PublicKey;
basket: PublicKey;
}): Promise<TransactionInstruction> {
const { program, manager } = params;
const basketState = await fetchBasketState(program, params.basket);
const basketPda = basketState.basketPda;
const oldLookupTable1 = basketState.lookupTable1;
const oldLookupTable2 = basketState.lookupTable2;
const otherLookupTable1 = basketState.otherLookupTable1;
const otherLookupTable2 = basketState.otherLookupTable2;
const ix = await program.methods
.overwriteLookupTable()
.accountsStrict({
manager,
basket: params.basket,
basketPda,
oldLookupTable1,
oldLookupTable2,
otherLookupTable1,
otherLookupTable2,
systemProgram: SystemProgram.programId,
})
.instruction();
return ix;
}