import { describe } from "mocha";

import {
	SolmashWhitelistInstructions,
	SolmashWhitelistProgramFactory,
	SolmashWhitelistService,
} from "../../src";
import { getConnection, getProviders, getSignTransaction, nowInSec } from "../shared";

describe("initAuction()", () => {
	const connection = getConnection("devnet");
	const provider = getProviders(connection)[0];
	const signTransaction = getSignTransaction(provider);

	const program = SolmashWhitelistProgramFactory.getProgram(provider, { network: "devnet" });
	const inx = new SolmashWhitelistInstructions(program);
	const service = new SolmashWhitelistService(inx, connection, signTransaction);

	it("initialize auction", async () => {
		const now = nowInSec();
		const preSaleStartTime = now + 60 * 1;
		const preSaleEndTime = preSaleStartTime + 60 * 1;
		const claimTime = preSaleEndTime + 60 * 1;
		console.log(
			"presaleStartTime: %s, presaleEndTime: %s, claimTime: %s",
			preSaleStartTime,
			preSaleEndTime,
			claimTime,
		);

		const auctionTokenAddress = "8CSvK7xceqUeqRaPr91r5kgteXGcWmBL48aoUQCtdizq";
		const bidTokenAddress = "De31sBPcDejCVpZZh1fq8SNs7AcuWcBKuU3k2jqnkmKc";
		const creatorAddress = provider.publicKey.toString();
		console.log({ creatorAddress });

		const data = {
			auctionTokenAddress,
			bidTokenAddress,
			claimTime,
			creatorAddress,
			enabled: true,
			name: "test wl auction 005",
			preSaleEndTime,
			preSaleStartTime,
			ticketPriceInBid: "0",
			ticketPriceInSol: "1",
			ticketsInPool: "5",
			tokenQuantityPerTicket: "100",
		};

		const payload = await service.initAuction(data);

		const signature = await payload.execute();

		console.log({ signature });
	});
});
