import { Program, Provider } from "@project-serum/anchor";

import { SOLMASH_WHITELIST_PROGRAM_ID } from "./constants";
import { IDL, SolmashWhitelist } from "./idl";

export type SolmashWhitelistProgramConfig = {
	network: "devnet" | "mainnet";
};

export class SolmashWhitelistProgramFactory {
	static getProgram(
		provider: Provider,
		config?: SolmashWhitelistProgramConfig,
	): Program<SolmashWhitelist> {
		let programId = SOLMASH_WHITELIST_PROGRAM_ID.mainnet;
		if (config && config.network === "devnet") {
			programId = SOLMASH_WHITELIST_PROGRAM_ID.devnet;
		}

		return new Program(IDL, programId, provider);
	}
}
