@velora-dex/widget 0.1.0-rc.1 → 0.1.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/widget/Details/DetailWithValueList.d.ts.map +1 -1
- package/dist/components/widget/Details/DetailWithValueList.js +38 -28
- package/dist/components/widget/Details/DetailWithValueList.js.map +1 -1
- package/dist/components/widget/Details/types.d.ts +1 -1
- package/dist/components/widget/Details/types.d.ts.map +1 -1
- package/dist/components/widget/DexesList/DexItem.d.ts +3 -0
- package/dist/components/widget/DexesList/DexItem.d.ts.map +1 -0
- package/dist/components/widget/DexesList/DexItem.js +366 -0
- package/dist/components/widget/DexesList/DexItem.js.map +1 -0
- package/dist/components/widget/DexesList/DexesList.d.ts +10 -0
- package/dist/components/widget/DexesList/DexesList.d.ts.map +1 -0
- package/dist/components/widget/DexesList/DexesList.js +71 -0
- package/dist/components/widget/DexesList/DexesList.js.map +1 -0
- package/dist/components/widget/DexesList/assets/exchanges/biswap.png.js +4 -0
- package/dist/components/widget/DexesList/assets/exchanges/biswap.png.js.map +1 -0
- package/dist/components/widget/DexesList/assets/exchanges/cheeseswap.png.js +4 -0
- package/dist/components/widget/DexesList/assets/exchanges/cheeseswap.png.js.map +1 -0
- package/dist/components/widget/DexesList/assets/exchanges/complusswap.png.js +4 -0
- package/dist/components/widget/DexesList/assets/exchanges/complusswap.png.js.map +1 -0
- package/dist/components/widget/DexesList/assets/exchanges/hashflow.png.js +4 -0
- package/dist/components/widget/DexesList/assets/exchanges/hashflow.png.js.map +1 -0
- package/dist/components/widget/DexesList/assets/exchanges/icons.json.d.ts +82 -0
- package/dist/components/widget/DexesList/assets/exchanges/icons.json.js +159 -0
- package/dist/components/widget/DexesList/assets/exchanges/icons.json.js.map +1 -0
- package/dist/components/widget/DexesList/assets/exchanges/quickswap.png.js +4 -0
- package/dist/components/widget/DexesList/assets/exchanges/quickswap.png.js.map +1 -0
- package/dist/components/widget/DexesList/assets/exchanges/shibaswap.png.js +4 -0
- package/dist/components/widget/DexesList/assets/exchanges/shibaswap.png.js.map +1 -0
- package/dist/components/widget/DexesList/assets/exchanges/uniswap.svg.js +4 -0
- package/dist/components/widget/DexesList/assets/exchanges/uniswap.svg.js.map +1 -0
- package/dist/components/widget/DexesList/assets/exchanges/velora-dark.svg.js +4 -0
- package/dist/components/widget/DexesList/assets/exchanges/velora-dark.svg.js.map +1 -0
- package/dist/components/widget/DexesList/assets/exchanges/velora-light.svg.js +4 -0
- package/dist/components/widget/DexesList/assets/exchanges/velora-light.svg.js.map +1 -0
- package/dist/components/widget/DexesList/assets/gas.svg.js +12 -0
- package/dist/components/widget/DexesList/assets/gas.svg.js.map +1 -0
- package/dist/components/widget/DexesList/assets/unknown-dex.svg.js +4 -0
- package/dist/components/widget/DexesList/assets/unknown-dex.svg.js.map +1 -0
- package/dist/components/widget/DexesList/constants.d.ts +2 -0
- package/dist/components/widget/DexesList/constants.d.ts.map +1 -0
- package/dist/components/widget/DexesList/constants.js +4 -0
- package/dist/components/widget/DexesList/constants.js.map +1 -0
- package/dist/components/widget/DexesList/getDexProps.d.ts +11 -0
- package/dist/components/widget/DexesList/getDexProps.d.ts.map +1 -0
- package/dist/components/widget/DexesList/getDexProps.js +94 -0
- package/dist/components/widget/DexesList/getDexProps.js.map +1 -0
- package/dist/components/widget/DexesList/types.d.ts +15 -0
- package/dist/components/widget/DexesList/types.d.ts.map +1 -0
- package/dist/components/widget/SwapModeSwitcher/SwapModeSwitcherExpandable.d.ts.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/SwapModeSwitcherExpandable.js +44 -4
- package/dist/components/widget/SwapModeSwitcher/SwapModeSwitcherExpandable.js.map +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/hooks/swap/prices/usePricesParams.d.ts +1 -1
- package/dist/hooks/swap/prices/usePricesParams.d.ts.map +1 -1
- package/dist/hooks/swap/prices/usePricesParams.js +2 -1
- package/dist/hooks/swap/prices/usePricesParams.js.map +1 -1
- package/dist/lib/utils/index.d.ts +2 -0
- package/dist/lib/utils/index.d.ts.map +1 -1
- package/dist/lib/utils/index.js +4 -1
- package/dist/lib/utils/index.js.map +1 -1
- package/dist/lib/utils/savedAmountUSD.d.ts +3 -0
- package/dist/lib/utils/savedAmountUSD.d.ts.map +1 -0
- package/dist/lib/utils/savedAmountUSD.js +57 -0
- package/dist/lib/utils/savedAmountUSD.js.map +1 -0
- package/dist/styles.css +18 -3
- package/package.json +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DetailWithValueList.d.ts","sourceRoot":"","sources":["../../../../src/components/widget/Details/DetailWithValueList.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAGxD,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,
|
|
1
|
+
{"version":3,"file":"DetailWithValueList.d.ts","sourceRoot":"","sources":["../../../../src/components/widget/Details/DetailWithValueList.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAGxD,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CA8DlE,CAAC"}
|
|
@@ -5,7 +5,7 @@ import { DetailWithTooltip } from './DetailWithTooltip.js';
|
|
|
5
5
|
import { Skeleton } from '../../ui/skeleton.js';
|
|
6
6
|
|
|
7
7
|
const DetailWithValueList = (t0) => {
|
|
8
|
-
const $ = distExports.c(
|
|
8
|
+
const $ = distExports.c(12);
|
|
9
9
|
const {
|
|
10
10
|
details,
|
|
11
11
|
classes
|
|
@@ -20,41 +20,51 @@ const DetailWithValueList = (t0) => {
|
|
|
20
20
|
t2 = $[1];
|
|
21
21
|
}
|
|
22
22
|
let t3;
|
|
23
|
-
if ($[2] !== details) {
|
|
24
|
-
|
|
25
|
-
$[
|
|
26
|
-
|
|
23
|
+
if ($[2] !== classes?.title || $[3] !== classes?.value || $[4] !== details) {
|
|
24
|
+
let t42;
|
|
25
|
+
if ($[6] !== classes?.title || $[7] !== classes?.value) {
|
|
26
|
+
t42 = (t5, index) => {
|
|
27
|
+
const {
|
|
28
|
+
title,
|
|
29
|
+
value,
|
|
30
|
+
tooltip,
|
|
31
|
+
classes: detailClasses,
|
|
32
|
+
tooltipClasses,
|
|
33
|
+
key,
|
|
34
|
+
isLoading
|
|
35
|
+
} = t5;
|
|
36
|
+
const left = /* @__PURE__ */ jsx("div", { className: cn(classes?.title, detailClasses?.title), children: tooltip ? /* @__PURE__ */ jsx(DetailWithTooltip, { detail: title, tooltip, classes: tooltipClasses }) : title });
|
|
37
|
+
const right = /* @__PURE__ */ jsx("div", { className: cn("font-geist-mono dark:text-contrast-7", classes?.value, detailClasses?.value), children: isLoading ? /* @__PURE__ */ jsx(Skeleton, { className: "min-w-[42px] h-[12px]" }) : value ?? "-" });
|
|
38
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-2", children: [
|
|
39
|
+
left,
|
|
40
|
+
right
|
|
41
|
+
] }, key ?? index);
|
|
42
|
+
};
|
|
43
|
+
$[6] = classes?.title;
|
|
44
|
+
$[7] = classes?.value;
|
|
45
|
+
$[8] = t42;
|
|
46
|
+
} else {
|
|
47
|
+
t42 = $[8];
|
|
48
|
+
}
|
|
49
|
+
t3 = details.map(t42);
|
|
50
|
+
$[2] = classes?.title;
|
|
51
|
+
$[3] = classes?.value;
|
|
52
|
+
$[4] = details;
|
|
53
|
+
$[5] = t3;
|
|
27
54
|
} else {
|
|
28
|
-
t3 = $[
|
|
55
|
+
t3 = $[5];
|
|
29
56
|
}
|
|
30
57
|
let t4;
|
|
31
|
-
if ($[
|
|
58
|
+
if ($[9] !== t2 || $[10] !== t3) {
|
|
32
59
|
t4 = /* @__PURE__ */ jsx("div", { className: t2, children: t3 });
|
|
33
|
-
$[
|
|
34
|
-
$[
|
|
35
|
-
$[
|
|
60
|
+
$[9] = t2;
|
|
61
|
+
$[10] = t3;
|
|
62
|
+
$[11] = t4;
|
|
36
63
|
} else {
|
|
37
|
-
t4 = $[
|
|
64
|
+
t4 = $[11];
|
|
38
65
|
}
|
|
39
66
|
return t4;
|
|
40
67
|
};
|
|
41
|
-
function _temp(t0, index) {
|
|
42
|
-
const {
|
|
43
|
-
title,
|
|
44
|
-
value,
|
|
45
|
-
tooltip,
|
|
46
|
-
classes: classes_0,
|
|
47
|
-
tooltipClasses,
|
|
48
|
-
key,
|
|
49
|
-
isLoading
|
|
50
|
-
} = t0;
|
|
51
|
-
const left = /* @__PURE__ */ jsx("div", { className: classes_0?.title, children: tooltip ? /* @__PURE__ */ jsx(DetailWithTooltip, { detail: title, tooltip, classes: tooltipClasses }) : title });
|
|
52
|
-
const right = /* @__PURE__ */ jsx("div", { className: cn("font-geist-mono dark:text-contrast-7", classes_0?.value), children: isLoading ? /* @__PURE__ */ jsx(Skeleton, { className: "min-w-[42px] h-[12px]" }) : value ?? "-" });
|
|
53
|
-
return /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
|
|
54
|
-
left,
|
|
55
|
-
right
|
|
56
|
-
] }, key ?? index);
|
|
57
|
-
}
|
|
58
68
|
|
|
59
69
|
export { DetailWithValueList };
|
|
60
70
|
//# sourceMappingURL=DetailWithValueList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DetailWithValueList.js","sources":["../../../../src/components/widget/Details/DetailWithValueList.tsx"],"sourcesContent":["import { cn } from \"@/lib/utils\";\nimport { DetailWithTooltip } from \"./DetailWithTooltip\";\nimport type { DetailWithValueListProps } from \"./types\";\nimport { Skeleton } from \"@/components/ui/skeleton\";\n\nexport const DetailWithValueList: React.FC<DetailWithValueListProps> = ({\n details,\n classes,\n}) => {\n return (\n <div className={cn(\"flex flex-col gap-4 text-xs\", classes?.root)}>\n {details.map(\n (\n {
|
|
1
|
+
{"version":3,"file":"DetailWithValueList.js","sources":["../../../../src/components/widget/Details/DetailWithValueList.tsx"],"sourcesContent":["import { cn } from \"@/lib/utils\";\nimport { DetailWithTooltip } from \"./DetailWithTooltip\";\nimport type { DetailWithValueListProps } from \"./types\";\nimport { Skeleton } from \"@/components/ui/skeleton\";\n\nexport const DetailWithValueList: React.FC<DetailWithValueListProps> = ({\n details,\n classes,\n}) => {\n return (\n <div className={cn(\"flex flex-col gap-4 text-xs\", classes?.root)}>\n {details.map(\n (\n {\n title,\n value,\n tooltip,\n classes: detailClasses,\n tooltipClasses,\n key,\n isLoading,\n },\n index\n ) => {\n const left = (\n <div className={cn(classes?.title, detailClasses?.title)}>\n {tooltip ? (\n <DetailWithTooltip\n detail={title}\n tooltip={tooltip}\n classes={tooltipClasses}\n />\n ) : (\n title\n )}\n </div>\n );\n\n const right = (\n <div\n className={cn(\n \"font-geist-mono dark:text-contrast-7\",\n classes?.value,\n detailClasses?.value\n )}\n >\n {isLoading ? (\n <Skeleton className=\"min-w-[42px] h-[12px]\" />\n ) : (\n (value ?? \"-\")\n )}\n </div>\n );\n\n return (\n <div\n key={key ?? index}\n className=\"flex items-center justify-between gap-2\"\n >\n {left}\n {right}\n </div>\n );\n }\n )}\n </div>\n );\n};\n"],"names":["DetailWithValueList","t0","$","_c","details","classes","t1","root","t2","cn","t3","title","value","t4","t5","index","tooltip","detailClasses","tooltipClasses","key","isLoading","left","right","map"],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ export type DetailWithTooltipProps = {
|
|
|
13
13
|
} & WithClasses<"root" | "icon">;
|
|
14
14
|
export type DetailWithValueListProps = {
|
|
15
15
|
details: DetailWithValue[];
|
|
16
|
-
} & WithClasses<"root">;
|
|
16
|
+
} & WithClasses<"root" | "title" | "value">;
|
|
17
17
|
export type DetailWithValueListExpandableProps = {
|
|
18
18
|
trigger?: React.ReactNode;
|
|
19
19
|
details: DetailWithValue[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/widget/Details/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,sBAAsB,CAAC,SAAS,CAAC,CAAC;CACpD,GAAG,WAAW,CAAC,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC;AAE5C,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;CAC1B,GAAG,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;AAEjC,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/widget/Details/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,sBAAsB,CAAC,SAAS,CAAC,CAAC;CACpD,GAAG,WAAW,CAAC,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC;AAE5C,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;CAC1B,GAAG,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;AAEjC,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B,GAAG,WAAW,CAAC,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC;AAE5C,MAAM,MAAM,kCAAkC,GAAG;IAC/C,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { DexItemProps } from './types';
|
|
2
|
+
export declare const DexItem: ({ price, exchange, gasCostUSD, srcAmount, destAmount, savedAmountUSD, srcToken, destToken, quote, is100Percent, }: DexItemProps) => import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
//# sourceMappingURL=DexItem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DexItem.d.ts","sourceRoot":"","sources":["../../../../src/components/widget/DexesList/DexItem.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AA+B5C,eAAO,MAAM,OAAO,GAAI,mHAWrB,YAAY,4CAwCd,CAAC"}
|
|
@@ -0,0 +1,366 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { d as distExports } from '../../../_virtual/index.js';
|
|
3
|
+
import { InfoIcon } from 'lucide-react';
|
|
4
|
+
import { TooltipTrigger, Tooltip, TooltipContent } from '../../ui/tooltip.js';
|
|
5
|
+
import { SwapRate } from '../SwapRate/SwapRate.js';
|
|
6
|
+
import { formatFiatPrice } from '../../../lib/utils/formatFiatPrice.js';
|
|
7
|
+
import { useWidgetConfig } from '../../../core/state/configAtom.js';
|
|
8
|
+
import unknownDexSVGUrl from './assets/unknown-dex.svg.js';
|
|
9
|
+
import VeloraLightSVGUrl from './assets/exchanges/velora-light.svg.js';
|
|
10
|
+
import VeloraDarkSVGUrl from './assets/exchanges/velora-dark.svg.js';
|
|
11
|
+
import UniswapSVGUrl from './assets/exchanges/uniswap.svg.js';
|
|
12
|
+
import { ReactComponent as ForwardRef } from './assets/gas.svg.js';
|
|
13
|
+
import HashflowPNGUrl from './assets/exchanges/hashflow.png.js';
|
|
14
|
+
import BiswapPNGUrl from './assets/exchanges/biswap.png.js';
|
|
15
|
+
import CheeseswapPNGUrl from './assets/exchanges/cheeseswap.png.js';
|
|
16
|
+
import ComplusswapPNGUrl from './assets/exchanges/complusswap.png.js';
|
|
17
|
+
import ShibaswapPNGUrl from './assets/exchanges/shibaswap.png.js';
|
|
18
|
+
import QuickswapPNGUrl from './assets/exchanges/quickswap.png.js';
|
|
19
|
+
import dexIconUrls from './assets/exchanges/icons.json.js';
|
|
20
|
+
import { VeloraDex } from './constants.js';
|
|
21
|
+
import { DetailWithValueList } from '../Details/DetailWithValueList.js';
|
|
22
|
+
import { formatUnits } from 'viem';
|
|
23
|
+
import { toDecimalTrimmed } from '../../../lib/utils/toDecimal.js';
|
|
24
|
+
import { isTruthy } from '../../../lib/utils/index.js';
|
|
25
|
+
import { getDestAmountAfterFeeAndSlippage } from '../../../lib/utils/price.js';
|
|
26
|
+
import { useSlippage } from '../../../hooks/useSlippage.js';
|
|
27
|
+
|
|
28
|
+
const dexIconUrlsMap = dexIconUrls;
|
|
29
|
+
const DexItem = (t0) => {
|
|
30
|
+
const $ = distExports.c(37);
|
|
31
|
+
const {
|
|
32
|
+
price,
|
|
33
|
+
exchange,
|
|
34
|
+
gasCostUSD,
|
|
35
|
+
srcAmount,
|
|
36
|
+
destAmount,
|
|
37
|
+
savedAmountUSD,
|
|
38
|
+
srcToken,
|
|
39
|
+
destToken,
|
|
40
|
+
quote,
|
|
41
|
+
is100Percent
|
|
42
|
+
} = t0;
|
|
43
|
+
const dexName = renamedDexes[exchange] ?? exchange;
|
|
44
|
+
let t1;
|
|
45
|
+
if ($[0] !== exchange) {
|
|
46
|
+
t1 = /* @__PURE__ */ jsx(DexIconComp, { exchange });
|
|
47
|
+
$[0] = exchange;
|
|
48
|
+
$[1] = t1;
|
|
49
|
+
} else {
|
|
50
|
+
t1 = $[1];
|
|
51
|
+
}
|
|
52
|
+
let t2;
|
|
53
|
+
if ($[2] !== dexName) {
|
|
54
|
+
t2 = /* @__PURE__ */ jsx("div", { className: "font-medium text-contrast-4 dark:text-contrast-9", children: dexName });
|
|
55
|
+
$[2] = dexName;
|
|
56
|
+
$[3] = t2;
|
|
57
|
+
} else {
|
|
58
|
+
t2 = $[3];
|
|
59
|
+
}
|
|
60
|
+
let t3;
|
|
61
|
+
if ($[4] !== t1 || $[5] !== t2) {
|
|
62
|
+
t3 = /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-center gap-1.5", children: [
|
|
63
|
+
t1,
|
|
64
|
+
t2
|
|
65
|
+
] });
|
|
66
|
+
$[4] = t1;
|
|
67
|
+
$[5] = t2;
|
|
68
|
+
$[6] = t3;
|
|
69
|
+
} else {
|
|
70
|
+
t3 = $[6];
|
|
71
|
+
}
|
|
72
|
+
const t4 = price.side === "BUY";
|
|
73
|
+
let t5;
|
|
74
|
+
if ($[7] !== destAmount || $[8] !== destToken || $[9] !== srcAmount || $[10] !== srcToken || $[11] !== t4) {
|
|
75
|
+
t5 = /* @__PURE__ */ jsx("div", { className: "text-contrast-3 dark:text-contrast-7 font-geist-mono text-end", children: /* @__PURE__ */ jsx(SwapRate, { srcToken, destToken, srcAmountWei: srcAmount, destAmountWei: destAmount, reverse: t4 }) });
|
|
76
|
+
$[7] = destAmount;
|
|
77
|
+
$[8] = destToken;
|
|
78
|
+
$[9] = srcAmount;
|
|
79
|
+
$[10] = srcToken;
|
|
80
|
+
$[11] = t4;
|
|
81
|
+
$[12] = t5;
|
|
82
|
+
} else {
|
|
83
|
+
t5 = $[12];
|
|
84
|
+
}
|
|
85
|
+
let t6;
|
|
86
|
+
if ($[13] === Symbol.for("react.memo_cache_sentinel")) {
|
|
87
|
+
t6 = /* @__PURE__ */ jsx(ForwardRef, {});
|
|
88
|
+
$[13] = t6;
|
|
89
|
+
} else {
|
|
90
|
+
t6 = $[13];
|
|
91
|
+
}
|
|
92
|
+
const t7 = +gasCostUSD;
|
|
93
|
+
let t8;
|
|
94
|
+
if ($[14] !== t7) {
|
|
95
|
+
t8 = formatFiatPrice(t7);
|
|
96
|
+
$[14] = t7;
|
|
97
|
+
$[15] = t8;
|
|
98
|
+
} else {
|
|
99
|
+
t8 = $[15];
|
|
100
|
+
}
|
|
101
|
+
let t9;
|
|
102
|
+
if ($[16] !== t8) {
|
|
103
|
+
t9 = /* @__PURE__ */ jsxs("div", { className: "text-[11px] text-contrast-5 flex items-center gap-1 justify-end pr-0.5", children: [
|
|
104
|
+
t6,
|
|
105
|
+
" ",
|
|
106
|
+
t8
|
|
107
|
+
] });
|
|
108
|
+
$[16] = t8;
|
|
109
|
+
$[17] = t9;
|
|
110
|
+
} else {
|
|
111
|
+
t9 = $[17];
|
|
112
|
+
}
|
|
113
|
+
let t10;
|
|
114
|
+
if ($[18] !== t5 || $[19] !== t9) {
|
|
115
|
+
t10 = /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1", children: [
|
|
116
|
+
t5,
|
|
117
|
+
t9
|
|
118
|
+
] });
|
|
119
|
+
$[18] = t5;
|
|
120
|
+
$[19] = t9;
|
|
121
|
+
$[20] = t10;
|
|
122
|
+
} else {
|
|
123
|
+
t10 = $[20];
|
|
124
|
+
}
|
|
125
|
+
let t11;
|
|
126
|
+
if ($[21] !== destAmount || $[22] !== destToken || $[23] !== gasCostUSD || $[24] !== is100Percent || $[25] !== price || $[26] !== quote || $[27] !== savedAmountUSD || $[28] !== srcAmount || $[29] !== srcToken) {
|
|
127
|
+
t11 = /* @__PURE__ */ jsx(TooltipDexInfo, { price, srcAmount, srcToken, destAmount, destToken, gasCostUSD, savedAmountUSD, quote, is100Percent });
|
|
128
|
+
$[21] = destAmount;
|
|
129
|
+
$[22] = destToken;
|
|
130
|
+
$[23] = gasCostUSD;
|
|
131
|
+
$[24] = is100Percent;
|
|
132
|
+
$[25] = price;
|
|
133
|
+
$[26] = quote;
|
|
134
|
+
$[27] = savedAmountUSD;
|
|
135
|
+
$[28] = srcAmount;
|
|
136
|
+
$[29] = srcToken;
|
|
137
|
+
$[30] = t11;
|
|
138
|
+
} else {
|
|
139
|
+
t11 = $[30];
|
|
140
|
+
}
|
|
141
|
+
let t12;
|
|
142
|
+
if ($[31] !== t10 || $[32] !== t11) {
|
|
143
|
+
t12 = /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
|
|
144
|
+
t10,
|
|
145
|
+
t11
|
|
146
|
+
] });
|
|
147
|
+
$[31] = t10;
|
|
148
|
+
$[32] = t11;
|
|
149
|
+
$[33] = t12;
|
|
150
|
+
} else {
|
|
151
|
+
t12 = $[33];
|
|
152
|
+
}
|
|
153
|
+
let t13;
|
|
154
|
+
if ($[34] !== t12 || $[35] !== t3) {
|
|
155
|
+
t13 = /* @__PURE__ */ jsxs("div", { className: "text-xs px-3 py-2 bg-contrast-9 dark:bg-contrast-3 rounded-sm flex items-center justify-between gap-1 wrap-anywhere", children: [
|
|
156
|
+
t3,
|
|
157
|
+
t12
|
|
158
|
+
] });
|
|
159
|
+
$[34] = t12;
|
|
160
|
+
$[35] = t3;
|
|
161
|
+
$[36] = t13;
|
|
162
|
+
} else {
|
|
163
|
+
t13 = $[36];
|
|
164
|
+
}
|
|
165
|
+
return t13;
|
|
166
|
+
};
|
|
167
|
+
const detailsClasses = {
|
|
168
|
+
root: "min-w-[200px]",
|
|
169
|
+
value: "dark:text-contrast-3"
|
|
170
|
+
};
|
|
171
|
+
const TooltipDexInfo = (t0) => {
|
|
172
|
+
const $ = distExports.c(23);
|
|
173
|
+
const {
|
|
174
|
+
price,
|
|
175
|
+
srcAmount,
|
|
176
|
+
srcToken,
|
|
177
|
+
destAmount,
|
|
178
|
+
destToken,
|
|
179
|
+
savedAmountUSD,
|
|
180
|
+
gasCostUSD,
|
|
181
|
+
quote,
|
|
182
|
+
is100Percent
|
|
183
|
+
} = t0;
|
|
184
|
+
const {
|
|
185
|
+
resolvedSlippage
|
|
186
|
+
} = useSlippage();
|
|
187
|
+
let formatedDestAmount;
|
|
188
|
+
let formatedSrcAmount;
|
|
189
|
+
let t1;
|
|
190
|
+
if ($[0] !== destAmount || $[1] !== destToken.decimals || $[2] !== price || $[3] !== resolvedSlippage || $[4] !== srcAmount || $[5] !== srcToken.decimals) {
|
|
191
|
+
const srcAmountUnit = formatUnits(BigInt(srcAmount), srcToken.decimals);
|
|
192
|
+
const destAmountUnit = formatUnits(BigInt(destAmount), destToken.decimals);
|
|
193
|
+
const minDestAmount = getDestAmountAfterFeeAndSlippage({
|
|
194
|
+
price,
|
|
195
|
+
slippagePercent: resolvedSlippage
|
|
196
|
+
});
|
|
197
|
+
const minDestAmountUnit = formatUnits(BigInt(minDestAmount), destToken.decimals);
|
|
198
|
+
formatedSrcAmount = toDecimalTrimmed(srcAmountUnit);
|
|
199
|
+
formatedDestAmount = toDecimalTrimmed(destAmountUnit);
|
|
200
|
+
t1 = toDecimalTrimmed(minDestAmountUnit);
|
|
201
|
+
$[0] = destAmount;
|
|
202
|
+
$[1] = destToken.decimals;
|
|
203
|
+
$[2] = price;
|
|
204
|
+
$[3] = resolvedSlippage;
|
|
205
|
+
$[4] = srcAmount;
|
|
206
|
+
$[5] = srcToken.decimals;
|
|
207
|
+
$[6] = formatedDestAmount;
|
|
208
|
+
$[7] = formatedSrcAmount;
|
|
209
|
+
$[8] = t1;
|
|
210
|
+
} else {
|
|
211
|
+
formatedDestAmount = $[6];
|
|
212
|
+
formatedSrcAmount = $[7];
|
|
213
|
+
t1 = $[8];
|
|
214
|
+
}
|
|
215
|
+
const formattedMinDestAmount = t1;
|
|
216
|
+
const t2 = `${is100Percent ? "100% " : ""} ${quote}`;
|
|
217
|
+
let t3;
|
|
218
|
+
if ($[9] !== destToken.symbol || $[10] !== formatedDestAmount || $[11] !== formatedSrcAmount || $[12] !== formattedMinDestAmount || $[13] !== gasCostUSD || $[14] !== price.side || $[15] !== resolvedSlippage || $[16] !== savedAmountUSD || $[17] !== srcToken.symbol || $[18] !== t2) {
|
|
219
|
+
t3 = [{
|
|
220
|
+
title: "Quote",
|
|
221
|
+
value: t2
|
|
222
|
+
}, {
|
|
223
|
+
title: "You Pay",
|
|
224
|
+
value: `${formatedSrcAmount} ${srcToken.symbol}`
|
|
225
|
+
}, {
|
|
226
|
+
title: "You Receive",
|
|
227
|
+
value: `${formatedDestAmount} ${destToken.symbol}`
|
|
228
|
+
}, price.side === "SELL" && {
|
|
229
|
+
title: "Minimum Received",
|
|
230
|
+
value: `${formattedMinDestAmount} ${destToken.symbol}`
|
|
231
|
+
}, {
|
|
232
|
+
title: "Exp. Slippage",
|
|
233
|
+
value: `${resolvedSlippage}%`
|
|
234
|
+
}, {
|
|
235
|
+
title: "Network Fees",
|
|
236
|
+
value: `$${gasCostUSD}`
|
|
237
|
+
}, savedAmountUSD && {
|
|
238
|
+
title: "You Save",
|
|
239
|
+
value: `🎉 ${formatFiatPrice(savedAmountUSD)}`
|
|
240
|
+
}].filter(isTruthy);
|
|
241
|
+
$[9] = destToken.symbol;
|
|
242
|
+
$[10] = formatedDestAmount;
|
|
243
|
+
$[11] = formatedSrcAmount;
|
|
244
|
+
$[12] = formattedMinDestAmount;
|
|
245
|
+
$[13] = gasCostUSD;
|
|
246
|
+
$[14] = price.side;
|
|
247
|
+
$[15] = resolvedSlippage;
|
|
248
|
+
$[16] = savedAmountUSD;
|
|
249
|
+
$[17] = srcToken.symbol;
|
|
250
|
+
$[18] = t2;
|
|
251
|
+
$[19] = t3;
|
|
252
|
+
} else {
|
|
253
|
+
t3 = $[19];
|
|
254
|
+
}
|
|
255
|
+
const details = t3;
|
|
256
|
+
let t4;
|
|
257
|
+
if ($[20] === Symbol.for("react.memo_cache_sentinel")) {
|
|
258
|
+
t4 = /* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx(InfoIcon, { size: 16, className: "text-contrast-6 dark:text-contrast-5 cursor-pointer" }) });
|
|
259
|
+
$[20] = t4;
|
|
260
|
+
} else {
|
|
261
|
+
t4 = $[20];
|
|
262
|
+
}
|
|
263
|
+
let t5;
|
|
264
|
+
if ($[21] !== details) {
|
|
265
|
+
t5 = /* @__PURE__ */ jsxs(Tooltip, { children: [
|
|
266
|
+
t4,
|
|
267
|
+
/* @__PURE__ */ jsx(TooltipContent, { children: /* @__PURE__ */ jsx(DetailWithValueList, { details, classes: detailsClasses }) })
|
|
268
|
+
] });
|
|
269
|
+
$[21] = details;
|
|
270
|
+
$[22] = t5;
|
|
271
|
+
} else {
|
|
272
|
+
t5 = $[22];
|
|
273
|
+
}
|
|
274
|
+
return t5;
|
|
275
|
+
};
|
|
276
|
+
const renamedDexes = {
|
|
277
|
+
paraswaplimitorders: VeloraDex,
|
|
278
|
+
uniswapforkoptimized: VeloraDex
|
|
279
|
+
};
|
|
280
|
+
function onDexImageError(e) {
|
|
281
|
+
e.currentTarget.src = unknownDexSVGUrl;
|
|
282
|
+
}
|
|
283
|
+
const DexIcon = (props) => {
|
|
284
|
+
const $ = distExports.c(2);
|
|
285
|
+
let t0;
|
|
286
|
+
if ($[0] !== props) {
|
|
287
|
+
t0 = /* @__PURE__ */ jsx("img", { ...props, className: "w-4 h-4 rounded-[50%]" });
|
|
288
|
+
$[0] = props;
|
|
289
|
+
$[1] = t0;
|
|
290
|
+
} else {
|
|
291
|
+
t0 = $[1];
|
|
292
|
+
}
|
|
293
|
+
return t0;
|
|
294
|
+
};
|
|
295
|
+
const DexIconComp = (t0) => {
|
|
296
|
+
const $ = distExports.c(5);
|
|
297
|
+
const {
|
|
298
|
+
exchange
|
|
299
|
+
} = t0;
|
|
300
|
+
const loweredExchange = exchange.toLowerCase();
|
|
301
|
+
const IconComp = iconComponents[loweredExchange];
|
|
302
|
+
if (IconComp) {
|
|
303
|
+
let t12;
|
|
304
|
+
if ($[0] !== IconComp) {
|
|
305
|
+
t12 = /* @__PURE__ */ jsx(IconComp, {});
|
|
306
|
+
$[0] = IconComp;
|
|
307
|
+
$[1] = t12;
|
|
308
|
+
} else {
|
|
309
|
+
t12 = $[1];
|
|
310
|
+
}
|
|
311
|
+
return t12;
|
|
312
|
+
}
|
|
313
|
+
const iconUrl = dexIconUrlsMap[loweredExchange];
|
|
314
|
+
if (iconUrl) {
|
|
315
|
+
let t12;
|
|
316
|
+
if ($[2] !== iconUrl) {
|
|
317
|
+
t12 = /* @__PURE__ */ jsx(DexIcon, { src: iconUrl, onError: onDexImageError });
|
|
318
|
+
$[2] = iconUrl;
|
|
319
|
+
$[3] = t12;
|
|
320
|
+
} else {
|
|
321
|
+
t12 = $[3];
|
|
322
|
+
}
|
|
323
|
+
return t12;
|
|
324
|
+
}
|
|
325
|
+
let t1;
|
|
326
|
+
if ($[4] === Symbol.for("react.memo_cache_sentinel")) {
|
|
327
|
+
t1 = /* @__PURE__ */ jsx(DexIcon, { src: unknownDexSVGUrl });
|
|
328
|
+
$[4] = t1;
|
|
329
|
+
} else {
|
|
330
|
+
t1 = $[4];
|
|
331
|
+
}
|
|
332
|
+
return t1;
|
|
333
|
+
};
|
|
334
|
+
const VeloraIcon = () => {
|
|
335
|
+
const $ = distExports.c(2);
|
|
336
|
+
const {
|
|
337
|
+
theme
|
|
338
|
+
} = useWidgetConfig();
|
|
339
|
+
const iconUrl = theme === "dark" ? VeloraDarkSVGUrl : VeloraLightSVGUrl;
|
|
340
|
+
let t0;
|
|
341
|
+
if ($[0] !== iconUrl) {
|
|
342
|
+
t0 = /* @__PURE__ */ jsx(DexIcon, { src: iconUrl });
|
|
343
|
+
$[0] = iconUrl;
|
|
344
|
+
$[1] = t0;
|
|
345
|
+
} else {
|
|
346
|
+
t0 = $[1];
|
|
347
|
+
}
|
|
348
|
+
return t0;
|
|
349
|
+
};
|
|
350
|
+
const iconComponents = {
|
|
351
|
+
velora: VeloraIcon,
|
|
352
|
+
paraswaplimitorders: VeloraIcon,
|
|
353
|
+
augustusrfq: VeloraIcon,
|
|
354
|
+
// Uniswap icon from origin looks bad in dark mode
|
|
355
|
+
uniswap: () => /* @__PURE__ */ jsx(DexIcon, { src: UniswapSVGUrl }),
|
|
356
|
+
// Quickswap blocks hotlinking (so no <img src="quickswap/..."/>)
|
|
357
|
+
quickswap: () => /* @__PURE__ */ jsx(DexIcon, { src: QuickswapPNGUrl }),
|
|
358
|
+
hashflow: () => /* @__PURE__ */ jsx(DexIcon, { src: HashflowPNGUrl }),
|
|
359
|
+
biswap: () => /* @__PURE__ */ jsx(DexIcon, { src: BiswapPNGUrl }),
|
|
360
|
+
cheeseswap: () => /* @__PURE__ */ jsx(DexIcon, { src: CheeseswapPNGUrl }),
|
|
361
|
+
shibaswap: () => /* @__PURE__ */ jsx(DexIcon, { src: ShibaswapPNGUrl }),
|
|
362
|
+
complusswap: () => /* @__PURE__ */ jsx(DexIcon, { src: ComplusswapPNGUrl })
|
|
363
|
+
};
|
|
364
|
+
|
|
365
|
+
export { DexItem };
|
|
366
|
+
//# sourceMappingURL=DexItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DexItem.js","sources":["../../../../src/components/widget/DexesList/DexItem.tsx"],"sourcesContent":["import { InfoIcon } from \"lucide-react\";\n\nimport {\n Tooltip,\n TooltipTrigger,\n TooltipContent,\n} from \"@/components/ui/tooltip\";\nimport type { DexItemProps } from \"./types\";\nimport { SwapRate } from \"../SwapRate/SwapRate\";\nimport { formatFiatPrice } from \"@/lib/utils/formatFiatPrice\";\nimport type { ImgHTMLAttributes, JSX, SyntheticEvent } from \"react\";\nimport { useWidgetConfig } from \"@/core/state/configAtom\";\n\nimport unknownDexSVGUrl from \"./assets/unknown-dex.svg?url\";\nimport VeloraLightSVGUrl from \"./assets/exchanges/velora-light.svg?url\";\nimport VeloraDarkSVGUrl from \"./assets/exchanges/velora-dark.svg?url\";\nimport UniswapSVGUrl from \"./assets/exchanges/uniswap.svg?url\";\nimport { ReactComponent as GasSVG } from \"./assets/gas.svg\";\n\n// following icons can't be fetched from origin source because of CloudFlare protection\nimport HashflowPNGUrl from \"./assets/exchanges/hashflow.png?url\";\nimport BiswapPNGUrl from \"./assets/exchanges/biswap.png?url\";\nimport CheeseswapPNGUrl from \"./assets/exchanges/cheeseswap.png?url\";\nimport ComplusswapPNGUrl from \"./assets/exchanges/complusswap.png?url\";\nimport ShibaswapPNGUrl from \"./assets/exchanges/shibaswap.png?url\";\nimport QuickswapPNGUrl from \"./assets/exchanges/quickswap.png?url\";\n\nimport dexIconUrls from \"./assets/exchanges/icons.json\";\nimport { VeloraDex } from \"./constants\";\nimport { DetailWithValueList } from \"../Details/DetailWithValueList\";\nimport { formatUnits } from \"viem\";\nimport { toDecimalTrimmed } from \"@/lib/utils/toDecimal\";\nimport { isTruthy } from \"@/lib/utils\";\nimport { getDestAmountAfterFeeAndSlippage } from \"@/lib/utils/price\";\nimport { useSlippage } from \"@/hooks/useSlippage\";\n\nconst dexIconUrlsMap: Record<string, string> = dexIconUrls;\n\nexport const DexItem = ({\n price,\n exchange,\n gasCostUSD,\n srcAmount,\n destAmount,\n savedAmountUSD,\n srcToken,\n destToken,\n quote,\n is100Percent,\n}: DexItemProps) => {\n const dexName = renamedDexes[exchange] ?? exchange;\n\n return (\n <div className=\"text-xs px-3 py-2 bg-contrast-9 dark:bg-contrast-3 rounded-sm flex items-center justify-between gap-1 wrap-anywhere\">\n <div className=\"flex items-center justify-center gap-1.5\">\n <DexIconComp exchange={exchange} />\n <div className=\"font-medium text-contrast-4 dark:text-contrast-9\">\n {dexName}\n </div>\n </div>\n <div className=\"flex items-center gap-1\">\n <div className=\"flex flex-col gap-1\">\n <div className=\"text-contrast-3 dark:text-contrast-7 font-geist-mono text-end\">\n <SwapRate\n srcToken={srcToken}\n destToken={destToken}\n srcAmountWei={srcAmount}\n destAmountWei={destAmount}\n reverse={price.side === \"BUY\"}\n />\n </div>\n <div className=\"text-[11px] text-contrast-5 flex items-center gap-1 justify-end pr-0.5\">\n <GasSVG /> {formatFiatPrice(+gasCostUSD)}\n </div>\n </div>\n <TooltipDexInfo\n price={price}\n srcAmount={srcAmount}\n srcToken={srcToken}\n destAmount={destAmount}\n destToken={destToken}\n gasCostUSD={gasCostUSD}\n savedAmountUSD={savedAmountUSD}\n quote={quote}\n is100Percent={is100Percent}\n />\n </div>\n </div>\n );\n};\n\n// tooltip\n\nconst detailsClasses = {\n root: \"min-w-[200px]\",\n value: \"dark:text-contrast-3\",\n};\n\nconst TooltipDexInfo = ({\n price,\n srcAmount,\n srcToken,\n destAmount,\n destToken,\n savedAmountUSD,\n gasCostUSD,\n quote,\n is100Percent,\n}: Omit<DexItemProps, \"exchange\">) => {\n const { resolvedSlippage } = useSlippage();\n\n const srcAmountUnit = formatUnits(BigInt(srcAmount), srcToken.decimals);\n const destAmountUnit = formatUnits(BigInt(destAmount), destToken.decimals);\n const minDestAmount = getDestAmountAfterFeeAndSlippage({\n price,\n slippagePercent: resolvedSlippage,\n });\n const minDestAmountUnit = formatUnits(\n BigInt(minDestAmount),\n destToken.decimals\n );\n\n const formatedSrcAmount = toDecimalTrimmed(srcAmountUnit);\n const formatedDestAmount = toDecimalTrimmed(destAmountUnit);\n const formattedMinDestAmount = toDecimalTrimmed(minDestAmountUnit);\n\n const details = [\n {\n title: \"Quote\",\n value: `${is100Percent ? \"100% \" : \"\"} ${quote}`,\n },\n {\n title: \"You Pay\",\n value: `${formatedSrcAmount} ${srcToken.symbol}`,\n },\n {\n title: \"You Receive\",\n value: `${formatedDestAmount} ${destToken.symbol}`,\n },\n price.side === \"SELL\" && {\n title: \"Minimum Received\",\n value: `${formattedMinDestAmount} ${destToken.symbol}`,\n },\n // @TODO: Max To Pay detail for BUY side\n {\n title: \"Exp. Slippage\",\n value: `${resolvedSlippage}%`,\n },\n {\n title: \"Network Fees\",\n value: `$${gasCostUSD}`,\n },\n savedAmountUSD && {\n title: \"You Save\",\n value: `🎉 ${formatFiatPrice(savedAmountUSD)}`,\n },\n ].filter(isTruthy);\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n <InfoIcon\n size={16}\n className=\"text-contrast-6 dark:text-contrast-5 cursor-pointer\"\n />\n </TooltipTrigger>\n <TooltipContent>\n <DetailWithValueList details={details} classes={detailsClasses} />\n </TooltipContent>\n </Tooltip>\n );\n};\n\n// names\n\nconst renamedDexes: Record<string, string> = {\n paraswaplimitorders: VeloraDex,\n uniswapforkoptimized: VeloraDex,\n};\n\n// icons\n\nfunction onDexImageError(e: SyntheticEvent<HTMLImageElement, Event>) {\n e.currentTarget.src = unknownDexSVGUrl;\n}\n\nconst DexIcon = (props: ImgHTMLAttributes<HTMLImageElement>) => {\n return <img {...props} className=\"w-4 h-4 rounded-[50%]\" />;\n};\n\nconst DexIconComp = ({ exchange }: { exchange: string }) => {\n const loweredExchange = exchange.toLowerCase();\n\n // component is the priority\n const IconComp = iconComponents[loweredExchange];\n if (IconComp) return <IconComp />;\n\n // then icons by URL since they may fail to load\n const iconUrl = dexIconUrlsMap[loweredExchange];\n if (iconUrl) return <DexIcon src={iconUrl} onError={onDexImageError} />;\n\n // fallback to unknown icon if no match\n return <DexIcon src={unknownDexSVGUrl} />;\n};\n\n// different Velora icon depending on theme mode\nconst VeloraIcon = () => {\n const { theme } = useWidgetConfig();\n const iconUrl = theme === \"dark\" ? VeloraDarkSVGUrl : VeloraLightSVGUrl;\n return <DexIcon src={iconUrl} />;\n};\n\nconst iconComponents: Record<string, () => JSX.Element> = {\n velora: VeloraIcon,\n paraswaplimitorders: VeloraIcon,\n augustusrfq: VeloraIcon,\n // Uniswap icon from origin looks bad in dark mode\n uniswap: () => <DexIcon src={UniswapSVGUrl} />,\n // Quickswap blocks hotlinking (so no <img src=\"quickswap/...\"/>)\n quickswap: () => <DexIcon src={QuickswapPNGUrl} />,\n hashflow: () => <DexIcon src={HashflowPNGUrl} />,\n biswap: () => <DexIcon src={BiswapPNGUrl} />,\n cheeseswap: () => <DexIcon src={CheeseswapPNGUrl} />,\n shibaswap: () => <DexIcon src={ShibaswapPNGUrl} />,\n complusswap: () => <DexIcon src={ComplusswapPNGUrl} />,\n};\n"],"names":["dexIconUrlsMap","dexIconUrls","DexItem","t0","$","_c","price","exchange","gasCostUSD","srcAmount","destAmount","savedAmountUSD","srcToken","destToken","quote","is100Percent","dexName","renamedDexes","t1","t2","t3","t4","side","t5","t6","Symbol","for","GasSVG","t7","t8","formatFiatPrice","t9","t10","t11","t12","t13","detailsClasses","root","value","TooltipDexInfo","resolvedSlippage","useSlippage","formatedDestAmount","formatedSrcAmount","decimals","srcAmountUnit","formatUnits","BigInt","destAmountUnit","minDestAmount","getDestAmountAfterFeeAndSlippage","slippagePercent","minDestAmountUnit","toDecimalTrimmed","formattedMinDestAmount","symbol","title","filter","isTruthy","details","paraswaplimitorders","VeloraDex","uniswapforkoptimized","onDexImageError","e","currentTarget","src","unknownDexSVGUrl","DexIcon","props","DexIconComp","loweredExchange","toLowerCase","IconComp","iconComponents","iconUrl","VeloraIcon","theme","useWidgetConfig","VeloraDarkSVGUrl","VeloraLightSVGUrl","velora","augustusrfq","uniswap","UniswapSVGUrl","quickswap","QuickswapPNGUrl","hashflow","HashflowPNGUrl","biswap","BiswapPNGUrl","cheeseswap","CheeseswapPNGUrl","shibaswap","ShibaswapPNGUrl","complusswap","ComplusswapPNGUrl"],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { OptimalRate } from '@velora-dex/sdk';
|
|
2
|
+
import { Token } from '../../../tokens/state/types';
|
|
3
|
+
type DexesListProps = {
|
|
4
|
+
marketPrice: OptimalRate;
|
|
5
|
+
tokenFrom: Token;
|
|
6
|
+
tokenTo: Token;
|
|
7
|
+
};
|
|
8
|
+
export declare const DexesList: ({ marketPrice, tokenFrom, tokenTo, }: DexesListProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=DexesList.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DexesList.d.ts","sourceRoot":"","sources":["../../../../src/components/widget/DexesList/DexesList.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAGlD,KAAK,cAAc,GAAG;IACpB,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,EAAE,KAAK,CAAC;IACjB,OAAO,EAAE,KAAK,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,sCAIvB,cAAc,mDAkChB,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { createElement } from 'react';
|
|
3
|
+
import { d as distExports } from '../../../_virtual/index.js';
|
|
4
|
+
import '@velora-dex/sdk';
|
|
5
|
+
import { DexItem } from './DexItem.js';
|
|
6
|
+
import { getBestDexProps, getOtherDexesProps } from './getDexProps.js';
|
|
7
|
+
|
|
8
|
+
const DexesList = (t0) => {
|
|
9
|
+
const $ = distExports.c(10);
|
|
10
|
+
const {
|
|
11
|
+
marketPrice,
|
|
12
|
+
tokenFrom,
|
|
13
|
+
tokenTo
|
|
14
|
+
} = t0;
|
|
15
|
+
if (marketPrice.others?.length === 0) {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
if (marketPrice.bestRoute.length === 0) {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
let t1;
|
|
22
|
+
let t2;
|
|
23
|
+
if ($[0] !== marketPrice || $[1] !== tokenFrom || $[2] !== tokenTo) {
|
|
24
|
+
t2 = Symbol.for("react.early_return_sentinel");
|
|
25
|
+
bb0: {
|
|
26
|
+
const bestDexProps = getBestDexProps(marketPrice);
|
|
27
|
+
if (!bestDexProps) {
|
|
28
|
+
t2 = null;
|
|
29
|
+
break bb0;
|
|
30
|
+
}
|
|
31
|
+
const otherDexesProps = getOtherDexesProps({
|
|
32
|
+
marketPrice,
|
|
33
|
+
bestDexProps
|
|
34
|
+
});
|
|
35
|
+
if (!otherDexesProps) {
|
|
36
|
+
t2 = null;
|
|
37
|
+
break bb0;
|
|
38
|
+
}
|
|
39
|
+
let t3;
|
|
40
|
+
if ($[5] !== bestDexProps || $[6] !== marketPrice || $[7] !== tokenFrom || $[8] !== tokenTo) {
|
|
41
|
+
t3 = /* @__PURE__ */ jsx(DexItem, { ...bestDexProps, price: marketPrice, srcToken: tokenFrom, destToken: tokenTo });
|
|
42
|
+
$[5] = bestDexProps;
|
|
43
|
+
$[6] = marketPrice;
|
|
44
|
+
$[7] = tokenFrom;
|
|
45
|
+
$[8] = tokenTo;
|
|
46
|
+
$[9] = t3;
|
|
47
|
+
} else {
|
|
48
|
+
t3 = $[9];
|
|
49
|
+
}
|
|
50
|
+
t1 = /* @__PURE__ */ jsxs("div", { className: "pt-4 px-2 flex flex-col gap-2", children: [
|
|
51
|
+
t3,
|
|
52
|
+
otherDexesProps.map((dexProps, index) => /* @__PURE__ */ createElement(DexItem, { ...dexProps, key: index, price: marketPrice, srcToken: tokenFrom, destToken: tokenTo }))
|
|
53
|
+
] });
|
|
54
|
+
}
|
|
55
|
+
$[0] = marketPrice;
|
|
56
|
+
$[1] = tokenFrom;
|
|
57
|
+
$[2] = tokenTo;
|
|
58
|
+
$[3] = t1;
|
|
59
|
+
$[4] = t2;
|
|
60
|
+
} else {
|
|
61
|
+
t1 = $[3];
|
|
62
|
+
t2 = $[4];
|
|
63
|
+
}
|
|
64
|
+
if (t2 !== Symbol.for("react.early_return_sentinel")) {
|
|
65
|
+
return t2;
|
|
66
|
+
}
|
|
67
|
+
return t1;
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
export { DexesList };
|
|
71
|
+
//# sourceMappingURL=DexesList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DexesList.js","sources":["../../../../src/components/widget/DexesList/DexesList.tsx"],"sourcesContent":["import { type OptimalRate } from \"@velora-dex/sdk\";\nimport { DexItem } from \"./DexItem\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { getBestDexProps, getOtherDexesProps } from \"./getDexProps\";\n\ntype DexesListProps = {\n marketPrice: OptimalRate;\n tokenFrom: Token;\n tokenTo: Token;\n};\n\nexport const DexesList = ({\n marketPrice,\n tokenFrom,\n tokenTo,\n}: DexesListProps) => {\n if (marketPrice.others?.length === 0) return null;\n if (marketPrice.bestRoute.length === 0) return null;\n\n const bestDexProps = getBestDexProps(marketPrice);\n\n if (!bestDexProps) return null;\n\n const otherDexesProps = getOtherDexesProps({\n marketPrice,\n bestDexProps,\n });\n\n if (!otherDexesProps) return null;\n\n return (\n <div className=\"pt-4 px-2 flex flex-col gap-2\">\n <DexItem\n {...bestDexProps}\n price={marketPrice}\n srcToken={tokenFrom}\n destToken={tokenTo}\n />\n {otherDexesProps.map((dexProps, index) => (\n <DexItem\n {...dexProps}\n key={index}\n price={marketPrice}\n srcToken={tokenFrom}\n destToken={tokenTo}\n />\n ))}\n </div>\n );\n};\n"],"names":["DexesList","t0","$","_c","marketPrice","tokenFrom","tokenTo","others","length","bestRoute","t1","t2","Symbol","for","bb0","bestDexProps","getBestDexProps","otherDexesProps","getOtherDexesProps","t3","map","dexProps","index"],"mappings":"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"}
|