use anchor_lang::prelude::*; use crate::{constants::GLOBAL_SEED, state::Global}; #[derive(Accounts)] pub struct Initialize<'info> { #[account(mut)] pub admin: Signer<'info>, #[account( init, payer = admin, space = 8 + Global::INIT_SPACE, seeds = [GLOBAL_SEED], bump )] pub global: Account<'info, Global>, pub system_program: Program<'info, System>, } pub fn handler( ctx: &mut Context, min_amount: u64, max_amount: u64, multiplier_bps: u64, expiry_seconds: i64, ) -> Result<()> { let global = &mut ctx.accounts.global; global.admin = ctx.accounts.admin.key(); global.relayer = ctx.accounts.admin.key(); global.counter = 0; global.min_amount = min_amount; global.max_amount = max_amount; global.multiplier_bps = multiplier_bps; global.paused = 0; global.expiry_seconds = expiry_seconds; Ok(()) }