clockwork_http/instructions/
fee_claim.rs

1use {
2    crate::state::{Fee, FeeAccount, SEED_FEE},
3    anchor_lang::prelude::*,
4};
5
6#[derive(Accounts)]
7#[instruction(amount: u64)]
8pub struct FeeClaim<'info> {
9    #[account(mut)]
10    pub authority: Signer<'info>,
11
12    #[account(mut)]
13    pub pay_to: SystemAccount<'info>,
14
15    #[account(
16        mut,
17        seeds = [
18            SEED_FEE,
19            fee.authority.as_ref(),
20        ],
21        bump,
22        has_one = authority,
23    )]
24    pub fee: Account<'info, Fee>,
25}
26
27pub fn handler<'info>(ctx: Context<FeeClaim>, amount: u64) -> Result<()> {
28    // Get accounts
29    let pay_to = &mut ctx.accounts.pay_to;
30    let fee = &mut ctx.accounts.fee;
31
32    // Claim the fee funds
33    fee.claim_worker_balance(amount, pay_to)?;
34
35    Ok(())
36}