import { expect } from "chai";
import { clusterApiUrl, Connection, Keypair, PublicKey } from "@solana/web3.js";
import { PumpAmmSdk } from "../sdk/pumpAmm";

describe("claimTokenIncentives", () => {
  const sdk = new PumpAmmSdk(
    new Connection(clusterApiUrl("devnet"), "confirmed"),
  );
  const testUser = new PublicKey(
    "4kBH5H5p9oRkZPGLSx8R4WKoDsmXnEpmzsgkebkKvzSg",
  );

  it("should build the instruction successfully", async () => {
    const instruction = await sdk.claimTokenIncentives(testUser, testUser);

    expect(instruction[0].programId.toString()).to.equal(
      sdk.programId().toString(),
    );
  });

  it("getTotalUnclaimedTokens", async () => {
    const sdk = new PumpAmmSdk(
      new Connection(clusterApiUrl("devnet"), "confirmed"),
    );

    const currentDayTokens = await sdk.getTotalUnclaimedTokens(
      new PublicKey("4kBH5H5p9oRkZPGLSx8R4WKoDsmXnEpmzsgkebkKvzSg"),
    );

    console.log(currentDayTokens);
  });

  it("getCurrentDayTokens", async () => {
    const sdk = new PumpAmmSdk(
      new Connection(clusterApiUrl("devnet"), "confirmed"),
    );

    const currentDayTokens = await sdk.getCurrentDayTokens(
      new PublicKey("4kBH5H5p9oRkZPGLSx8R4WKoDsmXnEpmzsgkebkKvzSg"),
    );

    console.log(currentDayTokens);
  });
});
