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