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

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


export async function addLamportsForAutomationIx(params: {
    program: Program<BasketsProgram>;
    basket: PublicKey;
    manager: PublicKey;
    amount: number;
}) {
    // Destructure all params
    const { 
        program,
        basket,
        manager,
        amount
    } = params;

    // Build and return instruction
    return await program.methods
        .addLamportsForAutomation(
            new BN(amount)
        )
        .accountsStrict({
            manager,
            basket,
            automationFeeWallet: AUTOMATION_FEE_WALLET,
            systemProgram: SystemProgram.programId,
        })
        .instruction();
}
