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/__init__.py +18 -0
- sol_parser/account_dispatcher.py +2 -0
- sol_parser/account_fillers/meteora.py +15 -0
- sol_parser/account_fillers/pumpfun.py +11 -0
- sol_parser/check_migration.py +3 -0
- sol_parser/dex_parsers.py +881 -64
- sol_parser/event_type_parity.py +129 -0
- sol_parser/event_types.py +252 -0
- sol_parser/grpc_client.py +3 -4
- sol_parser/grpc_instruction_parser.py +14 -3
- sol_parser/grpc_types.py +49 -21
- sol_parser/inner_instruction_parser.py +138 -12
- sol_parser/instructions.py +293 -57
- sol_parser/log_instr_dedup.py +34 -4
- sol_parser/merger.py +115 -41
- sol_parser/parser.py +26 -6
- sol_parser/pumpfun_fee_enrich.py +12 -1
- sol_parser/rpc_parser.py +56 -11
- {sol_parser_sdk_python-0.5.6.dist-info → sol_parser_sdk_python-0.5.7.dist-info}/METADATA +2 -2
- {sol_parser_sdk_python-0.5.6.dist-info → sol_parser_sdk_python-0.5.7.dist-info}/RECORD +22 -21
- {sol_parser_sdk_python-0.5.6.dist-info → sol_parser_sdk_python-0.5.7.dist-info}/WHEEL +1 -1
- {sol_parser_sdk_python-0.5.6.dist-info → sol_parser_sdk_python-0.5.7.dist-info}/entry_points.txt +0 -0
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
|
-
#
|
|
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
|
-
|
|
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([
|
|
84
|
-
_CLMM_INC = bytes([
|
|
85
|
-
_CLMM_DEC = bytes([
|
|
86
|
-
|
|
87
|
-
|
|
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
|
|
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 ==
|
|
249
|
-
return emit(
|
|
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(
|
|
415
|
+
return emit(parse_meteora_add_from_data(inner, meta_d))
|
|
296
416
|
if disc16 == _MP_REM:
|
|
297
|
-
return emit(
|
|
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:
|