@sodax/types 2.0.0-rc.12 → 2.0.0-rc.14

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.
@@ -1,5 +1,23 @@
1
+ import type { SpokeChainConfig } from '../chains/chains.js';
2
+ import type { XToken } from '../chains/tokens.js';
3
+ import type { RelayConfig } from '../common/constants.js';
4
+ import type { ConcentratedLiquidityConfig, DexDefaultConfig } from '../dex/dex.js';
5
+ import type { SodaxDefaultConfig } from '../sodax-config/sodax-config.js';
1
6
  /** Quote direction. Only exact-input quoting is supported. */
2
7
  export type QuoteTypeV2 = 'exact_input';
8
+ /**
9
+ * JSON-safe partner fee for swap requests. Wire mirror of the SDK `PartnerFee` union, with the
10
+ * bigint `amount` projected to a decimal `string`. `address` is the EVM hub fee receiver; provide
11
+ * either a fixed `amount` (input token's smallest unit, decimal string) or a `percentage` (basis
12
+ * points, e.g. 100 = 1%). If both are present the backend uses `amount`, matching the SDK.
13
+ */
14
+ export type PartnerFeeV2 = {
15
+ address: string;
16
+ amount: string;
17
+ } | {
18
+ address: string;
19
+ percentage: number;
20
+ };
3
21
  /**
4
22
  * Solver intent status code:
5
23
  * -1 NOT_FOUND, 1 NOT_STARTED_YET, 2 STARTED_NOT_FINISHED, 3 SOLVED (terminal), 4 FAILED (terminal).
@@ -141,6 +159,8 @@ export interface QuoteRequestV2 {
141
159
  srcAddress?: string;
142
160
  /** Destination address — required only when `includeTxData=true`; ignored otherwise. */
143
161
  dstAddress?: string;
162
+ /** Optional per-request partner-fee override; defaults to the backend's configured fee. Keeps the fee-adjusted quote (and the `includeTxData` intent) consistent with `createIntent`. */
163
+ partnerFee?: PartnerFeeV2;
144
164
  }
145
165
  /** POST /swaps/quote — query params. */
146
166
  export interface QuoteQueryV2 {
@@ -184,12 +204,16 @@ export interface CreateIntentParamsV2 {
184
204
  allowPartialFill: boolean;
185
205
  /** User address on the source spoke chain (chain-specific format). */
186
206
  srcAddress: string;
207
+ /** Source-chain signer public key (compressed hex), for chains whose address can't yield it (e.g. Stacks). */
208
+ srcPublicKey?: string;
187
209
  /** Recipient address on the destination spoke chain (chain-specific format). */
188
210
  dstAddress: string;
189
211
  /** Solver address (EVM hub address). Defaults to the zero address for "any solver". */
190
212
  solver?: string;
191
213
  /** Arbitrary calldata hex string. Defaults to `0x`. */
192
214
  data?: string;
215
+ /** Optional per-request partner-fee override embedded into the built intent. When omitted the backend applies its configured default. */
216
+ partnerFee?: PartnerFeeV2;
193
217
  }
194
218
  /** POST /swaps/allowance/check — response body. */
195
219
  export interface AllowanceCheckResponseV2 {
@@ -503,3 +527,110 @@ export interface ISwapsApiV2 {
503
527
  /** GET /swaps/submit-tx/status */
504
528
  getSubmitTxStatus(query: SubmitTxStatusQueryV2): Promise<SubmitTxStatusResponseV2>;
505
529
  }
530
+ /** JSON-safe {@link RelayConfig}: relay chain ids are decimal strings on the wire. */
531
+ export type RelayConfigV2 = Omit<RelayConfig, 'relayChainIdMap'> & {
532
+ /** SpokeChainKey → intent-relay chain id as a decimal string (e.g. `"146"`). */
533
+ relayChainIdMap: Record<string, string>;
534
+ };
535
+ /** JSON-safe {@link ConcentratedLiquidityConfig}: `defaultBitmap` is a decimal string. */
536
+ export type ConcentratedLiquidityConfigV2 = Omit<ConcentratedLiquidityConfig, 'defaultBitmap'> & {
537
+ /** Default tick bitmap; bigint projected to a decimal string. */
538
+ defaultBitmap: string;
539
+ };
540
+ /** JSON-safe {@link DexDefaultConfig}. Only the concentrated-liquidity config carries bigint. */
541
+ export type DexConfigV2 = Omit<DexDefaultConfig, 'concentratedLiquidityConfig'> & {
542
+ concentratedLiquidityConfig: ConcentratedLiquidityConfigV2;
543
+ };
544
+ /**
545
+ * JSON-safe projection of {@link SodaxDefaultConfig} — the STATIC config the backend serves,
546
+ * never the merged `SodaxConfig`. `SodaxDefaultConfig` already exposes only static per-feature
547
+ * configs (`SwapsDefaultConfig`, `MoneyMarketDefaultConfig`, `BridgeDefaultConfig`,
548
+ * `LeverageYieldDefaultConfig`, `DexDefaultConfig`), so every field is reused untouched —
549
+ * `chains`, `swaps`, `moneyMarket`, `bridge`, `leverageYield`, `hub`, `api`, `solver` are all
550
+ * JSON-safe as-is. Only `dex` and `relay` are projected to their `*V2` variants because they
551
+ * carry a `bigint` field.
552
+ *
553
+ * No options ever reach the wire: the global `fee`, the `logger`, and every per-feature
554
+ * `partnerFee` live on `SodaxOptions` (resolved client-side), which is not part of `SodaxDefaultConfig`.
555
+ */
556
+ export type SodaxConfigV2 = Omit<SodaxDefaultConfig, 'dex' | 'relay'> & {
557
+ dex: DexConfigV2;
558
+ relay: RelayConfigV2;
559
+ };
560
+ /**
561
+ * GET /config/all — full config plus its schema version for drift detection.
562
+ *
563
+ * `version` is REQUIRED here (the v1 `GetAllConfigApiResponse.version` is optional):
564
+ * `ConfigService` already treats a missing/older version as "reject and keep the
565
+ * packaged defaults", so a required field is a strictly cleaner v2 contract.
566
+ */
567
+ export type GetAllConfigResponseV2 = {
568
+ /** Config schema version; compared against the SDK's `CONFIG_VERSION`. */
569
+ version: number;
570
+ /** Full JSON-safe SODAX config. */
571
+ config: SodaxConfigV2;
572
+ } & _AssertJsonSafe<[_ContainsBigint<SodaxConfigV2>] extends [false] ? true : false>;
573
+ /** GET /config/spoke/chains — supported spoke chain keys. */
574
+ export type GetChainsResponseV2 = readonly string[];
575
+ /** GET /config/spoke/all-chains-configs — full per-chain config (no bigint → `SpokeChainConfig` reused). */
576
+ export type GetSpokeChainConfigsResponseV2 = Record<string, SpokeChainConfig>;
577
+ /**
578
+ * GET /config/swap/tokens — supported swap tokens per chain.
579
+ *
580
+ * Returns the canonical {@link XToken} (incl. its optional `access`), NOT the
581
+ * swaps-domain `SwapTokenV2`: this is config data, so it mirrors the source token
582
+ * exactly. (`GetSwapTokensResponseV2` above is the unrelated `/swaps/tokens` shape.)
583
+ */
584
+ export type GetSwapTokensConfigResponseV2 = Record<string, readonly XToken[]>;
585
+ /** GET /config/swap/:chainKey/tokens — supported swap tokens for one chain. */
586
+ export type GetSwapTokensConfigByChainResponseV2 = readonly XToken[];
587
+ /** GET /config/money-market/tokens — supported money-market tokens per chain. */
588
+ export type GetMoneyMarketTokensConfigResponseV2 = Record<string, readonly XToken[]>;
589
+ /** GET /config/money-market/:chainKey/tokens — supported money-market tokens for one chain. */
590
+ export type GetMoneyMarketTokensConfigByChainResponseV2 = readonly XToken[];
591
+ /** GET /config/money-market/reserve-assets — hub reserve asset addresses. */
592
+ export type GetMoneyMarketReserveAssetsResponseV2 = readonly string[];
593
+ /** GET /config/relay/chain-id-map — SpokeChainKey → intent-relay chain id (decimal string). */
594
+ export type GetRelayChainIdMapResponseV2 = Record<string, string>;
595
+ /**
596
+ * Client-side surface for the backend Config API v2 — for typed HTTP clients
597
+ * (fetch wrappers / SDK adapters). Each method describes one endpoint as the
598
+ * client sees it: all methods are async and all field types are the
599
+ * post-serialization wire shapes above (bigint → decimal `string`).
600
+ *
601
+ * As with {@link ISwapsApiV2}, do NOT `implements` this on the NestJS controller:
602
+ * handlers return pre-serialization domain types (`bigint`, branded values) and the
603
+ * response interceptor serializes them into these wire shapes afterwards.
604
+ */
605
+ export interface IConfigApiV2 {
606
+ /** GET /config/all */
607
+ getAllConfig(): Promise<GetAllConfigResponseV2>;
608
+ /** GET /config/spoke/chains */
609
+ getChains(): Promise<GetChainsResponseV2>;
610
+ /** GET /config/spoke/all-chains-configs */
611
+ getSpokeChainConfigs(): Promise<GetSpokeChainConfigsResponseV2>;
612
+ /** GET /config/swap/tokens */
613
+ getSwapTokens(): Promise<GetSwapTokensConfigResponseV2>;
614
+ /** GET /config/swap/:chainKey/tokens */
615
+ getSwapTokensByChain(chainKey: string): Promise<GetSwapTokensConfigByChainResponseV2>;
616
+ /** GET /config/money-market/tokens */
617
+ getMoneyMarketTokens(): Promise<GetMoneyMarketTokensConfigResponseV2>;
618
+ /** GET /config/money-market/:chainKey/tokens */
619
+ getMoneyMarketTokensByChain(chainKey: string): Promise<GetMoneyMarketTokensConfigByChainResponseV2>;
620
+ /** GET /config/money-market/reserve-assets */
621
+ getMoneyMarketReserveAssets(): Promise<GetMoneyMarketReserveAssetsResponseV2>;
622
+ /** GET /config/relay/chain-id-map */
623
+ getRelayChainIdMap(): Promise<GetRelayChainIdMapResponseV2>;
624
+ }
625
+ /** True if `T` contains a `bigint` anywhere in its data shape. Recurses arrays/records/objects. */
626
+ type _ContainsBigint<T> = T extends bigint ? true : T extends string | number | boolean | symbol | null | undefined ? false : T extends readonly (infer U)[] ? _ContainsBigint<U> : T extends object ? true extends {
627
+ [K in keyof T]-?: _ContainsBigint<T[K]>;
628
+ }[keyof T] ? true : false : false;
629
+ /**
630
+ * Resolves to `unknown` (an identity in an intersection) when `Ok` proves JSON-safety;
631
+ * otherwise the `Ok extends true` constraint is violated and compilation fails at the use site.
632
+ * The caller passes `[_ContainsBigint<T>] extends [false] ? true : false` — the `[…] extends […]`
633
+ * wrap is union-safe (a `true | false` result from union distribution still resolves to `false`).
634
+ */
635
+ type _AssertJsonSafe<_Ok extends true> = unknown;
636
+ export {};
@@ -25,4 +25,8 @@
25
25
  // numerics) and `IntentResponseV2` (all-string) genuinely differ;
26
26
  // `RelayExtraDataRequestV2` / `RelayExtraDataResponseV2` are identical (no bigint
27
27
  // fields). This mirrors the backend's request/response DTO pairs.
28
+ //
29
+ // The Config API v2 section at the bottom of this file takes a DIFFERENT approach
30
+ // (see its header): it REUSES the canonical `@sodax/types` config types and projects
31
+ // only the few bigint fields to `string`, rather than re-declaring a parallel tree.
28
32
  export {};
@@ -526,6 +526,33 @@ export declare const spokeChainConfig: {
526
526
  readonly nativeToken: "0x0000000000000000000000000000000000000000";
527
527
  readonly bnUSD: "0xE801CA34E19aBCbFeA12025378D19c4FBE250131";
528
528
  readonly supportedTokens: {
529
+ readonly lsodaWEETH: {
530
+ readonly symbol: "lsodaWEETH";
531
+ readonly name: "Leveraged Soda weETH";
532
+ readonly decimals: 18;
533
+ readonly address: "0xD09de2f5070699A909c0FD32fb5A909d3886701D";
534
+ readonly chainKey: "sonic";
535
+ readonly hubAsset: "0xD09de2f5070699A909c0FD32fb5A909d3886701D";
536
+ readonly vault: "0xD09de2f5070699A909c0FD32fb5A909d3886701D";
537
+ };
538
+ readonly lsodaWSTETH: {
539
+ readonly symbol: "lsodaWSTETH";
540
+ readonly name: "Leveraged Soda wstETH";
541
+ readonly decimals: 18;
542
+ readonly address: "0x136E5D1CEC5db1829E24941Eddd9C8640E02Ce7a";
543
+ readonly chainKey: "sonic";
544
+ readonly hubAsset: "0x136E5D1CEC5db1829E24941Eddd9C8640E02Ce7a";
545
+ readonly vault: "0x136E5D1CEC5db1829E24941Eddd9C8640E02Ce7a";
546
+ };
547
+ readonly lsodaJITOSOL: {
548
+ readonly symbol: "lsodaJITOSOL";
549
+ readonly name: "Leveraged Soda JITOSOL";
550
+ readonly decimals: 18;
551
+ readonly address: "0xD7Ae4853E0f93682F5DaA14734F5D18cBa09Bd78";
552
+ readonly chainKey: "sonic";
553
+ readonly hubAsset: "0xD7Ae4853E0f93682F5DaA14734F5D18cBa09Bd78";
554
+ readonly vault: "0xD7Ae4853E0f93682F5DaA14734F5D18cBa09Bd78";
555
+ };
529
556
  readonly sodaBNB: {
530
557
  readonly symbol: "sodaBNB";
531
558
  readonly name: "Soda BNB";
@@ -751,6 +778,15 @@ export declare const spokeChainConfig: {
751
778
  readonly hubAsset: "0x243b0c26c8b38793908d7C64e8510f21B19B4613";
752
779
  readonly vault: "0x243b0c26c8b38793908d7C64e8510f21B19B4613";
753
780
  };
781
+ readonly sodaJITOSOL: {
782
+ readonly symbol: "sodaJITOSOL";
783
+ readonly name: "Soda JITOSOL";
784
+ readonly decimals: 18;
785
+ readonly address: "0xe1bad4400d947Bc4fa66f9c0A143D800002083a0";
786
+ readonly chainKey: "sonic";
787
+ readonly hubAsset: "0xe1bad4400d947Bc4fa66f9c0A143D800002083a0";
788
+ readonly vault: "0xe1bad4400d947Bc4fa66f9c0A143D800002083a0";
789
+ };
754
790
  readonly S: {
755
791
  readonly symbol: "S";
756
792
  readonly name: "Sonic";
@@ -1076,7 +1112,7 @@ export declare const spokeChainConfig: {
1076
1112
  readonly address: "J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn";
1077
1113
  readonly chainKey: "solana";
1078
1114
  readonly hubAsset: "0x942f89a324d2652e447b9fcf08effc9f9776a680";
1079
- readonly vault: "0x942f89a324d2652e447b9fcf08effc9f9776a680";
1115
+ readonly vault: "0xe1bad4400d947Bc4fa66f9c0A143D800002083a0";
1080
1116
  };
1081
1117
  readonly mSOL: {
1082
1118
  readonly symbol: "mSOL";
@@ -1591,6 +1627,15 @@ export declare const spokeChainConfig: {
1591
1627
  readonly hubAsset: "0xaa81bb5ba3c972ab53605d3ba7e443a3de6d1cb9";
1592
1628
  readonly vault: "0xaa81bb5ba3c972ab53605d3ba7e443a3de6d1cb9";
1593
1629
  };
1630
+ readonly AERO: {
1631
+ readonly symbol: "AERO";
1632
+ readonly name: "Aerodrome Finance";
1633
+ readonly decimals: 18;
1634
+ readonly address: "0x940181a94A35A4569e4529A3CDfB74e38FD98631";
1635
+ readonly chainKey: "0x2105.base";
1636
+ readonly hubAsset: "0x348e086ab6f424dfc575a325c28624ed23973173";
1637
+ readonly vault: "0x348e086ab6f424dfc575a325c28624ed23973173";
1638
+ };
1594
1639
  };
1595
1640
  readonly pollingConfig: {
1596
1641
  readonly pollingIntervalMs: 1000;
@@ -2449,6 +2494,18 @@ export declare const spokeChainConfig: {
2449
2494
  readonly assetCode: "SODA";
2450
2495
  readonly contractId: "CAH5LKJC2ZB4RVUVEVL2QWJWNJLHQE2UF767ILLQ5EQ4O3OURR2XIUGM";
2451
2496
  readonly assetIssuer: "GDYUTHY75A7WUZJQDPOP66FB32BOYGZRXHWTWO4Q6LQTANT5X3V5HNFA";
2497
+ }, {
2498
+ readonly assetCode: "sodaETH";
2499
+ readonly contractId: "CDK5EWVTZLGSLI6D5OSES7XUKWZUKBXDRNOWUVDNPP5RJRP5EYWCW7SL";
2500
+ readonly assetIssuer: "GDYUTHY75A7WUZJQDPOP66FB32BOYGZRXHWTWO4Q6LQTANT5X3V5HNFA";
2501
+ }, {
2502
+ readonly assetCode: "sodaBTC";
2503
+ readonly contractId: "CD6XWBW74YVFDQQYUM2GALCULMA5MAWGP6NTCWF3ZYXP4Z7MEVY4JKBX";
2504
+ readonly assetIssuer: "GDYUTHY75A7WUZJQDPOP66FB32BOYGZRXHWTWO4Q6LQTANT5X3V5HNFA";
2505
+ }, {
2506
+ readonly assetCode: "sodaBNB";
2507
+ readonly contractId: "CCXTXZAFLVNTMORVWYB6BGL7YEW3U3ONDAL2FGBRGDUQH7AGANVQPRS6";
2508
+ readonly assetIssuer: "GDYUTHY75A7WUZJQDPOP66FB32BOYGZRXHWTWO4Q6LQTANT5X3V5HNFA";
2452
2509
  }];
2453
2510
  readonly supportedTokens: {
2454
2511
  readonly bnUSD: {
@@ -2496,6 +2553,33 @@ export declare const spokeChainConfig: {
2496
2553
  readonly hubAsset: "0xD749B5FfFED7cEDaa3239abDd16D677179C29AEc";
2497
2554
  readonly vault: "0x21685E341DE7844135329914Be6Bd8D16982d834";
2498
2555
  };
2556
+ readonly sodaETH: {
2557
+ readonly symbol: "sodaETH";
2558
+ readonly name: "Soda ETH";
2559
+ readonly decimals: 7;
2560
+ readonly address: "CDK5EWVTZLGSLI6D5OSES7XUKWZUKBXDRNOWUVDNPP5RJRP5EYWCW7SL";
2561
+ readonly chainKey: "stellar";
2562
+ readonly hubAsset: "0x4985a4b72ac723723e9ae82382d12d77e9a715de";
2563
+ readonly vault: "0x4effB5813271699683C25c734F4daBc45B363709";
2564
+ };
2565
+ readonly sodaBTC: {
2566
+ readonly symbol: "sodaBTC";
2567
+ readonly name: "Soda BTC";
2568
+ readonly decimals: 7;
2569
+ readonly address: "CD6XWBW74YVFDQQYUM2GALCULMA5MAWGP6NTCWF3ZYXP4Z7MEVY4JKBX";
2570
+ readonly chainKey: "stellar";
2571
+ readonly hubAsset: "0xddee01f63c18843e2bac30cb702864d7632c83a2";
2572
+ readonly vault: "0x7A1A5555842Ad2D0eD274d09b5c4406a95799D5d";
2573
+ };
2574
+ readonly sodaBNB: {
2575
+ readonly symbol: "sodaBNB";
2576
+ readonly name: "Soda BNB";
2577
+ readonly decimals: 7;
2578
+ readonly address: "CCXTXZAFLVNTMORVWYB6BGL7YEW3U3ONDAL2FGBRGDUQH7AGANVQPRS6";
2579
+ readonly chainKey: "stellar";
2580
+ readonly hubAsset: "0xa10be5f5c2dea7d272555dc73ea2a7317c3c5b63";
2581
+ readonly vault: "0x40Cd41b35DB9e5109ae7E54b44De8625dB320E6b";
2582
+ };
2499
2583
  };
2500
2584
  readonly nativeToken: "CAS3J7GYLGXMF6TDJBBYYSE3HQ6BBSMLNUQ34T6TZMYMW2EVH34XOWMA";
2501
2585
  readonly bnUSD: "CD6YBFFWMU2UJHX2NGRJ7RN76IJVTCC7MRA46DUBXNB7E6W7H7JRJ2CX";
@@ -3302,6 +3386,33 @@ export declare const hubConfig: {
3302
3386
  readonly nativeToken: "0x0000000000000000000000000000000000000000";
3303
3387
  readonly wrappedNativeToken: "0x039e2fB66102314Ce7b64Ce5Ce3E5183bc94aD38";
3304
3388
  readonly supportedTokens: {
3389
+ readonly lsodaWEETH: {
3390
+ readonly symbol: "lsodaWEETH";
3391
+ readonly name: "Leveraged Soda weETH";
3392
+ readonly decimals: 18;
3393
+ readonly address: "0xD09de2f5070699A909c0FD32fb5A909d3886701D";
3394
+ readonly chainKey: "sonic";
3395
+ readonly hubAsset: "0xD09de2f5070699A909c0FD32fb5A909d3886701D";
3396
+ readonly vault: "0xD09de2f5070699A909c0FD32fb5A909d3886701D";
3397
+ };
3398
+ readonly lsodaWSTETH: {
3399
+ readonly symbol: "lsodaWSTETH";
3400
+ readonly name: "Leveraged Soda wstETH";
3401
+ readonly decimals: 18;
3402
+ readonly address: "0x136E5D1CEC5db1829E24941Eddd9C8640E02Ce7a";
3403
+ readonly chainKey: "sonic";
3404
+ readonly hubAsset: "0x136E5D1CEC5db1829E24941Eddd9C8640E02Ce7a";
3405
+ readonly vault: "0x136E5D1CEC5db1829E24941Eddd9C8640E02Ce7a";
3406
+ };
3407
+ readonly lsodaJITOSOL: {
3408
+ readonly symbol: "lsodaJITOSOL";
3409
+ readonly name: "Leveraged Soda JITOSOL";
3410
+ readonly decimals: 18;
3411
+ readonly address: "0xD7Ae4853E0f93682F5DaA14734F5D18cBa09Bd78";
3412
+ readonly chainKey: "sonic";
3413
+ readonly hubAsset: "0xD7Ae4853E0f93682F5DaA14734F5D18cBa09Bd78";
3414
+ readonly vault: "0xD7Ae4853E0f93682F5DaA14734F5D18cBa09Bd78";
3415
+ };
3305
3416
  readonly sodaBNB: {
3306
3417
  readonly symbol: "sodaBNB";
3307
3418
  readonly name: "Soda BNB";
@@ -3527,6 +3638,15 @@ export declare const hubConfig: {
3527
3638
  readonly hubAsset: "0x243b0c26c8b38793908d7C64e8510f21B19B4613";
3528
3639
  readonly vault: "0x243b0c26c8b38793908d7C64e8510f21B19B4613";
3529
3640
  };
3641
+ readonly sodaJITOSOL: {
3642
+ readonly symbol: "sodaJITOSOL";
3643
+ readonly name: "Soda JITOSOL";
3644
+ readonly decimals: 18;
3645
+ readonly address: "0xe1bad4400d947Bc4fa66f9c0A143D800002083a0";
3646
+ readonly chainKey: "sonic";
3647
+ readonly hubAsset: "0xe1bad4400d947Bc4fa66f9c0A143D800002083a0";
3648
+ readonly vault: "0xe1bad4400d947Bc4fa66f9c0A143D800002083a0";
3649
+ };
3530
3650
  readonly S: {
3531
3651
  readonly symbol: "S";
3532
3652
  readonly name: "Sonic";
@@ -555,6 +555,21 @@ export const spokeChainConfig = {
555
555
  contractId: 'CAH5LKJC2ZB4RVUVEVL2QWJWNJLHQE2UF767ILLQ5EQ4O3OURR2XIUGM',
556
556
  assetIssuer: 'GDYUTHY75A7WUZJQDPOP66FB32BOYGZRXHWTWO4Q6LQTANT5X3V5HNFA',
557
557
  },
558
+ {
559
+ assetCode: 'sodaETH',
560
+ contractId: 'CDK5EWVTZLGSLI6D5OSES7XUKWZUKBXDRNOWUVDNPP5RJRP5EYWCW7SL',
561
+ assetIssuer: 'GDYUTHY75A7WUZJQDPOP66FB32BOYGZRXHWTWO4Q6LQTANT5X3V5HNFA',
562
+ },
563
+ {
564
+ assetCode: 'sodaBTC',
565
+ contractId: 'CD6XWBW74YVFDQQYUM2GALCULMA5MAWGP6NTCWF3ZYXP4Z7MEVY4JKBX',
566
+ assetIssuer: 'GDYUTHY75A7WUZJQDPOP66FB32BOYGZRXHWTWO4Q6LQTANT5X3V5HNFA',
567
+ },
568
+ {
569
+ assetCode: 'sodaBNB',
570
+ contractId: 'CCXTXZAFLVNTMORVWYB6BGL7YEW3U3ONDAL2FGBRGDUQH7AGANVQPRS6',
571
+ assetIssuer: 'GDYUTHY75A7WUZJQDPOP66FB32BOYGZRXHWTWO4Q6LQTANT5X3V5HNFA',
572
+ },
558
573
  ],
559
574
  supportedTokens: stellarSupportedTokens,
560
575
  nativeToken: 'CAS3J7GYLGXMF6TDJBBYYSE3HQ6BBSMLNUQ34T6TZMYMW2EVH34XOWMA',
@@ -30,7 +30,7 @@ export declare const StatATokenAddresses: {
30
30
  readonly '0x8ade79c255761971f4057253712b916ab2494275': "0x7A1A5555842Ad2D0eD274d09b5c4406a95799D5d";
31
31
  readonly '0x3e102c7d9b46c92abcd4c2e1c70f362b47a201a6': "0x4effB5813271699683C25c734F4daBc45B363709";
32
32
  };
33
- export declare const HubVaultSymbols: readonly ["sodaAVAX", "sodaBNB", "sodaETH", "sodaBTC", "sodaWBTC", "sodaSUI", "sodaINJ", "sodaXLM", "sodaSOL", "sodaSODA", "sodaUSDT", "sodaUSDC", "bnUSD", "sodaPOL", "sodaS", "IbnUSD", "sodaHYPE", "sodaRBNT", "sodaLL", "sodaWEETH", "sodaWSTETH", "sodaNEAR", "sodaKAIA", "sodaSTX", "sodaUSDS"];
33
+ export declare const HubVaultSymbols: readonly ["sodaAVAX", "sodaBNB", "sodaETH", "sodaBTC", "sodaWBTC", "sodaSUI", "sodaINJ", "sodaXLM", "sodaSOL", "sodaSODA", "sodaUSDT", "sodaUSDC", "bnUSD", "sodaPOL", "sodaS", "IbnUSD", "sodaHYPE", "sodaRBNT", "sodaLL", "sodaWEETH", "sodaWSTETH", "sodaNEAR", "sodaKAIA", "sodaSTX", "sodaUSDS", "sodaJITOSOL"];
34
34
  export type HubVaultSymbol = (typeof HubVaultSymbols)[number];
35
35
  export declare const SodaTokens: {
36
36
  readonly sodaBNB: {
@@ -258,8 +258,84 @@ export declare const SodaTokens: {
258
258
  readonly hubAsset: "0x243b0c26c8b38793908d7C64e8510f21B19B4613";
259
259
  readonly vault: "0x243b0c26c8b38793908d7C64e8510f21B19B4613";
260
260
  };
261
+ readonly sodaJITOSOL: {
262
+ readonly symbol: "sodaJITOSOL";
263
+ readonly name: "Soda JITOSOL";
264
+ readonly decimals: 18;
265
+ readonly address: "0xe1bad4400d947Bc4fa66f9c0A143D800002083a0";
266
+ readonly chainKey: "sonic";
267
+ readonly hubAsset: "0xe1bad4400d947Bc4fa66f9c0A143D800002083a0";
268
+ readonly vault: "0xe1bad4400d947Bc4fa66f9c0A143D800002083a0";
269
+ };
270
+ };
271
+ /**
272
+ * Leverage-yield vault share tokens on Sonic. Each entry is the ERC-4626 share token
273
+ * issued by a deployed `LeverageYieldVault` (see `leverageYield.leverageYieldVaults` for
274
+ * the matching vault metadata). Spread into `sonicSupportedTokens` and the swap registry
275
+ * so they're discoverable in token selectors and swappable via the solver.
276
+ *
277
+ * `address`, `hubAsset`, and `vault` are all the leverage-vault proxy address — these
278
+ * tokens live on the hub and aren't further wrapped.
279
+ */
280
+ export declare const LsodaSymbols: readonly ["lsodaWEETH", "lsodaWSTETH", "lsodaJITOSOL"];
281
+ export type LsodaSymbol = (typeof LsodaSymbols)[number];
282
+ export declare const LsodaTokens: {
283
+ readonly lsodaWEETH: {
284
+ readonly symbol: "lsodaWEETH";
285
+ readonly name: "Leveraged Soda weETH";
286
+ readonly decimals: 18;
287
+ readonly address: "0xD09de2f5070699A909c0FD32fb5A909d3886701D";
288
+ readonly chainKey: "sonic";
289
+ readonly hubAsset: "0xD09de2f5070699A909c0FD32fb5A909d3886701D";
290
+ readonly vault: "0xD09de2f5070699A909c0FD32fb5A909d3886701D";
291
+ };
292
+ readonly lsodaWSTETH: {
293
+ readonly symbol: "lsodaWSTETH";
294
+ readonly name: "Leveraged Soda wstETH";
295
+ readonly decimals: 18;
296
+ readonly address: "0x136E5D1CEC5db1829E24941Eddd9C8640E02Ce7a";
297
+ readonly chainKey: "sonic";
298
+ readonly hubAsset: "0x136E5D1CEC5db1829E24941Eddd9C8640E02Ce7a";
299
+ readonly vault: "0x136E5D1CEC5db1829E24941Eddd9C8640E02Ce7a";
300
+ };
301
+ readonly lsodaJITOSOL: {
302
+ readonly symbol: "lsodaJITOSOL";
303
+ readonly name: "Leveraged Soda JITOSOL";
304
+ readonly decimals: 18;
305
+ readonly address: "0xD7Ae4853E0f93682F5DaA14734F5D18cBa09Bd78";
306
+ readonly chainKey: "sonic";
307
+ readonly hubAsset: "0xD7Ae4853E0f93682F5DaA14734F5D18cBa09Bd78";
308
+ readonly vault: "0xD7Ae4853E0f93682F5DaA14734F5D18cBa09Bd78";
309
+ };
261
310
  };
262
311
  export declare const sonicSupportedTokens: {
312
+ readonly lsodaWEETH: {
313
+ readonly symbol: "lsodaWEETH";
314
+ readonly name: "Leveraged Soda weETH";
315
+ readonly decimals: 18;
316
+ readonly address: "0xD09de2f5070699A909c0FD32fb5A909d3886701D";
317
+ readonly chainKey: "sonic";
318
+ readonly hubAsset: "0xD09de2f5070699A909c0FD32fb5A909d3886701D";
319
+ readonly vault: "0xD09de2f5070699A909c0FD32fb5A909d3886701D";
320
+ };
321
+ readonly lsodaWSTETH: {
322
+ readonly symbol: "lsodaWSTETH";
323
+ readonly name: "Leveraged Soda wstETH";
324
+ readonly decimals: 18;
325
+ readonly address: "0x136E5D1CEC5db1829E24941Eddd9C8640E02Ce7a";
326
+ readonly chainKey: "sonic";
327
+ readonly hubAsset: "0x136E5D1CEC5db1829E24941Eddd9C8640E02Ce7a";
328
+ readonly vault: "0x136E5D1CEC5db1829E24941Eddd9C8640E02Ce7a";
329
+ };
330
+ readonly lsodaJITOSOL: {
331
+ readonly symbol: "lsodaJITOSOL";
332
+ readonly name: "Leveraged Soda JITOSOL";
333
+ readonly decimals: 18;
334
+ readonly address: "0xD7Ae4853E0f93682F5DaA14734F5D18cBa09Bd78";
335
+ readonly chainKey: "sonic";
336
+ readonly hubAsset: "0xD7Ae4853E0f93682F5DaA14734F5D18cBa09Bd78";
337
+ readonly vault: "0xD7Ae4853E0f93682F5DaA14734F5D18cBa09Bd78";
338
+ };
263
339
  readonly sodaBNB: {
264
340
  readonly symbol: "sodaBNB";
265
341
  readonly name: "Soda BNB";
@@ -485,6 +561,15 @@ export declare const sonicSupportedTokens: {
485
561
  readonly hubAsset: "0x243b0c26c8b38793908d7C64e8510f21B19B4613";
486
562
  readonly vault: "0x243b0c26c8b38793908d7C64e8510f21B19B4613";
487
563
  };
564
+ readonly sodaJITOSOL: {
565
+ readonly symbol: "sodaJITOSOL";
566
+ readonly name: "Soda JITOSOL";
567
+ readonly decimals: 18;
568
+ readonly address: "0xe1bad4400d947Bc4fa66f9c0A143D800002083a0";
569
+ readonly chainKey: "sonic";
570
+ readonly hubAsset: "0xe1bad4400d947Bc4fa66f9c0A143D800002083a0";
571
+ readonly vault: "0xe1bad4400d947Bc4fa66f9c0A143D800002083a0";
572
+ };
488
573
  readonly S: {
489
574
  readonly symbol: "S";
490
575
  readonly name: "Sonic";
@@ -757,7 +842,7 @@ export declare const solanaSupportedTokens: {
757
842
  readonly address: "J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn";
758
843
  readonly chainKey: "solana";
759
844
  readonly hubAsset: "0x942f89a324d2652e447b9fcf08effc9f9776a680";
760
- readonly vault: "0x942f89a324d2652e447b9fcf08effc9f9776a680";
845
+ readonly vault: "0xe1bad4400d947Bc4fa66f9c0A143D800002083a0";
761
846
  };
762
847
  readonly mSOL: {
763
848
  readonly symbol: "mSOL";
@@ -1191,6 +1276,15 @@ export declare const baseSupportedTokens: {
1191
1276
  readonly hubAsset: "0xaa81bb5ba3c972ab53605d3ba7e443a3de6d1cb9";
1192
1277
  readonly vault: "0xaa81bb5ba3c972ab53605d3ba7e443a3de6d1cb9";
1193
1278
  };
1279
+ readonly AERO: {
1280
+ readonly symbol: "AERO";
1281
+ readonly name: "Aerodrome Finance";
1282
+ readonly decimals: 18;
1283
+ readonly address: "0x940181a94A35A4569e4529A3CDfB74e38FD98631";
1284
+ readonly chainKey: "0x2105.base";
1285
+ readonly hubAsset: "0x348e086ab6f424dfc575a325c28624ed23973173";
1286
+ readonly vault: "0x348e086ab6f424dfc575a325c28624ed23973173";
1287
+ };
1194
1288
  };
1195
1289
  export declare const optimismSupportedTokens: {
1196
1290
  readonly ETH: {
@@ -1873,6 +1967,33 @@ export declare const stellarSupportedTokens: {
1873
1967
  readonly hubAsset: "0xD749B5FfFED7cEDaa3239abDd16D677179C29AEc";
1874
1968
  readonly vault: "0x21685E341DE7844135329914Be6Bd8D16982d834";
1875
1969
  };
1970
+ readonly sodaETH: {
1971
+ readonly symbol: "sodaETH";
1972
+ readonly name: "Soda ETH";
1973
+ readonly decimals: 7;
1974
+ readonly address: "CDK5EWVTZLGSLI6D5OSES7XUKWZUKBXDRNOWUVDNPP5RJRP5EYWCW7SL";
1975
+ readonly chainKey: "stellar";
1976
+ readonly hubAsset: "0x4985a4b72ac723723e9ae82382d12d77e9a715de";
1977
+ readonly vault: "0x4effB5813271699683C25c734F4daBc45B363709";
1978
+ };
1979
+ readonly sodaBTC: {
1980
+ readonly symbol: "sodaBTC";
1981
+ readonly name: "Soda BTC";
1982
+ readonly decimals: 7;
1983
+ readonly address: "CD6XWBW74YVFDQQYUM2GALCULMA5MAWGP6NTCWF3ZYXP4Z7MEVY4JKBX";
1984
+ readonly chainKey: "stellar";
1985
+ readonly hubAsset: "0xddee01f63c18843e2bac30cb702864d7632c83a2";
1986
+ readonly vault: "0x7A1A5555842Ad2D0eD274d09b5c4406a95799D5d";
1987
+ };
1988
+ readonly sodaBNB: {
1989
+ readonly symbol: "sodaBNB";
1990
+ readonly name: "Soda BNB";
1991
+ readonly decimals: 7;
1992
+ readonly address: "CCXTXZAFLVNTMORVWYB6BGL7YEW3U3ONDAL2FGBRGDUQH7AGANVQPRS6";
1993
+ readonly chainKey: "stellar";
1994
+ readonly hubAsset: "0xa10be5f5c2dea7d272555dc73ea2a7317c3c5b63";
1995
+ readonly vault: "0x40Cd41b35DB9e5109ae7E54b44De8625dB320E6b";
1996
+ };
1876
1997
  };
1877
1998
  export declare const suiSupportedTokens: {
1878
1999
  readonly SUI: {
@@ -2438,6 +2559,33 @@ export declare const stacksSupportedTokens: {
2438
2559
  };
2439
2560
  export declare const supportedTokensByChain: {
2440
2561
  readonly sonic: {
2562
+ readonly lsodaWEETH: {
2563
+ readonly symbol: "lsodaWEETH";
2564
+ readonly name: "Leveraged Soda weETH";
2565
+ readonly decimals: 18;
2566
+ readonly address: "0xD09de2f5070699A909c0FD32fb5A909d3886701D";
2567
+ readonly chainKey: "sonic";
2568
+ readonly hubAsset: "0xD09de2f5070699A909c0FD32fb5A909d3886701D";
2569
+ readonly vault: "0xD09de2f5070699A909c0FD32fb5A909d3886701D";
2570
+ };
2571
+ readonly lsodaWSTETH: {
2572
+ readonly symbol: "lsodaWSTETH";
2573
+ readonly name: "Leveraged Soda wstETH";
2574
+ readonly decimals: 18;
2575
+ readonly address: "0x136E5D1CEC5db1829E24941Eddd9C8640E02Ce7a";
2576
+ readonly chainKey: "sonic";
2577
+ readonly hubAsset: "0x136E5D1CEC5db1829E24941Eddd9C8640E02Ce7a";
2578
+ readonly vault: "0x136E5D1CEC5db1829E24941Eddd9C8640E02Ce7a";
2579
+ };
2580
+ readonly lsodaJITOSOL: {
2581
+ readonly symbol: "lsodaJITOSOL";
2582
+ readonly name: "Leveraged Soda JITOSOL";
2583
+ readonly decimals: 18;
2584
+ readonly address: "0xD7Ae4853E0f93682F5DaA14734F5D18cBa09Bd78";
2585
+ readonly chainKey: "sonic";
2586
+ readonly hubAsset: "0xD7Ae4853E0f93682F5DaA14734F5D18cBa09Bd78";
2587
+ readonly vault: "0xD7Ae4853E0f93682F5DaA14734F5D18cBa09Bd78";
2588
+ };
2441
2589
  readonly sodaBNB: {
2442
2590
  readonly symbol: "sodaBNB";
2443
2591
  readonly name: "Soda BNB";
@@ -2663,6 +2811,15 @@ export declare const supportedTokensByChain: {
2663
2811
  readonly hubAsset: "0x243b0c26c8b38793908d7C64e8510f21B19B4613";
2664
2812
  readonly vault: "0x243b0c26c8b38793908d7C64e8510f21B19B4613";
2665
2813
  };
2814
+ readonly sodaJITOSOL: {
2815
+ readonly symbol: "sodaJITOSOL";
2816
+ readonly name: "Soda JITOSOL";
2817
+ readonly decimals: 18;
2818
+ readonly address: "0xe1bad4400d947Bc4fa66f9c0A143D800002083a0";
2819
+ readonly chainKey: "sonic";
2820
+ readonly hubAsset: "0xe1bad4400d947Bc4fa66f9c0A143D800002083a0";
2821
+ readonly vault: "0xe1bad4400d947Bc4fa66f9c0A143D800002083a0";
2822
+ };
2666
2823
  readonly S: {
2667
2824
  readonly symbol: "S";
2668
2825
  readonly name: "Sonic";
@@ -2935,7 +3092,7 @@ export declare const supportedTokensByChain: {
2935
3092
  readonly address: "J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn";
2936
3093
  readonly chainKey: "solana";
2937
3094
  readonly hubAsset: "0x942f89a324d2652e447b9fcf08effc9f9776a680";
2938
- readonly vault: "0x942f89a324d2652e447b9fcf08effc9f9776a680";
3095
+ readonly vault: "0xe1bad4400d947Bc4fa66f9c0A143D800002083a0";
2939
3096
  };
2940
3097
  readonly mSOL: {
2941
3098
  readonly symbol: "mSOL";
@@ -3369,6 +3526,15 @@ export declare const supportedTokensByChain: {
3369
3526
  readonly hubAsset: "0xaa81bb5ba3c972ab53605d3ba7e443a3de6d1cb9";
3370
3527
  readonly vault: "0xaa81bb5ba3c972ab53605d3ba7e443a3de6d1cb9";
3371
3528
  };
3529
+ readonly AERO: {
3530
+ readonly symbol: "AERO";
3531
+ readonly name: "Aerodrome Finance";
3532
+ readonly decimals: 18;
3533
+ readonly address: "0x940181a94A35A4569e4529A3CDfB74e38FD98631";
3534
+ readonly chainKey: "0x2105.base";
3535
+ readonly hubAsset: "0x348e086ab6f424dfc575a325c28624ed23973173";
3536
+ readonly vault: "0x348e086ab6f424dfc575a325c28624ed23973173";
3537
+ };
3372
3538
  };
3373
3539
  readonly "0xa.optimism": {
3374
3540
  readonly ETH: {
@@ -4051,6 +4217,33 @@ export declare const supportedTokensByChain: {
4051
4217
  readonly hubAsset: "0xD749B5FfFED7cEDaa3239abDd16D677179C29AEc";
4052
4218
  readonly vault: "0x21685E341DE7844135329914Be6Bd8D16982d834";
4053
4219
  };
4220
+ readonly sodaETH: {
4221
+ readonly symbol: "sodaETH";
4222
+ readonly name: "Soda ETH";
4223
+ readonly decimals: 7;
4224
+ readonly address: "CDK5EWVTZLGSLI6D5OSES7XUKWZUKBXDRNOWUVDNPP5RJRP5EYWCW7SL";
4225
+ readonly chainKey: "stellar";
4226
+ readonly hubAsset: "0x4985a4b72ac723723e9ae82382d12d77e9a715de";
4227
+ readonly vault: "0x4effB5813271699683C25c734F4daBc45B363709";
4228
+ };
4229
+ readonly sodaBTC: {
4230
+ readonly symbol: "sodaBTC";
4231
+ readonly name: "Soda BTC";
4232
+ readonly decimals: 7;
4233
+ readonly address: "CD6XWBW74YVFDQQYUM2GALCULMA5MAWGP6NTCWF3ZYXP4Z7MEVY4JKBX";
4234
+ readonly chainKey: "stellar";
4235
+ readonly hubAsset: "0xddee01f63c18843e2bac30cb702864d7632c83a2";
4236
+ readonly vault: "0x7A1A5555842Ad2D0eD274d09b5c4406a95799D5d";
4237
+ };
4238
+ readonly sodaBNB: {
4239
+ readonly symbol: "sodaBNB";
4240
+ readonly name: "Soda BNB";
4241
+ readonly decimals: 7;
4242
+ readonly address: "CCXTXZAFLVNTMORVWYB6BGL7YEW3U3ONDAL2FGBRGDUQH7AGANVQPRS6";
4243
+ readonly chainKey: "stellar";
4244
+ readonly hubAsset: "0xa10be5f5c2dea7d272555dc73ea2a7317c3c5b63";
4245
+ readonly vault: "0x40Cd41b35DB9e5109ae7E54b44De8625dB320E6b";
4246
+ };
4054
4247
  };
4055
4248
  readonly sui: {
4056
4249
  readonly SUI: {