@aegis-engine/core 0.1.3 → 0.2.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.
@@ -0,0 +1,720 @@
1
+ /**
2
+ * This file was auto-generated by openapi-typescript.
3
+ * Do not make direct changes to the file.
4
+ */
5
+ export interface paths {
6
+ "/v1/health": {
7
+ parameters: {
8
+ query?: never;
9
+ header?: never;
10
+ path?: never;
11
+ cookie?: never;
12
+ };
13
+ /** Liveness check */
14
+ get: operations["getHealth"];
15
+ put?: never;
16
+ post?: never;
17
+ delete?: never;
18
+ options?: never;
19
+ head?: never;
20
+ patch?: never;
21
+ trace?: never;
22
+ };
23
+ "/v1/config": {
24
+ parameters: {
25
+ query?: never;
26
+ header?: never;
27
+ path?: never;
28
+ cookie?: never;
29
+ };
30
+ /**
31
+ * Get swap policy and static config
32
+ * @description Returns the chain list, contract registry, router and spender allowlists, quote defaults, and output fee policy that clients enforce before signing.
33
+ */
34
+ get: operations["getConfig"];
35
+ put?: never;
36
+ post?: never;
37
+ delete?: never;
38
+ options?: never;
39
+ head?: never;
40
+ patch?: never;
41
+ trace?: never;
42
+ };
43
+ "/v1/tokens": {
44
+ parameters: {
45
+ query?: never;
46
+ header?: never;
47
+ path?: never;
48
+ cookie?: never;
49
+ };
50
+ /** List curated tokens for a chain */
51
+ get: operations["listTokens"];
52
+ put?: never;
53
+ post?: never;
54
+ delete?: never;
55
+ options?: never;
56
+ head?: never;
57
+ patch?: never;
58
+ trace?: never;
59
+ };
60
+ "/v1/tokens/by-address": {
61
+ parameters: {
62
+ query?: never;
63
+ header?: never;
64
+ path?: never;
65
+ cookie?: never;
66
+ };
67
+ /**
68
+ * List curated tokens by address
69
+ * @description Filters curated token metadata to the requested comma-separated EVM token addresses. Matching is case-insensitive and unknown addresses are omitted.
70
+ */
71
+ get: operations["listTokensByAddress"];
72
+ put?: never;
73
+ post?: never;
74
+ delete?: never;
75
+ options?: never;
76
+ head?: never;
77
+ patch?: never;
78
+ trace?: never;
79
+ };
80
+ "/v1/markets": {
81
+ parameters: {
82
+ query?: never;
83
+ header?: never;
84
+ path?: never;
85
+ cookie?: never;
86
+ };
87
+ /**
88
+ * List curated Aegis swap markets for a chain
89
+ * @description Returns the backend-owned source of truth for market status, labels, pool keys, display metrics, and warnings. Metrics are display data and are not execution inputs.
90
+ */
91
+ get: operations["listMarkets"];
92
+ put?: never;
93
+ post?: never;
94
+ delete?: never;
95
+ options?: never;
96
+ head?: never;
97
+ patch?: never;
98
+ trace?: never;
99
+ };
100
+ "/v1/swap/quote": {
101
+ parameters: {
102
+ query?: never;
103
+ header?: never;
104
+ path?: never;
105
+ cookie?: never;
106
+ };
107
+ get?: never;
108
+ put?: never;
109
+ /**
110
+ * Create an indicative swap quote
111
+ * @description Returns a fast, non-executable price estimate for first paint. Clients must re-quote on-chain before building or signing a transaction. Only aegis-direct-v4 markets are quoted by this backend; Kyber is quoted client-side.
112
+ */
113
+ post: operations["createIndicativeSwapQuote"];
114
+ delete?: never;
115
+ options?: never;
116
+ head?: never;
117
+ patch?: never;
118
+ trace?: never;
119
+ };
120
+ "/v1/openapi.json": {
121
+ parameters: {
122
+ query?: never;
123
+ header?: never;
124
+ path?: never;
125
+ cookie?: never;
126
+ };
127
+ /** Get this OpenAPI document */
128
+ get: operations["getOpenApiSpec"];
129
+ put?: never;
130
+ post?: never;
131
+ delete?: never;
132
+ options?: never;
133
+ head?: never;
134
+ patch?: never;
135
+ trace?: never;
136
+ };
137
+ }
138
+ export type webhooks = Record<string, never>;
139
+ export interface components {
140
+ schemas: {
141
+ /**
142
+ * @example 130
143
+ * @enum {string}
144
+ */
145
+ ChainIdQuery: "1" | "130" | "8453";
146
+ HealthResponse: {
147
+ /** @enum {boolean} */
148
+ ok: true;
149
+ };
150
+ ErrorResponse: {
151
+ error: string;
152
+ };
153
+ ServerErrorResponse: {
154
+ error: string;
155
+ details: string;
156
+ };
157
+ SwapChain: {
158
+ /**
159
+ * @example 130
160
+ * @enum {integer}
161
+ */
162
+ chainId: 1 | 130 | 8453;
163
+ slug: string;
164
+ name: string;
165
+ };
166
+ QuoteDefaults: {
167
+ /** @enum {number} */
168
+ ttlSeconds: 15;
169
+ /** @enum {number} */
170
+ defaultSlippageBps: 100;
171
+ /** @enum {number} */
172
+ maxSlippageBps: 2000;
173
+ };
174
+ SwapContracts: {
175
+ aegisRouter?: string;
176
+ permit2?: string;
177
+ v4Quoter?: string;
178
+ v4PoolManager?: string;
179
+ };
180
+ SwapContractsByChain: {
181
+ 1: {
182
+ aegisRouter?: string;
183
+ permit2?: string;
184
+ v4Quoter?: string;
185
+ v4PoolManager?: string;
186
+ };
187
+ 130: {
188
+ aegisRouter?: string;
189
+ permit2?: string;
190
+ v4Quoter?: string;
191
+ v4PoolManager?: string;
192
+ };
193
+ 8453: {
194
+ aegisRouter?: string;
195
+ permit2?: string;
196
+ v4Quoter?: string;
197
+ v4PoolManager?: string;
198
+ };
199
+ };
200
+ SwapAllowlists: {
201
+ routers: string[];
202
+ spenders: string[];
203
+ };
204
+ SwapAllowlistsByChain: {
205
+ 1: {
206
+ routers: string[];
207
+ spenders: string[];
208
+ };
209
+ 130: {
210
+ routers: string[];
211
+ spenders: string[];
212
+ };
213
+ 8453: {
214
+ routers: string[];
215
+ spenders: string[];
216
+ };
217
+ };
218
+ SwapFee: {
219
+ /** @enum {number} */
220
+ outputFeeBps: 50;
221
+ /** @enum {string} */
222
+ recipient: "0x8ea2C7de60ef1Cd4dcE64ea2DDDe2f99F0127eFC";
223
+ };
224
+ SwapConfig: {
225
+ /** @enum {string} */
226
+ schemaVersion: "1";
227
+ chains: {
228
+ /**
229
+ * @example 130
230
+ * @enum {integer}
231
+ */
232
+ chainId: 1 | 130 | 8453;
233
+ slug: string;
234
+ name: string;
235
+ }[];
236
+ providers: ("aegis-direct-v4" | "kyber")[];
237
+ quote: {
238
+ /** @enum {number} */
239
+ ttlSeconds: 15;
240
+ /** @enum {number} */
241
+ defaultSlippageBps: 100;
242
+ /** @enum {number} */
243
+ maxSlippageBps: 2000;
244
+ };
245
+ contracts: {
246
+ 1: {
247
+ aegisRouter?: string;
248
+ permit2?: string;
249
+ v4Quoter?: string;
250
+ v4PoolManager?: string;
251
+ };
252
+ 130: {
253
+ aegisRouter?: string;
254
+ permit2?: string;
255
+ v4Quoter?: string;
256
+ v4PoolManager?: string;
257
+ };
258
+ 8453: {
259
+ aegisRouter?: string;
260
+ permit2?: string;
261
+ v4Quoter?: string;
262
+ v4PoolManager?: string;
263
+ };
264
+ };
265
+ allowlists: {
266
+ 1: {
267
+ routers: string[];
268
+ spenders: string[];
269
+ };
270
+ 130: {
271
+ routers: string[];
272
+ spenders: string[];
273
+ };
274
+ 8453: {
275
+ routers: string[];
276
+ spenders: string[];
277
+ };
278
+ };
279
+ fee: {
280
+ /** @enum {number} */
281
+ outputFeeBps: 50;
282
+ /** @enum {string} */
283
+ recipient: "0x8ea2C7de60ef1Cd4dcE64ea2DDDe2f99F0127eFC";
284
+ };
285
+ };
286
+ Token: {
287
+ id: string;
288
+ /**
289
+ * @example 130
290
+ * @enum {integer}
291
+ */
292
+ chainId: 1 | 130 | 8453;
293
+ address: string;
294
+ symbol: string;
295
+ displayName: string;
296
+ fullName: string;
297
+ decimals: number;
298
+ priceUsd: number;
299
+ iconUrl: string;
300
+ stable: boolean;
301
+ };
302
+ TokenList: {
303
+ id: string;
304
+ /**
305
+ * @example 130
306
+ * @enum {integer}
307
+ */
308
+ chainId: 1 | 130 | 8453;
309
+ address: string;
310
+ symbol: string;
311
+ displayName: string;
312
+ fullName: string;
313
+ decimals: number;
314
+ priceUsd: number;
315
+ iconUrl: string;
316
+ stable: boolean;
317
+ }[];
318
+ PoolKey: {
319
+ currency0: string;
320
+ currency1: string;
321
+ /**
322
+ * @description Uniswap v4 fee value. 8388608 indicates dynamic fee.
323
+ * @example 8388608
324
+ */
325
+ fee: number;
326
+ tickSpacing: number;
327
+ hooks: string;
328
+ };
329
+ MarketMetrics: {
330
+ tvlUsd: number;
331
+ volumeUsd7d: number;
332
+ feeApr7d: number;
333
+ };
334
+ Market: {
335
+ id: string;
336
+ /**
337
+ * @example 130
338
+ * @enum {integer}
339
+ */
340
+ chainId: 1 | 130 | 8453;
341
+ /** @enum {string} */
342
+ status: "enabled" | "disabled";
343
+ /** @enum {string} */
344
+ kind: "aegis-direct-v4";
345
+ label: string;
346
+ baseToken: string;
347
+ quoteToken: string;
348
+ /** @example 0x9073b65a558bdf9d0d7d0c82b468128acb847de72f5ad776bd8a4aab98781584 */
349
+ poolId: string;
350
+ poolKey: {
351
+ currency0: string;
352
+ currency1: string;
353
+ /**
354
+ * @description Uniswap v4 fee value. 8388608 indicates dynamic fee.
355
+ * @example 8388608
356
+ */
357
+ fee: number;
358
+ tickSpacing: number;
359
+ hooks: string;
360
+ };
361
+ metrics: {
362
+ tvlUsd: number;
363
+ volumeUsd7d: number;
364
+ feeApr7d: number;
365
+ };
366
+ warnings: ("paused" | "surge-active" | "cap-event")[];
367
+ };
368
+ MarketList: {
369
+ id: string;
370
+ /**
371
+ * @example 130
372
+ * @enum {integer}
373
+ */
374
+ chainId: 1 | 130 | 8453;
375
+ /** @enum {string} */
376
+ status: "enabled" | "disabled";
377
+ /** @enum {string} */
378
+ kind: "aegis-direct-v4";
379
+ label: string;
380
+ baseToken: string;
381
+ quoteToken: string;
382
+ /** @example 0x9073b65a558bdf9d0d7d0c82b468128acb847de72f5ad776bd8a4aab98781584 */
383
+ poolId: string;
384
+ poolKey: {
385
+ currency0: string;
386
+ currency1: string;
387
+ /**
388
+ * @description Uniswap v4 fee value. 8388608 indicates dynamic fee.
389
+ * @example 8388608
390
+ */
391
+ fee: number;
392
+ tickSpacing: number;
393
+ hooks: string;
394
+ };
395
+ metrics: {
396
+ tvlUsd: number;
397
+ volumeUsd7d: number;
398
+ feeApr7d: number;
399
+ };
400
+ warnings: ("paused" | "surge-active" | "cap-event")[];
401
+ }[];
402
+ SwapQuoteRequest: ({
403
+ /**
404
+ * @example 130
405
+ * @enum {integer}
406
+ */
407
+ chainId: 1 | 130 | 8453;
408
+ /**
409
+ * @example aegis-direct-v4
410
+ * @enum {string}
411
+ */
412
+ provider: "aegis-direct-v4" | "kyber";
413
+ marketId?: string;
414
+ tokenIn: string;
415
+ tokenOut: string;
416
+ /** @default 100 */
417
+ slippageBps: number;
418
+ account?: string | null;
419
+ /** @enum {string} */
420
+ mode: "exactIn";
421
+ /** @description Raw integer token amount in tokenIn base units. */
422
+ amountIn: string;
423
+ } & {
424
+ [key: string]: unknown;
425
+ }) | ({
426
+ /**
427
+ * @example 130
428
+ * @enum {integer}
429
+ */
430
+ chainId: 1 | 130 | 8453;
431
+ /**
432
+ * @example aegis-direct-v4
433
+ * @enum {string}
434
+ */
435
+ provider: "aegis-direct-v4" | "kyber";
436
+ marketId?: string;
437
+ tokenIn: string;
438
+ tokenOut: string;
439
+ /** @default 100 */
440
+ slippageBps: number;
441
+ account?: string | null;
442
+ /** @enum {string} */
443
+ mode: "exactOut";
444
+ /** @description Raw integer token amount in tokenOut base units. */
445
+ amountOut: string;
446
+ } & {
447
+ [key: string]: unknown;
448
+ });
449
+ SwapQuoteResponse: {
450
+ /** @enum {boolean} */
451
+ indicative: true;
452
+ /** @enum {boolean} */
453
+ executable: false;
454
+ /** @enum {string} */
455
+ provider: "aegis-direct-v4";
456
+ marketId: string;
457
+ /** @enum {string} */
458
+ mode: "exactIn";
459
+ tokenIn: string;
460
+ tokenOut: string;
461
+ amountIn: string;
462
+ amountOut: string;
463
+ minAmountOut: string;
464
+ price: number;
465
+ slippageBps: number;
466
+ fee: {
467
+ /** @enum {number} */
468
+ outputFeeBps: 50;
469
+ /** @enum {string} */
470
+ recipient: "0x8ea2C7de60ef1Cd4dcE64ea2DDDe2f99F0127eFC";
471
+ };
472
+ /**
473
+ * Format: date-time
474
+ * @example 2026-06-19T11:31:32.964Z
475
+ */
476
+ asOf: string;
477
+ warnings: string[];
478
+ };
479
+ OpenApiDocument: {
480
+ openapi: string;
481
+ info: {
482
+ [key: string]: unknown;
483
+ };
484
+ paths: {
485
+ [key: string]: unknown;
486
+ };
487
+ } & {
488
+ [key: string]: unknown;
489
+ };
490
+ };
491
+ responses: {
492
+ /** @description Missing or invalid request parameters */
493
+ BadRequest: {
494
+ headers: {
495
+ [name: string]: unknown;
496
+ };
497
+ content: {
498
+ "application/json": components["schemas"]["ErrorResponse"];
499
+ };
500
+ };
501
+ /** @description Requested resource was not found */
502
+ NotFound: {
503
+ headers: {
504
+ [name: string]: unknown;
505
+ };
506
+ content: {
507
+ "application/json": components["schemas"]["ErrorResponse"];
508
+ };
509
+ };
510
+ /** @description Server error */
511
+ ServerError: {
512
+ headers: {
513
+ [name: string]: unknown;
514
+ };
515
+ content: {
516
+ "application/json": components["schemas"]["ServerErrorResponse"];
517
+ };
518
+ };
519
+ };
520
+ parameters: {
521
+ /**
522
+ * @description EVM chain ID as a string query parameter. JSON response bodies use numeric chainId values.
523
+ * @example 130
524
+ */
525
+ ChainIdQuery: components["schemas"]["ChainIdQuery"];
526
+ /**
527
+ * @description Comma-separated EVM token addresses.
528
+ * @example 0x078d782b760474a361dda0af3839290b0ef57ad6,0x83f31af747189c2fa9e5deb253200c505eff6ed2
529
+ */
530
+ AddressesQuery: string;
531
+ };
532
+ requestBodies: never;
533
+ headers: never;
534
+ pathItems: never;
535
+ }
536
+ export type $defs = Record<string, never>;
537
+ export interface operations {
538
+ getHealth: {
539
+ parameters: {
540
+ query?: never;
541
+ header?: never;
542
+ path?: never;
543
+ cookie?: never;
544
+ };
545
+ requestBody?: never;
546
+ responses: {
547
+ /** @description API liveness status */
548
+ 200: {
549
+ headers: {
550
+ [name: string]: unknown;
551
+ };
552
+ content: {
553
+ "application/json": components["schemas"]["HealthResponse"];
554
+ };
555
+ };
556
+ 404: components["responses"]["NotFound"];
557
+ 500: components["responses"]["ServerError"];
558
+ };
559
+ };
560
+ getConfig: {
561
+ parameters: {
562
+ query?: never;
563
+ header?: never;
564
+ path?: never;
565
+ cookie?: never;
566
+ };
567
+ requestBody?: never;
568
+ responses: {
569
+ /** @description Swap config */
570
+ 200: {
571
+ headers: {
572
+ [name: string]: unknown;
573
+ };
574
+ content: {
575
+ "application/json": components["schemas"]["SwapConfig"];
576
+ };
577
+ };
578
+ 404: components["responses"]["NotFound"];
579
+ 500: components["responses"]["ServerError"];
580
+ };
581
+ };
582
+ listTokens: {
583
+ parameters: {
584
+ query: {
585
+ /**
586
+ * @description EVM chain ID as a string query parameter. JSON response bodies use numeric chainId values.
587
+ * @example 130
588
+ */
589
+ chainId: components["parameters"]["ChainIdQuery"];
590
+ };
591
+ header?: never;
592
+ path?: never;
593
+ cookie?: never;
594
+ };
595
+ requestBody?: never;
596
+ responses: {
597
+ /** @description Curated token metadata */
598
+ 200: {
599
+ headers: {
600
+ [name: string]: unknown;
601
+ };
602
+ content: {
603
+ "application/json": components["schemas"]["TokenList"];
604
+ };
605
+ };
606
+ 400: components["responses"]["BadRequest"];
607
+ 500: components["responses"]["ServerError"];
608
+ };
609
+ };
610
+ listTokensByAddress: {
611
+ parameters: {
612
+ query: {
613
+ /**
614
+ * @description EVM chain ID as a string query parameter. JSON response bodies use numeric chainId values.
615
+ * @example 130
616
+ */
617
+ chainId: components["parameters"]["ChainIdQuery"];
618
+ /**
619
+ * @description Comma-separated EVM token addresses.
620
+ * @example 0x078d782b760474a361dda0af3839290b0ef57ad6,0x83f31af747189c2fa9e5deb253200c505eff6ed2
621
+ */
622
+ addresses: components["parameters"]["AddressesQuery"];
623
+ };
624
+ header?: never;
625
+ path?: never;
626
+ cookie?: never;
627
+ };
628
+ requestBody?: never;
629
+ responses: {
630
+ /** @description Curated token metadata */
631
+ 200: {
632
+ headers: {
633
+ [name: string]: unknown;
634
+ };
635
+ content: {
636
+ "application/json": components["schemas"]["TokenList"];
637
+ };
638
+ };
639
+ 400: components["responses"]["BadRequest"];
640
+ 500: components["responses"]["ServerError"];
641
+ };
642
+ };
643
+ listMarkets: {
644
+ parameters: {
645
+ query: {
646
+ /**
647
+ * @description EVM chain ID as a string query parameter. JSON response bodies use numeric chainId values.
648
+ * @example 130
649
+ */
650
+ chainId: components["parameters"]["ChainIdQuery"];
651
+ };
652
+ header?: never;
653
+ path?: never;
654
+ cookie?: never;
655
+ };
656
+ requestBody?: never;
657
+ responses: {
658
+ /** @description Curated swap markets */
659
+ 200: {
660
+ headers: {
661
+ [name: string]: unknown;
662
+ };
663
+ content: {
664
+ "application/json": components["schemas"]["MarketList"];
665
+ };
666
+ };
667
+ 400: components["responses"]["BadRequest"];
668
+ 500: components["responses"]["ServerError"];
669
+ };
670
+ };
671
+ createIndicativeSwapQuote: {
672
+ parameters: {
673
+ query?: never;
674
+ header?: never;
675
+ path?: never;
676
+ cookie?: never;
677
+ };
678
+ requestBody: {
679
+ content: {
680
+ "application/json": components["schemas"]["SwapQuoteRequest"];
681
+ };
682
+ };
683
+ responses: {
684
+ /** @description Indicative swap quote */
685
+ 200: {
686
+ headers: {
687
+ [name: string]: unknown;
688
+ };
689
+ content: {
690
+ "application/json": components["schemas"]["SwapQuoteResponse"];
691
+ };
692
+ };
693
+ 400: components["responses"]["BadRequest"];
694
+ 404: components["responses"]["NotFound"];
695
+ 500: components["responses"]["ServerError"];
696
+ };
697
+ };
698
+ getOpenApiSpec: {
699
+ parameters: {
700
+ query?: never;
701
+ header?: never;
702
+ path?: never;
703
+ cookie?: never;
704
+ };
705
+ requestBody?: never;
706
+ responses: {
707
+ /** @description OpenAPI 3.1 document */
708
+ 200: {
709
+ headers: {
710
+ [name: string]: unknown;
711
+ };
712
+ content: {
713
+ "application/json": components["schemas"]["OpenApiDocument"];
714
+ };
715
+ };
716
+ 404: components["responses"]["NotFound"];
717
+ 500: components["responses"]["ServerError"];
718
+ };
719
+ };
720
+ }