sol-parser-sdk-python 0.5.6__py3-none-any.whl → 0.5.7__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
sol_parser/grpc_types.py CHANGED
@@ -37,10 +37,11 @@ class EventType(str, Enum):
37
37
  """事件类型"""
38
38
  # Block
39
39
  BLOCK_META = "BlockMeta"
40
- # PumpFun
40
+ # RaydiumLaunchlab
41
41
  RAYDIUM_LAUNCHLAB_TRADE = "RaydiumLaunchlabTrade"
42
42
  RAYDIUM_LAUNCHLAB_POOL_CREATE = "RaydiumLaunchlabPoolCreate"
43
43
  RAYDIUM_LAUNCHLAB_MIGRATE_AMM = "RaydiumLaunchlabMigrateAmm"
44
+ # PumpFun
44
45
  PUMP_FUN_TRADE = "PumpFunTrade"
45
46
  PUMP_FUN_BUY = "PumpFunBuy"
46
47
  PUMP_FUN_SELL = "PumpFunSell"
@@ -66,26 +67,35 @@ class EventType(str, Enum):
66
67
  PUMP_SWAP_CREATE_POOL = "PumpSwapCreatePool"
67
68
  PUMP_SWAP_LIQUIDITY_ADDED = "PumpSwapLiquidityAdded"
68
69
  PUMP_SWAP_LIQUIDITY_REMOVED = "PumpSwapLiquidityRemoved"
70
+ # Raydium CPMM
71
+ RAYDIUM_CPMM_SWAP = "RaydiumCpmmSwap"
72
+ RAYDIUM_CPMM_DEPOSIT = "RaydiumCpmmDeposit"
73
+ RAYDIUM_CPMM_WITHDRAW = "RaydiumCpmmWithdraw"
74
+ RAYDIUM_CPMM_INITIALIZE = "RaydiumCpmmInitialize"
69
75
  # Raydium CLMM
70
76
  RAYDIUM_CLMM_SWAP = "RaydiumClmmSwap"
71
- RAYDIUM_CLMM_INCREASE_LIQUIDITY = "RaydiumClmmIncreaseLiquidity"
72
- RAYDIUM_CLMM_DECREASE_LIQUIDITY = "RaydiumClmmDecreaseLiquidity"
73
77
  RAYDIUM_CLMM_CREATE_POOL = "RaydiumClmmCreatePool"
74
78
  RAYDIUM_CLMM_OPEN_POSITION = "RaydiumClmmOpenPosition"
75
- RAYDIUM_CLMM_OPEN_POSITION_WITH_TOKEN_EXT_NFT = "RaydiumClmmOpenPositionWithTokenExtNft"
76
79
  RAYDIUM_CLMM_CLOSE_POSITION = "RaydiumClmmClosePosition"
80
+ RAYDIUM_CLMM_INCREASE_LIQUIDITY = "RaydiumClmmIncreaseLiquidity"
81
+ RAYDIUM_CLMM_DECREASE_LIQUIDITY = "RaydiumClmmDecreaseLiquidity"
82
+ RAYDIUM_CLMM_LIQUIDITY_CHANGE = "RaydiumClmmLiquidityChange"
83
+ RAYDIUM_CLMM_CONFIG_CHANGE = "RaydiumClmmConfigChange"
84
+ RAYDIUM_CLMM_CREATE_PERSONAL_POSITION = "RaydiumClmmCreatePersonalPosition"
85
+ RAYDIUM_CLMM_LIQUIDITY_CALCULATE = "RaydiumClmmLiquidityCalculate"
86
+ RAYDIUM_CLMM_OPEN_LIMIT_ORDER = "RaydiumClmmOpenLimitOrder"
87
+ RAYDIUM_CLMM_INCREASE_LIMIT_ORDER = "RaydiumClmmIncreaseLimitOrder"
88
+ RAYDIUM_CLMM_DECREASE_LIMIT_ORDER = "RaydiumClmmDecreaseLimitOrder"
89
+ RAYDIUM_CLMM_SETTLE_LIMIT_ORDER = "RaydiumClmmSettleLimitOrder"
90
+ RAYDIUM_CLMM_UPDATE_REWARD_INFOS = "RaydiumClmmUpdateRewardInfos"
91
+ RAYDIUM_CLMM_OPEN_POSITION_WITH_TOKEN_EXT_NFT = "RaydiumClmmOpenPositionWithTokenExtNft"
77
92
  RAYDIUM_CLMM_COLLECT_FEE = "RaydiumClmmCollectFee"
78
- # Raydium CPMM
79
- RAYDIUM_CPMM_SWAP = "RaydiumCpmmSwap"
80
- RAYDIUM_CPMM_DEPOSIT = "RaydiumCpmmDeposit"
81
- RAYDIUM_CPMM_WITHDRAW = "RaydiumCpmmWithdraw"
82
- RAYDIUM_CPMM_INITIALIZE = "RaydiumCpmmInitialize"
83
93
  # Raydium AMM V4
84
94
  RAYDIUM_AMM_V4_SWAP = "RaydiumAmmV4Swap"
85
95
  RAYDIUM_AMM_V4_DEPOSIT = "RaydiumAmmV4Deposit"
86
96
  RAYDIUM_AMM_V4_WITHDRAW = "RaydiumAmmV4Withdraw"
87
- RAYDIUM_AMM_V4_WITHDRAW_PNL = "RaydiumAmmV4WithdrawPnl"
88
97
  RAYDIUM_AMM_V4_INITIALIZE2 = "RaydiumAmmV4Initialize2"
98
+ RAYDIUM_AMM_V4_WITHDRAW_PNL = "RaydiumAmmV4WithdrawPnl"
89
99
  # Orca Whirlpool
90
100
  ORCA_WHIRLPOOL_SWAP = "OrcaWhirlpoolSwap"
91
101
  ORCA_WHIRLPOOL_LIQUIDITY_INCREASED = "OrcaWhirlpoolLiquidityIncreased"
@@ -102,9 +112,9 @@ class EventType(str, Enum):
102
112
  METEORA_DAMM_V2_SWAP = "MeteoraDammV2Swap"
103
113
  METEORA_DAMM_V2_ADD_LIQUIDITY = "MeteoraDammV2AddLiquidity"
104
114
  METEORA_DAMM_V2_REMOVE_LIQUIDITY = "MeteoraDammV2RemoveLiquidity"
115
+ METEORA_DAMM_V2_INITIALIZE_POOL = "MeteoraDammV2InitializePool"
105
116
  METEORA_DAMM_V2_CREATE_POSITION = "MeteoraDammV2CreatePosition"
106
117
  METEORA_DAMM_V2_CLOSE_POSITION = "MeteoraDammV2ClosePosition"
107
- METEORA_DAMM_V2_INITIALIZE_POOL = "MeteoraDammV2InitializePool"
108
118
  # Meteora DBC
109
119
  METEORA_DBC_SWAP = "MeteoraDbcSwap"
110
120
  METEORA_DBC_INITIALIZE_POOL = "MeteoraDbcInitializePool"
@@ -206,6 +216,15 @@ RAYDIUM_CLMM_FILTER_TYPES = (
206
216
  EventType.RAYDIUM_CLMM_SWAP,
207
217
  EventType.RAYDIUM_CLMM_INCREASE_LIQUIDITY,
208
218
  EventType.RAYDIUM_CLMM_DECREASE_LIQUIDITY,
219
+ EventType.RAYDIUM_CLMM_LIQUIDITY_CHANGE,
220
+ EventType.RAYDIUM_CLMM_CONFIG_CHANGE,
221
+ EventType.RAYDIUM_CLMM_CREATE_PERSONAL_POSITION,
222
+ EventType.RAYDIUM_CLMM_LIQUIDITY_CALCULATE,
223
+ EventType.RAYDIUM_CLMM_OPEN_LIMIT_ORDER,
224
+ EventType.RAYDIUM_CLMM_INCREASE_LIMIT_ORDER,
225
+ EventType.RAYDIUM_CLMM_DECREASE_LIMIT_ORDER,
226
+ EventType.RAYDIUM_CLMM_SETTLE_LIMIT_ORDER,
227
+ EventType.RAYDIUM_CLMM_UPDATE_REWARD_INFOS,
209
228
  EventType.RAYDIUM_CLMM_CREATE_POOL,
210
229
  EventType.RAYDIUM_CLMM_OPEN_POSITION,
211
230
  EventType.RAYDIUM_CLMM_OPEN_POSITION_WITH_TOKEN_EXT_NFT,
@@ -305,26 +324,35 @@ def all_event_types() -> List[EventType]:
305
324
  EventType.PUMP_SWAP_CREATE_POOL,
306
325
  EventType.PUMP_SWAP_LIQUIDITY_ADDED,
307
326
  EventType.PUMP_SWAP_LIQUIDITY_REMOVED,
327
+ # Raydium CPMM
328
+ EventType.RAYDIUM_CPMM_SWAP,
329
+ EventType.RAYDIUM_CPMM_DEPOSIT,
330
+ EventType.RAYDIUM_CPMM_WITHDRAW,
331
+ EventType.RAYDIUM_CPMM_INITIALIZE,
308
332
  # Raydium CLMM
309
333
  EventType.RAYDIUM_CLMM_SWAP,
310
- EventType.RAYDIUM_CLMM_INCREASE_LIQUIDITY,
311
- EventType.RAYDIUM_CLMM_DECREASE_LIQUIDITY,
312
334
  EventType.RAYDIUM_CLMM_CREATE_POOL,
313
335
  EventType.RAYDIUM_CLMM_OPEN_POSITION,
314
- EventType.RAYDIUM_CLMM_OPEN_POSITION_WITH_TOKEN_EXT_NFT,
315
336
  EventType.RAYDIUM_CLMM_CLOSE_POSITION,
337
+ EventType.RAYDIUM_CLMM_INCREASE_LIQUIDITY,
338
+ EventType.RAYDIUM_CLMM_DECREASE_LIQUIDITY,
339
+ EventType.RAYDIUM_CLMM_LIQUIDITY_CHANGE,
340
+ EventType.RAYDIUM_CLMM_CONFIG_CHANGE,
341
+ EventType.RAYDIUM_CLMM_CREATE_PERSONAL_POSITION,
342
+ EventType.RAYDIUM_CLMM_LIQUIDITY_CALCULATE,
343
+ EventType.RAYDIUM_CLMM_OPEN_LIMIT_ORDER,
344
+ EventType.RAYDIUM_CLMM_INCREASE_LIMIT_ORDER,
345
+ EventType.RAYDIUM_CLMM_DECREASE_LIMIT_ORDER,
346
+ EventType.RAYDIUM_CLMM_SETTLE_LIMIT_ORDER,
347
+ EventType.RAYDIUM_CLMM_UPDATE_REWARD_INFOS,
348
+ EventType.RAYDIUM_CLMM_OPEN_POSITION_WITH_TOKEN_EXT_NFT,
316
349
  EventType.RAYDIUM_CLMM_COLLECT_FEE,
317
- # Raydium CPMM
318
- EventType.RAYDIUM_CPMM_SWAP,
319
- EventType.RAYDIUM_CPMM_DEPOSIT,
320
- EventType.RAYDIUM_CPMM_WITHDRAW,
321
- EventType.RAYDIUM_CPMM_INITIALIZE,
322
350
  # Raydium AMM V4
323
351
  EventType.RAYDIUM_AMM_V4_SWAP,
324
352
  EventType.RAYDIUM_AMM_V4_DEPOSIT,
325
353
  EventType.RAYDIUM_AMM_V4_WITHDRAW,
326
- EventType.RAYDIUM_AMM_V4_WITHDRAW_PNL,
327
354
  EventType.RAYDIUM_AMM_V4_INITIALIZE2,
355
+ EventType.RAYDIUM_AMM_V4_WITHDRAW_PNL,
328
356
  # Orca Whirlpool
329
357
  EventType.ORCA_WHIRLPOOL_SWAP,
330
358
  EventType.ORCA_WHIRLPOOL_LIQUIDITY_INCREASED,
@@ -341,9 +369,9 @@ def all_event_types() -> List[EventType]:
341
369
  EventType.METEORA_DAMM_V2_SWAP,
342
370
  EventType.METEORA_DAMM_V2_ADD_LIQUIDITY,
343
371
  EventType.METEORA_DAMM_V2_REMOVE_LIQUIDITY,
372
+ EventType.METEORA_DAMM_V2_INITIALIZE_POOL,
344
373
  EventType.METEORA_DAMM_V2_CREATE_POSITION,
345
374
  EventType.METEORA_DAMM_V2_CLOSE_POSITION,
346
- EventType.METEORA_DAMM_V2_INITIALIZE_POOL,
347
375
  # Meteora DBC
348
376
  EventType.METEORA_DBC_SWAP,
349
377
  EventType.METEORA_DBC_INITIALIZE_POOL,
@@ -8,24 +8,62 @@ from typing import Optional
8
8
  from .dex_parsers import (
9
9
  _parse_raydium_launchlab_trade,
10
10
  _parse_raydium_launchlab_pool_create,
11
+ PUMP_FEES_CREATE_FEE_SHARING_CONFIG,
12
+ PUMP_FEES_INITIALIZE_FEE_CONFIG,
13
+ PUMP_FEES_RESET_FEE_SHARING_CONFIG,
14
+ PUMP_FEES_REVOKE_FEE_SHARING_AUTHORITY,
15
+ PUMP_FEES_TRANSFER_FEE_SHARING_AUTHORITY,
16
+ PUMP_FEES_UPDATE_ADMIN,
17
+ PUMP_FEES_UPDATE_FEE_CONFIG,
18
+ PUMP_FEES_UPDATE_FEE_SHARES,
19
+ PUMP_FEES_UPSERT_FEE_TIERS,
11
20
  parse_amm_deposit_from_data,
21
+ parse_amm_init2_from_data,
12
22
  parse_amm_swap_in_from_data,
13
23
  parse_amm_swap_out_from_data,
14
24
  parse_amm_withdraw_from_data,
15
- parse_clmm_collect_from_data,
25
+ parse_amm_withdraw_pnl_from_data,
26
+ parse_clmm_collect_personal_from_data,
27
+ parse_clmm_collect_protocol_from_data,
28
+ parse_clmm_config_change_from_data,
16
29
  parse_clmm_create_from_data,
30
+ parse_clmm_create_personal_position_from_data,
17
31
  parse_clmm_dec_from_data,
32
+ parse_clmm_decrease_limit_order_from_data,
18
33
  parse_clmm_inc_from_data,
34
+ parse_clmm_increase_limit_order_from_data,
35
+ parse_clmm_liquidity_calculate_from_data,
36
+ parse_clmm_liquidity_change_from_data,
37
+ parse_clmm_open_limit_order_from_data,
38
+ parse_clmm_settle_limit_order_from_data,
19
39
  parse_clmm_swap_from_data,
40
+ parse_clmm_update_reward_infos_from_data,
41
+ parse_cpmm_create_from_data,
20
42
  parse_cpmm_deposit_from_data,
21
43
  parse_cpmm_swap_in_from_data,
22
44
  parse_cpmm_swap_out_from_data,
23
45
  parse_cpmm_withdraw_from_data,
24
46
  parse_dlmm_from_program_data,
25
47
  parse_meteora_damm_from_buf,
48
+ parse_meteora_add_from_data,
49
+ parse_meteora_bootstrap_from_data,
50
+ parse_meteora_pool_created_from_data,
51
+ parse_meteora_pools_set_pool_fees_from_data,
52
+ parse_meteora_remove_from_data,
53
+ parse_meteora_swap_from_data,
26
54
  parse_orca_liq_dec_from_data,
27
55
  parse_orca_liq_inc_from_data,
56
+ parse_orca_pool_init_from_data,
28
57
  parse_orca_traded_from_data,
58
+ parse_pump_fees_create_fee_sharing_config_from_data,
59
+ parse_pump_fees_initialize_fee_config_from_data,
60
+ parse_pump_fees_reset_fee_sharing_config_from_data,
61
+ parse_pump_fees_revoke_fee_sharing_authority_from_data,
62
+ parse_pump_fees_transfer_fee_sharing_authority_from_data,
63
+ parse_pump_fees_update_admin_from_data,
64
+ parse_pump_fees_update_fee_config_from_data,
65
+ parse_pump_fees_update_fee_shares_from_data,
66
+ parse_pump_fees_upsert_fee_tiers_from_data,
29
67
  parse_ps_add_liq_from_data,
30
68
  parse_ps_buy_from_data,
31
69
  parse_ps_create_pool_from_data,
@@ -44,6 +82,7 @@ from .event_types import (
44
82
  )
45
83
  from .grpc_types import EventType, EventTypeFilter
46
84
  from .grpc_types import (
85
+ event_type_filter_includes_pump_fees,
47
86
  event_type_filter_includes_meteora_damm_v2,
48
87
  event_type_filter_includes_meteora_dlmm,
49
88
  event_type_filter_includes_meteora_pools,
@@ -62,6 +101,7 @@ from .instructions import (
62
101
  METEORA_POOLS_PROGRAM_ID,
63
102
  ORCA_WHIRLPOOL_PROGRAM_ID,
64
103
  PUMPFUN_PROGRAM_ID,
104
+ PUMP_FEES_PROGRAM_ID,
65
105
  PUMPSWAP_PROGRAM_ID,
66
106
  RAYDIUM_AMM_V4_PROGRAM_ID,
67
107
  RAYDIUM_CLMM_PROGRAM_ID,
@@ -80,15 +120,26 @@ _PS_ADD_LIQ = bytes([228, 69, 165, 46, 81, 203, 154, 29, 120, 248, 61, 83, 31, 1
80
120
  _PS_REMOVE_LIQ = bytes([228, 69, 165, 46, 81, 203, 154, 29, 22, 9, 133, 26, 160, 44, 71, 192])
81
121
 
82
122
  # Raydium CLMM(raydium_clmm_inner::discriminators)
83
- _CLMM_SWAP = bytes([248, 198, 158, 145, 225, 117, 135, 200, 155, 167, 108, 32, 122, 76, 173, 64])
84
- _CLMM_INC = bytes([133, 29, 89, 223, 69, 238, 176, 10, 155, 167, 108, 32, 122, 76, 173, 64])
85
- _CLMM_DEC = bytes([160, 38, 208, 111, 104, 91, 44, 1, 155, 167, 108, 32, 122, 76, 173, 64])
86
- _CLMM_CREATE_POOL = bytes([233, 146, 209, 142, 207, 104, 64, 188, 155, 167, 108, 32, 122, 76, 173, 64])
87
- _CLMM_COLLECT_FEE = bytes([164, 152, 207, 99, 187, 104, 171, 119, 155, 167, 108, 32, 122, 76, 173, 64])
123
+ _CLMM_SWAP = bytes([64, 198, 205, 232, 38, 8, 113, 226, 155, 167, 108, 32, 122, 76, 173, 64])
124
+ _CLMM_INC = bytes([49, 79, 105, 212, 32, 34, 30, 84, 155, 167, 108, 32, 122, 76, 173, 64])
125
+ _CLMM_DEC = bytes([58, 222, 86, 58, 68, 50, 85, 56, 155, 167, 108, 32, 122, 76, 173, 64])
126
+ _CLMM_LIQUIDITY_CHANGE = bytes([126, 240, 175, 206, 158, 88, 153, 107, 155, 167, 108, 32, 122, 76, 173, 64])
127
+ _CLMM_CONFIG_CHANGE = bytes([247, 189, 7, 119, 106, 112, 95, 151, 155, 167, 108, 32, 122, 76, 173, 64])
128
+ _CLMM_CREATE_PERSONAL_POSITION = bytes([100, 30, 87, 249, 196, 223, 154, 206, 155, 167, 108, 32, 122, 76, 173, 64])
129
+ _CLMM_LIQUIDITY_CALCULATE = bytes([237, 112, 148, 230, 57, 84, 180, 162, 155, 167, 108, 32, 122, 76, 173, 64])
130
+ _CLMM_OPEN_LIMIT_ORDER = bytes([106, 24, 71, 85, 57, 169, 158, 216, 155, 167, 108, 32, 122, 76, 173, 64])
131
+ _CLMM_INCREASE_LIMIT_ORDER = bytes([11, 120, 13, 204, 199, 87, 19, 200, 155, 167, 108, 32, 122, 76, 173, 64])
132
+ _CLMM_DECREASE_LIMIT_ORDER = bytes([70, 48, 40, 221, 219, 237, 212, 163, 155, 167, 108, 32, 122, 76, 173, 64])
133
+ _CLMM_SETTLE_LIMIT_ORDER = bytes([88, 119, 77, 164, 125, 124, 10, 194, 155, 167, 108, 32, 122, 76, 173, 64])
134
+ _CLMM_UPDATE_REWARD_INFOS = bytes([109, 127, 186, 78, 114, 65, 37, 236, 155, 167, 108, 32, 122, 76, 173, 64])
135
+ _CLMM_CREATE_POOL = bytes([25, 94, 75, 47, 112, 99, 53, 63, 155, 167, 108, 32, 122, 76, 173, 64])
136
+ _CLMM_COLLECT_PERSONAL_FEE = bytes([166, 174, 105, 192, 81, 161, 83, 105, 155, 167, 108, 32, 122, 76, 173, 64])
137
+ _CLMM_COLLECT_PROTOCOL_FEE = bytes([206, 87, 17, 79, 45, 41, 213, 61, 155, 167, 108, 32, 122, 76, 173, 64])
88
138
 
89
139
  # Raydium CPMM(all_inner::raydium_cpmm::discriminators)
90
140
  _CPMM_SWAP_IN = bytes([143, 190, 90, 218, 196, 30, 51, 222, 155, 167, 108, 32, 122, 76, 173, 64])
91
141
  _CPMM_SWAP_OUT = bytes([55, 217, 98, 86, 163, 74, 180, 173, 155, 167, 108, 32, 122, 76, 173, 64])
142
+ _CPMM_CREATE_POOL = bytes([233, 146, 209, 142, 207, 104, 64, 188, 155, 167, 108, 32, 122, 76, 173, 64])
92
143
  _CPMM_DEP = bytes([242, 35, 198, 137, 82, 225, 242, 182, 155, 167, 108, 32, 122, 76, 173, 64])
93
144
  _CPMM_WIT = bytes([183, 18, 70, 156, 148, 109, 161, 34, 155, 167, 108, 32, 122, 76, 173, 64])
94
145
 
@@ -97,16 +148,33 @@ _AMM_SWAP_IN = bytes([0, 0, 0, 0, 0, 0, 0, 9, 155, 167, 108, 32, 122, 76, 173, 6
97
148
  _AMM_SWAP_OUT = bytes([0, 0, 0, 0, 0, 0, 0, 11, 155, 167, 108, 32, 122, 76, 173, 64])
98
149
  _AMM_DEP = bytes([0, 0, 0, 0, 0, 0, 0, 3, 155, 167, 108, 32, 122, 76, 173, 64])
99
150
  _AMM_WIT = bytes([0, 0, 0, 0, 0, 0, 0, 4, 155, 167, 108, 32, 122, 76, 173, 64])
151
+ _AMM_INIT2 = bytes([0, 0, 0, 0, 0, 0, 0, 1, 155, 167, 108, 32, 122, 76, 173, 64])
152
+ _AMM_WITHDRAW_PNL = bytes([0, 0, 0, 0, 0, 0, 0, 7, 155, 167, 108, 32, 122, 76, 173, 64])
100
153
 
101
154
  # Orca
102
155
  _ORCA_TRADED = bytes([225, 202, 73, 175, 147, 43, 160, 150, 155, 167, 108, 32, 122, 76, 173, 64])
103
156
  _ORCA_LIQ_INC = bytes([30, 7, 144, 181, 102, 254, 155, 161, 155, 167, 108, 32, 122, 76, 173, 64])
104
157
  _ORCA_LIQ_DEC = bytes([166, 1, 36, 71, 112, 202, 181, 171, 155, 167, 108, 32, 122, 76, 173, 64])
158
+ _ORCA_POOL_INITIALIZED = bytes([100, 118, 173, 87, 12, 198, 254, 229, 155, 167, 108, 32, 122, 76, 173, 64])
105
159
 
106
160
  # Meteora Pools AMM
107
161
  _MP_SWAP = bytes([81, 108, 227, 190, 205, 208, 10, 196, 155, 167, 108, 32, 122, 76, 173, 64])
108
162
  _MP_ADD = bytes([31, 94, 125, 90, 227, 52, 61, 186, 155, 167, 108, 32, 122, 76, 173, 64])
109
163
  _MP_REM = bytes([116, 244, 97, 232, 103, 31, 152, 58, 155, 167, 108, 32, 122, 76, 173, 64])
164
+ _MP_BOOTSTRAP = bytes([121, 127, 38, 136, 92, 55, 14, 247, 155, 167, 108, 32, 122, 76, 173, 64])
165
+ _MP_POOL_CREATED = bytes([202, 44, 41, 88, 104, 220, 157, 82, 155, 167, 108, 32, 122, 76, 173, 64])
166
+ _MP_SET_POOL_FEES = bytes([245, 26, 198, 164, 88, 18, 75, 9, 155, 167, 108, 32, 122, 76, 173, 64])
167
+
168
+ _EVENT_CPI_PREFIX = bytes([228, 69, 165, 46, 81, 203, 154, 29])
169
+ _EVENT_CPI_SUFFIX = bytes([155, 167, 108, 32, 122, 76, 173, 64])
170
+
171
+
172
+ def _event_cpi_disc8(disc16: bytes) -> Optional[int]:
173
+ if disc16[:8] == _EVENT_CPI_PREFIX:
174
+ return struct.unpack("<Q", disc16[8:16])[0]
175
+ if disc16[8:16] == _EVENT_CPI_SUFFIX:
176
+ return struct.unpack("<Q", disc16[:8])[0]
177
+ return None
110
178
 
111
179
  # Meteora DAMM V2(inner 16 字节:magic + 8 字节 event disc,与 ``parse_meteora_damm_from_buf`` 的 disc 一致)
112
180
  def _damm_buf_from_inner(disc16: bytes, inner: bytes) -> bytes:
@@ -118,7 +186,7 @@ _RAYDIUM_LAUNCHLAB_POOL_CREATE = bytes([151, 215, 226, 9, 118, 161, 115, 174, 15
118
186
 
119
187
  # DLMM(8 字节 event disc + payload)
120
188
  def _dlmm_buf_from_inner(disc16: bytes, inner: bytes) -> bytes:
121
- return disc16[8:16] + inner
189
+ return disc16[:8] + inner
122
190
 
123
191
 
124
192
  def _meteora_pools_swap_inner(data: bytes, meta_d: dict) -> Optional[DexEvent]:
@@ -234,6 +302,30 @@ def parse_inner_instruction(
234
302
  return emit(parse_ps_remove_liq_from_data(inner, meta_d))
235
303
  return None
236
304
 
305
+ if program_id_b58 == PUMP_FEES_PROGRAM_ID:
306
+ if filter is not None and not event_type_filter_includes_pump_fees(filter):
307
+ return None
308
+ event_disc = _event_cpi_disc8(disc16)
309
+ if event_disc == PUMP_FEES_CREATE_FEE_SHARING_CONFIG:
310
+ return emit(parse_pump_fees_create_fee_sharing_config_from_data(inner, meta_d))
311
+ if event_disc == PUMP_FEES_INITIALIZE_FEE_CONFIG:
312
+ return emit(parse_pump_fees_initialize_fee_config_from_data(inner, meta_d))
313
+ if event_disc == PUMP_FEES_RESET_FEE_SHARING_CONFIG:
314
+ return emit(parse_pump_fees_reset_fee_sharing_config_from_data(inner, meta_d))
315
+ if event_disc == PUMP_FEES_REVOKE_FEE_SHARING_AUTHORITY:
316
+ return emit(parse_pump_fees_revoke_fee_sharing_authority_from_data(inner, meta_d))
317
+ if event_disc == PUMP_FEES_TRANSFER_FEE_SHARING_AUTHORITY:
318
+ return emit(parse_pump_fees_transfer_fee_sharing_authority_from_data(inner, meta_d))
319
+ if event_disc == PUMP_FEES_UPDATE_ADMIN:
320
+ return emit(parse_pump_fees_update_admin_from_data(inner, meta_d))
321
+ if event_disc == PUMP_FEES_UPDATE_FEE_CONFIG:
322
+ return emit(parse_pump_fees_update_fee_config_from_data(inner, meta_d))
323
+ if event_disc == PUMP_FEES_UPDATE_FEE_SHARES:
324
+ return emit(parse_pump_fees_update_fee_shares_from_data(inner, meta_d))
325
+ if event_disc == PUMP_FEES_UPSERT_FEE_TIERS:
326
+ return emit(parse_pump_fees_upsert_fee_tiers_from_data(inner, meta_d))
327
+ return None
328
+
237
329
  if program_id_b58 == RAYDIUM_CLMM_PROGRAM_ID:
238
330
  if filter is not None and not event_type_filter_includes_raydium_clmm(filter):
239
331
  return None
@@ -243,10 +335,30 @@ def parse_inner_instruction(
243
335
  return emit(parse_clmm_inc_from_data(inner, meta_d))
244
336
  if disc16 == _CLMM_DEC:
245
337
  return emit(parse_clmm_dec_from_data(inner, meta_d))
338
+ if disc16 == _CLMM_LIQUIDITY_CHANGE:
339
+ return emit(parse_clmm_liquidity_change_from_data(inner, meta_d))
340
+ if disc16 == _CLMM_CONFIG_CHANGE:
341
+ return emit(parse_clmm_config_change_from_data(inner, meta_d))
342
+ if disc16 == _CLMM_CREATE_PERSONAL_POSITION:
343
+ return emit(parse_clmm_create_personal_position_from_data(inner, meta_d))
344
+ if disc16 == _CLMM_LIQUIDITY_CALCULATE:
345
+ return emit(parse_clmm_liquidity_calculate_from_data(inner, meta_d))
346
+ if disc16 == _CLMM_OPEN_LIMIT_ORDER:
347
+ return emit(parse_clmm_open_limit_order_from_data(inner, meta_d))
348
+ if disc16 == _CLMM_INCREASE_LIMIT_ORDER:
349
+ return emit(parse_clmm_increase_limit_order_from_data(inner, meta_d))
350
+ if disc16 == _CLMM_DECREASE_LIMIT_ORDER:
351
+ return emit(parse_clmm_decrease_limit_order_from_data(inner, meta_d))
352
+ if disc16 == _CLMM_SETTLE_LIMIT_ORDER:
353
+ return emit(parse_clmm_settle_limit_order_from_data(inner, meta_d))
354
+ if disc16 == _CLMM_UPDATE_REWARD_INFOS:
355
+ return emit(parse_clmm_update_reward_infos_from_data(inner, meta_d))
246
356
  if disc16 == _CLMM_CREATE_POOL:
247
357
  return emit(parse_clmm_create_from_data(inner, meta_d))
248
- if disc16 == _CLMM_COLLECT_FEE:
249
- return emit(parse_clmm_collect_from_data(inner, meta_d))
358
+ if disc16 == _CLMM_COLLECT_PERSONAL_FEE:
359
+ return emit(parse_clmm_collect_personal_from_data(inner, meta_d))
360
+ if disc16 == _CLMM_COLLECT_PROTOCOL_FEE:
361
+ return emit(parse_clmm_collect_protocol_from_data(inner, meta_d))
250
362
  return None
251
363
 
252
364
  if program_id_b58 == RAYDIUM_CPMM_PROGRAM_ID:
@@ -256,6 +368,8 @@ def parse_inner_instruction(
256
368
  return emit(parse_cpmm_swap_in_from_data(inner, meta_d))
257
369
  if disc16 == _CPMM_SWAP_OUT:
258
370
  return emit(parse_cpmm_swap_out_from_data(inner, meta_d))
371
+ if disc16 == _CPMM_CREATE_POOL:
372
+ return emit(parse_cpmm_create_from_data(inner, meta_d))
259
373
  if disc16 == _CPMM_DEP:
260
374
  return emit(parse_cpmm_deposit_from_data(inner, meta_d))
261
375
  if disc16 == _CPMM_WIT:
@@ -273,6 +387,10 @@ def parse_inner_instruction(
273
387
  return emit(parse_amm_deposit_from_data(inner, meta_d))
274
388
  if disc16 == _AMM_WIT:
275
389
  return emit(parse_amm_withdraw_from_data(inner, meta_d))
390
+ if disc16 == _AMM_INIT2:
391
+ return emit(parse_amm_init2_from_data(inner, meta_d))
392
+ if disc16 == _AMM_WITHDRAW_PNL:
393
+ return emit(parse_amm_withdraw_pnl_from_data(inner, meta_d))
276
394
  return None
277
395
 
278
396
  if program_id_b58 == ORCA_WHIRLPOOL_PROGRAM_ID:
@@ -284,17 +402,25 @@ def parse_inner_instruction(
284
402
  return emit(parse_orca_liq_inc_from_data(inner, meta_d))
285
403
  if disc16 == _ORCA_LIQ_DEC:
286
404
  return emit(parse_orca_liq_dec_from_data(inner, meta_d))
405
+ if disc16 == _ORCA_POOL_INITIALIZED:
406
+ return emit(parse_orca_pool_init_from_data(inner, meta_d))
287
407
  return None
288
408
 
289
409
  if program_id_b58 == METEORA_POOLS_PROGRAM_ID:
290
410
  if filter is not None and not event_type_filter_includes_meteora_pools(filter):
291
411
  return None
292
412
  if disc16 == _MP_SWAP:
293
- return emit(_meteora_pools_swap_inner(inner, meta_d))
413
+ return emit(parse_meteora_swap_from_data(inner, meta_d) or _meteora_pools_swap_inner(inner, meta_d))
294
414
  if disc16 == _MP_ADD:
295
- return emit(_meteora_pools_add_inner(inner, meta_d))
415
+ return emit(parse_meteora_add_from_data(inner, meta_d))
296
416
  if disc16 == _MP_REM:
297
- return emit(_meteora_pools_rem_inner(inner, meta_d))
417
+ return emit(parse_meteora_remove_from_data(inner, meta_d))
418
+ if disc16 == _MP_BOOTSTRAP:
419
+ return emit(parse_meteora_bootstrap_from_data(inner, meta_d))
420
+ if disc16 == _MP_POOL_CREATED:
421
+ return emit(parse_meteora_pool_created_from_data(inner, meta_d))
422
+ if disc16 == _MP_SET_POOL_FEES:
423
+ return emit(parse_meteora_pools_set_pool_fees_from_data(inner, meta_d))
298
424
  return None
299
425
 
300
426
  if program_id_b58 == METEORA_DAMM_V2_PROGRAM_ID: