1use super::types::*;
2use once_cell::sync::Lazy;
3use serde::{Deserialize, Serialize};
4use solana_sdk::signature::Signature;
5
6#[derive(Debug, Clone, Serialize, Deserialize)]
10#[non_exhaustive]
11pub enum DexEvent {
12 RawAccountSnapshot(Box<crate::accounts::liquidity_snapshot::RawAccountSnapshotEvent>),
13 LiquidityAccountSnapshot(
14 Box<crate::accounts::liquidity_snapshot::LiquidityAccountSnapshotEvent>,
15 ),
16 PumpFunCreate(PumpFunCreateTokenEvent), PumpFunCreateV2(PumpFunCreateV2TokenEvent), PumpFunTrade(PumpFunTradeEvent), PumpFunBuy(PumpFunTradeEvent), PumpFunSell(PumpFunTradeEvent), PumpFunBuyExactSolIn(PumpFunTradeEvent), PumpFunMigrate(PumpFunMigrateEvent), PumpFeesCreateFeeSharingConfig(PumpFeesCreateFeeSharingConfigEvent),
26 PumpFeesInitializeFeeConfig(PumpFeesInitializeFeeConfigEvent),
27 PumpFeesResetFeeSharingConfig(PumpFeesResetFeeSharingConfigEvent),
28 PumpFeesRevokeFeeSharingAuthority(PumpFeesRevokeFeeSharingAuthorityEvent),
29 PumpFeesTransferFeeSharingAuthority(PumpFeesTransferFeeSharingAuthorityEvent),
30 PumpFeesUpdateAdmin(PumpFeesUpdateAdminEvent),
31 PumpFeesUpdateFeeConfig(PumpFeesUpdateFeeConfigEvent),
32 PumpFeesUpdateFeeShares(PumpFeesUpdateFeeSharesEvent),
33 PumpFeesUpsertFeeTiers(PumpFeesUpsertFeeTiersEvent),
34 PumpFunMigrateBondingCurveCreator(PumpFunMigrateBondingCurveCreatorEvent),
36 PumpFunGlobalAccount(PumpFunGlobalAccountEvent), PumpFunBondingCurveAccount(PumpFunBondingCurveAccountEvent),
38 PumpFunFeeConfigAccount(PumpFunFeeConfigAccountEvent),
39 PumpFunSharingConfigAccount(PumpFunSharingConfigAccountEvent),
40 PumpFunGlobalVolumeAccumulatorAccount(PumpFunGlobalVolumeAccumulatorAccountEvent),
41 PumpFunUserVolumeAccumulatorAccount(PumpFunUserVolumeAccumulatorAccountEvent),
42 PumpSwapTrade(PumpSwapTradeEvent), PumpSwapBuy(PumpSwapBuyEvent), PumpSwapSell(PumpSwapSellEvent), PumpSwapCreatePool(PumpSwapCreatePoolEvent), PumpSwapLiquidityAdded(PumpSwapLiquidityAdded), PumpSwapLiquidityRemoved(PumpSwapLiquidityRemoved), MeteoraDammV2Swap(MeteoraDammV2SwapEvent), MeteoraDammV2CreatePosition(MeteoraDammV2CreatePositionEvent), MeteoraDammV2ClosePosition(MeteoraDammV2ClosePositionEvent), MeteoraDammV2AddLiquidity(MeteoraDammV2AddLiquidityEvent), MeteoraDammV2RemoveLiquidity(MeteoraDammV2RemoveLiquidityEvent), MeteoraDammV2InitializePool(MeteoraDammV2InitializePoolEvent), MeteoraDammV2UpdateDelegatePermission(MeteoraDammV2UpdateDelegatePermissionEvent),
57 MeteoraDammV2WithdrawDeadLiquidityReward(MeteoraDammV2WithdrawDeadLiquidityRewardEvent),
58 MeteoraDammV2CreateConfig(MeteoraDammV2CreateConfigEvent),
59 MeteoraDammV2CreateDynamicConfig(MeteoraDammV2CreateDynamicConfigEvent),
60
61 MeteoraDbcSwap(MeteoraDbcSwapEvent),
63 MeteoraDbcInitializePool(MeteoraDbcInitializePoolEvent),
64 MeteoraDbcCurveComplete(MeteoraDbcCurveCompleteEvent),
65
66 RaydiumLaunchlabTrade(RaydiumLaunchlabTradeEvent),
68 RaydiumLaunchlabPoolCreate(RaydiumLaunchlabPoolCreateEvent),
69 RaydiumLaunchlabMigrateAmm(RaydiumLaunchlabMigrateAmmEvent),
70
71 RaydiumClmmSwap(RaydiumClmmSwapEvent),
73 RaydiumClmmCreatePool(RaydiumClmmCreatePoolEvent),
74 RaydiumClmmOpenPosition(RaydiumClmmOpenPositionEvent),
75 RaydiumClmmOpenPositionWithTokenExtNft(RaydiumClmmOpenPositionWithTokenExtNftEvent),
76 RaydiumClmmClosePosition(RaydiumClmmClosePositionEvent),
77 RaydiumClmmIncreaseLiquidity(RaydiumClmmIncreaseLiquidityEvent),
78 RaydiumClmmDecreaseLiquidity(RaydiumClmmDecreaseLiquidityEvent),
79 RaydiumClmmLiquidityChange(RaydiumClmmLiquidityChangeEvent),
80 RaydiumClmmConfigChange(RaydiumClmmConfigChangeEvent),
81 RaydiumClmmCreatePersonalPosition(RaydiumClmmCreatePersonalPositionEvent),
82 RaydiumClmmLiquidityCalculate(RaydiumClmmLiquidityCalculateEvent),
83 RaydiumClmmOpenLimitOrder(RaydiumClmmOpenLimitOrderEvent),
84 RaydiumClmmIncreaseLimitOrder(RaydiumClmmIncreaseLimitOrderEvent),
85 RaydiumClmmDecreaseLimitOrder(RaydiumClmmDecreaseLimitOrderEvent),
86 RaydiumClmmSettleLimitOrder(RaydiumClmmSettleLimitOrderEvent),
87 RaydiumClmmUpdateRewardInfos(RaydiumClmmUpdateRewardInfosEvent),
88 RaydiumClmmCollectFee(RaydiumClmmCollectFeeEvent),
89 RaydiumClmmAmmConfigAccount(Box<RaydiumClmmAmmConfigAccountEvent>),
90 RaydiumClmmPoolStateAccount(Box<RaydiumClmmPoolStateAccountEvent>),
91 RaydiumClmmTickArrayStateAccount(Box<RaydiumClmmTickArrayStateAccountEvent>),
92
93 RaydiumCpmmSwap(RaydiumCpmmSwapEvent),
95 RaydiumCpmmDeposit(RaydiumCpmmDepositEvent),
96 RaydiumCpmmWithdraw(RaydiumCpmmWithdrawEvent),
97 RaydiumCpmmInitialize(RaydiumCpmmInitializeEvent),
98 RaydiumCpmmAmmConfigAccount(Box<RaydiumCpmmAmmConfigAccountEvent>),
99 RaydiumCpmmPoolStateAccount(Box<RaydiumCpmmPoolStateAccountEvent>),
100 RaydiumCpmmCollectCreatorFee(RaydiumCpmmCollectCreatorFeeEvent),
101 RaydiumCpmmCreatorFeeShareAccount(Box<RaydiumCpmmCreatorFeeShareAccountEvent>),
102
103 RaydiumAmmV4Swap(RaydiumAmmV4SwapEvent),
105 RaydiumAmmV4Deposit(RaydiumAmmV4DepositEvent),
106 RaydiumAmmV4Initialize2(RaydiumAmmV4Initialize2Event),
107 RaydiumAmmV4Withdraw(RaydiumAmmV4WithdrawEvent),
108 RaydiumAmmV4WithdrawPnl(RaydiumAmmV4WithdrawPnlEvent),
109
110 OrcaWhirlpoolSwap(OrcaWhirlpoolSwapEvent),
112 OrcaWhirlpoolLiquidityIncreased(OrcaWhirlpoolLiquidityIncreasedEvent),
113 OrcaWhirlpoolLiquidityDecreased(OrcaWhirlpoolLiquidityDecreasedEvent),
114 OrcaWhirlpoolPoolInitialized(OrcaWhirlpoolPoolInitializedEvent),
115 OrcaWhirlpoolAccount(Box<OrcaWhirlpoolAccountEvent>),
116 OrcaPositionAccount(Box<OrcaPositionAccountEvent>),
117 OrcaTickArrayAccount(Box<OrcaTickArrayAccountEvent>),
118 OrcaFeeTierAccount(Box<OrcaFeeTierAccountEvent>),
119 OrcaWhirlpoolsConfigAccount(Box<OrcaWhirlpoolsConfigAccountEvent>),
120
121 MeteoraPoolsSwap(MeteoraPoolsSwapEvent),
123 MeteoraPoolsAddLiquidity(MeteoraPoolsAddLiquidityEvent),
124 MeteoraPoolsRemoveLiquidity(MeteoraPoolsRemoveLiquidityEvent),
125 MeteoraPoolsBootstrapLiquidity(MeteoraPoolsBootstrapLiquidityEvent),
126 MeteoraPoolsPoolCreated(MeteoraPoolsPoolCreatedEvent),
127 MeteoraPoolsSetPoolFees(MeteoraPoolsSetPoolFeesEvent),
128
129 MeteoraDlmmSwap(MeteoraDlmmSwapEvent),
131 MeteoraDlmmAddLiquidity(MeteoraDlmmAddLiquidityEvent),
132 MeteoraDlmmRemoveLiquidity(MeteoraDlmmRemoveLiquidityEvent),
133 MeteoraDlmmInitializePool(MeteoraDlmmInitializePoolEvent),
134 MeteoraDlmmInitializeBinArray(MeteoraDlmmInitializeBinArrayEvent),
135 MeteoraDlmmCreatePosition(MeteoraDlmmCreatePositionEvent),
136 MeteoraDlmmClosePosition(MeteoraDlmmClosePositionEvent),
137 MeteoraDlmmClaimFee(MeteoraDlmmClaimFeeEvent),
138
139 TokenInfo(TokenInfoEvent), TokenAccount(TokenAccountEvent), NonceAccount(NonceAccountEvent), PumpSwapGlobalConfigAccount(PumpSwapGlobalConfigAccountEvent), PumpSwapPoolAccount(PumpSwapPoolAccountEvent), BlockMeta(BlockMetaEvent),
148
149 Error(String),
151}
152
153static DEFAULT_METADATA: Lazy<EventMetadata> = Lazy::new(|| EventMetadata {
155 signature: Signature::from([0u8; 64]),
156 slot: 0,
157 tx_index: 0,
158 block_time_us: 0,
159 grpc_recv_us: 0,
160 recent_blockhash: None,
161});
162
163impl DexEvent {
164 pub fn metadata(&self) -> &EventMetadata {
166 match self {
167 DexEvent::PumpFunCreate(e) => &e.metadata,
169 DexEvent::PumpFunCreateV2(e) => &e.metadata,
170 DexEvent::PumpFunTrade(e) => &e.metadata,
171 DexEvent::PumpFunBuy(e) => &e.metadata,
172 DexEvent::PumpFunSell(e) => &e.metadata,
173 DexEvent::PumpFunBuyExactSolIn(e) => &e.metadata,
174 DexEvent::PumpFunMigrate(e) => &e.metadata,
175 DexEvent::PumpFeesCreateFeeSharingConfig(e) => &e.metadata,
176 DexEvent::PumpFeesInitializeFeeConfig(e) => &e.metadata,
177 DexEvent::PumpFeesResetFeeSharingConfig(e) => &e.metadata,
178 DexEvent::PumpFeesRevokeFeeSharingAuthority(e) => &e.metadata,
179 DexEvent::PumpFeesTransferFeeSharingAuthority(e) => &e.metadata,
180 DexEvent::PumpFeesUpdateAdmin(e) => &e.metadata,
181 DexEvent::PumpFeesUpdateFeeConfig(e) => &e.metadata,
182 DexEvent::PumpFeesUpdateFeeShares(e) => &e.metadata,
183 DexEvent::PumpFeesUpsertFeeTiers(e) => &e.metadata,
184 DexEvent::PumpFunMigrateBondingCurveCreator(e) => &e.metadata,
185 DexEvent::PumpFunGlobalAccount(e) => &e.metadata,
186 DexEvent::PumpFunBondingCurveAccount(e) => &e.metadata,
187 DexEvent::PumpFunFeeConfigAccount(e) => &e.metadata,
188 DexEvent::PumpFunSharingConfigAccount(e) => &e.metadata,
189 DexEvent::PumpFunGlobalVolumeAccumulatorAccount(e) => &e.metadata,
190 DexEvent::PumpFunUserVolumeAccumulatorAccount(e) => &e.metadata,
191
192 DexEvent::PumpSwapTrade(e) => &e.metadata,
194 DexEvent::PumpSwapBuy(e) => &e.metadata,
195 DexEvent::PumpSwapSell(e) => &e.metadata,
196 DexEvent::PumpSwapCreatePool(e) => &e.metadata,
197 DexEvent::PumpSwapLiquidityAdded(e) => &e.metadata,
198 DexEvent::PumpSwapLiquidityRemoved(e) => &e.metadata,
199
200 DexEvent::MeteoraDammV2Swap(e) => &e.metadata,
202 DexEvent::MeteoraDammV2CreatePosition(e) => &e.metadata,
203 DexEvent::MeteoraDammV2ClosePosition(e) => &e.metadata,
204 DexEvent::MeteoraDammV2AddLiquidity(e) => &e.metadata,
205 DexEvent::MeteoraDammV2RemoveLiquidity(e) => &e.metadata,
206 DexEvent::MeteoraDammV2InitializePool(e) => &e.metadata,
207 DexEvent::MeteoraDammV2UpdateDelegatePermission(e) => &e.metadata,
208 DexEvent::MeteoraDammV2WithdrawDeadLiquidityReward(e) => &e.metadata,
209 DexEvent::MeteoraDammV2CreateConfig(e) => &e.metadata,
210 DexEvent::MeteoraDammV2CreateDynamicConfig(e) => &e.metadata,
211 DexEvent::MeteoraDbcSwap(e) => &e.metadata,
212 DexEvent::MeteoraDbcInitializePool(e) => &e.metadata,
213 DexEvent::MeteoraDbcCurveComplete(e) => &e.metadata,
214
215 DexEvent::RaydiumLaunchlabTrade(e) => &e.metadata,
217 DexEvent::RaydiumLaunchlabPoolCreate(e) => &e.metadata,
218 DexEvent::RaydiumLaunchlabMigrateAmm(e) => &e.metadata,
219
220 DexEvent::RaydiumClmmSwap(e) => &e.metadata,
222 DexEvent::RaydiumClmmCreatePool(e) => &e.metadata,
223 DexEvent::RaydiumClmmOpenPosition(e) => &e.metadata,
224 DexEvent::RaydiumClmmOpenPositionWithTokenExtNft(e) => &e.metadata,
225 DexEvent::RaydiumClmmClosePosition(e) => &e.metadata,
226 DexEvent::RaydiumClmmIncreaseLiquidity(e) => &e.metadata,
227 DexEvent::RaydiumClmmDecreaseLiquidity(e) => &e.metadata,
228 DexEvent::RaydiumClmmLiquidityChange(e) => &e.metadata,
229 DexEvent::RaydiumClmmConfigChange(e) => &e.metadata,
230 DexEvent::RaydiumClmmCreatePersonalPosition(e) => &e.metadata,
231 DexEvent::RaydiumClmmLiquidityCalculate(e) => &e.metadata,
232 DexEvent::RaydiumClmmOpenLimitOrder(e) => &e.metadata,
233 DexEvent::RaydiumClmmIncreaseLimitOrder(e) => &e.metadata,
234 DexEvent::RaydiumClmmDecreaseLimitOrder(e) => &e.metadata,
235 DexEvent::RaydiumClmmSettleLimitOrder(e) => &e.metadata,
236 DexEvent::RaydiumClmmUpdateRewardInfos(e) => &e.metadata,
237 DexEvent::RaydiumClmmCollectFee(e) => &e.metadata,
238 DexEvent::RaydiumClmmAmmConfigAccount(e) => &e.metadata,
239 DexEvent::RaydiumClmmPoolStateAccount(e) => &e.metadata,
240 DexEvent::RaydiumClmmTickArrayStateAccount(e) => &e.metadata,
241
242 DexEvent::RaydiumCpmmSwap(e) => &e.metadata,
244 DexEvent::RaydiumCpmmDeposit(e) => &e.metadata,
245 DexEvent::RaydiumCpmmWithdraw(e) => &e.metadata,
246 DexEvent::RaydiumCpmmInitialize(e) => &e.metadata,
247 DexEvent::RaydiumCpmmAmmConfigAccount(e) => &e.metadata,
248 DexEvent::RaydiumCpmmPoolStateAccount(e) => &e.metadata,
249 DexEvent::RaydiumCpmmCollectCreatorFee(e) => &e.metadata,
250 DexEvent::RaydiumCpmmCreatorFeeShareAccount(e) => &e.metadata,
251
252 DexEvent::RaydiumAmmV4Swap(e) => &e.metadata,
254 DexEvent::RaydiumAmmV4Deposit(e) => &e.metadata,
255 DexEvent::RaydiumAmmV4Initialize2(e) => &e.metadata,
256 DexEvent::RaydiumAmmV4Withdraw(e) => &e.metadata,
257 DexEvent::RaydiumAmmV4WithdrawPnl(e) => &e.metadata,
258
259 DexEvent::OrcaWhirlpoolSwap(e) => &e.metadata,
261 DexEvent::OrcaWhirlpoolLiquidityIncreased(e) => &e.metadata,
262 DexEvent::OrcaWhirlpoolLiquidityDecreased(e) => &e.metadata,
263 DexEvent::OrcaWhirlpoolPoolInitialized(e) => &e.metadata,
264 DexEvent::OrcaWhirlpoolAccount(e) => &e.metadata,
265 DexEvent::OrcaPositionAccount(e) => &e.metadata,
266 DexEvent::OrcaTickArrayAccount(e) => &e.metadata,
267 DexEvent::LiquidityAccountSnapshot(e) => &e.metadata,
268 DexEvent::RawAccountSnapshot(e) => &e.metadata,
269 DexEvent::OrcaFeeTierAccount(e) => &e.metadata,
270 DexEvent::OrcaWhirlpoolsConfigAccount(e) => &e.metadata,
271
272 DexEvent::MeteoraPoolsSwap(e) => &e.metadata,
274 DexEvent::MeteoraPoolsAddLiquidity(e) => &e.metadata,
275 DexEvent::MeteoraPoolsRemoveLiquidity(e) => &e.metadata,
276 DexEvent::MeteoraPoolsBootstrapLiquidity(e) => &e.metadata,
277 DexEvent::MeteoraPoolsPoolCreated(e) => &e.metadata,
278 DexEvent::MeteoraPoolsSetPoolFees(e) => &e.metadata,
279
280 DexEvent::MeteoraDlmmSwap(e) => &e.metadata,
282 DexEvent::MeteoraDlmmAddLiquidity(e) => &e.metadata,
283 DexEvent::MeteoraDlmmRemoveLiquidity(e) => &e.metadata,
284 DexEvent::MeteoraDlmmInitializePool(e) => &e.metadata,
285 DexEvent::MeteoraDlmmInitializeBinArray(e) => &e.metadata,
286 DexEvent::MeteoraDlmmCreatePosition(e) => &e.metadata,
287 DexEvent::MeteoraDlmmClosePosition(e) => &e.metadata,
288 DexEvent::MeteoraDlmmClaimFee(e) => &e.metadata,
289
290 DexEvent::TokenInfo(e) => &e.metadata,
292 DexEvent::TokenAccount(e) => &e.metadata,
293 DexEvent::NonceAccount(e) => &e.metadata,
294 DexEvent::PumpSwapGlobalConfigAccount(e) => &e.metadata,
295 DexEvent::PumpSwapPoolAccount(e) => &e.metadata,
296
297 DexEvent::BlockMeta(e) => &e.metadata,
299
300 DexEvent::Error(_) => &DEFAULT_METADATA,
302 }
303 }
304
305 pub fn metadata_mut(&mut self) -> Option<&mut EventMetadata> {
307 match self {
308 DexEvent::PumpFunCreate(e) => Some(&mut e.metadata),
309 DexEvent::PumpFunCreateV2(e) => Some(&mut e.metadata),
310 DexEvent::PumpFunTrade(e) => Some(&mut e.metadata),
311 DexEvent::PumpFunBuy(e) => Some(&mut e.metadata),
312 DexEvent::PumpFunSell(e) => Some(&mut e.metadata),
313 DexEvent::PumpFunBuyExactSolIn(e) => Some(&mut e.metadata),
314 DexEvent::PumpFunMigrate(e) => Some(&mut e.metadata),
315 DexEvent::PumpFeesCreateFeeSharingConfig(e) => Some(&mut e.metadata),
316 DexEvent::PumpFeesInitializeFeeConfig(e) => Some(&mut e.metadata),
317 DexEvent::PumpFeesResetFeeSharingConfig(e) => Some(&mut e.metadata),
318 DexEvent::PumpFeesRevokeFeeSharingAuthority(e) => Some(&mut e.metadata),
319 DexEvent::PumpFeesTransferFeeSharingAuthority(e) => Some(&mut e.metadata),
320 DexEvent::PumpFeesUpdateAdmin(e) => Some(&mut e.metadata),
321 DexEvent::PumpFeesUpdateFeeConfig(e) => Some(&mut e.metadata),
322 DexEvent::PumpFeesUpdateFeeShares(e) => Some(&mut e.metadata),
323 DexEvent::PumpFeesUpsertFeeTiers(e) => Some(&mut e.metadata),
324 DexEvent::PumpFunMigrateBondingCurveCreator(e) => Some(&mut e.metadata),
325 DexEvent::PumpFunGlobalAccount(e) => Some(&mut e.metadata),
326 DexEvent::PumpFunBondingCurveAccount(e) => Some(&mut e.metadata),
327 DexEvent::PumpFunFeeConfigAccount(e) => Some(&mut e.metadata),
328 DexEvent::PumpFunSharingConfigAccount(e) => Some(&mut e.metadata),
329 DexEvent::PumpFunGlobalVolumeAccumulatorAccount(e) => Some(&mut e.metadata),
330 DexEvent::PumpFunUserVolumeAccumulatorAccount(e) => Some(&mut e.metadata),
331 DexEvent::PumpSwapTrade(e) => Some(&mut e.metadata),
332 DexEvent::PumpSwapBuy(e) => Some(&mut e.metadata),
333 DexEvent::PumpSwapSell(e) => Some(&mut e.metadata),
334 DexEvent::PumpSwapCreatePool(e) => Some(&mut e.metadata),
335 DexEvent::PumpSwapLiquidityAdded(e) => Some(&mut e.metadata),
336 DexEvent::PumpSwapLiquidityRemoved(e) => Some(&mut e.metadata),
337 DexEvent::MeteoraDammV2Swap(e) => Some(&mut e.metadata),
338 DexEvent::MeteoraDammV2CreatePosition(e) => Some(&mut e.metadata),
339 DexEvent::MeteoraDammV2ClosePosition(e) => Some(&mut e.metadata),
340 DexEvent::MeteoraDammV2AddLiquidity(e) => Some(&mut e.metadata),
341 DexEvent::MeteoraDammV2RemoveLiquidity(e) => Some(&mut e.metadata),
342 DexEvent::MeteoraDammV2InitializePool(e) => Some(&mut e.metadata),
343 DexEvent::MeteoraDammV2UpdateDelegatePermission(e) => Some(&mut e.metadata),
344 DexEvent::MeteoraDammV2WithdrawDeadLiquidityReward(e) => Some(&mut e.metadata),
345 DexEvent::MeteoraDammV2CreateConfig(e) => Some(&mut e.metadata),
346 DexEvent::MeteoraDammV2CreateDynamicConfig(e) => Some(&mut e.metadata),
347 DexEvent::MeteoraDbcSwap(e) => Some(&mut e.metadata),
348 DexEvent::MeteoraDbcInitializePool(e) => Some(&mut e.metadata),
349 DexEvent::MeteoraDbcCurveComplete(e) => Some(&mut e.metadata),
350 DexEvent::RaydiumLaunchlabTrade(e) => Some(&mut e.metadata),
351 DexEvent::RaydiumLaunchlabPoolCreate(e) => Some(&mut e.metadata),
352 DexEvent::RaydiumLaunchlabMigrateAmm(e) => Some(&mut e.metadata),
353 DexEvent::RaydiumClmmSwap(e) => Some(&mut e.metadata),
354 DexEvent::RaydiumClmmCreatePool(e) => Some(&mut e.metadata),
355 DexEvent::RaydiumClmmOpenPosition(e) => Some(&mut e.metadata),
356 DexEvent::RaydiumClmmOpenPositionWithTokenExtNft(e) => Some(&mut e.metadata),
357 DexEvent::RaydiumClmmClosePosition(e) => Some(&mut e.metadata),
358 DexEvent::RaydiumClmmIncreaseLiquidity(e) => Some(&mut e.metadata),
359 DexEvent::RaydiumClmmDecreaseLiquidity(e) => Some(&mut e.metadata),
360 DexEvent::RaydiumClmmLiquidityChange(e) => Some(&mut e.metadata),
361 DexEvent::RaydiumClmmConfigChange(e) => Some(&mut e.metadata),
362 DexEvent::RaydiumClmmCreatePersonalPosition(e) => Some(&mut e.metadata),
363 DexEvent::RaydiumClmmLiquidityCalculate(e) => Some(&mut e.metadata),
364 DexEvent::RaydiumClmmOpenLimitOrder(e) => Some(&mut e.metadata),
365 DexEvent::RaydiumClmmIncreaseLimitOrder(e) => Some(&mut e.metadata),
366 DexEvent::RaydiumClmmDecreaseLimitOrder(e) => Some(&mut e.metadata),
367 DexEvent::RaydiumClmmSettleLimitOrder(e) => Some(&mut e.metadata),
368 DexEvent::RaydiumClmmUpdateRewardInfos(e) => Some(&mut e.metadata),
369 DexEvent::RaydiumClmmCollectFee(e) => Some(&mut e.metadata),
370 DexEvent::RaydiumClmmAmmConfigAccount(e) => Some(&mut e.metadata),
371 DexEvent::RaydiumClmmPoolStateAccount(e) => Some(&mut e.metadata),
372 DexEvent::RaydiumClmmTickArrayStateAccount(e) => Some(&mut e.metadata),
373 DexEvent::RaydiumCpmmSwap(e) => Some(&mut e.metadata),
374 DexEvent::RaydiumCpmmDeposit(e) => Some(&mut e.metadata),
375 DexEvent::RaydiumCpmmWithdraw(e) => Some(&mut e.metadata),
376 DexEvent::RaydiumCpmmInitialize(e) => Some(&mut e.metadata),
377 DexEvent::RaydiumCpmmAmmConfigAccount(e) => Some(&mut e.metadata),
378 DexEvent::RaydiumCpmmPoolStateAccount(e) => Some(&mut e.metadata),
379 DexEvent::RaydiumCpmmCollectCreatorFee(e) => Some(&mut e.metadata),
380 DexEvent::RaydiumCpmmCreatorFeeShareAccount(e) => Some(&mut e.metadata),
381 DexEvent::RaydiumAmmV4Swap(e) => Some(&mut e.metadata),
382 DexEvent::RaydiumAmmV4Deposit(e) => Some(&mut e.metadata),
383 DexEvent::RaydiumAmmV4Initialize2(e) => Some(&mut e.metadata),
384 DexEvent::RaydiumAmmV4Withdraw(e) => Some(&mut e.metadata),
385 DexEvent::RaydiumAmmV4WithdrawPnl(e) => Some(&mut e.metadata),
386 DexEvent::OrcaWhirlpoolSwap(e) => Some(&mut e.metadata),
387 DexEvent::OrcaWhirlpoolLiquidityIncreased(e) => Some(&mut e.metadata),
388 DexEvent::OrcaWhirlpoolLiquidityDecreased(e) => Some(&mut e.metadata),
389 DexEvent::OrcaWhirlpoolPoolInitialized(e) => Some(&mut e.metadata),
390 DexEvent::OrcaWhirlpoolAccount(e) => Some(&mut e.metadata),
391 DexEvent::OrcaPositionAccount(e) => Some(&mut e.metadata),
392 DexEvent::OrcaTickArrayAccount(e) => Some(&mut e.metadata),
393 DexEvent::LiquidityAccountSnapshot(e) => Some(&mut e.metadata),
394 DexEvent::RawAccountSnapshot(e) => Some(&mut e.metadata),
395 DexEvent::OrcaFeeTierAccount(e) => Some(&mut e.metadata),
396 DexEvent::OrcaWhirlpoolsConfigAccount(e) => Some(&mut e.metadata),
397 DexEvent::MeteoraPoolsSwap(e) => Some(&mut e.metadata),
398 DexEvent::MeteoraPoolsAddLiquidity(e) => Some(&mut e.metadata),
399 DexEvent::MeteoraPoolsRemoveLiquidity(e) => Some(&mut e.metadata),
400 DexEvent::MeteoraPoolsBootstrapLiquidity(e) => Some(&mut e.metadata),
401 DexEvent::MeteoraPoolsPoolCreated(e) => Some(&mut e.metadata),
402 DexEvent::MeteoraPoolsSetPoolFees(e) => Some(&mut e.metadata),
403 DexEvent::MeteoraDlmmSwap(e) => Some(&mut e.metadata),
404 DexEvent::MeteoraDlmmAddLiquidity(e) => Some(&mut e.metadata),
405 DexEvent::MeteoraDlmmRemoveLiquidity(e) => Some(&mut e.metadata),
406 DexEvent::MeteoraDlmmInitializePool(e) => Some(&mut e.metadata),
407 DexEvent::MeteoraDlmmInitializeBinArray(e) => Some(&mut e.metadata),
408 DexEvent::MeteoraDlmmCreatePosition(e) => Some(&mut e.metadata),
409 DexEvent::MeteoraDlmmClosePosition(e) => Some(&mut e.metadata),
410 DexEvent::MeteoraDlmmClaimFee(e) => Some(&mut e.metadata),
411 DexEvent::TokenInfo(e) => Some(&mut e.metadata),
412 DexEvent::TokenAccount(e) => Some(&mut e.metadata),
413 DexEvent::NonceAccount(e) => Some(&mut e.metadata),
414 DexEvent::PumpSwapGlobalConfigAccount(e) => Some(&mut e.metadata),
415 DexEvent::PumpSwapPoolAccount(e) => Some(&mut e.metadata),
416 DexEvent::BlockMeta(e) => Some(&mut e.metadata),
417 DexEvent::Error(_) => None,
418 }
419 }
420}