@velora-dex/widget 0.2.3 → 0.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/dist/components/widget/DexesList/DexItem.d.ts.map +1 -1
  2. package/dist/components/widget/DexesList/DexItem.js +57 -62
  3. package/dist/components/widget/DexesList/DexItem.js.map +1 -1
  4. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/tokens.js +6 -6
  5. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/tokens.js.map +1 -1
  6. package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.d.ts.map +1 -1
  7. package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js +0 -5
  8. package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js.map +1 -1
  9. package/dist/components/widget/TradeOverview/TradeComplete/utils.d.ts.map +1 -1
  10. package/dist/components/widget/TradeOverview/TradeComplete/utils.js +4 -2
  11. package/dist/components/widget/TradeOverview/TradeComplete/utils.js.map +1 -1
  12. package/dist/components/widget/WrapEth/hooks/useWrapEthProps.d.ts.map +1 -1
  13. package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js +46 -34
  14. package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js.map +1 -1
  15. package/dist/configurator/Configurator.d.ts.map +1 -1
  16. package/dist/core/Updaters.d.ts.map +1 -1
  17. package/dist/core/Updaters.js +2 -0
  18. package/dist/core/Updaters.js.map +1 -1
  19. package/dist/core/inputs/hooks/useTokenFromInputProps.d.ts.map +1 -1
  20. package/dist/core/inputs/hooks/useTokenFromInputProps.js +25 -16
  21. package/dist/core/inputs/hooks/useTokenFromInputProps.js.map +1 -1
  22. package/dist/core/inputs/hooks/useTokenToInputProps.d.ts.map +1 -1
  23. package/dist/core/inputs/hooks/useTokenToInputProps.js +9 -12
  24. package/dist/core/inputs/hooks/useTokenToInputProps.js.map +1 -1
  25. package/dist/core/inputs/state/common.d.ts +2 -2
  26. package/dist/core/inputs/state/selectedTokenActionsAtom.d.ts.map +1 -1
  27. package/dist/core/inputs/state/selectedTokenActionsAtom.js +34 -25
  28. package/dist/core/inputs/state/selectedTokenActionsAtom.js.map +1 -1
  29. package/dist/core/inputs/state/selectedTokenAtom.d.ts +2 -2
  30. package/dist/core/inputs/state/selectedTokenAtom.d.ts.map +1 -1
  31. package/dist/core/inputs/state/selectedTokenAtom.js +9 -2
  32. package/dist/core/inputs/state/selectedTokenAtom.js.map +1 -1
  33. package/dist/core/inputs/state/types.d.ts.map +1 -1
  34. package/dist/core/limit/useLimitRate.js +3 -1
  35. package/dist/core/limit/useLimitRate.js.map +1 -1
  36. package/dist/core/state/widgetEventsAtom.d.ts.map +1 -1
  37. package/dist/core/state/widgetEventsAtom.js +4 -4
  38. package/dist/core/state/widgetEventsAtom.js.map +1 -1
  39. package/dist/core/swapDetails/maxToPay.d.ts +11 -0
  40. package/dist/core/swapDetails/maxToPay.d.ts.map +1 -0
  41. package/dist/core/swapDetails/maxToPay.js +41 -0
  42. package/dist/core/swapDetails/maxToPay.js.map +1 -0
  43. package/dist/core/swapDetails/useSwapDetailsListProps.d.ts.map +1 -1
  44. package/dist/core/swapDetails/useSwapDetailsListProps.js +9 -2
  45. package/dist/core/swapDetails/useSwapDetailsListProps.js.map +1 -1
  46. package/dist/core/swapDetails/youGet.d.ts.map +1 -1
  47. package/dist/core/swapDetails/youGet.js.map +1 -1
  48. package/dist/events/effects/price.js +3 -3
  49. package/dist/events/effects/price.js.map +1 -1
  50. package/dist/events/effects/swapMode.js +2 -2
  51. package/dist/events/effects/swapMode.js.map +1 -1
  52. package/dist/events/hooks/useOnPriceUpdates.d.ts +2 -0
  53. package/dist/events/hooks/useOnPriceUpdates.d.ts.map +1 -0
  54. package/dist/events/hooks/useOnPriceUpdates.js +104 -0
  55. package/dist/events/hooks/useOnPriceUpdates.js.map +1 -0
  56. package/dist/events/types/priceChange.d.ts +12 -4
  57. package/dist/events/types/priceChange.d.ts.map +1 -1
  58. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts +33 -4
  59. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts.map +1 -1
  60. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js +98 -29
  61. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
  62. package/dist/hooks/swap/prices/delta/queries/utils.d.ts +3 -0
  63. package/dist/hooks/swap/prices/delta/queries/utils.d.ts.map +1 -0
  64. package/dist/hooks/swap/prices/delta/queries/utils.js +9 -0
  65. package/dist/hooks/swap/prices/delta/queries/utils.js.map +1 -0
  66. package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.d.ts +35 -2
  67. package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.d.ts.map +1 -1
  68. package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js +102 -98
  69. package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js.map +1 -1
  70. package/dist/hooks/swap/prices/useSwapPrices.d.ts +8 -0
  71. package/dist/hooks/swap/prices/useSwapPrices.d.ts.map +1 -1
  72. package/dist/hooks/swap/prices/useSwapPrices.js +234 -99
  73. package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
  74. package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
  75. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +13 -20
  76. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
  77. package/dist/hooks/swap/tradeFlow/useMarketFlow.js +1 -1
  78. package/dist/hooks/swap/tradeFlow/useMarketFlow.js.map +1 -1
  79. package/dist/hooks/useCachedQueryError.d.ts +3 -0
  80. package/dist/hooks/useCachedQueryError.d.ts.map +1 -0
  81. package/dist/hooks/useCachedQueryError.js +11 -0
  82. package/dist/hooks/useCachedQueryError.js.map +1 -0
  83. package/dist/index.d.ts +2 -1
  84. package/dist/index.d.ts.map +1 -1
  85. package/dist/lib/web3/privy/config.js +1 -1
  86. package/dist/lib/web3/wagmi/config.js +1 -1
  87. package/dist/styles.css +1 -1
  88. package/dist/tokens/overrides.d.ts +13 -2
  89. package/dist/tokens/overrides.d.ts.map +1 -1
  90. package/dist/tokens/overrides.js +71 -3
  91. package/dist/tokens/overrides.js.map +1 -1
  92. package/dist/tokens/types.d.ts +4 -0
  93. package/dist/tokens/types.d.ts.map +1 -1
  94. package/package.json +1 -1
@@ -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('../../..').Token;
24
- tokenTo: import('../../..').Token | undefined;
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;;CA4E/B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;CAoEnC,CAAC;AAEF,eAAO,MAAM,qBAAqB;;CAuGjC,CAAC;AAEF,eAAO,MAAM,8BAA8B,GAAI,SAAS,gBAAgB,SAiEvE,CAAC"}
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
- set(swapTokenFromAtom, tokenTo);
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: tokenTo.network,
34
+ chainIdFrom: newTokenFrom.network,
34
35
  // considering tokenFrom in to position, is crosschain possible?
35
- chainIdTo: tokenFrom.network
36
+ chainIdTo: newTokenTo.network
36
37
  });
37
38
  if (crosschainPossible) {
38
- const tokenFromIsFromAcross = isTokenFromAcross({
39
- // is the previous tokenFrom an Across token?
40
- token: tokenFrom,
41
- // considering tokenTo is now in from position
42
- fromChainId: tokenTo.network,
43
- // and tokenFrom will be in to position
44
- toChainId: tokenFrom.network
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 (tokenFromIsFromAcross && !areTokensSame(tokenFrom, tokenTo)) {
47
- set(swapTokenToAtom, tokenFrom);
48
- } else {
47
+ if (newTokenToIsFromAcross && !areTokensSame(newTokenTo, newTokenFrom)) ; else {
49
48
  const maybeAcrossToken = findFirstTokenFromAcross({
50
- // tokenTo is now in from position
51
- fromChainId: tokenTo.network,
52
- // considering tokenFrom will be in to position
53
- toChainId: tokenFrom.network,
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
- set(swapTokenToAtom, maybeAcrossToken);
55
+ newTokenTo = maybeAcrossToken;
57
56
  }
58
57
  } else {
59
- const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(tokenTo.network, "swap");
60
- if (tokenTo.network !== tokenFrom.network) {
61
- const newTokenTo = areTokensSame(tokenFrom, defaultTokenTo) ? defaultTokenFrom : defaultTokenTo;
62
- set(swapTokenToAtom, newTokenTo);
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
- const newTokenTo = areTokensSame(tokenFrom, defaultTokenTo) ? tokenFrom : defaultTokenFrom;
65
- set(swapTokenToAtom, newTokenTo);
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":";;;;;;;;;;;;;;;;;AAyBO,MAAMA,oBAAAA,GAAuBC,IAAAA,CAAK,IAAA,EAAM,CAACC,KAAKC,GAAAA,KAAQ;AAC3D,EAAA,MAAMC,OAAAA,GAAUF,IAAIG,eAAe,CAAA;AAEnC,EAAA,IAAI,CAACD,OAAAA,EAAS;AAEd,EAAA,MAAME,gBAAAA,GAAmBJ,IAAIK,oBAAoB,CAAA;AACjD,EAAA,IAAI,CAACD,gBAAAA,CAAiBE,QAAAA,CAASJ,OAAAA,CAAQK,OAAO,CAAA,EAAG;AAEjD,EAAA,MAAMC,SAAAA,GAAYR,IAAIS,iBAAiB,CAAA;AAGvC,EAAA,IAAID,SAAAA,CAAUD,OAAAA,KAAYL,OAAAA,CAAQK,OAAAA,EAAS;AAEzCG,IAAAA,WAAAA,CAAY;AAAA,MACVC,SAAST,OAAAA,CAAQK;AAAAA,KAClB,CAAA;AAAA,EACH;AAGAN,EAAAA,GAAAA,CAAIQ,mBAAmBP,OAAO,CAAA;AAE9B,EAAA,MAAMU,qBAAqBC,oBAAAA,CAAqB;AAAA,IAC9Cb,GAAAA;AAAAA;AAAAA,IAEAc,aAAaZ,OAAAA,CAAQK,OAAAA;AAAAA;AAAAA,IAErBQ,WAAWP,SAAAA,CAAUD;AAAAA,GACtB,CAAA;AAED,EAAA,IAAIK,kBAAAA,EAAoB;AACtB,IAAA,MAAMI,wBAAwBC,iBAAAA,CAAkB;AAAA;AAAA,MAE9CC,KAAAA,EAAOV,SAAAA;AAAAA;AAAAA,MAEPW,aAAajB,OAAAA,CAAQK,OAAAA;AAAAA;AAAAA,MAErBa,WAAWZ,SAAAA,CAAUD;AAAAA,KACtB,CAAA;AAED,IAAA,IAAIS,qBAAAA,IAAyB,CAACK,aAAAA,CAAcb,SAAAA,EAAWN,OAAO,CAAA,EAAG;AAE/DD,MAAAA,GAAAA,CAAIE,iBAAiBK,SAAS,CAAA;AAAA,IAChC,CAAA,MAAO;AAGL,MAAA,MAAMc,mBAAmBC,wBAAAA,CAAyB;AAAA;AAAA,QAEhDJ,aAAajB,OAAAA,CAAQK,OAAAA;AAAAA;AAAAA,QAErBa,WAAWZ,SAAAA,CAAUD,OAAAA;AAAAA,QACrBiB,aAAAA,EAAexB,GAAAA,CAAIyB,oBAAoB,CAAA,CAAED;AAAAA,OAC1C,CAAA;AACDvB,MAAAA,GAAAA,CAAIE,iBAAiBmB,gBAAgB,CAAA;AAAA,IACvC;AAAA,EACF,CAAA,MAAO;AACL,IAAA,MAAM,CAACI,gBAAAA,EAAkBC,cAAc,IAAIC,oBAAAA,CACzC1B,OAAAA,CAAQK,SACR,MACF,CAAA;AAEA,IAAA,IAAIL,OAAAA,CAAQK,OAAAA,KAAYC,SAAAA,CAAUD,OAAAA,EAAS;AAEzC,MAAA,MAAMsB,UAAAA,GAAaR,aAAAA,CAAcb,SAAAA,EAAWmB,cAAc,IACtDD,gBAAAA,GACAC,cAAAA;AAEJ1B,MAAAA,GAAAA,CAAIE,iBAAiB0B,UAAU,CAAA;AAAA,IACjC,CAAA,MAAO;AAEL,MAAA,MAAMA,UAAAA,GAAaR,aAAAA,CAAcb,SAAAA,EAAWmB,cAAc,IACtDnB,SAAAA,GACAkB,gBAAAA;AAEJzB,MAAAA,GAAAA,CAAIE,iBAAiB0B,UAAU,CAAA;AAAA,IACjC;AAAA,EACF;AACF,CAAC;AAEM,MAAMC,0BAA0B/B,IAAAA,CACrC,IAAA,EACA,OAAOC,GAAAA,EAAKC,KAAK8B,YAAAA,KAAwB;AACvC,EAAA,MAAM3B,gBAAAA,GAAmBJ,IAAIK,oBAAoB,CAAA;AACjD,EAAA,IAAI,CAACD,gBAAAA,CAAiBE,QAAAA,CAASyB,YAAAA,CAAaxB,OAAO,CAAA,EAAG;AAEtD,EAAA,MAAMC,SAAAA,GAAYR,IAAIS,iBAAiB,CAAA;AACvC,EAAA,MAAMP,OAAAA,GAAUF,IAAIG,eAAe,CAAA;AAGnC,EAAA,IAAI4B,YAAAA,CAAaxB,OAAAA,KAAYyB,WAAAA,CAAYC,KAAAA,CAAMtB,OAAAA,EAAS;AAEtDD,IAAAA,WAAAA,CAAY;AAAA,MACVC,SAASoB,YAAAA,CAAaxB;AAAAA,KACvB,CAAA;AAAA,EACH;AAGAN,EAAAA,GAAAA,CAAIQ,mBAAmBsB,YAAY,CAAA;AAEnC,EAAA,IAAI,CAAC7B,OAAAA,EAAS;AAEd,EAAA,MAAMU,qBAAqBC,oBAAAA,CAAqB;AAAA,IAC9Cb,GAAAA;AAAAA,IACAc,aAAaiB,YAAAA,CAAaxB,OAAAA;AAAAA,IAC1BQ,WAAWb,OAAAA,CAAQK;AAAAA,GACpB,CAAA;AAED,EAAA,IAAIK,kBAAAA,EAAoB;AACtB,IAAA,MAAMsB,sBAAsBjB,iBAAAA,CAAkB;AAAA,MAC5CC,KAAAA,EAAOhB,OAAAA;AAAAA,MACPiB,aAAaY,YAAAA,CAAaxB,OAAAA;AAAAA,MAC1Ba,WAAWlB,OAAAA,CAAQK;AAAAA,KACpB,CAAA;AAED,IAAA,IAAI,CAAC2B,mBAAAA,EAAqB;AAGxB,MAAA,MAAMZ,mBAAmBC,wBAAAA,CAAyB;AAAA,QAChDJ,aAAaY,YAAAA,CAAaxB,OAAAA;AAAAA,QAC1Ba,WAAWlB,OAAAA,CAAQK,OAAAA;AAAAA,QACnBiB,aAAAA,EAAexB,GAAAA,CAAIyB,oBAAoB,CAAA,CAAED;AAAAA,OAC1C,CAAA;AAEDvB,MAAAA,GAAAA,CAAIE,iBAAiBmB,gBAAgB,CAAA;AAAA,IACvC;AAAA,EACF,CAAA,MAAO;AACL,IAAA,MAAM,CAACI,gBAAAA,EAAkBC,cAAc,IAAIC,oBAAAA,CACzCG,YAAAA,CAAaxB,SACb,MACF,CAAA;AAIA,IAAA,IAAIwB,YAAAA,CAAaxB,OAAAA,KAAYL,OAAAA,CAAQK,OAAAA,EAAS;AAC5C,MAAA,MAAMsB,UAAAA,GAAaR,aAAAA,CAAcU,YAAAA,EAAcJ,cAAc,IACzDD,gBAAAA,GACAC,cAAAA;AACJ1B,MAAAA,GAAAA,CAAIE,iBAAiB0B,UAAU,CAAA;AAAA,IACjC,CAAA,MAAO;AAEL,MAAA,IAAIR,aAAAA,CAAcU,YAAAA,EAAc7B,OAAO,CAAA,EAAG;AACxCD,QAAAA,GAAAA,CAAIE,iBAAiBK,SAAS,CAAA;AAAA,MAChC;AAAA,IAEF;AAAA,EACF;AACF,CACF;AAEO,MAAM2B,wBAAwBpC,IAAAA,CACnC,IAAA,EACA,OAAOC,GAAAA,EAAKC,KAAK4B,UAAAA,KAAsB;AACrC,EAAA,IAAIrB,SAAAA,GAAYR,IAAIS,iBAAiB,CAAA;AAErC,EAAA,MAAM2B,oBAAAA,GAAuBC,uBAAAA,CAC3BrC,GAAAA,EACAQ,SAAAA,CAAUD,OACZ,CAAA;AACA,EAAA,IAAI,CAAC6B,oBAAAA,CAAqB9B,QAAAA,CAASuB,UAAAA,CAAWtB,OAAO,CAAA,EAAG;AAExD,EAAA,MAAM+B,oBAAoBT,UAAAA,CAAWtB,OAAAA;AAErC,EAAA,IAAIL,OAAAA,GAAUF,IAAIG,eAAe,CAAA;AAEjC,EAAA,IAAIkB,aAAAA,CAAcQ,UAAAA,EAAYrB,SAAS,CAAA,EAAG;AACxC,IAAA,MAAM,CAACkB,gBAAAA,EAAkBC,cAAc,CAAA,GAAIC,oBAAAA,CACzCU,mBACA,MACF,CAAA;AAEA,IAAA,MAAMC,YAAAA,GAAelB,aAAAA,CAAcb,SAAAA,EAAWkB,gBAAgB,IAC1DC,cAAAA,GACAD,gBAAAA;AAGJ,IAAA,MAAMc,aAAAA,GAAgBtC,OAAAA,IAAWM,SAAAA,CAAUD,OAAAA,KAAYL,OAAAA,EAASK,OAAAA;AAEhE,IAAA,MAAMwB,YAAAA,GAAeS,aAAAA;AAAAA;AAAAA;AAAAA;AAAAA,MAIjBD;AAAAA;AAAAA;AAAAA,MAECrC,OAAAA,IAAWqC;AAAAA,KAAAA;AAEhBtC,IAAAA,GAAAA,CAAIQ,mBAAmBsB,YAAY,CAAA;AACnCvB,IAAAA,SAAAA,GAAYuB,YAAAA;AAAAA,EACd;AAEA9B,EAAAA,GAAAA,CAAIE,iBAAiB0B,UAAU,CAAA;AAC/B3B,EAAAA,OAAAA,GAAU2B,UAAAA;AAKV,EAAA,IAAIY,kBAAAA,GAAqB,KAAA;AAEzB,EAAA,MAAM7B,qBAAqBC,oBAAAA,CAAqB;AAAA,IAC9Cb,GAAAA;AAAAA,IACAc,aAAaN,SAAAA,CAAUD,OAAAA;AAAAA,IACvBQ,WAAWb,OAAAA,CAAQK;AAAAA,GACpB,CAAA;AAED,EAAA,IAAIK,kBAAAA,EAAoB;AACtB,IAAA,MAAMsB,sBAAsBjB,iBAAAA,CAAkB;AAAA,MAC5CC,KAAAA,EAAOhB,OAAAA;AAAAA,MACPiB,aAAaX,SAAAA,CAAUD,OAAAA;AAAAA,MACvBa,WAAWlB,OAAAA,CAAQK;AAAAA,KACpB,CAAA;AAED,IAAA,IAAI,CAAC2B,mBAAAA,EAAqB;AAExBO,MAAAA,kBAAAA,GAAqB,IAAA;AAAA,IACvB;AAAA,EACF;AAEA,EAAA,IAAIjC,SAAAA,CAAUD,OAAAA,KAAYL,OAAAA,CAAQK,OAAAA,IAAW,CAACK,kBAAAA,EAAoB;AAEhE6B,IAAAA,kBAAAA,GAAqB,IAAA;AAAA,EACvB;AAEA,EAAA,MAAMrC,gBAAAA,GAAmBJ,IAAIK,oBAAoB,CAAA;AAEjD,EAAA,IAAIoC,kBAAAA,IAAsBrC,gBAAAA,CAAiBE,QAAAA,CAASJ,OAAAA,CAAQK,OAAO,CAAA,EAAG;AAEpE,IAAA,MAAM,CAACmB,gBAAAA,EAAkBC,cAAc,IAAIC,oBAAAA,CACzC1B,OAAAA,CAAQK,SACR,MACF,CAAA;AAEA,IAAA,MAAMwB,YAAAA,GAAeV,aAAAA,CAAcnB,OAAAA,EAASwB,gBAAgB,IACxDC,cAAAA,GACAD,gBAAAA;AAEJzB,IAAAA,GAAAA,CAAIQ,mBAAmBsB,YAAY,CAAA;AACnCvB,IAAAA,SAAAA,GAAYuB,YAAAA;AAAAA,EACd;AAGA,EAAA,IAAIvB,SAAAA,CAAUD,OAAAA,KAAYL,OAAAA,CAAQK,OAAAA,EAAS;AAEzCN,IAAAA,GAAAA,CAAIyC,iBAAiB,OAAO,CAAA;AAAA,EAC9B;AAGA,EAAA,IAAIlC,SAAAA,CAAUD,OAAAA,KAAYyB,WAAAA,CAAYC,KAAAA,CAAMtB,OAAAA,EAAS;AAEnDD,IAAAA,WAAAA,CAAY;AAAA,MACVC,SAASH,SAAAA,CAAUD;AAAAA,KACpB,CAAA;AAAA,EACH;AACF,CACF;AAEO,MAAMoC,8BAAAA,GAAiCA,CAAChC,OAAAA,KAA8B;AAC3E,EAAA,MAAMP,gBAAAA,GAAmBwC,UAAAA,CAAW5C,GAAAA,CAAIK,oBAAoB,CAAA;AAC5D,EAAA,IAAI,CAACD,gBAAAA,CAAiBE,QAAAA,CAASK,OAAO,CAAA,EAAG;AAEzC,EAAA,MAAMH,SAAAA,GAAYoC,UAAAA,CAAW5C,GAAAA,CAAIS,iBAAiB,CAAA;AAGlD,EAAA,IAAID,SAAAA,CAAUD,YAAYI,OAAAA,EAAS;AAGnC,EAAA,MAAM,CAACe,gBAAAA,EAAkBC,cAAc,CAAA,GAAIC,oBAAAA,CACzCjB,SACA,MACF,CAAA;AAGA,EAAA,MAAMoB,YAAAA,GAAeL,gBAAAA;AAGrBkB,EAAAA,UAAAA,CAAW3C,GAAAA,CAAIQ,mBAAmBsB,YAAY,CAAA;AAE9C,EAAA,MAAM7B,OAAAA,GAAU0C,UAAAA,CAAW5C,GAAAA,CAAIG,eAAe,CAAA;AAG9C,EAAA,IAAI,CAACD,OAAAA,EAAS;AAEd,EAAA,MAAMU,qBAAqBC,oBAAAA,CAAqB;AAAA,IAC9Cb,KAAK4C,UAAAA,CAAW5C,GAAAA;AAAAA,IAChBc,WAAAA,EAAaH,OAAAA;AAAAA,IACbI,WAAWb,OAAAA,CAAQK;AAAAA,GACpB,CAAA;AAED,EAAA,IAAIK,kBAAAA,EAAoB;AACtB,IAAA,MAAMsB,sBAAsBjB,iBAAAA,CAAkB;AAAA,MAC5CC,KAAAA,EAAOhB,OAAAA;AAAAA,MACPiB,WAAAA,EAAaR,OAAAA;AAAAA,MACbS,WAAWlB,OAAAA,CAAQK;AAAAA,KACpB,CAAA;AAED,IAAA,IAAI,CAAC2B,mBAAAA,EAAqB;AAGxB,MAAA,MAAMZ,mBAAmBC,wBAAAA,CAAyB;AAAA,QAChDJ,WAAAA,EAAaR,OAAAA;AAAAA,QACbS,WAAWlB,OAAAA,CAAQK,OAAAA;AAAAA,QACnBiB,aAAAA,EAAeoB,UAAAA,CAAW5C,GAAAA,CAAIyB,oBAAoB,CAAA,CAAED;AAAAA,OACrD,CAAA;AAEDoB,MAAAA,UAAAA,CAAW3C,GAAAA,CAAIE,iBAAiBmB,gBAAgB,CAAA;AAAA,IAClD;AAEAsB,IAAAA,UAAAA,CAAW3C,GAAAA,CAAIyC,iBAAiB,OAAO,CAAA;AAAA,EACzC,CAAA,MAAO;AACL,IAAA,MAAMN,oBAAAA,GAAuBC,uBAAAA,CAC3BO,UAAAA,CAAW5C,GAAAA,EACX+B,aAAaxB,OACf,CAAA;AACA,IAAA,IAAI6B,oBAAAA,CAAqB9B,QAAAA,CAASK,OAAO,CAAA,EAAG;AAE1CiC,MAAAA,UAAAA,CAAW3C,GAAAA,CAAIE,iBAAiBwB,cAAc,CAAA;AAAA,IAChD,CAAA,MAAO;AAELiB,MAAAA,UAAAA,CAAW3C,GAAAA,CAAIE,iBAAiB0C,MAAS,CAAA;AAAA,IAC3C;AAAA,EACF;AACF;AAEA,SAAShC,oBAAAA,CAAqB;AAAA,EAC5Bb,GAAAA;AAAAA,EACAc,WAAAA;AAAAA,EACAC;AAKF,CAAA,EAAY;AACV,EAAA,IAAI,CAAC+B,iBAAAA,CAAkBhC,WAAW,CAAA,EAAG,OAAO,KAAA;AAE5C,EAAA,IAAI,CAACiC,iBAAAA,CAAkB;AAAA,IAAEjC,WAAAA;AAAAA,IAAaC;AAAAA,GAAW,GAAG,OAAO,KAAA;AAE3D,EAAA,MAAMiC,SAAAA,GAAYhD,IAAIiD,aAAa,CAAA;AACnC,EAAA,IAAID,SAAAA,KAAc,QAAQ,OAAO,KAAA;AAEjC,EAAA,MAAME,sBAAAA,GAAyBlD,IAAImD,cAAc,CAAA;AACjD,EAAA,IAAI,CAACD,wBAAwB,OAAO,KAAA;AAEpC,EAAA,MAAM;AAAA,IAAEE,WAAAA;AAAAA,IAAaC;AAAAA,GAAiB,GAAIrD,IAAIsD,gBAAgB,CAAA;AAC9D,EAAA,IAAI,CAACF,WAAAA,IAAe,CAACC,gBAAAA,EAAkB,OAAO,KAAA;AAE9C,EAAA,MAAMjD,gBAAAA,GAAmBJ,IAAIK,oBAAoB,CAAA;AACjD,EAAA,IAAI,CAACD,gBAAAA,CAAiBE,QAAAA,CAASQ,WAAW,GAAG,OAAO,KAAA;AAEpD,EAAA,MAAMsB,oBAAAA,GAAuBC,uBAAAA,CAAwBrC,GAAAA,EAAKc,WAAW,CAAA;AACrE,EAAA,IAAI,CAACsB,oBAAAA,CAAqB9B,QAAAA,CAASS,SAAS,GAAG,OAAO,KAAA;AAEtD,EAAA,OAAO,IAAA;AACT;;;;"}
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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"}
@@ -1,8 +1,8 @@
1
1
  import { Token } from '../../../tokens/state/types';
2
- export declare const swapTokenFromAtom: import('jotai').PrimitiveAtom<Token> & {
2
+ export declare const swapTokenFromAtom: import('jotai').WritableAtom<Token, [token: Token], void> & {
3
3
  init: Token;
4
4
  };
5
- export declare const swapTokenToAtom: import('jotai').PrimitiveAtom<Token | undefined> & {
5
+ export declare const swapTokenToAtom: import('jotai').WritableAtom<Token | undefined, [token?: Token | undefined], void> & {
6
6
  init: Token | undefined;
7
7
  };
8
8
  export declare const useSwapTokenFrom: () => Token;
@@ -1 +1 @@
1
- {"version":3,"file":"selectedTokenAtom.d.ts","sourceRoot":"","sources":["../../../../src/core/inputs/state/selectedTokenAtom.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAQlD,eAAO,MAAM,iBAAiB;;CAAyB,CAAC;AACxD,eAAO,MAAM,eAAe;;CAAgB,CAAC;AAE7C,eAAO,MAAM,gBAAgB,aAAwC,CAAC;AACtE,eAAO,MAAM,cAAc,yBAAsC,CAAC"}
1
+ {"version":3,"file":"selectedTokenAtom.d.ts","sourceRoot":"","sources":["../../../../src/core/inputs/state/selectedTokenAtom.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAQlD,eAAO,MAAM,iBAAiB;;CAO7B,CAAC;AACF,eAAO,MAAM,eAAe;;CAO3B,CAAC;AAEF,eAAO,MAAM,gBAAgB,aAAwC,CAAC;AACtE,eAAO,MAAM,cAAc,yBAAsC,CAAC"}
@@ -1,10 +1,17 @@
1
+ import { currentSwapInputAtom } from '../../state/currentSwapInputAtom.js';
1
2
  import { wagmiConfig } from '../../../lib/web3/wagmi/config.js';
2
3
  import { pickDefaultTokenPair } from '../../../tokens/defaultTokens.js';
3
4
  import { atom, useAtomValue } from 'jotai';
4
5
 
5
6
  const [defaultTokenFrom] = pickDefaultTokenPair(wagmiConfig.state.chainId, "swap");
6
- const swapTokenFromAtom = atom(defaultTokenFrom);
7
- const swapTokenToAtom = atom();
7
+ const swapTokenFromAtom = atom(defaultTokenFrom, (_get, set, token) => {
8
+ set(swapTokenFromAtom, token);
9
+ set(currentSwapInputAtom, "from");
10
+ });
11
+ const swapTokenToAtom = atom(void 0, (_get, set, token) => {
12
+ set(swapTokenToAtom, token);
13
+ set(currentSwapInputAtom, "from");
14
+ });
8
15
  const useSwapTokenFrom = () => {
9
16
  return useAtomValue(swapTokenFromAtom);
10
17
  };
@@ -1 +1 @@
1
- {"version":3,"file":"selectedTokenAtom.js","sources":["../../../../src/core/inputs/state/selectedTokenAtom.ts"],"sourcesContent":["import { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport { pickDefaultTokenPair } from \"@/tokens/defaultTokens\";\nimport { type Token } from \"@/tokens/state/types\";\nimport { atom, useAtomValue } from \"jotai\";\n\nconst [defaultTokenFrom] = pickDefaultTokenPair(\n wagmiConfig.state.chainId,\n \"swap\"\n);\n\nexport const swapTokenFromAtom = atom(defaultTokenFrom);\nexport const swapTokenToAtom = atom<Token>();\n\nexport const useSwapTokenFrom = () => useAtomValue(swapTokenFromAtom);\nexport const useSwapTokenTo = () => useAtomValue(swapTokenToAtom);\n"],"names":["defaultTokenFrom","pickDefaultTokenPair","wagmiConfig","state","chainId","swapTokenFromAtom","atom","swapTokenToAtom","useSwapTokenFrom","useAtomValue","useSwapTokenTo"],"mappings":";;;;AAKA,MAAM,CAACA,gBAAgB,CAAA,GAAIC,qBACzBC,WAAAA,CAAYC,KAAAA,CAAMC,SAClB,MACF,CAAA;AAEO,MAAMC,iBAAAA,GAAoBC,KAAKN,gBAAgB;AAC/C,MAAMO,kBAAkBD,IAAAA;AAExB,MAAME,mBAAmBA,MAAA;AAAA,EAAA,OAAMC,aAAaJ,iBAAiB,CAAA;AAAC;AAC9D,MAAMK,iBAAiBA,MAAA;AAAA,EAAA,OAAMD,aAAaF,eAAe,CAAA;AAAC;;;;"}
1
+ {"version":3,"file":"selectedTokenAtom.js","sources":["../../../../src/core/inputs/state/selectedTokenAtom.ts"],"sourcesContent":["import { currentSwapInputAtom } from \"@/core/state/currentSwapInputAtom\";\nimport { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport { pickDefaultTokenPair } from \"@/tokens/defaultTokens\";\nimport { type Token } from \"@/tokens/state/types\";\nimport { atom, useAtomValue } from \"jotai\";\n\nconst [defaultTokenFrom] = pickDefaultTokenPair(\n wagmiConfig.state.chainId,\n \"swap\"\n);\n\nexport const swapTokenFromAtom = atom<Token, [token: Token], void>(\n defaultTokenFrom,\n (_get, set, token) => {\n set(swapTokenFromAtom, token);\n // whenever selected Token changes, reset the input to \"from\" and therefore swapSide=SELL\n set(currentSwapInputAtom, \"from\");\n }\n);\nexport const swapTokenToAtom = atom<Token | undefined, [token?: Token], void>(\n undefined,\n (_get, set, token) => {\n set(swapTokenToAtom, token);\n // whenever selected Token changes, reset the input to \"from\" and therefore swapSide=SELL\n set(currentSwapInputAtom, \"from\");\n }\n);\n\nexport const useSwapTokenFrom = () => useAtomValue(swapTokenFromAtom);\nexport const useSwapTokenTo = () => useAtomValue(swapTokenToAtom);\n"],"names":["defaultTokenFrom","pickDefaultTokenPair","wagmiConfig","state","chainId","swapTokenFromAtom","atom","_get","set","token","currentSwapInputAtom","swapTokenToAtom","undefined","useSwapTokenFrom","useAtomValue","useSwapTokenTo"],"mappings":";;;;;AAMA,MAAM,CAACA,gBAAgB,CAAA,GAAIC,qBACzBC,WAAAA,CAAYC,KAAAA,CAAMC,SAClB,MACF,CAAA;AAEO,MAAMC,oBAAoBC,IAAAA,CAC/BN,gBAAAA,EACA,CAACO,IAAAA,EAAMC,KAAKC,KAAAA,KAAU;AACpBD,EAAAA,GAAAA,CAAIH,mBAAmBI,KAAK,CAAA;AAE5BD,EAAAA,GAAAA,CAAIE,sBAAsB,MAAM,CAAA;AAClC,CACF;AACO,MAAMC,kBAAkBL,IAAAA,CAC7BM,MAAAA,EACA,CAACL,IAAAA,EAAMC,KAAKC,KAAAA,KAAU;AACpBD,EAAAA,GAAAA,CAAIG,iBAAiBF,KAAK,CAAA;AAE1BD,EAAAA,GAAAA,CAAIE,sBAAsB,MAAM,CAAA;AAClC,CACF;AAEO,MAAMG,mBAAmBA,MAAA;AAAA,EAAA,OAAMC,aAAaT,iBAAiB,CAAA;AAAC;AAC9D,MAAMU,iBAAiBA,MAAA;AAAA,EAAA,OAAMD,aAAaH,eAAe,CAAA;AAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/inputs/state/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpC,MAAM,MAAM,cAAc,GAAG;IAC3B,4DAA4D;IAC5D,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iGAAiG;IACjG,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kGAAkG;IAClG,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;CAErB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/inputs/state/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpC,MAAM,MAAM,cAAc,GAAG;IAC3B,4DAA4D;IAC5D,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iGAAiG;IACjG,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kGAAkG;IAClG,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;CAGrB,CAAC"}
@@ -76,7 +76,9 @@ const useSwapPriceForLimit = (t0) => {
76
76
  } else {
77
77
  t6 = $[11];
78
78
  }
79
- const marketPriceQuery = useMarketPriceQuery(t6);
79
+ const {
80
+ result: marketPriceQuery
81
+ } = useMarketPriceQuery(t6);
80
82
  let t7;
81
83
  if ($[12] !== marketPriceQuery.data || $[13] !== marketPriceQuery.isLoading) {
82
84
  t7 = {
@@ -1 +1 @@
1
- {"version":3,"file":"useLimitRate.js","sources":["../../../src/core/limit/useLimitRate.ts"],"sourcesContent":["import { useMarketPriceQuery } from \"@/hooks/swap/prices/market/queries/useMarketPriceQuery\";\nimport {\n usePricesParams,\n type FetchPriceParams,\n} from \"@/hooks/swap/prices/usePricesParams\";\nimport { useTokenPrice } from \"@/hooks/tokens/prices/useTokenPrices\";\nimport Big from \"big.js\";\nimport { parseUnits, formatUnits } from \"viem\";\nimport { useWidgetTokens } from \"../inputs/state/common\";\nimport type { UseLimitRateResult } from \"./types\";\nimport { useAtomValue } from \"jotai\";\nimport { tradeModeToTokenAtoms } from \"../inputs/state/common\";\nimport { useMemo } from \"react\";\n\n// 5 min, so as not to change limit price in front of the user too often\nconst PRICE_REFETCH_INTERVAL = 60_000 * 5;\n\nconst useSwapPriceForLimit = ({\n enabled = true,\n refetchInterval = PRICE_REFETCH_INTERVAL,\n tradeMode,\n}: {\n enabled?: boolean;\n refetchInterval?: number;\n tradeMode: \"limit\" | \"otc\";\n}) => {\n const tokenFrom = useAtomValue(\n tradeModeToTokenAtoms[tradeMode].tokenFromAtom\n );\n const { priceParams, chainId } = usePricesParams(tradeMode);\n\n const priceParamsWithAmount: FetchPriceParams = {\n ...priceParams,\n amount: parseUnits(\"1\", tokenFrom.decimals).toString(),\n side: \"SELL\" as const,\n ignoreBadUsdPrice: true,\n };\n\n // @TODO: delta price return quote for less tokens than market price with srcAmount=1,\n // but maybe we should increase srcAmount and use delta prices instead, need to test.\n const marketPriceQuery = useMarketPriceQuery({\n priceParams: priceParamsWithAmount,\n chainId,\n timeout: 5000,\n query: {\n enabled,\n refetchInterval,\n retry: false,\n refetchOnWindowFocus: false,\n refetchOnMount: false,\n },\n });\n\n return {\n price: marketPriceQuery.data,\n isLoading: marketPriceQuery.isLoading,\n };\n};\n\n// define how many tokenTo units one tokenFrom (tokenTo if reversed) unit costs, eg 1 ETH = 3000 USDC\nexport const useLimitRate = (\n tradeMode: \"limit\" | \"otc\"\n): UseLimitRateResult => {\n const { tokenFrom, tokenTo } = useWidgetTokens(tradeMode);\n\n const { data: tokenFromPrice, isLoading: isTokenFromPriceLoading } =\n useTokenPrice(tokenFrom, { refetchInterval: PRICE_REFETCH_INTERVAL });\n const { data: tokenToPrice, isLoading: isTokenToPriceLoading } =\n useTokenPrice(tokenTo, { refetchInterval: PRICE_REFETCH_INTERVAL });\n\n const areFiatPricesLoading = isTokenFromPriceLoading || isTokenToPriceLoading;\n\n const fiatPricesAvailable = !!(tokenFromPrice && tokenToPrice);\n const fetchSwapPrice = !fiatPricesAvailable && !areFiatPricesLoading;\n\n const { price: swapPrice, isLoading: isSwapPriceLoading } =\n useSwapPriceForLimit({ enabled: fetchSwapPrice, tradeMode });\n\n const isLoading = areFiatPricesLoading || isSwapPriceLoading;\n\n return useMemo(() => {\n if (!tokenTo) {\n return { isLoading };\n }\n\n let rate: string | undefined = undefined;\n let rateReversed: string | undefined = undefined;\n if (fiatPricesAvailable) {\n rate = Big(tokenFromPrice.price).div(tokenToPrice.price).toFixed();\n rateReversed = Big(tokenToPrice.price)\n .div(tokenFromPrice.price)\n .toFixed();\n } else if (swapPrice) {\n const srcUnits = formatUnits(\n BigInt(swapPrice.srcAmount),\n tokenFrom.decimals\n );\n const destUnits = formatUnits(\n BigInt(swapPrice.destAmount),\n tokenTo.decimals\n );\n\n rate = Big(destUnits).div(srcUnits).toFixed();\n rateReversed = Big(srcUnits).div(destUnits).toFixed();\n }\n\n if (!rate || !rateReversed) {\n return { isLoading };\n }\n\n return {\n rates: { rate, rateReversed },\n isLoading,\n };\n }, [\n fiatPricesAvailable,\n isLoading,\n swapPrice,\n tokenFrom.decimals,\n tokenFromPrice?.price,\n tokenTo,\n tokenToPrice?.price,\n ]);\n};\n"],"names":["PRICE_REFETCH_INTERVAL","useSwapPriceForLimit","t0","$","_c","enabled","t1","refetchInterval","t2","tradeMode","undefined","tokenFrom","useAtomValue","tradeModeToTokenAtoms","tokenFromAtom","priceParams","chainId","usePricesParams","t3","decimals","parseUnits","toString","t4","amount","side","ignoreBadUsdPrice","priceParamsWithAmount","t5","retry","refetchOnWindowFocus","refetchOnMount","t6","timeout","query","marketPriceQuery","useMarketPriceQuery","t7","data","isLoading","price","useLimitRate","tokenTo","useWidgetTokens","tokenFromPrice","isTokenFromPriceLoading","useTokenPrice","tokenToPrice","isTokenToPriceLoading","areFiatPricesLoading","fiatPricesAvailable","fetchSwapPrice","swapPrice","isSwapPriceLoading","useMemo","rate","rateReversed","Big","div","toFixed","srcUnits","formatUnits","BigInt","srcAmount","destUnits","destAmount","rates"],"mappings":"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"}
1
+ {"version":3,"file":"useLimitRate.js","sources":["../../../src/core/limit/useLimitRate.ts"],"sourcesContent":["import { useMarketPriceQuery } from \"@/hooks/swap/prices/market/queries/useMarketPriceQuery\";\nimport {\n usePricesParams,\n type FetchPriceParams,\n} from \"@/hooks/swap/prices/usePricesParams\";\nimport { useTokenPrice } from \"@/hooks/tokens/prices/useTokenPrices\";\nimport Big from \"big.js\";\nimport { parseUnits, formatUnits } from \"viem\";\nimport { useWidgetTokens } from \"../inputs/state/common\";\nimport type { UseLimitRateResult } from \"./types\";\nimport { useAtomValue } from \"jotai\";\nimport { tradeModeToTokenAtoms } from \"../inputs/state/common\";\nimport { useMemo } from \"react\";\n\n// 5 min, so as not to change limit price in front of the user too often\nconst PRICE_REFETCH_INTERVAL = 60_000 * 5;\n\nconst useSwapPriceForLimit = ({\n enabled = true,\n refetchInterval = PRICE_REFETCH_INTERVAL,\n tradeMode,\n}: {\n enabled?: boolean;\n refetchInterval?: number;\n tradeMode: \"limit\" | \"otc\";\n}) => {\n const tokenFrom = useAtomValue(\n tradeModeToTokenAtoms[tradeMode].tokenFromAtom\n );\n const { priceParams, chainId } = usePricesParams(tradeMode);\n\n const priceParamsWithAmount: FetchPriceParams = {\n ...priceParams,\n amount: parseUnits(\"1\", tokenFrom.decimals).toString(),\n side: \"SELL\" as const,\n ignoreBadUsdPrice: true,\n };\n\n // @TODO: delta price return quote for less tokens than market price with srcAmount=1,\n // but maybe we should increase srcAmount and use delta prices instead, need to test.\n const { result: marketPriceQuery } = useMarketPriceQuery({\n priceParams: priceParamsWithAmount,\n chainId,\n timeout: 5000,\n query: {\n enabled,\n refetchInterval,\n retry: false,\n refetchOnWindowFocus: false,\n refetchOnMount: false,\n },\n });\n\n return {\n price: marketPriceQuery.data,\n isLoading: marketPriceQuery.isLoading,\n };\n};\n\n// define how many tokenTo units one tokenFrom (tokenTo if reversed) unit costs, eg 1 ETH = 3000 USDC\nexport const useLimitRate = (\n tradeMode: \"limit\" | \"otc\"\n): UseLimitRateResult => {\n const { tokenFrom, tokenTo } = useWidgetTokens(tradeMode);\n\n const { data: tokenFromPrice, isLoading: isTokenFromPriceLoading } =\n useTokenPrice(tokenFrom, { refetchInterval: PRICE_REFETCH_INTERVAL });\n const { data: tokenToPrice, isLoading: isTokenToPriceLoading } =\n useTokenPrice(tokenTo, { refetchInterval: PRICE_REFETCH_INTERVAL });\n\n const areFiatPricesLoading = isTokenFromPriceLoading || isTokenToPriceLoading;\n\n const fiatPricesAvailable = !!(tokenFromPrice && tokenToPrice);\n const fetchSwapPrice = !fiatPricesAvailable && !areFiatPricesLoading;\n\n const { price: swapPrice, isLoading: isSwapPriceLoading } =\n useSwapPriceForLimit({ enabled: fetchSwapPrice, tradeMode });\n\n const isLoading = areFiatPricesLoading || isSwapPriceLoading;\n\n return useMemo(() => {\n if (!tokenTo) {\n return { isLoading };\n }\n\n let rate: string | undefined = undefined;\n let rateReversed: string | undefined = undefined;\n if (fiatPricesAvailable) {\n rate = Big(tokenFromPrice.price).div(tokenToPrice.price).toFixed();\n rateReversed = Big(tokenToPrice.price)\n .div(tokenFromPrice.price)\n .toFixed();\n } else if (swapPrice) {\n const srcUnits = formatUnits(\n BigInt(swapPrice.srcAmount),\n tokenFrom.decimals\n );\n const destUnits = formatUnits(\n BigInt(swapPrice.destAmount),\n tokenTo.decimals\n );\n\n rate = Big(destUnits).div(srcUnits).toFixed();\n rateReversed = Big(srcUnits).div(destUnits).toFixed();\n }\n\n if (!rate || !rateReversed) {\n return { isLoading };\n }\n\n return {\n rates: { rate, rateReversed },\n isLoading,\n };\n }, [\n fiatPricesAvailable,\n isLoading,\n swapPrice,\n tokenFrom.decimals,\n tokenFromPrice?.price,\n tokenTo,\n tokenToPrice?.price,\n ]);\n};\n"],"names":["PRICE_REFETCH_INTERVAL","useSwapPriceForLimit","t0","$","_c","enabled","t1","refetchInterval","t2","tradeMode","undefined","tokenFrom","useAtomValue","tradeModeToTokenAtoms","tokenFromAtom","priceParams","chainId","usePricesParams","t3","decimals","parseUnits","toString","t4","amount","side","ignoreBadUsdPrice","priceParamsWithAmount","t5","retry","refetchOnWindowFocus","refetchOnMount","t6","timeout","query","result","marketPriceQuery","useMarketPriceQuery","t7","data","isLoading","price","useLimitRate","tokenTo","useWidgetTokens","tokenFromPrice","isTokenFromPriceLoading","useTokenPrice","tokenToPrice","isTokenToPriceLoading","areFiatPricesLoading","fiatPricesAvailable","fetchSwapPrice","swapPrice","isSwapPriceLoading","useMemo","rate","rateReversed","Big","div","toFixed","srcUnits","formatUnits","BigInt","srcAmount","destUnits","destAmount","rates"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"widgetEventsAtom.d.ts","sourceRoot":"","sources":["../../../src/core/state/widgetEventsAtom.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EACpB,uBAAuB,EACxB,MAAM,gBAAgB,CAAC;AAMxB,eAAO,MAAM,gBAAgB;;CAqM3B,CAAC;AAEH,eAAO,MAAM,eAAe,QAAO,uBAElC,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,YAAY,oBAAoB,SAiCrE,CAAC"}
1
+ {"version":3,"file":"widgetEventsAtom.d.ts","sourceRoot":"","sources":["../../../src/core/state/widgetEventsAtom.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EACpB,uBAAuB,EACxB,MAAM,gBAAgB,CAAC;AAQxB,eAAO,MAAM,gBAAgB;;CA+L3B,CAAC;AAEH,eAAO,MAAM,eAAe,QAAO,uBAElC,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,YAAY,oBAAoB,SAiCrE,CAAC"}
@@ -128,15 +128,15 @@ const widgetEventsAtom = atom({}, (get, set, callbacks) => {
128
128
  };
129
129
  callbacks.onFormInputChange(payloadWithState);
130
130
  };
131
- const onPriceChange = (payload) => {
132
- if (!callbacks.onPriceChange) return;
131
+ const _onPriceChange = callbacks.onPriceChange;
132
+ const onPriceChange = _onPriceChange ? (payload) => {
133
133
  const widgetState = getWidgetState(get);
134
134
  const payloadWithState = {
135
135
  event: payload.event,
136
136
  state: widgetState
137
137
  };
138
- callbacks.onPriceChange(payloadWithState);
139
- };
138
+ _onPriceChange(payloadWithState);
139
+ } : void 0;
140
140
  set(widgetEventsAtom, {
141
141
  onSwap,
142
142
  onLimitOrder,
@@ -1 +1 @@
1
- {"version":3,"file":"widgetEventsAtom.js","sources":["../../../src/core/state/widgetEventsAtom.ts"],"sourcesContent":["import { atom, useAtomValue, useSetAtom } from \"jotai\";\nimport type {\n WidgetEventCallbacks,\n WidgetEventCallbacksMin,\n} from \"@/events/types\";\nimport { useLayoutEffect } from \"react\";\nimport { getWidgetState } from \"@/events/getters/widgetState\";\nimport { assert } from \"ts-essentials\";\nimport type { TokenFormState } from \"@/events/types/common\";\n\nexport const widgetEventsAtom = atom<\n WidgetEventCallbacksMin,\n [WidgetEventCallbacks],\n void\n>({}, (get, set, callbacks) => {\n const onSwap: WidgetEventCallbacksMin[\"onSwap\"] = (payload) => {\n if (!callbacks.onSwap) return;\n const widgetState = getWidgetState(get);\n\n const swapFormState = widgetState.formState.swap;\n assert(\n isFullTokenFormState(swapFormState),\n \"Swap form state is required to perform swap\"\n );\n\n type Input = Parameters<NonNullable<WidgetEventCallbacks[\"onSwap\"]>>[0];\n\n // attaching extra parameters to the event payload\n const payloadWithState = {\n event: {\n ...payload.event,\n params: {\n ...payload.event.params,\n ...swapFormState,\n },\n },\n state: widgetState,\n } as Input;\n\n callbacks.onSwap(payloadWithState);\n };\n\n const onLimitOrder: WidgetEventCallbacksMin[\"onLimitOrder\"] = (payload) => {\n if (!callbacks.onLimitOrder) return;\n const widgetState = getWidgetState(get);\n const limitOrderFormState = widgetState.formState.limit;\n assert(\n isFullTokenFormState(limitOrderFormState),\n \"Limit order form state is required to create a limit order\"\n );\n\n type Input = Parameters<\n NonNullable<WidgetEventCallbacks[\"onLimitOrder\"]>\n >[0];\n\n const payloadWithState = {\n event: {\n ...payload.event,\n params: {\n ...payload.event.params,\n ...limitOrderFormState,\n },\n },\n state: widgetState,\n } as Input;\n callbacks.onLimitOrder(payloadWithState);\n };\n\n const onOTCOrder: WidgetEventCallbacksMin[\"onOTCOrder\"] = (payload) => {\n if (!callbacks.onOTCOrder) return;\n const widgetState = getWidgetState(get);\n const otcOrderFormState = widgetState.formState.otc;\n assert(\n isFullTokenFormState(otcOrderFormState),\n \"OTC order form state is required to create an OTC order\"\n );\n type Input = Parameters<NonNullable<WidgetEventCallbacks[\"onOTCOrder\"]>>[0];\n const payloadWithState = {\n event: {\n ...payload.event,\n params: {\n ...payload.event.params,\n ...otcOrderFormState,\n },\n },\n state: widgetState,\n } as Input;\n callbacks.onOTCOrder(payloadWithState);\n };\n\n const onAllowToken: WidgetEventCallbacksMin[\"onAllowToken\"] = (payload) => {\n if (!callbacks.onAllowToken) return;\n const widgetState = getWidgetState(get);\n\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n\n callbacks.onAllowToken(payloadWithState);\n };\n\n const onWrapETH: WidgetEventCallbacksMin[\"onWrapETH\"] = (payload) => {\n if (!callbacks.onWrapETH) return;\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n callbacks.onWrapETH(payloadWithState);\n };\n\n const onSettingsChange: WidgetEventCallbacksMin[\"onSettingsChange\"] = (\n payload\n ) => {\n if (!callbacks.onSettingsChange) return;\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n callbacks.onSettingsChange(payloadWithState);\n };\n\n const onConnectWallet: WidgetEventCallbacksMin[\"onConnectWallet\"] = (\n payload\n ) => {\n if (!callbacks.onConnectWallet) return;\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n callbacks.onConnectWallet(payloadWithState);\n };\n\n const _onConnectWalletClick = callbacks.onConnectWalletClick;\n const onConnectWalletClick: WidgetEventCallbacksMin[\"onConnectWalletClick\"] =\n _onConnectWalletClick\n ? (payload) => {\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n _onConnectWalletClick(payloadWithState);\n }\n : undefined;\n\n const onCancelOrder: WidgetEventCallbacksMin[\"onCancelOrder\"] = (payload) => {\n if (!callbacks.onCancelOrder) return;\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n callbacks.onCancelOrder(payloadWithState);\n };\n\n const onFillOTCOrder: WidgetEventCallbacksMin[\"onFillOTCOrder\"] = (\n payload\n ) => {\n if (!callbacks.onFillOTCOrder) return;\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n callbacks.onFillOTCOrder(payloadWithState);\n };\n\n const onFormInputChange: WidgetEventCallbacksMin[\"onFormInputChange\"] = (\n payload\n ) => {\n if (!callbacks.onFormInputChange) return;\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n callbacks.onFormInputChange(payloadWithState);\n };\n\n const onPriceChange: WidgetEventCallbacksMin[\"onPriceChange\"] = (payload) => {\n if (!callbacks.onPriceChange) return;\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n callbacks.onPriceChange(payloadWithState);\n };\n\n set(widgetEventsAtom, {\n onSwap,\n onLimitOrder,\n onOTCOrder,\n onAllowToken,\n onWrapETH,\n onSettingsChange,\n onConnectWallet,\n onConnectWalletClick,\n onCancelOrder,\n onFillOTCOrder,\n onFormInputChange,\n onPriceChange,\n });\n});\n\nexport const useWidgetEvents = (): WidgetEventCallbacksMin => {\n return useAtomValue(widgetEventsAtom);\n};\n\nexport const useWidgetEventsSetter = (callbacks?: WidgetEventCallbacks) => {\n const setWidgetEvents = useSetAtom(widgetEventsAtom);\n\n useLayoutEffect(() => {\n setWidgetEvents({\n onConnectWallet: callbacks?.onConnectWallet,\n onConnectWalletClick: callbacks?.onConnectWalletClick,\n onAllowToken: callbacks?.onAllowToken,\n onSwap: callbacks?.onSwap,\n onOTCOrder: callbacks?.onOTCOrder,\n onLimitOrder: callbacks?.onLimitOrder,\n onWrapETH: callbacks?.onWrapETH,\n onSettingsChange: callbacks?.onSettingsChange,\n onCancelOrder: callbacks?.onCancelOrder,\n onFillOTCOrder: callbacks?.onFillOTCOrder,\n onFormInputChange: callbacks?.onFormInputChange,\n onPriceChange: callbacks?.onPriceChange,\n });\n }, [\n callbacks?.onConnectWallet,\n callbacks?.onConnectWalletClick,\n callbacks?.onAllowToken,\n callbacks?.onSwap,\n callbacks?.onOTCOrder,\n callbacks?.onLimitOrder,\n callbacks?.onWrapETH,\n callbacks?.onSettingsChange,\n callbacks?.onCancelOrder,\n callbacks?.onFillOTCOrder,\n callbacks?.onFormInputChange,\n callbacks?.onPriceChange,\n setWidgetEvents,\n ]);\n};\n\nfunction isFullTokenFormState<T extends TokenFormState>(\n state: T\n): state is Required<T> {\n return !!(\n state.tokenTo &&\n state.receiverAddress &&\n state.destChainId &&\n state.connectedAccount\n );\n}\n"],"names":["widgetEventsAtom","atom","get","set","callbacks","onSwap","payload","widgetState","getWidgetState","swapFormState","formState","swap","assert","isFullTokenFormState","payloadWithState","event","params","state","onLimitOrder","limitOrderFormState","limit","onOTCOrder","otcOrderFormState","otc","onAllowToken","onWrapETH","onSettingsChange","onConnectWallet","_onConnectWalletClick","onConnectWalletClick","undefined","onCancelOrder","onFillOTCOrder","onFormInputChange","onPriceChange","useWidgetEvents","useAtomValue","useWidgetEventsSetter","$","_c","setWidgetEvents","useSetAtom","t0","t1","t2","t3","t4","t5","t6","t7","t8","t9","t10","t11","t12","t13","useLayoutEffect","tokenTo","receiverAddress","destChainId","connectedAccount"],"mappings":"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"}
1
+ {"version":3,"file":"widgetEventsAtom.js","sources":["../../../src/core/state/widgetEventsAtom.ts"],"sourcesContent":["import { atom, useAtomValue, useSetAtom } from \"jotai\";\nimport type {\n WidgetEventCallbacks,\n WidgetEventCallbacksMin,\n} from \"@/events/types\";\nimport { useLayoutEffect } from \"react\";\nimport { getWidgetState } from \"@/events/getters/widgetState\";\nimport { assert } from \"ts-essentials\";\nimport type { TokenFormState } from \"@/events/types/common\";\n\ntype Callbacks = Required<WidgetEventCallbacksMin>;\n\nexport const widgetEventsAtom = atom<\n WidgetEventCallbacksMin,\n [WidgetEventCallbacks],\n void\n>({}, (get, set, callbacks) => {\n const onSwap: Callbacks[\"onSwap\"] = (payload) => {\n if (!callbacks.onSwap) return;\n const widgetState = getWidgetState(get);\n\n const swapFormState = widgetState.formState.swap;\n assert(\n isFullTokenFormState(swapFormState),\n \"Swap form state is required to perform swap\"\n );\n\n type Input = Parameters<NonNullable<WidgetEventCallbacks[\"onSwap\"]>>[0];\n\n // attaching extra parameters to the event payload\n const payloadWithState = {\n event: {\n ...payload.event,\n params: {\n ...payload.event.params,\n ...swapFormState,\n },\n },\n state: widgetState,\n } as Input;\n\n callbacks.onSwap(payloadWithState);\n };\n\n const onLimitOrder: Callbacks[\"onLimitOrder\"] = (payload) => {\n if (!callbacks.onLimitOrder) return;\n const widgetState = getWidgetState(get);\n const limitOrderFormState = widgetState.formState.limit;\n assert(\n isFullTokenFormState(limitOrderFormState),\n \"Limit order form state is required to create a limit order\"\n );\n\n type Input = Parameters<\n NonNullable<WidgetEventCallbacks[\"onLimitOrder\"]>\n >[0];\n\n const payloadWithState = {\n event: {\n ...payload.event,\n params: {\n ...payload.event.params,\n ...limitOrderFormState,\n },\n },\n state: widgetState,\n } as Input;\n callbacks.onLimitOrder(payloadWithState);\n };\n\n const onOTCOrder: Callbacks[\"onOTCOrder\"] = (payload) => {\n if (!callbacks.onOTCOrder) return;\n const widgetState = getWidgetState(get);\n const otcOrderFormState = widgetState.formState.otc;\n assert(\n isFullTokenFormState(otcOrderFormState),\n \"OTC order form state is required to create an OTC order\"\n );\n type Input = Parameters<NonNullable<WidgetEventCallbacks[\"onOTCOrder\"]>>[0];\n const payloadWithState = {\n event: {\n ...payload.event,\n params: {\n ...payload.event.params,\n ...otcOrderFormState,\n },\n },\n state: widgetState,\n } as Input;\n callbacks.onOTCOrder(payloadWithState);\n };\n\n const onAllowToken: Callbacks[\"onAllowToken\"] = (payload) => {\n if (!callbacks.onAllowToken) return;\n const widgetState = getWidgetState(get);\n\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n\n callbacks.onAllowToken(payloadWithState);\n };\n\n const onWrapETH: Callbacks[\"onWrapETH\"] = (payload) => {\n if (!callbacks.onWrapETH) return;\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n callbacks.onWrapETH(payloadWithState);\n };\n\n const onSettingsChange: Callbacks[\"onSettingsChange\"] = (payload) => {\n if (!callbacks.onSettingsChange) return;\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n callbacks.onSettingsChange(payloadWithState);\n };\n\n const onConnectWallet: Callbacks[\"onConnectWallet\"] = (payload) => {\n if (!callbacks.onConnectWallet) return;\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n callbacks.onConnectWallet(payloadWithState);\n };\n\n const _onConnectWalletClick = callbacks.onConnectWalletClick;\n const onConnectWalletClick: WidgetEventCallbacksMin[\"onConnectWalletClick\"] =\n _onConnectWalletClick\n ? (payload) => {\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n _onConnectWalletClick(payloadWithState);\n }\n : undefined;\n\n const onCancelOrder: Callbacks[\"onCancelOrder\"] = (payload) => {\n if (!callbacks.onCancelOrder) return;\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n callbacks.onCancelOrder(payloadWithState);\n };\n\n const onFillOTCOrder: Callbacks[\"onFillOTCOrder\"] = (payload) => {\n if (!callbacks.onFillOTCOrder) return;\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n callbacks.onFillOTCOrder(payloadWithState);\n };\n\n const onFormInputChange: Callbacks[\"onFormInputChange\"] = (payload) => {\n if (!callbacks.onFormInputChange) return;\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n callbacks.onFormInputChange(payloadWithState);\n };\n\n const _onPriceChange = callbacks.onPriceChange;\n const onPriceChange: WidgetEventCallbacksMin[\"onPriceChange\"] = _onPriceChange\n ? (payload) => {\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n _onPriceChange(payloadWithState);\n }\n : undefined;\n\n set(widgetEventsAtom, {\n onSwap,\n onLimitOrder,\n onOTCOrder,\n onAllowToken,\n onWrapETH,\n onSettingsChange,\n onConnectWallet,\n onConnectWalletClick,\n onCancelOrder,\n onFillOTCOrder,\n onFormInputChange,\n onPriceChange,\n });\n});\n\nexport const useWidgetEvents = (): WidgetEventCallbacksMin => {\n return useAtomValue(widgetEventsAtom);\n};\n\nexport const useWidgetEventsSetter = (callbacks?: WidgetEventCallbacks) => {\n const setWidgetEvents = useSetAtom(widgetEventsAtom);\n\n useLayoutEffect(() => {\n setWidgetEvents({\n onConnectWallet: callbacks?.onConnectWallet,\n onConnectWalletClick: callbacks?.onConnectWalletClick,\n onAllowToken: callbacks?.onAllowToken,\n onSwap: callbacks?.onSwap,\n onOTCOrder: callbacks?.onOTCOrder,\n onLimitOrder: callbacks?.onLimitOrder,\n onWrapETH: callbacks?.onWrapETH,\n onSettingsChange: callbacks?.onSettingsChange,\n onCancelOrder: callbacks?.onCancelOrder,\n onFillOTCOrder: callbacks?.onFillOTCOrder,\n onFormInputChange: callbacks?.onFormInputChange,\n onPriceChange: callbacks?.onPriceChange,\n });\n }, [\n callbacks?.onConnectWallet,\n callbacks?.onConnectWalletClick,\n callbacks?.onAllowToken,\n callbacks?.onSwap,\n callbacks?.onOTCOrder,\n callbacks?.onLimitOrder,\n callbacks?.onWrapETH,\n callbacks?.onSettingsChange,\n callbacks?.onCancelOrder,\n callbacks?.onFillOTCOrder,\n callbacks?.onFormInputChange,\n callbacks?.onPriceChange,\n setWidgetEvents,\n ]);\n};\n\nfunction isFullTokenFormState<T extends TokenFormState>(\n state: T\n): state is Required<T> {\n return !!(\n state.tokenTo &&\n state.receiverAddress &&\n state.destChainId &&\n state.connectedAccount\n );\n}\n"],"names":["widgetEventsAtom","atom","get","set","callbacks","onSwap","payload","widgetState","getWidgetState","swapFormState","formState","swap","assert","isFullTokenFormState","payloadWithState","event","params","state","onLimitOrder","limitOrderFormState","limit","onOTCOrder","otcOrderFormState","otc","onAllowToken","onWrapETH","onSettingsChange","onConnectWallet","_onConnectWalletClick","onConnectWalletClick","undefined","onCancelOrder","onFillOTCOrder","onFormInputChange","_onPriceChange","onPriceChange","useWidgetEvents","useAtomValue","useWidgetEventsSetter","$","_c","setWidgetEvents","useSetAtom","t0","t1","t2","t3","t4","t5","t6","t7","t8","t9","t10","t11","t12","t13","useLayoutEffect","tokenTo","receiverAddress","destChainId","connectedAccount"],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { DetailWithValue } from '../../components/widget/Details/types';
2
+ import { DeltaOrMarketPrice } from '../../hooks/swap/prices/types';
3
+ import { Token } from '../../tokens/state/types';
4
+ export declare function constructMaxToPayDetail({ price, slippagePercent, isLoading, tokenFrom, swapSide, }: {
5
+ price?: DeltaOrMarketPrice;
6
+ slippagePercent: number;
7
+ isLoading: boolean;
8
+ tokenFrom?: Token;
9
+ swapSide: "SELL" | "BUY";
10
+ }): DetailWithValue | undefined;
11
+ //# sourceMappingURL=maxToPay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maxToPay.d.ts","sourceRoot":"","sources":["../../../src/core/swapDetails/maxToPay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAOlD,wBAAgB,uBAAuB,CAAC,EACtC,KAAK,EACL,eAAe,EACf,SAAS,EACT,SAAS,EACT,QAAQ,GACT,EAAE;IACD,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAC;CAC1B,GAAG,eAAe,GAAG,SAAS,CAkC9B"}