diff --git a/programs/bets/src/instructions/close_bet_token.rs b/programs/bets/src/instructions/close_bet_token.rs index 018a049..34c0db4 100644 --- a/programs/bets/src/instructions/close_bet_token.rs +++ b/programs/bets/src/instructions/close_bet_token.rs @@ -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, winner: Pubkey, userid: String) -> Result<()> { +pub fn close_token_bet(ctx: Context, 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, 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>, diff --git a/programs/bets/src/instructions/deduct_fees_token.rs b/programs/bets/src/instructions/deduct_fees_token.rs index 13b953d..a1876db 100644 --- a/programs/bets/src/instructions/deduct_fees_token.rs +++ b/programs/bets/src/instructions/deduct_fees_token.rs @@ -7,7 +7,7 @@ use anchor_spl::{ }; use crate::{error::BettingError, shared::transfer_tokens_pda, *}; -pub fn handle_deduct_fees_token(ctx: Context, winner: Pubkey, userid: String) -> Result<()> { +pub fn handle_deduct_fees_token(ctx: Context, 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, 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>, diff --git a/programs/bets/src/lib.rs b/programs/bets/src/lib.rs index 1409b78..7ea9f3d 100644 --- a/programs/bets/src/lib.rs +++ b/programs/bets/src/lib.rs @@ -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, winner:Pubkey, userid:String)->Result<()>{ - deduct_fees_token::handle_deduct_fees_token(ctx, winner, userid) + pub fn deduct_fees_token(ctx:Context, 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, winner:Pubkey, userid:String)->Result<()>{ - close_bet_token::close_token_bet(ctx, winner, userid) + pub fn close_bet_token(ctx:Context, 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) -> Result<()> { clear_bets_list::clear(ctx)