referral
This commit is contained in:
parent
f1ef2c4b8c
commit
0f9ea8018a
37
src/close.ts
37
src/close.ts
|
|
@ -32,42 +32,11 @@ async function close(){
|
||||||
for (const bet of bet_list.bets) {
|
for (const bet of bet_list.bets) {
|
||||||
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
|
||||||
|
|
|
||||||
|
|
@ -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}`);
|
||||||
|
|
|
||||||
|
|
@ -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,
|
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user