@velora-dex/widget 0.1.0-rc.0 → 0.1.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/ui/drawer.js +1 -1
- package/dist/components/ui/drawer.js.map +1 -1
- package/dist/components/web3/providers.d.ts +3 -0
- package/dist/components/web3/providers.d.ts.map +1 -1
- package/dist/components/web3/providers.js +18 -1
- package/dist/components/web3/providers.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/tokens.js +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/tokens.js.map +1 -1
- package/dist/components/widget/Drawer/Overlay.d.ts +9 -0
- package/dist/components/widget/Drawer/Overlay.d.ts.map +1 -0
- package/dist/components/widget/Drawer/Overlay.js +62 -0
- package/dist/components/widget/Drawer/Overlay.js.map +1 -0
- package/dist/components/widget/Drawer/index.d.ts.map +1 -1
- package/dist/components/widget/Drawer/index.js +2 -1
- package/dist/components/widget/Drawer/index.js.map +1 -1
- package/dist/components/widget/Drawer/state/useDrawerControls.d.ts +3 -0
- package/dist/components/widget/Drawer/state/useDrawerControls.d.ts.map +1 -1
- package/dist/components/widget/Drawer/state/useDrawerControls.js +1 -1
- package/dist/components/widget/Drawer/state/useDrawerControls.js.map +1 -1
- package/dist/components/widget/ReceiverAddress/state/subscriptions.d.ts.map +1 -1
- package/dist/components/widget/ReceiverAddress/state/subscriptions.js +1 -2
- package/dist/components/widget/ReceiverAddress/state/subscriptions.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/utils.js +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/utils.js.map +1 -1
- package/dist/core/across/utils.d.ts.map +1 -1
- package/dist/core/across/utils.js +1 -2
- package/dist/core/across/utils.js.map +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +93 -85
- package/dist/core/index.js.map +1 -1
- package/dist/core/inputs/hooks/useTokenToInputProps.js +1 -4
- package/dist/core/inputs/hooks/useTokenToInputProps.js.map +1 -1
- package/dist/core/inputs/state/selectedTokenActionsAtom.d.ts.map +1 -1
- package/dist/core/inputs/state/selectedTokenActionsAtom.js +2 -2
- package/dist/core/inputs/state/selectedTokenActionsAtom.js.map +1 -1
- package/dist/core/inputs/state/store.d.ts +6 -0
- package/dist/core/inputs/state/store.d.ts.map +1 -0
- package/dist/core/inputs/state/store.js +6 -0
- package/dist/core/inputs/state/store.js.map +1 -0
- package/dist/core/logger.d.ts.map +1 -1
- package/dist/core/logger.js +4 -5
- package/dist/core/logger.js.map +1 -1
- package/dist/core/swapDetails/useSwapDetailsListProps.d.ts.map +1 -1
- package/dist/core/swapDetails/useSwapDetailsListProps.js +0 -1
- package/dist/core/swapDetails/useSwapDetailsListProps.js.map +1 -1
- package/dist/core/swapDetails/youGet.d.ts +1 -3
- package/dist/core/swapDetails/youGet.d.ts.map +1 -1
- package/dist/core/swapDetails/youGet.js +1 -3
- package/dist/core/swapDetails/youGet.js.map +1 -1
- package/dist/crosschain_token_list.json +3230 -0
- package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.d.ts +3 -2
- package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/orders/utils.d.ts +6 -6
- package/dist/hooks/swap/prices/delta/orders/utils.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/orders/utils.js +3 -3
- package/dist/hooks/swap/prices/delta/orders/utils.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaOrders.d.ts +2 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaOrders.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts +2 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js +5 -2
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts +4 -4
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js.map +1 -1
- package/dist/lib/constants/index.d.ts +1 -1
- package/dist/lib/constants/index.d.ts.map +1 -1
- package/dist/lib/constants/index.js +1 -1
- package/dist/lib/constants/index.js.map +1 -1
- package/dist/lib/utils/price.d.ts +2 -6
- package/dist/lib/utils/price.d.ts.map +1 -1
- package/dist/lib/utils/price.js +6 -13
- package/dist/lib/utils/price.js.map +1 -1
- package/dist/lib/utils/toasts.d.ts +2 -2
- package/dist/lib/utils/toasts.d.ts.map +1 -1
- package/dist/lib/utils/toasts.js.map +1 -1
- package/dist/lib/web3/privy/config.js +1 -1
- package/dist/lib/web3/wagmi/config.js +1 -1
- package/dist/styles.css +5 -5
- package/dist/tokens/lists/lists.json.d.ts +84 -2
- package/dist/tokens/lists/lists.json.js +104 -2
- package/dist/tokens/lists/lists.json.js.map +1 -1
- package/dist/tokens/lists/state/observer.js +2 -2
- package/dist/tokens/lists/state/observer.js.map +1 -1
- package/dist/tokens/lists/utils.js +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectedTokenActionsAtom.js","sources":["../../../../src/core/inputs/state/selectedTokenActionsAtom.ts"],"sourcesContent":["import { atom, getDefaultStore } from \"jotai\";\nimport { switchChain } from \"@wagmi/core\";\n\nimport { tokenToAtom, tokenFromAtom } from \"./selectedTokenAtom\";\nimport { wagmiConfig } from \"@/lib/web3/wagmi/config\";\n\nimport type { Token } from \"@/tokens/state/types\";\nimport { areTokensSame } from \"@/tokens/utils/areTokensSame\";\nimport { pickDefaultTokenPair } from \"@/tokens/defaultTokens\";\nimport {\n findFirstTokenFromAcross,\n isAcrossAvailable,\n isTokenFromAcross,\n} from \"@/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\";\n\nexport const switchTokensAtom = atom(null, async (get, set) => {\n const tokenTo = get(tokenToAtom);\n\n if (!tokenTo) return;\n\n const tokenFrom = get(tokenFromAtom);\n\n // switch a token from a different chain?\n if (tokenFrom.network !== tokenTo.network) {\n // await for chain switch first\n await switchChain(wagmiConfig, {\n chainId: tokenTo.network,\n });\n }\n\n // then set the tokenFrom\n set(tokenFromAtom, tokenTo);\n\n const deltaEnabledInSettings = get(deltaParamAtom);\n const deltaEnabledInConfig = get(widgetConfigAtom).enableDelta;\n\n const crosschainPossible =\n deltaEnabledInSettings &&\n deltaEnabledInConfig &&\n isAcrossAvailable({\n chainIdFrom: tokenTo.network,\n chainIdTo: tokenFrom.network,\n });\n\n if (crosschainPossible) {\n const tokenFromIsFromAcross = isTokenFromAcross({\n token: tokenFrom,\n fromChainId: tokenFrom.network,\n toChainId: tokenTo.network,\n });\n\n if (tokenFromIsFromAcross && !areTokensSame(tokenFrom, tokenTo)) {\n // can use tokenFrom as tokenTo because it's an Across token\n set(tokenToAtom, tokenFrom);\n } else {\n // otherwise, we either set tokenTo to the first Across token,\n // or reset tokenTo\n const maybeAcrossToken = findFirstTokenFromAcross({\n fromChainId: tokenTo.network,\n toChainId: tokenFrom.network,\n });\n set(tokenToAtom, maybeAcrossToken);\n }\n } else {\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n tokenTo.network\n );\n\n if (tokenTo.network !== tokenFrom.network) {\n // if cross-chain, then we can't use tokenFrom as tokenTo, so pick from defaults\n const newTokenTo = areTokensSame(tokenFrom, defaultTokenTo)\n ? defaultTokenFrom\n : defaultTokenTo;\n\n set(tokenToAtom, newTokenTo);\n } else {\n // otherwise, we set either tokenFrom or defaultTokenTo\n const newTokenTo = areTokensSame(tokenFrom, defaultTokenTo)\n ? defaultTokenTo\n : tokenFrom;\n\n set(tokenToAtom, newTokenTo);\n }\n }\n});\n\nexport const selectTokenFromAtom = atom(\n null,\n async (get, set, newTokenFrom: Token) => {\n const tokenFrom = get(tokenFromAtom);\n const tokenTo = get(tokenToAtom);\n\n // selecting a token from a different chain?\n if (newTokenFrom.network !== wagmiConfig.state.chainId) {\n // await for chain switch first\n await switchChain(wagmiConfig, {\n chainId: newTokenFrom.network,\n });\n }\n\n // then set the tokenFrom\n set(tokenFromAtom, newTokenFrom);\n\n if (!tokenTo) return;\n\n const deltaEnabledInSettings = get(deltaParamAtom);\n const deltaEnabledInConfig = get(widgetConfigAtom).enableDelta;\n\n const crosschainPossible =\n deltaEnabledInSettings &&\n deltaEnabledInConfig &&\n isAcrossAvailable({\n chainIdFrom: tokenTo.network,\n chainIdTo: newTokenFrom.network,\n });\n\n if (crosschainPossible) {\n const isTokenToFromAcross = isTokenFromAcross({\n token: tokenTo,\n fromChainId: newTokenFrom.network,\n toChainId: tokenTo.network,\n });\n\n if (!isTokenToFromAcross) {\n // set the token from across as tokenTo,\n // or reset tokenTo if token not found\n const maybeAcrossToken = findFirstTokenFromAcross({\n fromChainId: newTokenFrom.network,\n toChainId: tokenTo.network,\n });\n\n set(tokenToAtom, maybeAcrossToken);\n }\n } else {\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n newTokenFrom.network\n );\n\n // cross-chain not possible between new chainFrom and chainTo,\n // so need to reset tokenTo to default\n if (newTokenFrom.network !== tokenTo.network) {\n const newTokenTo = areTokensSame(newTokenFrom, defaultTokenTo)\n ? defaultTokenFrom\n : defaultTokenTo;\n set(tokenToAtom, newTokenTo);\n } else {\n // or simply flip the tokens if they are from the same chain\n if (areTokensSame(newTokenFrom, tokenTo)) {\n set(tokenToAtom, tokenFrom);\n }\n // otherwise do nothing, tokenTo is already on the same chain and different from newTokenFrom\n }\n }\n }\n);\n\nexport const selectTokenToAtom = atom(null, (get, set, newTokenTo: Token) => {\n const newTokenToNetwork = newTokenTo.network;\n\n const tokenFrom = get(tokenFromAtom);\n const tokenTo = get(tokenToAtom);\n\n if (areTokensSame(newTokenTo, tokenFrom)) {\n const [defaultTokenFrom, defaultTokenTo] =\n pickDefaultTokenPair(newTokenToNetwork);\n\n const fromDefaults = areTokensSame(tokenFrom, defaultTokenFrom)\n ? defaultTokenTo\n : defaultTokenFrom;\n\n // Will be true if crosschain tokens were selected\n const wasCrosschain = tokenTo && tokenFrom.network !== tokenTo?.network;\n\n const newTokenFrom = wasCrosschain\n ? // We cannot flip the tokens if switching from the crosschain, because if we do, we will end up with tokenFrom network different from app chainId.\n // Switching app chainId when selecting tokenTo is not what we want, because we cannot dictate the main network when selecting tokenTo.\n // Maybe user wants to trade singlechain but we are forcing crosschain.\n fromDefaults\n : // Otherwise, we can flip the tokens, or pick from defaults\n (tokenTo ?? fromDefaults);\n\n set(tokenFromAtom, newTokenFrom);\n }\n\n // crosschain? set SwapMode to Delta\n if (tokenFrom.network !== newTokenToNetwork) {\n set(setSwapModeAtom, \"delta\");\n }\n\n set(tokenToAtom, newTokenTo);\n});\n\nexport const syncTokensAfterChainSwitch = (chainId: SupportedChainId) => {\n const jotaiStore = getDefaultStore();\n\n const tokenFrom = jotaiStore.get(tokenFromAtom);\n const tokenTo = jotaiStore.get(tokenToAtom);\n\n // chains are the same? do nothing\n if (tokenFrom.network === chainId) return;\n\n // get default tokens for the new chain\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(chainId);\n\n // reassignment for clarity\n const newTokenFrom = defaultTokenFrom;\n\n // update tokenFrom\n jotaiStore.set(tokenFromAtom, newTokenFrom);\n\n // toChainId derives from tokenTo.network, if no tokenTo - do nothing\n if (!tokenTo) return;\n\n const deltaEnabledInSettings = jotaiStore.get(deltaParamAtom);\n const deltaEnabledInConfig = jotaiStore.get(widgetConfigAtom).enableDelta;\n\n const crosschainPossible =\n deltaEnabledInSettings &&\n deltaEnabledInConfig &&\n isAcrossAvailable({\n chainIdFrom: chainId,\n chainIdTo: tokenTo.network,\n });\n\n if (crosschainPossible) {\n const isTokenToFromAcross = isTokenFromAcross({\n token: tokenTo,\n fromChainId: chainId,\n toChainId: tokenTo.network,\n });\n\n if (!isTokenToFromAcross) {\n // set the token from across as tokenTo,\n // or reset tokenTo if token not found\n const maybeAcrossToken = findFirstTokenFromAcross({\n fromChainId: chainId,\n toChainId: tokenTo.network,\n });\n\n jotaiStore.set(tokenToAtom, maybeAcrossToken);\n }\n\n jotaiStore.set(setSwapModeAtom, \"delta\");\n } else {\n if (\n // if tokenFrom that we just set is the same as tokenTo,\n areTokensSame(newTokenFrom, tokenTo) ||\n // or if chains are different,\n newTokenFrom.network !== tokenTo.network\n ) {\n // then set defaultTokenTo for the new chain\n jotaiStore.set(tokenToAtom, defaultTokenTo);\n }\n }\n};\n"],"names":["switchTokensAtom","atom","get","set","tokenTo","tokenToAtom","tokenFrom","tokenFromAtom","network","switchChain","wagmiConfig","chainId","deltaEnabledInSettings","deltaParamAtom","deltaEnabledInConfig","widgetConfigAtom","enableDelta","crosschainPossible","isAcrossAvailable","chainIdFrom","chainIdTo","tokenFromIsFromAcross","isTokenFromAcross","token","fromChainId","toChainId","areTokensSame","maybeAcrossToken","findFirstTokenFromAcross","defaultTokenFrom","defaultTokenTo","pickDefaultTokenPair","newTokenTo","selectTokenFromAtom","newTokenFrom","state","isTokenToFromAcross","selectTokenToAtom","newTokenToNetwork","fromDefaults","wasCrosschain","setSwapModeAtom","syncTokensAfterChainSwitch","jotaiStore","getDefaultStore"],"mappings":";;;;;;;;;;;AAmBO,MAAMA,gBAAAA,GAAmBC,IAAAA,CAAK,IAAA,EAAM,OAAOC,KAAKC,GAAAA,KAAQ;AAC7D,EAAA,MAAMC,OAAAA,GAAUF,IAAIG,WAAW,CAAA;AAE/B,EAAA,IAAI,CAACD,OAAAA,EAAS;AAEd,EAAA,MAAME,SAAAA,GAAYJ,IAAIK,aAAa,CAAA;AAGnC,EAAA,IAAID,SAAAA,CAAUE,OAAAA,KAAYJ,OAAAA,CAAQI,OAAAA,EAAS;AAEzC,IAAA,MAAMC,YAAYC,WAAAA,EAAa;AAAA,MAC7BC,SAASP,OAAAA,CAAQI;AAAAA,KAClB,CAAA;AAAA,EACH;AAGAL,EAAAA,GAAAA,CAAII,eAAeH,OAAO,CAAA;AAE1B,EAAA,MAAMQ,sBAAAA,GAAyBV,IAAIW,cAAc,CAAA;AACjD,EAAA,MAAMC,oBAAAA,GAAuBZ,GAAAA,CAAIa,gBAAgB,CAAA,CAAEC,WAAAA;AAEnD,EAAA,MAAMC,kBAAAA,GACJL,sBAAAA,IACAE,oBAAAA,IACAI,iBAAAA,CAAkB;AAAA,IAChBC,aAAaf,OAAAA,CAAQI,OAAAA;AAAAA,IACrBY,WAAWd,SAAAA,CAAUE;AAAAA,GACtB,CAAA;AAEH,EAAA,IAAIS,kBAAAA,EAAoB;AACtB,IAAA,MAAMI,wBAAwBC,iBAAAA,CAAkB;AAAA,MAC9CC,KAAAA,EAAOjB,SAAAA;AAAAA,MACPkB,aAAalB,SAAAA,CAAUE,OAAAA;AAAAA,MACvBiB,WAAWrB,OAAAA,CAAQI;AAAAA,KACpB,CAAA;AAED,IAAA,IAAIa,qBAAAA,IAAyB,CAACK,aAAAA,CAAcpB,SAAAA,EAAWF,OAAO,CAAA,EAAG;AAE/DD,MAAAA,GAAAA,CAAIE,aAAaC,SAAS,CAAA;AAAA,IAC5B,CAAA,MAAO;AAGL,MAAA,MAAMqB,mBAAmBC,wBAAAA,CAAyB;AAAA,QAChDJ,aAAapB,OAAAA,CAAQI,OAAAA;AAAAA,QACrBiB,WAAWnB,SAAAA,CAAUE;AAAAA,OACtB,CAAA;AACDL,MAAAA,GAAAA,CAAIE,aAAasB,gBAAgB,CAAA;AAAA,IACnC;AAAA,EACF,CAAA,MAAO;AACL,IAAA,MAAM,CAACE,gBAAAA,EAAkBC,cAAc,CAAA,GAAIC,oBAAAA,CACzC3B,QAAQI,OACV,CAAA;AAEA,IAAA,IAAIJ,OAAAA,CAAQI,OAAAA,KAAYF,SAAAA,CAAUE,OAAAA,EAAS;AAEzC,MAAA,MAAMwB,UAAAA,GAAaN,aAAAA,CAAcpB,SAAAA,EAAWwB,cAAc,IACtDD,gBAAAA,GACAC,cAAAA;AAEJ3B,MAAAA,GAAAA,CAAIE,aAAa2B,UAAU,CAAA;AAAA,IAC7B,CAAA,MAAO;AAEL,MAAA,MAAMA,UAAAA,GAAaN,aAAAA,CAAcpB,SAAAA,EAAWwB,cAAc,IACtDA,cAAAA,GACAxB,SAAAA;AAEJH,MAAAA,GAAAA,CAAIE,aAAa2B,UAAU,CAAA;AAAA,IAC7B;AAAA,EACF;AACF,CAAC;AAEM,MAAMC,sBAAsBhC,IAAAA,CACjC,IAAA,EACA,OAAOC,GAAAA,EAAKC,KAAK+B,YAAAA,KAAwB;AACvC,EAAA,MAAM5B,SAAAA,GAAYJ,IAAIK,aAAa,CAAA;AACnC,EAAA,MAAMH,OAAAA,GAAUF,IAAIG,WAAW,CAAA;AAG/B,EAAA,IAAI6B,YAAAA,CAAa1B,OAAAA,KAAYE,WAAAA,CAAYyB,KAAAA,CAAMxB,OAAAA,EAAS;AAEtD,IAAA,MAAMF,YAAYC,WAAAA,EAAa;AAAA,MAC7BC,SAASuB,YAAAA,CAAa1B;AAAAA,KACvB,CAAA;AAAA,EACH;AAGAL,EAAAA,GAAAA,CAAII,eAAe2B,YAAY,CAAA;AAE/B,EAAA,IAAI,CAAC9B,OAAAA,EAAS;AAEd,EAAA,MAAMQ,sBAAAA,GAAyBV,IAAIW,cAAc,CAAA;AACjD,EAAA,MAAMC,oBAAAA,GAAuBZ,GAAAA,CAAIa,gBAAgB,CAAA,CAAEC,WAAAA;AAEnD,EAAA,MAAMC,kBAAAA,GACJL,sBAAAA,IACAE,oBAAAA,IACAI,iBAAAA,CAAkB;AAAA,IAChBC,aAAaf,OAAAA,CAAQI,OAAAA;AAAAA,IACrBY,WAAWc,YAAAA,CAAa1B;AAAAA,GACzB,CAAA;AAEH,EAAA,IAAIS,kBAAAA,EAAoB;AACtB,IAAA,MAAMmB,sBAAsBd,iBAAAA,CAAkB;AAAA,MAC5CC,KAAAA,EAAOnB,OAAAA;AAAAA,MACPoB,aAAaU,YAAAA,CAAa1B,OAAAA;AAAAA,MAC1BiB,WAAWrB,OAAAA,CAAQI;AAAAA,KACpB,CAAA;AAED,IAAA,IAAI,CAAC4B,mBAAAA,EAAqB;AAGxB,MAAA,MAAMT,mBAAmBC,wBAAAA,CAAyB;AAAA,QAChDJ,aAAaU,YAAAA,CAAa1B,OAAAA;AAAAA,QAC1BiB,WAAWrB,OAAAA,CAAQI;AAAAA,OACpB,CAAA;AAEDL,MAAAA,GAAAA,CAAIE,aAAasB,gBAAgB,CAAA;AAAA,IACnC;AAAA,EACF,CAAA,MAAO;AACL,IAAA,MAAM,CAACE,gBAAAA,EAAkBC,cAAc,CAAA,GAAIC,oBAAAA,CACzCG,aAAa1B,OACf,CAAA;AAIA,IAAA,IAAI0B,YAAAA,CAAa1B,OAAAA,KAAYJ,OAAAA,CAAQI,OAAAA,EAAS;AAC5C,MAAA,MAAMwB,UAAAA,GAAaN,aAAAA,CAAcQ,YAAAA,EAAcJ,cAAc,IACzDD,gBAAAA,GACAC,cAAAA;AACJ3B,MAAAA,GAAAA,CAAIE,aAAa2B,UAAU,CAAA;AAAA,IAC7B,CAAA,MAAO;AAEL,MAAA,IAAIN,aAAAA,CAAcQ,YAAAA,EAAc9B,OAAO,CAAA,EAAG;AACxCD,QAAAA,GAAAA,CAAIE,aAAaC,SAAS,CAAA;AAAA,MAC5B;AAAA,IAEF;AAAA,EACF;AACF,CACF;AAEO,MAAM+B,oBAAoBpC,IAAAA,CAAK,IAAA,EAAM,CAACC,GAAAA,EAAKC,KAAK6B,UAAAA,KAAsB;AAC3E,EAAA,MAAMM,oBAAoBN,UAAAA,CAAWxB,OAAAA;AAErC,EAAA,MAAMF,SAAAA,GAAYJ,IAAIK,aAAa,CAAA;AACnC,EAAA,MAAMH,OAAAA,GAAUF,IAAIG,WAAW,CAAA;AAE/B,EAAA,IAAIqB,aAAAA,CAAcM,UAAAA,EAAY1B,SAAS,CAAA,EAAG;AACxC,IAAA,MAAM,CAACuB,gBAAAA,EAAkBC,cAAc,CAAA,GACrCC,qBAAqBO,iBAAiB,CAAA;AAExC,IAAA,MAAMC,YAAAA,GAAeb,aAAAA,CAAcpB,SAAAA,EAAWuB,gBAAgB,IAC1DC,cAAAA,GACAD,gBAAAA;AAGJ,IAAA,MAAMW,aAAAA,GAAgBpC,OAAAA,IAAWE,SAAAA,CAAUE,OAAAA,KAAYJ,OAAAA,EAASI,OAAAA;AAEhE,IAAA,MAAM0B,YAAAA,GAAeM,aAAAA;AAAAA;AAAAA;AAAAA;AAAAA,MAIjBD;AAAAA;AAAAA;AAAAA,MAECnC,OAAAA,IAAWmC;AAAAA,KAAAA;AAEhBpC,IAAAA,GAAAA,CAAII,eAAe2B,YAAY,CAAA;AAAA,EACjC;AAGA,EAAA,IAAI5B,SAAAA,CAAUE,YAAY8B,iBAAAA,EAAmB;AAC3CnC,IAAAA,GAAAA,CAAIsC,iBAAiB,OAAO,CAAA;AAAA,EAC9B;AAEAtC,EAAAA,GAAAA,CAAIE,aAAa2B,UAAU,CAAA;AAC7B,CAAC;AAEM,MAAMU,0BAAAA,GAA6BA,CAAC/B,OAAAA,KAA8B;AACvE,EAAA,MAAMgC,aAAaC,eAAAA,EAAgB;AAEnC,EAAA,MAAMtC,SAAAA,GAAYqC,UAAAA,CAAWzC,GAAAA,CAAIK,aAAa,CAAA;AAC9C,EAAA,MAAMH,OAAAA,GAAUuC,UAAAA,CAAWzC,GAAAA,CAAIG,WAAW,CAAA;AAG1C,EAAA,IAAIC,SAAAA,CAAUE,YAAYG,OAAAA,EAAS;AAGnC,EAAA,MAAM,CAACkB,gBAAAA,EAAkBC,cAAc,CAAA,GAAIC,qBAAqBpB,OAAO,CAAA;AAGvE,EAAA,MAAMuB,YAAAA,GAAeL,gBAAAA;AAGrBc,EAAAA,UAAAA,CAAWxC,GAAAA,CAAII,eAAe2B,YAAY,CAAA;AAG1C,EAAA,IAAI,CAAC9B,OAAAA,EAAS;AAEd,EAAA,MAAMQ,sBAAAA,GAAyB+B,UAAAA,CAAWzC,GAAAA,CAAIW,cAAc,CAAA;AAC5D,EAAA,MAAMC,oBAAAA,GAAuB6B,UAAAA,CAAWzC,GAAAA,CAAIa,gBAAgB,CAAA,CAAEC,WAAAA;AAE9D,EAAA,MAAMC,kBAAAA,GACJL,sBAAAA,IACAE,oBAAAA,IACAI,iBAAAA,CAAkB;AAAA,IAChBC,WAAAA,EAAaR,OAAAA;AAAAA,IACbS,WAAWhB,OAAAA,CAAQI;AAAAA,GACpB,CAAA;AAEH,EAAA,IAAIS,kBAAAA,EAAoB;AACtB,IAAA,MAAMmB,sBAAsBd,iBAAAA,CAAkB;AAAA,MAC5CC,KAAAA,EAAOnB,OAAAA;AAAAA,MACPoB,WAAAA,EAAab,OAAAA;AAAAA,MACbc,WAAWrB,OAAAA,CAAQI;AAAAA,KACpB,CAAA;AAED,IAAA,IAAI,CAAC4B,mBAAAA,EAAqB;AAGxB,MAAA,MAAMT,mBAAmBC,wBAAAA,CAAyB;AAAA,QAChDJ,WAAAA,EAAab,OAAAA;AAAAA,QACbc,WAAWrB,OAAAA,CAAQI;AAAAA,OACpB,CAAA;AAEDmC,MAAAA,UAAAA,CAAWxC,GAAAA,CAAIE,aAAasB,gBAAgB,CAAA;AAAA,IAC9C;AAEAgB,IAAAA,UAAAA,CAAWxC,GAAAA,CAAIsC,iBAAiB,OAAO,CAAA;AAAA,EACzC,CAAA,MAAO;AACL,IAAA;AAAA;AAAA,MAEEf,aAAAA,CAAcQ,cAAc9B,OAAO,CAAA;AAAA,MAEnC8B,YAAAA,CAAa1B,YAAYJ,OAAAA,CAAQI;AAAAA,MACjC;AAEAmC,MAAAA,UAAAA,CAAWxC,GAAAA,CAAIE,aAAayB,cAAc,CAAA;AAAA,IAC5C;AAAA,EACF;AACF;;;;"}
|
|
1
|
+
{"version":3,"file":"selectedTokenActionsAtom.js","sources":["../../../../src/core/inputs/state/selectedTokenActionsAtom.ts"],"sourcesContent":["import { atom } from \"jotai\";\nimport { switchChain } from \"@wagmi/core\";\n\nimport { tokenToAtom, tokenFromAtom } from \"./selectedTokenAtom\";\nimport { wagmiConfig } from \"@/lib/web3/wagmi/config\";\n\nimport type { Token } from \"@/tokens/state/types\";\nimport { areTokensSame } from \"@/tokens/utils/areTokensSame\";\nimport { pickDefaultTokenPair } from \"@/tokens/defaultTokens\";\nimport {\n findFirstTokenFromAcross,\n isAcrossAvailable,\n isTokenFromAcross,\n} from \"@/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\";\n\nexport const switchTokensAtom = atom(null, async (get, set) => {\n const tokenTo = get(tokenToAtom);\n\n if (!tokenTo) return;\n\n const tokenFrom = get(tokenFromAtom);\n\n // switch a token from a different chain?\n if (tokenFrom.network !== tokenTo.network) {\n // await for chain switch first\n await switchChain(wagmiConfig, {\n chainId: tokenTo.network,\n });\n }\n\n // then set the tokenFrom\n set(tokenFromAtom, tokenTo);\n\n const deltaEnabledInSettings = get(deltaParamAtom);\n const deltaEnabledInConfig = get(widgetConfigAtom).enableDelta;\n\n const crosschainPossible =\n deltaEnabledInSettings &&\n deltaEnabledInConfig &&\n isAcrossAvailable({\n chainIdFrom: tokenTo.network,\n chainIdTo: tokenFrom.network,\n });\n\n if (crosschainPossible) {\n const tokenFromIsFromAcross = isTokenFromAcross({\n token: tokenFrom,\n fromChainId: tokenFrom.network,\n toChainId: tokenTo.network,\n });\n\n if (tokenFromIsFromAcross && !areTokensSame(tokenFrom, tokenTo)) {\n // can use tokenFrom as tokenTo because it's an Across token\n set(tokenToAtom, tokenFrom);\n } else {\n // otherwise, we either set tokenTo to the first Across token,\n // or reset tokenTo\n const maybeAcrossToken = findFirstTokenFromAcross({\n fromChainId: tokenTo.network,\n toChainId: tokenFrom.network,\n });\n set(tokenToAtom, maybeAcrossToken);\n }\n } else {\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n tokenTo.network\n );\n\n if (tokenTo.network !== tokenFrom.network) {\n // if cross-chain, then we can't use tokenFrom as tokenTo, so pick from defaults\n const newTokenTo = areTokensSame(tokenFrom, defaultTokenTo)\n ? defaultTokenFrom\n : defaultTokenTo;\n\n set(tokenToAtom, newTokenTo);\n } else {\n // otherwise, we set either tokenFrom or defaultTokenTo\n const newTokenTo = areTokensSame(tokenFrom, defaultTokenTo)\n ? defaultTokenTo\n : tokenFrom;\n\n set(tokenToAtom, newTokenTo);\n }\n }\n});\n\nexport const selectTokenFromAtom = atom(\n null,\n async (get, set, newTokenFrom: Token) => {\n const tokenFrom = get(tokenFromAtom);\n const tokenTo = get(tokenToAtom);\n\n // selecting a token from a different chain?\n if (newTokenFrom.network !== wagmiConfig.state.chainId) {\n // await for chain switch first\n await switchChain(wagmiConfig, {\n chainId: newTokenFrom.network,\n });\n }\n\n // then set the tokenFrom\n set(tokenFromAtom, newTokenFrom);\n\n if (!tokenTo) return;\n\n const deltaEnabledInSettings = get(deltaParamAtom);\n const deltaEnabledInConfig = get(widgetConfigAtom).enableDelta;\n\n const crosschainPossible =\n deltaEnabledInSettings &&\n deltaEnabledInConfig &&\n isAcrossAvailable({\n chainIdFrom: tokenTo.network,\n chainIdTo: newTokenFrom.network,\n });\n\n if (crosschainPossible) {\n const isTokenToFromAcross = isTokenFromAcross({\n token: tokenTo,\n fromChainId: newTokenFrom.network,\n toChainId: tokenTo.network,\n });\n\n if (!isTokenToFromAcross) {\n // set the token from across as tokenTo,\n // or reset tokenTo if token not found\n const maybeAcrossToken = findFirstTokenFromAcross({\n fromChainId: newTokenFrom.network,\n toChainId: tokenTo.network,\n });\n\n set(tokenToAtom, maybeAcrossToken);\n }\n } else {\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n newTokenFrom.network\n );\n\n // cross-chain not possible between new chainFrom and chainTo,\n // so need to reset tokenTo to default\n if (newTokenFrom.network !== tokenTo.network) {\n const newTokenTo = areTokensSame(newTokenFrom, defaultTokenTo)\n ? defaultTokenFrom\n : defaultTokenTo;\n set(tokenToAtom, newTokenTo);\n } else {\n // or simply flip the tokens if they are from the same chain\n if (areTokensSame(newTokenFrom, tokenTo)) {\n set(tokenToAtom, tokenFrom);\n }\n // otherwise do nothing, tokenTo is already on the same chain and different from newTokenFrom\n }\n }\n }\n);\n\nexport const selectTokenToAtom = atom(null, (get, set, newTokenTo: Token) => {\n const newTokenToNetwork = newTokenTo.network;\n\n const tokenFrom = get(tokenFromAtom);\n const tokenTo = get(tokenToAtom);\n\n if (areTokensSame(newTokenTo, tokenFrom)) {\n const [defaultTokenFrom, defaultTokenTo] =\n pickDefaultTokenPair(newTokenToNetwork);\n\n const fromDefaults = areTokensSame(tokenFrom, defaultTokenFrom)\n ? defaultTokenTo\n : defaultTokenFrom;\n\n // Will be true if crosschain tokens were selected\n const wasCrosschain = tokenTo && tokenFrom.network !== tokenTo?.network;\n\n const newTokenFrom = wasCrosschain\n ? // We cannot flip the tokens if switching from the crosschain, because if we do, we will end up with tokenFrom network different from app chainId.\n // Switching app chainId when selecting tokenTo is not what we want, because we cannot dictate the main network when selecting tokenTo.\n // Maybe user wants to trade singlechain but we are forcing crosschain.\n fromDefaults\n : // Otherwise, we can flip the tokens, or pick from defaults\n (tokenTo ?? fromDefaults);\n\n set(tokenFromAtom, newTokenFrom);\n }\n\n // crosschain? set SwapMode to Delta\n if (tokenFrom.network !== newTokenToNetwork) {\n set(setSwapModeAtom, \"delta\");\n }\n\n set(tokenToAtom, newTokenTo);\n});\n\nexport const syncTokensAfterChainSwitch = (chainId: SupportedChainId) => {\n const tokenFrom = jotaiStore.get(tokenFromAtom);\n const tokenTo = jotaiStore.get(tokenToAtom);\n\n // chains are the same? do nothing\n if (tokenFrom.network === chainId) return;\n\n // get default tokens for the new chain\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(chainId);\n\n // reassignment for clarity\n const newTokenFrom = defaultTokenFrom;\n\n // update tokenFrom\n jotaiStore.set(tokenFromAtom, newTokenFrom);\n\n // toChainId derives from tokenTo.network, if no tokenTo - do nothing\n if (!tokenTo) return;\n\n const deltaEnabledInSettings = jotaiStore.get(deltaParamAtom);\n const deltaEnabledInConfig = jotaiStore.get(widgetConfigAtom).enableDelta;\n\n const crosschainPossible =\n deltaEnabledInSettings &&\n deltaEnabledInConfig &&\n isAcrossAvailable({\n chainIdFrom: chainId,\n chainIdTo: tokenTo.network,\n });\n\n if (crosschainPossible) {\n const isTokenToFromAcross = isTokenFromAcross({\n token: tokenTo,\n fromChainId: chainId,\n toChainId: tokenTo.network,\n });\n\n if (!isTokenToFromAcross) {\n // set the token from across as tokenTo,\n // or reset tokenTo if token not found\n const maybeAcrossToken = findFirstTokenFromAcross({\n fromChainId: chainId,\n toChainId: tokenTo.network,\n });\n\n jotaiStore.set(tokenToAtom, maybeAcrossToken);\n }\n\n jotaiStore.set(setSwapModeAtom, \"delta\");\n } else {\n if (\n // if tokenFrom that we just set is the same as tokenTo,\n areTokensSame(newTokenFrom, tokenTo) ||\n // or if chains are different,\n newTokenFrom.network !== tokenTo.network\n ) {\n // then set defaultTokenTo for the new chain\n jotaiStore.set(tokenToAtom, defaultTokenTo);\n }\n }\n};\n"],"names":["switchTokensAtom","atom","get","set","tokenTo","tokenToAtom","tokenFrom","tokenFromAtom","network","switchChain","wagmiConfig","chainId","deltaEnabledInSettings","deltaParamAtom","deltaEnabledInConfig","widgetConfigAtom","enableDelta","crosschainPossible","isAcrossAvailable","chainIdFrom","chainIdTo","tokenFromIsFromAcross","isTokenFromAcross","token","fromChainId","toChainId","areTokensSame","maybeAcrossToken","findFirstTokenFromAcross","defaultTokenFrom","defaultTokenTo","pickDefaultTokenPair","newTokenTo","selectTokenFromAtom","newTokenFrom","state","isTokenToFromAcross","selectTokenToAtom","newTokenToNetwork","fromDefaults","wasCrosschain","setSwapModeAtom","syncTokensAfterChainSwitch","jotaiStore"],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const jotaiStore: {
|
|
2
|
+
get: <Value>(atom: import('jotai').Atom<Value>) => Value;
|
|
3
|
+
set: <Value, Args extends unknown[], Result>(atom: import('jotai').WritableAtom<Value, Args, Result>, ...args: Args) => Result;
|
|
4
|
+
sub: (atom: import('jotai').Atom<unknown>, listener: () => void) => () => void;
|
|
5
|
+
};
|
|
6
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../../src/core/inputs/state/store.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU;;0GAComH,GAAI;;CADxlH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.js","sources":["../../../../src/core/inputs/state/store.ts"],"sourcesContent":["import { createStore } from \"jotai\";\n\nexport const jotaiStore = createStore();\n"],"names":["jotaiStore","createStore"],"mappings":";;AAEO,MAAMA,aAAaC,WAAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/core/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/core/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAY7C;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,cAM9B,CAAC;AAIF,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,cAQ9B,CAAC"}
|
package/dist/core/logger.js
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { d as distExports } from '../_virtual/index.js';
|
|
2
2
|
import { createLogger, createNoopLogger } from '../lib/utils/logger.js';
|
|
3
|
-
import { getDefaultStore } from 'jotai';
|
|
4
3
|
import { widgetConfigAtom, useWidgetConfig } from './state/configAtom.js';
|
|
4
|
+
import { jotaiStore } from './inputs/state/store.js';
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const debug = store.get(widgetConfigAtom).debug;
|
|
6
|
+
let isDebugOn = jotaiStore.get(widgetConfigAtom).debug;
|
|
7
|
+
jotaiStore.sub(widgetConfigAtom, () => {
|
|
8
|
+
const debug = jotaiStore.get(widgetConfigAtom).debug;
|
|
10
9
|
if (debug !== isDebugOn) isDebugOn = debug;
|
|
11
10
|
});
|
|
12
11
|
const getLogger = (...args) => {
|
package/dist/core/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sources":["../../src/core/logger.ts"],"sourcesContent":["import * as logger from \"@/lib/utils/logger\";\nimport {
|
|
1
|
+
{"version":3,"file":"logger.js","sources":["../../src/core/logger.ts"],"sourcesContent":["import * as logger from \"@/lib/utils/logger\";\nimport { useWidgetConfig, widgetConfigAtom } from \"./state/configAtom\";\nimport { jotaiStore } from \"./inputs/state/store\";\n\nconst isDev = import.meta.env.DEV;\n\nlet isDebugOn = jotaiStore.get(widgetConfigAtom).debug;\njotaiStore.sub(widgetConfigAtom, () => {\n const debug = jotaiStore.get(widgetConfigAtom).debug;\n if (debug !== isDebugOn) isDebugOn = debug;\n});\n\n/**\n * Creates a logger instance with consideration for development mode and debug in widget config.\n * To be used outside of React.\n */\nexport const getLogger: logger.CreateLoggerFn = (\n ...args\n): logger.LoggerInstance => {\n return isDev || isDebugOn\n ? logger.createLogger(...args)\n : logger.createNoopLogger(...args);\n};\n\n// creating a hooks like this: `useLogger(...args)` will cause it's result to be created anew on every render,\n// because react-compiler fails to memoize spreded args, probably because spread creates a new array on every render\nexport const useLogger: logger.CreateLoggerFn = (\n context?: string,\n options?: logger.LoggerOptions\n): logger.LoggerInstance => {\n const debug = useWidgetConfig().debug;\n return isDev || debug\n ? logger.createLogger(context, options)\n : logger.createNoopLogger(context, options);\n};\n"],"names":["isDebugOn","jotaiStore","get","widgetConfigAtom","debug","sub","getLogger","args","logger","createLogger","createNoopLogger","useLogger","context","options","$","_c","useWidgetConfig","t0"],"mappings":";;;;;AAMA,IAAIA,SAAAA,GAAYC,UAAAA,CAAWC,GAAAA,CAAIC,gBAAgB,CAAA,CAAEC,KAAAA;AACjDH,UAAAA,CAAWI,GAAAA,CAAIF,kBAAkB,MAAM;AACrC,EAAA,MAAMC,KAAAA,GAAQH,UAAAA,CAAWC,GAAAA,CAAIC,gBAAgB,CAAA,CAAEC,KAAAA;AAC/C,EAAA,IAAIA,KAAAA,KAAUJ,WAAWA,SAAAA,GAAYI,KAAAA;AACvC,CAAC,CAAA;AAMM,MAAME,SAAAA,GAAmCA,IAC3CC,IAAAA,KACuB;AAC1B,EAAA,OAAgBP,SAAAA,GACZQ,YAAOC,CAAa,GAAGF,IAAI,CAAA,GAC3BC,gBAAOE,CAAiB,GAAGH,IAAI,CAAA;AACrC;AAIO,MAAMI,SAAAA,GAAmCA,CAAAC,OAAAA,EAAAC,OAAAA,KAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAI9C,EAAA,MAAAX,KAAAA,GAAcY,iBAAgB,CAACZ,KAAAA;AAAO,EAAA,IAAAa,EAAAA;AAAA,EAAA,IAAAH,CAAAA,CAAA,CAAA,CAAA,KAAAF,OAAAA,IAAAE,CAAAA,QAAAV,KAAAA,IAAAU,CAAAA,CAAA,CAAA,CAAA,KAAAD,OAAAA,EAAA;AAC/BI,IAAAA,EAAAA,GAASb,KAAAA,GACZI,YAAAC,CAAoBG,OAAAA,EAASC,OAAO,CAAA,GACpCL,gBAAAE,CAAwC,CAAA;AAACI,IAAAA,CAAAA,MAAAF,OAAAA;AAAAE,IAAAA,CAAAA,MAAAV,KAAAA;AAAAU,IAAAA,CAAAA,MAAAD,OAAAA;AAAAC,IAAAA,CAAAA,MAAAG,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAH,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAFtCG,EAAAA;AAEsC;;;;"}
|
|
@@ -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;AAkB3C,eAAO,MAAM,uBAAuB,QAC9B,
|
|
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;AAkB3C,eAAO,MAAM,uBAAuB,QAC9B,kCAsEH,CAAC"}
|
|
@@ -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/selectedTokenAtom\";\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 { isTruthy } from \"@/lib/utils\";\nimport { constructYouGetDetail } from \"./youGet\";\nimport { useSlippage } from \"@/hooks/useSlippage\";\n\nexport const useSwapDetailsListProps =\n (): DetailWithValueListExpandableProps => {\n const { tokenFrom, tokenTo } = useWidgetTokens();\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();\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 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
|
|
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/selectedTokenAtom\";\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 { isTruthy } from \"@/lib/utils\";\nimport { constructYouGetDetail } from \"./youGet\";\nimport { useSlippage } from \"@/hooks/useSlippage\";\n\nexport const useSwapDetailsListProps =\n (): DetailWithValueListExpandableProps => {\n const { tokenFrom, tokenTo } = useWidgetTokens();\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();\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 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 <SwapRate\n srcToken={tokenFrom}\n destToken={tokenTo}\n srcAmountWei={srcAmountWei}\n destAmountWei={destAmountWei}\n isLoading={isLoading}\n reverse={isBuy}\n />\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","t1","bestRoute","undefined","t2","orderRoutingDetail","constructOrderRoutingDetail","bestRoutes","swapMode","priceImpactDetail","constructPriceImpactDetail","swapFeesDetail","constructSwapFeesDetail","networkFeesDetail","constructNetworkFeesDetail","youGetDetail","constructYouGetDetail","slippagePercent","filter","isTruthy","details","isBuy","t3","t4","root","t5","trigger","classes"],"mappings":";;;;;;;;;;;;;;;AAqBO,MAAMA,0BACXA,MAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AACE,EAAA,MAAA;AAAA,IAAAC,SAAAA;AAAAA,IAAAC;AAAAA,MAA+BC,eAAAA,EAAgB;AAE/C,EAAA,MAAAC,YAAAA,GAAqBC,aAAAC,qBAAkC,CAAA;AACvD,EAAA,MAAAC,aAAAA,GAAsBF,aAAAG,yBAAsC,CAAA;AAAE,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAV,EAAA,CAAA,CAAA,KAAAW,MAAAA,CAAAC,GAAAA,CAAA,2BAAA,CAAA,EAAA;AAEFF,IAAAA,EAAAA,GAAA;AAAA,MAAAG,OAAAA,EAAA;AAAA,KAAA;AAE3Db,IAAAA,CAAAA,MAAAU,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAV,EAAA,CAAA,CAAA;AAAA,EAAA;AAFD,EAAA,MAAA;AAAA,IAAAc,SAAAA;AAAAA,IAAAC,KAAAA;AAAAA,IAAAC;AAAAA,GAAA,GAAwCC,oBAAoBP,EAE3D,CAAA;AAED,EAAA,MAAA;AAAA,IAAAQ;AAAAA,MAA6BC,WAAAA,EAAY;AACzC,EAAA,MAAAC,WAAiBC,WAAAA,EAAY;AAGf,EAAA,MAAAC,EAAAA,GAAAP,KAAAA,IAAS,WAAA,IAAeA,KAAAA,GAAQA,MAAKQ,SAAAA,GAAAC,MAAAA;AAAsB,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAzB,CAAAA,CAAA,CAAA,CAAA,KAAAc,SAAAA,IAAAd,CAAAA,CAAA,CAAA,CAAA,KAAAe,KAAAA,IAAAf,CAAAA,CAAA,CAAA,CAAA,KAAAgB,SAAAA,IAAAhB,CAAAA,QAAAkB,gBAAAA,IAAAlB,CAAAA,CAAA,CAAA,CAAA,KAAAoB,QAAAA,IAAApB,CAAAA,CAAA,CAAA,CAAA,KAAAsB,EAAAA,IAAAtB,CAAAA,CAAA,CAAA,CAAA,KAAAG,OAAAA,EAAA;AADzE,IAAA,MAAAuB,qBAA2BC,2BAAAA,CAAA;AAAA,MAAAC,UAAAA,EACbN,EAAAA;AAAAA,MAA2DO,QAAAA,EAC7Db,SAAAA;AAAAA,MAASF;AAAAA,KAEpB,CAAA;AAED,IAAA,MAAAgB,oBAA0BC,0BAAAA,CAAA;AAAA,MAAAhB,KAAAA;AAAAA,MAAAD;AAAAA,KAGzB,CAAA;AAED,IAAA,MAAAkB,iBAAuBC,uBAAAA,CAAA;AAAA,MAAAlB,KAAAA;AAAAA,MAAAD;AAAAA,KAGtB,CAAA;AAED,IAAA,MAAAoB,oBAA0BC,0BAAAA,CAAA;AAAA,MAAApB,KAAAA;AAAAA,MAAAc,QAAAA,EAEdb,SAAAA;AAAAA,MAASF;AAAAA,KAEpB,CAAA;AAED,IAAA,MAAAsB,eAAqBC,qBAAAA,CAAA;AAAA,MAAAtB,KAAAA;AAAAA,MAAAD,SAAAA;AAAAA,MAAAwB,eAAAA,EAGFpB,gBAAAA;AAAAA,MAAgBf,OAAAA;AAAAA,MAAAiB;AAAAA,KAGlC,CAAA;AAEkCK,IAAAA,EAAAA,GAAA,CACjCC,oBACAI,iBAAAA,EACAE,cAAAA,EACAI,cACAF,iBAAiB,CAAA,CAAAK,OAAAC,QAEF,CAAA;AAACxC,IAAAA,CAAAA,MAAAc,SAAAA;AAAAd,IAAAA,CAAAA,MAAAe,KAAAA;AAAAf,IAAAA,CAAAA,MAAAgB,SAAAA;AAAAhB,IAAAA,CAAAA,MAAAkB,gBAAAA;AAAAlB,IAAAA,CAAAA,MAAAoB,QAAAA;AAAApB,IAAAA,CAAAA,MAAAsB,EAAAA;AAAAtB,IAAAA,CAAAA,MAAAG,OAAAA;AAAAH,IAAAA,CAAAA,MAAAyB,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAzB,EAAA,CAAA,CAAA;AAAA,EAAA;AAPlB,EAAA,MAAAyC,OAAAA,GAAmChB,EAAAA;AASnC,EAAA,MAAAiB,QAActB,QAAAA,KAAa,KAAA;AAAM,EAAA,IAAAuB,EAAAA;AAAA,EAAA,IAAA3C,CAAAA,QAAAQ,aAAAA,IAAAR,EAAA,EAAA,CAAA,KAAA0C,KAAAA,IAAA1C,CAAAA,CAAA,EAAA,CAAA,KAAAc,aAAAd,CAAAA,CAAA,EAAA,CAAA,KAAAK,YAAAA,IAAAL,CAAAA,SAAAE,SAAAA,IAAAF,CAAAA,CAAA,EAAA,CAAA,KAAAG,OAAAA,EAAA;AAI7BwC,IAAAA,EAAAA,mBAAA,GAAA,CAAC,QAAA,EAAA,EACWzC,QAAAA,EAAAA,SAAAA,EACCC,SAAAA,EAAAA,SACGE,YAAAA,EACCG,aAAAA,EACJM,SAAAA,EACF4B,OAAAA,EAAAA,KAAAA,EAAK,CAAA;AACd1C,IAAAA,CAAAA,MAAAQ,aAAAA;AAAAR,IAAAA,CAAAA,OAAA0C,KAAAA;AAAA1C,IAAAA,CAAAA,OAAAc,SAAAA;AAAAd,IAAAA,CAAAA,OAAAK,YAAAA;AAAAL,IAAAA,CAAAA,OAAAE,SAAAA;AAAAF,IAAAA,CAAAA,OAAAG,OAAAA;AAAAH,IAAAA,CAAAA,OAAA2C,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAA3C,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAA4C,EAAAA;AAAA,EAAA,IAAA5C,EAAA,EAAA,CAAA,KAAAW,MAAAA,CAAAC,GAAAA,CAAA,2BAAA,CAAA,EAAA;AAGKgC,IAAAA,EAAAA,GAAA;AAAA,MAAAC,IAAAA,EACD;AAAA,KAAM;AACb7C,IAAAA,CAAAA,OAAA4C,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAA5C,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAA8C,EAAAA;AAAA,EAAA,IAAA9C,EAAA,EAAA,CAAA,KAAAyC,WAAAzC,CAAAA,SAAA2C,EAAAA,EAAA;AAdIG,IAAAA,EAAAA,GAAA;AAAA,MAAAC,OAAAA,EAEHJ,EAAAA;AAAAA,MAOEF,OAAAA;AAAAA,MAAAO,OAAAA,EAGKJ;AAAAA,KAER;AACF5C,IAAAA,CAAAA,OAAAyC,OAAAA;AAAAzC,IAAAA,CAAAA,OAAA2C,EAAAA;AAAA3C,IAAAA,CAAAA,OAAA8C,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAA9C,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAfM8C,EAAAA;AAeN;;;;"}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import { DetailWithValue } from '../../components/widget/Details/types';
|
|
2
|
-
import { SwapMode } from '../../components/widget/SwapModeSwitcher/state/types';
|
|
3
2
|
import { DeltaOrMarketPrice } from '../../hooks/swap/prices/types';
|
|
4
3
|
import { Token } from '../../tokens/state/types';
|
|
5
|
-
export declare function constructYouGetDetail({ price,
|
|
4
|
+
export declare function constructYouGetDetail({ price, slippagePercent, isLoading, tokenTo, swapSide, }: {
|
|
6
5
|
price?: DeltaOrMarketPrice;
|
|
7
|
-
priceMode: SwapMode;
|
|
8
6
|
slippagePercent: number;
|
|
9
7
|
isLoading: boolean;
|
|
10
8
|
tokenTo?: Token;
|
|
@@ -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,
|
|
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;AAIlD,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,CA8B9B"}
|
|
@@ -4,7 +4,6 @@ import { formatUnits } from 'viem';
|
|
|
4
4
|
|
|
5
5
|
function constructYouGetDetail({
|
|
6
6
|
price,
|
|
7
|
-
priceMode,
|
|
8
7
|
slippagePercent,
|
|
9
8
|
isLoading,
|
|
10
9
|
tokenTo,
|
|
@@ -21,8 +20,7 @@ function constructYouGetDetail({
|
|
|
21
20
|
}
|
|
22
21
|
const minDestAmount = getDestAmountAfterFeeAndSlippage({
|
|
23
22
|
price,
|
|
24
|
-
slippagePercent
|
|
25
|
-
priceMode
|
|
23
|
+
slippagePercent
|
|
26
24
|
});
|
|
27
25
|
const minDestAmountUnit = formatUnits(BigInt(minDestAmount), tokenTo.decimals);
|
|
28
26
|
const formattedMinDestAmountUnit = toDecimalTrimmed(minDestAmountUnit);
|
|
@@ -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 {
|
|
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\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 };\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 };\n}\n"],"names":["constructYouGetDetail","price","slippagePercent","isLoading","tokenTo","swapSide","title","value","minDestAmount","getDestAmountAfterFeeAndSlippage","minDestAmountUnit","formatUnits","BigInt","decimals","formattedMinDestAmountUnit","toDecimalTrimmed","symbol"],"mappings":";;;;AAQO,SAASA,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;AAAAA,KACF;AAAA,EACF;AAEA,EAAA,MAAMK,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;AAAAA,GACF;AACF;;;;"}
|