@velora-dex/widget 0.0.18 → 0.0.19
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/SwapModeSwitcher/state/swapModeAtom.d.ts.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/state/swapModeAtom.js.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.d.ts.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js +40 -24
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js.map +1 -1
- package/dist/hooks/gas/useGasPrices.js +2 -2
- package/dist/hooks/gas/useGasPrices.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useIsTokenSupportedInDelta.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useIsTokenSupportedInDelta.js +5 -1
- package/dist/hooks/swap/prices/delta/queries/useIsTokenSupportedInDelta.js.map +1 -1
- package/dist/hooks/tokens/balances/queries.d.ts.map +1 -1
- package/dist/hooks/tokens/balances/queries.js +2 -2
- package/dist/hooks/tokens/balances/queries.js.map +1 -1
- package/dist/hooks/tokens/prices/queries.js +2 -2
- package/dist/hooks/tokens/prices/queries.js.map +1 -1
- package/dist/hooks/tokens/useTokenTaxFee.js +2 -2
- package/dist/hooks/tokens/useTokenTaxFee.js.map +1 -1
- package/dist/hooks/useSDK.d.ts.map +1 -1
- package/dist/hooks/useSDK.js +3 -2
- package/dist/hooks/useSDK.js.map +1 -1
- package/dist/lib/constants/index.d.ts +1 -1
- package/dist/lib/constants/index.d.ts.map +1 -1
- package/dist/lib/constants/index.js +2 -2
- package/dist/lib/constants/index.js.map +1 -1
- package/dist/lib/web3/privy/config.js +1 -1
- package/dist/lib/web3/wagmi/config.js +1 -1
- package/dist/styles.css +1 -1
- package/dist/test/Configurator.d.ts.map +1 -1
- package/dist/widget/inputs/state/selectedTokenActionsAtom.d.ts.map +1 -1
- package/dist/widget/inputs/state/selectedTokenActionsAtom.js +12 -1
- package/dist/widget/inputs/state/selectedTokenActionsAtom.js.map +1 -1
- package/dist/widget/state/configActionsAtom.d.ts.map +1 -1
- package/dist/widget/state/configActionsAtom.js +2 -0
- package/dist/widget/state/configActionsAtom.js.map +1 -1
- package/dist/widget/types.d.ts +2 -11
- package/dist/widget/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/test/TestButton.d.ts +0 -2
- package/dist/test/TestButton.d.ts.map +0 -1
- package/dist/test/logger-demo.d.ts +0 -5
- package/dist/test/logger-demo.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swapModeAtom.d.ts","sourceRoot":"","sources":["../../../../../src/components/widget/SwapModeSwitcher/state/swapModeAtom.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAKxC,eAAO,MAAM,gBAAgB;;CAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"swapModeAtom.d.ts","sourceRoot":"","sources":["../../../../../src/components/widget/SwapModeSwitcher/state/swapModeAtom.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAKxC,eAAO,MAAM,gBAAgB;;CAA0B,CAAC;AAIxD,eAAO,MAAM,YAAY,gCAEvB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swapModeAtom.js","sources":["../../../../../src/components/widget/SwapModeSwitcher/state/swapModeAtom.ts"],"sourcesContent":["import { atom } from \"jotai\";\nimport type { SwapMode } from \"./types\";\n\nimport { widgetConfigAtom } from \"@/widget/state/configAtom\";\n\n// internal atom to track user preference\nexport const userSwapModeAtom = atom<SwapMode>(\"delta\");\n\n// derived atom to determine the current swap mode\nexport const swapModeAtom = atom((get) => {\n return !get(widgetConfigAtom).enableDelta ? \"market\" : get(userSwapModeAtom);\n});\n"],"names":["userSwapModeAtom","atom","swapModeAtom","get","widgetConfigAtom","enableDelta"],"mappings":";;;AAMO,MAAMA,gBAAAA,GAAmBC,KAAe,OAAO;
|
|
1
|
+
{"version":3,"file":"swapModeAtom.js","sources":["../../../../../src/components/widget/SwapModeSwitcher/state/swapModeAtom.ts"],"sourcesContent":["import { atom } from \"jotai\";\nimport type { SwapMode } from \"./types\";\n\nimport { widgetConfigAtom } from \"@/widget/state/configAtom\";\n\n// internal atom to track user preference\nexport const userSwapModeAtom = atom<SwapMode>(\"delta\");\n\n// derived atom to determine the current swap mode.\n// not always equal to priceMode, use carefully\nexport const swapModeAtom = atom((get) => {\n return !get(widgetConfigAtom).enableDelta ? \"market\" : get(userSwapModeAtom);\n});\n"],"names":["userSwapModeAtom","atom","swapModeAtom","get","widgetConfigAtom","enableDelta"],"mappings":";;;AAMO,MAAMA,gBAAAA,GAAmBC,KAAe,OAAO;AAI/C,MAAMC,YAAAA,GAAeD,KAAME,CAAAA,GAAAA,KAAQ;AACxC,EAAA,OAAO,CAACA,GAAAA,CAAIC,gBAAgB,EAAEC,WAAAA,GAAc,QAAA,GAAWF,IAAIH,gBAAgB,CAAA;AAC7E,CAAC;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWrapEthProps.d.ts","sourceRoot":"","sources":["../../../../../src/components/widget/WrapEth/hooks/useWrapEthProps.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"useWrapEthProps.d.ts","sourceRoot":"","sources":["../../../../../src/components/widget/WrapEth/hooks/useWrapEthProps.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAQ5C,wBAAgB,eAAe,IAAI,YAAY,CAoD9C"}
|
|
@@ -3,14 +3,15 @@ import { isETH, isWETH } from '../../../../tokens/utils/eth.js';
|
|
|
3
3
|
import { payInputAmountAtom, payInputAmountWeiAtom } from '../../../../widget/inputs/state/inputAmountAtom.js';
|
|
4
4
|
import { useWidgetTokens } from '../../../../widget/inputs/state/selectedTokenAtom.js';
|
|
5
5
|
import { useAtomValue } from 'jotai';
|
|
6
|
-
import { swapModeAtom } from '../../SwapModeSwitcher/state/swapModeAtom.js';
|
|
7
6
|
import { useAccount } from 'wagmi';
|
|
8
7
|
import { useNativeBalance } from '../../../../hooks/tokens/balances/useTokenBalance.js';
|
|
9
8
|
import { useIsCrossChain } from '../../../../widget/state/isCrosschainAtom.js';
|
|
10
9
|
import { useSwapSide } from '../../SwapModeSwitcher/state/swapSideAtom.js';
|
|
10
|
+
import { useGlobalDeltaEnabled } from '../../../../hooks/useGlobalDeltaEnabled.js';
|
|
11
|
+
import { useCurrentSwapPrice } from '../../../../hooks/swap/prices/useSwapPrices.js';
|
|
11
12
|
|
|
12
13
|
function useWrapEthProps() {
|
|
13
|
-
const $ = distExports.c(
|
|
14
|
+
const $ = distExports.c(14);
|
|
14
15
|
const {
|
|
15
16
|
address: account
|
|
16
17
|
} = useAccount();
|
|
@@ -46,43 +47,58 @@ function useWrapEthProps() {
|
|
|
46
47
|
} = useNativeBalance(t1);
|
|
47
48
|
const payInputAmount = useAtomValue(payInputAmountAtom);
|
|
48
49
|
const payInputAmountWei = useAtomValue(payInputAmountWeiAtom);
|
|
49
|
-
const
|
|
50
|
+
const {
|
|
51
|
+
isDeltaMode,
|
|
52
|
+
enabledOnCurrentChain: deltaEnabledOnCurrentChain
|
|
53
|
+
} = useGlobalDeltaEnabled();
|
|
50
54
|
const isBuy = useSwapSide() === "BUY";
|
|
51
55
|
const isCrossChain = useIsCrossChain();
|
|
52
|
-
const isEthToWethSameChain = tokenFromIsETH && tokenToIsWETH && !isCrossChain;
|
|
53
|
-
const shouldWrap = !!account && isDelta && tokenFromIsETH && !isBuy && !!tokenTo && !isEthToWethSameChain;
|
|
54
|
-
const canWrap = !!account && !!balance?.value && balance.value > BigInt(payInputAmountWei);
|
|
55
56
|
let t2;
|
|
56
|
-
if ($[4]
|
|
57
|
-
t2 =
|
|
57
|
+
if ($[4] === Symbol.for("react.memo_cache_sentinel")) {
|
|
58
|
+
t2 = {
|
|
59
|
+
enabled: false
|
|
60
|
+
};
|
|
61
|
+
$[4] = t2;
|
|
62
|
+
} else {
|
|
63
|
+
t2 = $[4];
|
|
64
|
+
}
|
|
65
|
+
const {
|
|
66
|
+
price
|
|
67
|
+
} = useCurrentSwapPrice(t2);
|
|
68
|
+
const isEthToWethSameChain = tokenFromIsETH && tokenToIsWETH && !isCrossChain;
|
|
69
|
+
const shouldWrap = !!account && !!price && isDeltaMode && deltaEnabledOnCurrentChain && tokenFromIsETH && !isBuy && !!tokenTo && !isEthToWethSameChain;
|
|
70
|
+
const canWrap = !!account && !!balance?.value && balance.value > BigInt(payInputAmountWei) && !!price;
|
|
71
|
+
let t3;
|
|
72
|
+
if ($[5] !== payInputAmount || $[6] !== payInputAmountWei || $[7] !== tokenFromIsETH) {
|
|
73
|
+
t3 = tokenFromIsETH ? {
|
|
58
74
|
ethAmountWei: payInputAmountWei,
|
|
59
75
|
ethAmountUnit: payInputAmount
|
|
60
76
|
} : void 0;
|
|
61
|
-
$[
|
|
62
|
-
$[
|
|
63
|
-
$[
|
|
64
|
-
$[
|
|
77
|
+
$[5] = payInputAmount;
|
|
78
|
+
$[6] = payInputAmountWei;
|
|
79
|
+
$[7] = tokenFromIsETH;
|
|
80
|
+
$[8] = t3;
|
|
65
81
|
} else {
|
|
66
|
-
|
|
82
|
+
t3 = $[8];
|
|
67
83
|
}
|
|
68
|
-
const amounts =
|
|
69
|
-
let
|
|
70
|
-
if ($[
|
|
71
|
-
|
|
84
|
+
const amounts = t3;
|
|
85
|
+
let t4;
|
|
86
|
+
if ($[9] !== amounts || $[10] !== canWrap || $[11] !== isLoading || $[12] !== shouldWrap) {
|
|
87
|
+
t4 = {
|
|
72
88
|
shouldWrap,
|
|
73
89
|
canWrap,
|
|
74
90
|
isLoading,
|
|
75
91
|
...amounts
|
|
76
92
|
};
|
|
77
|
-
$[
|
|
78
|
-
$[
|
|
79
|
-
$[
|
|
80
|
-
$[
|
|
81
|
-
$[
|
|
93
|
+
$[9] = amounts;
|
|
94
|
+
$[10] = canWrap;
|
|
95
|
+
$[11] = isLoading;
|
|
96
|
+
$[12] = shouldWrap;
|
|
97
|
+
$[13] = t4;
|
|
82
98
|
} else {
|
|
83
|
-
|
|
99
|
+
t4 = $[13];
|
|
84
100
|
}
|
|
85
|
-
return
|
|
101
|
+
return t4;
|
|
86
102
|
}
|
|
87
103
|
|
|
88
104
|
export { useWrapEthProps };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWrapEthProps.js","sources":["../../../../../src/components/widget/WrapEth/hooks/useWrapEthProps.ts"],"sourcesContent":["import { isETH, isWETH } from \"@/tokens/utils/eth\";\nimport {\n payInputAmountAtom,\n payInputAmountWeiAtom,\n} from \"@/widget/inputs/state/inputAmountAtom\";\nimport { useWidgetTokens } from \"@/widget/inputs/state/selectedTokenAtom\";\nimport { useAtomValue } from \"jotai\";\nimport type { WrapEthProps } from \"./types\";\nimport {
|
|
1
|
+
{"version":3,"file":"useWrapEthProps.js","sources":["../../../../../src/components/widget/WrapEth/hooks/useWrapEthProps.ts"],"sourcesContent":["import { isETH, isWETH } from \"@/tokens/utils/eth\";\nimport {\n payInputAmountAtom,\n payInputAmountWeiAtom,\n} from \"@/widget/inputs/state/inputAmountAtom\";\nimport { useWidgetTokens } from \"@/widget/inputs/state/selectedTokenAtom\";\nimport { useAtomValue } from \"jotai\";\nimport type { WrapEthProps } from \"./types\";\nimport { useAccount } from \"wagmi\";\nimport { useNativeBalance } from \"@/hooks/tokens/balances/useTokenBalance\";\nimport { useIsCrossChain } from \"@/widget/state/isCrosschainAtom\";\nimport { useSwapSide } from \"../../SwapModeSwitcher/state/swapSideAtom\";\nimport { useGlobalDeltaEnabled } from \"@/hooks/useGlobalDeltaEnabled\";\nimport { useCurrentSwapPrice } from \"@/hooks/swap/prices/useSwapPrices\";\n\nexport function useWrapEthProps(): WrapEthProps {\n const { address: account } = useAccount();\n const { tokenFrom, tokenTo } = useWidgetTokens();\n\n const tokenFromIsETH = isETH(tokenFrom);\n const tokenToIsWETH = !!tokenTo && isWETH(tokenTo, tokenTo.network);\n\n const { data: balance, isLoading } = useNativeBalance({\n queryOptions: {\n enabled: tokenFromIsETH,\n },\n });\n const payInputAmount = useAtomValue(payInputAmountAtom);\n const payInputAmountWei = useAtomValue(payInputAmountWeiAtom);\n const { isDeltaMode, enabledOnCurrentChain: deltaEnabledOnCurrentChain } =\n useGlobalDeltaEnabled();\n const isBuy = useSwapSide() === \"BUY\";\n const isCrossChain = useIsCrossChain();\n // useSwapPrice will fetch Delta price for WETH-tokenTo, if tokenFrom=ETH\n const { price } = useCurrentSwapPrice({ enabled: false });\n\n const isEthToWethSameChain = tokenFromIsETH && tokenToIsWETH && !isCrossChain;\n\n const shouldWrap =\n !!account &&\n // check if there is price for WETH-tokenTo,\n // for the whole flow to be meaningful and don't have the cases when we wrapped but then can't swap\n !!price &&\n isDeltaMode &&\n deltaEnabledOnCurrentChain &&\n tokenFromIsETH &&\n !isBuy &&\n !!tokenTo &&\n // user want to explicitly swap ETH-WETH, we should stick to market priceMode\n !isEthToWethSameChain;\n\n const canWrap =\n !!account &&\n !!balance?.value &&\n balance.value > BigInt(payInputAmountWei) &&\n !!price;\n\n const amounts = tokenFromIsETH\n ? { ethAmountWei: payInputAmountWei, ethAmountUnit: payInputAmount }\n : undefined;\n\n return {\n shouldWrap,\n canWrap,\n isLoading,\n ...amounts,\n };\n}\n"],"names":["useWrapEthProps","$","_c","address","account","useAccount","tokenFrom","tokenTo","useWidgetTokens","t0","isETH","tokenFromIsETH","tokenToIsWETH","isWETH","network","t1","queryOptions","enabled","data","balance","isLoading","useNativeBalance","payInputAmount","useAtomValue","payInputAmountAtom","payInputAmountWei","payInputAmountWeiAtom","isDeltaMode","enabledOnCurrentChain","deltaEnabledOnCurrentChain","useGlobalDeltaEnabled","isBuy","useSwapSide","isCrossChain","useIsCrossChain","t2","Symbol","for","price","useCurrentSwapPrice","isEthToWethSameChain","shouldWrap","canWrap","value","BigInt","t3","ethAmountWei","ethAmountUnit","undefined","amounts","t4"],"mappings":";;;;;;;;;;;;AAeO,SAAAA,eAAAA,GAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AACL,EAAA,MAAA;AAAA,IAAAC,OAAAA,EAAAC;AAAAA,MAA6BC,UAAAA,EAAW;AACxC,EAAA,MAAA;AAAA,IAAAC,SAAAA;AAAAA,IAAAC;AAAAA,MAA+BC,eAAAA,EAAgB;AAAE,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAR,CAAAA,QAAAK,SAAAA,EAAA;AAE1BG,IAAAA,EAAAA,GAAAC,MAAMJ,SAAS,CAAA;AAACL,IAAAA,CAAAA,MAAAK,SAAAA;AAAAL,IAAAA,CAAAA,MAAAQ,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAR,EAAA,CAAA,CAAA;AAAA;AAAvC,EAAA,MAAAU,cAAAA,GAAuBF,EAAAA;AACvB,EAAA,MAAAG,gBAAsB,CAAA,CAAEL,WAAWM,MAAAA,CAAON,OAAAA,EAASA,QAAOO,OAAQ,CAAA;AAAE,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAd,CAAAA,QAAAU,cAAAA,EAAA;AAEdI,IAAAA,EAAAA,GAAA;AAAA,MAAAC,YAAAA,EAAA;AAAA,QAAAC,OAAAA,EAEzCN;AAAAA;AAAc,KAAA;AAE1BV,IAAAA,CAAAA,MAAAU,cAAAA;AAAAV,IAAAA,CAAAA,MAAAc,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAd,EAAA,CAAA,CAAA;AAAA;AAJD,EAAA,MAAA;AAAA,IAAAiB,IAAAA,EAAAC,OAAAA;AAAAA,IAAAC;AAAAA,GAAA,GAAqCC,iBAAiBN,EAIrD,CAAA;AACD,EAAA,MAAAO,cAAAA,GAAuBC,aAAAC,kBAA+B,CAAA;AACtD,EAAA,MAAAC,iBAAAA,GAA0BF,aAAAG,qBAAkC,CAAA;AAC5D,EAAA,MAAA;AAAA,IAAAC,WAAAA;AAAAA,IAAAC,qBAAAA,EAAAC;AAAAA,MACEC,qBAAAA,EAAsB;AACxB,EAAA,MAAAC,KAAAA,GAAcC,aAAY,KAAM,KAAA;AAChC,EAAA,MAAAC,eAAqBC,eAAAA,EAAgB;AAAE,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAlC,EAAA,CAAA,CAAA,KAAAmC,MAAAA,CAAAC,GAAAA,CAAA,2BAAA,CAAA,EAAA;AAEDF,IAAAA,EAAAA,GAAA;AAAA,MAAAlB,OAAAA,EAAA;AAAA,KAAA;AAAkBhB,IAAAA,CAAAA,MAAAkC,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAlC,EAAA,CAAA,CAAA;AAAA;AAAxD,EAAA,MAAA;AAAA,IAAAqC;AAAAA,GAAA,GAAkBC,oBAAoBJ,EAAkB,CAAA;AAExD,EAAA,MAAAK,oBAAAA,GAA6B7B,cAAAA,IAAkBC,aAAAA,KAAkBqB,YAAAA;AAEjE,EAAA,MAAAQ,UAAAA,GACE,CAAA,CAAErC,OAAAA,IAAO,CAAA,CAGPkC,KAAAA,IACFX,WAAAA,IACAE,0BAAAA,IACAlB,kBAAc,CACboB,KAAAA,IAAK,CAAA,CACJxB,YAEDiC,oBAAAA;AAEH,EAAA,MAAAE,OAAAA,GACE,CAAA,CAAEtC,OAAAA,IAAO,CAAA,CACPe,OAAAA,EAAOwB,KAAAA,IACTxB,OAAAA,CAAOwB,KAAAA,GAASC,MAAAA,CAAOnB,iBAAiB,CAAA,MACtCa,KAAAA;AAAM,EAAA,IAAAO,EAAAA;AAAA,EAAA,IAAA5C,CAAAA,CAAA,CAAA,CAAA,KAAAqB,cAAAA,IAAArB,CAAAA,QAAAwB,iBAAAA,IAAAxB,CAAAA,CAAA,CAAA,CAAA,KAAAU,cAAAA,EAAA;AAEMkC,IAAAA,EAAAA,GAAAlC,cAAAA,GAAc;AAAA,MAAAmC,YAAAA,EACVrB,iBAAAA;AAAAA,MAAiBsB,aAAAA,EAAiBzB;AAAAA,KAAc,GAAA0B,MAAAA;AACvD/C,IAAAA,CAAAA,MAAAqB,cAAAA;AAAArB,IAAAA,CAAAA,MAAAwB,iBAAAA;AAAAxB,IAAAA,CAAAA,MAAAU,cAAAA;AAAAV,IAAAA,CAAAA,MAAA4C,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAA5C,EAAA,CAAA,CAAA;AAAA;AAFb,EAAA,MAAAgD,OAAAA,GAAgBJ,EAAAA;AAEF,EAAA,IAAAK,EAAAA;AAAA,EAAA,IAAAjD,CAAAA,CAAA,CAAA,CAAA,KAAAgD,OAAAA,IAAAhD,EAAA,EAAA,CAAA,KAAAyC,OAAAA,IAAAzC,CAAAA,CAAA,EAAA,CAAA,KAAAmB,SAAAA,IAAAnB,CAAAA,SAAAwC,UAAAA,EAAA;AAEPS,IAAAA,EAAAA,GAAA;AAAA,MAAAT,UAAAA;AAAAA,MAAAC,OAAAA;AAAAA,MAAAtB,SAAAA;AAAAA,MAAA,GAIF6B;AAAAA,KAAO;AACXhD,IAAAA,CAAAA,MAAAgD,OAAAA;AAAAhD,IAAAA,CAAAA,OAAAyC,OAAAA;AAAAzC,IAAAA,CAAAA,OAAAmB,SAAAA;AAAAnB,IAAAA,CAAAA,OAAAwC,UAAAA;AAAAxC,IAAAA,CAAAA,OAAAiD,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAjD,EAAA,EAAA,CAAA;AAAA;AAAA,EAAA,OALMiD,EAAAA;AAKN;;;;"}
|
|
@@ -2,7 +2,7 @@ import { d as distExports } from '../../_virtual/index.js';
|
|
|
2
2
|
import axios from 'axios';
|
|
3
3
|
import { useQuery } from '@tanstack/react-query';
|
|
4
4
|
import { useChainId } from 'wagmi';
|
|
5
|
-
import {
|
|
5
|
+
import { API_URL } from '../../lib/constants/index.js';
|
|
6
6
|
import { isLegacyPriceResponse, weiToGwei } from './utils.js';
|
|
7
7
|
import { gasPricesConfig } from './config.js';
|
|
8
8
|
|
|
@@ -44,7 +44,7 @@ function useGasPrices(t0) {
|
|
|
44
44
|
const allowEip1559 = config.eip1559;
|
|
45
45
|
const {
|
|
46
46
|
data
|
|
47
|
-
} = await axios.get(`${
|
|
47
|
+
} = await axios.get(`${API_URL}/prices/gas/${chainId}`, {
|
|
48
48
|
signal,
|
|
49
49
|
params: {
|
|
50
50
|
eip1559: allowEip1559
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGasPrices.js","sources":["../../../src/hooks/gas/useGasPrices.ts"],"sourcesContent":["import axios from \"axios\";\nimport { useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { useChainId } from \"wagmi\";\nimport {
|
|
1
|
+
{"version":3,"file":"useGasPrices.js","sources":["../../../src/hooks/gas/useGasPrices.ts"],"sourcesContent":["import axios from \"axios\";\nimport { useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { useChainId } from \"wagmi\";\nimport { API_URL } from \"@/lib/constants\";\nimport type { ConsolidatedGasPrices, GasPricesAPIResponse } from \"./types\";\nimport { isLegacyPriceResponse, weiToGwei } from \"./utils\";\nimport { gasPricesConfig } from \"./config\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\n\nconst GAS_PRICES_BASE_QUERY_KEY = \"gas-prices\";\n\ntype GasPricesQueryKey = [\n typeof GAS_PRICES_BASE_QUERY_KEY,\n chainId: SupportedChainId,\n eip1559Enabled: boolean,\n];\n\nexport function constructGasParamsQueryKey(\n chainId: SupportedChainId,\n eop1559Enabled: boolean\n): GasPricesQueryKey {\n return [GAS_PRICES_BASE_QUERY_KEY, chainId, eop1559Enabled];\n}\n\nexport function useGasPrices({\n chainId: _chainId,\n}: {\n chainId?: SupportedChainId;\n} = {}): UseQueryResult<ConsolidatedGasPrices, Error> {\n const appChainId = useChainId();\n const chainId = _chainId ?? appChainId;\n\n const config = gasPricesConfig[chainId];\n\n return useQuery<\n ConsolidatedGasPrices,\n Error,\n ConsolidatedGasPrices,\n GasPricesQueryKey\n >({\n queryKey: constructGasParamsQueryKey(chainId, config.eip1559),\n queryFn: async ({ signal }) => {\n const allowEip1559 = config.eip1559;\n\n const { data } = await axios.get<GasPricesAPIResponse>(\n `${API_URL}/prices/gas/${chainId}`,\n { signal, params: { eip1559: allowEip1559 } }\n );\n\n const legacyPrices = isLegacyPriceResponse(!allowEip1559, data)\n ? {\n slow: weiToGwei(data.safeLow),\n standard: weiToGwei(data.average),\n fast: weiToGwei(data.fast),\n instant: weiToGwei(data.fastest),\n }\n : {\n slow: weiToGwei(data.safeLow.legacyGasPrice),\n standard: weiToGwei(data.average.legacyGasPrice),\n fast: weiToGwei(data.fast.legacyGasPrice),\n instant: weiToGwei(data.fastest.legacyGasPrice),\n };\n\n const eip1559Prices = !isLegacyPriceResponse(!allowEip1559, data)\n ? {\n slow: {\n maxFeePerGas: weiToGwei(data.safeLow.maxFeePerGas),\n maxPriorityFeePerGas: weiToGwei(\n data.safeLow.maxPriorityFeePerGas\n ),\n },\n standard: {\n maxFeePerGas: weiToGwei(data.average.maxFeePerGas),\n maxPriorityFeePerGas: weiToGwei(\n data.average.maxPriorityFeePerGas\n ),\n },\n fast: {\n maxFeePerGas: weiToGwei(data.fast.maxFeePerGas),\n maxPriorityFeePerGas: weiToGwei(data.fast.maxPriorityFeePerGas),\n },\n instant: {\n maxFeePerGas: weiToGwei(data.fastest.maxFeePerGas),\n maxPriorityFeePerGas: weiToGwei(\n data.fastest.maxPriorityFeePerGas\n ),\n },\n }\n : undefined;\n\n return {\n legacyPrices,\n eip1559Prices,\n blockData: data.blockData,\n optimisticGasOracleData:\n data.optimismGasOracleData || data.baseGasOracleData,\n };\n },\n\n enabled: !!chainId,\n refetchInterval: import.meta.env.DEV\n ? config.refetchInterval * 2 // avoid rate limiting in dev\n : config.refetchInterval,\n });\n}\n"],"names":["GAS_PRICES_BASE_QUERY_KEY","constructGasParamsQueryKey","chainId","eop1559Enabled","useGasPrices","t0","$","_c","t1","_chainId","appChainId","useChainId","config","gasPricesConfig","t2","eip1559","t3","t4","signal","allowEip1559","data","axios","get","API_URL","params","legacyPrices","isLegacyPriceResponse","slow","weiToGwei","safeLow","standard","average","fast","instant","fastest","legacyGasPrice","eip1559Prices","maxFeePerGas","maxPriorityFeePerGas","undefined","blockData","optimisticGasOracleData","optimismGasOracleData","baseGasOracleData","t5","refetchInterval","t6","queryKey","queryFn","enabled","useQuery"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useIsTokenSupportedInDelta.d.ts","sourceRoot":"","sources":["../../../../../../src/hooks/swap/prices/delta/queries/useIsTokenSupportedInDelta.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useIsTokenSupportedInDelta.d.ts","sourceRoot":"","sources":["../../../../../../src/hooks/swap/prices/delta/queries/useIsTokenSupportedInDelta.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAG/B,KAAK,6BAA6B,GAAG,MAAM,GAAG,SAAS,CAAC;AACxD,KAAK,6BAA6B,GAAG,OAAO,CAAC;AAE7C,KAAK,kCAAkC,CAAC,KAAK,GAAG,6BAA6B,IAC3E,IAAI,CACF,eAAe,CACb,6BAA6B,EAC7B,KAAK,EACL,KAAK,EACL,+BAA+B,CAChC,EACD,UAAU,GAAG,SAAS,CACvB,CAAC;AACJ,KAAK,kCAAkC,CAAC,KAAK,GAAG,6BAA6B,IAC3E,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAE/B,KAAK,iCAAiC,CAAC,KAAK,GAAG,6BAA6B,IAC1E;IACE,KAAK,EAAE,6BAA6B,CAAC;IACrC,KAAK,CAAC,EAAE,kCAAkC,CAAC,KAAK,CAAC,CAAC;IAClD,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEJ,KAAK,+BAA+B,GAAG;IACrC,IAAI,EAAE,+BAA+B;IACrC,OAAO,EAAE,MAAM;IACf,KAAK,EAAE,6BAA6B;CACrC,CAAC;AAEF,wBAAgB,+BAA+B,CAC7C,KAAK,GAAG,6BAA6B,EACrC,EACA,KAAK,EACL,KAAK,EACL,OAAO,GACR,EAAE,iCAAiC,CAAC,KAAK,CAAC,GAAG,kCAAkC,CAAC,KAAK,CAAC,CAsBtF"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { d as distExports } from '../../../../../_virtual/index.js';
|
|
2
|
+
import { useGlobalDeltaEnabled } from '../../../../useGlobalDeltaEnabled.js';
|
|
2
3
|
import { useDeltaSDK } from '../../../../useSDK.js';
|
|
3
4
|
import { useQuery } from '@tanstack/react-query';
|
|
4
5
|
import { assert } from 'ts-essentials';
|
|
@@ -23,6 +24,9 @@ function useIsTokenSupportedInDeltaQuery(t0) {
|
|
|
23
24
|
const {
|
|
24
25
|
sdk
|
|
25
26
|
} = useDeltaSDK(t1);
|
|
27
|
+
const {
|
|
28
|
+
enabledOnCurrentChain
|
|
29
|
+
} = useGlobalDeltaEnabled();
|
|
26
30
|
let t2;
|
|
27
31
|
if ($[2] !== token) {
|
|
28
32
|
t2 = token?.toLowerCase();
|
|
@@ -58,7 +62,7 @@ function useIsTokenSupportedInDeltaQuery(t0) {
|
|
|
58
62
|
} else {
|
|
59
63
|
t4 = $[9];
|
|
60
64
|
}
|
|
61
|
-
const t5 = !!token && (query?.enabled ?? true);
|
|
65
|
+
const t5 = !!token && enabledOnCurrentChain && (query?.enabled ?? true);
|
|
62
66
|
let t6;
|
|
63
67
|
if ($[10] !== query || $[11] !== t3 || $[12] !== t4 || $[13] !== t5) {
|
|
64
68
|
t6 = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useIsTokenSupportedInDelta.js","sources":["../../../../../../src/hooks/swap/prices/delta/queries/useIsTokenSupportedInDelta.ts"],"sourcesContent":["import { useDeltaSDK } from \"@/hooks/useSDK\";\nimport {\n useQuery,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport { assert } from \"ts-essentials\";\n\ntype IsTokenSupportedInDeltaParams = string | undefined; // token address\ntype IsTokenSupportedInDeltaReturn = boolean;\n\ntype IsTokenSupportedInDeltaQueryParams<TData = IsTokenSupportedInDeltaReturn> =\n Omit<\n UseQueryOptions<\n IsTokenSupportedInDeltaReturn,\n Error,\n TData,\n IsTokenSupportedInDeltaQueryKey\n >,\n \"queryKey\" | \"queryFn\"\n >;\ntype IsTokenSupportedInDeltaQueryResult<TData = IsTokenSupportedInDeltaReturn> =\n UseQueryResult<TData, Error>;\n\ntype IsTokenSupportedInDeltaQueryInput<TData = IsTokenSupportedInDeltaReturn> =\n {\n token: IsTokenSupportedInDeltaParams;\n query?: IsTokenSupportedInDeltaQueryParams<TData>;\n chainId: number;\n };\n\ntype IsTokenSupportedInDeltaQueryKey = [\n base: \"swap/delta/is-token-supported\",\n chainId: number,\n token: IsTokenSupportedInDeltaParams,\n];\n\nexport function useIsTokenSupportedInDeltaQuery<\n TData = IsTokenSupportedInDeltaReturn,\n>({\n token,\n query,\n chainId,\n}: IsTokenSupportedInDeltaQueryInput<TData>): IsTokenSupportedInDeltaQueryResult<TData> {\n const { sdk } = useDeltaSDK({ chainId });\n\n return useQuery<\n IsTokenSupportedInDeltaReturn,\n Error,\n TData,\n IsTokenSupportedInDeltaQueryKey\n >({\n queryKey: [\"swap/delta/is-token-supported\", chainId, token?.toLowerCase()],\n queryFn: ({ signal }) => {\n assert(token, \"token is required\");\n const isSupported = sdk.isTokenSupportedInDelta(token, { signal });\n return isSupported;\n },\n // never changes during App session\n staleTime: Infinity,\n gcTime: Infinity,\n ...query,\n enabled: !!token && (query?.enabled ?? true),\n });\n}\n"],"names":["useIsTokenSupportedInDeltaQuery","t0","$","_c","token","query","chainId","t1","sdk","useDeltaSDK","t2","toLowerCase","t3","t4","t5","signal","assert","isSupported","isTokenSupportedInDelta","enabled","t6","queryKey","queryFn","staleTime","Infinity","gcTime","useQuery"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useIsTokenSupportedInDelta.js","sources":["../../../../../../src/hooks/swap/prices/delta/queries/useIsTokenSupportedInDelta.ts"],"sourcesContent":["import { useGlobalDeltaEnabled } from \"@/hooks/useGlobalDeltaEnabled\";\nimport { useDeltaSDK } from \"@/hooks/useSDK\";\nimport {\n useQuery,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport { assert } from \"ts-essentials\";\n\ntype IsTokenSupportedInDeltaParams = string | undefined; // token address\ntype IsTokenSupportedInDeltaReturn = boolean;\n\ntype IsTokenSupportedInDeltaQueryParams<TData = IsTokenSupportedInDeltaReturn> =\n Omit<\n UseQueryOptions<\n IsTokenSupportedInDeltaReturn,\n Error,\n TData,\n IsTokenSupportedInDeltaQueryKey\n >,\n \"queryKey\" | \"queryFn\"\n >;\ntype IsTokenSupportedInDeltaQueryResult<TData = IsTokenSupportedInDeltaReturn> =\n UseQueryResult<TData, Error>;\n\ntype IsTokenSupportedInDeltaQueryInput<TData = IsTokenSupportedInDeltaReturn> =\n {\n token: IsTokenSupportedInDeltaParams;\n query?: IsTokenSupportedInDeltaQueryParams<TData>;\n chainId: number;\n };\n\ntype IsTokenSupportedInDeltaQueryKey = [\n base: \"swap/delta/is-token-supported\",\n chainId: number,\n token: IsTokenSupportedInDeltaParams,\n];\n\nexport function useIsTokenSupportedInDeltaQuery<\n TData = IsTokenSupportedInDeltaReturn,\n>({\n token,\n query,\n chainId,\n}: IsTokenSupportedInDeltaQueryInput<TData>): IsTokenSupportedInDeltaQueryResult<TData> {\n const { sdk } = useDeltaSDK({ chainId });\n const { enabledOnCurrentChain } = useGlobalDeltaEnabled();\n\n return useQuery<\n IsTokenSupportedInDeltaReturn,\n Error,\n TData,\n IsTokenSupportedInDeltaQueryKey\n >({\n queryKey: [\"swap/delta/is-token-supported\", chainId, token?.toLowerCase()],\n queryFn: ({ signal }) => {\n assert(token, \"token is required\");\n const isSupported = sdk.isTokenSupportedInDelta(token, { signal });\n return isSupported;\n },\n // never changes during App session\n staleTime: Infinity,\n gcTime: Infinity,\n ...query,\n enabled: !!token && enabledOnCurrentChain && (query?.enabled ?? true),\n });\n}\n"],"names":["useIsTokenSupportedInDeltaQuery","t0","$","_c","token","query","chainId","t1","sdk","useDeltaSDK","enabledOnCurrentChain","useGlobalDeltaEnabled","t2","toLowerCase","t3","t4","t5","signal","assert","isSupported","isTokenSupportedInDelta","enabled","t6","queryKey","queryFn","staleTime","Infinity","gcTime","useQuery"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../../../src/hooks/tokens/balances/queries.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAI7D,OAAO,KAAK,EAEV,wBAAwB,EACxB,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../../../src/hooks/tokens/balances/queries.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAI7D,OAAO,KAAK,EAEV,wBAAwB,EACxB,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAgBjB,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,EACxD,uBAAuB,EACvB,OAAO,EACP,OAAO,GACR,EAAE,wBAAwB,CAAC,KAAK,CAAC,GAAG,eAAe,CAClD,iBAAiB,EACjB,KAAK,EACL,KAAK,EACL,qBAAqB,CACtB,CAkEA"}
|
|
@@ -12,6 +12,7 @@ function constructTokenBalancesQueryKey({
|
|
|
12
12
|
}) {
|
|
13
13
|
return ["token-balances", chainId, tokenAddressesLowercase, account];
|
|
14
14
|
}
|
|
15
|
+
const BATCH_SIZE = 1024 * 5;
|
|
15
16
|
function constructTokenBalancesQueryOptions({
|
|
16
17
|
tokenAddressesLowercase,
|
|
17
18
|
chainId,
|
|
@@ -49,8 +50,7 @@ function constructTokenBalancesQueryOptions({
|
|
|
49
50
|
});
|
|
50
51
|
const multicallPromise = multicall(client, {
|
|
51
52
|
contracts,
|
|
52
|
-
batchSize:
|
|
53
|
-
// arbitrary, don't know what is the best value to use
|
|
53
|
+
batchSize: BATCH_SIZE
|
|
54
54
|
});
|
|
55
55
|
let addressBalanceMap = {};
|
|
56
56
|
if (isRequestedEthBalance) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries.js","sources":["../../../../src/hooks/tokens/balances/queries.ts"],"sourcesContent":["import { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport { ETH_ADDRESS_LOWERCASE } from \"@/tokens/constants\";\nimport { isETH } from \"@/tokens/utils/eth\";\nimport type { UseQueryOptions } from \"@tanstack/react-query\";\nimport { assert } from \"ts-essentials\";\nimport { erc20Abi } from \"viem\";\nimport { getBalance, multicall } from \"viem/actions\";\nimport type {\n BalanceOfResult,\n ProduceQueryOptionsInput,\n TokenBalancesQueryKey,\n AddressBalanceMap,\n} from \"./types\";\n\nfunction constructTokenBalancesQueryKey({\n chainId,\n tokenAddressesLowercase,\n account,\n}: Pick<\n ProduceQueryOptionsInput,\n \"chainId\" | \"tokenAddressesLowercase\" | \"account\"\n>): TokenBalancesQueryKey {\n return [\"token-balances\", chainId, tokenAddressesLowercase, account];\n}\n\nexport function constructTokenBalancesQueryOptions<TData>({\n tokenAddressesLowercase,\n chainId,\n account,\n}: ProduceQueryOptionsInput<TData>): UseQueryOptions<\n AddressBalanceMap,\n Error,\n TData,\n TokenBalancesQueryKey\n> {\n const addressesWithoutEth = tokenAddressesLowercase.filter(\n (address) => !isETH({ address })\n );\n\n const isRequestedEthBalance =\n addressesWithoutEth.length < tokenAddressesLowercase.length;\n\n const queryKey = constructTokenBalancesQueryKey({\n chainId,\n tokenAddressesLowercase: tokenAddressesLowercase,\n account,\n });\n\n return {\n queryKey,\n queryFn: async () => {\n assert(account, \"account is required\");\n\n function constructAddressBalanceMap(results: BalanceOfResult[]) {\n return results.reduce<AddressBalanceMap>((acc, result, index) => {\n const tokenAddress = addressesWithoutEth[index];\n if (tokenAddress) acc[tokenAddress] = result;\n return acc;\n }, {});\n }\n\n const contracts = addressesWithoutEth.map((address) => ({\n address,\n abi: erc20Abi,\n functionName: \"balanceOf\" as const,\n args: [account],\n chainId,\n }));\n\n const client = wagmiConfig.getClient({ chainId });\n\n const multicallPromise = multicall(client, {\n contracts,\n batchSize:
|
|
1
|
+
{"version":3,"file":"queries.js","sources":["../../../../src/hooks/tokens/balances/queries.ts"],"sourcesContent":["import { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport { ETH_ADDRESS_LOWERCASE } from \"@/tokens/constants\";\nimport { isETH } from \"@/tokens/utils/eth\";\nimport type { UseQueryOptions } from \"@tanstack/react-query\";\nimport { assert } from \"ts-essentials\";\nimport { erc20Abi } from \"viem\";\nimport { getBalance, multicall } from \"viem/actions\";\nimport type {\n BalanceOfResult,\n ProduceQueryOptionsInput,\n TokenBalancesQueryKey,\n AddressBalanceMap,\n} from \"./types\";\n\nfunction constructTokenBalancesQueryKey({\n chainId,\n tokenAddressesLowercase,\n account,\n}: Pick<\n ProduceQueryOptionsInput,\n \"chainId\" | \"tokenAddressesLowercase\" | \"account\"\n>): TokenBalancesQueryKey {\n return [\"token-balances\", chainId, tokenAddressesLowercase, account];\n}\n\n// arbitrary, don't know what is the best value to use\nconst BATCH_SIZE = 1024 * 5; // 5 KB\n\nexport function constructTokenBalancesQueryOptions<TData>({\n tokenAddressesLowercase,\n chainId,\n account,\n}: ProduceQueryOptionsInput<TData>): UseQueryOptions<\n AddressBalanceMap,\n Error,\n TData,\n TokenBalancesQueryKey\n> {\n const addressesWithoutEth = tokenAddressesLowercase.filter(\n (address) => !isETH({ address })\n );\n\n const isRequestedEthBalance =\n addressesWithoutEth.length < tokenAddressesLowercase.length;\n\n const queryKey = constructTokenBalancesQueryKey({\n chainId,\n tokenAddressesLowercase: tokenAddressesLowercase,\n account,\n });\n\n return {\n queryKey,\n queryFn: async () => {\n assert(account, \"account is required\");\n\n function constructAddressBalanceMap(results: BalanceOfResult[]) {\n return results.reduce<AddressBalanceMap>((acc, result, index) => {\n const tokenAddress = addressesWithoutEth[index];\n if (tokenAddress) acc[tokenAddress] = result;\n return acc;\n }, {});\n }\n\n const contracts = addressesWithoutEth.map((address) => ({\n address,\n abi: erc20Abi,\n functionName: \"balanceOf\" as const,\n args: [account],\n chainId,\n }));\n\n const client = wagmiConfig.getClient({ chainId });\n\n const multicallPromise = multicall(client, {\n contracts,\n batchSize: BATCH_SIZE,\n });\n\n let addressBalanceMap: AddressBalanceMap = {};\n\n if (isRequestedEthBalance) {\n const ethBalance = await getBalance(client, {\n address: account,\n });\n const multiBalances = await multicallPromise;\n\n addressBalanceMap = constructAddressBalanceMap(multiBalances);\n\n addressBalanceMap[ETH_ADDRESS_LOWERCASE] = {\n result: ethBalance,\n status: \"success\",\n };\n } else {\n const multiBalances = await multicallPromise;\n addressBalanceMap = constructAddressBalanceMap(multiBalances);\n }\n\n return addressBalanceMap;\n },\n enabled: !!account && tokenAddressesLowercase.length > 0,\n staleTime: 25_000,\n };\n}\n"],"names":["constructTokenBalancesQueryKey","chainId","tokenAddressesLowercase","account","BATCH_SIZE","constructTokenBalancesQueryOptions","addressesWithoutEth","filter","address","isETH","isRequestedEthBalance","length","queryKey","queryFn","assert","constructAddressBalanceMap","results","reduce","acc","result","index","tokenAddress","contracts","map","abi","erc20Abi","functionName","args","client","wagmiConfig","getClient","multicallPromise","multicall","batchSize","addressBalanceMap","ethBalance","getBalance","multiBalances","ETH_ADDRESS_LOWERCASE","status","enabled","staleTime"],"mappings":";;;;;;;AAcA,SAASA,8BAAAA,CAA+B;AAAA,EACtCC,OAAAA;AAAAA,EACAC,uBAAAA;AAAAA,EACAC;AAIF,CAAA,EAA0B;AACxB,EAAA,OAAO,CAAC,gBAAA,EAAkBF,OAAAA,EAASC,uBAAAA,EAAyBC,OAAO,CAAA;AACrE;AAGA,MAAMC,aAAa,IAAA,GAAO,CAAA;AAEnB,SAASC,kCAAAA,CAA0C;AAAA,EACxDH,uBAAAA;AAAAA,EACAD,OAAAA;AAAAA,EACAE;AAC+B,CAAA,EAK/B;AACA,EAAA,MAAMG,mBAAAA,GAAsBJ,uBAAAA,CAAwBK,MAAAA,CACjDC,CAAAA,OAAAA,KAAY,CAACC,KAAAA,CAAM;AAAA,IAAED;AAAAA,GAAS,CACjC,CAAA;AAEA,EAAA,MAAME,qBAAAA,GACJJ,mBAAAA,CAAoBK,MAAAA,GAAST,uBAAAA,CAAwBS,MAAAA;AAEvD,EAAA,MAAMC,WAAWZ,8BAAAA,CAA+B;AAAA,IAC9CC,OAAAA;AAAAA,IACAC,uBAAAA;AAAAA,IACAC;AAAAA,GACD,CAAA;AAED,EAAA,OAAO;AAAA,IACLS,QAAAA;AAAAA,IACAC,SAAS,YAAY;AACnBC,MAAAA,MAAAA,CAAOX,SAAS,qBAAqB,CAAA;AAErC,MAAA,SAASY,2BAA2BC,OAAAA,EAA4B;AAC9D,QAAA,OAAOA,OAAAA,CAAQC,MAAAA,CAA0B,CAACC,GAAAA,EAAKC,QAAQC,KAAAA,KAAU;AAC/D,UAAA,MAAMC,YAAAA,GAAef,oBAAoBc,KAAK,CAAA;AAC9C,UAAA,IAAIC,YAAAA,EAAcH,GAAAA,CAAIG,YAAY,CAAA,GAAIF,MAAAA;AACtC,UAAA,OAAOD,GAAAA;AAAAA,SACT,EAAG,EAAE,CAAA;AAAA;AAGP,MAAA,MAAMI,SAAAA,GAAYhB,mBAAAA,CAAoBiB,GAAAA,CAAKf,CAAAA,OAAAA,MAAa;AAAA,QACtDA,OAAAA;AAAAA,QACAgB,GAAAA,EAAKC,QAAAA;AAAAA,QACLC,YAAAA,EAAc,WAAA;AAAA,QACdC,IAAAA,EAAM,CAACxB,OAAO,CAAA;AAAA,QACdF;AAAAA,OACF,CAAE,CAAA;AAEF,MAAA,MAAM2B,MAAAA,GAASC,YAAYC,SAAAA,CAAU;AAAA,QAAE7B;AAAAA,OAAS,CAAA;AAEhD,MAAA,MAAM8B,gBAAAA,GAAmBC,UAAUJ,MAAAA,EAAQ;AAAA,QACzCN,SAAAA;AAAAA,QACAW,SAAAA,EAAW7B;AAAAA,OACZ,CAAA;AAED,MAAA,IAAI8B,oBAAuC,EAAC;AAE5C,MAAA,IAAIxB,qBAAAA,EAAuB;AACzB,QAAA,MAAMyB,UAAAA,GAAa,MAAMC,UAAAA,CAAWR,MAAAA,EAAQ;AAAA,UAC1CpB,OAAAA,EAASL;AAAAA,SACV,CAAA;AACD,QAAA,MAAMkC,gBAAgB,MAAMN,gBAAAA;AAE5BG,QAAAA,iBAAAA,GAAoBnB,2BAA2BsB,aAAa,CAAA;AAE5DH,QAAAA,iBAAAA,CAAkBI,qBAAqB,CAAA,GAAI;AAAA,UACzCnB,MAAAA,EAAQgB,UAAAA;AAAAA,UACRI,MAAAA,EAAQ;AAAA,SACV;AAAA,OACF,MAAO;AACL,QAAA,MAAMF,gBAAgB,MAAMN,gBAAAA;AAC5BG,QAAAA,iBAAAA,GAAoBnB,2BAA2BsB,aAAa,CAAA;AAAA;AAG9D,MAAA,OAAOH,iBAAAA;AAAAA,KACT;AAAA,IACAM,OAAAA,EAAS,CAAC,CAACrC,OAAAA,IAAWD,wBAAwBS,MAAAA,GAAS,CAAA;AAAA,IACvD8B,SAAAA,EAAW;AAAA,GACb;AACF;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { queryClient } from '../../../lib/queryClient.js';
|
|
2
|
-
import {
|
|
2
|
+
import { API_URL } from '../../../lib/constants/index.js';
|
|
3
3
|
import { ONE_MINUTE_MS, LONG_STALE_TIME_FOR_REACTIVENESS } from '../../../lib/constants/time.js';
|
|
4
4
|
import axios from 'axios';
|
|
5
5
|
import { isAddress } from 'viem';
|
|
@@ -17,7 +17,7 @@ async function fetchTokenPricesWithFallback({
|
|
|
17
17
|
data: {
|
|
18
18
|
prices
|
|
19
19
|
}
|
|
20
|
-
} = await axios.get(`${
|
|
20
|
+
} = await axios.get(`${API_URL}/fiat/prices/${chainId}`, {
|
|
21
21
|
signal
|
|
22
22
|
});
|
|
23
23
|
if (!fallbackToCachedPrices) return prices;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries.js","sources":["../../../../src/hooks/tokens/prices/queries.ts"],"sourcesContent":["import { queryClient } from \"@/lib/queryClient\";\nimport {
|
|
1
|
+
{"version":3,"file":"queries.js","sources":["../../../../src/hooks/tokens/prices/queries.ts"],"sourcesContent":["import { queryClient } from \"@/lib/queryClient\";\nimport { API_URL } from \"@/lib/constants\";\nimport {\n LONG_STALE_TIME_FOR_REACTIVENESS,\n ONE_MINUTE_MS,\n} from \"@/lib/constants/time\";\n\nimport axios from \"axios\";\nimport { isAddress } from \"viem\";\n\nimport type { UseQueryOptions } from \"@tanstack/react-query\";\nimport type {\n FiatPriceFromApi,\n FiatPriceMap,\n TokenPricesQueryKey,\n} from \"./types\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\n\nconst keysToSkip: (keyof FiatPriceFromApi)[] = [\n \"source\",\n \"address\",\n \"updatedAt\",\n];\n\nfunction shouldTryOverride(key: string): boolean {\n return !keysToSkip.includes(key as keyof FiatPriceFromApi);\n}\n\nexport async function fetchTokenPricesWithFallback({\n chainId,\n fallbackToCachedPrices,\n signal,\n}: {\n chainId: SupportedChainId;\n fallbackToCachedPrices?: boolean;\n signal?: AbortSignal;\n}) {\n const {\n data: { prices },\n } = await axios.get<{ prices: FiatPriceMap }>(\n `${API_URL}/fiat/prices/${chainId}`,\n { signal }\n );\n\n if (!fallbackToCachedPrices) return prices;\n\n // fiat-fetcher gives the prices either from coingecko or chainlink,\n // and in case of chainlink there are some missing values in price object\n\n const lastPrices = queryClient.getQueryData<FiatPriceMap>(\n constructTokenPricesQueryKey(chainId)\n );\n\n if (!lastPrices) return prices;\n\n const combined = Object.entries(prices).reduce<FiatPriceMap>(\n (acc, [address, price]) => {\n // skip if address is not valid\n if (!isAddress(address)) return acc;\n\n const lastPrice = lastPrices[address];\n // no previous price, do nothing\n if (!lastPrice) return acc;\n\n // assume that coinGecko prices have more data\n // and we don't want to change them\n if (price.source === \"coinGecko\") return acc;\n\n // no need to override the price when from the same source\n if (price.source === lastPrice.source) return acc;\n\n // make sure we have all the keys\n // not just the ones that are in the new price object\n const mergedPrice = { ...lastPrice, ...price };\n\n let changed = false;\n\n for (const key of Object.keys(mergedPrice)) {\n if (shouldTryOverride(key)) {\n const val =\n price[key as keyof typeof price] ??\n ((changed = true), lastPrice[key as keyof typeof lastPrice]);\n\n (mergedPrice[\n key as keyof typeof mergedPrice\n ] as FiatPriceFromApi[keyof FiatPriceFromApi]) = val;\n }\n }\n\n // we updated the price\n if (changed) {\n // let's keep updatedAt, source from the last price\n mergedPrice.updatedAt = lastPrice.updatedAt;\n mergedPrice.source = lastPrice.source;\n }\n\n acc[address] = mergedPrice;\n return acc;\n },\n prices\n );\n\n return combined;\n}\n\nexport function constructTokenPricesQueryKey(\n chainId: number\n): TokenPricesQueryKey {\n return [\"token-prices\", chainId];\n}\n\nexport function constructTokenPricesQueryOptions({\n chainId,\n fallbackToCachedPrices,\n enabled,\n}: {\n chainId: SupportedChainId;\n fallbackToCachedPrices?: boolean;\n enabled?: boolean;\n}): UseQueryOptions<FiatPriceMap, Error, FiatPriceMap, TokenPricesQueryKey> {\n {\n return {\n queryKey: constructTokenPricesQueryKey(chainId),\n queryFn: ({ signal }) =>\n fetchTokenPricesWithFallback({\n chainId,\n fallbackToCachedPrices,\n signal,\n }),\n enabled,\n notifyOnChangeProps: [\"data\", \"isLoading\", \"isError\"],\n staleTime: LONG_STALE_TIME_FOR_REACTIVENESS,\n refetchInterval: ONE_MINUTE_MS,\n };\n }\n}\n"],"names":["keysToSkip","shouldTryOverride","key","includes","fetchTokenPricesWithFallback","chainId","fallbackToCachedPrices","signal","data","prices","axios","get","API_URL","lastPrices","queryClient","getQueryData","constructTokenPricesQueryKey","combined","Object","entries","reduce","acc","address","price","isAddress","lastPrice","source","mergedPrice","changed","keys","val","updatedAt","constructTokenPricesQueryOptions","enabled","queryKey","queryFn","notifyOnChangeProps","staleTime","LONG_STALE_TIME_FOR_REACTIVENESS","refetchInterval","ONE_MINUTE_MS"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { d as distExports } from '../../_virtual/index.js';
|
|
2
|
-
import {
|
|
2
|
+
import { API_URL } from '../../lib/constants/index.js';
|
|
3
3
|
import { LONG_STALE_TIME_FOR_REACTIVENESS } from '../../lib/constants/time.js';
|
|
4
4
|
import { useQuery } from '@tanstack/react-query';
|
|
5
5
|
import axios from 'axios';
|
|
@@ -20,7 +20,7 @@ function useTokenTaxFee(t0) {
|
|
|
20
20
|
assert(chainId, "chainId is required");
|
|
21
21
|
const {
|
|
22
22
|
data
|
|
23
|
-
} = await axios.get(`${
|
|
23
|
+
} = await axios.get(`${API_URL}/delta/tokens/${chainId}/${tokenAddress}`);
|
|
24
24
|
return data;
|
|
25
25
|
};
|
|
26
26
|
$[0] = chainId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTokenTaxFee.js","sources":["../../../src/hooks/tokens/useTokenTaxFee.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"useTokenTaxFee.js","sources":["../../../src/hooks/tokens/useTokenTaxFee.ts"],"sourcesContent":["import { API_URL } from \"@/lib/constants\";\nimport { LONG_STALE_TIME_FOR_REACTIVENESS } from \"@/lib/constants/time\";\nimport { useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport axios from \"axios\";\nimport { assert } from \"ts-essentials\";\n\ntype UseTokenTaxFeeInput = {\n tokenAddress?: string;\n chainId?: number;\n};\n\ntype TokenTaxFeeResponse = {\n // empty object when not a tax Token\n sellTax?: number; // used as srcTokenDexTransferFee in GET /prices\n buyTax?: number; // used as destTokenDexTransferFee in GET /prices\n // for Delta no support for tax Tokens so far\n};\n\nexport function useTokenTaxFee({\n tokenAddress,\n chainId,\n}: UseTokenTaxFeeInput): UseQueryResult<TokenTaxFeeResponse, Error> {\n return useQuery<\n TokenTaxFeeResponse,\n Error,\n TokenTaxFeeResponse,\n [\"token-tax-fee\", string?, number?]\n >({\n queryKey: [\"token-tax-fee\", tokenAddress, chainId],\n queryFn: async () => {\n assert(tokenAddress, \"tokenAddress is required\");\n assert(chainId, \"chainId is required\");\n\n const { data } = await axios.get<TokenTaxFeeResponse>(\n `${API_URL}/delta/tokens/${chainId}/${tokenAddress}`\n );\n return data;\n },\n staleTime: LONG_STALE_TIME_FOR_REACTIVENESS,\n enabled: !!tokenAddress && !!chainId,\n });\n}\n"],"names":["useTokenTaxFee","t0","$","_c","tokenAddress","chainId","t1","t2","assert","data","axios","get","API_URL","t3","t4","queryKey","queryFn","staleTime","LONG_STALE_TIME_FOR_REACTIVENESS","enabled","useQuery"],"mappings":";;;;;;;AAkBO,SAAAA,eAAAC,EAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAAwB,EAAA,MAAA;AAAA,IAAAC,YAAAA;AAAAA,IAAAC;AAAAA,GAAA,GAAAJ,EAAAA;AAGT,EAAA,IAAAK,EAAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAL,EAAA,CAAA,CAAA,KAAAG,WAAAH,CAAAA,QAAAE,YAAAA,EAAA;AAORE,IAAAA,EAAAA,GAAA,CAAC,eAAA,EAAiBF,YAAAA,EAAcC,OAAO,CAAA;AACxCE,IAAAA,EAAAA,eAAA;AACPC,MAAAA,MAAAA,CAAOJ,cAAc,0BAA0B,CAAA;AAC/CI,MAAAA,MAAAA,CAAOH,SAAS,qBAAqB,CAAA;AAErC,MAAA,MAAA;AAAA,QAAAI;AAAAA,OAAA,GAAA,MAAuBC,KAAAA,CAAAC,GAAAA,CACrB,CAAA,EAAAC,OAAA,CAAA,cAAA,EAA2BP,OAAO,CAAA,CAAA,EAAID,YAAY,CAAA,CACpD,CAAA;AAAE,MAAA,OACKK,IAAAA;AAAAA,KAAI;AACZP,IAAAA,CAAAA,MAAAG,OAAAA;AAAAH,IAAAA,CAAAA,MAAAE,YAAAA;AAAAF,IAAAA,CAAAA,MAAAI,EAAAA;AAAAJ,IAAAA,CAAAA,MAAAK,EAAAA;AAAAA,GAAA,MAAA;AAAAD,IAAAA,EAAAA,GAAAJ,EAAA,CAAA,CAAA;AAAAK,IAAAA,EAAAA,GAAAL,EAAA,CAAA,CAAA;AAAA;AAEQ,EAAA,MAAAW,EAAAA,GAAA,CAAA,CAAET,YAAAA,IAAY,CAAA,CAAMC,OAAAA;AAAO,EAAA,IAAAS,EAAAA;AAAA,EAAA,IAAAZ,CAAAA,CAAA,CAAA,CAAA,KAAAI,EAAAA,IAAAJ,CAAAA,QAAAK,EAAAA,IAAAL,CAAAA,CAAA,CAAA,CAAA,KAAAW,EAAAA,EAAA;AAZpCC,IAAAA,EAAAA,GAAA;AAAA,MAAAC,QAAAA,EACUT,EAAAA;AAAAA,MAAwCU,OAAAA,EACzCT,EAAAA;AAAAA,MAQRU,SAAAA,EAAAC,gCAAAA;AAAAA,MAAAC,OAAAA,EAEQN;AAAAA,KAA2B;AACrCX,IAAAA,CAAAA,MAAAI,EAAAA;AAAAJ,IAAAA,CAAAA,MAAAK,EAAAA;AAAAL,IAAAA,CAAAA,MAAAW,EAAAA;AAAAX,IAAAA,CAAAA,MAAAY,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAZ,EAAA,CAAA,CAAA;AAAA;AAAA,EAAA,OAlBMkB,SAKLN,EAaD,CAAA;AAAC;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSDK.d.ts","sourceRoot":"","sources":["../../src/hooks/useSDK.ts"],"names":[],"mappings":"AAGA,OAAO,EAiBL,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,6BAA6B,EAClC,KAAK,gCAAgC,EACrC,KAAK,mCAAmC,EACxC,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"useSDK.d.ts","sourceRoot":"","sources":["../../src/hooks/useSDK.ts"],"names":[],"mappings":"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"}
|
package/dist/hooks/useSDK.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import axios from 'axios';
|
|
2
2
|
import { useMemo } from 'react';
|
|
3
3
|
import { constructPartialSDK, constructAxiosFetcher, constructGetDeltaOrders, constructGetDeltaPrice, constructBuildDeltaOrder, constructBuildCrosschainOrderBridge, constructPostDeltaOrder, constructGetBridgeInfo, constructGetMulticallHandlers, constructIsTokenSupportedInDelta, constructViemContractCaller, constructSignDeltaOrder, constructGetRate, constructGetSpender, constructBuildTx } from '@velora-dex/sdk';
|
|
4
|
+
import { API_URL } from '../lib/constants/index.js';
|
|
4
5
|
import { useLogger } from '../widget/logger.js';
|
|
5
6
|
|
|
6
7
|
const fetcher = constructAxiosFetcher(axios);
|
|
7
8
|
function useMarketSwapSDK({
|
|
8
9
|
chainId,
|
|
9
|
-
apiURL
|
|
10
|
+
apiURL = API_URL
|
|
10
11
|
}) {
|
|
11
12
|
"use no memo";
|
|
12
13
|
const sdk = useMemo(() => {
|
|
@@ -26,7 +27,7 @@ function useMarketSwapSDK({
|
|
|
26
27
|
}
|
|
27
28
|
function useDeltaSDK({
|
|
28
29
|
chainId,
|
|
29
|
-
apiURL,
|
|
30
|
+
apiURL = API_URL,
|
|
30
31
|
account,
|
|
31
32
|
client
|
|
32
33
|
}) {
|
package/dist/hooks/useSDK.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSDK.js","sources":["../../src/hooks/useSDK.ts"],"sourcesContent":["import axios from \"axios\";\nimport { useMemo } from \"react\";\n\nimport {\n constructAxiosFetcher,\n constructPartialSDK,\n constructGetSpender,\n constructBuildTx,\n constructAllLimitOrdersHandlers,\n constructGetRate,\n constructGetDeltaPrice,\n constructGetDeltaOrders,\n constructBuildDeltaOrder,\n constructSignDeltaOrder,\n constructPostDeltaOrder,\n constructGetBridgeInfo,\n constructGetMulticallHandlers,\n constructIsTokenSupportedInDelta,\n constructBuildCrosschainOrderBridge,\n constructViemContractCaller,\n type LimitOrderHandlers,\n type GetRateFunctions,\n type APIVersion,\n type GetDeltaOrdersFunctions,\n type GetDeltaPriceFunctions,\n type PostDeltaOrderFunctions,\n type BuildDeltaOrderFunctions,\n type SignDeltaOrderFunctions,\n type GetBridgeInfoFunctions,\n type GetMulticallHandlersFunctions,\n type IsTokenSupportedInDeltaFunctions,\n type BuildCrosschainOrderBridgeFunctions,\n type BuildTxFunctions,\n type GetSpenderFunctions,\n type MinViemClient,\n} from \"@velora-dex/sdk\";\nimport type { Address, Hash } from \"viem\";\nimport type { Prettify } from \"ts-essentials\";\nimport { useLogger } from \"@/widget/logger\";\n\nconst fetcher = constructAxiosFetcher(axios);\n\ntype SDKCreateParams = {\n chainId: number;\n apiURL?: string;\n account?: Address;\n};\n\nexport type MarketSwapSDK = Prettify<\n GetSpenderFunctions & BuildTxFunctions & GetRateFunctions\n>;\n\ntype ConstructedSDKOutput<T> = {\n sdk: T;\n appVersion: APIVersion;\n chainId: number;\n apiURL: string;\n};\n\nexport function useMarketSwapSDK({\n chainId,\n apiURL,\n}: SDKCreateParams): ConstructedSDKOutput<MarketSwapSDK> {\n \"use no memo\";\n\n const sdk = useMemo(() => {\n const SDKconfig = {\n apiURL,\n chainId,\n fetcher,\n };\n\n return constructPartialSDK(\n SDKconfig,\n constructGetRate,\n constructGetSpender,\n constructBuildTx\n );\n }, [apiURL, chainId]);\n\n return {\n appVersion: sdk.version,\n chainId: sdk.chainId,\n apiURL: sdk.apiURL,\n sdk,\n };\n}\ntype LimitOrdersSDKCreateParams = SDKCreateParams & {\n account?: Address;\n client?: MinViemClient;\n};\n\nexport type LimitOrdersSDK = Prettify<LimitOrderHandlers<Hash>>;\n// can paraswap.fillOrder from a taker address to simulate happy path\n// @TODO check that we always use correct SDK version\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams & {\n account?: undefined;\n client?: undefined;\n}): Record<keyof ConstructedSDKOutput<unknown>, undefined>; // keyof allows for autocomplete in destructuring\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams & {\n account: Address;\n client: MinViemClient;\n}): ConstructedSDKOutput<LimitOrdersSDK>;\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams):\n | ConstructedSDKOutput<LimitOrdersSDK>\n | Record<keyof ConstructedSDKOutput<unknown>, undefined>;\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams):\n | ConstructedSDKOutput<LimitOrdersSDK>\n | Partial<Record<keyof ConstructedSDKOutput<unknown>, undefined>> {\n \"use no memo\";\n\n const sdk = useMemo(() => {\n if (!client || !account) return;\n\n const contractCaller = constructViemContractCaller(client, account);\n\n const SDKconfig = {\n apiURL,\n chainId,\n fetcher,\n contractCaller,\n };\n\n return constructPartialSDK(SDKconfig, constructAllLimitOrdersHandlers);\n }, [account, apiURL, client, chainId]);\n\n if (!sdk) return {};\n\n return {\n appVersion: sdk.version,\n chainId: sdk.chainId,\n apiURL: sdk.apiURL,\n sdk,\n };\n}\n\ntype ReadOnlyDeltaSDK = Prettify<\n GetDeltaOrdersFunctions &\n GetDeltaPriceFunctions &\n BuildDeltaOrderFunctions &\n BuildCrosschainOrderBridgeFunctions &\n PostDeltaOrderFunctions &\n GetBridgeInfoFunctions &\n GetMulticallHandlersFunctions &\n IsTokenSupportedInDeltaFunctions & { chainId: number }\n>;\n\nexport type DeltaSDK = Prettify<ReadOnlyDeltaSDK & SignDeltaOrderFunctions>;\n\ntype DeltaSDKCreateParams = SDKCreateParams & {\n client?: MinViemClient;\n};\n\nexport function useDeltaSDK({\n chainId,\n apiURL,\n account,\n client,\n}: DeltaSDKCreateParams & {\n account?: undefined;\n client?: undefined;\n}): ConstructedSDKOutput<ReadOnlyDeltaSDK>;\nexport function useDeltaSDK({\n chainId,\n apiURL,\n account,\n client,\n}: DeltaSDKCreateParams & {\n account: Address;\n client: MinViemClient;\n}): ConstructedSDKOutput<DeltaSDK>;\nexport function useDeltaSDK({\n chainId,\n apiURL,\n account,\n client,\n}: DeltaSDKCreateParams): ConstructedSDKOutput<DeltaSDK | ReadOnlyDeltaSDK>;\nexport function useDeltaSDK({\n chainId,\n apiURL,\n account,\n client,\n}: DeltaSDKCreateParams): ConstructedSDKOutput<DeltaSDK | ReadOnlyDeltaSDK> {\n \"use no memo\";\n // react-compiler fails here and sdk is created anew\n\n const logger = useLogger(\"DeltaSDK\");\n\n const sdk = useMemo(() => {\n logger.log(\"init sdk\");\n const SDKconfig = {\n apiURL,\n chainId,\n fetcher,\n };\n\n if (!client || !account) {\n return constructPartialSDK(\n SDKconfig,\n constructGetDeltaOrders,\n constructGetDeltaPrice,\n constructBuildDeltaOrder,\n constructBuildCrosschainOrderBridge,\n constructPostDeltaOrder,\n constructGetBridgeInfo,\n constructGetMulticallHandlers,\n constructIsTokenSupportedInDelta\n );\n }\n\n const contractCaller = constructViemContractCaller(client, account);\n\n return constructPartialSDK(\n { ...SDKconfig, contractCaller },\n constructGetDeltaOrders,\n constructGetDeltaPrice,\n constructBuildDeltaOrder,\n constructBuildCrosschainOrderBridge,\n constructPostDeltaOrder,\n constructGetBridgeInfo,\n constructGetMulticallHandlers,\n constructIsTokenSupportedInDelta,\n constructSignDeltaOrder\n );\n }, [logger, apiURL, chainId, client, account]);\n\n return {\n appVersion: sdk.version,\n chainId: sdk.chainId,\n apiURL: sdk.apiURL,\n sdk,\n };\n}\n"],"names":["fetcher","constructAxiosFetcher","axios","useMarketSwapSDK","chainId","apiURL","sdk","useMemo","SDKconfig","constructPartialSDK","constructGetRate","constructGetSpender","constructBuildTx","appVersion","version","useDeltaSDK","account","client","logger","useLogger","log","constructGetDeltaOrders","constructGetDeltaPrice","constructBuildDeltaOrder","constructBuildCrosschainOrderBridge","constructPostDeltaOrder","constructGetBridgeInfo","constructGetMulticallHandlers","constructIsTokenSupportedInDelta","contractCaller","constructViemContractCaller","constructSignDeltaOrder"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useSDK.js","sources":["../../src/hooks/useSDK.ts"],"sourcesContent":["import axios from \"axios\";\nimport { useMemo } from \"react\";\n\nimport {\n constructAxiosFetcher,\n constructPartialSDK,\n constructGetSpender,\n constructBuildTx,\n constructAllLimitOrdersHandlers,\n constructGetRate,\n constructGetDeltaPrice,\n constructGetDeltaOrders,\n constructBuildDeltaOrder,\n constructSignDeltaOrder,\n constructPostDeltaOrder,\n constructGetBridgeInfo,\n constructGetMulticallHandlers,\n constructIsTokenSupportedInDelta,\n constructBuildCrosschainOrderBridge,\n constructViemContractCaller,\n type LimitOrderHandlers,\n type GetRateFunctions,\n type APIVersion,\n type GetDeltaOrdersFunctions,\n type GetDeltaPriceFunctions,\n type PostDeltaOrderFunctions,\n type BuildDeltaOrderFunctions,\n type SignDeltaOrderFunctions,\n type GetBridgeInfoFunctions,\n type GetMulticallHandlersFunctions,\n type IsTokenSupportedInDeltaFunctions,\n type BuildCrosschainOrderBridgeFunctions,\n type BuildTxFunctions,\n type GetSpenderFunctions,\n type MinViemClient,\n} from \"@velora-dex/sdk\";\nimport type { Address, Hash } from \"viem\";\nimport type { Prettify } from \"ts-essentials\";\nimport { API_URL } from \"@/lib/constants\";\nimport { useLogger } from \"@/widget/logger\";\n\nconst fetcher = constructAxiosFetcher(axios);\n\ntype SDKCreateParams = {\n chainId: number;\n apiURL?: string;\n account?: Address;\n};\n\nexport type MarketSwapSDK = Prettify<\n GetSpenderFunctions & BuildTxFunctions & GetRateFunctions\n>;\n\ntype ConstructedSDKOutput<T> = {\n sdk: T;\n appVersion: APIVersion;\n chainId: number;\n apiURL: string;\n};\n\nexport function useMarketSwapSDK({\n chainId,\n apiURL = API_URL,\n}: SDKCreateParams): ConstructedSDKOutput<MarketSwapSDK> {\n \"use no memo\";\n\n const sdk = useMemo(() => {\n const SDKconfig = {\n apiURL,\n chainId,\n fetcher,\n };\n\n return constructPartialSDK(\n SDKconfig,\n constructGetRate,\n constructGetSpender,\n constructBuildTx\n );\n }, [apiURL, chainId]);\n\n return {\n appVersion: sdk.version,\n chainId: sdk.chainId,\n apiURL: sdk.apiURL,\n sdk,\n };\n}\ntype LimitOrdersSDKCreateParams = SDKCreateParams & {\n account?: Address;\n client?: MinViemClient;\n};\n\nexport type LimitOrdersSDK = Prettify<LimitOrderHandlers<Hash>>;\n// can paraswap.fillOrder from a taker address to simulate happy path\n// @TODO check that we always use correct SDK version\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams & {\n account?: undefined;\n client?: undefined;\n}): Record<keyof ConstructedSDKOutput<unknown>, undefined>; // keyof allows for autocomplete in destructuring\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams & {\n account: Address;\n client: MinViemClient;\n}): ConstructedSDKOutput<LimitOrdersSDK>;\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams):\n | ConstructedSDKOutput<LimitOrdersSDK>\n | Record<keyof ConstructedSDKOutput<unknown>, undefined>;\nexport function useLimitOrdersSDK({\n chainId,\n apiURL = API_URL,\n account,\n client,\n}: LimitOrdersSDKCreateParams):\n | ConstructedSDKOutput<LimitOrdersSDK>\n | Partial<Record<keyof ConstructedSDKOutput<unknown>, undefined>> {\n \"use no memo\";\n\n const sdk = useMemo(() => {\n if (!client || !account) return;\n\n const contractCaller = constructViemContractCaller(client, account);\n\n const SDKconfig = {\n apiURL,\n chainId,\n fetcher,\n contractCaller,\n };\n\n return constructPartialSDK(SDKconfig, constructAllLimitOrdersHandlers);\n }, [account, apiURL, client, chainId]);\n\n if (!sdk) return {};\n\n return {\n appVersion: sdk.version,\n chainId: sdk.chainId,\n apiURL: sdk.apiURL,\n sdk,\n };\n}\n\ntype ReadOnlyDeltaSDK = Prettify<\n GetDeltaOrdersFunctions &\n GetDeltaPriceFunctions &\n BuildDeltaOrderFunctions &\n BuildCrosschainOrderBridgeFunctions &\n PostDeltaOrderFunctions &\n GetBridgeInfoFunctions &\n GetMulticallHandlersFunctions &\n IsTokenSupportedInDeltaFunctions & { chainId: number }\n>;\n\nexport type DeltaSDK = Prettify<ReadOnlyDeltaSDK & SignDeltaOrderFunctions>;\n\ntype DeltaSDKCreateParams = SDKCreateParams & {\n client?: MinViemClient;\n};\n\nexport function useDeltaSDK({\n chainId,\n apiURL,\n account,\n client,\n}: DeltaSDKCreateParams & {\n account?: undefined;\n client?: undefined;\n}): ConstructedSDKOutput<ReadOnlyDeltaSDK>;\nexport function useDeltaSDK({\n chainId,\n apiURL,\n account,\n client,\n}: DeltaSDKCreateParams & {\n account: Address;\n client: MinViemClient;\n}): ConstructedSDKOutput<DeltaSDK>;\nexport function useDeltaSDK({\n chainId,\n apiURL,\n account,\n client,\n}: DeltaSDKCreateParams): ConstructedSDKOutput<DeltaSDK | ReadOnlyDeltaSDK>;\nexport function useDeltaSDK({\n chainId,\n apiURL = API_URL,\n account,\n client,\n}: DeltaSDKCreateParams): ConstructedSDKOutput<DeltaSDK | ReadOnlyDeltaSDK> {\n \"use no memo\";\n // react-compiler fails here and sdk is created anew\n\n const logger = useLogger(\"DeltaSDK\");\n\n const sdk = useMemo(() => {\n logger.log(\"init sdk\");\n const SDKconfig = {\n apiURL,\n chainId,\n fetcher,\n };\n\n if (!client || !account) {\n return constructPartialSDK(\n SDKconfig,\n constructGetDeltaOrders,\n constructGetDeltaPrice,\n constructBuildDeltaOrder,\n constructBuildCrosschainOrderBridge,\n constructPostDeltaOrder,\n constructGetBridgeInfo,\n constructGetMulticallHandlers,\n constructIsTokenSupportedInDelta\n );\n }\n\n const contractCaller = constructViemContractCaller(client, account);\n\n return constructPartialSDK(\n { ...SDKconfig, contractCaller },\n constructGetDeltaOrders,\n constructGetDeltaPrice,\n constructBuildDeltaOrder,\n constructBuildCrosschainOrderBridge,\n constructPostDeltaOrder,\n constructGetBridgeInfo,\n constructGetMulticallHandlers,\n constructIsTokenSupportedInDelta,\n constructSignDeltaOrder\n );\n }, [logger, apiURL, chainId, client, account]);\n\n return {\n appVersion: sdk.version,\n chainId: sdk.chainId,\n apiURL: sdk.apiURL,\n sdk,\n };\n}\n"],"names":["fetcher","constructAxiosFetcher","axios","useMarketSwapSDK","chainId","apiURL","API_URL","sdk","useMemo","SDKconfig","constructPartialSDK","constructGetRate","constructGetSpender","constructBuildTx","appVersion","version","useDeltaSDK","account","client","logger","useLogger","log","constructGetDeltaOrders","constructGetDeltaPrice","constructBuildDeltaOrder","constructBuildCrosschainOrderBridge","constructPostDeltaOrder","constructGetBridgeInfo","constructGetMulticallHandlers","constructIsTokenSupportedInDelta","contractCaller","constructViemContractCaller","constructSignDeltaOrder"],"mappings":";;;;;;AAyCA,MAAMA,OAAAA,GAAUC,sBAAsBC,KAAK,CAAA;AAmBpC,SAASC,gBAAAA,CAAiB;AAAA,EAC/BC,OAAAA;AAAAA,EACAC,MAAAA,GAASC;AACM,CAAA,EAAwC;AACvD,EAAA,aAAA;AAEA,EAAA,MAAMC,GAAAA,GAAMC,QAAQ,MAAM;AACxB,IAAA,MAAMC,SAAAA,GAAY;AAAA,MAChBJ,MAAAA;AAAAA,MACAD,OAAAA;AAAAA,MACAJ;AAAAA,KACF;AAEA,IAAA,OAAOU,mBAAAA,CACLD,SAAAA,EACAE,gBAAAA,EACAC,mBAAAA,EACAC,gBACF,CAAA;AAAA,GACF,EAAG,CAACR,MAAAA,EAAQD,OAAO,CAAC,CAAA;AAEpB,EAAA,OAAO;AAAA,IACLU,YAAYP,GAAAA,CAAIQ,OAAAA;AAAAA,IAChBX,SAASG,GAAAA,CAAIH,OAAAA;AAAAA,IACbC,QAAQE,GAAAA,CAAIF,MAAAA;AAAAA,IACZE;AAAAA,GACF;AACF;AA+GO,SAASS,WAAAA,CAAY;AAAA,EAC1BZ,OAAAA;AAAAA,EACAC,MAAAA,GAASC,OAAAA;AAAAA,EACTW,OAAAA;AAAAA,EACAC;AACoB,CAAA,EAAsD;AAC1E,EAAA,aAAA;AAGA,EAAA,MAAMC,MAAAA,GAASC,UAAU,UAAU,CAAA;AAEnC,EAAA,MAAMb,GAAAA,GAAMC,QAAQ,MAAM;AACxBW,IAAAA,MAAAA,CAAOE,IAAI,UAAU,CAAA;AACrB,IAAA,MAAMZ,SAAAA,GAAY;AAAA,MAChBJ,MAAAA;AAAAA,MACAD,OAAAA;AAAAA,MACAJ;AAAAA,KACF;AAEA,IAAA,IAAI,CAACkB,MAAAA,IAAU,CAACD,OAAAA,EAAS;AACvB,MAAA,OAAOP,mBAAAA,CACLD,WACAa,uBAAAA,EACAC,sBAAAA,EACAC,0BACAC,mCAAAA,EACAC,uBAAAA,EACAC,sBAAAA,EACAC,6BAAAA,EACAC,gCACF,CAAA;AAAA;AAGF,IAAA,MAAMC,cAAAA,GAAiBC,2BAAAA,CAA4Bb,MAAAA,EAAQD,OAAO,CAAA;AAElE,IAAA,OAAOP,mBAAAA,CACL;AAAA,MAAE,GAAGD,SAAAA;AAAAA,MAAWqB;AAAAA,KAAe,EAC/BR,yBACAC,sBAAAA,EACAC,wBAAAA,EACAC,qCACAC,uBAAAA,EACAC,sBAAAA,EACAC,6BAAAA,EACAC,gCAAAA,EACAG,uBACF,CAAA;AAAA,KACC,CAACb,MAAAA,EAAQd,QAAQD,OAAAA,EAASc,MAAAA,EAAQD,OAAO,CAAC,CAAA;AAE7C,EAAA,OAAO;AAAA,IACLH,YAAYP,GAAAA,CAAIQ,OAAAA;AAAAA,IAChBX,SAASG,GAAAA,CAAIH,OAAAA;AAAAA,IACbC,QAAQE,GAAAA,CAAIF,MAAAA;AAAAA,IACZE;AAAAA,GACF;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/constants/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/constants/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,4BAA4B,CAAC;AAEjD,eAAO,MAAM,UAAU,EAAE,KAAK,EAAO,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/lib/constants/index.ts"],"sourcesContent":["export const
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/lib/constants/index.ts"],"sourcesContent":["export const API_URL = \"https://api.paraswap.io\";\n\nexport const emptyArray: never[] = [];\n"],"names":["API_URL","emptyArray"],"mappings":"AAAO,MAAMA,OAAAA,GAAU;AAEhB,MAAMC,aAAsB;;;;"}
|
|
@@ -28,7 +28,7 @@ const privyConfig = {
|
|
|
28
28
|
},
|
|
29
29
|
// another option is to give an invalid ID,
|
|
30
30
|
// but then it retries indefinitely
|
|
31
|
-
walletConnectCloudProjectId: "
|
|
31
|
+
walletConnectCloudProjectId: "9796e40630a6bea7605ac281b0deb939",
|
|
32
32
|
// Privy doesn't accept const Chain[]
|
|
33
33
|
supportedChains: chains
|
|
34
34
|
// defaultChain: chains[0], @TODO set to App's selected chain
|
|
@@ -11,7 +11,7 @@ const connectors = [
|
|
|
11
11
|
// safe() as CreateConnectorFn, // I don't know how this one works, maybe only inside Safe iframes?
|
|
12
12
|
coinbaseWallet(),
|
|
13
13
|
walletConnect({
|
|
14
|
-
projectId: "
|
|
14
|
+
projectId: "9796e40630a6bea7605ac281b0deb939"
|
|
15
15
|
})
|
|
16
16
|
// getPrivyWalletConnector(), // only CorssApp Privy connector is available, not our use case
|
|
17
17
|
];
|
package/dist/styles.css
CHANGED
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
|
-
|
|
69
|
+
:root, :host {
|
|
70
70
|
--font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
|
71
71
|
--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
|
72
72
|
--color-red-800: oklch(44.4% .177 26.899);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Configurator.d.ts","sourceRoot":"","sources":["../../src/test/Configurator.tsx"],"names":[],"mappings":"AAEA,OAAO,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"Configurator.d.ts","sourceRoot":"","sources":["../../src/test/Configurator.tsx"],"names":[],"mappings":"AAEA,OAAO,YAAY,CAAC;AA2NpB,eAAO,MAAM,YAAY,+CA4FxB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectedTokenActionsAtom.d.ts","sourceRoot":"","sources":["../../../../src/widget/inputs/state/selectedTokenActionsAtom.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAQlD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAK/D,eAAO,MAAM,gBAAgB;;CAqE3B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;CAoE/B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;
|
|
1
|
+
{"version":3,"file":"selectedTokenActionsAtom.d.ts","sourceRoot":"","sources":["../../../../src/widget/inputs/state/selectedTokenActionsAtom.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAQlD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAK/D,eAAO,MAAM,gBAAgB;;CAqE3B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;CAoE/B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;CAkC5B,CAAC;AAEH,eAAO,MAAM,0BAA0B,GAAI,SAAS,gBAAgB,SA8DnE,CAAC"}
|
|
@@ -95,9 +95,20 @@ const selectTokenFromAtom = atom(null, async (get, set, newTokenFrom) => {
|
|
|
95
95
|
const selectTokenToAtom = atom(null, (get, set, newTokenTo) => {
|
|
96
96
|
const newTokenToNetwork = newTokenTo.network;
|
|
97
97
|
const tokenFrom = get(tokenFromAtom);
|
|
98
|
+
const tokenTo = get(tokenToAtom);
|
|
98
99
|
if (areTokensSame(newTokenTo, tokenFrom)) {
|
|
99
100
|
const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(newTokenToNetwork);
|
|
100
|
-
const
|
|
101
|
+
const fromDefaults = areTokensSame(tokenFrom, defaultTokenFrom) ? defaultTokenTo : defaultTokenFrom;
|
|
102
|
+
const wasCrosschain = tokenTo && tokenFrom.network !== tokenTo?.network;
|
|
103
|
+
const newTokenFrom = wasCrosschain ? (
|
|
104
|
+
// We cannot flip the tokens if switching from the crosschain, because if we do, we will end up with tokenFrom network different from app chainId.
|
|
105
|
+
// Switching app chainId when selecting tokenTo is not what we want, because we cannot dictate the main network when selecting tokenTo.
|
|
106
|
+
// Maybe user wants to trade singlechain but we are forcing crosschain.
|
|
107
|
+
fromDefaults
|
|
108
|
+
) : (
|
|
109
|
+
// Otherwise, we can flip the tokens, or pick from defaults
|
|
110
|
+
tokenTo ?? fromDefaults
|
|
111
|
+
);
|
|
101
112
|
set(tokenFromAtom, newTokenFrom);
|
|
102
113
|
}
|
|
103
114
|
if (tokenFrom.network !== newTokenToNetwork) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectedTokenActionsAtom.js","sources":["../../../../src/widget/inputs/state/selectedTokenActionsAtom.ts"],"sourcesContent":["import { atom, getDefaultStore } from \"jotai\";\nimport { switchChain } from \"@wagmi/core\";\n\nimport { tokenToAtom, tokenFromAtom } from \"./selectedTokenAtom\";\nimport { wagmiConfig } from \"@/lib/web3/wagmi/config\";\n\nimport type { Token } from \"@/tokens/state/types\";\nimport { areTokensSame } from \"@/tokens/utils/areTokensSame\";\nimport { pickDefaultTokenPair } from \"@/tokens/defaultTokens\";\nimport {\n findFirstTokenFromAcross,\n isAcrossAvailable,\n isTokenFromAcross,\n} from \"@/widget/across/utils\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { deltaParamAtom } from \"@/components/widget/TradeParameters/state/deltaParamAtom\";\nimport { widgetConfigAtom } from \"@/widget/state/configAtom\";\nimport { setSwapModeAtom } from \"@/components/widget/SwapModeSwitcher/state/swapModeActionsAtom\";\n\nexport const switchTokensAtom = atom(null, async (get, set) => {\n const tokenTo = get(tokenToAtom);\n\n if (!tokenTo) return;\n\n const tokenFrom = get(tokenFromAtom);\n\n // switch a token from a different chain?\n if (tokenFrom.network !== tokenTo.network) {\n // await for chain switch first\n await switchChain(wagmiConfig, {\n chainId: tokenTo.network,\n });\n }\n\n // then set the tokenFrom\n set(tokenFromAtom, tokenTo);\n\n const deltaEnabledInSettings = get(deltaParamAtom);\n const deltaEnabledInConfig = get(widgetConfigAtom).enableDelta;\n\n const crosschainPossible =\n deltaEnabledInSettings &&\n deltaEnabledInConfig &&\n isAcrossAvailable({\n chainIdFrom: tokenTo.network,\n chainIdTo: tokenFrom.network,\n });\n\n if (crosschainPossible) {\n const tokenFromIsFromAcross = isTokenFromAcross({\n token: tokenFrom,\n fromChainId: tokenFrom.network,\n toChainId: tokenTo.network,\n });\n\n if (tokenFromIsFromAcross && !areTokensSame(tokenFrom, tokenTo)) {\n // can use tokenFrom as tokenTo because it's an Across token\n set(tokenToAtom, tokenFrom);\n } else {\n // otherwise, we either set tokenTo to the first Across token,\n // or reset tokenTo\n const maybeAcrossToken = findFirstTokenFromAcross({\n fromChainId: tokenTo.network,\n toChainId: tokenFrom.network,\n });\n set(tokenToAtom, maybeAcrossToken);\n }\n } else {\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n tokenTo.network\n );\n\n if (tokenTo.network !== tokenFrom.network) {\n // if cross-chain, then we can't use tokenFrom as tokenTo, so pick from defaults\n const newTokenTo = areTokensSame(tokenFrom, defaultTokenTo)\n ? defaultTokenFrom\n : defaultTokenTo;\n\n set(tokenToAtom, newTokenTo);\n } else {\n // otherwise, we set either tokenFrom or defaultTokenTo\n const newTokenTo = areTokensSame(tokenFrom, defaultTokenTo)\n ? defaultTokenTo\n : tokenFrom;\n\n set(tokenToAtom, newTokenTo);\n }\n }\n});\n\nexport const selectTokenFromAtom = atom(\n null,\n async (get, set, newTokenFrom: Token) => {\n const tokenFrom = get(tokenFromAtom);\n const tokenTo = get(tokenToAtom);\n\n // selecting a token from a different chain?\n if (newTokenFrom.network !== wagmiConfig.state.chainId) {\n // await for chain switch first\n await switchChain(wagmiConfig, {\n chainId: newTokenFrom.network,\n });\n }\n\n // then set the tokenFrom\n set(tokenFromAtom, newTokenFrom);\n\n if (!tokenTo) return;\n\n const deltaEnabledInSettings = get(deltaParamAtom);\n const deltaEnabledInConfig = get(widgetConfigAtom).enableDelta;\n\n const crosschainPossible =\n deltaEnabledInSettings &&\n deltaEnabledInConfig &&\n isAcrossAvailable({\n chainIdFrom: tokenTo.network,\n chainIdTo: newTokenFrom.network,\n });\n\n if (crosschainPossible) {\n const isTokenToFromAcross = isTokenFromAcross({\n token: tokenTo,\n fromChainId: newTokenFrom.network,\n toChainId: tokenTo.network,\n });\n\n if (!isTokenToFromAcross) {\n // set the token from across as tokenTo,\n // or reset tokenTo if token not found\n const maybeAcrossToken = findFirstTokenFromAcross({\n fromChainId: newTokenFrom.network,\n toChainId: tokenTo.network,\n });\n\n set(tokenToAtom, maybeAcrossToken);\n }\n } else {\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n newTokenFrom.network\n );\n\n // cross-chain not possible between new chainFrom and chainTo,\n // so need to reset tokenTo to default\n if (newTokenFrom.network !== tokenTo.network) {\n const newTokenTo = areTokensSame(newTokenFrom, defaultTokenTo)\n ? defaultTokenFrom\n : defaultTokenTo;\n set(tokenToAtom, newTokenTo);\n } else {\n // or simply flip the tokens if they are from the same chain\n if (areTokensSame(newTokenFrom, tokenTo)) {\n set(tokenToAtom, tokenFrom);\n }\n // otherwise do nothing, tokenTo is already on the same chain and different from newTokenFrom\n }\n }\n }\n);\n\nexport const selectTokenToAtom = atom(null, (get, set, newTokenTo: Token) => {\n const newTokenToNetwork = newTokenTo.network;\n\n const tokenFrom = get(tokenFromAtom);\n\n if (areTokensSame(newTokenTo, tokenFrom)) {\n const [defaultTokenFrom, defaultTokenTo] =\n pickDefaultTokenPair(newTokenToNetwork);\n\n const newTokenFrom = areTokensSame(tokenFrom, defaultTokenFrom)\n ? defaultTokenTo\n : defaultTokenFrom;\n set(tokenFromAtom, newTokenFrom);\n }\n\n // crosschain? set SwapMode to Delta\n if (tokenFrom.network !== newTokenToNetwork) {\n set(setSwapModeAtom, \"delta\");\n }\n\n set(tokenToAtom, newTokenTo);\n});\n\nexport const syncTokensAfterChainSwitch = (chainId: SupportedChainId) => {\n const jotaiStore = getDefaultStore();\n\n const tokenFrom = jotaiStore.get(tokenFromAtom);\n const tokenTo = jotaiStore.get(tokenToAtom);\n\n // chains are the same? do nothing\n if (tokenFrom.network === chainId) return;\n\n // get default tokens for the new chain\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(chainId);\n\n // reassignment for clarity\n const newTokenFrom = defaultTokenFrom;\n\n // update tokenFrom\n jotaiStore.set(tokenFromAtom, newTokenFrom);\n\n // toChainId derives from tokenTo.network, if no tokenTo - do nothing\n if (!tokenTo) return;\n\n const deltaEnabledInSettings = jotaiStore.get(deltaParamAtom);\n const deltaEnabledInConfig = jotaiStore.get(widgetConfigAtom).enableDelta;\n\n const crosschainPossible =\n deltaEnabledInSettings &&\n deltaEnabledInConfig &&\n isAcrossAvailable({\n chainIdFrom: chainId,\n chainIdTo: tokenTo.network,\n });\n\n if (crosschainPossible) {\n const isTokenToFromAcross = isTokenFromAcross({\n token: tokenTo,\n fromChainId: chainId,\n toChainId: tokenTo.network,\n });\n\n if (!isTokenToFromAcross) {\n // set the token from across as tokenTo,\n // or reset tokenTo if token not found\n const maybeAcrossToken = findFirstTokenFromAcross({\n fromChainId: chainId,\n toChainId: tokenTo.network,\n });\n\n jotaiStore.set(tokenToAtom, maybeAcrossToken);\n }\n\n jotaiStore.set(setSwapModeAtom, \"delta\");\n } else {\n if (\n // if tokenFrom that we just set is the same as tokenTo,\n areTokensSame(newTokenFrom, tokenTo) ||\n // or if chains are different,\n newTokenFrom.network !== tokenTo.network\n ) {\n // then set defaultTokenTo for the new chain\n jotaiStore.set(tokenToAtom, defaultTokenTo);\n }\n }\n};\n"],"names":["switchTokensAtom","atom","get","set","tokenTo","tokenToAtom","tokenFrom","tokenFromAtom","network","switchChain","wagmiConfig","chainId","deltaEnabledInSettings","deltaParamAtom","deltaEnabledInConfig","widgetConfigAtom","enableDelta","crosschainPossible","isAcrossAvailable","chainIdFrom","chainIdTo","tokenFromIsFromAcross","isTokenFromAcross","token","fromChainId","toChainId","areTokensSame","maybeAcrossToken","findFirstTokenFromAcross","defaultTokenFrom","defaultTokenTo","pickDefaultTokenPair","newTokenTo","selectTokenFromAtom","newTokenFrom","state","isTokenToFromAcross","selectTokenToAtom","newTokenToNetwork","setSwapModeAtom","syncTokensAfterChainSwitch","jotaiStore","getDefaultStore"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"selectedTokenActionsAtom.js","sources":["../../../../src/widget/inputs/state/selectedTokenActionsAtom.ts"],"sourcesContent":["import { atom, getDefaultStore } from \"jotai\";\nimport { switchChain } from \"@wagmi/core\";\n\nimport { tokenToAtom, tokenFromAtom } from \"./selectedTokenAtom\";\nimport { wagmiConfig } from \"@/lib/web3/wagmi/config\";\n\nimport type { Token } from \"@/tokens/state/types\";\nimport { areTokensSame } from \"@/tokens/utils/areTokensSame\";\nimport { pickDefaultTokenPair } from \"@/tokens/defaultTokens\";\nimport {\n findFirstTokenFromAcross,\n isAcrossAvailable,\n isTokenFromAcross,\n} from \"@/widget/across/utils\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { deltaParamAtom } from \"@/components/widget/TradeParameters/state/deltaParamAtom\";\nimport { widgetConfigAtom } from \"@/widget/state/configAtom\";\nimport { setSwapModeAtom } from \"@/components/widget/SwapModeSwitcher/state/swapModeActionsAtom\";\n\nexport const switchTokensAtom = atom(null, async (get, set) => {\n const tokenTo = get(tokenToAtom);\n\n if (!tokenTo) return;\n\n const tokenFrom = get(tokenFromAtom);\n\n // switch a token from a different chain?\n if (tokenFrom.network !== tokenTo.network) {\n // await for chain switch first\n await switchChain(wagmiConfig, {\n chainId: tokenTo.network,\n });\n }\n\n // then set the tokenFrom\n set(tokenFromAtom, tokenTo);\n\n const deltaEnabledInSettings = get(deltaParamAtom);\n const deltaEnabledInConfig = get(widgetConfigAtom).enableDelta;\n\n const crosschainPossible =\n deltaEnabledInSettings &&\n deltaEnabledInConfig &&\n isAcrossAvailable({\n chainIdFrom: tokenTo.network,\n chainIdTo: tokenFrom.network,\n });\n\n if (crosschainPossible) {\n const tokenFromIsFromAcross = isTokenFromAcross({\n token: tokenFrom,\n fromChainId: tokenFrom.network,\n toChainId: tokenTo.network,\n });\n\n if (tokenFromIsFromAcross && !areTokensSame(tokenFrom, tokenTo)) {\n // can use tokenFrom as tokenTo because it's an Across token\n set(tokenToAtom, tokenFrom);\n } else {\n // otherwise, we either set tokenTo to the first Across token,\n // or reset tokenTo\n const maybeAcrossToken = findFirstTokenFromAcross({\n fromChainId: tokenTo.network,\n toChainId: tokenFrom.network,\n });\n set(tokenToAtom, maybeAcrossToken);\n }\n } else {\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n tokenTo.network\n );\n\n if (tokenTo.network !== tokenFrom.network) {\n // if cross-chain, then we can't use tokenFrom as tokenTo, so pick from defaults\n const newTokenTo = areTokensSame(tokenFrom, defaultTokenTo)\n ? defaultTokenFrom\n : defaultTokenTo;\n\n set(tokenToAtom, newTokenTo);\n } else {\n // otherwise, we set either tokenFrom or defaultTokenTo\n const newTokenTo = areTokensSame(tokenFrom, defaultTokenTo)\n ? defaultTokenTo\n : tokenFrom;\n\n set(tokenToAtom, newTokenTo);\n }\n }\n});\n\nexport const selectTokenFromAtom = atom(\n null,\n async (get, set, newTokenFrom: Token) => {\n const tokenFrom = get(tokenFromAtom);\n const tokenTo = get(tokenToAtom);\n\n // selecting a token from a different chain?\n if (newTokenFrom.network !== wagmiConfig.state.chainId) {\n // await for chain switch first\n await switchChain(wagmiConfig, {\n chainId: newTokenFrom.network,\n });\n }\n\n // then set the tokenFrom\n set(tokenFromAtom, newTokenFrom);\n\n if (!tokenTo) return;\n\n const deltaEnabledInSettings = get(deltaParamAtom);\n const deltaEnabledInConfig = get(widgetConfigAtom).enableDelta;\n\n const crosschainPossible =\n deltaEnabledInSettings &&\n deltaEnabledInConfig &&\n isAcrossAvailable({\n chainIdFrom: tokenTo.network,\n chainIdTo: newTokenFrom.network,\n });\n\n if (crosschainPossible) {\n const isTokenToFromAcross = isTokenFromAcross({\n token: tokenTo,\n fromChainId: newTokenFrom.network,\n toChainId: tokenTo.network,\n });\n\n if (!isTokenToFromAcross) {\n // set the token from across as tokenTo,\n // or reset tokenTo if token not found\n const maybeAcrossToken = findFirstTokenFromAcross({\n fromChainId: newTokenFrom.network,\n toChainId: tokenTo.network,\n });\n\n set(tokenToAtom, maybeAcrossToken);\n }\n } else {\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n newTokenFrom.network\n );\n\n // cross-chain not possible between new chainFrom and chainTo,\n // so need to reset tokenTo to default\n if (newTokenFrom.network !== tokenTo.network) {\n const newTokenTo = areTokensSame(newTokenFrom, defaultTokenTo)\n ? defaultTokenFrom\n : defaultTokenTo;\n set(tokenToAtom, newTokenTo);\n } else {\n // or simply flip the tokens if they are from the same chain\n if (areTokensSame(newTokenFrom, tokenTo)) {\n set(tokenToAtom, tokenFrom);\n }\n // otherwise do nothing, tokenTo is already on the same chain and different from newTokenFrom\n }\n }\n }\n);\n\nexport const selectTokenToAtom = atom(null, (get, set, newTokenTo: Token) => {\n const newTokenToNetwork = newTokenTo.network;\n\n const tokenFrom = get(tokenFromAtom);\n const tokenTo = get(tokenToAtom);\n\n if (areTokensSame(newTokenTo, tokenFrom)) {\n const [defaultTokenFrom, defaultTokenTo] =\n pickDefaultTokenPair(newTokenToNetwork);\n\n const fromDefaults = areTokensSame(tokenFrom, defaultTokenFrom)\n ? defaultTokenTo\n : defaultTokenFrom;\n\n // Will be true if crosschain tokens were selected\n const wasCrosschain = tokenTo && tokenFrom.network !== tokenTo?.network;\n\n const newTokenFrom = wasCrosschain\n ? // We cannot flip the tokens if switching from the crosschain, because if we do, we will end up with tokenFrom network different from app chainId.\n // Switching app chainId when selecting tokenTo is not what we want, because we cannot dictate the main network when selecting tokenTo.\n // Maybe user wants to trade singlechain but we are forcing crosschain.\n fromDefaults\n : // Otherwise, we can flip the tokens, or pick from defaults\n (tokenTo ?? fromDefaults);\n\n set(tokenFromAtom, newTokenFrom);\n }\n\n // crosschain? set SwapMode to Delta\n if (tokenFrom.network !== newTokenToNetwork) {\n set(setSwapModeAtom, \"delta\");\n }\n\n set(tokenToAtom, newTokenTo);\n});\n\nexport const syncTokensAfterChainSwitch = (chainId: SupportedChainId) => {\n const jotaiStore = getDefaultStore();\n\n const tokenFrom = jotaiStore.get(tokenFromAtom);\n const tokenTo = jotaiStore.get(tokenToAtom);\n\n // chains are the same? do nothing\n if (tokenFrom.network === chainId) return;\n\n // get default tokens for the new chain\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(chainId);\n\n // reassignment for clarity\n const newTokenFrom = defaultTokenFrom;\n\n // update tokenFrom\n jotaiStore.set(tokenFromAtom, newTokenFrom);\n\n // toChainId derives from tokenTo.network, if no tokenTo - do nothing\n if (!tokenTo) return;\n\n const deltaEnabledInSettings = jotaiStore.get(deltaParamAtom);\n const deltaEnabledInConfig = jotaiStore.get(widgetConfigAtom).enableDelta;\n\n const crosschainPossible =\n deltaEnabledInSettings &&\n deltaEnabledInConfig &&\n isAcrossAvailable({\n chainIdFrom: chainId,\n chainIdTo: tokenTo.network,\n });\n\n if (crosschainPossible) {\n const isTokenToFromAcross = isTokenFromAcross({\n token: tokenTo,\n fromChainId: chainId,\n toChainId: tokenTo.network,\n });\n\n if (!isTokenToFromAcross) {\n // set the token from across as tokenTo,\n // or reset tokenTo if token not found\n const maybeAcrossToken = findFirstTokenFromAcross({\n fromChainId: chainId,\n toChainId: tokenTo.network,\n });\n\n jotaiStore.set(tokenToAtom, maybeAcrossToken);\n }\n\n jotaiStore.set(setSwapModeAtom, \"delta\");\n } else {\n if (\n // if tokenFrom that we just set is the same as tokenTo,\n areTokensSame(newTokenFrom, tokenTo) ||\n // or if chains are different,\n newTokenFrom.network !== tokenTo.network\n ) {\n // then set defaultTokenTo for the new chain\n jotaiStore.set(tokenToAtom, defaultTokenTo);\n }\n }\n};\n"],"names":["switchTokensAtom","atom","get","set","tokenTo","tokenToAtom","tokenFrom","tokenFromAtom","network","switchChain","wagmiConfig","chainId","deltaEnabledInSettings","deltaParamAtom","deltaEnabledInConfig","widgetConfigAtom","enableDelta","crosschainPossible","isAcrossAvailable","chainIdFrom","chainIdTo","tokenFromIsFromAcross","isTokenFromAcross","token","fromChainId","toChainId","areTokensSame","maybeAcrossToken","findFirstTokenFromAcross","defaultTokenFrom","defaultTokenTo","pickDefaultTokenPair","newTokenTo","selectTokenFromAtom","newTokenFrom","state","isTokenToFromAcross","selectTokenToAtom","newTokenToNetwork","fromDefaults","wasCrosschain","setSwapModeAtom","syncTokensAfterChainSwitch","jotaiStore","getDefaultStore"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configActionsAtom.d.ts","sourceRoot":"","sources":["../../../src/widget/state/configActionsAtom.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"configActionsAtom.d.ts","sourceRoot":"","sources":["../../../src/widget/state/configActionsAtom.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAI7C,eAAO,MAAM,mBAAmB;;CAyB/B,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { atom } from 'jotai';
|
|
2
2
|
import { widgetConfigAtom } from './configAtom.js';
|
|
3
|
+
import { setSwapModeAtom } from '../../components/widget/SwapModeSwitcher/state/swapModeActionsAtom.js';
|
|
3
4
|
|
|
4
5
|
const setWidgetConfigAtom = atom(null, (get, set, config) => {
|
|
5
6
|
const currentConfig = get(widgetConfigAtom);
|
|
@@ -18,6 +19,7 @@ const setWidgetConfigAtom = atom(null, (get, set, config) => {
|
|
|
18
19
|
debug,
|
|
19
20
|
widgetMode
|
|
20
21
|
});
|
|
22
|
+
set(setSwapModeAtom, enableDelta ? "delta" : "market");
|
|
21
23
|
});
|
|
22
24
|
|
|
23
25
|
export { setWidgetConfigAtom };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configActionsAtom.js","sources":["../../../src/widget/state/configActionsAtom.ts"],"sourcesContent":["import { atom } from \"jotai\";\nimport type { WidgetConfig } from \"../types\";\nimport { widgetConfigAtom } from \"./configAtom\";\n\nexport const setWidgetConfigAtom = atom(\n null,\n (get, set, config?: WidgetConfig) => {\n const currentConfig = get(widgetConfigAtom);\n\n // set either new value or stick with the current one\n const enableDelta = config?.enableDelta ?? currentConfig.enableDelta;\n const theme = config?.theme ?? currentConfig.theme;\n const privyAppId = config?.privyAppId ?? currentConfig.privyAppId;\n const privyClientId = config?.privyClientId ?? currentConfig.privyClientId;\n const debug = config?.debug ?? currentConfig.debug;\n const widgetMode = config?.widgetMode ?? currentConfig.widgetMode;\n\n set(widgetConfigAtom, {\n theme,\n enableDelta,\n partner: config?.partner,\n privyAppId,\n privyClientId,\n debug,\n widgetMode,\n });\n }\n);\n"],"names":["setWidgetConfigAtom","atom","get","set","config","currentConfig","widgetConfigAtom","enableDelta","theme","privyAppId","privyClientId","debug","widgetMode","partner"],"mappings":"
|
|
1
|
+
{"version":3,"file":"configActionsAtom.js","sources":["../../../src/widget/state/configActionsAtom.ts"],"sourcesContent":["import { atom } from \"jotai\";\nimport type { WidgetConfig } from \"../types\";\nimport { widgetConfigAtom } from \"./configAtom\";\nimport { setSwapModeAtom } from \"@/components/widget/SwapModeSwitcher/state/swapModeActionsAtom\";\n\nexport const setWidgetConfigAtom = atom(\n null,\n (get, set, config?: WidgetConfig) => {\n const currentConfig = get(widgetConfigAtom);\n\n // set either new value or stick with the current one\n const enableDelta = config?.enableDelta ?? currentConfig.enableDelta;\n const theme = config?.theme ?? currentConfig.theme;\n const privyAppId = config?.privyAppId ?? currentConfig.privyAppId;\n const privyClientId = config?.privyClientId ?? currentConfig.privyClientId;\n const debug = config?.debug ?? currentConfig.debug;\n const widgetMode = config?.widgetMode ?? currentConfig.widgetMode;\n\n set(widgetConfigAtom, {\n theme,\n enableDelta,\n partner: config?.partner,\n privyAppId,\n privyClientId,\n debug,\n widgetMode,\n });\n\n set(setSwapModeAtom, enableDelta ? \"delta\" : \"market\");\n }\n);\n"],"names":["setWidgetConfigAtom","atom","get","set","config","currentConfig","widgetConfigAtom","enableDelta","theme","privyAppId","privyClientId","debug","widgetMode","partner","setSwapModeAtom"],"mappings":";;;;AAKO,MAAMA,sBAAsBC,IAAAA,CACjC,IAAA,EACA,CAACC,GAAAA,EAAKC,KAAKC,MAAAA,KAA0B;AACnC,EAAA,MAAMC,aAAAA,GAAgBH,IAAII,gBAAgB,CAAA;AAG1C,EAAA,MAAMC,WAAAA,GAAcH,MAAAA,EAAQG,WAAAA,IAAeF,aAAAA,CAAcE,WAAAA;AACzD,EAAA,MAAMC,KAAAA,GAAQJ,MAAAA,EAAQI,KAAAA,IAASH,aAAAA,CAAcG,KAAAA;AAC7C,EAAA,MAAMC,UAAAA,GAAaL,MAAAA,EAAQK,UAAAA,IAAcJ,aAAAA,CAAcI,UAAAA;AACvD,EAAA,MAAMC,aAAAA,GAAgBN,MAAAA,EAAQM,aAAAA,IAAiBL,aAAAA,CAAcK,aAAAA;AAC7D,EAAA,MAAMC,KAAAA,GAAQP,MAAAA,EAAQO,KAAAA,IAASN,aAAAA,CAAcM,KAAAA;AAC7C,EAAA,MAAMC,UAAAA,GAAaR,MAAAA,EAAQQ,UAAAA,IAAcP,aAAAA,CAAcO,UAAAA;AAEvDT,EAAAA,GAAAA,CAAIG,gBAAAA,EAAkB;AAAA,IACpBE,KAAAA;AAAAA,IACAD,WAAAA;AAAAA,IACAM,SAAST,MAAAA,EAAQS,OAAAA;AAAAA,IACjBJ,UAAAA;AAAAA,IACAC,aAAAA;AAAAA,IACAC,KAAAA;AAAAA,IACAC;AAAAA,GACD,CAAA;AAEDT,EAAAA,GAAAA,CAAIW,eAAAA,EAAiBP,WAAAA,GAAc,OAAA,GAAU,QAAQ,CAAA;AACvD,CACF;;;;"}
|
package/dist/widget/types.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { EIP1193Provider } from 'viem';
|
|
1
2
|
export type WidgetTheme = "light" | "dark";
|
|
2
3
|
export interface WidgetProps {
|
|
3
4
|
config?: WidgetConfig;
|
|
4
|
-
provider?:
|
|
5
|
+
provider?: EIP1193Provider;
|
|
5
6
|
}
|
|
6
7
|
/** Configuration for the widget. */
|
|
7
8
|
export interface WidgetConfig {
|
|
@@ -20,14 +21,4 @@ export interface WidgetConfig {
|
|
|
20
21
|
/** Widget mode - "dapp" for embedded in dapp, "standalone" for standalone widget. */
|
|
21
22
|
widgetMode?: "dapp" | "standalone";
|
|
22
23
|
}
|
|
23
|
-
interface RequestArguments {
|
|
24
|
-
readonly method: any;
|
|
25
|
-
readonly params?: any;
|
|
26
|
-
}
|
|
27
|
-
export type EIP1193ProviderLax = {
|
|
28
|
-
request: (args: RequestArguments) => Promise<any>;
|
|
29
|
-
on: (event: any, callback: (arg: unknown) => void) => void;
|
|
30
|
-
removeListener: (event: any, callback: (arg: unknown) => void) => void;
|
|
31
|
-
};
|
|
32
|
-
export {};
|
|
33
24
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/widget/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;AAE3C,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,QAAQ,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/widget/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAE5C,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;AAE3C,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC5B;AAED,qCAAqC;AACrC,MAAM,WAAW,YAAY;IAC3B,mDAAmD;IACnD,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,wEAAwE;IACxE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kEAAkE;IAClE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,qFAAqF;IACrF,UAAU,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;CACpC"}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TestButton.d.ts","sourceRoot":"","sources":["../../src/test/TestButton.tsx"],"names":[],"mappings":"AAGA,wBAAgB,UAAU,4CAQzB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logger-demo.d.ts","sourceRoot":"","sources":["../../src/test/logger-demo.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|