@sodax/types 2.0.0-rc.13 → 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 {};
@@ -544,6 +544,15 @@ export declare const spokeChainConfig: {
544
544
  readonly hubAsset: "0x136E5D1CEC5db1829E24941Eddd9C8640E02Ce7a";
545
545
  readonly vault: "0x136E5D1CEC5db1829E24941Eddd9C8640E02Ce7a";
546
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
+ };
547
556
  readonly sodaBNB: {
548
557
  readonly symbol: "sodaBNB";
549
558
  readonly name: "Soda BNB";
@@ -769,6 +778,15 @@ export declare const spokeChainConfig: {
769
778
  readonly hubAsset: "0x243b0c26c8b38793908d7C64e8510f21B19B4613";
770
779
  readonly vault: "0x243b0c26c8b38793908d7C64e8510f21B19B4613";
771
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
+ };
772
790
  readonly S: {
773
791
  readonly symbol: "S";
774
792
  readonly name: "Sonic";
@@ -1094,7 +1112,7 @@ export declare const spokeChainConfig: {
1094
1112
  readonly address: "J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn";
1095
1113
  readonly chainKey: "solana";
1096
1114
  readonly hubAsset: "0x942f89a324d2652e447b9fcf08effc9f9776a680";
1097
- readonly vault: "0x942f89a324d2652e447b9fcf08effc9f9776a680";
1115
+ readonly vault: "0xe1bad4400d947Bc4fa66f9c0A143D800002083a0";
1098
1116
  };
1099
1117
  readonly mSOL: {
1100
1118
  readonly symbol: "mSOL";
@@ -1609,6 +1627,15 @@ export declare const spokeChainConfig: {
1609
1627
  readonly hubAsset: "0xaa81bb5ba3c972ab53605d3ba7e443a3de6d1cb9";
1610
1628
  readonly vault: "0xaa81bb5ba3c972ab53605d3ba7e443a3de6d1cb9";
1611
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
+ };
1612
1639
  };
1613
1640
  readonly pollingConfig: {
1614
1641
  readonly pollingIntervalMs: 1000;
@@ -2467,6 +2494,18 @@ export declare const spokeChainConfig: {
2467
2494
  readonly assetCode: "SODA";
2468
2495
  readonly contractId: "CAH5LKJC2ZB4RVUVEVL2QWJWNJLHQE2UF767ILLQ5EQ4O3OURR2XIUGM";
2469
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";
2470
2509
  }];
2471
2510
  readonly supportedTokens: {
2472
2511
  readonly bnUSD: {
@@ -2514,6 +2553,33 @@ export declare const spokeChainConfig: {
2514
2553
  readonly hubAsset: "0xD749B5FfFED7cEDaa3239abDd16D677179C29AEc";
2515
2554
  readonly vault: "0x21685E341DE7844135329914Be6Bd8D16982d834";
2516
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
+ };
2517
2583
  };
2518
2584
  readonly nativeToken: "CAS3J7GYLGXMF6TDJBBYYSE3HQ6BBSMLNUQ34T6TZMYMW2EVH34XOWMA";
2519
2585
  readonly bnUSD: "CD6YBFFWMU2UJHX2NGRJ7RN76IJVTCC7MRA46DUBXNB7E6W7H7JRJ2CX";
@@ -3338,6 +3404,15 @@ export declare const hubConfig: {
3338
3404
  readonly hubAsset: "0x136E5D1CEC5db1829E24941Eddd9C8640E02Ce7a";
3339
3405
  readonly vault: "0x136E5D1CEC5db1829E24941Eddd9C8640E02Ce7a";
3340
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
+ };
3341
3416
  readonly sodaBNB: {
3342
3417
  readonly symbol: "sodaBNB";
3343
3418
  readonly name: "Soda BNB";
@@ -3563,6 +3638,15 @@ export declare const hubConfig: {
3563
3638
  readonly hubAsset: "0x243b0c26c8b38793908d7C64e8510f21B19B4613";
3564
3639
  readonly vault: "0x243b0c26c8b38793908d7C64e8510f21B19B4613";
3565
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
+ };
3566
3650
  readonly S: {
3567
3651
  readonly symbol: "S";
3568
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,6 +258,15 @@ 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
+ };
261
270
  };
262
271
  /**
263
272
  * Leverage-yield vault share tokens on Sonic. Each entry is the ERC-4626 share token
@@ -268,7 +277,7 @@ export declare const SodaTokens: {
268
277
  * `address`, `hubAsset`, and `vault` are all the leverage-vault proxy address — these
269
278
  * tokens live on the hub and aren't further wrapped.
270
279
  */
271
- export declare const LsodaSymbols: readonly ["lsodaWEETH", "lsodaWSTETH"];
280
+ export declare const LsodaSymbols: readonly ["lsodaWEETH", "lsodaWSTETH", "lsodaJITOSOL"];
272
281
  export type LsodaSymbol = (typeof LsodaSymbols)[number];
273
282
  export declare const LsodaTokens: {
274
283
  readonly lsodaWEETH: {
@@ -289,6 +298,15 @@ export declare const LsodaTokens: {
289
298
  readonly hubAsset: "0x136E5D1CEC5db1829E24941Eddd9C8640E02Ce7a";
290
299
  readonly vault: "0x136E5D1CEC5db1829E24941Eddd9C8640E02Ce7a";
291
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
+ };
292
310
  };
293
311
  export declare const sonicSupportedTokens: {
294
312
  readonly lsodaWEETH: {
@@ -309,6 +327,15 @@ export declare const sonicSupportedTokens: {
309
327
  readonly hubAsset: "0x136E5D1CEC5db1829E24941Eddd9C8640E02Ce7a";
310
328
  readonly vault: "0x136E5D1CEC5db1829E24941Eddd9C8640E02Ce7a";
311
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
+ };
312
339
  readonly sodaBNB: {
313
340
  readonly symbol: "sodaBNB";
314
341
  readonly name: "Soda BNB";
@@ -534,6 +561,15 @@ export declare const sonicSupportedTokens: {
534
561
  readonly hubAsset: "0x243b0c26c8b38793908d7C64e8510f21B19B4613";
535
562
  readonly vault: "0x243b0c26c8b38793908d7C64e8510f21B19B4613";
536
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
+ };
537
573
  readonly S: {
538
574
  readonly symbol: "S";
539
575
  readonly name: "Sonic";
@@ -806,7 +842,7 @@ export declare const solanaSupportedTokens: {
806
842
  readonly address: "J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn";
807
843
  readonly chainKey: "solana";
808
844
  readonly hubAsset: "0x942f89a324d2652e447b9fcf08effc9f9776a680";
809
- readonly vault: "0x942f89a324d2652e447b9fcf08effc9f9776a680";
845
+ readonly vault: "0xe1bad4400d947Bc4fa66f9c0A143D800002083a0";
810
846
  };
811
847
  readonly mSOL: {
812
848
  readonly symbol: "mSOL";
@@ -1240,6 +1276,15 @@ export declare const baseSupportedTokens: {
1240
1276
  readonly hubAsset: "0xaa81bb5ba3c972ab53605d3ba7e443a3de6d1cb9";
1241
1277
  readonly vault: "0xaa81bb5ba3c972ab53605d3ba7e443a3de6d1cb9";
1242
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
+ };
1243
1288
  };
1244
1289
  export declare const optimismSupportedTokens: {
1245
1290
  readonly ETH: {
@@ -1922,6 +1967,33 @@ export declare const stellarSupportedTokens: {
1922
1967
  readonly hubAsset: "0xD749B5FfFED7cEDaa3239abDd16D677179C29AEc";
1923
1968
  readonly vault: "0x21685E341DE7844135329914Be6Bd8D16982d834";
1924
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
+ };
1925
1997
  };
1926
1998
  export declare const suiSupportedTokens: {
1927
1999
  readonly SUI: {
@@ -2505,6 +2577,15 @@ export declare const supportedTokensByChain: {
2505
2577
  readonly hubAsset: "0x136E5D1CEC5db1829E24941Eddd9C8640E02Ce7a";
2506
2578
  readonly vault: "0x136E5D1CEC5db1829E24941Eddd9C8640E02Ce7a";
2507
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
+ };
2508
2589
  readonly sodaBNB: {
2509
2590
  readonly symbol: "sodaBNB";
2510
2591
  readonly name: "Soda BNB";
@@ -2730,6 +2811,15 @@ export declare const supportedTokensByChain: {
2730
2811
  readonly hubAsset: "0x243b0c26c8b38793908d7C64e8510f21B19B4613";
2731
2812
  readonly vault: "0x243b0c26c8b38793908d7C64e8510f21B19B4613";
2732
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
+ };
2733
2823
  readonly S: {
2734
2824
  readonly symbol: "S";
2735
2825
  readonly name: "Sonic";
@@ -3002,7 +3092,7 @@ export declare const supportedTokensByChain: {
3002
3092
  readonly address: "J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn";
3003
3093
  readonly chainKey: "solana";
3004
3094
  readonly hubAsset: "0x942f89a324d2652e447b9fcf08effc9f9776a680";
3005
- readonly vault: "0x942f89a324d2652e447b9fcf08effc9f9776a680";
3095
+ readonly vault: "0xe1bad4400d947Bc4fa66f9c0A143D800002083a0";
3006
3096
  };
3007
3097
  readonly mSOL: {
3008
3098
  readonly symbol: "mSOL";
@@ -3436,6 +3526,15 @@ export declare const supportedTokensByChain: {
3436
3526
  readonly hubAsset: "0xaa81bb5ba3c972ab53605d3ba7e443a3de6d1cb9";
3437
3527
  readonly vault: "0xaa81bb5ba3c972ab53605d3ba7e443a3de6d1cb9";
3438
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
+ };
3439
3538
  };
3440
3539
  readonly "0xa.optimism": {
3441
3540
  readonly ETH: {
@@ -4118,6 +4217,33 @@ export declare const supportedTokensByChain: {
4118
4217
  readonly hubAsset: "0xD749B5FfFED7cEDaa3239abDd16D677179C29AEc";
4119
4218
  readonly vault: "0x21685E341DE7844135329914Be6Bd8D16982d834";
4120
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
+ };
4121
4247
  };
4122
4248
  readonly sui: {
4123
4249
  readonly SUI: {
@@ -33,6 +33,7 @@ export const HubVaultSymbols = [
33
33
  'sodaKAIA',
34
34
  'sodaSTX',
35
35
  'sodaUSDS',
36
+ 'sodaJITOSOL',
36
37
  ];
37
38
  export const SodaTokens = {
38
39
  sodaBNB: {
@@ -259,6 +260,15 @@ export const SodaTokens = {
259
260
  chainKey: ChainKeys.SONIC_MAINNET,
260
261
  hubAsset: '0x243b0c26c8b38793908d7C64e8510f21B19B4613',
261
262
  vault: '0x243b0c26c8b38793908d7C64e8510f21B19B4613',
263
+ },
264
+ sodaJITOSOL: {
265
+ symbol: 'sodaJITOSOL',
266
+ name: 'Soda JITOSOL',
267
+ decimals: 18,
268
+ address: '0xe1bad4400d947Bc4fa66f9c0A143D800002083a0',
269
+ chainKey: ChainKeys.SONIC_MAINNET,
270
+ hubAsset: '0xe1bad4400d947Bc4fa66f9c0A143D800002083a0',
271
+ vault: '0xe1bad4400d947Bc4fa66f9c0A143D800002083a0',
262
272
  }
263
273
  };
264
274
  /**
@@ -270,7 +280,7 @@ export const SodaTokens = {
270
280
  * `address`, `hubAsset`, and `vault` are all the leverage-vault proxy address — these
271
281
  * tokens live on the hub and aren't further wrapped.
272
282
  */
273
- export const LsodaSymbols = ['lsodaWEETH', 'lsodaWSTETH'];
283
+ export const LsodaSymbols = ['lsodaWEETH', 'lsodaWSTETH', 'lsodaJITOSOL'];
274
284
  export const LsodaTokens = {
275
285
  lsodaWEETH: {
276
286
  symbol: 'lsodaWEETH',
@@ -290,6 +300,15 @@ export const LsodaTokens = {
290
300
  hubAsset: '0x136E5D1CEC5db1829E24941Eddd9C8640E02Ce7a',
291
301
  vault: '0x136E5D1CEC5db1829E24941Eddd9C8640E02Ce7a',
292
302
  },
303
+ lsodaJITOSOL: {
304
+ symbol: 'lsodaJITOSOL',
305
+ name: 'Leveraged Soda JITOSOL',
306
+ decimals: 18,
307
+ address: '0xD7Ae4853E0f93682F5DaA14734F5D18cBa09Bd78',
308
+ chainKey: ChainKeys.SONIC_MAINNET,
309
+ hubAsset: '0xD7Ae4853E0f93682F5DaA14734F5D18cBa09Bd78',
310
+ vault: '0xD7Ae4853E0f93682F5DaA14734F5D18cBa09Bd78',
311
+ },
293
312
  };
294
313
  // --- Per-chain supported tokens ---
295
314
  export const sonicSupportedTokens = {
@@ -567,7 +586,7 @@ export const solanaSupportedTokens = {
567
586
  address: 'J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn',
568
587
  chainKey: ChainKeys.SOLANA_MAINNET,
569
588
  hubAsset: '0x942f89a324d2652e447b9fcf08effc9f9776a680',
570
- vault: '0x942f89a324d2652e447b9fcf08effc9f9776a680',
589
+ vault: SodaTokens.sodaJITOSOL.address,
571
590
  },
572
591
  mSOL: {
573
592
  symbol: 'mSOL',
@@ -1001,6 +1020,15 @@ export const baseSupportedTokens = {
1001
1020
  hubAsset: '0xaa81bb5ba3c972ab53605d3ba7e443a3de6d1cb9',
1002
1021
  vault: '0xaa81bb5ba3c972ab53605d3ba7e443a3de6d1cb9',
1003
1022
  },
1023
+ AERO: {
1024
+ symbol: 'AERO',
1025
+ name: 'Aerodrome Finance',
1026
+ decimals: 18,
1027
+ address: '0x940181a94A35A4569e4529A3CDfB74e38FD98631',
1028
+ chainKey: ChainKeys.BASE_MAINNET,
1029
+ hubAsset: '0x348e086ab6f424dfc575a325c28624ed23973173',
1030
+ vault: '0x348e086ab6f424dfc575a325c28624ed23973173',
1031
+ },
1004
1032
  };
1005
1033
  export const optimismSupportedTokens = {
1006
1034
  ETH: {
@@ -1683,6 +1711,33 @@ export const stellarSupportedTokens = {
1683
1711
  hubAsset: '0xD749B5FfFED7cEDaa3239abDd16D677179C29AEc',
1684
1712
  vault: SodaTokens.sodaSODA.address,
1685
1713
  },
1714
+ sodaETH: {
1715
+ symbol: 'sodaETH',
1716
+ name: 'Soda ETH',
1717
+ decimals: 7,
1718
+ address: 'CDK5EWVTZLGSLI6D5OSES7XUKWZUKBXDRNOWUVDNPP5RJRP5EYWCW7SL',
1719
+ chainKey: ChainKeys.STELLAR_MAINNET,
1720
+ hubAsset: '0x4985a4b72ac723723e9ae82382d12d77e9a715de',
1721
+ vault: SodaTokens.sodaETH.address,
1722
+ },
1723
+ sodaBTC: {
1724
+ symbol: 'sodaBTC',
1725
+ name: 'Soda BTC',
1726
+ decimals: 7,
1727
+ address: 'CD6XWBW74YVFDQQYUM2GALCULMA5MAWGP6NTCWF3ZYXP4Z7MEVY4JKBX',
1728
+ chainKey: ChainKeys.STELLAR_MAINNET,
1729
+ hubAsset: '0xddee01f63c18843e2bac30cb702864d7632c83a2',
1730
+ vault: SodaTokens.sodaBTC.address,
1731
+ },
1732
+ sodaBNB: {
1733
+ symbol: 'sodaBNB',
1734
+ name: 'Soda BNB',
1735
+ decimals: 7,
1736
+ address: 'CCXTXZAFLVNTMORVWYB6BGL7YEW3U3ONDAL2FGBRGDUQH7AGANVQPRS6',
1737
+ chainKey: ChainKeys.STELLAR_MAINNET,
1738
+ hubAsset: '0xa10be5f5c2dea7d272555dc73ea2a7317c3c5b63',
1739
+ vault: SodaTokens.sodaBNB.address,
1740
+ },
1686
1741
  };
1687
1742
  export const suiSupportedTokens = {
1688
1743
  SUI: {