manifest/program/instruction_builders/
global_clean_instruction.rs

1use crate::program::{global_clean::GlobalCleanParams, ManifestInstruction};
2use borsh::BorshSerialize;
3use hypertree::DataIndex;
4use solana_program::{
5    instruction::{AccountMeta, Instruction},
6    pubkey::Pubkey,
7    system_program,
8};
9
10pub fn global_clean_instruction(
11    global: &Pubkey,
12    payer: &Pubkey,
13    market: &Pubkey,
14    order_index: DataIndex,
15) -> Instruction {
16    Instruction {
17        program_id: crate::id(),
18        accounts: vec![
19            AccountMeta::new(*payer, true),
20            AccountMeta::new(*market, false),
21            AccountMeta::new_readonly(system_program::id(), false),
22            AccountMeta::new(*global, false),
23        ],
24        data: [
25            ManifestInstruction::GlobalClean.to_vec(),
26            GlobalCleanParams::new(order_index).try_to_vec().unwrap(),
27        ]
28        .concat(),
29    }
30}