@cetusprotocol/terminal 0.0.0-experimental-1737427725035

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.
Files changed (158) hide show
  1. package/README.md +39 -0
  2. package/dist/App.d.ts +2 -0
  3. package/dist/Com.d.ts +4 -0
  4. package/dist/_redirects +2 -0
  5. package/dist/cetus-swap.cjs.js +114 -0
  6. package/dist/cetus-swap.cjs.js.gz +0 -0
  7. package/dist/cetus-swap.es.js +36047 -0
  8. package/dist/cetus-swap.es.js.gz +0 -0
  9. package/dist/cetus-swap.umd.js +114 -0
  10. package/dist/cetus-swap.umd.js.gz +0 -0
  11. package/dist/components/common/BackButton.d.ts +3 -0
  12. package/dist/components/common/Button.d.ts +8 -0
  13. package/dist/components/common/CopyButton.d.ts +4 -0
  14. package/dist/components/common/HaveBackHeader.d.ts +4 -0
  15. package/dist/components/common/HighlightText.d.ts +10 -0
  16. package/dist/components/common/Loading.d.ts +2 -0
  17. package/dist/components/common/MevButton.d.ts +1 -0
  18. package/dist/components/common/NumericFormatInput.d.ts +15 -0
  19. package/dist/components/common/RefreshButton.d.ts +3 -0
  20. package/dist/components/common/SettingsButton.d.ts +5 -0
  21. package/dist/components/common/SlippageButton.d.ts +4 -0
  22. package/dist/components/common/Spinner.d.ts +8 -0
  23. package/dist/components/common/SpinnerWithGap.d.ts +7 -0
  24. package/dist/components/common/Toast.d.ts +7 -0
  25. package/dist/components/common/TokenImage.d.ts +7 -0
  26. package/dist/components/common/Tooltip.d.ts +9 -0
  27. package/dist/components/common/TooltipV2.d.ts +9 -0
  28. package/dist/components/common/TsStatusDialog.d.ts +7 -0
  29. package/dist/components/common/wallet/AccountSwitch.d.ts +3 -0
  30. package/dist/components/common/wallet/ConnectButton.d.ts +1 -0
  31. package/dist/components/common/wallet/TriggerButton.d.ts +4 -0
  32. package/dist/components/demo/CodeBlocks.d.ts +1 -0
  33. package/dist/components/demo/DemoFooter.d.ts +1 -0
  34. package/dist/components/demo/DisplayModeBlock.d.ts +1 -0
  35. package/dist/components/demo/DisplayModeTab.d.ts +6 -0
  36. package/dist/components/demo/NavMenu.d.ts +1 -0
  37. package/dist/components/demo/SetingMenu.d.ts +1 -0
  38. package/dist/components/demo/SimulateDappWallet.d.ts +1 -0
  39. package/dist/components/demo/SwapPanel.d.ts +1 -0
  40. package/dist/components/demo/TerminalModalButton.d.ts +5 -0
  41. package/dist/components/demo/WidgetBlock.d.ts +7 -0
  42. package/dist/components/demo/WidgetBtn.d.ts +7 -0
  43. package/dist/components/demo/index.d.ts +1 -0
  44. package/dist/components/export/ExportModal.d.ts +4 -0
  45. package/dist/components/export/ExportWidgetBtn.d.ts +7 -0
  46. package/dist/components/swap/CurrentPriceBlock.d.ts +10 -0
  47. package/dist/components/swap/PriceImpact.d.ts +8 -0
  48. package/dist/components/swap/ReceivedBlock.d.ts +8 -0
  49. package/dist/components/swap/RouteDialog.d.ts +11 -0
  50. package/dist/components/swap/ScamsAlert.d.ts +5 -0
  51. package/dist/components/swap/SecondaryDialog.d.ts +8 -0
  52. package/dist/components/swap/SimpleRouter.d.ts +8 -0
  53. package/dist/components/swap/SwapHeader.d.ts +5 -0
  54. package/dist/components/swap/SwapTrade.d.ts +7 -0
  55. package/dist/components/swap/SwapWidget.d.ts +4 -0
  56. package/dist/components/swap/TestToast.d.ts +1 -0
  57. package/dist/components/swap/TokenSelect.d.ts +7 -0
  58. package/dist/components/swap/TokenSelectModal/CollectTokenBlock.d.ts +6 -0
  59. package/dist/components/swap/TokenSelectModal/NoData.d.ts +11 -0
  60. package/dist/components/swap/TokenSelectModal/PlatformTabs.d.ts +5 -0
  61. package/dist/components/swap/TokenSelectModal/PopularTokens.d.ts +1 -0
  62. package/dist/components/swap/TokenSelectModal/TokenList.d.ts +13 -0
  63. package/dist/components/swap/TokenSelectModal/TypeTabs.d.ts +4 -0
  64. package/dist/components/swap/TokenSelectModal/WarnTokenDialog.d.ts +6 -0
  65. package/dist/components/swap/TokenSelectModal/index.d.ts +6 -0
  66. package/dist/components/swap/TradeInput.d.ts +17 -0
  67. package/dist/components/swap/WidgetHeader.d.ts +4 -0
  68. package/dist/config/explorer.d.ts +2 -0
  69. package/dist/config/index.d.ts +11 -0
  70. package/dist/config/provider.d.ts +36 -0
  71. package/dist/config/rpc.d.ts +2 -0
  72. package/dist/config/token.d.ts +3 -0
  73. package/dist/data/pools.json +40563 -0
  74. package/dist/data/pools.json.gz +0 -0
  75. package/dist/favicon.ico +0 -0
  76. package/dist/hooks/common/useExplorer.d.ts +4 -0
  77. package/dist/hooks/common/useFetch.d.ts +3 -0
  78. package/dist/hooks/common/useFindBestRouting.d.ts +11 -0
  79. package/dist/hooks/common/useGetPoolListByCoinType.d.ts +3 -0
  80. package/dist/hooks/common/useGetRouterConfig.d.ts +3 -0
  81. package/dist/hooks/common/useInterval.d.ts +9 -0
  82. package/dist/hooks/common/useSigner.d.ts +8 -0
  83. package/dist/hooks/common/useSyncedRef.d.ts +1 -0
  84. package/dist/hooks/common/useTransaction.d.ts +5 -0
  85. package/dist/hooks/common/useWindowWidth.d.ts +4 -0
  86. package/dist/hooks/demo/useDisplayMode.d.ts +15 -0
  87. package/dist/hooks/demo/useRpcConfiguration.d.ts +10 -0
  88. package/dist/hooks/demo/useSeting.d.ts +0 -0
  89. package/dist/hooks/swap/usePriceImpact.d.ts +13 -0
  90. package/dist/hooks/swap/useSwap.d.ts +13 -0
  91. package/dist/hooks/swap/useSwapButtonStatus.d.ts +4 -0
  92. package/dist/hooks/swap/useSwapHelper.d.ts +49 -0
  93. package/dist/hooks/useDebounce.d.ts +4 -0
  94. package/dist/hooks/useGetPoolList.d.ts +22 -0
  95. package/dist/hooks/useGetTokenBalance.d.ts +5 -0
  96. package/dist/hooks/useInitWidget.d.ts +3 -0
  97. package/dist/hooks/useSuiClient.d.ts +1 -0
  98. package/dist/hooks/useToast.d.ts +7 -0
  99. package/dist/hooks/useTokenCollect.d.ts +6 -0
  100. package/dist/hooks/useTokenPrice.d.ts +6 -0
  101. package/dist/hooks/useTokenSelect.d.ts +11 -0
  102. package/dist/hooks/useTokens.d.ts +8 -0
  103. package/dist/images/aggregator-source/aftermath.png +0 -0
  104. package/dist/images/aggregator-source/bluefin.png +0 -0
  105. package/dist/images/aggregator-source/bluemove.png +0 -0
  106. package/dist/images/aggregator-source/cetus.png +0 -0
  107. package/dist/images/aggregator-source/deepbook.png +0 -0
  108. package/dist/images/aggregator-source/flowx.png +0 -0
  109. package/dist/images/aggregator-source/haedal.png +0 -0
  110. package/dist/images/aggregator-source/kriya.png +0 -0
  111. package/dist/images/aggregator-source/scallop.png +0 -0
  112. package/dist/images/aggregator-source/suilend.png +0 -0
  113. package/dist/images/aggregator-source/turbos.png +0 -0
  114. package/dist/images/aggregator-source/volo.png +0 -0
  115. package/dist/images/birdeye-logo.png +0 -0
  116. package/dist/images/ghost_loading.png +0 -0
  117. package/dist/images/icon_mev@2x.png +0 -0
  118. package/dist/images/img-logo@2x.png +0 -0
  119. package/dist/images/img_no_data@2x.png +0 -0
  120. package/dist/images/logo@2x.png +0 -0
  121. package/dist/images/logo_CoinGecko@2x.png +0 -0
  122. package/dist/images/logo_pyth.png +0 -0
  123. package/dist/images/logo_suiscan@2x.png +0 -0
  124. package/dist/images/logo_suivision@2x.png +0 -0
  125. package/dist/images/placeholder-token@2x.png +0 -0
  126. package/dist/images/primary_loading.png +0 -0
  127. package/dist/index.d.ts +2 -0
  128. package/dist/main.d.ts +0 -0
  129. package/dist/stores/account.d.ts +16 -0
  130. package/dist/stores/client.d.ts +10 -0
  131. package/dist/stores/common.d.ts +8 -0
  132. package/dist/stores/demo.d.ts +27 -0
  133. package/dist/stores/global.d.ts +52 -0
  134. package/dist/stores/price.d.ts +8 -0
  135. package/dist/stores/swap.d.ts +26 -0
  136. package/dist/stores/token.d.ts +13 -0
  137. package/dist/stores/tokenSelect.d.ts +30 -0
  138. package/dist/stores/transaction.d.ts +7 -0
  139. package/dist/style.css +1 -0
  140. package/dist/style.css.gz +0 -0
  141. package/dist/types/common.d.ts +91 -0
  142. package/dist/types/config.d.ts +13 -0
  143. package/dist/types/demo.d.ts +5 -0
  144. package/dist/types/index.d.ts +4 -0
  145. package/dist/types/sui.d.ts +33 -0
  146. package/dist/utils/common.d.ts +13 -0
  147. package/dist/utils/contract.d.ts +10 -0
  148. package/dist/utils/decimal.d.ts +2 -0
  149. package/dist/utils/error.d.ts +9 -0
  150. package/dist/utils/fetch.d.ts +8 -0
  151. package/dist/utils/formatter.d.ts +12 -0
  152. package/dist/utils/index.d.ts +8 -0
  153. package/dist/utils/localforage-key.d.ts +4 -0
  154. package/dist/utils/localforage-service.d.ts +6 -0
  155. package/dist/utils/number.d.ts +20 -0
  156. package/dist/vite-env.d.ts +1 -0
  157. package/dist/widget.d.ts +0 -0
  158. package/package.json +72 -0
Binary file
@@ -0,0 +1,91 @@
1
+ import { AggregatorProvider } from '../config/provider';
2
+ import { RouterData } from '@cetusprotocol/aggregator-sdk';
3
+ import { ReactNode } from 'react';
4
+ export type Token = {
5
+ coin_type: string;
6
+ decimals: number;
7
+ description: string;
8
+ name: string;
9
+ symbol: string;
10
+ logo_url?: string;
11
+ id?: string;
12
+ is_trusted?: boolean;
13
+ labels?: any;
14
+ coingecko_id?: string;
15
+ pyth_id?: string;
16
+ birdeyeid?: string;
17
+ project_url?: string;
18
+ coin_priority?: any;
19
+ suggested_priority?: null | string[];
20
+ extensions?: Record<string, any>;
21
+ };
22
+ export type TokenBalance = {
23
+ coinType: string;
24
+ coinObjectCount: number;
25
+ totalBalance: string;
26
+ lockedBalance: Record<string, string>;
27
+ displayBalance?: string;
28
+ totalBalanceFormat?: string;
29
+ };
30
+ export interface TokenPrice {
31
+ base_symbol: string;
32
+ quote_symbol: string;
33
+ price: string;
34
+ market: string;
35
+ }
36
+ export type TokenActionType = "select_token" | "collect_token" | "un_collect" | "delete_import";
37
+ export type SwapRouterData = {
38
+ routerData?: RouterData;
39
+ fromAmountUi?: string;
40
+ toAmountUi?: string;
41
+ byAmountIn: boolean;
42
+ isDegrade: boolean;
43
+ uuid: string;
44
+ errorCode?: AggregatorServerErrorCode;
45
+ };
46
+ export type TransactionStatusType = "confirmation" | "submitted" | "success" | "rejected";
47
+ export interface BalanceChanges {
48
+ coinType: string;
49
+ amount: string;
50
+ }
51
+ export type CommonTypeInfo = {
52
+ toastDescriptionContent?: string | (() => ReactNode);
53
+ toastTitleText?: string;
54
+ modalDescriptionText?: string;
55
+ modalTitleText?: string;
56
+ iconUrl?: string;
57
+ modalConfirmButtonText?: string[];
58
+ modalConfirmButtonClick?: (index: number) => void;
59
+ };
60
+ export type ToastType = {
61
+ id: number;
62
+ status?: TransactionStatusType;
63
+ tx?: string;
64
+ buildShowInfo?: (status: TransactionStatusType, balanceChanges?: Record<string, BalanceChanges>) => CommonTypeInfo;
65
+ };
66
+ export type TransactionOption = {
67
+ useDevInspect?: boolean;
68
+ useMev?: boolean;
69
+ txAction?: "signTransactionBlock" | "signAndExecuteTransactionBlock";
70
+ };
71
+ export type SwapRouterFormat = {
72
+ router_summery: string;
73
+ providers: AggregatorProvider[];
74
+ routers: {
75
+ percentage: string;
76
+ paths: {
77
+ from_type: string;
78
+ to_type: string;
79
+ fee_rate: string;
80
+ pool_address: string;
81
+ provider: AggregatorProvider;
82
+ }[];
83
+ }[];
84
+ };
85
+ export declare enum AggregatorServerErrorCode {
86
+ CalculateError = 10000,
87
+ NumberTooLarge = 10001,
88
+ NoRouter = 10002,
89
+ InsufficientLiquidity = 10003,
90
+ HoneyPot = 10004
91
+ }
@@ -0,0 +1,13 @@
1
+ export type ConfigLinkItem = {
2
+ name: string;
3
+ link: string;
4
+ img?: string;
5
+ isCustom: boolean;
6
+ };
7
+ export type EnvConfig = {
8
+ env: string;
9
+ fullRpcUrl: string;
10
+ simulationAccount: string;
11
+ api: string;
12
+ aggregatorUrl: string;
13
+ };
@@ -0,0 +1,5 @@
1
+ export type DefaultPairType = "default" | "custom";
2
+ export type DefaultSlippageType = "default" | "custom";
3
+ export type DisplayMode = "Modal" | "Integrated" | "Widget";
4
+ export type WidgetDirection = "left-top" | "left-bottom" | "right-top" | "right-bottom";
5
+ export type WidgetBtnSize = "Default" | "Small";
@@ -0,0 +1,4 @@
1
+ export * from './common';
2
+ export * from './config';
3
+ export * from './demo';
4
+ export * from './sui';
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Represents a SUI address, which is a string.
3
+ */
4
+ export type SuiAddressType = string;
5
+ /**
6
+ * Represents a SUI struct tag.
7
+ */
8
+ export type SuiStructTag = {
9
+ /**
10
+ * The full address of the struct.
11
+ */
12
+ full_address: string;
13
+ /**
14
+ * The source address of the struct.
15
+ */
16
+ source_address: string;
17
+ /**
18
+ * The address of the struct.
19
+ */
20
+ address: SuiAddressType;
21
+ /**
22
+ * The module to which the struct belongs.
23
+ */
24
+ module: string;
25
+ /**
26
+ * The name of the struct.
27
+ */
28
+ name: string;
29
+ /**
30
+ * An array of type arguments (SUI addresses) for the struct.
31
+ */
32
+ type_arguments: SuiAddressType[];
33
+ };
@@ -0,0 +1,13 @@
1
+ import { BalanceChanges, Token } from '../types';
2
+ import { SuiTransactionBlockResponse } from '@mysten/sui/client';
3
+ export declare function cancelBubble(e: any): void;
4
+ export declare const addressAbridge: (address: string | undefined, addressAbridgeStyle?: string) => string;
5
+ export declare const objIsEqual: (obj1: any, obj2: any) => boolean;
6
+ export declare function checkNullObj(obj: object): boolean;
7
+ export declare function checkIsCoinType(value: string): boolean;
8
+ export declare const sleepTime: (s: number) => Promise<unknown>;
9
+ export declare function parseOwnerBalanceChanges(response: SuiTransactionBlockResponse, owner?: string, includedFee?: boolean): Record<string, BalanceChanges>;
10
+ export declare function getBalanceChanges(balanceChanges: Record<string, BalanceChanges>, coinInfo?: Token): string | undefined;
11
+ export declare function getCdnAssets(path: string): string;
12
+ export declare const textEllipses: (text: string, decimals?: number) => string;
13
+ export declare const coinTypeEquals: (tokenA?: string, tokenB?: string) => boolean;
@@ -0,0 +1,10 @@
1
+ import { SuiAddressType, SuiStructTag } from '../types';
2
+ export declare const GAS_TYPE_ARG = "0x2::sui::SUI";
3
+ export declare const GAS_TYPE_ARG_LONG = "0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI";
4
+ export declare function getIsSuiCoin(coinAddress: SuiAddressType): boolean;
5
+ export declare function composeType(address: string, generics: SuiAddressType[]): SuiAddressType;
6
+ export declare function composeType(address: string, struct: string, generics?: SuiAddressType[]): SuiAddressType;
7
+ export declare function composeType(address: string, module: string, struct: string, generics?: SuiAddressType[]): SuiAddressType;
8
+ export declare function extractStructTagFromType(type: string): SuiStructTag;
9
+ export declare function removeHexPrefix(hex: string): string;
10
+ export declare const fixCoinType: (coinType: string, removePrefix?: boolean) => string;
@@ -0,0 +1,2 @@
1
+ import { default as Decimal } from 'decimal.js';
2
+ export { Decimal };
@@ -0,0 +1,9 @@
1
+ /**
2
+ * 用户拒绝
3
+ * @param error
4
+ * @returns
5
+ */
6
+ export declare function isUserRejectedError(error: any): any;
7
+ export declare function isPriceSlippageError(error: any): boolean;
8
+ export declare function isNotFindTxHashError(error: any): boolean;
9
+ export declare function handleErrorMessages(error: any): string;
@@ -0,0 +1,8 @@
1
+ export declare const fetchGet: (url: string, params?: any, timeout?: number) => Promise<any>;
2
+ export declare const fetchPost: (url: string, params?: any, timeout?: number) => Promise<any>;
3
+ declare const _default: {
4
+ fetchGet: (url: string, params?: any, timeout?: number) => Promise<any>;
5
+ fetchPost: (url: string, params?: any, timeout?: number) => Promise<any>;
6
+ fetchAll: (url: string, params?: any, method?: string, timeout?: number) => Promise<any>;
7
+ };
8
+ export default _default;
@@ -0,0 +1,12 @@
1
+ import { Decimal } from './decimal';
2
+ export declare const formatNumber: (value: string | number | undefined, decimal?: number, noComma?: boolean, rounding?: Decimal.Rounding) => string;
3
+ export declare const formatPercentage: (value: string | number | undefined, decimal?: number, hidelt?: boolean, notDisplayZero?: boolean) => string;
4
+ export declare const formatPercentageGt0And100: (value: string | number | undefined, decimal?: number) => string;
5
+ /**
6
+ * format currency $
7
+ * @param
8
+ * hidelt: Do not display <0.01
9
+ * noComma: Do not display comma
10
+ * */
11
+ export declare const formatCurrency: (value: string | number | undefined, decimal: number, hidelt?: boolean, noComma?: boolean) => string;
12
+ export declare const fixDEAdd: (num: any, precision: any, autoFix?: boolean) => string;
@@ -0,0 +1,8 @@
1
+ export * from './common';
2
+ export * from './contract';
3
+ export * from './decimal';
4
+ export * from './fetch';
5
+ export * from './formatter';
6
+ export * from './localforage-key';
7
+ export * from './localforage-service';
8
+ export * from './number';
@@ -0,0 +1,4 @@
1
+ export declare const TOKEN_MAP_KEY = "tokenMap";
2
+ export declare const TRUSTED_TOKEN_LIST = "trustedTokenList";
3
+ export declare const COLLECT_TOKEN_MAP = "collectTokenMap";
4
+ export declare const IMPORT_TOKEN_LIST = "importTokenList";
@@ -0,0 +1,6 @@
1
+ export declare class LocalStorageService {
2
+ static setItem<T>(key: string, value: T): Promise<void>;
3
+ static getItem<T>(key: string): Promise<T | null>;
4
+ static removeItem(key: string): Promise<void>;
5
+ static clear(): Promise<void>;
6
+ }
@@ -0,0 +1,20 @@
1
+ import { default as BN } from 'bn.js';
2
+ import { Decimal } from './decimal';
3
+ export declare const d: (value?: Decimal.Value | undefined) => Decimal.Instance;
4
+ export declare function amountToBN(amount: string, decimals: number | undefined): BN;
5
+ export declare function bnToAmount(amount: any, decimals: number | undefined): string;
6
+ export declare const fixNumber: (value: string | number, decimal: number, rounding: Decimal.Rounding) => string;
7
+ export declare const fixDown: (value: string | number, decimal: number) => string;
8
+ export declare const addComma: (value: string) => string;
9
+ export declare function getGtZeroIndex(value: string): number;
10
+ export declare function toDecimalsAmount(amount: number | string, decimals: number | string): number;
11
+ export declare function fromDecimalsAmount(amount: number | string, decimals: number | string): number;
12
+ export declare function decimalsMultiplier(decimals?: Decimal.Value): Decimal.Instance;
13
+ export declare function fromDecimalsAmountFix(amount: number | string, decimals: number | string): string;
14
+ /**
15
+ * 将科学计数法表示的数字字符串转换为普通小数形式
16
+ * @param numStr - 要转换的数字字符串
17
+ * @param precision - 精度(保留的小数位数)
18
+ * @returns 普通小数形式的字符串
19
+ */
20
+ export declare function convertScientificToDecimal(numStr?: string, precision?: number): string;
@@ -0,0 +1 @@
1
+ /// <reference types="vite/client" />
File without changes
package/package.json ADDED
@@ -0,0 +1,72 @@
1
+ {
2
+ "name": "@cetusprotocol/terminal",
3
+ "version": "0.0.0-experimental-1737427725035",
4
+ "type": "commonjs",
5
+ "main": "dist/cetus-swap.cjs.js",
6
+ "module": "dist/cetus-swap.es.js",
7
+ "types": "dist/index.d.ts",
8
+ "files": [
9
+ "dist"
10
+ ],
11
+ "peerDependencies": {
12
+ "@mysten/dapp-kit": ">=0.14.0",
13
+ "react": ">=18.2.0",
14
+ "react-dom": ">=18.2.0"
15
+ },
16
+ "scripts": {
17
+ "dev": "vite",
18
+ "build": "vite build",
19
+ "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
20
+ "preview": "vite preview"
21
+ },
22
+ "dependencies": {
23
+ "@cetusprotocol/aggregator-sdk": "^0.3.16",
24
+ "@mysten/sui": "^1.16.0",
25
+ "@radix-ui/colors": "^3.0.0",
26
+ "@radix-ui/react-icons": "^1.3.0",
27
+ "@radix-ui/themes": "^2.0.0",
28
+ "@tanstack/react-query": "^5.0.0",
29
+ "bn.js": "^5.2.1",
30
+ "copy-to-clipboard": "^3.3.3",
31
+ "decimal.js": "^10.4.3",
32
+ "localforage": "^1.10.0",
33
+ "lodash-es": "^4.17.21",
34
+ "memoize-one": "^6.0.0",
35
+ "react-number-format": "^5.4.2",
36
+ "react-syntax-highlighter": "^15.6.1",
37
+ "react-window": "^1.8.11",
38
+ "shio-sdk": "^1.0.8",
39
+ "suihoneypot": "^0.0.6",
40
+ "uuid": "^11.0.2",
41
+ "vite-plugin-node-polyfills": "^0.22.0",
42
+ "vite-tsconfig-paths": "^5.1.4",
43
+ "zustand": "^5.0.2"
44
+ },
45
+ "devDependencies": {
46
+ "@rollup/plugin-strip": "^3.0.4",
47
+ "@types/bn.js": "^5.1.6",
48
+ "@types/lodash-es": "^4.17.12",
49
+ "@types/react": "^18.2.15",
50
+ "@types/react-dom": "^18.2.7",
51
+ "@types/react-syntax-highlighter": "^15.5.13",
52
+ "@types/react-window": "^1.8.8",
53
+ "@typescript-eslint/eslint-plugin": "^6.1.0",
54
+ "@typescript-eslint/parser": "^6.1.0",
55
+ "@vitejs/plugin-react-swc": "^3.3.2",
56
+ "cssnano": "^7.0.6",
57
+ "eslint": "^8.45.0",
58
+ "eslint-plugin-react-hooks": "^4.6.0",
59
+ "eslint-plugin-react-refresh": "^0.4.3",
60
+ "postcss": "^8.4.49",
61
+ "postcss-nested": "^7.0.2",
62
+ "prettier": "^3.0.0",
63
+ "rollup-plugin-terser": "^7.0.2",
64
+ "rollup-plugin-visualizer": "^5.12.0",
65
+ "sass": "^1.83.0",
66
+ "terser": "^5.37.0",
67
+ "typescript": "^5.3.3",
68
+ "vite": "^4.4.4",
69
+ "vite-plugin-compression": "^0.5.1",
70
+ "vite-plugin-dts": "^4.4.0"
71
+ }
72
+ }