referrals prod

This commit is contained in:
Sewmina 2025-05-21 20:08:57 +00:00
parent b370b0427f
commit d0610cf62d
3 changed files with 168 additions and 29 deletions

View File

@ -7,6 +7,31 @@
"description": "Created with Anchor"
},
"instructions": [
{
"name": "clear_bets_list",
"discriminator": [
128,
73,
20,
28,
69,
26,
247,
185
],
"accounts": [
{
"name": "bets_list",
"writable": true
},
{
"name": "payer",
"writable": true,
"signer": true
}
],
"args": []
},
{
"name": "close_bet",
"discriminator": [
@ -28,10 +53,6 @@
"name": "bet_vault",
"writable": true
},
{
"name": "fee_wallet",
"writable": true
},
{
"name": "winner",
"writable": true
@ -41,14 +62,6 @@
"writable": true,
"signer": true
},
{
"name": "owner_referrer",
"writable": true
},
{
"name": "joiner_referrer",
"writable": true
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
@ -145,6 +158,60 @@
}
]
},
{
"name": "deduct_fees",
"discriminator": [
249,
7,
117,
167,
160,
108,
235,
14
],
"accounts": [
{
"name": "bets_list",
"writable": true
},
{
"name": "bet_vault",
"writable": true
},
{
"name": "fee_wallet",
"writable": true
},
{
"name": "payer",
"writable": true,
"signer": true
},
{
"name": "owner_referrer",
"writable": true
},
{
"name": "joiner_referrer",
"writable": true
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
}
],
"args": [
{
"name": "winner",
"type": "pubkey"
},
{
"name": "userid",
"type": "string"
}
]
},
{
"name": "initialize",
"discriminator": [

View File

@ -13,6 +13,31 @@ export type Bets = {
"description": "Created with Anchor"
},
"instructions": [
{
"name": "clearBetsList",
"discriminator": [
128,
73,
20,
28,
69,
26,
247,
185
],
"accounts": [
{
"name": "betsList",
"writable": true
},
{
"name": "payer",
"writable": true,
"signer": true
}
],
"args": []
},
{
"name": "closeBet",
"discriminator": [
@ -34,10 +59,6 @@ export type Bets = {
"name": "betVault",
"writable": true
},
{
"name": "feeWallet",
"writable": true
},
{
"name": "winner",
"writable": true
@ -47,14 +68,6 @@ export type Bets = {
"writable": true,
"signer": true
},
{
"name": "ownerReferrer",
"writable": true
},
{
"name": "joinerReferrer",
"writable": true
},
{
"name": "systemProgram",
"address": "11111111111111111111111111111111"
@ -151,6 +164,60 @@ export type Bets = {
}
]
},
{
"name": "deductFees",
"discriminator": [
249,
7,
117,
167,
160,
108,
235,
14
],
"accounts": [
{
"name": "betsList",
"writable": true
},
{
"name": "betVault",
"writable": true
},
{
"name": "feeWallet",
"writable": true
},
{
"name": "payer",
"writable": true,
"signer": true
},
{
"name": "ownerReferrer",
"writable": true
},
{
"name": "joinerReferrer",
"writable": true
},
{
"name": "systemProgram",
"address": "11111111111111111111111111111111"
}
],
"args": [
{
"name": "winner",
"type": "pubkey"
},
{
"name": "userid",
"type": "string"
}
]
},
{
"name": "initialize",
"discriminator": [

View File

@ -59,8 +59,7 @@ export async function refundBet(bet:string):Promise<string>{
const tx =await program.methods.closeBet(new PublicKey(betAcc.owner), betAcc.ownerId).accounts({
betVault: bet,
betsList: bet_list_pda,
winner: betAcc.owner,
feeWallet: feeWallet
winner: betAcc.owner
}).rpc();
log(`refund tx: ${tx}`, "solana");
@ -75,16 +74,22 @@ export async function close(bet:string, winner:string, uid:string, loser:string)
const winner_referree_wallet = await GetReferreeWallet(uid);
const loser_referree_wallet = await GetReferreeWallet(loser);
const tx = await program.methods.closeBet(new PublicKey(winner), uid).accounts({
const tx = await program.methods.deductFees(new PublicKey(winner), uid).accounts({
betVault: bet,
betsList: bet_list_pda,
winner: winner,
feeWallet: feeWallet,
ownerReferrer: winner_referree_wallet,
joinerReferrer: loser_referree_wallet
}).rpc();
await connection.confirmTransaction(tx, 'confirmed');
log(`close tx: ${tx}`, "solana");
const close_tx = await program.methods.closeBet(new PublicKey(winner), uid).accounts({
betVault: bet,
betsList: bet_list_pda,
winner: winner
}).rpc();
await connection.confirmTransaction(close_tx, 'confirmed');
log(`close tx: ${close_tx}`, "solana");
return tx;
}