import { describe } from "mocha"; import { getAssociatedTokenAddressSync } from "@solana/spl-token"; import { PublicKey } from "@solana/web3.js"; 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); let tokenInPools: number; let auctionName: string; it("initialize auction", async () => { const now = nowInSec(); const preSaleStartTime = now + 60 * 1; const preSaleEndTime = preSaleStartTime + 60 * 15; console.log({ preSaleStartTime }, { preSaleEndTime }); const auctionTokenAddress = "8CSvK7xceqUeqRaPr91r5kgteXGcWmBL48aoUQCtdizq"; const bidTokenAddress = "De31sBPcDejCVpZZh1fq8SNs7AcuWcBKuU3k2jqnkmKc"; const ownerAddress = provider.publicKey.toString(); const data = { ownerAddress, bidTokenAddress, auctionTokenAddress, name: "test wl auction 003", enabled: true, preSaleEndTime, preSaleStartTime, ticketPriceInSobb: "30", ticketPriceInSol: "1", ticketsInPool: "30", tokenQuantityPerTicket: "100", }; tokenInPools = Number(data.ticketsInPool) * Number(data.tokenQuantityPerTicket); auctionName = data.name; const payload = await service.initAuction(data); const signature = await payload.execute({ commitment: "finalized" }); console.log({ signature }); }); it("adds token", async () => { console.log("waiting before adding tokens"); await new Promise((r) => setTimeout(r, 10000)); const ownerAddress = provider.publicKey.toString(); const auctionTokenAddress = "8CSvK7xceqUeqRaPr91r5kgteXGcWmBL48aoUQCtdizq"; const auction = SolmashWhitelistService.deriveAuctionAddress(auctionName, program.programId); // test assert setup const ownerAuctionTokenAccount = getAssociatedTokenAddressSync( new PublicKey(auctionTokenAddress), new PublicKey(ownerAddress), ); const auctionVault = SolmashWhitelistService.deriveAuctionVaultAddress( auction, program.programId, ); const auctionVaultTokenAccount = getAssociatedTokenAddressSync( new PublicKey(auctionTokenAddress), auctionVault, true, ); const { value: ownerAtaBalBefore } = await connection.getTokenAccountBalance( ownerAuctionTokenAccount, "confirmed", ); console.log({ ownerAtaBalBefore }); const payload = await service.addToken({ ownerAddress, auctionAddress: auction.toString(), auctionTokenAddress, }); // console.log({ payload }); const signature = await payload.execute(); console.log({ signature }); const { value: ownerAtaBalAfter } = await connection.getTokenAccountBalance( ownerAuctionTokenAccount, "confirmed", ); const { value: auctionVaultAtaBalAfter } = await connection.getTokenAccountBalance( auctionVaultTokenAccount, "confirmed", ); console.log({ ownerAtaBalAfter }); console.log({ auctionVaultAtaBalAfter }); console.log({ tokenInPools }); }); });