manifest/program/instruction_builders/
global_clean_instruction.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
use crate::program::{global_clean::GlobalCleanParams, ManifestInstruction};
use borsh::BorshSerialize;
use hypertree::DataIndex;
use solana_program::{
    instruction::{AccountMeta, Instruction},
    pubkey::Pubkey,
    system_program,
};

pub fn global_clean_instruction(
    global: &Pubkey,
    payer: &Pubkey,
    market: &Pubkey,
    order_index: DataIndex,
) -> Instruction {
    Instruction {
        program_id: crate::id(),
        accounts: vec![
            AccountMeta::new(*payer, true),
            AccountMeta::new(*market, false),
            AccountMeta::new_readonly(system_program::id(), false),
            AccountMeta::new(*global, false),
        ],
        data: [
            ManifestInstruction::GlobalClean.to_vec(),
            GlobalCleanParams::new(order_index).try_to_vec().unwrap(),
        ]
        .concat(),
    }
}