@dodoex/widgets 2.6.12-beta.9 → 3.0.0-bartio.1

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 (99) hide show
  1. package/dist/cjs/components/Swap/components/ReviewDialog.d.ts +2 -1
  2. package/dist/cjs/components/Swap/index.d.ts +2 -1
  3. package/dist/cjs/constants/chains.d.ts +1 -0
  4. package/dist/cjs/e4364db573253fd1.svg +9 -0
  5. package/dist/cjs/helper-BYlVZIoD.cjs +1 -0
  6. package/dist/cjs/helper-CTonNjwU.cjs +1 -0
  7. package/dist/cjs/helper-DgveuxqY.cjs +1 -0
  8. package/dist/cjs/index-BeusDCM3.cjs +78 -0
  9. package/dist/cjs/index-BfVZBnXt.cjs +78 -0
  10. package/dist/cjs/index-BfpsZhht.cjs +53 -0
  11. package/dist/cjs/index-CThIhzMz.cjs +12 -0
  12. package/dist/cjs/index-D7H_RrAc.cjs +12 -0
  13. package/dist/cjs/index-DthhxaNF.cjs +53 -0
  14. package/dist/cjs/index-DxAjyOw9.cjs +12 -0
  15. package/dist/cjs/index-Vi-XUi2H.cjs +53 -0
  16. package/dist/cjs/index-z-Q7UNom.cjs +78 -0
  17. package/dist/cjs/index.cjs +1 -45
  18. package/dist/cjs/locales/en-US.js +1 -5
  19. package/dist/cjs/locales/zh-CN.js +1 -5
  20. package/dist/cjs/lottie-BpUuS5q9.cjs +1 -0
  21. package/dist/cjs/lottie-DU4LN2MM.cjs +1 -0
  22. package/dist/cjs/lottie-DdON2ExU.cjs +1 -0
  23. package/dist/cjs/src/components/Bridge/BridgeSummaryDialog/index.d.ts +1 -1
  24. package/dist/cjs/src/components/Bridge/SelectBridgeDialog/RouteCard.d.ts +2 -2
  25. package/dist/cjs/src/components/Swap/components/ConnectWallet/ConnectWalletDialog.d.ts +1 -2
  26. package/dist/cjs/src/components/Swap/components/ConnectWallet/index.d.ts +1 -2
  27. package/dist/cjs/src/components/Swap/components/TokenCard/TokenLogoCollapse.d.ts +2 -1
  28. package/dist/cjs/src/components/Swap/components/TokenCard/index.d.ts +2 -2
  29. package/dist/cjs/src/components/Swap/index.d.ts +1 -2
  30. package/dist/cjs/src/components/TokenLogo.d.ts +3 -1
  31. package/dist/cjs/src/components/Widget/index.d.ts +0 -3
  32. package/dist/cjs/src/constants/chains.d.ts +1 -2
  33. package/dist/cjs/src/constants/tokenList.d.ts +2 -11
  34. package/dist/cjs/src/hooks/Bridge/createBridgeOrder.d.ts +1 -1
  35. package/dist/cjs/src/hooks/Bridge/useExecuteBridgeRoute.d.ts +1 -3
  36. package/dist/cjs/src/hooks/Bridge/useFetchRoutePriceBridge.d.ts +6 -25
  37. package/dist/cjs/src/hooks/Submission/types.d.ts +0 -14
  38. package/dist/cjs/src/hooks/Submission/useExecution.d.ts +0 -14
  39. package/dist/cjs/src/hooks/Swap/useFetchFiatPrice.d.ts +1 -1
  40. package/dist/cjs/src/hooks/Swap/usePriceTimer.d.ts +0 -1
  41. package/dist/cjs/src/hooks/Token/type.d.ts +0 -1
  42. package/dist/cjs/src/hooks/Token/useGetTokenStatus.d.ts +1 -2
  43. package/dist/cjs/src/hooks/Token/useInitTokenList.d.ts +1 -3
  44. package/dist/cjs/src/hooks/Widget/useInitPropsToRedux.d.ts +1 -1
  45. package/dist/cjs/src/hooks/contract/useFetchTokens.d.ts +2 -1
  46. package/dist/cjs/src/index.d.ts +0 -2
  47. package/dist/cjs/src/store/actions/wallet.d.ts +0 -1
  48. package/dist/cjs/src/store/reducers/wallet.d.ts +0 -1
  49. package/dist/cjs/src/store/selectors/wallet.d.ts +0 -1
  50. package/dist/components/Swap/components/ReviewDialog.d.ts +2 -1
  51. package/dist/components/Swap/index.d.ts +2 -1
  52. package/dist/constants/chains.d.ts +1 -0
  53. package/dist/e4364db573253fd1.svg +9 -0
  54. package/dist/helper-BPAb-D4D.js +1 -0
  55. package/dist/helper-CZiT1I7S.js +1 -0
  56. package/dist/helper-ftevjEYg.js +1 -0
  57. package/dist/index-BCxyHZUd.js +12 -0
  58. package/dist/index-BIQtzxL9.js +78 -0
  59. package/dist/index-Bbuw1I9-.js +12 -0
  60. package/dist/index-BhxyfPIb.js +78 -0
  61. package/dist/index-Bs-0ogXO.js +12 -0
  62. package/dist/index-C-2UnSDv.js +53 -0
  63. package/dist/index-CrzQ7tIe.js +53 -0
  64. package/dist/index-D3PtHdfy.js +78 -0
  65. package/dist/index-JfQcHFPg.js +53 -0
  66. package/dist/index.js +1 -45
  67. package/dist/locales/en-US.js +1 -5
  68. package/dist/locales/zh-CN.js +1 -5
  69. package/dist/lottie-BralJkus.js +1 -0
  70. package/dist/lottie-DLUL4WjE.js +1 -0
  71. package/dist/lottie-KOTVYEky.js +1 -0
  72. package/dist/src/components/Bridge/BridgeSummaryDialog/index.d.ts +1 -1
  73. package/dist/src/components/Bridge/SelectBridgeDialog/RouteCard.d.ts +2 -2
  74. package/dist/src/components/Swap/components/ConnectWallet/ConnectWalletDialog.d.ts +1 -2
  75. package/dist/src/components/Swap/components/ConnectWallet/index.d.ts +1 -2
  76. package/dist/src/components/Swap/components/TokenCard/TokenLogoCollapse.d.ts +2 -1
  77. package/dist/src/components/Swap/components/TokenCard/index.d.ts +2 -2
  78. package/dist/src/components/Swap/index.d.ts +1 -2
  79. package/dist/src/components/TokenLogo.d.ts +3 -1
  80. package/dist/src/components/Widget/index.d.ts +0 -3
  81. package/dist/src/constants/chains.d.ts +1 -2
  82. package/dist/src/constants/tokenList.d.ts +2 -11
  83. package/dist/src/hooks/Bridge/createBridgeOrder.d.ts +1 -1
  84. package/dist/src/hooks/Bridge/useExecuteBridgeRoute.d.ts +1 -3
  85. package/dist/src/hooks/Bridge/useFetchRoutePriceBridge.d.ts +6 -25
  86. package/dist/src/hooks/Submission/types.d.ts +0 -14
  87. package/dist/src/hooks/Submission/useExecution.d.ts +0 -14
  88. package/dist/src/hooks/Swap/useFetchFiatPrice.d.ts +1 -1
  89. package/dist/src/hooks/Swap/usePriceTimer.d.ts +0 -1
  90. package/dist/src/hooks/Token/type.d.ts +0 -1
  91. package/dist/src/hooks/Token/useGetTokenStatus.d.ts +1 -2
  92. package/dist/src/hooks/Token/useInitTokenList.d.ts +1 -3
  93. package/dist/src/hooks/Widget/useInitPropsToRedux.d.ts +1 -1
  94. package/dist/src/hooks/contract/useFetchTokens.d.ts +2 -1
  95. package/dist/src/index.d.ts +0 -2
  96. package/dist/src/store/actions/wallet.d.ts +0 -1
  97. package/dist/src/store/reducers/wallet.d.ts +0 -1
  98. package/dist/src/store/selectors/wallet.d.ts +0 -1
  99. package/package.json +23 -22
@@ -6,7 +6,7 @@ export interface BridgeTXRequest {
6
6
  value: string;
7
7
  from: string;
8
8
  chainId: number;
9
- encodeId?: string;
9
+ encodeId: string;
10
10
  }
11
11
  export default function BridgeSummaryDialog({ open, onClose, route, bridgeOrderTxRequest, clearToAmt, clearFromAmt, }: {
12
12
  open: boolean;
@@ -10,12 +10,12 @@ export default function RouteCard({ fromToken, toToken, fromChainId, toChainId,
10
10
  fromAmount?: BridgeRouteI['fromAmount'];
11
11
  fromTokenBalance: BigNumber | null;
12
12
  toTokenAmount?: BigNumber | null;
13
- toolDetails: undefined | Exclude<BridgeRouteI['step'], undefined>['toolDetails'];
13
+ toolDetails: BridgeRouteI['step']['toolDetails'];
14
14
  product: BridgeRouteI['product'];
15
15
  executionDuration: BridgeRouteI['executionDuration'];
16
16
  feeUSD: BridgeRouteI['feeUSD'];
17
17
  selected: boolean;
18
18
  setSelected: () => void;
19
- spenderContractAddress: string | undefined;
19
+ spenderContractAddress: string;
20
20
  isBestPrice?: boolean;
21
21
  }): JSX.Element;
@@ -1,6 +1,5 @@
1
1
  /// <reference types="react" />
2
- export default function ConnectWalletDialog({ open, onClose, chainId: chainIdProps, }: {
2
+ export default function ConnectWalletDialog({ open, onClose, }: {
3
3
  open: boolean;
4
4
  onClose: () => void;
5
- chainId?: number;
6
5
  }): JSX.Element;
@@ -2,8 +2,7 @@
2
2
  import { ChainId } from '../../../../constants/chains';
3
3
  export interface ConnectWalletProps {
4
4
  needSwitchChain?: ChainId;
5
- needEvmChainId?: ChainId;
6
5
  /** If true is returned, the default wallet connection logic will not be executed */
7
6
  onConnectWalletClick?: () => boolean | Promise<boolean>;
8
7
  }
9
- export default function ConnectWallet({ needSwitchChain, needEvmChainId, onConnectWalletClick, }: ConnectWalletProps): JSX.Element;
8
+ export default function ConnectWallet({ needSwitchChain, onConnectWalletClick, }: ConnectWalletProps): JSX.Element;
@@ -1,7 +1,8 @@
1
1
  /// <reference types="react" />
2
2
  import { TokenPickerProps } from '../../../TokenPicker';
3
- export declare function TokenLogoCollapse({ token, onClick, showChainLogo, }: {
3
+ export declare function TokenLogoCollapse({ token, onClick, showChainLogo, showChainName: showChainNameProps, }: {
4
4
  token?: TokenPickerProps['value'];
5
5
  onClick?: React.MouseEventHandler<HTMLButtonElement>;
6
6
  showChainLogo?: boolean;
7
+ showChainName?: boolean;
7
8
  }): JSX.Element;
@@ -17,7 +17,7 @@ export interface TokenCardProps {
17
17
  onTokenChange: TokenPickerProps['onChange'];
18
18
  side?: TokenPickerProps['side'];
19
19
  showChainLogo?: boolean;
20
- onlyCurrentChain?: boolean;
20
+ showChainName?: boolean;
21
21
  defaultLoadBalance?: boolean;
22
22
  }
23
- export declare function TokenCard({ sx, amt, token, readOnly, showMaxBtn, onMaxClick, fiatPriceTxt, occupiedAddrs, occupiedChainId, onInputFocus, onTokenClick, onInputChange, onTokenChange, side, showChainLogo, onlyCurrentChain, defaultLoadBalance, }: TokenCardProps): JSX.Element;
23
+ export declare function TokenCard({ sx, amt, token, readOnly, showMaxBtn, onMaxClick, fiatPriceTxt, occupiedAddrs, occupiedChainId, onInputFocus, onTokenClick, onInputChange, onTokenChange, side, showChainLogo, showChainName, defaultLoadBalance, }: TokenCardProps): JSX.Element;
@@ -5,6 +5,5 @@ export interface SwapProps {
5
5
  /** Higher priority setting slippage */
6
6
  getAutoSlippage?: GetAutoSlippage;
7
7
  onConnectWalletClick?: ConnectWalletProps['onConnectWalletClick'];
8
- bridgeToTonUrl?: string;
9
8
  }
10
- export declare function Swap({ getAutoSlippage, onConnectWalletClick, bridgeToTonUrl, }?: SwapProps): JSX.Element;
9
+ export declare function Swap({ getAutoSlippage, onConnectWalletClick, }?: SwapProps): JSX.Element;
@@ -12,5 +12,7 @@ export interface TokenLogoProps {
12
12
  cross?: boolean;
13
13
  sx?: BoxProps['sx'];
14
14
  chainId?: number;
15
+ chainSize?: number;
16
+ logoOffset?: number;
15
17
  }
16
- export default function TokenLogo({ width, height, marginRight, url, zIndex, cross, address: addressProps, token: tokenProps, sx, chainId, }: TokenLogoProps): React.ReactElement;
18
+ export default function TokenLogo({ width, height, marginRight, url, zIndex, cross, address: addressProps, token: tokenProps, sx, chainId, chainSize, logoOffset: logoOffsetProps, }: TokenLogoProps): React.ReactElement;
@@ -8,9 +8,7 @@ import { ChainId } from '../../constants/chains';
8
8
  import { DefaultTokenInfo } from '../../hooks/Token/type';
9
9
  import { APIServices } from '../../constants/api';
10
10
  import { SwapProps } from '../Swap';
11
- import { QueryClient } from '@tanstack/react-query';
12
11
  export declare const WIDGET_CLASS_NAME = "dodo-widget-container";
13
- export declare const queryClient: QueryClient;
14
12
  export interface WidgetProps extends Web3ConnectorsProps, InitTokenListProps, ExecutionProps, SwapProps {
15
13
  apikey?: string;
16
14
  theme?: ThemeOptions;
@@ -28,7 +26,6 @@ export interface WidgetProps extends Web3ConnectorsProps, InitTokenListProps, Ex
28
26
  apiServices?: Partial<APIServices>;
29
27
  crossChain?: boolean;
30
28
  noPowerBy?: boolean;
31
- tonConnect?: boolean;
32
29
  onProviderChanged?: (provider?: any) => void;
33
30
  }
34
31
  export declare function Widget(props: PropsWithChildren<WidgetProps>): JSX.Element;
@@ -13,8 +13,7 @@ export declare enum ChainId {
13
13
  LINEA = 59144,
14
14
  SCROLL = 534352,
15
15
  MANTA = 169,
16
- MANTLE = 5000,
17
- TON = -239
16
+ MANTLE = 5000
18
17
  }
19
18
  export declare const rpcServerMap: {
20
19
  [key in ChainId]: Array<string>;
@@ -1,18 +1,9 @@
1
- declare const _default: ({
1
+ declare const _default: {
2
2
  chainId: number;
3
3
  address: string;
4
4
  name: string;
5
5
  decimals: number;
6
6
  symbol: string;
7
7
  logoURI: string;
8
- canBridgeToTon?: undefined;
9
- } | {
10
- chainId: number;
11
- address: string;
12
- name: string;
13
- decimals: number;
14
- symbol: string;
15
- logoURI: string;
16
- canBridgeToTon: boolean;
17
- })[];
8
+ }[];
18
9
  export default _default;
@@ -12,7 +12,7 @@ export interface BridgeOrderCreateParams {
12
12
  hash: string;
13
13
  product: string | null;
14
14
  extend: {
15
- lifiBridge: Exclude<BridgeRouteI['sourceRoute'], undefined>['step']['tool'];
15
+ lifiBridge: BridgeRouteI['sourceRoute']['step']['tool'];
16
16
  route: BridgeRouteI['sourceRoute'];
17
17
  productParams: BridgeRouteI['productParams'];
18
18
  encodeId: string;
@@ -1,8 +1,6 @@
1
1
  import { BridgeTXRequest } from '../../components/Bridge/BridgeSummaryDialog';
2
2
  import { BridgeRouteI } from './useFetchRoutePriceBridge';
3
- import { ExecutionCtx } from '../Submission/types';
4
- export default function useExecuteBridgeRoute({ route, bridgeOrderTxRequest, sendData, }: {
3
+ export default function useExecuteBridgeRoute({ route, bridgeOrderTxRequest, }: {
5
4
  route?: BridgeRouteI;
6
5
  bridgeOrderTxRequest?: BridgeTXRequest;
7
- sendData?: Parameters<ExecutionCtx['executeCustom']>['0']['handler'];
8
6
  }): () => Promise<import("../Submission/types").ExecutionResult> | undefined;
@@ -1,6 +1,5 @@
1
1
  import { TokenInfo } from '../Token';
2
2
  import BigNumber from 'bignumber.js';
3
- import { ExecutionCtx } from '../Submission/types';
4
3
  export interface BridgeRouteI {
5
4
  /** update */
6
5
  key: string;
@@ -18,29 +17,20 @@ export interface BridgeRouteI {
18
17
  toAddress: string;
19
18
  /** from parameter */
20
19
  product: string | null;
21
- slippage?: number;
20
+ slippage: number;
22
21
  /** in seconds */
23
22
  roundedRouteCostTime: number;
24
23
  /** approve contract address */
25
- spenderContractAddress?: string;
24
+ spenderContractAddress: string;
26
25
  /** USD */
27
26
  feeUSD: string | null;
28
27
  /** in seconds */
29
28
  executionDuration: number | null;
30
29
  /** one-click */
31
30
  step: BridgeStep;
32
- encodeParams?: any;
33
- encodeResultData?: {
34
- data: string;
35
- to: string;
36
- value: string;
37
- from: string;
38
- chainId: number;
39
- encodeId?: string;
40
- };
41
- sendData?: Parameters<ExecutionCtx['executeCustom']>['0']['handler'];
31
+ encodeParams: any;
42
32
  productParams: any;
43
- sourceRoute?: {
33
+ sourceRoute: {
44
34
  toAmount: string;
45
35
  feeUSD: string | null;
46
36
  executionDuration: number | null;
@@ -57,8 +47,6 @@ export interface BridgeRouteI {
57
47
  };
58
48
  fee: any;
59
49
  };
60
- minAmt?: string;
61
- maxAmt?: string;
62
50
  }
63
51
  export interface BridgeTokenI {
64
52
  id: number;
@@ -85,7 +73,7 @@ export interface BridgeStep {
85
73
  tool: string;
86
74
  toolDetails: BridgeStepTool;
87
75
  type: string | null;
88
- includedSteps?: Array<{
76
+ includedSteps: Array<{
89
77
  id: string;
90
78
  /**
91
79
  * bridge or swap
@@ -106,16 +94,9 @@ export interface FetchRoutePrice {
106
94
  fromToken: TokenInfo | null;
107
95
  toToken: TokenInfo | null;
108
96
  fromAmount: string;
109
- fromFiatPrice: string;
110
- fromAddress?: string;
111
- toAddress?: string;
112
97
  }
113
- export declare function useFetchRoutePriceBridge({ toToken, fromToken, fromAmount, fromFiatPrice, fromAddress: fromAddressProps, toAddress: toAddressProps, }: FetchRoutePrice): {
98
+ export declare function useFetchRoutePriceBridge({ toToken, fromToken, fromAmount, }: FetchRoutePrice): {
114
99
  status: RoutePriceStatus;
115
100
  refetch: () => Promise<void>;
116
101
  bridgeRouteList: BridgeRouteI[];
117
- limit: {
118
- minAmt?: number | undefined;
119
- maxAmt?: number | undefined;
120
- } | null;
121
102
  };
@@ -37,20 +37,6 @@ export declare type ExecutionCtx = {
37
37
  * @param submittedConfirmBack: dismiss callback
38
38
  */
39
39
  execute: (brief: string, spec: StepSpec, subtitle?: string | React.ReactNode | null, early?: boolean, submittedBack?: () => void, mixpanelProps?: Record<string, any>, submittedConfirmBack?: () => void, successBack?: (tx: string, callback?: ExecutionProps['onTxSuccess']) => void) => Promise<ExecutionResult>;
40
- executeCustom: ({ brief, subtitle, early, mixpanelProps, submittedBack, submittedConfirmBack, successBack, handler, }: {
41
- brief: string;
42
- subtitle?: string | React.ReactNode | null;
43
- early?: boolean | undefined;
44
- mixpanelProps?: Record<string, any> | undefined;
45
- submittedBack?: (() => void) | undefined;
46
- submittedConfirmBack?: (() => void) | undefined;
47
- successBack?: ((tx: string, callback?: ExecutionProps['onTxSuccess']) => void) | undefined;
48
- handler: (params: {
49
- onSubmit?: (tx: string, reportInfo?: Record<string, any>) => void;
50
- onSuccess?: (tx: string, reportInfo?: Record<string, any>) => Promise<void>;
51
- onError?: (e: any) => void;
52
- }) => Promise<any>;
53
- }) => Promise<ExecutionResult>;
54
40
  /**
55
41
  * order
56
42
  */
@@ -23,20 +23,6 @@ export default function useExecution({ onTxFail, onTxSubmit, onTxSuccess, }?: Ex
23
23
  closeShowing: () => void;
24
24
  ctxVal: {
25
25
  execute: (brief: string, spec: StepSpec, subtitle?: string | React.ReactNode | null, early?: boolean, submittedBack?: () => void, mixpanelProps?: Record<string, any>, submittedConfirmBack?: () => void, successBack?: ((tx: string, callback?: ExecutionProps['onTxSuccess']) => void) | undefined) => Promise<ExecutionResult.Failed | ExecutionResult.Success | ExecutionResult.Submitted>;
26
- executeCustom: ({ brief, subtitle, early, mixpanelProps, submittedBack, submittedConfirmBack, successBack, handler, }: {
27
- brief: string;
28
- subtitle?: string | React.ReactNode | null;
29
- early?: boolean | undefined;
30
- mixpanelProps?: Record<string, any> | undefined;
31
- submittedBack?: (() => void) | undefined;
32
- submittedConfirmBack?: (() => void) | undefined;
33
- successBack?: ((tx: string, callback?: ExecutionProps['onTxSuccess']) => void) | undefined;
34
- handler: (params: {
35
- onSubmit?: ((tx: string, reportInfo?: Record<string, any>) => void) | undefined;
36
- onSuccess?: ((tx: string, reportInfo?: Record<string, any>) => Promise<void>) | undefined;
37
- onError?: ((e: any) => void) | undefined;
38
- }) => Promise<any>;
39
- }) => Promise<ExecutionResult>;
40
26
  requests: Map<string, [Request, State]>;
41
27
  setShowing: import("react").Dispatch<import("react").SetStateAction<Showing | null>>;
42
28
  waitingSubmit: boolean;
@@ -1,7 +1,7 @@
1
1
  import { ChainId } from '../../constants/chains';
2
2
  import { TokenInfo } from '../Token';
3
3
  export interface FetchFiatPriceProps {
4
- chainId?: ChainId;
4
+ chainId: ChainId | undefined;
5
5
  fromToken: TokenInfo | null;
6
6
  toToken: TokenInfo | null;
7
7
  }
@@ -1,4 +1,3 @@
1
- export declare const refreshTime: number;
2
1
  export interface PriceTimerProps {
3
2
  refetch: () => void;
4
3
  interval?: number;
@@ -8,7 +8,6 @@ export interface TokenInfo {
8
8
  readonly tags?: string[];
9
9
  readonly extensions?: any;
10
10
  readonly side?: 'from' | 'to';
11
- readonly canBridgeToTon?: boolean;
12
11
  }
13
12
  export interface DefaultTokenInfo extends TokenInfo {
14
13
  amount?: number;
@@ -1,11 +1,10 @@
1
1
  import BigNumber from 'bignumber.js';
2
2
  import { TokenInfo, ApprovalState } from './type';
3
- export declare const useGetTokenStatus: ({ account, chainId, offset, contractAddress, skip, }: {
3
+ export declare const useGetTokenStatus: ({ account, chainId, offset, contractAddress, }: {
4
4
  account?: string | undefined;
5
5
  chainId: number | undefined;
6
6
  offset?: BigNumber | undefined;
7
7
  contractAddress?: string | undefined;
8
- skip?: boolean | undefined;
9
8
  }) => {
10
9
  getApprovalState: (token: TokenInfo | null, value: string | number | BigNumber, overrideBalance?: BigNumber) => ApprovalState;
11
10
  getPendingRest: (token?: TokenInfo | null) => boolean;
@@ -3,6 +3,4 @@ export interface InitTokenListProps {
3
3
  tokenList?: TokenList | TokenListType;
4
4
  popularTokenList?: TokenList;
5
5
  }
6
- export default function useInitTokenList({ tokenList, popularTokenList, isTon, }: InitTokenListProps & {
7
- isTon: boolean;
8
- }): void;
6
+ export default function useInitTokenList({ tokenList, popularTokenList, }: InitTokenListProps): void;
@@ -1,2 +1,2 @@
1
1
  import { WidgetProps } from '../../components/Widget/';
2
- export declare function useInitPropsToRedux({ width, height, feeRate, rebateTo, colorMode, apikey, defaultChainId, defaultToToken, defaultFromToken, jsonRpcUrlMap, swapSlippage, bridgeSlippage, apiServices, crossChain, noPowerBy, tonConnect, }: WidgetProps): void;
2
+ export declare function useInitPropsToRedux({ width, height, feeRate, rebateTo, colorMode, apikey, defaultChainId, defaultToToken, defaultFromToken, jsonRpcUrlMap, swapSlippage, bridgeSlippage, apiServices, crossChain, noPowerBy, }: WidgetProps): void;
@@ -8,8 +8,9 @@ declare type TokenResult = {
8
8
  symbol?: string;
9
9
  name?: string;
10
10
  };
11
- export default function useFetchTokens({ tokenList, blockNumber, chainId, skip, }: {
11
+ export default function useFetchTokens({ tokenList, addresses: addressesProps, blockNumber, chainId, skip, }: {
12
12
  tokenList?: TokenList;
13
+ addresses?: string[];
13
14
  blockNumber?: number;
14
15
  chainId?: number;
15
16
  skip?: boolean;
@@ -2,7 +2,5 @@
2
2
  import { WidgetProps } from './components/Widget';
3
3
  export declare type SwapWidgetProps = WidgetProps;
4
4
  export type { TokenInfo } from './hooks/Token/type';
5
- export { default as BridgeTonSummaryDialog } from './components/Widget/BridgeTonSummaryDialog';
6
- export { Widget } from './components/Widget';
7
5
  export declare function SwapWidget(props: SwapWidgetProps): JSX.Element;
8
6
  export declare function InitSwapWidget(props: SwapWidgetProps): void;
@@ -2,5 +2,4 @@ import { AppThunkAction } from '.';
2
2
  import { ChainId } from '../../constants/chains';
3
3
  export declare const setDefaultChainId: (chainId: ChainId) => AppThunkAction;
4
4
  export declare const setFromTokenChainId: (chainId: ChainId | undefined) => AppThunkAction;
5
- export declare const setToTokenChainId: (chainId: ChainId | undefined) => AppThunkAction;
6
5
  export declare const setBlockNumber: (blockNumber: number) => AppThunkAction;
@@ -3,7 +3,6 @@ import { ChainId } from '../../constants/chains';
3
3
  export declare type State = {
4
4
  chainId: ChainId;
5
5
  fromTokenChainId?: ChainId;
6
- toTokenChainId?: ChainId;
7
6
  latestBlockNumber: number;
8
7
  };
9
8
  export declare const initialState: State;
@@ -1,5 +1,4 @@
1
1
  import { RootState } from '../reducers';
2
2
  export declare const getDefaultChainId: (state?: RootState) => import("../../constants/chains").ChainId;
3
3
  export declare const getFromTokenChainId: (state?: RootState) => import("../../constants/chains").ChainId | undefined;
4
- export declare const getToTokenChainId: (state?: RootState) => import("../../constants/chains").ChainId | undefined;
5
4
  export declare const getLatestBlockNumber: (state?: RootState) => number;
@@ -18,5 +18,6 @@ export interface ReviewDialogProps {
18
18
  curFromFiatPrice: BigNumber | null;
19
19
  pricePerFromToken: number | null;
20
20
  loading: boolean;
21
+ disabledFiatPrice?: boolean;
21
22
  }
22
- export declare function ReviewDialog({ open, execute, onClose, toToken, fromToken, fromAmount, toAmount, priceImpact, clearFromAmt, clearToAmt, baseFeeAmount, curToFiatPrice, curFromFiatPrice, pricePerFromToken, additionalFeeAmount, loading, }: ReviewDialogProps): JSX.Element;
23
+ export declare function ReviewDialog({ open, execute, onClose, toToken, fromToken, fromAmount, toAmount, priceImpact, clearFromAmt, clearToAmt, baseFeeAmount, curToFiatPrice, curFromFiatPrice, pricePerFromToken, additionalFeeAmount, loading, disabledFiatPrice, }: ReviewDialogProps): JSX.Element;
@@ -6,5 +6,6 @@ export interface SwapProps {
6
6
  getAutoSlippage?: GetAutoSlippage;
7
7
  onPayTokenChange?: (token: TokenInfo) => void;
8
8
  onReceiveTokenChange?: (token: TokenInfo) => void;
9
+ disabledFiatPrice?: boolean;
9
10
  }
10
- export declare function Swap({ getAutoSlippage, onPayTokenChange, onReceiveTokenChange, }?: SwapProps): JSX.Element;
11
+ export declare function Swap({ getAutoSlippage, onPayTokenChange, onReceiveTokenChange, disabledFiatPrice, }?: SwapProps): JSX.Element;
@@ -23,6 +23,7 @@ export declare const getRpcSingleUrlMap: (newRpcServerMap?: {
23
23
  169: string;
24
24
  5000: string;
25
25
  53457: string;
26
+ 80084: string;
26
27
  };
27
28
  export declare const platformIdMap: {
28
29
  [key in ChainId]: string;
@@ -0,0 +1,9 @@
1
+ <svg width="407" height="407" viewBox="0 0 407 407" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2
+ <rect width="407" height="407" fill="url(#pattern0_5_6196)"/>
3
+ <defs>
4
+ <pattern id="pattern0_5_6196" patternContentUnits="objectBoundingBox" width="1" height="1">
5
+ <use xlink:href="#image0_5_6196" transform="scale(0.0015625)"/>
6
+ </pattern>
7
+ <image id="image0_5_6196" width="640" height="640" xlink:href="data:image/png;base64,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"/>
8
+ </defs>
9
+ </svg>
@@ -0,0 +1 @@
1
+ import{i18n as e}from"@lingui/core";import t from"bignumber.js";import{f as i}from"./index-C-2UnSDv.js";function o(t,i){switch(t){case"depth-chart.tips.buy":return e._({id:"q+Q952",message:"Users pay {0} {1} and receive {2} {3}\\nPrice {4} ({5}%)",values:{0:i.amountText,1:i.baseTokenSymbol,2:i.oppositeAmountText,3:i.quoteTokenSymbol,4:i.priceText,5:i.slippageText}});case"depth-chart.tips.mid-price":return e._({id:"cnbRVW",message:"Initial Price {0} {1} = {2} {3}",values:{0:i.amountText,1:i.baseTokenSymbol,2:i.oppositeAmountText,3:i.quoteTokenSymbol}});case"depth-chart.tips.sell":return e._({id:"q+Q952",message:"Users pay {0} {1} and receive {2} {3}\\nPrice {4} ({5}%)",values:{0:i.oppositeAmountText,1:i.quoteTokenSymbol,2:i.amountText,3:i.baseTokenSymbol,4:i.priceText,5:i.slippageText}});case"pool.chart.buy-amount":return e._({id:"TaScUS",message:"Users sell {0} amount:",values:{0:i.symbol}});case"pool.chart.price-impact":return e._({id:"I0LXan",message:"Price Impact: {0}",values:{0:i.amount}});case"pool.chart.sell-amount":return e._({id:"F2vX4t",message:"Users buy {0} amount:",values:{0:i.symbol}});case"pool.create.disabled-token-amount":return e._({id:"5QDjef",message:"The token amount is calculated by initial price."});case"pool.create.set-pool.emulator.title":return e._({id:"FQfStS",message:"Emulator"});case"pool.create.set-pool.emulator.title.question":return e._({id:"9D2g7k",message:"The liquidity of DODO is continuous, which is different from the discrete liquidity of UniV3. The ticks shown in the illustration are for demonstration purposes only."});case"pool.chart.liquidity-chart-tip":return e._({id:"YvXHDU",message:"The area of the chart indicates the buy/sell volume of {0} that can be carried by the market when the current price changes to the hover price.",values:{0:i.baseTokenSymbol}});case"pool.chart.liquidity-chart-buy":return e._({id:"TvH4Ym",message:"Bought {0} {1}, price in the pool decreased to {2}",values:{0:i.amount,1:i.symbol,2:i.price}});case"pool.chart.liquidity-chart-sell":return e._({id:"0O1wzf",message:"Traders sold ‪{0}‬ {1}, price in the pool increased to {2}",values:{0:i.amount,1:i.symbol,2:i.price}});default:throw new Error(`Unknown key ${t}`)}}const l=12,n=18;function s(e){let t=e.toLowerCase();if(t&&/^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/.test(t)){if(4===t.length){let e="#";for(let i=1;i<4;i+=1)e+=t.slice(i,i+1).concat(t.slice(i,i+1));t=e}const e=[];for(let i=1;i<7;i+=2)e.push(parseInt(`0x${t.slice(i,i+2)}`));return e.join(",")}return t}function r({val:e,model:i}){let o=e;if(e.isNaN())return{side:"no-one",vert:new t(0),base:new t(0),quote:new t(0)};i.Q0.eq(0)&&e.lt(i.i)&&(o=i.i),i.B0.eq(0)&&e.gt(i.i)&&(o=i.i);const l=i.getPriceDepth(o),n=l.baseAmount,s=l.quoteAmount,{isBuy:r}=l;return{side:r?"ask":"bid",vert:r?n:s,base:n,quote:s}}function a({midPrice:e,q:i,q0:o,pmmModel:l}){let n=t.maximum(i,o,l.B.multipliedBy(e));return n.isNaN()&&(n=new t(10)),n.eq(0)&&(n=new t(1)),{buyBaseVert:n.multipliedBy(1.2),sellBaseVert:n.div(e).multipliedBy(1.2)}}function u(e,i=1){return new t(i).div(e/2)}function m({tooltip:e,x:o,chartWidth:l,chartHeight:n,buyBaseVert:a,sellBaseVert:m,pmmModel:p,midPrice:d,baseTokenSymbol:c,quoteTokenSymbol:h,t:b,baseMinAndZoomMultiples:f,isHover:y,color:g,leftColor:T,rightColor:x}){const{zoomMultiples:v,baseMin:w}=f,k=u(l,v),M=a.div(n),B=m.div(n),q=2*v,S=w.multipliedBy(10**k.multipliedBy(o).toNumber());let N=new t(Math.log(d.div(w).toNumber())/Math.log(10));N=t.minimum(q,N),N=t.maximum(0,N);const P=N.div(k),X=r({val:S,model:p,midPrice:d});if(X.vert.isNaN())return;const A=S.lt(d);let _=n-X.vert.div(M).toNumber();A||(_=n-X.vert.div(B).toNumber());const z=i(S),O=i(X.vert),$=S.minus(d).abs().div(d).multipliedBy(100).toFixed(2),D=P.toNumber(),H=e.findOne("#toolTipVertLine"),L=e.findOne("#toolTipHoriLine"),U=e.findOne("#joinCircle"),V=e.findOne("#toolTip"),j=e.findOne("#priceTextLabel"),W=e.findOne("#slippageTextLabel");if(!V)return;V.x(o),V.y(_-5-6);const Y=V.getText(),F=V.getTag();let I="ask"===X.side?i(X.quote):i(X.base);const Q=p.k.lte(0);Q&&(I=O);const C=i(d),Z={amountText:O,baseTokenSymbol:c,oppositeAmountText:I,quoteTokenSymbol:h,priceText:Q?C:z,slippageText:`${A?"-":"+"}${$}`};if(P.minus(4).lte(o)&&P.plus(2).gte(o)&&y)Y.text(b("depth-chart.tips.mid-price",{amountText:1,baseTokenSymbol:c,oppositeAmountText:C,quoteTokenSymbol:h})),V.x(D),V.y(n/2),null==H||H.hide(),null==L||L.hide(),null==U||U.hide(),null==j||j.hide(),null==W||W.hide();else{Y.text(A?b("depth-chart.tips.buy",{amountText:I,baseTokenSymbol:c,oppositeAmountText:O,quoteTokenSymbol:h,priceText:Q?C:z,slippageText:`${A?"-":"+"}${$}`}):b("depth-chart.tips.sell",Z));const e=g||(A?"#55f6db":"#ff4f73"),t=A?T||"#55f6db":x||"#ff4f73";Y.fill(e),V.width()/2>o?(F.pointerDirection("left"),F.pointerHeight(15),F.pointerWidth(8),V.offsetX(-11),V.offsetY(-11)):V.width()/2+o>l?(F.pointerDirection("right"),F.pointerHeight(15),F.pointerWidth(8),V.offsetX(11),V.offsetY(-11)):(F.pointerDirection("down"),F.pointerHeight(8),F.pointerWidth(15),V.offsetX(0),V.offsetY(0)),null==H||H.points([o,n,o,_]),null==H||H.stroke(t),null==L||L.points(A?[o,_,D,_]:[D,_,o,_]),null==L||L.stroke(t),null==U||U.x(o),null==U||U.y(_),null==U||U.fill(A?T||"rgb(86, 246, 218)":x||"#FF5072"),null==U||U.stroke(A?T?`rgba(${s(T)}, 0.4)`:"rgba(86, 246, 218, 0.3)":x?`rgba(${s(x)}, 0.4)`:"rgba(255, 80, 114, 0.3)"),j&&(j.x(o),j.y(n),j.offsetX(j.width()/2),j.x()-j.width()/2<0?j.x(j.width()/2):j.x()+j.width()/2>l?j.x(l-j.width()/2):j.x(o));const i=null==j?void 0:j.findOne("#priceTextLabel-text");i&&(i.fill(e),i.text(z)),W&&(W.x(A?o+(D-o)/2:o-(o-D)/2),W.y(_),W.offsetY(W.height()/2),W.offsetX(W.width()/2));const r=null==W?void 0:W.findOne("#slippageTextLabel-text");r&&(r.fill(e),r.text(`${A?"-":"+"}${$}%`)),null==H||H.show(),null==L||L.show(),null==U||U.show(),null==j||j.show(),null==W||W.show()}e.show()}function p({dragDistance:e,prevBaseMin:i,chartWidth:o,zoomMultiples:l}){const n=u(o,l);return e>0?i.multipliedBy(1-n.multipliedBy(e).toNumber()):i.multipliedBy(10**n.multipliedBy(new t(e).abs()).plus(0).toNumber())}const d=1;function c({prevZoomMultiples:e,zoomIn:t}){return!t&&e<=.1?e:t?e+.1:e-.1}function h({type:e,targetPrice:i,midPrice:o,width:l}){if("sell"===e){return{zoomMultiples:new t(Math.log10(i.div(o).toNumber())).minus(0).div(3/4).abs(),targetX:l/2*(3/4)+l/2}}const n=new t(Math.log10(i.div(o).toNumber()));return{zoomMultiples:new t(0).minus(n).div(3/4).abs(),targetX:l/2*(1/4)}}function b({currentBaseMinAndZoomMultiples:e,targetPrice:i,midPrice:o,width:l}){const{baseMin:n,zoomMultiples:s}=e,r=new t(Math.log10(n.div(o).toNumber())),a=r.plus(2*s),u=new t(o.multipliedBy(10**a.toNumber()));if(i.gte(n)&&i.lte(u)){return{isSkip:!0,targetX:new t(Math.log10(i.div(o).toNumber())).minus(r).div(2*s).multipliedBy(l).toNumber(),baseMin:new t(0),zoomMultiples:1}}const m=new t(o.multipliedBy(.1)),p=new t(o.multipliedBy(10));if(i.gte(m)&&i.lte(p)){return{isSkip:!1,targetX:new t(Math.log10(i.div(o).toNumber())).minus(-1).div(2).multipliedBy(l).toNumber(),baseMin:m,zoomMultiples:1}}return{isSkip:!1,targetX:-1,baseMin:new t(0),zoomMultiples:1}}function f({midPrice:e,zoomMultiples:t}){return e.multipliedBy(10**-t)}export{a,p as b,u as c,c as d,r as e,f,o as g,n as h,d as i,b as j,h as k,l,s as m,m as u};
@@ -0,0 +1 @@
1
+ import{i18n as e}from"@lingui/core";import t from"bignumber.js";import{f as i}from"./index-JfQcHFPg.js";function o(t,i){switch(t){case"depth-chart.tips.buy":return e._({id:"q+Q952",message:"Users pay {0} {1} and receive {2} {3}\\nPrice {4} ({5}%)",values:{0:i.amountText,1:i.baseTokenSymbol,2:i.oppositeAmountText,3:i.quoteTokenSymbol,4:i.priceText,5:i.slippageText}});case"depth-chart.tips.mid-price":return e._({id:"cnbRVW",message:"Initial Price {0} {1} = {2} {3}",values:{0:i.amountText,1:i.baseTokenSymbol,2:i.oppositeAmountText,3:i.quoteTokenSymbol}});case"depth-chart.tips.sell":return e._({id:"q+Q952",message:"Users pay {0} {1} and receive {2} {3}\\nPrice {4} ({5}%)",values:{0:i.oppositeAmountText,1:i.quoteTokenSymbol,2:i.amountText,3:i.baseTokenSymbol,4:i.priceText,5:i.slippageText}});case"pool.chart.buy-amount":return e._({id:"TaScUS",message:"Users sell {0} amount:",values:{0:i.symbol}});case"pool.chart.price-impact":return e._({id:"I0LXan",message:"Price Impact: {0}",values:{0:i.amount}});case"pool.chart.sell-amount":return e._({id:"F2vX4t",message:"Users buy {0} amount:",values:{0:i.symbol}});case"pool.create.disabled-token-amount":return e._({id:"5QDjef",message:"The token amount is calculated by initial price."});case"pool.create.set-pool.emulator.title":return e._({id:"FQfStS",message:"Emulator"});case"pool.create.set-pool.emulator.title.question":return e._({id:"9D2g7k",message:"The liquidity of DODO is continuous, which is different from the discrete liquidity of UniV3. The ticks shown in the illustration are for demonstration purposes only."});case"pool.chart.liquidity-chart-tip":return e._({id:"YvXHDU",message:"The area of the chart indicates the buy/sell volume of {0} that can be carried by the market when the current price changes to the hover price.",values:{0:i.baseTokenSymbol}});case"pool.chart.liquidity-chart-buy":return e._({id:"TvH4Ym",message:"Bought {0} {1}, price in the pool decreased to {2}",values:{0:i.amount,1:i.symbol,2:i.price}});case"pool.chart.liquidity-chart-sell":return e._({id:"0O1wzf",message:"Traders sold ‪{0}‬ {1}, price in the pool increased to {2}",values:{0:i.amount,1:i.symbol,2:i.price}});default:throw new Error(`Unknown key ${t}`)}}const l=12,n=18;function s(e){let t=e.toLowerCase();if(t&&/^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/.test(t)){if(4===t.length){let e="#";for(let i=1;i<4;i+=1)e+=t.slice(i,i+1).concat(t.slice(i,i+1));t=e}const e=[];for(let i=1;i<7;i+=2)e.push(parseInt(`0x${t.slice(i,i+2)}`));return e.join(",")}return t}function r({val:e,model:i}){let o=e;if(e.isNaN())return{side:"no-one",vert:new t(0),base:new t(0),quote:new t(0)};i.Q0.eq(0)&&e.lt(i.i)&&(o=i.i),i.B0.eq(0)&&e.gt(i.i)&&(o=i.i);const l=i.getPriceDepth(o),n=l.baseAmount,s=l.quoteAmount,{isBuy:r}=l;return{side:r?"ask":"bid",vert:r?n:s,base:n,quote:s}}function a({midPrice:e,q:i,q0:o,pmmModel:l}){let n=t.maximum(i,o,l.B.multipliedBy(e));return n.isNaN()&&(n=new t(10)),n.eq(0)&&(n=new t(1)),{buyBaseVert:n.multipliedBy(1.2),sellBaseVert:n.div(e).multipliedBy(1.2)}}function u(e,i=1){return new t(i).div(e/2)}function m({tooltip:e,x:o,chartWidth:l,chartHeight:n,buyBaseVert:a,sellBaseVert:m,pmmModel:p,midPrice:d,baseTokenSymbol:c,quoteTokenSymbol:h,t:b,baseMinAndZoomMultiples:f,isHover:y,color:g,leftColor:T,rightColor:x}){const{zoomMultiples:v,baseMin:w}=f,k=u(l,v),M=a.div(n),B=m.div(n),q=2*v,S=w.multipliedBy(10**k.multipliedBy(o).toNumber());let N=new t(Math.log(d.div(w).toNumber())/Math.log(10));N=t.minimum(q,N),N=t.maximum(0,N);const P=N.div(k),X=r({val:S,model:p,midPrice:d});if(X.vert.isNaN())return;const A=S.lt(d);let _=n-X.vert.div(M).toNumber();A||(_=n-X.vert.div(B).toNumber());const z=i(S),O=i(X.vert),$=S.minus(d).abs().div(d).multipliedBy(100).toFixed(2),D=P.toNumber(),H=e.findOne("#toolTipVertLine"),L=e.findOne("#toolTipHoriLine"),U=e.findOne("#joinCircle"),V=e.findOne("#toolTip"),j=e.findOne("#priceTextLabel"),W=e.findOne("#slippageTextLabel");if(!V)return;V.x(o),V.y(_-5-6);const Y=V.getText(),F=V.getTag();let I="ask"===X.side?i(X.quote):i(X.base);const Q=p.k.lte(0);Q&&(I=O);const C=i(d),Z={amountText:O,baseTokenSymbol:c,oppositeAmountText:I,quoteTokenSymbol:h,priceText:Q?C:z,slippageText:`${A?"-":"+"}${$}`};if(P.minus(4).lte(o)&&P.plus(2).gte(o)&&y)Y.text(b("depth-chart.tips.mid-price",{amountText:1,baseTokenSymbol:c,oppositeAmountText:C,quoteTokenSymbol:h})),V.x(D),V.y(n/2),null==H||H.hide(),null==L||L.hide(),null==U||U.hide(),null==j||j.hide(),null==W||W.hide();else{Y.text(A?b("depth-chart.tips.buy",{amountText:I,baseTokenSymbol:c,oppositeAmountText:O,quoteTokenSymbol:h,priceText:Q?C:z,slippageText:`${A?"-":"+"}${$}`}):b("depth-chart.tips.sell",Z));const e=g||(A?"#55f6db":"#ff4f73"),t=A?T||"#55f6db":x||"#ff4f73";Y.fill(e),V.width()/2>o?(F.pointerDirection("left"),F.pointerHeight(15),F.pointerWidth(8),V.offsetX(-11),V.offsetY(-11)):V.width()/2+o>l?(F.pointerDirection("right"),F.pointerHeight(15),F.pointerWidth(8),V.offsetX(11),V.offsetY(-11)):(F.pointerDirection("down"),F.pointerHeight(8),F.pointerWidth(15),V.offsetX(0),V.offsetY(0)),null==H||H.points([o,n,o,_]),null==H||H.stroke(t),null==L||L.points(A?[o,_,D,_]:[D,_,o,_]),null==L||L.stroke(t),null==U||U.x(o),null==U||U.y(_),null==U||U.fill(A?T||"rgb(86, 246, 218)":x||"#FF5072"),null==U||U.stroke(A?T?`rgba(${s(T)}, 0.4)`:"rgba(86, 246, 218, 0.3)":x?`rgba(${s(x)}, 0.4)`:"rgba(255, 80, 114, 0.3)"),j&&(j.x(o),j.y(n),j.offsetX(j.width()/2),j.x()-j.width()/2<0?j.x(j.width()/2):j.x()+j.width()/2>l?j.x(l-j.width()/2):j.x(o));const i=null==j?void 0:j.findOne("#priceTextLabel-text");i&&(i.fill(e),i.text(z)),W&&(W.x(A?o+(D-o)/2:o-(o-D)/2),W.y(_),W.offsetY(W.height()/2),W.offsetX(W.width()/2));const r=null==W?void 0:W.findOne("#slippageTextLabel-text");r&&(r.fill(e),r.text(`${A?"-":"+"}${$}%`)),null==H||H.show(),null==L||L.show(),null==U||U.show(),null==j||j.show(),null==W||W.show()}e.show()}function p({dragDistance:e,prevBaseMin:i,chartWidth:o,zoomMultiples:l}){const n=u(o,l);return e>0?i.multipliedBy(1-n.multipliedBy(e).toNumber()):i.multipliedBy(10**n.multipliedBy(new t(e).abs()).plus(0).toNumber())}const d=1;function c({prevZoomMultiples:e,zoomIn:t}){return!t&&e<=.1?e:t?e+.1:e-.1}function h({type:e,targetPrice:i,midPrice:o,width:l}){if("sell"===e){return{zoomMultiples:new t(Math.log10(i.div(o).toNumber())).minus(0).div(3/4).abs(),targetX:l/2*(3/4)+l/2}}const n=new t(Math.log10(i.div(o).toNumber()));return{zoomMultiples:new t(0).minus(n).div(3/4).abs(),targetX:l/2*(1/4)}}function b({currentBaseMinAndZoomMultiples:e,targetPrice:i,midPrice:o,width:l}){const{baseMin:n,zoomMultiples:s}=e,r=new t(Math.log10(n.div(o).toNumber())),a=r.plus(2*s),u=new t(o.multipliedBy(10**a.toNumber()));if(i.gte(n)&&i.lte(u)){return{isSkip:!0,targetX:new t(Math.log10(i.div(o).toNumber())).minus(r).div(2*s).multipliedBy(l).toNumber(),baseMin:new t(0),zoomMultiples:1}}const m=new t(o.multipliedBy(.1)),p=new t(o.multipliedBy(10));if(i.gte(m)&&i.lte(p)){return{isSkip:!1,targetX:new t(Math.log10(i.div(o).toNumber())).minus(-1).div(2).multipliedBy(l).toNumber(),baseMin:m,zoomMultiples:1}}return{isSkip:!1,targetX:-1,baseMin:new t(0),zoomMultiples:1}}function f({midPrice:e,zoomMultiples:t}){return e.multipliedBy(10**-t)}export{a,p as b,u as c,c as d,r as e,f,o as g,n as h,d as i,b as j,h as k,l,s as m,m as u};
@@ -0,0 +1 @@
1
+ import{i18n as e}from"@lingui/core";import t from"bignumber.js";import{f as i}from"./index-CrzQ7tIe.js";function o(t,i){switch(t){case"depth-chart.tips.buy":return e._({id:"q+Q952",message:"Users pay {0} {1} and receive {2} {3}\\nPrice {4} ({5}%)",values:{0:i.amountText,1:i.baseTokenSymbol,2:i.oppositeAmountText,3:i.quoteTokenSymbol,4:i.priceText,5:i.slippageText}});case"depth-chart.tips.mid-price":return e._({id:"cnbRVW",message:"Initial Price {0} {1} = {2} {3}",values:{0:i.amountText,1:i.baseTokenSymbol,2:i.oppositeAmountText,3:i.quoteTokenSymbol}});case"depth-chart.tips.sell":return e._({id:"q+Q952",message:"Users pay {0} {1} and receive {2} {3}\\nPrice {4} ({5}%)",values:{0:i.oppositeAmountText,1:i.quoteTokenSymbol,2:i.amountText,3:i.baseTokenSymbol,4:i.priceText,5:i.slippageText}});case"pool.chart.buy-amount":return e._({id:"TaScUS",message:"Users sell {0} amount:",values:{0:i.symbol}});case"pool.chart.price-impact":return e._({id:"I0LXan",message:"Price Impact: {0}",values:{0:i.amount}});case"pool.chart.sell-amount":return e._({id:"F2vX4t",message:"Users buy {0} amount:",values:{0:i.symbol}});case"pool.create.disabled-token-amount":return e._({id:"5QDjef",message:"The token amount is calculated by initial price."});case"pool.create.set-pool.emulator.title":return e._({id:"FQfStS",message:"Emulator"});case"pool.create.set-pool.emulator.title.question":return e._({id:"9D2g7k",message:"The liquidity of DODO is continuous, which is different from the discrete liquidity of UniV3. The ticks shown in the illustration are for demonstration purposes only."});case"pool.chart.liquidity-chart-tip":return e._({id:"YvXHDU",message:"The area of the chart indicates the buy/sell volume of {0} that can be carried by the market when the current price changes to the hover price.",values:{0:i.baseTokenSymbol}});case"pool.chart.liquidity-chart-buy":return e._({id:"TvH4Ym",message:"Bought {0} {1}, price in the pool decreased to {2}",values:{0:i.amount,1:i.symbol,2:i.price}});case"pool.chart.liquidity-chart-sell":return e._({id:"0O1wzf",message:"Traders sold ‪{0}‬ {1}, price in the pool increased to {2}",values:{0:i.amount,1:i.symbol,2:i.price}});default:throw new Error(`Unknown key ${t}`)}}const l=12,n=18;function s(e){let t=e.toLowerCase();if(t&&/^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/.test(t)){if(4===t.length){let e="#";for(let i=1;i<4;i+=1)e+=t.slice(i,i+1).concat(t.slice(i,i+1));t=e}const e=[];for(let i=1;i<7;i+=2)e.push(parseInt(`0x${t.slice(i,i+2)}`));return e.join(",")}return t}function r({val:e,model:i}){let o=e;if(e.isNaN())return{side:"no-one",vert:new t(0),base:new t(0),quote:new t(0)};i.Q0.eq(0)&&e.lt(i.i)&&(o=i.i),i.B0.eq(0)&&e.gt(i.i)&&(o=i.i);const l=i.getPriceDepth(o),n=l.baseAmount,s=l.quoteAmount,{isBuy:r}=l;return{side:r?"ask":"bid",vert:r?n:s,base:n,quote:s}}function a({midPrice:e,q:i,q0:o,pmmModel:l}){let n=t.maximum(i,o,l.B.multipliedBy(e));return n.isNaN()&&(n=new t(10)),n.eq(0)&&(n=new t(1)),{buyBaseVert:n.multipliedBy(1.2),sellBaseVert:n.div(e).multipliedBy(1.2)}}function u(e,i=1){return new t(i).div(e/2)}function m({tooltip:e,x:o,chartWidth:l,chartHeight:n,buyBaseVert:a,sellBaseVert:m,pmmModel:p,midPrice:d,baseTokenSymbol:c,quoteTokenSymbol:h,t:b,baseMinAndZoomMultiples:f,isHover:y,color:g,leftColor:T,rightColor:x}){const{zoomMultiples:v,baseMin:w}=f,k=u(l,v),M=a.div(n),B=m.div(n),q=2*v,S=w.multipliedBy(10**k.multipliedBy(o).toNumber());let N=new t(Math.log(d.div(w).toNumber())/Math.log(10));N=t.minimum(q,N),N=t.maximum(0,N);const P=N.div(k),X=r({val:S,model:p,midPrice:d});if(X.vert.isNaN())return;const A=S.lt(d);let _=n-X.vert.div(M).toNumber();A||(_=n-X.vert.div(B).toNumber());const z=i(S),O=i(X.vert),$=S.minus(d).abs().div(d).multipliedBy(100).toFixed(2),D=P.toNumber(),H=e.findOne("#toolTipVertLine"),L=e.findOne("#toolTipHoriLine"),U=e.findOne("#joinCircle"),V=e.findOne("#toolTip"),j=e.findOne("#priceTextLabel"),W=e.findOne("#slippageTextLabel");if(!V)return;V.x(o),V.y(_-5-6);const Y=V.getText(),F=V.getTag();let I="ask"===X.side?i(X.quote):i(X.base);const Q=p.k.lte(0);Q&&(I=O);const C=i(d),Z={amountText:O,baseTokenSymbol:c,oppositeAmountText:I,quoteTokenSymbol:h,priceText:Q?C:z,slippageText:`${A?"-":"+"}${$}`};if(P.minus(4).lte(o)&&P.plus(2).gte(o)&&y)Y.text(b("depth-chart.tips.mid-price",{amountText:1,baseTokenSymbol:c,oppositeAmountText:C,quoteTokenSymbol:h})),V.x(D),V.y(n/2),null==H||H.hide(),null==L||L.hide(),null==U||U.hide(),null==j||j.hide(),null==W||W.hide();else{Y.text(A?b("depth-chart.tips.buy",{amountText:I,baseTokenSymbol:c,oppositeAmountText:O,quoteTokenSymbol:h,priceText:Q?C:z,slippageText:`${A?"-":"+"}${$}`}):b("depth-chart.tips.sell",Z));const e=g||(A?"#55f6db":"#ff4f73"),t=A?T||"#55f6db":x||"#ff4f73";Y.fill(e),V.width()/2>o?(F.pointerDirection("left"),F.pointerHeight(15),F.pointerWidth(8),V.offsetX(-11),V.offsetY(-11)):V.width()/2+o>l?(F.pointerDirection("right"),F.pointerHeight(15),F.pointerWidth(8),V.offsetX(11),V.offsetY(-11)):(F.pointerDirection("down"),F.pointerHeight(8),F.pointerWidth(15),V.offsetX(0),V.offsetY(0)),null==H||H.points([o,n,o,_]),null==H||H.stroke(t),null==L||L.points(A?[o,_,D,_]:[D,_,o,_]),null==L||L.stroke(t),null==U||U.x(o),null==U||U.y(_),null==U||U.fill(A?T||"rgb(86, 246, 218)":x||"#FF5072"),null==U||U.stroke(A?T?`rgba(${s(T)}, 0.4)`:"rgba(86, 246, 218, 0.3)":x?`rgba(${s(x)}, 0.4)`:"rgba(255, 80, 114, 0.3)"),j&&(j.x(o),j.y(n),j.offsetX(j.width()/2),j.x()-j.width()/2<0?j.x(j.width()/2):j.x()+j.width()/2>l?j.x(l-j.width()/2):j.x(o));const i=null==j?void 0:j.findOne("#priceTextLabel-text");i&&(i.fill(e),i.text(z)),W&&(W.x(A?o+(D-o)/2:o-(o-D)/2),W.y(_),W.offsetY(W.height()/2),W.offsetX(W.width()/2));const r=null==W?void 0:W.findOne("#slippageTextLabel-text");r&&(r.fill(e),r.text(`${A?"-":"+"}${$}%`)),null==H||H.show(),null==L||L.show(),null==U||U.show(),null==j||j.show(),null==W||W.show()}e.show()}function p({dragDistance:e,prevBaseMin:i,chartWidth:o,zoomMultiples:l}){const n=u(o,l);return e>0?i.multipliedBy(1-n.multipliedBy(e).toNumber()):i.multipliedBy(10**n.multipliedBy(new t(e).abs()).plus(0).toNumber())}const d=1;function c({prevZoomMultiples:e,zoomIn:t}){return!t&&e<=.1?e:t?e+.1:e-.1}function h({type:e,targetPrice:i,midPrice:o,width:l}){if("sell"===e){return{zoomMultiples:new t(Math.log10(i.div(o).toNumber())).minus(0).div(3/4).abs(),targetX:l/2*(3/4)+l/2}}const n=new t(Math.log10(i.div(o).toNumber()));return{zoomMultiples:new t(0).minus(n).div(3/4).abs(),targetX:l/2*(1/4)}}function b({currentBaseMinAndZoomMultiples:e,targetPrice:i,midPrice:o,width:l}){const{baseMin:n,zoomMultiples:s}=e,r=new t(Math.log10(n.div(o).toNumber())),a=r.plus(2*s),u=new t(o.multipliedBy(10**a.toNumber()));if(i.gte(n)&&i.lte(u)){return{isSkip:!0,targetX:new t(Math.log10(i.div(o).toNumber())).minus(r).div(2*s).multipliedBy(l).toNumber(),baseMin:new t(0),zoomMultiples:1}}const m=new t(o.multipliedBy(.1)),p=new t(o.multipliedBy(10));if(i.gte(m)&&i.lte(p)){return{isSkip:!1,targetX:new t(Math.log10(i.div(o).toNumber())).minus(-1).div(2).multipliedBy(l).toNumber(),baseMin:m,zoomMultiples:1}}return{isSkip:!1,targetX:-1,baseMin:new t(0),zoomMultiples:1}}function f({midPrice:e,zoomMultiples:t}){return e.multipliedBy(10**-t)}export{a,p as b,u as c,c as d,r as e,f,o as g,n as h,d as i,b as j,h as k,l,s as m,m as u};
@@ -0,0 +1,12 @@
1
+ import t from"@emotion/styled";import{merge as e}from"lodash";import{useMemo as i,useRef as n}from"react";import{l as r,g as o,m as l}from"./helper-ftevjEYg.js";import{Line as a,Text as s,Stage as d,Layer as g,Rect as m,Circle as u,Label as h,Tag as p}from"react-konva";import{j as c,f}from"./index-CrzQ7tIe.js";import x from"bignumber.js";import{solveQuadraticFunctionForTarget as L,PMMState as w,PMMHelper as A}from"@dodoex/api";import"@lingui/core";import"@lingui/react";import"react-dom";import"react-redux";import"identicon.js";import"@web3-react/core";import"@web3-react/eip1193";import"@web3-react/walletconnect-v2";import"@web3-react/metamask";import"@web3-react/types";import"@reduxjs/toolkit";import"redux";import"@tanstack/react-query";import"react-window";import"@ethersproject/bignumber";import"dayjs";import"axios";import"zustand";import"react-infinite-scroller";import"recharts";const b=t.div`
2
+ height: 100%;
3
+ position: relative;
4
+ `,y=t.div`
5
+ text-align: center;
6
+ margin-top: 17.1px;
7
+ margin-bottom: 88.41px;
8
+ color: #606066;
9
+ font-size: 12px;
10
+ line-height: 17px;
11
+ font-weight: 400;
12
+ `,N=36;function P({maxHeight:t,gridAreaHeight:e,value:i}){const n=new x(e).minus(N),r=n.div(t);return n.minus(i.multipliedBy(r)).plus(N).toNumber()}function v({targetPrice:t,areaPoints:e,isLeft:i}){for(let n=0;n<e.length;n++){const r=e[n],o=n<e.length-1?e[n+1]:null;if(!o)return{targetAreaStatPoint:r,targetAreaStatPoints:e};if(i){if(t.lte(r.middlePrice)&&t.gte(o.middlePrice))return{targetAreaStatPoint:r,targetAreaStatPoints:e.slice(0,n+1)}}else if(t.gte(r.middlePrice)&&t.lte(o.middlePrice))return{targetAreaStatPoint:r,targetAreaStatPoints:e.slice(0,n+1)}}return{targetAreaStatPoint:null,targetAreaStatPoints:[]}}function j({x:t,width:e,minXLN10:i,maxXLN10:n}){const r=new x(t).div(e).multipliedBy(n.minus(i)).plus(i);return new x(10**r.toNumber())}function H({width:t,targetLN10:e,minXLN10:i,maxXLN10:n}){return e.minus(i).div(n.minus(i)).multipliedBy(t).toNumber()}function S({target:t}){return new x(Math.log10(t.toNumber()))}const X="rgba(38, 39, 41, 0.3)";function k({width:t,height:b,params:y,baseTokenSymbol:N,quoteTokenSymbol:k,colorMap:B}){const{maxLeftHeight:C,maxRightHeight:F,leftStatAreaPoints:M,rightStatAreaPoints:W,minXLN10:T,maxXLN10:J}=function({params:t}){return i((()=>{const e=new x(t.b),i=new x(t.q);let n=new x(t.b0);const r=new x(t.q0),o=new x(t.i),l=new x(t.k),{R:a}=t;1===a&&n.eq(e)&&(n=L(e,i.minus(r),new x(1).div(o),l));const s=new w({i:o,K:l,B:e,Q:i,B0:n,Q0:r,R:a,mtFeeRate:new x(0),lpFeeRate:new x(0)}),d=new A,g=new x(s.B),m=[],u=[];let h=new x(0),p=new x(0);const c=d.GetMidPrice(s),f=i.gt(0)?e.div(i):new x(1);for(let t=0;t<=250;t++){let e=g.multipliedBy(t/100).multipliedBy(c.multipliedBy(f).multipliedBy(4));0===t&&(e=g.multipliedBy(1e-11));const i=null==d?void 0:d.QuerySellBase(e,s);if(i.isNaN()||!i.gt(0))m.push({giveAmount:e,getAmount:new x(0),price:new x(0)});else{const t=i.div(e);m.push({giveAmount:e,getAmount:i,price:t})}}for(let t=0;t<=250;t++){let e=g.multipliedBy(t/100).multipliedBy(c.multipliedBy(4));0===t&&(e=g.multipliedBy(1e-11));const i=null==d?void 0:d.QuerySellQuote(e,s);if(i.isNaN()||!i.gt(0))u.push({giveAmount:e,getAmount:new x(0),price:new x(0)});else{const t=e.dividedBy(i);u.push({giveAmount:e,getAmount:i,price:t})}}if(m.length<2&&u.length<2)return{leftStatAreaPoints:[],rightStatAreaPoints:[],maxLeftHeight:new x(10).multipliedBy(1.2),maxRightHeight:new x(10).multipliedBy(1.2),middlePriceLN10:new x(0),minXLN10:new x(-1),maxXLN10:new x(1)};const b=[];for(let t=1;t<m.length;t++){const e=m[t],{giveAmount:i,getAmount:n,price:r}=e,o=m[t-1];if(!r.isNaN()&&r.gt(0)&&o){const e=r.minus(o.price).abs(),l=i.minus(o.giveAmount).abs(),a=n.minus(o.getAmount).abs().multipliedBy(l);1===t&&b.push({area:n,price:r,middlePrice:r.plus(e.div(1.1)),rectangleHeight:a.plus(a.multipliedBy(.03))}),b.push({area:n,price:r,middlePrice:r.plus(e.div(2)),rectangleHeight:a}),h=x.max(a,h)}}const y=[];for(let t=1;t<u.length;t++){const e=u[t],{giveAmount:i,getAmount:n,price:r}=e,o=u[t-1],l=o.price,a=o.giveAmount,s=o.getAmount;if(!r.isNaN()&&r.gt(0)&&o){const e=r.minus(l).abs(),o=i.minus(a).abs(),d=n.minus(s).abs().multipliedBy(o);1===t&&y.push({area:n,price:r,middlePrice:r.minus(e.div(1.1)),rectangleHeight:d.plus(d.multipliedBy(.03))}),y.push({area:n,price:r,middlePrice:r.minus(e.div(2)),rectangleHeight:d}),p=x.max(d,p)}}const N=m.length>0?m[m.length-1]:u[0],P=u.length>0?u[0]:m[0],v=u.length>0?u[u.length-1]:m[0],j=N.price,H=v.price,S=P.price,X=new x(Math.log10(S.toNumber()));let k=j.gt(0)?new x(Math.log10(j.toNumber())):new x(-Math.log10(H.toNumber())),B=H.gt(0)?new x(Math.log10(H.toNumber())):new x(-Math.log10(j.toNumber()));const C=x.max(X.minus(k).abs(),B.minus(X).abs());return k=X.minus(C),B=X.plus(C),{leftStatAreaPoints:b,rightStatAreaPoints:y,maxLeftHeight:h.multipliedBy(1.2),maxRightHeight:p.multipliedBy(1.2),minXLN10:k,maxXLN10:B,middlePriceLN10:X}}),[t])}({params:y}),q=b-30.13,O=n(null),R=e({grid:"#2A2A2D",midPriceLine:"#313335",leftBg:[0,X,1,"#31645d"],leftLine:"#55f6db",leftColor:"",rightBg:[0,X,1,"#67303d"],rightLine:"#ff4f73",rightColor:"",tooltipBg:"#121212",tooltipColor:void 0,textColor:"#606066"},B),D=e=>{var i;const{current:n}=O,r=e.target;if(r&&n){const e=null===(i=r.getStage())||void 0===i?void 0:i.getPointerPosition();if(e){const{x:i}=e,r=t/2;if(Math.abs(i-r)<=2)return;if(i<=2||t-i<=2)return;const a=j({x:i,width:t,minXLN10:T,maxXLN10:J});let s=null,d=[];const g=i<r;if(g){const t=v({areaPoints:M,targetPrice:a,isLeft:g});s=t.targetAreaStatPoint,d=t.targetAreaStatPoints}else{const t=v({areaPoints:W,targetPrice:a,isLeft:g});s=t.targetAreaStatPoint,d=t.targetAreaStatPoints}if(s){const e=S({target:s.middlePrice}),r=H({minXLN10:T,maxXLN10:J,width:t,targetLN10:e}),a=P({maxHeight:g?C:F,gridAreaHeight:q,value:s.rectangleHeight}),m=n.findOne("#tooltip"),u=n.findOne("#toolTipVertLine"),h=n.findOne("#joinCircle"),p=n.findOne("#tooltip-Text"),c=n.findOne("#tooltip-tag"),x=n.findOne("#priceTextLabel"),L=null==x?void 0:x.findOne("#priceTextLabel-text"),w=n.findOne("#area");null==m||m.position({x:r,y:a-5-6}),null==p||p.fill(R.tooltipColor||(g?"#00FAD9":"#FF5072")),null==p||p.text(g?o("pool.chart.liquidity-chart-buy",{amount:f(s.area),symbol:N,price:f(s.price)}):o("pool.chart.liquidity-chart-sell",{amount:f(s.area),symbol:k,price:f(s.price)})),m&&c&&(m.width()/2>i?(c.pointerDirection("left"),c.pointerHeight(15),c.pointerWidth(8),m.offsetX(-11),m.offsetY(-11)):m.width()/2+i>t?(c.pointerDirection("right"),c.pointerHeight(15),c.pointerWidth(8),m.offsetX(11),m.offsetY(-11)):(c.pointerDirection("down"),c.pointerHeight(8),c.pointerWidth(15),m.offsetX(0),m.offsetY(0))),null==u||u.points([r,q,r,a]),null==u||u.stroke(g?"#55f6db":"#ff4f73");let A=g?"rgb(86, 246, 218)":"#FF5072",b=g?"rgba(86, 246, 218, 0.3)":"rgba(255, 80, 114, 0.3)";R.leftLine&&R.rightLine&&(A=g?R.leftLine:R.rightLine,b=g?`rgba(${l(R.leftLine)}, 0.4)`:`rgba(${l(R.rightLine)}, 0.4)`),h&&(h.x(r),h.y(a),h.fill(A),h.stroke(b)),x&&(x.x(r),x.y(q+8.08+1),x.offsetX(x.width()/2),x.x()-x.width()/2<0?x.x(x.width()/2):x.x()+x.width()/2>t?x.x(t-x.width()/2):x.x(i)),L&&(L.fill(R.tooltipColor||(g?"#00FAD9":"#FF5072")),L.text(f(s.price)));const y=[];for(const e of d){const{middlePrice:i,rectangleHeight:n}=e,r=S({target:i}),o=H({minXLN10:T,maxXLN10:J,width:t,targetLN10:r}),l=P({maxHeight:g?C:F,gridAreaHeight:q,value:n});y.push(o,l+1)}const v=y.slice(),[j,X]=v;g?(v.push(r,a),v.push(r,q),v.push(j,q),v.push(j,X)):(v.unshift(j,q),v.unshift(r,q),v.unshift(r,a)),w&&(w.points(v),w.fill(g?R.leftLine||"#2c5b56":R.rightLine||"#7b3a48")),n.show()}}}},z=function({gridAreaHeight:t,gridAreaWidth:e,horizontalLineCount:n,verticalLineCount:r,color:o="#2A2A2D"}){return i((()=>{const i=[],l=t/(n+1),s=[],d=e/(r+1);for(let t=0;t<n;t++){const n=l*(t+1);i.push([0,n,e,n])}for(let e=0;e<r;e++){const i=d*(e+1);s.push([i,0,i,t])}return c.jsxs(c.Fragment,{children:[i.map(((t,e)=>c.jsx(a,{points:t,stroke:o,strokeWidth:1,lineCap:"round",lineJoin:"round",tension:1,listening:!1},e))),s.map(((t,e)=>c.jsx(a,{points:t,stroke:o,strokeWidth:1,lineCap:"round",lineJoin:"round",tension:1,listening:!1},e)))]})}),[t,e,n,r,o])}({gridAreaHeight:q,gridAreaWidth:t,horizontalLineCount:9,verticalLineCount:7,color:R.grid}),G=function({minXLN10:t,maxXLN10:e,labelCount:n,gridAreaHeight:r,gridAreaWidth:o,color:l="#606066"}){return i((()=>{const i=o/(n+1),d=[],g=[];for(let l=0;l<n;l++){const n=i/2+i*l;d.push({x:n,y:r+10.08+1,text:f(j({x:i*(l+1),width:o,minXLN10:t,maxXLN10:e}))});const a=i*(l+1);g.push([a,r+1,a,r+4+1])}return c.jsxs(c.Fragment,{children:[d.map(((t,e)=>c.jsx(s,{x:t.x,y:t.y,text:t.text,fontSize:14,fontFamily:"Manrope",fill:l,width:i,padding:0,align:"center",verticalAlign:"bottom",listening:!1},e))),g.map(((t,e)=>c.jsx(a,{points:t,stroke:l,strokeWidth:1,lineCap:"butt",lineJoin:"miter",tension:1,listening:!1},e)))]})}),[t,e,r,o,n])}({gridAreaHeight:q,gridAreaWidth:t,labelCount:7,minXLN10:T,maxXLN10:J,color:R.textColor}),Q=function({gridAreaHeight:t,gridAreaWidth:e,color:n="#606066"}){return i((()=>{const i=e/2;return c.jsx(a,{points:[i,0,i,t-1],stroke:n,strokeWidth:1,lineCap:"round",lineJoin:"round",tension:1,listening:!1})}),[t,e,n])}({gridAreaHeight:q,gridAreaWidth:t,color:R.midPriceLine}),{leftLine:E,rightLine:Y}=function({leftStatAreaPoints:t,rightStatAreaPoints:e,minXLN10:n,maxXLN10:r,maxLeftHeight:o,maxRightHeight:l,gridAreaWidth:s,gridAreaHeight:d,colorMap:g}){return{leftLine:i((()=>{if(t.length<1)return c.jsx(c.Fragment,{});const e=[];let i=d;for(const l of t){const{middlePrice:t,rectangleHeight:a}=l,g=S({target:t}),m=H({minXLN10:n,maxXLN10:r,width:s,targetLN10:g}),u=P({maxHeight:o,gridAreaHeight:d,value:a});e.push(m,u),u<i&&(i=u)}const l=e.slice(),[m,u]=l,h=l[l.length-1],p=l[l.length-2];return l.push(p,h),l.push(p,d),l.push(m,d),l.push(m,u),c.jsxs(c.Fragment,{children:[c.jsx(a,{points:l,closed:!0,listening:!1,lineCap:"round",lineJoin:"round",fillLinearGradientStartPoint:{x:0,y:d},fillLinearGradientEndPoint:{x:0,y:i},fillLinearGradientColorStops:g.leftBg}),c.jsx(a,{points:e,stroke:g.leftLine,strokeWidth:2,lineCap:"round",lineJoin:"round",listening:!1})]})}),[t,s,n,r,d,o]),rightLine:i((()=>{if(e.length<1)return c.jsx(c.Fragment,{});const t=[];let i=d;for(const o of e){const{middlePrice:e,rectangleHeight:a}=o,g=S({target:e}),m=H({minXLN10:n,maxXLN10:r,width:s,targetLN10:g}),u=P({maxHeight:l,gridAreaHeight:d,value:a});t.push(m,u),u<i&&(i=u)}const o=t.slice(),[m]=o;return o.unshift(m,d),o.unshift(s,d),c.jsxs(c.Fragment,{children:[c.jsx(a,{points:o,closed:!0,listening:!1,lineCap:"round",lineJoin:"round",fillLinearGradientStartPoint:{x:0,y:d},fillLinearGradientEndPoint:{x:0,y:i},fillLinearGradientColorStops:g.rightBg}),c.jsx(a,{points:t,stroke:g.rightLine,strokeWidth:2,lineCap:"round",lineJoin:"round",listening:!1})]})}),[e,s,n,r,d,l])}}({leftStatAreaPoints:M,rightStatAreaPoints:W,minXLN10:T,maxXLN10:J,maxLeftHeight:C,maxRightHeight:F,gridAreaWidth:t,gridAreaHeight:q,colorMap:R});return c.jsxs(d,{width:t,height:b,onMouseMove:D,onMouseOver:D,onMouseEnter:D,onMouseOut:()=>{const{current:t}=O;t&&t.hide()},children:[c.jsxs(g,{children:[c.jsx(m,{x:0,y:0,width:t,height:q,stroke:R.grid,strokeWidth:1}),z,G,E,Y,Q]}),c.jsxs(g,{ref:O,visible:!1,children:[c.jsx(a,{points:[],closed:!0,listening:!1,lineCap:"round",lineJoin:"round",id:"area"}),c.jsx(a,{points:[],strokeWidth:1,stroke:"#ff4f73",lineJoin:"round",lineCap:"round",dash:[4,6],id:"toolTipVertLine"}),c.jsx(u,{x:0,y:0,radius:5,fill:"#FF5072",stroke:"rgba(255, 80, 114, 0.3)",strokeWidth:12,id:"joinCircle"}),c.jsxs(h,{listening:!1,x:0,y:0,id:"priceTextLabel",children:[c.jsx(p,{fill:R.tooltipBg,id:"priceTextLabel-tag"}),c.jsx(s,{text:"-",fontSize:14,fontFamily:"Manrope",padding:2,fill:"#FF5072",id:"priceTextLabel-text"})]}),c.jsxs(h,{listening:!1,id:"tooltip",children:[c.jsx(p,{fill:R.tooltipBg,pointerDirection:"down",pointerWidth:15,pointerHeight:8,cornerRadius:8,lineJoin:"round",id:"tooltip-tag"}),c.jsx(s,{text:"",fontFamily:"Manrope",fontSize:12,lineHeight:17/12,padding:r,fill:"#FF5072",id:"tooltip-Text"})]})]})]})}const B=({width:t=834,height:e=462,baseTokenSymbol:i,quoteTokenSymbol:n,pmmModel:r,pmmParams:l,midPrice:a,notShowTipText:s,colorMap:d})=>c.jsxs(b,{children:[void 0!==l&&void 0!==a&&void 0!==r&&void 0!==a&&c.jsx(k,{width:t,height:e,params:l,midPrice:a,pmmModel:r,baseTokenSymbol:i,quoteTokenSymbol:n,colorMap:d}),s?"":c.jsxs(y,{children:["* ",o("pool.chart.liquidity-chart-tip",{baseTokenSymbol:i})]})]});export{B as default};