sol-parser-sdk 0.5.9
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.
- package/.env.example +24 -0
- package/LICENSE +21 -0
- package/README.md +236 -0
- package/README_CN.md +236 -0
- package/dist/accounts/mod.d.ts +15 -0
- package/dist/accounts/mod.js +173 -0
- package/dist/accounts/nonce.d.ts +5 -0
- package/dist/accounts/nonce.js +32 -0
- package/dist/accounts/pumpfun.d.ts +16 -0
- package/dist/accounts/pumpfun.js +538 -0
- package/dist/accounts/pumpswap.d.ts +8 -0
- package/dist/accounts/pumpswap.js +192 -0
- package/dist/accounts/raydium_orca.d.ts +26 -0
- package/dist/accounts/raydium_orca.js +453 -0
- package/dist/accounts/rpc_wallet.d.ts +5 -0
- package/dist/accounts/rpc_wallet.js +18 -0
- package/dist/accounts/rust_aliases.d.ts +10 -0
- package/dist/accounts/rust_aliases.js +21 -0
- package/dist/accounts/token.d.ts +5 -0
- package/dist/accounts/token.js +98 -0
- package/dist/accounts/types.d.ts +9 -0
- package/dist/accounts/types.js +2 -0
- package/dist/accounts/utils.d.ts +1 -0
- package/dist/accounts/utils.js +12 -0
- package/dist/accounts/wallet_resolve.d.ts +1 -0
- package/dist/accounts/wallet_resolve.js +28 -0
- package/dist/common/constants.d.ts +10 -0
- package/dist/common/constants.js +13 -0
- package/dist/core/account_dispatcher_rpc.d.ts +11 -0
- package/dist/core/account_dispatcher_rpc.js +155 -0
- package/dist/core/account_fill_bonk.d.ts +4 -0
- package/dist/core/account_fill_bonk.js +20 -0
- package/dist/core/account_fill_meteora.d.ts +15 -0
- package/dist/core/account_fill_meteora.js +27 -0
- package/dist/core/account_fill_orca.d.ts +5 -0
- package/dist/core/account_fill_orca.js +18 -0
- package/dist/core/account_fill_pumpfun.d.ts +7 -0
- package/dist/core/account_fill_pumpfun.js +167 -0
- package/dist/core/account_fill_pumpswap.d.ts +10 -0
- package/dist/core/account_fill_pumpswap.js +128 -0
- package/dist/core/account_fill_raydium.d.ts +20 -0
- package/dist/core/account_fill_raydium.js +104 -0
- package/dist/core/account_fill_raydium_launchlab.d.ts +4 -0
- package/dist/core/account_fill_raydium_launchlab.js +20 -0
- package/dist/core/account_pubkey_cache.d.ts +12 -0
- package/dist/core/account_pubkey_cache.js +26 -0
- package/dist/core/clock.d.ts +8 -0
- package/dist/core/clock.js +20 -0
- package/dist/core/common_filler_rpc.d.ts +6 -0
- package/dist/core/common_filler_rpc.js +21 -0
- package/dist/core/dex_event.d.ts +1704 -0
- package/dist/core/dex_event.js +14 -0
- package/dist/core/error.d.ts +43 -0
- package/dist/core/error.js +16 -0
- package/dist/core/json_utils.d.ts +8 -0
- package/dist/core/json_utils.js +18 -0
- package/dist/core/metadata.d.ts +11 -0
- package/dist/core/metadata.js +13 -0
- package/dist/core/pumpfun_fee_enrich.d.ts +6 -0
- package/dist/core/pumpfun_fee_enrich.js +159 -0
- package/dist/core/rpc_invoke_map.d.ts +23 -0
- package/dist/core/rpc_invoke_map.js +157 -0
- package/dist/core/unified_parser.d.ts +19 -0
- package/dist/core/unified_parser.js +50 -0
- package/dist/grpc/client.d.ts +83 -0
- package/dist/grpc/client.js +645 -0
- package/dist/grpc/client_stub.d.ts +5 -0
- package/dist/grpc/client_stub.js +5 -0
- package/dist/grpc/event_parser.d.ts +6 -0
- package/dist/grpc/event_parser.js +15 -0
- package/dist/grpc/geyser_connect.d.ts +30 -0
- package/dist/grpc/geyser_connect.js +40 -0
- package/dist/grpc/log_instr_dedup.d.ts +2 -0
- package/dist/grpc/log_instr_dedup.js +402 -0
- package/dist/grpc/order_buffer.d.ts +27 -0
- package/dist/grpc/order_buffer.js +166 -0
- package/dist/grpc/program_ids.d.ts +27 -0
- package/dist/grpc/program_ids.js +61 -0
- package/dist/grpc/rpc_to_grpc.d.ts +18 -0
- package/dist/grpc/rpc_to_grpc.js +127 -0
- package/dist/grpc/subscribe_builder.d.ts +13 -0
- package/dist/grpc/subscribe_builder.js +66 -0
- package/dist/grpc/transaction_meta.d.ts +29 -0
- package/dist/grpc/transaction_meta.js +208 -0
- package/dist/grpc/types.d.ts +195 -0
- package/dist/grpc/types.js +551 -0
- package/dist/grpc/yellowstone_parse.d.ts +16 -0
- package/dist/grpc/yellowstone_parse.js +62 -0
- package/dist/index.d.ts +50 -0
- package/dist/index.js +298 -0
- package/dist/instr/bonk_ix.d.ts +8 -0
- package/dist/instr/bonk_ix.js +131 -0
- package/dist/instr/inner.d.ts +4 -0
- package/dist/instr/inner.js +453 -0
- package/dist/instr/meteora_damm_ix.d.ts +8 -0
- package/dist/instr/meteora_damm_ix.js +601 -0
- package/dist/instr/meteora_dlmm_ix.d.ts +2 -0
- package/dist/instr/meteora_dlmm_ix.js +134 -0
- package/dist/instr/meteora_pools_ix.d.ts +2 -0
- package/dist/instr/meteora_pools_ix.js +78 -0
- package/dist/instr/mod.d.ts +18 -0
- package/dist/instr/mod.js +129 -0
- package/dist/instr/orca_whirlpool_ix.d.ts +8 -0
- package/dist/instr/orca_whirlpool_ix.js +119 -0
- package/dist/instr/program_ids.d.ts +4 -0
- package/dist/instr/program_ids.js +20 -0
- package/dist/instr/pump_fees_ix.d.ts +2 -0
- package/dist/instr/pump_fees_ix.js +168 -0
- package/dist/instr/pumpfun_ix.d.ts +6 -0
- package/dist/instr/pumpfun_ix.js +448 -0
- package/dist/instr/pumpswap_ix.d.ts +5 -0
- package/dist/instr/pumpswap_ix.js +270 -0
- package/dist/instr/raydium_amm_v4_ix.d.ts +6 -0
- package/dist/instr/raydium_amm_v4_ix.js +112 -0
- package/dist/instr/raydium_clmm_ix.d.ts +5 -0
- package/dist/instr/raydium_clmm_ix.js +184 -0
- package/dist/instr/raydium_cpmm_ix.d.ts +5 -0
- package/dist/instr/raydium_cpmm_ix.js +109 -0
- package/dist/instr/raydium_launchlab_ix.d.ts +8 -0
- package/dist/instr/raydium_launchlab_ix.js +125 -0
- package/dist/instr/rust_aliases.d.ts +10 -0
- package/dist/instr/rust_aliases.js +20 -0
- package/dist/instr/utils.d.ts +10 -0
- package/dist/instr/utils.js +35 -0
- package/dist/logs/discriminator_lut.d.ts +19 -0
- package/dist/logs/discriminator_lut.js +62 -0
- package/dist/logs/meteora_amm.d.ts +8 -0
- package/dist/logs/meteora_amm.js +113 -0
- package/dist/logs/meteora_damm.d.ts +5 -0
- package/dist/logs/meteora_damm.js +367 -0
- package/dist/logs/meteora_dbc.d.ts +11 -0
- package/dist/logs/meteora_dbc.js +142 -0
- package/dist/logs/meteora_dlmm.d.ts +6 -0
- package/dist/logs/meteora_dlmm.js +201 -0
- package/dist/logs/optimized_matcher.d.ts +11 -0
- package/dist/logs/optimized_matcher.js +941 -0
- package/dist/logs/orca.d.ts +6 -0
- package/dist/logs/orca.js +148 -0
- package/dist/logs/program_data.d.ts +2 -0
- package/dist/logs/program_data.js +20 -0
- package/dist/logs/program_log_discriminators.d.ts +80 -0
- package/dist/logs/program_log_discriminators.js +88 -0
- package/dist/logs/pump.d.ts +14 -0
- package/dist/logs/pump.js +378 -0
- package/dist/logs/pump_amm.d.ts +9 -0
- package/dist/logs/pump_amm.js +418 -0
- package/dist/logs/pump_fees.d.ts +23 -0
- package/dist/logs/pump_fees.js +364 -0
- package/dist/logs/raydium_amm.d.ts +9 -0
- package/dist/logs/raydium_amm.js +224 -0
- package/dist/logs/raydium_clmm.d.ts +17 -0
- package/dist/logs/raydium_clmm.js +624 -0
- package/dist/logs/raydium_cpmm.d.ts +7 -0
- package/dist/logs/raydium_cpmm.js +121 -0
- package/dist/logs/raydium_launchlab.d.ts +10 -0
- package/dist/logs/raydium_launchlab.js +84 -0
- package/dist/logs/raydium_launchpad.d.ts +12 -0
- package/dist/logs/raydium_launchpad.js +92 -0
- package/dist/logs/rust_aliases.d.ts +7 -0
- package/dist/logs/rust_aliases.js +16 -0
- package/dist/parser_alias.d.ts +3 -0
- package/dist/parser_alias.js +2 -0
- package/dist/rpc_parser.d.ts +17 -0
- package/dist/rpc_parser.js +39 -0
- package/dist/rpc_transaction.d.ts +27 -0
- package/dist/rpc_transaction.js +416 -0
- package/dist/shredstream/alt_lookup.d.ts +9 -0
- package/dist/shredstream/alt_lookup.js +70 -0
- package/dist/shredstream/client.d.ts +65 -0
- package/dist/shredstream/client.js +403 -0
- package/dist/shredstream/config.d.ts +30 -0
- package/dist/shredstream/config.js +34 -0
- package/dist/shredstream/entries_decode.d.ts +28 -0
- package/dist/shredstream/entries_decode.js +251 -0
- package/dist/shredstream/index.d.ts +17 -0
- package/dist/shredstream/index.js +33 -0
- package/dist/shredstream/instruction_parse.d.ts +34 -0
- package/dist/shredstream/instruction_parse.js +79 -0
- package/dist/shredstream/proto_types.d.ts +9 -0
- package/dist/shredstream/proto_types.js +2 -0
- package/dist/shredstream/shredstream.proto +15 -0
- package/dist/shredstream/wire_to_shred_tx.d.ts +2 -0
- package/dist/shredstream/wire_to_shred_tx.js +59 -0
- package/dist/util/binary.d.ts +14 -0
- package/dist/util/binary.js +82 -0
- package/dist/util/market.d.ts +18 -0
- package/dist/util/market.js +54 -0
- package/dist/warmup.d.ts +3 -0
- package/dist/warmup.js +23 -0
- package/package.json +61 -0
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sqrtPriceX64ToPrice = sqrtPriceX64ToPrice;
|
|
4
|
+
exports.vaultPriceFromBalances = vaultPriceFromBalances;
|
|
5
|
+
exports.normalizeBuySellFromTokenDelta = normalizeBuySellFromTokenDelta;
|
|
6
|
+
exports.normalizeBuySellFromInputMint = normalizeBuySellFromInputMint;
|
|
7
|
+
function amountToNumber(value) {
|
|
8
|
+
if (typeof value === "bigint")
|
|
9
|
+
return Number(value);
|
|
10
|
+
if (typeof value === "number")
|
|
11
|
+
return value;
|
|
12
|
+
if (value.trim() === "")
|
|
13
|
+
throw new Error("amount must not be empty");
|
|
14
|
+
return Number(value);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Convert a Q64.64 sqrt price into quote-token units per one base token.
|
|
18
|
+
*/
|
|
19
|
+
function sqrtPriceX64ToPrice(sqrtPriceX64, baseDecimals, quoteDecimals) {
|
|
20
|
+
const sqrt = amountToNumber(sqrtPriceX64) / 2 ** 64;
|
|
21
|
+
return sqrt * sqrt * 10 ** (baseDecimals - quoteDecimals);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Compute quote-token price per one base token from raw vault balances.
|
|
25
|
+
*/
|
|
26
|
+
function vaultPriceFromBalances(baseRaw, quoteRaw, baseDecimals, quoteDecimals) {
|
|
27
|
+
const base = amountToNumber(baseRaw);
|
|
28
|
+
if (base === 0)
|
|
29
|
+
return undefined;
|
|
30
|
+
return (amountToNumber(quoteRaw) / base) * 10 ** (baseDecimals - quoteDecimals);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Positive watched-token delta means Buy; negative means Sell.
|
|
34
|
+
*/
|
|
35
|
+
function normalizeBuySellFromTokenDelta(tokenDelta) {
|
|
36
|
+
const delta = amountToNumber(tokenDelta);
|
|
37
|
+
if (delta > 0)
|
|
38
|
+
return "Buy";
|
|
39
|
+
if (delta < 0)
|
|
40
|
+
return "Sell";
|
|
41
|
+
return undefined;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* If input is quote, the user buys base. If input is base, the user sells base.
|
|
45
|
+
*/
|
|
46
|
+
function normalizeBuySellFromInputMint(inputMint, baseMint, quoteMint) {
|
|
47
|
+
if (baseMint === quoteMint)
|
|
48
|
+
return undefined;
|
|
49
|
+
if (inputMint === quoteMint)
|
|
50
|
+
return "Buy";
|
|
51
|
+
if (inputMint === baseMint)
|
|
52
|
+
return "Sell";
|
|
53
|
+
return undefined;
|
|
54
|
+
}
|
package/dist/warmup.d.ts
ADDED
package/dist/warmup.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.warmupParser = warmupParser;
|
|
4
|
+
exports.isWarmedUp = isWarmedUp;
|
|
5
|
+
const program_data_js_1 = require("./logs/program_data.js");
|
|
6
|
+
let warmed = false;
|
|
7
|
+
/** 预热 Base64 解码与热路径 */
|
|
8
|
+
function warmupParser() {
|
|
9
|
+
if (warmed)
|
|
10
|
+
return;
|
|
11
|
+
warmed = true;
|
|
12
|
+
(0, program_data_js_1.decodeProgramDataLine)("Program data: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=");
|
|
13
|
+
const dummy = "Program data: Program 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P invoke [1]";
|
|
14
|
+
dummy.includes("Program data:");
|
|
15
|
+
dummy.includes("6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P");
|
|
16
|
+
dummy.includes("pumpswap");
|
|
17
|
+
dummy.includes("PumpSwap");
|
|
18
|
+
dummy.includes("whirL");
|
|
19
|
+
dummy.includes("meteora");
|
|
20
|
+
}
|
|
21
|
+
function isWarmedUp() {
|
|
22
|
+
return warmed;
|
|
23
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "sol-parser-sdk",
|
|
3
|
+
"version": "0.5.9",
|
|
4
|
+
"description": "High-performance Solana DEX event parser for Node.js/TypeScript (Yellowstone gRPC, log parsing)",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"files": [
|
|
8
|
+
"dist",
|
|
9
|
+
"README.md",
|
|
10
|
+
"README_CN.md",
|
|
11
|
+
"LICENSE",
|
|
12
|
+
".env.example"
|
|
13
|
+
],
|
|
14
|
+
"repository": {
|
|
15
|
+
"type": "git",
|
|
16
|
+
"url": "git+https://github.com/0xfnzero/sol-parser-sdk-nodejs.git"
|
|
17
|
+
},
|
|
18
|
+
"bugs": {
|
|
19
|
+
"url": "https://github.com/0xfnzero/sol-parser-sdk-nodejs/issues"
|
|
20
|
+
},
|
|
21
|
+
"homepage": "https://github.com/0xfnzero/sol-parser-sdk-nodejs#readme",
|
|
22
|
+
"engines": {
|
|
23
|
+
"node": ">=18"
|
|
24
|
+
},
|
|
25
|
+
"scripts": {
|
|
26
|
+
"build": "tsc && mkdir -p dist/shredstream && cp src/shredstream/shredstream.proto dist/shredstream/",
|
|
27
|
+
"prepublishOnly": "npm run build",
|
|
28
|
+
"check:dex-events": "tsx scripts/check-dex-event-parity.ts",
|
|
29
|
+
"verify:discriminators": "tsx scripts/verify-program-log-discriminators.ts",
|
|
30
|
+
"check:json-utils": "tsx scripts/check-json-utils.ts",
|
|
31
|
+
"check:discriminator-lut": "tsx scripts/check-discriminator-lut.ts",
|
|
32
|
+
"test": "vitest run",
|
|
33
|
+
"check:migration": "npm run check:dex-events && npm run verify:discriminators && npm run check:discriminator-lut && npm run check:json-utils && npm run build",
|
|
34
|
+
"example:shredstream:subscribe": "tsx examples/shredstream_example.ts",
|
|
35
|
+
"example:shredstream:pumpfun-json": "tsx examples/shredstream_pumpfun_json.ts",
|
|
36
|
+
"example:shredstream": "tsx examples/shredstream_example.ts",
|
|
37
|
+
"example:shredstream:pumpfun": "tsx examples/shredstream_pumpfun_json.ts"
|
|
38
|
+
},
|
|
39
|
+
"keywords": [
|
|
40
|
+
"solana",
|
|
41
|
+
"dex",
|
|
42
|
+
"parser",
|
|
43
|
+
"pumpfun",
|
|
44
|
+
"raydium"
|
|
45
|
+
],
|
|
46
|
+
"license": "MIT",
|
|
47
|
+
"devDependencies": {
|
|
48
|
+
"@types/node": "^22.19.17",
|
|
49
|
+
"dotenv": "^17.4.1",
|
|
50
|
+
"tsx": "^4.21.0",
|
|
51
|
+
"typescript": "^5.6.3",
|
|
52
|
+
"vitest": "^2.1.9"
|
|
53
|
+
},
|
|
54
|
+
"dependencies": {
|
|
55
|
+
"@grpc/grpc-js": "^1.12.4",
|
|
56
|
+
"@grpc/proto-loader": "^0.7.13",
|
|
57
|
+
"@solana/web3.js": "^1.95.4",
|
|
58
|
+
"@triton-one/yellowstone-grpc": "^1.0.0",
|
|
59
|
+
"bs58": "^6.0.0"
|
|
60
|
+
}
|
|
61
|
+
}
|