diff --git a/programs/bets/src/instructions/clear_bets_list.rs b/programs/bets/src/instructions/clear_bets_list.rs new file mode 100644 index 0000000..033c74a --- /dev/null +++ b/programs/bets/src/instructions/clear_bets_list.rs @@ -0,0 +1,22 @@ +use anchor_lang::prelude::*; +use crate::*; + +pub fn clear(ctx: Context) -> Result<()> { + let bets_list = &mut ctx.accounts.bets_list; + bets_list.bets.clear(); + msg!("Cleared all bets from the list!"); + Ok(()) +} + +#[derive(Accounts)] +pub struct ClearBetsList<'info> { + #[account( + mut, + seeds = [b"bets_list"], + bump + )] + pub bets_list: Account<'info, BetsList>, + + #[account(mut)] + pub payer: Signer<'info>, +} \ No newline at end of file diff --git a/programs/bets/src/instructions/mod.rs b/programs/bets/src/instructions/mod.rs index 40f4def..f4e21ae 100644 --- a/programs/bets/src/instructions/mod.rs +++ b/programs/bets/src/instructions/mod.rs @@ -14,4 +14,7 @@ pub mod refund_bet; pub use refund_bet::*; pub mod deduct_fees; -pub use deduct_fees::*; \ No newline at end of file +pub use deduct_fees::*; + +pub mod clear_bets_list; +pub use clear_bets_list::*; \ No newline at end of file diff --git a/programs/bets/src/lib.rs b/programs/bets/src/lib.rs index f3c169c..3594b17 100644 --- a/programs/bets/src/lib.rs +++ b/programs/bets/src/lib.rs @@ -38,4 +38,8 @@ pub mod bets { pub fn deduct_fees(ctx:Context, winner:Pubkey, userid:String)->Result<()>{ deduct_fees::deduct(ctx, winner, userid) } + + pub fn clear_bets_list(ctx: Context) -> Result<()> { + clear_bets_list::clear(ctx) + } }