diff --git a/programs/bets/src/instructions/close_bet.rs b/programs/bets/src/instructions/close_bet.rs index b3d3c20..fb9f5cd 100644 --- a/programs/bets/src/instructions/close_bet.rs +++ b/programs/bets/src/instructions/close_bet.rs @@ -3,10 +3,10 @@ use std::str::FromStr; use anchor_lang::prelude::*; use crate::{error::BettingError, *}; -pub fn close(ctx: Context, winner:Pubkey)->Result<()>{ +pub fn close(ctx: Context, winner:Pubkey, userid:String)->Result<()>{ let bet_vault = &mut ctx.accounts.bet_vault; require!( - bet_vault.owner == winner || bet_vault.joiner == winner, + bet_vault.owner == winner || bet_vault.joiner == winner || bet_vault.owner_id == userid || bet_vault.joiner_id == userid, BettingError::InvalidWinner ); diff --git a/programs/bets/src/lib.rs b/programs/bets/src/lib.rs index 9e0d084..d73d463 100644 --- a/programs/bets/src/lib.rs +++ b/programs/bets/src/lib.rs @@ -27,8 +27,8 @@ pub mod bets { join_bet::join(ctx,user_id, game_id) } - pub fn close_bet(ctx:Context, winner:Pubkey)->Result<()> { - close_bet::close(ctx, winner) + pub fn close_bet(ctx:Context, winner:Pubkey, userid:String)->Result<()> { + close_bet::close(ctx, winner, userid) } pub fn refund_bet(ctx:Context, owner:Pubkey)->Result<()>{