clockwork_crank/instructions/
queue_pause.rs

1use {
2    crate::state::*,
3    anchor_lang::prelude::*,
4};
5
6#[derive(Accounts)]
7pub struct QueuePause<'info> {
8    #[account()]
9    pub authority: Signer<'info>,
10
11    #[account(
12        mut,
13        seeds = [
14            SEED_QUEUE, 
15            queue.authority.key().as_ref(),
16            queue.id.as_bytes(),
17        ],
18        bump,
19        has_one = authority
20    )]
21    pub queue: Account<'info, Queue>,
22}
23
24pub fn handler(ctx: Context<QueuePause>) -> Result<()> {
25    // Get accounts
26    let queue = &mut ctx.accounts.queue;
27
28    // Pause the queue
29    queue.is_paused = true;
30    
31    Ok(())
32}