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), MeteoraDammV2ClaimPositionFee(MeteoraDammV2ClaimPositionFeeEvent),
52 MeteoraDammV2ClaimReward(MeteoraDammV2ClaimRewardEvent),
53 MeteoraDlmmClaimReward(MeteoraDlmmClaimRewardEvent),
54 MeteoraDammV2CreatePosition(MeteoraDammV2CreatePositionEvent), MeteoraDammV2ClosePosition(MeteoraDammV2ClosePositionEvent), MeteoraDammV2AddLiquidity(MeteoraDammV2AddLiquidityEvent), MeteoraDammV2RemoveLiquidity(MeteoraDammV2RemoveLiquidityEvent), MeteoraDammV2InitializePool(MeteoraDammV2InitializePoolEvent), MeteoraDammV2UpdateDelegatePermission(MeteoraDammV2UpdateDelegatePermissionEvent),
60 MeteoraDammV2WithdrawDeadLiquidityReward(MeteoraDammV2WithdrawDeadLiquidityRewardEvent),
61 MeteoraDammV2WithdrawIneligibleReward(MeteoraDammV2WithdrawIneligibleRewardEvent),
62 MeteoraDammV2UpdateRewardFunder(MeteoraDammV2UpdateRewardFunderEvent),
63 MeteoraDammV2UpdateRewardDuration(MeteoraDammV2UpdateRewardDurationEvent),
64 MeteoraDammV2InitializeReward(MeteoraDammV2InitializeRewardEvent),
65 MeteoraDammV2FundReward(MeteoraDammV2FundRewardEvent),
66 MeteoraDammV2CreateConfig(MeteoraDammV2CreateConfigEvent),
67 MeteoraDammV2CreateDynamicConfig(MeteoraDammV2CreateDynamicConfigEvent),
68
69 MeteoraDbcSwap(MeteoraDbcSwapEvent),
71 MeteoraDbcInitializePool(MeteoraDbcInitializePoolEvent),
72 MeteoraDbcCurveComplete(MeteoraDbcCurveCompleteEvent),
73
74 RaydiumLaunchlabTrade(RaydiumLaunchlabTradeEvent),
76 RaydiumLaunchlabPoolCreate(RaydiumLaunchlabPoolCreateEvent),
77 RaydiumLaunchlabMigrateAmm(RaydiumLaunchlabMigrateAmmEvent),
78
79 RaydiumClmmSwap(RaydiumClmmSwapEvent),
81 RaydiumClmmCreatePool(RaydiumClmmCreatePoolEvent),
82 RaydiumClmmOpenPosition(RaydiumClmmOpenPositionEvent),
83 RaydiumClmmOpenPositionWithTokenExtNft(RaydiumClmmOpenPositionWithTokenExtNftEvent),
84 RaydiumClmmClosePosition(RaydiumClmmClosePositionEvent),
85 RaydiumClmmIncreaseLiquidity(RaydiumClmmIncreaseLiquidityEvent),
86 RaydiumClmmDecreaseLiquidity(RaydiumClmmDecreaseLiquidityEvent),
87 RaydiumClmmLiquidityChange(RaydiumClmmLiquidityChangeEvent),
88 RaydiumClmmConfigChange(RaydiumClmmConfigChangeEvent),
89 RaydiumClmmCreatePersonalPosition(RaydiumClmmCreatePersonalPositionEvent),
90 RaydiumClmmLiquidityCalculate(RaydiumClmmLiquidityCalculateEvent),
91 RaydiumClmmOpenLimitOrder(RaydiumClmmOpenLimitOrderEvent),
92 RaydiumClmmIncreaseLimitOrder(RaydiumClmmIncreaseLimitOrderEvent),
93 RaydiumClmmDecreaseLimitOrder(RaydiumClmmDecreaseLimitOrderEvent),
94 RaydiumClmmSettleLimitOrder(RaydiumClmmSettleLimitOrderEvent),
95 RaydiumClmmUpdateRewardInfos(RaydiumClmmUpdateRewardInfosEvent),
96 RaydiumClmmCollectFee(RaydiumClmmCollectFeeEvent),
97 RaydiumClmmAmmConfigAccount(Box<RaydiumClmmAmmConfigAccountEvent>),
98 RaydiumClmmPoolStateAccount(Box<RaydiumClmmPoolStateAccountEvent>),
99 RaydiumClmmTickArrayStateAccount(Box<RaydiumClmmTickArrayStateAccountEvent>),
100
101 RaydiumCpmmSwap(RaydiumCpmmSwapEvent),
103 RaydiumCpmmDeposit(RaydiumCpmmDepositEvent),
104 RaydiumCpmmWithdraw(RaydiumCpmmWithdrawEvent),
105 RaydiumCpmmInitialize(RaydiumCpmmInitializeEvent),
106 RaydiumCpmmAmmConfigAccount(Box<RaydiumCpmmAmmConfigAccountEvent>),
107 RaydiumCpmmPoolStateAccount(Box<RaydiumCpmmPoolStateAccountEvent>),
108 RaydiumCpmmCollectCreatorFee(RaydiumCpmmCollectCreatorFeeEvent),
109 RaydiumCpmmCreatorFeeShareAccount(Box<RaydiumCpmmCreatorFeeShareAccountEvent>),
110
111 RaydiumAmmV4Swap(RaydiumAmmV4SwapEvent),
113 RaydiumAmmV4Deposit(RaydiumAmmV4DepositEvent),
114 RaydiumAmmV4Initialize2(RaydiumAmmV4Initialize2Event),
115 RaydiumAmmV4Withdraw(RaydiumAmmV4WithdrawEvent),
116 RaydiumAmmV4WithdrawPnl(RaydiumAmmV4WithdrawPnlEvent),
117
118 OrcaWhirlpoolSwap(OrcaWhirlpoolSwapEvent),
120 OrcaWhirlpoolLiquidityIncreased(OrcaWhirlpoolLiquidityIncreasedEvent),
121 OrcaWhirlpoolLiquidityDecreased(OrcaWhirlpoolLiquidityDecreasedEvent),
122 OrcaWhirlpoolPoolInitialized(OrcaWhirlpoolPoolInitializedEvent),
123 OrcaWhirlpoolAccount(Box<OrcaWhirlpoolAccountEvent>),
124 OrcaPositionAccount(Box<OrcaPositionAccountEvent>),
125 OrcaTickArrayAccount(Box<OrcaTickArrayAccountEvent>),
126 OrcaFeeTierAccount(Box<OrcaFeeTierAccountEvent>),
127 OrcaWhirlpoolsConfigAccount(Box<OrcaWhirlpoolsConfigAccountEvent>),
128
129 MeteoraPoolsSwap(MeteoraPoolsSwapEvent),
131 MeteoraPoolsAddLiquidity(MeteoraPoolsAddLiquidityEvent),
132 MeteoraPoolsRemoveLiquidity(MeteoraPoolsRemoveLiquidityEvent),
133 MeteoraPoolsBootstrapLiquidity(MeteoraPoolsBootstrapLiquidityEvent),
134 MeteoraPoolsPoolCreated(MeteoraPoolsPoolCreatedEvent),
135 MeteoraPoolsSetPoolFees(MeteoraPoolsSetPoolFeesEvent),
136
137 MeteoraDlmmSwap(MeteoraDlmmSwapEvent),
139 MeteoraDlmmAddLiquidity(MeteoraDlmmAddLiquidityEvent),
140 MeteoraDlmmRemoveLiquidity(MeteoraDlmmRemoveLiquidityEvent),
141 MeteoraDlmmInitializePool(MeteoraDlmmInitializePoolEvent),
142 MeteoraDlmmInitializeBinArray(MeteoraDlmmInitializeBinArrayEvent),
143 MeteoraDlmmCreatePosition(MeteoraDlmmCreatePositionEvent),
144 MeteoraDlmmClosePosition(MeteoraDlmmClosePositionEvent),
145 MeteoraDlmmClaimFee(MeteoraDlmmClaimFeeEvent),
146
147 TokenInfo(TokenInfoEvent), TokenAccount(TokenAccountEvent), NonceAccount(NonceAccountEvent), PumpSwapGlobalConfigAccount(PumpSwapGlobalConfigAccountEvent), PumpSwapPoolAccount(PumpSwapPoolAccountEvent), BlockMeta(BlockMetaEvent),
156
157 Error(String),
159 PumpFunPostCompleteBuy(PumpFunPostCompleteBuyEvent),
160 PumpFunSweepBondingCurveFee(PumpFunSweepBondingCurveFeeEvent),
161 PumpFunComplete(PumpFunCompleteEvent),
162 PumpSwapSweepPoolFee(PumpSwapSweepPoolFeeEvent),
163}
164
165static DEFAULT_METADATA: Lazy<EventMetadata> = Lazy::new(|| EventMetadata {
167 signature: Signature::from([0u8; 64]),
168 slot: 0,
169 tx_index: 0,
170 block_time_us: 0,
171 grpc_recv_us: 0,
172 recent_blockhash: None,
173});
174
175impl DexEvent {
176 pub fn metadata(&self) -> &EventMetadata {
178 match self {
179 DexEvent::PumpFunCreate(e) => &e.metadata,
181 DexEvent::PumpFunCreateV2(e) => &e.metadata,
182 DexEvent::PumpFunTrade(e) => &e.metadata,
183 DexEvent::PumpFunBuy(e) => &e.metadata,
184 DexEvent::PumpFunSell(e) => &e.metadata,
185 DexEvent::PumpFunBuyExactSolIn(e) => &e.metadata,
186 DexEvent::PumpFunMigrate(e) => &e.metadata,
187 DexEvent::PumpFeesCreateFeeSharingConfig(e) => &e.metadata,
188 DexEvent::PumpFeesInitializeFeeConfig(e) => &e.metadata,
189 DexEvent::PumpFeesResetFeeSharingConfig(e) => &e.metadata,
190 DexEvent::PumpFeesRevokeFeeSharingAuthority(e) => &e.metadata,
191 DexEvent::PumpFeesTransferFeeSharingAuthority(e) => &e.metadata,
192 DexEvent::PumpFeesUpdateAdmin(e) => &e.metadata,
193 DexEvent::PumpFeesUpdateFeeConfig(e) => &e.metadata,
194 DexEvent::PumpFeesUpdateFeeShares(e) => &e.metadata,
195 DexEvent::PumpFeesUpsertFeeTiers(e) => &e.metadata,
196 DexEvent::PumpFunPostCompleteBuy(e) => &e.metadata,
197 DexEvent::PumpFunSweepBondingCurveFee(e) => &e.metadata,
198 DexEvent::PumpFunComplete(e) => &e.metadata,
199 DexEvent::PumpSwapSweepPoolFee(e) => &e.metadata,
200 DexEvent::PumpFunMigrateBondingCurveCreator(e) => &e.metadata,
201 DexEvent::PumpFunGlobalAccount(e) => &e.metadata,
202 DexEvent::PumpFunBondingCurveAccount(e) => &e.metadata,
203 DexEvent::PumpFunFeeConfigAccount(e) => &e.metadata,
204 DexEvent::PumpFunSharingConfigAccount(e) => &e.metadata,
205 DexEvent::PumpFunGlobalVolumeAccumulatorAccount(e) => &e.metadata,
206 DexEvent::PumpFunUserVolumeAccumulatorAccount(e) => &e.metadata,
207
208 DexEvent::PumpSwapTrade(e) => &e.metadata,
210 DexEvent::PumpSwapBuy(e) => &e.metadata,
211 DexEvent::PumpSwapSell(e) => &e.metadata,
212 DexEvent::PumpSwapCreatePool(e) => &e.metadata,
213 DexEvent::PumpSwapLiquidityAdded(e) => &e.metadata,
214 DexEvent::PumpSwapLiquidityRemoved(e) => &e.metadata,
215
216 DexEvent::MeteoraDammV2Swap(e) => &e.metadata,
218 DexEvent::MeteoraDammV2ClaimPositionFee(e) => &e.metadata,
219 DexEvent::MeteoraDammV2ClaimReward(e) => &e.metadata,
220 DexEvent::MeteoraDlmmClaimReward(e) => &e.metadata,
221 DexEvent::MeteoraDammV2CreatePosition(e) => &e.metadata,
222 DexEvent::MeteoraDammV2ClosePosition(e) => &e.metadata,
223 DexEvent::MeteoraDammV2AddLiquidity(e) => &e.metadata,
224 DexEvent::MeteoraDammV2RemoveLiquidity(e) => &e.metadata,
225 DexEvent::MeteoraDammV2InitializePool(e) => &e.metadata,
226 DexEvent::MeteoraDammV2UpdateDelegatePermission(e) => &e.metadata,
227 DexEvent::MeteoraDammV2WithdrawDeadLiquidityReward(e) => &e.metadata,
228 DexEvent::MeteoraDammV2WithdrawIneligibleReward(e) => &e.metadata,
229 DexEvent::MeteoraDammV2UpdateRewardFunder(e) => &e.metadata,
230 DexEvent::MeteoraDammV2UpdateRewardDuration(e) => &e.metadata,
231 DexEvent::MeteoraDammV2InitializeReward(e) => &e.metadata,
232 DexEvent::MeteoraDammV2FundReward(e) => &e.metadata,
233 DexEvent::MeteoraDammV2CreateConfig(e) => &e.metadata,
234 DexEvent::MeteoraDammV2CreateDynamicConfig(e) => &e.metadata,
235 DexEvent::MeteoraDbcSwap(e) => &e.metadata,
236 DexEvent::MeteoraDbcInitializePool(e) => &e.metadata,
237 DexEvent::MeteoraDbcCurveComplete(e) => &e.metadata,
238
239 DexEvent::RaydiumLaunchlabTrade(e) => &e.metadata,
241 DexEvent::RaydiumLaunchlabPoolCreate(e) => &e.metadata,
242 DexEvent::RaydiumLaunchlabMigrateAmm(e) => &e.metadata,
243
244 DexEvent::RaydiumClmmSwap(e) => &e.metadata,
246 DexEvent::RaydiumClmmCreatePool(e) => &e.metadata,
247 DexEvent::RaydiumClmmOpenPosition(e) => &e.metadata,
248 DexEvent::RaydiumClmmOpenPositionWithTokenExtNft(e) => &e.metadata,
249 DexEvent::RaydiumClmmClosePosition(e) => &e.metadata,
250 DexEvent::RaydiumClmmIncreaseLiquidity(e) => &e.metadata,
251 DexEvent::RaydiumClmmDecreaseLiquidity(e) => &e.metadata,
252 DexEvent::RaydiumClmmLiquidityChange(e) => &e.metadata,
253 DexEvent::RaydiumClmmConfigChange(e) => &e.metadata,
254 DexEvent::RaydiumClmmCreatePersonalPosition(e) => &e.metadata,
255 DexEvent::RaydiumClmmLiquidityCalculate(e) => &e.metadata,
256 DexEvent::RaydiumClmmOpenLimitOrder(e) => &e.metadata,
257 DexEvent::RaydiumClmmIncreaseLimitOrder(e) => &e.metadata,
258 DexEvent::RaydiumClmmDecreaseLimitOrder(e) => &e.metadata,
259 DexEvent::RaydiumClmmSettleLimitOrder(e) => &e.metadata,
260 DexEvent::RaydiumClmmUpdateRewardInfos(e) => &e.metadata,
261 DexEvent::RaydiumClmmCollectFee(e) => &e.metadata,
262 DexEvent::RaydiumClmmAmmConfigAccount(e) => &e.metadata,
263 DexEvent::RaydiumClmmPoolStateAccount(e) => &e.metadata,
264 DexEvent::RaydiumClmmTickArrayStateAccount(e) => &e.metadata,
265
266 DexEvent::RaydiumCpmmSwap(e) => &e.metadata,
268 DexEvent::RaydiumCpmmDeposit(e) => &e.metadata,
269 DexEvent::RaydiumCpmmWithdraw(e) => &e.metadata,
270 DexEvent::RaydiumCpmmInitialize(e) => &e.metadata,
271 DexEvent::RaydiumCpmmAmmConfigAccount(e) => &e.metadata,
272 DexEvent::RaydiumCpmmPoolStateAccount(e) => &e.metadata,
273 DexEvent::RaydiumCpmmCollectCreatorFee(e) => &e.metadata,
274 DexEvent::RaydiumCpmmCreatorFeeShareAccount(e) => &e.metadata,
275
276 DexEvent::RaydiumAmmV4Swap(e) => &e.metadata,
278 DexEvent::RaydiumAmmV4Deposit(e) => &e.metadata,
279 DexEvent::RaydiumAmmV4Initialize2(e) => &e.metadata,
280 DexEvent::RaydiumAmmV4Withdraw(e) => &e.metadata,
281 DexEvent::RaydiumAmmV4WithdrawPnl(e) => &e.metadata,
282
283 DexEvent::OrcaWhirlpoolSwap(e) => &e.metadata,
285 DexEvent::OrcaWhirlpoolLiquidityIncreased(e) => &e.metadata,
286 DexEvent::OrcaWhirlpoolLiquidityDecreased(e) => &e.metadata,
287 DexEvent::OrcaWhirlpoolPoolInitialized(e) => &e.metadata,
288 DexEvent::OrcaWhirlpoolAccount(e) => &e.metadata,
289 DexEvent::OrcaPositionAccount(e) => &e.metadata,
290 DexEvent::OrcaTickArrayAccount(e) => &e.metadata,
291 DexEvent::LiquidityAccountSnapshot(e) => &e.metadata,
292 DexEvent::RawAccountSnapshot(e) => &e.metadata,
293 DexEvent::OrcaFeeTierAccount(e) => &e.metadata,
294 DexEvent::OrcaWhirlpoolsConfigAccount(e) => &e.metadata,
295
296 DexEvent::MeteoraPoolsSwap(e) => &e.metadata,
298 DexEvent::MeteoraPoolsAddLiquidity(e) => &e.metadata,
299 DexEvent::MeteoraPoolsRemoveLiquidity(e) => &e.metadata,
300 DexEvent::MeteoraPoolsBootstrapLiquidity(e) => &e.metadata,
301 DexEvent::MeteoraPoolsPoolCreated(e) => &e.metadata,
302 DexEvent::MeteoraPoolsSetPoolFees(e) => &e.metadata,
303
304 DexEvent::MeteoraDlmmSwap(e) => &e.metadata,
306 DexEvent::MeteoraDlmmAddLiquidity(e) => &e.metadata,
307 DexEvent::MeteoraDlmmRemoveLiquidity(e) => &e.metadata,
308 DexEvent::MeteoraDlmmInitializePool(e) => &e.metadata,
309 DexEvent::MeteoraDlmmInitializeBinArray(e) => &e.metadata,
310 DexEvent::MeteoraDlmmCreatePosition(e) => &e.metadata,
311 DexEvent::MeteoraDlmmClosePosition(e) => &e.metadata,
312 DexEvent::MeteoraDlmmClaimFee(e) => &e.metadata,
313
314 DexEvent::TokenInfo(e) => &e.metadata,
316 DexEvent::TokenAccount(e) => &e.metadata,
317 DexEvent::NonceAccount(e) => &e.metadata,
318 DexEvent::PumpSwapGlobalConfigAccount(e) => &e.metadata,
319 DexEvent::PumpSwapPoolAccount(e) => &e.metadata,
320
321 DexEvent::BlockMeta(e) => &e.metadata,
323
324 DexEvent::Error(_) => &DEFAULT_METADATA,
326 }
327 }
328
329 pub fn metadata_mut(&mut self) -> Option<&mut EventMetadata> {
331 match self {
332 DexEvent::PumpFunCreate(e) => Some(&mut e.metadata),
333 DexEvent::PumpFunCreateV2(e) => Some(&mut e.metadata),
334 DexEvent::PumpFunTrade(e) => Some(&mut e.metadata),
335 DexEvent::PumpFunBuy(e) => Some(&mut e.metadata),
336 DexEvent::PumpFunSell(e) => Some(&mut e.metadata),
337 DexEvent::PumpFunBuyExactSolIn(e) => Some(&mut e.metadata),
338 DexEvent::PumpFunMigrate(e) => Some(&mut e.metadata),
339 DexEvent::PumpFeesCreateFeeSharingConfig(e) => Some(&mut e.metadata),
340 DexEvent::PumpFeesInitializeFeeConfig(e) => Some(&mut e.metadata),
341 DexEvent::PumpFeesResetFeeSharingConfig(e) => Some(&mut e.metadata),
342 DexEvent::PumpFeesRevokeFeeSharingAuthority(e) => Some(&mut e.metadata),
343 DexEvent::PumpFeesTransferFeeSharingAuthority(e) => Some(&mut e.metadata),
344 DexEvent::PumpFeesUpdateAdmin(e) => Some(&mut e.metadata),
345 DexEvent::PumpFeesUpdateFeeConfig(e) => Some(&mut e.metadata),
346 DexEvent::PumpFeesUpdateFeeShares(e) => Some(&mut e.metadata),
347 DexEvent::PumpFeesUpsertFeeTiers(e) => Some(&mut e.metadata),
348 DexEvent::PumpFunPostCompleteBuy(e) => Some(&mut e.metadata),
349 DexEvent::PumpFunSweepBondingCurveFee(e) => Some(&mut e.metadata),
350 DexEvent::PumpFunComplete(e) => Some(&mut e.metadata),
351 DexEvent::PumpSwapSweepPoolFee(e) => Some(&mut e.metadata),
352 DexEvent::PumpFunMigrateBondingCurveCreator(e) => Some(&mut e.metadata),
353 DexEvent::PumpFunGlobalAccount(e) => Some(&mut e.metadata),
354 DexEvent::PumpFunBondingCurveAccount(e) => Some(&mut e.metadata),
355 DexEvent::PumpFunFeeConfigAccount(e) => Some(&mut e.metadata),
356 DexEvent::PumpFunSharingConfigAccount(e) => Some(&mut e.metadata),
357 DexEvent::PumpFunGlobalVolumeAccumulatorAccount(e) => Some(&mut e.metadata),
358 DexEvent::PumpFunUserVolumeAccumulatorAccount(e) => Some(&mut e.metadata),
359 DexEvent::PumpSwapTrade(e) => Some(&mut e.metadata),
360 DexEvent::PumpSwapBuy(e) => Some(&mut e.metadata),
361 DexEvent::PumpSwapSell(e) => Some(&mut e.metadata),
362 DexEvent::PumpSwapCreatePool(e) => Some(&mut e.metadata),
363 DexEvent::PumpSwapLiquidityAdded(e) => Some(&mut e.metadata),
364 DexEvent::PumpSwapLiquidityRemoved(e) => Some(&mut e.metadata),
365 DexEvent::MeteoraDammV2Swap(e) => Some(&mut e.metadata),
366 DexEvent::MeteoraDammV2ClaimPositionFee(e) => Some(&mut e.metadata),
367 DexEvent::MeteoraDammV2ClaimReward(e) => Some(&mut e.metadata),
368 DexEvent::MeteoraDlmmClaimReward(e) => Some(&mut e.metadata),
369 DexEvent::MeteoraDammV2CreatePosition(e) => Some(&mut e.metadata),
370 DexEvent::MeteoraDammV2ClosePosition(e) => Some(&mut e.metadata),
371 DexEvent::MeteoraDammV2AddLiquidity(e) => Some(&mut e.metadata),
372 DexEvent::MeteoraDammV2RemoveLiquidity(e) => Some(&mut e.metadata),
373 DexEvent::MeteoraDammV2InitializePool(e) => Some(&mut e.metadata),
374 DexEvent::MeteoraDammV2UpdateDelegatePermission(e) => Some(&mut e.metadata),
375 DexEvent::MeteoraDammV2WithdrawDeadLiquidityReward(e) => Some(&mut e.metadata),
376 DexEvent::MeteoraDammV2WithdrawIneligibleReward(e) => Some(&mut e.metadata),
377 DexEvent::MeteoraDammV2UpdateRewardFunder(e) => Some(&mut e.metadata),
378 DexEvent::MeteoraDammV2UpdateRewardDuration(e) => Some(&mut e.metadata),
379 DexEvent::MeteoraDammV2InitializeReward(e) => Some(&mut e.metadata),
380 DexEvent::MeteoraDammV2FundReward(e) => Some(&mut e.metadata),
381 DexEvent::MeteoraDammV2CreateConfig(e) => Some(&mut e.metadata),
382 DexEvent::MeteoraDammV2CreateDynamicConfig(e) => Some(&mut e.metadata),
383 DexEvent::MeteoraDbcSwap(e) => Some(&mut e.metadata),
384 DexEvent::MeteoraDbcInitializePool(e) => Some(&mut e.metadata),
385 DexEvent::MeteoraDbcCurveComplete(e) => Some(&mut e.metadata),
386 DexEvent::RaydiumLaunchlabTrade(e) => Some(&mut e.metadata),
387 DexEvent::RaydiumLaunchlabPoolCreate(e) => Some(&mut e.metadata),
388 DexEvent::RaydiumLaunchlabMigrateAmm(e) => Some(&mut e.metadata),
389 DexEvent::RaydiumClmmSwap(e) => Some(&mut e.metadata),
390 DexEvent::RaydiumClmmCreatePool(e) => Some(&mut e.metadata),
391 DexEvent::RaydiumClmmOpenPosition(e) => Some(&mut e.metadata),
392 DexEvent::RaydiumClmmOpenPositionWithTokenExtNft(e) => Some(&mut e.metadata),
393 DexEvent::RaydiumClmmClosePosition(e) => Some(&mut e.metadata),
394 DexEvent::RaydiumClmmIncreaseLiquidity(e) => Some(&mut e.metadata),
395 DexEvent::RaydiumClmmDecreaseLiquidity(e) => Some(&mut e.metadata),
396 DexEvent::RaydiumClmmLiquidityChange(e) => Some(&mut e.metadata),
397 DexEvent::RaydiumClmmConfigChange(e) => Some(&mut e.metadata),
398 DexEvent::RaydiumClmmCreatePersonalPosition(e) => Some(&mut e.metadata),
399 DexEvent::RaydiumClmmLiquidityCalculate(e) => Some(&mut e.metadata),
400 DexEvent::RaydiumClmmOpenLimitOrder(e) => Some(&mut e.metadata),
401 DexEvent::RaydiumClmmIncreaseLimitOrder(e) => Some(&mut e.metadata),
402 DexEvent::RaydiumClmmDecreaseLimitOrder(e) => Some(&mut e.metadata),
403 DexEvent::RaydiumClmmSettleLimitOrder(e) => Some(&mut e.metadata),
404 DexEvent::RaydiumClmmUpdateRewardInfos(e) => Some(&mut e.metadata),
405 DexEvent::RaydiumClmmCollectFee(e) => Some(&mut e.metadata),
406 DexEvent::RaydiumClmmAmmConfigAccount(e) => Some(&mut e.metadata),
407 DexEvent::RaydiumClmmPoolStateAccount(e) => Some(&mut e.metadata),
408 DexEvent::RaydiumClmmTickArrayStateAccount(e) => Some(&mut e.metadata),
409 DexEvent::RaydiumCpmmSwap(e) => Some(&mut e.metadata),
410 DexEvent::RaydiumCpmmDeposit(e) => Some(&mut e.metadata),
411 DexEvent::RaydiumCpmmWithdraw(e) => Some(&mut e.metadata),
412 DexEvent::RaydiumCpmmInitialize(e) => Some(&mut e.metadata),
413 DexEvent::RaydiumCpmmAmmConfigAccount(e) => Some(&mut e.metadata),
414 DexEvent::RaydiumCpmmPoolStateAccount(e) => Some(&mut e.metadata),
415 DexEvent::RaydiumCpmmCollectCreatorFee(e) => Some(&mut e.metadata),
416 DexEvent::RaydiumCpmmCreatorFeeShareAccount(e) => Some(&mut e.metadata),
417 DexEvent::RaydiumAmmV4Swap(e) => Some(&mut e.metadata),
418 DexEvent::RaydiumAmmV4Deposit(e) => Some(&mut e.metadata),
419 DexEvent::RaydiumAmmV4Initialize2(e) => Some(&mut e.metadata),
420 DexEvent::RaydiumAmmV4Withdraw(e) => Some(&mut e.metadata),
421 DexEvent::RaydiumAmmV4WithdrawPnl(e) => Some(&mut e.metadata),
422 DexEvent::OrcaWhirlpoolSwap(e) => Some(&mut e.metadata),
423 DexEvent::OrcaWhirlpoolLiquidityIncreased(e) => Some(&mut e.metadata),
424 DexEvent::OrcaWhirlpoolLiquidityDecreased(e) => Some(&mut e.metadata),
425 DexEvent::OrcaWhirlpoolPoolInitialized(e) => Some(&mut e.metadata),
426 DexEvent::OrcaWhirlpoolAccount(e) => Some(&mut e.metadata),
427 DexEvent::OrcaPositionAccount(e) => Some(&mut e.metadata),
428 DexEvent::OrcaTickArrayAccount(e) => Some(&mut e.metadata),
429 DexEvent::LiquidityAccountSnapshot(e) => Some(&mut e.metadata),
430 DexEvent::RawAccountSnapshot(e) => Some(&mut e.metadata),
431 DexEvent::OrcaFeeTierAccount(e) => Some(&mut e.metadata),
432 DexEvent::OrcaWhirlpoolsConfigAccount(e) => Some(&mut e.metadata),
433 DexEvent::MeteoraPoolsSwap(e) => Some(&mut e.metadata),
434 DexEvent::MeteoraPoolsAddLiquidity(e) => Some(&mut e.metadata),
435 DexEvent::MeteoraPoolsRemoveLiquidity(e) => Some(&mut e.metadata),
436 DexEvent::MeteoraPoolsBootstrapLiquidity(e) => Some(&mut e.metadata),
437 DexEvent::MeteoraPoolsPoolCreated(e) => Some(&mut e.metadata),
438 DexEvent::MeteoraPoolsSetPoolFees(e) => Some(&mut e.metadata),
439 DexEvent::MeteoraDlmmSwap(e) => Some(&mut e.metadata),
440 DexEvent::MeteoraDlmmAddLiquidity(e) => Some(&mut e.metadata),
441 DexEvent::MeteoraDlmmRemoveLiquidity(e) => Some(&mut e.metadata),
442 DexEvent::MeteoraDlmmInitializePool(e) => Some(&mut e.metadata),
443 DexEvent::MeteoraDlmmInitializeBinArray(e) => Some(&mut e.metadata),
444 DexEvent::MeteoraDlmmCreatePosition(e) => Some(&mut e.metadata),
445 DexEvent::MeteoraDlmmClosePosition(e) => Some(&mut e.metadata),
446 DexEvent::MeteoraDlmmClaimFee(e) => Some(&mut e.metadata),
447 DexEvent::TokenInfo(e) => Some(&mut e.metadata),
448 DexEvent::TokenAccount(e) => Some(&mut e.metadata),
449 DexEvent::NonceAccount(e) => Some(&mut e.metadata),
450 DexEvent::PumpSwapGlobalConfigAccount(e) => Some(&mut e.metadata),
451 DexEvent::PumpSwapPoolAccount(e) => Some(&mut e.metadata),
452 DexEvent::BlockMeta(e) => Some(&mut e.metadata),
453 DexEvent::Error(_) => None,
454 }
455 }
456}