@velora-dex/widget 0.2.3 → 0.2.5-dev.0
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/web3/ConnectedWallet/ConnectedWallet.js +7 -7
- package/dist/components/web3/ConnectedWallet/ConnectedWallet.js.map +1 -1
- package/dist/components/widget/DexesList/DexItem.d.ts.map +1 -1
- package/dist/components/widget/DexesList/DexItem.js +57 -62
- package/dist/components/widget/DexesList/DexItem.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/tokens.js +6 -6
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/tokens.js.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.d.ts.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js +0 -5
- package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/utils.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/utils.js +4 -2
- package/dist/components/widget/TradeOverview/TradeComplete/utils.js.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.d.ts.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js +46 -34
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js.map +1 -1
- package/dist/configurator/Configurator.d.ts.map +1 -1
- package/dist/core/Updaters.d.ts.map +1 -1
- package/dist/core/Updaters.js +2 -0
- package/dist/core/Updaters.js.map +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +101 -93
- package/dist/core/index.js.map +1 -1
- package/dist/core/inputs/hooks/useTokenFromInputProps.d.ts.map +1 -1
- package/dist/core/inputs/hooks/useTokenFromInputProps.js +25 -16
- package/dist/core/inputs/hooks/useTokenFromInputProps.js.map +1 -1
- package/dist/core/inputs/hooks/useTokenToInputProps.d.ts.map +1 -1
- package/dist/core/inputs/hooks/useTokenToInputProps.js +9 -12
- package/dist/core/inputs/hooks/useTokenToInputProps.js.map +1 -1
- package/dist/core/inputs/state/common.d.ts +2 -2
- package/dist/core/inputs/state/selectedTokenActionsAtom.d.ts.map +1 -1
- package/dist/core/inputs/state/selectedTokenActionsAtom.js +34 -25
- package/dist/core/inputs/state/selectedTokenActionsAtom.js.map +1 -1
- package/dist/core/inputs/state/selectedTokenAtom.d.ts +2 -2
- package/dist/core/inputs/state/selectedTokenAtom.d.ts.map +1 -1
- package/dist/core/inputs/state/selectedTokenAtom.js +9 -2
- package/dist/core/inputs/state/selectedTokenAtom.js.map +1 -1
- package/dist/core/inputs/state/types.d.ts.map +1 -1
- package/dist/core/limit/useLimitRate.js +3 -1
- package/dist/core/limit/useLimitRate.js.map +1 -1
- package/dist/core/state/configActionsAtom.d.ts.map +1 -1
- package/dist/core/state/configActionsAtom.js +3 -1
- package/dist/core/state/configActionsAtom.js.map +1 -1
- package/dist/core/state/configAtom.d.ts +4 -2
- package/dist/core/state/configAtom.d.ts.map +1 -1
- package/dist/core/state/configAtom.js +7 -3
- package/dist/core/state/configAtom.js.map +1 -1
- package/dist/core/state/widgetEventsAtom.d.ts.map +1 -1
- package/dist/core/state/widgetEventsAtom.js +4 -4
- package/dist/core/state/widgetEventsAtom.js.map +1 -1
- package/dist/core/swapDetails/maxToPay.d.ts +11 -0
- package/dist/core/swapDetails/maxToPay.d.ts.map +1 -0
- package/dist/core/swapDetails/maxToPay.js +41 -0
- package/dist/core/swapDetails/maxToPay.js.map +1 -0
- package/dist/core/swapDetails/useSwapDetailsListProps.d.ts.map +1 -1
- package/dist/core/swapDetails/useSwapDetailsListProps.js +9 -2
- package/dist/core/swapDetails/useSwapDetailsListProps.js.map +1 -1
- package/dist/core/swapDetails/youGet.d.ts.map +1 -1
- package/dist/core/swapDetails/youGet.js.map +1 -1
- package/dist/core/types.d.ts +6 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/events/effects/price.js +3 -3
- package/dist/events/effects/price.js.map +1 -1
- package/dist/events/effects/swapMode.js +2 -2
- package/dist/events/effects/swapMode.js.map +1 -1
- package/dist/events/hooks/useOnPriceUpdates.d.ts +2 -0
- package/dist/events/hooks/useOnPriceUpdates.d.ts.map +1 -0
- package/dist/events/hooks/useOnPriceUpdates.js +104 -0
- package/dist/events/hooks/useOnPriceUpdates.js.map +1 -0
- package/dist/events/types/priceChange.d.ts +12 -4
- package/dist/events/types/priceChange.d.ts.map +1 -1
- package/dist/hooks/gas/useGasPrices.d.ts.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/useDeltaPriceQuery.d.ts +33 -4
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js +98 -29
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/utils.d.ts +3 -0
- package/dist/hooks/swap/prices/delta/queries/utils.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/queries/utils.js +9 -0
- package/dist/hooks/swap/prices/delta/queries/utils.js.map +1 -0
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.d.ts +35 -2
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.d.ts.map +1 -1
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js +102 -98
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.d.ts +8 -0
- package/dist/hooks/swap/prices/useSwapPrices.d.ts.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.js +234 -99
- package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +13 -20
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.js +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.js.map +1 -1
- package/dist/hooks/tokens/prices/queries.d.ts.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/txs/queries/useTxHistory.d.ts.map +1 -1
- package/dist/hooks/txs/queries/useTxHistory.js +2 -2
- package/dist/hooks/txs/queries/useTxHistory.js.map +1 -1
- package/dist/hooks/useCachedQueryError.d.ts +3 -0
- package/dist/hooks/useCachedQueryError.d.ts.map +1 -0
- package/dist/hooks/useCachedQueryError.js +11 -0
- package/dist/hooks/useCachedQueryError.js.map +1 -0
- package/dist/hooks/useSDK.d.ts.map +1 -1
- package/dist/hooks/useSDK.js +11 -11
- package/dist/hooks/useSDK.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/lib/constants/index.d.ts +0 -2
- package/dist/lib/constants/index.d.ts.map +1 -1
- package/dist/lib/constants/index.js +1 -4
- package/dist/lib/constants/index.js.map +1 -1
- package/dist/lib/constants/urls.d.ts +4 -0
- package/dist/lib/constants/urls.d.ts.map +1 -0
- package/dist/lib/constants/urls.js +30 -0
- package/dist/lib/constants/urls.js.map +1 -0
- package/dist/lib/utils/explorer.d.ts.map +1 -1
- package/dist/lib/utils/explorer.js +3 -3
- package/dist/lib/utils/explorer.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/tokens/overrides.d.ts +13 -2
- package/dist/tokens/overrides.d.ts.map +1 -1
- package/dist/tokens/overrides.js +71 -3
- package/dist/tokens/overrides.js.map +1 -1
- package/dist/tokens/types.d.ts +4 -0
- package/dist/tokens/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -21,9 +21,10 @@ import { selectSwapTokenFromAtom } from '../state/selectedTokenActionsAtom.js';
|
|
|
21
21
|
import { useDeltaOrderRequiredAllowance } from '../../../hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.js';
|
|
22
22
|
import { useEnabledSrcChains } from '../../state/enabledChainsAtom.js';
|
|
23
23
|
import { switchChain } from '../../../lib/web3/wagmi/switchChain.js';
|
|
24
|
+
import { isDeltaPrice } from '../../../hooks/swap/prices/delta/queries/useDeltaPriceQuery.js';
|
|
24
25
|
|
|
25
26
|
const useTokenFromAmountProps = (t0) => {
|
|
26
|
-
const $ = distExports.c(
|
|
27
|
+
const $ = distExports.c(13);
|
|
27
28
|
let t1;
|
|
28
29
|
if ($[0] !== t0) {
|
|
29
30
|
t1 = t0 === void 0 ? {} : t0;
|
|
@@ -39,36 +40,44 @@ const useTokenFromAmountProps = (t0) => {
|
|
|
39
40
|
const tokenFrom = useSwapTokenFrom();
|
|
40
41
|
const [amountValue, setAmountValue] = useAtom(payInputAmountAtom);
|
|
41
42
|
const tokenBalanceUnit = useTokenFromBalanceUnit();
|
|
42
|
-
|
|
43
|
+
let t2;
|
|
44
|
+
if ($[2] !== price) {
|
|
45
|
+
t2 = price && isDeltaPrice(price) ? price.srcUSDBeforeFee || price.srcUSD : price?.srcUSD;
|
|
46
|
+
$[2] = price;
|
|
47
|
+
$[3] = t2;
|
|
48
|
+
} else {
|
|
49
|
+
t2 = $[3];
|
|
50
|
+
}
|
|
51
|
+
const usdEstimation = t2;
|
|
43
52
|
let t3;
|
|
44
|
-
if ($[
|
|
53
|
+
if ($[4] !== logger || $[5] !== setAmountValue) {
|
|
45
54
|
t3 = (values) => {
|
|
46
55
|
logger.log("onAmountChange::values", values);
|
|
47
56
|
setAmountValue(values.value);
|
|
48
57
|
};
|
|
49
|
-
$[
|
|
50
|
-
$[
|
|
51
|
-
$[
|
|
58
|
+
$[4] = logger;
|
|
59
|
+
$[5] = setAmountValue;
|
|
60
|
+
$[6] = t3;
|
|
52
61
|
} else {
|
|
53
|
-
t3 = $[
|
|
62
|
+
t3 = $[6];
|
|
54
63
|
}
|
|
55
64
|
let t4;
|
|
56
|
-
if ($[
|
|
65
|
+
if ($[7] !== amountValue || $[8] !== t3 || $[9] !== tokenBalanceUnit || $[10] !== tokenFrom || $[11] !== usdEstimation) {
|
|
57
66
|
t4 = {
|
|
58
67
|
amount: amountValue,
|
|
59
68
|
tokenBalanceUnit,
|
|
60
69
|
token: tokenFrom,
|
|
61
|
-
usdEstimation
|
|
70
|
+
usdEstimation,
|
|
62
71
|
onAmountChange: t3
|
|
63
72
|
};
|
|
64
|
-
$[
|
|
65
|
-
$[
|
|
66
|
-
$[
|
|
67
|
-
$[
|
|
68
|
-
$[
|
|
69
|
-
$[
|
|
73
|
+
$[7] = amountValue;
|
|
74
|
+
$[8] = t3;
|
|
75
|
+
$[9] = tokenBalanceUnit;
|
|
76
|
+
$[10] = tokenFrom;
|
|
77
|
+
$[11] = usdEstimation;
|
|
78
|
+
$[12] = t4;
|
|
70
79
|
} else {
|
|
71
|
-
t4 = $[
|
|
80
|
+
t4 = $[12];
|
|
72
81
|
}
|
|
73
82
|
return t4;
|
|
74
83
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTokenFromInputProps.js","sources":["../../../../src/core/inputs/hooks/useTokenFromInputProps.tsx"],"sourcesContent":["import type { TokenInputProps } from \"@/components/widget/TokenInput/types\";\n\nimport { useSwapTokenFrom } from \"../state/selectedTokenAtom\";\nimport { useChainId } from \"wagmi\";\nimport { useAtom, useSetAtom } from \"jotai\";\nimport { payInputAmountAtom } from \"../state/inputAmountAtom\";\nimport { useGenericTokenAllowance } from \"@/hooks/tokens/allowance/useGenericTokenAllowance\";\nimport { type SwapMode } from \"@/components/widget/SwapModeSwitcher/state/types\";\nimport { swapModeToSpender } from \"@/core/constants\";\nimport { useIsTokenFromInsufficientBalance } from \"@/hooks/tokens/balances/useIsInsufficientTokenBalance\";\nimport { parseUnits, formatUnits } from \"viem\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { useSwapSide } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport { currentSwapInputAtom } from \"@/core/state/currentSwapInputAtom\";\nimport { useTokenBalance } from \"@/hooks/tokens/balances/useTokenBalance\";\nimport { isETH } from \"@/tokens/utils/eth\";\nimport { useGasPrices } from \"@/hooks/gas/useGasPrices\";\nimport type { DeltaOrMarketPrice } from \"@/hooks/swap/prices/types\";\nimport Big from \"big.js\";\nimport type { MarkRequired } from \"ts-essentials\";\nimport type { TokenInputExtraProps, TokenInputAmountProps } from \"./types\";\nimport { toDecimalTrimmed } from \"@/lib/utils/toDecimal\";\nimport { useLogger } from \"@/core/logger\";\nimport { MEDIUM_STALE_TIME_FOR_REACTIVENESS } from \"@/lib/constants/time\";\nimport { selectSwapTokenFromAtom } from \"../state/selectedTokenActionsAtom\";\nimport { useDeltaOrderRequiredAllowance } from \"@/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance\";\nimport { useEnabledSrcChains } from \"@/core/state/enabledChainsAtom\";\nimport { switchChain } from \"@/lib/web3/wagmi/switchChain\";\n\ntype UseTokenFromInputInput = {\n override?: {\n amountWei?: string;\n };\n activeSwapMode: SwapMode;\n isPriceLoading?: boolean;\n price?: DeltaOrMarketPrice;\n};\n\nconst useTokenFromAmountProps = ({\n price,\n}: { price?: DeltaOrMarketPrice } = {}): MarkRequired<\n TokenInputAmountProps,\n \"token\"\n> => {\n const logger = useLogger(\"Swap::TokenFrom::AmountProps\");\n const tokenFrom = useSwapTokenFrom();\n\n const [amountValue, setAmountValue] = useAtom(payInputAmountAtom);\n\n const tokenBalanceUnit = useTokenFromBalanceUnit();\n\n return {\n amount: amountValue,\n tokenBalanceUnit,\n token: tokenFrom,\n usdEstimation: price?.srcUSD,\n onAmountChange: (values) => {\n logger.log(\"onAmountChange::values\", values);\n setAmountValue(values.value);\n },\n };\n};\n\nconst useTokenFromBalanceUnit = () => {\n const tokenFrom = useSwapTokenFrom();\n\n const { balanceUnit } = useTokenBalance({\n token: tokenFrom,\n queryOptions: { refetchInterval: MEDIUM_STALE_TIME_FOR_REACTIVENESS },\n });\n\n return toDecimalTrimmed(balanceUnit);\n};\n\ntype UseTokenConditionalPropsInput = {\n amountWei: string;\n swapMode: SwapMode;\n tokenFrom: Token;\n};\n\nconst useTokenConditionalProps = ({\n amountWei,\n swapMode,\n tokenFrom,\n}: UseTokenConditionalPropsInput): Required<\n Pick<\n TokenInputProps,\n \"insufficientBalanceMessageProps\" | \"tokenBadgePropsOverride\"\n >\n> => {\n const spenderContractType = swapModeToSpender[swapMode];\n\n // amount required to cover allowance of current Orders + amount for the new Order\n const { combinedAllowance: srcCombinedAllowance } =\n useDeltaOrderRequiredAllowance({\n tokenAddress: tokenFrom.address,\n amount: amountWei,\n enabled: spenderContractType === \"ParaswapDelta\",\n });\n\n const tokenAllowance = useGenericTokenAllowance({\n token: tokenFrom,\n spenderContractType,\n amountToApproveInWei: srcCombinedAllowance,\n });\n\n const isInsufficientBalance = useIsTokenFromInsufficientBalance(\"swap\");\n\n return {\n tokenBadgePropsOverride: {\n lockIcon: !isInsufficientBalance && tokenAllowance.needsApproval,\n },\n insufficientBalanceMessageProps: {\n token: tokenFrom,\n shouldDisplay: isInsufficientBalance,\n },\n };\n};\n\nconst useMaxButtonProps = ({\n price,\n tokenFrom,\n}: {\n price?: DeltaOrMarketPrice;\n tokenFrom: Token;\n}) => {\n const setCurrentSwapInput = useSetAtom(currentSwapInputAtom);\n const setPayInputAmount = useSetAtom(payInputAmountAtom);\n\n const { balanceUnit } = useTokenBalance({\n token: tokenFrom,\n queryOptions: { refetchInterval: MEDIUM_STALE_TIME_FOR_REACTIVENESS },\n });\n\n const { data: gasPrices } = useGasPrices();\n\n const hasBalance = !!balanceUnit && balanceUnit !== \"0\";\n const showMaxButton = hasBalance && (!isETH(tokenFrom) || !!price);\n\n return {\n showMaxButton,\n onMaxClick: () => {\n setCurrentSwapInput(\"from\");\n\n if (hasBalance) {\n if (!isETH(tokenFrom)) {\n setPayInputAmount(balanceUnit);\n return;\n }\n\n const gasCost = price?.gasCost; // gasLimit\n const gasPriceMultiplier = gasPrices?.legacyPrices.instant;\n\n if (gasCost && gasPriceMultiplier) {\n const gasFeeETH = Big(gasCost)\n // have to add extra 200k because instant multiplier is not accurate enough\n .plus(200000)\n .mul(gasPriceMultiplier)\n .div(1e9);\n const balanceWithDeductedGas = Big(balanceUnit).minus(gasFeeETH);\n\n setPayInputAmount(balanceWithDeductedGas.toString());\n }\n }\n },\n };\n};\n\nconst useExtraProps = ({\n isPriceLoading,\n}: {\n isPriceLoading?: boolean;\n} = {}): TokenInputExtraProps => {\n const appChainId = useChainId();\n\n const setCurrentInput = useSetAtom(currentSwapInputAtom);\n\n const side = useSwapSide();\n\n // BUYing and price is loading = tokenFrom input will receive srcAmount\n const isLoading = isPriceLoading && side === \"BUY\";\n const enabledSrcChains = useEnabledSrcChains();\n\n return {\n networkSwitcherProps: {\n networks: enabledSrcChains,\n selectedNetwork: appChainId,\n allOption: false,\n onSelect: (chainId) => chainId !== \"all\" && switchChain({ chainId }),\n disabled: enabledSrcChains.length <= 1,\n },\n tokenType: \"from\" as const,\n onFocus: () => setCurrentInput(\"from\"),\n label: (\n <>\n <span>Pay</span> <span className=\"text-contrast-5\">on</span>\n </>\n ),\n isLoading,\n };\n};\n\nexport const useTokenFromInputProps = ({\n activeSwapMode,\n override,\n isPriceLoading,\n price,\n}: UseTokenFromInputInput): TokenInputProps => {\n const tokenFromAmounts = useTokenFromAmountProps({\n price,\n });\n const tokenFrom = tokenFromAmounts.token;\n\n const amountWei =\n override?.amountWei ??\n parseUnits(tokenFromAmounts.amount, tokenFrom.decimals).toString();\n\n const amount = override?.amountWei\n ? formatUnits(BigInt(override.amountWei), tokenFrom.decimals)\n : tokenFromAmounts.amount;\n\n const tokenConditionalProps = useTokenConditionalProps({\n amountWei,\n swapMode: activeSwapMode,\n tokenFrom: tokenFrom,\n });\n const extraProps = useExtraProps({ isPriceLoading });\n const maxButtonProps = useMaxButtonProps({ price, tokenFrom });\n\n const setTokenFrom = useSetAtom(selectSwapTokenFromAtom);\n const onTokenSelect = (newTokenFrom: Token) => {\n setTokenFrom(newTokenFrom);\n };\n\n return {\n ...tokenFromAmounts,\n amount,\n ...tokenConditionalProps,\n ...extraProps,\n ...maxButtonProps,\n onTokenSelect,\n };\n};\n"],"names":["useTokenFromAmountProps","t0","$","_c","t1","undefined","price","logger","useLogger","tokenFrom","useSwapTokenFrom","amountValue","setAmountValue","useAtom","payInputAmountAtom","tokenBalanceUnit","useTokenFromBalanceUnit","t2","srcUSD","t3","values","log","value","t4","amount","token","usdEstimation","onAmountChange","Symbol","for","refetchInterval","MEDIUM_STALE_TIME_FOR_REACTIVENESS","queryOptions","balanceUnit","useTokenBalance","toDecimalTrimmed","useTokenConditionalProps","amountWei","swapMode","spenderContractType","swapModeToSpender","address","tokenAddress","enabled","combinedAllowance","srcCombinedAllowance","useDeltaOrderRequiredAllowance","amountToApproveInWei","tokenAllowance","useGenericTokenAllowance","isInsufficientBalance","useIsTokenFromInsufficientBalance","needsApproval","t5","lockIcon","t6","shouldDisplay","t7","tokenBadgePropsOverride","insufficientBalanceMessageProps","useMaxButtonProps","setCurrentSwapInput","useSetAtom","currentSwapInputAtom","setPayInputAmount","data","gasPrices","useGasPrices","hasBalance","isETH","showMaxButton","legacyPrices","gasCost","gasPriceMultiplier","instant","gasFeeETH","Big","plus","mul","div","balanceWithDeductedGas","minus","toString","onMaxClick","useExtraProps","isPriceLoading","appChainId","useChainId","setCurrentInput","side","useSwapSide","isLoading","enabledSrcChains","useEnabledSrcChains","length","networks","selectedNetwork","allOption","onSelect","_temp","disabled","networkSwitcherProps","tokenType","onFocus","label","useTokenFromInputProps","activeSwapMode","override","tokenFromAmounts","parseUnits","decimals","formatUnits","BigInt","tokenConditionalProps","extraProps","maxButtonProps","setTokenFrom","selectSwapTokenFromAtom","newTokenFrom","onTokenSelect","t8","chainId","switchChain"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAsCA,MAAMA,0BAA0BC,CAAAA,EAAAA,KAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAF,CAAAA,QAAAD,EAAAA,EAAA;AAACG,IAAAA,EAAAA,GAAAH,EAAAA,KAAAI,MAAAA,GAAA,EAEI,GAFJJ,EAAAA;AAEKC,IAAAA,CAAAA,MAAAD,EAAAA;AAAAC,IAAAA,CAAAA,MAAAE,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAF,EAAA,CAAA,CAAA;AAAA,EAAA;AAFL,EAAA,MAAA;AAAA,IAAAI;AAAAA,GAAA,GAAAF,EAAAA;AAM/B,EAAA,MAAAG,MAAAA,GAAeC,UAAU,8BAA8B,CAAA;AACvD,EAAA,MAAAC,YAAkBC,gBAAAA,EAAiB;AAEnC,EAAA,MAAA,CAAAC,WAAAA,EAAAC,cAAA,CAAA,GAAsCC,QAAQC,kBAAkB,CAAA;AAEhE,EAAA,MAAAC,mBAAyBC,uBAAAA,EAAwB;AAMhC,EAAA,MAAAC,KAAAX,KAAAA,EAAKY,MAAAA;AAAQ,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAjB,EAAA,CAAA,CAAA,KAAAK,UAAAL,CAAAA,QAAAU,cAAAA,EAAA;AACZO,IAAAA,EAAAA,GAAAC,CAAAA,MAAAA,KAAA;AACdb,MAAAA,MAAAA,CAAMc,GAAAA,CAAK,0BAA0BD,MAAM,CAAA;AAC3CR,MAAAA,cAAAA,CAAeQ,OAAME,KAAM,CAAA;AAAA,IAAC,CAAA;AAC7BpB,IAAAA,CAAAA,MAAAK,MAAAA;AAAAL,IAAAA,CAAAA,MAAAU,cAAAA;AAAAV,IAAAA,CAAAA,MAAAiB,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAjB,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAqB,EAAAA;AAAA,EAAA,IAAArB,EAAA,CAAA,CAAA,KAAAS,eAAAT,CAAAA,CAAA,CAAA,MAAAe,EAAAA,IAAAf,CAAAA,CAAA,CAAA,CAAA,KAAAiB,EAAAA,IAAAjB,EAAA,CAAA,CAAA,KAAAa,oBAAAb,CAAAA,QAAAO,SAAAA,EAAA;AARIc,IAAAA,EAAAA,GAAA;AAAA,MAAAC,MAAAA,EACGb,WAAAA;AAAAA,MAAWI,gBAAAA;AAAAA,MAAAU,KAAAA,EAEZhB,SAAAA;AAAAA,MAASiB,aAAAA,EACDT,EAAAA;AAAAA,MAAaU,cAAAA,EACZR;AAAAA,KAIlB;AAACjB,IAAAA,CAAAA,MAAAS,WAAAA;AAAAT,IAAAA,CAAAA,MAAAe,EAAAA;AAAAf,IAAAA,CAAAA,MAAAiB,EAAAA;AAAAjB,IAAAA,CAAAA,MAAAa,gBAAAA;AAAAb,IAAAA,CAAAA,MAAAO,SAAAA;AAAAP,IAAAA,CAAAA,OAAAqB,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAArB,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OATMqB,EAAAA;AASN,CAAA;AAGH,MAAMP,0BAA0BA,MAAA;AAAA,EAAA,MAAAd,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAC9B,EAAA,MAAAM,YAAkBC,gBAAAA,EAAiB;AAAE,EAAA,IAAAT,EAAAA;AAAA,EAAA,IAAAC,EAAA,CAAA,CAAA,KAAA0B,MAAAA,CAAAC,GAAAA,CAAA,2BAAA,CAAA,EAAA;AAIrB5B,IAAAA,EAAAA,GAAA;AAAA,MAAA6B,eAAAA,EAAmBC;AAAAA,KAAmC;AAAC7B,IAAAA,CAAAA,MAAAD,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAC,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAE,EAAAA;AAAA,EAAA,IAAAF,CAAAA,QAAAO,SAAAA,EAAA;AAF/BL,IAAAA,EAAAA,GAAA;AAAA,MAAAqB,KAAAA,EAC/BhB,SAAAA;AAAAA,MAASuB,YAAAA,EACF/B;AAAAA,KAChB;AAACC,IAAAA,CAAAA,MAAAO,SAAAA;AAAAP,IAAAA,CAAAA,MAAAE,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAF,EAAA,CAAA,CAAA;AAAA,EAAA;AAHD,EAAA,MAAA;AAAA,IAAA+B;AAAAA,GAAA,GAAwBC,gBAAgB9B,EAGvC,CAAA;AAAE,EAAA,IAAAa,EAAAA;AAAA,EAAA,IAAAf,CAAAA,QAAA+B,WAAAA,EAAA;AAEIhB,IAAAA,EAAAA,GAAAkB,iBAAiBF,WAAW,CAAA;AAAC/B,IAAAA,CAAAA,MAAA+B,WAAAA;AAAA/B,IAAAA,CAAAA,MAAAe,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAf,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAA7Be,EAAAA;AAA6B,CAAA;AAStC,MAAMmB,2BAA2BnC,CAAAA,EAAAA,KAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAAC,EAAA,MAAA;AAAA,IAAAkC,SAAAA;AAAAA,IAAAC,QAAAA;AAAAA,IAAA7B;AAAAA,GAAA,GAAAR,EAAAA;AAUhC,EAAA,MAAAsC,mBAAAA,GAA4BC,kBAAkBF,QAAQ,CAAA;AAOzC,EAAA,MAAAlC,KAAAmC,mBAAAA,KAAwB,eAAA;AAAe,EAAA,IAAAtB,EAAAA;AAAA,EAAA,IAAAf,CAAAA,CAAA,CAAA,CAAA,KAAAmC,SAAAA,IAAAnC,CAAAA,CAAA,CAAA,CAAA,KAAAE,EAAAA,IAAAF,CAAAA,CAAA,CAAA,CAAA,KAAAO,SAAAA,CAAAgC,OAAAA,EAAA;AAHnBxB,IAAAA,EAAAA,GAAA;AAAA,MAAAyB,cACfjC,SAAAA,CAASgC,OAAAA;AAAAA,MAAQjB,MAAAA,EACvBa,SAAAA;AAAAA,MAASM,OAAAA,EACRvC;AAAAA,KACX;AAACF,IAAAA,CAAAA,MAAAmC,SAAAA;AAAAnC,IAAAA,CAAAA,MAAAE,EAAAA;AAAAF,IAAAA,CAAAA,CAAA,CAAA,IAAAO,SAAAA,CAAAgC,OAAAA;AAAAvC,IAAAA,CAAAA,MAAAe,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAf,EAAA,CAAA,CAAA;AAAA,EAAA;AALH,EAAA,MAAA;AAAA,IAAA0C,iBAAAA,EAAAC;AAAAA,GAAA,GACEC,+BAA+B7B,EAI9B,CAAA;AAAE,EAAA,IAAAE,EAAAA;AAAA,EAAA,IAAAjB,CAAAA,CAAA,CAAA,CAAA,KAAAqC,mBAAAA,IAAArC,CAAAA,QAAA2C,oBAAAA,IAAA3C,CAAAA,CAAA,CAAA,CAAA,KAAAO,SAAAA,EAAA;AAE2CU,IAAAA,EAAAA,GAAA;AAAA,MAAAM,KAAAA,EACvChB,SAAAA;AAAAA,MAAS8B,mBAAAA;AAAAA,MAAAQ,oBAAAA,EAEMF;AAAAA,KACxB;AAAC3C,IAAAA,CAAAA,MAAAqC,mBAAAA;AAAArC,IAAAA,CAAAA,MAAA2C,oBAAAA;AAAA3C,IAAAA,CAAAA,MAAAO,SAAAA;AAAAP,IAAAA,CAAAA,MAAAiB,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAjB,EAAA,CAAA,CAAA;AAAA,EAAA;AAJD,EAAA,MAAA8C,cAAAA,GAAuBC,yBAAyB9B,EAI/C,CAAA;AAED,EAAA,MAAA+B,qBAAAA,GAA8BC,kCAAkC,MAAM,CAAA;AAIxD,EAAA,MAAA5B,EAAAA,GAAA,CAAC2B,qBAAAA,IAAyBF,cAAAA,CAAcI,aAAAA;AAAc,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAnD,CAAAA,QAAAqB,EAAAA,EAAA;AADzC8B,IAAAA,EAAAA,GAAA;AAAA,MAAAC,QAAAA,EACb/B;AAAAA,KACZ;AAACrB,IAAAA,CAAAA,MAAAqB,EAAAA;AAAArB,IAAAA,CAAAA,MAAAmD,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAnD,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAqD,EAAAA;AAAA,EAAA,IAAArD,EAAA,EAAA,CAAA,KAAAgD,yBAAAhD,CAAAA,SAAAO,SAAAA,EAAA;AACgC8C,IAAAA,EAAAA,GAAA;AAAA,MAAA9B,KAAAA,EACxBhB,SAAAA;AAAAA,MAAS+C,aAAAA,EACDN;AAAAA,KACjB;AAAChD,IAAAA,CAAAA,OAAAgD,qBAAAA;AAAAhD,IAAAA,CAAAA,OAAAO,SAAAA;AAAAP,IAAAA,CAAAA,OAAAqD,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAArD,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAuD,EAAAA;AAAA,EAAA,IAAAvD,EAAA,EAAA,CAAA,KAAAmD,MAAAnD,CAAAA,SAAAqD,EAAAA,EAAA;AAPIE,IAAAA,EAAAA,GAAA;AAAA,MAAAC,uBAAAA,EACoBL,EAAAA;AAAAA,MAExBM,+BAAAA,EACgCJ;AAAAA,KAInC;AAACrD,IAAAA,CAAAA,OAAAmD,EAAAA;AAAAnD,IAAAA,CAAAA,OAAAqD,EAAAA;AAAArD,IAAAA,CAAAA,OAAAuD,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAvD,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OARMuD,EAAAA;AAQN,CAAA;AAGH,MAAMG,oBAAoB3D,CAAAA,EAAAA,KAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAAC,EAAA,MAAA;AAAA,IAAAG,KAAAA;AAAAA,IAAAG;AAAAA,GAAA,GAAAR,EAAAA;AAOzB,EAAA,MAAA4D,mBAAAA,GAA4BC,WAAWC,oBAAoB,CAAA;AAC3D,EAAA,MAAAC,iBAAAA,GAA0BF,WAAWhD,kBAAkB,CAAA;AAAE,EAAA,IAAAV,EAAAA;AAAA,EAAA,IAAAF,EAAA,CAAA,CAAA,KAAA0B,MAAAA,CAAAC,GAAAA,CAAA,2BAAA,CAAA,EAAA;AAIzCzB,IAAAA,EAAAA,GAAA;AAAA,MAAA0B,eAAAA,EAAmBC;AAAAA,KAAmC;AAAC7B,IAAAA,CAAAA,MAAAE,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAF,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAe,EAAAA;AAAA,EAAA,IAAAf,CAAAA,QAAAO,SAAAA,EAAA;AAF/BQ,IAAAA,EAAAA,GAAA;AAAA,MAAAQ,KAAAA,EAC/BhB,SAAAA;AAAAA,MAASuB,YAAAA,EACF5B;AAAAA,KAChB;AAACF,IAAAA,CAAAA,MAAAO,SAAAA;AAAAP,IAAAA,CAAAA,MAAAe,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAf,EAAA,CAAA,CAAA;AAAA,EAAA;AAHD,EAAA,MAAA;AAAA,IAAA+B;AAAAA,GAAA,GAAwBC,gBAAgBjB,EAGvC,CAAA;AAED,EAAA,MAAA;AAAA,IAAAgD,IAAAA,EAAAC;AAAAA,MAA4BC,YAAAA,EAAa;AAEzC,EAAA,MAAAC,UAAAA,GAAmB,CAAC,CAACnC,WAAAA,IAAeA,WAAAA,KAAgB,GAAA;AAAI,EAAA,IAAAd,EAAAA;AAAA,EAAA,IAAAjB,CAAAA,CAAA,CAAA,CAAA,KAAAkE,UAAAA,IAAAlE,CAAAA,QAAAI,KAAAA,IAAAJ,CAAAA,CAAA,CAAA,CAAA,KAAAO,SAAAA,EAAA;AAClCU,IAAAA,EAAAA,GAAAiD,eAAe,CAACC,KAAAA,CAAM5D,SAAS,CAAA,IAAhB,CAAsB,CAACH,KAAAA,CAAAA;AAAMJ,IAAAA,CAAAA,MAAAkE,UAAAA;AAAAlE,IAAAA,CAAAA,MAAAI,KAAAA;AAAAJ,IAAAA,CAAAA,MAAAO,SAAAA;AAAAP,IAAAA,CAAAA,MAAAiB,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAjB,EAAA,CAAA,CAAA;AAAA,EAAA;AAAlE,EAAA,MAAAoE,aAAAA,GAAsBnD,EAAAA;AAA6C,EAAA,IAAAI,EAAAA;AAAA,EAAA,IAAArB,CAAAA,CAAA,CAAA,CAAA,KAAA+B,WAAAA,IAAA/B,CAAAA,CAAA,CAAA,CAAA,KAAAgE,SAAAA,EAAAK,YAAAA,IAAArE,CAAAA,CAAA,CAAA,CAAA,KAAAkE,UAAAA,IAAAlE,CAAAA,CAAA,EAAA,CAAA,KAAAI,KAAAA,EAAAkE,OAAAA,IAAAtE,CAAAA,CAAA,EAAA,CAAA,KAAA2D,mBAAAA,IAAA3D,CAAAA,CAAA,EAAA,CAAA,KAAA8D,iBAAAA,IAAA9D,CAAAA,SAAAO,SAAAA,EAAA;AAIrDc,IAAAA,EAAAA,GAAAA,MAAA;AACVsC,MAAAA,mBAAAA,CAAoB,MAAM,CAAA;AAE1B,MAAA,IAAIO,UAAAA,EAAU;AACZ,QAAA,IAAI,CAACC,KAAAA,CAAM5D,SAAS,CAAA,EAAC;AACnBuD,UAAAA,iBAAAA,CAAkB/B,WAAW,CAAA;AAAC,UAAA;AAAA,QAAA;AAIhC,QAAA,MAAAuC,UAAgBlE,KAAAA,EAAKkE,OAAAA;AACrB,QAAA,MAAAC,kBAAAA,GAA2BP,WAASK,YAAAA,CAAsBG,OAAAA;AAE1D,QAAA,IAAIF,WAAAC,kBAAAA,EAA6B;AAC/B,UAAA,MAAAE,SAAAA,GAAkBC,GAAAA,CAAIJ,OAAO,CAAA,CAACK,IAAAA,CAEtB,GAAM,CAAA,CAACC,GAAAA,CACRL,kBAAkB,CAAA,CAACM,GAAAA,CACnB,GAAG,CAAA;AACV,UAAA,MAAAC,sBAAAA,GAA+BJ,GAAAA,CAAI3C,WAAW,CAAA,CAACgD,MAAON,SAAS,CAAA;AAE/DX,UAAAA,iBAAAA,CAAkBgB,sBAAAA,CAAsBE,UAAW,CAAA;AAAA,QAAC;AAAA,MACrD;AAAA,IACF,CAAA;AACFhF,IAAAA,CAAAA,MAAA+B,WAAAA;AAAA/B,IAAAA,CAAAA,CAAA,CAAA,IAAAgE,SAAAA,EAAAK,YAAAA;AAAArE,IAAAA,CAAAA,MAAAkE,UAAAA;AAAAlE,IAAAA,CAAAA,CAAA,EAAA,IAAAI,KAAAA,EAAAkE,OAAAA;AAAAtE,IAAAA,CAAAA,OAAA2D,mBAAAA;AAAA3D,IAAAA,CAAAA,OAAA8D,iBAAAA;AAAA9D,IAAAA,CAAAA,OAAAO,SAAAA;AAAAP,IAAAA,CAAAA,OAAAqB,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAArB,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAmD,EAAAA;AAAA,EAAA,IAAAnD,EAAA,EAAA,CAAA,KAAAoE,iBAAApE,CAAAA,SAAAqB,EAAAA,EAAA;AAzBI8B,IAAAA,EAAAA,GAAA;AAAA,MAAAiB,aAAAA;AAAAA,MAAAa,UAAAA,EAEO5D;AAAAA,KAwBd;AAACrB,IAAAA,CAAAA,OAAAoE,aAAAA;AAAApE,IAAAA,CAAAA,OAAAqB,EAAAA;AAAArB,IAAAA,CAAAA,OAAAmD,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAnD,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OA1BMmD,EAAAA;AA0BN,CAAA;AAGH,MAAM+B,gBAAgBnF,CAAAA,EAAAA,KAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAF,CAAAA,QAAAD,EAAAA,EAAA;AAACG,IAAAA,EAAAA,GAAAH,EAAAA,KAAAI,MAAAA,GAAA,EAIlB,GAJkBJ,EAAAA;AAIjBC,IAAAA,CAAAA,MAAAD,EAAAA;AAAAC,IAAAA,CAAAA,MAAAE,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAF,EAAA,CAAA,CAAA;AAAA,EAAA;AAJiB,EAAA,MAAA;AAAA,IAAAmF;AAAAA,GAAA,GAAAjF,EAAAA;AAKrB,EAAA,MAAAkF,aAAmBC,UAAAA,EAAW;AAE9B,EAAA,MAAAC,eAAAA,GAAwB1B,WAAWC,oBAAoB,CAAA;AAEvD,EAAA,MAAA0B,OAAaC,WAAAA,EAAY;AAGzB,EAAA,MAAAC,SAAAA,GAAkBN,kBAAkBI,IAAAA,KAAS,KAAA;AAC7C,EAAA,MAAAG,mBAAyBC,mBAAAA,EAAoB;AAQ/B,EAAA,MAAA5E,EAAAA,GAAA2E,iBAAgBE,MAAAA,IAAW,CAAA;AAAC,EAAA,IAAA3E,EAAAA;AAAA,EAAA,IAAAjB,CAAAA,CAAA,CAAA,CAAA,KAAAoF,UAAAA,IAAApF,CAAAA,QAAA0F,gBAAAA,IAAA1F,CAAAA,CAAA,CAAA,CAAA,KAAAe,EAAAA,EAAA;AALlBE,IAAAA,EAAAA,GAAA;AAAA,MAAA4E,QAAAA,EACVH,gBAAAA;AAAAA,MAAgBI,eAAAA,EACTV,UAAAA;AAAAA,MAAUW,SAAAA,EAChB,KAAA;AAAA,MAAKC,QAAAA,EACNC,KAAAA;AAAAA,MAA0DC,QAAAA,EAC1DnF;AAAAA,KACZ;AAACf,IAAAA,CAAAA,MAAAoF,UAAAA;AAAApF,IAAAA,CAAAA,MAAA0F,gBAAAA;AAAA1F,IAAAA,CAAAA,MAAAe,EAAAA;AAAAf,IAAAA,CAAAA,MAAAiB,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAjB,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAqB,EAAAA;AAAA,EAAA,IAAArB,CAAAA,QAAAsF,eAAAA,EAAA;AAEQjE,IAAAA,EAAAA,GAAAA,MAAMiE,gBAAgB,MAAM,CAAA;AAACtF,IAAAA,CAAAA,MAAAsF,eAAAA;AAAAtF,IAAAA,CAAAA,MAAAqB,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAArB,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAmD,EAAAA;AAAA,EAAA,IAAAnD,EAAA,CAAA,CAAA,KAAA0B,MAAAA,CAAAC,GAAAA,CAAA,2BAAA,CAAA,EAAA;AAGlCwB,IAAAA,EAAAA,mBAAA,GAAA,CAAA,UAAM,QAAA,EAAA,KAAA,EAAG,CAAA;AAAOnD,IAAAA,CAAAA,MAAAmD,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAnD,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAqD,EAAAA;AAAA,EAAA,IAAArD,EAAA,CAAA,CAAA,KAAA0B,MAAAA,CAAAC,GAAAA,CAAA,2BAAA,CAAA,EAAA;AADlB0B,IAAAA,EAAAA,mBAAA,IAAA,CAAA,QAAA,EAAA,EACEF,QAAAA,EAAAA;AAAAA,MAAAA,EAAAA;AAAAA,MAAgB,GAAA;AAAA,sBAAC,GAAA,CAAA,MAAA,EAAA,EAAgB,SAAA,EAAA,iBAAA,EAAkB,QAAA,EAAA,IAAA,EAAE;AAAA,KAAA,EAAO,CAAA;AAC3DnD,IAAAA,CAAAA,MAAAqD,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAArD,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAuD,EAAAA;AAAA,EAAA,IAAAvD,CAAAA,CAAA,EAAA,CAAA,KAAAyF,SAAAA,IAAAzF,CAAAA,SAAAiB,EAAAA,IAAAjB,CAAAA,CAAA,EAAA,CAAA,KAAAqB,EAAAA,EAAA;AAbAkC,IAAAA,EAAAA,GAAA;AAAA,MAAA4C,oBAAAA,EACiBlF,EAAAA;AAAAA,MAMrBmF,SAAAA,EACU,MAAA;AAAA,MAAeC,OAAAA,EACjBhF,EAAAA;AAAAA,MAA6BiF,KAAAA,EAEpCjD,EAAAA;AAAAA,MAEGoC;AAAAA,KAGP;AAACzF,IAAAA,CAAAA,OAAAyF,SAAAA;AAAAzF,IAAAA,CAAAA,OAAAiB,EAAAA;AAAAjB,IAAAA,CAAAA,OAAAqB,EAAAA;AAAArB,IAAAA,CAAAA,OAAAuD,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAvD,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAhBMuD,EAAAA;AAgBN,CAAA;AAGI,MAAMgD,yBAAyBxG,CAAAA,EAAAA,KAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAAC,EAAA,MAAA;AAAA,IAAAuG,cAAAA;AAAAA,IAAAC,QAAAA;AAAAA,IAAAtB,cAAAA;AAAAA,IAAA/E;AAAAA,GAAA,GAAAL,EAAAA;AAKd,EAAA,IAAAG,EAAAA;AAAA,EAAA,IAAAF,CAAAA,QAAAI,KAAAA,EAAA;AAC0BF,IAAAA,EAAAA,GAAA;AAAA,MAAAE;AAAAA,KAEjD;AAACJ,IAAAA,CAAAA,MAAAI,KAAAA;AAAAJ,IAAAA,CAAAA,MAAAE,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAF,EAAA,CAAA,CAAA;AAAA,EAAA;AAFD,EAAA,MAAA0G,gBAAAA,GAAyB5G,wBAAwBI,EAEhD,CAAA;AACD,EAAA,MAAAK,YAAkBmG,gBAAAA,CAAgBnF,KAAAA;AAAO,EAAA,IAAAR,EAAAA;AAAA,EAAA,IAAAf,CAAAA,CAAA,CAAA,CAAA,KAAAyG,QAAAA,EAAAtE,SAAAA,IAAAnC,CAAAA,CAAA,CAAA,CAAA,KAAAO,SAAAA,IAAAP,CAAAA,CAAA,CAAA,CAAA,KAAA0G,iBAAApF,MAAAA,EAAA;AAGvCP,IAAAA,EAAAA,GAAA0F,QAAAA,EAAQtE,aACRwE,UAAAA,CAAWD,gBAAAA,CAAgBpF,QAASf,SAAAA,CAASqG,QAAS,EAAC5B,QAAAA,EAAU;AAAChF,IAAAA,CAAAA,CAAA,CAAA,IAAAyG,QAAAA,EAAAtE,SAAAA;AAAAnC,IAAAA,CAAAA,MAAAO,SAAAA;AAAAP,IAAAA,CAAAA,CAAA,CAAA,IAAA0G,gBAAAA,CAAApF,MAAAA;AAAAtB,IAAAA,CAAAA,MAAAe,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAf,EAAA,CAAA,CAAA;AAAA,EAAA;AAFpE,EAAA,MAAAmC,SAAAA,GACEpB,EAAAA;AACmE,EAAA,IAAAE,EAAAA;AAAA,EAAA,IAAAjB,CAAAA,CAAA,CAAA,CAAA,KAAAyG,QAAAA,IAAAzG,CAAAA,CAAA,CAAA,CAAA,KAAAO,SAAAA,IAAAP,CAAAA,CAAA,CAAA,CAAA,KAAA0G,gBAAAA,CAAApF,MAAAA,EAAA;AAEtDL,IAAAA,EAAAA,GAAAwF,QAAAA,EAAQtE,SAAAA,GACnB0E,WAAAA,CAAYC,MAAAA,CAAOL,QAAAA,CAAQtE,SAAU,CAAA,EAAG5B,SAAAA,CAASqG,QAC3B,CAAA,GAAtBF,gBAAAA,CAAgBpF,MAAAA;AAAOtB,IAAAA,CAAAA,MAAAyG,QAAAA;AAAAzG,IAAAA,CAAAA,MAAAO,SAAAA;AAAAP,IAAAA,CAAAA,CAAA,CAAA,IAAA0G,gBAAAA,CAAApF,MAAAA;AAAAtB,IAAAA,CAAAA,MAAAiB,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAjB,EAAA,CAAA,CAAA;AAAA,EAAA;AAF3B,EAAA,MAAAsB,MAAAA,GAAeL,EAAAA;AAEa,EAAA,IAAAI,EAAAA;AAAA,EAAA,IAAArB,CAAAA,CAAA,EAAA,CAAA,KAAAwG,cAAAA,IAAAxG,CAAAA,SAAAmC,SAAAA,IAAAnC,CAAAA,CAAA,EAAA,CAAA,KAAAO,SAAAA,EAAA;AAE2Bc,IAAAA,EAAAA,GAAA;AAAA,MAAAc,SAAAA;AAAAA,MAAAC,QAAAA,EAE3CoE,cAAAA;AAAAA,MAAcjG;AAAAA,KAE1B;AAACP,IAAAA,CAAAA,OAAAwG,cAAAA;AAAAxG,IAAAA,CAAAA,OAAAmC,SAAAA;AAAAnC,IAAAA,CAAAA,OAAAO,SAAAA;AAAAP,IAAAA,CAAAA,OAAAqB,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAArB,EAAA,EAAA,CAAA;AAAA,EAAA;AAJD,EAAA,MAAA+G,qBAAAA,GAA8B7E,yBAAyBb,EAItD,CAAA;AAAE,EAAA,IAAA8B,EAAAA;AAAA,EAAA,IAAAnD,CAAAA,SAAAmF,cAAAA,EAAA;AAC8BhC,IAAAA,EAAAA,GAAA;AAAA,MAAAgC;AAAAA,KAAiB;AAACnF,IAAAA,CAAAA,OAAAmF,cAAAA;AAAAnF,IAAAA,CAAAA,OAAAmD,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAnD,EAAA,EAAA,CAAA;AAAA,EAAA;AAAnD,EAAA,MAAAgH,UAAAA,GAAmB9B,cAAc/B,EAAkB,CAAA;AAAE,EAAA,IAAAE,EAAAA;AAAA,EAAA,IAAArD,EAAA,EAAA,CAAA,KAAAI,SAAAJ,CAAAA,SAAAO,SAAAA,EAAA;AACZ8C,IAAAA,EAAAA,GAAA;AAAA,MAAAjD,KAAAA;AAAAA,MAAAG;AAAAA,KAAmB;AAACP,IAAAA,CAAAA,OAAAI,KAAAA;AAAAJ,IAAAA,CAAAA,OAAAO,SAAAA;AAAAP,IAAAA,CAAAA,OAAAqD,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAArD,EAAA,EAAA,CAAA;AAAA,EAAA;AAA7D,EAAA,MAAAiH,cAAAA,GAAuBvD,kBAAkBL,EAAoB,CAAA;AAE7D,EAAA,MAAA6D,YAAAA,GAAqBtD,WAAWuD,uBAAuB,CAAA;AAAE,EAAA,IAAA5D,EAAAA;AAAA,EAAA,IAAAvD,CAAAA,SAAAkH,YAAAA,EAAA;AACnC3D,IAAAA,EAAAA,GAAA6D,CAAAA,YAAAA,KAAA;AACpBF,MAAAA,YAAAA,CAAaE,YAAY,CAAA;AAAA,IAAC,CAAA;AAC3BpH,IAAAA,CAAAA,OAAAkH,YAAAA;AAAAlH,IAAAA,CAAAA,OAAAuD,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAvD,EAAA,EAAA,CAAA;AAAA,EAAA;AAFD,EAAA,MAAAqH,aAAAA,GAAsB9D,EAAAA;AAEpB,EAAA,IAAA+D,EAAAA;AAAA,EAAA,IAAAtH,CAAAA,SAAAsB,MAAAA,IAAAtB,EAAA,EAAA,CAAA,KAAAgH,UAAAA,IAAAhH,CAAAA,CAAA,EAAA,CAAA,KAAAiH,kBAAAjH,CAAAA,CAAA,EAAA,CAAA,KAAAqH,aAAAA,IAAArH,CAAAA,SAAA+G,qBAAAA,IAAA/G,CAAAA,CAAA,EAAA,CAAA,KAAA0G,gBAAAA,EAAA;AAEKY,IAAAA,EAAAA,GAAA;AAAA,MAAA,GACFZ,gBAAAA;AAAAA,MAAgBpF,MAAAA;AAAAA,MAAA,GAEhByF,qBAAAA;AAAAA,MAAqB,GACrBC,UAAAA;AAAAA,MAAU,GACVC,cAAAA;AAAAA,MAAcI;AAAAA,KAEnB;AAACrH,IAAAA,CAAAA,OAAAsB,MAAAA;AAAAtB,IAAAA,CAAAA,OAAAgH,UAAAA;AAAAhH,IAAAA,CAAAA,OAAAiH,cAAAA;AAAAjH,IAAAA,CAAAA,OAAAqH,aAAAA;AAAArH,IAAAA,CAAAA,OAAA+G,qBAAAA;AAAA/G,IAAAA,CAAAA,OAAA0G,gBAAAA;AAAA1G,IAAAA,CAAAA,OAAAsH,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAtH,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAPMsH,EAAAA;AAON;AAzEmB,SAAArB,MAAAsB,OAAAA,EAAA;AAAA,EAAA,OAoBOA,OAAAA,KAAY,SAASC,WAAAA,CAAY;AAAA,IAAAD;AAAAA,GAAW,CAAA;AAAC;;;;"}
|
|
1
|
+
{"version":3,"file":"useTokenFromInputProps.js","sources":["../../../../src/core/inputs/hooks/useTokenFromInputProps.tsx"],"sourcesContent":["import type { TokenInputProps } from \"@/components/widget/TokenInput/types\";\n\nimport { useSwapTokenFrom } from \"../state/selectedTokenAtom\";\nimport { useChainId } from \"wagmi\";\nimport { useAtom, useSetAtom } from \"jotai\";\nimport { payInputAmountAtom } from \"../state/inputAmountAtom\";\nimport { useGenericTokenAllowance } from \"@/hooks/tokens/allowance/useGenericTokenAllowance\";\nimport { type SwapMode } from \"@/components/widget/SwapModeSwitcher/state/types\";\nimport { swapModeToSpender } from \"@/core/constants\";\nimport { useIsTokenFromInsufficientBalance } from \"@/hooks/tokens/balances/useIsInsufficientTokenBalance\";\nimport { parseUnits, formatUnits } from \"viem\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { useSwapSide } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport { currentSwapInputAtom } from \"@/core/state/currentSwapInputAtom\";\nimport { useTokenBalance } from \"@/hooks/tokens/balances/useTokenBalance\";\nimport { isETH } from \"@/tokens/utils/eth\";\nimport { useGasPrices } from \"@/hooks/gas/useGasPrices\";\nimport type { DeltaOrMarketPrice } from \"@/hooks/swap/prices/types\";\nimport Big from \"big.js\";\nimport type { MarkRequired } from \"ts-essentials\";\nimport type { TokenInputExtraProps, TokenInputAmountProps } from \"./types\";\nimport { toDecimalTrimmed } from \"@/lib/utils/toDecimal\";\nimport { useLogger } from \"@/core/logger\";\nimport { MEDIUM_STALE_TIME_FOR_REACTIVENESS } from \"@/lib/constants/time\";\nimport { selectSwapTokenFromAtom } from \"../state/selectedTokenActionsAtom\";\nimport { useDeltaOrderRequiredAllowance } from \"@/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance\";\nimport { useEnabledSrcChains } from \"@/core/state/enabledChainsAtom\";\nimport { switchChain } from \"@/lib/web3/wagmi/switchChain\";\nimport { isDeltaPrice } from \"@/hooks/swap/prices/delta/queries/useDeltaPriceQuery\";\n\ntype UseTokenFromInputInput = {\n override?: {\n amountWei?: string;\n };\n activeSwapMode: SwapMode;\n isPriceLoading?: boolean;\n price?: DeltaOrMarketPrice;\n};\n\nconst useTokenFromAmountProps = ({\n price,\n}: { price?: DeltaOrMarketPrice } = {}): MarkRequired<\n TokenInputAmountProps,\n \"token\"\n> => {\n const logger = useLogger(\"Swap::TokenFrom::AmountProps\");\n const tokenFrom = useSwapTokenFrom();\n\n const [amountValue, setAmountValue] = useAtom(payInputAmountAtom);\n\n const tokenBalanceUnit = useTokenFromBalanceUnit();\n\n const usdEstimation =\n price && isDeltaPrice(price)\n ? // srcUSDBeforeFee is available for BUY side\n price.srcUSDBeforeFee || price.srcUSD\n : price?.srcUSD;\n\n return {\n amount: amountValue,\n tokenBalanceUnit,\n token: tokenFrom,\n usdEstimation,\n onAmountChange: (values) => {\n logger.log(\"onAmountChange::values\", values);\n setAmountValue(values.value);\n },\n };\n};\n\nconst useTokenFromBalanceUnit = () => {\n const tokenFrom = useSwapTokenFrom();\n\n const { balanceUnit } = useTokenBalance({\n token: tokenFrom,\n queryOptions: { refetchInterval: MEDIUM_STALE_TIME_FOR_REACTIVENESS },\n });\n\n return toDecimalTrimmed(balanceUnit);\n};\n\ntype UseTokenConditionalPropsInput = {\n amountWei: string;\n swapMode: SwapMode;\n tokenFrom: Token;\n};\n\nconst useTokenConditionalProps = ({\n amountWei,\n swapMode,\n tokenFrom,\n}: UseTokenConditionalPropsInput): Required<\n Pick<\n TokenInputProps,\n \"insufficientBalanceMessageProps\" | \"tokenBadgePropsOverride\"\n >\n> => {\n const spenderContractType = swapModeToSpender[swapMode];\n\n // amount required to cover allowance of current Orders + amount for the new Order\n const { combinedAllowance: srcCombinedAllowance } =\n useDeltaOrderRequiredAllowance({\n tokenAddress: tokenFrom.address,\n amount: amountWei,\n enabled: spenderContractType === \"ParaswapDelta\",\n });\n\n const tokenAllowance = useGenericTokenAllowance({\n token: tokenFrom,\n spenderContractType,\n amountToApproveInWei: srcCombinedAllowance,\n });\n\n const isInsufficientBalance = useIsTokenFromInsufficientBalance(\"swap\");\n\n return {\n tokenBadgePropsOverride: {\n lockIcon: !isInsufficientBalance && tokenAllowance.needsApproval,\n },\n insufficientBalanceMessageProps: {\n token: tokenFrom,\n shouldDisplay: isInsufficientBalance,\n },\n };\n};\n\nconst useMaxButtonProps = ({\n price,\n tokenFrom,\n}: {\n price?: DeltaOrMarketPrice;\n tokenFrom: Token;\n}) => {\n const setCurrentSwapInput = useSetAtom(currentSwapInputAtom);\n const setPayInputAmount = useSetAtom(payInputAmountAtom);\n\n const { balanceUnit } = useTokenBalance({\n token: tokenFrom,\n queryOptions: { refetchInterval: MEDIUM_STALE_TIME_FOR_REACTIVENESS },\n });\n\n const { data: gasPrices } = useGasPrices();\n\n const hasBalance = !!balanceUnit && balanceUnit !== \"0\";\n const showMaxButton = hasBalance && (!isETH(tokenFrom) || !!price);\n\n return {\n showMaxButton,\n onMaxClick: () => {\n setCurrentSwapInput(\"from\");\n\n if (hasBalance) {\n if (!isETH(tokenFrom)) {\n setPayInputAmount(balanceUnit);\n return;\n }\n\n const gasCost = price?.gasCost; // gasLimit\n const gasPriceMultiplier = gasPrices?.legacyPrices.instant;\n\n if (gasCost && gasPriceMultiplier) {\n const gasFeeETH = Big(gasCost)\n // have to add extra 200k because instant multiplier is not accurate enough\n .plus(200000)\n .mul(gasPriceMultiplier)\n .div(1e9);\n const balanceWithDeductedGas = Big(balanceUnit).minus(gasFeeETH);\n\n setPayInputAmount(balanceWithDeductedGas.toString());\n }\n }\n },\n };\n};\n\nconst useExtraProps = ({\n isPriceLoading,\n}: {\n isPriceLoading?: boolean;\n} = {}): TokenInputExtraProps => {\n const appChainId = useChainId();\n\n const setCurrentInput = useSetAtom(currentSwapInputAtom);\n\n const side = useSwapSide();\n\n // BUYing and price is loading = tokenFrom input will receive srcAmount\n const isLoading = isPriceLoading && side === \"BUY\";\n const enabledSrcChains = useEnabledSrcChains();\n\n return {\n networkSwitcherProps: {\n networks: enabledSrcChains,\n selectedNetwork: appChainId,\n allOption: false,\n onSelect: (chainId) => chainId !== \"all\" && switchChain({ chainId }),\n disabled: enabledSrcChains.length <= 1,\n },\n tokenType: \"from\" as const,\n onFocus: () => setCurrentInput(\"from\"),\n label: (\n <>\n <span>Pay</span> <span className=\"text-contrast-5\">on</span>\n </>\n ),\n isLoading,\n };\n};\n\nexport const useTokenFromInputProps = ({\n activeSwapMode,\n override,\n isPriceLoading,\n price,\n}: UseTokenFromInputInput): TokenInputProps => {\n const tokenFromAmounts = useTokenFromAmountProps({\n price,\n });\n const tokenFrom = tokenFromAmounts.token;\n\n const amountWei =\n override?.amountWei ??\n parseUnits(tokenFromAmounts.amount, tokenFrom.decimals).toString();\n\n const amount = override?.amountWei\n ? formatUnits(BigInt(override.amountWei), tokenFrom.decimals)\n : tokenFromAmounts.amount;\n\n const tokenConditionalProps = useTokenConditionalProps({\n amountWei,\n swapMode: activeSwapMode,\n tokenFrom: tokenFrom,\n });\n const extraProps = useExtraProps({ isPriceLoading });\n const maxButtonProps = useMaxButtonProps({ price, tokenFrom });\n\n const setTokenFrom = useSetAtom(selectSwapTokenFromAtom);\n const onTokenSelect = (newTokenFrom: Token) => {\n setTokenFrom(newTokenFrom);\n };\n\n return {\n ...tokenFromAmounts,\n amount,\n ...tokenConditionalProps,\n ...extraProps,\n ...maxButtonProps,\n onTokenSelect,\n };\n};\n"],"names":["useTokenFromAmountProps","t0","$","_c","t1","undefined","price","logger","useLogger","tokenFrom","useSwapTokenFrom","amountValue","setAmountValue","useAtom","payInputAmountAtom","tokenBalanceUnit","useTokenFromBalanceUnit","t2","isDeltaPrice","srcUSDBeforeFee","srcUSD","usdEstimation","t3","values","log","value","t4","amount","token","onAmountChange","Symbol","for","refetchInterval","MEDIUM_STALE_TIME_FOR_REACTIVENESS","queryOptions","balanceUnit","useTokenBalance","toDecimalTrimmed","useTokenConditionalProps","amountWei","swapMode","spenderContractType","swapModeToSpender","address","tokenAddress","enabled","combinedAllowance","srcCombinedAllowance","useDeltaOrderRequiredAllowance","amountToApproveInWei","tokenAllowance","useGenericTokenAllowance","isInsufficientBalance","useIsTokenFromInsufficientBalance","needsApproval","t5","lockIcon","t6","shouldDisplay","t7","tokenBadgePropsOverride","insufficientBalanceMessageProps","useMaxButtonProps","setCurrentSwapInput","useSetAtom","currentSwapInputAtom","setPayInputAmount","data","gasPrices","useGasPrices","hasBalance","isETH","showMaxButton","legacyPrices","gasCost","gasPriceMultiplier","instant","gasFeeETH","Big","plus","mul","div","balanceWithDeductedGas","minus","toString","onMaxClick","useExtraProps","isPriceLoading","appChainId","useChainId","setCurrentInput","side","useSwapSide","isLoading","enabledSrcChains","useEnabledSrcChains","length","networks","selectedNetwork","allOption","onSelect","_temp","disabled","networkSwitcherProps","tokenType","onFocus","label","useTokenFromInputProps","activeSwapMode","override","tokenFromAmounts","parseUnits","decimals","formatUnits","BigInt","tokenConditionalProps","extraProps","maxButtonProps","setTokenFrom","selectSwapTokenFromAtom","newTokenFrom","onTokenSelect","t8","chainId","switchChain"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTokenToInputProps.d.ts","sourceRoot":"","sources":["../../../../src/core/inputs/hooks/useTokenToInputProps.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAgB5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAmBpE,KAAK,oBAAoB,GAAG;IAC1B,QAAQ,CAAC,EAAE;QACT,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,SAAS,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC9B,UAAU,EAAE,KAAK,GAAG,IAAI,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;
|
|
1
|
+
{"version":3,"file":"useTokenToInputProps.d.ts","sourceRoot":"","sources":["../../../../src/core/inputs/hooks/useTokenToInputProps.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAgB5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAmBpE,KAAK,oBAAoB,GAAG;IAC1B,QAAQ,CAAC,EAAE;QACT,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,SAAS,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC9B,UAAU,EAAE,KAAK,GAAG,IAAI,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAkLF,eAAO,MAAM,oBAAoB,GAAI,6DAMlC,oBAAoB,KAAG,eAyBzB,CAAC"}
|
|
@@ -23,7 +23,7 @@ import { isTruthy } from '../../../lib/utils/index.js';
|
|
|
23
23
|
import { isDeltaPrice } from '../../../hooks/swap/prices/delta/queries/useDeltaPriceQuery.js';
|
|
24
24
|
|
|
25
25
|
const useTokenToAmountProps = (t0) => {
|
|
26
|
-
const $ = distExports.c(
|
|
26
|
+
const $ = distExports.c(13);
|
|
27
27
|
let t1;
|
|
28
28
|
if ($[0] !== t0) {
|
|
29
29
|
t1 = t0 === void 0 ? {} : t0;
|
|
@@ -37,12 +37,11 @@ const useTokenToAmountProps = (t0) => {
|
|
|
37
37
|
} = t1;
|
|
38
38
|
const logger = useLogger("Swap::TokenTo::AmountProps");
|
|
39
39
|
const tokenTo = useSwapTokenTo();
|
|
40
|
-
const isCrossChain = useIsCrossChain();
|
|
41
40
|
const [amountValue, setAmountValue] = useAtom(receiveInputAmountAtom);
|
|
42
41
|
const tokenBalanceUnit = useTokenToBalanceUnit();
|
|
43
42
|
let t2;
|
|
44
43
|
if ($[2] !== price) {
|
|
45
|
-
t2 = price && isDeltaPrice(price) ? price.receivedDestUSDBeforeFee : price?.destUSD;
|
|
44
|
+
t2 = price && isDeltaPrice(price) ? price.receivedDestUSDBeforeFee || price.receivedDestUSD : price?.destUSD;
|
|
46
45
|
$[2] = price;
|
|
47
46
|
$[3] = t2;
|
|
48
47
|
} else {
|
|
@@ -62,24 +61,22 @@ const useTokenToAmountProps = (t0) => {
|
|
|
62
61
|
t3 = $[6];
|
|
63
62
|
}
|
|
64
63
|
let t4;
|
|
65
|
-
if ($[7] !== amountValue || $[8] !==
|
|
64
|
+
if ($[7] !== amountValue || $[8] !== t3 || $[9] !== tokenBalanceUnit || $[10] !== tokenTo || $[11] !== usdEstimation) {
|
|
66
65
|
t4 = {
|
|
67
66
|
usdEstimation,
|
|
68
67
|
amount: amountValue,
|
|
69
68
|
tokenBalanceUnit,
|
|
70
69
|
token: tokenTo,
|
|
71
|
-
readOnly: isCrossChain,
|
|
72
70
|
onAmountChange: t3
|
|
73
71
|
};
|
|
74
72
|
$[7] = amountValue;
|
|
75
|
-
$[8] =
|
|
76
|
-
$[9] =
|
|
77
|
-
$[10] =
|
|
78
|
-
$[11] =
|
|
79
|
-
$[12] =
|
|
80
|
-
$[13] = t4;
|
|
73
|
+
$[8] = t3;
|
|
74
|
+
$[9] = tokenBalanceUnit;
|
|
75
|
+
$[10] = tokenTo;
|
|
76
|
+
$[11] = usdEstimation;
|
|
77
|
+
$[12] = t4;
|
|
81
78
|
} else {
|
|
82
|
-
t4 = $[
|
|
79
|
+
t4 = $[12];
|
|
83
80
|
}
|
|
84
81
|
return t4;
|
|
85
82
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTokenToInputProps.js","sources":["../../../../src/core/inputs/hooks/useTokenToInputProps.tsx"],"sourcesContent":["import type { TokenInputProps } from \"@/components/widget/TokenInput/types\";\n\nimport { useSwapTokenFrom, useSwapTokenTo } from \"../state/selectedTokenAtom\";\n\nimport { swapChainToAtom } from \"@/core/state/chainToAtom\";\nimport { useAtom, useAtomValue, useSetAtom } from \"jotai\";\n\nimport { useSelectableDestChains } from \"@/hooks/useSelectableDestChains\";\nimport { useChainId } from \"wagmi\";\nimport { receiveInputAmountAtom } from \"../state/inputAmountAtom\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { formatUnits } from \"viem\";\nimport { useSwapSide } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport { currentSwapInputAtom } from \"@/core/state/currentSwapInputAtom\";\nimport { useIsCrossChain } from \"@/core/state/isCrosschainAtom\";\nimport { getDestAmountAfterFee } from \"@/lib/utils/price\";\nimport type { DeltaOrMarketPrice } from \"@/hooks/swap/prices/types\";\nimport { calculateFeeUSD } from \"@/lib/utils/fee\";\nimport {\n replaceUnsupportedTokenMessage,\n isUnsupportedTokenError,\n parseDeltaApiError,\n customUnsupportedTokenMessage,\n} from \"@/lib/utils/delta\";\nimport { useIsCrosschainPossible } from \"@/hooks/useIsCrosschainPossible\";\nimport type { TokenInputAmountProps, TokenInputExtraProps } from \"./types\";\nimport { useTokenBalance } from \"@/hooks/tokens/balances/useTokenBalance\";\nimport { toDecimalTrimmed } from \"@/lib/utils/toDecimal\";\nimport { useLogger } from \"@/core/logger\";\nimport { MEDIUM_STALE_TIME_FOR_REACTIVENESS } from \"@/lib/constants/time\";\nimport { selectSwapTokenToAtom } from \"../state/selectedTokenActionsAtom\";\nimport { isTruthy } from \"@/lib/utils\";\nimport { isDeltaPrice } from \"@/hooks/swap/prices/delta/queries/useDeltaPriceQuery\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\n\ntype UseTokenToInputInput = {\n override?: {\n amountWei?: string;\n };\n price?: DeltaOrMarketPrice;\n priceMode: \"market\" | \"delta\";\n priceError: Error | null;\n isPriceLoading?: boolean;\n};\n\nconst useTokenToAmountProps = ({\n price,\n}: { price?: DeltaOrMarketPrice } = {}): TokenInputAmountProps => {\n const logger = useLogger(\"Swap::TokenTo::AmountProps\");\n const tokenTo = useSwapTokenTo();\n\n const isCrossChain = useIsCrossChain();\n\n const [amountValue, setAmountValue] = useAtom(receiveInputAmountAtom);\n\n const tokenBalanceUnit = useTokenToBalanceUnit();\n\n const usdEstimation =\n price && isDeltaPrice(price)\n ? price.receivedDestUSDBeforeFee\n : price?.destUSD;\n\n return {\n usdEstimation,\n amount: amountValue,\n tokenBalanceUnit,\n token: tokenTo,\n readOnly: isCrossChain,\n onAmountChange: (values) => {\n logger.log(\"onAmountChange::values\", values);\n setAmountValue(values.value);\n },\n };\n};\n\nconst useTokenToBalanceUnit = () => {\n const tokenTo = useSwapTokenTo();\n\n const { balanceUnit } = useTokenBalance({\n token: tokenTo,\n queryOptions: { refetchInterval: MEDIUM_STALE_TIME_FOR_REACTIVENESS },\n });\n\n return toDecimalTrimmed(balanceUnit);\n};\n\nconst useYouGetProps = ({\n priceMode,\n price,\n token,\n}: {\n priceMode: \"market\" | \"delta\";\n price?: DeltaOrMarketPrice;\n token?: Token;\n}) => {\n const side = useSwapSide();\n const isSell = side === \"SELL\";\n\n const destUSD =\n price && isDeltaPrice(price) ? price.receivedDestUSD : price?.destUSD;\n\n const youGetProps =\n // filling for SELL side\n isSell &&\n // price is available\n price &&\n // tokenTo is available\n token &&\n // either priceMode is delta or market with non-zero partner fee\n (priceMode === \"delta\" || (priceMode === \"market\" && price.partnerFee > 0))\n ? {\n // YouGet section should show amount after fee without slippage included\n amountWei: getDestAmountAfterFee(price),\n swapFeesUSD: destUSD\n ? calculateFeeUSD(price.partnerFee, destUSD).toString()\n : undefined,\n networkCostUSD: price.gasCostUSD,\n token,\n priceMode,\n }\n : undefined;\n\n return youGetProps;\n};\n\nconst useWarningMessage = ({\n priceError,\n priceMode,\n}: {\n priceMode?: \"market\" | \"delta\";\n priceError?: Error | null;\n}) => {\n const chainId = useChainId();\n const chainTo = useAtomValue(swapChainToAtom);\n const tokenFrom = useSwapTokenFrom();\n const tokenTo = useSwapTokenTo();\n\n const {\n isCrosschainPossible,\n isLoading: isLoadingCrosschainAvailability,\n hasTokens,\n tokenSupported,\n } = useIsCrosschainPossible({\n fromChainId: chainId,\n toChainId: chainTo,\n tokenAddress: tokenFrom.address,\n });\n\n const isCrosschain = useIsCrossChain();\n\n const deltaPriceError = priceError && parseDeltaApiError(priceError);\n\n const deltaErrorToShow = deltaPriceError\n ? isUnsupportedTokenError(deltaPriceError)\n ? replaceUnsupportedTokenMessage(\n deltaPriceError.description,\n [tokenFrom, tokenTo].filter(isTruthy)\n )\n : deltaPriceError?.description\n : null;\n\n const crosschainDeltaWarning =\n !isLoadingCrosschainAvailability && !isCrosschainPossible && isCrosschain\n ? tokenSupported === false\n ? customUnsupportedTokenMessage(tokenFrom)\n : hasTokens === false\n ? \"Chain selection isn't supported for Crosschain Swap\"\n : undefined\n : undefined;\n\n const warningMessage =\n priceMode === \"delta\"\n ? deltaErrorToShow || crosschainDeltaWarning\n : undefined;\n\n return warningMessage;\n};\n\nconst useExtraProps = ({\n isPriceLoading,\n}: { isPriceLoading?: boolean } = {}): TokenInputExtraProps => {\n const appChainId = useChainId();\n const [chainTo, setChainTo] = useAtom(swapChainToAtom);\n\n const { selectableChains } = useSelectableDestChains(appChainId);\n\n const showNetworkSwitcher = chainTo !== undefined;\n\n const networkSwitcherProps = showNetworkSwitcher\n ? {\n networks: selectableChains,\n selectedNetwork: chainTo,\n allOption: false,\n onSelect: (chainId: SupportedChainId | \"all\") =>\n chainId !== \"all\" && setChainTo(chainId),\n disabled: selectableChains.length <= 1,\n }\n : undefined;\n\n const setCurrentInput = useSetAtom(currentSwapInputAtom);\n\n const side = useSwapSide();\n const isSell = side === \"SELL\";\n\n // SELLing and price is loading = tokenTo input will receive destAmount\n const isLoading = isPriceLoading && isSell;\n\n return {\n networkSwitcherProps,\n tokenType: \"to\" as const,\n onFocus: () => setCurrentInput(\"to\"),\n label: (\n <>\n <span>Receive</span>{\" \"}\n {showNetworkSwitcher && <span className=\"text-contrast-5\">on</span>}\n </>\n ),\n isLoading,\n disabled: selectableChains.length === 0,\n };\n};\n\nexport const useTokenToInputProps = ({\n override,\n isPriceLoading,\n priceMode,\n price,\n priceError,\n}: UseTokenToInputInput): TokenInputProps => {\n const tokenToAmounts = useTokenToAmountProps({ price });\n const token = tokenToAmounts.token;\n const extraProps = useExtraProps({ isPriceLoading });\n const youGetProps = useYouGetProps({ priceMode, price, token });\n const warningMessage = useWarningMessage({ priceMode, priceError });\n\n const amount =\n override?.amountWei && token\n ? formatUnits(BigInt(override.amountWei), token.decimals)\n : tokenToAmounts.amount;\n\n const setTokenTo = useSetAtom(selectSwapTokenToAtom);\n const onTokenSelect = (newTokenTo: Token) => {\n setTokenTo(newTokenTo);\n };\n\n return {\n ...tokenToAmounts,\n amount,\n ...extraProps,\n youGetProps,\n warningMessage,\n onTokenSelect,\n };\n};\n"],"names":["useTokenToAmountProps","t0","$","_c","t1","undefined","price","logger","useLogger","tokenTo","useSwapTokenTo","isCrossChain","useIsCrossChain","amountValue","setAmountValue","useAtom","receiveInputAmountAtom","tokenBalanceUnit","useTokenToBalanceUnit","t2","isDeltaPrice","receivedDestUSDBeforeFee","destUSD","usdEstimation","t3","values","log","value","t4","amount","token","readOnly","onAmountChange","Symbol","for","refetchInterval","MEDIUM_STALE_TIME_FOR_REACTIVENESS","queryOptions","balanceUnit","useTokenBalance","toDecimalTrimmed","useYouGetProps","priceMode","side","useSwapSide","isSell","receivedDestUSD","partnerFee","amountWei","getDestAmountAfterFee","swapFeesUSD","calculateFeeUSD","toString","networkCostUSD","gasCostUSD","youGetProps","useWarningMessage","priceError","chainId","useChainId","chainTo","useAtomValue","swapChainToAtom","tokenFrom","useSwapTokenFrom","address","fromChainId","toChainId","tokenAddress","isCrosschainPossible","isLoading","isLoadingCrosschainAvailability","hasTokens","tokenSupported","useIsCrosschainPossible","isCrosschain","deltaPriceError","parseDeltaApiError","isUnsupportedTokenError","replaceUnsupportedTokenMessage","description","filter","isTruthy","deltaErrorToShow","customUnsupportedTokenMessage","crosschainDeltaWarning","warningMessage","useExtraProps","isPriceLoading","appChainId","setChainTo","selectableChains","useSelectableDestChains","showNetworkSwitcher","networks","selectedNetwork","allOption","onSelect","disabled","length","networkSwitcherProps","setCurrentInput","useSetAtom","currentSwapInputAtom","t5","t6","t7","t8","tokenType","onFocus","label","useTokenToInputProps","override","tokenToAmounts","extraProps","formatUnits","BigInt","decimals","setTokenTo","selectSwapTokenToAtom","newTokenTo","onTokenSelect"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useTokenToInputProps.js","sources":["../../../../src/core/inputs/hooks/useTokenToInputProps.tsx"],"sourcesContent":["import type { TokenInputProps } from \"@/components/widget/TokenInput/types\";\n\nimport { useSwapTokenFrom, useSwapTokenTo } from \"../state/selectedTokenAtom\";\n\nimport { swapChainToAtom } from \"@/core/state/chainToAtom\";\nimport { useAtom, useAtomValue, useSetAtom } from \"jotai\";\n\nimport { useSelectableDestChains } from \"@/hooks/useSelectableDestChains\";\nimport { useChainId } from \"wagmi\";\nimport { receiveInputAmountAtom } from \"../state/inputAmountAtom\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { formatUnits } from \"viem\";\nimport { useSwapSide } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport { currentSwapInputAtom } from \"@/core/state/currentSwapInputAtom\";\nimport { useIsCrossChain } from \"@/core/state/isCrosschainAtom\";\nimport { getDestAmountAfterFee } from \"@/lib/utils/price\";\nimport type { DeltaOrMarketPrice } from \"@/hooks/swap/prices/types\";\nimport { calculateFeeUSD } from \"@/lib/utils/fee\";\nimport {\n replaceUnsupportedTokenMessage,\n isUnsupportedTokenError,\n parseDeltaApiError,\n customUnsupportedTokenMessage,\n} from \"@/lib/utils/delta\";\nimport { useIsCrosschainPossible } from \"@/hooks/useIsCrosschainPossible\";\nimport type { TokenInputAmountProps, TokenInputExtraProps } from \"./types\";\nimport { useTokenBalance } from \"@/hooks/tokens/balances/useTokenBalance\";\nimport { toDecimalTrimmed } from \"@/lib/utils/toDecimal\";\nimport { useLogger } from \"@/core/logger\";\nimport { MEDIUM_STALE_TIME_FOR_REACTIVENESS } from \"@/lib/constants/time\";\nimport { selectSwapTokenToAtom } from \"../state/selectedTokenActionsAtom\";\nimport { isTruthy } from \"@/lib/utils\";\nimport { isDeltaPrice } from \"@/hooks/swap/prices/delta/queries/useDeltaPriceQuery\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\n\ntype UseTokenToInputInput = {\n override?: {\n amountWei?: string;\n };\n price?: DeltaOrMarketPrice;\n priceMode: \"market\" | \"delta\";\n priceError: Error | null;\n isPriceLoading?: boolean;\n};\n\nconst useTokenToAmountProps = ({\n price,\n}: { price?: DeltaOrMarketPrice } = {}): TokenInputAmountProps => {\n const logger = useLogger(\"Swap::TokenTo::AmountProps\");\n const tokenTo = useSwapTokenTo();\n\n const [amountValue, setAmountValue] = useAtom(receiveInputAmountAtom);\n\n const tokenBalanceUnit = useTokenToBalanceUnit();\n\n const usdEstimation =\n price && isDeltaPrice(price)\n ? // receivedDestUSDBeforeFee is available for SELL side\n price.receivedDestUSDBeforeFee || price.receivedDestUSD\n : price?.destUSD;\n\n return {\n usdEstimation,\n amount: amountValue,\n tokenBalanceUnit,\n token: tokenTo,\n onAmountChange: (values) => {\n logger.log(\"onAmountChange::values\", values);\n setAmountValue(values.value);\n },\n };\n};\n\nconst useTokenToBalanceUnit = () => {\n const tokenTo = useSwapTokenTo();\n\n const { balanceUnit } = useTokenBalance({\n token: tokenTo,\n queryOptions: { refetchInterval: MEDIUM_STALE_TIME_FOR_REACTIVENESS },\n });\n\n return toDecimalTrimmed(balanceUnit);\n};\n\nconst useYouGetProps = ({\n priceMode,\n price,\n token,\n}: {\n priceMode: \"market\" | \"delta\";\n price?: DeltaOrMarketPrice;\n token?: Token;\n}) => {\n const side = useSwapSide();\n const isSell = side === \"SELL\";\n\n const destUSD =\n price && isDeltaPrice(price) ? price.receivedDestUSD : price?.destUSD;\n\n const youGetProps =\n // filling for SELL side\n // forBUY side youGetAmount= exactly destAmount\n isSell &&\n // price is available\n price &&\n // tokenTo is available\n token &&\n // either priceMode is delta or market with non-zero partner fee\n (priceMode === \"delta\" || (priceMode === \"market\" && price.partnerFee > 0))\n ? {\n // YouGet section should show amount after fee without slippage included\n amountWei: getDestAmountAfterFee(price),\n swapFeesUSD: destUSD\n ? calculateFeeUSD(price.partnerFee, destUSD).toString()\n : undefined,\n networkCostUSD: price.gasCostUSD,\n token,\n priceMode,\n }\n : undefined;\n\n return youGetProps;\n};\n\nconst useWarningMessage = ({\n priceError,\n priceMode,\n}: {\n priceMode?: \"market\" | \"delta\";\n priceError?: Error | null;\n}) => {\n const chainId = useChainId();\n const chainTo = useAtomValue(swapChainToAtom);\n const tokenFrom = useSwapTokenFrom();\n const tokenTo = useSwapTokenTo();\n\n const {\n isCrosschainPossible,\n isLoading: isLoadingCrosschainAvailability,\n hasTokens,\n tokenSupported,\n } = useIsCrosschainPossible({\n fromChainId: chainId,\n toChainId: chainTo,\n tokenAddress: tokenFrom.address,\n });\n\n const isCrosschain = useIsCrossChain();\n\n const deltaPriceError = priceError && parseDeltaApiError(priceError);\n\n const deltaErrorToShow = deltaPriceError\n ? isUnsupportedTokenError(deltaPriceError)\n ? replaceUnsupportedTokenMessage(\n deltaPriceError.description,\n [tokenFrom, tokenTo].filter(isTruthy)\n )\n : deltaPriceError?.description\n : null;\n\n const crosschainDeltaWarning =\n !isLoadingCrosschainAvailability && !isCrosschainPossible && isCrosschain\n ? tokenSupported === false\n ? customUnsupportedTokenMessage(tokenFrom)\n : hasTokens === false\n ? \"Chain selection isn't supported for Crosschain Swap\"\n : undefined\n : undefined;\n\n const warningMessage =\n priceMode === \"delta\"\n ? deltaErrorToShow || crosschainDeltaWarning\n : undefined;\n\n return warningMessage;\n};\n\nconst useExtraProps = ({\n isPriceLoading,\n}: { isPriceLoading?: boolean } = {}): TokenInputExtraProps => {\n const appChainId = useChainId();\n const [chainTo, setChainTo] = useAtom(swapChainToAtom);\n\n const { selectableChains } = useSelectableDestChains(appChainId);\n\n const showNetworkSwitcher = chainTo !== undefined;\n\n const networkSwitcherProps = showNetworkSwitcher\n ? {\n networks: selectableChains,\n selectedNetwork: chainTo,\n allOption: false,\n onSelect: (chainId: SupportedChainId | \"all\") =>\n chainId !== \"all\" && setChainTo(chainId),\n disabled: selectableChains.length <= 1,\n }\n : undefined;\n\n const setCurrentInput = useSetAtom(currentSwapInputAtom);\n\n const side = useSwapSide();\n const isSell = side === \"SELL\";\n\n // SELLing and price is loading = tokenTo input will receive destAmount\n const isLoading = isPriceLoading && isSell;\n\n return {\n networkSwitcherProps,\n tokenType: \"to\" as const,\n onFocus: () => setCurrentInput(\"to\"),\n label: (\n <>\n <span>Receive</span>{\" \"}\n {showNetworkSwitcher && <span className=\"text-contrast-5\">on</span>}\n </>\n ),\n isLoading,\n disabled: selectableChains.length === 0,\n };\n};\n\nexport const useTokenToInputProps = ({\n override,\n isPriceLoading,\n priceMode,\n price,\n priceError,\n}: UseTokenToInputInput): TokenInputProps => {\n const tokenToAmounts = useTokenToAmountProps({ price });\n const token = tokenToAmounts.token;\n const extraProps = useExtraProps({ isPriceLoading });\n const youGetProps = useYouGetProps({ priceMode, price, token });\n const warningMessage = useWarningMessage({ priceMode, priceError });\n\n const amount =\n override?.amountWei && token\n ? formatUnits(BigInt(override.amountWei), token.decimals)\n : tokenToAmounts.amount;\n\n const setTokenTo = useSetAtom(selectSwapTokenToAtom);\n const onTokenSelect = (newTokenTo: Token) => {\n setTokenTo(newTokenTo);\n };\n\n return {\n ...tokenToAmounts,\n amount,\n ...extraProps,\n youGetProps,\n warningMessage,\n onTokenSelect,\n };\n};\n"],"names":["useTokenToAmountProps","t0","$","_c","t1","undefined","price","logger","useLogger","tokenTo","useSwapTokenTo","amountValue","setAmountValue","useAtom","receiveInputAmountAtom","tokenBalanceUnit","useTokenToBalanceUnit","t2","isDeltaPrice","receivedDestUSDBeforeFee","receivedDestUSD","destUSD","usdEstimation","t3","values","log","value","t4","amount","token","onAmountChange","Symbol","for","refetchInterval","MEDIUM_STALE_TIME_FOR_REACTIVENESS","queryOptions","balanceUnit","useTokenBalance","toDecimalTrimmed","useYouGetProps","priceMode","side","useSwapSide","isSell","partnerFee","amountWei","getDestAmountAfterFee","swapFeesUSD","calculateFeeUSD","toString","networkCostUSD","gasCostUSD","youGetProps","useWarningMessage","priceError","chainId","useChainId","chainTo","useAtomValue","swapChainToAtom","tokenFrom","useSwapTokenFrom","address","fromChainId","toChainId","tokenAddress","isCrosschainPossible","isLoading","isLoadingCrosschainAvailability","hasTokens","tokenSupported","useIsCrosschainPossible","isCrosschain","useIsCrossChain","deltaPriceError","parseDeltaApiError","isUnsupportedTokenError","replaceUnsupportedTokenMessage","description","filter","isTruthy","deltaErrorToShow","customUnsupportedTokenMessage","crosschainDeltaWarning","warningMessage","useExtraProps","isPriceLoading","appChainId","setChainTo","selectableChains","useSelectableDestChains","showNetworkSwitcher","networks","selectedNetwork","allOption","onSelect","disabled","length","networkSwitcherProps","setCurrentInput","useSetAtom","currentSwapInputAtom","t5","t6","t7","t8","tokenType","onFocus","label","useTokenToInputProps","override","tokenToAmounts","extraProps","formatUnits","BigInt","decimals","setTokenTo","selectSwapTokenToAtom","newTokenTo","onTokenSelect"],"mappings":"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"}
|
|
@@ -20,7 +20,7 @@ export declare const tradeModeToSetTokenAtoms: Record<TradeMode, {
|
|
|
20
20
|
tokenToAtom: typeof selectSwapTokenToAtom;
|
|
21
21
|
}>;
|
|
22
22
|
export declare const useWidgetTokens: (tradeMode: TradeMode) => {
|
|
23
|
-
tokenFrom: import('
|
|
24
|
-
tokenTo: import('
|
|
23
|
+
tokenFrom: import('../../../tokens/state/types').Token;
|
|
24
|
+
tokenTo: import('../../../tokens/state/types').Token | undefined;
|
|
25
25
|
};
|
|
26
26
|
//# sourceMappingURL=common.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectedTokenActionsAtom.d.ts","sourceRoot":"","sources":["../../../../src/core/inputs/state/selectedTokenActionsAtom.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAQlD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAY/D,eAAO,MAAM,oBAAoB;;
|
|
1
|
+
{"version":3,"file":"selectedTokenActionsAtom.d.ts","sourceRoot":"","sources":["../../../../src/core/inputs/state/selectedTokenActionsAtom.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAQlD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAY/D,eAAO,MAAM,oBAAoB;;CAsF/B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;CAoEnC,CAAC;AAEF,eAAO,MAAM,qBAAqB;;CAuGjC,CAAC;AAEF,eAAO,MAAM,8BAA8B,GAAI,SAAS,gBAAgB,SAiEvE,CAAC"}
|
|
@@ -16,55 +16,64 @@ import { switchChain } from '../../../lib/web3/wagmi/switchChain.js';
|
|
|
16
16
|
import { getSelectableDestChains } from '../../state/configEffectAtom.js';
|
|
17
17
|
|
|
18
18
|
const switchSwapTokensAtom = atom(null, (get, set) => {
|
|
19
|
+
const tokenFrom = get(swapTokenFromAtom);
|
|
19
20
|
const tokenTo = get(swapTokenToAtom);
|
|
20
21
|
if (!tokenTo) return;
|
|
21
22
|
const enabledSrcChains = get(enabledSrcChainsAtom);
|
|
22
23
|
if (!enabledSrcChains.includes(tokenTo.network)) return;
|
|
23
|
-
const tokenFrom = get(swapTokenFromAtom);
|
|
24
24
|
if (tokenFrom.network !== tokenTo.network) {
|
|
25
25
|
switchChain({
|
|
26
26
|
chainId: tokenTo.network
|
|
27
27
|
});
|
|
28
28
|
}
|
|
29
|
-
|
|
29
|
+
const newTokenFrom = tokenTo;
|
|
30
|
+
let newTokenTo = tokenFrom;
|
|
30
31
|
const crosschainPossible = isCrosschainPossible({
|
|
31
32
|
get,
|
|
32
33
|
// tokenTo is now is from position
|
|
33
|
-
chainIdFrom:
|
|
34
|
+
chainIdFrom: newTokenFrom.network,
|
|
34
35
|
// considering tokenFrom in to position, is crosschain possible?
|
|
35
|
-
chainIdTo:
|
|
36
|
+
chainIdTo: newTokenTo.network
|
|
36
37
|
});
|
|
37
38
|
if (crosschainPossible) {
|
|
38
|
-
const
|
|
39
|
-
// is the
|
|
40
|
-
token:
|
|
41
|
-
//
|
|
42
|
-
fromChainId:
|
|
43
|
-
//
|
|
44
|
-
toChainId:
|
|
39
|
+
const newTokenToIsFromAcross = isTokenFromAcross({
|
|
40
|
+
// is the new tokenTo an Across token?
|
|
41
|
+
token: newTokenTo,
|
|
42
|
+
// chain of the new tokenFrom
|
|
43
|
+
fromChainId: newTokenFrom.network,
|
|
44
|
+
// chain of the new tokenTo
|
|
45
|
+
toChainId: newTokenTo.network
|
|
45
46
|
});
|
|
46
|
-
if (
|
|
47
|
-
set(swapTokenToAtom, tokenFrom);
|
|
48
|
-
} else {
|
|
47
|
+
if (newTokenToIsFromAcross && !areTokensSame(newTokenTo, newTokenFrom)) ; else {
|
|
49
48
|
const maybeAcrossToken = findFirstTokenFromAcross({
|
|
50
|
-
//
|
|
51
|
-
fromChainId:
|
|
52
|
-
//
|
|
53
|
-
toChainId:
|
|
49
|
+
// chain of the new tokenFrom
|
|
50
|
+
fromChainId: newTokenFrom.network,
|
|
51
|
+
// chain of the new tokenTo
|
|
52
|
+
toChainId: newTokenTo.network,
|
|
54
53
|
listByChainId: get(allTokensByChainAtom).listByChainId
|
|
55
54
|
});
|
|
56
|
-
|
|
55
|
+
newTokenTo = maybeAcrossToken;
|
|
57
56
|
}
|
|
58
57
|
} else {
|
|
59
|
-
const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
58
|
+
const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(
|
|
59
|
+
newTokenFrom.network,
|
|
60
|
+
// chain of the new tokenFrom
|
|
61
|
+
"swap"
|
|
62
|
+
);
|
|
63
|
+
if (newTokenFrom.network !== newTokenTo.network) {
|
|
64
|
+
newTokenTo = areTokensSame(newTokenFrom, defaultTokenTo) ? (
|
|
65
|
+
// taking care that we don't get newTokenTo==newTokenFrom
|
|
66
|
+
defaultTokenFrom
|
|
67
|
+
) : defaultTokenTo;
|
|
63
68
|
} else {
|
|
64
|
-
|
|
65
|
-
|
|
69
|
+
newTokenTo = areTokensSame(newTokenFrom, newTokenTo) ? (
|
|
70
|
+
// taking care that we don't get newTokenTo==newTokenFrom
|
|
71
|
+
defaultTokenTo
|
|
72
|
+
) : newTokenTo;
|
|
66
73
|
}
|
|
67
74
|
}
|
|
75
|
+
set(swapTokenFromAtom, newTokenFrom);
|
|
76
|
+
set(swapTokenToAtom, newTokenTo);
|
|
68
77
|
});
|
|
69
78
|
const selectSwapTokenFromAtom = atom(null, async (get, set, newTokenFrom) => {
|
|
70
79
|
const enabledSrcChains = get(enabledSrcChainsAtom);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectedTokenActionsAtom.js","sources":["../../../../src/core/inputs/state/selectedTokenActionsAtom.ts"],"sourcesContent":["import { atom, type Getter } from \"jotai\";\n\nimport { swapTokenFromAtom, swapTokenToAtom } 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 \"@/core/across/utils\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { deltaParamAtom } from \"@/components/widget/TradeParameters/state/deltaParamAtom\";\nimport { widgetConfigAtom } from \"@/core/state/configAtom\";\nimport { setSwapModeAtom } from \"@/components/widget/SwapModeSwitcher/state/swapModeActionsAtom\";\nimport { jotaiStore } from \"./store\";\nimport { tradeModeAtom } from \"@/core/state/tradeModeAtom\";\nimport { allTokensByChainAtom } from \"@/tokens/state/allTokensByChainAtom\";\nimport { deltaEnabledOnAPI } from \"@/lib/constants/delta\";\nimport { enabledSrcChainsAtom } from \"@/core/state/enabledChainsAtom\";\nimport { switchChain } from \"@/lib/web3/wagmi/switchChain\";\nimport { getSelectableDestChains } from \"@/core/state/configEffectAtom\";\n\nexport const switchSwapTokensAtom = atom(null, (get, set) => {\n const tokenTo = get(swapTokenToAtom);\n\n if (!tokenTo) return;\n\n const enabledSrcChains = get(enabledSrcChainsAtom);\n if (!enabledSrcChains.includes(tokenTo.network)) return;\n\n const tokenFrom = get(swapTokenFromAtom);\n\n // switch a token from a different chain?\n if (tokenFrom.network !== tokenTo.network) {\n // switch chain first\n switchChain({\n chainId: tokenTo.network,\n });\n }\n\n // then set the tokenFrom\n set(swapTokenFromAtom, tokenTo);\n\n const crosschainPossible = isCrosschainPossible({\n get,\n // tokenTo is now is from position\n chainIdFrom: tokenTo.network,\n // considering tokenFrom in to position, is crosschain possible?\n chainIdTo: tokenFrom.network,\n });\n\n if (crosschainPossible) {\n const tokenFromIsFromAcross = isTokenFromAcross({\n // is the previous tokenFrom an Across token?\n token: tokenFrom,\n // considering tokenTo is now in from position\n fromChainId: tokenTo.network,\n // and tokenFrom will be in to position\n toChainId: tokenFrom.network,\n });\n\n if (tokenFromIsFromAcross && !areTokensSame(tokenFrom, tokenTo)) {\n // can use tokenFrom as tokenTo because it's an Across token\n set(swapTokenToAtom, tokenFrom);\n } else {\n // otherwise, we either set tokenTo to the first Across token,\n // or reset tokenTo\n const maybeAcrossToken = findFirstTokenFromAcross({\n // tokenTo is now in from position\n fromChainId: tokenTo.network,\n // considering tokenFrom will be in to position\n toChainId: tokenFrom.network,\n listByChainId: get(allTokensByChainAtom).listByChainId,\n });\n set(swapTokenToAtom, maybeAcrossToken);\n }\n } else {\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n tokenTo.network,\n \"swap\"\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(swapTokenToAtom, newTokenTo);\n } else {\n // otherwise, we set either current tokenFrom or defaultTokenFrom as tokenTo\n const newTokenTo = areTokensSame(tokenFrom, defaultTokenTo)\n ? tokenFrom\n : defaultTokenFrom;\n\n set(swapTokenToAtom, newTokenTo);\n }\n }\n});\n\nexport const selectSwapTokenFromAtom = atom(\n null,\n async (get, set, newTokenFrom: Token) => {\n const enabledSrcChains = get(enabledSrcChainsAtom);\n if (!enabledSrcChains.includes(newTokenFrom.network)) return;\n\n const tokenFrom = get(swapTokenFromAtom);\n const tokenTo = get(swapTokenToAtom);\n\n // selecting a token from a different chain?\n if (newTokenFrom.network !== wagmiConfig.state.chainId) {\n // switch chain first\n switchChain({\n chainId: newTokenFrom.network,\n });\n }\n\n // then set the tokenFrom\n set(swapTokenFromAtom, newTokenFrom);\n\n if (!tokenTo) return;\n\n const crosschainPossible = isCrosschainPossible({\n get,\n chainIdFrom: newTokenFrom.network,\n chainIdTo: tokenTo.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 listByChainId: get(allTokensByChainAtom).listByChainId,\n });\n\n set(swapTokenToAtom, maybeAcrossToken);\n }\n } else {\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n newTokenFrom.network,\n \"swap\"\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(swapTokenToAtom, newTokenTo);\n } else {\n // or simply flip the tokens if they are from the same chain\n if (areTokensSame(newTokenFrom, tokenTo)) {\n set(swapTokenToAtom, tokenFrom);\n }\n // otherwise do nothing, tokenTo is already on the same chain and different from newTokenFrom\n }\n }\n }\n);\n\nexport const selectSwapTokenToAtom = atom(\n null,\n async (get, set, newTokenTo: Token) => {\n let tokenFrom = get(swapTokenFromAtom);\n\n const selectableDestChains = getSelectableDestChains(\n get,\n tokenFrom.network\n );\n if (!selectableDestChains.includes(newTokenTo.network)) return;\n\n const newTokenToNetwork = newTokenTo.network;\n\n let tokenTo = get(swapTokenToAtom);\n\n if (areTokensSame(newTokenTo, tokenFrom)) {\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n newTokenToNetwork,\n \"swap\"\n );\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(swapTokenFromAtom, newTokenFrom);\n tokenFrom = newTokenFrom;\n }\n\n set(swapTokenToAtom, newTokenTo);\n tokenTo = newTokenTo;\n\n // after switching we may have ended up with a crosschain pair,\n // but tokenTo may not be crossable depending on srcChainId;\n // this can easily happen if tokenTo was set from WidgetProps\n let needResetTokenFrom = false;\n\n const crosschainPossible = isCrosschainPossible({\n get,\n chainIdFrom: tokenFrom.network,\n chainIdTo: tokenTo.network,\n });\n\n if (crosschainPossible) {\n const isTokenToFromAcross = isTokenFromAcross({\n token: tokenTo,\n fromChainId: tokenFrom.network,\n toChainId: tokenTo.network,\n });\n\n if (!isTokenToFromAcross) {\n // tokenFrom -> tokenTo is crosschain, but tokenTo can't be destToken for that chain\n needResetTokenFrom = true;\n }\n }\n\n if (tokenFrom.network !== tokenTo.network && !crosschainPossible) {\n // tokenFrom -> tokenTo is crosschain, but delta is explicitly disabled,\n needResetTokenFrom = true;\n }\n\n const enabledSrcChains = get(enabledSrcChainsAtom);\n\n if (needResetTokenFrom && enabledSrcChains.includes(tokenTo.network)) {\n // set the tokenFrom to default token from tokenTo.network\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n tokenTo.network,\n \"swap\"\n );\n // make sure it's not the same as tokenTo\n const newTokenFrom = areTokensSame(tokenTo, defaultTokenFrom)\n ? defaultTokenTo\n : defaultTokenFrom;\n\n set(swapTokenFromAtom, newTokenFrom);\n tokenFrom = newTokenFrom;\n }\n\n // crosschain? set SwapMode to Delta\n if (tokenFrom.network !== tokenTo.network) {\n // if delta is explicitly disabled, it won't be set\n set(setSwapModeAtom, \"delta\");\n }\n\n // selecting a token from a different chain?\n if (tokenFrom.network !== wagmiConfig.state.chainId) {\n // request wallet chain switch (non-blocking)\n switchChain({\n chainId: tokenFrom.network,\n });\n }\n }\n);\n\nexport const syncSwapTokensAfterChainSwitch = (chainId: SupportedChainId) => {\n const enabledSrcChains = jotaiStore.get(enabledSrcChainsAtom);\n if (!enabledSrcChains.includes(chainId)) return;\n\n const tokenFrom = jotaiStore.get(swapTokenFromAtom);\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(\n chainId,\n \"swap\"\n );\n\n // reassignment for clarity\n const newTokenFrom = defaultTokenFrom;\n\n // update tokenFrom\n jotaiStore.set(swapTokenFromAtom, newTokenFrom);\n\n const tokenTo = jotaiStore.get(swapTokenToAtom);\n\n // toChainId derives from tokenTo.network, if no tokenTo - do nothing\n if (!tokenTo) return;\n\n const crosschainPossible = isCrosschainPossible({\n get: jotaiStore.get,\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 listByChainId: jotaiStore.get(allTokensByChainAtom).listByChainId,\n });\n\n jotaiStore.set(swapTokenToAtom, maybeAcrossToken);\n }\n\n jotaiStore.set(setSwapModeAtom, \"delta\");\n } else {\n const selectableDestChains = getSelectableDestChains(\n jotaiStore.get,\n newTokenFrom.network\n );\n if (selectableDestChains.includes(chainId)) {\n // can do single-chain on the new chain, set defaults\n jotaiStore.set(swapTokenToAtom, defaultTokenTo);\n } else {\n // avoid complexity and reset tokenTo\n jotaiStore.set(swapTokenToAtom, undefined);\n }\n }\n};\n\nfunction isCrosschainPossible({\n get,\n chainIdFrom,\n chainIdTo,\n}: {\n get: Getter;\n chainIdFrom: SupportedChainId;\n chainIdTo: SupportedChainId;\n}): boolean {\n if (!deltaEnabledOnAPI[chainIdFrom]) return false;\n\n if (!isAcrossAvailable({ chainIdFrom, chainIdTo })) return false;\n\n const tradeMode = get(tradeModeAtom);\n if (tradeMode !== \"swap\") return false;\n\n const deltaEnabledInSettings = get(deltaParamAtom);\n if (!deltaEnabledInSettings) return false;\n\n const { enableDelta, enableCrossChain } = get(widgetConfigAtom);\n if (!enableDelta || !enableCrossChain) return false;\n\n const enabledSrcChains = get(enabledSrcChainsAtom);\n if (!enabledSrcChains.includes(chainIdFrom)) return false;\n\n const selectableDestChains = getSelectableDestChains(get, chainIdFrom);\n if (!selectableDestChains.includes(chainIdTo)) return false;\n\n return true;\n}\n"],"names":["switchSwapTokensAtom","atom","get","set","tokenTo","swapTokenToAtom","enabledSrcChains","enabledSrcChainsAtom","includes","network","tokenFrom","swapTokenFromAtom","switchChain","chainId","crosschainPossible","isCrosschainPossible","chainIdFrom","chainIdTo","tokenFromIsFromAcross","isTokenFromAcross","token","fromChainId","toChainId","areTokensSame","maybeAcrossToken","findFirstTokenFromAcross","listByChainId","allTokensByChainAtom","defaultTokenFrom","defaultTokenTo","pickDefaultTokenPair","newTokenTo","selectSwapTokenFromAtom","newTokenFrom","wagmiConfig","state","isTokenToFromAcross","selectSwapTokenToAtom","selectableDestChains","getSelectableDestChains","newTokenToNetwork","fromDefaults","wasCrosschain","needResetTokenFrom","setSwapModeAtom","syncSwapTokensAfterChainSwitch","jotaiStore","undefined","deltaEnabledOnAPI","isAcrossAvailable","tradeMode","tradeModeAtom","deltaEnabledInSettings","deltaParamAtom","enableDelta","enableCrossChain","widgetConfigAtom"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"selectedTokenActionsAtom.js","sources":["../../../../src/core/inputs/state/selectedTokenActionsAtom.ts"],"sourcesContent":["import { atom, type Getter } from \"jotai\";\n\nimport { swapTokenFromAtom, swapTokenToAtom } 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 \"@/core/across/utils\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { deltaParamAtom } from \"@/components/widget/TradeParameters/state/deltaParamAtom\";\nimport { widgetConfigAtom } from \"@/core/state/configAtom\";\nimport { setSwapModeAtom } from \"@/components/widget/SwapModeSwitcher/state/swapModeActionsAtom\";\nimport { jotaiStore } from \"./store\";\nimport { tradeModeAtom } from \"@/core/state/tradeModeAtom\";\nimport { allTokensByChainAtom } from \"@/tokens/state/allTokensByChainAtom\";\nimport { deltaEnabledOnAPI } from \"@/lib/constants/delta\";\nimport { enabledSrcChainsAtom } from \"@/core/state/enabledChainsAtom\";\nimport { switchChain } from \"@/lib/web3/wagmi/switchChain\";\nimport { getSelectableDestChains } from \"@/core/state/configEffectAtom\";\n\nexport const switchSwapTokensAtom = atom(null, (get, set) => {\n const tokenFrom = get(swapTokenFromAtom);\n const tokenTo = get(swapTokenToAtom);\n\n if (!tokenTo) return;\n\n const enabledSrcChains = get(enabledSrcChainsAtom);\n if (!enabledSrcChains.includes(tokenTo.network)) return;\n\n // switch a token from a different chain?\n if (tokenFrom.network !== tokenTo.network) {\n // switch chain first\n switchChain({\n chainId: tokenTo.network,\n });\n }\n\n const newTokenFrom = tokenTo; // tokenTo will go into from position\n let newTokenTo: Token | undefined = tokenFrom; // tentatively consider that tokenFrom is now in to position\n\n // now we need to figure out what token should be in to position in the end\n\n const crosschainPossible = isCrosschainPossible({\n get,\n // tokenTo is now is from position\n chainIdFrom: newTokenFrom.network,\n // considering tokenFrom in to position, is crosschain possible?\n chainIdTo: newTokenTo.network,\n });\n\n // in principle, crosschain is possible for token networks\n if (crosschainPossible) {\n const newTokenToIsFromAcross = isTokenFromAcross({\n // is the new tokenTo an Across token?\n token: newTokenTo,\n // chain of the new tokenFrom\n fromChainId: newTokenFrom.network,\n // chain of the new tokenTo\n toChainId: newTokenTo.network,\n });\n\n // newTokenTo is crossable and different from newTokenFrom\n if (newTokenToIsFromAcross && !areTokensSame(newTokenTo, newTokenFrom)) {\n // can use newTokenTo in to position because it's an Across token\n // no changes needed\n } else {\n // otherwise, we either set tokenTo to the first Across token,\n // or reset tokenTo (set(undefined))\n const maybeAcrossToken = findFirstTokenFromAcross({\n // chain of the new tokenFrom\n fromChainId: newTokenFrom.network,\n // chain of the new tokenTo\n toChainId: newTokenTo.network,\n listByChainId: get(allTokensByChainAtom).listByChainId,\n });\n newTokenTo = maybeAcrossToken;\n }\n } else {\n // crosschain is not possible or we had single-chain from the start\n\n // find default tokens for the new tokenFrom network\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n newTokenFrom.network, // chain of the new tokenFrom\n \"swap\"\n );\n\n // crosschain is not possible for the chain pair,\n // but tokens are from different chains from the start\n if (newTokenFrom.network !== newTokenTo.network) {\n // if cross-chain, then we can't use newTokenTo, so pick from defaults\n newTokenTo = areTokensSame(newTokenFrom, defaultTokenTo)\n ? // taking care that we don't get newTokenTo==newTokenFrom\n defaultTokenFrom\n : defaultTokenTo;\n } else {\n // tokens already from same chain, we set either newTokenTo or defaultTokenFrom as tokenTo\n newTokenTo = areTokensSame(newTokenFrom, newTokenTo)\n ? // taking care that we don't get newTokenTo==newTokenFrom\n defaultTokenTo\n : newTokenTo;\n }\n }\n\n // finally set the tokens\n set(swapTokenFromAtom, newTokenFrom);\n set(swapTokenToAtom, newTokenTo);\n});\n\nexport const selectSwapTokenFromAtom = atom(\n null,\n async (get, set, newTokenFrom: Token) => {\n const enabledSrcChains = get(enabledSrcChainsAtom);\n if (!enabledSrcChains.includes(newTokenFrom.network)) return;\n\n const tokenFrom = get(swapTokenFromAtom);\n const tokenTo = get(swapTokenToAtom);\n\n // selecting a token from a different chain?\n if (newTokenFrom.network !== wagmiConfig.state.chainId) {\n // switch chain first\n switchChain({\n chainId: newTokenFrom.network,\n });\n }\n\n // then set the tokenFrom\n set(swapTokenFromAtom, newTokenFrom);\n\n if (!tokenTo) return;\n\n const crosschainPossible = isCrosschainPossible({\n get,\n chainIdFrom: newTokenFrom.network,\n chainIdTo: tokenTo.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 listByChainId: get(allTokensByChainAtom).listByChainId,\n });\n\n set(swapTokenToAtom, maybeAcrossToken);\n }\n } else {\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n newTokenFrom.network,\n \"swap\"\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(swapTokenToAtom, newTokenTo);\n } else {\n // or simply flip the tokens if they are from the same chain\n if (areTokensSame(newTokenFrom, tokenTo)) {\n set(swapTokenToAtom, tokenFrom);\n }\n // otherwise do nothing, tokenTo is already on the same chain and different from newTokenFrom\n }\n }\n }\n);\n\nexport const selectSwapTokenToAtom = atom(\n null,\n async (get, set, newTokenTo: Token) => {\n let tokenFrom = get(swapTokenFromAtom);\n\n const selectableDestChains = getSelectableDestChains(\n get,\n tokenFrom.network\n );\n if (!selectableDestChains.includes(newTokenTo.network)) return;\n\n const newTokenToNetwork = newTokenTo.network;\n\n let tokenTo = get(swapTokenToAtom);\n\n if (areTokensSame(newTokenTo, tokenFrom)) {\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n newTokenToNetwork,\n \"swap\"\n );\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(swapTokenFromAtom, newTokenFrom);\n tokenFrom = newTokenFrom;\n }\n\n set(swapTokenToAtom, newTokenTo);\n tokenTo = newTokenTo;\n\n // after switching we may have ended up with a crosschain pair,\n // but tokenTo may not be crossable depending on srcChainId;\n // this can easily happen if tokenTo was set from WidgetProps\n let needResetTokenFrom = false;\n\n const crosschainPossible = isCrosschainPossible({\n get,\n chainIdFrom: tokenFrom.network,\n chainIdTo: tokenTo.network,\n });\n\n if (crosschainPossible) {\n const isTokenToFromAcross = isTokenFromAcross({\n token: tokenTo,\n fromChainId: tokenFrom.network,\n toChainId: tokenTo.network,\n });\n\n if (!isTokenToFromAcross) {\n // tokenFrom -> tokenTo is crosschain, but tokenTo can't be destToken for that chain\n needResetTokenFrom = true;\n }\n }\n\n if (tokenFrom.network !== tokenTo.network && !crosschainPossible) {\n // tokenFrom -> tokenTo is crosschain, but delta is explicitly disabled,\n needResetTokenFrom = true;\n }\n\n const enabledSrcChains = get(enabledSrcChainsAtom);\n\n if (needResetTokenFrom && enabledSrcChains.includes(tokenTo.network)) {\n // set the tokenFrom to default token from tokenTo.network\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n tokenTo.network,\n \"swap\"\n );\n // make sure it's not the same as tokenTo\n const newTokenFrom = areTokensSame(tokenTo, defaultTokenFrom)\n ? defaultTokenTo\n : defaultTokenFrom;\n\n set(swapTokenFromAtom, newTokenFrom);\n tokenFrom = newTokenFrom;\n }\n\n // crosschain? set SwapMode to Delta\n if (tokenFrom.network !== tokenTo.network) {\n // if delta is explicitly disabled, it won't be set\n set(setSwapModeAtom, \"delta\");\n }\n\n // selecting a token from a different chain?\n if (tokenFrom.network !== wagmiConfig.state.chainId) {\n // request wallet chain switch (non-blocking)\n switchChain({\n chainId: tokenFrom.network,\n });\n }\n }\n);\n\nexport const syncSwapTokensAfterChainSwitch = (chainId: SupportedChainId) => {\n const enabledSrcChains = jotaiStore.get(enabledSrcChainsAtom);\n if (!enabledSrcChains.includes(chainId)) return;\n\n const tokenFrom = jotaiStore.get(swapTokenFromAtom);\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(\n chainId,\n \"swap\"\n );\n\n // reassignment for clarity\n const newTokenFrom = defaultTokenFrom;\n\n // update tokenFrom\n jotaiStore.set(swapTokenFromAtom, newTokenFrom);\n\n const tokenTo = jotaiStore.get(swapTokenToAtom);\n\n // toChainId derives from tokenTo.network, if no tokenTo - do nothing\n if (!tokenTo) return;\n\n const crosschainPossible = isCrosschainPossible({\n get: jotaiStore.get,\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 listByChainId: jotaiStore.get(allTokensByChainAtom).listByChainId,\n });\n\n jotaiStore.set(swapTokenToAtom, maybeAcrossToken);\n }\n\n jotaiStore.set(setSwapModeAtom, \"delta\");\n } else {\n const selectableDestChains = getSelectableDestChains(\n jotaiStore.get,\n newTokenFrom.network\n );\n if (selectableDestChains.includes(chainId)) {\n // can do single-chain on the new chain, set defaults\n jotaiStore.set(swapTokenToAtom, defaultTokenTo);\n } else {\n // avoid complexity and reset tokenTo\n jotaiStore.set(swapTokenToAtom, undefined);\n }\n }\n};\n\nfunction isCrosschainPossible({\n get,\n chainIdFrom,\n chainIdTo,\n}: {\n get: Getter;\n chainIdFrom: SupportedChainId;\n chainIdTo: SupportedChainId;\n}): boolean {\n if (!deltaEnabledOnAPI[chainIdFrom]) return false;\n\n if (!isAcrossAvailable({ chainIdFrom, chainIdTo })) return false;\n\n const tradeMode = get(tradeModeAtom);\n if (tradeMode !== \"swap\") return false;\n\n const deltaEnabledInSettings = get(deltaParamAtom);\n if (!deltaEnabledInSettings) return false;\n\n const { enableDelta, enableCrossChain } = get(widgetConfigAtom);\n if (!enableDelta || !enableCrossChain) return false;\n\n const enabledSrcChains = get(enabledSrcChainsAtom);\n if (!enabledSrcChains.includes(chainIdFrom)) return false;\n\n const selectableDestChains = getSelectableDestChains(get, chainIdFrom);\n if (!selectableDestChains.includes(chainIdTo)) return false;\n\n return true;\n}\n"],"names":["switchSwapTokensAtom","atom","get","set","tokenFrom","swapTokenFromAtom","tokenTo","swapTokenToAtom","enabledSrcChains","enabledSrcChainsAtom","includes","network","switchChain","chainId","newTokenFrom","newTokenTo","crosschainPossible","isCrosschainPossible","chainIdFrom","chainIdTo","newTokenToIsFromAcross","isTokenFromAcross","token","fromChainId","toChainId","areTokensSame","maybeAcrossToken","findFirstTokenFromAcross","listByChainId","allTokensByChainAtom","defaultTokenFrom","defaultTokenTo","pickDefaultTokenPair","selectSwapTokenFromAtom","wagmiConfig","state","isTokenToFromAcross","selectSwapTokenToAtom","selectableDestChains","getSelectableDestChains","newTokenToNetwork","fromDefaults","wasCrosschain","needResetTokenFrom","setSwapModeAtom","syncSwapTokensAfterChainSwitch","jotaiStore","undefined","deltaEnabledOnAPI","isAcrossAvailable","tradeMode","tradeModeAtom","deltaEnabledInSettings","deltaParamAtom","enableDelta","enableCrossChain","widgetConfigAtom"],"mappings":"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"}
|