@velora-dex/widget 0.1.2 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/web3/providers.d.ts +3 -0
- package/dist/components/web3/providers.d.ts.map +1 -1
- package/dist/components/web3/providers.js +18 -3
- package/dist/components/web3/providers.js.map +1 -1
- package/dist/components/widget/AppHeader/Activities/Drawers.d.ts.map +1 -1
- package/dist/components/widget/AppHeader/Activities/Drawers.js +33 -29
- package/dist/components/widget/AppHeader/Activities/Drawers.js.map +1 -1
- package/dist/components/widget/AppHeader/Activities/hooks.d.ts.map +1 -1
- package/dist/components/widget/AppHeader/Activities/hooks.js +193 -106
- package/dist/components/widget/AppHeader/Activities/hooks.js.map +1 -1
- package/dist/components/widget/AppHeader/TradeModeSwitcher.d.ts.map +1 -1
- package/dist/components/widget/AppHeader/TradeModeSwitcher.js +67 -42
- package/dist/components/widget/AppHeader/TradeModeSwitcher.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.d.ts.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js +207 -191
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js.map +1 -1
- package/dist/components/widget/ReceiverAddress/state/subscriptions.d.ts.map +1 -1
- package/dist/components/widget/ReceiverAddress/state/subscriptions.js +10 -3
- package/dist/components/widget/ReceiverAddress/state/subscriptions.js.map +1 -1
- package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcReviewAndConfirm.d.ts.map +1 -1
- package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcReviewAndConfirm.js +37 -39
- package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcReviewAndConfirm.js.map +1 -1
- package/dist/components/widget/TokenInput/EmptyInput.d.ts +1 -1
- package/dist/components/widget/TokenInput/EmptyInput.d.ts.map +1 -1
- package/dist/components/widget/TokenInput/EmptyInput.js +16 -14
- package/dist/components/widget/TokenInput/EmptyInput.js.map +1 -1
- package/dist/components/widget/TokenInput/index.d.ts.map +1 -1
- package/dist/components/widget/TokenInput/index.js +92 -91
- package/dist/components/widget/TokenInput/index.js.map +1 -1
- package/dist/components/widget/TokenSwitcher/TokenSwitcher.d.ts.map +1 -1
- package/dist/components/widget/TokenSwitcher/TokenSwitcher.js +34 -31
- package/dist/components/widget/TokenSwitcher/TokenSwitcher.js.map +1 -1
- package/dist/configurator/Configurator.d.ts.map +1 -1
- package/dist/core/Updaters.d.ts.map +1 -1
- package/dist/core/Updaters.js +9 -5
- package/dist/core/Updaters.js.map +1 -1
- package/dist/core/across/utils.d.ts.map +1 -1
- package/dist/core/across/utils.js +4 -4
- package/dist/core/across/utils.js.map +1 -1
- package/dist/core/constants.d.ts +5 -0
- package/dist/core/constants.d.ts.map +1 -1
- package/dist/core/constants.js +11 -1
- package/dist/core/constants.js.map +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +191 -120
- package/dist/core/index.js.map +1 -1
- package/dist/core/inputs/hooks/types.d.ts +1 -1
- package/dist/core/inputs/hooks/types.d.ts.map +1 -1
- package/dist/core/inputs/hooks/useTokenFromInputProps.d.ts.map +1 -1
- package/dist/core/inputs/hooks/useTokenFromInputProps.js +36 -43
- package/dist/core/inputs/hooks/useTokenFromInputProps.js.map +1 -1
- package/dist/core/inputs/hooks/useTokenSwitcherProps.d.ts.map +1 -1
- package/dist/core/inputs/hooks/useTokenSwitcherProps.js +17 -7
- package/dist/core/inputs/hooks/useTokenSwitcherProps.js.map +1 -1
- package/dist/core/inputs/hooks/useTokenToInputProps.d.ts.map +1 -1
- package/dist/core/inputs/hooks/useTokenToInputProps.js +64 -77
- package/dist/core/inputs/hooks/useTokenToInputProps.js.map +1 -1
- package/dist/core/inputs/state/selectedTokenActionsAtom.d.ts +1 -1
- package/dist/core/inputs/state/selectedTokenActionsAtom.d.ts.map +1 -1
- package/dist/core/inputs/state/selectedTokenActionsAtom.js +58 -28
- package/dist/core/inputs/state/selectedTokenActionsAtom.js.map +1 -1
- package/dist/core/inputs/state/setTokenByAddressAtom.d.ts.map +1 -1
- package/dist/core/inputs/state/setTokenByAddressAtom.js +10 -9
- package/dist/core/inputs/state/setTokenByAddressAtom.js.map +1 -1
- package/dist/core/inputs/state/subscriptions.d.ts.map +1 -1
- package/dist/core/inputs/state/subscriptions.js +2 -1
- package/dist/core/inputs/state/subscriptions.js.map +1 -1
- package/dist/core/limit/state/selectedTokenActionsAtom.d.ts.map +1 -1
- package/dist/core/limit/state/selectedTokenActionsAtom.js +3 -3
- package/dist/core/limit/state/selectedTokenActionsAtom.js.map +1 -1
- package/dist/core/limit/useLimitTokenFromInputProps.d.ts.map +1 -1
- package/dist/core/limit/useLimitTokenFromInputProps.js +35 -42
- package/dist/core/limit/useLimitTokenFromInputProps.js.map +1 -1
- package/dist/core/limit/useLimitTokenToInputProps.d.ts.map +1 -1
- package/dist/core/limit/useLimitTokenToInputProps.js +9 -20
- package/dist/core/limit/useLimitTokenToInputProps.js.map +1 -1
- package/dist/core/otc/state/selectedTokenActionsAtom.d.ts.map +1 -1
- package/dist/core/otc/state/selectedTokenActionsAtom.js +3 -3
- package/dist/core/otc/state/selectedTokenActionsAtom.js.map +1 -1
- package/dist/core/otc/useOtcTokenFromInputProps.d.ts.map +1 -1
- package/dist/core/otc/useOtcTokenFromInputProps.js +35 -42
- package/dist/core/otc/useOtcTokenFromInputProps.js.map +1 -1
- package/dist/core/otc/useOtcTokenToInputProps.d.ts.map +1 -1
- package/dist/core/otc/useOtcTokenToInputProps.js +9 -20
- package/dist/core/otc/useOtcTokenToInputProps.js.map +1 -1
- package/dist/core/state/configActionsAtom.d.ts +5 -2
- package/dist/core/state/configActionsAtom.d.ts.map +1 -1
- package/dist/core/state/configActionsAtom.js +24 -12
- package/dist/core/state/configActionsAtom.js.map +1 -1
- package/dist/core/state/configAtom.d.ts +33 -11
- package/dist/core/state/configAtom.d.ts.map +1 -1
- package/dist/core/state/configAtom.js +15 -1
- package/dist/core/state/configAtom.js.map +1 -1
- package/dist/core/state/configEffectAtom.d.ts +5 -0
- package/dist/core/state/configEffectAtom.d.ts.map +1 -0
- package/dist/core/state/configEffectAtom.js +56 -0
- package/dist/core/state/configEffectAtom.js.map +1 -0
- package/dist/core/state/enabledChainsAtom.d.ts +10 -0
- package/dist/core/state/enabledChainsAtom.d.ts.map +1 -0
- package/dist/core/state/enabledChainsAtom.js +101 -0
- package/dist/core/state/enabledChainsAtom.js.map +1 -0
- package/dist/core/state/enabledTradeModesAtom.d.ts +3 -0
- package/dist/core/state/enabledTradeModesAtom.d.ts.map +1 -0
- package/dist/core/state/enabledTradeModesAtom.js +31 -0
- package/dist/core/state/enabledTradeModesAtom.js.map +1 -0
- package/dist/core/state/tradeModeAtom.d.ts +2 -1
- package/dist/core/state/tradeModeAtom.d.ts.map +1 -1
- package/dist/core/state/tradeModeAtom.js +9 -2
- package/dist/core/state/tradeModeAtom.js.map +1 -1
- package/dist/core/subscriptions.d.ts.map +1 -1
- package/dist/core/subscriptions.js +0 -2
- package/dist/core/subscriptions.js.map +1 -1
- package/dist/core/types.d.ts +12 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/hooks/otc/mutations/useFillOrder.js +4 -1
- package/dist/hooks/otc/mutations/useFillOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.d.ts +5 -2
- package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.js +19 -2
- package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.js.map +1 -1
- package/dist/hooks/tokens/data/useCombineTokensWithFetched.d.ts.map +1 -1
- package/dist/hooks/tokens/data/useCombineTokensWithFetched.js +41 -39
- package/dist/hooks/tokens/data/useCombineTokensWithFetched.js.map +1 -1
- package/dist/hooks/txs/queries/useAwaitTx.d.ts.map +1 -1
- package/dist/hooks/txs/queries/useAwaitTx.js +11 -7
- package/dist/hooks/txs/queries/useAwaitTx.js.map +1 -1
- package/dist/hooks/useAvailableCrosses.d.ts +3 -2
- package/dist/hooks/useAvailableCrosses.d.ts.map +1 -1
- package/dist/hooks/useAvailableCrosses.js +23 -20
- package/dist/hooks/useAvailableCrosses.js.map +1 -1
- package/dist/hooks/useGlobalDeltaEnabled.d.ts +1 -0
- package/dist/hooks/useGlobalDeltaEnabled.d.ts.map +1 -1
- package/dist/hooks/useGlobalDeltaEnabled.js +22 -17
- package/dist/hooks/useGlobalDeltaEnabled.js.map +1 -1
- package/dist/hooks/useSelectableDestChains.d.ts +14 -0
- package/dist/hooks/useSelectableDestChains.d.ts.map +1 -0
- package/dist/hooks/useSelectableDestChains.js +91 -0
- package/dist/hooks/useSelectableDestChains.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/constants/delta.js +1 -1
- package/dist/lib/constants/delta.js.map +1 -1
- package/dist/lib/constants/index.js +1 -1
- package/dist/lib/constants/index.js.map +1 -1
- package/dist/lib/tradeMode.d.ts +4 -0
- package/dist/lib/tradeMode.d.ts.map +1 -0
- package/dist/lib/tradeMode.js +8 -0
- package/dist/lib/tradeMode.js.map +1 -0
- package/dist/lib/utils/atomWithCompare.d.ts +2 -0
- package/dist/lib/utils/atomWithCompare.d.ts.map +1 -0
- package/dist/lib/utils/atomWithCompare.js +13 -0
- package/dist/lib/utils/atomWithCompare.js.map +1 -0
- package/dist/lib/utils/index.d.ts +2 -0
- package/dist/lib/utils/index.d.ts.map +1 -1
- package/dist/lib/utils/index.js +17 -1
- package/dist/lib/utils/index.js.map +1 -1
- package/dist/lib/web3/wagmi/config.d.ts.map +1 -1
- package/dist/lib/web3/wagmi/config.js +2 -1
- package/dist/lib/web3/wagmi/config.js.map +1 -1
- package/dist/lib/web3/wagmi/constants.d.ts +2 -1
- package/dist/lib/web3/wagmi/constants.d.ts.map +1 -1
- package/dist/lib/web3/wagmi/constants.js.map +1 -1
- package/dist/lib/web3/wagmi/switchChain.d.ts +1169 -0
- package/dist/lib/web3/wagmi/switchChain.d.ts.map +1 -0
- package/dist/lib/web3/wagmi/switchChain.js +23 -0
- package/dist/lib/web3/wagmi/switchChain.js.map +1 -0
- package/dist/lib/web3/wagmi/types.d.ts +2 -2
- package/dist/lib/web3/wagmi/types.d.ts.map +1 -1
- package/dist/styles.css +3 -0
- package/dist/tokens/lists/constants.d.ts +1 -0
- package/dist/tokens/lists/constants.d.ts.map +1 -1
- package/dist/tokens/lists/constants.js +6 -2
- package/dist/tokens/lists/constants.js.map +1 -1
- package/dist/tokens/lists/lists.json.d.ts +23 -44
- package/dist/tokens/lists/lists.json.js +354 -1
- package/dist/tokens/lists/lists.json.js.map +1 -1
- package/dist/tokens/lists/state/effects.d.ts +2 -0
- package/dist/tokens/lists/state/effects.d.ts.map +1 -0
- package/dist/tokens/lists/state/effects.js +25 -0
- package/dist/tokens/lists/state/effects.js.map +1 -0
- package/dist/tokens/lists/state/tokenListsActionsAtom.js +3 -3
- package/dist/tokens/lists/state/tokenListsActionsAtom.js.map +1 -1
- package/dist/tokens/lists/state/tokenListsStateAtom.d.ts +16 -7
- package/dist/tokens/lists/state/tokenListsStateAtom.d.ts.map +1 -1
- package/dist/tokens/lists/state/tokenListsStateAtom.js +50 -5
- package/dist/tokens/lists/state/tokenListsStateAtom.js.map +1 -1
- package/dist/tokens/lists/types.d.ts.map +1 -1
- package/dist/tokens/lists/utils.js +1 -1
- package/dist/tokens/queries.d.ts +4 -2
- package/dist/tokens/queries.d.ts.map +1 -1
- package/dist/tokens/queries.js +25 -15
- package/dist/tokens/queries.js.map +1 -1
- package/dist/tokens/state/fromListsAtom.js +4 -4
- package/dist/tokens/state/fromListsAtom.js.map +1 -1
- package/dist/transactions/queries/ensureTxReceipt.d.ts +3 -2
- package/dist/transactions/queries/ensureTxReceipt.d.ts.map +1 -1
- package/dist/transactions/queries/ensureTxReceipt.js +26 -6
- package/dist/transactions/queries/ensureTxReceipt.js.map +1 -1
- package/dist/transactions/state/hooks/useTransactions.d.ts +2 -0
- package/dist/transactions/state/hooks/useTransactions.d.ts.map +1 -1
- package/dist/transactions/state/hooks/useTransactions.js +59 -1
- package/dist/transactions/state/hooks/useTransactions.js.map +1 -1
- package/package.json +5 -4
- package/dist/tokens/lists/hooks.d.ts +0 -2
- package/dist/tokens/lists/hooks.d.ts.map +0 -1
- package/dist/tokens/lists/hooks.js +0 -26
- package/dist/tokens/lists/hooks.js.map +0 -1
- package/dist/tokens/lists/state/observer.d.ts +0 -2
- package/dist/tokens/lists/state/observer.d.ts.map +0 -1
- package/dist/tokens/lists/state/observer.js +0 -18
- package/dist/tokens/lists/state/observer.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useOtcTokenToInputProps.js","sources":["../../../src/core/otc/useOtcTokenToInputProps.tsx"],"sourcesContent":["import type { TokenInputProps } from \"@/components/widget/TokenInput/types\";\nimport { useAtomValue, useSetAtom } from \"jotai\";\nimport { otcReceiveInputAmountAtom } from \"./state/otcInputAmountAtom\";\nimport { setOtcReceiveAmountAtom } from \"./state/otcInputActionsAtom\";\nimport { useLogger } from \"../logger\";\nimport type { OnValueChange } from \"react-number-format\";\nimport { useLimitRate } from \"../limit/useLimitRate\";\nimport { currentOtcInputAtom } from \"./state/currentOtcInputAtom\";\nimport type { TokenInputExtraProps } from \"../inputs/hooks/types\";\nimport { useTokenBalance } from \"@/hooks/tokens/balances/useTokenBalance\";\nimport { MEDIUM_STALE_TIME_FOR_REACTIVENESS } from \"@/lib/constants/time\";\nimport { toDecimalTrimmed } from \"@/lib/utils/toDecimal\";\nimport { useOtcInputClasses } from \"./useOtcTokenFromInputProps\";\nimport { selectOtcTokenToAtom } from \"./state/selectedTokenActionsAtom\";\nimport { useOtcTokenTo } from \"./state/selectedTokenAtom\";\n\nconst useTokenToBalanceUnit = () => {\n const tokenTo = useOtcTokenTo();\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 useExtraProps = (): TokenInputExtraProps => {\n const setCurrentInput = useSetAtom(currentOtcInputAtom);\n\n return {\n tokenType: \"to\" as const,\n onFocus: () => setCurrentInput(\"to\"),\n label:
|
|
1
|
+
{"version":3,"file":"useOtcTokenToInputProps.js","sources":["../../../src/core/otc/useOtcTokenToInputProps.tsx"],"sourcesContent":["import type { TokenInputProps } from \"@/components/widget/TokenInput/types\";\nimport { useAtomValue, useSetAtom } from \"jotai\";\nimport { otcReceiveInputAmountAtom } from \"./state/otcInputAmountAtom\";\nimport { setOtcReceiveAmountAtom } from \"./state/otcInputActionsAtom\";\nimport { useLogger } from \"../logger\";\nimport type { OnValueChange } from \"react-number-format\";\nimport { useLimitRate } from \"../limit/useLimitRate\";\nimport { currentOtcInputAtom } from \"./state/currentOtcInputAtom\";\nimport type { TokenInputExtraProps } from \"../inputs/hooks/types\";\nimport { useTokenBalance } from \"@/hooks/tokens/balances/useTokenBalance\";\nimport { MEDIUM_STALE_TIME_FOR_REACTIVENESS } from \"@/lib/constants/time\";\nimport { toDecimalTrimmed } from \"@/lib/utils/toDecimal\";\nimport { useOtcInputClasses } from \"./useOtcTokenFromInputProps\";\nimport { selectOtcTokenToAtom } from \"./state/selectedTokenActionsAtom\";\nimport { useOtcTokenTo } from \"./state/selectedTokenAtom\";\n\nconst useTokenToBalanceUnit = () => {\n const tokenTo = useOtcTokenTo();\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 useExtraProps = (): TokenInputExtraProps => {\n const setCurrentInput = useSetAtom(currentOtcInputAtom);\n\n return {\n tokenType: \"to\" as const,\n onFocus: () => setCurrentInput(\"to\"),\n label: <span>Receive</span>,\n };\n};\n\nconst useTokenToAmountProps = (): Pick<\n TokenInputProps,\n \"amount\" | \"isLoading\" | \"token\" | \"onAmountChange\" | \"onTokenSelect\"\n> => {\n const logger = useLogger(\"OTC::TokenTo::AmountProps\");\n const tokenTo = useOtcTokenTo();\n\n const receiveAmount = useAtomValue(otcReceiveInputAmountAtom);\n const setReceiveAmount = useSetAtom(setOtcReceiveAmountAtom);\n\n const { isLoading } = useLimitRate(\"otc\");\n\n const onAmountChange: OnValueChange = (values) => {\n logger.log(\"onAmountChange::values\", values);\n setReceiveAmount(values.value);\n };\n\n const setTokenTo = useSetAtom(selectOtcTokenToAtom);\n\n return {\n amount: receiveAmount,\n isLoading,\n token: tokenTo,\n onAmountChange,\n onTokenSelect: setTokenTo,\n };\n};\n\nexport const useOtcTokenToInputProps = (): TokenInputProps => {\n const extraAmountProps = useTokenToAmountProps();\n const extraProps = useExtraProps();\n const tokenBalanceUnit = useTokenToBalanceUnit();\n const classes = useOtcInputClasses();\n\n return {\n ...extraProps,\n ...extraAmountProps,\n tokenBalanceUnit,\n classes,\n };\n};\n"],"names":["useTokenToBalanceUnit","$","_c","tokenTo","useOtcTokenTo","t0","Symbol","for","refetchInterval","MEDIUM_STALE_TIME_FOR_REACTIVENESS","t1","token","queryOptions","balanceUnit","useTokenBalance","t2","toDecimalTrimmed","useExtraProps","setCurrentInput","useSetAtom","currentOtcInputAtom","tokenType","onFocus","label","useTokenToAmountProps","logger","useLogger","receiveAmount","useAtomValue","otcReceiveInputAmountAtom","setReceiveAmount","setOtcReceiveAmountAtom","isLoading","useLimitRate","values","log","value","onAmountChange","setTokenTo","selectOtcTokenToAtom","amount","onTokenSelect","useOtcTokenToInputProps","extraAmountProps","extraProps","tokenBalanceUnit","classes","useOtcInputClasses"],"mappings":"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"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare const setWidgetConfigAtom: import('jotai').WritableAtom<null, [config:
|
|
1
|
+
import { IterableConfig, PrimitiveConfig } from './configAtom';
|
|
2
|
+
export declare const setWidgetConfigAtom: import('jotai').WritableAtom<null, [config: PrimitiveConfig], void> & {
|
|
3
|
+
init: null;
|
|
4
|
+
};
|
|
5
|
+
export declare const setSubConfigAtom: import('jotai').WritableAtom<null, [config: IterableConfig], void> & {
|
|
3
6
|
init: null;
|
|
4
7
|
};
|
|
5
8
|
//# sourceMappingURL=configActionsAtom.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configActionsAtom.d.ts","sourceRoot":"","sources":["../../../src/core/state/configActionsAtom.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"configActionsAtom.d.ts","sourceRoot":"","sources":["../../../src/core/state/configActionsAtom.ts"],"names":[],"mappings":"AACA,OAAO,EAOL,KAAK,cAAc,EACnB,KAAK,eAAe,EAErB,MAAM,cAAc,CAAC;AAStB,eAAO,MAAM,mBAAmB;;CAgD/B,CAAC;AAIF,eAAO,MAAM,gBAAgB;;CAkB3B,CAAC"}
|
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
import { atom } from 'jotai';
|
|
2
|
-
import { widgetConfigAtom } from './configAtom.js';
|
|
2
|
+
import { defaultWidgetConfig, widgetConfigAtom, defaultSubConfig, srcChainsAtom, destChainsAtom, tokenListsAtom, tradeModesAtom } from './configAtom.js';
|
|
3
3
|
|
|
4
|
-
const setWidgetConfigAtom = atom(null, (
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const theme = config
|
|
8
|
-
const privyAppId = config
|
|
9
|
-
const privyClientId = config
|
|
10
|
-
const debug = config
|
|
11
|
-
const widgetMode = config
|
|
12
|
-
const ignoreBadUsdPrice = config
|
|
4
|
+
const setWidgetConfigAtom = atom(null, (_, set, config) => {
|
|
5
|
+
const enableDelta = typeof config.enableDelta !== "boolean" ? defaultWidgetConfig.enableDelta : config.enableDelta;
|
|
6
|
+
const enableCrossChain = typeof config.enableCrossChain !== "boolean" ? defaultWidgetConfig.enableCrossChain : config.enableCrossChain;
|
|
7
|
+
const theme = config.theme !== "dark" && config.theme !== "light" ? defaultWidgetConfig.theme : config.theme;
|
|
8
|
+
const privyAppId = typeof config.privyAppId !== "string" ? defaultWidgetConfig.privyAppId : config.privyAppId;
|
|
9
|
+
const privyClientId = typeof config.privyClientId !== "string" ? defaultWidgetConfig.privyClientId : config.privyClientId;
|
|
10
|
+
const debug = typeof config.debug !== "boolean" ? defaultWidgetConfig.debug : config.debug;
|
|
11
|
+
const widgetMode = config.widgetMode !== "dapp" && config.widgetMode !== "standalone" ? defaultWidgetConfig.widgetMode : config.widgetMode;
|
|
12
|
+
const ignoreBadUsdPrice = typeof config.ignoreBadUsdPrice !== "boolean" ? defaultWidgetConfig.ignoreBadUsdPrice : config.ignoreBadUsdPrice;
|
|
13
13
|
set(widgetConfigAtom, {
|
|
14
14
|
theme,
|
|
15
15
|
enableDelta,
|
|
16
|
-
|
|
16
|
+
enableCrossChain,
|
|
17
|
+
partner: config.partner,
|
|
18
|
+
// except for 'partner' which can be set to undefined
|
|
17
19
|
privyAppId,
|
|
18
20
|
privyClientId,
|
|
19
21
|
debug,
|
|
@@ -21,6 +23,16 @@ const setWidgetConfigAtom = atom(null, (get, set, config) => {
|
|
|
21
23
|
ignoreBadUsdPrice
|
|
22
24
|
});
|
|
23
25
|
});
|
|
26
|
+
const setSubConfigAtom = atom(null, (_, set, config) => {
|
|
27
|
+
const srcChains = !Array.isArray(config.srcChains) ? defaultSubConfig.srcChains : config.srcChains;
|
|
28
|
+
const destChains = !Array.isArray(config.destChains) ? defaultSubConfig.destChains : config.destChains;
|
|
29
|
+
const tokenLists = !Array.isArray(config.tokenLists) ? defaultSubConfig.tokenLists : config.tokenLists;
|
|
30
|
+
const tradeModes = !Array.isArray(config.tradeModes) ? defaultSubConfig.tradeModes : config.tradeModes;
|
|
31
|
+
set(srcChainsAtom, srcChains);
|
|
32
|
+
set(destChainsAtom, destChains);
|
|
33
|
+
set(tokenListsAtom, tokenLists);
|
|
34
|
+
set(tradeModesAtom, tradeModes);
|
|
35
|
+
});
|
|
24
36
|
|
|
25
|
-
export { setWidgetConfigAtom };
|
|
37
|
+
export { setSubConfigAtom, setWidgetConfigAtom };
|
|
26
38
|
//# sourceMappingURL=configActionsAtom.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configActionsAtom.js","sources":["../../../src/core/state/configActionsAtom.ts"],"sourcesContent":["import { atom } from \"jotai\";\nimport type
|
|
1
|
+
{"version":3,"file":"configActionsAtom.js","sources":["../../../src/core/state/configActionsAtom.ts"],"sourcesContent":["import { atom } from \"jotai\";\nimport {\n defaultWidgetConfig,\n defaultSubConfig,\n destChainsAtom,\n srcChainsAtom,\n tokenListsAtom,\n widgetConfigAtom,\n type IterableConfig,\n type PrimitiveConfig,\n tradeModesAtom,\n} from \"./configAtom\";\n\n// for each config/subConfig property, determine new value:\n// - if provided in config param is not valid, use default value\n// - otherwise, use provided value\n// this way we avoid overwriting with invalid values\n\n// this atom is used to sync widget config provided via props to the widgetConfigAtom without preserving previous values\n// if user does not provide any of the config properties or config itself, defaults will be used without falling back to the current value\nexport const setWidgetConfigAtom = atom(\n null,\n (_, set, config: PrimitiveConfig) => {\n const enableDelta =\n typeof config.enableDelta !== \"boolean\"\n ? defaultWidgetConfig.enableDelta\n : config.enableDelta;\n const enableCrossChain =\n typeof config.enableCrossChain !== \"boolean\"\n ? defaultWidgetConfig.enableCrossChain\n : config.enableCrossChain;\n const theme =\n config.theme !== \"dark\" && config.theme !== \"light\"\n ? defaultWidgetConfig.theme\n : config.theme;\n const privyAppId =\n typeof config.privyAppId !== \"string\"\n ? defaultWidgetConfig.privyAppId\n : config.privyAppId;\n const privyClientId =\n typeof config.privyClientId !== \"string\"\n ? defaultWidgetConfig.privyClientId\n : config.privyClientId;\n const debug =\n typeof config.debug !== \"boolean\"\n ? defaultWidgetConfig.debug\n : config.debug;\n const widgetMode =\n config.widgetMode !== \"dapp\" && config.widgetMode !== \"standalone\"\n ? defaultWidgetConfig.widgetMode\n : config.widgetMode;\n const ignoreBadUsdPrice =\n typeof config.ignoreBadUsdPrice !== \"boolean\"\n ? defaultWidgetConfig.ignoreBadUsdPrice\n : config.ignoreBadUsdPrice;\n\n set(widgetConfigAtom, {\n theme,\n enableDelta,\n enableCrossChain,\n partner: config.partner, // except for 'partner' which can be set to undefined\n privyAppId,\n privyClientId,\n debug,\n widgetMode,\n ignoreBadUsdPrice,\n });\n }\n);\n\n// this atom is used to sync partial widget config values provided via props to their atoms without preserving previous values\n// if user does not provide any of the config properties or config itself, defaults will be used without falling back to the current value\nexport const setSubConfigAtom = atom(null, (_, set, config: IterableConfig) => {\n const srcChains = !Array.isArray(config.srcChains)\n ? defaultSubConfig.srcChains\n : config.srcChains;\n const destChains = !Array.isArray(config.destChains)\n ? defaultSubConfig.destChains\n : config.destChains;\n const tokenLists = !Array.isArray(config.tokenLists)\n ? defaultSubConfig.tokenLists\n : config.tokenLists;\n const tradeModes = !Array.isArray(config.tradeModes)\n ? defaultSubConfig.tradeModes\n : config.tradeModes;\n\n set(srcChainsAtom, srcChains);\n set(destChainsAtom, destChains);\n set(tokenListsAtom, tokenLists);\n set(tradeModesAtom, tradeModes);\n});\n"],"names":["setWidgetConfigAtom","atom","_","set","config","enableDelta","defaultWidgetConfig","enableCrossChain","theme","privyAppId","privyClientId","debug","widgetMode","ignoreBadUsdPrice","widgetConfigAtom","partner","setSubConfigAtom","srcChains","Array","isArray","defaultSubConfig","destChains","tokenLists","tradeModes","srcChainsAtom","destChainsAtom","tokenListsAtom","tradeModesAtom"],"mappings":";;;AAoBO,MAAMA,sBAAsBC,IAAAA,CACjC,IAAA,EACA,CAACC,CAAAA,EAAGC,KAAKC,MAAAA,KAA4B;AACnC,EAAA,MAAMC,cACJ,OAAOD,MAAAA,CAAOC,gBAAgB,SAAA,GAC1BC,mBAAAA,CAAoBD,cACpBD,MAAAA,CAAOC,WAAAA;AACb,EAAA,MAAME,mBACJ,OAAOH,MAAAA,CAAOG,qBAAqB,SAAA,GAC/BD,mBAAAA,CAAoBC,mBACpBH,MAAAA,CAAOG,gBAAAA;AACb,EAAA,MAAMC,KAAAA,GACJJ,OAAOI,KAAAA,KAAU,MAAA,IAAUJ,OAAOI,KAAAA,KAAU,OAAA,GACxCF,mBAAAA,CAAoBE,KAAAA,GACpBJ,MAAAA,CAAOI,KAAAA;AACb,EAAA,MAAMC,aACJ,OAAOL,MAAAA,CAAOK,eAAe,QAAA,GACzBH,mBAAAA,CAAoBG,aACpBL,MAAAA,CAAOK,UAAAA;AACb,EAAA,MAAMC,gBACJ,OAAON,MAAAA,CAAOM,kBAAkB,QAAA,GAC5BJ,mBAAAA,CAAoBI,gBACpBN,MAAAA,CAAOM,aAAAA;AACb,EAAA,MAAMC,QACJ,OAAOP,MAAAA,CAAOO,UAAU,SAAA,GACpBL,mBAAAA,CAAoBK,QACpBP,MAAAA,CAAOO,KAAAA;AACb,EAAA,MAAMC,UAAAA,GACJR,OAAOQ,UAAAA,KAAe,MAAA,IAAUR,OAAOQ,UAAAA,KAAe,YAAA,GAClDN,mBAAAA,CAAoBM,UAAAA,GACpBR,MAAAA,CAAOQ,UAAAA;AACb,EAAA,MAAMC,oBACJ,OAAOT,MAAAA,CAAOS,sBAAsB,SAAA,GAChCP,mBAAAA,CAAoBO,oBACpBT,MAAAA,CAAOS,iBAAAA;AAEbV,EAAAA,GAAAA,CAAIW,gBAAAA,EAAkB;AAAA,IACpBN,KAAAA;AAAAA,IACAH,WAAAA;AAAAA,IACAE,gBAAAA;AAAAA,IACAQ,SAASX,MAAAA,CAAOW,OAAAA;AAAAA;AAAAA,IAChBN,UAAAA;AAAAA,IACAC,aAAAA;AAAAA,IACAC,KAAAA;AAAAA,IACAC,UAAAA;AAAAA,IACAC;AAAAA,GACD,CAAA;AACH,CACF;AAIO,MAAMG,mBAAmBf,IAAAA,CAAK,IAAA,EAAM,CAACC,CAAAA,EAAGC,KAAKC,MAAAA,KAA2B;AAC7E,EAAA,MAAMa,SAAAA,GAAY,CAACC,KAAAA,CAAMC,OAAAA,CAAQf,OAAOa,SAAS,CAAA,GAC7CG,gBAAAA,CAAiBH,SAAAA,GACjBb,MAAAA,CAAOa,SAAAA;AACX,EAAA,MAAMI,UAAAA,GAAa,CAACH,KAAAA,CAAMC,OAAAA,CAAQf,OAAOiB,UAAU,CAAA,GAC/CD,gBAAAA,CAAiBC,UAAAA,GACjBjB,MAAAA,CAAOiB,UAAAA;AACX,EAAA,MAAMC,UAAAA,GAAa,CAACJ,KAAAA,CAAMC,OAAAA,CAAQf,OAAOkB,UAAU,CAAA,GAC/CF,gBAAAA,CAAiBE,UAAAA,GACjBlB,MAAAA,CAAOkB,UAAAA;AACX,EAAA,MAAMC,UAAAA,GAAa,CAACL,KAAAA,CAAMC,OAAAA,CAAQf,OAAOmB,UAAU,CAAA,GAC/CH,gBAAAA,CAAiBG,UAAAA,GACjBnB,MAAAA,CAAOmB,UAAAA;AAEXpB,EAAAA,GAAAA,CAAIqB,eAAeP,SAAS,CAAA;AAC5Bd,EAAAA,GAAAA,CAAIsB,gBAAgBJ,UAAU,CAAA;AAC9BlB,EAAAA,GAAAA,CAAIuB,gBAAgBJ,UAAU,CAAA;AAC9BnB,EAAAA,GAAAA,CAAIwB,gBAAgBJ,UAAU,CAAA;AAChC,CAAC;;;;"}
|
|
@@ -1,37 +1,59 @@
|
|
|
1
|
-
import { WidgetConfig } from '../types';
|
|
2
|
-
import {
|
|
3
|
-
type
|
|
4
|
-
export
|
|
1
|
+
import { WidgetConfig, WidgetTheme } from '../types';
|
|
2
|
+
import { TradeMode } from './tradeModeAtom';
|
|
3
|
+
export type PrimitiveConfig = Pick<WidgetConfig, "theme" | "enableDelta" | "enableCrossChain" | "partner" | "privyAppId" | "privyClientId" | "debug" | "widgetMode" | "ignoreBadUsdPrice">;
|
|
4
|
+
export type IterableConfig = Pick<WidgetConfig, "srcChains" | "destChains" | "tokenLists" | "tradeModes">;
|
|
5
|
+
export declare const defaultWidgetConfig: {
|
|
6
|
+
readonly theme: WidgetTheme;
|
|
7
|
+
readonly enableDelta: true;
|
|
8
|
+
readonly enableCrossChain: true;
|
|
9
|
+
readonly privyAppId: any;
|
|
10
|
+
readonly privyClientId: any;
|
|
11
|
+
readonly debug: false;
|
|
12
|
+
readonly widgetMode: "standalone";
|
|
13
|
+
readonly ignoreBadUsdPrice: true;
|
|
14
|
+
};
|
|
5
15
|
export declare const widgetConfigAtom: import('jotai').PrimitiveAtom<{
|
|
16
|
+
debug: boolean;
|
|
17
|
+
partner?: string | undefined;
|
|
6
18
|
theme: "light" | "dark";
|
|
7
19
|
enableDelta: boolean;
|
|
8
|
-
|
|
20
|
+
enableCrossChain: boolean;
|
|
9
21
|
privyAppId: string;
|
|
10
22
|
privyClientId: string;
|
|
11
|
-
debug: boolean;
|
|
12
23
|
widgetMode: "dapp" | "standalone";
|
|
13
24
|
ignoreBadUsdPrice: boolean;
|
|
14
25
|
}> & {
|
|
15
26
|
init: {
|
|
27
|
+
debug: boolean;
|
|
28
|
+
partner?: string | undefined;
|
|
16
29
|
theme: "light" | "dark";
|
|
17
30
|
enableDelta: boolean;
|
|
18
|
-
|
|
31
|
+
enableCrossChain: boolean;
|
|
19
32
|
privyAppId: string;
|
|
20
33
|
privyClientId: string;
|
|
21
|
-
debug: boolean;
|
|
22
34
|
widgetMode: "dapp" | "standalone";
|
|
23
35
|
ignoreBadUsdPrice: boolean;
|
|
24
36
|
};
|
|
25
37
|
};
|
|
26
38
|
export declare const useWidgetConfig: () => {
|
|
39
|
+
debug: boolean;
|
|
40
|
+
partner?: string | undefined;
|
|
27
41
|
theme: "light" | "dark";
|
|
28
42
|
enableDelta: boolean;
|
|
29
|
-
|
|
43
|
+
enableCrossChain: boolean;
|
|
30
44
|
privyAppId: string;
|
|
31
45
|
privyClientId: string;
|
|
32
|
-
debug: boolean;
|
|
33
46
|
widgetMode: "dapp" | "standalone";
|
|
34
47
|
ignoreBadUsdPrice: boolean;
|
|
35
48
|
};
|
|
36
|
-
export {
|
|
49
|
+
export declare const defaultSubConfig: {
|
|
50
|
+
readonly tokenLists: never[];
|
|
51
|
+
readonly srcChains: never[];
|
|
52
|
+
readonly destChains: never[];
|
|
53
|
+
readonly tradeModes: never[];
|
|
54
|
+
};
|
|
55
|
+
export declare const tokenListsAtom: import('jotai').WritableAtom<string[], [string[]], void>;
|
|
56
|
+
export declare const srcChainsAtom: import('jotai').WritableAtom<(1 | 10 | 137 | 56 | 43114 | 42161 | 8453 | 100 | 146 | 130)[], [(1 | 10 | 137 | 56 | 43114 | 42161 | 8453 | 100 | 146 | 130)[]], void>;
|
|
57
|
+
export declare const destChainsAtom: import('jotai').WritableAtom<(1 | 10 | 137 | 56 | 43114 | 42161 | 8453 | 100 | 146 | 130)[], [(1 | 10 | 137 | 56 | 43114 | 42161 | 8453 | 100 | 146 | 130)[]], void>;
|
|
58
|
+
export declare const tradeModesAtom: import('jotai').WritableAtom<TradeMode[], [TradeMode[]], void>;
|
|
37
59
|
//# sourceMappingURL=configAtom.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configAtom.d.ts","sourceRoot":"","sources":["../../../src/core/state/configAtom.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"configAtom.d.ts","sourceRoot":"","sources":["../../../src/core/state/configAtom.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAM1D,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAejD,MAAM,MAAM,eAAe,GAAG,IAAI,CAChC,YAAY,EACV,OAAO,GACP,aAAa,GACb,kBAAkB,GAClB,SAAS,GACT,YAAY,GACZ,eAAe,GACf,OAAO,GACP,YAAY,GACZ,mBAAmB,CACtB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,IAAI,CAC/B,YAAY,EACZ,WAAW,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,CACzD,CAAC;AAcF,eAAO,MAAM,mBAAmB;;;;;;;;;CASI,CAAC;AAErC,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;CAAkD,CAAC;AAEhF,eAAO,MAAM,eAAe;;;;;;;;;;CAE3B,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;;CAKM,CAAC;AAIpC,eAAO,MAAM,cAAc,0DAG1B,CAAC;AACF,eAAO,MAAM,aAAa,sKAGzB,CAAC;AACF,eAAO,MAAM,cAAc,sKAG1B,CAAC;AAEF,eAAO,MAAM,cAAc,gEAG1B,CAAC"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { atom, useAtomValue } from 'jotai';
|
|
2
|
+
import { emptyArray } from '../../lib/constants/index.js';
|
|
3
|
+
import { atomWithCompare } from '../../lib/utils/atomWithCompare.js';
|
|
4
|
+
import { unorderedShallowEqual } from '../../lib/utils/index.js';
|
|
2
5
|
|
|
3
6
|
const getDefaultTheme = () => {
|
|
4
7
|
if (typeof window !== "undefined" && window.matchMedia) {
|
|
@@ -10,6 +13,7 @@ const getDefaultTheme = () => {
|
|
|
10
13
|
const defaultWidgetConfig = {
|
|
11
14
|
theme: getDefaultTheme(),
|
|
12
15
|
enableDelta: true,
|
|
16
|
+
enableCrossChain: true,
|
|
13
17
|
privyAppId: "cmb549ngz00omi90lifm9ifv5",
|
|
14
18
|
privyClientId: "client-WY6LzDz2oxeGCDsUEdenrY8z7Qf7WHMmUKVbxSXZ31RqT",
|
|
15
19
|
debug: false,
|
|
@@ -20,6 +24,16 @@ const widgetConfigAtom = atom(defaultWidgetConfig);
|
|
|
20
24
|
const useWidgetConfig = () => {
|
|
21
25
|
return useAtomValue(widgetConfigAtom);
|
|
22
26
|
};
|
|
27
|
+
const defaultSubConfig = {
|
|
28
|
+
tokenLists: emptyArray,
|
|
29
|
+
srcChains: emptyArray,
|
|
30
|
+
destChains: emptyArray,
|
|
31
|
+
tradeModes: emptyArray
|
|
32
|
+
};
|
|
33
|
+
const tokenListsAtom = atomWithCompare(defaultSubConfig.tokenLists, unorderedShallowEqual);
|
|
34
|
+
const srcChainsAtom = atomWithCompare(defaultSubConfig.srcChains, unorderedShallowEqual);
|
|
35
|
+
const destChainsAtom = atomWithCompare(defaultSubConfig.destChains, unorderedShallowEqual);
|
|
36
|
+
const tradeModesAtom = atomWithCompare(defaultSubConfig.tradeModes, unorderedShallowEqual);
|
|
23
37
|
|
|
24
|
-
export { defaultWidgetConfig, useWidgetConfig, widgetConfigAtom };
|
|
38
|
+
export { defaultSubConfig, defaultWidgetConfig, destChainsAtom, srcChainsAtom, tokenListsAtom, tradeModesAtom, useWidgetConfig, widgetConfigAtom };
|
|
25
39
|
//# sourceMappingURL=configAtom.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configAtom.js","sources":["../../../src/core/state/configAtom.ts"],"sourcesContent":["import { atom, useAtomValue } from \"jotai\";\nimport type { WidgetConfig, WidgetTheme } from \"../types\";\nimport type { MarkRequired } from \"ts-essentials\";\n\n// Function to get the default theme based on system preference\nconst getDefaultTheme = (): WidgetTheme => {\n // Check if we're in a browser environment\n if (typeof window !== \"undefined\" && window.matchMedia) {\n const prefersDark = window.matchMedia(\n \"(prefers-color-scheme: dark)\"\n ).matches;\n return prefersDark ? \"dark\" : \"light\";\n }\n // Fallback to light theme if not in browser or media query not supported\n return \"light\";\n};\n\ntype
|
|
1
|
+
{"version":3,"file":"configAtom.js","sources":["../../../src/core/state/configAtom.ts"],"sourcesContent":["import { atom, useAtomValue } from \"jotai\";\nimport type { WidgetConfig, WidgetTheme } from \"../types\";\nimport type { MarkRequired } from \"ts-essentials\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { emptyArray } from \"@/lib/constants\";\nimport { atomWithCompare } from \"@/lib/utils/atomWithCompare\";\nimport { unorderedShallowEqual } from \"@/lib/utils\";\nimport { type TradeMode } from \"./tradeModeAtom\";\n\n// Function to get the default theme based on system preference\nconst getDefaultTheme = (): WidgetTheme => {\n // Check if we're in a browser environment\n if (typeof window !== \"undefined\" && window.matchMedia) {\n const prefersDark = window.matchMedia(\n \"(prefers-color-scheme: dark)\"\n ).matches;\n return prefersDark ? \"dark\" : \"light\";\n }\n // Fallback to light theme if not in browser or media query not supported\n return \"light\";\n};\n\nexport type PrimitiveConfig = Pick<\n WidgetConfig,\n | \"theme\"\n | \"enableDelta\"\n | \"enableCrossChain\"\n | \"partner\"\n | \"privyAppId\"\n | \"privyClientId\"\n | \"debug\"\n | \"widgetMode\"\n | \"ignoreBadUsdPrice\"\n>;\n\nexport type IterableConfig = Pick<\n WidgetConfig,\n \"srcChains\" | \"destChains\" | \"tokenLists\" | \"tradeModes\"\n>;\n\ntype PrimitiveConfigState = MarkRequired<\n PrimitiveConfig,\n | \"theme\"\n | \"enableDelta\"\n | \"enableCrossChain\"\n | \"privyAppId\"\n | \"privyClientId\"\n | \"debug\"\n | \"widgetMode\"\n | \"ignoreBadUsdPrice\"\n>;\n\nexport const defaultWidgetConfig = {\n theme: getDefaultTheme(),\n enableDelta: true,\n enableCrossChain: true,\n privyAppId: import.meta.env.VITE_PRIVY_APP_ID,\n privyClientId: import.meta.env.VITE_PRIVY_CLIENT_ID,\n debug: false,\n widgetMode: \"standalone\",\n ignoreBadUsdPrice: true,\n} as const satisfies PrimitiveConfig;\n\nexport const widgetConfigAtom = atom<PrimitiveConfigState>(defaultWidgetConfig);\n\nexport const useWidgetConfig = () => {\n return useAtomValue(widgetConfigAtom);\n};\n\nexport const defaultSubConfig = {\n tokenLists: emptyArray,\n srcChains: emptyArray,\n destChains: emptyArray,\n tradeModes: emptyArray,\n} as const satisfies IterableConfig;\n\n// independent atoms for each iterable config property\n// with comparison to avoid unnecessary re-renders\nexport const tokenListsAtom = atomWithCompare<string[]>(\n defaultSubConfig.tokenLists,\n unorderedShallowEqual\n);\nexport const srcChainsAtom = atomWithCompare<SupportedChainId[]>(\n defaultSubConfig.srcChains,\n unorderedShallowEqual\n);\nexport const destChainsAtom = atomWithCompare<SupportedChainId[]>(\n defaultSubConfig.destChains,\n unorderedShallowEqual\n);\n\nexport const tradeModesAtom = atomWithCompare<TradeMode[]>(\n defaultSubConfig.tradeModes,\n unorderedShallowEqual\n);\n"],"names":["getDefaultTheme","window","matchMedia","prefersDark","matches","defaultWidgetConfig","theme","enableDelta","enableCrossChain","privyAppId","import","privyClientId","debug","widgetMode","ignoreBadUsdPrice","widgetConfigAtom","atom","useWidgetConfig","useAtomValue","defaultSubConfig","tokenLists","emptyArray","srcChains","destChains","tradeModes","tokenListsAtom","atomWithCompare","unorderedShallowEqual","srcChainsAtom","destChainsAtom","tradeModesAtom"],"mappings":";;;;;AAUA,MAAMA,kBAAkBA,MAAmB;AAEzC,EAAA,IAAI,OAAOC,MAAAA,KAAW,WAAA,IAAeA,MAAAA,CAAOC,UAAAA,EAAY;AACtD,IAAA,MAAMC,WAAAA,GAAcF,MAAAA,CAAOC,UAAAA,CACzB,8BACF,CAAA,CAAEE,OAAAA;AACF,IAAA,OAAOD,cAAc,MAAA,GAAS,OAAA;AAAA,EAChC;AAEA,EAAA,OAAO,OAAA;AACT,CAAA;AAgCO,MAAME,mBAAAA,GAAsB;AAAA,EACjCC,OAAON,eAAAA,EAAgB;AAAA,EACvBO,WAAAA,EAAa,IAAA;AAAA,EACbC,gBAAAA,EAAkB,IAAA;AAAA,EAClBC,UAAAA,EAAYC,2BAAAA;AAAAA,EACZC,aAAAA,EAAeD,sDAAAA;AAAAA,EACfE,KAAAA,EAAO,KAAA;AAAA,EACPC,UAAAA,EAAY,YAAA;AAAA,EACZC,iBAAAA,EAAmB;AACrB;AAEO,MAAMC,gBAAAA,GAAmBC,KAA2BX,mBAAmB;AAEvE,MAAMY,kBAAkBA,MAAA;AAAA,EAAA,OACtBC,aAAAH,gBAA6B,CAAA;AAAC;AAGhC,MAAMI,gBAAAA,GAAmB;AAAA,EAC9BC,UAAAA,EAAYC,UAAAA;AAAAA,EACZC,SAAAA,EAAWD,UAAAA;AAAAA,EACXE,UAAAA,EAAYF,UAAAA;AAAAA,EACZG,UAAAA,EAAYH;AACd;AAIO,MAAMI,cAAAA,GAAiBC,eAAAA,CAC5BP,gBAAAA,CAAiBC,UAAAA,EACjBO,qBACF;AACO,MAAMC,aAAAA,GAAgBF,eAAAA,CAC3BP,gBAAAA,CAAiBG,SAAAA,EACjBK,qBACF;AACO,MAAME,cAAAA,GAAiBH,eAAAA,CAC5BP,gBAAAA,CAAiBI,UAAAA,EACjBI,qBACF;AAEO,MAAMG,cAAAA,GAAiBJ,eAAAA,CAC5BP,gBAAAA,CAAiBK,UAAAA,EACjBG,qBACF;;;;"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Getter } from 'jotai';
|
|
2
|
+
import { SupportedChainId } from '../../lib/web3/wagmi/types';
|
|
3
|
+
export declare function useActivateConfigEffect(): void;
|
|
4
|
+
export declare function getSelectableDestChains(get: Getter, fromChainId: SupportedChainId): SupportedChainId[];
|
|
5
|
+
//# sourceMappingURL=configEffectAtom.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configEffectAtom.d.ts","sourceRoot":"","sources":["../../../src/core/state/configEffectAtom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,OAAO,CAAC;AAY7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAgD/D,wBAAgB,uBAAuB,SAEtC;AAED,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,gBAAgB,GAC5B,gBAAgB,EAAE,CAkBpB"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { useAtom } from 'jotai';
|
|
2
|
+
import { atomEffect } from 'jotai-effect';
|
|
3
|
+
import { swapTokenFromAtom, swapTokenToAtom } from '../inputs/state/selectedTokenAtom.js';
|
|
4
|
+
import { widgetConfigAtom } from './configAtom.js';
|
|
5
|
+
import { isCrossChainAtom } from './isCrosschainAtom.js';
|
|
6
|
+
import { enabledDestChainsAtom, enabledSrcChainsAtom } from './enabledChainsAtom.js';
|
|
7
|
+
import { getAvailableCrosses } from '../../hooks/useAvailableCrosses.js';
|
|
8
|
+
import { deltaEnabledOnAPI } from '../../lib/constants/delta.js';
|
|
9
|
+
import { deltaParamAtom } from '../../components/widget/TradeParameters/state/deltaParamAtom.js';
|
|
10
|
+
import { computeSelectableDestChains } from '../../hooks/useSelectableDestChains.js';
|
|
11
|
+
import { bridgeInfoAtom } from '../../hooks/swap/prices/delta/queries/useBridgeInfo.js';
|
|
12
|
+
import { switchChain } from '../../lib/web3/wagmi/switchChain.js';
|
|
13
|
+
|
|
14
|
+
const configEffectAtom = atomEffect((get, set) => {
|
|
15
|
+
const {
|
|
16
|
+
enableCrossChain,
|
|
17
|
+
enableDelta
|
|
18
|
+
} = get(widgetConfigAtom);
|
|
19
|
+
const enabledSrcChains = get(enabledSrcChainsAtom);
|
|
20
|
+
get(bridgeInfoAtom);
|
|
21
|
+
const swapTokenFrom = get.peek(swapTokenFromAtom);
|
|
22
|
+
const swapTokenTo = get.peek(swapTokenToAtom);
|
|
23
|
+
const isCrossChain = get.peek(isCrossChainAtom);
|
|
24
|
+
const selectableDestChains = getSelectableDestChains(get.peek, swapTokenFrom.network);
|
|
25
|
+
const swapTokenFromNetworkNotEnabled = !enabledSrcChains.includes(swapTokenFrom.network);
|
|
26
|
+
const swapTokenToNetworkNotEnabled = swapTokenTo && !selectableDestChains.includes(swapTokenTo.network);
|
|
27
|
+
const crossChainTurnedOffWhileActive = (!enableDelta || !enableCrossChain) && isCrossChain;
|
|
28
|
+
if (swapTokenFromNetworkNotEnabled) switchChain({
|
|
29
|
+
chainId: enabledSrcChains[0]
|
|
30
|
+
});
|
|
31
|
+
if (crossChainTurnedOffWhileActive || swapTokenFromNetworkNotEnabled || swapTokenToNetworkNotEnabled) set(swapTokenToAtom, void 0);
|
|
32
|
+
});
|
|
33
|
+
function useActivateConfigEffect() {
|
|
34
|
+
useAtom(configEffectAtom);
|
|
35
|
+
}
|
|
36
|
+
function getSelectableDestChains(get, fromChainId) {
|
|
37
|
+
const availableCrosses = getAvailableCrosses(fromChainId);
|
|
38
|
+
const enabledDestChains = get(enabledDestChainsAtom);
|
|
39
|
+
const {
|
|
40
|
+
enableDelta,
|
|
41
|
+
enableCrossChain
|
|
42
|
+
} = get(widgetConfigAtom);
|
|
43
|
+
const deltaEnabledParam = get(deltaParamAtom);
|
|
44
|
+
const deltaEnabledOnChain = deltaEnabledOnAPI[fromChainId];
|
|
45
|
+
const deltaEnabledGlobally = enableDelta && deltaEnabledParam && deltaEnabledOnChain;
|
|
46
|
+
return computeSelectableDestChains({
|
|
47
|
+
fromChainId,
|
|
48
|
+
availableCrosses,
|
|
49
|
+
enabledDestChains,
|
|
50
|
+
enableCrossChain,
|
|
51
|
+
deltaEnabledGlobally
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export { getSelectableDestChains, useActivateConfigEffect };
|
|
56
|
+
//# sourceMappingURL=configEffectAtom.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configEffectAtom.js","sources":["../../../src/core/state/configEffectAtom.ts"],"sourcesContent":["import { useAtom, type Getter } from \"jotai\";\nimport { atomEffect } from \"jotai-effect\";\nimport {\n swapTokenFromAtom,\n swapTokenToAtom,\n} from \"../inputs/state/selectedTokenAtom\";\nimport { widgetConfigAtom } from \"./configAtom\";\nimport { isCrossChainAtom } from \"./isCrosschainAtom\";\nimport {\n enabledSrcChainsAtom,\n enabledDestChainsAtom,\n} from \"./enabledChainsAtom\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\n\nimport { getAvailableCrosses } from \"@/hooks/useAvailableCrosses\";\nimport { deltaEnabledOnAPI } from \"@/lib/constants/delta\";\nimport { deltaParamAtom } from \"@/components/widget/TradeParameters/state/deltaParamAtom\";\nimport { computeSelectableDestChains } from \"@/hooks/useSelectableDestChains\";\nimport { bridgeInfoAtom } from \"@/hooks/swap/prices/delta/queries/useBridgeInfo\";\nimport { switchChain } from \"@/lib/web3/wagmi/switchChain\";\n\nconst configEffectAtom = atomEffect((get, set) => {\n const { enableCrossChain, enableDelta } = get(widgetConfigAtom);\n\n const enabledSrcChains = get(enabledSrcChainsAtom);\n // subscribe to bridgeInfoAtom to have up-to-date available crosses\n // and retry token finding each time when bridgeInfo changes\n get(bridgeInfoAtom);\n\n const swapTokenFrom = get.peek(swapTokenFromAtom);\n const swapTokenTo = get.peek(swapTokenToAtom);\n const isCrossChain = get.peek(isCrossChainAtom);\n\n const selectableDestChains = getSelectableDestChains(\n get.peek,\n swapTokenFrom.network\n );\n\n const swapTokenFromNetworkNotEnabled = !enabledSrcChains.includes(\n swapTokenFrom.network\n );\n const swapTokenToNetworkNotEnabled =\n swapTokenTo && !selectableDestChains.includes(swapTokenTo.network);\n\n const crossChainTurnedOffWhileActive =\n (!enableDelta || !enableCrossChain) && isCrossChain;\n\n if (swapTokenFromNetworkNotEnabled)\n switchChain({\n chainId: enabledSrcChains[0],\n });\n\n if (\n crossChainTurnedOffWhileActive ||\n swapTokenFromNetworkNotEnabled ||\n swapTokenToNetworkNotEnabled\n )\n set(swapTokenToAtom, undefined);\n});\n\nexport function useActivateConfigEffect() {\n useAtom(configEffectAtom);\n}\n\nexport function getSelectableDestChains(\n get: Getter,\n fromChainId: SupportedChainId\n): SupportedChainId[] {\n const availableCrosses = getAvailableCrosses(fromChainId);\n\n const enabledDestChains = get(enabledDestChainsAtom);\n const { enableDelta, enableCrossChain } = get(widgetConfigAtom);\n const deltaEnabledParam = get(deltaParamAtom);\n\n const deltaEnabledOnChain = deltaEnabledOnAPI[fromChainId];\n const deltaEnabledGlobally =\n enableDelta && deltaEnabledParam && deltaEnabledOnChain;\n\n return computeSelectableDestChains({\n fromChainId,\n availableCrosses,\n enabledDestChains,\n enableCrossChain,\n deltaEnabledGlobally,\n });\n}\n"],"names":["configEffectAtom","atomEffect","get","set","enableCrossChain","enableDelta","widgetConfigAtom","enabledSrcChains","enabledSrcChainsAtom","bridgeInfoAtom","swapTokenFrom","peek","swapTokenFromAtom","swapTokenTo","swapTokenToAtom","isCrossChain","isCrossChainAtom","selectableDestChains","getSelectableDestChains","network","swapTokenFromNetworkNotEnabled","includes","swapTokenToNetworkNotEnabled","crossChainTurnedOffWhileActive","switchChain","chainId","undefined","useActivateConfigEffect","useAtom","fromChainId","availableCrosses","getAvailableCrosses","enabledDestChains","enabledDestChainsAtom","deltaEnabledParam","deltaParamAtom","deltaEnabledOnChain","deltaEnabledOnAPI","deltaEnabledGlobally","computeSelectableDestChains"],"mappings":";;;;;;;;;;;;;AAqBA,MAAMA,gBAAAA,GAAmBC,UAAAA,CAAW,CAACC,GAAAA,EAAKC,GAAAA,KAAQ;AAChD,EAAA,MAAM;AAAA,IAAEC,gBAAAA;AAAAA,IAAkBC;AAAAA,GAAY,GAAIH,IAAII,gBAAgB,CAAA;AAE9D,EAAA,MAAMC,gBAAAA,GAAmBL,IAAIM,oBAAoB,CAAA;AAGjDN,EAAAA,GAAAA,CAAIO,cAAc,CAAA;AAElB,EAAA,MAAMC,aAAAA,GAAgBR,GAAAA,CAAIS,IAAAA,CAAKC,iBAAiB,CAAA;AAChD,EAAA,MAAMC,WAAAA,GAAcX,GAAAA,CAAIS,IAAAA,CAAKG,eAAe,CAAA;AAC5C,EAAA,MAAMC,YAAAA,GAAeb,GAAAA,CAAIS,IAAAA,CAAKK,gBAAgB,CAAA;AAE9C,EAAA,MAAMC,oBAAAA,GAAuBC,uBAAAA,CAC3BhB,GAAAA,CAAIS,IAAAA,EACJD,cAAcS,OAChB,CAAA;AAEA,EAAA,MAAMC,8BAAAA,GAAiC,CAACb,gBAAAA,CAAiBc,QAAAA,CACvDX,cAAcS,OAChB,CAAA;AACA,EAAA,MAAMG,+BACJT,WAAAA,IAAe,CAACI,oBAAAA,CAAqBI,QAAAA,CAASR,YAAYM,OAAO,CAAA;AAEnE,EAAA,MAAMI,8BAAAA,GAAAA,CACH,CAAClB,WAAAA,IAAe,CAACD,gBAAAA,KAAqBW,YAAAA;AAEzC,EAAA,IAAIK,gCACFI,WAAAA,CAAY;AAAA,IACVC,OAAAA,EAASlB,iBAAiB,CAAC;AAAA,GAC5B,CAAA;AAEH,EAAA,IACEgB,8BAAAA,IACAH,8BAAAA,IACAE,4BAAAA,EAEAnB,GAAAA,CAAIW,iBAAiBY,MAAS,CAAA;AAClC,CAAC,CAAA;AAEM,SAAAC,uBAAAA,GAAA;AACLC,EAAAA,OAAAA,CAAA5B,gBAAwB,CAAA;AAAC;AAGpB,SAASkB,uBAAAA,CACdhB,KACA2B,WAAAA,EACoB;AACpB,EAAA,MAAMC,gBAAAA,GAAmBC,oBAAoBF,WAAW,CAAA;AAExD,EAAA,MAAMG,iBAAAA,GAAoB9B,IAAI+B,qBAAqB,CAAA;AACnD,EAAA,MAAM;AAAA,IAAE5B,WAAAA;AAAAA,IAAaD;AAAAA,GAAiB,GAAIF,IAAII,gBAAgB,CAAA;AAC9D,EAAA,MAAM4B,iBAAAA,GAAoBhC,IAAIiC,cAAc,CAAA;AAE5C,EAAA,MAAMC,mBAAAA,GAAsBC,kBAAkBR,WAAW,CAAA;AACzD,EAAA,MAAMS,oBAAAA,GACJjC,eAAe6B,iBAAAA,IAAqBE,mBAAAA;AAEtC,EAAA,OAAOG,2BAAAA,CAA4B;AAAA,IACjCV,WAAAA;AAAAA,IACAC,gBAAAA;AAAAA,IACAE,iBAAAA;AAAAA,IACA5B,gBAAAA;AAAAA,IACAkC;AAAAA,GACD,CAAA;AACH;;;;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const enabledSrcChainsAtom: import('jotai').Atom<[1 | 10 | 137 | 56 | 43114 | 42161 | 8453 | 100 | 146 | 130, ...(1 | 10 | 137 | 56 | 43114 | 42161 | 8453 | 100 | 146 | 130)[]]>;
|
|
2
|
+
export declare const enabledDestChainsAtom: import('jotai').Atom<[1 | 10 | 137 | 56 | 43114 | 42161 | 8453 | 100 | 146 | 130, ...(1 | 10 | 137 | 56 | 43114 | 42161 | 8453 | 100 | 146 | 130)[]]>;
|
|
3
|
+
export declare const allEnabledChainsAtom: import('jotai').Atom<[1 | 10 | 137 | 56 | 43114 | 42161 | 8453 | 100 | 146 | 130, ...(1 | 10 | 137 | 56 | 43114 | 42161 | 8453 | 100 | 146 | 130)[]]>;
|
|
4
|
+
export declare const useEnabledSrcChains: () => [1 | 10 | 137 | 56 | 43114 | 42161 | 8453 | 100 | 146 | 130, ...(1 | 10 | 137 | 56 | 43114 | 42161 | 8453 | 100 | 146 | 130)[]];
|
|
5
|
+
export declare const useEnabledDestChains: () => [1 | 10 | 137 | 56 | 43114 | 42161 | 8453 | 100 | 146 | 130, ...(1 | 10 | 137 | 56 | 43114 | 42161 | 8453 | 100 | 146 | 130)[]];
|
|
6
|
+
export declare const useAllEnabledChains: () => [1 | 10 | 137 | 56 | 43114 | 42161 | 8453 | 100 | 146 | 130, ...(1 | 10 | 137 | 56 | 43114 | 42161 | 8453 | 100 | 146 | 130)[]];
|
|
7
|
+
export declare const useAllEnabledChainsWithDelta: () => (1 | 10 | 137 | 56 | 43114 | 42161 | 8453 | 100 | 146 | 130)[];
|
|
8
|
+
export declare const useEnabledSrcChainsWithDelta: () => (1 | 10 | 137 | 56 | 43114 | 42161 | 8453 | 100 | 146 | 130)[];
|
|
9
|
+
export declare const useEnabledSrcChainsWithOTC: () => (1 | 10 | 137 | 56 | 43114 | 42161 | 8453 | 100 | 146 | 130)[];
|
|
10
|
+
//# sourceMappingURL=enabledChainsAtom.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enabledChainsAtom.d.ts","sourceRoot":"","sources":["../../../src/core/state/enabledChainsAtom.ts"],"names":[],"mappings":"AAgDA,eAAO,MAAM,oBAAoB,uJAG/B,CAAC;AACH,eAAO,MAAM,qBAAqB,uJAGhC,CAAC;AACH,eAAO,MAAM,oBAAoB,uJAI/B,CAAC;AAEH,eAAO,MAAM,mBAAmB,uIAA2C,CAAC;AAC5E,eAAO,MAAM,oBAAoB,uIAA4C,CAAC;AAC9E,eAAO,MAAM,mBAAmB,uIAA2C,CAAC;AAE5E,eAAO,MAAM,4BAA4B,sEAGxC,CAAC;AAEF,eAAO,MAAM,4BAA4B,sEAGxC,CAAC;AAEF,eAAO,MAAM,0BAA0B,sEAGtC,CAAC"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { d as distExports } from '../../_virtual/index.js';
|
|
2
|
+
import { supportedChainIds } from '../../lib/web3/wagmi/constants.js';
|
|
3
|
+
import { isSupportedChainId } from '../../lib/web3/wagmi/utils.js';
|
|
4
|
+
import { atom, useAtomValue } from 'jotai';
|
|
5
|
+
import { srcChainsAtom, destChainsAtom } from './configAtom.js';
|
|
6
|
+
import { getLogger } from '../logger.js';
|
|
7
|
+
import { isFilledArray } from '../../lib/utils/tuple.js';
|
|
8
|
+
import { CHAINS_WITH_DELTA } from '../../lib/constants/delta.js';
|
|
9
|
+
import { CHAINS_WITH_OTC } from '../../lib/constants/otc.js';
|
|
10
|
+
|
|
11
|
+
function getEnabledChainsWithFallback(chainIds, logger2) {
|
|
12
|
+
if (chainIds.length === 0) return supportedChainIds;
|
|
13
|
+
const uniqueChainIds = Array.from(new Set(chainIds));
|
|
14
|
+
const detectedUnsupportedChains = [];
|
|
15
|
+
const uniqueSupportedChainIds = uniqueChainIds.filter((id) => {
|
|
16
|
+
const isSupported = isSupportedChainId(id);
|
|
17
|
+
if (!isSupported) detectedUnsupportedChains.push(id);
|
|
18
|
+
return isSupported;
|
|
19
|
+
});
|
|
20
|
+
const isAllUnsupported = !isFilledArray(uniqueSupportedChainIds);
|
|
21
|
+
if (detectedUnsupportedChains.length > 0 && !isAllUnsupported) logger2?.warn(`Specified unsupported IDs. Supported chain IDs are: ${supportedChainIds.join(", ")}`);
|
|
22
|
+
if (isAllUnsupported) {
|
|
23
|
+
logger2?.warn(`All specified IDs are unsupported. Supported IDs are: ${supportedChainIds.join(", ")}`);
|
|
24
|
+
return supportedChainIds;
|
|
25
|
+
}
|
|
26
|
+
return uniqueSupportedChainIds;
|
|
27
|
+
}
|
|
28
|
+
const logger = getLogger("ChainsState");
|
|
29
|
+
const enabledSrcChainsAtom = atom((get) => {
|
|
30
|
+
const srcChains = get(srcChainsAtom);
|
|
31
|
+
return getEnabledChainsWithFallback(srcChains, logger);
|
|
32
|
+
});
|
|
33
|
+
const enabledDestChainsAtom = atom((get) => {
|
|
34
|
+
const destChains = get(destChainsAtom);
|
|
35
|
+
return getEnabledChainsWithFallback(destChains, logger);
|
|
36
|
+
});
|
|
37
|
+
const allEnabledChainsAtom = atom((get) => {
|
|
38
|
+
const srcChains = get(enabledSrcChainsAtom);
|
|
39
|
+
const destChains = get(enabledDestChainsAtom);
|
|
40
|
+
return getEnabledChainsWithFallback([...srcChains, ...destChains]);
|
|
41
|
+
});
|
|
42
|
+
const useEnabledSrcChains = () => {
|
|
43
|
+
return useAtomValue(enabledSrcChainsAtom);
|
|
44
|
+
};
|
|
45
|
+
const useEnabledDestChains = () => {
|
|
46
|
+
return useAtomValue(enabledDestChainsAtom);
|
|
47
|
+
};
|
|
48
|
+
const useAllEnabledChains = () => {
|
|
49
|
+
return useAtomValue(allEnabledChainsAtom);
|
|
50
|
+
};
|
|
51
|
+
const useAllEnabledChainsWithDelta = () => {
|
|
52
|
+
const $ = distExports.c(2);
|
|
53
|
+
const enabledChains = useAllEnabledChains();
|
|
54
|
+
let t0;
|
|
55
|
+
if ($[0] !== enabledChains) {
|
|
56
|
+
t0 = enabledChains.filter(_temp);
|
|
57
|
+
$[0] = enabledChains;
|
|
58
|
+
$[1] = t0;
|
|
59
|
+
} else {
|
|
60
|
+
t0 = $[1];
|
|
61
|
+
}
|
|
62
|
+
return t0;
|
|
63
|
+
};
|
|
64
|
+
const useEnabledSrcChainsWithDelta = () => {
|
|
65
|
+
const $ = distExports.c(2);
|
|
66
|
+
const enabledChains = useEnabledSrcChains();
|
|
67
|
+
let t0;
|
|
68
|
+
if ($[0] !== enabledChains) {
|
|
69
|
+
t0 = enabledChains.filter(_temp2);
|
|
70
|
+
$[0] = enabledChains;
|
|
71
|
+
$[1] = t0;
|
|
72
|
+
} else {
|
|
73
|
+
t0 = $[1];
|
|
74
|
+
}
|
|
75
|
+
return t0;
|
|
76
|
+
};
|
|
77
|
+
const useEnabledSrcChainsWithOTC = () => {
|
|
78
|
+
const $ = distExports.c(2);
|
|
79
|
+
const enabledChains = useEnabledSrcChains();
|
|
80
|
+
let t0;
|
|
81
|
+
if ($[0] !== enabledChains) {
|
|
82
|
+
t0 = enabledChains.filter(_temp3);
|
|
83
|
+
$[0] = enabledChains;
|
|
84
|
+
$[1] = t0;
|
|
85
|
+
} else {
|
|
86
|
+
t0 = $[1];
|
|
87
|
+
}
|
|
88
|
+
return t0;
|
|
89
|
+
};
|
|
90
|
+
function _temp(chainId) {
|
|
91
|
+
return CHAINS_WITH_DELTA.includes(chainId);
|
|
92
|
+
}
|
|
93
|
+
function _temp2(chainId) {
|
|
94
|
+
return CHAINS_WITH_DELTA.includes(chainId);
|
|
95
|
+
}
|
|
96
|
+
function _temp3(chainId) {
|
|
97
|
+
return CHAINS_WITH_OTC.includes(chainId);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
export { allEnabledChainsAtom, enabledDestChainsAtom, enabledSrcChainsAtom, useAllEnabledChains, useAllEnabledChainsWithDelta, useEnabledDestChains, useEnabledSrcChains, useEnabledSrcChainsWithDelta, useEnabledSrcChainsWithOTC };
|
|
101
|
+
//# sourceMappingURL=enabledChainsAtom.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enabledChainsAtom.js","sources":["../../../src/core/state/enabledChainsAtom.ts"],"sourcesContent":["import { supportedChainIds as defaultChainIds } from \"@/lib/web3/wagmi/constants\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { isSupportedChainId } from \"@/lib/web3/wagmi/utils\";\nimport { atom, useAtomValue } from \"jotai\";\nimport { destChainsAtom, srcChainsAtom } from \"./configAtom\";\nimport { getLogger } from \"../logger\";\nimport type { NonEmptyArray, Prettify } from \"ts-essentials\";\nimport { isFilledArray } from \"@/lib/utils/tuple\";\nimport { CHAINS_WITH_DELTA } from \"@/lib/constants/delta\";\nimport { CHAINS_WITH_OTC } from \"@/lib/constants/otc\";\n\ntype EnabledChains = Prettify<NonEmptyArray<SupportedChainId>>;\n\n// with guards against invalid or duplicate chain IDs passed in config\nfunction getEnabledChainsWithFallback(\n chainIds: number[],\n logger?: ReturnType<typeof getLogger>\n): EnabledChains {\n // fallback to defaults\n if (chainIds.length === 0) return defaultChainIds;\n const uniqueChainIds = Array.from(new Set(chainIds));\n\n const detectedUnsupportedChains: number[] = [];\n const uniqueSupportedChainIds = uniqueChainIds.filter((id) => {\n const isSupported = isSupportedChainId(id);\n if (!isSupported) detectedUnsupportedChains.push(id);\n return isSupported;\n });\n\n const isAllUnsupported = !isFilledArray(uniqueSupportedChainIds);\n // log once about unsupported IDs\n if (detectedUnsupportedChains.length > 0 && !isAllUnsupported)\n logger?.warn(\n `Specified unsupported IDs. Supported chain IDs are: ${defaultChainIds.join(\", \")}`\n );\n\n // fallback to defaults\n if (isAllUnsupported) {\n logger?.warn(\n `All specified IDs are unsupported. Supported IDs are: ${defaultChainIds.join(\", \")}`\n );\n return defaultChainIds;\n }\n return uniqueSupportedChainIds;\n}\n\nconst logger = getLogger(\"ChainsState\");\n\nexport const enabledSrcChainsAtom = atom<EnabledChains>((get) => {\n const srcChains = get(srcChainsAtom);\n return getEnabledChainsWithFallback(srcChains, logger);\n});\nexport const enabledDestChainsAtom = atom<EnabledChains>((get) => {\n const destChains = get(destChainsAtom);\n return getEnabledChainsWithFallback(destChains, logger);\n});\nexport const allEnabledChainsAtom = atom<EnabledChains>((get) => {\n const srcChains = get(enabledSrcChainsAtom);\n const destChains = get(enabledDestChainsAtom);\n return getEnabledChainsWithFallback([...srcChains, ...destChains]);\n});\n\nexport const useEnabledSrcChains = () => useAtomValue(enabledSrcChainsAtom);\nexport const useEnabledDestChains = () => useAtomValue(enabledDestChainsAtom);\nexport const useAllEnabledChains = () => useAtomValue(allEnabledChainsAtom);\n\nexport const useAllEnabledChainsWithDelta = () => {\n const enabledChains = useAllEnabledChains();\n return enabledChains.filter((chainId) => CHAINS_WITH_DELTA.includes(chainId));\n};\n\nexport const useEnabledSrcChainsWithDelta = () => {\n const enabledChains = useEnabledSrcChains();\n return enabledChains.filter((chainId) => CHAINS_WITH_DELTA.includes(chainId));\n};\n\nexport const useEnabledSrcChainsWithOTC = () => {\n const enabledChains = useEnabledSrcChains();\n return enabledChains.filter((chainId) => CHAINS_WITH_OTC.includes(chainId));\n};\n"],"names":["getEnabledChainsWithFallback","chainIds","logger","length","defaultChainIds","uniqueChainIds","Array","from","Set","detectedUnsupportedChains","uniqueSupportedChainIds","filter","id","isSupported","isSupportedChainId","push","isAllUnsupported","isFilledArray","warn","join","getLogger","enabledSrcChainsAtom","atom","get","srcChains","srcChainsAtom","enabledDestChainsAtom","destChains","destChainsAtom","allEnabledChainsAtom","useEnabledSrcChains","useAtomValue","useEnabledDestChains","useAllEnabledChains","useAllEnabledChainsWithDelta","$","_c","enabledChains","t0","_temp","useEnabledSrcChainsWithDelta","_temp2","useEnabledSrcChainsWithOTC","_temp3","chainId","CHAINS_WITH_DELTA","includes","CHAINS_WITH_OTC"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enabledTradeModesAtom.d.ts","sourceRoot":"","sources":["../../../src/core/state/enabledTradeModesAtom.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AA8CjD,eAAO,MAAM,qBAAqB,mDAGhC,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { atom } from 'jotai';
|
|
2
|
+
import { tradeModesAtom } from './configAtom.js';
|
|
3
|
+
import { supportedTradeModes, isTradeMode } from '../../lib/tradeMode.js';
|
|
4
|
+
import { isFilledArray } from '../../lib/utils/tuple.js';
|
|
5
|
+
|
|
6
|
+
function getEnabledTradeModesWithFallback(modes) {
|
|
7
|
+
if (modes.length === 0) return supportedTradeModes;
|
|
8
|
+
const uniqueModes = Array.from(new Set(modes));
|
|
9
|
+
const detectedUnsupportedModes = [];
|
|
10
|
+
const uniqueSupportedModes = uniqueModes.filter((mode) => {
|
|
11
|
+
const isSupported = isTradeMode(mode);
|
|
12
|
+
if (!isSupported) detectedUnsupportedModes.push(mode);
|
|
13
|
+
return isSupported;
|
|
14
|
+
});
|
|
15
|
+
const isAllUnsupported = !isFilledArray(uniqueSupportedModes);
|
|
16
|
+
if (detectedUnsupportedModes.length > 0 && !isAllUnsupported) {
|
|
17
|
+
console.warn(`Specified unsupported trade modes: ${detectedUnsupportedModes.join(", ")}. Supported trade modes are: ${supportedTradeModes.join(", ")}`);
|
|
18
|
+
}
|
|
19
|
+
if (isAllUnsupported) {
|
|
20
|
+
console.warn(`All specified trade modes are unsupported. Supported trade modes are: ${supportedTradeModes.join(", ")}`);
|
|
21
|
+
return supportedTradeModes;
|
|
22
|
+
}
|
|
23
|
+
return uniqueSupportedModes;
|
|
24
|
+
}
|
|
25
|
+
const enabledTradeModesAtom = atom((get) => {
|
|
26
|
+
const tradeModes = get(tradeModesAtom);
|
|
27
|
+
return getEnabledTradeModesWithFallback(tradeModes);
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
export { enabledTradeModesAtom };
|
|
31
|
+
//# sourceMappingURL=enabledTradeModesAtom.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enabledTradeModesAtom.js","sources":["../../../src/core/state/enabledTradeModesAtom.ts"],"sourcesContent":["import { atom } from \"jotai\";\nimport { tradeModesAtom } from \"./configAtom\";\nimport { type TradeMode } from \"./tradeModeAtom\";\nimport type { NonEmptyArray, Prettify } from \"ts-essentials\";\nimport {\n supportedTradeModes as defaultTradeModes,\n isTradeMode,\n} from \"@/lib/tradeMode\";\nimport { isFilledArray } from \"@/lib/utils/tuple\";\n\ntype EnabledTradeModes = Prettify<NonEmptyArray<TradeMode>>;\n\n// with guards against invalid or duplicate trade modes passed in config\nfunction getEnabledTradeModesWithFallback(\n modes: TradeMode[]\n): EnabledTradeModes {\n if (modes.length === 0) return defaultTradeModes;\n const uniqueModes = Array.from(new Set(modes));\n\n const detectedUnsupportedModes: string[] = [];\n const uniqueSupportedModes = uniqueModes.filter((mode) => {\n const isSupported = isTradeMode(mode);\n if (!isSupported) detectedUnsupportedModes.push(mode);\n return isSupported;\n });\n\n const isAllUnsupported = !isFilledArray(uniqueSupportedModes);\n // log once about unsupported modes\n if (detectedUnsupportedModes.length > 0 && !isAllUnsupported) {\n console.warn(\n `Specified unsupported trade modes: ${detectedUnsupportedModes.join(\n \", \"\n )}. Supported trade modes are: ${defaultTradeModes.join(\", \")}`\n );\n }\n\n // fallback to defaults\n if (isAllUnsupported) {\n console.warn(\n `All specified trade modes are unsupported. Supported trade modes are: ${defaultTradeModes.join(\n \", \"\n )}`\n );\n return defaultTradeModes;\n }\n return uniqueSupportedModes;\n}\n\nexport const enabledTradeModesAtom = atom<EnabledTradeModes>((get) => {\n const tradeModes = get(tradeModesAtom);\n return getEnabledTradeModesWithFallback(tradeModes);\n});\n"],"names":["getEnabledTradeModesWithFallback","modes","length","defaultTradeModes","uniqueModes","Array","from","Set","detectedUnsupportedModes","uniqueSupportedModes","filter","mode","isSupported","isTradeMode","push","isAllUnsupported","isFilledArray","console","warn","join","enabledTradeModesAtom","atom","get","tradeModes","tradeModesAtom"],"mappings":";;;;;AAaA,SAASA,iCACPC,KAAAA,EACmB;AACnB,EAAA,IAAIA,KAAAA,CAAMC,MAAAA,KAAW,CAAA,EAAG,OAAOC,mBAAAA;AAC/B,EAAA,MAAMC,cAAcC,KAAAA,CAAMC,IAAAA,CAAK,IAAIC,GAAAA,CAAIN,KAAK,CAAC,CAAA;AAE7C,EAAA,MAAMO,2BAAqC,EAAA;AAC3C,EAAA,MAAMC,oBAAAA,GAAuBL,WAAAA,CAAYM,MAAAA,CAAQC,CAAAA,IAAAA,KAAS;AACxD,IAAA,MAAMC,WAAAA,GAAcC,YAAYF,IAAI,CAAA;AACpC,IAAA,IAAI,CAACC,WAAAA,EAAaJ,wBAAAA,CAAyBM,IAAAA,CAAKH,IAAI,CAAA;AACpD,IAAA,OAAOC,WAAAA;AAAAA,EACT,CAAC,CAAA;AAED,EAAA,MAAMG,gBAAAA,GAAmB,CAACC,aAAAA,CAAcP,oBAAoB,CAAA;AAE5D,EAAA,IAAID,wBAAAA,CAAyBN,MAAAA,GAAS,CAAA,IAAK,CAACa,gBAAAA,EAAkB;AAC5DE,IAAAA,OAAAA,CAAQC,IAAAA,CACN,CAAA,mCAAA,EAAsCV,wBAAAA,CAAyBW,IAAAA,CAC7D,IACF,CAAC,CAAA,6BAAA,EAAgChB,mBAAAA,CAAkBgB,IAAAA,CAAK,IAAI,CAAC,CAAA,CAC/D,CAAA;AAAA,EACF;AAGA,EAAA,IAAIJ,gBAAAA,EAAkB;AACpBE,IAAAA,OAAAA,CAAQC,KACN,CAAA,sEAAA,EAAyEf,mBAAAA,CAAkBgB,IAAAA,CACzF,IACF,CAAC,CAAA,CACH,CAAA;AACA,IAAA,OAAOhB,mBAAAA;AAAAA,EACT;AACA,EAAA,OAAOM,oBAAAA;AACT;AAEO,MAAMW,qBAAAA,GAAwBC,KAAyBC,CAAAA,GAAAA,KAAQ;AACpE,EAAA,MAAMC,UAAAA,GAAaD,IAAIE,cAAc,CAAA;AACrC,EAAA,OAAOxB,iCAAiCuB,UAAU,CAAA;AACpD,CAAC;;;;"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export type TradeMode = "swap" | "limit" | "otc";
|
|
2
|
-
export declare const
|
|
2
|
+
export declare const userTradeModeAtom: import('jotai').PrimitiveAtom<TradeMode> & {
|
|
3
3
|
init: TradeMode;
|
|
4
4
|
};
|
|
5
|
+
export declare const tradeModeAtom: import('jotai').Atom<TradeMode>;
|
|
5
6
|
export declare const useTradeMode: () => TradeMode;
|
|
6
7
|
//# sourceMappingURL=tradeModeAtom.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tradeModeAtom.d.ts","sourceRoot":"","sources":["../../../src/core/state/tradeModeAtom.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tradeModeAtom.d.ts","sourceRoot":"","sources":["../../../src/core/state/tradeModeAtom.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;AAGjD,eAAO,MAAM,iBAAiB;;CAA0B,CAAC;AAGzD,eAAO,MAAM,aAAa,iCAOxB,CAAC;AAEH,eAAO,MAAM,YAAY,iBAExB,CAAC"}
|
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
import { atom, useAtomValue } from 'jotai';
|
|
2
|
+
import { enabledTradeModesAtom } from './enabledTradeModesAtom.js';
|
|
2
3
|
|
|
3
|
-
const
|
|
4
|
+
const userTradeModeAtom = atom("swap");
|
|
5
|
+
const tradeModeAtom = atom((get) => {
|
|
6
|
+
const userTradeMode = get(userTradeModeAtom);
|
|
7
|
+
const enabledTradeModes = get(enabledTradeModesAtom);
|
|
8
|
+
if (enabledTradeModes.includes(userTradeMode)) return userTradeMode;
|
|
9
|
+
return enabledTradeModes[0];
|
|
10
|
+
});
|
|
4
11
|
const useTradeMode = () => {
|
|
5
12
|
return useAtomValue(tradeModeAtom);
|
|
6
13
|
};
|
|
7
14
|
|
|
8
|
-
export { tradeModeAtom, useTradeMode };
|
|
15
|
+
export { tradeModeAtom, useTradeMode, userTradeModeAtom };
|
|
9
16
|
//# sourceMappingURL=tradeModeAtom.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tradeModeAtom.js","sources":["../../../src/core/state/tradeModeAtom.ts"],"sourcesContent":["import { atom, useAtomValue } from \"jotai\";\n\nexport type TradeMode = \"swap\" | \"limit\" | \"otc\";\n\nexport const
|
|
1
|
+
{"version":3,"file":"tradeModeAtom.js","sources":["../../../src/core/state/tradeModeAtom.ts"],"sourcesContent":["import { atom, useAtomValue } from \"jotai\";\nimport { enabledTradeModesAtom } from \"./enabledTradeModesAtom\";\n\nexport type TradeMode = \"swap\" | \"limit\" | \"otc\";\n\n// atom to store user selected trade mode\nexport const userTradeModeAtom = atom<TradeMode>(\"swap\");\n\n// derived atom to get effective trade mode based on enabled modes\nexport const tradeModeAtom = atom<TradeMode>((get) => {\n const userTradeMode = get(userTradeModeAtom);\n const enabledTradeModes = get(enabledTradeModesAtom);\n // prioritize user selected mode if it's enabled\n if (enabledTradeModes.includes(userTradeMode)) return userTradeMode;\n // otherwise fallback to the first enabled mode\n return enabledTradeModes[0];\n});\n\nexport const useTradeMode = () => {\n return useAtomValue(tradeModeAtom);\n};\n"],"names":["userTradeModeAtom","atom","tradeModeAtom","get","userTradeMode","enabledTradeModes","enabledTradeModesAtom","includes","useTradeMode","useAtomValue"],"mappings":";;;AAMO,MAAMA,iBAAAA,GAAoBC,KAAgB,MAAM;AAGhD,MAAMC,aAAAA,GAAgBD,KAAiBE,CAAAA,GAAAA,KAAQ;AACpD,EAAA,MAAMC,aAAAA,GAAgBD,IAAIH,iBAAiB,CAAA;AAC3C,EAAA,MAAMK,iBAAAA,GAAoBF,IAAIG,qBAAqB,CAAA;AAEnD,EAAA,IAAID,iBAAAA,CAAkBE,QAAAA,CAASH,aAAa,CAAA,EAAG,OAAOA,aAAAA;AAEtD,EAAA,OAAOC,kBAAkB,CAAC,CAAA;AAC5B,CAAC;AAEM,MAAMG,eAAeA,MAAA;AAAA,EAAA,OACnBC,aAAAP,aAA0B,CAAA;AAAC;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscriptions.d.ts","sourceRoot":"","sources":["../../src/core/subscriptions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"subscriptions.d.ts","sourceRoot":"","sources":["../../src/core/subscriptions.ts"],"names":[],"mappings":"AAIA,wBAAgB,gBAAgB,SAI/B"}
|