intent_transfer/config/processor/
register_ntt_config.rs1use crate::config::access_control::*;
2use crate::config::state::ntt_config::{ExpectedNttConfig, EXPECTED_NTT_CONFIG_SEED};
3use anchor_lang::prelude::*;
4use anchor_spl::token::Mint;
5
6#[derive(Accounts)]
7pub struct RegisterNttConfig<'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 = ExpectedNttConfig::DISCRIMINATOR.len() + ExpectedNttConfig::INIT_SPACE,
16 seeds = [EXPECTED_NTT_CONFIG_SEED, mint.key().as_ref()],
17 bump
18 )]
19 pub expected_ntt_config: Account<'info, ExpectedNttConfig>,
20
21 pub ntt_manager: UncheckedAccount<'info>,
23
24 pub system_program: Program<'info, System>,
25}
26
27impl<'info> RegisterNttConfig<'info> {
28 pub fn process(&mut self) -> Result<()> {
29 self.expected_ntt_config.manager = self.ntt_manager.key();
30 Ok(())
31 }
32}