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,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rust `accounts` 模块蛇形命名别名(与 `parse_nonce_account` 等对应)。
|
|
3
|
+
*/
|
|
4
|
+
export { parseAccountUnified as parse_account_unified } from "./mod.js";
|
|
5
|
+
export { parseNonceAccount as parse_nonce_account } from "./nonce.js";
|
|
6
|
+
export { parseTokenAccount as parse_token_account } from "./token.js";
|
|
7
|
+
export { parsePumpfunGlobal as parse_pumpfun_global } from "./pumpfun.js";
|
|
8
|
+
export { parsePumpswapGlobalConfig as parse_pumpswap_global_config, parsePumpswapPool as parse_pumpswap_pool, } from "./pumpswap.js";
|
|
9
|
+
export { rpcResolveUserWalletPubkey as rpc_resolve_user_wallet_pubkey } from "./rpc_wallet.js";
|
|
10
|
+
export { userWalletPubkeyForOnchainAccount as user_wallet_pubkey_for_onchain_account } from "./wallet_resolve.js";
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.user_wallet_pubkey_for_onchain_account = exports.rpc_resolve_user_wallet_pubkey = exports.parse_pumpswap_pool = exports.parse_pumpswap_global_config = exports.parse_pumpfun_global = exports.parse_token_account = exports.parse_nonce_account = exports.parse_account_unified = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Rust `accounts` 模块蛇形命名别名(与 `parse_nonce_account` 等对应)。
|
|
6
|
+
*/
|
|
7
|
+
var mod_js_1 = require("./mod.js");
|
|
8
|
+
Object.defineProperty(exports, "parse_account_unified", { enumerable: true, get: function () { return mod_js_1.parseAccountUnified; } });
|
|
9
|
+
var nonce_js_1 = require("./nonce.js");
|
|
10
|
+
Object.defineProperty(exports, "parse_nonce_account", { enumerable: true, get: function () { return nonce_js_1.parseNonceAccount; } });
|
|
11
|
+
var token_js_1 = require("./token.js");
|
|
12
|
+
Object.defineProperty(exports, "parse_token_account", { enumerable: true, get: function () { return token_js_1.parseTokenAccount; } });
|
|
13
|
+
var pumpfun_js_1 = require("./pumpfun.js");
|
|
14
|
+
Object.defineProperty(exports, "parse_pumpfun_global", { enumerable: true, get: function () { return pumpfun_js_1.parsePumpfunGlobal; } });
|
|
15
|
+
var pumpswap_js_1 = require("./pumpswap.js");
|
|
16
|
+
Object.defineProperty(exports, "parse_pumpswap_global_config", { enumerable: true, get: function () { return pumpswap_js_1.parsePumpswapGlobalConfig; } });
|
|
17
|
+
Object.defineProperty(exports, "parse_pumpswap_pool", { enumerable: true, get: function () { return pumpswap_js_1.parsePumpswapPool; } });
|
|
18
|
+
var rpc_wallet_js_1 = require("./rpc_wallet.js");
|
|
19
|
+
Object.defineProperty(exports, "rpc_resolve_user_wallet_pubkey", { enumerable: true, get: function () { return rpc_wallet_js_1.rpcResolveUserWalletPubkey; } });
|
|
20
|
+
var wallet_resolve_js_1 = require("./wallet_resolve.js");
|
|
21
|
+
Object.defineProperty(exports, "user_wallet_pubkey_for_onchain_account", { enumerable: true, get: function () { return wallet_resolve_js_1.userWalletPubkeyForOnchainAccount; } });
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { EventMetadata } from "../core/metadata.js";
|
|
2
|
+
import type { DexEvent } from "../core/dex_event.js";
|
|
3
|
+
import type { AccountData } from "./types.js";
|
|
4
|
+
/** SPL Token 账户解析(快速路径 + 扩展长度回退) */
|
|
5
|
+
export declare function parseTokenAccount(account: AccountData, metadata: EventMetadata): DexEvent | null;
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseTokenAccount = parseTokenAccount;
|
|
4
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
5
|
+
const binary_js_1 = require("../util/binary.js");
|
|
6
|
+
const TOKEN_PROGRAM = new web3_js_1.PublicKey("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA").toBase58();
|
|
7
|
+
const TOKEN_2022 = new web3_js_1.PublicKey("TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb").toBase58();
|
|
8
|
+
const MINT_SIZE = 82;
|
|
9
|
+
const SUPPLY_OFF = 36;
|
|
10
|
+
const DECIMALS_OFF = 44;
|
|
11
|
+
const TOKEN_ACCOUNT_SIZE = 165;
|
|
12
|
+
const AMOUNT_OFF = 64;
|
|
13
|
+
function isTokenProgramOwner(owner) {
|
|
14
|
+
return owner === TOKEN_PROGRAM || owner === TOKEN_2022;
|
|
15
|
+
}
|
|
16
|
+
function parseMintFast(account, metadata) {
|
|
17
|
+
const { data } = account;
|
|
18
|
+
if (data.length < MINT_SIZE)
|
|
19
|
+
return null;
|
|
20
|
+
const supply = (0, binary_js_1.readU64LE)(data, SUPPLY_OFF);
|
|
21
|
+
const decimals = data[DECIMALS_OFF] ?? 0;
|
|
22
|
+
if (supply === null)
|
|
23
|
+
return null;
|
|
24
|
+
const ev = {
|
|
25
|
+
metadata,
|
|
26
|
+
pubkey: account.pubkey,
|
|
27
|
+
executable: account.executable,
|
|
28
|
+
lamports: account.lamports,
|
|
29
|
+
owner: account.owner,
|
|
30
|
+
rent_epoch: account.rent_epoch,
|
|
31
|
+
supply,
|
|
32
|
+
decimals,
|
|
33
|
+
};
|
|
34
|
+
return { TokenInfo: ev };
|
|
35
|
+
}
|
|
36
|
+
function parseTokenFast(account, metadata) {
|
|
37
|
+
const { data } = account;
|
|
38
|
+
if (data.length !== TOKEN_ACCOUNT_SIZE)
|
|
39
|
+
return null;
|
|
40
|
+
const amount = (0, binary_js_1.readU64LE)(data, AMOUNT_OFF);
|
|
41
|
+
if (amount === null)
|
|
42
|
+
return null;
|
|
43
|
+
const ev = {
|
|
44
|
+
metadata,
|
|
45
|
+
pubkey: account.pubkey,
|
|
46
|
+
executable: account.executable,
|
|
47
|
+
lamports: account.lamports,
|
|
48
|
+
owner: account.owner,
|
|
49
|
+
rent_epoch: account.rent_epoch,
|
|
50
|
+
amount,
|
|
51
|
+
// 快速路径:将 `token_owner` 设为账户 owner(程序 ID)
|
|
52
|
+
token_owner: account.owner,
|
|
53
|
+
};
|
|
54
|
+
return { TokenAccount: ev };
|
|
55
|
+
}
|
|
56
|
+
/** Token-2022 等扩展账户:读取标准 Account 布局前 165 字节中的 owner / amount */
|
|
57
|
+
function parseTokenWithExtensions(account, metadata) {
|
|
58
|
+
const d = account.data;
|
|
59
|
+
if (!isTokenProgramOwner(account.owner) || d.length <= TOKEN_ACCOUNT_SIZE)
|
|
60
|
+
return null;
|
|
61
|
+
const tokenOwner = (0, binary_js_1.readPubkey)(d, 32);
|
|
62
|
+
const amount = (0, binary_js_1.readU64LE)(d, AMOUNT_OFF);
|
|
63
|
+
if (tokenOwner === null || amount === null)
|
|
64
|
+
return null;
|
|
65
|
+
const ev = {
|
|
66
|
+
metadata,
|
|
67
|
+
pubkey: account.pubkey,
|
|
68
|
+
executable: account.executable,
|
|
69
|
+
lamports: account.lamports,
|
|
70
|
+
owner: account.owner,
|
|
71
|
+
rent_epoch: account.rent_epoch,
|
|
72
|
+
amount,
|
|
73
|
+
token_owner: tokenOwner,
|
|
74
|
+
};
|
|
75
|
+
return { TokenAccount: ev };
|
|
76
|
+
}
|
|
77
|
+
/** SPL Token 账户解析(快速路径 + 扩展长度回退) */
|
|
78
|
+
function parseTokenAccount(account, metadata) {
|
|
79
|
+
if (!isTokenProgramOwner(account.owner))
|
|
80
|
+
return null;
|
|
81
|
+
if (account.data.length <= 100) {
|
|
82
|
+
const m = parseMintFast(account, metadata);
|
|
83
|
+
if (m)
|
|
84
|
+
return m;
|
|
85
|
+
}
|
|
86
|
+
const t = parseTokenFast(account, metadata);
|
|
87
|
+
if (t)
|
|
88
|
+
return t;
|
|
89
|
+
const ext = parseTokenWithExtensions(account, metadata);
|
|
90
|
+
if (ext)
|
|
91
|
+
return ext;
|
|
92
|
+
if (account.data.length >= MINT_SIZE) {
|
|
93
|
+
const m = parseMintFast(account, metadata);
|
|
94
|
+
if (m)
|
|
95
|
+
return m;
|
|
96
|
+
}
|
|
97
|
+
return null;
|
|
98
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function hasDiscriminator(data: Uint8Array, disc: Uint8Array): boolean;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.hasDiscriminator = hasDiscriminator;
|
|
4
|
+
function hasDiscriminator(data, disc) {
|
|
5
|
+
if (data.length < disc.length)
|
|
6
|
+
return false;
|
|
7
|
+
for (let i = 0; i < disc.length; i++) {
|
|
8
|
+
if (data[i] !== disc[i])
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
return true;
|
|
12
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function userWalletPubkeyForOnchainAccount(address: string, owner: string, data: Uint8Array, executable: boolean): string | null;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.userWalletPubkeyForOnchainAccount = userWalletPubkeyForOnchainAccount;
|
|
4
|
+
/**
|
|
5
|
+
* 与 Rust `accounts/utils::user_wallet_pubkey_for_onchain_account` 对齐:
|
|
6
|
+
* 由链上账户 owner / data / executable 推断「用户钱包」公钥(Base58)。
|
|
7
|
+
*/
|
|
8
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
9
|
+
const binary_js_1 = require("../util/binary.js");
|
|
10
|
+
const TOKEN_PROGRAM = new web3_js_1.PublicKey("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA").toBase58();
|
|
11
|
+
const TOKEN_2022 = new web3_js_1.PublicKey("TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb").toBase58();
|
|
12
|
+
const SYSTEM = web3_js_1.SystemProgram.programId.toBase58();
|
|
13
|
+
/** SPL Token `Account` 布局长度(与 `spl_token::state::Account::LEN` 一致) */
|
|
14
|
+
const SPL_TOKEN_ACCOUNT_LEN = 165;
|
|
15
|
+
function isTokenProgramOwner(owner) {
|
|
16
|
+
return owner === TOKEN_PROGRAM || owner === TOKEN_2022;
|
|
17
|
+
}
|
|
18
|
+
function userWalletPubkeyForOnchainAccount(address, owner, data, executable) {
|
|
19
|
+
if (executable)
|
|
20
|
+
return null;
|
|
21
|
+
if (owner === SYSTEM) {
|
|
22
|
+
return data.length === 0 ? address : null;
|
|
23
|
+
}
|
|
24
|
+
if (isTokenProgramOwner(owner) && data.length === SPL_TOKEN_ACCOUNT_LEN) {
|
|
25
|
+
return (0, binary_js_1.readPubkey)(data, 32);
|
|
26
|
+
}
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 与 Rust `sol-parser-sdk/src/common/constants.rs` 对齐的流处理默认值。
|
|
3
|
+
*/
|
|
4
|
+
export declare const DEFAULT_CONNECT_TIMEOUT = 10;
|
|
5
|
+
export declare const DEFAULT_REQUEST_TIMEOUT = 60;
|
|
6
|
+
export declare const DEFAULT_CHANNEL_SIZE = 1000;
|
|
7
|
+
export declare const DEFAULT_MAX_DECODING_MESSAGE_SIZE: number;
|
|
8
|
+
export declare const DEFAULT_METRICS_WINDOW_SECONDS = 5;
|
|
9
|
+
export declare const DEFAULT_METRICS_PRINT_INTERVAL_SECONDS = 10;
|
|
10
|
+
export declare const SLOW_PROCESSING_THRESHOLD_US = 3000;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SLOW_PROCESSING_THRESHOLD_US = exports.DEFAULT_METRICS_PRINT_INTERVAL_SECONDS = exports.DEFAULT_METRICS_WINDOW_SECONDS = exports.DEFAULT_MAX_DECODING_MESSAGE_SIZE = exports.DEFAULT_CHANNEL_SIZE = exports.DEFAULT_REQUEST_TIMEOUT = exports.DEFAULT_CONNECT_TIMEOUT = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* 与 Rust `sol-parser-sdk/src/common/constants.rs` 对齐的流处理默认值。
|
|
6
|
+
*/
|
|
7
|
+
exports.DEFAULT_CONNECT_TIMEOUT = 10;
|
|
8
|
+
exports.DEFAULT_REQUEST_TIMEOUT = 60;
|
|
9
|
+
exports.DEFAULT_CHANNEL_SIZE = 1000;
|
|
10
|
+
exports.DEFAULT_MAX_DECODING_MESSAGE_SIZE = 1024 * 1024 * 10;
|
|
11
|
+
exports.DEFAULT_METRICS_WINDOW_SECONDS = 5;
|
|
12
|
+
exports.DEFAULT_METRICS_PRINT_INTERVAL_SECONDS = 10;
|
|
13
|
+
exports.SLOW_PROCESSING_THRESHOLD_US = 3000;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RPC 路径账户填充(`fillAccountsFromTransactionDataRpc`)。
|
|
3
|
+
* `RaydiumClmmOpenPositionWithTokenExtNft` 与 `openPosition` 共用账户索引(见 `account_fill_raydium.ts`)。
|
|
4
|
+
*/
|
|
5
|
+
import type { DexEvent } from "./dex_event.js";
|
|
6
|
+
import type { ConfirmedTransactionMeta, Message, MessageV0, PublicKey } from "@solana/web3.js";
|
|
7
|
+
import { type InvokePair } from "./rpc_invoke_map.js";
|
|
8
|
+
/** 就地修改事件体内字段 */
|
|
9
|
+
export declare function fillAccountsFromTransactionDataRpc(ev: DexEvent, message: Message | MessageV0, meta: ConfirmedTransactionMeta | null, programInvokes: Map<string, InvokePair[]>, resolver: {
|
|
10
|
+
get(i: number): PublicKey | undefined;
|
|
11
|
+
}): void;
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fillAccountsFromTransactionDataRpc = fillAccountsFromTransactionDataRpc;
|
|
4
|
+
const program_ids_js_1 = require("../instr/program_ids.js");
|
|
5
|
+
const rpc_invoke_map_js_1 = require("./rpc_invoke_map.js");
|
|
6
|
+
const account_fill_pumpfun_js_1 = require("./account_fill_pumpfun.js");
|
|
7
|
+
const account_fill_pumpswap_js_1 = require("./account_fill_pumpswap.js");
|
|
8
|
+
const account_fill_raydium_js_1 = require("./account_fill_raydium.js");
|
|
9
|
+
const account_fill_orca_js_1 = require("./account_fill_orca.js");
|
|
10
|
+
const account_fill_raydium_launchlab_js_1 = require("./account_fill_raydium_launchlab.js");
|
|
11
|
+
const account_fill_meteora_js_1 = require("./account_fill_meteora.js");
|
|
12
|
+
function tryFill(programId, programInvokes, message, meta, resolver, fn) {
|
|
13
|
+
const invoke = (0, rpc_invoke_map_js_1.findMaxAccountsInvoke)(programId, programInvokes, message, meta);
|
|
14
|
+
if (!invoke)
|
|
15
|
+
return;
|
|
16
|
+
const get = (0, rpc_invoke_map_js_1.makeInvokeAccountGetter)(resolver, invoke, message, meta);
|
|
17
|
+
if (!get)
|
|
18
|
+
return;
|
|
19
|
+
fn(get);
|
|
20
|
+
}
|
|
21
|
+
/** 就地修改事件体内字段 */
|
|
22
|
+
function fillAccountsFromTransactionDataRpc(ev, message, meta, programInvokes, resolver) {
|
|
23
|
+
if ("PumpFunTrade" in ev) {
|
|
24
|
+
tryFill(program_ids_js_1.PUMPFUN_PROGRAM_ID, programInvokes, message, meta, resolver, (g) => (0, account_fill_pumpfun_js_1.fillPumpfunTradeAccounts)(ev.PumpFunTrade, g));
|
|
25
|
+
}
|
|
26
|
+
else if ("PumpFunBuy" in ev) {
|
|
27
|
+
tryFill(program_ids_js_1.PUMPFUN_PROGRAM_ID, programInvokes, message, meta, resolver, (g) => (0, account_fill_pumpfun_js_1.fillPumpfunTradeAccounts)(ev.PumpFunBuy, g));
|
|
28
|
+
}
|
|
29
|
+
else if ("PumpFunSell" in ev) {
|
|
30
|
+
tryFill(program_ids_js_1.PUMPFUN_PROGRAM_ID, programInvokes, message, meta, resolver, (g) => (0, account_fill_pumpfun_js_1.fillPumpfunTradeAccounts)(ev.PumpFunSell, g));
|
|
31
|
+
}
|
|
32
|
+
else if ("PumpFunBuyExactSolIn" in ev) {
|
|
33
|
+
tryFill(program_ids_js_1.PUMPFUN_PROGRAM_ID, programInvokes, message, meta, resolver, (g) => (0, account_fill_pumpfun_js_1.fillPumpfunTradeAccounts)(ev.PumpFunBuyExactSolIn, g));
|
|
34
|
+
}
|
|
35
|
+
else if ("PumpFunCreate" in ev) {
|
|
36
|
+
tryFill(program_ids_js_1.PUMPFUN_PROGRAM_ID, programInvokes, message, meta, resolver, (g) => (0, account_fill_pumpfun_js_1.fillPumpfunCreateAccounts)(ev.PumpFunCreate, g));
|
|
37
|
+
}
|
|
38
|
+
else if ("PumpFunCreateV2" in ev) {
|
|
39
|
+
tryFill(program_ids_js_1.PUMPFUN_PROGRAM_ID, programInvokes, message, meta, resolver, (g) => (0, account_fill_pumpfun_js_1.fillPumpfunCreateV2Accounts)(ev.PumpFunCreateV2, g));
|
|
40
|
+
}
|
|
41
|
+
else if ("PumpFunMigrate" in ev) {
|
|
42
|
+
tryFill(program_ids_js_1.PUMPFUN_PROGRAM_ID, programInvokes, message, meta, resolver, (g) => (0, account_fill_pumpfun_js_1.fillPumpfunMigrateAccounts)(ev.PumpFunMigrate, g));
|
|
43
|
+
}
|
|
44
|
+
else if ("PumpSwapBuy" in ev) {
|
|
45
|
+
tryFill(program_ids_js_1.PUMPSWAP_PROGRAM_ID, programInvokes, message, meta, resolver, (g) => (0, account_fill_pumpswap_js_1.fillPumpswapBuyAccounts)(ev.PumpSwapBuy, g));
|
|
46
|
+
}
|
|
47
|
+
else if ("PumpSwapSell" in ev) {
|
|
48
|
+
tryFill(program_ids_js_1.PUMPSWAP_PROGRAM_ID, programInvokes, message, meta, resolver, (g) => (0, account_fill_pumpswap_js_1.fillPumpswapSellAccounts)(ev.PumpSwapSell, g));
|
|
49
|
+
}
|
|
50
|
+
else if ("PumpSwapTrade" in ev) {
|
|
51
|
+
tryFill(program_ids_js_1.PUMPSWAP_PROGRAM_ID, programInvokes, message, meta, resolver, (g) => (0, account_fill_pumpswap_js_1.fillPumpswapTradeAccounts)(ev.PumpSwapTrade, g));
|
|
52
|
+
}
|
|
53
|
+
else if ("PumpSwapCreatePool" in ev) {
|
|
54
|
+
tryFill(program_ids_js_1.PUMPSWAP_PROGRAM_ID, programInvokes, message, meta, resolver, (g) => (0, account_fill_pumpswap_js_1.fillPumpswapCreatePoolAccounts)(ev.PumpSwapCreatePool, g));
|
|
55
|
+
}
|
|
56
|
+
else if ("PumpSwapLiquidityAdded" in ev) {
|
|
57
|
+
tryFill(program_ids_js_1.PUMPSWAP_PROGRAM_ID, programInvokes, message, meta, resolver, (g) => (0, account_fill_pumpswap_js_1.fillPumpswapLiquidityAddedAccounts)(ev.PumpSwapLiquidityAdded, g));
|
|
58
|
+
}
|
|
59
|
+
else if ("PumpSwapLiquidityRemoved" in ev) {
|
|
60
|
+
tryFill(program_ids_js_1.PUMPSWAP_PROGRAM_ID, programInvokes, message, meta, resolver, (g) => (0, account_fill_pumpswap_js_1.fillPumpswapLiquidityRemovedAccounts)(ev.PumpSwapLiquidityRemoved, g));
|
|
61
|
+
}
|
|
62
|
+
else if ("RaydiumClmmSwap" in ev) {
|
|
63
|
+
tryFill(program_ids_js_1.RAYDIUM_CLMM_PROGRAM_ID, programInvokes, message, meta, resolver, (g) => (0, account_fill_raydium_js_1.fillRaydiumClmmSwapAccounts)(ev.RaydiumClmmSwap, g));
|
|
64
|
+
}
|
|
65
|
+
else if ("RaydiumClmmCreatePool" in ev) {
|
|
66
|
+
tryFill(program_ids_js_1.RAYDIUM_CLMM_PROGRAM_ID, programInvokes, message, meta, resolver, (g) => (0, account_fill_raydium_js_1.fillRaydiumClmmCreatePoolAccounts)(ev.RaydiumClmmCreatePool, g));
|
|
67
|
+
}
|
|
68
|
+
else if ("RaydiumClmmOpenPosition" in ev) {
|
|
69
|
+
tryFill(program_ids_js_1.RAYDIUM_CLMM_PROGRAM_ID, programInvokes, message, meta, resolver, (g) => (0, account_fill_raydium_js_1.fillRaydiumClmmOpenPositionAccounts)(ev.RaydiumClmmOpenPosition, g));
|
|
70
|
+
}
|
|
71
|
+
else if ("RaydiumClmmOpenPositionWithTokenExtNft" in ev) {
|
|
72
|
+
tryFill(program_ids_js_1.RAYDIUM_CLMM_PROGRAM_ID, programInvokes, message, meta, resolver, (g) => (0, account_fill_raydium_js_1.fillRaydiumClmmOpenPositionWithTokenExtNftAccounts)(ev.RaydiumClmmOpenPositionWithTokenExtNft, g));
|
|
73
|
+
}
|
|
74
|
+
else if ("RaydiumClmmClosePosition" in ev) {
|
|
75
|
+
tryFill(program_ids_js_1.RAYDIUM_CLMM_PROGRAM_ID, programInvokes, message, meta, resolver, (g) => (0, account_fill_raydium_js_1.fillRaydiumClmmClosePositionAccounts)(ev.RaydiumClmmClosePosition, g));
|
|
76
|
+
}
|
|
77
|
+
else if ("RaydiumClmmIncreaseLiquidity" in ev) {
|
|
78
|
+
tryFill(program_ids_js_1.RAYDIUM_CLMM_PROGRAM_ID, programInvokes, message, meta, resolver, (g) => (0, account_fill_raydium_js_1.fillRaydiumClmmIncreaseLiquidityAccounts)(ev.RaydiumClmmIncreaseLiquidity, g));
|
|
79
|
+
}
|
|
80
|
+
else if ("RaydiumClmmDecreaseLiquidity" in ev) {
|
|
81
|
+
tryFill(program_ids_js_1.RAYDIUM_CLMM_PROGRAM_ID, programInvokes, message, meta, resolver, (g) => (0, account_fill_raydium_js_1.fillRaydiumClmmDecreaseLiquidityAccounts)(ev.RaydiumClmmDecreaseLiquidity, g));
|
|
82
|
+
}
|
|
83
|
+
else if ("RaydiumCpmmSwap" in ev) {
|
|
84
|
+
tryFill(program_ids_js_1.RAYDIUM_CPMM_PROGRAM_ID, programInvokes, message, meta, resolver, (g) => (0, account_fill_raydium_js_1.fillRaydiumCpmmSwapAccounts)(ev.RaydiumCpmmSwap, g));
|
|
85
|
+
}
|
|
86
|
+
else if ("RaydiumCpmmDeposit" in ev) {
|
|
87
|
+
tryFill(program_ids_js_1.RAYDIUM_CPMM_PROGRAM_ID, programInvokes, message, meta, resolver, (g) => (0, account_fill_raydium_js_1.fillRaydiumCpmmDepositAccounts)(ev.RaydiumCpmmDeposit, g));
|
|
88
|
+
}
|
|
89
|
+
else if ("RaydiumCpmmWithdraw" in ev) {
|
|
90
|
+
tryFill(program_ids_js_1.RAYDIUM_CPMM_PROGRAM_ID, programInvokes, message, meta, resolver, (g) => (0, account_fill_raydium_js_1.fillRaydiumCpmmWithdrawAccounts)(ev.RaydiumCpmmWithdraw, g));
|
|
91
|
+
}
|
|
92
|
+
else if ("RaydiumCpmmInitialize" in ev) {
|
|
93
|
+
tryFill(program_ids_js_1.RAYDIUM_CPMM_PROGRAM_ID, programInvokes, message, meta, resolver, (g) => (0, account_fill_raydium_js_1.fillRaydiumCpmmInitializeAccounts)(ev.RaydiumCpmmInitialize, g));
|
|
94
|
+
}
|
|
95
|
+
else if ("RaydiumAmmV4Swap" in ev) {
|
|
96
|
+
tryFill(program_ids_js_1.RAYDIUM_AMM_V4_PROGRAM_ID, programInvokes, message, meta, resolver, (g) => (0, account_fill_raydium_js_1.fillRaydiumAmmV4SwapAccounts)(ev.RaydiumAmmV4Swap, g));
|
|
97
|
+
}
|
|
98
|
+
else if ("RaydiumAmmV4Deposit" in ev) {
|
|
99
|
+
tryFill(program_ids_js_1.RAYDIUM_AMM_V4_PROGRAM_ID, programInvokes, message, meta, resolver, (g) => (0, account_fill_raydium_js_1.fillRaydiumAmmV4DepositAccounts)(ev.RaydiumAmmV4Deposit, g));
|
|
100
|
+
}
|
|
101
|
+
else if ("RaydiumAmmV4Withdraw" in ev) {
|
|
102
|
+
tryFill(program_ids_js_1.RAYDIUM_AMM_V4_PROGRAM_ID, programInvokes, message, meta, resolver, (g) => (0, account_fill_raydium_js_1.fillRaydiumAmmV4WithdrawAccounts)(ev.RaydiumAmmV4Withdraw, g));
|
|
103
|
+
}
|
|
104
|
+
else if ("OrcaWhirlpoolSwap" in ev) {
|
|
105
|
+
tryFill(program_ids_js_1.ORCA_WHIRLPOOL_PROGRAM_ID, programInvokes, message, meta, resolver, (g) => (0, account_fill_orca_js_1.fillOrcaWhirlpoolSwapAccounts)(ev.OrcaWhirlpoolSwap, g));
|
|
106
|
+
}
|
|
107
|
+
else if ("OrcaWhirlpoolLiquidityIncreased" in ev) {
|
|
108
|
+
tryFill(program_ids_js_1.ORCA_WHIRLPOOL_PROGRAM_ID, programInvokes, message, meta, resolver, (g) => (0, account_fill_orca_js_1.fillOrcaWhirlpoolLiquidityIncreasedAccounts)(ev.OrcaWhirlpoolLiquidityIncreased, g));
|
|
109
|
+
}
|
|
110
|
+
else if ("OrcaWhirlpoolLiquidityDecreased" in ev) {
|
|
111
|
+
tryFill(program_ids_js_1.ORCA_WHIRLPOOL_PROGRAM_ID, programInvokes, message, meta, resolver, (g) => (0, account_fill_orca_js_1.fillOrcaWhirlpoolLiquidityDecreasedAccounts)(ev.OrcaWhirlpoolLiquidityDecreased, g));
|
|
112
|
+
}
|
|
113
|
+
else if ("MeteoraDammV2Swap" in ev) {
|
|
114
|
+
tryFill(program_ids_js_1.METEORA_DAMM_V2_PROGRAM_ID, programInvokes, message, meta, resolver, (g) => (0, account_fill_meteora_js_1.fillMeteoraDammV2SwapAccounts)(ev.MeteoraDammV2Swap, g));
|
|
115
|
+
}
|
|
116
|
+
else if ("MeteoraDammV2CreatePosition" in ev) {
|
|
117
|
+
tryFill(program_ids_js_1.METEORA_DAMM_V2_PROGRAM_ID, programInvokes, message, meta, resolver, (g) => (0, account_fill_meteora_js_1.fillMeteoraDammV2CreatePositionAccounts)(ev.MeteoraDammV2CreatePosition, g));
|
|
118
|
+
}
|
|
119
|
+
else if ("MeteoraDammV2InitializePool" in ev) {
|
|
120
|
+
tryFill(program_ids_js_1.METEORA_DAMM_V2_PROGRAM_ID, programInvokes, message, meta, resolver, (g) => (0, account_fill_meteora_js_1.fillMeteoraDammV2InitializePoolAccounts)(ev.MeteoraDammV2InitializePool, g));
|
|
121
|
+
}
|
|
122
|
+
else if ("MeteoraDammV2ClosePosition" in ev) {
|
|
123
|
+
tryFill(program_ids_js_1.METEORA_DAMM_V2_PROGRAM_ID, programInvokes, message, meta, resolver, (g) => (0, account_fill_meteora_js_1.fillMeteoraDammV2ClosePositionAccounts)(ev.MeteoraDammV2ClosePosition, g));
|
|
124
|
+
}
|
|
125
|
+
else if ("MeteoraDammV2AddLiquidity" in ev) {
|
|
126
|
+
tryFill(program_ids_js_1.METEORA_DAMM_V2_PROGRAM_ID, programInvokes, message, meta, resolver, (g) => (0, account_fill_meteora_js_1.fillMeteoraDammV2AddLiquidityAccounts)(ev.MeteoraDammV2AddLiquidity, g));
|
|
127
|
+
}
|
|
128
|
+
else if ("MeteoraDammV2RemoveLiquidity" in ev) {
|
|
129
|
+
tryFill(program_ids_js_1.METEORA_DAMM_V2_PROGRAM_ID, programInvokes, message, meta, resolver, (g) => (0, account_fill_meteora_js_1.fillMeteoraDammV2RemoveLiquidityAccounts)(ev.MeteoraDammV2RemoveLiquidity, g));
|
|
130
|
+
}
|
|
131
|
+
else if ("MeteoraPoolsSwap" in ev) {
|
|
132
|
+
tryFill(program_ids_js_1.METEORA_POOLS_PROGRAM_ID, programInvokes, message, meta, resolver, (g) => (0, account_fill_meteora_js_1.fillMeteoraPoolsSwapAccounts)(ev.MeteoraPoolsSwap, g));
|
|
133
|
+
}
|
|
134
|
+
else if ("MeteoraPoolsAddLiquidity" in ev) {
|
|
135
|
+
tryFill(program_ids_js_1.METEORA_POOLS_PROGRAM_ID, programInvokes, message, meta, resolver, (g) => (0, account_fill_meteora_js_1.fillMeteoraPoolsAddLiquidityAccounts)(ev.MeteoraPoolsAddLiquidity, g));
|
|
136
|
+
}
|
|
137
|
+
else if ("MeteoraPoolsRemoveLiquidity" in ev) {
|
|
138
|
+
tryFill(program_ids_js_1.METEORA_POOLS_PROGRAM_ID, programInvokes, message, meta, resolver, (g) => (0, account_fill_meteora_js_1.fillMeteoraPoolsRemoveLiquidityAccounts)(ev.MeteoraPoolsRemoveLiquidity, g));
|
|
139
|
+
}
|
|
140
|
+
else if ("MeteoraDlmmSwap" in ev) {
|
|
141
|
+
tryFill(program_ids_js_1.METEORA_DLMM_PROGRAM_ID, programInvokes, message, meta, resolver, (g) => (0, account_fill_meteora_js_1.fillMeteoraDlmmSwapAccounts)(ev.MeteoraDlmmSwap, g));
|
|
142
|
+
}
|
|
143
|
+
else if ("MeteoraDlmmAddLiquidity" in ev) {
|
|
144
|
+
tryFill(program_ids_js_1.METEORA_DLMM_PROGRAM_ID, programInvokes, message, meta, resolver, (g) => (0, account_fill_meteora_js_1.fillMeteoraDlmmAddLiquidityAccounts)(ev.MeteoraDlmmAddLiquidity, g));
|
|
145
|
+
}
|
|
146
|
+
else if ("MeteoraDlmmRemoveLiquidity" in ev) {
|
|
147
|
+
tryFill(program_ids_js_1.METEORA_DLMM_PROGRAM_ID, programInvokes, message, meta, resolver, (g) => (0, account_fill_meteora_js_1.fillMeteoraDlmmRemoveLiquidityAccounts)(ev.MeteoraDlmmRemoveLiquidity, g));
|
|
148
|
+
}
|
|
149
|
+
else if ("RaydiumLaunchlabTrade" in ev) {
|
|
150
|
+
tryFill(program_ids_js_1.RAYDIUM_LAUNCHLAB_PROGRAM_ID, programInvokes, message, meta, resolver, (g) => (0, account_fill_raydium_launchlab_js_1.fillRaydiumLaunchlabTradeAccounts)(ev.RaydiumLaunchlabTrade, g));
|
|
151
|
+
}
|
|
152
|
+
else if ("RaydiumLaunchlabPoolCreate" in ev) {
|
|
153
|
+
tryFill(program_ids_js_1.RAYDIUM_LAUNCHLAB_PROGRAM_ID, programInvokes, message, meta, resolver, (g) => (0, account_fill_raydium_launchlab_js_1.fillRaydiumLaunchlabPoolCreateAccounts)(ev.RaydiumLaunchlabPoolCreate, g));
|
|
154
|
+
}
|
|
155
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** Bonk(Launchpad)账户填充 */
|
|
2
|
+
import type { BonkPoolCreateEvent, BonkTradeEvent } from "./dex_event.js";
|
|
3
|
+
export declare function fillBonkTradeAccounts(e: BonkTradeEvent, get: (i: number) => string): void;
|
|
4
|
+
export declare function fillBonkPoolCreateAccounts(e: BonkPoolCreateEvent, get: (i: number) => string): void;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fillBonkTradeAccounts = fillBonkTradeAccounts;
|
|
4
|
+
exports.fillBonkPoolCreateAccounts = fillBonkPoolCreateAccounts;
|
|
5
|
+
const dex_event_js_1 = require("./dex_event.js");
|
|
6
|
+
const Z = () => (0, dex_event_js_1.defaultPubkey)();
|
|
7
|
+
function fillBonkTradeAccounts(e, get) {
|
|
8
|
+
const zero = Z();
|
|
9
|
+
if (!e.user || e.user === zero)
|
|
10
|
+
e.user = get(0);
|
|
11
|
+
if (!e.pool_state || e.pool_state === zero)
|
|
12
|
+
e.pool_state = get(1);
|
|
13
|
+
}
|
|
14
|
+
function fillBonkPoolCreateAccounts(e, get) {
|
|
15
|
+
const zero = Z();
|
|
16
|
+
if (!e.pool_state || e.pool_state === zero)
|
|
17
|
+
e.pool_state = get(1);
|
|
18
|
+
if (!e.creator || e.creator === zero)
|
|
19
|
+
e.creator = get(8);
|
|
20
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** Meteora DAMM V2 / Pools / DLMM 账户填充(部分占位) */
|
|
2
|
+
import type { MeteoraDammV2AddLiquidityEvent, MeteoraDammV2ClosePositionEvent, MeteoraDammV2CreatePositionEvent, MeteoraDammV2InitializePoolEvent, MeteoraDammV2RemoveLiquidityEvent, MeteoraDammV2SwapEvent, MeteoraDlmmAddLiquidityEvent, MeteoraDlmmRemoveLiquidityEvent, MeteoraDlmmSwapEvent, MeteoraPoolsAddLiquidityEvent, MeteoraPoolsRemoveLiquidityEvent, MeteoraPoolsSwapEvent } from "./dex_event.js";
|
|
3
|
+
/** 预留:gRPC+meta 全量路径若需从 account_keys 补 vault,应对齐 cp_amm `swap` 账户顺序(IDL 中 vault/mint/token program 下标) */
|
|
4
|
+
export declare function fillMeteoraDammV2SwapAccounts(_e: MeteoraDammV2SwapEvent, _get: (i: number) => string): void;
|
|
5
|
+
export declare function fillMeteoraDammV2CreatePositionAccounts(_e: MeteoraDammV2CreatePositionEvent, _get: (i: number) => string): void;
|
|
6
|
+
export declare function fillMeteoraDammV2InitializePoolAccounts(_e: MeteoraDammV2InitializePoolEvent, _get: (i: number) => string): void;
|
|
7
|
+
export declare function fillMeteoraDammV2ClosePositionAccounts(_e: MeteoraDammV2ClosePositionEvent, _get: (i: number) => string): void;
|
|
8
|
+
export declare function fillMeteoraDammV2AddLiquidityAccounts(_e: MeteoraDammV2AddLiquidityEvent, _get: (i: number) => string): void;
|
|
9
|
+
export declare function fillMeteoraDammV2RemoveLiquidityAccounts(_e: MeteoraDammV2RemoveLiquidityEvent, _get: (i: number) => string): void;
|
|
10
|
+
export declare function fillMeteoraPoolsSwapAccounts(_e: MeteoraPoolsSwapEvent, _get: (i: number) => string): void;
|
|
11
|
+
export declare function fillMeteoraPoolsAddLiquidityAccounts(_e: MeteoraPoolsAddLiquidityEvent, _get: (i: number) => string): void;
|
|
12
|
+
export declare function fillMeteoraPoolsRemoveLiquidityAccounts(_e: MeteoraPoolsRemoveLiquidityEvent, _get: (i: number) => string): void;
|
|
13
|
+
export declare function fillMeteoraDlmmSwapAccounts(_e: MeteoraDlmmSwapEvent, _get: (i: number) => string): void;
|
|
14
|
+
export declare function fillMeteoraDlmmAddLiquidityAccounts(_e: MeteoraDlmmAddLiquidityEvent, _get: (i: number) => string): void;
|
|
15
|
+
export declare function fillMeteoraDlmmRemoveLiquidityAccounts(_e: MeteoraDlmmRemoveLiquidityEvent, _get: (i: number) => string): void;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fillMeteoraDammV2SwapAccounts = fillMeteoraDammV2SwapAccounts;
|
|
4
|
+
exports.fillMeteoraDammV2CreatePositionAccounts = fillMeteoraDammV2CreatePositionAccounts;
|
|
5
|
+
exports.fillMeteoraDammV2InitializePoolAccounts = fillMeteoraDammV2InitializePoolAccounts;
|
|
6
|
+
exports.fillMeteoraDammV2ClosePositionAccounts = fillMeteoraDammV2ClosePositionAccounts;
|
|
7
|
+
exports.fillMeteoraDammV2AddLiquidityAccounts = fillMeteoraDammV2AddLiquidityAccounts;
|
|
8
|
+
exports.fillMeteoraDammV2RemoveLiquidityAccounts = fillMeteoraDammV2RemoveLiquidityAccounts;
|
|
9
|
+
exports.fillMeteoraPoolsSwapAccounts = fillMeteoraPoolsSwapAccounts;
|
|
10
|
+
exports.fillMeteoraPoolsAddLiquidityAccounts = fillMeteoraPoolsAddLiquidityAccounts;
|
|
11
|
+
exports.fillMeteoraPoolsRemoveLiquidityAccounts = fillMeteoraPoolsRemoveLiquidityAccounts;
|
|
12
|
+
exports.fillMeteoraDlmmSwapAccounts = fillMeteoraDlmmSwapAccounts;
|
|
13
|
+
exports.fillMeteoraDlmmAddLiquidityAccounts = fillMeteoraDlmmAddLiquidityAccounts;
|
|
14
|
+
exports.fillMeteoraDlmmRemoveLiquidityAccounts = fillMeteoraDlmmRemoveLiquidityAccounts;
|
|
15
|
+
/** 预留:gRPC+meta 全量路径若需从 account_keys 补 vault,应对齐 cp_amm `swap` 账户顺序(IDL 中 vault/mint/token program 下标) */
|
|
16
|
+
function fillMeteoraDammV2SwapAccounts(_e, _get) { }
|
|
17
|
+
function fillMeteoraDammV2CreatePositionAccounts(_e, _get) { }
|
|
18
|
+
function fillMeteoraDammV2InitializePoolAccounts(_e, _get) { }
|
|
19
|
+
function fillMeteoraDammV2ClosePositionAccounts(_e, _get) { }
|
|
20
|
+
function fillMeteoraDammV2AddLiquidityAccounts(_e, _get) { }
|
|
21
|
+
function fillMeteoraDammV2RemoveLiquidityAccounts(_e, _get) { }
|
|
22
|
+
function fillMeteoraPoolsSwapAccounts(_e, _get) { }
|
|
23
|
+
function fillMeteoraPoolsAddLiquidityAccounts(_e, _get) { }
|
|
24
|
+
function fillMeteoraPoolsRemoveLiquidityAccounts(_e, _get) { }
|
|
25
|
+
function fillMeteoraDlmmSwapAccounts(_e, _get) { }
|
|
26
|
+
function fillMeteoraDlmmAddLiquidityAccounts(_e, _get) { }
|
|
27
|
+
function fillMeteoraDlmmRemoveLiquidityAccounts(_e, _get) { }
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** Orca Whirlpool 账户填充 */
|
|
2
|
+
import type { OrcaWhirlpoolLiquidityDecreasedEvent, OrcaWhirlpoolLiquidityIncreasedEvent, OrcaWhirlpoolSwapEvent } from "./dex_event.js";
|
|
3
|
+
export declare function fillOrcaWhirlpoolSwapAccounts(_e: OrcaWhirlpoolSwapEvent, _get: (i: number) => string): void;
|
|
4
|
+
export declare function fillOrcaWhirlpoolLiquidityIncreasedAccounts(e: OrcaWhirlpoolLiquidityIncreasedEvent, get: (i: number) => string): void;
|
|
5
|
+
export declare function fillOrcaWhirlpoolLiquidityDecreasedAccounts(e: OrcaWhirlpoolLiquidityDecreasedEvent, get: (i: number) => string): void;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fillOrcaWhirlpoolSwapAccounts = fillOrcaWhirlpoolSwapAccounts;
|
|
4
|
+
exports.fillOrcaWhirlpoolLiquidityIncreasedAccounts = fillOrcaWhirlpoolLiquidityIncreasedAccounts;
|
|
5
|
+
exports.fillOrcaWhirlpoolLiquidityDecreasedAccounts = fillOrcaWhirlpoolLiquidityDecreasedAccounts;
|
|
6
|
+
const dex_event_js_1 = require("./dex_event.js");
|
|
7
|
+
const Z = () => (0, dex_event_js_1.defaultPubkey)();
|
|
8
|
+
function fillOrcaWhirlpoolSwapAccounts(_e, _get) { }
|
|
9
|
+
function fillOrcaWhirlpoolLiquidityIncreasedAccounts(e, get) {
|
|
10
|
+
const zero = Z();
|
|
11
|
+
if (!e.position || e.position === zero)
|
|
12
|
+
e.position = get(3);
|
|
13
|
+
}
|
|
14
|
+
function fillOrcaWhirlpoolLiquidityDecreasedAccounts(e, get) {
|
|
15
|
+
const zero = Z();
|
|
16
|
+
if (!e.position || e.position === zero)
|
|
17
|
+
e.position = get(3);
|
|
18
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** PumpFun 账户填充(字符串公钥) */
|
|
2
|
+
import type { PumpFunCreateTokenEvent, PumpFunCreateV2TokenEvent, PumpFunMigrateEvent, PumpFunTradeEvent } from "./dex_event.js";
|
|
3
|
+
export declare function fillPumpfunTradeAccounts(e: PumpFunTradeEvent, get: (i: number) => string): void;
|
|
4
|
+
export declare function fillPumpfunCreateAccounts(e: PumpFunCreateTokenEvent, get: (i: number) => string): void;
|
|
5
|
+
export declare function fillPumpfunCreateV2Accounts(e: PumpFunCreateV2TokenEvent, get: (i: number) => string): void;
|
|
6
|
+
/** Migrate:占位,待 IDL 账户映射 */
|
|
7
|
+
export declare function fillPumpfunMigrateAccounts(_e: PumpFunMigrateEvent, _get: (i: number) => string): void;
|