@velora-dex/widget 0.2.4 → 0.2.5-dev.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/button.d.ts +1 -1
- package/dist/components/ui/dropdown-menu.d.ts +3 -2
- package/dist/components/ui/dropdown-menu.d.ts.map +1 -1
- package/dist/components/ui/dropdown-menu.js +44 -22
- package/dist/components/ui/dropdown-menu.js.map +1 -1
- package/dist/components/ui/tooltip.d.ts +4 -2
- package/dist/components/ui/tooltip.d.ts.map +1 -1
- package/dist/components/ui/tooltip.js +44 -27
- package/dist/components/ui/tooltip.js.map +1 -1
- package/dist/components/web3/providers.d.ts.map +1 -1
- package/dist/components/web3/providers.js +1 -2
- package/dist/components/web3/providers.js.map +1 -1
- package/dist/components/widget/AppHeader/Activities/ActivityItems.js +1 -1
- package/dist/components/widget/AppHeader/Activities/ActivityItems.js.map +1 -1
- package/dist/components/widget/AppHeader/AppHeader.js +1 -1
- package/dist/components/widget/AppHeader/AppHeader.js.map +1 -1
- package/dist/components/widget/AppHeader/TradeModeSwitcher.js +1 -1
- package/dist/components/widget/AppHeader/TradeModeSwitcher.js.map +1 -1
- package/dist/components/widget/Dialog/state/dialogAtom.d.ts.map +1 -1
- package/dist/components/widget/Dialog/state/dialogAtom.js +2 -1
- package/dist/components/widget/Dialog/state/dialogAtom.js.map +1 -1
- package/dist/components/widget/Drawer/Overlay.js +1 -1
- package/dist/components/widget/Drawer/Overlay.js.map +1 -1
- package/dist/components/widget/Drawer/state/useDrawerControls.d.ts.map +1 -1
- package/dist/components/widget/Drawer/state/useDrawerControls.js +2 -1
- package/dist/components/widget/Drawer/state/useDrawerControls.js.map +1 -1
- package/dist/components/widget/ImportToken/ImportToken.js +1 -1
- package/dist/components/widget/ImportToken/ImportToken.js.map +1 -1
- package/dist/components/widget/OrderExpiryInput/index.js +1 -1
- package/dist/components/widget/OrderExpiryInput/index.js.map +1 -1
- package/dist/components/widget/ReceiverAddress/state/receiverAddressAtom.d.ts.map +1 -1
- package/dist/components/widget/ReceiverAddress/state/receiverAddressAtom.js +2 -1
- package/dist/components/widget/ReceiverAddress/state/receiverAddressAtom.js.map +1 -1
- package/dist/components/widget/ReceiverAddress/state/subscriptions.js +1 -1
- package/dist/components/widget/ReceiverAddress/state/subscriptions.js.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/SwapModeSwitcherExpandable.js +1 -1
- package/dist/components/widget/SwapModeSwitcher/SwapModeSwitcherExpandable.js.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.d.ts +2 -2
- package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.d.ts.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js +2 -1
- package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js.map +1 -1
- package/dist/components/widget/TradeParameters/hooks/useIsNotDefaultAnyParameter.js +1 -1
- package/dist/components/widget/TradeParameters/hooks/useIsNotDefaultAnyParameter.js.map +1 -1
- package/dist/components/widget/TradeParameters/state/gasPresetParamAtom.d.ts.map +1 -1
- package/dist/components/widget/TradeParameters/state/gasPresetParamAtom.js +2 -1
- package/dist/components/widget/TradeParameters/state/gasPresetParamAtom.js.map +1 -1
- package/dist/components/widget/TradeParameters/useTempTradeParameters.js +1 -1
- package/dist/components/widget/TradeParameters/useTempTradeParameters.js.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js +1 -1
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js.map +1 -1
- package/dist/configurator/components/common/DetailWithTooltip.d.ts +1 -0
- package/dist/configurator/components/common/DetailWithTooltip.d.ts.map +1 -1
- package/dist/core/DevTools.d.ts.map +1 -1
- package/dist/core/LimitOrderButton.js +1 -1
- package/dist/core/LimitOrderButton.js.map +1 -1
- package/dist/core/OtcOrderButton.js +1 -1
- package/dist/core/OtcOrderButton.js.map +1 -1
- package/dist/core/index.js +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/inputs/hooks/useTokenFromInputProps.js +1 -1
- package/dist/core/inputs/hooks/useTokenFromInputProps.js.map +1 -1
- package/dist/core/inputs/hooks/useTokenSwitcherProps.js +1 -1
- package/dist/core/inputs/hooks/useTokenSwitcherProps.js.map +1 -1
- package/dist/core/inputs/hooks/useTokenToInputProps.js +1 -1
- package/dist/core/inputs/hooks/useTokenToInputProps.js.map +1 -1
- package/dist/core/inputs/state/common.d.ts.map +1 -1
- package/dist/core/inputs/state/common.js +2 -1
- package/dist/core/inputs/state/common.js.map +1 -1
- package/dist/core/inputs/state/selectedTokenActionsAtom.js +1 -1
- package/dist/core/inputs/state/selectedTokenActionsAtom.js.map +1 -1
- package/dist/core/inputs/state/selectedTokenAtom.d.ts.map +1 -1
- package/dist/core/inputs/state/selectedTokenAtom.js +2 -1
- package/dist/core/inputs/state/selectedTokenAtom.js.map +1 -1
- package/dist/core/inputs/state/setTokenByAddressAtom.d.ts.map +1 -1
- package/dist/core/inputs/state/setTokenByAddressAtom.js +2 -1
- package/dist/core/inputs/state/setTokenByAddressAtom.js.map +1 -1
- package/dist/core/limit/state/currentLimitInputAtom.d.ts +2 -2
- package/dist/core/limit/state/deadlineAtom.d.ts.map +1 -1
- package/dist/core/limit/state/deadlineAtom.js +2 -1
- package/dist/core/limit/state/deadlineAtom.js.map +1 -1
- package/dist/core/limit/state/selectedTokenAtom.d.ts.map +1 -1
- package/dist/core/limit/state/selectedTokenAtom.js +2 -2
- package/dist/core/limit/state/selectedTokenAtom.js.map +1 -1
- package/dist/core/limit/useLimitDetailsListProps.js +1 -1
- package/dist/core/limit/useLimitDetailsListProps.js.map +1 -1
- package/dist/core/limit/useLimitPriceDifference.js +1 -1
- package/dist/core/limit/useLimitPriceDifference.js.map +1 -1
- package/dist/core/limit/useLimitPriceInputProps.js +1 -1
- package/dist/core/limit/useLimitPriceInputProps.js.map +1 -1
- package/dist/core/limit/useLimitRate.js +1 -1
- package/dist/core/limit/useLimitRate.js.map +1 -1
- package/dist/core/limit/useLimitTokenFromInputProps.js +1 -1
- package/dist/core/limit/useLimitTokenFromInputProps.js.map +1 -1
- package/dist/core/limit/useLimitTokenSwitcherProps.js +1 -1
- package/dist/core/limit/useLimitTokenSwitcherProps.js.map +1 -1
- package/dist/core/limit/useLimitTokenToInputProps.js +1 -1
- package/dist/core/limit/useLimitTokenToInputProps.js.map +1 -1
- package/dist/core/logger.js +1 -1
- package/dist/core/logger.js.map +1 -1
- package/dist/core/otc/state/currentOtcInputAtom.d.ts +2 -2
- package/dist/core/otc/state/deadlineAtom.d.ts.map +1 -1
- package/dist/core/otc/state/deadlineAtom.js +2 -1
- package/dist/core/otc/state/deadlineAtom.js.map +1 -1
- package/dist/core/otc/state/receiverAddressAtom.d.ts.map +1 -1
- package/dist/core/otc/state/receiverAddressAtom.js +2 -1
- package/dist/core/otc/state/receiverAddressAtom.js.map +1 -1
- package/dist/core/otc/state/selectedTokenAtom.d.ts.map +1 -1
- package/dist/core/otc/state/selectedTokenAtom.js +2 -2
- package/dist/core/otc/state/selectedTokenAtom.js.map +1 -1
- package/dist/core/otc/useOtcDetailsListProps.js +1 -1
- package/dist/core/otc/useOtcDetailsListProps.js.map +1 -1
- package/dist/core/otc/useOtcPriceDifference.js +1 -1
- package/dist/core/otc/useOtcPriceDifference.js.map +1 -1
- package/dist/core/otc/useOtcPriceInputProps.js +1 -1
- package/dist/core/otc/useOtcPriceInputProps.js.map +1 -1
- package/dist/core/otc/useOtcTokenFromInputProps.js +1 -1
- package/dist/core/otc/useOtcTokenFromInputProps.js.map +1 -1
- package/dist/core/otc/useOtcTokenSwitcherProps.js +1 -1
- package/dist/core/otc/useOtcTokenSwitcherProps.js.map +1 -1
- package/dist/core/otc/useOtcTokenToInputProps.js +1 -1
- package/dist/core/otc/useOtcTokenToInputProps.js.map +1 -1
- package/dist/core/state/chainToAtom.d.ts.map +1 -1
- package/dist/core/state/chainToAtom.js +2 -1
- package/dist/core/state/chainToAtom.js.map +1 -1
- package/dist/core/state/configAtom.d.ts.map +1 -1
- package/dist/core/state/configAtom.js +2 -1
- package/dist/core/state/configAtom.js.map +1 -1
- package/dist/core/state/configEffectAtom.d.ts.map +1 -1
- package/dist/core/state/configEffectAtom.js +2 -1
- package/dist/core/state/configEffectAtom.js.map +1 -1
- package/dist/core/state/containerAtom.d.ts.map +1 -1
- package/dist/core/state/containerAtom.js +2 -1
- package/dist/core/state/containerAtom.js.map +1 -1
- package/dist/core/state/enabledChainsAtom.d.ts.map +1 -1
- package/dist/core/state/enabledChainsAtom.js +2 -1
- package/dist/core/state/enabledChainsAtom.js.map +1 -1
- package/dist/core/state/externalProviderAtom.d.ts.map +1 -1
- package/dist/core/state/externalProviderAtom.js +2 -1
- package/dist/core/state/externalProviderAtom.js.map +1 -1
- package/dist/core/state/isCrosschainAtom.d.ts.map +1 -1
- package/dist/core/state/isCrosschainAtom.js +2 -1
- package/dist/core/state/isCrosschainAtom.js.map +1 -1
- package/dist/core/state/tradeModeAtom.d.ts.map +1 -1
- package/dist/core/state/tradeModeAtom.js +2 -1
- package/dist/core/state/tradeModeAtom.js.map +1 -1
- package/dist/core/state/widgetEventsAtom.d.ts.map +1 -1
- package/dist/core/state/widgetEventsAtom.js +2 -1
- package/dist/core/state/widgetEventsAtom.js.map +1 -1
- package/dist/core/store.d.ts +29 -0
- package/dist/core/store.d.ts.map +1 -0
- package/dist/core/store.js +15 -0
- package/dist/core/store.js.map +1 -0
- package/dist/core/swapDetails/useSwapDetailsListProps.js +1 -1
- package/dist/core/swapDetails/useSwapDetailsListProps.js.map +1 -1
- package/dist/events/effects/price.js +1 -1
- package/dist/events/effects/price.js.map +1 -1
- package/dist/events/effects/swapMode.js +1 -1
- package/dist/events/effects/swapMode.js.map +1 -1
- package/dist/events/hooks/useActivateEffects.js +1 -1
- package/dist/events/hooks/useActivateEffects.js.map +1 -1
- package/dist/hooks/otc/mutations/useFillOrder.js +0 -4
- package/dist/hooks/otc/mutations/useFillOrder.js.map +1 -1
- package/dist/hooks/permit/hooks/permit1/usePermit1Nonce.d.ts.map +1 -1
- package/dist/hooks/permit/hooks/permit1/usePermit1Nonce.js +2 -1
- package/dist/hooks/permit/hooks/permit1/usePermit1Nonce.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts +6 -6
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.d.ts +1 -1
- package/dist/hooks/swap/prices/usePricesParams.js +6 -1
- package/dist/hooks/swap/prices/usePricesParams.js.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.js +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
- package/dist/hooks/tokens/balances/useIsInsufficientTokenBalance.js +1 -1
- package/dist/hooks/tokens/balances/useIsInsufficientTokenBalance.js.map +1 -1
- package/dist/hooks/tokens/balances/useIsLimitOrderInsufficientBalance.js +1 -1
- package/dist/hooks/tokens/balances/useIsLimitOrderInsufficientBalance.js.map +1 -1
- package/dist/hooks/tokens/useAllTokensWithFilter.js +1 -1
- package/dist/hooks/tokens/useAllTokensWithFilter.js.map +1 -1
- package/dist/hooks/useEIP1559Enabled.js +1 -1
- package/dist/hooks/useEIP1559Enabled.js.map +1 -1
- package/dist/hooks/useGlobalDeltaEnabled.js +1 -1
- package/dist/hooks/useGlobalDeltaEnabled.js.map +1 -1
- package/dist/hooks/useSlippage.js +1 -1
- package/dist/hooks/useSlippage.js.map +1 -1
- package/dist/styles.css +4 -0
- package/dist/tokens/hooks.js +1 -1
- package/dist/tokens/hooks.js.map +1 -1
- package/dist/tokens/lists/state/effects.js +1 -2
- package/dist/tokens/lists/state/effects.js.map +1 -1
- package/dist/tokens/queries.js +1 -1
- package/dist/tokens/queries.js.map +1 -1
- package/dist/transactions/state/hooks/useActivateEffects.js +1 -1
- package/dist/transactions/state/hooks/useActivateEffects.js.map +1 -1
- package/dist/transactions/state/hooks/useTransactions.js +1 -1
- package/dist/transactions/state/hooks/useTransactions.js.map +1 -1
- package/dist/transactions/state/transactionsActionAtom.js +1 -1
- package/dist/transactions/state/transactionsActionAtom.js.map +1 -1
- package/package.json +4 -3
- package/dist/core/inputs/state/store.d.ts +0 -2
- package/dist/core/inputs/state/store.d.ts.map +0 -1
- package/dist/core/inputs/state/store.js +0 -6
- package/dist/core/inputs/state/store.js.map +0 -1
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export declare const jotaiStore: import('jotai/vanilla/internals').INTERNAL_Store;
|
|
2
|
+
export declare const Provider: (props: {
|
|
3
|
+
store?: import('jotai/vanilla/internals').INTERNAL_Store;
|
|
4
|
+
initialValues?: Iterable<readonly [import('node_modules/jotai-scope/dist/types').AnyWritableAtom, unknown]>;
|
|
5
|
+
children: import('react').ReactNode;
|
|
6
|
+
}) => React.JSX.Element, ScopeProvider: {
|
|
7
|
+
(props: {
|
|
8
|
+
atoms: Iterable<import('node_modules/jotai-scope/dist/types').AnyAtom | import('node_modules/jotai-scope/dist/types').AtomDefault>;
|
|
9
|
+
} & ({
|
|
10
|
+
atoms?: Iterable<import('node_modules/jotai-scope/dist/types').AnyAtom | import('node_modules/jotai-scope/dist/types').AtomDefault>;
|
|
11
|
+
atomFamilies?: Iterable<import('node_modules/jotai-scope/dist/types').AnyAtomFamily>;
|
|
12
|
+
name?: string;
|
|
13
|
+
} & {
|
|
14
|
+
children?: import('react').ReactNode | undefined;
|
|
15
|
+
})): React.JSX.Element;
|
|
16
|
+
(props: {
|
|
17
|
+
atomFamilies: Iterable<import('node_modules/jotai-scope/dist/types').AnyAtomFamily>;
|
|
18
|
+
} & ({
|
|
19
|
+
atoms?: Iterable<import('node_modules/jotai-scope/dist/types').AnyAtom | import('node_modules/jotai-scope/dist/types').AtomDefault>;
|
|
20
|
+
atomFamilies?: Iterable<import('node_modules/jotai-scope/dist/types').AnyAtomFamily>;
|
|
21
|
+
name?: string;
|
|
22
|
+
} & {
|
|
23
|
+
children?: import('react').ReactNode | undefined;
|
|
24
|
+
})): React.JSX.Element;
|
|
25
|
+
(props: import('react').PropsWithChildren<{
|
|
26
|
+
scope: import('jotai/vanilla/internals').INTERNAL_Store;
|
|
27
|
+
}>): React.JSX.Element;
|
|
28
|
+
}, useStore: typeof import('jotai').useStore, useAtom: typeof import('jotai').useAtom, useAtomValue: typeof import('jotai').useAtomValue, useSetAtom: typeof import('jotai').useSetAtom;
|
|
29
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/core/store.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,UAAU,kDAAgB,CAAC;AAExC,eAAO,MACL,QAAQ;SAOwL,CAAC;iBAA8B,CAAC;;yBANhO,aAAa;;;;;;;;;;;;;;;;;;;;;;GACb,QAAQ,mCACR,OAAO,kCACP,YAAY,uCACZ,UAAU,mCACS,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { createStore } from 'jotai';
|
|
2
|
+
import { createIsolation } from 'jotai-scope';
|
|
3
|
+
|
|
4
|
+
const jotaiStore = createStore();
|
|
5
|
+
const {
|
|
6
|
+
Provider,
|
|
7
|
+
ScopeProvider,
|
|
8
|
+
useStore,
|
|
9
|
+
useAtom,
|
|
10
|
+
useAtomValue,
|
|
11
|
+
useSetAtom
|
|
12
|
+
} = createIsolation();
|
|
13
|
+
|
|
14
|
+
export { Provider, ScopeProvider, jotaiStore, useAtom, useAtomValue, useSetAtom, useStore };
|
|
15
|
+
//# sourceMappingURL=store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.js","sources":["../../src/core/store.ts"],"sourcesContent":["import { createStore } from \"jotai\";\nimport { createIsolation } from \"jotai-scope\";\n\nexport const jotaiStore = createStore();\n\nexport const {\n Provider,\n ScopeProvider,\n useStore,\n useAtom,\n useAtomValue,\n useSetAtom,\n} = createIsolation();\n"],"names":["jotaiStore","createStore","Provider","ScopeProvider","useStore","useAtom","useAtomValue","useSetAtom","createIsolation"],"mappings":";;;AAGO,MAAMA,aAAaC,WAAAA;AAEnB,MAAM;AAAA,EACXC,QAAAA;AAAAA,EACAC,aAAAA;AAAAA,EACAC,QAAAA;AAAAA,EACAC,OAAAA;AAAAA,EACAC,YAAAA;AAAAA,EACAC;AACF,CAAA,GAAIC,eAAAA;;;;"}
|
|
@@ -3,7 +3,7 @@ import { d as distExports } from '../../_virtual/index.js';
|
|
|
3
3
|
import { SwapRate } from '../../components/widget/SwapRate/SwapRate.js';
|
|
4
4
|
import { useCurrentSwapPrice } from '../../hooks/swap/prices/useSwapPrices.js';
|
|
5
5
|
import { useWidgetTokens } from '../inputs/state/common.js';
|
|
6
|
-
import { useAtomValue } from '
|
|
6
|
+
import { useAtomValue } from '../store.js';
|
|
7
7
|
import { payInputAmountWeiAtom, receiveInputAmountWeiAtom } from '../inputs/state/inputAmountAtom.js';
|
|
8
8
|
import { constructOrderRoutingDetail } from './orderRouting.js';
|
|
9
9
|
import { constructPriceImpactDetail } from './priceImpact.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSwapDetailsListProps.js","sources":["../../../src/core/swapDetails/useSwapDetailsListProps.tsx"],"sourcesContent":["import type {\n DetailWithValue,\n DetailWithValueListExpandableProps,\n} from \"@/components/widget/Details/types\";\nimport { SwapRate } from \"@/components/widget/SwapRate/SwapRate\";\nimport { useCurrentSwapPrice } from \"@/hooks/swap/prices/useSwapPrices\";\nimport { useWidgetTokens } from \"../inputs/state/common\";\nimport { useAtomValue } from \"jotai\";\nimport {\n payInputAmountWeiAtom,\n receiveInputAmountWeiAtom,\n} from \"../inputs/state/inputAmountAtom\";\n\nimport { constructOrderRoutingDetail } from \"./orderRouting\";\nimport { constructPriceImpactDetail } from \"./priceImpact\";\nimport { constructSwapFeesDetail, constructNetworkFeesDetail } from \"./fees\";\nimport { useSwapSide } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport { cn, isTruthy } from \"@/lib/utils\";\nimport { constructYouGetDetail } from \"./youGet\";\nimport { useSlippage } from \"@/hooks/useSlippage\";\n\nimport { ReactComponent as PriceImpactSVG } from \"@/assets/price-impact.svg\";\nimport {\n Tooltip,\n TooltipTrigger,\n TooltipContent,\n} from \"@/components/ui/tooltip\";\nimport { Skeleton } from \"@/components/ui/skeleton\";\nimport { constructMaxToPayDetail } from \"./maxToPay\";\n\nexport const useSwapDetailsListProps =\n (): DetailWithValueListExpandableProps => {\n const { tokenFrom, tokenTo } = useWidgetTokens(\"swap\");\n\n const srcAmountWei = useAtomValue(payInputAmountWeiAtom);\n const destAmountWei = useAtomValue(receiveInputAmountWeiAtom);\n\n const { isLoading, price, priceMode } = useCurrentSwapPrice({\n enabled: false,\n });\n\n const { resolvedSlippage } = useSlippage(\"swap\");\n const swapSide = useSwapSide();\n\n const orderRoutingDetail = constructOrderRoutingDetail({\n bestRoutes: price && \"bestRoute\" in price ? price.bestRoute : undefined,\n swapMode: priceMode,\n isLoading,\n });\n\n const { isHighImpact, ...priceImpactDetail } = constructPriceImpactDetail({\n price,\n isLoading,\n });\n\n const swapFeesDetail = constructSwapFeesDetail({\n price,\n isLoading,\n });\n\n const networkFeesDetail = constructNetworkFeesDetail({\n price,\n swapMode: priceMode,\n isLoading,\n });\n\n const minMaxDetail =\n swapSide === \"SELL\"\n ? // minimum received when SELLing\n constructYouGetDetail({\n price,\n isLoading,\n slippagePercent: resolvedSlippage,\n tokenTo,\n swapSide,\n })\n : // maximum to pay when BUYing\n constructMaxToPayDetail({\n price,\n isLoading,\n slippagePercent: resolvedSlippage,\n tokenFrom,\n swapSide,\n });\n\n const details: DetailWithValue[] = [\n orderRoutingDetail,\n priceImpactDetail,\n swapFeesDetail,\n minMaxDetail,\n networkFeesDetail,\n ].filter(isTruthy);\n\n const isBuy = swapSide === \"BUY\";\n\n return {\n trigger: (\n <div className=\"flex items-center justify-between\">\n <Tooltip>\n <TooltipTrigger asChild>\n <div>\n <SwapRate\n srcToken={tokenFrom}\n destToken={tokenTo}\n srcAmountWei={srcAmountWei}\n destAmountWei={destAmountWei}\n isLoading={isLoading}\n reverse={isBuy}\n />\n </div>\n </TooltipTrigger>\n <TooltipContent>\n Best price for this trade based on the current market conditions\n </TooltipContent>\n </Tooltip>\n\n <Tooltip>\n <TooltipTrigger asChild>\n <div className=\"flex items-center gap-1\">\n {!isHighImpact && <PriceImpactSVG className=\"size-[16px]\" />}\n {priceImpactDetail.isLoading ? (\n <Skeleton className=\"bg-contrast-6 dark:bg-contrast-5 min-w-[42px] h-[12px]\" />\n ) : (\n <div\n className={cn({\n \"text-secondary-orange-peel-1 dark:text-secondary-orange-peel-1\":\n isHighImpact,\n })}\n >\n {priceImpactDetail.value ?? \"-\"}\n </div>\n )}\n </div>\n </TooltipTrigger>\n <TooltipContent>Price Impact</TooltipContent>\n </Tooltip>\n </div>\n ),\n details,\n classes: {\n root: \"mt-4\",\n },\n };\n };\n"],"names":["useSwapDetailsListProps","$","_c","tokenFrom","tokenTo","useWidgetTokens","srcAmountWei","useAtomValue","payInputAmountWeiAtom","destAmountWei","receiveInputAmountWeiAtom","t0","Symbol","for","enabled","isLoading","price","priceMode","useCurrentSwapPrice","resolvedSlippage","useSlippage","swapSide","useSwapSide","T0","T1","details","t1","t2","t3","t4","t5","t6","orderRoutingDetail","constructOrderRoutingDetail","bestRoutes","bestRoute","undefined","swapMode","isHighImpact","priceImpactDetail","constructPriceImpactDetail","swapFeesDetail","constructSwapFeesDetail","networkFeesDetail","constructNetworkFeesDetail","minMaxDetail","constructYouGetDetail","slippagePercent","constructMaxToPayDetail","filter","isTruthy","isBuy","t7","t8","Tooltip","TooltipTrigger","PriceImpactSVG","cn","value","t9","t10","t11","t12","root","t13","trigger","classes"],"mappings":";;;;;;;;;;;;;;;;;;;AA8BO,MAAMA,0BACXA,MAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AACE,EAAA,MAAA;AAAA,IAAAC,SAAAA;AAAAA,IAAAC;AAAAA,GAAA,GAA+BC,gBAAgB,MAAM,CAAA;AAErD,EAAA,MAAAC,YAAAA,GAAqBC,aAAaC,qBAAqB,CAAA;AACvD,EAAA,MAAAC,aAAAA,GAAsBF,aAAaG,yBAAyB,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,EACjD;AAAA,KACX;AAACb,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,GAAA,GAA6BC,YAAY,MAAM,CAAA;AAC/C,EAAA,MAAAC,WAAiBC,WAAAA,EAAY;AAAE,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAC,OAAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAA9B,CAAAA,CAAA,CAAA,CAAA,KAAAQ,aAAAA,IAAAR,EAAA,CAAA,CAAA,KAAAc,SAAAA,IAAAd,CAAAA,QAAAe,KAAAA,IAAAf,CAAAA,CAAA,CAAA,MAAAgB,SAAAA,IAAAhB,CAAAA,CAAA,CAAA,CAAA,KAAAkB,oBAAAlB,CAAAA,CAAA,CAAA,CAAA,KAAAK,YAAAA,IAAAL,EAAA,CAAA,CAAA,KAAAoB,QAAAA,IAAApB,CAAAA,CAAA,CAAA,CAAA,KAAAE,SAAAA,IAAAF,CAAAA,QAAAG,OAAAA,EAAA;AAE/B,IAAA,MAAA4B,qBAA2BC,2BAAAA,CAA4B;AAAA,MAAAC,UAAAA,EACzClB,KAAAA,IAAS,WAAA,IAAeA,KAAAA,GAAQA,MAAKmB,SAAAA,GAArCC,MAAAA;AAAAA,MAA2DC,QAAAA,EAC7DpB,SAAAA;AAAAA,MAASF;AAAAA,KAEpB,CAAA;AAED,IAAA,MAAA;AAAA,MAAAuB,YAAAA;AAAAA,MAAA,GAAAC;AAAAA,QAA+CC,0BAAAA,CAA2B;AAAA,MAAAxB,KAAAA;AAAAA,MAAAD;AAAAA,KAGzE,CAAA;AAED,IAAA,MAAA0B,iBAAuBC,uBAAAA,CAAwB;AAAA,MAAA1B,KAAAA;AAAAA,MAAAD;AAAAA,KAG9C,CAAA;AAED,IAAA,MAAA4B,oBAA0BC,0BAAAA,CAA2B;AAAA,MAAA5B,KAAAA;AAAAA,MAAAqB,QAAAA,EAEzCpB,SAAAA;AAAAA,MAASF;AAAAA,KAEpB,CAAA;AAED,IAAA,MAAA8B,YAAAA,GACExB,QAAAA,KAAa,MAAA,GAETyB,qBAAAA,CAAsB;AAAA,MAAA9B,KAAAA;AAAAA,MAAAD,SAAAA;AAAAA,MAAAgC,eAAAA,EAGH5B,gBAAAA;AAAAA,MAAgBf,OAAAA;AAAAA,MAAAiB;AAAAA,KAWlC,IAND2B,uBAAAA,CAAwB;AAAA,MAAAhC,KAAAA;AAAAA,MAAAD,SAAAA;AAAAA,MAAAgC,eAAAA,EAGL5B,gBAAAA;AAAAA,MAAgBhB,SAAAA;AAAAA,MAAAkB;AAAAA,KAGlC,CAAA;AAEPI,IAAAA,OAAAA,GAAmC,CACjCO,oBACAO,iBAAAA,EACAE,cAAAA,EACAI,cACAF,iBAAiB,CAAA,CAClBM,OAAQC,QAAQ,CAAA;AAEjB,IAAA,MAAAC,QAAc9B,QAAAA,KAAa,KAAA;AAIRS,IAAAA,EAAAA,GAAA,mCAAA;AAAmC,IAAA,IAAAsB,GAAAA;AAAA,IAAA,IAAAnD,CAAAA,SAAAQ,aAAAA,IAAAR,EAAA,EAAA,CAAA,KAAAkD,KAAAA,IAAAlD,CAAAA,CAAA,EAAA,CAAA,KAAAc,aAAAd,CAAAA,CAAA,EAAA,CAAA,KAAAK,YAAAA,IAAAL,CAAAA,SAAAE,SAAAA,IAAAF,CAAAA,CAAA,EAAA,CAAA,KAAAG,OAAAA,EAAA;AAE9CgD,MAAAA,sBAAA,GAAA,CAAC,cAAA,EAAA,EAAe,SAAA,IAAA,EACd,QAAA,kBAAA,GAAA,CAAA,SACE,QAAA,kBAAA,GAAA,CAAC,QAAA,EAAA,EACWjD,UAAAA,SAAAA,EACCC,SAAAA,EAAAA,SACGE,YAAAA,EACCG,aAAAA,EACJM,WACFoC,OAAAA,SAAK,GAElB,CAAA,EACF,CAAA;AAAiBlD,MAAAA,CAAAA,OAAAQ,aAAAA;AAAAR,MAAAA,CAAAA,OAAAkD,KAAAA;AAAAlD,MAAAA,CAAAA,OAAAc,SAAAA;AAAAd,MAAAA,CAAAA,OAAAK,YAAAA;AAAAL,MAAAA,CAAAA,OAAAE,SAAAA;AAAAF,MAAAA,CAAAA,OAAAG,OAAAA;AAAAH,MAAAA,CAAAA,OAAAmD,GAAAA;AAAAA,IAAA,CAAA,MAAA;AAAAA,MAAAA,GAAAA,GAAAnD,EAAA,EAAA,CAAA;AAAA,IAAA;AAAA,IAAA,IAAAoD,GAAAA;AAAA,IAAA,IAAApD,EAAA,EAAA,CAAA,KAAAW,MAAAA,CAAAC,GAAAA,CAAA,2BAAA,CAAA,EAAA;AACjBwC,MAAAA,GAAAA,uBAAC,cAAA,EAAA,EAAe,QAAA,EAAA,kEAAA,EAEhB,CAAA;AAAiBpD,MAAAA,CAAAA,OAAAoD,GAAAA;AAAAA,IAAA,CAAA,MAAA;AAAAA,MAAAA,GAAAA,GAAApD,EAAA,EAAA,CAAA;AAAA,IAAA;AAAA,IAAA,IAAAA,CAAAA,SAAAmD,GAAAA,EAAA;AAfnBrB,MAAAA,EAAAA,wBAAC,OAAA,EAAA,EACCqB,QAAAA,EAAAA;AAAAA,QAAAA,GAAAA;AAAAA,QAYAC;AAAAA,OAAAA,EAGF,CAAA;AAAUpD,MAAAA,CAAAA,OAAAmD,GAAAA;AAAAnD,MAAAA,CAAAA,OAAA8B,EAAAA;AAAAA,IAAA,CAAA,MAAA;AAAAA,MAAAA,EAAAA,GAAA9B,EAAA,EAAA,CAAA;AAAA,IAAA;AAETuB,IAAAA,EAAAA,GAAA8B,OAAAA;AACE/B,IAAAA,EAAAA,GAAAgC,cAAAA;AAAe1B,IAAAA,EAAAA,GAAA,IAAA;AACCH,IAAAA,EAAAA,GAAA,yBAAA;AACZC,IAAAA,EAAAA,GAAA,CAACW,YAAAA,oBAAgB,GAAA,CAACkB,UAAA,EAAA,EAAyB,WAAA,aAAA,EAAa,CAAA;AACxD5B,IAAAA,EAAAA,GAAAW,iBAAAA,CAAiBxB,SAAAA,mBAChB,GAAA,CAAC,QAAA,EAAA,EAAmB,SAAA,EAAA,0DAAwD,CAAA,mBAE5E,GAAA,CAAA,KAAA,EAAA,EACa,SAAA,EAAA0C,EAAAA,CAAG;AAAA,MAAA,gEAAA,EAEVnB;AAAAA,KACH,CAAA,EAEAC,QAAAA,EAAAA,iBAAAA,CAAiBmB,KAAAA,IAAjB,GAAA,EACH,CAAA;AACDzD,IAAAA,CAAAA,MAAAQ,aAAAA;AAAAR,IAAAA,CAAAA,MAAAc,SAAAA;AAAAd,IAAAA,CAAAA,MAAAe,KAAAA;AAAAf,IAAAA,CAAAA,MAAAgB,SAAAA;AAAAhB,IAAAA,CAAAA,MAAAkB,gBAAAA;AAAAlB,IAAAA,CAAAA,MAAAK,YAAAA;AAAAL,IAAAA,CAAAA,MAAAoB,QAAAA;AAAApB,IAAAA,CAAAA,MAAAE,SAAAA;AAAAF,IAAAA,CAAAA,MAAAG,OAAAA;AAAAH,IAAAA,CAAAA,OAAAsB,EAAAA;AAAAtB,IAAAA,CAAAA,OAAAuB,EAAAA;AAAAvB,IAAAA,CAAAA,OAAAwB,OAAAA;AAAAxB,IAAAA,CAAAA,OAAAyB,EAAAA;AAAAzB,IAAAA,CAAAA,OAAA0B,EAAAA;AAAA1B,IAAAA,CAAAA,OAAA2B,EAAAA;AAAA3B,IAAAA,CAAAA,OAAA4B,EAAAA;AAAA5B,IAAAA,CAAAA,OAAA6B,EAAAA;AAAA7B,IAAAA,CAAAA,OAAA8B,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAR,IAAAA,EAAAA,GAAAtB,EAAA,EAAA,CAAA;AAAAuB,IAAAA,EAAAA,GAAAvB,EAAA,EAAA,CAAA;AAAAwB,IAAAA,OAAAA,GAAAxB,EAAA,EAAA,CAAA;AAAAyB,IAAAA,EAAAA,GAAAzB,EAAA,EAAA,CAAA;AAAA0B,IAAAA,EAAAA,GAAA1B,EAAA,EAAA,CAAA;AAAA2B,IAAAA,EAAAA,GAAA3B,EAAA,EAAA,CAAA;AAAA4B,IAAAA,EAAAA,GAAA5B,EAAA,EAAA,CAAA;AAAA6B,IAAAA,EAAAA,GAAA7B,EAAA,EAAA,CAAA;AAAA8B,IAAAA,EAAAA,GAAA9B,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAmD,EAAAA;AAAA,EAAA,IAAAnD,CAAAA,CAAA,EAAA,CAAA,KAAAyB,EAAAA,IAAAzB,CAAAA,SAAA0B,EAAAA,IAAA1B,CAAAA,CAAA,EAAA,CAAA,KAAA2B,EAAAA,EAAA;AAbHwB,IAAAA,EAAAA,mBAAA,IAAA,CAAA,KAAA,EAAA,EAAe,SAAA,EAAA1B,EAAAA,EACZC,QAAAA,EAAAA;AAAAA,MAAAA,EAAAA;AAAAA,MACAC;AAAAA,KAAAA,EAYH,CAAA;AAAM3B,IAAAA,CAAAA,OAAAyB,EAAAA;AAAAzB,IAAAA,CAAAA,OAAA0B,EAAAA;AAAA1B,IAAAA,CAAAA,OAAA2B,EAAAA;AAAA3B,IAAAA,CAAAA,OAAAmD,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAnD,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAoD,EAAAA;AAAA,EAAA,IAAApD,CAAAA,CAAA,EAAA,CAAA,KAAAsB,EAAAA,IAAAtB,CAAAA,SAAA4B,EAAAA,IAAA5B,CAAAA,CAAA,EAAA,CAAA,KAAAmD,EAAAA,EAAA;AAfRC,IAAAA,EAAAA,mBAAA,GAAA,CAAC,EAAA,EAAA,EAAe,OAAA,EAAAxB,EAAAA,EACduB,QAAAA,EAAAA,EAAAA,EAeF,CAAA;AAAiBnD,IAAAA,CAAAA,OAAAsB,EAAAA;AAAAtB,IAAAA,CAAAA,OAAA4B,EAAAA;AAAA5B,IAAAA,CAAAA,OAAAmD,EAAAA;AAAAnD,IAAAA,CAAAA,OAAAoD,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAApD,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAA0D,EAAAA;AAAA,EAAA,IAAA1D,EAAA,EAAA,CAAA,KAAAW,MAAAA,CAAAC,GAAAA,CAAA,2BAAA,CAAA,EAAA;AACjB8C,IAAAA,EAAAA,uBAAC,kBAAe,QAAA,EAAA,cAAA,EAAY,CAAA;AAAiB1D,IAAAA,CAAAA,OAAA0D,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAA1D,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAA2D,GAAAA;AAAA,EAAA,IAAA3D,EAAA,EAAA,CAAA,KAAAuB,MAAAvB,CAAAA,SAAAoD,EAAAA,EAAA;AAlB/CO,IAAAA,GAAAA,wBAAC,EAAA,EAAA,EACCP,QAAAA,EAAAA;AAAAA,MAAAA,EAAAA;AAAAA,MAiBAM;AAAAA,KAAAA,EACF,CAAA;AAAU1D,IAAAA,CAAAA,OAAAuB,EAAAA;AAAAvB,IAAAA,CAAAA,OAAAoD,EAAAA;AAAApD,IAAAA,CAAAA,OAAA2D,GAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,GAAAA,GAAA3D,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAA4D,GAAAA;AAAA,EAAA,IAAA5D,CAAAA,CAAA,EAAA,CAAA,KAAA2D,GAAAA,IAAA3D,CAAAA,SAAA6B,EAAAA,IAAA7B,CAAAA,CAAA,EAAA,CAAA,KAAA8B,EAAAA,EAAA;AAtCZ8B,IAAAA,GAAAA,mBAAA,IAAA,CAAA,KAAA,EAAA,EAAe,SAAA,EAAA/B,EAAAA,EACbC,QAAAA,EAAAA;AAAAA,MAAAA,EAAAA;AAAAA,MAkBA6B;AAAAA,KAAAA,EAoBF,CAAA;AAAM3D,IAAAA,CAAAA,OAAA2D,GAAAA;AAAA3D,IAAAA,CAAAA,OAAA6B,EAAAA;AAAA7B,IAAAA,CAAAA,OAAA8B,EAAAA;AAAA9B,IAAAA,CAAAA,OAAA4D,GAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,GAAAA,GAAA5D,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAA6D,GAAAA;AAAA,EAAA,IAAA7D,EAAA,EAAA,CAAA,KAAAW,MAAAA,CAAAC,GAAAA,CAAA,2BAAA,CAAA,EAAA;AAGCiD,IAAAA,GAAAA,GAAA;AAAA,MAAAC,IAAAA,EACD;AAAA,KACR;AAAC9D,IAAAA,CAAAA,OAAA6D,GAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,GAAAA,GAAA7D,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAA+D,GAAAA;AAAA,EAAA,IAAA/D,EAAA,EAAA,CAAA,KAAAwB,WAAAxB,CAAAA,SAAA4D,GAAAA,EAAA;AA9CIG,IAAAA,GAAAA,GAAA;AAAA,MAAAC,OAAAA,EAEHJ,GAAAA;AAAAA,MAuCMpC,OAAAA;AAAAA,MAAAyC,OAAAA,EAGCJ;AAAAA,KAGX;AAAC7D,IAAAA,CAAAA,OAAAwB,OAAAA;AAAAxB,IAAAA,CAAAA,OAAA4D,GAAAA;AAAA5D,IAAAA,CAAAA,OAAA+D,GAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,GAAAA,GAAA/D,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OA/CM+D,GAAAA;AA+CN;;;;"}
|
|
1
|
+
{"version":3,"file":"useSwapDetailsListProps.js","sources":["../../../src/core/swapDetails/useSwapDetailsListProps.tsx"],"sourcesContent":["import type {\n DetailWithValue,\n DetailWithValueListExpandableProps,\n} from \"@/components/widget/Details/types\";\nimport { SwapRate } from \"@/components/widget/SwapRate/SwapRate\";\nimport { useCurrentSwapPrice } from \"@/hooks/swap/prices/useSwapPrices\";\nimport { useWidgetTokens } from \"../inputs/state/common\";\nimport { useAtomValue } from \"@/core/store\";\nimport {\n payInputAmountWeiAtom,\n receiveInputAmountWeiAtom,\n} from \"../inputs/state/inputAmountAtom\";\n\nimport { constructOrderRoutingDetail } from \"./orderRouting\";\nimport { constructPriceImpactDetail } from \"./priceImpact\";\nimport { constructSwapFeesDetail, constructNetworkFeesDetail } from \"./fees\";\nimport { useSwapSide } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport { cn, isTruthy } from \"@/lib/utils\";\nimport { constructYouGetDetail } from \"./youGet\";\nimport { useSlippage } from \"@/hooks/useSlippage\";\n\nimport { ReactComponent as PriceImpactSVG } from \"@/assets/price-impact.svg\";\nimport {\n Tooltip,\n TooltipTrigger,\n TooltipContent,\n} from \"@/components/ui/tooltip\";\nimport { Skeleton } from \"@/components/ui/skeleton\";\nimport { constructMaxToPayDetail } from \"./maxToPay\";\n\nexport const useSwapDetailsListProps =\n (): DetailWithValueListExpandableProps => {\n const { tokenFrom, tokenTo } = useWidgetTokens(\"swap\");\n\n const srcAmountWei = useAtomValue(payInputAmountWeiAtom);\n const destAmountWei = useAtomValue(receiveInputAmountWeiAtom);\n\n const { isLoading, price, priceMode } = useCurrentSwapPrice({\n enabled: false,\n });\n\n const { resolvedSlippage } = useSlippage(\"swap\");\n const swapSide = useSwapSide();\n\n const orderRoutingDetail = constructOrderRoutingDetail({\n bestRoutes: price && \"bestRoute\" in price ? price.bestRoute : undefined,\n swapMode: priceMode,\n isLoading,\n });\n\n const { isHighImpact, ...priceImpactDetail } = constructPriceImpactDetail({\n price,\n isLoading,\n });\n\n const swapFeesDetail = constructSwapFeesDetail({\n price,\n isLoading,\n });\n\n const networkFeesDetail = constructNetworkFeesDetail({\n price,\n swapMode: priceMode,\n isLoading,\n });\n\n const minMaxDetail =\n swapSide === \"SELL\"\n ? // minimum received when SELLing\n constructYouGetDetail({\n price,\n isLoading,\n slippagePercent: resolvedSlippage,\n tokenTo,\n swapSide,\n })\n : // maximum to pay when BUYing\n constructMaxToPayDetail({\n price,\n isLoading,\n slippagePercent: resolvedSlippage,\n tokenFrom,\n swapSide,\n });\n\n const details: DetailWithValue[] = [\n orderRoutingDetail,\n priceImpactDetail,\n swapFeesDetail,\n minMaxDetail,\n networkFeesDetail,\n ].filter(isTruthy);\n\n const isBuy = swapSide === \"BUY\";\n\n return {\n trigger: (\n <div className=\"flex items-center justify-between\">\n <Tooltip>\n <TooltipTrigger asChild>\n <div>\n <SwapRate\n srcToken={tokenFrom}\n destToken={tokenTo}\n srcAmountWei={srcAmountWei}\n destAmountWei={destAmountWei}\n isLoading={isLoading}\n reverse={isBuy}\n />\n </div>\n </TooltipTrigger>\n <TooltipContent>\n Best price for this trade based on the current market conditions\n </TooltipContent>\n </Tooltip>\n\n <Tooltip>\n <TooltipTrigger asChild>\n <div className=\"flex items-center gap-1\">\n {!isHighImpact && <PriceImpactSVG className=\"size-[16px]\" />}\n {priceImpactDetail.isLoading ? (\n <Skeleton className=\"bg-contrast-6 dark:bg-contrast-5 min-w-[42px] h-[12px]\" />\n ) : (\n <div\n className={cn({\n \"text-secondary-orange-peel-1 dark:text-secondary-orange-peel-1\":\n isHighImpact,\n })}\n >\n {priceImpactDetail.value ?? \"-\"}\n </div>\n )}\n </div>\n </TooltipTrigger>\n <TooltipContent>Price Impact</TooltipContent>\n </Tooltip>\n </div>\n ),\n details,\n classes: {\n root: \"mt-4\",\n },\n };\n };\n"],"names":["useSwapDetailsListProps","$","_c","tokenFrom","tokenTo","useWidgetTokens","srcAmountWei","useAtomValue","payInputAmountWeiAtom","destAmountWei","receiveInputAmountWeiAtom","t0","Symbol","for","enabled","isLoading","price","priceMode","useCurrentSwapPrice","resolvedSlippage","useSlippage","swapSide","useSwapSide","T0","T1","details","t1","t2","t3","t4","t5","t6","orderRoutingDetail","constructOrderRoutingDetail","bestRoutes","bestRoute","undefined","swapMode","isHighImpact","priceImpactDetail","constructPriceImpactDetail","swapFeesDetail","constructSwapFeesDetail","networkFeesDetail","constructNetworkFeesDetail","minMaxDetail","constructYouGetDetail","slippagePercent","constructMaxToPayDetail","filter","isTruthy","isBuy","t7","t8","Tooltip","TooltipTrigger","PriceImpactSVG","cn","value","t9","t10","t11","t12","root","t13","trigger","classes"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { jotaiStore } from '../../core/
|
|
1
|
+
import { jotaiStore } from '../../core/store.js';
|
|
2
2
|
import { swapModeAtom } from '../../components/widget/SwapModeSwitcher/state/swapModeAtom.js';
|
|
3
3
|
import { isLastDeltaPriceQueryInError, isDeltaPrice } from '../../hooks/swap/prices/delta/queries/useDeltaPriceQuery.js';
|
|
4
4
|
import { widgetEventsAtom } from '../../core/state/widgetEventsAtom.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"price.js","sources":["../../../src/events/effects/price.ts"],"sourcesContent":["import type { DeltaOrMarketPrice } from \"@/hooks/swap/prices/types\";\nimport { jotaiStore } from \"@/core/
|
|
1
|
+
{"version":3,"file":"price.js","sources":["../../../src/events/effects/price.ts"],"sourcesContent":["import type { DeltaOrMarketPrice } from \"@/hooks/swap/prices/types\";\nimport { jotaiStore } from \"@/core/store\";\nimport { swapModeAtom } from \"@/components/widget/SwapModeSwitcher/state/swapModeAtom\";\nimport {\n isDeltaPrice,\n isLastDeltaPriceQueryInError,\n} from \"@/hooks/swap/prices/delta/queries/useDeltaPriceQuery\";\nimport { widgetEventsAtom } from \"@/core/state/widgetEventsAtom\";\nimport type { QueryClient } from \"@tanstack/react-query\";\n\nexport function notifyOnPriceChange(\n price: DeltaOrMarketPrice,\n queryClient: QueryClient\n) {\n const { onPriceChange } = jotaiStore.get(widgetEventsAtom);\n if (!onPriceChange) return;\n\n const swapMode = jotaiStore.get(swapModeAtom);\n\n const priceIsDelta = isDeltaPrice(price);\n const priceIsMarket = !priceIsDelta;\n\n if (swapMode === \"market\" && priceIsMarket) {\n onPriceChange({\n event: {\n name: \"PriceUpdate\",\n params: {\n priceMode: \"market\",\n price,\n },\n },\n });\n }\n\n if (swapMode === \"delta\" && priceIsDelta) {\n onPriceChange({\n event: {\n name: \"PriceUpdate\",\n params: {\n priceMode: \"delta\",\n price,\n },\n },\n });\n return;\n }\n\n if (\n swapMode === \"delta\" &&\n priceIsMarket &&\n // market price will be used independent of swapMode setting if Delta price has error\n isLastDeltaPriceQueryInError(queryClient)\n ) {\n onPriceChange({\n event: {\n name: \"PriceUpdate\",\n params: {\n priceMode: \"market\",\n price,\n },\n },\n });\n }\n}\n"],"names":["notifyOnPriceChange","price","queryClient","onPriceChange","jotaiStore","get","widgetEventsAtom","swapMode","swapModeAtom","priceIsDelta","isDeltaPrice","priceIsMarket","event","name","params","priceMode","isLastDeltaPriceQueryInError"],"mappings":";;;;;AAUO,SAASA,mBAAAA,CACdC,OACAC,WAAAA,EACA;AACA,EAAA,MAAM;AAAA,IAAEC;AAAAA,GAAc,GAAIC,UAAAA,CAAWC,GAAAA,CAAIC,gBAAgB,CAAA;AACzD,EAAA,IAAI,CAACH,aAAAA,EAAe;AAEpB,EAAA,MAAMI,QAAAA,GAAWH,UAAAA,CAAWC,GAAAA,CAAIG,YAAY,CAAA;AAE5C,EAAA,MAAMC,YAAAA,GAAeC,aAAaT,KAAK,CAAA;AACvC,EAAA,MAAMU,gBAAgB,CAACF,YAAAA;AAEvB,EAAA,IAAIF,QAAAA,KAAa,YAAYI,aAAAA,EAAe;AAC1CR,IAAAA,aAAAA,CAAc;AAAA,MACZS,KAAAA,EAAO;AAAA,QACLC,IAAAA,EAAM,aAAA;AAAA,QACNC,MAAAA,EAAQ;AAAA,UACNC,SAAAA,EAAW,QAAA;AAAA,UACXd;AAAAA;AACF;AACF,KACD,CAAA;AAAA,EACH;AAEA,EAAA,IAAIM,QAAAA,KAAa,WAAWE,YAAAA,EAAc;AACxCN,IAAAA,aAAAA,CAAc;AAAA,MACZS,KAAAA,EAAO;AAAA,QACLC,IAAAA,EAAM,aAAA;AAAA,QACNC,MAAAA,EAAQ;AAAA,UACNC,SAAAA,EAAW,OAAA;AAAA,UACXd;AAAAA;AACF;AACF,KACD,CAAA;AACD,IAAA;AAAA,EACF;AAEA,EAAA,IACEM,aAAa,OAAA,IACbI,aAAAA;AAAAA,EAEAK,4BAAAA,CAA6Bd,WAAW,CAAA,EACxC;AACAC,IAAAA,aAAAA,CAAc;AAAA,MACZS,KAAAA,EAAO;AAAA,QACLC,IAAAA,EAAM,aAAA;AAAA,QACNC,MAAAA,EAAQ;AAAA,UACNC,SAAAA,EAAW,QAAA;AAAA,UACXd;AAAAA;AACF;AACF,KACD,CAAA;AAAA,EACH;AACF;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { swapModeAtom } from '../../components/widget/SwapModeSwitcher/state/swapModeAtom.js';
|
|
2
|
-
import { jotaiStore } from '../../core/
|
|
2
|
+
import { jotaiStore } from '../../core/store.js';
|
|
3
3
|
import { widgetEventsAtom } from '../../core/state/widgetEventsAtom.js';
|
|
4
4
|
import { getLastDeltaPrice } from '../../hooks/swap/prices/delta/queries/useDeltaPriceQuery.js';
|
|
5
5
|
import { getLastMarketPrice } from '../../hooks/swap/prices/market/queries/useMarketPriceQuery.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swapMode.js","sources":["../../../src/events/effects/swapMode.ts"],"sourcesContent":["import { swapModeAtom } from \"@/components/widget/SwapModeSwitcher/state/swapModeAtom\";\nimport { jotaiStore } from \"@/core/
|
|
1
|
+
{"version":3,"file":"swapMode.js","sources":["../../../src/events/effects/swapMode.ts"],"sourcesContent":["import { swapModeAtom } from \"@/components/widget/SwapModeSwitcher/state/swapModeAtom\";\nimport { jotaiStore } from \"@/core/store\";\nimport { widgetEventsAtom } from \"@/core/state/widgetEventsAtom\";\nimport { getLastDeltaPrice } from \"@/hooks/swap/prices/delta/queries/useDeltaPriceQuery\";\nimport { getLastMarketPrice } from \"@/hooks/swap/prices/market/queries/useMarketPriceQuery\";\nimport { queryClient } from \"@/lib/queryClient\";\n\nexport function subscribeToPriceOnSwapModeChange() {\n // on swapMode change, notify of the latest price for the new swap mode\n jotaiStore.sub(swapModeAtom, () => {\n const { onPriceChange } = jotaiStore.get(widgetEventsAtom);\n if (!onPriceChange) return;\n\n const swapMode = jotaiStore.get(swapModeAtom);\n\n if (swapMode === \"delta\") {\n const price = getLastDeltaPrice(queryClient);\n if (!price) return;\n onPriceChange({\n event: {\n name: \"PriceUpdate\",\n params: {\n priceMode: \"delta\",\n price,\n },\n },\n });\n\n return;\n }\n if (swapMode === \"market\") {\n const price = getLastMarketPrice(queryClient);\n if (!price) return;\n onPriceChange({\n event: {\n name: \"PriceUpdate\",\n params: {\n priceMode: \"market\",\n price,\n },\n },\n });\n return;\n }\n });\n}\n"],"names":["subscribeToPriceOnSwapModeChange","jotaiStore","sub","swapModeAtom","onPriceChange","get","widgetEventsAtom","swapMode","price","getLastDeltaPrice","queryClient","event","name","params","priceMode","getLastMarketPrice"],"mappings":";;;;;;;AAOO,SAASA,gCAAAA,GAAmC;AAEjDC,EAAAA,UAAAA,CAAWC,GAAAA,CAAIC,cAAc,MAAM;AACjC,IAAA,MAAM;AAAA,MAAEC;AAAAA,KAAc,GAAIH,UAAAA,CAAWI,GAAAA,CAAIC,gBAAgB,CAAA;AACzD,IAAA,IAAI,CAACF,aAAAA,EAAe;AAEpB,IAAA,MAAMG,QAAAA,GAAWN,UAAAA,CAAWI,GAAAA,CAAIF,YAAY,CAAA;AAE5C,IAAA,IAAII,aAAa,OAAA,EAAS;AACxB,MAAA,MAAMC,KAAAA,GAAQC,kBAAkBC,WAAW,CAAA;AAC3C,MAAA,IAAI,CAACF,KAAAA,EAAO;AACZJ,MAAAA,aAAAA,CAAc;AAAA,QACZO,KAAAA,EAAO;AAAA,UACLC,IAAAA,EAAM,aAAA;AAAA,UACNC,MAAAA,EAAQ;AAAA,YACNC,SAAAA,EAAW,OAAA;AAAA,YACXN;AAAAA;AACF;AACF,OACD,CAAA;AAED,MAAA;AAAA,IACF;AACA,IAAA,IAAID,aAAa,QAAA,EAAU;AACzB,MAAA,MAAMC,KAAAA,GAAQO,mBAAmBL,WAAW,CAAA;AAC5C,MAAA,IAAI,CAACF,KAAAA,EAAO;AACZJ,MAAAA,aAAAA,CAAc;AAAA,QACZO,KAAAA,EAAO;AAAA,UACLC,IAAAA,EAAM,aAAA;AAAA,UACNC,MAAAA,EAAQ;AAAA,YACNC,SAAAA,EAAW,QAAA;AAAA,YACXN;AAAAA;AACF;AACF,OACD,CAAA;AACD,MAAA;AAAA,IACF;AAAA,EACF,CAAC,CAAA;AACH;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useActivateEffects.js","sources":["../../../src/events/hooks/useActivateEffects.ts"],"sourcesContent":["import { useAtom } from \"
|
|
1
|
+
{"version":3,"file":"useActivateEffects.js","sources":["../../../src/events/hooks/useActivateEffects.ts"],"sourcesContent":["import { useAtom } from \"@/core/store\";\nimport {\n swapFormInputAtomEffect,\n limitOrderFormInputAtomEffect,\n otcFormInputAtomEffect,\n} from \"../effects/formInput\";\n\nexport function useActivateEffects() {\n // atomEffects must be rendered for subscriptions to activate\n useAtom(swapFormInputAtomEffect);\n useAtom(limitOrderFormInputAtomEffect);\n useAtom(otcFormInputAtomEffect);\n}\n"],"names":["useActivateEffects","useAtom","swapFormInputAtomEffect","limitOrderFormInputAtomEffect","otcFormInputAtomEffect"],"mappings":";;;AAOO,SAAAA,kBAAAA,GAAA;AAELC,EAAAA,OAAAA,CAAQC,uBAAuB,CAAA;AAC/BD,EAAAA,OAAAA,CAAQE,6BAA6B,CAAA;AACrCF,EAAAA,OAAAA,CAAQG,sBAAsB,CAAA;AAAC;;;;"}
|
|
@@ -4,10 +4,6 @@ import { useMutation } from '@tanstack/react-query';
|
|
|
4
4
|
import { assert } from 'ts-essentials';
|
|
5
5
|
import 'wagmi';
|
|
6
6
|
import 'wagmi/query';
|
|
7
|
-
import '../../../lib/web3/wagmi/config.js';
|
|
8
|
-
import '@wagmi/core';
|
|
9
|
-
import 'wagmi/connectors';
|
|
10
|
-
import '../../../lib/queryClient.js';
|
|
11
7
|
import 'viem';
|
|
12
8
|
import '../../../transactions/state/transactionsActionAtom.js';
|
|
13
9
|
import 'react/jsx-runtime';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFillOrder.js","sources":["../../../../src/hooks/otc/mutations/useFillOrder.ts"],"sourcesContent":["import { useLimitOrdersSDK } from \"@/hooks/useSDK\";\nimport {\n useMutation,\n useQueryClient,\n type UseMutationOptions,\n type UseMutationResult,\n} from \"@tanstack/react-query\";\nimport type {\n MinViemClient,\n TxSendOverrides,\n FillOrderDirectlyFunctions,\n} from \"@velora-dex/sdk\";\nimport { assert } from \"ts-essentials\";\nimport type { Address, TransactionReceipt } from \"viem\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport { type TxSentObject } from \"@/lib/utils/transactionHandlers\";\nimport { limitOrdersQueryKey } from \"../queries/useLimitOrders\";\n\ntype FillOrderReturn = `0x${string}`;\ntype FillOrderAndWaitReturn = TransactionReceipt;\n\nexport type OrderFillData = Parameters<\n FillOrderDirectlyFunctions<FillOrderReturn>[\"fillOrderDirectly\"]\n>[0];\n\ntype FillOrderInput = {\n orderFillData: OrderFillData;\n overrides?: TxSendOverrides;\n signal?: AbortSignal; // since we have separate actions, we can abort in-between\n};\n\ntype FillOrderAndWaitInput = FillOrderInput & {\n onTxSent?: (txSent: TxSentObject) => void;\n};\n\ntype FillOrderMutationOptions = Omit<\n UseMutationOptions<FillOrderReturn, Error, FillOrderInput, void>,\n \"mutationFn\"\n>;\ntype FillOrderAndWaitMutationOptions = Omit<\n UseMutationOptions<FillOrderAndWaitReturn, Error, FillOrderInput, void>,\n \"mutationFn\"\n>;\n\ntype FillOrderMutInput = {\n mutationOptions?: FillOrderMutationOptions;\n chainId: SupportedChainId;\n account?: Address;\n client?: MinViemClient;\n};\n\ntype FillOrderAndWaitMutInput = {\n mutationOptions?: FillOrderAndWaitMutationOptions;\n chainId: SupportedChainId;\n account?: Address;\n client?: MinViemClient;\n};\n\nexport function useFillOrder({\n mutationOptions,\n chainId,\n account,\n client,\n}: FillOrderMutInput): UseMutationResult<\n FillOrderReturn,\n Error,\n FillOrderInput,\n void\n> {\n const { sdk } = useLimitOrdersSDK({ chainId, account, client });\n\n return useMutation<FillOrderReturn, Error, FillOrderInput, void>({\n mutationKey: [\"fillOrder\"],\n mutationFn: ({ orderFillData, overrides, signal }) => {\n // if aborted by this point, throw an error\n signal?.throwIfAborted();\n\n assert(\n \"fillOrderDirectly\" in sdk,\n \"fillOrderDirectly is not available on this SDK\"\n );\n // Note: This mutation requires the SDK to be initialized with account and client\n // to access fillOrderDirectly\n\n return sdk.fillOrderDirectly(orderFillData, overrides, { signal });\n },\n ...mutationOptions,\n });\n}\n\nexport function useFillOrderAndWait({\n mutationOptions,\n chainId,\n account,\n client,\n}: FillOrderAndWaitMutInput): UseMutationResult<\n FillOrderAndWaitReturn,\n Error,\n FillOrderAndWaitInput,\n void\n> & {\n fillTx: Omit<\n UseMutationResult<FillOrderReturn, Error, FillOrderInput, void>,\n \"mutate\" | \"mutateAsync\"\n >;\n} {\n const ensureTxReceipt = useEnsureTxReceipt();\n const { mutate, mutateAsync, ...fillTx } = useFillOrder({\n chainId,\n account,\n client,\n });\n const queryClient = useQueryClient();\n\n const mutationResult = useMutation<\n FillOrderAndWaitReturn,\n Error,\n FillOrderAndWaitInput,\n void\n >({\n mutationKey: [\"fillOrderAndWait\"],\n mutationFn: async ({ orderFillData, overrides, signal, onTxSent }) => {\n const txHash = await mutateAsync({ orderFillData, overrides, signal });\n\n const receiptPromise = ensureTxReceipt({ chainId, hash: txHash });\n\n onTxSent?.({\n chainId,\n transactionHash: txHash,\n action: \"fillOtcOrder\",\n receiptPromise,\n transactionSpecificData: {\n action: \"fillOtcOrder\",\n filledOrder: orderFillData.order,\n },\n });\n\n return receiptPromise;\n },\n ...mutationOptions,\n onSuccess: (data, variables, onMutationResult, context) => {\n queryClient.invalidateQueries({\n queryKey: limitOrdersQueryKey({ taker: account, type: \"P2P\" }, chainId),\n exact: false,\n });\n\n mutationOptions?.onSuccess?.(data, variables, onMutationResult, context);\n },\n });\n\n return { ...mutationResult, fillTx };\n}\n"],"names":["useFillOrder","t0","$","_c","mutationOptions","chainId","account","client","t1","sdk","useLimitOrdersSDK","t2","Symbol","for","t3","t4","orderFillData","overrides","signal","throwIfAborted","assert","fillOrderDirectly","mutationKey","mutationFn","useMutation"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useFillOrder.js","sources":["../../../../src/hooks/otc/mutations/useFillOrder.ts"],"sourcesContent":["import { useLimitOrdersSDK } from \"@/hooks/useSDK\";\nimport {\n useMutation,\n useQueryClient,\n type UseMutationOptions,\n type UseMutationResult,\n} from \"@tanstack/react-query\";\nimport type {\n MinViemClient,\n TxSendOverrides,\n FillOrderDirectlyFunctions,\n} from \"@velora-dex/sdk\";\nimport { assert } from \"ts-essentials\";\nimport type { Address, TransactionReceipt } from \"viem\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport { type TxSentObject } from \"@/lib/utils/transactionHandlers\";\nimport { limitOrdersQueryKey } from \"../queries/useLimitOrders\";\n\ntype FillOrderReturn = `0x${string}`;\ntype FillOrderAndWaitReturn = TransactionReceipt;\n\nexport type OrderFillData = Parameters<\n FillOrderDirectlyFunctions<FillOrderReturn>[\"fillOrderDirectly\"]\n>[0];\n\ntype FillOrderInput = {\n orderFillData: OrderFillData;\n overrides?: TxSendOverrides;\n signal?: AbortSignal; // since we have separate actions, we can abort in-between\n};\n\ntype FillOrderAndWaitInput = FillOrderInput & {\n onTxSent?: (txSent: TxSentObject) => void;\n};\n\ntype FillOrderMutationOptions = Omit<\n UseMutationOptions<FillOrderReturn, Error, FillOrderInput, void>,\n \"mutationFn\"\n>;\ntype FillOrderAndWaitMutationOptions = Omit<\n UseMutationOptions<FillOrderAndWaitReturn, Error, FillOrderInput, void>,\n \"mutationFn\"\n>;\n\ntype FillOrderMutInput = {\n mutationOptions?: FillOrderMutationOptions;\n chainId: SupportedChainId;\n account?: Address;\n client?: MinViemClient;\n};\n\ntype FillOrderAndWaitMutInput = {\n mutationOptions?: FillOrderAndWaitMutationOptions;\n chainId: SupportedChainId;\n account?: Address;\n client?: MinViemClient;\n};\n\nexport function useFillOrder({\n mutationOptions,\n chainId,\n account,\n client,\n}: FillOrderMutInput): UseMutationResult<\n FillOrderReturn,\n Error,\n FillOrderInput,\n void\n> {\n const { sdk } = useLimitOrdersSDK({ chainId, account, client });\n\n return useMutation<FillOrderReturn, Error, FillOrderInput, void>({\n mutationKey: [\"fillOrder\"],\n mutationFn: ({ orderFillData, overrides, signal }) => {\n // if aborted by this point, throw an error\n signal?.throwIfAborted();\n\n assert(\n \"fillOrderDirectly\" in sdk,\n \"fillOrderDirectly is not available on this SDK\"\n );\n // Note: This mutation requires the SDK to be initialized with account and client\n // to access fillOrderDirectly\n\n return sdk.fillOrderDirectly(orderFillData, overrides, { signal });\n },\n ...mutationOptions,\n });\n}\n\nexport function useFillOrderAndWait({\n mutationOptions,\n chainId,\n account,\n client,\n}: FillOrderAndWaitMutInput): UseMutationResult<\n FillOrderAndWaitReturn,\n Error,\n FillOrderAndWaitInput,\n void\n> & {\n fillTx: Omit<\n UseMutationResult<FillOrderReturn, Error, FillOrderInput, void>,\n \"mutate\" | \"mutateAsync\"\n >;\n} {\n const ensureTxReceipt = useEnsureTxReceipt();\n const { mutate, mutateAsync, ...fillTx } = useFillOrder({\n chainId,\n account,\n client,\n });\n const queryClient = useQueryClient();\n\n const mutationResult = useMutation<\n FillOrderAndWaitReturn,\n Error,\n FillOrderAndWaitInput,\n void\n >({\n mutationKey: [\"fillOrderAndWait\"],\n mutationFn: async ({ orderFillData, overrides, signal, onTxSent }) => {\n const txHash = await mutateAsync({ orderFillData, overrides, signal });\n\n const receiptPromise = ensureTxReceipt({ chainId, hash: txHash });\n\n onTxSent?.({\n chainId,\n transactionHash: txHash,\n action: \"fillOtcOrder\",\n receiptPromise,\n transactionSpecificData: {\n action: \"fillOtcOrder\",\n filledOrder: orderFillData.order,\n },\n });\n\n return receiptPromise;\n },\n ...mutationOptions,\n onSuccess: (data, variables, onMutationResult, context) => {\n queryClient.invalidateQueries({\n queryKey: limitOrdersQueryKey({ taker: account, type: \"P2P\" }, chainId),\n exact: false,\n });\n\n mutationOptions?.onSuccess?.(data, variables, onMutationResult, context);\n },\n });\n\n return { ...mutationResult, fillTx };\n}\n"],"names":["useFillOrder","t0","$","_c","mutationOptions","chainId","account","client","t1","sdk","useLimitOrdersSDK","t2","Symbol","for","t3","t4","orderFillData","overrides","signal","throwIfAborted","assert","fillOrderDirectly","mutationKey","mutationFn","useMutation"],"mappings":";;;;;;;;;;;;;;;;;;;AA2DO,SAAAA,aAAAC,EAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAAsB,EAAA,MAAA;AAAA,IAAAC,eAAAA;AAAAA,IAAAC,OAAAA;AAAAA,IAAAC,OAAAA;AAAAA,IAAAC;AAAAA,GAAA,GAAAN,EAAAA;AAKT,EAAA,IAAAO,EAAAA;AAAA,EAAA,IAAAN,CAAAA,CAAA,CAAA,CAAA,KAAAI,OAAAA,IAAAJ,CAAAA,QAAAG,OAAAA,IAAAH,CAAAA,CAAA,CAAA,CAAA,KAAAK,MAAAA,EAAA;AAMgBC,IAAAA,EAAAA,GAAA;AAAA,MAAAH,OAAAA;AAAAA,MAAAC,OAAAA;AAAAA,MAAAC;AAAAA,KAA2B;AAACL,IAAAA,CAAAA,MAAAI,OAAAA;AAAAJ,IAAAA,CAAAA,MAAAG,OAAAA;AAAAH,IAAAA,CAAAA,MAAAK,MAAAA;AAAAL,IAAAA,CAAAA,MAAAM,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAN,EAAA,CAAA,CAAA;AAAA,EAAA;AAA9D,EAAA,MAAA;AAAA,IAAAO;AAAAA,GAAA,GAAgBC,kBAAkBF,EAA4B,CAAA;AAAE,EAAA,IAAAG,EAAAA;AAAA,EAAA,IAAAT,EAAA,CAAA,CAAA,KAAAU,MAAAA,CAAAC,GAAAA,CAAA,2BAAA,CAAA,EAAA;AAGjDF,IAAAA,EAAAA,GAAA,CAAC,WAAW,CAAA;AAACT,IAAAA,CAAAA,MAAAS,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAT,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAY,EAAAA;AAAA,EAAA,IAAAZ,CAAAA,QAAAO,GAAAA,EAAA;AACdK,IAAAA,EAAAA,GAAAC,CAAAA,GAAAA,KAAA;AAAC,MAAA,MAAA;AAAA,QAAAC,aAAAA;AAAAA,QAAAC,SAAAA;AAAAA,QAAAC;AAAAA,OAAA,GAAAH,GAAAA;AAEXG,MAAAA,MAAAA,EAAMC,cAAAA,EAAiB;AAEvBC,MAAAA,MAAAA,CACE,mBAAA,IAAuBX,KACvB,gDACF,CAAA;AAAC,MAAA,OAIMA,GAAAA,CAAGY,iBAAAA,CAAmBL,aAAAA,EAAeC,SAAAA,EAAW;AAAA,QAAAC;AAAAA,OAAU,CAAA;AAAA,IAAC,CAAA;AACnEhB,IAAAA,CAAAA,MAAAO,GAAAA;AAAAP,IAAAA,CAAAA,MAAAY,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAZ,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAa,EAAAA;AAAA,EAAA,IAAAb,EAAA,CAAA,CAAA,KAAAE,mBAAAF,CAAAA,QAAAY,EAAAA,EAAA;AAd8DC,IAAAA,EAAAA,GAAA;AAAA,MAAAO,WAAAA,EAClDX,EAAAA;AAAAA,MAAaY,UAAAA,EACdT,EAAAA;AAAAA,MAYX,GACEV;AAAAA,KACL;AAACF,IAAAA,CAAAA,MAAAE,eAAAA;AAAAF,IAAAA,CAAAA,MAAAY,EAAAA;AAAAZ,IAAAA,CAAAA,MAAAa,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAb,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAhBMsB,YAA0DT,EAgBhE,CAAA;AAAC;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePermit1Nonce.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/permit/hooks/permit1/usePermit1Nonce.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"usePermit1Nonce.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/permit/hooks/permit1/usePermit1Nonce.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EACV,mBAAmB,EACnB,cAAc,EACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAKpC,UAAU,oBAAoB;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAKD,KAAK,aAAa,GAAG;IACnB,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC,CAAC;IAC1C,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,wBAAwB,GAAG;IAE9B,eAAe,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAEhD,UAAU,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC;CACrE,CAAC;AAEF,wBAAgB,kBAAkB,IAAI,wBAAwB,CA4C7D;AAcD,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;AAErE,KAAK,iBAAiB,GAAG;IACvB,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAElC,UAAU,CAAC,EAAE,iBAAiB,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;IACpD,WAAW,CAAC,EAAE,iBAAiB,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;IACtD,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,CACP,OAAO,CAAC,EAAE,cAAc,KACrB,OAAO,CAAC,mBAAmB,CAAC,iBAAiB,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;CACpE,CAAC;AAEF,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,KAAK,EACL,OAAO,EACP,OAAc,GACf,EAAE,oBAAoB,GAAG,qBAAqB,CA8F9C"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { useReadContracts } from 'wagmi';
|
|
2
2
|
import { ERC_20_NONCES_ABI } from '../../utils/constants.js';
|
|
3
|
-
import {
|
|
3
|
+
import { atom } from 'jotai';
|
|
4
|
+
import { useAtomValue, useSetAtom } from '../../../../core/store.js';
|
|
4
5
|
import { useMemo } from 'react';
|
|
5
6
|
import { isETHaddress } from '../../../../tokens/utils/eth.js';
|
|
6
7
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePermit1Nonce.js","sources":["../../../../../src/hooks/permit/hooks/permit1/usePermit1Nonce.ts"],"sourcesContent":["import { useReadContracts } from \"wagmi\";\nimport { ERC_20_NONCES_ABI } from \"../../utils/constants\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { atom, useAtomValue, useSetAtom } from \"jotai\";\nimport type { Token } from \"@/tokens/state/types\";\nimport type {\n QueryObserverResult,\n RefetchOptions,\n} from \"@tanstack/react-query\";\nimport type { Address } from \"viem\";\nimport { useMemo } from \"react\";\nimport type { ReadContractsData } from \"wagmi/query\";\nimport { isETHaddress } from \"@/tokens/utils/eth\";\n\ninterface UsePermitNonceParams {\n token?: Address;\n owner?: Address;\n chainId?: SupportedChainId;\n enabled?: boolean;\n}\n\n// chainId:token:owner => unused nonce (next to be used, starting with 0)\nconst NoncesAtom = atom<Record<TokenNonceKey, bigint>>({});\n\ntype SetNonceInput = {\n token: Pick<Token, \"address\" | \"network\">;\n owner: Address;\n usedNonce?: bigint;\n};\n\ntype UseMarkNonceAsUsedResult = {\n // mark as minimum nonce to use for next Permit, after sending Order or tx out\n markNonceAsUsed: (input: SetNonceInput) => void;\n // clear saved minimum nonce to rely on fetched nonce, if Order or tx failed\n clearNonce: (input: Pick<SetNonceInput, \"token\" | \"owner\">) => void;\n};\n\nexport function useMarkNonceAsUsed(): UseMarkNonceAsUsedResult {\n const setNonces = useSetAtom(NoncesAtom);\n\n const markNonceAsUsed: UseMarkNonceAsUsedResult[\"markNonceAsUsed\"] = ({\n token,\n owner,\n usedNonce,\n }) => {\n setNonces((prev) => {\n const key = getNonceKey({\n token: token.address as Address,\n owner,\n chainId: token.network,\n });\n const prevNonce = usedNonce ?? prev[key] ?? 0n;\n return {\n ...prev,\n [key]: prevNonce + 1n,\n };\n });\n };\n\n const clearNonce: UseMarkNonceAsUsedResult[\"clearNonce\"] = ({\n token,\n owner,\n }) => {\n setNonces((prev) => {\n const key = getNonceKey({\n token: token.address as Address,\n owner,\n chainId: token.network,\n });\n\n if (prev[key] === undefined) return prev;\n\n const { [key]: _, ...withoutKey } = prev;\n return withoutKey;\n });\n };\n\n return {\n markNonceAsUsed,\n clearNonce,\n };\n}\n\ntype GetNonceInput = {\n token: Address;\n owner: Address;\n chainId: SupportedChainId;\n};\n\ntype TokenNonceKey = `${number}:${Address}:${Address}`;\n\nfunction getNonceKey({ token, owner, chainId }: GetNonceInput): TokenNonceKey {\n return `${chainId}:${token.toLowerCase() as Address}:${owner.toLowerCase() as Address}` as const;\n}\n\nexport type NonceMethod = (typeof ERC_20_NONCES_ABI)[number][\"name\"];\n\ntype PermitNonceResult = {\n nonceMethod: NonceMethod;\n nonceToUse: bigint;\n};\n\nexport type UsePermit1NonceResult = {\n // null when no nonce support detected\n nonceToUse?: PermitNonceResult[\"nonceToUse\"] | null;\n nonceMethod?: PermitNonceResult[\"nonceMethod\"] | null;\n isLoading: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n refetch: (\n options?: RefetchOptions\n ) => Promise<QueryObserverResult<PermitNonceResult | null, Error>>;\n};\n\nexport function usePermit1Nonce({\n token,\n owner,\n chainId,\n enabled = true,\n}: UsePermitNonceParams): UsePermit1NonceResult {\n const key =\n token && owner && chainId ? getNonceKey({ token, owner, chainId }) : null;\n\n const noncesMap = useAtomValue(NoncesAtom);\n const tokenNotETH = token && !isETHaddress(token);\n\n // explicitly memoize select\n const { contractCalls, select } = useMemo(() => {\n const select = (\n data: ReadContractsData<typeof contractCalls, true>\n ): PermitNonceResult | null => {\n const successIndex = data.findIndex((d) => d.status === \"success\");\n // no method successfully returned anything\n if (successIndex === -1) return null;\n const method = contractCalls[successIndex]?.functionName;\n const result = data[successIndex]?.result;\n\n // the vars will always be non-null at this point\n if (!method || result === undefined) return null;\n\n const lastUnusedNonce = key ? (noncesMap[key] ?? 0n) : 0n;\n const nonce = result > lastUnusedNonce ? result : lastUnusedNonce;\n\n return {\n nonceMethod: method,\n nonceToUse: nonce,\n };\n };\n\n const ZERO_ADDRESS = \"0x0000000000000000000000000000000000000000\";\n // for the case where the token or owner is not set, to match the types,\n // readContracts isn't run anyway because of enabled=false\n const tokenAddress = (token?.toLowerCase() as Address) ?? ZERO_ADDRESS;\n const ownerAddress = (owner?.toLowerCase() as Address) ?? ZERO_ADDRESS;\n\n const contractCalls = [\n {\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: \"nonces\",\n args: [ownerAddress],\n },\n {\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: \"_nonces\",\n args: [ownerAddress],\n },\n {\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: \"nonce\",\n args: [ownerAddress],\n },\n {\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: \"getNonce\",\n args: [ownerAddress],\n },\n ] as const;\n\n return {\n contractCalls,\n select,\n };\n }, [noncesMap, key, owner, token]);\n\n const {\n data: nonceResult,\n isLoading,\n isError,\n isSuccess,\n error,\n refetch,\n } = useReadContracts({\n allowFailure: true,\n contracts: contractCalls,\n query: {\n enabled: enabled && tokenNotETH && !!(token && owner && chainId),\n select,\n },\n });\n\n return {\n nonceToUse: nonceResult === null ? null : nonceResult?.nonceToUse,\n nonceMethod: nonceResult === null ? null : nonceResult?.nonceMethod,\n isLoading,\n isError,\n isSuccess,\n error,\n refetch,\n };\n}\n"],"names":["NoncesAtom","atom","useMarkNonceAsUsed","setNonces","useSetAtom","markNonceAsUsed","token","owner","usedNonce","prev","key","getNonceKey","address","chainId","network","prevNonce","clearNonce","undefined","_","withoutKey","toLowerCase","usePermit1Nonce","enabled","noncesMap","useAtomValue","tokenNotETH","isETHaddress","contractCalls","select","useMemo","data","successIndex","findIndex","d","status","method","functionName","result","lastUnusedNonce","nonce","nonceMethod","nonceToUse","ZERO_ADDRESS","tokenAddress","ownerAddress","abi","ERC_20_NONCES_ABI","args","nonceResult","isLoading","isError","isSuccess","error","refetch","useReadContracts","allowFailure","contracts","query"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"usePermit1Nonce.js","sources":["../../../../../src/hooks/permit/hooks/permit1/usePermit1Nonce.ts"],"sourcesContent":["import { useReadContracts } from \"wagmi\";\nimport { ERC_20_NONCES_ABI } from \"../../utils/constants\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { atom } from \"jotai\";\nimport { useAtomValue, useSetAtom } from \"@/core/store\";\nimport type { Token } from \"@/tokens/state/types\";\nimport type {\n QueryObserverResult,\n RefetchOptions,\n} from \"@tanstack/react-query\";\nimport type { Address } from \"viem\";\nimport { useMemo } from \"react\";\nimport type { ReadContractsData } from \"wagmi/query\";\nimport { isETHaddress } from \"@/tokens/utils/eth\";\n\ninterface UsePermitNonceParams {\n token?: Address;\n owner?: Address;\n chainId?: SupportedChainId;\n enabled?: boolean;\n}\n\n// chainId:token:owner => unused nonce (next to be used, starting with 0)\nconst NoncesAtom = atom<Record<TokenNonceKey, bigint>>({});\n\ntype SetNonceInput = {\n token: Pick<Token, \"address\" | \"network\">;\n owner: Address;\n usedNonce?: bigint;\n};\n\ntype UseMarkNonceAsUsedResult = {\n // mark as minimum nonce to use for next Permit, after sending Order or tx out\n markNonceAsUsed: (input: SetNonceInput) => void;\n // clear saved minimum nonce to rely on fetched nonce, if Order or tx failed\n clearNonce: (input: Pick<SetNonceInput, \"token\" | \"owner\">) => void;\n};\n\nexport function useMarkNonceAsUsed(): UseMarkNonceAsUsedResult {\n const setNonces = useSetAtom(NoncesAtom);\n\n const markNonceAsUsed: UseMarkNonceAsUsedResult[\"markNonceAsUsed\"] = ({\n token,\n owner,\n usedNonce,\n }) => {\n setNonces((prev) => {\n const key = getNonceKey({\n token: token.address as Address,\n owner,\n chainId: token.network,\n });\n const prevNonce = usedNonce ?? prev[key] ?? 0n;\n return {\n ...prev,\n [key]: prevNonce + 1n,\n };\n });\n };\n\n const clearNonce: UseMarkNonceAsUsedResult[\"clearNonce\"] = ({\n token,\n owner,\n }) => {\n setNonces((prev) => {\n const key = getNonceKey({\n token: token.address as Address,\n owner,\n chainId: token.network,\n });\n\n if (prev[key] === undefined) return prev;\n\n const { [key]: _, ...withoutKey } = prev;\n return withoutKey;\n });\n };\n\n return {\n markNonceAsUsed,\n clearNonce,\n };\n}\n\ntype GetNonceInput = {\n token: Address;\n owner: Address;\n chainId: SupportedChainId;\n};\n\ntype TokenNonceKey = `${number}:${Address}:${Address}`;\n\nfunction getNonceKey({ token, owner, chainId }: GetNonceInput): TokenNonceKey {\n return `${chainId}:${token.toLowerCase() as Address}:${owner.toLowerCase() as Address}` as const;\n}\n\nexport type NonceMethod = (typeof ERC_20_NONCES_ABI)[number][\"name\"];\n\ntype PermitNonceResult = {\n nonceMethod: NonceMethod;\n nonceToUse: bigint;\n};\n\nexport type UsePermit1NonceResult = {\n // null when no nonce support detected\n nonceToUse?: PermitNonceResult[\"nonceToUse\"] | null;\n nonceMethod?: PermitNonceResult[\"nonceMethod\"] | null;\n isLoading: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n refetch: (\n options?: RefetchOptions\n ) => Promise<QueryObserverResult<PermitNonceResult | null, Error>>;\n};\n\nexport function usePermit1Nonce({\n token,\n owner,\n chainId,\n enabled = true,\n}: UsePermitNonceParams): UsePermit1NonceResult {\n const key =\n token && owner && chainId ? getNonceKey({ token, owner, chainId }) : null;\n\n const noncesMap = useAtomValue(NoncesAtom);\n const tokenNotETH = token && !isETHaddress(token);\n\n // explicitly memoize select\n const { contractCalls, select } = useMemo(() => {\n const select = (\n data: ReadContractsData<typeof contractCalls, true>\n ): PermitNonceResult | null => {\n const successIndex = data.findIndex((d) => d.status === \"success\");\n // no method successfully returned anything\n if (successIndex === -1) return null;\n const method = contractCalls[successIndex]?.functionName;\n const result = data[successIndex]?.result;\n\n // the vars will always be non-null at this point\n if (!method || result === undefined) return null;\n\n const lastUnusedNonce = key ? (noncesMap[key] ?? 0n) : 0n;\n const nonce = result > lastUnusedNonce ? result : lastUnusedNonce;\n\n return {\n nonceMethod: method,\n nonceToUse: nonce,\n };\n };\n\n const ZERO_ADDRESS = \"0x0000000000000000000000000000000000000000\";\n // for the case where the token or owner is not set, to match the types,\n // readContracts isn't run anyway because of enabled=false\n const tokenAddress = (token?.toLowerCase() as Address) ?? ZERO_ADDRESS;\n const ownerAddress = (owner?.toLowerCase() as Address) ?? ZERO_ADDRESS;\n\n const contractCalls = [\n {\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: \"nonces\",\n args: [ownerAddress],\n },\n {\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: \"_nonces\",\n args: [ownerAddress],\n },\n {\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: \"nonce\",\n args: [ownerAddress],\n },\n {\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: \"getNonce\",\n args: [ownerAddress],\n },\n ] as const;\n\n return {\n contractCalls,\n select,\n };\n }, [noncesMap, key, owner, token]);\n\n const {\n data: nonceResult,\n isLoading,\n isError,\n isSuccess,\n error,\n refetch,\n } = useReadContracts({\n allowFailure: true,\n contracts: contractCalls,\n query: {\n enabled: enabled && tokenNotETH && !!(token && owner && chainId),\n select,\n },\n });\n\n return {\n nonceToUse: nonceResult === null ? null : nonceResult?.nonceToUse,\n nonceMethod: nonceResult === null ? null : nonceResult?.nonceMethod,\n isLoading,\n isError,\n isSuccess,\n error,\n refetch,\n };\n}\n"],"names":["NoncesAtom","atom","useMarkNonceAsUsed","setNonces","useSetAtom","markNonceAsUsed","token","owner","usedNonce","prev","key","getNonceKey","address","chainId","network","prevNonce","clearNonce","undefined","_","withoutKey","toLowerCase","usePermit1Nonce","enabled","noncesMap","useAtomValue","tokenNotETH","isETHaddress","contractCalls","select","useMemo","data","successIndex","findIndex","d","status","method","functionName","result","lastUnusedNonce","nonce","nonceMethod","nonceToUse","ZERO_ADDRESS","tokenAddress","ownerAddress","abi","ERC_20_NONCES_ABI","args","nonceResult","isLoading","isError","isSuccess","error","refetch","useReadContracts","allowFailure","contracts","query"],"mappings":"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"}
|
|
@@ -65,17 +65,17 @@ export declare function useDeltaPriceQueryKey({ priceParams, chainId, destChainI
|
|
|
65
65
|
}): {
|
|
66
66
|
queryKey: DeltaPriceQueryKey;
|
|
67
67
|
sanitizedPriceParams: {
|
|
68
|
-
side?: ("BUY" | "SELL") | undefined;
|
|
69
68
|
amount: string;
|
|
69
|
+
partner?: string | undefined;
|
|
70
|
+
excludeAgents?: string[] | undefined;
|
|
71
|
+
includeAgents?: string[] | undefined;
|
|
72
|
+
userAddress?: string | undefined;
|
|
73
|
+
beneficiary?: string | undefined;
|
|
70
74
|
srcToken: string;
|
|
71
75
|
destToken?: string | undefined;
|
|
72
|
-
partner?: string | undefined;
|
|
73
76
|
srcDecimals: number;
|
|
74
77
|
destDecimals?: number | undefined;
|
|
75
|
-
|
|
76
|
-
beneficiary?: string | undefined;
|
|
77
|
-
includeAgents?: string[] | undefined;
|
|
78
|
-
excludeAgents?: string[] | undefined;
|
|
78
|
+
side?: ("SELL" | "BUY") | undefined;
|
|
79
79
|
} & {
|
|
80
80
|
destChainId?: number;
|
|
81
81
|
};
|
|
@@ -42,7 +42,7 @@ export declare function useMarketPriceQueryKey({ priceParams, chainId, }: Pick<M
|
|
|
42
42
|
sanitizedPriceParams: {
|
|
43
43
|
amount: string;
|
|
44
44
|
userAddress: string | undefined;
|
|
45
|
-
side: "
|
|
45
|
+
side: "SELL" | "BUY" | undefined;
|
|
46
46
|
srcDecimals: number | undefined;
|
|
47
47
|
destDecimals: number | undefined;
|
|
48
48
|
srcToken: string;
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { d as distExports } from '../../../_virtual/index.js';
|
|
2
|
+
import '../../useSDK.js';
|
|
3
|
+
import '@tanstack/react-pacer/debouncer';
|
|
4
|
+
import '@tanstack/react-query';
|
|
5
|
+
import 'react';
|
|
6
|
+
import 'ts-essentials';
|
|
2
7
|
import { payInputAmountWeiAtom, receiveInputAmountWeiAtom } from '../../../core/inputs/state/inputAmountAtom.js';
|
|
3
|
-
import { useAtomValue } from '
|
|
8
|
+
import { useAtomValue } from '../../../core/store.js';
|
|
4
9
|
import { useAccount } from 'wagmi';
|
|
5
10
|
import { useSwapSide } from '../../../components/widget/SwapModeSwitcher/state/swapSideAtom.js';
|
|
6
11
|
import { useIsCrossChain } from '../../../core/state/isCrosschainAtom.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePricesParams.js","sources":["../../../../src/hooks/swap/prices/usePricesParams.ts"],"sourcesContent":["import { type RateParamsInput } from \"./market/queries/useMarketPriceQuery\";\nimport {\n payInputAmountWeiAtom,\n receiveInputAmountWeiAtom,\n} from \"@/core/inputs/state/inputAmountAtom\";\n\nimport { useAtomValue } from \"
|
|
1
|
+
{"version":3,"file":"usePricesParams.js","sources":["../../../../src/hooks/swap/prices/usePricesParams.ts"],"sourcesContent":["import { type RateParamsInput } from \"./market/queries/useMarketPriceQuery\";\nimport {\n payInputAmountWeiAtom,\n receiveInputAmountWeiAtom,\n} from \"@/core/inputs/state/inputAmountAtom\";\n\nimport { useAtomValue } from \"@/core/store\";\nimport { useAccount } from \"wagmi\";\nimport type { MarkOptional, MarkRequired } from \"ts-essentials\";\nimport { useSwapSide } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useIsCrossChain } from \"@/core/state/isCrosschainAtom\";\nimport { useTokenTaxFee } from \"@/hooks/tokens/useTokenTaxFee\";\nimport { usePartner } from \"@/hooks/usePartner\";\nimport type { TradeMode } from \"@/core/state/tradeModeAtom\";\nimport { tradeModeToTokenAtoms } from \"@/core/inputs/state/common\";\nimport { useWidgetConfig } from \"@/core/state/configAtom\";\n\nexport type FetchPriceParams = MarkRequired<\n MarkOptional<\n Pick<\n RateParamsInput,\n | \"srcToken\"\n | \"destToken\"\n | \"amount\"\n | \"userAddress\"\n | \"side\"\n | \"srcDecimals\"\n | \"destDecimals\"\n | \"partner\"\n | \"ignoreBadUsdPrice\"\n | \"srcTokenDexTransferFee\"\n | \"destTokenDexTransferFee\"\n | \"otherExchangePrices\"\n >,\n \"destToken\"\n >,\n \"srcDecimals\" | \"side\"\n>;\n// @TODO add other params from options:\n// exclude* for Safe if still needed, or if we want to allow exluding DEXs like in UI\n\nexport function usePricesParams(tradeMode: TradeMode): {\n priceParams: FetchPriceParams;\n isCrossChain: boolean;\n chainId: SupportedChainId;\n destChainId?: SupportedChainId;\n} {\n const { tokenFromAtom, tokenToAtom } = tradeModeToTokenAtoms[tradeMode];\n const fromToken = useAtomValue(tokenFromAtom);\n const toToken = useAtomValue(tokenToAtom);\n\n const payAmountWei = useAtomValue(payInputAmountWeiAtom);\n const receiveAmountWei = useAtomValue(receiveInputAmountWeiAtom) ?? \"0\";\n\n const { data: fromTokenTaxFee } = useTokenTaxFee({\n tokenAddress: fromToken.address,\n chainId: fromToken.network,\n });\n\n const { data: toTokenTaxFee } = useTokenTaxFee({\n tokenAddress: toToken?.address,\n chainId: toToken?.network,\n });\n\n const srcTokenDexTransferFee = fromTokenTaxFee?.sellTax?.toString();\n const destTokenDexTransferFee = toTokenTaxFee?.buyTax?.toString();\n\n const { address } = useAccount();\n\n const widgetConfig = useWidgetConfig();\n const partner = usePartner();\n\n const isCrossChain = useIsCrossChain();\n\n const side = useSwapSide();\n const amount = side === \"SELL\" ? payAmountWei : receiveAmountWei;\n\n const priceParams: FetchPriceParams = {\n srcToken: fromToken.address,\n destToken: toToken?.address,\n srcDecimals: fromToken.decimals,\n destDecimals: toToken?.decimals,\n side,\n amount,\n userAddress: address,\n partner,\n ignoreBadUsdPrice: widgetConfig.ignoreBadUsdPrice ?? true,\n srcTokenDexTransferFee,\n destTokenDexTransferFee,\n otherExchangePrices: true,\n };\n\n return {\n priceParams,\n isCrossChain,\n chainId: fromToken.network,\n destChainId: isCrossChain ? toToken?.network : undefined,\n };\n}\n"],"names":["usePricesParams","tradeMode","$","_c","tokenFromAtom","tokenToAtom","tradeModeToTokenAtoms","fromToken","useAtomValue","toToken","payAmountWei","payInputAmountWeiAtom","receiveAmountWei","receiveInputAmountWeiAtom","t0","address","network","tokenAddress","chainId","data","fromTokenTaxFee","useTokenTaxFee","t1","t2","t3","toTokenTaxFee","t4","sellTax","toString","srcTokenDexTransferFee","t5","buyTax","destTokenDexTransferFee","useAccount","widgetConfig","useWidgetConfig","partner","usePartner","isCrossChain","useIsCrossChain","side","useSwapSide","amount","t6","t7","decimals","t8","ignoreBadUsdPrice","t9","srcToken","destToken","srcDecimals","destDecimals","userAddress","otherExchangePrices","priceParams","t10","undefined","t11","destChainId"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { useMarketPriceQuery } from './market/queries/useMarketPriceQuery.js';
|
|
|
3
3
|
import { usePricesParams } from './usePricesParams.js';
|
|
4
4
|
import { useDeltaPriceQuery } from './delta/queries/useDeltaPriceQuery.js';
|
|
5
5
|
import { swapModeAtom } from '../../../components/widget/SwapModeSwitcher/state/swapModeAtom.js';
|
|
6
|
-
import { useAtomValue } from '
|
|
6
|
+
import { useAtomValue } from '../../../core/store.js';
|
|
7
7
|
import { useGlobalDeltaEnabled } from '../../useGlobalDeltaEnabled.js';
|
|
8
8
|
import { isETH, isWETH } from '../../../tokens/utils/eth.js';
|
|
9
9
|
import { wrappedNativeCurrency } from '../../../lib/constants/weth.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSwapPrices.js","sources":["../../../../src/hooks/swap/prices/useSwapPrices.ts"],"sourcesContent":["import {\n useMarketPriceQuery,\n type MarketPriceQueryKey,\n} from \"./market/queries/useMarketPriceQuery\";\nimport { usePricesParams } from \"./usePricesParams\";\nimport {\n useDeltaPriceQuery,\n type DeltaPriceQueryKey,\n} from \"./delta/queries/useDeltaPriceQuery\";\nimport { swapModeAtom } from \"@/components/widget/SwapModeSwitcher/state/swapModeAtom\";\nimport { type SwapMode } from \"@/components/widget/SwapModeSwitcher/state/types\";\nimport { useAtomValue } from \"jotai\";\nimport type { BridgePrice, DeltaPrice, OptimalRate } from \"@velora-dex/sdk\";\nimport type { UseSwapPricesInput } from \"./types\";\nimport { useGlobalDeltaEnabled } from \"@/hooks/useGlobalDeltaEnabled\";\nimport { isETH, isWETH } from \"@/tokens/utils/eth\";\nimport { wrappedNativeCurrency } from \"@/lib/constants/weth\";\nimport { useIsTokenSupportedInDeltaQuery } from \"./delta/queries/useIsTokenSupportedInDelta\";\nimport { useCachedQueryError } from \"@/hooks/useCachedQueryError\";\n\nconst PRICE_REFETCH_INTERVAL = 5000; // 5 seconds\n\ntype UseSwapPricesReturn = {\n priceMode: SwapMode;\n userSelectedPriceMode: SwapMode;\n market: {\n price?: OptimalRate;\n /** @description whether the market price can be used for the current price params */\n canBeUsed: boolean;\n isLoading: boolean;\n isFetching: boolean;\n isError: boolean;\n error: Error | null;\n queryKey: MarketPriceQueryKey;\n };\n delta: {\n price?: DeltaPrice | BridgePrice;\n /** @description whether the delta price can be used for the current price params && widget config */\n canBeUsed: boolean;\n isLoading: boolean;\n isFetching: boolean;\n isError: boolean;\n error: Error | null;\n queryKey: DeltaPriceQueryKey;\n };\n};\n\nexport function useSwapPrices(\n params: UseSwapPricesInput = {}\n): UseSwapPricesReturn {\n const { priceParams, isCrossChain, chainId, destChainId } =\n usePricesParams(\"swap\");\n\n // selected by the user if both options are available, otherwise always \"market\"\n const swapMode = useAtomValue(swapModeAtom);\n\n const {\n enabledInConfig: deltaEnabledInConfig,\n enabledInSettings: deltaEnabledInSettings,\n enabledOnCurrentChain: deltaEnabledOnCurrentChain,\n } = useGlobalDeltaEnabled();\n\n const fetchAnyPrice = priceParams.amount !== \"0\" && !!priceParams.destToken;\n\n const isEthToWethSameChain =\n !isCrossChain &&\n !!priceParams.destToken &&\n isETH({ address: priceParams.srcToken }) &&\n isWETH({ address: priceParams.destToken }, chainId);\n const isWethToEthSameChain =\n !isCrossChain &&\n !!priceParams.destToken &&\n isWETH({ address: priceParams.srcToken }, chainId) &&\n isETH({ address: priceParams.destToken });\n\n const { data: isSrcTokenSupported } = useIsTokenSupportedInDeltaQuery({\n token: priceParams.srcToken,\n chainId,\n });\n const { data: isDestTokenSupported } = useIsTokenSupportedInDeltaQuery({\n token: priceParams.destToken,\n chainId: destChainId || chainId,\n });\n\n const deltaEnabled =\n // enabled in widget config\n deltaEnabledInConfig &&\n // enabled in user settings\n deltaEnabledInSettings &&\n // enabled on API for current chain\n deltaEnabledOnCurrentChain &&\n // ETH -> WETH same chain is market only\n !isEthToWethSameChain &&\n // WETH -> ETH same chain is market only\n !isWethToEthSameChain &&\n // user selected Delta\n swapMode === \"delta\" &&\n // tokens are supported in Delta\n isSrcTokenSupported !== false &&\n isDestTokenSupported !== false;\n // @TODO add BUY support for Delta when available\n\n // whether delta price can be used in principle for current price params,\n // irrespective of user settings\n const deltaCanBeUsed =\n fetchAnyPrice &&\n deltaEnabledInConfig &&\n deltaEnabledOnCurrentChain &&\n !isEthToWethSameChain &&\n !isWethToEthSameChain;\n\n // Delta /prices errors when srcToken=ETH;\n // we will pre-wrap ETH->WETH before Swap anyway;\n // be careful not to use deltaPrices.srcToken with the assumption that (tokenFrom=ETH) !== (deltaPrices.srcToken=WETH)\n const srcTokenForDelta = isETH({ address: priceParams.srcToken })\n ? wrappedNativeCurrency[chainId]\n : priceParams.srcToken;\n\n const { result: deltaPriceQuery, queryKey: deltaPriceQueryKey } =\n useDeltaPriceQuery({\n priceParams: {\n ...priceParams,\n srcToken: srcTokenForDelta,\n },\n chainId,\n destChainId,\n timeout: 5000,\n query: {\n enabled: deltaEnabled && fetchAnyPrice && (params.enabled ?? true),\n refetchInterval: PRICE_REFETCH_INTERVAL,\n // already refetched on short interval\n // prevents delay before deltaPriceQuery.error is set\n retry: false,\n },\n });\n\n const deltaErrorCached = useCachedQueryError(deltaPriceQuery);\n\n // no market for Crosschain swaps, otherwise always enabled as a fallback for Delta\n const marketEnabled = !isCrossChain;\n const marketCanBeUsed = marketEnabled && fetchAnyPrice;\n\n const marketIsFallback = deltaErrorCached && marketEnabled;\n\n // @TODO remove isBUY once BUY is supported for Delta\n const marketIsMainMode =\n (swapMode === \"market\" && marketEnabled) || !deltaEnabled;\n const priceMode = marketIsFallback || marketIsMainMode ? \"market\" : \"delta\";\n\n const marketRefetchInterval =\n // if only market mode or delta has an error\n !deltaEnabled || deltaErrorCached // using cached error here so we don't continuously switch between 2 intervals,\n ? // which caused market price query reschedule and no fetch ever happening\n // frequent updates for Market price\n PRICE_REFETCH_INTERVAL\n : // otherwise when Delta is working, less frequent updates for Market price\n 2 * PRICE_REFETCH_INTERVAL;\n\n const { result: marketPriceQuery, queryKey: marketPriceQueryKey } =\n useMarketPriceQuery({\n priceParams,\n chainId,\n timeout: 5000,\n query: {\n enabled: marketEnabled && fetchAnyPrice && (params.enabled ?? true),\n refetchInterval: marketRefetchInterval,\n retry: false,\n },\n });\n\n return {\n priceMode,\n userSelectedPriceMode: swapMode,\n market: {\n price: marketPriceQuery.data,\n isLoading: marketPriceQuery.isLoading,\n isFetching: marketPriceQuery.isFetching,\n isError: marketPriceQuery.isError,\n error: marketPriceQuery.error,\n canBeUsed: marketCanBeUsed,\n queryKey: marketPriceQueryKey,\n },\n delta: {\n price: deltaPriceQuery.data,\n isLoading: deltaPriceQuery.isLoading,\n isFetching: deltaPriceQuery.isFetching,\n isError: deltaPriceQuery.isError,\n error: deltaPriceQuery.error,\n canBeUsed: deltaCanBeUsed,\n queryKey: deltaPriceQueryKey,\n },\n };\n}\n\ntype UseCurrentSwapPriceReturn = {\n isLoading: boolean;\n isError: boolean;\n error: Error | null;\n} & (\n | {\n priceMode: \"market\";\n price?: OptimalRate;\n queryKey: MarketPriceQueryKey;\n }\n | {\n priceMode: \"delta\";\n price?: DeltaPrice | BridgePrice;\n queryKey: DeltaPriceQueryKey;\n }\n);\n\nexport function useCurrentSwapPrice(\n params: UseSwapPricesInput = { enabled: true }\n): UseCurrentSwapPriceReturn {\n const { market, delta, priceMode } = useSwapPrices(params);\n\n if (priceMode === \"market\") {\n return {\n priceMode,\n price: market.price,\n isLoading: market.isLoading,\n isError: market.isError,\n error: market.error,\n queryKey: market.queryKey,\n };\n }\n\n return {\n priceMode,\n price: delta.price,\n isLoading: delta.isLoading,\n isError: delta.isError,\n error: delta.error,\n queryKey: delta.queryKey,\n };\n}\n"],"names":["PRICE_REFETCH_INTERVAL","useSwapPrices","t0","$","_c","t1","undefined","params","priceParams","isCrossChain","chainId","destChainId","usePricesParams","swapMode","useAtomValue","swapModeAtom","enabledInConfig","deltaEnabledInConfig","enabledInSettings","deltaEnabledInSettings","enabledOnCurrentChain","deltaEnabledOnCurrentChain","useGlobalDeltaEnabled","fetchAnyPrice","amount","destToken","t2","srcToken","isETH","address","isWETH","isEthToWethSameChain","t3","isWethToEthSameChain","t4","token","data","isSrcTokenSupported","useIsTokenSupportedInDeltaQuery","t5","t6","isDestTokenSupported","deltaEnabled","deltaCanBeUsed","t7","wrappedNativeCurrency","srcTokenForDelta","t8","t9","enabled","t10","refetchInterval","retry","t11","timeout","query","result","deltaPriceQuery","queryKey","deltaPriceQueryKey","useDeltaPriceQuery","deltaErrorCached","useCachedQueryError","marketEnabled","marketCanBeUsed","marketIsFallback","marketIsMainMode","priceMode","marketRefetchInterval","t12","t13","t14","marketPriceQuery","marketPriceQueryKey","useMarketPriceQuery","t15","error","isError","isFetching","isLoading","price","canBeUsed","t16","t17","userSelectedPriceMode","market","delta","useCurrentSwapPrice"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useSwapPrices.js","sources":["../../../../src/hooks/swap/prices/useSwapPrices.ts"],"sourcesContent":["import {\n useMarketPriceQuery,\n type MarketPriceQueryKey,\n} from \"./market/queries/useMarketPriceQuery\";\nimport { usePricesParams } from \"./usePricesParams\";\nimport {\n useDeltaPriceQuery,\n type DeltaPriceQueryKey,\n} from \"./delta/queries/useDeltaPriceQuery\";\nimport { swapModeAtom } from \"@/components/widget/SwapModeSwitcher/state/swapModeAtom\";\nimport { type SwapMode } from \"@/components/widget/SwapModeSwitcher/state/types\";\nimport { useAtomValue } from \"@/core/store\";\nimport type { BridgePrice, DeltaPrice, OptimalRate } from \"@velora-dex/sdk\";\nimport type { UseSwapPricesInput } from \"./types\";\nimport { useGlobalDeltaEnabled } from \"@/hooks/useGlobalDeltaEnabled\";\nimport { isETH, isWETH } from \"@/tokens/utils/eth\";\nimport { wrappedNativeCurrency } from \"@/lib/constants/weth\";\nimport { useIsTokenSupportedInDeltaQuery } from \"./delta/queries/useIsTokenSupportedInDelta\";\nimport { useCachedQueryError } from \"@/hooks/useCachedQueryError\";\n\nconst PRICE_REFETCH_INTERVAL = 5000; // 5 seconds\n\ntype UseSwapPricesReturn = {\n priceMode: SwapMode;\n userSelectedPriceMode: SwapMode;\n market: {\n price?: OptimalRate;\n /** @description whether the market price can be used for the current price params */\n canBeUsed: boolean;\n isLoading: boolean;\n isFetching: boolean;\n isError: boolean;\n error: Error | null;\n queryKey: MarketPriceQueryKey;\n };\n delta: {\n price?: DeltaPrice | BridgePrice;\n /** @description whether the delta price can be used for the current price params && widget config */\n canBeUsed: boolean;\n isLoading: boolean;\n isFetching: boolean;\n isError: boolean;\n error: Error | null;\n queryKey: DeltaPriceQueryKey;\n };\n};\n\nexport function useSwapPrices(\n params: UseSwapPricesInput = {}\n): UseSwapPricesReturn {\n const { priceParams, isCrossChain, chainId, destChainId } =\n usePricesParams(\"swap\");\n\n // selected by the user if both options are available, otherwise always \"market\"\n const swapMode = useAtomValue(swapModeAtom);\n\n const {\n enabledInConfig: deltaEnabledInConfig,\n enabledInSettings: deltaEnabledInSettings,\n enabledOnCurrentChain: deltaEnabledOnCurrentChain,\n } = useGlobalDeltaEnabled();\n\n const fetchAnyPrice = priceParams.amount !== \"0\" && !!priceParams.destToken;\n\n const isEthToWethSameChain =\n !isCrossChain &&\n !!priceParams.destToken &&\n isETH({ address: priceParams.srcToken }) &&\n isWETH({ address: priceParams.destToken }, chainId);\n const isWethToEthSameChain =\n !isCrossChain &&\n !!priceParams.destToken &&\n isWETH({ address: priceParams.srcToken }, chainId) &&\n isETH({ address: priceParams.destToken });\n\n const { data: isSrcTokenSupported } = useIsTokenSupportedInDeltaQuery({\n token: priceParams.srcToken,\n chainId,\n });\n const { data: isDestTokenSupported } = useIsTokenSupportedInDeltaQuery({\n token: priceParams.destToken,\n chainId: destChainId || chainId,\n });\n\n const deltaEnabled =\n // enabled in widget config\n deltaEnabledInConfig &&\n // enabled in user settings\n deltaEnabledInSettings &&\n // enabled on API for current chain\n deltaEnabledOnCurrentChain &&\n // ETH -> WETH same chain is market only\n !isEthToWethSameChain &&\n // WETH -> ETH same chain is market only\n !isWethToEthSameChain &&\n // user selected Delta\n swapMode === \"delta\" &&\n // tokens are supported in Delta\n isSrcTokenSupported !== false &&\n isDestTokenSupported !== false;\n // @TODO add BUY support for Delta when available\n\n // whether delta price can be used in principle for current price params,\n // irrespective of user settings\n const deltaCanBeUsed =\n fetchAnyPrice &&\n deltaEnabledInConfig &&\n deltaEnabledOnCurrentChain &&\n !isEthToWethSameChain &&\n !isWethToEthSameChain;\n\n // Delta /prices errors when srcToken=ETH;\n // we will pre-wrap ETH->WETH before Swap anyway;\n // be careful not to use deltaPrices.srcToken with the assumption that (tokenFrom=ETH) !== (deltaPrices.srcToken=WETH)\n const srcTokenForDelta = isETH({ address: priceParams.srcToken })\n ? wrappedNativeCurrency[chainId]\n : priceParams.srcToken;\n\n const { result: deltaPriceQuery, queryKey: deltaPriceQueryKey } =\n useDeltaPriceQuery({\n priceParams: {\n ...priceParams,\n srcToken: srcTokenForDelta,\n },\n chainId,\n destChainId,\n timeout: 5000,\n query: {\n enabled: deltaEnabled && fetchAnyPrice && (params.enabled ?? true),\n refetchInterval: PRICE_REFETCH_INTERVAL,\n // already refetched on short interval\n // prevents delay before deltaPriceQuery.error is set\n retry: false,\n },\n });\n\n const deltaErrorCached = useCachedQueryError(deltaPriceQuery);\n\n // no market for Crosschain swaps, otherwise always enabled as a fallback for Delta\n const marketEnabled = !isCrossChain;\n const marketCanBeUsed = marketEnabled && fetchAnyPrice;\n\n const marketIsFallback = deltaErrorCached && marketEnabled;\n\n // @TODO remove isBUY once BUY is supported for Delta\n const marketIsMainMode =\n (swapMode === \"market\" && marketEnabled) || !deltaEnabled;\n const priceMode = marketIsFallback || marketIsMainMode ? \"market\" : \"delta\";\n\n const marketRefetchInterval =\n // if only market mode or delta has an error\n !deltaEnabled || deltaErrorCached // using cached error here so we don't continuously switch between 2 intervals,\n ? // which caused market price query reschedule and no fetch ever happening\n // frequent updates for Market price\n PRICE_REFETCH_INTERVAL\n : // otherwise when Delta is working, less frequent updates for Market price\n 2 * PRICE_REFETCH_INTERVAL;\n\n const { result: marketPriceQuery, queryKey: marketPriceQueryKey } =\n useMarketPriceQuery({\n priceParams,\n chainId,\n timeout: 5000,\n query: {\n enabled: marketEnabled && fetchAnyPrice && (params.enabled ?? true),\n refetchInterval: marketRefetchInterval,\n retry: false,\n },\n });\n\n return {\n priceMode,\n userSelectedPriceMode: swapMode,\n market: {\n price: marketPriceQuery.data,\n isLoading: marketPriceQuery.isLoading,\n isFetching: marketPriceQuery.isFetching,\n isError: marketPriceQuery.isError,\n error: marketPriceQuery.error,\n canBeUsed: marketCanBeUsed,\n queryKey: marketPriceQueryKey,\n },\n delta: {\n price: deltaPriceQuery.data,\n isLoading: deltaPriceQuery.isLoading,\n isFetching: deltaPriceQuery.isFetching,\n isError: deltaPriceQuery.isError,\n error: deltaPriceQuery.error,\n canBeUsed: deltaCanBeUsed,\n queryKey: deltaPriceQueryKey,\n },\n };\n}\n\ntype UseCurrentSwapPriceReturn = {\n isLoading: boolean;\n isError: boolean;\n error: Error | null;\n} & (\n | {\n priceMode: \"market\";\n price?: OptimalRate;\n queryKey: MarketPriceQueryKey;\n }\n | {\n priceMode: \"delta\";\n price?: DeltaPrice | BridgePrice;\n queryKey: DeltaPriceQueryKey;\n }\n);\n\nexport function useCurrentSwapPrice(\n params: UseSwapPricesInput = { enabled: true }\n): UseCurrentSwapPriceReturn {\n const { market, delta, priceMode } = useSwapPrices(params);\n\n if (priceMode === \"market\") {\n return {\n priceMode,\n price: market.price,\n isLoading: market.isLoading,\n isError: market.isError,\n error: market.error,\n queryKey: market.queryKey,\n };\n }\n\n return {\n priceMode,\n price: delta.price,\n isLoading: delta.isLoading,\n isError: delta.isError,\n error: delta.error,\n queryKey: delta.queryKey,\n };\n}\n"],"names":["PRICE_REFETCH_INTERVAL","useSwapPrices","t0","$","_c","t1","undefined","params","priceParams","isCrossChain","chainId","destChainId","usePricesParams","swapMode","useAtomValue","swapModeAtom","enabledInConfig","deltaEnabledInConfig","enabledInSettings","deltaEnabledInSettings","enabledOnCurrentChain","deltaEnabledOnCurrentChain","useGlobalDeltaEnabled","fetchAnyPrice","amount","destToken","t2","srcToken","isETH","address","isWETH","isEthToWethSameChain","t3","isWethToEthSameChain","t4","token","data","isSrcTokenSupported","useIsTokenSupportedInDeltaQuery","t5","t6","isDestTokenSupported","deltaEnabled","deltaCanBeUsed","t7","wrappedNativeCurrency","srcTokenForDelta","t8","t9","enabled","t10","refetchInterval","retry","t11","timeout","query","result","deltaPriceQuery","queryKey","deltaPriceQueryKey","useDeltaPriceQuery","deltaErrorCached","useCachedQueryError","marketEnabled","marketCanBeUsed","marketIsFallback","marketIsMainMode","priceMode","marketRefetchInterval","t12","t13","t14","marketPriceQuery","marketPriceQueryKey","useMarketPriceQuery","t15","error","isError","isFetching","isLoading","price","canBeUsed","t16","t17","userSelectedPriceMode","market","delta","useCurrentSwapPrice"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { d as distExports } from '../../../_virtual/index.js';
|
|
2
2
|
import { useAccount } from 'wagmi';
|
|
3
3
|
import { useTokenBalance } from './useTokenBalance.js';
|
|
4
|
-
import { useAtomValue } from '
|
|
4
|
+
import { useAtomValue } from '../../../core/store.js';
|
|
5
5
|
import { amountAfterSlippage } from '../../../lib/utils/slippage.js';
|
|
6
6
|
import { useSwapSide } from '../../../components/widget/SwapModeSwitcher/state/swapSideAtom.js';
|
|
7
7
|
import { useSlippage } from '../../useSlippage.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useIsInsufficientTokenBalance.js","sources":["../../../../src/hooks/tokens/balances/useIsInsufficientTokenBalance.ts"],"sourcesContent":["import { useAccount } from \"wagmi\";\nimport { useTokenBalance } from \"./useTokenBalance\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { useAtomValue } from \"
|
|
1
|
+
{"version":3,"file":"useIsInsufficientTokenBalance.js","sources":["../../../../src/hooks/tokens/balances/useIsInsufficientTokenBalance.ts"],"sourcesContent":["import { useAccount } from \"wagmi\";\nimport { useTokenBalance } from \"./useTokenBalance\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { useAtomValue } from \"@/core/store\";\nimport { amountAfterSlippage } from \"@/lib/utils/slippage\";\nimport { useSwapSide } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport { useSlippage } from \"@/hooks/useSlippage\";\nimport { type TradeMode } from \"@/core/state/tradeModeAtom\";\nimport { MEDIUM_STALE_TIME_FOR_REACTIVENESS } from \"@/lib/constants/time\";\nimport {\n tradeModeToPayAmountWeiAtom,\n tradeModeToTokenAtoms,\n} from \"@/core/inputs/state/common\";\n\nexport const useIsInsufficientTokenBalance = ({\n token,\n requiredBalanceWei,\n}: {\n token?: Token;\n requiredBalanceWei?: string;\n}) => {\n const { address: account } = useAccount();\n const { balance } = useTokenBalance({\n token,\n queryOptions: { refetchInterval: MEDIUM_STALE_TIME_FOR_REACTIVENESS },\n });\n\n if (\n requiredBalanceWei === undefined ||\n balance === undefined ||\n !token ||\n !account\n )\n return false;\n\n return balance === 0n || balance < BigInt(requiredBalanceWei);\n};\n\nexport const useIsTokenFromInsufficientBalance = (tradeMode: TradeMode) => {\n const tokenFromAtom = tradeModeToTokenAtoms[tradeMode].tokenFromAtom;\n const payAmountWeiAtom = tradeModeToPayAmountWeiAtom[tradeMode];\n\n const tokenFrom = useAtomValue(tokenFromAtom);\n const payAmountWei = useAtomValue(payAmountWeiAtom);\n\n const swapSide = useSwapSide();\n const { resolvedSlippage } = useSlippage(tradeMode);\n\n const requiredBalanceAfterPossibleSlippage =\n swapSide === \"BUY\"\n ? // payAmount + slippage for BUY\n amountAfterSlippage(payAmountWei, resolvedSlippage, swapSide).toFixed(0)\n : // raw payAmount for SELL\n payAmountWei;\n\n return useIsInsufficientTokenBalance({\n token: tokenFrom,\n requiredBalanceWei: requiredBalanceAfterPossibleSlippage,\n });\n};\n"],"names":["useIsInsufficientTokenBalance","token","requiredBalanceWei","address","account","useAccount","balance","useTokenBalance","queryOptions","refetchInterval","MEDIUM_STALE_TIME_FOR_REACTIVENESS","undefined","BigInt","useIsTokenFromInsufficientBalance","tradeMode","$","_c","tokenFromAtom","tradeModeToTokenAtoms","payAmountWeiAtom","tradeModeToPayAmountWeiAtom","tokenFrom","useAtomValue","payAmountWei","swapSide","useSwapSide","resolvedSlippage","useSlippage","t0","amountAfterSlippage","toFixed","requiredBalanceAfterPossibleSlippage","t1"],"mappings":";;;;;;;;;;AAcO,MAAMA,gCAAgCA,CAAC;AAAA,EAC5CC,KAAAA;AAAAA,EACAC;AAIF,CAAA,KAAM;AACJ,EAAA,MAAM;AAAA,IAAEC,OAAAA,EAASC;AAAAA,MAAYC,UAAAA,EAAW;AACxC,EAAA,MAAM;AAAA,IAAEC;AAAAA,MAAYC,eAAAA,CAAgB;AAAA,IAClCN,KAAAA;AAAAA,IACAO,YAAAA,EAAc;AAAA,MAAEC,eAAAA,EAAiBC;AAAAA;AAAmC,GACrE,CAAA;AAED,EAAA,IACER,kBAAAA,KAAuBS,UACvBL,OAAAA,KAAYK,MAAAA,IACZ,CAACV,KAAAA,IACD,CAACG,SAED,OAAO,KAAA;AAET,EAAA,OAAOE,OAAAA,KAAY,EAAA,IAAMA,OAAAA,GAAUM,MAAAA,CAAOV,kBAAkB,CAAA;AAC9D;AAEO,MAAMW,oCAAoCC,CAAAA,SAAAA,KAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAC/C,EAAA,MAAAC,aAAAA,GAAsBC,qBAAAA,CAAsBJ,SAAS,CAAA,CAACG,aAAAA;AACtD,EAAA,MAAAE,gBAAAA,GAAyBC,4BAA4BN,SAAS,CAAA;AAE9D,EAAA,MAAAO,SAAAA,GAAkBC,aAAaL,aAAa,CAAA;AAC5C,EAAA,MAAAM,YAAAA,GAAqBD,aAAaH,gBAAgB,CAAA;AAElD,EAAA,MAAAK,WAAiBC,WAAAA,EAAY;AAC7B,EAAA,MAAA;AAAA,IAAAC;AAAAA,GAAA,GAA6BC,YAAYb,SAAS,CAAA;AAAE,EAAA,IAAAc,EAAAA;AAAA,EAAA,IAAAb,CAAAA,CAAA,CAAA,CAAA,KAAAQ,YAAAA,IAAAR,CAAAA,QAAAW,gBAAAA,IAAAX,CAAAA,CAAA,CAAA,CAAA,KAAAS,QAAAA,EAAA;AAGlDI,IAAAA,EAAAA,GAAAJ,QAAAA,KAAa,QAETK,mBAAAA,CAAoBN,YAAAA,EAAcG,kBAAkBF,QAAQ,CAAA,CAACM,OAAAA,CAAS,CAE3D,CAAA,GAJfP,YAAAA;AAIgBR,IAAAA,CAAAA,MAAAQ,YAAAA;AAAAR,IAAAA,CAAAA,MAAAW,gBAAAA;AAAAX,IAAAA,CAAAA,MAAAS,QAAAA;AAAAT,IAAAA,CAAAA,MAAAa,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAb,EAAA,CAAA,CAAA;AAAA,EAAA;AALlB,EAAA,MAAAgB,oCAAAA,GACEH,EAAAA;AAIiB,EAAA,IAAAI,EAAAA;AAAA,EAAA,IAAAjB,EAAA,CAAA,CAAA,KAAAgB,wCAAAhB,CAAAA,QAAAM,SAAAA,EAAA;AAEkBW,IAAAA,EAAAA,GAAA;AAAA,MAAA/B,KAAAA,EAC5BoB,SAAAA;AAAAA,MAASnB,kBAAAA,EACI6B;AAAAA,KACtB;AAAChB,IAAAA,CAAAA,MAAAgB,oCAAAA;AAAAhB,IAAAA,CAAAA,MAAAM,SAAAA;AAAAN,IAAAA,CAAAA,MAAAiB,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAjB,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAHMf,8BAA8BgC,EAGpC,CAAA;AAAC;;;;"}
|