import { PublicKey, TransactionInstruction } from "@solana/web3.js"; import { BN, Program } from "@coral-xyz/anchor"; import { Staking } from "../artifacts/staking"; import { StakingSpl } from "../artifacts/staking_spl"; export type LockupParams = { accounts: { user: PublicKey; lockupVault?: PublicKey; mint?: PublicKey; }; inputs: { userLockupStakingAccountBump: number; index: number; vaultIndex: number; amount: BN; }; }; export async function lockup( program: Program | Program, params: LockupParams, ): Promise { const { accounts, inputs } = params; const ix = await program.methods .lock( inputs.userLockupStakingAccountBump, inputs.index, inputs.vaultIndex, inputs.amount, ) .accounts({ ...accounts, }) .instruction(); return ix; }