@dodoex/widgets 3.0.0-taiko.8 → 3.0.0-taiko.9

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 (83) hide show
  1. package/dist/cjs/components/AddTokenToMetamask.d.ts +9 -0
  2. package/dist/cjs/components/CardWidgets.d.ts +50 -0
  3. package/dist/cjs/components/LoadMore.d.ts +9 -0
  4. package/dist/cjs/components/Message/Countdown.d.ts +12 -0
  5. package/dist/cjs/components/Message/index.d.ts +2 -0
  6. package/dist/cjs/components/Select.d.ts +16 -0
  7. package/dist/cjs/components/SelectChain.d.ts +2 -1
  8. package/dist/cjs/components/Swap/SwapOrderHistory/PriceWithToggle.d.ts +11 -0
  9. package/dist/cjs/components/Swap/SwapOrderHistory/RoutingCard.d.ts +8 -0
  10. package/dist/cjs/components/Swap/SwapOrderHistory/RoutingVision.d.ts +26 -0
  11. package/dist/cjs/components/Swap/SwapOrderHistory/SameOrderCard.d.ts +6 -0
  12. package/dist/cjs/components/Swap/SwapOrderHistory/index.d.ts +5 -0
  13. package/dist/cjs/components/Swap/components/Dialog.d.ts +3 -1
  14. package/dist/cjs/components/Swap/components/TokenCard/TokenPickerDialog.d.ts +2 -1
  15. package/dist/cjs/components/Swap/components/TokenCard/index.d.ts +2 -1
  16. package/dist/cjs/components/Table.d.ts +7 -0
  17. package/dist/cjs/components/TokenPicker/index.d.ts +3 -1
  18. package/dist/cjs/helper-AEVpcN4Q.cjs +1 -0
  19. package/dist/cjs/helper-B5-dopL3.cjs +1 -0
  20. package/dist/cjs/helper-ZnKsWZwe.cjs +1 -0
  21. package/dist/cjs/hooks/Submission/useSubmissionStatusColor.d.ts +18 -0
  22. package/dist/cjs/hooks/Swap/useTradeSwapOrderList.d.ts +242 -0
  23. package/dist/cjs/hooks/contract/wallet.d.ts +9 -0
  24. package/dist/cjs/hooks/useMessageState.d.ts +17 -0
  25. package/dist/cjs/hooks/useRouteVisionData.d.ts +15 -0
  26. package/dist/cjs/index-B8At_46W.cjs +12 -0
  27. package/dist/cjs/index-BINVus8-.cjs +12 -0
  28. package/dist/cjs/index-BVDJ3tMF.cjs +78 -0
  29. package/dist/cjs/index-BkOUMfo-.cjs +31 -0
  30. package/dist/cjs/index-CNZgGvQd.cjs +78 -0
  31. package/dist/cjs/index-CVUcICkM.cjs +31 -0
  32. package/dist/cjs/index-Db-LwHYQ.cjs +78 -0
  33. package/dist/cjs/index-a33funYe.cjs +53 -0
  34. package/dist/cjs/index-sZhViBfs.cjs +12 -0
  35. package/dist/cjs/index.cjs +1 -1
  36. package/dist/cjs/index.d.ts +2 -0
  37. package/dist/cjs/locales/en-US.js +1 -1
  38. package/dist/cjs/locales/zh-CN.js +1 -1
  39. package/dist/cjs/utils/formatter.d.ts +4 -2
  40. package/dist/cjs/utils/time.d.ts +3 -0
  41. package/dist/cjs/widgets/PoolWidget/PoolOperate/index.d.ts +3 -2
  42. package/dist/components/AddTokenToMetamask.d.ts +9 -0
  43. package/dist/components/CardWidgets.d.ts +50 -0
  44. package/dist/components/LoadMore.d.ts +9 -0
  45. package/dist/components/Message/Countdown.d.ts +12 -0
  46. package/dist/components/Message/index.d.ts +2 -0
  47. package/dist/components/Select.d.ts +16 -0
  48. package/dist/components/SelectChain.d.ts +2 -1
  49. package/dist/components/Swap/SwapOrderHistory/PriceWithToggle.d.ts +11 -0
  50. package/dist/components/Swap/SwapOrderHistory/RoutingCard.d.ts +8 -0
  51. package/dist/components/Swap/SwapOrderHistory/RoutingVision.d.ts +26 -0
  52. package/dist/components/Swap/SwapOrderHistory/SameOrderCard.d.ts +6 -0
  53. package/dist/components/Swap/SwapOrderHistory/index.d.ts +5 -0
  54. package/dist/components/Swap/components/Dialog.d.ts +3 -1
  55. package/dist/components/Swap/components/TokenCard/TokenPickerDialog.d.ts +2 -1
  56. package/dist/components/Swap/components/TokenCard/index.d.ts +2 -1
  57. package/dist/components/Table.d.ts +7 -0
  58. package/dist/components/TokenPicker/index.d.ts +3 -1
  59. package/dist/helper-CPlSAYZj.js +1 -0
  60. package/dist/helper-DMZOVdOe.js +1 -0
  61. package/dist/helper-GyI_fKL4.js +1 -0
  62. package/dist/hooks/Submission/useSubmissionStatusColor.d.ts +18 -0
  63. package/dist/hooks/Swap/useTradeSwapOrderList.d.ts +242 -0
  64. package/dist/hooks/contract/wallet.d.ts +9 -0
  65. package/dist/hooks/useMessageState.d.ts +17 -0
  66. package/dist/hooks/useRouteVisionData.d.ts +15 -0
  67. package/dist/index-BfXWBgGk.js +31 -0
  68. package/dist/index-Chj0rE9p.js +78 -0
  69. package/dist/index-DA7GqWGm.js +53 -0
  70. package/dist/index-DGhFswSA.js +12 -0
  71. package/dist/index-Dj2wp0Y6.js +78 -0
  72. package/dist/index-DjoVE6wb.js +12 -0
  73. package/dist/index-RpeAOdf7.js +12 -0
  74. package/dist/index-W7Vt38od.js +31 -0
  75. package/dist/index-YXd3DB_m.js +78 -0
  76. package/dist/index.d.ts +2 -0
  77. package/dist/index.js +1 -1
  78. package/dist/locales/en-US.js +1 -1
  79. package/dist/locales/zh-CN.js +1 -1
  80. package/dist/utils/formatter.d.ts +4 -2
  81. package/dist/utils/time.d.ts +3 -0
  82. package/dist/widgets/PoolWidget/PoolOperate/index.d.ts +3 -2
  83. package/package.json +4 -2
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import { BoxProps } from '@dodoex/components';
3
+ import { TokenInfo } from '../hooks/Token';
4
+ export declare function AddTokenToMetamask({ token, size, sx, children, }: {
5
+ token: TokenInfo;
6
+ size?: 'small' | 'medium';
7
+ sx?: BoxProps['sx'];
8
+ children?: React.ReactNode;
9
+ }): JSX.Element;
@@ -0,0 +1,50 @@
1
+ /// <reference types="react" />
2
+ import { ChainId } from '@dodoex/api';
3
+ import { BoxProps } from '@dodoex/components';
4
+ import BigNumber from 'bignumber.js';
5
+ import { TokenInfo } from '../hooks/Token';
6
+ export declare function CardStatus({ isMobile, loading, empty, children, }: React.PropsWithChildren<{
7
+ isMobile: boolean;
8
+ loading: boolean;
9
+ empty: boolean;
10
+ }>): JSX.Element;
11
+ export default function FoldBtn({ show, onClick, }: {
12
+ show: boolean;
13
+ onClick: () => void;
14
+ }): JSX.Element;
15
+ export declare function TypeText({ color, type }: {
16
+ color: string;
17
+ type: string;
18
+ }): JSX.Element;
19
+ export declare function StatusAndTime({ isMobile, statusText, statusColor: statusColorProps, time, alphaColor, sx, }: {
20
+ isMobile: boolean;
21
+ statusText: string;
22
+ statusColor: string;
23
+ time?: string;
24
+ alphaColor?: number;
25
+ sx?: BoxProps['sx'];
26
+ }): JSX.Element;
27
+ export declare function ChainName({ chainId }: {
28
+ chainId: ChainId;
29
+ }): JSX.Element | null;
30
+ export declare function TokenAndAmount({ token, amount, showChain, hideLogo, canAddMetamask, sx, }: {
31
+ token: TokenInfo;
32
+ amount: string | BigNumber;
33
+ showChain?: boolean;
34
+ hideLogo?: boolean;
35
+ canAddMetamask?: boolean;
36
+ sx?: BoxProps['sx'];
37
+ }): JSX.Element;
38
+ export declare function TokenPairAndAmount({ baseToken, quoteToken, amount, sx, }: {
39
+ baseToken: TokenInfo;
40
+ quoteToken: TokenInfo;
41
+ amount: BigNumber;
42
+ sx?: BoxProps['sx'];
43
+ }): JSX.Element;
44
+ export declare function TokenPairOrTokenListAndAmount({ baseToken, quoteToken, baseAmount, quoteAmount, sx, }: {
45
+ baseToken: TokenInfo;
46
+ quoteToken: TokenInfo;
47
+ baseAmount: BigNumber;
48
+ quoteAmount: BigNumber | null;
49
+ sx?: BoxProps['sx'];
50
+ }): JSX.Element;
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import { BoxProps } from '@dodoex/components';
3
+ export default function LoadMore({ height, sx, onClick, hasMore, loading, }: {
4
+ height?: number | string;
5
+ sx?: BoxProps['sx'];
6
+ onClick: () => void;
7
+ hasMore?: boolean;
8
+ loading?: boolean;
9
+ }): JSX.Element | null;
@@ -0,0 +1,12 @@
1
+ import { BoxProps } from '@dodoex/components';
2
+ import React from 'react';
3
+ interface Props {
4
+ size: number;
5
+ color: string;
6
+ time: string;
7
+ strokeWidth?: number | string;
8
+ sx?: BoxProps['sx'];
9
+ }
10
+ declare function Countdown({ size, color, time, strokeWidth, sx }: Props): JSX.Element;
11
+ declare const _default: React.MemoExoticComponent<typeof Countdown>;
12
+ export default _default;
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export default function Message(): JSX.Element;
@@ -0,0 +1,16 @@
1
+ import { BoxProps } from '@dodoex/components';
2
+ import React from 'react';
3
+ export default function Select<V extends string | number = string>({ value, onChange, placeholder, options, sx, readOnly, valueOnlyIcon, }: {
4
+ value: V | undefined;
5
+ onChange: (value: V | undefined) => void;
6
+ placeholder?: string;
7
+ options: Array<{
8
+ logo?: React.ReactNode;
9
+ key: V;
10
+ value: string | React.ReactNode;
11
+ }>;
12
+ sx?: BoxProps['sx'];
13
+ buttonSx?: BoxProps['sx'];
14
+ readOnly?: boolean;
15
+ valueOnlyIcon?: boolean;
16
+ }): JSX.Element;
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import { BoxProps } from '@dodoex/components';
3
- export default function SelectChain({ chainId, setChainId, logoWidth, mobileLogoWidth, mainLogoWidth, mainMobileLogoWidth, notShowAllChain, sx, }: {
3
+ export default function SelectChain({ chainId, setChainId, logoWidth, mobileLogoWidth, mainLogoWidth, mainMobileLogoWidth, notShowAllChain, valueOnlyIcon, sx, }: {
4
4
  chainId: number | undefined;
5
5
  setChainId: (chainId: number | undefined) => void;
6
6
  logoWidth?: number;
@@ -8,5 +8,6 @@ export default function SelectChain({ chainId, setChainId, logoWidth, mobileLogo
8
8
  mainLogoWidth?: number;
9
9
  mainMobileLogoWidth?: number;
10
10
  notShowAllChain?: boolean;
11
+ valueOnlyIcon?: boolean;
11
12
  sx?: BoxProps['sx'];
12
13
  }): JSX.Element;
@@ -0,0 +1,11 @@
1
+ /// <reference types="react" />
2
+ import { BoxProps } from '@dodoex/components';
3
+ import { TokenInfo } from '../../../hooks/Token';
4
+ export declare function PriceWithToggle({ fromToken, toToken, fromTokenPrice, toTokenPrice, sx, children, }: {
5
+ fromToken: TokenInfo;
6
+ toToken: TokenInfo;
7
+ fromTokenPrice: string | null | undefined;
8
+ toTokenPrice: string | null | undefined;
9
+ sx?: BoxProps['sx'];
10
+ children?: React.ReactNode;
11
+ }): JSX.Element;
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ import { MidPathType } from '../../../hooks/useRouteVisionData';
3
+ import { TokenInfo } from '../../../hooks/Token';
4
+ export default function RoutingCard({ routing, fromTokenRaw, toTokenRaw, }: {
5
+ routing: MidPathType;
6
+ fromTokenRaw: TokenInfo;
7
+ toTokenRaw: TokenInfo;
8
+ }): JSX.Element;
@@ -0,0 +1,26 @@
1
+ /// <reference types="react" />
2
+ import { BoxProps } from '@dodoex/components';
3
+ import { TokenInfo } from '../../../hooks/Token';
4
+ import { MidPathType } from '../../../hooks/useRouteVisionData';
5
+ export declare function Dot({ sx }: {
6
+ sx?: BoxProps['sx'];
7
+ }): JSX.Element;
8
+ export declare function Triangle({ sx }: {
9
+ sx?: BoxProps['sx'];
10
+ }): JSX.Element;
11
+ export declare function DashedLine({ sx }: {
12
+ sx?: BoxProps['sx'];
13
+ }): JSX.Element;
14
+ interface Props {
15
+ routeData: MidPathType[];
16
+ fromTokenRaw: TokenInfo;
17
+ toTokenRaw: TokenInfo;
18
+ }
19
+ /**
20
+ * Path visualization
21
+ */
22
+ export declare function MobileRoutingVision({ routeData, fromTokenRaw, toTokenRaw, sx, }: Props & {
23
+ sx?: BoxProps['sx'];
24
+ }): JSX.Element;
25
+ export declare function PCRoutingVision({ routeData, fromTokenRaw, toTokenRaw, }: Props): JSX.Element;
26
+ export {};
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ import { useTradeSwapOrderList } from '../../../hooks/Swap/useTradeSwapOrderList';
3
+ export default function SameOrderCard({ data, isMobile, }: {
4
+ data: ReturnType<typeof useTradeSwapOrderList>['orderList'][0];
5
+ isMobile: boolean;
6
+ }): JSX.Element;
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ import { useTradeSwapOrderList } from '../../../hooks/Swap/useTradeSwapOrderList';
3
+ export default function SwapOrderHistory({ swapOrderListQuery: swapOrderListQueryProps, }: {
4
+ swapOrderListQuery?: ReturnType<typeof useTradeSwapOrderList>;
5
+ }): JSX.Element;
@@ -13,4 +13,6 @@ export interface DialogProps {
13
13
  height?: number | string;
14
14
  testId?: string;
15
15
  }
16
- export default function Dialog({ scope, ...props }: DialogProps): JSX.Element;
16
+ export default function Dialog({ scope, modal, ...props }: DialogProps & {
17
+ modal?: boolean;
18
+ }): JSX.Element;
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import { TokenPickerProps } from '../../../TokenPicker';
3
3
  import { DialogProps } from '../Dialog';
4
- export declare function TokenPickerDialog({ open, title, value, onClose, occupiedAddrs, occupiedChainId, onTokenChange, side, defaultLoadBalance, multiple, searchPlaceholder, searchOtherAddress, chainId, }: {
4
+ export declare function TokenPickerDialog({ open, title, value, onClose, occupiedAddrs, occupiedChainId, onTokenChange, side, defaultLoadBalance, multiple, searchPlaceholder, searchOtherAddress, chainId, modal, }: {
5
5
  open: boolean;
6
6
  title?: React.ReactNode | string;
7
7
  occupiedAddrs?: string[];
@@ -15,4 +15,5 @@ export declare function TokenPickerDialog({ open, title, value, onClose, occupie
15
15
  searchPlaceholder?: TokenPickerProps['searchPlaceholder'];
16
16
  searchOtherAddress?: TokenPickerProps['searchOtherAddress'];
17
17
  chainId?: TokenPickerProps['chainId'];
18
+ modal?: boolean;
18
19
  }): JSX.Element;
@@ -34,7 +34,8 @@ export interface TokenCardProps {
34
34
  chainId?: ChainId;
35
35
  hideToken?: boolean;
36
36
  checkLogBalance?: BalanceData;
37
+ notTokenPickerModal?: boolean;
37
38
  }
38
39
  export declare function CardPlus(): JSX.Element;
39
40
  export declare function CardPlusConnected(): JSX.Element;
40
- export declare function TokenCard({ sx, inputSx, amt, token, readOnly, showMaxBtn, canClickBalance, onMaxClick, fiatPriceTxt, occupiedAddrs, occupiedChainId, onInputFocus, onTokenClick, onInputChange, onTokenChange, side, showChainLogo, showChainName, defaultLoadBalance, overrideBalance, overrideBalanceLoading, balanceText, showPercentage, inputReadonlyTooltip, inputTypography, chainId, hideToken, checkLogBalance, }: TokenCardProps): JSX.Element;
41
+ export declare function TokenCard({ sx, inputSx, amt, token, readOnly, showMaxBtn, canClickBalance, onMaxClick, fiatPriceTxt, occupiedAddrs, occupiedChainId, onInputFocus, onTokenClick, onInputChange, onTokenChange, side, showChainLogo, showChainName, defaultLoadBalance, overrideBalance, overrideBalanceLoading, balanceText, showPercentage, inputReadonlyTooltip, inputTypography, chainId, hideToken, checkLogBalance, notTokenPickerModal, }: TokenCardProps): JSX.Element;
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ import { BoxProps } from '@dodoex/components';
3
+ export default function Table({ sx, children, hasMore, loadMore, loadMoreLoading, ...props }: BoxProps & {
4
+ hasMore?: boolean;
5
+ loadMore?: () => void;
6
+ loadMoreLoading?: boolean;
7
+ }): JSX.Element;
@@ -1,4 +1,5 @@
1
1
  /// <reference types="react" />
2
+ import { BoxProps } from '@dodoex/components';
2
3
  import type { TokenInfo } from '../../hooks/Token';
3
4
  import { ChainId } from '@dodoex/api';
4
5
  export interface TokenPickerProps {
@@ -20,5 +21,6 @@ export interface TokenPickerProps {
20
21
  searchPlaceholder?: string;
21
22
  /** like search pool address */
22
23
  searchOtherAddress?: (address: string) => Promise<JSX.Element | null>;
24
+ sx?: BoxProps['sx'];
23
25
  }
24
- export default function TokenPicker({ chainId, value, onChange, occupiedAddrs, occupiedChainId, hiddenAddrs, showAddrs, visible, side, defaultLoadBalance, multiple, searchPlaceholder, searchOtherAddress, }: TokenPickerProps): JSX.Element;
26
+ export default function TokenPicker({ chainId, value, onChange, occupiedAddrs, occupiedChainId, hiddenAddrs, showAddrs, visible, side, defaultLoadBalance, multiple, searchPlaceholder, searchOtherAddress, sx, }: TokenPickerProps): JSX.Element;
@@ -0,0 +1 @@
1
+ "use strict";var e=require("@lingui/core"),t=require("bignumber.js"),i=require("./index-a33funYe.cjs");function o(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 r=i.getPriceDepth(o),n=r.baseAmount,l=r.quoteAmount,{isBuy:s}=r;return{side:s?"ask":"bid",vert:s?n:l,base:n,quote:l}}function n(e,i=1){return new t(i).div(e/2)}exports.baseZoomMultiples=1,exports.beforePriceImpactEffect=function({currentBaseMinAndZoomMultiples:e,targetPrice:i,midPrice:o,width:r}){const{baseMin:n,zoomMultiples:l}=e,s=new t(Math.log10(n.div(o).toNumber())),u=s.plus(2*l),a=new t(o.multipliedBy(10**u.toNumber()));if(i.gte(n)&&i.lte(a)){return{isSkip:!0,targetX:new t(Math.log10(i.div(o).toNumber())).minus(s).div(2*l).multipliedBy(r).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(r).toNumber(),baseMin:m,zoomMultiples:1}}return{isSkip:!1,targetX:-1,baseMin:new t(0),zoomMultiples:1}},exports.chartOffsetYBCToolTip=18,exports.chartT=function(t,i){switch(t){case"depth-chart.tips.buy":return e.i18n._({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.i18n._({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.i18n._({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.i18n._({id:"TaScUS",message:"Users sell {0} amount:",values:{0:i.symbol}});case"pool.chart.price-impact":return e.i18n._({id:"I0LXan",message:"Price Impact: {0}",values:{0:i.amount}});case"pool.chart.sell-amount":return e.i18n._({id:"F2vX4t",message:"Users buy {0} amount:",values:{0:i.symbol}});case"pool.create.disabled-token-amount":return e.i18n._({id:"5QDjef",message:"The token amount is calculated by initial price."});case"pool.create.set-pool.emulator.title":return e.i18n._({id:"FQfStS",message:"Emulator"});case"pool.create.set-pool.emulator.title.question":return e.i18n._({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.i18n._({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.i18n._({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.i18n._({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}`)}},exports.colorRgb=o,exports.computeBaseAfterZoom=function({midPrice:e,zoomMultiples:t}){return e.multipliedBy(10**-t)},exports.computeBaseMinByDistance=function({dragDistance:e,prevBaseMin:i,chartWidth:o,zoomMultiples:r}){const l=n(o,r);return e>0?i.multipliedBy(1-l.multipliedBy(e).toNumber()):i.multipliedBy(10**l.multipliedBy(new t(e).abs()).plus(0).toNumber())},exports.computeBaseVert=function({midPrice:e,q:i,q0:o,pmmModel:r}){let n=t.maximum(i,o,r.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)}},exports.computeTargetXByTargetPrice=function({type:e,targetPrice:i,midPrice:o,width:r}){if("sell"===e){return{zoomMultiples:new t(Math.log10(i.div(o).toNumber())).minus(0).div(3/4).abs(),targetX:r/2*(3/4)+r/2}}const n=new t(Math.log10(i.div(o).toNumber()));return{zoomMultiples:new t(0).minus(n).div(3/4).abs(),targetX:r/2*(1/4)}},exports.computeXPortion=n,exports.computeZoomMultiplesWhenZoom=function({prevZoomMultiples:e,zoomIn:t}){return!t&&e<=.1?e:t?e+.1:e-.1},exports.evalPoint=r,exports.labelPadding=12,exports.updateTooltip=function({tooltip:e,x:l,chartWidth:s,chartHeight:u,buyBaseVert:a,sellBaseVert:m,pmmModel:p,midPrice:c,baseTokenSymbol:d,quoteTokenSymbol:h,t:b,baseMinAndZoomMultiples:f,isHover:g,color:y,leftColor:x,rightColor:T}){const{zoomMultiples:v,baseMin:w}=f,B=n(s,v),M=a.div(u),k=m.div(u),q=2*v,S=w.multipliedBy(10**B.multipliedBy(l).toNumber());let N=new t(Math.log(c.div(w).toNumber())/Math.log(10));N=t.minimum(q,N),N=t.maximum(0,N);const P=N.div(B),X=r({val:S,model:p,midPrice:c});if(X.vert.isNaN())return;const A=S.lt(c);let O=u-X.vert.div(M).toNumber();A||(O=u-X.vert.div(k).toNumber());const _=i.formatShortNumber(S),z=i.formatShortNumber(X.vert),D=S.minus(c).abs().div(c).multipliedBy(100).toFixed(2),$=P.toNumber(),H=e.findOne("#toolTipVertLine"),L=e.findOne("#toolTipHoriLine"),U=e.findOne("#joinCircle"),V=e.findOne("#toolTip"),W=e.findOne("#priceTextLabel"),Y=e.findOne("#slippageTextLabel");if(!V)return;V.x(l),V.y(O-5-6);const Z=V.getText(),I=V.getTag();let j="ask"===X.side?i.formatShortNumber(X.quote):i.formatShortNumber(X.base);const C=p.k.lte(0);C&&(j=z);const F=i.formatShortNumber(c),Q={amountText:z,baseTokenSymbol:d,oppositeAmountText:j,quoteTokenSymbol:h,priceText:C?F:_,slippageText:`${A?"-":"+"}${D}`};if(P.minus(4).lte(l)&&P.plus(2).gte(l)&&g)Z.text(b("depth-chart.tips.mid-price",{amountText:1,baseTokenSymbol:d,oppositeAmountText:F,quoteTokenSymbol:h})),V.x($),V.y(u/2),null==H||H.hide(),null==L||L.hide(),null==U||U.hide(),null==W||W.hide(),null==Y||Y.hide();else{Z.text(A?b("depth-chart.tips.buy",{amountText:j,baseTokenSymbol:d,oppositeAmountText:z,quoteTokenSymbol:h,priceText:C?F:_,slippageText:`${A?"-":"+"}${D}`}):b("depth-chart.tips.sell",Q));const e=y||(A?"#55f6db":"#ff4f73"),t=A?x||"#55f6db":T||"#ff4f73";Z.fill(e),V.width()/2>l?(I.pointerDirection("left"),I.pointerHeight(15),I.pointerWidth(8),V.offsetX(-11),V.offsetY(-11)):V.width()/2+l>s?(I.pointerDirection("right"),I.pointerHeight(15),I.pointerWidth(8),V.offsetX(11),V.offsetY(-11)):(I.pointerDirection("down"),I.pointerHeight(8),I.pointerWidth(15),V.offsetX(0),V.offsetY(0)),null==H||H.points([l,u,l,O]),null==H||H.stroke(t),null==L||L.points(A?[l,O,$,O]:[$,O,l,O]),null==L||L.stroke(t),null==U||U.x(l),null==U||U.y(O),null==U||U.fill(A?x||"rgb(86, 246, 218)":T||"#FF5072"),null==U||U.stroke(A?x?`rgba(${o(x)}, 0.4)`:"rgba(86, 246, 218, 0.3)":T?`rgba(${o(T)}, 0.4)`:"rgba(255, 80, 114, 0.3)"),W&&(W.x(l),W.y(u),W.offsetX(W.width()/2),W.x()-W.width()/2<0?W.x(W.width()/2):W.x()+W.width()/2>s?W.x(s-W.width()/2):W.x(l));const i=null==W?void 0:W.findOne("#priceTextLabel-text");i&&(i.fill(e),i.text(_)),Y&&(Y.x(A?l+($-l)/2:l-(l-$)/2),Y.y(O),Y.offsetY(Y.height()/2),Y.offsetX(Y.width()/2));const r=null==Y?void 0:Y.findOne("#slippageTextLabel-text");r&&(r.fill(e),r.text(`${A?"-":"+"}${D}%`)),null==H||H.show(),null==L||L.show(),null==U||U.show(),null==W||W.show(),null==Y||Y.show()}e.show()};
@@ -0,0 +1 @@
1
+ "use strict";var e=require("@lingui/core"),t=require("bignumber.js"),i=require("./index-BkOUMfo-.cjs");function o(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 r=i.getPriceDepth(o),n=r.baseAmount,l=r.quoteAmount,{isBuy:s}=r;return{side:s?"ask":"bid",vert:s?n:l,base:n,quote:l}}function n(e,i=1){return new t(i).div(e/2)}exports.baseZoomMultiples=1,exports.beforePriceImpactEffect=function({currentBaseMinAndZoomMultiples:e,targetPrice:i,midPrice:o,width:r}){const{baseMin:n,zoomMultiples:l}=e,s=new t(Math.log10(n.div(o).toNumber())),u=s.plus(2*l),a=new t(o.multipliedBy(10**u.toNumber()));if(i.gte(n)&&i.lte(a)){return{isSkip:!0,targetX:new t(Math.log10(i.div(o).toNumber())).minus(s).div(2*l).multipliedBy(r).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(r).toNumber(),baseMin:m,zoomMultiples:1}}return{isSkip:!1,targetX:-1,baseMin:new t(0),zoomMultiples:1}},exports.chartOffsetYBCToolTip=18,exports.chartT=function(t,i){switch(t){case"depth-chart.tips.buy":return e.i18n._({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.i18n._({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.i18n._({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.i18n._({id:"TaScUS",message:"Users sell {0} amount:",values:{0:i.symbol}});case"pool.chart.price-impact":return e.i18n._({id:"I0LXan",message:"Price Impact: {0}",values:{0:i.amount}});case"pool.chart.sell-amount":return e.i18n._({id:"F2vX4t",message:"Users buy {0} amount:",values:{0:i.symbol}});case"pool.create.disabled-token-amount":return e.i18n._({id:"5QDjef",message:"The token amount is calculated by initial price."});case"pool.create.set-pool.emulator.title":return e.i18n._({id:"FQfStS",message:"Emulator"});case"pool.create.set-pool.emulator.title.question":return e.i18n._({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.i18n._({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.i18n._({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.i18n._({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}`)}},exports.colorRgb=o,exports.computeBaseAfterZoom=function({midPrice:e,zoomMultiples:t}){return e.multipliedBy(10**-t)},exports.computeBaseMinByDistance=function({dragDistance:e,prevBaseMin:i,chartWidth:o,zoomMultiples:r}){const l=n(o,r);return e>0?i.multipliedBy(1-l.multipliedBy(e).toNumber()):i.multipliedBy(10**l.multipliedBy(new t(e).abs()).plus(0).toNumber())},exports.computeBaseVert=function({midPrice:e,q:i,q0:o,pmmModel:r}){let n=t.maximum(i,o,r.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)}},exports.computeTargetXByTargetPrice=function({type:e,targetPrice:i,midPrice:o,width:r}){if("sell"===e){return{zoomMultiples:new t(Math.log10(i.div(o).toNumber())).minus(0).div(3/4).abs(),targetX:r/2*(3/4)+r/2}}const n=new t(Math.log10(i.div(o).toNumber()));return{zoomMultiples:new t(0).minus(n).div(3/4).abs(),targetX:r/2*(1/4)}},exports.computeXPortion=n,exports.computeZoomMultiplesWhenZoom=function({prevZoomMultiples:e,zoomIn:t}){return!t&&e<=.1?e:t?e+.1:e-.1},exports.evalPoint=r,exports.labelPadding=12,exports.updateTooltip=function({tooltip:e,x:l,chartWidth:s,chartHeight:u,buyBaseVert:a,sellBaseVert:m,pmmModel:p,midPrice:c,baseTokenSymbol:d,quoteTokenSymbol:h,t:b,baseMinAndZoomMultiples:f,isHover:g,color:y,leftColor:x,rightColor:T}){const{zoomMultiples:v,baseMin:w}=f,B=n(s,v),M=a.div(u),k=m.div(u),q=2*v,S=w.multipliedBy(10**B.multipliedBy(l).toNumber());let N=new t(Math.log(c.div(w).toNumber())/Math.log(10));N=t.minimum(q,N),N=t.maximum(0,N);const P=N.div(B),X=r({val:S,model:p,midPrice:c});if(X.vert.isNaN())return;const A=S.lt(c);let O=u-X.vert.div(M).toNumber();A||(O=u-X.vert.div(k).toNumber());const _=i.formatShortNumber(S),z=i.formatShortNumber(X.vert),D=S.minus(c).abs().div(c).multipliedBy(100).toFixed(2),$=P.toNumber(),H=e.findOne("#toolTipVertLine"),L=e.findOne("#toolTipHoriLine"),U=e.findOne("#joinCircle"),V=e.findOne("#toolTip"),W=e.findOne("#priceTextLabel"),Y=e.findOne("#slippageTextLabel");if(!V)return;V.x(l),V.y(O-5-6);const Z=V.getText(),I=V.getTag();let j="ask"===X.side?i.formatShortNumber(X.quote):i.formatShortNumber(X.base);const C=p.k.lte(0);C&&(j=z);const F=i.formatShortNumber(c),Q={amountText:z,baseTokenSymbol:d,oppositeAmountText:j,quoteTokenSymbol:h,priceText:C?F:_,slippageText:`${A?"-":"+"}${D}`};if(P.minus(4).lte(l)&&P.plus(2).gte(l)&&g)Z.text(b("depth-chart.tips.mid-price",{amountText:1,baseTokenSymbol:d,oppositeAmountText:F,quoteTokenSymbol:h})),V.x($),V.y(u/2),null==H||H.hide(),null==L||L.hide(),null==U||U.hide(),null==W||W.hide(),null==Y||Y.hide();else{Z.text(A?b("depth-chart.tips.buy",{amountText:j,baseTokenSymbol:d,oppositeAmountText:z,quoteTokenSymbol:h,priceText:C?F:_,slippageText:`${A?"-":"+"}${D}`}):b("depth-chart.tips.sell",Q));const e=y||(A?"#55f6db":"#ff4f73"),t=A?x||"#55f6db":T||"#ff4f73";Z.fill(e),V.width()/2>l?(I.pointerDirection("left"),I.pointerHeight(15),I.pointerWidth(8),V.offsetX(-11),V.offsetY(-11)):V.width()/2+l>s?(I.pointerDirection("right"),I.pointerHeight(15),I.pointerWidth(8),V.offsetX(11),V.offsetY(-11)):(I.pointerDirection("down"),I.pointerHeight(8),I.pointerWidth(15),V.offsetX(0),V.offsetY(0)),null==H||H.points([l,u,l,O]),null==H||H.stroke(t),null==L||L.points(A?[l,O,$,O]:[$,O,l,O]),null==L||L.stroke(t),null==U||U.x(l),null==U||U.y(O),null==U||U.fill(A?x||"rgb(86, 246, 218)":T||"#FF5072"),null==U||U.stroke(A?x?`rgba(${o(x)}, 0.4)`:"rgba(86, 246, 218, 0.3)":T?`rgba(${o(T)}, 0.4)`:"rgba(255, 80, 114, 0.3)"),W&&(W.x(l),W.y(u),W.offsetX(W.width()/2),W.x()-W.width()/2<0?W.x(W.width()/2):W.x()+W.width()/2>s?W.x(s-W.width()/2):W.x(l));const i=null==W?void 0:W.findOne("#priceTextLabel-text");i&&(i.fill(e),i.text(_)),Y&&(Y.x(A?l+($-l)/2:l-(l-$)/2),Y.y(O),Y.offsetY(Y.height()/2),Y.offsetX(Y.width()/2));const r=null==Y?void 0:Y.findOne("#slippageTextLabel-text");r&&(r.fill(e),r.text(`${A?"-":"+"}${D}%`)),null==H||H.show(),null==L||L.show(),null==U||U.show(),null==W||W.show(),null==Y||Y.show()}e.show()};
@@ -0,0 +1 @@
1
+ "use strict";var e=require("@lingui/core"),t=require("bignumber.js"),i=require("./index-CVUcICkM.cjs");function o(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 r=i.getPriceDepth(o),n=r.baseAmount,l=r.quoteAmount,{isBuy:s}=r;return{side:s?"ask":"bid",vert:s?n:l,base:n,quote:l}}function n(e,i=1){return new t(i).div(e/2)}exports.baseZoomMultiples=1,exports.beforePriceImpactEffect=function({currentBaseMinAndZoomMultiples:e,targetPrice:i,midPrice:o,width:r}){const{baseMin:n,zoomMultiples:l}=e,s=new t(Math.log10(n.div(o).toNumber())),u=s.plus(2*l),a=new t(o.multipliedBy(10**u.toNumber()));if(i.gte(n)&&i.lte(a)){return{isSkip:!0,targetX:new t(Math.log10(i.div(o).toNumber())).minus(s).div(2*l).multipliedBy(r).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(r).toNumber(),baseMin:m,zoomMultiples:1}}return{isSkip:!1,targetX:-1,baseMin:new t(0),zoomMultiples:1}},exports.chartOffsetYBCToolTip=18,exports.chartT=function(t,i){switch(t){case"depth-chart.tips.buy":return e.i18n._({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.i18n._({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.i18n._({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.i18n._({id:"TaScUS",message:"Users sell {0} amount:",values:{0:i.symbol}});case"pool.chart.price-impact":return e.i18n._({id:"I0LXan",message:"Price Impact: {0}",values:{0:i.amount}});case"pool.chart.sell-amount":return e.i18n._({id:"F2vX4t",message:"Users buy {0} amount:",values:{0:i.symbol}});case"pool.create.disabled-token-amount":return e.i18n._({id:"5QDjef",message:"The token amount is calculated by initial price."});case"pool.create.set-pool.emulator.title":return e.i18n._({id:"FQfStS",message:"Emulator"});case"pool.create.set-pool.emulator.title.question":return e.i18n._({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.i18n._({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.i18n._({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.i18n._({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}`)}},exports.colorRgb=o,exports.computeBaseAfterZoom=function({midPrice:e,zoomMultiples:t}){return e.multipliedBy(10**-t)},exports.computeBaseMinByDistance=function({dragDistance:e,prevBaseMin:i,chartWidth:o,zoomMultiples:r}){const l=n(o,r);return e>0?i.multipliedBy(1-l.multipliedBy(e).toNumber()):i.multipliedBy(10**l.multipliedBy(new t(e).abs()).plus(0).toNumber())},exports.computeBaseVert=function({midPrice:e,q:i,q0:o,pmmModel:r}){let n=t.maximum(i,o,r.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)}},exports.computeTargetXByTargetPrice=function({type:e,targetPrice:i,midPrice:o,width:r}){if("sell"===e){return{zoomMultiples:new t(Math.log10(i.div(o).toNumber())).minus(0).div(3/4).abs(),targetX:r/2*(3/4)+r/2}}const n=new t(Math.log10(i.div(o).toNumber()));return{zoomMultiples:new t(0).minus(n).div(3/4).abs(),targetX:r/2*(1/4)}},exports.computeXPortion=n,exports.computeZoomMultiplesWhenZoom=function({prevZoomMultiples:e,zoomIn:t}){return!t&&e<=.1?e:t?e+.1:e-.1},exports.evalPoint=r,exports.labelPadding=12,exports.updateTooltip=function({tooltip:e,x:l,chartWidth:s,chartHeight:u,buyBaseVert:a,sellBaseVert:m,pmmModel:p,midPrice:c,baseTokenSymbol:d,quoteTokenSymbol:h,t:b,baseMinAndZoomMultiples:f,isHover:g,color:y,leftColor:x,rightColor:T}){const{zoomMultiples:v,baseMin:w}=f,B=n(s,v),M=a.div(u),k=m.div(u),q=2*v,S=w.multipliedBy(10**B.multipliedBy(l).toNumber());let N=new t(Math.log(c.div(w).toNumber())/Math.log(10));N=t.minimum(q,N),N=t.maximum(0,N);const P=N.div(B),X=r({val:S,model:p,midPrice:c});if(X.vert.isNaN())return;const A=S.lt(c);let O=u-X.vert.div(M).toNumber();A||(O=u-X.vert.div(k).toNumber());const _=i.formatShortNumber(S),z=i.formatShortNumber(X.vert),D=S.minus(c).abs().div(c).multipliedBy(100).toFixed(2),$=P.toNumber(),H=e.findOne("#toolTipVertLine"),L=e.findOne("#toolTipHoriLine"),U=e.findOne("#joinCircle"),V=e.findOne("#toolTip"),W=e.findOne("#priceTextLabel"),Y=e.findOne("#slippageTextLabel");if(!V)return;V.x(l),V.y(O-5-6);const Z=V.getText(),I=V.getTag();let j="ask"===X.side?i.formatShortNumber(X.quote):i.formatShortNumber(X.base);const C=p.k.lte(0);C&&(j=z);const F=i.formatShortNumber(c),Q={amountText:z,baseTokenSymbol:d,oppositeAmountText:j,quoteTokenSymbol:h,priceText:C?F:_,slippageText:`${A?"-":"+"}${D}`};if(P.minus(4).lte(l)&&P.plus(2).gte(l)&&g)Z.text(b("depth-chart.tips.mid-price",{amountText:1,baseTokenSymbol:d,oppositeAmountText:F,quoteTokenSymbol:h})),V.x($),V.y(u/2),null==H||H.hide(),null==L||L.hide(),null==U||U.hide(),null==W||W.hide(),null==Y||Y.hide();else{Z.text(A?b("depth-chart.tips.buy",{amountText:j,baseTokenSymbol:d,oppositeAmountText:z,quoteTokenSymbol:h,priceText:C?F:_,slippageText:`${A?"-":"+"}${D}`}):b("depth-chart.tips.sell",Q));const e=y||(A?"#55f6db":"#ff4f73"),t=A?x||"#55f6db":T||"#ff4f73";Z.fill(e),V.width()/2>l?(I.pointerDirection("left"),I.pointerHeight(15),I.pointerWidth(8),V.offsetX(-11),V.offsetY(-11)):V.width()/2+l>s?(I.pointerDirection("right"),I.pointerHeight(15),I.pointerWidth(8),V.offsetX(11),V.offsetY(-11)):(I.pointerDirection("down"),I.pointerHeight(8),I.pointerWidth(15),V.offsetX(0),V.offsetY(0)),null==H||H.points([l,u,l,O]),null==H||H.stroke(t),null==L||L.points(A?[l,O,$,O]:[$,O,l,O]),null==L||L.stroke(t),null==U||U.x(l),null==U||U.y(O),null==U||U.fill(A?x||"rgb(86, 246, 218)":T||"#FF5072"),null==U||U.stroke(A?x?`rgba(${o(x)}, 0.4)`:"rgba(86, 246, 218, 0.3)":T?`rgba(${o(T)}, 0.4)`:"rgba(255, 80, 114, 0.3)"),W&&(W.x(l),W.y(u),W.offsetX(W.width()/2),W.x()-W.width()/2<0?W.x(W.width()/2):W.x()+W.width()/2>s?W.x(s-W.width()/2):W.x(l));const i=null==W?void 0:W.findOne("#priceTextLabel-text");i&&(i.fill(e),i.text(_)),Y&&(Y.x(A?l+($-l)/2:l-(l-$)/2),Y.y(O),Y.offsetY(Y.height()/2),Y.offsetX(Y.width()/2));const r=null==Y?void 0:Y.findOne("#slippageTextLabel-text");r&&(r.fill(e),r.text(`${A?"-":"+"}${D}%`)),null==H||H.show(),null==L||L.show(),null==U||U.show(),null==W||W.show(),null==Y||Y.show()}e.show()};
@@ -0,0 +1,18 @@
1
+ export declare enum StateText {
2
+ Running = "pending",
3
+ Success = "success",
4
+ Failed = "failed",
5
+ /** Accelerated or canceled tx warning handling */
6
+ Warning = "reset"
7
+ }
8
+ export declare function useSubmissionStatusColor({ status, stateTextMap, }: {
9
+ status: string | number;
10
+ stateTextMap?: {
11
+ [key: string | number]: StateText;
12
+ };
13
+ }): {
14
+ state: StateText;
15
+ statusText: string;
16
+ statusColor: string;
17
+ statusAlphaColor: number | undefined;
18
+ };
@@ -0,0 +1,242 @@
1
+ import BigNumber from 'bignumber.js';
2
+ import { TokenInfo } from '../Token';
3
+ export declare function useTradeSwapOrderList({ account, chainId, limit, }: {
4
+ account: string | undefined;
5
+ chainId?: number;
6
+ limit?: number;
7
+ }): {
8
+ orderList: {
9
+ hash: string;
10
+ fromToken: TokenInfo;
11
+ toToken: TokenInfo;
12
+ fromAmount: BigNumber | null;
13
+ toAmount: string;
14
+ minAmount: string;
15
+ fromTokenPrice: string;
16
+ toTokenPrice: string;
17
+ createdAt: string;
18
+ routeData: any;
19
+ safeTxHash: string | undefined;
20
+ safeTxUrl: string;
21
+ status: string;
22
+ transactionHash: string;
23
+ }[];
24
+ data: import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").A<import("@dodoex/api/dist/gql/graphql").FetchUserSwapOrderHistoriesQuery, unknown>;
25
+ error: Error;
26
+ isError: true;
27
+ isPending: false;
28
+ isLoading: false;
29
+ isLoadingError: false;
30
+ isRefetchError: true;
31
+ isSuccess: false;
32
+ status: "error";
33
+ fetchNextPage: (options?: import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").a3 | undefined) => Promise<import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").am<import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").A<import("@dodoex/api/dist/gql/graphql").FetchUserSwapOrderHistoriesQuery, unknown>, Error>>;
34
+ fetchPreviousPage: (options?: import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").a4 | undefined) => Promise<import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").am<import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").A<import("@dodoex/api/dist/gql/graphql").FetchUserSwapOrderHistoriesQuery, unknown>, Error>>;
35
+ hasNextPage: boolean;
36
+ hasPreviousPage: boolean;
37
+ isFetchingNextPage: boolean;
38
+ isFetchingPreviousPage: boolean;
39
+ dataUpdatedAt: number;
40
+ errorUpdatedAt: number;
41
+ failureCount: number;
42
+ failureReason: Error | null;
43
+ errorUpdateCount: number;
44
+ isFetched: boolean;
45
+ isFetchedAfterMount: boolean;
46
+ isFetching: boolean;
47
+ isInitialLoading: boolean;
48
+ isPaused: boolean;
49
+ isPlaceholderData: boolean;
50
+ isRefetching: boolean;
51
+ isStale: boolean;
52
+ refetch: (options?: import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa")._ | undefined) => Promise<import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").ae<import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").A<import("@dodoex/api/dist/gql/graphql").FetchUserSwapOrderHistoriesQuery, unknown>, Error>>;
53
+ fetchStatus: import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").a6;
54
+ } | {
55
+ orderList: {
56
+ hash: string;
57
+ fromToken: TokenInfo;
58
+ toToken: TokenInfo;
59
+ fromAmount: BigNumber | null;
60
+ toAmount: string;
61
+ minAmount: string;
62
+ fromTokenPrice: string;
63
+ toTokenPrice: string;
64
+ createdAt: string;
65
+ routeData: any;
66
+ safeTxHash: string | undefined;
67
+ safeTxUrl: string;
68
+ status: string;
69
+ transactionHash: string;
70
+ }[];
71
+ data: import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").A<import("@dodoex/api/dist/gql/graphql").FetchUserSwapOrderHistoriesQuery, unknown>;
72
+ error: null;
73
+ isError: false;
74
+ isPending: false;
75
+ isLoading: false;
76
+ isLoadingError: false;
77
+ isRefetchError: false;
78
+ isSuccess: true;
79
+ status: "success";
80
+ fetchNextPage: (options?: import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").a3 | undefined) => Promise<import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").am<import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").A<import("@dodoex/api/dist/gql/graphql").FetchUserSwapOrderHistoriesQuery, unknown>, Error>>;
81
+ fetchPreviousPage: (options?: import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").a4 | undefined) => Promise<import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").am<import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").A<import("@dodoex/api/dist/gql/graphql").FetchUserSwapOrderHistoriesQuery, unknown>, Error>>;
82
+ hasNextPage: boolean;
83
+ hasPreviousPage: boolean;
84
+ isFetchingNextPage: boolean;
85
+ isFetchingPreviousPage: boolean;
86
+ dataUpdatedAt: number;
87
+ errorUpdatedAt: number;
88
+ failureCount: number;
89
+ failureReason: Error | null;
90
+ errorUpdateCount: number;
91
+ isFetched: boolean;
92
+ isFetchedAfterMount: boolean;
93
+ isFetching: boolean;
94
+ isInitialLoading: boolean;
95
+ isPaused: boolean;
96
+ isPlaceholderData: boolean;
97
+ isRefetching: boolean;
98
+ isStale: boolean;
99
+ refetch: (options?: import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa")._ | undefined) => Promise<import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").ae<import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").A<import("@dodoex/api/dist/gql/graphql").FetchUserSwapOrderHistoriesQuery, unknown>, Error>>;
100
+ fetchStatus: import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").a6;
101
+ } | {
102
+ orderList: {
103
+ hash: string;
104
+ fromToken: TokenInfo;
105
+ toToken: TokenInfo;
106
+ fromAmount: BigNumber | null;
107
+ toAmount: string;
108
+ minAmount: string;
109
+ fromTokenPrice: string;
110
+ toTokenPrice: string;
111
+ createdAt: string;
112
+ routeData: any;
113
+ safeTxHash: string | undefined;
114
+ safeTxUrl: string;
115
+ status: string;
116
+ transactionHash: string;
117
+ }[];
118
+ data: undefined;
119
+ error: Error;
120
+ isError: true;
121
+ isPending: false;
122
+ isLoading: false;
123
+ isLoadingError: true;
124
+ isRefetchError: false;
125
+ isSuccess: false;
126
+ status: "error";
127
+ fetchNextPage: (options?: import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").a3 | undefined) => Promise<import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").am<import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").A<import("@dodoex/api/dist/gql/graphql").FetchUserSwapOrderHistoriesQuery, unknown>, Error>>;
128
+ fetchPreviousPage: (options?: import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").a4 | undefined) => Promise<import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").am<import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").A<import("@dodoex/api/dist/gql/graphql").FetchUserSwapOrderHistoriesQuery, unknown>, Error>>;
129
+ hasNextPage: boolean;
130
+ hasPreviousPage: boolean;
131
+ isFetchingNextPage: boolean;
132
+ isFetchingPreviousPage: boolean;
133
+ dataUpdatedAt: number;
134
+ errorUpdatedAt: number;
135
+ failureCount: number;
136
+ failureReason: Error | null;
137
+ errorUpdateCount: number;
138
+ isFetched: boolean;
139
+ isFetchedAfterMount: boolean;
140
+ isFetching: boolean;
141
+ isInitialLoading: boolean;
142
+ isPaused: boolean;
143
+ isPlaceholderData: boolean;
144
+ isRefetching: boolean;
145
+ isStale: boolean;
146
+ refetch: (options?: import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa")._ | undefined) => Promise<import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").ae<import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").A<import("@dodoex/api/dist/gql/graphql").FetchUserSwapOrderHistoriesQuery, unknown>, Error>>;
147
+ fetchStatus: import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").a6;
148
+ } | {
149
+ orderList: {
150
+ hash: string;
151
+ fromToken: TokenInfo;
152
+ toToken: TokenInfo;
153
+ fromAmount: BigNumber | null;
154
+ toAmount: string;
155
+ minAmount: string;
156
+ fromTokenPrice: string;
157
+ toTokenPrice: string;
158
+ createdAt: string;
159
+ routeData: any;
160
+ safeTxHash: string | undefined;
161
+ safeTxUrl: string;
162
+ status: string;
163
+ transactionHash: string;
164
+ }[];
165
+ data: undefined;
166
+ error: null;
167
+ isError: false;
168
+ isPending: true;
169
+ isLoading: true;
170
+ isLoadingError: false;
171
+ isRefetchError: false;
172
+ isSuccess: false;
173
+ status: "pending";
174
+ fetchNextPage: (options?: import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").a3 | undefined) => Promise<import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").am<import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").A<import("@dodoex/api/dist/gql/graphql").FetchUserSwapOrderHistoriesQuery, unknown>, Error>>;
175
+ fetchPreviousPage: (options?: import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").a4 | undefined) => Promise<import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").am<import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").A<import("@dodoex/api/dist/gql/graphql").FetchUserSwapOrderHistoriesQuery, unknown>, Error>>;
176
+ hasNextPage: boolean;
177
+ hasPreviousPage: boolean;
178
+ isFetchingNextPage: boolean;
179
+ isFetchingPreviousPage: boolean;
180
+ dataUpdatedAt: number;
181
+ errorUpdatedAt: number;
182
+ failureCount: number;
183
+ failureReason: Error | null;
184
+ errorUpdateCount: number;
185
+ isFetched: boolean;
186
+ isFetchedAfterMount: boolean;
187
+ isFetching: boolean;
188
+ isInitialLoading: boolean;
189
+ isPaused: boolean;
190
+ isPlaceholderData: boolean;
191
+ isRefetching: boolean;
192
+ isStale: boolean;
193
+ refetch: (options?: import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa")._ | undefined) => Promise<import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").ae<import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").A<import("@dodoex/api/dist/gql/graphql").FetchUserSwapOrderHistoriesQuery, unknown>, Error>>;
194
+ fetchStatus: import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").a6;
195
+ } | {
196
+ orderList: {
197
+ hash: string;
198
+ fromToken: TokenInfo;
199
+ toToken: TokenInfo;
200
+ fromAmount: BigNumber | null;
201
+ toAmount: string;
202
+ minAmount: string;
203
+ fromTokenPrice: string;
204
+ toTokenPrice: string;
205
+ createdAt: string;
206
+ routeData: any;
207
+ safeTxHash: string | undefined;
208
+ safeTxUrl: string;
209
+ status: string;
210
+ transactionHash: string;
211
+ }[];
212
+ data: undefined;
213
+ error: null;
214
+ isError: false;
215
+ isPending: true;
216
+ isLoadingError: false;
217
+ isRefetchError: false;
218
+ isSuccess: false;
219
+ status: "pending";
220
+ fetchNextPage: (options?: import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").a3 | undefined) => Promise<import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").am<import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").A<import("@dodoex/api/dist/gql/graphql").FetchUserSwapOrderHistoriesQuery, unknown>, Error>>;
221
+ fetchPreviousPage: (options?: import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").a4 | undefined) => Promise<import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").am<import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").A<import("@dodoex/api/dist/gql/graphql").FetchUserSwapOrderHistoriesQuery, unknown>, Error>>;
222
+ hasNextPage: boolean;
223
+ hasPreviousPage: boolean;
224
+ isFetchingNextPage: boolean;
225
+ isFetchingPreviousPage: boolean;
226
+ dataUpdatedAt: number;
227
+ errorUpdatedAt: number;
228
+ failureCount: number;
229
+ failureReason: Error | null;
230
+ errorUpdateCount: number;
231
+ isFetched: boolean;
232
+ isFetchedAfterMount: boolean;
233
+ isFetching: boolean;
234
+ isLoading: boolean;
235
+ isInitialLoading: boolean;
236
+ isPaused: boolean;
237
+ isPlaceholderData: boolean;
238
+ isRefetching: boolean;
239
+ isStale: boolean;
240
+ refetch: (options?: import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa")._ | undefined) => Promise<import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").ae<import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").A<import("@dodoex/api/dist/gql/graphql").FetchUserSwapOrderHistoriesQuery, unknown>, Error>>;
241
+ fetchStatus: import("@tanstack/query-core/build/legacy/queryClient-MRqjmcFa").a6;
242
+ };
@@ -2,6 +2,7 @@ import { JsonRpcProvider } from '@ethersproject/providers';
2
2
  import type { TransactionRequest } from '@ethersproject/abstract-provider';
3
3
  import { BigNumber as EthersBigNumber } from '@ethersproject/bignumber';
4
4
  import BigNumber from 'bignumber.js';
5
+ import { TokenInfo } from '../Token';
5
6
  export declare type Deferrable<T> = {
6
7
  [K in keyof T]: T[K] | Promise<T[K]>;
7
8
  };
@@ -14,3 +15,11 @@ export declare const getEstimateGas: (params: any, provider: JsonRpcProvider) =>
14
15
  export declare const getGasPrice: (provider: JsonRpcProvider) => Promise<EthersBigNumber | null>;
15
16
  export declare const sendTransaction: (params: Deferrable<TransactionRequest>, provider: JsonRpcProvider) => Promise<import("@ethersproject/abstract-provider").TransactionResponse>;
16
17
  export declare const approve: (tokenAddress: string, accountAddress: string, contractAddress: string, allowance: BigNumber, provider: JsonRpcProvider) => Promise<import("@ethersproject/abstract-provider").TransactionResponse>;
18
+ /**
19
+ * Add custom token to metamask
20
+ * https://docs.metamask.io/guide/registering-your-token.html#registering-tokens-with-users
21
+ */
22
+ export declare function registerTokenWithMetamask(provider: JsonRpcProvider | undefined, token: TokenInfo): Promise<{
23
+ result: boolean;
24
+ failMsg?: string;
25
+ }>;
@@ -0,0 +1,17 @@
1
+ interface Notify {
2
+ message: string;
3
+ type: 'success' | 'error' | 'warning';
4
+ timeout?: number;
5
+ content?: string;
6
+ link?: {
7
+ text: string;
8
+ outerLink?: string;
9
+ };
10
+ }
11
+ interface MessageState {
12
+ notify: Notify | null;
13
+ toast: (notify: Notify) => void;
14
+ close: () => void;
15
+ }
16
+ export declare const useMessageState: import("zustand").UseBoundStore<import("zustand").StoreApi<MessageState>>;
17
+ export {};
@@ -0,0 +1,15 @@
1
+ export declare type MidPathType = {
2
+ fromToken: string;
3
+ toToken: string;
4
+ chainId: number;
5
+ poolDetails: Map<string, {
6
+ poolPart: string;
7
+ poolAddress: string | null;
8
+ }[]>;
9
+ };
10
+ export declare function useRouteVisionData({ rawRouteData, chainId, }: {
11
+ rawRouteData: string;
12
+ chainId: number;
13
+ }): {
14
+ routeData: MidPathType[];
15
+ };