use anchor_lang::prelude::*;
use crate::states::{Config, CONFIG_SEED, MAX_PREFIX_LEN};
#[derive(Accounts)]
pub struct InitializeConfig<'info> {
#[account(mut)]
pub payer: Signer<'info>,
#[account(
init,
payer = payer,
space = 8 + Config::INIT_SPACE,
seeds = [CONFIG_SEED],
bump,
)]
pub config: Account<'info, Config>,
pub system_program: Program<'info, System>,
}
impl InitializeConfig<'_> {
pub(crate) fn invoke(ctx: Context<Self>, prefix: String) -> Result<()> {
require_gte!(usize::from(MAX_PREFIX_LEN), prefix.len());
ctx.accounts.config.prefix = prefix;
Ok(())
}
}