account resolution error fix#1

This commit is contained in:
Sewmina Dilshan 2025-06-20 17:29:52 +05:30
parent 23a98aea9c
commit 682a927049
3 changed files with 10 additions and 8 deletions

View File

@ -5,7 +5,7 @@ use anchor_spl::{
};
use crate::{error::BettingError, shared::transfer_tokens_pda, state::{BetVault, BetsList}};
pub fn close_token_bet(ctx: Context<CloseBetToken>, winner: Pubkey, userid: String) -> Result<()> {
pub fn close_token_bet(ctx: Context<CloseBetToken>, winner: Pubkey, userid: String, owner:Pubkey, game_id:String, nonce:u64) -> Result<()> {
let bet_vault = &mut ctx.accounts.bet_vault;
require!(
bet_vault.owner == winner || bet_vault.joiner == winner || bet_vault.owner_id == userid || bet_vault.joiner_id == userid,
@ -40,13 +40,14 @@ pub fn close_token_bet(ctx: Context<CloseBetToken>, winner: Pubkey, userid: Stri
}
#[derive(Accounts)]
#[instruction( winner: Pubkey, userid: String,owner:Pubkey, game_id:String, nonce:u64)]
pub struct CloseBetToken<'info> {
#[account(mut)]
pub bets_list: Account<'info, BetsList>,
#[account(
mut,
seeds = [b"bet_vault", bet_vault.owner.as_ref(), bet_vault.game_id.as_bytes(), &bet_vault.nonce.to_le_bytes()],
seeds = [b"bet_vault", owner.as_ref(), game_id.as_bytes(), &nonce.to_le_bytes()],
bump
)]
pub bet_vault: Account<'info, BetVault>,

View File

@ -7,7 +7,7 @@ use anchor_spl::{
};
use crate::{error::BettingError, shared::transfer_tokens_pda, *};
pub fn handle_deduct_fees_token(ctx: Context<DeductFeesToken>, winner: Pubkey, userid: String) -> Result<()> {
pub fn handle_deduct_fees_token(ctx: Context<DeductFeesToken>, winner: Pubkey, userid: String, owner:Pubkey, game_id:String, nonce:u64) -> Result<()> {
let bet_vault = &mut ctx.accounts.bet_vault;
require!(
bet_vault.owner == winner || bet_vault.joiner == winner || bet_vault.owner_id == userid || bet_vault.joiner_id == userid,
@ -90,13 +90,14 @@ pub fn handle_deduct_fees_token(ctx: Context<DeductFeesToken>, winner: Pubkey, u
}
#[derive(Accounts)]
#[instruction(winner: Pubkey, userid: String,owner:Pubkey, game_id:String, nonce:u64)]
pub struct DeductFeesToken<'info> {
#[account(mut)]
pub bets_list: Account<'info, BetsList>,
#[account(
mut,
seeds = [b"bet_vault", bet_vault.owner.as_ref(), bet_vault.game_id.as_bytes(), &bet_vault.nonce.to_le_bytes()],
seeds = [b"bet_vault", owner.as_ref(), game_id.as_bytes(), &nonce.to_le_bytes()],
bump
)]
pub bet_vault: Account<'info, BetVault>,

View File

@ -48,12 +48,12 @@ pub mod bets {
join_bet_token::join_token_bet(ctx, user_id, game_id)
}
pub fn deduct_fees_token(ctx:Context<DeductFeesToken>, winner:Pubkey, userid:String)->Result<()>{
deduct_fees_token::handle_deduct_fees_token(ctx, winner, userid)
pub fn deduct_fees_token(ctx:Context<DeductFeesToken>, winner:Pubkey, userid:String, owner:Pubkey, game_id:String, nonce:u64)->Result<()>{
deduct_fees_token::handle_deduct_fees_token(ctx, winner, userid, owner, game_id, nonce)
}
pub fn close_bet_token(ctx:Context<CloseBetToken>, winner:Pubkey, userid:String)->Result<()>{
close_bet_token::close_token_bet(ctx, winner, userid)
pub fn close_bet_token(ctx:Context<CloseBetToken>, winner:Pubkey, userid:String, owner:Pubkey, game_id:String, nonce:u64)->Result<()>{
close_bet_token::close_token_bet(ctx, winner, userid, owner, game_id, nonce)
}
pub fn clear_bets_list(ctx: Context<ClearBetsList>) -> Result<()> {
clear_bets_list::clear(ctx)