sol-parser-sdk 0.5.17 → 0.5.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -15
- package/README_CN.md +23 -14
- package/dist/accounts/pumpfun.js +15 -0
- package/dist/accounts/pumpswap.js +2 -0
- package/dist/core/account_dispatcher_rpc.d.ts +2 -1
- package/dist/core/account_dispatcher_rpc.js +94 -9
- package/dist/core/account_fill_pumpfun.js +20 -0
- package/dist/core/account_fill_pumpswap.d.ts +2 -0
- package/dist/core/account_fill_pumpswap.js +55 -6
- package/dist/core/account_fill_raydium.js +4 -0
- package/dist/core/dex_event.d.ts +149 -0
- package/dist/grpc/client.js +2 -0
- package/dist/grpc/log_instr_dedup.js +75 -7
- package/dist/grpc/order_buffer.d.ts +5 -0
- package/dist/grpc/order_buffer.js +53 -17
- package/dist/grpc/types.d.ts +4 -1
- package/dist/grpc/types.js +23 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/instr/inner.js +28 -1
- package/dist/instr/meteora_damm_ix.js +26 -0
- package/dist/instr/meteora_pools_ix.js +17 -9
- package/dist/instr/orca_whirlpool_ix.js +13 -9
- package/dist/instr/pumpfun_ix.js +84 -0
- package/dist/instr/pumpswap_ix.js +85 -10
- package/dist/instr/raydium_clmm_ix.js +5 -3
- package/dist/instr/raydium_cpmm_ix.js +11 -8
- package/dist/logs/meteora_damm.d.ts +7 -0
- package/dist/logs/meteora_damm.js +211 -0
- package/dist/logs/meteora_dbc.d.ts +3 -0
- package/dist/logs/meteora_dbc.js +23 -0
- package/dist/logs/meteora_dlmm.js +16 -4
- package/dist/logs/optimized_matcher.js +93 -10
- package/dist/logs/program_log_discriminators.d.ts +11 -0
- package/dist/logs/program_log_discriminators.js +11 -0
- package/dist/logs/pump.js +6 -3
- package/dist/logs/pump_amm.js +8 -2
- package/dist/logs/pump_upgrade.d.ts +68 -0
- package/dist/logs/pump_upgrade.js +128 -0
- package/dist/logs/raydium_cpmm.js +7 -3
- package/dist/rpc_transaction.js +84 -7
- package/dist/shredstream/alt_cache.d.ts +26 -0
- package/dist/shredstream/alt_cache.js +138 -0
- package/dist/shredstream/client.d.ts +11 -3
- package/dist/shredstream/client.js +76 -72
- package/dist/shredstream/config.d.ts +7 -3
- package/dist/shredstream/index.d.ts +3 -2
- package/dist/shredstream/index.js +5 -3
- package/dist/shredstream/instruction_parse.d.ts +1 -1
- package/dist/shredstream/instruction_parse.js +1 -0
- package/dist/simulation_route.d.ts +1 -1
- package/dist/simulation_route.js +17 -4
- package/dist/transaction_route.js +20 -1
- package/dist/wire_transaction.js +9 -10
- package/docs/USAGE.md +161 -0
- package/package.json +2 -5
- package/NATIVE_ALIGNMENT.md +0 -312
- package/NATIVE_DAMM_FACTORY_ALIGNMENT_20261004.md +0 -16
- package/NATIVE_DAMM_FACTORY_EVIDENCE_20261004.json +0 -55
- package/NATIVE_MIGRATION.md +0 -38
- package/NATIVE_PUMPFUN_NATIVE_DEBIT_ALIGNMENT_20261004.md +0 -18
- package/NATIVE_PUMPFUN_NATIVE_DEBIT_EVIDENCE_20261004.json +0 -57
- package/NATIVE_PUMPFUN_SETTLEMENT_ALIGNMENT_20261004.md +0 -11
- package/NATIVE_PUMPFUN_SETTLEMENT_EVIDENCE_20261004.json +0 -70
|
@@ -7,9 +7,16 @@ exports.parseRemoveLiquidityFromData = parseRemoveLiquidityFromData;
|
|
|
7
7
|
exports.parseLiquidityChangeFromData = parseLiquidityChangeFromData;
|
|
8
8
|
exports.parseUpdateDelegatePermissionFromData = parseUpdateDelegatePermissionFromData;
|
|
9
9
|
exports.parseWithdrawDeadLiquidityRewardFromData = parseWithdrawDeadLiquidityRewardFromData;
|
|
10
|
+
exports.parseWithdrawIneligibleRewardFromData = parseWithdrawIneligibleRewardFromData;
|
|
11
|
+
exports.parseUpdateRewardFunderFromData = parseUpdateRewardFunderFromData;
|
|
12
|
+
exports.parseUpdateRewardDurationFromData = parseUpdateRewardDurationFromData;
|
|
13
|
+
exports.parseInitializeRewardFromData = parseInitializeRewardFromData;
|
|
14
|
+
exports.parseFundRewardFromData = parseFundRewardFromData;
|
|
10
15
|
exports.parseCreateConfigFromData = parseCreateConfigFromData;
|
|
11
16
|
exports.parseCreateDynamicConfigFromData = parseCreateDynamicConfigFromData;
|
|
12
17
|
exports.parseMeteoraDammLog = parseMeteoraDammLog;
|
|
18
|
+
exports.parseClaimPositionFee = parseClaimPositionFee;
|
|
19
|
+
exports.parseClaimReward = parseClaimReward;
|
|
13
20
|
const metadata_js_1 = require("../core/metadata.js");
|
|
14
21
|
const metadata_js_2 = require("../core/metadata.js");
|
|
15
22
|
const dex_event_js_1 = require("../core/dex_event.js");
|
|
@@ -28,9 +35,16 @@ const REMOVE_LIQUIDITY = discOf([87, 46, 88, 98, 175, 96, 34, 91]);
|
|
|
28
35
|
const LIQUIDITY_CHANGE = discOf([197, 171, 78, 127, 224, 211, 87, 13]);
|
|
29
36
|
const INITIALIZE_POOL = discOf([228, 50, 246, 85, 203, 66, 134, 37]);
|
|
30
37
|
const CREATE_POSITION = discOf([156, 15, 119, 198, 29, 181, 221, 55]);
|
|
38
|
+
const CLAIM_POSITION_FEE = discOf([198, 182, 183, 52, 97, 12, 49, 56]);
|
|
39
|
+
const CLAIM_REWARD = discOf([218, 86, 147, 200, 235, 188, 215, 231]);
|
|
31
40
|
const CLOSE_POSITION = discOf([20, 145, 144, 68, 143, 142, 214, 178]);
|
|
32
41
|
const UPDATE_DELEGATE_PERMISSION = discOf([66, 188, 75, 151, 150, 232, 87, 93]);
|
|
33
42
|
const WITHDRAW_DEAD_LIQUIDITY_REWARD = discOf([228, 66, 150, 195, 42, 62, 163, 13]);
|
|
43
|
+
const WITHDRAW_INELIGIBLE_REWARD = discOf([248, 215, 184, 78, 31, 180, 179, 168]);
|
|
44
|
+
const UPDATE_REWARD_FUNDER = discOf([76, 154, 208, 13, 40, 115, 246, 146]);
|
|
45
|
+
const UPDATE_REWARD_DURATION = discOf([149, 135, 65, 231, 129, 153, 65, 57]);
|
|
46
|
+
const INITIALIZE_REWARD = discOf([129, 91, 188, 3, 246, 52, 185, 249]);
|
|
47
|
+
const FUND_REWARD = discOf([104, 233, 237, 122, 199, 191, 121, 85]);
|
|
34
48
|
const CREATE_CONFIG = discOf([131, 207, 180, 174, 180, 73, 165, 54]);
|
|
35
49
|
const CREATE_DYNAMIC_CONFIG = discOf([231, 197, 13, 164, 248, 213, 133, 152]);
|
|
36
50
|
/**
|
|
@@ -554,6 +568,155 @@ function parseWithdrawDeadLiquidityRewardFromData(data, meta) {
|
|
|
554
568
|
};
|
|
555
569
|
return { MeteoraDammV2WithdrawDeadLiquidityReward: ev };
|
|
556
570
|
}
|
|
571
|
+
function parseWithdrawIneligibleRewardFromData(data, meta) {
|
|
572
|
+
let o = 0;
|
|
573
|
+
const pool = (0, binary_js_1.readPubkey)(data, o);
|
|
574
|
+
if (!pool)
|
|
575
|
+
return null;
|
|
576
|
+
o += 32;
|
|
577
|
+
const reward_mint = (0, binary_js_1.readPubkey)(data, o);
|
|
578
|
+
if (!reward_mint)
|
|
579
|
+
return null;
|
|
580
|
+
o += 32;
|
|
581
|
+
const amount = (0, binary_js_1.readU64LE)(data, o);
|
|
582
|
+
if (amount === null)
|
|
583
|
+
return null;
|
|
584
|
+
const ev = {
|
|
585
|
+
metadata: meta,
|
|
586
|
+
pool,
|
|
587
|
+
reward_mint,
|
|
588
|
+
amount,
|
|
589
|
+
};
|
|
590
|
+
return { MeteoraDammV2WithdrawIneligibleReward: ev };
|
|
591
|
+
}
|
|
592
|
+
function parseUpdateRewardFunderFromData(data, meta) {
|
|
593
|
+
if (data.length < 97)
|
|
594
|
+
return null;
|
|
595
|
+
const pool = (0, binary_js_1.readPubkey)(data, 0);
|
|
596
|
+
if (pool === null)
|
|
597
|
+
return null;
|
|
598
|
+
const reward_index = (0, binary_js_1.readU8)(data, 32);
|
|
599
|
+
if (reward_index === null)
|
|
600
|
+
return null;
|
|
601
|
+
const old_funder = (0, binary_js_1.readPubkey)(data, 33);
|
|
602
|
+
if (old_funder === null)
|
|
603
|
+
return null;
|
|
604
|
+
const new_funder = (0, binary_js_1.readPubkey)(data, 65);
|
|
605
|
+
if (new_funder === null)
|
|
606
|
+
return null;
|
|
607
|
+
return {
|
|
608
|
+
MeteoraDammV2UpdateRewardFunder: {
|
|
609
|
+
metadata: meta,
|
|
610
|
+
pool,
|
|
611
|
+
reward_index,
|
|
612
|
+
old_funder,
|
|
613
|
+
new_funder,
|
|
614
|
+
},
|
|
615
|
+
};
|
|
616
|
+
}
|
|
617
|
+
function parseUpdateRewardDurationFromData(data, meta) {
|
|
618
|
+
if (data.length < 49)
|
|
619
|
+
return null;
|
|
620
|
+
const pool = (0, binary_js_1.readPubkey)(data, 0);
|
|
621
|
+
if (pool === null)
|
|
622
|
+
return null;
|
|
623
|
+
const reward_index = (0, binary_js_1.readU8)(data, 32);
|
|
624
|
+
if (reward_index === null)
|
|
625
|
+
return null;
|
|
626
|
+
const old_reward_duration = (0, binary_js_1.readU64LE)(data, 33);
|
|
627
|
+
if (old_reward_duration === null)
|
|
628
|
+
return null;
|
|
629
|
+
const new_reward_duration = (0, binary_js_1.readU64LE)(data, 41);
|
|
630
|
+
if (new_reward_duration === null)
|
|
631
|
+
return null;
|
|
632
|
+
return {
|
|
633
|
+
MeteoraDammV2UpdateRewardDuration: {
|
|
634
|
+
metadata: meta,
|
|
635
|
+
pool,
|
|
636
|
+
reward_index,
|
|
637
|
+
old_reward_duration,
|
|
638
|
+
new_reward_duration,
|
|
639
|
+
},
|
|
640
|
+
};
|
|
641
|
+
}
|
|
642
|
+
function parseInitializeRewardFromData(data, meta) {
|
|
643
|
+
if (data.length < 137)
|
|
644
|
+
return null;
|
|
645
|
+
const pool = (0, binary_js_1.readPubkey)(data, 0);
|
|
646
|
+
if (pool === null)
|
|
647
|
+
return null;
|
|
648
|
+
const reward_mint = (0, binary_js_1.readPubkey)(data, 32);
|
|
649
|
+
if (reward_mint === null)
|
|
650
|
+
return null;
|
|
651
|
+
const funder = (0, binary_js_1.readPubkey)(data, 64);
|
|
652
|
+
if (funder === null)
|
|
653
|
+
return null;
|
|
654
|
+
const creator = (0, binary_js_1.readPubkey)(data, 96);
|
|
655
|
+
if (creator === null)
|
|
656
|
+
return null;
|
|
657
|
+
const reward_index = (0, binary_js_1.readU8)(data, 128);
|
|
658
|
+
if (reward_index === null)
|
|
659
|
+
return null;
|
|
660
|
+
const reward_duration = (0, binary_js_1.readU64LE)(data, 129);
|
|
661
|
+
if (reward_duration === null)
|
|
662
|
+
return null;
|
|
663
|
+
return {
|
|
664
|
+
MeteoraDammV2InitializeReward: {
|
|
665
|
+
metadata: meta,
|
|
666
|
+
pool,
|
|
667
|
+
reward_mint,
|
|
668
|
+
funder,
|
|
669
|
+
creator,
|
|
670
|
+
reward_index,
|
|
671
|
+
reward_duration,
|
|
672
|
+
},
|
|
673
|
+
};
|
|
674
|
+
}
|
|
675
|
+
function parseFundRewardFromData(data, meta) {
|
|
676
|
+
if (data.length < 153)
|
|
677
|
+
return null;
|
|
678
|
+
const pool = (0, binary_js_1.readPubkey)(data, 0);
|
|
679
|
+
if (pool === null)
|
|
680
|
+
return null;
|
|
681
|
+
const funder = (0, binary_js_1.readPubkey)(data, 32);
|
|
682
|
+
if (funder === null)
|
|
683
|
+
return null;
|
|
684
|
+
const mint_reward = (0, binary_js_1.readPubkey)(data, 64);
|
|
685
|
+
if (mint_reward === null)
|
|
686
|
+
return null;
|
|
687
|
+
const reward_index = (0, binary_js_1.readU8)(data, 96);
|
|
688
|
+
if (reward_index === null)
|
|
689
|
+
return null;
|
|
690
|
+
const amount = (0, binary_js_1.readU64LE)(data, 97);
|
|
691
|
+
if (amount === null)
|
|
692
|
+
return null;
|
|
693
|
+
const transfer_fee_excluded_amount_in = (0, binary_js_1.readU64LE)(data, 105);
|
|
694
|
+
if (transfer_fee_excluded_amount_in === null)
|
|
695
|
+
return null;
|
|
696
|
+
const reward_duration_end = (0, binary_js_1.readU64LE)(data, 113);
|
|
697
|
+
if (reward_duration_end === null)
|
|
698
|
+
return null;
|
|
699
|
+
const pre_reward_rate = (0, binary_js_1.readU128LE)(data, 121);
|
|
700
|
+
if (pre_reward_rate === null)
|
|
701
|
+
return null;
|
|
702
|
+
const post_reward_rate = (0, binary_js_1.readU128LE)(data, 137);
|
|
703
|
+
if (post_reward_rate === null)
|
|
704
|
+
return null;
|
|
705
|
+
return {
|
|
706
|
+
MeteoraDammV2FundReward: {
|
|
707
|
+
metadata: meta,
|
|
708
|
+
pool,
|
|
709
|
+
funder,
|
|
710
|
+
mint_reward,
|
|
711
|
+
reward_index,
|
|
712
|
+
amount,
|
|
713
|
+
transfer_fee_excluded_amount_in,
|
|
714
|
+
reward_duration_end,
|
|
715
|
+
pre_reward_rate,
|
|
716
|
+
post_reward_rate,
|
|
717
|
+
},
|
|
718
|
+
};
|
|
719
|
+
}
|
|
557
720
|
function parseDynamicFeeParameters(data, offset) {
|
|
558
721
|
let o = offset;
|
|
559
722
|
const bin_step = (0, binary_js_1.readU16LE)(data, o);
|
|
@@ -724,6 +887,10 @@ function parseMeteoraDammLog(log, signature, slot, txIndex, blockTimeUs, grpcRec
|
|
|
724
887
|
return parseLiquidityChangeFromData(data, meta);
|
|
725
888
|
if (disc === INITIALIZE_POOL)
|
|
726
889
|
return parseInitializePoolEvent(data, meta);
|
|
890
|
+
if (disc === CLAIM_POSITION_FEE)
|
|
891
|
+
return parseClaimPositionFee(data, meta);
|
|
892
|
+
if (disc === CLAIM_REWARD)
|
|
893
|
+
return parseClaimReward(data, meta);
|
|
727
894
|
if (disc === CREATE_POSITION)
|
|
728
895
|
return parseCreatePositionEvent(data, meta);
|
|
729
896
|
if (disc === CLOSE_POSITION)
|
|
@@ -733,9 +900,53 @@ function parseMeteoraDammLog(log, signature, slot, txIndex, blockTimeUs, grpcRec
|
|
|
733
900
|
if (disc === WITHDRAW_DEAD_LIQUIDITY_REWARD) {
|
|
734
901
|
return parseWithdrawDeadLiquidityRewardFromData(data, meta);
|
|
735
902
|
}
|
|
903
|
+
if (disc === WITHDRAW_INELIGIBLE_REWARD) {
|
|
904
|
+
return parseWithdrawIneligibleRewardFromData(data, meta);
|
|
905
|
+
}
|
|
906
|
+
if (disc === UPDATE_REWARD_FUNDER) {
|
|
907
|
+
return parseUpdateRewardFunderFromData(data, meta);
|
|
908
|
+
}
|
|
909
|
+
if (disc === UPDATE_REWARD_DURATION) {
|
|
910
|
+
return parseUpdateRewardDurationFromData(data, meta);
|
|
911
|
+
}
|
|
912
|
+
if (disc === INITIALIZE_REWARD) {
|
|
913
|
+
return parseInitializeRewardFromData(data, meta);
|
|
914
|
+
}
|
|
915
|
+
if (disc === FUND_REWARD) {
|
|
916
|
+
return parseFundRewardFromData(data, meta);
|
|
917
|
+
}
|
|
736
918
|
if (disc === CREATE_CONFIG)
|
|
737
919
|
return parseCreateConfigFromData(data, meta);
|
|
738
920
|
if (disc === CREATE_DYNAMIC_CONFIG)
|
|
739
921
|
return parseCreateDynamicConfigFromData(data, meta);
|
|
740
922
|
return null;
|
|
741
923
|
}
|
|
924
|
+
function parseClaimPositionFee(data, meta) {
|
|
925
|
+
if (data.length < 112)
|
|
926
|
+
return null;
|
|
927
|
+
return {
|
|
928
|
+
MeteoraDammV2ClaimPositionFee: {
|
|
929
|
+
metadata: meta,
|
|
930
|
+
pool: (0, binary_js_1.readPubkey)(data, 0),
|
|
931
|
+
position: (0, binary_js_1.readPubkey)(data, 32),
|
|
932
|
+
owner: (0, binary_js_1.readPubkey)(data, 64),
|
|
933
|
+
fee_a_claimed: (0, binary_js_1.readU64LE)(data, 96),
|
|
934
|
+
fee_b_claimed: (0, binary_js_1.readU64LE)(data, 104),
|
|
935
|
+
},
|
|
936
|
+
};
|
|
937
|
+
}
|
|
938
|
+
function parseClaimReward(data, meta) {
|
|
939
|
+
if (data.length < 137)
|
|
940
|
+
return null;
|
|
941
|
+
return {
|
|
942
|
+
MeteoraDammV2ClaimReward: {
|
|
943
|
+
metadata: meta,
|
|
944
|
+
pool: (0, binary_js_1.readPubkey)(data, 0),
|
|
945
|
+
position: (0, binary_js_1.readPubkey)(data, 32),
|
|
946
|
+
owner: (0, binary_js_1.readPubkey)(data, 64),
|
|
947
|
+
mint_reward: (0, binary_js_1.readPubkey)(data, 96),
|
|
948
|
+
reward_index: data[128],
|
|
949
|
+
total_reward: (0, binary_js_1.readU64LE)(data, 129),
|
|
950
|
+
},
|
|
951
|
+
};
|
|
952
|
+
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { DexEvent } from "../core/dex_event.js";
|
|
2
2
|
import type { EventMetadata } from "../core/metadata.js";
|
|
3
3
|
export declare const METEORA_DBC_DISC: {
|
|
4
|
+
readonly SWAP2: bigint;
|
|
5
|
+
readonly SWAP2_TRANSFER_HOOK: bigint;
|
|
4
6
|
readonly SWAP: bigint;
|
|
5
7
|
readonly INITIALIZE_POOL: bigint;
|
|
6
8
|
readonly CURVE_COMPLETE: bigint;
|
|
@@ -9,3 +11,4 @@ export declare function parseMeteoraDbcSwapFromData(data: Uint8Array, metadata:
|
|
|
9
11
|
export declare function parseMeteoraDbcInitializePoolFromData(data: Uint8Array, metadata: EventMetadata): DexEvent | null;
|
|
10
12
|
export declare function parseMeteoraDbcCurveCompleteFromData(data: Uint8Array, metadata: EventMetadata): DexEvent | null;
|
|
11
13
|
export declare function parseMeteoraDbcFromDiscriminator(discriminator: bigint, data: Uint8Array, metadata: EventMetadata): DexEvent | null;
|
|
14
|
+
export declare function parseMeteoraDbcSwap2FromData(data: Uint8Array, metadata: EventMetadata, has_transfer_hook: boolean): DexEvent | null;
|
package/dist/logs/meteora_dbc.js
CHANGED
|
@@ -5,6 +5,7 @@ exports.parseMeteoraDbcSwapFromData = parseMeteoraDbcSwapFromData;
|
|
|
5
5
|
exports.parseMeteoraDbcInitializePoolFromData = parseMeteoraDbcInitializePoolFromData;
|
|
6
6
|
exports.parseMeteoraDbcCurveCompleteFromData = parseMeteoraDbcCurveCompleteFromData;
|
|
7
7
|
exports.parseMeteoraDbcFromDiscriminator = parseMeteoraDbcFromDiscriminator;
|
|
8
|
+
exports.parseMeteoraDbcSwap2FromData = parseMeteoraDbcSwap2FromData;
|
|
8
9
|
const binary_js_1 = require("../util/binary.js");
|
|
9
10
|
function disc(bytes) {
|
|
10
11
|
const u8 = new Uint8Array(8);
|
|
@@ -13,6 +14,8 @@ function disc(bytes) {
|
|
|
13
14
|
return new DataView(u8.buffer).getBigUint64(0, true);
|
|
14
15
|
}
|
|
15
16
|
exports.METEORA_DBC_DISC = {
|
|
17
|
+
SWAP2: disc([189, 66, 51, 168, 38, 80, 117, 153]),
|
|
18
|
+
SWAP2_TRANSFER_HOOK: disc([134, 59, 168, 120, 94, 51, 114, 231]),
|
|
16
19
|
SWAP: disc([27, 60, 21, 213, 138, 170, 187, 147]),
|
|
17
20
|
INITIALIZE_POOL: disc([228, 50, 246, 85, 203, 66, 134, 37]),
|
|
18
21
|
CURVE_COMPLETE: disc([229, 231, 86, 84, 156, 134, 75, 24]),
|
|
@@ -130,6 +133,8 @@ function parseMeteoraDbcCurveCompleteFromData(data, metadata) {
|
|
|
130
133
|
return { MeteoraDbcCurveComplete: ev };
|
|
131
134
|
}
|
|
132
135
|
function parseMeteoraDbcFromDiscriminator(discriminator, data, metadata) {
|
|
136
|
+
if (discriminator === exports.METEORA_DBC_DISC.SWAP2 || discriminator === exports.METEORA_DBC_DISC.SWAP2_TRANSFER_HOOK)
|
|
137
|
+
return parseMeteoraDbcSwap2FromData(data, metadata, discriminator === exports.METEORA_DBC_DISC.SWAP2_TRANSFER_HOOK);
|
|
133
138
|
if (discriminator === exports.METEORA_DBC_DISC.SWAP)
|
|
134
139
|
return parseMeteoraDbcSwapFromData(data, metadata);
|
|
135
140
|
if (discriminator === exports.METEORA_DBC_DISC.INITIALIZE_POOL) {
|
|
@@ -140,3 +145,21 @@ function parseMeteoraDbcFromDiscriminator(discriminator, data, metadata) {
|
|
|
140
145
|
}
|
|
141
146
|
return null;
|
|
142
147
|
}
|
|
148
|
+
function parseMeteoraDbcSwap2FromData(data, metadata, has_transfer_hook) {
|
|
149
|
+
if (data.length < 179 || data[82] > 2 || data[64] > 1 || data[65] > 1)
|
|
150
|
+
return null;
|
|
151
|
+
const swap_mode = data[82];
|
|
152
|
+
const u64 = (offset) => (0, binary_js_1.readU64LE)(data, offset);
|
|
153
|
+
const amount_0 = u64(66), amount_1 = u64(74), included_fee_input_amount = u64(83);
|
|
154
|
+
return { MeteoraDbcSwap: {
|
|
155
|
+
metadata, pool: (0, binary_js_1.readPubkey)(data, 0), config: (0, binary_js_1.readPubkey)(data, 32),
|
|
156
|
+
trade_direction: data[64], has_referral: Boolean(data[65]), event_version: 2,
|
|
157
|
+
swap_mode, amount_0, amount_1, has_transfer_hook,
|
|
158
|
+
amount_in: included_fee_input_amount, minimum_amount_out: swap_mode === 2 ? 0n : amount_1,
|
|
159
|
+
maximum_amount_in: swap_mode === 2 ? amount_1 : 0n,
|
|
160
|
+
included_fee_input_amount, actual_input_amount: u64(91), amount_left: u64(99),
|
|
161
|
+
output_amount: u64(107), next_sqrt_price: (0, binary_js_1.readU128LE)(data, 115),
|
|
162
|
+
trading_fee: u64(131), protocol_fee: u64(139), referral_fee: u64(147),
|
|
163
|
+
quote_reserve_amount: u64(155), migration_threshold: u64(163), current_timestamp: u64(171),
|
|
164
|
+
} };
|
|
165
|
+
}
|
|
@@ -92,7 +92,7 @@ function parseDlmmEventFromData(discriminator, data, metadata) {
|
|
|
92
92
|
return { MeteoraDlmmSwap: ev };
|
|
93
93
|
}
|
|
94
94
|
if (discriminator === DLMM.SWAP2) {
|
|
95
|
-
if (data.length < 147)
|
|
95
|
+
if (data.length < 147 || data[72] > 1 || data[145] > 1 || data[146] > 1)
|
|
96
96
|
return null;
|
|
97
97
|
let o = 0;
|
|
98
98
|
const pool = (0, binary_js_1.readPubkey)(data, o);
|
|
@@ -109,17 +109,24 @@ function parseDlmmEventFromData(discriminator, data, metadata) {
|
|
|
109
109
|
o += 16;
|
|
110
110
|
const amount_in = bn64((0, binary_js_1.readU64LE)(data, o));
|
|
111
111
|
o += 8;
|
|
112
|
-
|
|
112
|
+
const amount_left = bn64((0, binary_js_1.readU64LE)(data, o));
|
|
113
|
+
o += 8;
|
|
113
114
|
const amount_out = bn64((0, binary_js_1.readU64LE)(data, o));
|
|
114
115
|
o += 8;
|
|
115
|
-
const
|
|
116
|
+
const mm_fee = bn64((0, binary_js_1.readU64LE)(data, o));
|
|
116
117
|
o += 8;
|
|
117
118
|
const protocol_fee = bn64((0, binary_js_1.readU64LE)(data, o));
|
|
118
119
|
o += 8;
|
|
119
|
-
|
|
120
|
+
const limit_order_fee = bn64((0, binary_js_1.readU64LE)(data, o));
|
|
121
|
+
o += 8;
|
|
120
122
|
const host_fee = bn64((0, binary_js_1.readU64LE)(data, o));
|
|
123
|
+
const fee = mm_fee + protocol_fee + limit_order_fee;
|
|
124
|
+
if (fee > 0xffffffffffffffffn)
|
|
125
|
+
return null;
|
|
121
126
|
const ev = {
|
|
122
127
|
metadata,
|
|
128
|
+
event_version: 2, amount_left, mm_fee, limit_order_fee,
|
|
129
|
+
fees_on_input: data[145] !== 0, fees_on_token_x: data[146] !== 0,
|
|
123
130
|
token_x_mint: (0, dex_event_js_1.defaultPubkey)(),
|
|
124
131
|
token_y_mint: (0, dex_event_js_1.defaultPubkey)(),
|
|
125
132
|
user_token_in: (0, dex_event_js_1.defaultPubkey)(),
|
|
@@ -306,6 +313,11 @@ function parseDlmmEventFromData(discriminator, data, metadata) {
|
|
|
306
313
|
const ev = { metadata, pool, position, owner };
|
|
307
314
|
return { MeteoraDlmmClosePosition: ev };
|
|
308
315
|
}
|
|
316
|
+
if (discriminator === disc([27, 143, 244, 33, 80, 43, 110, 146])) {
|
|
317
|
+
if (data.length < 116)
|
|
318
|
+
return null;
|
|
319
|
+
return { MeteoraDlmmClaimReward: { metadata, pool: (0, binary_js_1.readPubkey)(data, 0), position: (0, binary_js_1.readPubkey)(data, 32), owner: (0, binary_js_1.readPubkey)(data, 64), reward_index: (0, binary_js_1.readU64LE)(data, 96), total_reward: (0, binary_js_1.readU64LE)(data, 104), active_bin_id: new DataView(data.buffer, data.byteOffset, data.byteLength).getInt32(112, true) } };
|
|
320
|
+
}
|
|
309
321
|
if (discriminator === DLMM.CLAIM_FEE || discriminator === DLMM.CLAIM_FEE2 || discriminator === DLMM.LEGACY_CLAIM_FEE) {
|
|
310
322
|
const requiredLength = discriminator === DLMM.CLAIM_FEE2 ? 116 : 112;
|
|
311
323
|
if (data.length < requiredLength)
|
|
@@ -8,6 +8,7 @@ exports.parseLogUnified = parseLogUnified;
|
|
|
8
8
|
exports.parseLogOptimizedWithProgramId = parseLogOptimizedWithProgramId;
|
|
9
9
|
exports.parseInvokeInfo = parseInvokeInfo;
|
|
10
10
|
exports.parseProgramCompleteInfo = parseProgramCompleteInfo;
|
|
11
|
+
const pump_upgrade_js_1 = require("./pump_upgrade.js");
|
|
11
12
|
const metadata_js_1 = require("../core/metadata.js");
|
|
12
13
|
const program_data_js_1 = require("./program_data.js");
|
|
13
14
|
const clock_js_1 = require("../core/clock.js");
|
|
@@ -37,9 +38,15 @@ const DLMM_DISC = {
|
|
|
37
38
|
CREATE_POSITION: (0, program_log_discriminators_js_1.u64leDiscriminator)([144, 142, 252, 84, 157, 53, 37, 121]),
|
|
38
39
|
CLOSE_POSITION: (0, program_log_discriminators_js_1.u64leDiscriminator)([255, 196, 16, 107, 28, 202, 53, 128]),
|
|
39
40
|
CLAIM_FEE: (0, program_log_discriminators_js_1.u64leDiscriminator)([75, 122, 154, 48, 140, 74, 123, 163]),
|
|
41
|
+
CLAIM_REWARD2: (0, program_log_discriminators_js_1.u64leDiscriminator)([27, 143, 244, 33, 80, 43, 110, 146]),
|
|
40
42
|
CLAIM_FEE2: (0, program_log_discriminators_js_1.u64leDiscriminator)([232, 171, 242, 97, 58, 77, 35, 45]),
|
|
41
43
|
};
|
|
42
44
|
function discriminatorToEventType(disc) {
|
|
45
|
+
if (disc === DLMM_DISC.CLAIM_REWARD2)
|
|
46
|
+
return "MeteoraDlmmClaimReward";
|
|
47
|
+
const upgrade = (0, pump_upgrade_js_1.pumpUpgradeEventType)(disc);
|
|
48
|
+
if (upgrade)
|
|
49
|
+
return upgrade;
|
|
43
50
|
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.PUMPFUN_CREATE)
|
|
44
51
|
return "PumpFunCreate";
|
|
45
52
|
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.PUMPFUN_TRADE)
|
|
@@ -162,6 +169,10 @@ function discriminatorToEventType(disc) {
|
|
|
162
169
|
return "MeteoraDammV2InitializePool";
|
|
163
170
|
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_CREATE_POSITION)
|
|
164
171
|
return "MeteoraDammV2CreatePosition";
|
|
172
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_CLAIM_POSITION_FEE)
|
|
173
|
+
return "MeteoraDammV2ClaimPositionFee";
|
|
174
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_CLAIM_REWARD)
|
|
175
|
+
return "MeteoraDammV2ClaimReward";
|
|
165
176
|
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_CLOSE_POSITION)
|
|
166
177
|
return "MeteoraDammV2ClosePosition";
|
|
167
178
|
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_UPDATE_DELEGATE_PERMISSION) {
|
|
@@ -170,6 +181,21 @@ function discriminatorToEventType(disc) {
|
|
|
170
181
|
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_WITHDRAW_DEAD_LIQUIDITY_REWARD) {
|
|
171
182
|
return "MeteoraDammV2WithdrawDeadLiquidityReward";
|
|
172
183
|
}
|
|
184
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_WITHDRAW_INELIGIBLE_REWARD) {
|
|
185
|
+
return "MeteoraDammV2WithdrawIneligibleReward";
|
|
186
|
+
}
|
|
187
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_UPDATE_REWARD_FUNDER) {
|
|
188
|
+
return "MeteoraDammV2UpdateRewardFunder";
|
|
189
|
+
}
|
|
190
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_UPDATE_REWARD_DURATION) {
|
|
191
|
+
return "MeteoraDammV2UpdateRewardDuration";
|
|
192
|
+
}
|
|
193
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_INITIALIZE_REWARD) {
|
|
194
|
+
return "MeteoraDammV2InitializeReward";
|
|
195
|
+
}
|
|
196
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_FUND_REWARD) {
|
|
197
|
+
return "MeteoraDammV2FundReward";
|
|
198
|
+
}
|
|
173
199
|
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_CREATE_CONFIG)
|
|
174
200
|
return "MeteoraDammV2CreateConfig";
|
|
175
201
|
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_CREATE_DYNAMIC_CONFIG)
|
|
@@ -177,6 +203,9 @@ function discriminatorToEventType(disc) {
|
|
|
177
203
|
return null;
|
|
178
204
|
}
|
|
179
205
|
function programScopedDiscriminatorToEventType(programId, disc) {
|
|
206
|
+
const upgrade = (0, pump_upgrade_js_1.pumpUpgradeEventType)(disc, programId);
|
|
207
|
+
if (upgrade)
|
|
208
|
+
return upgrade;
|
|
180
209
|
if (programId === program_ids_js_1.PUMPFUN_PROGRAM_ID) {
|
|
181
210
|
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.PUMPFUN_CREATE)
|
|
182
211
|
return "PumpFunCreate";
|
|
@@ -326,6 +355,10 @@ function programScopedDiscriminatorToEventType(programId, disc) {
|
|
|
326
355
|
return "MeteoraDammV2InitializePool";
|
|
327
356
|
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_CREATE_POSITION)
|
|
328
357
|
return "MeteoraDammV2CreatePosition";
|
|
358
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_CLAIM_POSITION_FEE)
|
|
359
|
+
return "MeteoraDammV2ClaimPositionFee";
|
|
360
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_CLAIM_REWARD)
|
|
361
|
+
return "MeteoraDammV2ClaimReward";
|
|
329
362
|
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_CLOSE_POSITION)
|
|
330
363
|
return "MeteoraDammV2ClosePosition";
|
|
331
364
|
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_UPDATE_DELEGATE_PERMISSION) {
|
|
@@ -334,6 +367,21 @@ function programScopedDiscriminatorToEventType(programId, disc) {
|
|
|
334
367
|
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_WITHDRAW_DEAD_LIQUIDITY_REWARD) {
|
|
335
368
|
return "MeteoraDammV2WithdrawDeadLiquidityReward";
|
|
336
369
|
}
|
|
370
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_WITHDRAW_INELIGIBLE_REWARD) {
|
|
371
|
+
return "MeteoraDammV2WithdrawIneligibleReward";
|
|
372
|
+
}
|
|
373
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_UPDATE_REWARD_FUNDER) {
|
|
374
|
+
return "MeteoraDammV2UpdateRewardFunder";
|
|
375
|
+
}
|
|
376
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_UPDATE_REWARD_DURATION) {
|
|
377
|
+
return "MeteoraDammV2UpdateRewardDuration";
|
|
378
|
+
}
|
|
379
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_INITIALIZE_REWARD) {
|
|
380
|
+
return "MeteoraDammV2InitializeReward";
|
|
381
|
+
}
|
|
382
|
+
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_FUND_REWARD) {
|
|
383
|
+
return "MeteoraDammV2FundReward";
|
|
384
|
+
}
|
|
337
385
|
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_CREATE_CONFIG)
|
|
338
386
|
return "MeteoraDammV2CreateConfig";
|
|
339
387
|
if (disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_CREATE_DYNAMIC_CONFIG)
|
|
@@ -341,7 +389,7 @@ function programScopedDiscriminatorToEventType(programId, disc) {
|
|
|
341
389
|
return null;
|
|
342
390
|
}
|
|
343
391
|
if (programId === program_ids_js_1.METEORA_DBC_PROGRAM_ID) {
|
|
344
|
-
if (disc === meteora_dbc_js_1.METEORA_DBC_DISC.SWAP)
|
|
392
|
+
if (disc === meteora_dbc_js_1.METEORA_DBC_DISC.SWAP || disc === meteora_dbc_js_1.METEORA_DBC_DISC.SWAP2 || disc === meteora_dbc_js_1.METEORA_DBC_DISC.SWAP2_TRANSFER_HOOK)
|
|
345
393
|
return "MeteoraDbcSwap";
|
|
346
394
|
if (disc === meteora_dbc_js_1.METEORA_DBC_DISC.INITIALIZE_POOL)
|
|
347
395
|
return "MeteoraDbcInitializePool";
|
|
@@ -364,6 +412,8 @@ function programScopedDiscriminatorToEventType(programId, disc) {
|
|
|
364
412
|
return "MeteoraDlmmCreatePosition";
|
|
365
413
|
if (disc === DLMM_DISC.CLOSE_POSITION)
|
|
366
414
|
return "MeteoraDlmmClosePosition";
|
|
415
|
+
if (disc === DLMM_DISC.CLAIM_REWARD2)
|
|
416
|
+
return "MeteoraDlmmClaimReward";
|
|
367
417
|
if (disc === DLMM_DISC.CLAIM_FEE || disc === DLMM_DISC.CLAIM_FEE2)
|
|
368
418
|
return "MeteoraDlmmClaimFee";
|
|
369
419
|
return null;
|
|
@@ -503,6 +553,11 @@ function filterIncludesProgram(programId, filter) {
|
|
|
503
553
|
"MeteoraDammV2ClosePosition",
|
|
504
554
|
"MeteoraDammV2UpdateDelegatePermission",
|
|
505
555
|
"MeteoraDammV2WithdrawDeadLiquidityReward",
|
|
556
|
+
"MeteoraDammV2WithdrawIneligibleReward",
|
|
557
|
+
"MeteoraDammV2UpdateRewardFunder",
|
|
558
|
+
"MeteoraDammV2UpdateRewardDuration",
|
|
559
|
+
"MeteoraDammV2InitializeReward",
|
|
560
|
+
"MeteoraDammV2FundReward",
|
|
506
561
|
"MeteoraDammV2CreateConfig",
|
|
507
562
|
"MeteoraDammV2CreateDynamicConfig",
|
|
508
563
|
]);
|
|
@@ -610,15 +665,27 @@ function parseLogOptimized(log, signature, slot, txIndex, blockTimeUs, grpcRecvU
|
|
|
610
665
|
const metadata = (0, metadata_js_1.makeMetadata)(signature, slot, txIndex, blockTimeUs, grpcRecvUs, rb);
|
|
611
666
|
return (0, raydium_amm_js_1.parseRayLogSwap)(log, metadata);
|
|
612
667
|
}
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
if (
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
668
|
+
// Canonical base64 exposes eight discriminator bytes in its first twelve characters.
|
|
669
|
+
// Fall back to the original decoder for permissive/noncanonical encodings.
|
|
670
|
+
let buf = null;
|
|
671
|
+
let disc = null;
|
|
672
|
+
if (eventTypeFilter) {
|
|
673
|
+
const start = log.indexOf("Program data: ");
|
|
674
|
+
if (start < 0)
|
|
675
|
+
return null;
|
|
676
|
+
const prefix = log.slice(start + 14, start + 26);
|
|
677
|
+
if (/^[A-Za-z0-9+/]{12}$/.test(prefix)) {
|
|
678
|
+
disc = (0, binary_js_1.readDiscriminatorU64)(Buffer.from(prefix, "base64"));
|
|
679
|
+
}
|
|
680
|
+
}
|
|
681
|
+
if (disc === null) {
|
|
682
|
+
buf = (0, program_data_js_1.decodeProgramDataLine)(log);
|
|
683
|
+
if (!buf)
|
|
684
|
+
return null;
|
|
685
|
+
disc = (0, binary_js_1.readDiscriminatorU64)(buf);
|
|
686
|
+
if (disc === null)
|
|
687
|
+
return null;
|
|
688
|
+
}
|
|
622
689
|
const isUnscopedSharedDiscriminator = !programId &&
|
|
623
690
|
(disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.PUMPFUN_TRADE || disc === program_log_discriminators_js_1.PROGRAM_LOG_DISC.RAYDIUM_CPMM_SWAP_BASE_IN);
|
|
624
691
|
const et = programScopedDiscriminatorToEventType(programId, disc);
|
|
@@ -642,6 +709,15 @@ function parseLogOptimized(log, signature, slot, txIndex, blockTimeUs, grpcRecvU
|
|
|
642
709
|
else if (!filterAllowsUnscopedDiscriminator(eventTypeFilter, disc))
|
|
643
710
|
return null;
|
|
644
711
|
}
|
|
712
|
+
buf ??= (0, program_data_js_1.decodeProgramDataLine)(log);
|
|
713
|
+
if (!buf)
|
|
714
|
+
return null;
|
|
715
|
+
const data = buf.subarray(8);
|
|
716
|
+
const rb = recentBlockhash && recentBlockhash.length > 0 ? bs58_1.default.encode(recentBlockhash) : undefined;
|
|
717
|
+
const metadata = (0, metadata_js_1.makeMetadata)(signature, slot, txIndex, blockTimeUs, grpcRecvUs, rb);
|
|
718
|
+
if ((0, pump_upgrade_js_1.pumpUpgradeEventType)(disc, programId)) {
|
|
719
|
+
return applyActualEventTypeFilter((0, pump_upgrade_js_1.parsePumpUpgradeEvent)(disc, data, metadata, programId), eventTypeFilter);
|
|
720
|
+
}
|
|
645
721
|
if (programId === program_ids_js_1.RAYDIUM_LAUNCHLAB_PROGRAM_ID) {
|
|
646
722
|
const ev = (0, raydium_launchlab_js_1.parseRaydiumLaunchlabFromDiscriminator)(disc, data, metadata);
|
|
647
723
|
return applyActualEventTypeFilter(ev, eventTypeFilter);
|
|
@@ -929,9 +1005,16 @@ function parseLogOptimized(log, signature, slot, txIndex, blockTimeUs, grpcRecvU
|
|
|
929
1005
|
case program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_LIQUIDITY_CHANGE:
|
|
930
1006
|
case program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_INITIALIZE_POOL:
|
|
931
1007
|
case program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_CREATE_POSITION:
|
|
1008
|
+
case program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_CLAIM_POSITION_FEE:
|
|
1009
|
+
case program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_CLAIM_REWARD:
|
|
932
1010
|
case program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_CLOSE_POSITION:
|
|
933
1011
|
case program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_UPDATE_DELEGATE_PERMISSION:
|
|
934
1012
|
case program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_WITHDRAW_DEAD_LIQUIDITY_REWARD:
|
|
1013
|
+
case program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_WITHDRAW_INELIGIBLE_REWARD:
|
|
1014
|
+
case program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_UPDATE_REWARD_FUNDER:
|
|
1015
|
+
case program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_UPDATE_REWARD_DURATION:
|
|
1016
|
+
case program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_INITIALIZE_REWARD:
|
|
1017
|
+
case program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_FUND_REWARD:
|
|
935
1018
|
case program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_CREATE_CONFIG:
|
|
936
1019
|
case program_log_discriminators_js_1.PROGRAM_LOG_DISC.METEORA_DAMM_CREATE_DYNAMIC_CONFIG:
|
|
937
1020
|
return applyActualEventTypeFilter((0, meteora_damm_js_1.parseMeteoraDammLog)(log, signature, slot, txIndex, blockTimeUs, grpcRecvUs), eventTypeFilter);
|
|
@@ -15,6 +15,10 @@ export declare const PUMPSWAP_DISC: {
|
|
|
15
15
|
* `parseLogOptimized` 使用的全部分支 discriminator(含 PumpSwap 引用上表)。
|
|
16
16
|
*/
|
|
17
17
|
export declare const PROGRAM_LOG_DISC: {
|
|
18
|
+
readonly PUMPSWAP_SWEEP_POOL_FEE: bigint;
|
|
19
|
+
readonly PUMPFUN_COMPLETE: bigint;
|
|
20
|
+
readonly PUMPFUN_SWEEP_BONDING_CURVE_FEE: bigint;
|
|
21
|
+
readonly PUMPFUN_POST_COMPLETE_BUY: bigint;
|
|
18
22
|
readonly PUMPFUN_CREATE: bigint;
|
|
19
23
|
readonly PUMPFUN_TRADE: bigint;
|
|
20
24
|
readonly PUMPFUN_MIGRATE: bigint;
|
|
@@ -78,8 +82,15 @@ export declare const PROGRAM_LOG_DISC: {
|
|
|
78
82
|
readonly METEORA_DAMM_INITIALIZE_POOL: bigint;
|
|
79
83
|
readonly METEORA_DAMM_CREATE_POSITION: bigint;
|
|
80
84
|
readonly METEORA_DAMM_CLOSE_POSITION: bigint;
|
|
85
|
+
readonly METEORA_DAMM_CLAIM_POSITION_FEE: bigint;
|
|
86
|
+
readonly METEORA_DAMM_CLAIM_REWARD: bigint;
|
|
81
87
|
readonly METEORA_DAMM_UPDATE_DELEGATE_PERMISSION: bigint;
|
|
82
88
|
readonly METEORA_DAMM_WITHDRAW_DEAD_LIQUIDITY_REWARD: bigint;
|
|
89
|
+
readonly METEORA_DAMM_WITHDRAW_INELIGIBLE_REWARD: bigint;
|
|
90
|
+
readonly METEORA_DAMM_UPDATE_REWARD_FUNDER: bigint;
|
|
91
|
+
readonly METEORA_DAMM_UPDATE_REWARD_DURATION: bigint;
|
|
92
|
+
readonly METEORA_DAMM_INITIALIZE_REWARD: bigint;
|
|
93
|
+
readonly METEORA_DAMM_FUND_REWARD: bigint;
|
|
83
94
|
readonly METEORA_DAMM_CREATE_CONFIG: bigint;
|
|
84
95
|
readonly METEORA_DAMM_CREATE_DYNAMIC_CONFIG: bigint;
|
|
85
96
|
};
|
|
@@ -24,6 +24,10 @@ exports.PUMPSWAP_DISC = {
|
|
|
24
24
|
* `parseLogOptimized` 使用的全部分支 discriminator(含 PumpSwap 引用上表)。
|
|
25
25
|
*/
|
|
26
26
|
exports.PROGRAM_LOG_DISC = {
|
|
27
|
+
PUMPSWAP_SWEEP_POOL_FEE: u64leDiscriminator([130, 164, 36, 97, 228, 130, 135, 165]),
|
|
28
|
+
PUMPFUN_COMPLETE: u64leDiscriminator([95, 114, 97, 156, 212, 46, 152, 8]),
|
|
29
|
+
PUMPFUN_SWEEP_BONDING_CURVE_FEE: u64leDiscriminator([116, 43, 77, 189, 17, 122, 72, 43]),
|
|
30
|
+
PUMPFUN_POST_COMPLETE_BUY: u64leDiscriminator([111, 176, 109, 139, 49, 108, 213, 251]),
|
|
27
31
|
PUMPFUN_CREATE: u64leDiscriminator([27, 114, 169, 77, 222, 235, 99, 118]),
|
|
28
32
|
PUMPFUN_TRADE: u64leDiscriminator([189, 219, 127, 211, 78, 230, 97, 238]),
|
|
29
33
|
PUMPFUN_MIGRATE: u64leDiscriminator([189, 233, 93, 185, 92, 148, 234, 148]),
|
|
@@ -88,8 +92,15 @@ exports.PROGRAM_LOG_DISC = {
|
|
|
88
92
|
METEORA_DAMM_INITIALIZE_POOL: u64leDiscriminator([228, 50, 246, 85, 203, 66, 134, 37]),
|
|
89
93
|
METEORA_DAMM_CREATE_POSITION: u64leDiscriminator([156, 15, 119, 198, 29, 181, 221, 55]),
|
|
90
94
|
METEORA_DAMM_CLOSE_POSITION: u64leDiscriminator([20, 145, 144, 68, 143, 142, 214, 178]),
|
|
95
|
+
METEORA_DAMM_CLAIM_POSITION_FEE: u64leDiscriminator([198, 182, 183, 52, 97, 12, 49, 56]),
|
|
96
|
+
METEORA_DAMM_CLAIM_REWARD: u64leDiscriminator([218, 86, 147, 200, 235, 188, 215, 231]),
|
|
91
97
|
METEORA_DAMM_UPDATE_DELEGATE_PERMISSION: u64leDiscriminator([66, 188, 75, 151, 150, 232, 87, 93]),
|
|
92
98
|
METEORA_DAMM_WITHDRAW_DEAD_LIQUIDITY_REWARD: u64leDiscriminator([228, 66, 150, 195, 42, 62, 163, 13]),
|
|
99
|
+
METEORA_DAMM_WITHDRAW_INELIGIBLE_REWARD: u64leDiscriminator([248, 215, 184, 78, 31, 180, 179, 168]),
|
|
100
|
+
METEORA_DAMM_UPDATE_REWARD_FUNDER: u64leDiscriminator([76, 154, 208, 13, 40, 115, 246, 146]),
|
|
101
|
+
METEORA_DAMM_UPDATE_REWARD_DURATION: u64leDiscriminator([149, 135, 65, 231, 129, 153, 65, 57]),
|
|
102
|
+
METEORA_DAMM_INITIALIZE_REWARD: u64leDiscriminator([129, 91, 188, 3, 246, 52, 185, 249]),
|
|
103
|
+
METEORA_DAMM_FUND_REWARD: u64leDiscriminator([104, 233, 237, 122, 199, 191, 121, 85]),
|
|
93
104
|
METEORA_DAMM_CREATE_CONFIG: u64leDiscriminator([131, 207, 180, 174, 180, 73, 165, 54]),
|
|
94
105
|
METEORA_DAMM_CREATE_DYNAMIC_CONFIG: u64leDiscriminator([231, 197, 13, 164, 248, 213, 133, 152]),
|
|
95
106
|
};
|
package/dist/logs/pump.js
CHANGED
|
@@ -173,7 +173,9 @@ function parseTradeFromData(data, metadata, isCreatedBuy) {
|
|
|
173
173
|
const real_quote_reserves = readOptionalU64(data, tail);
|
|
174
174
|
const holder_rewards_bps = readOptionalU64(data, tail);
|
|
175
175
|
const holder_rewards = readOptionalU64(data, tail);
|
|
176
|
+
const creator_fee_unclaimed = readOptionalU64(data, tail);
|
|
176
177
|
const trade = {
|
|
178
|
+
creator_fee_unclaimed,
|
|
177
179
|
metadata,
|
|
178
180
|
mint,
|
|
179
181
|
sol_amount,
|
|
@@ -216,14 +218,14 @@ function parseTradeFromData(data, metadata, isCreatedBuy) {
|
|
|
216
218
|
token_program: (0, dex_event_js_1.defaultPubkey)(),
|
|
217
219
|
creator_vault: (0, dex_event_js_1.defaultPubkey)(),
|
|
218
220
|
};
|
|
219
|
-
if (ix_name === "buy")
|
|
221
|
+
if (ix_name === "buy" || ix_name === "buy_v3")
|
|
220
222
|
return { PumpFunBuy: trade };
|
|
221
|
-
if (ix_name === "sell")
|
|
223
|
+
if (ix_name === "sell" || ix_name === "sell_v3")
|
|
222
224
|
return { PumpFunSell: trade };
|
|
223
225
|
if (ix_name === "buy_exact_sol_in") {
|
|
224
226
|
return { PumpFunBuyExactSolIn: trade };
|
|
225
227
|
}
|
|
226
|
-
if (ix_name === "buy_exact_quote_in")
|
|
228
|
+
if (ix_name === "buy_exact_quote_in" || ix_name === "buy_exact_quote_in_v3")
|
|
227
229
|
return { PumpFunBuy: trade };
|
|
228
230
|
return { PumpFunTrade: trade };
|
|
229
231
|
}
|
|
@@ -316,6 +318,7 @@ function parseCreateFromData(data, metadata) {
|
|
|
316
318
|
virtual_quote_reserves,
|
|
317
319
|
creator_fee_bps,
|
|
318
320
|
is_holder_reward,
|
|
321
|
+
depth: data[o + 1] ?? 0,
|
|
319
322
|
ix_name: "create",
|
|
320
323
|
};
|
|
321
324
|
return { PumpFunCreate: ev };
|