import { describe } from "mocha";

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

describe("whitelist()", () => {
	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("whitelist user", async () => {
		const auctionAddress = "FL6JxRPoMmhAmDWRw9B3pu4f1j4LK4mJNAba1KuqmEwy";

		const whitelistUserAddressList = [
			getProviders(connection)[1].publicKey.toString(),
			"Am4Wcw9jiVGe4NHKDbBbgXVKK5WGWsP4688GkSnBuELs",
			"7VBTMgbXbnz3gXjCjADM3dzJYsidSRw453mcXV1CfcRj",
			"2BZa4yiNfhtSWBPVGKymMq4NtEp86tNjPGbVeVtBtySu",
			// "CYLyHDqphWVKbgyW87EZYYzZqbmeA8a6RUj5sCPzdYP8",
			// "2vt1TN4rUHwmDf1XTYTikMFZcNntjkPT28afMwpQcwXk",
			// "EMHJbXbLd5whgBHsAGJm6m15ZaAS7eq7Xmc2tkaY6KF8",
		];

		const payload = await service.whitelist({
			creatorAddress: provider.publicKey.toString(),
			auctionAddress,
			whitelistUserAddressList,
		});

		const signature = await payload.execute({ commitment: "finalized" });

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