intent_transfer/config/processor/
register_fee_config.rs

1use crate::config::access_control::*;
2use crate::config::state::fee_config::{FeeConfig, FEE_CONFIG_SEED};
3use anchor_lang::prelude::*;
4use anchor_spl::token::Mint;
5
6#[derive(Accounts)]
7pub struct RegisterFeeConfig<'info> {
8    pub upgrade_authority: UpgradeAuthority<'info>,
9
10    pub mint: Account<'info, Mint>,
11
12    #[account(
13        init_if_needed,
14        payer = upgrade_authority.signer,
15        space = FeeConfig::DISCRIMINATOR.len() + FeeConfig::INIT_SPACE,
16        seeds = [FEE_CONFIG_SEED, mint.key().as_ref()],
17        bump
18    )]
19    pub fee_config: Account<'info, FeeConfig>,
20    pub system_program: Program<'info, System>,
21}
22
23impl<'info> RegisterFeeConfig<'info> {
24    pub fn process(&mut self, fee_config: FeeConfig) -> Result<()> {
25        *self.fee_config = fee_config;
26        Ok(())
27    }
28}