1use borsh::BorshSerialize;
2
3#[derive(BorshSerialize, Copy, Clone, Debug, PartialEq)]
4pub enum Side {
5 Bid,
6 Ask,
7}
8
9#[derive(BorshSerialize, Clone, PartialEq, Debug)]
10pub enum Swap {
11 Saber,
12 SaberAddDecimalsDeposit,
13 SaberAddDecimalsWithdraw,
14 TokenSwap,
15 Sencha,
16 Step,
17 Cropper,
18 Raydium,
19 Crema {
20 a_to_b: bool,
21 },
22 Lifinity,
23 Mercurial,
24 Cykura,
25 Serum {
26 side: Side,
27 },
28 MarinadeDeposit,
29 MarinadeUnstake,
30 Aldrin {
31 side: Side,
32 },
33 AldrinV2 {
34 side: Side,
35 },
36 Whirlpool {
37 a_to_b: bool,
38 },
39 Invariant {
40 x_to_y: bool,
41 },
42 Meteora,
43 GooseFX,
44 DeltaFi {
45 stable: bool,
46 },
47 Balansol,
48 MarcoPolo {
49 x_to_y: bool,
50 },
51 Dradex {
52 side: Side,
53 },
54 LifinityV2,
55 RaydiumClmm,
56 Openbook {
57 side: Side,
58 },
59 Phoenix {
60 side: Side,
61 },
62 Symmetry {
63 from_token_id: u64,
64 to_token_id: u64,
65 },
66 TokenSwapV2,
67 HeliumTreasuryManagementRedeemV0,
68 StakeDexStakeWrappedSol,
69 StakeDexSwapViaStake {
70 bridge_stake_seed: u32,
71 },
72 GooseFXV2,
73 Perps,
74 PerpsAddLiquidity,
75 PerpsRemoveLiquidity,
76 MeteoraDlmm,
77 OpenBookV2 {
78 side: Side,
79 },
80 RaydiumClmmV2,
81 StakeDexPrefundWithdrawStakeAndDepositStake {
82 bridge_stake_seed: u32,
83 },
84 Clone {
85 pool_index: u8,
86 quantity_is_input: bool,
87 quantity_is_collateral: bool,
88 },
89 SanctumS {
90 src_lst_value_calc_accs: u8,
91 dst_lst_value_calc_accs: u8,
92 src_lst_index: u32,
93 dst_lst_index: u32,
94 },
95 SanctumSAddLiquidity {
96 lst_value_calc_accs: u8,
97 lst_index: u32,
98 },
99 SanctumSRemoveLiquidity {
100 lst_value_calc_accs: u8,
101 lst_index: u32,
102 },
103 RaydiumCP,
104 WhirlpoolSwapV2 {
105 a_to_b: bool,
106 remaining_accounts_info: Option<RemainingAccountsInfo>,
107 },
108 OneIntro,
109 PumpdotfunWrappedBuy,
110 PumpdotfunWrappedSell,
111 PerpsV2Swap,
112 PerpsV2AddLiquidity,
113 PerpsV2RemoveLiquidity,
114 MoonshotWrappedBuy,
115 MoonshotWrappedSell,
116 StabbleStableSwap,
117 StabbleWeightedSwap,
118 Obric {
119 x_to_y: bool,
120 },
121 FoxBuyFromEstimatedCost,
122 FoxClaimPartial {
123 is_y: bool,
124 },
125 SolFi {
126 is_quote_to_base: bool,
127 },
128 SolayerDelegateNoInit,
129 SolayerUndelegateNoInit,
130 TokenMill {
131 side: Side,
132 },
133 DaosFunBuy,
134 DaosFunSell,
135 ZeroFi,
136 StakeDexWithdrawWrappedSol,
137}
138
139#[derive(BorshSerialize, Clone, PartialEq, Eq, Debug)]
140pub enum AccountsType {
141 TransferHookA,
142 TransferHookB,
143 }
151
152#[derive(BorshSerialize, Clone, Debug, PartialEq)]
153pub struct RemainingAccountsSlice {
154 pub accounts_type: AccountsType,
155 pub length: u8,
156}
157
158#[derive(BorshSerialize, Clone, Debug, PartialEq)]
159pub struct RemainingAccountsInfo {
160 pub slices: Vec<RemainingAccountsSlice>,
161}