intent_transfer/config/processor/
register_fee_config.rs1use 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}