// Core dependencies
import { Program } from "@coral-xyz/anchor";
import { PublicKey, TransactionInstruction } from "@solana/web3.js";

// Local imports
import { BasketsProgram } from "../../idl/types";


export async function removeTokenIx(params: {
    program: Program<BasketsProgram>;
    basket: PublicKey;
    manager: PublicKey;
    token: PublicKey;
}): Promise<TransactionInstruction> {
    // Destructure all params
    const { program, basket, manager, token } = params;

    // Build and return instruction
    return await program.methods
        .removeToken(
            token
        )
        .accountsStrict({
            manager,
            basket,
        })
        .instruction();
}
