@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.
@@ -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,8 +260,56 @@ 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
  };
274
+ /**
275
+ * Leverage-yield vault share tokens on Sonic. Each entry is the ERC-4626 share token
276
+ * issued by a deployed `LeverageYieldVault` (see `leverageYield.leverageYieldVaults` for
277
+ * the matching vault metadata). Spread into `sonicSupportedTokens` and the swap registry
278
+ * so they're discoverable in token selectors and swappable via the solver.
279
+ *
280
+ * `address`, `hubAsset`, and `vault` are all the leverage-vault proxy address — these
281
+ * tokens live on the hub and aren't further wrapped.
282
+ */
283
+ export const LsodaSymbols = ['lsodaWEETH', 'lsodaWSTETH', 'lsodaJITOSOL'];
284
+ export const LsodaTokens = {
285
+ lsodaWEETH: {
286
+ symbol: 'lsodaWEETH',
287
+ name: 'Leveraged Soda weETH',
288
+ decimals: 18,
289
+ address: '0xD09de2f5070699A909c0FD32fb5A909d3886701D',
290
+ chainKey: ChainKeys.SONIC_MAINNET,
291
+ hubAsset: '0xD09de2f5070699A909c0FD32fb5A909d3886701D',
292
+ vault: '0xD09de2f5070699A909c0FD32fb5A909d3886701D',
293
+ },
294
+ lsodaWSTETH: {
295
+ symbol: 'lsodaWSTETH',
296
+ name: 'Leveraged Soda wstETH',
297
+ decimals: 18,
298
+ address: '0x136E5D1CEC5db1829E24941Eddd9C8640E02Ce7a',
299
+ chainKey: ChainKeys.SONIC_MAINNET,
300
+ hubAsset: '0x136E5D1CEC5db1829E24941Eddd9C8640E02Ce7a',
301
+ vault: '0x136E5D1CEC5db1829E24941Eddd9C8640E02Ce7a',
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
+ },
312
+ };
264
313
  // --- Per-chain supported tokens ---
265
314
  export const sonicSupportedTokens = {
266
315
  S: {
@@ -327,6 +376,7 @@ export const sonicSupportedTokens = {
327
376
  vault: SodaTokens.sodaSODA.address,
328
377
  },
329
378
  ...SodaTokens,
379
+ ...LsodaTokens,
330
380
  };
331
381
  export const redbellySupportedTokens = {
332
382
  RBNT: {
@@ -536,7 +586,7 @@ export const solanaSupportedTokens = {
536
586
  address: 'J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn',
537
587
  chainKey: ChainKeys.SOLANA_MAINNET,
538
588
  hubAsset: '0x942f89a324d2652e447b9fcf08effc9f9776a680',
539
- vault: '0x942f89a324d2652e447b9fcf08effc9f9776a680',
589
+ vault: SodaTokens.sodaJITOSOL.address,
540
590
  },
541
591
  mSOL: {
542
592
  symbol: 'mSOL',
@@ -970,6 +1020,15 @@ export const baseSupportedTokens = {
970
1020
  hubAsset: '0xaa81bb5ba3c972ab53605d3ba7e443a3de6d1cb9',
971
1021
  vault: '0xaa81bb5ba3c972ab53605d3ba7e443a3de6d1cb9',
972
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
+ },
973
1032
  };
974
1033
  export const optimismSupportedTokens = {
975
1034
  ETH: {
@@ -1652,6 +1711,33 @@ export const stellarSupportedTokens = {
1652
1711
  hubAsset: '0xD749B5FfFED7cEDaa3239abDd16D677179C29AEc',
1653
1712
  vault: SodaTokens.sodaSODA.address,
1654
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
+ },
1655
1741
  };
1656
1742
  export const suiSupportedTokens = {
1657
1743
  SUI: {
@@ -227,7 +227,10 @@ export type AssetInfo = {
227
227
  chainId: bigint;
228
228
  spokeAddress: `0x${string}`;
229
229
  };
230
- export type MoneyMarketConfig = {
230
+ export type MoneyMarketOptions = {
231
+ partnerFee?: PartnerFee;
232
+ };
233
+ export type MoneyMarketDefaultConfig = {
231
234
  supportedTokens: Record<SpokeChainKey, readonly XToken[]>;
232
235
  supportedReserveAssets: readonly Address[];
233
236
  uiPoolDataProvider: Address;
@@ -236,8 +239,8 @@ export type MoneyMarketConfig = {
236
239
  bnUSD: Address;
237
240
  bnUSDVault: Address;
238
241
  bnUSDAToken: Address;
239
- partnerFee: PartnerFee | undefined;
240
242
  };
243
+ export type MoneyMarketConfig = Prettify<MoneyMarketDefaultConfig & MoneyMarketOptions>;
241
244
  export type TokenInfo = {
242
245
  decimals: number;
243
246
  depositFee: bigint;
@@ -259,13 +262,18 @@ export type WalletProviderSlot<K extends SpokeChainKey | ChainType, Raw extends
259
262
  walletProvider: GetWalletProviderType<K>;
260
263
  };
261
264
  /**
262
- * Standard exec-mode wrapper for hub/spoke flows: bounded `params`, optional relay toggles,
263
- * plus {@link WalletProviderSlot} (`raw: true` for unsigned payloads, otherwise `walletProvider` required).
264
- * Compose feature-specific extras at the alias site, e.g.
265
- * `SpokeExecActionParams<K, Raw, P> & { fee?: PartnerFee }`.
265
+ * Standard exec-mode wrapper for hub/spoke flows: bounded `params`, optional per-action `extras`,
266
+ * optional relay toggles, plus {@link WalletProviderSlot} (`raw: true` for unsigned payloads,
267
+ * otherwise `walletProvider` required).
268
+ *
269
+ * Per-action data beyond `params` goes in the typed `extras` slot (`E`), parameterized like
270
+ * `params` so a feature can key it off `K`, e.g. `SpokeExecActionParams<K, Raw, P, MyExtras<K>>`.
271
+ * `E` defaults to `never`, so callers that don't opt in get `extras?: never` (effectively absent).
272
+ * Simple one-off modifiers may still be intersected at the alias site instead.
266
273
  */
267
- export type SpokeExecActionParams<K extends SpokeChainKey, Raw extends boolean, P> = {
274
+ export type SpokeExecActionParams<K extends SpokeChainKey, Raw extends boolean, P, E = never> = {
268
275
  params: P;
276
+ extras?: E;
269
277
  skipSimulation?: boolean;
270
278
  timeout?: number;
271
279
  } & WalletProviderSlot<K, Raw>;
package/dist/dex/dex.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import type { Address } from '../shared/shared.js';
2
2
  import { StatATokenAddresses } from '../chains/tokens.js';
3
3
  import type { PoolKey } from './pancakeswap-infinity.js';
4
+ import type { Prettify } from '../common/common.js';
4
5
  export type { EncodedPoolKey, PoolKey, Slot0, CLPositionConfig, } from './pancakeswap-infinity.js';
5
6
  export type ConcentratedLiquidityConfig = {
6
7
  permit2: Address;
@@ -134,7 +135,9 @@ export declare const dexPools: {
134
135
  };
135
136
  };
136
137
  };
137
- export type DexConfig = {
138
+ export type DexOptions = {};
139
+ export type DexConfig = Prettify<DexDefaultConfig & DexOptions>;
140
+ export type DexDefaultConfig = {
138
141
  concentratedLiquidityConfig: ConcentratedLiquidityConfig;
139
142
  dexPools: Record<string, PoolKey>;
140
143
  statATokenAddresses: Record<Address, Address> & typeof StatATokenAddresses;
package/dist/index.d.ts CHANGED
@@ -9,6 +9,7 @@ export * from './evm/index.js';
9
9
  export * from './icon/index.js';
10
10
  export * from './injective/index.js';
11
11
  export * from './moneyMarket/index.js';
12
+ export * from './leverageYield/index.js';
12
13
  export * from './near/index.js';
13
14
  export * from './solana/index.js';
14
15
  export * from './stacks/index.js';
@@ -17,4 +18,4 @@ export * from './sui/index.js';
17
18
  export * from './swap/index.js';
18
19
  export * from './utils/index.js';
19
20
  export * from './wallet/index.js';
20
- export declare const CONFIG_VERSION = 210;
21
+ export declare const CONFIG_VERSION = 212;
package/dist/index.js CHANGED
@@ -9,6 +9,7 @@ export * from './evm/index.js';
9
9
  export * from './icon/index.js';
10
10
  export * from './injective/index.js';
11
11
  export * from './moneyMarket/index.js';
12
+ export * from './leverageYield/index.js';
12
13
  export * from './near/index.js';
13
14
  export * from './solana/index.js';
14
15
  export * from './stacks/index.js';
@@ -17,4 +18,4 @@ export * from './sui/index.js';
17
18
  export * from './swap/index.js';
18
19
  export * from './utils/index.js';
19
20
  export * from './wallet/index.js';
20
- export const CONFIG_VERSION = 210; // this value should be incremented (inside release/sdk branch) each time @sodax/types package is updated
21
+ export const CONFIG_VERSION = 212; // this value should be incremented (inside release/sdk branch) each time @sodax/types package is updated
@@ -99,4 +99,8 @@ export interface IInjectiveWalletProvider extends ICoreWallet {
99
99
  readonly chainType: 'INJECTIVE';
100
100
  getWalletAddress: () => Promise<InjectiveEoaAddress>;
101
101
  execute: (senderAddress: InjectiveEoaAddress, contractAddress: string, msg: JsonObject, funds?: InjectiveCoin[]) => Promise<InjectiveExecuteResponse>;
102
+ /** Broadcast an already-signed, proto-encoded Cosmos `TxRaw`. Returns the tx hash. */
103
+ sendTransaction?: (signedTxRaw: Uint8Array) => Promise<string>;
104
+ /** Sign and broadcast an unsigned `InjectiveRawTransaction` (e.g. from the Swaps API). Returns the tx hash. */
105
+ signAndSendTransaction?: (tx: InjectiveRawTransaction) => Promise<string>;
102
106
  }
@@ -0,0 +1 @@
1
+ export * from './leverageYield.js';
@@ -0,0 +1 @@
1
+ export * from './leverageYield.js';
@@ -0,0 +1,152 @@
1
+ import type { Address } from '../shared/shared.js';
2
+ import type { PartnerFee, Prettify } from '../common/common.js';
3
+ /**
4
+ * A single deployed LeverageYieldVault.
5
+ *
6
+ * The vault is an ERC-4626 wrapper on the Sonic hub. It accepts deposits of `asset` (a
7
+ * Sodax vault token like sodaWEETH), borrows `borrowToken` from the Sodax-forked AAVE
8
+ * pool, swaps the borrowed amount back into the asset, and re-supplies — yielding a
9
+ * leveraged long on the asset / borrowToken peg.
10
+ *
11
+ * The fields here are static descriptors of the deployed vault. Cross-chain deposits and
12
+ * withdrawals route by the user's spoke-side token (e.g. weETH on Arbitrum); the hub-side
13
+ * AssetToken and Sodax vault token are resolved at call time by `ConfigService`. This
14
+ * registry exists for vault discovery and UI display, not for routing.
15
+ */
16
+ export type LeverageYieldVault = {
17
+ /**
18
+ * Stable lookup key — by convention the leverage-vault share-token symbol
19
+ * (e.g. `'lsodaWEETH'`, `'lsodaWSTETH'`). Used by `LeverageYieldService.getVault(name)`.
20
+ */
21
+ name: string;
22
+ /** Deployed `LeverageYieldVault` proxy address on the Sonic hub. */
23
+ vault: Address;
24
+ /**
25
+ * The vault's underlying asset on the hub — the ERC-20 a depositor effectively holds via
26
+ * vault shares. Always a Sodax vault-token wrapper (e.g. sodaWEETH), since user deposits
27
+ * are bridged in as the underlying hub asset and wrapped before the leverage vault deposit.
28
+ */
29
+ asset: Address;
30
+ /**
31
+ * The token the vault borrows from the Sodax-forked AAVE pool against `asset` collateral.
32
+ * Always a Sodax vault-token wrapper (e.g. sodaETH), matching the asset side. Drives the
33
+ * leverage direction: the position is a long on the `asset` / `borrowToken` peg.
34
+ */
35
+ borrowToken: Address;
36
+ /**
37
+ * LSD staking-APR source for the underlying asset. When present, callers can use
38
+ * `LeverageYieldService.getEffectiveApr(vault)` to combine AAVE rates with the LSD's
39
+ * native staking yield — the primary yield source for LSD-backed strategies. Omit for
40
+ * non-LSD vaults; the SDK then treats the LSD yield as 0%.
41
+ */
42
+ lsdSource?: LeverageYieldLsdSource;
43
+ };
44
+ /**
45
+ * Off-chain LSD staking-APR source for a leverage-yield vault. The vault's underlying asset
46
+ * is an LSD (weETH, wstETH, …) that appreciates against its base asset (ETH) at the LSD's
47
+ * native staking rate — yield that does **not** appear in AAVE's `currentLiquidityRate` and
48
+ * that the SDK must therefore fetch off-chain to report an honest effective APR.
49
+ *
50
+ * The SDK fetches all LSD APRs from DefiLlama's per-pool endpoint
51
+ * (`https://yields.llama.fi/chart/<poolId>`) — one CORS-friendly source that already
52
+ * aggregates rates across LSD issuers, so no provider-specific dispatch is needed in the
53
+ * service. Pure data — no functions — so the registry stays serialisable.
54
+ */
55
+ export type LeverageYieldLsdSource = {
56
+ /**
57
+ * DefiLlama pool ID (UUID) for the LSD's staking pool. Find via the bulk `/pools`
58
+ * endpoint, e.g. `data.filter(p => p.symbol === 'STETH' && p.project === 'lido')`.
59
+ * Examples:
60
+ * - Lido stETH: `747c1d2a-c668-4682-b9f9-296708a3dd90`
61
+ * - EtherFi weETH: `46bd2bdf-6d92-4066-b482-e885ee172264`
62
+ */
63
+ poolId: string;
64
+ /**
65
+ * Hardcoded APR (percentage, e.g. `3.2` for 3.2%) used when the DefiLlama fetch errors.
66
+ * Should reflect the trailing 30-day yield from the issuer's dashboard; update via PR if
67
+ * it drifts >50 bp from reality.
68
+ */
69
+ fallbackAprPct: number;
70
+ /** Human label for UI display, e.g. `'Lido (stETH)'` or `'EtherFi (weETH)'`. */
71
+ label: string;
72
+ };
73
+ /**
74
+ * SDK-wide registry of known leverage vaults. Add an entry here when a vault is promoted
75
+ * to a default; callers can also override per-instance via the `Sodax({ leverageYield:
76
+ * { vaults: [...] } })` config slot.
77
+ *
78
+ * Addresses are sourced from the canonical token registries — the proxy/share-token address
79
+ * from {@link LsodaTokens} and the hub-side `asset` / `borrowToken` from {@link SodaTokens} —
80
+ * so a deployment-address change lives in exactly one place.
81
+ */
82
+ export declare const leverageYieldVaults: readonly [{
83
+ readonly name: "lsodaWEETH";
84
+ readonly vault: "0xD09de2f5070699A909c0FD32fb5A909d3886701D";
85
+ readonly asset: "0xCb6B152D3a943f25157381aFcA7fEFCD2ef5a357";
86
+ readonly borrowToken: "0x4effB5813271699683C25c734F4daBc45B363709";
87
+ readonly lsdSource: {
88
+ readonly poolId: "46bd2bdf-6d92-4066-b482-e885ee172264";
89
+ readonly fallbackAprPct: 3;
90
+ readonly label: "EtherFi (weETH)";
91
+ };
92
+ }, {
93
+ readonly name: "lsodaWSTETH";
94
+ readonly vault: "0x136E5D1CEC5db1829E24941Eddd9C8640E02Ce7a";
95
+ readonly asset: "0x58b0538D7EEaeE69EF32f9F1dE5cbF32A10a977B";
96
+ readonly borrowToken: "0x4effB5813271699683C25c734F4daBc45B363709";
97
+ readonly lsdSource: {
98
+ readonly poolId: "747c1d2a-c668-4682-b9f9-296708a3dd90";
99
+ readonly fallbackAprPct: 2.4;
100
+ readonly label: "Lido (stETH)";
101
+ };
102
+ }, {
103
+ readonly name: "lsodaJITOSOL";
104
+ readonly vault: "0xD7Ae4853E0f93682F5DaA14734F5D18cBa09Bd78";
105
+ readonly asset: "0xe1bad4400d947Bc4fa66f9c0A143D800002083a0";
106
+ readonly borrowToken: "0xdEa692287E2cE8Cb08FA52917Be0F16b1DACDC87";
107
+ readonly lsdSource: {
108
+ readonly poolId: "0e7d0722-9054-4907-8593-567b353c0900";
109
+ readonly fallbackAprPct: 5.5;
110
+ readonly label: "Jito (JitoSOL)";
111
+ };
112
+ }];
113
+ export type LeverageYieldOptions = {
114
+ partnerFee?: PartnerFee;
115
+ };
116
+ export type LeverageYieldConfig = Prettify<LeverageYieldDefaultConfig & LeverageYieldOptions>;
117
+ export type LeverageYieldDefaultConfig = {
118
+ vaults: readonly LeverageYieldVault[];
119
+ };
120
+ export declare const leverageYieldConfig: {
121
+ readonly vaults: readonly [{
122
+ readonly name: "lsodaWEETH";
123
+ readonly vault: "0xD09de2f5070699A909c0FD32fb5A909d3886701D";
124
+ readonly asset: "0xCb6B152D3a943f25157381aFcA7fEFCD2ef5a357";
125
+ readonly borrowToken: "0x4effB5813271699683C25c734F4daBc45B363709";
126
+ readonly lsdSource: {
127
+ readonly poolId: "46bd2bdf-6d92-4066-b482-e885ee172264";
128
+ readonly fallbackAprPct: 3;
129
+ readonly label: "EtherFi (weETH)";
130
+ };
131
+ }, {
132
+ readonly name: "lsodaWSTETH";
133
+ readonly vault: "0x136E5D1CEC5db1829E24941Eddd9C8640E02Ce7a";
134
+ readonly asset: "0x58b0538D7EEaeE69EF32f9F1dE5cbF32A10a977B";
135
+ readonly borrowToken: "0x4effB5813271699683C25c734F4daBc45B363709";
136
+ readonly lsdSource: {
137
+ readonly poolId: "747c1d2a-c668-4682-b9f9-296708a3dd90";
138
+ readonly fallbackAprPct: 2.4;
139
+ readonly label: "Lido (stETH)";
140
+ };
141
+ }, {
142
+ readonly name: "lsodaJITOSOL";
143
+ readonly vault: "0xD7Ae4853E0f93682F5DaA14734F5D18cBa09Bd78";
144
+ readonly asset: "0xe1bad4400d947Bc4fa66f9c0A143D800002083a0";
145
+ readonly borrowToken: "0xdEa692287E2cE8Cb08FA52917Be0F16b1DACDC87";
146
+ readonly lsdSource: {
147
+ readonly poolId: "0e7d0722-9054-4907-8593-567b353c0900";
148
+ readonly fallbackAprPct: 5.5;
149
+ readonly label: "Jito (JitoSOL)";
150
+ };
151
+ }];
152
+ };
@@ -0,0 +1,51 @@
1
+ import { LsodaTokens, SodaTokens } from '../chains/tokens.js';
2
+ /**
3
+ * SDK-wide registry of known leverage vaults. Add an entry here when a vault is promoted
4
+ * to a default; callers can also override per-instance via the `Sodax({ leverageYield:
5
+ * { vaults: [...] } })` config slot.
6
+ *
7
+ * Addresses are sourced from the canonical token registries — the proxy/share-token address
8
+ * from {@link LsodaTokens} and the hub-side `asset` / `borrowToken` from {@link SodaTokens} —
9
+ * so a deployment-address change lives in exactly one place.
10
+ */
11
+ export const leverageYieldVaults = [
12
+ {
13
+ name: LsodaTokens.lsodaWEETH.symbol,
14
+ vault: LsodaTokens.lsodaWEETH.vault,
15
+ asset: SodaTokens.sodaWEETH.address, // sodaWEETH on Sonic
16
+ borrowToken: SodaTokens.sodaETH.address, // sodaETH on Sonic
17
+ lsdSource: {
18
+ // DefiLlama pool for EtherFi's weETH on Ethereum (project: 'ether.fi-stake').
19
+ poolId: '46bd2bdf-6d92-4066-b482-e885ee172264',
20
+ fallbackAprPct: 3.0,
21
+ label: 'EtherFi (weETH)',
22
+ },
23
+ },
24
+ {
25
+ name: LsodaTokens.lsodaWSTETH.symbol,
26
+ vault: LsodaTokens.lsodaWSTETH.vault,
27
+ asset: SodaTokens.sodaWSTETH.address, // sodaWSTETH on Sonic
28
+ borrowToken: SodaTokens.sodaETH.address, // sodaETH on Sonic
29
+ lsdSource: {
30
+ // DefiLlama pool for Lido's stETH on Ethereum (wstETH inherits this rate via redeem).
31
+ poolId: '747c1d2a-c668-4682-b9f9-296708a3dd90',
32
+ fallbackAprPct: 2.4,
33
+ label: 'Lido (stETH)',
34
+ },
35
+ },
36
+ {
37
+ name: LsodaTokens.lsodaJITOSOL.symbol,
38
+ vault: LsodaTokens.lsodaJITOSOL.vault,
39
+ asset: SodaTokens.sodaJITOSOL.address, // sodaJITOSOL on Sonic
40
+ borrowToken: SodaTokens.sodaSOL.address, // sodaSOL on Sonic
41
+ lsdSource: {
42
+ // DefiLlama pool for Jito's JitoSOL native staking on Solana (project: 'jito-liquid-staking').
43
+ poolId: '0e7d0722-9054-4907-8593-567b353c0900',
44
+ fallbackAprPct: 5.5,
45
+ label: 'Jito (JitoSOL)',
46
+ },
47
+ },
48
+ ];
49
+ export const leverageYieldConfig = {
50
+ vaults: leverageYieldVaults,
51
+ };
@@ -578,6 +578,14 @@ export declare const moneyMarketSupportedTokens: {
578
578
  readonly chainKey: "solana";
579
579
  readonly hubAsset: "0x891c7ab9047eb087b5a988a2638e7056f67adc5c";
580
580
  readonly vault: "0xbDf1F453FCB61424011BBDDCB96cFDB30f3Fe876";
581
+ }, {
582
+ readonly symbol: "JitoSOL";
583
+ readonly name: "Jito Staked SOL";
584
+ readonly decimals: 9;
585
+ readonly address: "J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn";
586
+ readonly chainKey: "solana";
587
+ readonly hubAsset: "0x942f89a324d2652e447b9fcf08effc9f9776a680";
588
+ readonly vault: "0xe1bad4400d947Bc4fa66f9c0A143D800002083a0";
581
589
  }];
582
590
  readonly "0x1.icon": [{
583
591
  readonly symbol: "bnUSD (legacy)";
@@ -620,6 +628,30 @@ export declare const moneyMarketSupportedTokens: {
620
628
  readonly chainKey: "stellar";
621
629
  readonly hubAsset: "0x348007B53F25A9A857aB8eA81ec9E3CCBCf440f2";
622
630
  readonly vault: "0xAbbb91c0617090F0028BDC27597Cd0D038F3A833";
631
+ }, {
632
+ readonly symbol: "sodaETH";
633
+ readonly name: "Soda ETH";
634
+ readonly decimals: 7;
635
+ readonly address: "CDK5EWVTZLGSLI6D5OSES7XUKWZUKBXDRNOWUVDNPP5RJRP5EYWCW7SL";
636
+ readonly chainKey: "stellar";
637
+ readonly hubAsset: "0x4985a4b72ac723723e9ae82382d12d77e9a715de";
638
+ readonly vault: "0x4effB5813271699683C25c734F4daBc45B363709";
639
+ }, {
640
+ readonly symbol: "sodaBTC";
641
+ readonly name: "Soda BTC";
642
+ readonly decimals: 7;
643
+ readonly address: "CD6XWBW74YVFDQQYUM2GALCULMA5MAWGP6NTCWF3ZYXP4Z7MEVY4JKBX";
644
+ readonly chainKey: "stellar";
645
+ readonly hubAsset: "0xddee01f63c18843e2bac30cb702864d7632c83a2";
646
+ readonly vault: "0x7A1A5555842Ad2D0eD274d09b5c4406a95799D5d";
647
+ }, {
648
+ readonly symbol: "sodaBNB";
649
+ readonly name: "Soda BNB";
650
+ readonly decimals: 7;
651
+ readonly address: "CCXTXZAFLVNTMORVWYB6BGL7YEW3U3ONDAL2FGBRGDUQH7AGANVQPRS6";
652
+ readonly chainKey: "stellar";
653
+ readonly hubAsset: "0xa10be5f5c2dea7d272555dc73ea2a7317c3c5b63";
654
+ readonly vault: "0x40Cd41b35DB9e5109ae7E54b44De8625dB320E6b";
623
655
  }];
624
656
  readonly sui: [{
625
657
  readonly symbol: "SUI";
@@ -951,6 +983,14 @@ export declare const moneyMarketSupportedTokens: {
951
983
  readonly chainKey: "sonic";
952
984
  readonly hubAsset: "0x243b0c26c8b38793908d7C64e8510f21B19B4613";
953
985
  readonly vault: "0x243b0c26c8b38793908d7C64e8510f21B19B4613";
986
+ } | {
987
+ readonly symbol: "sodaJITOSOL";
988
+ readonly name: "Soda JITOSOL";
989
+ readonly decimals: 18;
990
+ readonly address: "0xe1bad4400d947Bc4fa66f9c0A143D800002083a0";
991
+ readonly chainKey: "sonic";
992
+ readonly hubAsset: "0xe1bad4400d947Bc4fa66f9c0A143D800002083a0";
993
+ readonly vault: "0xe1bad4400d947Bc4fa66f9c0A143D800002083a0";
954
994
  })[]];
955
995
  readonly near: [{
956
996
  readonly symbol: "NEAR";
@@ -1272,7 +1312,7 @@ export declare const moneyMarketSupportedTokens: {
1272
1312
  readonly vault: "0x7A1A5555842Ad2D0eD274d09b5c4406a95799D5d";
1273
1313
  }];
1274
1314
  };
1275
- export declare const moneyMarketReserveAssets: [...("0x21685E341DE7844135329914Be6Bd8D16982d834" | "0x7A1A5555842Ad2D0eD274d09b5c4406a95799D5d" | "0x4effB5813271699683C25c734F4daBc45B363709" | "0x40Cd41b35DB9e5109ae7E54b44De8625dB320E6b" | "0x14238D267557E9d799016ad635B53CD15935d290" | "0x811C3fCc13f9c2a23AE2Ae2DCadacFAC6eb5f0eB" | "0xdEa692287E2cE8Cb08FA52917Be0F16b1DACDC87" | "0x6BC8C37cba91F76E68C9e6d689A9C21E4d32079B" | "0x1f22279C89B213944b7Ea41daCB0a868DdCDFd13" | "0xdc5B4b00F98347E95b9F94911213DAB4C687e1e3" | "0xE801CA34E19aBCbFeA12025378D19c4FBE250131" | "0xAbbb91c0617090F0028BDC27597Cd0D038F3A833" | "0xbDf1F453FCB61424011BBDDCB96cFDB30f3Fe876" | "0x9D4b663Eb075d2a1C7B8eaEFB9eCCC0510388B51" | "0x62ecc3Eeb80a162c57624B3fF80313FE69f5203e" | "0x208ED38f4783328aA9eBFeC360D32e7520A9B779" | "0x6E81124fC5d2Bf666B16a0A5d90066eBf35c7411" | "0x4B207114F9118dEAC56436e1aE3c45648783c7Ac" | "0x14C5eB2D25dFb834852dFc85744875d1eCb09748" | "0xCb6B152D3a943f25157381aFcA7fEFCD2ef5a357" | "0x58b0538D7EEaeE69EF32f9F1dE5cbF32A10a977B" | "0xf4ba497c9b805e4bd88a8a9e6a7b8f74984c3e39" | "0xD7d41b5f803b6A40F8A6eAa34E459A4564e39891" | "0x1Fbe5229e9d189F26bEE77E5bFa24309FdA90483" | "0x243b0c26c8b38793908d7C64e8510f21B19B4613")[], "0xE801CA34E19aBCbFeA12025378D19c4FBE250131"];
1315
+ export declare const moneyMarketReserveAssets: [...("0x21685E341DE7844135329914Be6Bd8D16982d834" | "0x7A1A5555842Ad2D0eD274d09b5c4406a95799D5d" | "0x4effB5813271699683C25c734F4daBc45B363709" | "0x40Cd41b35DB9e5109ae7E54b44De8625dB320E6b" | "0x14238D267557E9d799016ad635B53CD15935d290" | "0x811C3fCc13f9c2a23AE2Ae2DCadacFAC6eb5f0eB" | "0xdEa692287E2cE8Cb08FA52917Be0F16b1DACDC87" | "0x6BC8C37cba91F76E68C9e6d689A9C21E4d32079B" | "0x1f22279C89B213944b7Ea41daCB0a868DdCDFd13" | "0xdc5B4b00F98347E95b9F94911213DAB4C687e1e3" | "0xE801CA34E19aBCbFeA12025378D19c4FBE250131" | "0xAbbb91c0617090F0028BDC27597Cd0D038F3A833" | "0xbDf1F453FCB61424011BBDDCB96cFDB30f3Fe876" | "0x9D4b663Eb075d2a1C7B8eaEFB9eCCC0510388B51" | "0x62ecc3Eeb80a162c57624B3fF80313FE69f5203e" | "0x208ED38f4783328aA9eBFeC360D32e7520A9B779" | "0x6E81124fC5d2Bf666B16a0A5d90066eBf35c7411" | "0x4B207114F9118dEAC56436e1aE3c45648783c7Ac" | "0x14C5eB2D25dFb834852dFc85744875d1eCb09748" | "0xCb6B152D3a943f25157381aFcA7fEFCD2ef5a357" | "0x58b0538D7EEaeE69EF32f9F1dE5cbF32A10a977B" | "0xf4ba497c9b805e4bd88a8a9e6a7b8f74984c3e39" | "0xD7d41b5f803b6A40F8A6eAa34E459A4564e39891" | "0x1Fbe5229e9d189F26bEE77E5bFa24309FdA90483" | "0x243b0c26c8b38793908d7C64e8510f21B19B4613" | "0xe1bad4400d947Bc4fa66f9c0A143D800002083a0")[], "0xE801CA34E19aBCbFeA12025378D19c4FBE250131"];
1276
1316
  export declare const moneyMarketConfig: {
1277
1317
  readonly partnerFee: undefined;
1278
1318
  readonly lendingPool: "0x553434896D39F867761859D0FE7189d2Af70514E";
@@ -1861,6 +1901,14 @@ export declare const moneyMarketConfig: {
1861
1901
  readonly chainKey: "solana";
1862
1902
  readonly hubAsset: "0x891c7ab9047eb087b5a988a2638e7056f67adc5c";
1863
1903
  readonly vault: "0xbDf1F453FCB61424011BBDDCB96cFDB30f3Fe876";
1904
+ }, {
1905
+ readonly symbol: "JitoSOL";
1906
+ readonly name: "Jito Staked SOL";
1907
+ readonly decimals: 9;
1908
+ readonly address: "J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn";
1909
+ readonly chainKey: "solana";
1910
+ readonly hubAsset: "0x942f89a324d2652e447b9fcf08effc9f9776a680";
1911
+ readonly vault: "0xe1bad4400d947Bc4fa66f9c0A143D800002083a0";
1864
1912
  }];
1865
1913
  readonly "0x1.icon": [{
1866
1914
  readonly symbol: "bnUSD (legacy)";
@@ -1903,6 +1951,30 @@ export declare const moneyMarketConfig: {
1903
1951
  readonly chainKey: "stellar";
1904
1952
  readonly hubAsset: "0x348007B53F25A9A857aB8eA81ec9E3CCBCf440f2";
1905
1953
  readonly vault: "0xAbbb91c0617090F0028BDC27597Cd0D038F3A833";
1954
+ }, {
1955
+ readonly symbol: "sodaETH";
1956
+ readonly name: "Soda ETH";
1957
+ readonly decimals: 7;
1958
+ readonly address: "CDK5EWVTZLGSLI6D5OSES7XUKWZUKBXDRNOWUVDNPP5RJRP5EYWCW7SL";
1959
+ readonly chainKey: "stellar";
1960
+ readonly hubAsset: "0x4985a4b72ac723723e9ae82382d12d77e9a715de";
1961
+ readonly vault: "0x4effB5813271699683C25c734F4daBc45B363709";
1962
+ }, {
1963
+ readonly symbol: "sodaBTC";
1964
+ readonly name: "Soda BTC";
1965
+ readonly decimals: 7;
1966
+ readonly address: "CD6XWBW74YVFDQQYUM2GALCULMA5MAWGP6NTCWF3ZYXP4Z7MEVY4JKBX";
1967
+ readonly chainKey: "stellar";
1968
+ readonly hubAsset: "0xddee01f63c18843e2bac30cb702864d7632c83a2";
1969
+ readonly vault: "0x7A1A5555842Ad2D0eD274d09b5c4406a95799D5d";
1970
+ }, {
1971
+ readonly symbol: "sodaBNB";
1972
+ readonly name: "Soda BNB";
1973
+ readonly decimals: 7;
1974
+ readonly address: "CCXTXZAFLVNTMORVWYB6BGL7YEW3U3ONDAL2FGBRGDUQH7AGANVQPRS6";
1975
+ readonly chainKey: "stellar";
1976
+ readonly hubAsset: "0xa10be5f5c2dea7d272555dc73ea2a7317c3c5b63";
1977
+ readonly vault: "0x40Cd41b35DB9e5109ae7E54b44De8625dB320E6b";
1906
1978
  }];
1907
1979
  readonly sui: [{
1908
1980
  readonly symbol: "SUI";
@@ -2234,6 +2306,14 @@ export declare const moneyMarketConfig: {
2234
2306
  readonly chainKey: "sonic";
2235
2307
  readonly hubAsset: "0x243b0c26c8b38793908d7C64e8510f21B19B4613";
2236
2308
  readonly vault: "0x243b0c26c8b38793908d7C64e8510f21B19B4613";
2309
+ } | {
2310
+ readonly symbol: "sodaJITOSOL";
2311
+ readonly name: "Soda JITOSOL";
2312
+ readonly decimals: 18;
2313
+ readonly address: "0xe1bad4400d947Bc4fa66f9c0A143D800002083a0";
2314
+ readonly chainKey: "sonic";
2315
+ readonly hubAsset: "0xe1bad4400d947Bc4fa66f9c0A143D800002083a0";
2316
+ readonly vault: "0xe1bad4400d947Bc4fa66f9c0A143D800002083a0";
2237
2317
  })[]];
2238
2318
  readonly near: [{
2239
2319
  readonly symbol: "NEAR";
@@ -2555,5 +2635,5 @@ export declare const moneyMarketConfig: {
2555
2635
  readonly vault: "0x7A1A5555842Ad2D0eD274d09b5c4406a95799D5d";
2556
2636
  }];
2557
2637
  };
2558
- readonly supportedReserveAssets: [...("0x21685E341DE7844135329914Be6Bd8D16982d834" | "0x7A1A5555842Ad2D0eD274d09b5c4406a95799D5d" | "0x4effB5813271699683C25c734F4daBc45B363709" | "0x40Cd41b35DB9e5109ae7E54b44De8625dB320E6b" | "0x14238D267557E9d799016ad635B53CD15935d290" | "0x811C3fCc13f9c2a23AE2Ae2DCadacFAC6eb5f0eB" | "0xdEa692287E2cE8Cb08FA52917Be0F16b1DACDC87" | "0x6BC8C37cba91F76E68C9e6d689A9C21E4d32079B" | "0x1f22279C89B213944b7Ea41daCB0a868DdCDFd13" | "0xdc5B4b00F98347E95b9F94911213DAB4C687e1e3" | "0xE801CA34E19aBCbFeA12025378D19c4FBE250131" | "0xAbbb91c0617090F0028BDC27597Cd0D038F3A833" | "0xbDf1F453FCB61424011BBDDCB96cFDB30f3Fe876" | "0x9D4b663Eb075d2a1C7B8eaEFB9eCCC0510388B51" | "0x62ecc3Eeb80a162c57624B3fF80313FE69f5203e" | "0x208ED38f4783328aA9eBFeC360D32e7520A9B779" | "0x6E81124fC5d2Bf666B16a0A5d90066eBf35c7411" | "0x4B207114F9118dEAC56436e1aE3c45648783c7Ac" | "0x14C5eB2D25dFb834852dFc85744875d1eCb09748" | "0xCb6B152D3a943f25157381aFcA7fEFCD2ef5a357" | "0x58b0538D7EEaeE69EF32f9F1dE5cbF32A10a977B" | "0xf4ba497c9b805e4bd88a8a9e6a7b8f74984c3e39" | "0xD7d41b5f803b6A40F8A6eAa34E459A4564e39891" | "0x1Fbe5229e9d189F26bEE77E5bFa24309FdA90483" | "0x243b0c26c8b38793908d7C64e8510f21B19B4613")[], "0xE801CA34E19aBCbFeA12025378D19c4FBE250131"];
2638
+ readonly supportedReserveAssets: [...("0x21685E341DE7844135329914Be6Bd8D16982d834" | "0x7A1A5555842Ad2D0eD274d09b5c4406a95799D5d" | "0x4effB5813271699683C25c734F4daBc45B363709" | "0x40Cd41b35DB9e5109ae7E54b44De8625dB320E6b" | "0x14238D267557E9d799016ad635B53CD15935d290" | "0x811C3fCc13f9c2a23AE2Ae2DCadacFAC6eb5f0eB" | "0xdEa692287E2cE8Cb08FA52917Be0F16b1DACDC87" | "0x6BC8C37cba91F76E68C9e6d689A9C21E4d32079B" | "0x1f22279C89B213944b7Ea41daCB0a868DdCDFd13" | "0xdc5B4b00F98347E95b9F94911213DAB4C687e1e3" | "0xE801CA34E19aBCbFeA12025378D19c4FBE250131" | "0xAbbb91c0617090F0028BDC27597Cd0D038F3A833" | "0xbDf1F453FCB61424011BBDDCB96cFDB30f3Fe876" | "0x9D4b663Eb075d2a1C7B8eaEFB9eCCC0510388B51" | "0x62ecc3Eeb80a162c57624B3fF80313FE69f5203e" | "0x208ED38f4783328aA9eBFeC360D32e7520A9B779" | "0x6E81124fC5d2Bf666B16a0A5d90066eBf35c7411" | "0x4B207114F9118dEAC56436e1aE3c45648783c7Ac" | "0x14C5eB2D25dFb834852dFc85744875d1eCb09748" | "0xCb6B152D3a943f25157381aFcA7fEFCD2ef5a357" | "0x58b0538D7EEaeE69EF32f9F1dE5cbF32A10a977B" | "0xf4ba497c9b805e4bd88a8a9e6a7b8f74984c3e39" | "0xD7d41b5f803b6A40F8A6eAa34E459A4564e39891" | "0x1Fbe5229e9d189F26bEE77E5bFa24309FdA90483" | "0x243b0c26c8b38793908d7C64e8510f21B19B4613" | "0xe1bad4400d947Bc4fa66f9c0A143D800002083a0")[], "0xE801CA34E19aBCbFeA12025378D19c4FBE250131"];
2559
2639
  };
@@ -90,6 +90,7 @@ export const moneyMarketSupportedTokens = {
90
90
  spokeChainConfig[ChainKeys.SOLANA_MAINNET].supportedTokens.USDC,
91
91
  spokeChainConfig[ChainKeys.SOLANA_MAINNET].supportedTokens.SODA,
92
92
  spokeChainConfig[ChainKeys.SOLANA_MAINNET].supportedTokens.USDT,
93
+ spokeChainConfig[ChainKeys.SOLANA_MAINNET].supportedTokens.JitoSOL,
93
94
  ],
94
95
  [ChainKeys.ICON_MAINNET]: [
95
96
  // spokeChainConfig[ChainKeys.ICON].supportedTokens.ICX,
@@ -101,6 +102,9 @@ export const moneyMarketSupportedTokens = {
101
102
  spokeChainConfig[ChainKeys.STELLAR_MAINNET].supportedTokens.bnUSD,
102
103
  spokeChainConfig[ChainKeys.STELLAR_MAINNET].supportedTokens.SODA,
103
104
  spokeChainConfig[ChainKeys.STELLAR_MAINNET].supportedTokens.USDC,
105
+ spokeChainConfig[ChainKeys.STELLAR_MAINNET].supportedTokens.sodaETH,
106
+ spokeChainConfig[ChainKeys.STELLAR_MAINNET].supportedTokens.sodaBTC,
107
+ spokeChainConfig[ChainKeys.STELLAR_MAINNET].supportedTokens.sodaBNB,
104
108
  ],
105
109
  [ChainKeys.SUI_MAINNET]: [
106
110
  spokeChainConfig[ChainKeys.SUI_MAINNET].supportedTokens.SUI,