sol-parser-sdk-nodejs 0.3.0 → 0.4.4
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/README.md +100 -352
- package/README_CN.md +107 -253
- package/dist/accounts/mod.d.ts +3 -0
- package/dist/accounts/mod.js +18 -1
- package/dist/accounts/pumpfun.d.ts +6 -0
- package/dist/accounts/pumpfun.js +157 -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/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.js +26 -5
- package/dist/core/account_fill_meteora.d.ts +4 -2
- package/dist/core/account_fill_meteora.js +5 -2
- package/dist/core/account_fill_pumpfun.js +17 -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 +6 -0
- package/dist/core/clock.js +13 -0
- package/dist/core/dex_event.d.ts +172 -44
- package/dist/core/metadata.d.ts +1 -0
- package/dist/core/pumpfun_fee_enrich.d.ts +4 -0
- package/dist/core/pumpfun_fee_enrich.js +80 -0
- package/dist/core/unified_parser.d.ts +2 -2
- package/dist/core/unified_parser.js +8 -6
- package/dist/grpc/client.d.ts +32 -1
- package/dist/grpc/client.js +400 -64
- 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 +330 -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 +26 -0
- package/dist/grpc/program_ids.js +55 -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 +57 -2
- package/dist/grpc/types.js +199 -7
- package/dist/grpc/yellowstone_parse.d.ts +8 -1
- package/dist/grpc/yellowstone_parse.js +27 -11
- package/dist/index.d.ts +39 -8
- package/dist/index.js +184 -2
- package/dist/instr/bonk_ix.d.ts +4 -1
- package/dist/instr/bonk_ix.js +106 -27
- package/dist/instr/meteora_damm_ix.d.ts +4 -2
- package/dist/instr/meteora_damm_ix.js +248 -13
- package/dist/instr/mod.d.ts +1 -0
- package/dist/instr/mod.js +16 -3
- package/dist/instr/orca_whirlpool_ix.d.ts +4 -1
- package/dist/instr/orca_whirlpool_ix.js +45 -16
- package/dist/instr/program_ids.d.ts +7 -13
- package/dist/instr/program_ids.js +20 -15
- package/dist/instr/pump_fees_ix.d.ts +2 -0
- package/dist/instr/pump_fees_ix.js +166 -0
- package/dist/instr/pumpfun_ix.js +57 -0
- package/dist/instr/pumpswap_ix.d.ts +1 -1
- package/dist/instr/pumpswap_ix.js +78 -57
- package/dist/instr/raydium_amm_v4_ix.d.ts +1 -1
- package/dist/instr/raydium_amm_v4_ix.js +94 -28
- package/dist/instr/raydium_clmm_ix.d.ts +1 -1
- package/dist/instr/raydium_clmm_ix.js +84 -30
- package/dist/instr/raydium_cpmm_ix.d.ts +1 -1
- package/dist/instr/raydium_cpmm_ix.js +46 -12
- package/dist/instr/rust_aliases.d.ts +8 -0
- package/dist/instr/rust_aliases.js +16 -0
- package/dist/instr/utils.d.ts +1 -1
- package/dist/instr/utils.js +2 -1
- package/dist/logs/discriminator_lut.d.ts +19 -0
- package/dist/logs/discriminator_lut.js +62 -0
- package/dist/logs/meteora_damm.d.ts +3 -4
- package/dist/logs/meteora_damm.js +3 -369
- package/dist/logs/optimized_matcher.d.ts +2 -2
- package/dist/logs/optimized_matcher.js +123 -23
- package/dist/logs/program_log_discriminators.d.ts +10 -0
- package/dist/logs/program_log_discriminators.js +10 -0
- package/dist/logs/pump.d.ts +2 -0
- package/dist/logs/pump.js +51 -4
- package/dist/logs/pump_fees.d.ts +23 -0
- package/dist/logs/pump_fees.js +364 -0
- package/dist/logs/rust_aliases.d.ts +6 -0
- package/dist/logs/rust_aliases.js +13 -0
- package/dist/rpc_parser.d.ts +1 -0
- package/dist/rpc_parser.js +4 -1
- package/dist/rpc_transaction.d.ts +2 -0
- package/dist/rpc_transaction.js +14 -6
- package/dist/shredstream/alt_lookup.d.ts +9 -0
- package/dist/shredstream/alt_lookup.js +70 -0
- package/dist/shredstream/client.d.ts +62 -0
- package/dist/shredstream/client.js +399 -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 +49 -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/package.json +28 -11
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseInitializePoolEvent = parseInitializePoolEvent;
|
|
4
3
|
exports.parseMeteoraDammLog = parseMeteoraDammLog;
|
|
5
4
|
const metadata_js_1 = require("../core/metadata.js");
|
|
6
5
|
const dex_event_js_1 = require("../core/dex_event.js");
|
|
@@ -14,13 +13,6 @@ function discOf(bytes) {
|
|
|
14
13
|
}
|
|
15
14
|
const SWAP = discOf([27, 60, 21, 213, 138, 170, 187, 147]);
|
|
16
15
|
const SWAP2 = discOf([189, 66, 51, 168, 38, 80, 117, 153]);
|
|
17
|
-
/** 与 `instr/meteora_damm_ix.ts` CPI 内层事件 disc 一致;Program data 去掉前 8 字节后与 CPI 载荷布局相同 */
|
|
18
|
-
const CREATE_POSITION = discOf([156, 15, 119, 198, 29, 181, 221, 55]);
|
|
19
|
-
const CLOSE_POSITION = discOf([20, 145, 144, 68, 143, 142, 214, 178]);
|
|
20
|
-
const ADD_LIQUIDITY = discOf([175, 242, 8, 157, 30, 247, 185, 169]);
|
|
21
|
-
const REMOVE_LIQUIDITY = discOf([87, 46, 88, 98, 175, 96, 34, 91]);
|
|
22
|
-
/** Meteora `cp-amm` `EvtInitializePool`(见 `programs/cp-amm/src/event.rs`) */
|
|
23
|
-
const INITIALIZE_POOL = discOf([228, 50, 246, 85, 203, 66, 134, 37]);
|
|
24
16
|
function bn64(v) {
|
|
25
17
|
return v ?? 0n;
|
|
26
18
|
}
|
|
@@ -133,357 +125,9 @@ function parseSwap2Event(data, meta) {
|
|
|
133
125
|
};
|
|
134
126
|
return { MeteoraDammV2Swap: ev };
|
|
135
127
|
}
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
let o = 0;
|
|
140
|
-
const pool = (0, binary_js_1.readPubkey)(data, o);
|
|
141
|
-
if (!pool)
|
|
142
|
-
return null;
|
|
143
|
-
o += 32;
|
|
144
|
-
const owner = (0, binary_js_1.readPubkey)(data, o);
|
|
145
|
-
if (!owner)
|
|
146
|
-
return null;
|
|
147
|
-
o += 32;
|
|
148
|
-
const position = (0, binary_js_1.readPubkey)(data, o);
|
|
149
|
-
if (!position)
|
|
150
|
-
return null;
|
|
151
|
-
o += 32;
|
|
152
|
-
const position_nft_mint = (0, binary_js_1.readPubkey)(data, o);
|
|
153
|
-
if (!position_nft_mint)
|
|
154
|
-
return null;
|
|
155
|
-
return { MeteoraDammV2CreatePosition: { metadata: meta, pool, owner, position, position_nft_mint } };
|
|
156
|
-
}
|
|
157
|
-
function parseClosePositionEvent(data, meta) {
|
|
158
|
-
if (data.length < 32 * 4)
|
|
159
|
-
return null;
|
|
160
|
-
let o = 0;
|
|
161
|
-
const pool = (0, binary_js_1.readPubkey)(data, o);
|
|
162
|
-
if (!pool)
|
|
163
|
-
return null;
|
|
164
|
-
o += 32;
|
|
165
|
-
const owner = (0, binary_js_1.readPubkey)(data, o);
|
|
166
|
-
if (!owner)
|
|
167
|
-
return null;
|
|
168
|
-
o += 32;
|
|
169
|
-
const position = (0, binary_js_1.readPubkey)(data, o);
|
|
170
|
-
if (!position)
|
|
171
|
-
return null;
|
|
172
|
-
o += 32;
|
|
173
|
-
const position_nft_mint = (0, binary_js_1.readPubkey)(data, o);
|
|
174
|
-
if (!position_nft_mint)
|
|
175
|
-
return null;
|
|
176
|
-
return { MeteoraDammV2ClosePosition: { metadata: meta, pool, owner, position, position_nft_mint } };
|
|
177
|
-
}
|
|
178
|
-
function parseAddLiquidityEvent(data, meta) {
|
|
179
|
-
if (data.length < 32 * 3 + 16 + 8 * 6)
|
|
180
|
-
return null;
|
|
181
|
-
let o = 0;
|
|
182
|
-
const pool = (0, binary_js_1.readPubkey)(data, o);
|
|
183
|
-
if (!pool)
|
|
184
|
-
return null;
|
|
185
|
-
o += 32;
|
|
186
|
-
const position = (0, binary_js_1.readPubkey)(data, o);
|
|
187
|
-
if (!position)
|
|
188
|
-
return null;
|
|
189
|
-
o += 32;
|
|
190
|
-
const owner = (0, binary_js_1.readPubkey)(data, o);
|
|
191
|
-
if (!owner)
|
|
192
|
-
return null;
|
|
193
|
-
o += 32;
|
|
194
|
-
const liquidity_delta = (0, binary_js_1.readU128LE)(data, o);
|
|
195
|
-
if (liquidity_delta === null)
|
|
196
|
-
return null;
|
|
197
|
-
o += 16;
|
|
198
|
-
const token_a_amount_threshold = (0, binary_js_1.readU64LE)(data, o);
|
|
199
|
-
if (token_a_amount_threshold === null)
|
|
200
|
-
return null;
|
|
201
|
-
o += 8;
|
|
202
|
-
const token_b_amount_threshold = (0, binary_js_1.readU64LE)(data, o);
|
|
203
|
-
if (token_b_amount_threshold === null)
|
|
204
|
-
return null;
|
|
205
|
-
o += 8;
|
|
206
|
-
const token_a_amount = (0, binary_js_1.readU64LE)(data, o);
|
|
207
|
-
if (token_a_amount === null)
|
|
208
|
-
return null;
|
|
209
|
-
o += 8;
|
|
210
|
-
const token_b_amount = (0, binary_js_1.readU64LE)(data, o);
|
|
211
|
-
if (token_b_amount === null)
|
|
212
|
-
return null;
|
|
213
|
-
o += 8;
|
|
214
|
-
const total_amount_a = (0, binary_js_1.readU64LE)(data, o);
|
|
215
|
-
if (total_amount_a === null)
|
|
216
|
-
return null;
|
|
217
|
-
o += 8;
|
|
218
|
-
const total_amount_b = (0, binary_js_1.readU64LE)(data, o);
|
|
219
|
-
if (total_amount_b === null)
|
|
220
|
-
return null;
|
|
221
|
-
return {
|
|
222
|
-
MeteoraDammV2AddLiquidity: {
|
|
223
|
-
metadata: meta,
|
|
224
|
-
pool,
|
|
225
|
-
position,
|
|
226
|
-
owner,
|
|
227
|
-
liquidity_delta,
|
|
228
|
-
token_a_amount_threshold,
|
|
229
|
-
token_b_amount_threshold,
|
|
230
|
-
token_a_amount,
|
|
231
|
-
token_b_amount,
|
|
232
|
-
total_amount_a,
|
|
233
|
-
total_amount_b,
|
|
234
|
-
},
|
|
235
|
-
};
|
|
236
|
-
}
|
|
237
|
-
function parseRemoveLiquidityEvent(data, meta) {
|
|
238
|
-
if (data.length < 32 * 3 + 16 + 8 * 4)
|
|
239
|
-
return null;
|
|
240
|
-
let o = 0;
|
|
241
|
-
const pool = (0, binary_js_1.readPubkey)(data, o);
|
|
242
|
-
if (!pool)
|
|
243
|
-
return null;
|
|
244
|
-
o += 32;
|
|
245
|
-
const position = (0, binary_js_1.readPubkey)(data, o);
|
|
246
|
-
if (!position)
|
|
247
|
-
return null;
|
|
248
|
-
o += 32;
|
|
249
|
-
const owner = (0, binary_js_1.readPubkey)(data, o);
|
|
250
|
-
if (!owner)
|
|
251
|
-
return null;
|
|
252
|
-
o += 32;
|
|
253
|
-
const liquidity_delta = (0, binary_js_1.readU128LE)(data, o);
|
|
254
|
-
if (liquidity_delta === null)
|
|
255
|
-
return null;
|
|
256
|
-
o += 16;
|
|
257
|
-
const token_a_amount_threshold = (0, binary_js_1.readU64LE)(data, o);
|
|
258
|
-
if (token_a_amount_threshold === null)
|
|
259
|
-
return null;
|
|
260
|
-
o += 8;
|
|
261
|
-
const token_b_amount_threshold = (0, binary_js_1.readU64LE)(data, o);
|
|
262
|
-
if (token_b_amount_threshold === null)
|
|
263
|
-
return null;
|
|
264
|
-
o += 8;
|
|
265
|
-
const token_a_amount = (0, binary_js_1.readU64LE)(data, o);
|
|
266
|
-
if (token_a_amount === null)
|
|
267
|
-
return null;
|
|
268
|
-
o += 8;
|
|
269
|
-
const token_b_amount = (0, binary_js_1.readU64LE)(data, o);
|
|
270
|
-
if (token_b_amount === null)
|
|
271
|
-
return null;
|
|
272
|
-
return {
|
|
273
|
-
MeteoraDammV2RemoveLiquidity: {
|
|
274
|
-
metadata: meta,
|
|
275
|
-
pool,
|
|
276
|
-
position,
|
|
277
|
-
owner,
|
|
278
|
-
liquidity_delta,
|
|
279
|
-
token_a_amount_threshold,
|
|
280
|
-
token_b_amount_threshold,
|
|
281
|
-
token_a_amount,
|
|
282
|
-
token_b_amount,
|
|
283
|
-
},
|
|
284
|
-
};
|
|
285
|
-
}
|
|
286
|
-
function bytesToHex(u8, start, len) {
|
|
287
|
-
let out = "";
|
|
288
|
-
for (let i = 0; i < len; i++)
|
|
289
|
-
out += u8[start + i].toString(16).padStart(2, "0");
|
|
290
|
-
return out;
|
|
291
|
-
}
|
|
292
|
-
function parseDynamicFeeParameters(data, start) {
|
|
293
|
-
let o = start;
|
|
294
|
-
const bin_step = (0, binary_js_1.readU16LE)(data, o);
|
|
295
|
-
if (bin_step === null)
|
|
296
|
-
return null;
|
|
297
|
-
o += 2;
|
|
298
|
-
const bin_step_u128 = (0, binary_js_1.readU128LE)(data, o);
|
|
299
|
-
if (bin_step_u128 === null)
|
|
300
|
-
return null;
|
|
301
|
-
o += 16;
|
|
302
|
-
const filter_period = (0, binary_js_1.readU16LE)(data, o);
|
|
303
|
-
if (filter_period === null)
|
|
304
|
-
return null;
|
|
305
|
-
o += 2;
|
|
306
|
-
const decay_period = (0, binary_js_1.readU16LE)(data, o);
|
|
307
|
-
if (decay_period === null)
|
|
308
|
-
return null;
|
|
309
|
-
o += 2;
|
|
310
|
-
const reduction_factor = (0, binary_js_1.readU16LE)(data, o);
|
|
311
|
-
if (reduction_factor === null)
|
|
312
|
-
return null;
|
|
313
|
-
o += 2;
|
|
314
|
-
const max_volatility_accumulator = (0, binary_js_1.readU32LE)(data, o);
|
|
315
|
-
if (max_volatility_accumulator === null)
|
|
316
|
-
return null;
|
|
317
|
-
o += 4;
|
|
318
|
-
const variable_fee_control = (0, binary_js_1.readU32LE)(data, o);
|
|
319
|
-
if (variable_fee_control === null)
|
|
320
|
-
return null;
|
|
321
|
-
o += 4;
|
|
322
|
-
return {
|
|
323
|
-
v: {
|
|
324
|
-
bin_step,
|
|
325
|
-
bin_step_u128,
|
|
326
|
-
filter_period,
|
|
327
|
-
decay_period,
|
|
328
|
-
reduction_factor,
|
|
329
|
-
max_volatility_accumulator,
|
|
330
|
-
variable_fee_control,
|
|
331
|
-
},
|
|
332
|
-
next: o,
|
|
333
|
-
};
|
|
334
|
-
}
|
|
335
|
-
function parsePoolFeeParametersParsed(data, start) {
|
|
336
|
-
let o = start;
|
|
337
|
-
if (o + 30 > data.length)
|
|
338
|
-
return null;
|
|
339
|
-
const base_fee_data = bytesToHex(data, o, 27);
|
|
340
|
-
o += 27;
|
|
341
|
-
const compounding_fee_bps = (0, binary_js_1.readU16LE)(data, o);
|
|
342
|
-
if (compounding_fee_bps === null)
|
|
343
|
-
return null;
|
|
344
|
-
o += 2;
|
|
345
|
-
const padding = (0, binary_js_1.readU8)(data, o);
|
|
346
|
-
if (padding === null)
|
|
347
|
-
return null;
|
|
348
|
-
o += 1;
|
|
349
|
-
const tag = (0, binary_js_1.readU8)(data, o);
|
|
350
|
-
if (tag === null)
|
|
351
|
-
return null;
|
|
352
|
-
o += 1;
|
|
353
|
-
let dynamic_fee = null;
|
|
354
|
-
if (tag === 1) {
|
|
355
|
-
const inner = parseDynamicFeeParameters(data, o);
|
|
356
|
-
if (!inner)
|
|
357
|
-
return null;
|
|
358
|
-
dynamic_fee = inner.v;
|
|
359
|
-
o = inner.next;
|
|
360
|
-
}
|
|
361
|
-
else if (tag !== 0)
|
|
362
|
-
return null;
|
|
363
|
-
return {
|
|
364
|
-
v: { base_fee_data, compounding_fee_bps, padding, dynamic_fee },
|
|
365
|
-
next: o,
|
|
366
|
-
};
|
|
367
|
-
}
|
|
368
|
-
/** `EvtInitializePool`:6 个 pubkey 后接 `PoolFeeParameters`(变长 Option)再接固定尾部 109 字节 */
|
|
369
|
-
function parseInitializePoolEvent(data, meta) {
|
|
370
|
-
const minTail = 31 + 109;
|
|
371
|
-
if (data.length < 32 * 6 + minTail)
|
|
372
|
-
return null;
|
|
373
|
-
let o = 0;
|
|
374
|
-
const pool = (0, binary_js_1.readPubkey)(data, o);
|
|
375
|
-
if (!pool)
|
|
376
|
-
return null;
|
|
377
|
-
o += 32;
|
|
378
|
-
const token_a_mint = (0, binary_js_1.readPubkey)(data, o);
|
|
379
|
-
if (!token_a_mint)
|
|
380
|
-
return null;
|
|
381
|
-
o += 32;
|
|
382
|
-
const token_b_mint = (0, binary_js_1.readPubkey)(data, o);
|
|
383
|
-
if (!token_b_mint)
|
|
384
|
-
return null;
|
|
385
|
-
o += 32;
|
|
386
|
-
const creator = (0, binary_js_1.readPubkey)(data, o);
|
|
387
|
-
if (!creator)
|
|
388
|
-
return null;
|
|
389
|
-
o += 32;
|
|
390
|
-
const payer = (0, binary_js_1.readPubkey)(data, o);
|
|
391
|
-
if (!payer)
|
|
392
|
-
return null;
|
|
393
|
-
o += 32;
|
|
394
|
-
const alpha_vault = (0, binary_js_1.readPubkey)(data, o);
|
|
395
|
-
if (!alpha_vault)
|
|
396
|
-
return null;
|
|
397
|
-
o += 32;
|
|
398
|
-
const pfp = parsePoolFeeParametersParsed(data, o);
|
|
399
|
-
if (!pfp)
|
|
400
|
-
return null;
|
|
401
|
-
o = pfp.next;
|
|
402
|
-
if (o + 109 > data.length)
|
|
403
|
-
return null;
|
|
404
|
-
const sqrt_min_price = (0, binary_js_1.readU128LE)(data, o);
|
|
405
|
-
if (sqrt_min_price === null)
|
|
406
|
-
return null;
|
|
407
|
-
o += 16;
|
|
408
|
-
const sqrt_max_price = (0, binary_js_1.readU128LE)(data, o);
|
|
409
|
-
if (sqrt_max_price === null)
|
|
410
|
-
return null;
|
|
411
|
-
o += 16;
|
|
412
|
-
const activation_type = (0, binary_js_1.readU8)(data, o);
|
|
413
|
-
if (activation_type === null)
|
|
414
|
-
return null;
|
|
415
|
-
o += 1;
|
|
416
|
-
const collect_fee_mode = (0, binary_js_1.readU8)(data, o);
|
|
417
|
-
if (collect_fee_mode === null)
|
|
418
|
-
return null;
|
|
419
|
-
o += 1;
|
|
420
|
-
const liquidity = (0, binary_js_1.readU128LE)(data, o);
|
|
421
|
-
if (liquidity === null)
|
|
422
|
-
return null;
|
|
423
|
-
o += 16;
|
|
424
|
-
const sqrt_price = (0, binary_js_1.readU128LE)(data, o);
|
|
425
|
-
if (sqrt_price === null)
|
|
426
|
-
return null;
|
|
427
|
-
o += 16;
|
|
428
|
-
const activation_point = (0, binary_js_1.readU64LE)(data, o);
|
|
429
|
-
if (activation_point === null)
|
|
430
|
-
return null;
|
|
431
|
-
o += 8;
|
|
432
|
-
const token_a_flag = (0, binary_js_1.readU8)(data, o);
|
|
433
|
-
if (token_a_flag === null)
|
|
434
|
-
return null;
|
|
435
|
-
o += 1;
|
|
436
|
-
const token_b_flag = (0, binary_js_1.readU8)(data, o);
|
|
437
|
-
if (token_b_flag === null)
|
|
438
|
-
return null;
|
|
439
|
-
o += 1;
|
|
440
|
-
const token_a_amount = (0, binary_js_1.readU64LE)(data, o);
|
|
441
|
-
if (token_a_amount === null)
|
|
442
|
-
return null;
|
|
443
|
-
o += 8;
|
|
444
|
-
const token_b_amount = (0, binary_js_1.readU64LE)(data, o);
|
|
445
|
-
if (token_b_amount === null)
|
|
446
|
-
return null;
|
|
447
|
-
o += 8;
|
|
448
|
-
const total_amount_a = (0, binary_js_1.readU64LE)(data, o);
|
|
449
|
-
if (total_amount_a === null)
|
|
450
|
-
return null;
|
|
451
|
-
o += 8;
|
|
452
|
-
const total_amount_b = (0, binary_js_1.readU64LE)(data, o);
|
|
453
|
-
if (total_amount_b === null)
|
|
454
|
-
return null;
|
|
455
|
-
o += 8;
|
|
456
|
-
const pool_type = (0, binary_js_1.readU8)(data, o);
|
|
457
|
-
if (pool_type === null)
|
|
458
|
-
return null;
|
|
459
|
-
return {
|
|
460
|
-
MeteoraDammV2InitializePool: {
|
|
461
|
-
metadata: meta,
|
|
462
|
-
pool,
|
|
463
|
-
token_a_mint,
|
|
464
|
-
token_b_mint,
|
|
465
|
-
creator,
|
|
466
|
-
payer,
|
|
467
|
-
alpha_vault,
|
|
468
|
-
pool_fees: pfp.v,
|
|
469
|
-
sqrt_min_price,
|
|
470
|
-
sqrt_max_price,
|
|
471
|
-
activation_type,
|
|
472
|
-
collect_fee_mode,
|
|
473
|
-
liquidity,
|
|
474
|
-
sqrt_price,
|
|
475
|
-
activation_point,
|
|
476
|
-
token_a_flag,
|
|
477
|
-
token_b_flag,
|
|
478
|
-
token_a_amount,
|
|
479
|
-
token_b_amount,
|
|
480
|
-
total_amount_a,
|
|
481
|
-
total_amount_b,
|
|
482
|
-
pool_type,
|
|
483
|
-
},
|
|
484
|
-
};
|
|
485
|
-
}
|
|
486
|
-
/** Meteora DAMM Program data 入口;布局与 `parseMeteoraDammInstruction` CPI 内层载荷一致(Swap/Swap2 另含日志侧 32 字节填充,见 parseSwapEvent) */
|
|
128
|
+
/**
|
|
129
|
+
* Meteora DAMM Program data 入口;与 Rust `logs/meteora_damm.rs` 一致,仅解析 Swap / Swap2(其余 discriminator 不产出事件)。
|
|
130
|
+
*/
|
|
487
131
|
function parseMeteoraDammLog(log, signature, slot, txIndex, blockTimeUs, grpcRecvUs) {
|
|
488
132
|
const programData = (0, program_data_js_1.decodeProgramDataLine)(log);
|
|
489
133
|
if (!programData)
|
|
@@ -495,15 +139,5 @@ function parseMeteoraDammLog(log, signature, slot, txIndex, blockTimeUs, grpcRec
|
|
|
495
139
|
return parseSwapEvent(data, meta);
|
|
496
140
|
if (disc === SWAP2)
|
|
497
141
|
return parseSwap2Event(data, meta);
|
|
498
|
-
if (disc === CREATE_POSITION)
|
|
499
|
-
return parseCreatePositionEvent(data, meta);
|
|
500
|
-
if (disc === CLOSE_POSITION)
|
|
501
|
-
return parseClosePositionEvent(data, meta);
|
|
502
|
-
if (disc === ADD_LIQUIDITY)
|
|
503
|
-
return parseAddLiquidityEvent(data, meta);
|
|
504
|
-
if (disc === REMOVE_LIQUIDITY)
|
|
505
|
-
return parseRemoveLiquidityEvent(data, meta);
|
|
506
|
-
if (disc === INITIALIZE_POOL)
|
|
507
|
-
return parseInitializePoolEvent(data, meta);
|
|
508
142
|
return null;
|
|
509
143
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { DexEvent } from "../core/dex_event.js";
|
|
2
2
|
import type { EventTypeFilter } from "../grpc/types.js";
|
|
3
3
|
export declare function parseLogOptimized(log: string, signature: string, slot: number, txIndex: number, blockTimeUs: number | undefined, grpcRecvUs: number, eventTypeFilter: EventTypeFilter | undefined, isCreatedBuy: boolean, recentBlockhash?: Uint8Array): DexEvent | null;
|
|
4
|
-
/**
|
|
5
|
-
export declare function parseLogUnified(log: string, signature: string, slot: number, blockTimeUs: number | undefined): DexEvent | null;
|
|
4
|
+
/** 单行日志统一解析;`txIndex` 与 Rust gRPC `parse_logs(..., tx_idx, ...)` / `info.index` 对齐。 */
|
|
5
|
+
export declare function parseLogUnified(log: string, signature: string, slot: number, blockTimeUs: number | undefined, txIndex?: number): DexEvent | null;
|
|
@@ -10,6 +10,7 @@ const program_data_js_1 = require("./program_data.js");
|
|
|
10
10
|
const clock_js_1 = require("../core/clock.js");
|
|
11
11
|
const pump_js_1 = require("./pump.js");
|
|
12
12
|
const pump_amm_js_1 = require("./pump_amm.js");
|
|
13
|
+
const pump_fees_js_1 = require("./pump_fees.js");
|
|
13
14
|
const raydium_clmm_js_1 = require("./raydium_clmm.js");
|
|
14
15
|
const raydium_cpmm_js_1 = require("./raydium_cpmm.js");
|
|
15
16
|
const bs58_1 = __importDefault(require("bs58"));
|
|
@@ -28,6 +29,26 @@ function discriminatorToEventType(disc) {
|
|
|
28
29
|
return "PumpFunTrade";
|
|
29
30
|
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.PUMPFUN_MIGRATE)
|
|
30
31
|
return "PumpFunMigrate";
|
|
32
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.PUMPFUN_MIGRATE_BONDING_CURVE_CREATOR)
|
|
33
|
+
return "PumpFunMigrateBondingCurveCreator";
|
|
34
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.PUMP_FEES_CREATE_FEE_SHARING_CONFIG)
|
|
35
|
+
return "PumpFeesCreateFeeSharingConfig";
|
|
36
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.PUMP_FEES_INITIALIZE_FEE_CONFIG)
|
|
37
|
+
return "PumpFeesInitializeFeeConfig";
|
|
38
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.PUMP_FEES_RESET_FEE_SHARING_CONFIG)
|
|
39
|
+
return "PumpFeesResetFeeSharingConfig";
|
|
40
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.PUMP_FEES_REVOKE_FEE_SHARING_AUTHORITY)
|
|
41
|
+
return "PumpFeesRevokeFeeSharingAuthority";
|
|
42
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.PUMP_FEES_TRANSFER_FEE_SHARING_AUTHORITY)
|
|
43
|
+
return "PumpFeesTransferFeeSharingAuthority";
|
|
44
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.PUMP_FEES_UPDATE_ADMIN)
|
|
45
|
+
return "PumpFeesUpdateAdmin";
|
|
46
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.PUMP_FEES_UPDATE_FEE_CONFIG)
|
|
47
|
+
return "PumpFeesUpdateFeeConfig";
|
|
48
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.PUMP_FEES_UPDATE_FEE_SHARES)
|
|
49
|
+
return "PumpFeesUpdateFeeShares";
|
|
50
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.PUMP_FEES_UPSERT_FEE_TIERS)
|
|
51
|
+
return "PumpFeesUpsertFeeTiers";
|
|
31
52
|
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.PUMPSWAP_BUY)
|
|
32
53
|
return "PumpSwapBuy";
|
|
33
54
|
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.PUMPSWAP_SELL)
|
|
@@ -38,24 +59,74 @@ function discriminatorToEventType(disc) {
|
|
|
38
59
|
return "PumpSwapLiquidityAdded";
|
|
39
60
|
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.PUMPSWAP_REMOVE_LIQUIDITY)
|
|
40
61
|
return "PumpSwapLiquidityRemoved";
|
|
62
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.RAYDIUM_CLMM_SWAP)
|
|
63
|
+
return "RaydiumClmmSwap";
|
|
64
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.RAYDIUM_CLMM_INCREASE_LIQUIDITY)
|
|
65
|
+
return "RaydiumClmmIncreaseLiquidity";
|
|
66
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.RAYDIUM_CLMM_DECREASE_LIQUIDITY)
|
|
67
|
+
return "RaydiumClmmDecreaseLiquidity";
|
|
68
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.RAYDIUM_CLMM_CREATE_POOL)
|
|
69
|
+
return "RaydiumClmmCreatePool";
|
|
70
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.RAYDIUM_CLMM_COLLECT_FEE)
|
|
71
|
+
return "RaydiumClmmCollectFee";
|
|
72
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.RAYDIUM_CPMM_SWAP_BASE_IN)
|
|
73
|
+
return "RaydiumCpmmSwap";
|
|
74
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.RAYDIUM_CPMM_SWAP_BASE_OUT)
|
|
75
|
+
return "RaydiumCpmmSwap";
|
|
76
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.RAYDIUM_CPMM_DEPOSIT)
|
|
77
|
+
return "RaydiumCpmmDeposit";
|
|
78
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.RAYDIUM_CPMM_WITHDRAW)
|
|
79
|
+
return "RaydiumCpmmWithdraw";
|
|
80
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.RAYDIUM_AMM_SWAP_BASE_IN)
|
|
81
|
+
return "RaydiumAmmV4Swap";
|
|
82
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.RAYDIUM_AMM_SWAP_BASE_OUT)
|
|
83
|
+
return "RaydiumAmmV4Swap";
|
|
84
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.RAYDIUM_AMM_DEPOSIT)
|
|
85
|
+
return "RaydiumAmmV4Deposit";
|
|
86
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.RAYDIUM_AMM_WITHDRAW)
|
|
87
|
+
return "RaydiumAmmV4Withdraw";
|
|
88
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.RAYDIUM_AMM_WITHDRAW_PNL)
|
|
89
|
+
return "RaydiumAmmV4WithdrawPnl";
|
|
90
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.RAYDIUM_AMM_INITIALIZE2)
|
|
91
|
+
return "RaydiumAmmV4Initialize2";
|
|
92
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.ORCA_TRADED)
|
|
93
|
+
return "OrcaWhirlpoolSwap";
|
|
94
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.ORCA_LIQUIDITY_INCREASED)
|
|
95
|
+
return "OrcaWhirlpoolLiquidityIncreased";
|
|
96
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.ORCA_LIQUIDITY_DECREASED)
|
|
97
|
+
return "OrcaWhirlpoolLiquidityDecreased";
|
|
98
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.ORCA_POOL_INITIALIZED)
|
|
99
|
+
return "OrcaWhirlpoolPoolInitialized";
|
|
100
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_AMM_SWAP)
|
|
101
|
+
return "MeteoraPoolsSwap";
|
|
102
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_AMM_ADD_LIQUIDITY)
|
|
103
|
+
return "MeteoraPoolsAddLiquidity";
|
|
104
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_AMM_REMOVE_LIQUIDITY)
|
|
105
|
+
return "MeteoraPoolsRemoveLiquidity";
|
|
106
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_AMM_BOOTSTRAP_LIQUIDITY)
|
|
107
|
+
return "MeteoraPoolsBootstrapLiquidity";
|
|
108
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_AMM_POOL_CREATED)
|
|
109
|
+
return "MeteoraPoolsPoolCreated";
|
|
110
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_AMM_SET_POOL_FEES)
|
|
111
|
+
return "MeteoraPoolsSetPoolFees";
|
|
112
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_SWAP)
|
|
113
|
+
return "MeteoraDammV2Swap";
|
|
114
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_SWAP2)
|
|
115
|
+
return "MeteoraDammV2Swap";
|
|
116
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_ADD_LIQUIDITY)
|
|
117
|
+
return "MeteoraDammV2AddLiquidity";
|
|
118
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_REMOVE_LIQUIDITY)
|
|
119
|
+
return "MeteoraDammV2RemoveLiquidity";
|
|
120
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_INITIALIZE_POOL)
|
|
121
|
+
return "MeteoraDammV2InitializePool";
|
|
122
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_CREATE_POSITION)
|
|
123
|
+
return "MeteoraDammV2CreatePosition";
|
|
124
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_CLOSE_POSITION)
|
|
125
|
+
return "MeteoraDammV2ClosePosition";
|
|
41
126
|
return null;
|
|
42
127
|
}
|
|
43
128
|
function filterAllowsUnknownSupported(filter) {
|
|
44
|
-
|
|
45
|
-
return true;
|
|
46
|
-
return filter.include_only.some((t) => [
|
|
47
|
-
"PumpFunTrade",
|
|
48
|
-
"PumpFunCreate",
|
|
49
|
-
"PumpFunMigrate",
|
|
50
|
-
"PumpFunBuy",
|
|
51
|
-
"PumpFunSell",
|
|
52
|
-
"PumpFunBuyExactSolIn",
|
|
53
|
-
"PumpSwapBuy",
|
|
54
|
-
"PumpSwapSell",
|
|
55
|
-
"PumpSwapCreatePool",
|
|
56
|
-
"PumpSwapLiquidityAdded",
|
|
57
|
-
"PumpSwapLiquidityRemoved",
|
|
58
|
-
].includes(t));
|
|
129
|
+
return !filter?.include_only;
|
|
59
130
|
}
|
|
60
131
|
function pumpfunTradeMatchesFilter(ev, includeOnly) {
|
|
61
132
|
if ("PumpFunBuy" in ev)
|
|
@@ -72,13 +143,22 @@ function pumpfunTradeMatchesFilter(ev, includeOnly) {
|
|
|
72
143
|
return includeOnly.includes("PumpFunCreateV2");
|
|
73
144
|
return false;
|
|
74
145
|
}
|
|
146
|
+
function eventTypeFromDexEvent(ev) {
|
|
147
|
+
const key = Object.keys(ev)[0];
|
|
148
|
+
return key ? key : null;
|
|
149
|
+
}
|
|
75
150
|
function applyPumpfunSecondaryFilter(ev, filter) {
|
|
76
|
-
if (!ev || !filter
|
|
77
|
-
return ev;
|
|
78
|
-
const hasSpecific = filter.include_only.some((t) => ["PumpFunBuy", "PumpFunSell", "PumpFunBuyExactSolIn", "PumpFunCreate", "PumpFunCreateV2"].includes(t));
|
|
79
|
-
if (!hasSpecific)
|
|
151
|
+
if (!ev || !filter)
|
|
80
152
|
return ev;
|
|
81
|
-
|
|
153
|
+
if (filter.include_only?.length) {
|
|
154
|
+
const hasSpecific = filter.include_only.some((t) => ["PumpFunBuy", "PumpFunSell", "PumpFunBuyExactSolIn", "PumpFunCreate", "PumpFunCreateV2"].includes(t));
|
|
155
|
+
if (hasSpecific && !pumpfunTradeMatchesFilter(ev, filter.include_only))
|
|
156
|
+
return null;
|
|
157
|
+
}
|
|
158
|
+
const actual = eventTypeFromDexEvent(ev);
|
|
159
|
+
if (actual && !filter.shouldInclude(actual))
|
|
160
|
+
return null;
|
|
161
|
+
return ev;
|
|
82
162
|
}
|
|
83
163
|
function parseLogOptimized(log, signature, slot, txIndex, blockTimeUs, grpcRecvUs, eventTypeFilter, isCreatedBuy, recentBlockhash) {
|
|
84
164
|
const buf = (0, program_data_js_1.decodeProgramDataLine)(log);
|
|
@@ -116,6 +196,26 @@ function parseLogOptimized(log, signature, slot, txIndex, blockTimeUs, grpcRecvU
|
|
|
116
196
|
return (0, pump_js_1.parseCreateFromData)(data, metadata);
|
|
117
197
|
case program_log_discriminators_js_1.PROGRAM_LOG_DISC.PUMPFUN_MIGRATE:
|
|
118
198
|
return (0, pump_js_1.parseMigrateFromData)(data, metadata);
|
|
199
|
+
case program_log_discriminators_js_1.PROGRAM_LOG_DISC.PUMPFUN_MIGRATE_BONDING_CURVE_CREATOR:
|
|
200
|
+
return (0, pump_js_1.parseMigrateBondingCurveCreatorFromData)(data, metadata);
|
|
201
|
+
case program_log_discriminators_js_1.PROGRAM_LOG_DISC.PUMP_FEES_CREATE_FEE_SHARING_CONFIG:
|
|
202
|
+
return (0, pump_fees_js_1.parseCreateFeeSharingConfigFromData)(data, metadata);
|
|
203
|
+
case program_log_discriminators_js_1.PROGRAM_LOG_DISC.PUMP_FEES_INITIALIZE_FEE_CONFIG:
|
|
204
|
+
return (0, pump_fees_js_1.parseInitializeFeeConfigFromData)(data, metadata);
|
|
205
|
+
case program_log_discriminators_js_1.PROGRAM_LOG_DISC.PUMP_FEES_RESET_FEE_SHARING_CONFIG:
|
|
206
|
+
return (0, pump_fees_js_1.parseResetFeeSharingConfigFromData)(data, metadata);
|
|
207
|
+
case program_log_discriminators_js_1.PROGRAM_LOG_DISC.PUMP_FEES_REVOKE_FEE_SHARING_AUTHORITY:
|
|
208
|
+
return (0, pump_fees_js_1.parseRevokeFeeSharingAuthorityFromData)(data, metadata);
|
|
209
|
+
case program_log_discriminators_js_1.PROGRAM_LOG_DISC.PUMP_FEES_TRANSFER_FEE_SHARING_AUTHORITY:
|
|
210
|
+
return (0, pump_fees_js_1.parseTransferFeeSharingAuthorityFromData)(data, metadata);
|
|
211
|
+
case program_log_discriminators_js_1.PROGRAM_LOG_DISC.PUMP_FEES_UPDATE_ADMIN:
|
|
212
|
+
return (0, pump_fees_js_1.parseUpdateAdminFromData)(data, metadata);
|
|
213
|
+
case program_log_discriminators_js_1.PROGRAM_LOG_DISC.PUMP_FEES_UPDATE_FEE_CONFIG:
|
|
214
|
+
return (0, pump_fees_js_1.parseUpdateFeeConfigFromData)(data, metadata);
|
|
215
|
+
case program_log_discriminators_js_1.PROGRAM_LOG_DISC.PUMP_FEES_UPDATE_FEE_SHARES:
|
|
216
|
+
return (0, pump_fees_js_1.parseUpdateFeeSharesFromData)(data, metadata);
|
|
217
|
+
case program_log_discriminators_js_1.PROGRAM_LOG_DISC.PUMP_FEES_UPSERT_FEE_TIERS:
|
|
218
|
+
return (0, pump_fees_js_1.parseUpsertFeeTiersFromData)(data, metadata);
|
|
119
219
|
case program_log_discriminators_js_1.PROGRAM_LOG_DISC.PUMPSWAP_CREATE_POOL:
|
|
120
220
|
return (0, pump_amm_js_1.parseCreatePoolFromData)(data, metadata);
|
|
121
221
|
case program_log_discriminators_js_1.PROGRAM_LOG_DISC.PUMPSWAP_ADD_LIQUIDITY:
|
|
@@ -187,8 +287,8 @@ function parseLogOptimized(log, signature, slot, txIndex, blockTimeUs, grpcRecvU
|
|
|
187
287
|
}
|
|
188
288
|
}
|
|
189
289
|
}
|
|
190
|
-
/**
|
|
191
|
-
function parseLogUnified(log, signature, slot, blockTimeUs) {
|
|
290
|
+
/** 单行日志统一解析;`txIndex` 与 Rust gRPC `parse_logs(..., tx_idx, ...)` / `info.index` 对齐。 */
|
|
291
|
+
function parseLogUnified(log, signature, slot, blockTimeUs, txIndex = 0) {
|
|
192
292
|
const grpcRecvUs = (0, clock_js_1.nowUs)();
|
|
193
|
-
return parseLogOptimized(log, signature, slot,
|
|
293
|
+
return parseLogOptimized(log, signature, slot, txIndex, blockTimeUs, grpcRecvUs, undefined, false, undefined);
|
|
194
294
|
}
|
|
@@ -18,6 +18,16 @@ export declare const PROGRAM_LOG_DISC: {
|
|
|
18
18
|
readonly PUMPFUN_CREATE: bigint;
|
|
19
19
|
readonly PUMPFUN_TRADE: bigint;
|
|
20
20
|
readonly PUMPFUN_MIGRATE: bigint;
|
|
21
|
+
readonly PUMPFUN_MIGRATE_BONDING_CURVE_CREATOR: bigint;
|
|
22
|
+
readonly PUMP_FEES_CREATE_FEE_SHARING_CONFIG: bigint;
|
|
23
|
+
readonly PUMP_FEES_INITIALIZE_FEE_CONFIG: bigint;
|
|
24
|
+
readonly PUMP_FEES_RESET_FEE_SHARING_CONFIG: bigint;
|
|
25
|
+
readonly PUMP_FEES_REVOKE_FEE_SHARING_AUTHORITY: bigint;
|
|
26
|
+
readonly PUMP_FEES_TRANSFER_FEE_SHARING_AUTHORITY: bigint;
|
|
27
|
+
readonly PUMP_FEES_UPDATE_ADMIN: bigint;
|
|
28
|
+
readonly PUMP_FEES_UPDATE_FEE_CONFIG: bigint;
|
|
29
|
+
readonly PUMP_FEES_UPDATE_FEE_SHARES: bigint;
|
|
30
|
+
readonly PUMP_FEES_UPSERT_FEE_TIERS: bigint;
|
|
21
31
|
readonly PUMPSWAP_BUY: bigint;
|
|
22
32
|
readonly PUMPSWAP_SELL: bigint;
|
|
23
33
|
readonly PUMPSWAP_CREATE_POOL: bigint;
|
|
@@ -27,6 +27,16 @@ exports.PROGRAM_LOG_DISC = {
|
|
|
27
27
|
PUMPFUN_CREATE: u64leDiscriminator([27, 114, 169, 77, 222, 235, 99, 118]),
|
|
28
28
|
PUMPFUN_TRADE: u64leDiscriminator([189, 219, 127, 211, 78, 230, 97, 238]),
|
|
29
29
|
PUMPFUN_MIGRATE: u64leDiscriminator([189, 233, 93, 185, 92, 148, 234, 148]),
|
|
30
|
+
PUMPFUN_MIGRATE_BONDING_CURVE_CREATOR: u64leDiscriminator([155, 167, 104, 220, 213, 108, 243, 3]),
|
|
31
|
+
PUMP_FEES_CREATE_FEE_SHARING_CONFIG: u64leDiscriminator([133, 105, 170, 200, 184, 116, 251, 88]),
|
|
32
|
+
PUMP_FEES_INITIALIZE_FEE_CONFIG: u64leDiscriminator([89, 138, 244, 230, 10, 56, 226, 126]),
|
|
33
|
+
PUMP_FEES_RESET_FEE_SHARING_CONFIG: u64leDiscriminator([203, 204, 151, 226, 120, 55, 214, 243]),
|
|
34
|
+
PUMP_FEES_REVOKE_FEE_SHARING_AUTHORITY: u64leDiscriminator([114, 23, 101, 60, 14, 190, 153, 62]),
|
|
35
|
+
PUMP_FEES_TRANSFER_FEE_SHARING_AUTHORITY: u64leDiscriminator([124, 143, 198, 245, 77, 184, 8, 236]),
|
|
36
|
+
PUMP_FEES_UPDATE_ADMIN: u64leDiscriminator([225, 152, 171, 87, 246, 63, 66, 234]),
|
|
37
|
+
PUMP_FEES_UPDATE_FEE_CONFIG: u64leDiscriminator([90, 23, 65, 35, 62, 244, 188, 208]),
|
|
38
|
+
PUMP_FEES_UPDATE_FEE_SHARES: u64leDiscriminator([21, 186, 196, 184, 91, 228, 225, 203]),
|
|
39
|
+
PUMP_FEES_UPSERT_FEE_TIERS: u64leDiscriminator([171, 89, 169, 187, 122, 186, 33, 204]),
|
|
30
40
|
PUMPSWAP_BUY: exports.PUMPSWAP_DISC.BUY,
|
|
31
41
|
PUMPSWAP_SELL: exports.PUMPSWAP_DISC.SELL,
|
|
32
42
|
PUMPSWAP_CREATE_POOL: exports.PUMPSWAP_DISC.CREATE_POOL,
|
package/dist/logs/pump.d.ts
CHANGED
|
@@ -4,9 +4,11 @@ export declare function parsePumpFunLogDecoded(programData: Uint8Array, metadata
|
|
|
4
4
|
export declare function parseTradeFromData(data: Uint8Array, metadata: EventMetadata, isCreatedBuy: boolean): DexEvent | null;
|
|
5
5
|
export declare function parseCreateFromData(data: Uint8Array, metadata: EventMetadata): DexEvent | null;
|
|
6
6
|
export declare function parseMigrateFromData(data: Uint8Array, metadata: EventMetadata): DexEvent | null;
|
|
7
|
+
export declare function parseMigrateBondingCurveCreatorFromData(data: Uint8Array, metadata: EventMetadata): DexEvent | null;
|
|
7
8
|
/** u64 discriminator little-endian */
|
|
8
9
|
export declare function pumpDiscriminators(): {
|
|
9
10
|
CREATE: bigint;
|
|
10
11
|
TRADE: bigint;
|
|
11
12
|
MIGRATE: bigint;
|
|
13
|
+
MIGRATE_BONDING_CURVE_CREATOR: bigint;
|
|
12
14
|
};
|