@sodax/types 2.0.0-rc.13 → 2.0.0-rc.15
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.
- package/dist/backend/backendApiV2.d.ts +137 -0
- package/dist/backend/backendApiV2.js +4 -0
- package/dist/chains/chains.d.ts +85 -1
- package/dist/chains/chains.js +15 -0
- package/dist/chains/tokens.d.ts +130 -4
- package/dist/chains/tokens.js +57 -2
- package/dist/common/common.d.ts +15 -7
- package/dist/dex/dex.d.ts +4 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/injective/injective.d.ts +4 -0
- package/dist/leverageYield/leverageYield.d.ts +26 -1
- package/dist/leverageYield/leverageYield.js +12 -0
- package/dist/moneyMarket/moneyMarket.d.ts +82 -2
- package/dist/moneyMarket/moneyMarket.js +4 -0
- package/dist/sodax-config/sodax-config.d.ts +240 -98
- package/dist/sodax-config/sodax-config.js +5 -6
- package/dist/swap/swap.d.ts +257 -136
- package/dist/swap/swap.js +64 -16
- package/package.json +2 -2
|
@@ -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,22 @@ 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;
|
|
217
|
+
/**
|
|
218
|
+
* Bound Exchange (Radfi) access token for Bitcoin TRADING-mode (`raw`) intents — supplied in the
|
|
219
|
+
* request body instead of an `x-bound-access-token` header so the token threads through the typed
|
|
220
|
+
* DTO. Required only when the source chain is Bitcoin in TRADING mode; ignored otherwise.
|
|
221
|
+
*/
|
|
222
|
+
accessToken?: string;
|
|
193
223
|
}
|
|
194
224
|
/** POST /swaps/allowance/check — response body. */
|
|
195
225
|
export interface AllowanceCheckResponseV2 {
|
|
@@ -503,3 +533,110 @@ export interface ISwapsApiV2 {
|
|
|
503
533
|
/** GET /swaps/submit-tx/status */
|
|
504
534
|
getSubmitTxStatus(query: SubmitTxStatusQueryV2): Promise<SubmitTxStatusResponseV2>;
|
|
505
535
|
}
|
|
536
|
+
/** JSON-safe {@link RelayConfig}: relay chain ids are decimal strings on the wire. */
|
|
537
|
+
export type RelayConfigV2 = Omit<RelayConfig, 'relayChainIdMap'> & {
|
|
538
|
+
/** SpokeChainKey → intent-relay chain id as a decimal string (e.g. `"146"`). */
|
|
539
|
+
relayChainIdMap: Record<string, string>;
|
|
540
|
+
};
|
|
541
|
+
/** JSON-safe {@link ConcentratedLiquidityConfig}: `defaultBitmap` is a decimal string. */
|
|
542
|
+
export type ConcentratedLiquidityConfigV2 = Omit<ConcentratedLiquidityConfig, 'defaultBitmap'> & {
|
|
543
|
+
/** Default tick bitmap; bigint projected to a decimal string. */
|
|
544
|
+
defaultBitmap: string;
|
|
545
|
+
};
|
|
546
|
+
/** JSON-safe {@link DexDefaultConfig}. Only the concentrated-liquidity config carries bigint. */
|
|
547
|
+
export type DexConfigV2 = Omit<DexDefaultConfig, 'concentratedLiquidityConfig'> & {
|
|
548
|
+
concentratedLiquidityConfig: ConcentratedLiquidityConfigV2;
|
|
549
|
+
};
|
|
550
|
+
/**
|
|
551
|
+
* JSON-safe projection of {@link SodaxDefaultConfig} — the STATIC config the backend serves,
|
|
552
|
+
* never the merged `SodaxConfig`. `SodaxDefaultConfig` already exposes only static per-feature
|
|
553
|
+
* configs (`SwapsDefaultConfig`, `MoneyMarketDefaultConfig`, `BridgeDefaultConfig`,
|
|
554
|
+
* `LeverageYieldDefaultConfig`, `DexDefaultConfig`), so every field is reused untouched —
|
|
555
|
+
* `chains`, `swaps`, `moneyMarket`, `bridge`, `leverageYield`, `hub`, `api`, `solver` are all
|
|
556
|
+
* JSON-safe as-is. Only `dex` and `relay` are projected to their `*V2` variants because they
|
|
557
|
+
* carry a `bigint` field.
|
|
558
|
+
*
|
|
559
|
+
* No options ever reach the wire: the global `fee`, the `logger`, and every per-feature
|
|
560
|
+
* `partnerFee` live on `SodaxOptions` (resolved client-side), which is not part of `SodaxDefaultConfig`.
|
|
561
|
+
*/
|
|
562
|
+
export type SodaxConfigV2 = Omit<SodaxDefaultConfig, 'dex' | 'relay'> & {
|
|
563
|
+
dex: DexConfigV2;
|
|
564
|
+
relay: RelayConfigV2;
|
|
565
|
+
};
|
|
566
|
+
/**
|
|
567
|
+
* GET /config/all — full config plus its schema version for drift detection.
|
|
568
|
+
*
|
|
569
|
+
* `version` is REQUIRED here (the v1 `GetAllConfigApiResponse.version` is optional):
|
|
570
|
+
* `ConfigService` already treats a missing/older version as "reject and keep the
|
|
571
|
+
* packaged defaults", so a required field is a strictly cleaner v2 contract.
|
|
572
|
+
*/
|
|
573
|
+
export type GetAllConfigResponseV2 = {
|
|
574
|
+
/** Config schema version; compared against the SDK's `CONFIG_VERSION`. */
|
|
575
|
+
version: number;
|
|
576
|
+
/** Full JSON-safe SODAX config. */
|
|
577
|
+
config: SodaxConfigV2;
|
|
578
|
+
} & _AssertJsonSafe<[_ContainsBigint<SodaxConfigV2>] extends [false] ? true : false>;
|
|
579
|
+
/** GET /config/spoke/chains — supported spoke chain keys. */
|
|
580
|
+
export type GetChainsResponseV2 = readonly string[];
|
|
581
|
+
/** GET /config/spoke/all-chains-configs — full per-chain config (no bigint → `SpokeChainConfig` reused). */
|
|
582
|
+
export type GetSpokeChainConfigsResponseV2 = Record<string, SpokeChainConfig>;
|
|
583
|
+
/**
|
|
584
|
+
* GET /config/swap/tokens — supported swap tokens per chain.
|
|
585
|
+
*
|
|
586
|
+
* Returns the canonical {@link XToken} (incl. its optional `access`), NOT the
|
|
587
|
+
* swaps-domain `SwapTokenV2`: this is config data, so it mirrors the source token
|
|
588
|
+
* exactly. (`GetSwapTokensResponseV2` above is the unrelated `/swaps/tokens` shape.)
|
|
589
|
+
*/
|
|
590
|
+
export type GetSwapTokensConfigResponseV2 = Record<string, readonly XToken[]>;
|
|
591
|
+
/** GET /config/swap/:chainKey/tokens — supported swap tokens for one chain. */
|
|
592
|
+
export type GetSwapTokensConfigByChainResponseV2 = readonly XToken[];
|
|
593
|
+
/** GET /config/money-market/tokens — supported money-market tokens per chain. */
|
|
594
|
+
export type GetMoneyMarketTokensConfigResponseV2 = Record<string, readonly XToken[]>;
|
|
595
|
+
/** GET /config/money-market/:chainKey/tokens — supported money-market tokens for one chain. */
|
|
596
|
+
export type GetMoneyMarketTokensConfigByChainResponseV2 = readonly XToken[];
|
|
597
|
+
/** GET /config/money-market/reserve-assets — hub reserve asset addresses. */
|
|
598
|
+
export type GetMoneyMarketReserveAssetsResponseV2 = readonly string[];
|
|
599
|
+
/** GET /config/relay/chain-id-map — SpokeChainKey → intent-relay chain id (decimal string). */
|
|
600
|
+
export type GetRelayChainIdMapResponseV2 = Record<string, string>;
|
|
601
|
+
/**
|
|
602
|
+
* Client-side surface for the backend Config API v2 — for typed HTTP clients
|
|
603
|
+
* (fetch wrappers / SDK adapters). Each method describes one endpoint as the
|
|
604
|
+
* client sees it: all methods are async and all field types are the
|
|
605
|
+
* post-serialization wire shapes above (bigint → decimal `string`).
|
|
606
|
+
*
|
|
607
|
+
* As with {@link ISwapsApiV2}, do NOT `implements` this on the NestJS controller:
|
|
608
|
+
* handlers return pre-serialization domain types (`bigint`, branded values) and the
|
|
609
|
+
* response interceptor serializes them into these wire shapes afterwards.
|
|
610
|
+
*/
|
|
611
|
+
export interface IConfigApiV2 {
|
|
612
|
+
/** GET /config/all */
|
|
613
|
+
getAllConfig(): Promise<GetAllConfigResponseV2>;
|
|
614
|
+
/** GET /config/spoke/chains */
|
|
615
|
+
getChains(): Promise<GetChainsResponseV2>;
|
|
616
|
+
/** GET /config/spoke/all-chains-configs */
|
|
617
|
+
getSpokeChainConfigs(): Promise<GetSpokeChainConfigsResponseV2>;
|
|
618
|
+
/** GET /config/swap/tokens */
|
|
619
|
+
getSwapTokens(): Promise<GetSwapTokensConfigResponseV2>;
|
|
620
|
+
/** GET /config/swap/:chainKey/tokens */
|
|
621
|
+
getSwapTokensByChain(chainKey: string): Promise<GetSwapTokensConfigByChainResponseV2>;
|
|
622
|
+
/** GET /config/money-market/tokens */
|
|
623
|
+
getMoneyMarketTokens(): Promise<GetMoneyMarketTokensConfigResponseV2>;
|
|
624
|
+
/** GET /config/money-market/:chainKey/tokens */
|
|
625
|
+
getMoneyMarketTokensByChain(chainKey: string): Promise<GetMoneyMarketTokensConfigByChainResponseV2>;
|
|
626
|
+
/** GET /config/money-market/reserve-assets */
|
|
627
|
+
getMoneyMarketReserveAssets(): Promise<GetMoneyMarketReserveAssetsResponseV2>;
|
|
628
|
+
/** GET /config/relay/chain-id-map */
|
|
629
|
+
getRelayChainIdMap(): Promise<GetRelayChainIdMapResponseV2>;
|
|
630
|
+
}
|
|
631
|
+
/** True if `T` contains a `bigint` anywhere in its data shape. Recurses arrays/records/objects. */
|
|
632
|
+
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 {
|
|
633
|
+
[K in keyof T]-?: _ContainsBigint<T[K]>;
|
|
634
|
+
}[keyof T] ? true : false : false;
|
|
635
|
+
/**
|
|
636
|
+
* Resolves to `unknown` (an identity in an intersection) when `Ok` proves JSON-safety;
|
|
637
|
+
* otherwise the `Ok extends true` constraint is violated and compilation fails at the use site.
|
|
638
|
+
* The caller passes `[_ContainsBigint<T>] extends [false] ? true : false` — the `[…] extends […]`
|
|
639
|
+
* wrap is union-safe (a `true | false` result from union distribution still resolves to `false`).
|
|
640
|
+
*/
|
|
641
|
+
type _AssertJsonSafe<_Ok extends true> = unknown;
|
|
642
|
+
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 {};
|
package/dist/chains/chains.d.ts
CHANGED
|
@@ -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: "
|
|
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";
|
package/dist/chains/chains.js
CHANGED
|
@@ -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',
|
package/dist/chains/tokens.d.ts
CHANGED
|
@@ -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: "
|
|
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: "
|
|
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: {
|