@black-market/sdk 0.1.0

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 (48) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +111 -0
  3. package/dist/abis.d.ts +2573 -0
  4. package/dist/abis.d.ts.map +1 -0
  5. package/dist/abis.js +1875 -0
  6. package/dist/abis.js.map +1 -0
  7. package/dist/abyss.d.ts +3650 -0
  8. package/dist/abyss.d.ts.map +1 -0
  9. package/dist/abyss.js +1522 -0
  10. package/dist/abyss.js.map +1 -0
  11. package/dist/addresses.d.ts +211 -0
  12. package/dist/addresses.d.ts.map +1 -0
  13. package/dist/addresses.js +234 -0
  14. package/dist/addresses.js.map +1 -0
  15. package/dist/auction.d.ts +57 -0
  16. package/dist/auction.d.ts.map +1 -0
  17. package/dist/auction.js +88 -0
  18. package/dist/auction.js.map +1 -0
  19. package/dist/client.d.ts +12 -0
  20. package/dist/client.d.ts.map +1 -0
  21. package/dist/client.js +18 -0
  22. package/dist/client.js.map +1 -0
  23. package/dist/format.d.ts +15 -0
  24. package/dist/format.d.ts.map +1 -0
  25. package/dist/format.js +78 -0
  26. package/dist/format.js.map +1 -0
  27. package/dist/index.d.ts +9 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +9 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/launch.d.ts +225 -0
  32. package/dist/launch.d.ts.map +1 -0
  33. package/dist/launch.js +511 -0
  34. package/dist/launch.js.map +1 -0
  35. package/dist/live.d.ts +185 -0
  36. package/dist/live.d.ts.map +1 -0
  37. package/dist/live.js +205 -0
  38. package/dist/live.js.map +1 -0
  39. package/package.json +51 -0
  40. package/src/abis.ts +1896 -0
  41. package/src/abyss.ts +1574 -0
  42. package/src/addresses.ts +342 -0
  43. package/src/auction.ts +107 -0
  44. package/src/client.ts +37 -0
  45. package/src/format.ts +73 -0
  46. package/src/index.ts +8 -0
  47. package/src/launch.ts +724 -0
  48. package/src/live.ts +393 -0
package/src/abyss.ts ADDED
@@ -0,0 +1,1574 @@
1
+ import type { Address, Hex } from "viem";
2
+
3
+ export enum AbyssPoolProfile {
4
+ Standard,
5
+ StandardOracle,
6
+ Quote,
7
+ QuoteOracle,
8
+ }
9
+
10
+ export enum TokenKind {
11
+ Burnable,
12
+ HolderDividend,
13
+ }
14
+
15
+ export type AbyssPoolKey = {
16
+ token0: Address;
17
+ token1: Address;
18
+ profile: AbyssPoolProfile;
19
+ fee: number;
20
+ quoteIsToken0: boolean;
21
+ oracleConfigId: Hex;
22
+ };
23
+
24
+ export const ABYSS_FEE_TIERS = [
25
+ { feePips: 500, tickSpacing: 10, label: "0.05%" },
26
+ { feePips: 3_000, tickSpacing: 60, label: "0.30%" },
27
+ { feePips: 10_000, tickSpacing: 200, label: "1%" },
28
+ { feePips: 20_000, tickSpacing: 400, label: "2%" },
29
+ { feePips: 50_000, tickSpacing: 1_000, label: "5%" },
30
+ { feePips: 100_000, tickSpacing: 2_000, label: "10%" },
31
+ { feePips: 150_000, tickSpacing: 3_000, label: "15%" },
32
+ ] as const;
33
+
34
+ export const abyssFactoryAbi = [
35
+ {
36
+ type: "function",
37
+ name: "feeAmountTickSpacing",
38
+ stateMutability: "view",
39
+ inputs: [{ name: "fee", type: "uint24" }],
40
+ outputs: [{ name: "", type: "int24" }],
41
+ },
42
+ {
43
+ type: "function",
44
+ name: "oracleConfigs",
45
+ stateMutability: "view",
46
+ inputs: [{ name: "id", type: "bytes32" }],
47
+ outputs: [
48
+ { name: "maxAbsTickMove", type: "uint24" },
49
+ { name: "cardinality", type: "uint16" },
50
+ ],
51
+ },
52
+ {
53
+ type: "function",
54
+ name: "getPool",
55
+ stateMutability: "view",
56
+ inputs: [{ name: "poolId", type: "bytes32" }],
57
+ outputs: [{ name: "", type: "address" }],
58
+ },
59
+ {
60
+ type: "function",
61
+ name: "isPool",
62
+ stateMutability: "view",
63
+ inputs: [{ name: "pool", type: "address" }],
64
+ outputs: [{ name: "", type: "bool" }],
65
+ },
66
+ {
67
+ type: "function",
68
+ name: "computePoolId",
69
+ stateMutability: "view",
70
+ inputs: [
71
+ {
72
+ name: "key",
73
+ type: "tuple",
74
+ components: [
75
+ { name: "token0", type: "address" },
76
+ { name: "token1", type: "address" },
77
+ { name: "profile", type: "uint8" },
78
+ { name: "fee", type: "uint24" },
79
+ { name: "quoteIsToken0", type: "bool" },
80
+ { name: "oracleConfigId", type: "bytes32" },
81
+ ],
82
+ },
83
+ ],
84
+ outputs: [{ name: "", type: "bytes32" }],
85
+ },
86
+ {
87
+ type: "function",
88
+ name: "computePoolAddress",
89
+ stateMutability: "view",
90
+ inputs: [
91
+ {
92
+ name: "key",
93
+ type: "tuple",
94
+ components: [
95
+ { name: "token0", type: "address" },
96
+ { name: "token1", type: "address" },
97
+ { name: "profile", type: "uint8" },
98
+ { name: "fee", type: "uint24" },
99
+ { name: "quoteIsToken0", type: "bool" },
100
+ { name: "oracleConfigId", type: "bytes32" },
101
+ ],
102
+ },
103
+ ],
104
+ outputs: [{ name: "predicted", type: "address" }],
105
+ },
106
+ {
107
+ type: "event",
108
+ name: "PoolCreated",
109
+ inputs: [
110
+ { name: "token0", type: "address", indexed: true },
111
+ { name: "token1", type: "address", indexed: true },
112
+ { name: "fee", type: "uint24", indexed: true },
113
+ { name: "profile", type: "uint8", indexed: false },
114
+ { name: "quoteIsToken0", type: "bool", indexed: false },
115
+ { name: "oracleConfigId", type: "bytes32", indexed: false },
116
+ { name: "pool", type: "address", indexed: false },
117
+ ],
118
+ },
119
+ ] as const;
120
+
121
+ export const abyssPoolAbi = [
122
+ {
123
+ type: "function",
124
+ name: "factory",
125
+ stateMutability: "view",
126
+ inputs: [],
127
+ outputs: [{ name: "", type: "address" }],
128
+ },
129
+ {
130
+ type: "function",
131
+ name: "token0",
132
+ stateMutability: "view",
133
+ inputs: [],
134
+ outputs: [{ name: "", type: "address" }],
135
+ },
136
+ {
137
+ type: "function",
138
+ name: "token1",
139
+ stateMutability: "view",
140
+ inputs: [],
141
+ outputs: [{ name: "", type: "address" }],
142
+ },
143
+ {
144
+ type: "function",
145
+ name: "fee",
146
+ stateMutability: "view",
147
+ inputs: [],
148
+ outputs: [{ name: "", type: "uint24" }],
149
+ },
150
+ {
151
+ type: "function",
152
+ name: "tickSpacing",
153
+ stateMutability: "view",
154
+ inputs: [],
155
+ outputs: [{ name: "", type: "int24" }],
156
+ },
157
+ {
158
+ type: "function",
159
+ name: "liquidity",
160
+ stateMutability: "view",
161
+ inputs: [],
162
+ outputs: [{ name: "", type: "uint128" }],
163
+ },
164
+ {
165
+ type: "function",
166
+ name: "slot0",
167
+ stateMutability: "view",
168
+ inputs: [],
169
+ outputs: [
170
+ { name: "sqrtPriceX96", type: "uint160" },
171
+ { name: "tick", type: "int24" },
172
+ { name: "observationIndex", type: "uint16" },
173
+ { name: "observationCardinality", type: "uint16" },
174
+ { name: "observationCardinalityNext", type: "uint16" },
175
+ { name: "feeProtocol", type: "uint8" },
176
+ { name: "unlocked", type: "bool" },
177
+ ],
178
+ },
179
+ {
180
+ type: "function",
181
+ name: "observeTruncated",
182
+ stateMutability: "view",
183
+ inputs: [{ name: "secondsAgos", type: "uint32[]" }],
184
+ outputs: [
185
+ { name: "tickCumulatives", type: "int56[]" },
186
+ { name: "secondsPerLiquidityCumulativeX128s", type: "uint160[]" },
187
+ ],
188
+ },
189
+ {
190
+ type: "function",
191
+ name: "quoteIsToken0",
192
+ stateMutability: "view",
193
+ inputs: [],
194
+ outputs: [{ name: "", type: "bool" }],
195
+ },
196
+ ] as const;
197
+
198
+ export const abyssPositionManagerAbi = [
199
+ {
200
+ type: "function",
201
+ name: "factory",
202
+ stateMutability: "view",
203
+ inputs: [],
204
+ outputs: [{ name: "", type: "address" }],
205
+ },
206
+ {
207
+ type: "function",
208
+ name: "nextTokenId",
209
+ stateMutability: "view",
210
+ inputs: [],
211
+ outputs: [{ name: "", type: "uint256" }],
212
+ },
213
+ {
214
+ type: "function",
215
+ name: "positions",
216
+ stateMutability: "view",
217
+ inputs: [{ name: "tokenId", type: "uint256" }],
218
+ outputs: [
219
+ { name: "account", type: "address" },
220
+ { name: "pool", type: "address" },
221
+ { name: "tickLower", type: "int24" },
222
+ { name: "tickUpper", type: "int24" },
223
+ { name: "liquidity", type: "uint128" },
224
+ ],
225
+ },
226
+ {
227
+ type: "function",
228
+ name: "accountFor",
229
+ stateMutability: "view",
230
+ inputs: [
231
+ { name: "tokenId", type: "uint256" },
232
+ { name: "pool", type: "address" },
233
+ ],
234
+ outputs: [{ name: "account", type: "address" }],
235
+ },
236
+ {
237
+ type: "function",
238
+ name: "createAndInitializePoolIfNecessary",
239
+ stateMutability: "nonpayable",
240
+ inputs: [
241
+ {
242
+ name: "key",
243
+ type: "tuple",
244
+ components: [
245
+ { name: "token0", type: "address" },
246
+ { name: "token1", type: "address" },
247
+ { name: "profile", type: "uint8" },
248
+ { name: "fee", type: "uint24" },
249
+ { name: "quoteIsToken0", type: "bool" },
250
+ { name: "oracleConfigId", type: "bytes32" },
251
+ ],
252
+ },
253
+ { name: "sqrtPriceX96", type: "uint160" },
254
+ { name: "existingPriceMinimumX96", type: "uint160" },
255
+ { name: "existingPriceMaximumX96", type: "uint160" },
256
+ ],
257
+ outputs: [
258
+ { name: "pool", type: "address" },
259
+ { name: "created", type: "bool" },
260
+ ],
261
+ },
262
+ {
263
+ type: "function",
264
+ name: "mint",
265
+ stateMutability: "nonpayable",
266
+ inputs: [
267
+ { name: "pool", type: "address" },
268
+ { name: "recipient", type: "address" },
269
+ { name: "tickLower", type: "int24" },
270
+ { name: "tickUpper", type: "int24" },
271
+ { name: "liquidity", type: "uint128" },
272
+ { name: "amount0Maximum", type: "uint256" },
273
+ { name: "amount1Maximum", type: "uint256" },
274
+ { name: "deadline", type: "uint256" },
275
+ ],
276
+ outputs: [
277
+ { name: "tokenId", type: "uint256" },
278
+ { name: "amount0", type: "uint256" },
279
+ { name: "amount1", type: "uint256" },
280
+ ],
281
+ },
282
+ {
283
+ type: "function",
284
+ name: "multicall",
285
+ stateMutability: "payable",
286
+ inputs: [{ name: "data", type: "bytes[]" }],
287
+ outputs: [{ name: "results", type: "bytes[]" }],
288
+ },
289
+ {
290
+ type: "function",
291
+ name: "safeTransferFrom",
292
+ stateMutability: "payable",
293
+ inputs: [
294
+ { name: "from", type: "address" },
295
+ { name: "to", type: "address" },
296
+ { name: "id", type: "uint256" },
297
+ ],
298
+ outputs: [],
299
+ },
300
+ {
301
+ type: "function",
302
+ name: "safeTransferFrom",
303
+ stateMutability: "payable",
304
+ inputs: [
305
+ { name: "from", type: "address" },
306
+ { name: "to", type: "address" },
307
+ { name: "id", type: "uint256" },
308
+ { name: "data", type: "bytes" },
309
+ ],
310
+ outputs: [],
311
+ },
312
+ ] as const;
313
+
314
+ export const abyssPositionLockerAbi = [
315
+ {
316
+ type: "function",
317
+ name: "positionManager",
318
+ stateMutability: "view",
319
+ inputs: [],
320
+ outputs: [{ name: "", type: "address" }],
321
+ },
322
+ {
323
+ type: "function",
324
+ name: "locks",
325
+ stateMutability: "view",
326
+ inputs: [{ name: "tokenId", type: "uint256" }],
327
+ outputs: [
328
+ { name: "owner", type: "address" },
329
+ { name: "claimAuthority", type: "address" },
330
+ { name: "feeRecipient", type: "address" },
331
+ { name: "unlockTime", type: "uint64" },
332
+ { name: "permissionlessClaim", type: "bool" },
333
+ ],
334
+ },
335
+ {
336
+ type: "function",
337
+ name: "claim",
338
+ stateMutability: "nonpayable",
339
+ inputs: [{ name: "tokenId", type: "uint256" }],
340
+ outputs: [
341
+ { name: "amount0", type: "uint128" },
342
+ { name: "amount1", type: "uint128" },
343
+ ],
344
+ },
345
+ ] as const;
346
+
347
+ export const abyssRouterAbi = [
348
+ {
349
+ type: "function",
350
+ name: "factory",
351
+ stateMutability: "view",
352
+ inputs: [],
353
+ outputs: [{ name: "", type: "address" }],
354
+ },
355
+ {
356
+ type: "function",
357
+ name: "exactInputSingle",
358
+ stateMutability: "nonpayable",
359
+ inputs: [
360
+ {
361
+ name: "key",
362
+ type: "tuple",
363
+ components: [
364
+ { name: "token0", type: "address" },
365
+ { name: "token1", type: "address" },
366
+ { name: "profile", type: "uint8" },
367
+ { name: "fee", type: "uint24" },
368
+ { name: "quoteIsToken0", type: "bool" },
369
+ { name: "oracleConfigId", type: "bytes32" },
370
+ ],
371
+ },
372
+ { name: "recipient", type: "address" },
373
+ { name: "zeroForOne", type: "bool" },
374
+ { name: "amountIn", type: "uint256" },
375
+ { name: "amountOutMinimum", type: "uint256" },
376
+ { name: "sqrtPriceLimitX96", type: "uint160" },
377
+ { name: "deadline", type: "uint256" },
378
+ ],
379
+ outputs: [{ name: "amountOut", type: "uint256" }],
380
+ },
381
+ ] as const;
382
+
383
+ const erc20SurfaceAbi = [
384
+ {
385
+ type: "function",
386
+ name: "name",
387
+ stateMutability: "view",
388
+ inputs: [],
389
+ outputs: [{ name: "", type: "string" }],
390
+ },
391
+ {
392
+ type: "function",
393
+ name: "symbol",
394
+ stateMutability: "view",
395
+ inputs: [],
396
+ outputs: [{ name: "", type: "string" }],
397
+ },
398
+ {
399
+ type: "function",
400
+ name: "decimals",
401
+ stateMutability: "view",
402
+ inputs: [],
403
+ outputs: [{ name: "", type: "uint8" }],
404
+ },
405
+ {
406
+ type: "function",
407
+ name: "totalSupply",
408
+ stateMutability: "view",
409
+ inputs: [],
410
+ outputs: [{ name: "", type: "uint256" }],
411
+ },
412
+ {
413
+ type: "function",
414
+ name: "balanceOf",
415
+ stateMutability: "view",
416
+ inputs: [{ name: "account", type: "address" }],
417
+ outputs: [{ name: "", type: "uint256" }],
418
+ },
419
+ {
420
+ type: "function",
421
+ name: "allowance",
422
+ stateMutability: "view",
423
+ inputs: [
424
+ { name: "owner", type: "address" },
425
+ { name: "spender", type: "address" },
426
+ ],
427
+ outputs: [{ name: "", type: "uint256" }],
428
+ },
429
+ {
430
+ type: "function",
431
+ name: "approve",
432
+ stateMutability: "nonpayable",
433
+ inputs: [
434
+ { name: "spender", type: "address" },
435
+ { name: "amount", type: "uint256" },
436
+ ],
437
+ outputs: [{ name: "", type: "bool" }],
438
+ },
439
+ {
440
+ type: "function",
441
+ name: "transfer",
442
+ stateMutability: "nonpayable",
443
+ inputs: [
444
+ { name: "recipient", type: "address" },
445
+ { name: "amount", type: "uint256" },
446
+ ],
447
+ outputs: [{ name: "", type: "bool" }],
448
+ },
449
+ {
450
+ type: "function",
451
+ name: "transferFrom",
452
+ stateMutability: "nonpayable",
453
+ inputs: [
454
+ { name: "sender", type: "address" },
455
+ { name: "recipient", type: "address" },
456
+ { name: "amount", type: "uint256" },
457
+ ],
458
+ outputs: [{ name: "", type: "bool" }],
459
+ },
460
+ ] as const;
461
+
462
+ const configurableSupplyConstructor = {
463
+ type: "constructor",
464
+ stateMutability: "nonpayable",
465
+ inputs: [
466
+ { name: "name_", type: "string" },
467
+ { name: "symbol_", type: "string" },
468
+ { name: "decimals_", type: "uint8" },
469
+ { name: "recipient", type: "address" },
470
+ { name: "supply", type: "uint256" },
471
+ ],
472
+ } as const;
473
+
474
+ export const abyssFixedSupplyTokenAbi = [
475
+ configurableSupplyConstructor,
476
+ ...erc20SurfaceAbi,
477
+ ] as const;
478
+
479
+ export const burnableFixedSupplyTokenAbi = [
480
+ configurableSupplyConstructor,
481
+ ...erc20SurfaceAbi,
482
+ {
483
+ type: "function",
484
+ name: "burn",
485
+ stateMutability: "nonpayable",
486
+ inputs: [{ name: "amount", type: "uint256" }],
487
+ outputs: [],
488
+ },
489
+ {
490
+ type: "function",
491
+ name: "burnFrom",
492
+ stateMutability: "nonpayable",
493
+ inputs: [
494
+ { name: "account", type: "address" },
495
+ { name: "amount", type: "uint256" },
496
+ ],
497
+ outputs: [],
498
+ },
499
+ ] as const;
500
+ export const launchTokenBurnSinkAbi = [
501
+ {
502
+ type: "constructor",
503
+ stateMutability: "nonpayable",
504
+ inputs: [{ name: "token_", type: "address" }],
505
+ },
506
+ {
507
+ type: "error",
508
+ name: "BurnAccountingMismatch",
509
+ inputs: [
510
+ { name: "balanceBefore", type: "uint256" },
511
+ { name: "balanceAfter", type: "uint256" },
512
+ { name: "supplyBefore", type: "uint256" },
513
+ { name: "supplyAfter", type: "uint256" },
514
+ ],
515
+ },
516
+ { type: "error", name: "BurnFailed", inputs: [] },
517
+ {
518
+ type: "error",
519
+ name: "InvalidToken",
520
+ inputs: [{ name: "token", type: "address" }],
521
+ },
522
+ { type: "error", name: "Reentrancy", inputs: [] },
523
+ { type: "error", name: "ZeroBalance", inputs: [] },
524
+ {
525
+ type: "event",
526
+ name: "Burned",
527
+ inputs: [
528
+ { name: "caller", type: "address", indexed: true },
529
+ { name: "amount", type: "uint256", indexed: false },
530
+ ],
531
+ anonymous: false,
532
+ },
533
+ {
534
+ type: "function",
535
+ name: "burn",
536
+ stateMutability: "nonpayable",
537
+ inputs: [],
538
+ outputs: [{ name: "amount", type: "uint256" }],
539
+ },
540
+ {
541
+ type: "function",
542
+ name: "token",
543
+ stateMutability: "view",
544
+ inputs: [],
545
+ outputs: [{ name: "", type: "address" }],
546
+ },
547
+ ] as const;
548
+
549
+ const launchTokenFactoryBindingAbi = [
550
+ {
551
+ type: "function",
552
+ name: "configurator",
553
+ stateMutability: "view",
554
+ inputs: [],
555
+ outputs: [{ name: "", type: "address" }],
556
+ },
557
+ {
558
+ type: "function",
559
+ name: "launcher",
560
+ stateMutability: "view",
561
+ inputs: [],
562
+ outputs: [{ name: "", type: "address" }],
563
+ },
564
+ {
565
+ type: "function",
566
+ name: "DEPLOYMENT_SALT_DOMAIN",
567
+ stateMutability: "view",
568
+ inputs: [],
569
+ outputs: [{ name: "", type: "bytes32" }],
570
+ },
571
+ {
572
+ type: "function",
573
+ name: "deploymentNonce",
574
+ stateMutability: "view",
575
+ inputs: [],
576
+ outputs: [{ name: "", type: "uint256" }],
577
+ },
578
+ {
579
+ type: "function",
580
+ name: "setLauncher",
581
+ stateMutability: "nonpayable",
582
+ inputs: [{ name: "launcher_", type: "address" }],
583
+ outputs: [],
584
+ },
585
+ ] as const;
586
+
587
+ export const launchTokenFactoryAbi = [
588
+ ...launchTokenFactoryBindingAbi,
589
+ {
590
+ type: "function",
591
+ name: "deploy",
592
+ stateMutability: "nonpayable",
593
+ inputs: [
594
+ { name: "creator", type: "address" },
595
+ { name: "kind", type: "uint8" },
596
+ { name: "name", type: "string" },
597
+ { name: "symbol", type: "string" },
598
+ { name: "decimals", type: "uint8" },
599
+ { name: "supply", type: "uint256" },
600
+ ],
601
+ outputs: [{ name: "token", type: "address" }],
602
+ },
603
+ {
604
+ type: "function",
605
+ name: "computeDeploymentSalt",
606
+ stateMutability: "view",
607
+ inputs: [
608
+ { name: "creator", type: "address" },
609
+ { name: "nonce", type: "uint256" },
610
+ { name: "prevrandao", type: "uint256" },
611
+ { name: "kind", type: "uint8" },
612
+ { name: "name", type: "string" },
613
+ { name: "symbol", type: "string" },
614
+ { name: "decimals", type: "uint8" },
615
+ { name: "supply", type: "uint256" },
616
+ ],
617
+ outputs: [{ name: "", type: "bytes32" }],
618
+ },
619
+ {
620
+ type: "function",
621
+ name: "predictTokenAddress",
622
+ stateMutability: "view",
623
+ inputs: [
624
+ { name: "creator", type: "address" },
625
+ { name: "nonce", type: "uint256" },
626
+ { name: "prevrandao", type: "uint256" },
627
+ { name: "kind", type: "uint8" },
628
+ { name: "name", type: "string" },
629
+ { name: "symbol", type: "string" },
630
+ { name: "decimals", type: "uint8" },
631
+ { name: "supply", type: "uint256" },
632
+ ],
633
+ outputs: [{ name: "token", type: "address" }],
634
+ },
635
+ {
636
+ type: "function",
637
+ name: "launchAuthority",
638
+ stateMutability: "view",
639
+ inputs: [{ name: "token", type: "address" }],
640
+ outputs: [{ name: "authority", type: "address" }],
641
+ },
642
+ {
643
+ type: "event",
644
+ name: "TokenDeployed",
645
+ inputs: [
646
+ { name: "token", type: "address", indexed: true },
647
+ { name: "creator", type: "address", indexed: true },
648
+ { name: "salt", type: "bytes32", indexed: true },
649
+ { name: "kind", type: "uint8", indexed: false },
650
+ { name: "nonce", type: "uint256", indexed: false },
651
+ { name: "prevrandao", type: "uint256", indexed: false },
652
+ ],
653
+ anonymous: false,
654
+ },
655
+ {
656
+ type: "event",
657
+ name: "LauncherConfigured",
658
+ inputs: [{ name: "launcher", type: "address", indexed: true }],
659
+ anonymous: false,
660
+ },
661
+ { type: "error", name: "EmptyName", inputs: [] },
662
+ { type: "error", name: "EmptySymbol", inputs: [] },
663
+ { type: "error", name: "ZeroSupply", inputs: [] },
664
+ { type: "error", name: "ZeroCreator", inputs: [] },
665
+ { type: "error", name: "Unauthorized", inputs: [] },
666
+ { type: "error", name: "AlreadyConfigured", inputs: [] },
667
+ { type: "error", name: "InvalidLauncher", inputs: [] },
668
+ ] as const;
669
+
670
+ const abyssLaunchResultComponents = [
671
+ { name: "creator", type: "address" },
672
+ { name: "feeRecipient", type: "address" },
673
+ { name: "pool", type: "address" },
674
+ { name: "positionAccount", type: "address" },
675
+ { name: "tokenId", type: "uint256" },
676
+ { name: "amount0", type: "uint256" },
677
+ { name: "amount1", type: "uint256" },
678
+ { name: "created", type: "bool" },
679
+ ] as const;
680
+
681
+ const abyssLaunchParamsComponents = [
682
+ { name: "launchedToken", type: "address" },
683
+ { name: "feeRecipient", type: "address" },
684
+ { name: "creator", type: "address" },
685
+ {
686
+ name: "key",
687
+ type: "tuple",
688
+ components: [
689
+ { name: "token0", type: "address" },
690
+ { name: "token1", type: "address" },
691
+ { name: "profile", type: "uint8" },
692
+ { name: "fee", type: "uint24" },
693
+ { name: "quoteIsToken0", type: "bool" },
694
+ { name: "oracleConfigId", type: "bytes32" },
695
+ ],
696
+ },
697
+ { name: "sqrtPriceX96", type: "uint160" },
698
+ { name: "existingPriceMinimumX96", type: "uint160" },
699
+ { name: "existingPriceMaximumX96", type: "uint160" },
700
+ { name: "tickLower", type: "int24" },
701
+ { name: "tickUpper", type: "int24" },
702
+ { name: "liquidity", type: "uint128" },
703
+ { name: "amount0Maximum", type: "uint256" },
704
+ { name: "amount1Maximum", type: "uint256" },
705
+ { name: "deadline", type: "uint256" },
706
+ ] as const;
707
+
708
+ export const abyssLaunchCoordinatorAbi = [
709
+ {
710
+ type: "constructor",
711
+ stateMutability: "nonpayable",
712
+ inputs: [
713
+ { name: "factory_", type: "address" },
714
+ { name: "positionManager_", type: "address" },
715
+ { name: "positionLocker_", type: "address" },
716
+ { name: "tokenFactory_", type: "address" },
717
+ ],
718
+ },
719
+ {
720
+ type: "function",
721
+ name: "factory",
722
+ stateMutability: "view",
723
+ inputs: [],
724
+ outputs: [{ name: "", type: "address" }],
725
+ },
726
+ {
727
+ type: "function",
728
+ name: "positionManager",
729
+ stateMutability: "view",
730
+ inputs: [],
731
+ outputs: [{ name: "", type: "address" }],
732
+ },
733
+ {
734
+ type: "function",
735
+ name: "positionLocker",
736
+ stateMutability: "view",
737
+ inputs: [],
738
+ outputs: [{ name: "", type: "address" }],
739
+ },
740
+ {
741
+ type: "function",
742
+ name: "tokenFactory",
743
+ stateMutability: "view",
744
+ inputs: [],
745
+ outputs: [{ name: "", type: "address" }],
746
+ },
747
+ {
748
+ type: "function",
749
+ name: "launches",
750
+ stateMutability: "view",
751
+ inputs: [{ name: "launchedToken", type: "address" }],
752
+ outputs: [{ name: "result", type: "tuple", components: abyssLaunchResultComponents }],
753
+ },
754
+ {
755
+ type: "function",
756
+ name: "launch",
757
+ stateMutability: "nonpayable",
758
+ inputs: [{ name: "params", type: "tuple", components: abyssLaunchParamsComponents }],
759
+ outputs: [{ name: "result", type: "tuple", components: abyssLaunchResultComponents }],
760
+ },
761
+ {
762
+ type: "event",
763
+ name: "LaunchCompleted",
764
+ inputs: [
765
+ { name: "launchedToken", type: "address", indexed: true },
766
+ { name: "creator", type: "address", indexed: true },
767
+ { name: "pool", type: "address", indexed: true },
768
+ { name: "tokenId", type: "uint256", indexed: false },
769
+ { name: "positionAccount", type: "address", indexed: false },
770
+ { name: "feeRecipient", type: "address", indexed: false },
771
+ { name: "amount0", type: "uint256", indexed: false },
772
+ { name: "amount1", type: "uint256", indexed: false },
773
+ { name: "created", type: "bool", indexed: false },
774
+ ],
775
+ anonymous: false,
776
+ },
777
+ ] as const;
778
+
779
+ export const dispositionComponents = [
780
+ { name: "ownerBps", type: "uint16" },
781
+ { name: "rewardsBps", type: "uint16" },
782
+ { name: "burnBps", type: "uint16" },
783
+ ] as const;
784
+
785
+ export const launchTemplateComponents = [
786
+ { name: "tokenKindMask", type: "uint8" },
787
+ { name: "poolProfileMask", type: "uint8" },
788
+ { name: "rewardMode", type: "uint8" },
789
+ { name: "feeAssetMode", type: "uint8" },
790
+ { name: "rewardDuration", type: "uint32" },
791
+ { name: "launchedTokenIsQuote", type: "bool" },
792
+ { name: "launchedTokenDestinations", type: "uint8" },
793
+ { name: "pairedTokenDestinations", type: "uint8" },
794
+ ] as const;
795
+
796
+ const registryBytes32Getter = (name: string) =>
797
+ ({
798
+ type: "function",
799
+ name,
800
+ stateMutability: "view",
801
+ inputs: [],
802
+ outputs: [{ name: "", type: "bytes32" }],
803
+ }) as const;
804
+
805
+ const registryUint32Getter = (name: string) =>
806
+ ({
807
+ type: "function",
808
+ name,
809
+ stateMutability: "view",
810
+ inputs: [],
811
+ outputs: [{ name: "", type: "uint32" }],
812
+ }) as const;
813
+
814
+ const registryUint8Getter = (name: string) =>
815
+ ({
816
+ type: "function",
817
+ name,
818
+ stateMutability: "view",
819
+ inputs: [],
820
+ outputs: [{ name: "", type: "uint8" }],
821
+ }) as const;
822
+
823
+ export const launchTemplateRegistryAbi = [
824
+ registryBytes32Getter("STANDARD_TEMPLATE_ID"),
825
+ registryBytes32Getter("QUOTE_STAKING_TEMPLATE_ID"),
826
+ registryBytes32Getter("QUOTE_DIVIDENDS_TEMPLATE_ID"),
827
+ registryBytes32Getter("DUAL_STAKING_TEMPLATE_ID"),
828
+ registryBytes32Getter("DUAL_DIVIDENDS_TEMPLATE_ID"),
829
+ registryBytes32Getter("FEE_BURN_TEMPLATE_ID"),
830
+ registryUint32Getter("INITIAL_VERSION"),
831
+ registryUint32Getter("REWARD_DURATION"),
832
+ registryUint8Getter("DESTINATION_OWNER"),
833
+ registryUint8Getter("DESTINATION_REWARDS"),
834
+ registryUint8Getter("DESTINATION_BURN"),
835
+ registryUint8Getter("REWARD_MODE_NONE"),
836
+ registryUint8Getter("REWARD_MODE_STAKING"),
837
+ registryUint8Getter("REWARD_MODE_DIVIDENDS"),
838
+ registryUint8Getter("FEE_ASSET_MODE_PROFILE"),
839
+ registryUint8Getter("FEE_ASSET_MODE_PAIRED_ONLY"),
840
+ registryUint8Getter("FEE_ASSET_MODE_BOTH"),
841
+ registryUint8Getter("FEE_ASSET_MODE_LAUNCHED_ONLY"),
842
+ {
843
+ type: "function",
844
+ name: "registrar",
845
+ stateMutability: "view",
846
+ inputs: [],
847
+ outputs: [{ name: "", type: "address" }],
848
+ },
849
+ {
850
+ type: "function",
851
+ name: "registerTemplate",
852
+ stateMutability: "nonpayable",
853
+ inputs: [
854
+ { name: "templateId", type: "bytes32" },
855
+ { name: "version", type: "uint32" },
856
+ { name: "config", type: "tuple", components: launchTemplateComponents },
857
+ ],
858
+ outputs: [],
859
+ },
860
+ {
861
+ type: "function",
862
+ name: "template",
863
+ stateMutability: "view",
864
+ inputs: [
865
+ { name: "templateId", type: "bytes32" },
866
+ { name: "version", type: "uint32" },
867
+ ],
868
+ outputs: [{ name: "config", type: "tuple", components: launchTemplateComponents }],
869
+ },
870
+ {
871
+ type: "function",
872
+ name: "isRegistered",
873
+ stateMutability: "view",
874
+ inputs: [
875
+ { name: "templateId", type: "bytes32" },
876
+ { name: "version", type: "uint32" },
877
+ ],
878
+ outputs: [{ name: "", type: "bool" }],
879
+ },
880
+ {
881
+ type: "function",
882
+ name: "templateKey",
883
+ stateMutability: "pure",
884
+ inputs: [
885
+ { name: "templateId", type: "bytes32" },
886
+ { name: "version", type: "uint32" },
887
+ ],
888
+ outputs: [{ name: "", type: "bytes32" }],
889
+ },
890
+ {
891
+ type: "function",
892
+ name: "supportsTokenKind",
893
+ stateMutability: "pure",
894
+ inputs: [
895
+ { name: "config", type: "tuple", components: launchTemplateComponents },
896
+ { name: "kind", type: "uint8" },
897
+ ],
898
+ outputs: [{ name: "", type: "bool" }],
899
+ },
900
+ {
901
+ type: "function",
902
+ name: "supportsPoolProfile",
903
+ stateMutability: "pure",
904
+ inputs: [
905
+ { name: "config", type: "tuple", components: launchTemplateComponents },
906
+ { name: "profile", type: "uint8" },
907
+ ],
908
+ outputs: [{ name: "", type: "bool" }],
909
+ },
910
+ {
911
+ type: "function",
912
+ name: "supportsDispositions",
913
+ stateMutability: "pure",
914
+ inputs: [
915
+ { name: "config", type: "tuple", components: launchTemplateComponents },
916
+ { name: "profile", type: "uint8" },
917
+ { name: "launchedTokenFees", type: "tuple", components: dispositionComponents },
918
+ { name: "pairedTokenFees", type: "tuple", components: dispositionComponents },
919
+ ],
920
+ outputs: [{ name: "", type: "bool" }],
921
+ },
922
+ {
923
+ type: "event",
924
+ name: "TemplateRegistered",
925
+ inputs: [
926
+ { name: "templateId", type: "bytes32", indexed: true },
927
+ { name: "version", type: "uint32", indexed: true },
928
+ { name: "config", type: "tuple", components: launchTemplateComponents, indexed: false },
929
+ ],
930
+ anonymous: false,
931
+ },
932
+ { type: "error", name: "InvalidTemplate", inputs: [] },
933
+ { type: "error", name: "TemplateAlreadyRegistered", inputs: [] },
934
+ { type: "error", name: "Unauthorized", inputs: [] },
935
+ ] as const;
936
+
937
+ export const atomicTokenConfigComponents = [
938
+ { name: "kind", type: "uint8" },
939
+ { name: "name", type: "string" },
940
+ { name: "symbol", type: "string" },
941
+ { name: "decimals", type: "uint8" },
942
+ { name: "supply", type: "uint256" },
943
+ ] as const;
944
+
945
+ export const atomicPoolConfigComponents = [
946
+ { name: "pairedToken", type: "address" },
947
+ { name: "launchedTokenIsQuote", type: "bool" },
948
+ { name: "profile", type: "uint8" },
949
+ { name: "fee", type: "uint24" },
950
+ { name: "oracleConfigId", type: "bytes32" },
951
+ { name: "launchTick", type: "int24" },
952
+ { name: "liquidity", type: "uint128" },
953
+ { name: "launchedTokenAmountMaximum", type: "uint256" },
954
+ { name: "pairedTokenAmountMaximum", type: "uint256" },
955
+ ] as const;
956
+
957
+ export const atomicInitialBuyComponents = [
958
+ { name: "pairedTokenAmountIn", type: "uint256" },
959
+ { name: "launchedTokenAmountOutMinimum", type: "uint256" },
960
+ { name: "sqrtPriceLimitX96", type: "uint160" },
961
+ ] as const;
962
+
963
+
964
+ export const atomicLaunchRequestComponents = [
965
+ { name: "creator", type: "address" },
966
+ { name: "templateId", type: "bytes32" },
967
+ { name: "templateVersion", type: "uint32" },
968
+ { name: "token", type: "tuple", components: atomicTokenConfigComponents },
969
+ { name: "pool", type: "tuple", components: atomicPoolConfigComponents },
970
+ { name: "initialBuy", type: "tuple", components: atomicInitialBuyComponents },
971
+ { name: "launchedTokenFees", type: "tuple", components: dispositionComponents },
972
+ { name: "pairedTokenFees", type: "tuple", components: dispositionComponents },
973
+ { name: "deadline", type: "uint256" },
974
+ ] as const;
975
+
976
+ export const atomicLaunchReceiptComponents = [
977
+ { name: "token", type: "address" },
978
+ { name: "pool", type: "address" },
979
+ { name: "tokenId", type: "uint256" },
980
+ { name: "liquidityLaunchedTokenAmount", type: "uint256" },
981
+ { name: "liquidityPairedTokenAmount", type: "uint256" },
982
+ { name: "initialBuyPairedTokenAmount", type: "uint256" },
983
+ { name: "initialBuyLaunchedTokenAmount", type: "uint256" },
984
+ { name: "rewards", type: "address" },
985
+ { name: "splitter", type: "address" },
986
+ { name: "feeClaimer", type: "address" },
987
+ ] as const;
988
+
989
+ const bytes32TemplateGetter = (name: string) =>
990
+ ({
991
+ type: "function",
992
+ name,
993
+ stateMutability: "view",
994
+ inputs: [],
995
+ outputs: [{ name: "", type: "bytes32" }],
996
+ }) as const;
997
+
998
+ const addressGetter = (name: string) =>
999
+ ({
1000
+ type: "function",
1001
+ name,
1002
+ stateMutability: "view",
1003
+ inputs: [],
1004
+ outputs: [{ name: "", type: "address" }],
1005
+ }) as const;
1006
+
1007
+ const uint256Getter = (name: string) =>
1008
+ ({
1009
+ type: "function",
1010
+ name,
1011
+ stateMutability: "view",
1012
+ inputs: [],
1013
+ outputs: [{ name: "", type: "uint256" }],
1014
+ }) as const;
1015
+
1016
+ export const atomicLaunchFactoryAbi = [
1017
+ bytes32TemplateGetter("STANDARD_TEMPLATE_ID"),
1018
+ bytes32TemplateGetter("QUOTE_STAKING_TEMPLATE_ID"),
1019
+ bytes32TemplateGetter("QUOTE_DIVIDENDS_TEMPLATE_ID"),
1020
+ bytes32TemplateGetter("DUAL_STAKING_TEMPLATE_ID"),
1021
+ bytes32TemplateGetter("DUAL_DIVIDENDS_TEMPLATE_ID"),
1022
+ bytes32TemplateGetter("FEE_BURN_TEMPLATE_ID"),
1023
+ {
1024
+ type: "function",
1025
+ name: "INITIAL_TEMPLATE_VERSION",
1026
+ stateMutability: "view",
1027
+ inputs: [],
1028
+ outputs: [{ name: "", type: "uint32" }],
1029
+ },
1030
+ addressGetter("abyssFactory"),
1031
+ addressGetter("coordinator"),
1032
+ addressGetter("feeOwnerRegistry"),
1033
+ uint256Getter("launchFee"),
1034
+ addressGetter("launchFeeRecipient"),
1035
+ addressGetter("moduleFactory"),
1036
+ addressGetter("positionLocker"),
1037
+ addressGetter("router"),
1038
+ addressGetter("templateRegistry"),
1039
+ addressGetter("tokenFactory"),
1040
+ addressGetter("wrappedNative"),
1041
+ {
1042
+ type: "function",
1043
+ name: "deployAndLaunch",
1044
+ stateMutability: "payable",
1045
+ inputs: [{ name: "request", type: "tuple", components: atomicLaunchRequestComponents }],
1046
+ outputs: [{ name: "receipt", type: "tuple", components: atomicLaunchReceiptComponents }],
1047
+ },
1048
+ {
1049
+ type: "event",
1050
+ name: "AtomicLaunchCompleted",
1051
+ inputs: [
1052
+ { name: "token", type: "address", indexed: true },
1053
+ { name: "creator", type: "address", indexed: true },
1054
+ { name: "pool", type: "address", indexed: true },
1055
+ { name: "templateId", type: "bytes32", indexed: false },
1056
+ { name: "templateVersion", type: "uint32", indexed: false },
1057
+ { name: "tokenId", type: "uint256", indexed: false },
1058
+ { name: "liquidityLaunchedTokenAmount", type: "uint256", indexed: false },
1059
+ { name: "liquidityPairedTokenAmount", type: "uint256", indexed: false },
1060
+ { name: "initialBuyPairedTokenAmount", type: "uint256", indexed: false },
1061
+ { name: "initialBuyLaunchedTokenAmount", type: "uint256", indexed: false },
1062
+ ],
1063
+ anonymous: false,
1064
+ },
1065
+ {
1066
+ type: "event",
1067
+ name: "LaunchFeePaid",
1068
+ inputs: [
1069
+ { name: "token", type: "address", indexed: true },
1070
+ { name: "payer", type: "address", indexed: true },
1071
+ { name: "recipient", type: "address", indexed: true },
1072
+ { name: "amount", type: "uint256", indexed: false },
1073
+ ],
1074
+ anonymous: false,
1075
+ },
1076
+ {
1077
+ type: "event",
1078
+ name: "LaunchModulesDeployed",
1079
+ inputs: [
1080
+ { name: "token", type: "address", indexed: true },
1081
+ { name: "rewards", type: "address", indexed: false },
1082
+ { name: "splitter", type: "address", indexed: false },
1083
+ { name: "feeClaimer", type: "address", indexed: false },
1084
+ ],
1085
+ anonymous: false,
1086
+ },
1087
+ { type: "error", name: "ApprovalMismatch", inputs: [] },
1088
+ { type: "error", name: "ApproveFailed", inputs: [] },
1089
+ { type: "error", name: "ExistingPool", inputs: [] },
1090
+ { type: "error", name: "InexactTransfer", inputs: [] },
1091
+ { type: "error", name: "InvalidBinding", inputs: [] },
1092
+ { type: "error", name: "InvalidConfiguration", inputs: [] },
1093
+ { type: "error", name: "InvalidSwapResult", inputs: [] },
1094
+ { type: "error", name: "Reentrancy", inputs: [] },
1095
+ { type: "error", name: "TransferFailed", inputs: [] },
1096
+ { type: "error", name: "TransferFromFailed", inputs: [] },
1097
+ { type: "error", name: "UnsupportedTemplate", inputs: [] },
1098
+ {
1099
+ type: "error",
1100
+ name: "IncorrectLaunchFee",
1101
+ inputs: [
1102
+ { name: "provided", type: "uint256" },
1103
+ { name: "required", type: "uint256" },
1104
+ ],
1105
+ },
1106
+ { type: "error", name: "LaunchFeePaymentFailed", inputs: [] },
1107
+ ] as const;
1108
+ // StreamedRewards.sol:90,95,104,113,45,40-41,118,123,26 — the shared reward surface inherited
1109
+ // by StakingRewardVault and HolderDividendTracker. Tuple components mirror the RewardData
1110
+ // struct fields (StreamedRewards.sol:29-38); note the two `earned` overloads.
1111
+ const streamedRewardsAbi = [
1112
+ {
1113
+ type: "function",
1114
+ name: "REWARDS_DURATION",
1115
+ stateMutability: "view",
1116
+ inputs: [],
1117
+ outputs: [{ name: "", type: "uint256" }],
1118
+ },
1119
+ {
1120
+ type: "function",
1121
+ name: "claim",
1122
+ stateMutability: "nonpayable",
1123
+ inputs: [],
1124
+ outputs: [
1125
+ { name: "amount0", type: "uint256" },
1126
+ { name: "amount1", type: "uint256" },
1127
+ ],
1128
+ },
1129
+ {
1130
+ type: "function",
1131
+ name: "claimFor",
1132
+ stateMutability: "nonpayable",
1133
+ inputs: [{ name: "beneficiary", type: "address" }],
1134
+ outputs: [
1135
+ { name: "amount0", type: "uint256" },
1136
+ { name: "amount1", type: "uint256" },
1137
+ ],
1138
+ },
1139
+ {
1140
+ type: "function",
1141
+ name: "earned",
1142
+ stateMutability: "view",
1143
+ inputs: [{ name: "account", type: "address" }],
1144
+ outputs: [
1145
+ { name: "amount0", type: "uint256" },
1146
+ { name: "amount1", type: "uint256" },
1147
+ ],
1148
+ },
1149
+ {
1150
+ type: "function",
1151
+ name: "earned",
1152
+ stateMutability: "view",
1153
+ inputs: [
1154
+ { name: "account", type: "address" },
1155
+ { name: "rewardToken", type: "address" },
1156
+ ],
1157
+ outputs: [{ name: "amount", type: "uint256" }],
1158
+ },
1159
+ {
1160
+ type: "function",
1161
+ name: "lastTimeRewardApplicable",
1162
+ stateMutability: "view",
1163
+ inputs: [{ name: "rewardToken", type: "address" }],
1164
+ outputs: [{ name: "", type: "uint256" }],
1165
+ },
1166
+ {
1167
+ type: "function",
1168
+ name: "rewardData",
1169
+ stateMutability: "view",
1170
+ inputs: [{ name: "rewardToken", type: "address" }],
1171
+ outputs: [
1172
+ { name: "periodFinish", type: "uint256" },
1173
+ { name: "rewardRate", type: "uint256" },
1174
+ { name: "lastUpdateTime", type: "uint256" },
1175
+ { name: "rewardPerTokenStored", type: "uint256" },
1176
+ { name: "rewardPerTokenRemainder", type: "uint256" },
1177
+ { name: "remainingRewards", type: "uint256" },
1178
+ { name: "queuedRewards", type: "uint256" },
1179
+ { name: "accountedBalance", type: "uint256" },
1180
+ ],
1181
+ },
1182
+ {
1183
+ type: "function",
1184
+ name: "rewardPerToken",
1185
+ stateMutability: "view",
1186
+ inputs: [{ name: "rewardToken", type: "address" }],
1187
+ outputs: [{ name: "", type: "uint256" }],
1188
+ },
1189
+ {
1190
+ type: "function",
1191
+ name: "rewardToken0",
1192
+ stateMutability: "view",
1193
+ inputs: [],
1194
+ outputs: [{ name: "", type: "address" }],
1195
+ },
1196
+ {
1197
+ type: "function",
1198
+ name: "rewardToken1",
1199
+ stateMutability: "view",
1200
+ inputs: [],
1201
+ outputs: [{ name: "", type: "address" }],
1202
+ },
1203
+ {
1204
+ type: "function",
1205
+ name: "rewardsDistributor",
1206
+ stateMutability: "view",
1207
+ inputs: [],
1208
+ outputs: [{ name: "", type: "address" }],
1209
+ },
1210
+ {
1211
+ type: "event",
1212
+ name: "RewardNotified",
1213
+ inputs: [
1214
+ { name: "rewardToken", type: "address", indexed: true },
1215
+ { name: "amount", type: "uint256", indexed: false },
1216
+ { name: "totalScheduled", type: "uint256", indexed: false },
1217
+ ],
1218
+ anonymous: false,
1219
+ },
1220
+ {
1221
+ type: "event",
1222
+ name: "RewardQueued",
1223
+ inputs: [
1224
+ { name: "rewardToken", type: "address", indexed: true },
1225
+ { name: "amount", type: "uint256", indexed: false },
1226
+ ],
1227
+ anonymous: false,
1228
+ },
1229
+ {
1230
+ type: "event",
1231
+ name: "RewardPaid",
1232
+ inputs: [
1233
+ { name: "beneficiary", type: "address", indexed: true },
1234
+ { name: "rewardToken", type: "address", indexed: true },
1235
+ { name: "amount", type: "uint256", indexed: false },
1236
+ ],
1237
+ anonymous: false,
1238
+ },
1239
+ { type: "error", name: "InexactTransfer", inputs: [] },
1240
+ { type: "error", name: "InvalidRewardTokens", inputs: [] },
1241
+ { type: "error", name: "NothingToClaim", inputs: [] },
1242
+ { type: "error", name: "RewardBalanceDeficit", inputs: [] },
1243
+ { type: "error", name: "Unauthorized", inputs: [] },
1244
+ { type: "error", name: "UnsupportedRewardToken", inputs: [] },
1245
+ { type: "error", name: "ZeroAddress", inputs: [] },
1246
+ { type: "error", name: "ZeroAmount", inputs: [] },
1247
+ ] as const;
1248
+
1249
+ // StakingRewardVault.sol:25,45,15-16,14,11-12 plus the full StreamedRewards surface.
1250
+ export const stakingRewardVaultAbi = [
1251
+ ...streamedRewardsAbi,
1252
+ {
1253
+ type: "function",
1254
+ name: "balanceOf",
1255
+ stateMutability: "view",
1256
+ inputs: [{ name: "account", type: "address" }],
1257
+ outputs: [{ name: "amount", type: "uint256" }],
1258
+ },
1259
+ {
1260
+ type: "function",
1261
+ name: "stake",
1262
+ stateMutability: "nonpayable",
1263
+ inputs: [{ name: "amount", type: "uint256" }],
1264
+ outputs: [],
1265
+ },
1266
+ {
1267
+ type: "function",
1268
+ name: "stakingToken",
1269
+ stateMutability: "view",
1270
+ inputs: [],
1271
+ outputs: [{ name: "", type: "address" }],
1272
+ },
1273
+ {
1274
+ type: "function",
1275
+ name: "totalSupply",
1276
+ stateMutability: "view",
1277
+ inputs: [],
1278
+ outputs: [{ name: "", type: "uint256" }],
1279
+ },
1280
+ {
1281
+ type: "function",
1282
+ name: "withdraw",
1283
+ stateMutability: "nonpayable",
1284
+ inputs: [{ name: "amount", type: "uint256" }],
1285
+ outputs: [],
1286
+ },
1287
+ {
1288
+ type: "event",
1289
+ name: "Staked",
1290
+ inputs: [
1291
+ { name: "account", type: "address", indexed: true },
1292
+ { name: "amount", type: "uint256", indexed: false },
1293
+ ],
1294
+ anonymous: false,
1295
+ },
1296
+ {
1297
+ type: "event",
1298
+ name: "Withdrawn",
1299
+ inputs: [
1300
+ { name: "account", type: "address", indexed: true },
1301
+ { name: "amount", type: "uint256", indexed: false },
1302
+ ],
1303
+ anonymous: false,
1304
+ },
1305
+ { type: "error", name: "InsufficientStake", inputs: [] },
1306
+ ] as const;
1307
+
1308
+ // HolderDividendTracker.sol:94,23,24,21,22,19 plus the full StreamedRewards surface.
1309
+ export const holderDividendTrackerAbi = [
1310
+ ...streamedRewardsAbi,
1311
+ {
1312
+ type: "function",
1313
+ name: "eligibleBalanceOf",
1314
+ stateMutability: "view",
1315
+ inputs: [{ name: "account", type: "address" }],
1316
+ outputs: [{ name: "", type: "uint256" }],
1317
+ },
1318
+ {
1319
+ type: "function",
1320
+ name: "eligibleSupply",
1321
+ stateMutability: "view",
1322
+ inputs: [],
1323
+ outputs: [{ name: "", type: "uint256" }],
1324
+ },
1325
+ {
1326
+ type: "function",
1327
+ name: "isExcluded",
1328
+ stateMutability: "view",
1329
+ inputs: [{ name: "account", type: "address" }],
1330
+ outputs: [{ name: "excluded", type: "bool" }],
1331
+ },
1332
+ {
1333
+ type: "function",
1334
+ name: "protocolAdmin",
1335
+ stateMutability: "view",
1336
+ inputs: [],
1337
+ outputs: [{ name: "", type: "address" }],
1338
+ },
1339
+ {
1340
+ type: "function",
1341
+ name: "trackedToken",
1342
+ stateMutability: "view",
1343
+ inputs: [],
1344
+ outputs: [{ name: "", type: "address" }],
1345
+ },
1346
+ {
1347
+ type: "event",
1348
+ name: "AccountExcluded",
1349
+ inputs: [
1350
+ { name: "account", type: "address", indexed: true },
1351
+ { name: "initial", type: "bool", indexed: true },
1352
+ ],
1353
+ anonymous: false,
1354
+ },
1355
+ ] as const;
1356
+
1357
+ // HolderDividendToken.sol:26,21 on top of the burnable fixed-supply token surface.
1358
+ export const holderDividendTokenAbi = [
1359
+ ...burnableFixedSupplyTokenAbi,
1360
+ {
1361
+ type: "function",
1362
+ name: "rewardTracker",
1363
+ stateMutability: "view",
1364
+ inputs: [],
1365
+ outputs: [{ name: "", type: "address" }],
1366
+ },
1367
+ {
1368
+ type: "event",
1369
+ name: "RewardTrackerConfigured",
1370
+ inputs: [{ name: "tracker", type: "address", indexed: true }],
1371
+ anonymous: false,
1372
+ },
1373
+ ] as const;
1374
+
1375
+ // LaunchFeeSplitter.sol:120,181,56,91,95,47-49,53,54,52,33-43. Policy tuple components mirror
1376
+ // the Disposition struct (contracts/src/interfaces/IAbyssLaunch.sol:23-27).
1377
+ export const launchFeeSplitterAbi = [
1378
+ {
1379
+ type: "function",
1380
+ name: "claimableOwnerFees",
1381
+ stateMutability: "view",
1382
+ inputs: [
1383
+ { name: "owner", type: "address" },
1384
+ { name: "token", type: "address" },
1385
+ ],
1386
+ outputs: [{ name: "amount", type: "uint256" }],
1387
+ },
1388
+ {
1389
+ type: "function",
1390
+ name: "claimer",
1391
+ stateMutability: "view",
1392
+ inputs: [],
1393
+ outputs: [{ name: "", type: "address" }],
1394
+ },
1395
+ {
1396
+ type: "function",
1397
+ name: "claimOwnerFees",
1398
+ stateMutability: "nonpayable",
1399
+ inputs: [
1400
+ { name: "token", type: "address" },
1401
+ { name: "recipient", type: "address" },
1402
+ ],
1403
+ outputs: [{ name: "amount", type: "uint256" }],
1404
+ },
1405
+ {
1406
+ type: "function",
1407
+ name: "distribute",
1408
+ stateMutability: "nonpayable",
1409
+ inputs: [{ name: "token", type: "address" }],
1410
+ outputs: [],
1411
+ },
1412
+ {
1413
+ type: "function",
1414
+ name: "launchToken",
1415
+ stateMutability: "view",
1416
+ inputs: [],
1417
+ outputs: [{ name: "", type: "address" }],
1418
+ },
1419
+ {
1420
+ type: "function",
1421
+ name: "requiresRewards",
1422
+ stateMutability: "view",
1423
+ inputs: [],
1424
+ outputs: [{ name: "", type: "bool" }],
1425
+ },
1426
+ {
1427
+ type: "function",
1428
+ name: "rewards",
1429
+ stateMutability: "view",
1430
+ inputs: [],
1431
+ outputs: [{ name: "", type: "address" }],
1432
+ },
1433
+ {
1434
+ type: "function",
1435
+ name: "token0",
1436
+ stateMutability: "view",
1437
+ inputs: [],
1438
+ outputs: [{ name: "", type: "address" }],
1439
+ },
1440
+ {
1441
+ type: "function",
1442
+ name: "token0Policy",
1443
+ stateMutability: "view",
1444
+ inputs: [],
1445
+ outputs: [{ name: "", type: "tuple", components: dispositionComponents }],
1446
+ },
1447
+ {
1448
+ type: "function",
1449
+ name: "token1",
1450
+ stateMutability: "view",
1451
+ inputs: [],
1452
+ outputs: [{ name: "", type: "address" }],
1453
+ },
1454
+ {
1455
+ type: "function",
1456
+ name: "token1Policy",
1457
+ stateMutability: "view",
1458
+ inputs: [],
1459
+ outputs: [{ name: "", type: "tuple", components: dispositionComponents }],
1460
+ },
1461
+ {
1462
+ type: "event",
1463
+ name: "Distributed",
1464
+ inputs: [
1465
+ { name: "token", type: "address", indexed: true },
1466
+ { name: "owner", type: "address", indexed: true },
1467
+ { name: "amount", type: "uint256", indexed: false },
1468
+ { name: "ownerAmount", type: "uint256", indexed: false },
1469
+ { name: "rewardsAmount", type: "uint256", indexed: false },
1470
+ { name: "burnAmount", type: "uint256", indexed: false },
1471
+ ],
1472
+ anonymous: false,
1473
+ },
1474
+ {
1475
+ type: "event",
1476
+ name: "OwnerFeesClaimed",
1477
+ inputs: [
1478
+ { name: "owner", type: "address", indexed: true },
1479
+ { name: "token", type: "address", indexed: true },
1480
+ { name: "recipient", type: "address", indexed: true },
1481
+ { name: "amount", type: "uint256", indexed: false },
1482
+ ],
1483
+ anonymous: false,
1484
+ },
1485
+ { type: "error", name: "InactivePolicy", inputs: [] },
1486
+ { type: "error", name: "InexactTransfer", inputs: [] },
1487
+ { type: "error", name: "InvalidBinding", inputs: [] },
1488
+ { type: "error", name: "InvalidRecipient", inputs: [] },
1489
+ { type: "error", name: "NothingToClaim", inputs: [] },
1490
+ { type: "error", name: "Unauthorized", inputs: [] },
1491
+ { type: "error", name: "UnsupportedToken", inputs: [] },
1492
+ ] as const;
1493
+
1494
+ // LockedFeeClaimer.sol:55,24-28,30 — the single atomic fee-moving transaction plus its
1495
+ // immutable binding reads.
1496
+ export const lockedFeeClaimerAbi = [
1497
+ {
1498
+ type: "function",
1499
+ name: "claimAndDistribute",
1500
+ stateMutability: "nonpayable",
1501
+ inputs: [],
1502
+ outputs: [
1503
+ { name: "amount0", type: "uint256" },
1504
+ { name: "amount1", type: "uint256" },
1505
+ ],
1506
+ },
1507
+ {
1508
+ type: "function",
1509
+ name: "positionLocker",
1510
+ stateMutability: "view",
1511
+ inputs: [],
1512
+ outputs: [{ name: "", type: "address" }],
1513
+ },
1514
+ {
1515
+ type: "function",
1516
+ name: "splitter",
1517
+ stateMutability: "view",
1518
+ inputs: [],
1519
+ outputs: [{ name: "", type: "address" }],
1520
+ },
1521
+ {
1522
+ type: "function",
1523
+ name: "token0",
1524
+ stateMutability: "view",
1525
+ inputs: [],
1526
+ outputs: [{ name: "", type: "address" }],
1527
+ },
1528
+ {
1529
+ type: "function",
1530
+ name: "token1",
1531
+ stateMutability: "view",
1532
+ inputs: [],
1533
+ outputs: [{ name: "", type: "address" }],
1534
+ },
1535
+ {
1536
+ type: "function",
1537
+ name: "tokenId",
1538
+ stateMutability: "view",
1539
+ inputs: [],
1540
+ outputs: [{ name: "", type: "uint256" }],
1541
+ },
1542
+ {
1543
+ type: "event",
1544
+ name: "ClaimedAndDistributed",
1545
+ inputs: [
1546
+ { name: "caller", type: "address", indexed: true },
1547
+ { name: "amount0", type: "uint256", indexed: false },
1548
+ { name: "amount1", type: "uint256", indexed: false },
1549
+ ],
1550
+ anonymous: false,
1551
+ },
1552
+ { type: "error", name: "ClaimMismatch", inputs: [] },
1553
+ { type: "error", name: "InexactTransfer", inputs: [] },
1554
+ { type: "error", name: "InvalidBinding", inputs: [] },
1555
+ { type: "error", name: "InvalidLock", inputs: [] },
1556
+ ] as const;
1557
+
1558
+ // LaunchFeeOwnerRegistry.sol:27-28 — fee-owner identity and bound splitter per launch token.
1559
+ export const launchFeeOwnerRegistryAbi = [
1560
+ {
1561
+ type: "function",
1562
+ name: "feeOwner",
1563
+ stateMutability: "view",
1564
+ inputs: [{ name: "launch", type: "address" }],
1565
+ outputs: [{ name: "owner", type: "address" }],
1566
+ },
1567
+ {
1568
+ type: "function",
1569
+ name: "feeSplitter",
1570
+ stateMutability: "view",
1571
+ inputs: [{ name: "launch", type: "address" }],
1572
+ outputs: [{ name: "splitter", type: "address" }],
1573
+ },
1574
+ ] as const;