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.
Files changed (190) hide show
  1. package/.env.example +24 -0
  2. package/LICENSE +21 -0
  3. package/README.md +236 -0
  4. package/README_CN.md +236 -0
  5. package/dist/accounts/mod.d.ts +15 -0
  6. package/dist/accounts/mod.js +173 -0
  7. package/dist/accounts/nonce.d.ts +5 -0
  8. package/dist/accounts/nonce.js +32 -0
  9. package/dist/accounts/pumpfun.d.ts +16 -0
  10. package/dist/accounts/pumpfun.js +538 -0
  11. package/dist/accounts/pumpswap.d.ts +8 -0
  12. package/dist/accounts/pumpswap.js +192 -0
  13. package/dist/accounts/raydium_orca.d.ts +26 -0
  14. package/dist/accounts/raydium_orca.js +453 -0
  15. package/dist/accounts/rpc_wallet.d.ts +5 -0
  16. package/dist/accounts/rpc_wallet.js +18 -0
  17. package/dist/accounts/rust_aliases.d.ts +10 -0
  18. package/dist/accounts/rust_aliases.js +21 -0
  19. package/dist/accounts/token.d.ts +5 -0
  20. package/dist/accounts/token.js +98 -0
  21. package/dist/accounts/types.d.ts +9 -0
  22. package/dist/accounts/types.js +2 -0
  23. package/dist/accounts/utils.d.ts +1 -0
  24. package/dist/accounts/utils.js +12 -0
  25. package/dist/accounts/wallet_resolve.d.ts +1 -0
  26. package/dist/accounts/wallet_resolve.js +28 -0
  27. package/dist/common/constants.d.ts +10 -0
  28. package/dist/common/constants.js +13 -0
  29. package/dist/core/account_dispatcher_rpc.d.ts +11 -0
  30. package/dist/core/account_dispatcher_rpc.js +155 -0
  31. package/dist/core/account_fill_bonk.d.ts +4 -0
  32. package/dist/core/account_fill_bonk.js +20 -0
  33. package/dist/core/account_fill_meteora.d.ts +15 -0
  34. package/dist/core/account_fill_meteora.js +27 -0
  35. package/dist/core/account_fill_orca.d.ts +5 -0
  36. package/dist/core/account_fill_orca.js +18 -0
  37. package/dist/core/account_fill_pumpfun.d.ts +7 -0
  38. package/dist/core/account_fill_pumpfun.js +167 -0
  39. package/dist/core/account_fill_pumpswap.d.ts +10 -0
  40. package/dist/core/account_fill_pumpswap.js +128 -0
  41. package/dist/core/account_fill_raydium.d.ts +20 -0
  42. package/dist/core/account_fill_raydium.js +104 -0
  43. package/dist/core/account_fill_raydium_launchlab.d.ts +4 -0
  44. package/dist/core/account_fill_raydium_launchlab.js +20 -0
  45. package/dist/core/account_pubkey_cache.d.ts +12 -0
  46. package/dist/core/account_pubkey_cache.js +26 -0
  47. package/dist/core/clock.d.ts +8 -0
  48. package/dist/core/clock.js +20 -0
  49. package/dist/core/common_filler_rpc.d.ts +6 -0
  50. package/dist/core/common_filler_rpc.js +21 -0
  51. package/dist/core/dex_event.d.ts +1704 -0
  52. package/dist/core/dex_event.js +14 -0
  53. package/dist/core/error.d.ts +43 -0
  54. package/dist/core/error.js +16 -0
  55. package/dist/core/json_utils.d.ts +8 -0
  56. package/dist/core/json_utils.js +18 -0
  57. package/dist/core/metadata.d.ts +11 -0
  58. package/dist/core/metadata.js +13 -0
  59. package/dist/core/pumpfun_fee_enrich.d.ts +6 -0
  60. package/dist/core/pumpfun_fee_enrich.js +159 -0
  61. package/dist/core/rpc_invoke_map.d.ts +23 -0
  62. package/dist/core/rpc_invoke_map.js +157 -0
  63. package/dist/core/unified_parser.d.ts +19 -0
  64. package/dist/core/unified_parser.js +50 -0
  65. package/dist/grpc/client.d.ts +83 -0
  66. package/dist/grpc/client.js +645 -0
  67. package/dist/grpc/client_stub.d.ts +5 -0
  68. package/dist/grpc/client_stub.js +5 -0
  69. package/dist/grpc/event_parser.d.ts +6 -0
  70. package/dist/grpc/event_parser.js +15 -0
  71. package/dist/grpc/geyser_connect.d.ts +30 -0
  72. package/dist/grpc/geyser_connect.js +40 -0
  73. package/dist/grpc/log_instr_dedup.d.ts +2 -0
  74. package/dist/grpc/log_instr_dedup.js +402 -0
  75. package/dist/grpc/order_buffer.d.ts +27 -0
  76. package/dist/grpc/order_buffer.js +166 -0
  77. package/dist/grpc/program_ids.d.ts +27 -0
  78. package/dist/grpc/program_ids.js +61 -0
  79. package/dist/grpc/rpc_to_grpc.d.ts +18 -0
  80. package/dist/grpc/rpc_to_grpc.js +127 -0
  81. package/dist/grpc/subscribe_builder.d.ts +13 -0
  82. package/dist/grpc/subscribe_builder.js +66 -0
  83. package/dist/grpc/transaction_meta.d.ts +29 -0
  84. package/dist/grpc/transaction_meta.js +208 -0
  85. package/dist/grpc/types.d.ts +195 -0
  86. package/dist/grpc/types.js +551 -0
  87. package/dist/grpc/yellowstone_parse.d.ts +16 -0
  88. package/dist/grpc/yellowstone_parse.js +62 -0
  89. package/dist/index.d.ts +50 -0
  90. package/dist/index.js +298 -0
  91. package/dist/instr/bonk_ix.d.ts +8 -0
  92. package/dist/instr/bonk_ix.js +131 -0
  93. package/dist/instr/inner.d.ts +4 -0
  94. package/dist/instr/inner.js +453 -0
  95. package/dist/instr/meteora_damm_ix.d.ts +8 -0
  96. package/dist/instr/meteora_damm_ix.js +601 -0
  97. package/dist/instr/meteora_dlmm_ix.d.ts +2 -0
  98. package/dist/instr/meteora_dlmm_ix.js +134 -0
  99. package/dist/instr/meteora_pools_ix.d.ts +2 -0
  100. package/dist/instr/meteora_pools_ix.js +78 -0
  101. package/dist/instr/mod.d.ts +18 -0
  102. package/dist/instr/mod.js +129 -0
  103. package/dist/instr/orca_whirlpool_ix.d.ts +8 -0
  104. package/dist/instr/orca_whirlpool_ix.js +119 -0
  105. package/dist/instr/program_ids.d.ts +4 -0
  106. package/dist/instr/program_ids.js +20 -0
  107. package/dist/instr/pump_fees_ix.d.ts +2 -0
  108. package/dist/instr/pump_fees_ix.js +168 -0
  109. package/dist/instr/pumpfun_ix.d.ts +6 -0
  110. package/dist/instr/pumpfun_ix.js +448 -0
  111. package/dist/instr/pumpswap_ix.d.ts +5 -0
  112. package/dist/instr/pumpswap_ix.js +270 -0
  113. package/dist/instr/raydium_amm_v4_ix.d.ts +6 -0
  114. package/dist/instr/raydium_amm_v4_ix.js +112 -0
  115. package/dist/instr/raydium_clmm_ix.d.ts +5 -0
  116. package/dist/instr/raydium_clmm_ix.js +184 -0
  117. package/dist/instr/raydium_cpmm_ix.d.ts +5 -0
  118. package/dist/instr/raydium_cpmm_ix.js +109 -0
  119. package/dist/instr/raydium_launchlab_ix.d.ts +8 -0
  120. package/dist/instr/raydium_launchlab_ix.js +125 -0
  121. package/dist/instr/rust_aliases.d.ts +10 -0
  122. package/dist/instr/rust_aliases.js +20 -0
  123. package/dist/instr/utils.d.ts +10 -0
  124. package/dist/instr/utils.js +35 -0
  125. package/dist/logs/discriminator_lut.d.ts +19 -0
  126. package/dist/logs/discriminator_lut.js +62 -0
  127. package/dist/logs/meteora_amm.d.ts +8 -0
  128. package/dist/logs/meteora_amm.js +113 -0
  129. package/dist/logs/meteora_damm.d.ts +5 -0
  130. package/dist/logs/meteora_damm.js +367 -0
  131. package/dist/logs/meteora_dbc.d.ts +11 -0
  132. package/dist/logs/meteora_dbc.js +142 -0
  133. package/dist/logs/meteora_dlmm.d.ts +6 -0
  134. package/dist/logs/meteora_dlmm.js +201 -0
  135. package/dist/logs/optimized_matcher.d.ts +11 -0
  136. package/dist/logs/optimized_matcher.js +941 -0
  137. package/dist/logs/orca.d.ts +6 -0
  138. package/dist/logs/orca.js +148 -0
  139. package/dist/logs/program_data.d.ts +2 -0
  140. package/dist/logs/program_data.js +20 -0
  141. package/dist/logs/program_log_discriminators.d.ts +80 -0
  142. package/dist/logs/program_log_discriminators.js +88 -0
  143. package/dist/logs/pump.d.ts +14 -0
  144. package/dist/logs/pump.js +378 -0
  145. package/dist/logs/pump_amm.d.ts +9 -0
  146. package/dist/logs/pump_amm.js +418 -0
  147. package/dist/logs/pump_fees.d.ts +23 -0
  148. package/dist/logs/pump_fees.js +364 -0
  149. package/dist/logs/raydium_amm.d.ts +9 -0
  150. package/dist/logs/raydium_amm.js +224 -0
  151. package/dist/logs/raydium_clmm.d.ts +17 -0
  152. package/dist/logs/raydium_clmm.js +624 -0
  153. package/dist/logs/raydium_cpmm.d.ts +7 -0
  154. package/dist/logs/raydium_cpmm.js +121 -0
  155. package/dist/logs/raydium_launchlab.d.ts +10 -0
  156. package/dist/logs/raydium_launchlab.js +84 -0
  157. package/dist/logs/raydium_launchpad.d.ts +12 -0
  158. package/dist/logs/raydium_launchpad.js +92 -0
  159. package/dist/logs/rust_aliases.d.ts +7 -0
  160. package/dist/logs/rust_aliases.js +16 -0
  161. package/dist/parser_alias.d.ts +3 -0
  162. package/dist/parser_alias.js +2 -0
  163. package/dist/rpc_parser.d.ts +17 -0
  164. package/dist/rpc_parser.js +39 -0
  165. package/dist/rpc_transaction.d.ts +27 -0
  166. package/dist/rpc_transaction.js +416 -0
  167. package/dist/shredstream/alt_lookup.d.ts +9 -0
  168. package/dist/shredstream/alt_lookup.js +70 -0
  169. package/dist/shredstream/client.d.ts +65 -0
  170. package/dist/shredstream/client.js +403 -0
  171. package/dist/shredstream/config.d.ts +30 -0
  172. package/dist/shredstream/config.js +34 -0
  173. package/dist/shredstream/entries_decode.d.ts +28 -0
  174. package/dist/shredstream/entries_decode.js +251 -0
  175. package/dist/shredstream/index.d.ts +17 -0
  176. package/dist/shredstream/index.js +33 -0
  177. package/dist/shredstream/instruction_parse.d.ts +34 -0
  178. package/dist/shredstream/instruction_parse.js +79 -0
  179. package/dist/shredstream/proto_types.d.ts +9 -0
  180. package/dist/shredstream/proto_types.js +2 -0
  181. package/dist/shredstream/shredstream.proto +15 -0
  182. package/dist/shredstream/wire_to_shred_tx.d.ts +2 -0
  183. package/dist/shredstream/wire_to_shred_tx.js +59 -0
  184. package/dist/util/binary.d.ts +14 -0
  185. package/dist/util/binary.js +82 -0
  186. package/dist/util/market.d.ts +18 -0
  187. package/dist/util/market.js +54 -0
  188. package/dist/warmup.d.ts +3 -0
  189. package/dist/warmup.js +23 -0
  190. package/package.json +61 -0
@@ -0,0 +1,364 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.readFeesAt = readFeesAt;
4
+ exports.readShareholdersVec = readShareholdersVec;
5
+ exports.readFeeTiersVec = readFeeTiersVec;
6
+ exports.parseCreateFeeSharingConfigFromData = parseCreateFeeSharingConfigFromData;
7
+ exports.parseInitializeFeeConfigFromData = parseInitializeFeeConfigFromData;
8
+ exports.parseResetFeeSharingConfigFromData = parseResetFeeSharingConfigFromData;
9
+ exports.parseRevokeFeeSharingAuthorityFromData = parseRevokeFeeSharingAuthorityFromData;
10
+ exports.parseTransferFeeSharingAuthorityFromData = parseTransferFeeSharingAuthorityFromData;
11
+ exports.parseUpdateAdminFromData = parseUpdateAdminFromData;
12
+ exports.parseUpdateFeeConfigFromData = parseUpdateFeeConfigFromData;
13
+ exports.parseUpdateFeeSharesFromData = parseUpdateFeeSharesFromData;
14
+ exports.parseUpsertFeeTiersFromData = parseUpsertFeeTiersFromData;
15
+ const dex_event_js_1 = require("../core/dex_event.js");
16
+ const binary_js_1 = require("../util/binary.js");
17
+ const MAX_SHAREHOLDERS = 64;
18
+ const MAX_FEE_TIERS = 64;
19
+ function bnI64(v) {
20
+ return v ?? 0n;
21
+ }
22
+ function bnU64(v) {
23
+ return v ?? 0n;
24
+ }
25
+ function readFeesAt(data, offset) {
26
+ if (offset + 24 > data.length)
27
+ return null;
28
+ const lp_fee_bps = bnU64((0, binary_js_1.readU64LE)(data, offset));
29
+ offset += 8;
30
+ const protocol_fee_bps = bnU64((0, binary_js_1.readU64LE)(data, offset));
31
+ offset += 8;
32
+ const creator_fee_bps = bnU64((0, binary_js_1.readU64LE)(data, offset));
33
+ offset += 8;
34
+ return { value: { lp_fee_bps, protocol_fee_bps, creator_fee_bps }, next: offset };
35
+ }
36
+ function readShareholdersVec(data, offset) {
37
+ const n = (0, binary_js_1.readU32LE)(data, offset);
38
+ if (n === null || n > MAX_SHAREHOLDERS)
39
+ return null;
40
+ offset += 4;
41
+ const value = [];
42
+ for (let i = 0; i < n; i++) {
43
+ const address = (0, binary_js_1.readPubkey)(data, offset);
44
+ if (!address)
45
+ return null;
46
+ offset += 32;
47
+ const share_bps = (0, binary_js_1.readU16LE)(data, offset);
48
+ if (share_bps === null)
49
+ return null;
50
+ offset += 2;
51
+ value.push({ address, share_bps });
52
+ }
53
+ return { value, next: offset };
54
+ }
55
+ function readFeeTiersVec(data, offset) {
56
+ const n = (0, binary_js_1.readU32LE)(data, offset);
57
+ if (n === null || n > MAX_FEE_TIERS)
58
+ return null;
59
+ offset += 4;
60
+ const value = [];
61
+ for (let i = 0; i < n; i++) {
62
+ const market_cap_lamports_threshold = (0, binary_js_1.readU128LE)(data, offset);
63
+ if (market_cap_lamports_threshold === null)
64
+ return null;
65
+ offset += 16;
66
+ const fees = readFeesAt(data, offset);
67
+ if (!fees)
68
+ return null;
69
+ offset = fees.next;
70
+ value.push({ market_cap_lamports_threshold, fees: fees.value });
71
+ }
72
+ return { value, next: offset };
73
+ }
74
+ function readOptionPubkeyAt(data, offset) {
75
+ const tag = (0, binary_js_1.readU8)(data, offset);
76
+ if (tag === null)
77
+ return null;
78
+ offset += 1;
79
+ if (tag === 0)
80
+ return { value: undefined, next: offset };
81
+ if (tag !== 1)
82
+ return null;
83
+ const value = (0, binary_js_1.readPubkey)(data, offset);
84
+ if (!value)
85
+ return null;
86
+ return { value, next: offset + 32 };
87
+ }
88
+ function readConfigStatusAt(data, offset) {
89
+ const tag = (0, binary_js_1.readU8)(data, offset);
90
+ if (tag === null)
91
+ return null;
92
+ if (tag === 0)
93
+ return { value: "Paused", next: offset + 1 };
94
+ if (tag === 1)
95
+ return { value: "Active", next: offset + 1 };
96
+ return null;
97
+ }
98
+ function parseCreateFeeSharingConfigFromData(data, metadata) {
99
+ let o = 0;
100
+ const timestamp = bnI64((0, binary_js_1.readI64LE)(data, o));
101
+ if (o + 8 > data.length)
102
+ return null;
103
+ o += 8;
104
+ const mint = (0, binary_js_1.readPubkey)(data, o);
105
+ if (!mint)
106
+ return null;
107
+ o += 32;
108
+ const bonding_curve = (0, binary_js_1.readPubkey)(data, o);
109
+ if (!bonding_curve)
110
+ return null;
111
+ o += 32;
112
+ const pool = readOptionPubkeyAt(data, o);
113
+ if (!pool)
114
+ return null;
115
+ o = pool.next;
116
+ const sharing_config = (0, binary_js_1.readPubkey)(data, o);
117
+ if (!sharing_config)
118
+ return null;
119
+ o += 32;
120
+ const admin = (0, binary_js_1.readPubkey)(data, o);
121
+ if (!admin)
122
+ return null;
123
+ o += 32;
124
+ const initial_shareholders = readShareholdersVec(data, o);
125
+ if (!initial_shareholders)
126
+ return null;
127
+ o = initial_shareholders.next;
128
+ const status = readConfigStatusAt(data, o);
129
+ if (!status)
130
+ return null;
131
+ o = status.next;
132
+ if (o !== data.length)
133
+ return null;
134
+ return {
135
+ PumpFeesCreateFeeSharingConfig: {
136
+ metadata,
137
+ timestamp,
138
+ mint,
139
+ bonding_curve,
140
+ pool: pool.value,
141
+ sharing_config,
142
+ admin,
143
+ initial_shareholders: initial_shareholders.value,
144
+ status: status.value,
145
+ },
146
+ };
147
+ }
148
+ function parseInitializeFeeConfigFromData(data, metadata) {
149
+ if (data.length !== 8 + 32 + 32)
150
+ return null;
151
+ let o = 0;
152
+ const timestamp = bnI64((0, binary_js_1.readI64LE)(data, o));
153
+ o += 8;
154
+ const admin = (0, binary_js_1.readPubkey)(data, o);
155
+ if (!admin)
156
+ return null;
157
+ o += 32;
158
+ const fee_config = (0, binary_js_1.readPubkey)(data, o);
159
+ if (!fee_config)
160
+ return null;
161
+ return { PumpFeesInitializeFeeConfig: { metadata, timestamp, admin, fee_config } };
162
+ }
163
+ function parseResetFeeSharingConfigFromData(data, metadata) {
164
+ let o = 0;
165
+ const timestamp = bnI64((0, binary_js_1.readI64LE)(data, o));
166
+ if (o + 8 > data.length)
167
+ return null;
168
+ o += 8;
169
+ const mint = (0, binary_js_1.readPubkey)(data, o);
170
+ if (!mint)
171
+ return null;
172
+ o += 32;
173
+ const sharing_config = (0, binary_js_1.readPubkey)(data, o);
174
+ if (!sharing_config)
175
+ return null;
176
+ o += 32;
177
+ const old_admin = (0, binary_js_1.readPubkey)(data, o);
178
+ if (!old_admin)
179
+ return null;
180
+ o += 32;
181
+ const old_shareholders = readShareholdersVec(data, o);
182
+ if (!old_shareholders)
183
+ return null;
184
+ o = old_shareholders.next;
185
+ const new_admin = (0, binary_js_1.readPubkey)(data, o);
186
+ if (!new_admin)
187
+ return null;
188
+ o += 32;
189
+ const new_shareholders = readShareholdersVec(data, o);
190
+ if (!new_shareholders)
191
+ return null;
192
+ o = new_shareholders.next;
193
+ if (o !== data.length)
194
+ return null;
195
+ return {
196
+ PumpFeesResetFeeSharingConfig: {
197
+ metadata,
198
+ timestamp,
199
+ mint,
200
+ sharing_config,
201
+ old_admin,
202
+ old_shareholders: old_shareholders.value,
203
+ new_admin,
204
+ new_shareholders: new_shareholders.value,
205
+ },
206
+ };
207
+ }
208
+ function parseRevokeFeeSharingAuthorityFromData(data, metadata) {
209
+ if (data.length !== 8 + 32 + 32 + 32)
210
+ return null;
211
+ let o = 0;
212
+ const timestamp = bnI64((0, binary_js_1.readI64LE)(data, o));
213
+ o += 8;
214
+ const mint = (0, binary_js_1.readPubkey)(data, o);
215
+ if (!mint)
216
+ return null;
217
+ o += 32;
218
+ const sharing_config = (0, binary_js_1.readPubkey)(data, o);
219
+ if (!sharing_config)
220
+ return null;
221
+ o += 32;
222
+ const admin = (0, binary_js_1.readPubkey)(data, o);
223
+ if (!admin)
224
+ return null;
225
+ return { PumpFeesRevokeFeeSharingAuthority: { metadata, timestamp, mint, sharing_config, admin } };
226
+ }
227
+ function parseTransferFeeSharingAuthorityFromData(data, metadata) {
228
+ if (data.length !== 8 + 32 + 32 + 32 + 32)
229
+ return null;
230
+ let o = 0;
231
+ const timestamp = bnI64((0, binary_js_1.readI64LE)(data, o));
232
+ o += 8;
233
+ const mint = (0, binary_js_1.readPubkey)(data, o);
234
+ if (!mint)
235
+ return null;
236
+ o += 32;
237
+ const sharing_config = (0, binary_js_1.readPubkey)(data, o);
238
+ if (!sharing_config)
239
+ return null;
240
+ o += 32;
241
+ const old_admin = (0, binary_js_1.readPubkey)(data, o);
242
+ if (!old_admin)
243
+ return null;
244
+ o += 32;
245
+ const new_admin = (0, binary_js_1.readPubkey)(data, o);
246
+ if (!new_admin)
247
+ return null;
248
+ return {
249
+ PumpFeesTransferFeeSharingAuthority: { metadata, timestamp, mint, sharing_config, old_admin, new_admin },
250
+ };
251
+ }
252
+ function parseUpdateAdminFromData(data, metadata) {
253
+ if (data.length !== 8 + 32 + 32)
254
+ return null;
255
+ let o = 0;
256
+ const timestamp = bnI64((0, binary_js_1.readI64LE)(data, o));
257
+ o += 8;
258
+ const old_admin = (0, binary_js_1.readPubkey)(data, o);
259
+ if (!old_admin)
260
+ return null;
261
+ o += 32;
262
+ const new_admin = (0, binary_js_1.readPubkey)(data, o);
263
+ if (!new_admin)
264
+ return null;
265
+ return { PumpFeesUpdateAdmin: { metadata, timestamp, old_admin, new_admin } };
266
+ }
267
+ function parseUpdateFeeConfigFromData(data, metadata) {
268
+ let o = 0;
269
+ const timestamp = bnI64((0, binary_js_1.readI64LE)(data, o));
270
+ if (o + 8 > data.length)
271
+ return null;
272
+ o += 8;
273
+ const admin = (0, binary_js_1.readPubkey)(data, o);
274
+ if (!admin)
275
+ return null;
276
+ o += 32;
277
+ const fee_config = (0, binary_js_1.readPubkey)(data, o);
278
+ if (!fee_config)
279
+ return null;
280
+ o += 32;
281
+ const fee_tiers = readFeeTiersVec(data, o);
282
+ if (!fee_tiers)
283
+ return null;
284
+ o = fee_tiers.next;
285
+ const flat_fees = readFeesAt(data, o);
286
+ if (!flat_fees)
287
+ return null;
288
+ o = flat_fees.next;
289
+ if (o !== data.length)
290
+ return null;
291
+ return {
292
+ PumpFeesUpdateFeeConfig: {
293
+ metadata,
294
+ timestamp,
295
+ admin,
296
+ fee_config,
297
+ fee_tiers: fee_tiers.value,
298
+ flat_fees: flat_fees.value,
299
+ },
300
+ };
301
+ }
302
+ function parseUpdateFeeSharesFromData(data, metadata) {
303
+ let o = 0;
304
+ const timestamp = bnI64((0, binary_js_1.readI64LE)(data, o));
305
+ if (o + 8 > data.length)
306
+ return null;
307
+ o += 8;
308
+ const mint = (0, binary_js_1.readPubkey)(data, o);
309
+ if (!mint)
310
+ return null;
311
+ o += 32;
312
+ const sharing_config = (0, binary_js_1.readPubkey)(data, o);
313
+ if (!sharing_config)
314
+ return null;
315
+ o += 32;
316
+ const admin = (0, binary_js_1.readPubkey)(data, o);
317
+ if (!admin)
318
+ return null;
319
+ o += 32;
320
+ const new_shareholders = readShareholdersVec(data, o);
321
+ if (!new_shareholders)
322
+ return null;
323
+ o = new_shareholders.next;
324
+ if (o !== data.length)
325
+ return null;
326
+ return {
327
+ PumpFeesUpdateFeeShares: {
328
+ metadata,
329
+ timestamp,
330
+ mint,
331
+ sharing_config,
332
+ admin,
333
+ bonding_curve: (0, dex_event_js_1.defaultPubkey)(),
334
+ pump_creator_vault: (0, dex_event_js_1.defaultPubkey)(),
335
+ new_shareholders: new_shareholders.value,
336
+ },
337
+ };
338
+ }
339
+ function parseUpsertFeeTiersFromData(data, metadata) {
340
+ let o = 0;
341
+ const timestamp = bnI64((0, binary_js_1.readI64LE)(data, o));
342
+ if (o + 8 > data.length)
343
+ return null;
344
+ o += 8;
345
+ const admin = (0, binary_js_1.readPubkey)(data, o);
346
+ if (!admin)
347
+ return null;
348
+ o += 32;
349
+ const fee_config = (0, binary_js_1.readPubkey)(data, o);
350
+ if (!fee_config)
351
+ return null;
352
+ o += 32;
353
+ const fee_tiers = readFeeTiersVec(data, o);
354
+ if (!fee_tiers)
355
+ return null;
356
+ o = fee_tiers.next;
357
+ const offset = (0, binary_js_1.readU8)(data, o);
358
+ if (offset === null)
359
+ return null;
360
+ o += 1;
361
+ if (o !== data.length)
362
+ return null;
363
+ return { PumpFeesUpsertFeeTiers: { metadata, timestamp, admin, fee_config, fee_tiers: fee_tiers.value, offset } };
364
+ }
@@ -0,0 +1,9 @@
1
+ import type { EventMetadata } from "../core/metadata.js";
2
+ import type { DexEvent } from "../core/dex_event.js";
3
+ export declare function parseSwapBaseInFromData(data: Uint8Array, metadata: EventMetadata): DexEvent | null;
4
+ export declare function parseSwapBaseOutFromData(data: Uint8Array, metadata: EventMetadata): DexEvent | null;
5
+ export declare function parseDepositFromData(data: Uint8Array, metadata: EventMetadata): DexEvent | null;
6
+ export declare function parseWithdrawFromData(data: Uint8Array, metadata: EventMetadata): DexEvent | null;
7
+ /** Withdraw PnL 事件;discriminator `[0,0,0,0,0,0,0,7]` */
8
+ export declare function parseWithdrawPnlFromData(data: Uint8Array, metadata: EventMetadata): DexEvent | null;
9
+ export declare function parseInitialize2FromData(data: Uint8Array, metadata: EventMetadata): DexEvent | null;
@@ -0,0 +1,224 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseSwapBaseInFromData = parseSwapBaseInFromData;
4
+ exports.parseSwapBaseOutFromData = parseSwapBaseOutFromData;
5
+ exports.parseDepositFromData = parseDepositFromData;
6
+ exports.parseWithdrawFromData = parseWithdrawFromData;
7
+ exports.parseWithdrawPnlFromData = parseWithdrawPnlFromData;
8
+ exports.parseInitialize2FromData = parseInitialize2FromData;
9
+ const dex_event_js_1 = require("../core/dex_event.js");
10
+ const binary_js_1 = require("../util/binary.js");
11
+ function bn64(v) {
12
+ return v ?? 0n;
13
+ }
14
+ function emptySwap(metadata, amm, user) {
15
+ return {
16
+ metadata,
17
+ amount_in: 0n,
18
+ minimum_amount_out: 0n,
19
+ max_amount_in: 0n,
20
+ amount_out: 0n,
21
+ token_program: (0, dex_event_js_1.defaultPubkey)(),
22
+ amm,
23
+ amm_authority: (0, dex_event_js_1.defaultPubkey)(),
24
+ amm_open_orders: (0, dex_event_js_1.defaultPubkey)(),
25
+ pool_coin_token_account: (0, dex_event_js_1.defaultPubkey)(),
26
+ pool_pc_token_account: (0, dex_event_js_1.defaultPubkey)(),
27
+ serum_program: (0, dex_event_js_1.defaultPubkey)(),
28
+ serum_market: (0, dex_event_js_1.defaultPubkey)(),
29
+ serum_bids: (0, dex_event_js_1.defaultPubkey)(),
30
+ serum_asks: (0, dex_event_js_1.defaultPubkey)(),
31
+ serum_event_queue: (0, dex_event_js_1.defaultPubkey)(),
32
+ serum_coin_vault_account: (0, dex_event_js_1.defaultPubkey)(),
33
+ serum_pc_vault_account: (0, dex_event_js_1.defaultPubkey)(),
34
+ serum_vault_signer: (0, dex_event_js_1.defaultPubkey)(),
35
+ user_source_token_account: (0, dex_event_js_1.defaultPubkey)(),
36
+ user_destination_token_account: (0, dex_event_js_1.defaultPubkey)(),
37
+ user_source_owner: user,
38
+ };
39
+ }
40
+ function parseSwapBaseInFromData(data, metadata) {
41
+ let o = 0;
42
+ const amm = (0, binary_js_1.readPubkey)(data, o);
43
+ if (!amm)
44
+ return null;
45
+ o += 32;
46
+ const user = (0, binary_js_1.readPubkey)(data, o);
47
+ if (!user)
48
+ return null;
49
+ o += 32;
50
+ const amount_in = bn64((0, binary_js_1.readU64LE)(data, o));
51
+ o += 8;
52
+ const minimum_amount_out = bn64((0, binary_js_1.readU64LE)(data, o));
53
+ const ev = emptySwap(metadata, amm, user);
54
+ ev.amount_in = amount_in;
55
+ ev.minimum_amount_out = minimum_amount_out;
56
+ return { RaydiumAmmV4Swap: ev };
57
+ }
58
+ function parseSwapBaseOutFromData(data, metadata) {
59
+ let o = 0;
60
+ const amm = (0, binary_js_1.readPubkey)(data, o);
61
+ if (!amm)
62
+ return null;
63
+ o += 32;
64
+ const user = (0, binary_js_1.readPubkey)(data, o);
65
+ if (!user)
66
+ return null;
67
+ o += 32;
68
+ const max_amount_in = bn64((0, binary_js_1.readU64LE)(data, o));
69
+ o += 8;
70
+ const amount_out = bn64((0, binary_js_1.readU64LE)(data, o));
71
+ const ev = emptySwap(metadata, amm, user);
72
+ ev.max_amount_in = max_amount_in;
73
+ ev.amount_out = amount_out;
74
+ return { RaydiumAmmV4Swap: ev };
75
+ }
76
+ function parseDepositFromData(data, metadata) {
77
+ let o = 0;
78
+ const amm = (0, binary_js_1.readPubkey)(data, o);
79
+ o += 32;
80
+ const user = (0, binary_js_1.readPubkey)(data, o);
81
+ o += 32;
82
+ const max_coin_amount = bn64((0, binary_js_1.readU64LE)(data, o));
83
+ o += 8;
84
+ const max_pc_amount = bn64((0, binary_js_1.readU64LE)(data, o));
85
+ o += 8;
86
+ const base_side = bn64((0, binary_js_1.readU64LE)(data, o));
87
+ const ev = {
88
+ metadata,
89
+ max_coin_amount,
90
+ max_pc_amount,
91
+ base_side,
92
+ token_program: (0, dex_event_js_1.defaultPubkey)(),
93
+ amm,
94
+ amm_authority: (0, dex_event_js_1.defaultPubkey)(),
95
+ amm_open_orders: (0, dex_event_js_1.defaultPubkey)(),
96
+ amm_target_orders: (0, dex_event_js_1.defaultPubkey)(),
97
+ lp_mint_address: (0, dex_event_js_1.defaultPubkey)(),
98
+ pool_coin_token_account: (0, dex_event_js_1.defaultPubkey)(),
99
+ pool_pc_token_account: (0, dex_event_js_1.defaultPubkey)(),
100
+ serum_market: (0, dex_event_js_1.defaultPubkey)(),
101
+ user_coin_token_account: (0, dex_event_js_1.defaultPubkey)(),
102
+ user_pc_token_account: (0, dex_event_js_1.defaultPubkey)(),
103
+ user_lp_token_account: (0, dex_event_js_1.defaultPubkey)(),
104
+ user_owner: user,
105
+ serum_event_queue: (0, dex_event_js_1.defaultPubkey)(),
106
+ };
107
+ return { RaydiumAmmV4Deposit: ev };
108
+ }
109
+ function parseWithdrawFromData(data, metadata) {
110
+ let o = 0;
111
+ const amm = (0, binary_js_1.readPubkey)(data, o);
112
+ o += 32;
113
+ const user = (0, binary_js_1.readPubkey)(data, o);
114
+ o += 32;
115
+ const amount = bn64((0, binary_js_1.readU64LE)(data, o));
116
+ const ev = {
117
+ metadata,
118
+ amount,
119
+ token_program: (0, dex_event_js_1.defaultPubkey)(),
120
+ amm,
121
+ amm_authority: (0, dex_event_js_1.defaultPubkey)(),
122
+ amm_open_orders: (0, dex_event_js_1.defaultPubkey)(),
123
+ amm_target_orders: (0, dex_event_js_1.defaultPubkey)(),
124
+ lp_mint_address: (0, dex_event_js_1.defaultPubkey)(),
125
+ pool_coin_token_account: (0, dex_event_js_1.defaultPubkey)(),
126
+ pool_pc_token_account: (0, dex_event_js_1.defaultPubkey)(),
127
+ pool_withdraw_queue: (0, dex_event_js_1.defaultPubkey)(),
128
+ pool_temp_lp_token_account: (0, dex_event_js_1.defaultPubkey)(),
129
+ serum_program: (0, dex_event_js_1.defaultPubkey)(),
130
+ serum_market: (0, dex_event_js_1.defaultPubkey)(),
131
+ serum_coin_vault_account: (0, dex_event_js_1.defaultPubkey)(),
132
+ serum_pc_vault_account: (0, dex_event_js_1.defaultPubkey)(),
133
+ serum_vault_signer: (0, dex_event_js_1.defaultPubkey)(),
134
+ user_lp_token_account: (0, dex_event_js_1.defaultPubkey)(),
135
+ user_coin_token_account: (0, dex_event_js_1.defaultPubkey)(),
136
+ user_pc_token_account: (0, dex_event_js_1.defaultPubkey)(),
137
+ user_owner: user,
138
+ serum_event_queue: (0, dex_event_js_1.defaultPubkey)(),
139
+ serum_bids: (0, dex_event_js_1.defaultPubkey)(),
140
+ serum_asks: (0, dex_event_js_1.defaultPubkey)(),
141
+ };
142
+ return { RaydiumAmmV4Withdraw: ev };
143
+ }
144
+ /** Withdraw PnL 事件;discriminator `[0,0,0,0,0,0,0,7]` */
145
+ function parseWithdrawPnlFromData(data, metadata) {
146
+ let o = 0;
147
+ const amm = (0, binary_js_1.readPubkey)(data, o);
148
+ if (!amm)
149
+ return null;
150
+ o += 32;
151
+ const pnl_owner = (0, binary_js_1.readPubkey)(data, o);
152
+ if (!pnl_owner)
153
+ return null;
154
+ const z = (0, dex_event_js_1.defaultPubkey)();
155
+ const ev = {
156
+ metadata,
157
+ token_program: z,
158
+ amm,
159
+ amm_config: z,
160
+ amm_authority: z,
161
+ amm_open_orders: z,
162
+ pool_coin_token_account: z,
163
+ pool_pc_token_account: z,
164
+ coin_pnl_token_account: z,
165
+ pc_pnl_token_account: z,
166
+ pnl_owner,
167
+ amm_target_orders: z,
168
+ serum_program: z,
169
+ serum_market: z,
170
+ serum_event_queue: z,
171
+ serum_coin_vault_account: z,
172
+ serum_pc_vault_account: z,
173
+ serum_vault_signer: z,
174
+ };
175
+ return { RaydiumAmmV4WithdrawPnl: ev };
176
+ }
177
+ function parseInitialize2FromData(data, metadata) {
178
+ let o = 0;
179
+ const amm = (0, binary_js_1.readPubkey)(data, o);
180
+ if (!amm)
181
+ return null;
182
+ o += 32;
183
+ const user = (0, binary_js_1.readPubkey)(data, o);
184
+ if (!user)
185
+ return null;
186
+ o += 32;
187
+ const nonce = (0, binary_js_1.readU8)(data, o);
188
+ o += 1;
189
+ const open_time = bn64((0, binary_js_1.readU64LE)(data, o));
190
+ o += 8;
191
+ const init_pc_amount = bn64((0, binary_js_1.readU64LE)(data, o));
192
+ o += 8;
193
+ const init_coin_amount = bn64((0, binary_js_1.readU64LE)(data, o));
194
+ const z = (0, dex_event_js_1.defaultPubkey)();
195
+ const ev = {
196
+ metadata,
197
+ nonce,
198
+ open_time,
199
+ init_pc_amount,
200
+ init_coin_amount,
201
+ token_program: z,
202
+ spl_associated_token_account: z,
203
+ system_program: z,
204
+ rent: z,
205
+ amm,
206
+ amm_authority: z,
207
+ amm_open_orders: z,
208
+ lp_mint: z,
209
+ coin_mint: z,
210
+ pc_mint: z,
211
+ pool_coin_token_account: z,
212
+ pool_pc_token_account: z,
213
+ pool_withdraw_queue: z,
214
+ amm_target_orders: z,
215
+ pool_temp_lp: z,
216
+ serum_program: z,
217
+ serum_market: z,
218
+ user_wallet: user,
219
+ user_token_coin: z,
220
+ user_token_pc: z,
221
+ user_lp_token_account: z,
222
+ };
223
+ return { RaydiumAmmV4Initialize2: ev };
224
+ }
@@ -0,0 +1,17 @@
1
+ import type { EventMetadata } from "../core/metadata.js";
2
+ import type { DexEvent } from "../core/dex_event.js";
3
+ export declare function parseSwapFromData(data: Uint8Array, metadata: EventMetadata): DexEvent | null;
4
+ export declare function parseIncreaseLiquidityFromData(data: Uint8Array, metadata: EventMetadata): DexEvent | null;
5
+ export declare function parseDecreaseLiquidityFromData(data: Uint8Array, metadata: EventMetadata): DexEvent | null;
6
+ export declare function parseCreatePoolFromData(data: Uint8Array, metadata: EventMetadata): DexEvent | null;
7
+ export declare function parseCollectPersonalFeeFromData(data: Uint8Array, metadata: EventMetadata): DexEvent | null;
8
+ export declare function parseCollectProtocolFeeFromData(data: Uint8Array, metadata: EventMetadata): DexEvent | null;
9
+ export declare function parseLiquidityChangeFromData(data: Uint8Array, metadata: EventMetadata): DexEvent | null;
10
+ export declare function parseConfigChangeFromData(data: Uint8Array, metadata: EventMetadata): DexEvent | null;
11
+ export declare function parseCreatePersonalPositionFromData(data: Uint8Array, metadata: EventMetadata): DexEvent | null;
12
+ export declare function parseLiquidityCalculateFromData(data: Uint8Array, metadata: EventMetadata): DexEvent | null;
13
+ export declare function parseOpenLimitOrderFromData(data: Uint8Array, metadata: EventMetadata): DexEvent | null;
14
+ export declare function parseIncreaseLimitOrderFromData(data: Uint8Array, metadata: EventMetadata): DexEvent | null;
15
+ export declare function parseDecreaseLimitOrderFromData(data: Uint8Array, metadata: EventMetadata): DexEvent | null;
16
+ export declare function parseSettleLimitOrderFromData(data: Uint8Array, metadata: EventMetadata): DexEvent | null;
17
+ export declare function parseUpdateRewardInfosFromData(data: Uint8Array, metadata: EventMetadata): DexEvent | null;