manifest/program/instruction_builders/
global_clean_instruction.rs1use 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}