import { AnchorProvider } from "@project-serum/anchor";
import { ConfirmOptions, Connection, PublicKey, Transaction } from "@solana/web3.js";

interface AnchorWallet {
	signTransaction(tx: Transaction): Promise<Transaction>;
	signAllTransactions(txs: Transaction[]): Promise<Transaction[]>;
	publicKey: PublicKey;
}

export function getAnchorProvider(
	connection: Connection,
	wallet: AnchorWallet,
	opts: ConfirmOptions,
) {
	return new AnchorProvider(connection, wallet, opts);
}

export async function getDecimals(connection: Connection, mint: PublicKey) {
	const { value: tokenAmount } = await connection.getTokenSupply(mint, "confirmed");
	return tokenAmount.decimals;
}
