This commit is contained in:
warlock 2025-05-18 20:32:12 +05:30
parent f1ef2c4b8c
commit 0f9ea8018a
3 changed files with 4 additions and 84 deletions

View File

@ -33,41 +33,10 @@ async function close(){
try { try {
const betAcc = await program.account.betVault.fetch(bet); const betAcc = await program.account.betVault.fetch(bet);
const [betVaultPda] = await PublicKey.findProgramAddress(
[
Buffer.from("bet_vault"),
keypair.publicKey.toBuffer(),
Buffer.from(betAcc.gameId),
],
program.programId
);
const ownerRefferer = new PublicKey("BaTgUMPsk8fZoEMwig81Pw1KHmPpoYt31oiR5Qr2c8XR"); const ownerRefferer = new PublicKey("BaTgUMPsk8fZoEMwig81Pw1KHmPpoYt31oiR5Qr2c8XR");
const joinerRefferer = feeWallet; const joinerRefferer = feeWallet;
const betVaultTokenAccount = await getAssociatedTokenAddress(
betAcc.tokenMint,
betVaultPda,
true
);
const feeWalletTokenAccount = await getAssociatedTokenAddress(
betAcc.tokenMint,
feeWallet,
true
);
const ownerReferrerTokenAccount = await getAssociatedTokenAddress(
betAcc.tokenMint,
ownerRefferer,
true
);
const joinerReferrerTokenAccount = await getAssociatedTokenAddress(
betAcc.tokenMint,
joinerRefferer,
true
);
const winner = betAcc.owner; const winner = betAcc.owner;
console.log(`Closing ${bet}`); console.log(`Closing ${bet}`);
@ -79,10 +48,6 @@ async function close(){
feeWallet: feeWallet, feeWallet: feeWallet,
ownerReferrer: ownerRefferer, ownerReferrer: ownerRefferer,
joinerReferrer: joinerRefferer, joinerReferrer: joinerRefferer,
betVaultTokenAccount: betAcc.isNativeSol ? null : betVaultTokenAccount,
feeWalletTokenAccount: betAcc.isNativeSol ? null : feeWalletTokenAccount,
ownerReferrerTokenAccount: betAcc.isNativeSol ? null : ownerReferrerTokenAccount,
joinerReferrerTokenAccount: betAcc.isNativeSol ? null : joinerReferrerTokenAccount,
}).rpc({ }).rpc({
skipPreflight: false, skipPreflight: false,
maxRetries: 3 maxRetries: 3

View File

@ -2,7 +2,7 @@ import { Connection, PublicKey, Keypair, clusterApiUrl, LAMPORTS_PER_SOL, System
import { Bets } from "./bets"; import { Bets } from "./bets";
import { AnchorProvider, BN, Program, Wallet } from "@coral-xyz/anchor"; import { AnchorProvider, BN, Program, Wallet } from "@coral-xyz/anchor";
import { clusterUrl, cocSk, getRandomInt, testerSk } from "./shared"; import { clusterUrl, cocSk, getRandomInt, testerSk } from "./shared";
import { createAssociatedTokenAccountInstruction, getAccount, getAssociatedTokenAddress, getAssociatedTokenAddressSync, TOKEN_PROGRAM_ID } from "@solana/spl-token"; // import { createAssociatedTokenAccountInstruction, getAccount, getAssociatedTokenAddress } from "@solana/spl-token";
const IDL = require('./bets.json'); const IDL = require('./bets.json');
async function create() { async function create() {
@ -45,59 +45,17 @@ async function create() {
program.programId program.programId
); );
// For native SOL bet
const isNativeSol = false;
const tokenMint = new PublicKey("8iFREvVdmLKxVeibpC5VLRr1S6X5dm7gYR3VCU1wpump");
// Create the bet vault token account if it doesn't exist
let betVaultTokenAccount;
if (!isNativeSol) {
// For SPL tokens, create the token account
betVaultTokenAccount = await getAssociatedTokenAddress(
tokenMint,
bet_vault_pda,
true // allowOwnerOffCurve = true because it's a PDA
);
// Create the token account if it doesn't exist
try {
await getAccount(connection, betVaultTokenAccount);
} catch {
const createAtaIx = createAssociatedTokenAccountInstruction(
keypair.publicKey, // payer
betVaultTokenAccount, // ata
bet_vault_pda, // owner
tokenMint // mint
);
const tx = await connection.sendTransaction(
new Transaction().add(createAtaIx),
[keypair]
);
await connection.confirmTransaction(tx);
}
}
// Get payer's token account
const payerTokenAccount = await getAssociatedTokenAddress(
tokenMint,
keypair.publicKey
);
// Create the bet // Create the bet
const tx = await program.methods.createBet( const tx = await program.methods.createBet(
new BN(100000000), new BN(100000000),
"tester", "tester",
"tetris", "tetris",
new BN(nonce), new BN(nonce)
isNativeSol,
tokenMint,
9 // decimals for SOL
).accounts({ ).accounts({
betsList: bet_list_pda, betsList: bet_list_pda,
payer: keypair.publicKey, payer: keypair.publicKey,
payerTokenAccount: isNativeSol ? null : payerTokenAccount,
betVaultTokenAccount: isNativeSol ? null : betVaultTokenAccount,
}).rpc(); }).rpc();
console.log(`create tx : ${tx}`); console.log(`create tx : ${tx}`);

View File

@ -25,10 +25,7 @@ async function get(){
owner: betAcc.owner + " : " + betAcc.ownerId, owner: betAcc.owner + " : " + betAcc.ownerId,
joiner: betAcc.joiner + " : " + betAcc.joinerId, joiner: betAcc.joiner + " : " + betAcc.joinerId,
wager: betAcc.wager.toNumber() + `: ${betAcc.wager.toNumber() / LAMPORTS_PER_SOL}SOL`, wager: betAcc.wager.toNumber() + `: ${betAcc.wager.toNumber() / LAMPORTS_PER_SOL}SOL`,
balance: solBalance, balance: solBalance + " SOL",
is_native_sol: betAcc.isNativeSol,
token_mint: betAcc.tokenMint,
token_decimals: betAcc.tokenDecimals,
}); });
}) })
} }