9f100ee122
- anchor-lang 0.31.1 вместо 2.0-rc/anchor-next (git) - Address -> Pubkey (state/events/instructions) - убран #[discrim], добавлен #[derive(InitSpace)] + space=8+INIT_SPACE - тесты переписаны на solana-program-test 2.x (10 passed) - сборка SBPFv3 через cargo build-sbf --tools-version v1.57 - deploy успешен в нашу сеть (agave 4.2.2, SBPFv3)
38 lines
934 B
Rust
38 lines
934 B
Rust
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<Initialize>,
|
|
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(())
|
|
}
|