sol-parser-sdk-python 0.5.6__py3-none-any.whl → 0.5.8__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 +28 -0
- sol_parser/account_dispatcher.py +81 -0
- sol_parser/account_fillers/meteora.py +25 -2
- sol_parser/account_fillers/pumpfun.py +11 -0
- sol_parser/account_fillers/raydium.py +3 -2
- sol_parser/account_fillers/raydium_launchlab.py +50 -0
- sol_parser/accounts/__init__.py +47 -2
- sol_parser/check_migration.py +3 -0
- sol_parser/dex_parsers.py +1521 -124
- sol_parser/event_type_parity.py +133 -0
- sol_parser/event_types.py +473 -3
- sol_parser/grpc_client.py +3 -4
- sol_parser/grpc_instruction_parser.py +98 -28
- sol_parser/grpc_types.py +61 -21
- sol_parser/inner_instruction_parser.py +142 -18
- sol_parser/instructions.py +501 -101
- sol_parser/log_instr_dedup.py +90 -16
- sol_parser/merger.py +188 -126
- sol_parser/parser.py +37 -6
- sol_parser/pumpfun_fee_enrich.py +14 -1
- sol_parser/rpc_parser.py +82 -11
- {sol_parser_sdk_python-0.5.6.dist-info → sol_parser_sdk_python-0.5.8.dist-info}/METADATA +26 -9
- {sol_parser_sdk_python-0.5.6.dist-info → sol_parser_sdk_python-0.5.8.dist-info}/RECORD +25 -24
- {sol_parser_sdk_python-0.5.6.dist-info → sol_parser_sdk_python-0.5.8.dist-info}/WHEEL +1 -1
- {sol_parser_sdk_python-0.5.6.dist-info → sol_parser_sdk_python-0.5.8.dist-info}/entry_points.txt +0 -0
sol_parser/pumpfun_fee_enrich.py
CHANGED
|
@@ -82,7 +82,18 @@ def enrich_create_v2_from_create_events(events: List[DexEvent]) -> None:
|
|
|
82
82
|
if c is None:
|
|
83
83
|
continue
|
|
84
84
|
|
|
85
|
-
for attr in (
|
|
85
|
+
for attr in (
|
|
86
|
+
"name",
|
|
87
|
+
"symbol",
|
|
88
|
+
"uri",
|
|
89
|
+
"bonding_curve",
|
|
90
|
+
"user",
|
|
91
|
+
"creator",
|
|
92
|
+
"token_program",
|
|
93
|
+
"quote_mint",
|
|
94
|
+
"quote_vault",
|
|
95
|
+
"quote_token_program",
|
|
96
|
+
):
|
|
86
97
|
_fill_str_if_empty(c2, attr, getattr(c, attr))
|
|
87
98
|
for attr in (
|
|
88
99
|
"timestamp",
|
|
@@ -91,10 +102,12 @@ def enrich_create_v2_from_create_events(events: List[DexEvent]) -> None:
|
|
|
91
102
|
"real_token_reserves",
|
|
92
103
|
"token_total_supply",
|
|
93
104
|
"virtual_quote_reserves",
|
|
105
|
+
"creator_fee_bps",
|
|
94
106
|
):
|
|
95
107
|
_fill_int_if_zero(c2, attr, getattr(c, attr))
|
|
96
108
|
c2.is_cashback_enabled = c2.is_cashback_enabled or c.is_cashback_enabled
|
|
97
109
|
c2.is_mayhem_mode = c2.is_mayhem_mode or c.is_mayhem_mode
|
|
110
|
+
c2.is_holder_reward = c2.is_holder_reward or c.is_holder_reward
|
|
98
111
|
|
|
99
112
|
|
|
100
113
|
def enrich_pumpfun_trades_from_create_instructions(events: List[DexEvent]) -> None:
|
sol_parser/rpc_parser.py
CHANGED
|
@@ -8,9 +8,14 @@ from dataclasses import dataclass
|
|
|
8
8
|
|
|
9
9
|
import base58
|
|
10
10
|
|
|
11
|
-
from .dex_parsers import DexEvent
|
|
11
|
+
from .dex_parsers import DexEvent
|
|
12
12
|
from .grpc_types import EventTypeFilter, EventType, event_type_filter_allows_instruction_parsing
|
|
13
|
-
from .
|
|
13
|
+
from .inner_instruction_parser import parse_inner_instruction
|
|
14
|
+
from .instructions import (
|
|
15
|
+
METEORA_DLMM_PROGRAM_ID,
|
|
16
|
+
parse_inner_compiled_instruction_if_supported,
|
|
17
|
+
parse_instruction_unified,
|
|
18
|
+
)
|
|
14
19
|
from .log_instr_dedup import dedupe_log_instruction_events
|
|
15
20
|
from .pumpfun_fee_enrich import enrich_pumpfun_same_tx_post_merge
|
|
16
21
|
|
|
@@ -29,6 +34,7 @@ class RpcCompiledInstruction:
|
|
|
29
34
|
program_id_index: int
|
|
30
35
|
accounts: Union[List[int], bytes]
|
|
31
36
|
data: bytes
|
|
37
|
+
stack_height: Optional[int] = None
|
|
32
38
|
|
|
33
39
|
|
|
34
40
|
@dataclass
|
|
@@ -214,11 +220,17 @@ def parse_rpc_transaction(
|
|
|
214
220
|
block_tx_index = int(getattr(tx, "transaction_index", 0) or 0)
|
|
215
221
|
full_account_keys = _merge_rpc_full_account_keys(msg.account_keys, meta)
|
|
216
222
|
|
|
217
|
-
|
|
223
|
+
indexed_instruction_events: List[Tuple[Any, ...]] = []
|
|
224
|
+
from .grpc_instruction_parser import (
|
|
225
|
+
_is_dlmm_event_cpi,
|
|
226
|
+
detect_pumpfun_create_from_logs,
|
|
227
|
+
merge_instruction_events,
|
|
228
|
+
)
|
|
229
|
+
has_pumpfun_create_log = detect_pumpfun_create_from_logs(list(meta.log_messages))
|
|
218
230
|
|
|
219
231
|
if _should_parse_rpc_instructions(filter):
|
|
220
232
|
# 解析外层指令
|
|
221
|
-
for ix in msg.instructions:
|
|
233
|
+
for outer_idx, ix in enumerate(msg.instructions):
|
|
222
234
|
ev = _parse_rpc_instruction(
|
|
223
235
|
ix,
|
|
224
236
|
full_account_keys,
|
|
@@ -228,13 +240,15 @@ def parse_rpc_transaction(
|
|
|
228
240
|
block_time_us,
|
|
229
241
|
grpc_recv_us,
|
|
230
242
|
filter,
|
|
243
|
+
inner=False,
|
|
244
|
+
is_created_buy=has_pumpfun_create_log,
|
|
231
245
|
)
|
|
232
246
|
if ev:
|
|
233
|
-
|
|
247
|
+
indexed_instruction_events.append((outer_idx, None, 1, False, ev))
|
|
234
248
|
|
|
235
249
|
# 解析内层指令
|
|
236
250
|
for group in meta.inner_instructions:
|
|
237
|
-
for ix in group.instructions:
|
|
251
|
+
for inner_idx, ix in enumerate(group.instructions):
|
|
238
252
|
ev = _parse_rpc_instruction(
|
|
239
253
|
ix,
|
|
240
254
|
full_account_keys,
|
|
@@ -244,12 +258,31 @@ def parse_rpc_transaction(
|
|
|
244
258
|
block_time_us,
|
|
245
259
|
grpc_recv_us,
|
|
246
260
|
filter,
|
|
261
|
+
inner=True,
|
|
262
|
+
is_created_buy=has_pumpfun_create_log,
|
|
247
263
|
)
|
|
248
264
|
if ev:
|
|
249
|
-
|
|
265
|
+
pid = (
|
|
266
|
+
full_account_keys[ix.program_id_index]
|
|
267
|
+
if ix.program_id_index < len(full_account_keys)
|
|
268
|
+
else ""
|
|
269
|
+
)
|
|
270
|
+
indexed_instruction_events.append((
|
|
271
|
+
int(group.index),
|
|
272
|
+
inner_idx,
|
|
273
|
+
ix.stack_height,
|
|
274
|
+
pid == METEORA_DLMM_PROGRAM_ID and _is_dlmm_event_cpi(ix.data),
|
|
275
|
+
ev,
|
|
276
|
+
))
|
|
277
|
+
|
|
278
|
+
instruction_events = merge_instruction_events(indexed_instruction_events)
|
|
279
|
+
enrich_pumpfun_same_tx_post_merge(instruction_events)
|
|
280
|
+
if msg.recent_blockhash:
|
|
281
|
+
for ev in instruction_events:
|
|
282
|
+
if hasattr(ev.data, "metadata"):
|
|
283
|
+
ev.data.metadata.recent_blockhash = msg.recent_blockhash
|
|
250
284
|
|
|
251
285
|
# 解析日志
|
|
252
|
-
is_created_buy = False
|
|
253
286
|
recent_blockhash = msg.recent_blockhash
|
|
254
287
|
log_events: List[DexEvent] = []
|
|
255
288
|
|
|
@@ -271,13 +304,11 @@ def parse_rpc_transaction(
|
|
|
271
304
|
block_time_us,
|
|
272
305
|
grpc_recv_us,
|
|
273
306
|
filter,
|
|
274
|
-
|
|
307
|
+
has_pumpfun_create_log,
|
|
275
308
|
recent_blockhash,
|
|
276
309
|
active_program_stack[-1] if active_program_stack else None,
|
|
277
310
|
)
|
|
278
311
|
if ev:
|
|
279
|
-
if ev.type in (EventType.PUMP_FUN_CREATE, EventType.PUMP_FUN_CREATE_V2):
|
|
280
|
-
is_created_buy = True
|
|
281
312
|
log_events.append(ev)
|
|
282
313
|
|
|
283
314
|
completed = parse_program_complete_info(log)
|
|
@@ -315,6 +346,8 @@ def _parse_rpc_instruction(
|
|
|
315
346
|
block_time_us: Optional[int],
|
|
316
347
|
grpc_recv_us: int,
|
|
317
348
|
filter: Optional[EventTypeFilter],
|
|
349
|
+
inner: bool = False,
|
|
350
|
+
is_created_buy: bool = False,
|
|
318
351
|
) -> Optional[DexEvent]:
|
|
319
352
|
"""解析 RPC 指令"""
|
|
320
353
|
# 获取程序 ID
|
|
@@ -334,6 +367,35 @@ def _parse_rpc_instruction(
|
|
|
334
367
|
if acc_idx < len(account_keys):
|
|
335
368
|
accounts.append(account_keys[acc_idx])
|
|
336
369
|
|
|
370
|
+
if inner:
|
|
371
|
+
ev = parse_inner_compiled_instruction_if_supported(
|
|
372
|
+
data,
|
|
373
|
+
accounts,
|
|
374
|
+
signature,
|
|
375
|
+
slot,
|
|
376
|
+
tx_index,
|
|
377
|
+
block_time_us,
|
|
378
|
+
grpc_recv_us,
|
|
379
|
+
filter,
|
|
380
|
+
program_id,
|
|
381
|
+
)
|
|
382
|
+
if ev:
|
|
383
|
+
return ev
|
|
384
|
+
return parse_inner_instruction(
|
|
385
|
+
data,
|
|
386
|
+
program_id,
|
|
387
|
+
{
|
|
388
|
+
"signature": signature,
|
|
389
|
+
"slot": slot,
|
|
390
|
+
"tx_index": tx_index,
|
|
391
|
+
"block_time_us": 0 if block_time_us is None else block_time_us,
|
|
392
|
+
"grpc_recv_us": grpc_recv_us,
|
|
393
|
+
"recent_blockhash": "",
|
|
394
|
+
},
|
|
395
|
+
filter,
|
|
396
|
+
is_created_buy,
|
|
397
|
+
)
|
|
398
|
+
|
|
337
399
|
return parse_instruction_unified(
|
|
338
400
|
data, accounts, signature, slot, tx_index, block_time_us, grpc_recv_us, filter, program_id
|
|
339
401
|
)
|
|
@@ -480,6 +542,13 @@ def _parse_rpc_compiled_ix(ix: dict, account_keys: List[str]) -> RpcCompiledInst
|
|
|
480
542
|
program_id_index=pidx,
|
|
481
543
|
accounts=acc_list,
|
|
482
544
|
data=_ix_data_from_rpc(ix),
|
|
545
|
+
stack_height=(
|
|
546
|
+
int(ix["stackHeight"])
|
|
547
|
+
if ix.get("stackHeight") is not None
|
|
548
|
+
else int(ix["stack_height"])
|
|
549
|
+
if ix.get("stack_height") is not None
|
|
550
|
+
else None
|
|
551
|
+
),
|
|
483
552
|
)
|
|
484
553
|
|
|
485
554
|
|
|
@@ -672,6 +741,8 @@ def rpc_response_to_solana_storage(
|
|
|
672
741
|
acc = ix.accounts
|
|
673
742
|
ii.accounts = bytes(acc) if not isinstance(acc, bytes) else acc
|
|
674
743
|
ii.data = ix.data
|
|
744
|
+
if ix.stack_height is not None:
|
|
745
|
+
ii.stack_height = ix.stack_height
|
|
675
746
|
if m.loaded_addresses:
|
|
676
747
|
for w in m.loaded_addresses.writable:
|
|
677
748
|
meta.loaded_writable_addresses.append(base58.b58decode(w))
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
2
|
Name: sol-parser-sdk-python
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.8
|
|
4
4
|
Summary: Solana DEX program log parsing (pure Python, API aligned with sol-parser-sdk)
|
|
5
5
|
Requires-Python: >=3.10
|
|
6
6
|
Requires-Dist: base58>=2.0
|
|
@@ -46,12 +46,6 @@ Description-Content-Type: text/markdown
|
|
|
46
46
|
<a href="https://discord.gg/vuazbGkqQE">Discord</a>
|
|
47
47
|
</p>
|
|
48
48
|
|
|
49
|
-
> ☕ **Support This Project**
|
|
50
|
-
>
|
|
51
|
-
> This SDK is completely free and open source. However, maintaining and continuously updating it requires significant AI computing resources and token consumption. If this SDK helps with your development, consider making a monthly SOL donation — any amount is appreciated and helps keep this project alive!
|
|
52
|
-
>
|
|
53
|
-
> **Donation Wallet:** `6oW7AXz1yRb57pYSxysuXnMs2aR1ha5rzGzReZ1MjPV8`
|
|
54
|
-
|
|
55
49
|
---
|
|
56
50
|
|
|
57
51
|
## Other language SDKs
|
|
@@ -65,8 +59,31 @@ Description-Content-Type: text/markdown
|
|
|
65
59
|
|
|
66
60
|
---
|
|
67
61
|
|
|
62
|
+
## What This SDK Is For
|
|
63
|
+
|
|
64
|
+
This is the Python implementation of the FnZero Solana DEX parser SDK for asyncio services, research scripts, indexers, copy-trading systems, sniper pipelines, and backend jobs that need normalized real-time DEX events.
|
|
65
|
+
|
|
66
|
+
| Area | Coverage |
|
|
67
|
+
|------|----------|
|
|
68
|
+
| Parser inputs | Yellowstone gRPC, ShredStream, RPC transactions, encoded transactions, protocol account data |
|
|
69
|
+
| DEX protocols | PumpFun, PumpSwap, Pump Fees, Raydium LaunchLab, Raydium CPMM, Raydium CLMM, Raydium AMM V4, Meteora DAMM v2, Meteora DLMM, Meteora DBC, Orca Whirlpool |
|
|
70
|
+
| Use cases | Real-time DEX event parsing, token launch monitoring, copy trading, sniper bots, analytics notebooks, JSON event pipelines |
|
|
71
|
+
| Runtime | Python 3.10+, asyncio workers, backend services, data pipelines, low-latency bot infrastructure |
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
68
75
|
## Release notes
|
|
69
76
|
|
|
77
|
+
### v0.5.8
|
|
78
|
+
|
|
79
|
+
- Syncs with Rust **sol-parser-sdk 0.7.3**, including the current PumpFun, PumpSwap, and Pump Fees protocol definitions.
|
|
80
|
+
- Adds Meteora DAMM v2 events: `UpdateDelegatePermission`, `WithdrawDeadLiquidityReward`, `CreateConfig`, `CreateDynamicConfig`.
|
|
81
|
+
- Fixes DAMM v2 `EvtSwap2` full 180-byte layout, three swap modes, transfer fees, reserves, and compounding-fee layout activation slot `406048752`.
|
|
82
|
+
- Routes unified `EvtLiquidityChange` by `change_type` to AddLiquidity / RemoveLiquidity.
|
|
83
|
+
- Adds DLMM mint/user-token/`min_amount_out` context, PumpFun pre/post token & SOL balances, and LaunchLab quote/global/platform account fields.
|
|
84
|
+
- Adds current PumpFun/PumpSwap creator-fee and holder-reward fields across instruction, log, account, gRPC, and JSON event paths.
|
|
85
|
+
- Rejects truncated known PumpSwap trade and CreatePool tails while retaining complete historical layouts.
|
|
86
|
+
|
|
70
87
|
### v0.5.6
|
|
71
88
|
|
|
72
89
|
- Adds Meteora DBC log parsing with program-context routing and filter parity.
|
|
@@ -92,7 +109,7 @@ Description-Content-Type: text/markdown
|
|
|
92
109
|
**From PyPI**
|
|
93
110
|
|
|
94
111
|
```bash
|
|
95
|
-
pip install sol-parser-sdk-python==0.5.
|
|
112
|
+
pip install sol-parser-sdk-python==0.5.8
|
|
96
113
|
```
|
|
97
114
|
|
|
98
115
|
**From source**
|
|
@@ -1,27 +1,28 @@
|
|
|
1
|
-
sol_parser/__init__.py,sha256=
|
|
2
|
-
sol_parser/account_dispatcher.py,sha256=
|
|
3
|
-
sol_parser/check_migration.py,sha256=
|
|
1
|
+
sol_parser/__init__.py,sha256=2b7VW5C0aEbBsfkUPEUzuDXZIxLSm5Jwg2xkFvjHrR8,15031
|
|
2
|
+
sol_parser/account_dispatcher.py,sha256=Zy--fqFypjDk_kU-6Z6Z3T5xqG1IvMHROYBd_n3VsKk,13028
|
|
3
|
+
sol_parser/check_migration.py,sha256=PsRE_Zhnw2g_iaP_iYtlGsQutE2w_FsaZIP4GPeN8-o,537
|
|
4
4
|
sol_parser/clock.py,sha256=RHF99qMerKvEsT55krkftIh-uqy_uTzpgdKCqKBMDmA,278
|
|
5
|
-
sol_parser/dex_parsers.py,sha256=
|
|
5
|
+
sol_parser/dex_parsers.py,sha256=ogyuqBQro2MisryGrGfyGiZwxZc3ImiSNB8GAROaTLU,134727
|
|
6
6
|
sol_parser/entries_decode.py,sha256=-eooIYrXOcpNtrSgSEVehY8NkBhwUMnziAR5Wx8S0Nk,5620
|
|
7
7
|
sol_parser/env_config.py,sha256=Lw0SdZuy_MvUaVkyFxS0qPBgMzR9UBbxbN0CVz8nxg4,7296
|
|
8
|
-
sol_parser/
|
|
8
|
+
sol_parser/event_type_parity.py,sha256=L_oxbUtCTQ9JLGyRiLXNhDTp0UUOcEbe_IPrisgdMBY,4206
|
|
9
|
+
sol_parser/event_types.py,sha256=BtNNPUTniBh0sMJrEYDg3YhmRtQdtnc09LTThlszXw0,86841
|
|
9
10
|
sol_parser/geyser_pb2.py,sha256=Hq66wmWxXD2jSbSVQW7vmBRB7nWmR1DuYDMQ6nKgl3o,20123
|
|
10
11
|
sol_parser/geyser_pb2_grpc.py,sha256=ASPmZsCNvyCzt_j4IrhKjSacWUNLVuAiLfpjmyd-2Qc,15322
|
|
11
|
-
sol_parser/grpc_client.py,sha256=
|
|
12
|
-
sol_parser/grpc_instruction_parser.py,sha256=
|
|
13
|
-
sol_parser/grpc_types.py,sha256=
|
|
14
|
-
sol_parser/inner_instruction_parser.py,sha256=
|
|
12
|
+
sol_parser/grpc_client.py,sha256=LvYM7FOO-IOEB0GXf8wtGyJNtuiJHvDVRiOwT0kJoI8,32278
|
|
13
|
+
sol_parser/grpc_instruction_parser.py,sha256=p_9BnhC5FHHIXLKPKEM2_infbMC7apr4CQEhMxfkKz4,13450
|
|
14
|
+
sol_parser/grpc_types.py,sha256=750OCMauel0nVQWg2kAk5yFd0Tiwl5S7z-NCbHFFKjw,38327
|
|
15
|
+
sol_parser/inner_instruction_parser.py,sha256=Mynr-pzSFG3AuRUl9wu2_G-wzDJZp_GcorGslP88f0s,20831
|
|
15
16
|
sol_parser/instr_account_utils.py,sha256=MY8bgoIDiv2yJKeWxqhpfKc3pV4xUFTcYKnSXtnQMWc,1990
|
|
16
|
-
sol_parser/instructions.py,sha256=
|
|
17
|
+
sol_parser/instructions.py,sha256=3B3mrL0OJhzNs_K_8-0bLPkh2kF1jh-G3ofTK9tx-a8,78917
|
|
17
18
|
sol_parser/json_util.py,sha256=qq0A5bs-HxxQH6vgg1Kja4tQ8cPaop9uItBcW7Ajox4,1458
|
|
18
|
-
sol_parser/log_instr_dedup.py,sha256=
|
|
19
|
+
sol_parser/log_instr_dedup.py,sha256=AWF3EMaEXI5V_bwjyF24uH_ozWTijRvd0zf7lGBXTMk,14559
|
|
19
20
|
sol_parser/market.py,sha256=p_N6n3b4hEtUjHAQQyGSnrKdHYmkHdY1hXXObHRKc0Y,1858
|
|
20
|
-
sol_parser/merger.py,sha256=
|
|
21
|
+
sol_parser/merger.py,sha256=NGjqSzTNDvDDlIH-8DV2Mk_Z5xJ3ItlnUiAGOAK6kPU,12362
|
|
21
22
|
sol_parser/order_buffer.py,sha256=xW-Okii8a9t9tCqbBKtxFh1moTEi7RqycMFO2kwp-d4,6447
|
|
22
|
-
sol_parser/parser.py,sha256=
|
|
23
|
-
sol_parser/pumpfun_fee_enrich.py,sha256=
|
|
24
|
-
sol_parser/rpc_parser.py,sha256=
|
|
23
|
+
sol_parser/parser.py,sha256=jd-NkWXso7Rcp8TJiBFvjTmNO468tb7rsEElQkU-EV0,11286
|
|
24
|
+
sol_parser/pumpfun_fee_enrich.py,sha256=NHC_chCv2wuaOW5taYG8R6M1bu8cmdxcLf8cjSfo7Kc,4688
|
|
25
|
+
sol_parser/rpc_parser.py,sha256=iWTl_OtNOEpoOmvVEPVmum5QDdGyjSiX6r_3Hx4LOTg,25361
|
|
25
26
|
sol_parser/rust_api_inventory.py,sha256=V5Bx1M3GT-ku_vj_kD6lnbqWExv1K_A00PrmhCFfRec,2257
|
|
26
27
|
sol_parser/rust_event_json.py,sha256=7hho9TGfSOQjHev_8uRa4YHU1hrEsW1RfwcU9qHYz1o,1649
|
|
27
28
|
sol_parser/shredstream_client.py,sha256=xBE6KE9kyTXkXO82iEi99dQCSHq-dIIkFF7u8NHBWHE,9967
|
|
@@ -33,13 +34,13 @@ sol_parser/solana_storage_pb2_grpc.py,sha256=-Gys-K2Kw5Uy3JjtgIXmaYE6YKnXd5ZfBaM
|
|
|
33
34
|
sol_parser/u128_parity.py,sha256=D8PYuy1l-1QwkIEeGCLvrGfzAfTzpBDcGINxRIJAEPs,3487
|
|
34
35
|
sol_parser/verify_discriminators.py,sha256=oqCBWL065ixBIjhHW255nk4S-F1F0x4zfTzs68nXMqA,3011
|
|
35
36
|
sol_parser/account_fillers/__init__.py,sha256=q4q7HZF0Z4-rxhKoRMzV52HSkJ_n_POm4vimYUQlCOA,235
|
|
36
|
-
sol_parser/account_fillers/meteora.py,sha256=
|
|
37
|
+
sol_parser/account_fillers/meteora.py,sha256=ecY3F4KkjnVxBc-Zsnzru52DggkYOdbeauaYrznDxFY,2111
|
|
37
38
|
sol_parser/account_fillers/orca.py,sha256=2s-hfi20fa5sy6p1rGc7_7NxzkpaleJdqn3YD41aBAw,895
|
|
38
|
-
sol_parser/account_fillers/pumpfun.py,sha256=
|
|
39
|
+
sol_parser/account_fillers/pumpfun.py,sha256=hZgvqquXRDAR1Vny7y69YX7BZyo0tWiqZlnJLu1Zlxs,5969
|
|
39
40
|
sol_parser/account_fillers/pumpswap.py,sha256=1_JBmwFGMr_tAMZpYQsPnUJDoQlGvCpwB90iZzWHLzM,4042
|
|
40
|
-
sol_parser/account_fillers/raydium.py,sha256=
|
|
41
|
-
sol_parser/account_fillers/raydium_launchlab.py,sha256=
|
|
42
|
-
sol_parser/accounts/__init__.py,sha256=
|
|
41
|
+
sol_parser/account_fillers/raydium.py,sha256=av6SUeWVnvm6cxC_A3RIxPhQR1rONgqIzXTDVR-6q_g,3392
|
|
42
|
+
sol_parser/account_fillers/raydium_launchlab.py,sha256=gED19-pyUySD6qe7ecBxMDnfzreCQRY3QlC0NZSb2To,2479
|
|
43
|
+
sol_parser/accounts/__init__.py,sha256=YPhWgp5EBZO1Rc3Gbf_iWQlpnZvRpS7eFoDNLn0tznc,33924
|
|
43
44
|
sol_parser/accounts/raydium_orca.py,sha256=Q3eYe5kBO18LnGOe-xRAGQu8RJv878CEnmPIyVFbZyo,17158
|
|
44
45
|
sol_parser/accounts/rpc_wallet.py,sha256=IT0WEzna9phG7AzhJR8o4GA_BlB4ZvhuDWfCHQcMXwg,1944
|
|
45
46
|
sol_parser/accounts/utils.py,sha256=BAACAIvA2Uz0U26BpYPTalTqiuarXYhkbS-i2o1uJUY,2140
|
|
@@ -50,7 +51,7 @@ sol_parser/grpc/subscribe_builder.py,sha256=fv6_jQAR6Q0seUhXjgcDPnPsG03Bxs59lHGe
|
|
|
50
51
|
sol_parser/grpc/transaction_meta.py,sha256=NmIffIQ1_OIfWGjy6JY-f8pIK5ucjDZXXJryjnlgoQs,5894
|
|
51
52
|
sol_parser/instr/__init__.py,sha256=0_Ky8KpVEoXzxszHcHLTuY2SDsJwu0uAF2Q0wMY1e-c,503
|
|
52
53
|
sol_parser/logs/__init__.py,sha256=e1cbhbCNeXy-NZvVsYCpGksBpZf4NJBLmdlky06og-U,349
|
|
53
|
-
sol_parser_sdk_python-0.5.
|
|
54
|
-
sol_parser_sdk_python-0.5.
|
|
55
|
-
sol_parser_sdk_python-0.5.
|
|
56
|
-
sol_parser_sdk_python-0.5.
|
|
54
|
+
sol_parser_sdk_python-0.5.8.dist-info/METADATA,sha256=hfEZwNMDJ3A-5OrDUyVoQg6kFf1GEMBuWb7UkCXDEOU,14402
|
|
55
|
+
sol_parser_sdk_python-0.5.8.dist-info/WHEEL,sha256=zOwg4jB6zX2kU910N-cMawjivD6tO8NEWvE12je1bVk,87
|
|
56
|
+
sol_parser_sdk_python-0.5.8.dist-info/entry_points.txt,sha256=ZGXRb-2jBdc56d8PCAZFiJBLTAzUKFeHPohysJnKVbA,206
|
|
57
|
+
sol_parser_sdk_python-0.5.8.dist-info/RECORD,,
|
{sol_parser_sdk_python-0.5.6.dist-info → sol_parser_sdk_python-0.5.8.dist-info}/entry_points.txt
RENAMED
|
File without changes
|