@velora-dex/widget 0.2.3-dev.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 (56) 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/core/inputs/hooks/useTokenFromInputProps.d.ts.map +1 -1
  16. package/dist/core/inputs/hooks/useTokenFromInputProps.js +25 -16
  17. package/dist/core/inputs/hooks/useTokenFromInputProps.js.map +1 -1
  18. package/dist/core/inputs/hooks/useTokenToInputProps.d.ts.map +1 -1
  19. package/dist/core/inputs/hooks/useTokenToInputProps.js +9 -12
  20. package/dist/core/inputs/hooks/useTokenToInputProps.js.map +1 -1
  21. package/dist/core/inputs/state/selectedTokenActionsAtom.d.ts.map +1 -1
  22. package/dist/core/inputs/state/selectedTokenActionsAtom.js +34 -25
  23. package/dist/core/inputs/state/selectedTokenActionsAtom.js.map +1 -1
  24. package/dist/core/inputs/state/selectedTokenAtom.d.ts +2 -2
  25. package/dist/core/inputs/state/selectedTokenAtom.d.ts.map +1 -1
  26. package/dist/core/inputs/state/selectedTokenAtom.js +9 -2
  27. package/dist/core/inputs/state/selectedTokenAtom.js.map +1 -1
  28. package/dist/core/inputs/state/types.d.ts.map +1 -1
  29. package/dist/core/swapDetails/maxToPay.d.ts +11 -0
  30. package/dist/core/swapDetails/maxToPay.d.ts.map +1 -0
  31. package/dist/core/swapDetails/maxToPay.js +41 -0
  32. package/dist/core/swapDetails/maxToPay.js.map +1 -0
  33. package/dist/core/swapDetails/useSwapDetailsListProps.d.ts.map +1 -1
  34. package/dist/core/swapDetails/useSwapDetailsListProps.js +9 -2
  35. package/dist/core/swapDetails/useSwapDetailsListProps.js.map +1 -1
  36. package/dist/core/swapDetails/youGet.d.ts.map +1 -1
  37. package/dist/core/swapDetails/youGet.js.map +1 -1
  38. package/dist/hooks/swap/prices/delta/queries/utils.d.ts +3 -0
  39. package/dist/hooks/swap/prices/delta/queries/utils.d.ts.map +1 -0
  40. package/dist/hooks/swap/prices/delta/queries/utils.js +9 -0
  41. package/dist/hooks/swap/prices/delta/queries/utils.js.map +1 -0
  42. package/dist/hooks/swap/prices/useSwapPrices.d.ts.map +1 -1
  43. package/dist/hooks/swap/prices/useSwapPrices.js +3 -4
  44. package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
  45. package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
  46. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +13 -20
  47. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
  48. package/dist/hooks/swap/tradeFlow/useMarketFlow.js +1 -1
  49. package/dist/hooks/swap/tradeFlow/useMarketFlow.js.map +1 -1
  50. package/dist/tokens/overrides.d.ts +13 -2
  51. package/dist/tokens/overrides.d.ts.map +1 -1
  52. package/dist/tokens/overrides.js +71 -3
  53. package/dist/tokens/overrides.js.map +1 -1
  54. package/dist/tokens/types.d.ts +4 -0
  55. package/dist/tokens/types.d.ts.map +1 -1
  56. 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":";;;;;;;;;;;;;;;;;;;;;;;;AA6CA,MAAMA,wBAAwBC,CAAAA,EAAAA,KAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAF,CAAAA,QAAAD,EAAAA,EAAA;AAACG,IAAAA,EAAAA,GAAAH,EAAAA,KAAAI,MAAAA,GAAA,EAEM,GAFNJ,EAAAA;AAEOC,IAAAA,CAAAA,MAAAD,EAAAA;AAAAC,IAAAA,CAAAA,MAAAE,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAF,EAAA,CAAA,CAAA;AAAA,EAAA;AAFP,EAAA,MAAA;AAAA,IAAAI;AAAAA,GAAA,GAAAF,EAAAA;AAG7B,EAAA,MAAAG,MAAAA,GAAeC,UAAU,4BAA4B,CAAA;AACrD,EAAA,MAAAC,UAAgBC,cAAAA,EAAe;AAE/B,EAAA,MAAAC,eAAqBC,eAAAA,EAAgB;AAErC,EAAA,MAAA,CAAAC,WAAAA,EAAAC,cAAA,CAAA,GAAsCC,QAAQC,sBAAsB,CAAA;AAEpE,EAAA,MAAAC,mBAAyBC,qBAAAA,EAAsB;AAAE,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAjB,CAAAA,QAAAI,KAAAA,EAAA;AAG/Ca,IAAAA,EAAAA,GAAAb,SAASc,YAAAA,CAAad,KAAK,CAAA,GACvBA,KAAAA,CAAKe,2BACLf,KAAAA,EAAKgB,OAAAA;AAASpB,IAAAA,CAAAA,MAAAI,KAAAA;AAAAJ,IAAAA,CAAAA,MAAAiB,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAjB,EAAA,CAAA,CAAA;AAAA,EAAA;AAHpB,EAAA,MAAAqB,aAAAA,GACEJ,EAAAA;AAEmB,EAAA,IAAAK,EAAAA;AAAA,EAAA,IAAAtB,EAAA,CAAA,CAAA,KAAAK,UAAAL,CAAAA,QAAAY,cAAAA,EAAA;AAQHU,IAAAA,EAAAA,GAAAC,CAAAA,MAAAA,KAAA;AACdlB,MAAAA,MAAAA,CAAMmB,GAAAA,CAAK,0BAA0BD,MAAM,CAAA;AAC3CX,MAAAA,cAAAA,CAAeW,OAAME,KAAM,CAAA;AAAA,IAAC,CAAA;AAC7BzB,IAAAA,CAAAA,MAAAK,MAAAA;AAAAL,IAAAA,CAAAA,MAAAY,cAAAA;AAAAZ,IAAAA,CAAAA,MAAAsB,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAtB,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAA0B,EAAAA;AAAA,EAAA,IAAA1B,CAAAA,QAAAW,WAAAA,IAAAX,EAAA,CAAA,CAAA,KAAAS,YAAAA,IAAAT,CAAAA,CAAA,CAAA,CAAA,KAAAsB,MAAAtB,CAAAA,CAAA,EAAA,CAAA,KAAAe,gBAAAA,IAAAf,CAAAA,SAAAO,OAAAA,IAAAP,CAAAA,CAAA,EAAA,CAAA,KAAAqB,aAAAA,EAAA;AATIK,IAAAA,EAAAA,GAAA;AAAA,MAAAL,aAAAA;AAAAA,MAAAM,MAAAA,EAEGhB,WAAAA;AAAAA,MAAWI,gBAAAA;AAAAA,MAAAa,KAAAA,EAEZrB,OAAAA;AAAAA,MAAOsB,QAAAA,EACJpB,YAAAA;AAAAA,MAAYqB,cAAAA,EACNR;AAAAA,KAIlB;AAACtB,IAAAA,CAAAA,MAAAW,WAAAA;AAAAX,IAAAA,CAAAA,MAAAS,YAAAA;AAAAT,IAAAA,CAAAA,MAAAsB,EAAAA;AAAAtB,IAAAA,CAAAA,OAAAe,gBAAAA;AAAAf,IAAAA,CAAAA,OAAAO,OAAAA;AAAAP,IAAAA,CAAAA,OAAAqB,aAAAA;AAAArB,IAAAA,CAAAA,OAAA0B,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAA1B,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAVM0B,EAAAA;AAUN,CAAA;AAGH,MAAMV,wBAAwBA,MAAA;AAAA,EAAA,MAAAhB,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAC5B,EAAA,MAAAM,UAAgBC,cAAAA,EAAe;AAAE,EAAA,IAAAT,EAAAA;AAAA,EAAA,IAAAC,EAAA,CAAA,CAAA,KAAA+B,MAAAA,CAAAC,GAAAA,CAAA,2BAAA,CAAA,EAAA;AAIjBjC,IAAAA,EAAAA,GAAA;AAAA,MAAAkC,eAAAA,EAAmBC;AAAAA,KAAmC;AAAClC,IAAAA,CAAAA,MAAAD,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAC,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAE,EAAAA;AAAA,EAAA,IAAAF,CAAAA,QAAAO,OAAAA,EAAA;AAF/BL,IAAAA,EAAAA,GAAA;AAAA,MAAA0B,KAAAA,EAC/BrB,OAAAA;AAAAA,MAAO4B,YAAAA,EACApC;AAAAA,KAChB;AAACC,IAAAA,CAAAA,MAAAO,OAAAA;AAAAP,IAAAA,CAAAA,MAAAE,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAF,EAAA,CAAA,CAAA;AAAA,EAAA;AAHD,EAAA,MAAA;AAAA,IAAAoC;AAAAA,GAAA,GAAwBC,gBAAgBnC,EAGvC,CAAA;AAAE,EAAA,IAAAe,EAAAA;AAAA,EAAA,IAAAjB,CAAAA,QAAAoC,WAAAA,EAAA;AAEInB,IAAAA,EAAAA,GAAAqB,iBAAiBF,WAAW,CAAA;AAACpC,IAAAA,CAAAA,MAAAoC,WAAAA;AAAApC,IAAAA,CAAAA,MAAAiB,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAjB,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAA7BiB,EAAAA;AAA6B,CAAA;AAGtC,MAAMsB,iBAAiBxC,CAAAA,EAAAA,KAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAAC,EAAA,MAAA;AAAA,IAAAuC,SAAAA;AAAAA,IAAApC,KAAAA;AAAAA,IAAAwB;AAAAA,GAAA,GAAA7B,EAAAA;AAStB,EAAA,MAAA0C,OAAaC,WAAAA,EAAY;AACzB,EAAA,MAAAC,SAAeF,IAAAA,KAAS,MAAA;AAExB,EAAA,MAAArB,UACEhB,KAAAA,IAASc,YAAAA,CAAad,KAAK,CAAA,GAAIA,KAAAA,CAAKwC,kBAAmBxC,KAAAA,EAAKgB,OAAAA;AAAU,EAAA,IAAAlB,EAAAA;AAAA,EAAA,IAAAF,EAAA,CAAA,CAAA,KAAAoB,WAAApB,CAAAA,CAAA,CAAA,MAAA2C,MAAAA,IAAA3C,CAAAA,CAAA,CAAA,CAAA,KAAAI,KAAAA,IAAAJ,EAAA,CAAA,CAAA,KAAAwC,aAAAxC,CAAAA,QAAA4B,KAAAA,EAAA;AAItE1B,IAAAA,EAAAA,GAAAyC,MAAAA,IAAAvC,SAAAwB,KAAAA,KAMCY,SAAAA,KAAc,WAAYA,SAAAA,KAAc,QAAA,IAAYpC,KAAAA,CAAKyC,UAAAA,GAAc,CAAA,CAAA,GANxE;AAAA,MAAAC,SAAAA,EASiBC,sBAAsB3C,KAAK,CAAA;AAAA,MAAC4C,WAAAA,EAC1B5B,UACT6B,eAAAA,CAAgB7C,KAAAA,CAAKyC,YAAazB,OAAO,CAAA,CAAC8B,UAClC,GAFC/C,MAAAA;AAAAA,MAEAgD,gBACG/C,KAAAA,CAAKgD,UAAAA;AAAAA,MAAWxB,KAAAA;AAAAA,MAAAY;AAAAA,KAI1B,GAjBZrC,MAAAA;AAiBaH,IAAAA,CAAAA,MAAAoB,OAAAA;AAAApB,IAAAA,CAAAA,MAAA2C,MAAAA;AAAA3C,IAAAA,CAAAA,MAAAI,KAAAA;AAAAJ,IAAAA,CAAAA,MAAAwC,SAAAA;AAAAxC,IAAAA,CAAAA,MAAA4B,KAAAA;AAAA5B,IAAAA,CAAAA,MAAAE,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAF,EAAA,CAAA,CAAA;AAAA,EAAA;AAnBf,EAAA,MAAAqD,WAAAA,GAEEnD,EAAAA;AAiBc,EAAA,OAETmD,WAAAA;AAAW,CAAA;AAGpB,MAAMC,oBAAoBvD,CAAAA,EAAAA,KAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAAC,EAAA,MAAA;AAAA,IAAAsD,UAAAA;AAAAA,IAAAf;AAAAA,GAAA,GAAAzC,EAAAA;AAOzB,EAAA,MAAAyD,UAAgBC,UAAAA,EAAW;AAC3B,EAAA,MAAAC,OAAAA,GAAgBC,aAAaC,eAAe,CAAA;AAC5C,EAAA,MAAAC,YAAkBC,gBAAAA,EAAiB;AACnC,EAAA,MAAAvD,UAAgBC,cAAAA,EAAe;AAAE,EAAA,IAAAN,EAAAA;AAAA,EAAA,IAAAF,CAAAA,CAAA,CAAA,CAAA,KAAAwD,OAAAA,IAAAxD,CAAAA,CAAA,CAAA,CAAA,KAAA0D,OAAAA,IAAA1D,CAAAA,CAAA,CAAA,CAAA,KAAA6D,SAAAA,CAAAE,OAAAA,EAAA;AAOL7D,IAAAA,EAAAA,GAAA;AAAA,MAAA8D,WAAAA,EACbR,OAAAA;AAAAA,MAAOS,SAAAA,EACTP,OAAAA;AAAAA,MAAOQ,cACJL,SAAAA,CAASE;AAAAA,KACzB;AAAC/D,IAAAA,CAAAA,MAAAwD,OAAAA;AAAAxD,IAAAA,CAAAA,MAAA0D,OAAAA;AAAA1D,IAAAA,CAAAA,CAAA,CAAA,IAAA6D,SAAAA,CAAAE,OAAAA;AAAA/D,IAAAA,CAAAA,MAAAE,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAF,EAAA,CAAA,CAAA;AAAA,EAAA;AATD,EAAA,MAAA;AAAA,IAAAmE,oBAAAA;AAAAA,IAAAC,SAAAA,EAAAC,+BAAAA;AAAAA,IAAAC,SAAAA;AAAAA,IAAAC;AAAAA,GAAA,GAKIC,wBAAwBtE,EAI3B,CAAA;AAED,EAAA,MAAAuE,eAAqB/D,eAAAA,EAAgB;AAAE,EAAA,IAAAO,EAAAA;AAAA,EAAA,IAAAjB,CAAAA,CAAA,CAAA,CAAA,KAAAuD,UAAAA,IAAAvD,CAAAA,QAAA6D,SAAAA,IAAA7D,CAAAA,CAAA,CAAA,CAAA,KAAAO,OAAAA,EAAA;AAEvC,IAAA,MAAAmE,eAAAA,GAAwBnB,UAAAA,IAAcoB,kBAAAA,CAAmBpB,UAAU,CAAA;AAE1CtC,IAAAA,EAAAA,GAAAyD,kBACrBE,uBAAAA,CAAwBF,eAKK,CAAA,GAJ3BG,8BAAAA,CACEH,gBAAeI,WAAAA,EACf,CAACjB,SAAAA,EAAWtD,OAAO,EAACwE,MAAAA,CAAQC,QAAQ,CAEX,CAAA,GAA3BN,iBAAeI,WAAAA,GANI,IAAA;AAOjB9E,IAAAA,CAAAA,MAAAuD,UAAAA;AAAAvD,IAAAA,CAAAA,MAAA6D,SAAAA;AAAA7D,IAAAA,CAAAA,MAAAO,OAAAA;AAAAP,IAAAA,CAAAA,MAAAiB,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAjB,EAAA,CAAA,CAAA;AAAA,EAAA;AAPR,EAAA,MAAAiF,gBAAAA,GAAyBhE,EAAAA;AAOhB,EAAA,IAAAK,EAAAA;AAAA,EAAA,IAAAtB,CAAAA,QAAAsE,SAAAA,IAAAtE,EAAA,CAAA,CAAA,KAAAyE,YAAAA,IAAAzE,CAAAA,CAAA,EAAA,CAAA,KAAAmE,wBAAAnE,CAAAA,CAAA,EAAA,CAAA,KAAAqE,+BAAAA,IAAArE,CAAAA,SAAA6D,SAAAA,IAAA7D,CAAAA,CAAA,EAAA,CAAA,KAAAuE,cAAAA,EAAA;AAGPjD,IAAAA,EAAAA,GAAA,CAAC+C,+BAAAA,IAAD,CAAqCF,oBAAAA,IAArCM,YAAAA,GACIF,cAAAA,KAAmB,KAAA,GACjBW,6BAAAA,CAA8BrB,SAGpB,CAAA,GAFVS,SAAAA,KAAc,KAAA,GAAd,wDAAAnE,MAAAA,GAHNA,MAAAA;AAMaH,IAAAA,CAAAA,MAAAsE,SAAAA;AAAAtE,IAAAA,CAAAA,MAAAyE,YAAAA;AAAAzE,IAAAA,CAAAA,OAAAmE,oBAAAA;AAAAnE,IAAAA,CAAAA,OAAAqE,+BAAAA;AAAArE,IAAAA,CAAAA,OAAA6D,SAAAA;AAAA7D,IAAAA,CAAAA,OAAAuE,cAAAA;AAAAvE,IAAAA,CAAAA,OAAAsB,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAtB,EAAA,EAAA,CAAA;AAAA,EAAA;AAPf,EAAA,MAAAmF,sBAAAA,GACE7D,EAAAA;AAQF,EAAA,MAAA8D,cAAAA,GACE5C,SAAAA,KAAc,OAAA,GACVyC,gBAAAA,IAAAE,sBAAAA,GADJhF,MAAAA;AAEc,EAAA,OAETiF,cAAAA;AAAc,CAAA;AAGvB,MAAMC,gBAAgBtF,CAAAA,EAAAA,KAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAF,CAAAA,QAAAD,EAAAA,EAAA;AAACG,IAAAA,EAAAA,GAAAH,EAAAA,KAAAI,MAAAA,GAAA,EAEY,GAFZJ,EAAAA;AAEaC,IAAAA,CAAAA,MAAAD,EAAAA;AAAAC,IAAAA,CAAAA,MAAAE,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAF,EAAA,CAAA,CAAA;AAAA,EAAA;AAFb,EAAA,MAAA;AAAA,IAAAsF;AAAAA,GAAA,GAAApF,EAAAA;AAGrB,EAAA,MAAAqF,aAAmB9B,UAAAA,EAAW;AAC9B,EAAA,MAAA,CAAAC,OAAAA,EAAA8B,UAAA,CAAA,GAA8B3E,QAAQ+C,eAAe,CAAA;AAErD,EAAA,MAAA;AAAA,IAAA6B;AAAAA,GAAA,GAA6BC,wBAAwBH,UAAU,CAAA;AAE/D,EAAA,MAAAI,sBAA4BjC,OAAAA,KAAYvD,MAAAA;AAAU,EAAA,IAAAc,EAAAA;AAAA,EAAA,IAAAjB,CAAAA,CAAA,CAAA,CAAA,KAAA0D,OAAAA,IAAA1D,EAAA,CAAA,CAAA,KAAAyF,gBAAAA,IAAAzF,CAAAA,CAAA,CAAA,CAAA,KAAAwF,UAAAA,IAAAxF,CAAAA,QAAA2F,mBAAAA,EAAA;AAErB1E,IAAAA,EAAAA,GAAA0E,mBAAAA,GAAA;AAAA,MAAAC,QAAAA,EAEbH,gBAAAA;AAAAA,MAAgBI,eAAAA,EACTnC,OAAAA;AAAAA,MAAOoC,SAAAA,EACb,KAAA;AAAA,MAAKC,QAAAA,EACNvC,CAAAA,OAAAA,KACRA,OAAAA,KAAY,KAAA,IAASgC,WAAWhC,OAAO,CAAA;AAAA,MAACwC,QAAAA,EAChCP,iBAAgBQ,MAAAA,IAAW;AAAA,KAE/B,GATiB9F,MAAAA;AAShBH,IAAAA,CAAAA,MAAA0D,OAAAA;AAAA1D,IAAAA,CAAAA,MAAAyF,gBAAAA;AAAAzF,IAAAA,CAAAA,MAAAwF,UAAAA;AAAAxF,IAAAA,CAAAA,MAAA2F,mBAAAA;AAAA3F,IAAAA,CAAAA,MAAAiB,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAjB,EAAA,CAAA,CAAA;AAAA,EAAA;AATb,EAAA,MAAAkG,oBAAAA,GAA6BjF,EAAAA;AAW7B,EAAA,MAAAkF,eAAAA,GAAwBC,WAAWC,oBAAoB,CAAA;AAEvD,EAAA,MAAA5D,OAAaC,WAAAA,EAAY;AACzB,EAAA,MAAAC,SAAeF,IAAAA,KAAS,MAAA;AAGxB,EAAA,MAAA2B,YAAkBkB,cAAAA,IAAA3C,MAAAA;AAAyB,EAAA,IAAArB,EAAAA;AAAA,EAAA,IAAAtB,CAAAA,QAAAmG,eAAAA,EAAA;AAKhC7E,IAAAA,EAAAA,GAAAA,MAAM6E,gBAAgB,IAAI,CAAA;AAACnG,IAAAA,CAAAA,MAAAmG,eAAAA;AAAAnG,IAAAA,CAAAA,MAAAsB,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAtB,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAA0B,EAAAA;AAAA,EAAA,IAAA1B,EAAA,CAAA,CAAA,KAAA+B,MAAAA,CAAAC,GAAAA,CAAA,2BAAA,CAAA,EAAA;AAGhCN,IAAAA,EAAAA,mBAAA,GAAA,CAAA,UAAM,QAAA,EAAA,SAAA,EAAO,CAAA;AAAO1B,IAAAA,CAAAA,MAAA0B,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAA1B,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAsG,EAAAA;AAAA,EAAA,IAAAtG,CAAAA,SAAA2F,mBAAAA,EAAA;AACnBW,IAAAA,EAAAA,GAAAX,mBAAAA,oBAAuB,GAAA,CAAA,MAAA,EAAA,EAAgB,SAAA,EAAA,mBAAkB,QAAA,EAAA,IAAA,EAAE,CAAA;AAAO3F,IAAAA,CAAAA,OAAA2F,mBAAAA;AAAA3F,IAAAA,CAAAA,OAAAsG,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAtG,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAuG,EAAAA;AAAA,EAAA,IAAAvG,CAAAA,SAAAsG,EAAAA,EAAA;AAFrEC,IAAAA,EAAAA,mBAAA,IAAA,CAAA,QAAA,EAAA,EACE7E,QAAAA,EAAAA;AAAAA,MAAAA,EAAAA;AAAAA;MACC4E;AAAAA,KAAAA,EAAkE,CAAA;AAClEtG,IAAAA,CAAAA,OAAAsG,EAAAA;AAAAtG,IAAAA,CAAAA,OAAAuG,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAvG,EAAA,EAAA,CAAA;AAAA,EAAA;AAGK,EAAA,MAAAwG,EAAAA,GAAAf,iBAAgBQ,MAAAA,KAAY,CAAA;AAAC,EAAA,IAAAQ,EAAAA;AAAA,EAAA,IAAAzG,EAAA,EAAA,CAAA,KAAAoE,aAAApE,CAAAA,CAAA,EAAA,MAAAkG,oBAAAA,IAAAlG,CAAAA,CAAA,EAAA,CAAA,KAAAsB,EAAAA,IAAAtB,EAAA,EAAA,CAAA,KAAAuG,MAAAvG,CAAAA,SAAAwG,EAAAA,EAAA;AAXlCC,IAAAA,EAAAA,GAAA;AAAA,MAAAP,oBAAAA;AAAAA,MAAAQ,SAAAA,EAEM,IAAA;AAAA,MAAaC,OAAAA,EACfrF,EAAAA;AAAAA,MAA2BsF,KAAAA,EAElCL,EAAAA;AAAAA,MAGGnC,SAAAA;AAAAA,MAAA4B,QAAAA,EAGKQ;AAAAA,KACZ;AAACxG,IAAAA,CAAAA,OAAAoE,SAAAA;AAAApE,IAAAA,CAAAA,OAAAkG,oBAAAA;AAAAlG,IAAAA,CAAAA,OAAAsB,EAAAA;AAAAtB,IAAAA,CAAAA,OAAAuG,EAAAA;AAAAvG,IAAAA,CAAAA,OAAAwG,EAAAA;AAAAxG,IAAAA,CAAAA,OAAAyG,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAzG,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAZMyG,EAAAA;AAYN,CAAA;AAGI,MAAMI,uBAAuB9G,CAAAA,EAAAA,KAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAAC,EAAA,MAAA;AAAA,IAAA6G,QAAAA;AAAAA,IAAAxB,cAAAA;AAAAA,IAAA9C,SAAAA;AAAAA,IAAApC,KAAAA;AAAAA,IAAAmD;AAAAA,GAAA,GAAAxD,EAAAA;AAMd,EAAA,IAAAG,EAAAA;AAAA,EAAA,IAAAF,CAAAA,QAAAI,KAAAA,EAAA;AACwBF,IAAAA,EAAAA,GAAA;AAAA,MAAAE;AAAAA,KAAQ;AAACJ,IAAAA,CAAAA,MAAAI,KAAAA;AAAAJ,IAAAA,CAAAA,MAAAE,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAF,EAAA,CAAA,CAAA;AAAA,EAAA;AAAtD,EAAA,MAAA+G,cAAAA,GAAuBjH,sBAAsBI,EAAS,CAAA;AACtD,EAAA,MAAA0B,QAAcmF,cAAAA,CAAcnF,KAAAA;AAAO,EAAA,IAAAX,EAAAA;AAAA,EAAA,IAAAjB,CAAAA,QAAAsF,cAAAA,EAAA;AACFrE,IAAAA,EAAAA,GAAA;AAAA,MAAAqE;AAAAA,KAAiB;AAACtF,IAAAA,CAAAA,MAAAsF,cAAAA;AAAAtF,IAAAA,CAAAA,MAAAiB,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAjB,EAAA,CAAA,CAAA;AAAA,EAAA;AAAnD,EAAA,MAAAgH,UAAAA,GAAmB3B,cAAcpE,EAAkB,CAAA;AAAE,EAAA,IAAAK,EAAAA;AAAA,EAAA,IAAAtB,CAAAA,CAAA,CAAA,CAAA,KAAAI,KAAAA,IAAAJ,CAAAA,QAAAwC,SAAAA,IAAAxC,CAAAA,CAAA,CAAA,CAAA,KAAA4B,KAAAA,EAAA;AAClBN,IAAAA,EAAAA,GAAA;AAAA,MAAAkB,SAAAA;AAAAA,MAAApC,KAAAA;AAAAA,MAAAwB;AAAAA,KAA0B;AAAC5B,IAAAA,CAAAA,MAAAI,KAAAA;AAAAJ,IAAAA,CAAAA,MAAAwC,SAAAA;AAAAxC,IAAAA,CAAAA,MAAA4B,KAAAA;AAAA5B,IAAAA,CAAAA,MAAAsB,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAtB,EAAA,CAAA,CAAA;AAAA,EAAA;AAA9D,EAAA,MAAAqD,WAAAA,GAAoBd,eAAejB,EAA2B,CAAA;AAAE,EAAA,IAAAI,EAAAA;AAAA,EAAA,IAAA1B,EAAA,CAAA,CAAA,KAAAuD,cAAAvD,CAAAA,QAAAwC,SAAAA,EAAA;AACvBd,IAAAA,EAAAA,GAAA;AAAA,MAAAc,SAAAA;AAAAA,MAAAe;AAAAA,KAAwB;AAACvD,IAAAA,CAAAA,MAAAuD,UAAAA;AAAAvD,IAAAA,CAAAA,MAAAwC,SAAAA;AAAAxC,IAAAA,CAAAA,OAAA0B,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAA1B,EAAA,EAAA,CAAA;AAAA,EAAA;AAAlE,EAAA,MAAAoF,cAAAA,GAAuB9B,kBAAkB5B,EAAyB,CAAA;AAAE,EAAA,IAAA4E,EAAAA;AAAA,EAAA,IAAAtG,CAAAA,CAAA,EAAA,CAAA,KAAA8G,QAAAA,IAAA9G,CAAAA,CAAA,EAAA,CAAA,KAAA4B,KAAAA,IAAA5B,CAAAA,CAAA,EAAA,CAAA,KAAA+G,cAAAA,CAAApF,MAAAA,EAAA;AAGlE2E,IAAAA,EAAAA,GAAAQ,QAAAA,EAAQhE,SAAAA,IAARlB,KAAAA,GACIqF,WAAAA,CAAYC,MAAAA,CAAOJ,QAAAA,CAAQhE,SAAU,CAAA,EAAGlB,KAAAA,CAAKuF,QACzB,CAAA,GAApBJ,cAAAA,CAAcpF,MAAAA;AAAO3B,IAAAA,CAAAA,OAAA8G,QAAAA;AAAA9G,IAAAA,CAAAA,OAAA4B,KAAAA;AAAA5B,IAAAA,CAAAA,CAAA,EAAA,IAAA+G,cAAAA,CAAApF,MAAAA;AAAA3B,IAAAA,CAAAA,OAAAsG,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAtG,EAAA,EAAA,CAAA;AAAA,EAAA;AAH3B,EAAA,MAAA2B,MAAAA,GACE2E,EAAAA;AAIF,EAAA,MAAAc,UAAAA,GAAmBhB,WAAWiB,qBAAqB,CAAA;AAAE,EAAA,IAAAd,EAAAA;AAAA,EAAA,IAAAvG,CAAAA,SAAAoH,UAAAA,EAAA;AAC/Bb,IAAAA,EAAAA,GAAAe,CAAAA,UAAAA,KAAA;AACpBF,MAAAA,UAAAA,CAAWE,UAAU,CAAA;AAAA,IAAC,CAAA;AACvBtH,IAAAA,CAAAA,OAAAoH,UAAAA;AAAApH,IAAAA,CAAAA,OAAAuG,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAvG,EAAA,EAAA,CAAA;AAAA,EAAA;AAFD,EAAA,MAAAuH,aAAAA,GAAsBhB,EAAAA;AAEpB,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAxG,CAAAA,SAAA2B,MAAAA,IAAA3B,EAAA,EAAA,CAAA,KAAAgH,UAAAA,IAAAhH,CAAAA,CAAA,EAAA,CAAA,KAAAuH,iBAAAvH,CAAAA,CAAA,EAAA,CAAA,KAAA+G,cAAAA,IAAA/G,CAAAA,SAAAoF,cAAAA,IAAApF,CAAAA,CAAA,EAAA,CAAA,KAAAqD,WAAAA,EAAA;AAEKmD,IAAAA,EAAAA,GAAA;AAAA,MAAA,GACFO,cAAAA;AAAAA,MAAcpF,MAAAA;AAAAA,MAAA,GAEdqF,UAAAA;AAAAA,MAAU3D,WAAAA;AAAAA,MAAA+B,cAAAA;AAAAA,MAAAmC;AAAAA,KAIf;AAACvH,IAAAA,CAAAA,OAAA2B,MAAAA;AAAA3B,IAAAA,CAAAA,OAAAgH,UAAAA;AAAAhH,IAAAA,CAAAA,OAAAuH,aAAAA;AAAAvH,IAAAA,CAAAA,OAAA+G,cAAAA;AAAA/G,IAAAA,CAAAA,OAAAoF,cAAAA;AAAApF,IAAAA,CAAAA,OAAAqD,WAAAA;AAAArD,IAAAA,CAAAA,OAAAwG,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAxG,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAPMwG,EAAAA;AAON;;;;"}
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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"}
@@ -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":"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"}
1
+ {"version":3,"file":"selectedTokenActionsAtom.js","sources":["../../../../src/core/inputs/state/selectedTokenActionsAtom.ts"],"sourcesContent":["import { atom, type Getter } from \"jotai\";\n\nimport { swapTokenFromAtom, swapTokenToAtom } from \"./selectedTokenAtom\";\nimport { wagmiConfig } from \"@/lib/web3/wagmi/config\";\n\nimport type { Token } from \"@/tokens/state/types\";\nimport { areTokensSame } from \"@/tokens/utils/areTokensSame\";\nimport { pickDefaultTokenPair } from \"@/tokens/defaultTokens\";\nimport {\n findFirstTokenFromAcross,\n isAcrossAvailable,\n isTokenFromAcross,\n} from \"@/core/across/utils\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { deltaParamAtom } from \"@/components/widget/TradeParameters/state/deltaParamAtom\";\nimport { widgetConfigAtom } from \"@/core/state/configAtom\";\nimport { setSwapModeAtom } from \"@/components/widget/SwapModeSwitcher/state/swapModeActionsAtom\";\nimport { jotaiStore } from \"./store\";\nimport { tradeModeAtom } from \"@/core/state/tradeModeAtom\";\nimport { allTokensByChainAtom } from \"@/tokens/state/allTokensByChainAtom\";\nimport { deltaEnabledOnAPI } from \"@/lib/constants/delta\";\nimport { enabledSrcChainsAtom } from \"@/core/state/enabledChainsAtom\";\nimport { switchChain } from \"@/lib/web3/wagmi/switchChain\";\nimport { getSelectableDestChains } from \"@/core/state/configEffectAtom\";\n\nexport const switchSwapTokensAtom = atom(null, (get, set) => {\n const tokenFrom = get(swapTokenFromAtom);\n const tokenTo = get(swapTokenToAtom);\n\n if (!tokenTo) return;\n\n const enabledSrcChains = get(enabledSrcChainsAtom);\n if (!enabledSrcChains.includes(tokenTo.network)) return;\n\n // switch a token from a different chain?\n if (tokenFrom.network !== tokenTo.network) {\n // switch chain first\n switchChain({\n chainId: tokenTo.network,\n });\n }\n\n const newTokenFrom = tokenTo; // tokenTo will go into from position\n let newTokenTo: Token | undefined = tokenFrom; // tentatively consider that tokenFrom is now in to position\n\n // now we need to figure out what token should be in to position in the end\n\n const crosschainPossible = isCrosschainPossible({\n get,\n // tokenTo is now is from position\n chainIdFrom: newTokenFrom.network,\n // considering tokenFrom in to position, is crosschain possible?\n chainIdTo: newTokenTo.network,\n });\n\n // in principle, crosschain is possible for token networks\n if (crosschainPossible) {\n const newTokenToIsFromAcross = isTokenFromAcross({\n // is the new tokenTo an Across token?\n token: newTokenTo,\n // chain of the new tokenFrom\n fromChainId: newTokenFrom.network,\n // chain of the new tokenTo\n toChainId: newTokenTo.network,\n });\n\n // newTokenTo is crossable and different from newTokenFrom\n if (newTokenToIsFromAcross && !areTokensSame(newTokenTo, newTokenFrom)) {\n // can use newTokenTo in to position because it's an Across token\n // no changes needed\n } else {\n // otherwise, we either set tokenTo to the first Across token,\n // or reset tokenTo (set(undefined))\n const maybeAcrossToken = findFirstTokenFromAcross({\n // chain of the new tokenFrom\n fromChainId: newTokenFrom.network,\n // chain of the new tokenTo\n toChainId: newTokenTo.network,\n listByChainId: get(allTokensByChainAtom).listByChainId,\n });\n newTokenTo = maybeAcrossToken;\n }\n } else {\n // crosschain is not possible or we had single-chain from the start\n\n // find default tokens for the new tokenFrom network\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n newTokenFrom.network, // chain of the new tokenFrom\n \"swap\"\n );\n\n // crosschain is not possible for the chain pair,\n // but tokens are from different chains from the start\n if (newTokenFrom.network !== newTokenTo.network) {\n // if cross-chain, then we can't use newTokenTo, so pick from defaults\n newTokenTo = areTokensSame(newTokenFrom, defaultTokenTo)\n ? // taking care that we don't get newTokenTo==newTokenFrom\n defaultTokenFrom\n : defaultTokenTo;\n } else {\n // tokens already from same chain, we set either newTokenTo or defaultTokenFrom as tokenTo\n newTokenTo = areTokensSame(newTokenFrom, newTokenTo)\n ? // taking care that we don't get newTokenTo==newTokenFrom\n defaultTokenTo\n : newTokenTo;\n }\n }\n\n // finally set the tokens\n set(swapTokenFromAtom, newTokenFrom);\n set(swapTokenToAtom, newTokenTo);\n});\n\nexport const selectSwapTokenFromAtom = atom(\n null,\n async (get, set, newTokenFrom: Token) => {\n const enabledSrcChains = get(enabledSrcChainsAtom);\n if (!enabledSrcChains.includes(newTokenFrom.network)) return;\n\n const tokenFrom = get(swapTokenFromAtom);\n const tokenTo = get(swapTokenToAtom);\n\n // selecting a token from a different chain?\n if (newTokenFrom.network !== wagmiConfig.state.chainId) {\n // switch chain first\n switchChain({\n chainId: newTokenFrom.network,\n });\n }\n\n // then set the tokenFrom\n set(swapTokenFromAtom, newTokenFrom);\n\n if (!tokenTo) return;\n\n const crosschainPossible = isCrosschainPossible({\n get,\n chainIdFrom: newTokenFrom.network,\n chainIdTo: tokenTo.network,\n });\n\n if (crosschainPossible) {\n const isTokenToFromAcross = isTokenFromAcross({\n token: tokenTo,\n fromChainId: newTokenFrom.network,\n toChainId: tokenTo.network,\n });\n\n if (!isTokenToFromAcross) {\n // set the token from across as tokenTo,\n // or reset tokenTo if token not found\n const maybeAcrossToken = findFirstTokenFromAcross({\n fromChainId: newTokenFrom.network,\n toChainId: tokenTo.network,\n listByChainId: get(allTokensByChainAtom).listByChainId,\n });\n\n set(swapTokenToAtom, maybeAcrossToken);\n }\n } else {\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n newTokenFrom.network,\n \"swap\"\n );\n\n // cross-chain not possible between new chainFrom and chainTo,\n // so need to reset tokenTo to default\n if (newTokenFrom.network !== tokenTo.network) {\n const newTokenTo = areTokensSame(newTokenFrom, defaultTokenTo)\n ? defaultTokenFrom\n : defaultTokenTo;\n set(swapTokenToAtom, newTokenTo);\n } else {\n // or simply flip the tokens if they are from the same chain\n if (areTokensSame(newTokenFrom, tokenTo)) {\n set(swapTokenToAtom, tokenFrom);\n }\n // otherwise do nothing, tokenTo is already on the same chain and different from newTokenFrom\n }\n }\n }\n);\n\nexport const selectSwapTokenToAtom = atom(\n null,\n async (get, set, newTokenTo: Token) => {\n let tokenFrom = get(swapTokenFromAtom);\n\n const selectableDestChains = getSelectableDestChains(\n get,\n tokenFrom.network\n );\n if (!selectableDestChains.includes(newTokenTo.network)) return;\n\n const newTokenToNetwork = newTokenTo.network;\n\n let tokenTo = get(swapTokenToAtom);\n\n if (areTokensSame(newTokenTo, tokenFrom)) {\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n newTokenToNetwork,\n \"swap\"\n );\n\n const fromDefaults = areTokensSame(tokenFrom, defaultTokenFrom)\n ? defaultTokenTo\n : defaultTokenFrom;\n\n // Will be true if crosschain tokens were selected\n const wasCrosschain = tokenTo && tokenFrom.network !== tokenTo?.network;\n\n const newTokenFrom = wasCrosschain\n ? // We cannot flip the tokens if switching from the crosschain, because if we do, we will end up with tokenFrom network different from app chainId.\n // Switching app chainId when selecting tokenTo is not what we want, because we cannot dictate the main network when selecting tokenTo.\n // Maybe user wants to trade singlechain but we are forcing crosschain.\n fromDefaults\n : // Otherwise, we can flip the tokens, or pick from defaults\n (tokenTo ?? fromDefaults);\n\n set(swapTokenFromAtom, newTokenFrom);\n tokenFrom = newTokenFrom;\n }\n\n set(swapTokenToAtom, newTokenTo);\n tokenTo = newTokenTo;\n\n // after switching we may have ended up with a crosschain pair,\n // but tokenTo may not be crossable depending on srcChainId;\n // this can easily happen if tokenTo was set from WidgetProps\n let needResetTokenFrom = false;\n\n const crosschainPossible = isCrosschainPossible({\n get,\n chainIdFrom: tokenFrom.network,\n chainIdTo: tokenTo.network,\n });\n\n if (crosschainPossible) {\n const isTokenToFromAcross = isTokenFromAcross({\n token: tokenTo,\n fromChainId: tokenFrom.network,\n toChainId: tokenTo.network,\n });\n\n if (!isTokenToFromAcross) {\n // tokenFrom -> tokenTo is crosschain, but tokenTo can't be destToken for that chain\n needResetTokenFrom = true;\n }\n }\n\n if (tokenFrom.network !== tokenTo.network && !crosschainPossible) {\n // tokenFrom -> tokenTo is crosschain, but delta is explicitly disabled,\n needResetTokenFrom = true;\n }\n\n const enabledSrcChains = get(enabledSrcChainsAtom);\n\n if (needResetTokenFrom && enabledSrcChains.includes(tokenTo.network)) {\n // set the tokenFrom to default token from tokenTo.network\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n tokenTo.network,\n \"swap\"\n );\n // make sure it's not the same as tokenTo\n const newTokenFrom = areTokensSame(tokenTo, defaultTokenFrom)\n ? defaultTokenTo\n : defaultTokenFrom;\n\n set(swapTokenFromAtom, newTokenFrom);\n tokenFrom = newTokenFrom;\n }\n\n // crosschain? set SwapMode to Delta\n if (tokenFrom.network !== tokenTo.network) {\n // if delta is explicitly disabled, it won't be set\n set(setSwapModeAtom, \"delta\");\n }\n\n // selecting a token from a different chain?\n if (tokenFrom.network !== wagmiConfig.state.chainId) {\n // request wallet chain switch (non-blocking)\n switchChain({\n chainId: tokenFrom.network,\n });\n }\n }\n);\n\nexport const syncSwapTokensAfterChainSwitch = (chainId: SupportedChainId) => {\n const enabledSrcChains = jotaiStore.get(enabledSrcChainsAtom);\n if (!enabledSrcChains.includes(chainId)) return;\n\n const tokenFrom = jotaiStore.get(swapTokenFromAtom);\n\n // chains are the same? do nothing\n if (tokenFrom.network === chainId) return;\n\n // get default tokens for the new chain\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n chainId,\n \"swap\"\n );\n\n // reassignment for clarity\n const newTokenFrom = defaultTokenFrom;\n\n // update tokenFrom\n jotaiStore.set(swapTokenFromAtom, newTokenFrom);\n\n const tokenTo = jotaiStore.get(swapTokenToAtom);\n\n // toChainId derives from tokenTo.network, if no tokenTo - do nothing\n if (!tokenTo) return;\n\n const crosschainPossible = isCrosschainPossible({\n get: jotaiStore.get,\n chainIdFrom: chainId,\n chainIdTo: tokenTo.network,\n });\n\n if (crosschainPossible) {\n const isTokenToFromAcross = isTokenFromAcross({\n token: tokenTo,\n fromChainId: chainId,\n toChainId: tokenTo.network,\n });\n\n if (!isTokenToFromAcross) {\n // set the token from across as tokenTo,\n // or reset tokenTo if token not found\n const maybeAcrossToken = findFirstTokenFromAcross({\n fromChainId: chainId,\n toChainId: tokenTo.network,\n listByChainId: jotaiStore.get(allTokensByChainAtom).listByChainId,\n });\n\n jotaiStore.set(swapTokenToAtom, maybeAcrossToken);\n }\n\n jotaiStore.set(setSwapModeAtom, \"delta\");\n } else {\n const selectableDestChains = getSelectableDestChains(\n jotaiStore.get,\n newTokenFrom.network\n );\n if (selectableDestChains.includes(chainId)) {\n // can do single-chain on the new chain, set defaults\n jotaiStore.set(swapTokenToAtom, defaultTokenTo);\n } else {\n // avoid complexity and reset tokenTo\n jotaiStore.set(swapTokenToAtom, undefined);\n }\n }\n};\n\nfunction isCrosschainPossible({\n get,\n chainIdFrom,\n chainIdTo,\n}: {\n get: Getter;\n chainIdFrom: SupportedChainId;\n chainIdTo: SupportedChainId;\n}): boolean {\n if (!deltaEnabledOnAPI[chainIdFrom]) return false;\n\n if (!isAcrossAvailable({ chainIdFrom, chainIdTo })) return false;\n\n const tradeMode = get(tradeModeAtom);\n if (tradeMode !== \"swap\") return false;\n\n const deltaEnabledInSettings = get(deltaParamAtom);\n if (!deltaEnabledInSettings) return false;\n\n const { enableDelta, enableCrossChain } = get(widgetConfigAtom);\n if (!enableDelta || !enableCrossChain) return false;\n\n const enabledSrcChains = get(enabledSrcChainsAtom);\n if (!enabledSrcChains.includes(chainIdFrom)) return false;\n\n const selectableDestChains = getSelectableDestChains(get, chainIdFrom);\n if (!selectableDestChains.includes(chainIdTo)) return false;\n\n return true;\n}\n"],"names":["switchSwapTokensAtom","atom","get","set","tokenFrom","swapTokenFromAtom","tokenTo","swapTokenToAtom","enabledSrcChains","enabledSrcChainsAtom","includes","network","switchChain","chainId","newTokenFrom","newTokenTo","crosschainPossible","isCrosschainPossible","chainIdFrom","chainIdTo","newTokenToIsFromAcross","isTokenFromAcross","token","fromChainId","toChainId","areTokensSame","maybeAcrossToken","findFirstTokenFromAcross","listByChainId","allTokensByChainAtom","defaultTokenFrom","defaultTokenTo","pickDefaultTokenPair","selectSwapTokenFromAtom","wagmiConfig","state","isTokenToFromAcross","selectSwapTokenToAtom","selectableDestChains","getSelectableDestChains","newTokenToNetwork","fromDefaults","wasCrosschain","needResetTokenFrom","setSwapModeAtom","syncSwapTokensAfterChainSwitch","jotaiStore","undefined","deltaEnabledOnAPI","isAcrossAvailable","tradeMode","tradeModeAtom","deltaEnabledInSettings","deltaParamAtom","enableDelta","enableCrossChain","widgetConfigAtom"],"mappings":";;;;;;;;;;;;;;;;;AAyBO,MAAMA,oBAAAA,GAAuBC,IAAAA,CAAK,IAAA,EAAM,CAACC,KAAKC,GAAAA,KAAQ;AAC3D,EAAA,MAAMC,SAAAA,GAAYF,IAAIG,iBAAiB,CAAA;AACvC,EAAA,MAAMC,OAAAA,GAAUJ,IAAIK,eAAe,CAAA;AAEnC,EAAA,IAAI,CAACD,OAAAA,EAAS;AAEd,EAAA,MAAME,gBAAAA,GAAmBN,IAAIO,oBAAoB,CAAA;AACjD,EAAA,IAAI,CAACD,gBAAAA,CAAiBE,QAAAA,CAASJ,OAAAA,CAAQK,OAAO,CAAA,EAAG;AAGjD,EAAA,IAAIP,SAAAA,CAAUO,OAAAA,KAAYL,OAAAA,CAAQK,OAAAA,EAAS;AAEzCC,IAAAA,WAAAA,CAAY;AAAA,MACVC,SAASP,OAAAA,CAAQK;AAAAA,KAClB,CAAA;AAAA,EACH;AAEA,EAAA,MAAMG,YAAAA,GAAeR,OAAAA;AACrB,EAAA,IAAIS,UAAAA,GAAgCX,SAAAA;AAIpC,EAAA,MAAMY,qBAAqBC,oBAAAA,CAAqB;AAAA,IAC9Cf,GAAAA;AAAAA;AAAAA,IAEAgB,aAAaJ,YAAAA,CAAaH,OAAAA;AAAAA;AAAAA,IAE1BQ,WAAWJ,UAAAA,CAAWJ;AAAAA,GACvB,CAAA;AAGD,EAAA,IAAIK,kBAAAA,EAAoB;AACtB,IAAA,MAAMI,yBAAyBC,iBAAAA,CAAkB;AAAA;AAAA,MAE/CC,KAAAA,EAAOP,UAAAA;AAAAA;AAAAA,MAEPQ,aAAaT,YAAAA,CAAaH,OAAAA;AAAAA;AAAAA,MAE1Ba,WAAWT,UAAAA,CAAWJ;AAAAA,KACvB,CAAA;AAGD,IAAA,IAAIS,sBAAAA,IAA0B,CAACK,aAAAA,CAAcV,UAAAA,EAAYD,YAAY,CAAA,EAAG,CAEtE,MACK;AAGL,MAAA,MAAMY,mBAAmBC,wBAAAA,CAAyB;AAAA;AAAA,QAEhDJ,aAAaT,YAAAA,CAAaH,OAAAA;AAAAA;AAAAA,QAE1Ba,WAAWT,UAAAA,CAAWJ,OAAAA;AAAAA,QACtBiB,aAAAA,EAAe1B,GAAAA,CAAI2B,oBAAoB,CAAA,CAAED;AAAAA,OAC1C,CAAA;AACDb,MAAAA,UAAAA,GAAaW,gBAAAA;AAAAA,IACf;AAAA,EACF,CAAA,MAAO;AAIL,IAAA,MAAM,CAACI,gBAAAA,EAAkBC,cAAc,CAAA,GAAIC,oBAAAA;AAAAA,MACzClB,YAAAA,CAAaH,OAAAA;AAAAA;AAAAA,MACb;AAAA,KACF;AAIA,IAAA,IAAIG,YAAAA,CAAaH,OAAAA,KAAYI,UAAAA,CAAWJ,OAAAA,EAAS;AAE/CI,MAAAA,UAAAA,GAAaU,aAAAA,CAAcX,cAAciB,cAAc,CAAA;AAAA;AAAA,QAEnDD;AAAAA,UACAC,cAAAA;AAAAA,IACN,CAAA,MAAO;AAELhB,MAAAA,UAAAA,GAAaU,aAAAA,CAAcX,cAAcC,UAAU,CAAA;AAAA;AAAA,QAE/CgB;AAAAA,UACAhB,UAAAA;AAAAA,IACN;AAAA,EACF;AAGAZ,EAAAA,GAAAA,CAAIE,mBAAmBS,YAAY,CAAA;AACnCX,EAAAA,GAAAA,CAAII,iBAAiBQ,UAAU,CAAA;AACjC,CAAC;AAEM,MAAMkB,0BAA0BhC,IAAAA,CACrC,IAAA,EACA,OAAOC,GAAAA,EAAKC,KAAKW,YAAAA,KAAwB;AACvC,EAAA,MAAMN,gBAAAA,GAAmBN,IAAIO,oBAAoB,CAAA;AACjD,EAAA,IAAI,CAACD,gBAAAA,CAAiBE,QAAAA,CAASI,YAAAA,CAAaH,OAAO,CAAA,EAAG;AAEtD,EAAA,MAAMP,SAAAA,GAAYF,IAAIG,iBAAiB,CAAA;AACvC,EAAA,MAAMC,OAAAA,GAAUJ,IAAIK,eAAe,CAAA;AAGnC,EAAA,IAAIO,YAAAA,CAAaH,OAAAA,KAAYuB,WAAAA,CAAYC,KAAAA,CAAMtB,OAAAA,EAAS;AAEtDD,IAAAA,WAAAA,CAAY;AAAA,MACVC,SAASC,YAAAA,CAAaH;AAAAA,KACvB,CAAA;AAAA,EACH;AAGAR,EAAAA,GAAAA,CAAIE,mBAAmBS,YAAY,CAAA;AAEnC,EAAA,IAAI,CAACR,OAAAA,EAAS;AAEd,EAAA,MAAMU,qBAAqBC,oBAAAA,CAAqB;AAAA,IAC9Cf,GAAAA;AAAAA,IACAgB,aAAaJ,YAAAA,CAAaH,OAAAA;AAAAA,IAC1BQ,WAAWb,OAAAA,CAAQK;AAAAA,GACpB,CAAA;AAED,EAAA,IAAIK,kBAAAA,EAAoB;AACtB,IAAA,MAAMoB,sBAAsBf,iBAAAA,CAAkB;AAAA,MAC5CC,KAAAA,EAAOhB,OAAAA;AAAAA,MACPiB,aAAaT,YAAAA,CAAaH,OAAAA;AAAAA,MAC1Ba,WAAWlB,OAAAA,CAAQK;AAAAA,KACpB,CAAA;AAED,IAAA,IAAI,CAACyB,mBAAAA,EAAqB;AAGxB,MAAA,MAAMV,mBAAmBC,wBAAAA,CAAyB;AAAA,QAChDJ,aAAaT,YAAAA,CAAaH,OAAAA;AAAAA,QAC1Ba,WAAWlB,OAAAA,CAAQK,OAAAA;AAAAA,QACnBiB,aAAAA,EAAe1B,GAAAA,CAAI2B,oBAAoB,CAAA,CAAED;AAAAA,OAC1C,CAAA;AAEDzB,MAAAA,GAAAA,CAAII,iBAAiBmB,gBAAgB,CAAA;AAAA,IACvC;AAAA,EACF,CAAA,MAAO;AACL,IAAA,MAAM,CAACI,gBAAAA,EAAkBC,cAAc,IAAIC,oBAAAA,CACzClB,YAAAA,CAAaH,SACb,MACF,CAAA;AAIA,IAAA,IAAIG,YAAAA,CAAaH,OAAAA,KAAYL,OAAAA,CAAQK,OAAAA,EAAS;AAC5C,MAAA,MAAMI,UAAAA,GAAaU,aAAAA,CAAcX,YAAAA,EAAciB,cAAc,IACzDD,gBAAAA,GACAC,cAAAA;AACJ5B,MAAAA,GAAAA,CAAII,iBAAiBQ,UAAU,CAAA;AAAA,IACjC,CAAA,MAAO;AAEL,MAAA,IAAIU,aAAAA,CAAcX,YAAAA,EAAcR,OAAO,CAAA,EAAG;AACxCH,QAAAA,GAAAA,CAAII,iBAAiBH,SAAS,CAAA;AAAA,MAChC;AAAA,IAEF;AAAA,EACF;AACF,CACF;AAEO,MAAMiC,wBAAwBpC,IAAAA,CACnC,IAAA,EACA,OAAOC,GAAAA,EAAKC,KAAKY,UAAAA,KAAsB;AACrC,EAAA,IAAIX,SAAAA,GAAYF,IAAIG,iBAAiB,CAAA;AAErC,EAAA,MAAMiC,oBAAAA,GAAuBC,uBAAAA,CAC3BrC,GAAAA,EACAE,SAAAA,CAAUO,OACZ,CAAA;AACA,EAAA,IAAI,CAAC2B,oBAAAA,CAAqB5B,QAAAA,CAASK,UAAAA,CAAWJ,OAAO,CAAA,EAAG;AAExD,EAAA,MAAM6B,oBAAoBzB,UAAAA,CAAWJ,OAAAA;AAErC,EAAA,IAAIL,OAAAA,GAAUJ,IAAIK,eAAe,CAAA;AAEjC,EAAA,IAAIkB,aAAAA,CAAcV,UAAAA,EAAYX,SAAS,CAAA,EAAG;AACxC,IAAA,MAAM,CAAC0B,gBAAAA,EAAkBC,cAAc,CAAA,GAAIC,oBAAAA,CACzCQ,mBACA,MACF,CAAA;AAEA,IAAA,MAAMC,YAAAA,GAAehB,aAAAA,CAAcrB,SAAAA,EAAW0B,gBAAgB,IAC1DC,cAAAA,GACAD,gBAAAA;AAGJ,IAAA,MAAMY,aAAAA,GAAgBpC,OAAAA,IAAWF,SAAAA,CAAUO,OAAAA,KAAYL,OAAAA,EAASK,OAAAA;AAEhE,IAAA,MAAMG,YAAAA,GAAe4B,aAAAA;AAAAA;AAAAA;AAAAA;AAAAA,MAIjBD;AAAAA;AAAAA;AAAAA,MAECnC,OAAAA,IAAWmC;AAAAA,KAAAA;AAEhBtC,IAAAA,GAAAA,CAAIE,mBAAmBS,YAAY,CAAA;AACnCV,IAAAA,SAAAA,GAAYU,YAAAA;AAAAA,EACd;AAEAX,EAAAA,GAAAA,CAAII,iBAAiBQ,UAAU,CAAA;AAC/BT,EAAAA,OAAAA,GAAUS,UAAAA;AAKV,EAAA,IAAI4B,kBAAAA,GAAqB,KAAA;AAEzB,EAAA,MAAM3B,qBAAqBC,oBAAAA,CAAqB;AAAA,IAC9Cf,GAAAA;AAAAA,IACAgB,aAAad,SAAAA,CAAUO,OAAAA;AAAAA,IACvBQ,WAAWb,OAAAA,CAAQK;AAAAA,GACpB,CAAA;AAED,EAAA,IAAIK,kBAAAA,EAAoB;AACtB,IAAA,MAAMoB,sBAAsBf,iBAAAA,CAAkB;AAAA,MAC5CC,KAAAA,EAAOhB,OAAAA;AAAAA,MACPiB,aAAanB,SAAAA,CAAUO,OAAAA;AAAAA,MACvBa,WAAWlB,OAAAA,CAAQK;AAAAA,KACpB,CAAA;AAED,IAAA,IAAI,CAACyB,mBAAAA,EAAqB;AAExBO,MAAAA,kBAAAA,GAAqB,IAAA;AAAA,IACvB;AAAA,EACF;AAEA,EAAA,IAAIvC,SAAAA,CAAUO,OAAAA,KAAYL,OAAAA,CAAQK,OAAAA,IAAW,CAACK,kBAAAA,EAAoB;AAEhE2B,IAAAA,kBAAAA,GAAqB,IAAA;AAAA,EACvB;AAEA,EAAA,MAAMnC,gBAAAA,GAAmBN,IAAIO,oBAAoB,CAAA;AAEjD,EAAA,IAAIkC,kBAAAA,IAAsBnC,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,MAAMG,YAAAA,GAAeW,aAAAA,CAAcnB,OAAAA,EAASwB,gBAAgB,IACxDC,cAAAA,GACAD,gBAAAA;AAEJ3B,IAAAA,GAAAA,CAAIE,mBAAmBS,YAAY,CAAA;AACnCV,IAAAA,SAAAA,GAAYU,YAAAA;AAAAA,EACd;AAGA,EAAA,IAAIV,SAAAA,CAAUO,OAAAA,KAAYL,OAAAA,CAAQK,OAAAA,EAAS;AAEzCR,IAAAA,GAAAA,CAAIyC,iBAAiB,OAAO,CAAA;AAAA,EAC9B;AAGA,EAAA,IAAIxC,SAAAA,CAAUO,OAAAA,KAAYuB,WAAAA,CAAYC,KAAAA,CAAMtB,OAAAA,EAAS;AAEnDD,IAAAA,WAAAA,CAAY;AAAA,MACVC,SAAST,SAAAA,CAAUO;AAAAA,KACpB,CAAA;AAAA,EACH;AACF,CACF;AAEO,MAAMkC,8BAAAA,GAAiCA,CAAChC,OAAAA,KAA8B;AAC3E,EAAA,MAAML,gBAAAA,GAAmBsC,UAAAA,CAAW5C,GAAAA,CAAIO,oBAAoB,CAAA;AAC5D,EAAA,IAAI,CAACD,gBAAAA,CAAiBE,QAAAA,CAASG,OAAO,CAAA,EAAG;AAEzC,EAAA,MAAMT,SAAAA,GAAY0C,UAAAA,CAAW5C,GAAAA,CAAIG,iBAAiB,CAAA;AAGlD,EAAA,IAAID,SAAAA,CAAUO,YAAYE,OAAAA,EAAS;AAGnC,EAAA,MAAM,CAACiB,gBAAAA,EAAkBC,cAAc,CAAA,GAAIC,oBAAAA,CACzCnB,SACA,MACF,CAAA;AAGA,EAAA,MAAMC,YAAAA,GAAegB,gBAAAA;AAGrBgB,EAAAA,UAAAA,CAAW3C,GAAAA,CAAIE,mBAAmBS,YAAY,CAAA;AAE9C,EAAA,MAAMR,OAAAA,GAAUwC,UAAAA,CAAW5C,GAAAA,CAAIK,eAAe,CAAA;AAG9C,EAAA,IAAI,CAACD,OAAAA,EAAS;AAEd,EAAA,MAAMU,qBAAqBC,oBAAAA,CAAqB;AAAA,IAC9Cf,KAAK4C,UAAAA,CAAW5C,GAAAA;AAAAA,IAChBgB,WAAAA,EAAaL,OAAAA;AAAAA,IACbM,WAAWb,OAAAA,CAAQK;AAAAA,GACpB,CAAA;AAED,EAAA,IAAIK,kBAAAA,EAAoB;AACtB,IAAA,MAAMoB,sBAAsBf,iBAAAA,CAAkB;AAAA,MAC5CC,KAAAA,EAAOhB,OAAAA;AAAAA,MACPiB,WAAAA,EAAaV,OAAAA;AAAAA,MACbW,WAAWlB,OAAAA,CAAQK;AAAAA,KACpB,CAAA;AAED,IAAA,IAAI,CAACyB,mBAAAA,EAAqB;AAGxB,MAAA,MAAMV,mBAAmBC,wBAAAA,CAAyB;AAAA,QAChDJ,WAAAA,EAAaV,OAAAA;AAAAA,QACbW,WAAWlB,OAAAA,CAAQK,OAAAA;AAAAA,QACnBiB,aAAAA,EAAekB,UAAAA,CAAW5C,GAAAA,CAAI2B,oBAAoB,CAAA,CAAED;AAAAA,OACrD,CAAA;AAEDkB,MAAAA,UAAAA,CAAW3C,GAAAA,CAAII,iBAAiBmB,gBAAgB,CAAA;AAAA,IAClD;AAEAoB,IAAAA,UAAAA,CAAW3C,GAAAA,CAAIyC,iBAAiB,OAAO,CAAA;AAAA,EACzC,CAAA,MAAO;AACL,IAAA,MAAMN,oBAAAA,GAAuBC,uBAAAA,CAC3BO,UAAAA,CAAW5C,GAAAA,EACXY,aAAaH,OACf,CAAA;AACA,IAAA,IAAI2B,oBAAAA,CAAqB5B,QAAAA,CAASG,OAAO,CAAA,EAAG;AAE1CiC,MAAAA,UAAAA,CAAW3C,GAAAA,CAAII,iBAAiBwB,cAAc,CAAA;AAAA,IAChD,CAAA,MAAO;AAELe,MAAAA,UAAAA,CAAW3C,GAAAA,CAAII,iBAAiBwC,MAAS,CAAA;AAAA,IAC3C;AAAA,EACF;AACF;AAEA,SAAS9B,oBAAAA,CAAqB;AAAA,EAC5Bf,GAAAA;AAAAA,EACAgB,WAAAA;AAAAA,EACAC;AAKF,CAAA,EAAY;AACV,EAAA,IAAI,CAAC6B,iBAAAA,CAAkB9B,WAAW,CAAA,EAAG,OAAO,KAAA;AAE5C,EAAA,IAAI,CAAC+B,iBAAAA,CAAkB;AAAA,IAAE/B,WAAAA;AAAAA,IAAaC;AAAAA,GAAW,GAAG,OAAO,KAAA;AAE3D,EAAA,MAAM+B,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,MAAM/C,gBAAAA,GAAmBN,IAAIO,oBAAoB,CAAA;AACjD,EAAA,IAAI,CAACD,gBAAAA,CAAiBE,QAAAA,CAASQ,WAAW,GAAG,OAAO,KAAA;AAEpD,EAAA,MAAMoB,oBAAAA,GAAuBC,uBAAAA,CAAwBrC,GAAAA,EAAKgB,WAAW,CAAA;AACrE,EAAA,IAAI,CAACoB,oBAAAA,CAAqB5B,QAAAA,CAASS,SAAS,GAAG,OAAO,KAAA;AAEtD,EAAA,OAAO,IAAA;AACT;;;;"}
@@ -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"}
@@ -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"}
@@ -0,0 +1,41 @@
1
+ import { amountAfterSlippage } from '../../lib/utils/slippage.js';
2
+ import { toDecimalTrimmed } from '../../lib/utils/toDecimal.js';
3
+ import { formatUnits } from 'viem';
4
+
5
+ const tooltip = "Maximum amount of token to pay to get the receiving amount while accounting for potential slippage.";
6
+ function constructMaxToPayDetail({
7
+ price,
8
+ slippagePercent,
9
+ isLoading,
10
+ tokenFrom,
11
+ swapSide
12
+ }) {
13
+ if (swapSide === "SELL") return;
14
+ const title = "Maximum to Pay";
15
+ if (!price || !tokenFrom) {
16
+ return {
17
+ title,
18
+ value: null,
19
+ isLoading,
20
+ tooltip
21
+ };
22
+ }
23
+ const maxSrcAmount = amountAfterSlippage(
24
+ // amount after fee
25
+ price.srcAmount,
26
+ // +slippage=maxAmount to pay
27
+ slippagePercent,
28
+ "BUY"
29
+ ).toFixed(0);
30
+ const maxSrcAmountUnit = formatUnits(BigInt(maxSrcAmount), tokenFrom.decimals);
31
+ const formattedMaxSrcAmount = toDecimalTrimmed(maxSrcAmountUnit);
32
+ return {
33
+ title,
34
+ value: `${formattedMaxSrcAmount} ${tokenFrom.symbol}`,
35
+ isLoading,
36
+ tooltip
37
+ };
38
+ }
39
+
40
+ export { constructMaxToPayDetail };
41
+ //# sourceMappingURL=maxToPay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maxToPay.js","sources":["../../../src/core/swapDetails/maxToPay.tsx"],"sourcesContent":["import type { DetailWithValue } from \"@/components/widget/Details/types\";\nimport type { DeltaOrMarketPrice } from \"@/hooks/swap/prices/types\";\nimport { amountAfterSlippage } from \"@/lib/utils/slippage\";\nimport { toDecimalTrimmed } from \"@/lib/utils/toDecimal\";\nimport type { Token } from \"@/tokens/state/types\";\n\nimport { formatUnits } from \"viem\";\n\nconst tooltip =\n \"Maximum amount of token to pay to get the receiving amount while accounting for potential slippage.\";\n\nexport function constructMaxToPayDetail({\n price,\n slippagePercent,\n isLoading,\n tokenFrom,\n swapSide,\n}: {\n price?: DeltaOrMarketPrice;\n slippagePercent: number;\n isLoading: boolean;\n tokenFrom?: Token;\n swapSide: \"SELL\" | \"BUY\";\n}): DetailWithValue | undefined {\n // in case of SELL you pay exactly srcAmount\n if (swapSide === \"SELL\") return;\n\n const title = \"Maximum to Pay\";\n\n if (!price || !tokenFrom) {\n return {\n title,\n value: null,\n isLoading,\n tooltip,\n };\n }\n\n const maxSrcAmount = amountAfterSlippage(\n // amount after fee\n price.srcAmount,\n // +slippage=maxAmount to pay\n slippagePercent,\n \"BUY\"\n ).toFixed(0);\n const maxSrcAmountUnit = formatUnits(\n BigInt(maxSrcAmount),\n tokenFrom.decimals\n );\n const formattedMaxSrcAmount = toDecimalTrimmed(maxSrcAmountUnit);\n\n return {\n title,\n value: `${formattedMaxSrcAmount} ${tokenFrom.symbol}`,\n isLoading,\n tooltip,\n };\n}\n"],"names":["tooltip","constructMaxToPayDetail","price","slippagePercent","isLoading","tokenFrom","swapSide","title","value","maxSrcAmount","amountAfterSlippage","srcAmount","toFixed","maxSrcAmountUnit","formatUnits","BigInt","decimals","formattedMaxSrcAmount","toDecimalTrimmed","symbol"],"mappings":";;;;AAQA,MAAMA,OAAAA,GACJ,qGAAA;AAEK,SAASC,uBAAAA,CAAwB;AAAA,EACtCC,KAAAA;AAAAA,EACAC,eAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACAC;AAOF,CAAA,EAAgC;AAE9B,EAAA,IAAIA,aAAa,MAAA,EAAQ;AAEzB,EAAA,MAAMC,KAAAA,GAAQ,gBAAA;AAEd,EAAA,IAAI,CAACL,KAAAA,IAAS,CAACG,SAAAA,EAAW;AACxB,IAAA,OAAO;AAAA,MACLE,KAAAA;AAAAA,MACAC,KAAAA,EAAO,IAAA;AAAA,MACPJ,SAAAA;AAAAA,MACAJ;AAAAA,KACF;AAAA,EACF;AAEA,EAAA,MAAMS,YAAAA,GAAeC,mBAAAA;AAAAA;AAAAA,IAEnBR,KAAAA,CAAMS,SAAAA;AAAAA;AAAAA,IAENR,eAAAA;AAAAA,IACA;AAAA,GACF,CAAES,QAAQ,CAAC,CAAA;AACX,EAAA,MAAMC,mBAAmBC,WAAAA,CACvBC,MAAAA,CAAON,YAAY,CAAA,EACnBJ,UAAUW,QACZ,CAAA;AACA,EAAA,MAAMC,qBAAAA,GAAwBC,iBAAiBL,gBAAgB,CAAA;AAE/D,EAAA,OAAO;AAAA,IACLN,KAAAA;AAAAA,IACAC,KAAAA,EAAO,CAAA,EAAGS,qBAAqB,CAAA,CAAA,EAAIZ,UAAUc,MAAM,CAAA,CAAA;AAAA,IACnDf,SAAAA;AAAAA,IACAJ;AAAAA,GACF;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useSwapDetailsListProps.d.ts","sourceRoot":"","sources":["../../../src/core/swapDetails/useSwapDetailsListProps.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,kCAAkC,EACnC,MAAM,mCAAmC,CAAC;AA0B3C,eAAO,MAAM,uBAAuB,QAC9B,kCAsGH,CAAC"}
1
+ {"version":3,"file":"useSwapDetailsListProps.d.ts","sourceRoot":"","sources":["../../../src/core/swapDetails/useSwapDetailsListProps.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,kCAAkC,EACnC,MAAM,mCAAmC,CAAC;AA2B3C,eAAO,MAAM,uBAAuB,QAC9B,kCAgHH,CAAC"}
@@ -15,6 +15,7 @@ import { useSlippage } from '../../hooks/useSlippage.js';
15
15
  import { ReactComponent as ForwardRef } from '../../assets/price-impact.svg.js';
16
16
  import { TooltipTrigger, TooltipContent, Tooltip } from '../../components/ui/tooltip.js';
17
17
  import { Skeleton } from '../../components/ui/skeleton.js';
18
+ import { constructMaxToPayDetail } from './maxToPay.js';
18
19
 
19
20
  const useSwapDetailsListProps = () => {
20
21
  const $ = distExports.c(49);
@@ -73,14 +74,20 @@ const useSwapDetailsListProps = () => {
73
74
  swapMode: priceMode,
74
75
  isLoading
75
76
  });
76
- const youGetDetail = constructYouGetDetail({
77
+ const minMaxDetail = swapSide === "SELL" ? constructYouGetDetail({
77
78
  price,
78
79
  isLoading,
79
80
  slippagePercent: resolvedSlippage,
80
81
  tokenTo,
81
82
  swapSide
83
+ }) : constructMaxToPayDetail({
84
+ price,
85
+ isLoading,
86
+ slippagePercent: resolvedSlippage,
87
+ tokenFrom,
88
+ swapSide
82
89
  });
83
- details = [orderRoutingDetail, priceImpactDetail, swapFeesDetail, youGetDetail, networkFeesDetail].filter(isTruthy);
90
+ details = [orderRoutingDetail, priceImpactDetail, swapFeesDetail, minMaxDetail, networkFeesDetail].filter(isTruthy);
84
91
  const isBuy = swapSide === "BUY";
85
92
  t5 = "flex items-center justify-between";
86
93
  let t72;
@@ -1 +1 @@
1
- {"version":3,"file":"useSwapDetailsListProps.js","sources":["../../../src/core/swapDetails/useSwapDetailsListProps.tsx"],"sourcesContent":["import type {\n DetailWithValue,\n DetailWithValueListExpandableProps,\n} from \"@/components/widget/Details/types\";\nimport { SwapRate } from \"@/components/widget/SwapRate/SwapRate\";\nimport { useCurrentSwapPrice } from \"@/hooks/swap/prices/useSwapPrices\";\nimport { useWidgetTokens } from \"../inputs/state/common\";\nimport { useAtomValue } from \"jotai\";\nimport {\n payInputAmountWeiAtom,\n receiveInputAmountWeiAtom,\n} from \"../inputs/state/inputAmountAtom\";\n\nimport { constructOrderRoutingDetail } from \"./orderRouting\";\nimport { constructPriceImpactDetail } from \"./priceImpact\";\nimport { constructSwapFeesDetail, constructNetworkFeesDetail } from \"./fees\";\nimport { useSwapSide } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport { cn, isTruthy } from \"@/lib/utils\";\nimport { constructYouGetDetail } from \"./youGet\";\nimport { useSlippage } from \"@/hooks/useSlippage\";\n\nimport { ReactComponent as PriceImpactSVG } from \"@/assets/price-impact.svg\";\nimport {\n Tooltip,\n TooltipTrigger,\n TooltipContent,\n} from \"@/components/ui/tooltip\";\nimport { Skeleton } from \"@/components/ui/skeleton\";\n\nexport const useSwapDetailsListProps =\n (): DetailWithValueListExpandableProps => {\n const { tokenFrom, tokenTo } = useWidgetTokens(\"swap\");\n\n const srcAmountWei = useAtomValue(payInputAmountWeiAtom);\n const destAmountWei = useAtomValue(receiveInputAmountWeiAtom);\n\n const { isLoading, price, priceMode } = useCurrentSwapPrice({\n enabled: false,\n });\n\n const { resolvedSlippage } = useSlippage(\"swap\");\n const swapSide = useSwapSide();\n\n const orderRoutingDetail = constructOrderRoutingDetail({\n bestRoutes: price && \"bestRoute\" in price ? price.bestRoute : undefined,\n swapMode: priceMode,\n isLoading,\n });\n\n const { isHighImpact, ...priceImpactDetail } = constructPriceImpactDetail({\n price,\n isLoading,\n });\n\n const swapFeesDetail = constructSwapFeesDetail({\n price,\n isLoading,\n });\n\n const networkFeesDetail = constructNetworkFeesDetail({\n price,\n swapMode: priceMode,\n isLoading,\n });\n\n const youGetDetail = constructYouGetDetail({\n price,\n isLoading,\n slippagePercent: resolvedSlippage,\n tokenTo,\n swapSide,\n });\n\n const details: DetailWithValue[] = [\n orderRoutingDetail,\n priceImpactDetail,\n swapFeesDetail,\n youGetDetail,\n networkFeesDetail,\n // @TODO: Max To Pay detail for BUY mode\n ].filter(isTruthy);\n\n const isBuy = swapSide === \"BUY\";\n\n return {\n trigger: (\n <div className=\"flex items-center justify-between\">\n <Tooltip>\n <TooltipTrigger asChild>\n <div>\n <SwapRate\n srcToken={tokenFrom}\n destToken={tokenTo}\n srcAmountWei={srcAmountWei}\n destAmountWei={destAmountWei}\n isLoading={isLoading}\n reverse={isBuy}\n />\n </div>\n </TooltipTrigger>\n <TooltipContent>\n Best price for this trade based on the current market conditions\n </TooltipContent>\n </Tooltip>\n\n <Tooltip>\n <TooltipTrigger asChild>\n <div className=\"flex items-center gap-1\">\n {!isHighImpact && <PriceImpactSVG className=\"size-[16px]\" />}\n {priceImpactDetail.isLoading ? (\n <Skeleton className=\"bg-contrast-6 dark:bg-contrast-5 min-w-[42px] h-[12px]\" />\n ) : (\n <div\n className={cn({\n \"text-secondary-orange-peel-1 dark:text-secondary-orange-peel-1\":\n isHighImpact,\n })}\n >\n {priceImpactDetail.value ?? \"-\"}\n </div>\n )}\n </div>\n </TooltipTrigger>\n <TooltipContent>Price Impact</TooltipContent>\n </Tooltip>\n </div>\n ),\n details,\n classes: {\n root: \"mt-4\",\n },\n };\n };\n"],"names":["useSwapDetailsListProps","$","_c","tokenFrom","tokenTo","useWidgetTokens","srcAmountWei","useAtomValue","payInputAmountWeiAtom","destAmountWei","receiveInputAmountWeiAtom","t0","Symbol","for","enabled","isLoading","price","priceMode","useCurrentSwapPrice","resolvedSlippage","useSlippage","swapSide","useSwapSide","T0","T1","details","t1","t2","t3","t4","t5","t6","orderRoutingDetail","constructOrderRoutingDetail","bestRoutes","bestRoute","undefined","swapMode","isHighImpact","priceImpactDetail","constructPriceImpactDetail","swapFeesDetail","constructSwapFeesDetail","networkFeesDetail","constructNetworkFeesDetail","youGetDetail","constructYouGetDetail","slippagePercent","filter","isTruthy","isBuy","t7","t8","Tooltip","TooltipTrigger","PriceImpactSVG","cn","value","t9","t10","t11","t12","root","t13","trigger","classes"],"mappings":"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"}
1
+ {"version":3,"file":"useSwapDetailsListProps.js","sources":["../../../src/core/swapDetails/useSwapDetailsListProps.tsx"],"sourcesContent":["import type {\n DetailWithValue,\n DetailWithValueListExpandableProps,\n} from \"@/components/widget/Details/types\";\nimport { SwapRate } from \"@/components/widget/SwapRate/SwapRate\";\nimport { useCurrentSwapPrice } from \"@/hooks/swap/prices/useSwapPrices\";\nimport { useWidgetTokens } from \"../inputs/state/common\";\nimport { useAtomValue } from \"jotai\";\nimport {\n payInputAmountWeiAtom,\n receiveInputAmountWeiAtom,\n} from \"../inputs/state/inputAmountAtom\";\n\nimport { constructOrderRoutingDetail } from \"./orderRouting\";\nimport { constructPriceImpactDetail } from \"./priceImpact\";\nimport { constructSwapFeesDetail, constructNetworkFeesDetail } from \"./fees\";\nimport { useSwapSide } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport { cn, isTruthy } from \"@/lib/utils\";\nimport { constructYouGetDetail } from \"./youGet\";\nimport { useSlippage } from \"@/hooks/useSlippage\";\n\nimport { ReactComponent as PriceImpactSVG } from \"@/assets/price-impact.svg\";\nimport {\n Tooltip,\n TooltipTrigger,\n TooltipContent,\n} from \"@/components/ui/tooltip\";\nimport { Skeleton } from \"@/components/ui/skeleton\";\nimport { constructMaxToPayDetail } from \"./maxToPay\";\n\nexport const useSwapDetailsListProps =\n (): DetailWithValueListExpandableProps => {\n const { tokenFrom, tokenTo } = useWidgetTokens(\"swap\");\n\n const srcAmountWei = useAtomValue(payInputAmountWeiAtom);\n const destAmountWei = useAtomValue(receiveInputAmountWeiAtom);\n\n const { isLoading, price, priceMode } = useCurrentSwapPrice({\n enabled: false,\n });\n\n const { resolvedSlippage } = useSlippage(\"swap\");\n const swapSide = useSwapSide();\n\n const orderRoutingDetail = constructOrderRoutingDetail({\n bestRoutes: price && \"bestRoute\" in price ? price.bestRoute : undefined,\n swapMode: priceMode,\n isLoading,\n });\n\n const { isHighImpact, ...priceImpactDetail } = constructPriceImpactDetail({\n price,\n isLoading,\n });\n\n const swapFeesDetail = constructSwapFeesDetail({\n price,\n isLoading,\n });\n\n const networkFeesDetail = constructNetworkFeesDetail({\n price,\n swapMode: priceMode,\n isLoading,\n });\n\n const minMaxDetail =\n swapSide === \"SELL\"\n ? // minimum received when SELLing\n constructYouGetDetail({\n price,\n isLoading,\n slippagePercent: resolvedSlippage,\n tokenTo,\n swapSide,\n })\n : // maximum to pay when BUYing\n constructMaxToPayDetail({\n price,\n isLoading,\n slippagePercent: resolvedSlippage,\n tokenFrom,\n swapSide,\n });\n\n const details: DetailWithValue[] = [\n orderRoutingDetail,\n priceImpactDetail,\n swapFeesDetail,\n minMaxDetail,\n networkFeesDetail,\n ].filter(isTruthy);\n\n const isBuy = swapSide === \"BUY\";\n\n return {\n trigger: (\n <div className=\"flex items-center justify-between\">\n <Tooltip>\n <TooltipTrigger asChild>\n <div>\n <SwapRate\n srcToken={tokenFrom}\n destToken={tokenTo}\n srcAmountWei={srcAmountWei}\n destAmountWei={destAmountWei}\n isLoading={isLoading}\n reverse={isBuy}\n />\n </div>\n </TooltipTrigger>\n <TooltipContent>\n Best price for this trade based on the current market conditions\n </TooltipContent>\n </Tooltip>\n\n <Tooltip>\n <TooltipTrigger asChild>\n <div className=\"flex items-center gap-1\">\n {!isHighImpact && <PriceImpactSVG className=\"size-[16px]\" />}\n {priceImpactDetail.isLoading ? (\n <Skeleton className=\"bg-contrast-6 dark:bg-contrast-5 min-w-[42px] h-[12px]\" />\n ) : (\n <div\n className={cn({\n \"text-secondary-orange-peel-1 dark:text-secondary-orange-peel-1\":\n isHighImpact,\n })}\n >\n {priceImpactDetail.value ?? \"-\"}\n </div>\n )}\n </div>\n </TooltipTrigger>\n <TooltipContent>Price Impact</TooltipContent>\n </Tooltip>\n </div>\n ),\n details,\n classes: {\n root: \"mt-4\",\n },\n };\n };\n"],"names":["useSwapDetailsListProps","$","_c","tokenFrom","tokenTo","useWidgetTokens","srcAmountWei","useAtomValue","payInputAmountWeiAtom","destAmountWei","receiveInputAmountWeiAtom","t0","Symbol","for","enabled","isLoading","price","priceMode","useCurrentSwapPrice","resolvedSlippage","useSlippage","swapSide","useSwapSide","T0","T1","details","t1","t2","t3","t4","t5","t6","orderRoutingDetail","constructOrderRoutingDetail","bestRoutes","bestRoute","undefined","swapMode","isHighImpact","priceImpactDetail","constructPriceImpactDetail","swapFeesDetail","constructSwapFeesDetail","networkFeesDetail","constructNetworkFeesDetail","minMaxDetail","constructYouGetDetail","slippagePercent","constructMaxToPayDetail","filter","isTruthy","isBuy","t7","t8","Tooltip","TooltipTrigger","PriceImpactSVG","cn","value","t9","t10","t11","t12","root","t13","trigger","classes"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"youGet.d.ts","sourceRoot":"","sources":["../../../src/core/swapDetails/youGet.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,qBAAqB,CAAC,EACpC,KAAK,EACL,eAAe,EACf,SAAS,EACT,OAAO,EACP,QAAQ,GACT,EAAE;IACD,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAC;CAC1B,GAAG,eAAe,GAAG,SAAS,CAgC9B"}
1
+ {"version":3,"file":"youGet.d.ts","sourceRoot":"","sources":["../../../src/core/swapDetails/youGet.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,qBAAqB,CAAC,EACpC,KAAK,EACL,eAAe,EACf,SAAS,EACT,OAAO,EACP,QAAQ,GACT,EAAE;IACD,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAC;CAC1B,GAAG,eAAe,GAAG,SAAS,CAiC9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"youGet.js","sources":["../../../src/core/swapDetails/youGet.tsx"],"sourcesContent":["import type { DetailWithValue } from \"@/components/widget/Details/types\";\nimport type { DeltaOrMarketPrice } from \"@/hooks/swap/prices/types\";\nimport { getDestAmountAfterFeeAndSlippage } from \"@/lib/utils/price\";\nimport { toDecimalTrimmed } from \"@/lib/utils/toDecimal\";\nimport type { Token } from \"@/tokens/state/types\";\n\nimport { formatUnits } from \"viem\";\n\nconst tooltip =\n \"The minimum amount of token to receive, otherwise the transaction will revert.\";\n\nexport function constructYouGetDetail({\n price,\n slippagePercent,\n isLoading,\n tokenTo,\n swapSide,\n}: {\n price?: DeltaOrMarketPrice;\n slippagePercent: number;\n isLoading: boolean;\n tokenTo?: Token;\n swapSide: \"SELL\" | \"BUY\";\n}): DetailWithValue | undefined {\n if (swapSide === \"BUY\") return;\n\n const title = \"You Get (at least)\";\n\n if (!price || !tokenTo) {\n return {\n title,\n value: null,\n isLoading,\n tooltip,\n };\n }\n\n const minDestAmount = getDestAmountAfterFeeAndSlippage({\n price,\n slippagePercent,\n });\n\n const minDestAmountUnit = formatUnits(\n BigInt(minDestAmount),\n tokenTo.decimals\n );\n\n const formattedMinDestAmountUnit = toDecimalTrimmed(minDestAmountUnit);\n\n return {\n title,\n value: `${formattedMinDestAmountUnit} ${tokenTo.symbol}`,\n isLoading,\n tooltip,\n };\n}\n"],"names":["tooltip","constructYouGetDetail","price","slippagePercent","isLoading","tokenTo","swapSide","title","value","minDestAmount","getDestAmountAfterFeeAndSlippage","minDestAmountUnit","formatUnits","BigInt","decimals","formattedMinDestAmountUnit","toDecimalTrimmed","symbol"],"mappings":";;;;AAQA,MAAMA,OAAAA,GACJ,gFAAA;AAEK,SAASC,qBAAAA,CAAsB;AAAA,EACpCC,KAAAA;AAAAA,EACAC,eAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACAC,OAAAA;AAAAA,EACAC;AAOF,CAAA,EAAgC;AAC9B,EAAA,IAAIA,aAAa,KAAA,EAAO;AAExB,EAAA,MAAMC,KAAAA,GAAQ,oBAAA;AAEd,EAAA,IAAI,CAACL,KAAAA,IAAS,CAACG,OAAAA,EAAS;AACtB,IAAA,OAAO;AAAA,MACLE,KAAAA;AAAAA,MACAC,KAAAA,EAAO,IAAA;AAAA,MACPJ,SAAAA;AAAAA,MACAJ;AAAAA,KACF;AAAA,EACF;AAEA,EAAA,MAAMS,gBAAgBC,gCAAAA,CAAiC;AAAA,IACrDR,KAAAA;AAAAA,IACAC;AAAAA,GACD,CAAA;AAED,EAAA,MAAMQ,oBAAoBC,WAAAA,CACxBC,MAAAA,CAAOJ,aAAa,CAAA,EACpBJ,QAAQS,QACV,CAAA;AAEA,EAAA,MAAMC,0BAAAA,GAA6BC,iBAAiBL,iBAAiB,CAAA;AAErE,EAAA,OAAO;AAAA,IACLJ,KAAAA;AAAAA,IACAC,KAAAA,EAAO,CAAA,EAAGO,0BAA0B,CAAA,CAAA,EAAIV,QAAQY,MAAM,CAAA,CAAA;AAAA,IACtDb,SAAAA;AAAAA,IACAJ;AAAAA,GACF;AACF;;;;"}
1
+ {"version":3,"file":"youGet.js","sources":["../../../src/core/swapDetails/youGet.tsx"],"sourcesContent":["import type { DetailWithValue } from \"@/components/widget/Details/types\";\nimport type { DeltaOrMarketPrice } from \"@/hooks/swap/prices/types\";\nimport { getDestAmountAfterFeeAndSlippage } from \"@/lib/utils/price\";\nimport { toDecimalTrimmed } from \"@/lib/utils/toDecimal\";\nimport type { Token } from \"@/tokens/state/types\";\n\nimport { formatUnits } from \"viem\";\n\nconst tooltip =\n \"The minimum amount of token to receive, otherwise the transaction will revert.\";\n\nexport function constructYouGetDetail({\n price,\n slippagePercent,\n isLoading,\n tokenTo,\n swapSide,\n}: {\n price?: DeltaOrMarketPrice;\n slippagePercent: number;\n isLoading: boolean;\n tokenTo?: Token;\n swapSide: \"SELL\" | \"BUY\";\n}): DetailWithValue | undefined {\n // in case of BUY youGet= exactly destAmount\n if (swapSide === \"BUY\") return;\n\n const title = \"You Get (at least)\";\n\n if (!price || !tokenTo) {\n return {\n title,\n value: null,\n isLoading,\n tooltip,\n };\n }\n\n const minDestAmount = getDestAmountAfterFeeAndSlippage({\n price,\n slippagePercent,\n });\n\n const minDestAmountUnit = formatUnits(\n BigInt(minDestAmount),\n tokenTo.decimals\n );\n\n const formattedMinDestAmountUnit = toDecimalTrimmed(minDestAmountUnit);\n\n return {\n title,\n value: `${formattedMinDestAmountUnit} ${tokenTo.symbol}`,\n isLoading,\n tooltip,\n };\n}\n"],"names":["tooltip","constructYouGetDetail","price","slippagePercent","isLoading","tokenTo","swapSide","title","value","minDestAmount","getDestAmountAfterFeeAndSlippage","minDestAmountUnit","formatUnits","BigInt","decimals","formattedMinDestAmountUnit","toDecimalTrimmed","symbol"],"mappings":";;;;AAQA,MAAMA,OAAAA,GACJ,gFAAA;AAEK,SAASC,qBAAAA,CAAsB;AAAA,EACpCC,KAAAA;AAAAA,EACAC,eAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACAC,OAAAA;AAAAA,EACAC;AAOF,CAAA,EAAgC;AAE9B,EAAA,IAAIA,aAAa,KAAA,EAAO;AAExB,EAAA,MAAMC,KAAAA,GAAQ,oBAAA;AAEd,EAAA,IAAI,CAACL,KAAAA,IAAS,CAACG,OAAAA,EAAS;AACtB,IAAA,OAAO;AAAA,MACLE,KAAAA;AAAAA,MACAC,KAAAA,EAAO,IAAA;AAAA,MACPJ,SAAAA;AAAAA,MACAJ;AAAAA,KACF;AAAA,EACF;AAEA,EAAA,MAAMS,gBAAgBC,gCAAAA,CAAiC;AAAA,IACrDR,KAAAA;AAAAA,IACAC;AAAAA,GACD,CAAA;AAED,EAAA,MAAMQ,oBAAoBC,WAAAA,CACxBC,MAAAA,CAAOJ,aAAa,CAAA,EACpBJ,QAAQS,QACV,CAAA;AAEA,EAAA,MAAMC,0BAAAA,GAA6BC,iBAAiBL,iBAAiB,CAAA;AAErE,EAAA,OAAO;AAAA,IACLJ,KAAAA;AAAAA,IACAC,KAAAA,EAAO,CAAA,EAAGO,0BAA0B,CAAA,CAAA,EAAIV,QAAQY,MAAM,CAAA,CAAA;AAAA,IACtDb,SAAAA;AAAAA,IACAJ;AAAAA,GACF;AACF;;;;"}
@@ -0,0 +1,3 @@
1
+ import { DeltaPrice, SwapSideUnion } from '@velora-dex/sdk';
2
+ export declare function getSwapSideFromDeltaPrice(price: DeltaPrice): SwapSideUnion;
3
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../src/hooks/swap/prices/delta/queries/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,UAAU,GAAG,aAAa,CAM1E"}