sol-parser-sdk 0.5.16 → 0.5.18

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.
Files changed (66) hide show
  1. package/README.md +31 -15
  2. package/README_CN.md +30 -14
  3. package/dist/accounts/pumpfun.js +15 -0
  4. package/dist/accounts/pumpswap.js +2 -0
  5. package/dist/core/account_dispatcher_rpc.d.ts +2 -1
  6. package/dist/core/account_dispatcher_rpc.js +120 -11
  7. package/dist/core/account_fill_pumpfun.js +27 -16
  8. package/dist/core/account_fill_pumpswap.d.ts +2 -0
  9. package/dist/core/account_fill_pumpswap.js +55 -6
  10. package/dist/core/account_fill_raydium.js +4 -0
  11. package/dist/core/dex_event.d.ts +149 -0
  12. package/dist/grpc/client.js +2 -0
  13. package/dist/grpc/log_instr_dedup.js +75 -7
  14. package/dist/grpc/order_buffer.d.ts +5 -0
  15. package/dist/grpc/order_buffer.js +53 -17
  16. package/dist/grpc/rpc_to_grpc.js +3 -2
  17. package/dist/grpc/types.d.ts +4 -1
  18. package/dist/grpc/types.js +23 -0
  19. package/dist/grpc/yellowstone_transaction_adapter.js +1 -1
  20. package/dist/index.d.ts +1 -0
  21. package/dist/index.js +1 -0
  22. package/dist/instr/inner.js +28 -1
  23. package/dist/instr/meteora_damm_ix.js +26 -0
  24. package/dist/instr/meteora_pools_ix.js +17 -9
  25. package/dist/instr/orca_whirlpool_ix.js +13 -9
  26. package/dist/instr/pumpfun_ix.js +87 -3
  27. package/dist/instr/pumpswap_ix.js +85 -10
  28. package/dist/instr/raydium_clmm_ix.js +5 -3
  29. package/dist/instr/raydium_cpmm_ix.js +11 -8
  30. package/dist/logs/meteora_damm.d.ts +7 -0
  31. package/dist/logs/meteora_damm.js +211 -0
  32. package/dist/logs/meteora_dbc.d.ts +3 -0
  33. package/dist/logs/meteora_dbc.js +23 -0
  34. package/dist/logs/meteora_dlmm.js +16 -4
  35. package/dist/logs/optimized_matcher.js +93 -10
  36. package/dist/logs/program_log_discriminators.d.ts +11 -0
  37. package/dist/logs/program_log_discriminators.js +11 -0
  38. package/dist/logs/pump.js +17 -3
  39. package/dist/logs/pump_amm.js +8 -2
  40. package/dist/logs/pump_upgrade.d.ts +68 -0
  41. package/dist/logs/pump_upgrade.js +128 -0
  42. package/dist/logs/raydium_cpmm.js +7 -3
  43. package/dist/rpc_transaction.js +87 -7
  44. package/dist/shredstream/alt_cache.d.ts +26 -0
  45. package/dist/shredstream/alt_cache.js +138 -0
  46. package/dist/shredstream/client.d.ts +11 -3
  47. package/dist/shredstream/client.js +76 -72
  48. package/dist/shredstream/config.d.ts +7 -3
  49. package/dist/shredstream/index.d.ts +3 -2
  50. package/dist/shredstream/index.js +5 -3
  51. package/dist/shredstream/instruction_parse.d.ts +1 -1
  52. package/dist/shredstream/instruction_parse.js +1 -0
  53. package/dist/simulation_route.d.ts +1 -1
  54. package/dist/simulation_route.js +17 -4
  55. package/dist/transaction_route.js +20 -1
  56. package/dist/wire_transaction.js +9 -10
  57. package/docs/USAGE.md +161 -0
  58. package/package.json +2 -5
  59. package/NATIVE_ALIGNMENT.md +0 -312
  60. package/NATIVE_DAMM_FACTORY_ALIGNMENT_20261004.md +0 -16
  61. package/NATIVE_DAMM_FACTORY_EVIDENCE_20261004.json +0 -55
  62. package/NATIVE_MIGRATION.md +0 -38
  63. package/NATIVE_PUMPFUN_NATIVE_DEBIT_ALIGNMENT_20261004.md +0 -18
  64. package/NATIVE_PUMPFUN_NATIVE_DEBIT_EVIDENCE_20261004.json +0 -57
  65. package/NATIVE_PUMPFUN_SETTLEMENT_ALIGNMENT_20261004.md +0 -11
  66. package/NATIVE_PUMPFUN_SETTLEMENT_EVIDENCE_20261004.json +0 -70
@@ -1,55 +0,0 @@
1
- {
2
- "baseline": {
3
- "trade": "5.0.6",
4
- "parser": "0.7.7"
5
- },
6
- "scope": "DAMM cached exact-in factory and route parsing",
7
- "broadcasts": 0,
8
- "tests": {
9
- "trade_node": 3054,
10
- "trade_python": 3135,
11
- "parser_node": 210,
12
- "parser_node_skipped": 8,
13
- "parser_python": 196,
14
- "go": "test/vet/race passed"
15
- },
16
- "simulations": [
17
- {
18
- "fixture": "cached_damm_v2_wsol_buy_20261004.json",
19
- "wire_sha256": "1d76f287e2ef99de37984648b48fa78673c986bfd0275deb2f6923e462cd1f78",
20
- "error": {
21
- "InstructionError": [
22
- 2,
23
- {
24
- "Custom": 1
25
- }
26
- ]
27
- },
28
- "slot": 453089743
29
- },
30
- {
31
- "fixture": "cached_damm_v2_sol_buy_20261004.json",
32
- "wire_sha256": "258381dd8fe9ddc8b4a2240db2f8993be3c099851f3124db85d054425a16fcae",
33
- "error": null,
34
- "slot": 453089744
35
- },
36
- {
37
- "fixture": "cached_damm_v2_funded_wsol_buy_20261004.json",
38
- "wire_sha256": "0c797787f9dc745eadb1ff2c49869a6ad94cfee9f5d571e4f057e956ac35bc2a",
39
- "error": null,
40
- "slot": 453090844
41
- }
42
- ],
43
- "unverified": [
44
- "real sell",
45
- "USDC/stock matrix",
46
- "automatic quote and DAMM multi-hop",
47
- "overall parity"
48
- ],
49
- "artifact_sha256": {
50
- "/tmp/native-damm-npm/sol-trade-sdk-0.1.6.tgz": "6b3aea55fabfe05268b9b42f38baed7721f1c5c139e8d9ab02295beb6edefd4a",
51
- "/tmp/native-damm-parser-npm/sol-parser-sdk-0.5.15.tgz": "ea02d4ab390355b5deaac96e167b891e8a6d0d81d19281aa7707d409d86978fa",
52
- "/tmp/native-damm-wheels/sol_trade_sdk-0.1.6-py3-none-any.whl": "2ebe7251396d5f5d71018648afb700781f369f62a1287b6ba913d0b411e3b1d2",
53
- "/tmp/native-damm-parser-wheels/sol_parser_sdk_python-0.5.8-py3-none-any.whl": "1d4924070b0944f3437e877e08dd09b2c9c0f509dc0d482cccf0c993a3ffa95d"
54
- }
55
- }
@@ -1,38 +0,0 @@
1
- # 本轮 API 迁移(实施中,尚未发布)
2
-
3
- 基线:Rust sol-parser-sdk 0.7.7。完整功能对照仍在审核,本文件描述已修改的公开行为。
4
-
5
- ## 元数据精度
6
-
7
- Node 的 `EventMetadata.slot`、`tx_index`、`block_time_us`、`grpc_recv_us` 现在是 `bigint`。输入支持 bigint、十进制字符串及安全整数 Number;超出安全整数范围的 Number、浮点数、越界 u64/i64 拒绝。根入口导出 `exactU64`、`exactI64`、`exactInteger`。使用 `dexEventToJsonString` 或 `bigintToJsonReplacer` 输出 JSON;直接 JSON.stringify(bigint) 会失败。
8
-
9
- ```ts
10
- const slot = exactU64("18446744073709551615");
11
- const latency = Number(BigInt(nowUs()) - event.metadata.grpc_recv_us);
12
- console.log(JSON.stringify(event, bigintToJsonReplacer));
13
- ```
14
-
15
- 只在计算显示用延迟时将差值转为 Number。slot、index、时间及金额参与解析和排序时保留精确整数。
16
-
17
- Go `EventMetadata` 保持 uint64/int64,JSON 输出上述四个字段为十进制字符串;Unmarshal 接受整数文本或十进制字符串,并检查范围,不接受 null/float/bool。Python `EventMetadata` 将十进制字符串归一为 int,拒绝 bool/float/越界;公开 JSON 工具输出上述元数据字段为字符串。各语言省略元数据整数时仍默认 0。未知实际净到账继续使用明确未知值,不能用 0 代替。
18
-
19
- 其余全部事件整数/JSON 字段的行为审核尚未完成。
20
-
21
- ## 事件别名
22
-
23
- 三语言提供 `LaunchLabPoolCreateEvent`、`StonkFunPoolCreateEvent`、`LaunchLabTradeEvent`、`StonkFunTradeEvent`。它们复用已有 RaydiumLaunchlab 结构。平台归属仍需池配置或迁移记录,不能仅凭共享 program ID 断言 StonkFun。
24
-
25
- ## gRPC 生命周期
26
-
27
- 一个 client 同时管理一个 DEX 订阅。再次订阅会停止并等待原订阅;动态更新和停止串行进行。Node `sub.join()` / Go `sub.Join()` 等待全部 worker;Python `await client.stop()` 等待任务。Node 使用 grpc-js + proto-loader,安装 SDK 不再包含 Yellowstone Rust N-API 客户端依赖。
28
-
29
- Node `sub.states` / `sub.status()`、Go `sub.States` / `sub.Status()`、Python `queue.states` / `queue.status()` 提供连接、重连、连续性中断、丢弃及停止状态;保留原事件和错误消费方式。状态通知有界,状态快照可读取当前累计信息。重连成功不会自动清除连续性中断。调用方需中止交易准备,在选定 fork 下重新验证缓存,再恢复 readiness。
30
-
31
- 节点停止可能使事件消费结束或队列停止产出;Python 队列消费者同时观察状态以终止 get 等待。完整实时缓存恢复、新 array 发现和 commitment/fork 自动关联仍在实现。
32
-
33
- 示例见 `examples/GRPC_CACHE.md`;PublicNode 接入读取 GRPC_URL/GRPC_TOKEN,不打印凭据。
34
-
35
-
36
- ## DAMM route 解析(2026-10-04)
37
-
38
- 新增 legacy swap/swap2 route;mode 0/1 exact-in,mode 2 第一个金额为期望输出、第二个为最大输入,其它 mode unknown。失败保留意图、实际成交未知;Token-2022 缺净到账证据不填零。历史模拟 expected 新增 DAMM leg,调用方不可依赖旧的空 legs。
@@ -1,18 +0,0 @@
1
- # PumpFun 原生 SOL 成交量归属(2026-10-04)
2
-
3
- 三语言 parser 对 WSOL-sentinel PumpFun V2 统一报告钱包作为 native 支付/收款账户,不再误报指令中的 WSOL ATA 为实际结算账户。mint 仍按 Solana 的 WSOL sentinel 表示该资产;外层 WSOL 转换动作单独保留。
4
-
5
- 买入实际输入来自成功调用内的直属 System transfer:曲线本金、protocol fee、buyback fee、creator fee。必须观察到曲线收款;收款人不属于该指令明确账户、付款调用深度缺失或有嵌套歧义、总额溢出时返回未知。不会拿 specified amount 补实际金额。交易手续费、ATA rent、外层 WSOL 转出及临时账户关闭不会重复计入 swap。
6
-
7
- 真实旧/新买入模拟均得到实际 SOL 输入 10000。新 funded WSOL 模拟可同时看到外层 10000 WSOL 转出、临时账户关闭和 PumpFun 10000 SOL 支付;这不是两次用户支付。卖出直接修改 lamports 的实际净输出仍未归属,Token-2022 净到账缺少费用证据仍为未知。失败交易始终不报告实际成交量。
8
-
9
- 新 fixtures/pumpfun_settlement_mainnet_simulations_20261004.json 保留实际 mainnet 模拟 wire/response 和三语言相同解析预期。并补缺失 pool 支付、缺失深度、陌生收款人、嵌套及溢出负向回归。
10
-
11
- 本轮从 Yellowstone gRPC 捕获 5 组当前交易线索,冷核对 canonical ATA 均无可卖余额。还检查了事件中的非 ATA source:该买入源账户在核验时已不再是有效 initialized 账户;另一买入账户余额为零。未构建余额不足的卖出并当作成功。对应 trade examples/fixtures/pumpfun_sell_discovery_unverified_20261004.json 保存尝试记录。卖出真实模拟仍未验收。
12
-
13
- 前一份 settlement 记录中“当前 V2 实际 SOL 输入未知”的状态已被本轮买入 CPI 证据补齐;legacy 指令和卖出输出不能据此宣称已验收。
14
-
15
- 整体 Rust 公共 API/字段、gRPC fork/恢复、新数组及 SWQOS 验证仍按计划继续。没有广播、发布或创建 Actions。
16
-
17
-
18
- 后续账户级 gRPC 发现有余额的钱包,8 个钱包共 16 次独立 SOL/WSOL 卖出模拟成功。新 funded_sell corpus 三语言验证卖出 source debit 100000000,原生收款账户为钱包,net output 仍保留未知;WSOL minimum 7542 和实际 SOL 残余 397 有交易 SDK 独立账户余额证据。先前无可用余额的尝试仍作为历史记录保存。
@@ -1,57 +0,0 @@
1
- {
2
- "date": "2026-10-04",
3
- "overall_alignment_complete": false,
4
- "native_debit_rules": {
5
- "scope": "PumpFun V2 WSOL-sentinel buy",
6
- "input_account": "wallet",
7
- "recipients": [
8
- "curve",
9
- "fee recipient",
10
- "buyback recipient",
11
- "creator vault"
12
- ],
13
- "requires": "direct pool payment, known payment recipients and immediate stack depth",
14
- "on_ambiguity": "unknown",
15
- "fee_rent_wrap_excluded": true,
16
- "source": "successful execution System CPI, not specified amount"
17
- },
18
- "actual_buy_input_lamports": 10000,
19
- "actual_output": "Token-2022 net output remains unknown without fee evidence",
20
- "corpora": [
21
- "pumpfun_current_mainnet_simulations_20261004.json",
22
- "pumpfun_settlement_mainnet_simulations_20261004.json"
23
- ],
24
- "verification": {
25
- "full_node_before_final_added_samples": 221,
26
- "node_skipped": 8,
27
- "full_python_before_final_added_samples": 207,
28
- "final_node_simulation_tests": 57,
29
- "final_python_simulation_tests": 59,
30
- "go_test_vet_and_race": "passed",
31
- "node_typecheck_build": "passed",
32
- "installed_npm_public_api": "native debit verified",
33
- "installed_python_wheel": "native debit verified"
34
- },
35
- "sell_attempt": {
36
- "grpc_events": 5,
37
- "canonical_atas": "no usable balance at cold validation",
38
- "non_ata_buy_source": "no valid initialized account at later cold validation",
39
- "other_buy_source": "zero balance",
40
- "simulations_performed": 0,
41
- "accepted_as_success": false
42
- },
43
- "broadcasts": 0,
44
- "sell_verified_followup": {
45
- "account_grpc_candidates": 9,
46
- "successful_simulations": 16,
47
- "selected_factory_wire_match": [
48
- "go",
49
- "nodejs",
50
- "python"
51
- ],
52
- "actual_source_debit": "100000000",
53
- "actual_minimum_wsol_credit": "7542",
54
- "actual_native_residual": "397",
55
- "parser_actual_output": "unknown; direct lamport changes not attributed"
56
- }
57
- }
@@ -1,11 +0,0 @@
1
- # PumpFun 交易形态解析对齐(2026-10-04)
2
-
3
- 三语言 transaction route 增加 PumpFun 旧版 buy/sell/exact-SOL-in 与 V2 exact-quote-in、buy exact-out、sell exact-in 的指令意图识别。V2 从账户提取 curve、钱包、base/quote mint 和账户;失败交易保留意图。
4
-
5
- 真实 mainnet V2 模拟 corpus:测试 fixtures/pumpfun_current_mainnet_simulations_20261004.json(三语言 fixtures 位置按既有规范)。三语言复放验证单个 PumpFun leg,实际 SOL 输入及 Token-2022 净输出缺证据仍为未知,不以 specified amount 或零代替。该 corpus 的旧 funded WSOL 案例实际走钱包 SOL;不能宣称 WSOL 支付成功。
6
-
7
- trade-sdk 现已另存专用 WSOL 结算模拟:原 ATA 实际扣减 10000,V1 wire 1238 字节。parser 对 System CPI 实际 SOL debit 的逐调用归属及所有旧版账户净余额行为仍需补全。仅识别 route intent 不代表所有归一化事件字段已完全对齐 Rust 0.7.7。
8
-
9
- 实时仍使用 Yellowstone gRPC;本次 RPC 仅为显式冷准备和模拟,无发送。整体公开 API/字段矩阵、生命周期恢复、fork、动态数组等其余验收继续保留未完成状态。
10
-
11
- 验证摘要见 [机器可读记录](NATIVE_PUMPFUN_SETTLEMENT_EVIDENCE_20261004.json):六仓全量测试通过;最终新增回归单独通过;Go 两仓全量 race/vet、Node 类型/构建/示例类型、独立 npm/wheel 安装后的公共入口 wire 对照通过。跳过的在线测试不计为验收。
@@ -1,70 +0,0 @@
1
- {
2
- "date": "2026-10-04",
3
- "overall_alignment_complete": false,
4
- "broadcasts": 0,
5
- "hot_path_rpc_calls": 0,
6
- "rust_baseline": {
7
- "trade": "5.0.6",
8
- "parser": "0.7.7"
9
- },
10
- "current_pumpfun_fee_oracle": {
11
- "package": "@pump-fun/pump-sdk",
12
- "version": "2.0.0",
13
- "vectors_per_language": 240,
14
- "runtime_dependency": false
15
- },
16
- "simulations": {
17
- "direct_sol": {
18
- "wire_bytes": 1044,
19
- "err": null,
20
- "evidence": "examples/fixtures/pumpfun_direct_sol_simulations_20261004.json"
21
- },
22
- "funded_wsol": {
23
- "wire_bytes": 1238,
24
- "wire_sha256": "76b18c71a930080a4c937483ed1ab670e7ade2188cfef6cf1d00ec8a1538adfd",
25
- "err": null,
26
- "actual_wsol_debit": "10000",
27
- "verified_asset_payment": true,
28
- "evidence": "examples/fixtures/pumpfun_settled_funded_wsol_evidence_20261004.json",
29
- "cross_language_wire_match": [
30
- "go",
31
- "nodejs",
32
- "python"
33
- ]
34
- }
35
- },
36
- "verification": {
37
- "full_suites_before_final_added_regressions": {
38
- "trade_nodejs": 3326,
39
- "parser_nodejs": 213,
40
- "parser_nodejs_skipped": 8,
41
- "trade_python": 3406,
42
- "parser_python": 199,
43
- "go_trade": "go test ./... passed",
44
- "go_parser": "go test ./... passed"
45
- },
46
- "final_targeted": {
47
- "trade_nodejs": 8,
48
- "trade_python": 12,
49
- "parser_nodejs_simulation": 47,
50
- "parser_python_simulation": 49,
51
- "go_parser_failed_intent_and_mainnet_corpus": "passed"
52
- },
53
- "go_vet": "both passed",
54
- "go_race": "both full suites passed",
55
- "node_trade_types_and_build": "passed",
56
- "node_trade_example_types": "passed",
57
- "node_parser_types": "passed",
58
- "installed_wheel_verified_wire": "passed",
59
- "installed_npm_public_api_verified_wire": "passed",
60
- "six_repo_diff_check": "passed"
61
- },
62
- "not_verified": [
63
- "current PumpFun funded sell simulation",
64
- "native-quote PumpFun multi-hop settlement (explicitly rejected)",
65
- "non-native USDC/stock PumpFun mainnet simulations",
66
- "legacy low-level builder current-chain compatibility",
67
- "SWQOS online V1 broadcast compatibility",
68
- "full Rust public API/field alignment matrix and remaining lifecycle acceptance"
69
- ]
70
- }