@velora-dex/widget 0.3.1 → 0.3.2-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/assets/bridges/canonical-uni.svg.js +12 -0
- package/dist/assets/bridges/canonical-uni.svg.js.map +1 -0
- package/dist/assets/bridges/cctp.svg.js +12 -0
- package/dist/assets/bridges/cctp.svg.js.map +1 -0
- package/dist/assets/bridges/celer.svg.js +16 -0
- package/dist/assets/bridges/celer.svg.js.map +1 -0
- package/dist/assets/bridges/relay.svg.js +12 -0
- package/dist/assets/bridges/relay.svg.js.map +1 -0
- package/dist/assets/refresh.svg.js +12 -0
- package/dist/assets/refresh.svg.js.map +1 -0
- package/dist/assets/speedometer.svg.js +12 -0
- package/dist/assets/speedometer.svg.js.map +1 -0
- package/dist/components/ui/accordion.d.ts +3 -2
- package/dist/components/ui/accordion.d.ts.map +1 -1
- package/dist/components/ui/accordion.js +64 -40
- package/dist/components/ui/accordion.js.map +1 -1
- package/dist/components/ui/skeleton.d.ts.map +1 -1
- package/dist/components/ui/skeleton.js.map +1 -1
- package/dist/components/widget/AppHeader/Activities/hooks.js.map +1 -1
- package/dist/components/widget/AppHeader/AppHeader.d.ts.map +1 -1
- package/dist/components/widget/AppHeader/AppHeader.js +52 -70
- package/dist/components/widget/AppHeader/AppHeader.js.map +1 -1
- package/dist/components/widget/AppHeader/TradeModeSwitcher.d.ts.map +1 -1
- package/dist/components/widget/AppHeader/TradeModeSwitcher.js.map +1 -1
- package/dist/components/widget/BridgeList/BridgeListItem.d.ts +7 -0
- package/dist/components/widget/BridgeList/BridgeListItem.d.ts.map +1 -0
- package/dist/components/widget/BridgeList/BridgeListItem.js +475 -0
- package/dist/components/widget/BridgeList/BridgeListItem.js.map +1 -0
- package/dist/components/widget/BridgeList/BridgeProtocolsList.d.ts +9 -0
- package/dist/components/widget/BridgeList/BridgeProtocolsList.d.ts.map +1 -0
- package/dist/components/widget/BridgeList/BridgeProtocolsList.js +219 -0
- package/dist/components/widget/BridgeList/BridgeProtocolsList.js.map +1 -0
- package/dist/components/widget/BridgeList/BridgesList.d.ts +12 -0
- package/dist/components/widget/BridgeList/BridgesList.d.ts.map +1 -0
- package/dist/components/widget/BridgeList/BridgesList.js +76 -0
- package/dist/components/widget/BridgeList/BridgesList.js.map +1 -0
- package/dist/components/widget/BridgeList/hooks.d.ts +17 -0
- package/dist/components/widget/BridgeList/hooks.d.ts.map +1 -0
- package/dist/components/widget/BridgeList/hooks.js +254 -0
- package/dist/components/widget/BridgeList/hooks.js.map +1 -0
- package/dist/components/widget/BridgeList/types.d.ts +19 -0
- package/dist/components/widget/BridgeList/types.d.ts.map +1 -0
- package/dist/components/widget/BridgePreferences/BridgePreferences.d.ts +3 -0
- package/dist/components/widget/BridgePreferences/BridgePreferences.d.ts.map +1 -0
- package/dist/components/widget/BridgePreferences/BridgePreferences.js +136 -0
- package/dist/components/widget/BridgePreferences/BridgePreferences.js.map +1 -0
- package/dist/components/widget/BridgePreferences/types.d.ts +11 -0
- package/dist/components/widget/BridgePreferences/types.d.ts.map +1 -0
- package/dist/components/widget/BridgeSelectorExpandable/BridgeSelectorExpandable.d.ts +8 -0
- package/dist/components/widget/BridgeSelectorExpandable/BridgeSelectorExpandable.d.ts.map +1 -0
- package/dist/components/widget/BridgeSelectorExpandable/BridgeSelectorExpandable.js +137 -0
- package/dist/components/widget/BridgeSelectorExpandable/BridgeSelectorExpandable.js.map +1 -0
- package/dist/components/widget/CompareQuotes/CompareQuotes.d.ts +2 -0
- package/dist/components/widget/CompareQuotes/CompareQuotes.d.ts.map +1 -0
- package/dist/components/widget/CompareQuotes/CompareQuotes.js +208 -0
- package/dist/components/widget/CompareQuotes/CompareQuotes.js.map +1 -0
- package/dist/components/widget/Details/DetailWithValueListExpandable.d.ts.map +1 -1
- package/dist/components/widget/Details/DetailWithValueListExpandable.js.map +1 -1
- package/dist/components/widget/Duration/Duration.d.ts +6 -0
- package/dist/components/widget/Duration/Duration.d.ts.map +1 -0
- package/dist/components/widget/Duration/Duration.js +85 -0
- package/dist/components/widget/Duration/Duration.js.map +1 -0
- package/dist/components/widget/FetchingQuotes/FetchingQuotes.d.ts +2 -0
- package/dist/components/widget/FetchingQuotes/FetchingQuotes.d.ts.map +1 -0
- package/dist/components/widget/FetchingQuotes/FetchingQuotes.js +42 -0
- package/dist/components/widget/FetchingQuotes/FetchingQuotes.js.map +1 -0
- package/dist/components/widget/LimitOrderItem/LimitOrderListItem.d.ts +1 -1
- package/dist/components/widget/LimitOrderItem/LimitOrderListItem.d.ts.map +1 -1
- package/dist/components/widget/LimitOrderItem/LimitOrderListItem.js +10 -64
- package/dist/components/widget/LimitOrderItem/LimitOrderListItem.js.map +1 -1
- package/dist/components/widget/OrderExpiryInput/index.js.map +1 -1
- package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/utils.js.map +1 -1
- package/dist/components/widget/Screen/GenericScreen.js.map +1 -1
- package/dist/components/widget/SettingsButton/SettingsButton.d.ts +5 -0
- package/dist/components/widget/SettingsButton/SettingsButton.d.ts.map +1 -0
- package/dist/components/widget/SettingsButton/SettingsButton.js +61 -0
- package/dist/components/widget/SettingsButton/SettingsButton.js.map +1 -0
- package/dist/components/widget/TokenBadge/TokenBadge.d.ts.map +1 -1
- package/dist/components/widget/TokenBadge/TokenBadge.js +114 -65
- package/dist/components/widget/TokenBadge/TokenBadge.js.map +1 -1
- package/dist/components/widget/TokenBadge/types.d.ts +1 -0
- package/dist/components/widget/TokenBadge/types.d.ts.map +1 -1
- package/dist/components/widget/TokenInput/index.d.ts.map +1 -1
- package/dist/components/widget/TokenInput/index.js +34 -18
- package/dist/components/widget/TokenInput/index.js.map +1 -1
- package/dist/components/widget/TokenInput/types.d.ts +1 -0
- package/dist/components/widget/TokenInput/types.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/utils/useSwapAmountsWithSlippage.d.ts +1 -1
- package/dist/components/widget/TradeOverview/utils/useSwapAmountsWithSlippage.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/utils/useSwapAmountsWithSlippage.js.map +1 -1
- package/dist/components/widget/TradeParameters/BridgePreferenceParameters/BridgePreferenceParameters.d.ts +21 -0
- package/dist/components/widget/TradeParameters/BridgePreferenceParameters/BridgePreferenceParameters.d.ts.map +1 -0
- package/dist/components/widget/TradeParameters/BridgePreferenceParameters/BridgePreferenceParameters.js +90 -0
- package/dist/components/widget/TradeParameters/BridgePreferenceParameters/BridgePreferenceParameters.js.map +1 -0
- package/dist/components/widget/TradeParameters/BridgePreferenceParameters/useDraftBridgePreferencesState.d.ts +12 -0
- package/dist/components/widget/TradeParameters/BridgePreferenceParameters/useDraftBridgePreferencesState.d.ts.map +1 -0
- package/dist/components/widget/TradeParameters/BridgePreferenceParameters/useDraftBridgePreferencesState.js +68 -0
- package/dist/components/widget/TradeParameters/BridgePreferenceParameters/useDraftBridgePreferencesState.js.map +1 -0
- package/dist/components/widget/TradeParameters/TradeParameters.d.ts +3 -2
- package/dist/components/widget/TradeParameters/TradeParameters.d.ts.map +1 -1
- package/dist/components/widget/TradeParameters/TradeParameters.js +64 -45
- package/dist/components/widget/TradeParameters/TradeParameters.js.map +1 -1
- package/dist/components/widget/TradeParameters/hooks/useIsNotDefaultAnyParameter.d.ts.map +1 -1
- package/dist/components/widget/TradeParameters/hooks/useIsNotDefaultAnyParameter.js +3 -1
- package/dist/components/widget/TradeParameters/hooks/useIsNotDefaultAnyParameter.js.map +1 -1
- package/dist/components/widget/TradeParameters/state/bridgePreferences/bridgePreferenceAtom.d.ts +9 -0
- package/dist/components/widget/TradeParameters/state/bridgePreferences/bridgePreferenceAtom.d.ts.map +1 -0
- package/dist/components/widget/TradeParameters/state/bridgePreferences/bridgePreferenceAtom.js +14 -0
- package/dist/components/widget/TradeParameters/state/bridgePreferences/bridgePreferenceAtom.js.map +1 -0
- package/dist/components/widget/TradeParameters/state/bridgePreferences/constants.d.ts +4 -0
- package/dist/components/widget/TradeParameters/state/bridgePreferences/constants.d.ts.map +1 -0
- package/dist/components/widget/TradeParameters/state/bridgePreferences/constants.js +7 -0
- package/dist/components/widget/TradeParameters/state/bridgePreferences/constants.js.map +1 -0
- package/dist/components/widget/TradeParameters/state/bridgePreferences/disabledBridgesAtom.d.ts +8 -0
- package/dist/components/widget/TradeParameters/state/bridgePreferences/disabledBridgesAtom.d.ts.map +1 -0
- package/dist/components/widget/TradeParameters/state/bridgePreferences/disabledBridgesAtom.js +15 -0
- package/dist/components/widget/TradeParameters/state/bridgePreferences/disabledBridgesAtom.js.map +1 -0
- package/dist/components/widget/TradeParameters/state/bridgePreferences/excludeBridgesAtom.d.ts +2 -0
- package/dist/components/widget/TradeParameters/state/bridgePreferences/excludeBridgesAtom.d.ts.map +1 -0
- package/dist/components/widget/TradeParameters/state/bridgePreferences/excludeBridgesAtom.js +11 -0
- package/dist/components/widget/TradeParameters/state/bridgePreferences/excludeBridgesAtom.js.map +1 -0
- package/dist/components/widget/TradeParameters/state/bridgePreferences/protocolSelectorAtom.d.ts +4 -0
- package/dist/components/widget/TradeParameters/state/bridgePreferences/protocolSelectorAtom.d.ts.map +1 -0
- package/dist/components/widget/TradeParameters/state/bridgePreferences/protocolSelectorAtom.js +6 -0
- package/dist/components/widget/TradeParameters/state/bridgePreferences/protocolSelectorAtom.js.map +1 -0
- package/dist/components/widget/TradeParameters/state/bridgePreferences/types.d.ts +3 -0
- package/dist/components/widget/TradeParameters/state/bridgePreferences/types.d.ts.map +1 -0
- package/dist/components/widget/TradeParameters/state/bridgePreferences/useBridgePreferences.d.ts +14 -0
- package/dist/components/widget/TradeParameters/state/bridgePreferences/useBridgePreferences.d.ts.map +1 -0
- package/dist/components/widget/TradeParameters/state/bridgePreferences/useBridgePreferences.js +58 -0
- package/dist/components/widget/TradeParameters/state/bridgePreferences/useBridgePreferences.js.map +1 -0
- package/dist/components/widget/TradeParameters/useTempTradeParameters.d.ts +5 -0
- package/dist/components/widget/TradeParameters/useTempTradeParameters.d.ts.map +1 -1
- package/dist/components/widget/TradeParameters/useTempTradeParameters.js +150 -67
- package/dist/components/widget/TradeParameters/useTempTradeParameters.js.map +1 -1
- package/dist/core/Updaters.d.ts.map +1 -1
- package/dist/core/Updaters.js +2 -0
- package/dist/core/Updaters.js.map +1 -1
- package/dist/core/button/hooks/useWidgetButtonExtraProps.d.ts.map +1 -1
- package/dist/core/button/hooks/useWidgetButtonExtraProps.js.map +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +22 -14
- package/dist/core/index.js.map +1 -1
- package/dist/core/inputs/hooks/types.d.ts +1 -1
- package/dist/core/inputs/hooks/types.d.ts.map +1 -1
- package/dist/core/inputs/hooks/useTokenToInputProps.d.ts.map +1 -1
- package/dist/core/inputs/hooks/useTokenToInputProps.js +25 -12
- package/dist/core/inputs/hooks/useTokenToInputProps.js.map +1 -1
- package/dist/core/inputs/state/setTokenByAddressAtom.js.map +1 -1
- package/dist/core/limit/state/utils.js.map +1 -1
- package/dist/core/limit/useLimitRate.d.ts.map +1 -1
- package/dist/core/limit/useLimitRate.js.map +1 -1
- package/dist/core/screen/hooks/useOnClickOutside.js.map +1 -1
- package/dist/core/screen/screenByType.d.ts +2 -0
- package/dist/core/screen/screenByType.d.ts.map +1 -1
- package/dist/core/screen/screenByType.js +5 -1
- package/dist/core/screen/screenByType.js.map +1 -1
- package/dist/core/screen/state/hooks/useSetScreen.d.ts +3 -0
- package/dist/core/screen/state/hooks/useSetScreen.d.ts.map +1 -1
- package/dist/core/screen/state/hooks/useSetScreen.js +43 -11
- package/dist/core/screen/state/hooks/useSetScreen.js.map +1 -1
- package/dist/core/state/enabledTradeModesAtom.d.ts.map +1 -1
- package/dist/core/state/enabledTradeModesAtom.js.map +1 -1
- package/dist/core/swapDetails/priceImpact.d.ts.map +1 -1
- package/dist/core/swapDetails/priceImpact.js +7 -3
- package/dist/core/swapDetails/priceImpact.js.map +1 -1
- package/dist/events/getters/settings.d.ts.map +1 -1
- package/dist/events/getters/settings.js +7 -1
- package/dist/events/getters/settings.js.map +1 -1
- package/dist/events/types/common.d.ts +6 -1
- package/dist/events/types/common.d.ts.map +1 -1
- package/dist/events/types/settings.d.ts +2 -1
- package/dist/events/types/settings.d.ts.map +1 -1
- package/dist/hooks/gas/useGasPrices.d.ts.map +1 -1
- package/dist/hooks/gas/useGasPrices.js.map +1 -1
- package/dist/hooks/otc/mutations/useFillOrder.js +1 -14
- package/dist/hooks/otc/mutations/useFillOrder.js.map +1 -1
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js +0 -12
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js.map +1 -1
- package/dist/hooks/swap/prices/constants.d.ts +3 -0
- package/dist/hooks/swap/prices/constants.d.ts.map +1 -0
- package/dist/hooks/swap/prices/constants.js +5 -0
- package/dist/hooks/swap/prices/constants.js.map +1 -0
- package/dist/hooks/swap/prices/delta/bridge/useSelectedBridgePrice.d.ts +6 -0
- package/dist/hooks/swap/prices/delta/bridge/useSelectedBridgePrice.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/bridge/useSelectedBridgePrice.js +36 -0
- package/dist/hooks/swap/prices/delta/bridge/useSelectedBridgePrice.js.map +1 -0
- package/dist/hooks/swap/prices/delta/bridge/utils.d.ts +7 -0
- package/dist/hooks/swap/prices/delta/bridge/utils.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/bridge/utils.js +34 -1
- package/dist/hooks/swap/prices/delta/bridge/utils.js.map +1 -1
- package/dist/hooks/swap/prices/delta/orders/utils.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/bridgeProtocols/types.d.ts +13 -0
- package/dist/hooks/swap/prices/delta/queries/bridgeProtocols/types.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/queries/bridgeProtocols/useBridgeProtocols.d.ts +3 -0
- package/dist/hooks/swap/prices/delta/queries/bridgeProtocols/useBridgeProtocols.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/queries/bridgeProtocols/useBridgeProtocols.js +75 -0
- package/dist/hooks/swap/prices/delta/queries/bridgeProtocols/useBridgeProtocols.js.map +1 -0
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts +2 -2
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js +3 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/market/mutations/useBuildTx.d.ts.map +1 -1
- package/dist/hooks/swap/prices/market/mutations/useBuildTx.js.map +1 -1
- package/dist/hooks/swap/prices/types.d.ts +1 -0
- package/dist/hooks/swap/prices/types.d.ts.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.d.ts +5 -0
- package/dist/hooks/swap/prices/useSwapPrices.d.ts.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.js +119 -94
- package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +15 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js.map +1 -1
- package/dist/hooks/tokens/prices/queries.d.ts.map +1 -1
- package/dist/hooks/tokens/prices/queries.js.map +1 -1
- package/dist/hooks/useBridgeProtocols.d.ts +4 -0
- package/dist/hooks/useBridgeProtocols.d.ts.map +1 -0
- package/dist/hooks/useBridgeProtocols.js +52 -0
- package/dist/hooks/useBridgeProtocols.js.map +1 -0
- package/dist/hooks/useClickOutside.js.map +1 -1
- package/dist/lib/constants/weth.js.map +1 -1
- package/dist/lib/utils/priceImpact.d.ts +5 -2
- package/dist/lib/utils/priceImpact.d.ts.map +1 -1
- package/dist/lib/utils/priceImpact.js +8 -5
- package/dist/lib/utils/priceImpact.js.map +1 -1
- package/dist/lib/utils/tuple.d.ts +1 -0
- package/dist/lib/utils/tuple.d.ts.map +1 -1
- package/dist/lib/utils/tuple.js +5 -1
- package/dist/lib/utils/tuple.js.map +1 -1
- package/dist/lib/web3/privy/config.js +1 -1
- package/dist/lib/web3/wagmi/config.js +1 -1
- package/dist/styles.css +51 -1
- package/dist/tokens/queries.d.ts.map +1 -1
- package/dist/tokens/queries.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries.js","sources":["../../../../src/hooks/tokens/prices/queries.ts"],"sourcesContent":["import { queryClient } from \"@/lib/queryClient\";\nimport {\n LONG_STALE_TIME_FOR_REACTIVENESS,\n ONE_MINUTE_MS,\n} from \"@/lib/constants/time\";\n\nimport axios from \"axios\";\nimport { isAddress } from \"viem\";\n\nimport type { UseQueryOptions } from \"@tanstack/react-query\";\nimport type {\n FiatPriceFromApi,\n FiatPriceMap,\n TokenPricesQueryKey,\n} from \"./types\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { getApiURL } from \"@/lib/constants/urls\";\n\nconst keysToSkip: (keyof FiatPriceFromApi)[] = [\n \"source\",\n \"address\",\n \"updatedAt\",\n];\n\nfunction shouldTryOverride(key: string): boolean {\n return !keysToSkip.includes(key as keyof FiatPriceFromApi);\n}\n\nexport async function fetchTokenPricesWithFallback({\n chainId,\n fallbackToCachedPrices,\n signal,\n}: {\n chainId: SupportedChainId;\n fallbackToCachedPrices?: boolean;\n signal?: AbortSignal;\n}) {\n const {\n data: { prices },\n } = await axios.get<{ prices: FiatPriceMap }>(\n `${getApiURL()}/fiat/prices/${chainId}`,\n {
|
|
1
|
+
{"version":3,"file":"queries.js","sources":["../../../../src/hooks/tokens/prices/queries.ts"],"sourcesContent":["import { queryClient } from \"@/lib/queryClient\";\nimport {\n LONG_STALE_TIME_FOR_REACTIVENESS,\n ONE_MINUTE_MS,\n} from \"@/lib/constants/time\";\n\nimport axios from \"axios\";\nimport { isAddress } from \"viem\";\n\nimport type { UseQueryOptions } from \"@tanstack/react-query\";\nimport type {\n FiatPriceFromApi,\n FiatPriceMap,\n TokenPricesQueryKey,\n} from \"./types\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { getApiURL } from \"@/lib/constants/urls\";\n\nconst keysToSkip: (keyof FiatPriceFromApi)[] = [\n \"source\",\n \"address\",\n \"updatedAt\",\n];\n\nfunction shouldTryOverride(key: string): boolean {\n return !keysToSkip.includes(key as keyof FiatPriceFromApi);\n}\n\nexport async function fetchTokenPricesWithFallback({\n chainId,\n fallbackToCachedPrices,\n signal,\n}: {\n chainId: SupportedChainId;\n fallbackToCachedPrices?: boolean;\n signal?: AbortSignal;\n}) {\n const {\n data: { prices },\n } = await axios.get<{ prices: FiatPriceMap }>(\n `${getApiURL()}/fiat/prices/${chainId}`,\n {\n signal,\n }\n );\n\n if (!fallbackToCachedPrices) return prices;\n\n // fiat-fetcher gives the prices either from coingecko or chainlink,\n // and in case of chainlink there are some missing values in price object\n\n const lastPrices = queryClient.getQueryData<FiatPriceMap>(\n constructTokenPricesQueryKey(chainId)\n );\n\n if (!lastPrices) return prices;\n\n const combined = Object.entries(prices).reduce<FiatPriceMap>(\n (acc, [address, price]) => {\n // skip if address is not valid\n if (!isAddress(address)) return acc;\n\n const lastPrice = lastPrices[address];\n // no previous price, do nothing\n if (!lastPrice) return acc;\n\n // assume that coinGecko prices have more data\n // and we don't want to change them\n if (price.source === \"coinGecko\") return acc;\n\n // no need to override the price when from the same source\n if (price.source === lastPrice.source) return acc;\n\n // make sure we have all the keys\n // not just the ones that are in the new price object\n const mergedPrice = { ...lastPrice, ...price };\n\n let changed = false;\n\n for (const key of Object.keys(mergedPrice)) {\n if (shouldTryOverride(key)) {\n const val =\n price[key as keyof typeof price] ??\n ((changed = true), lastPrice[key as keyof typeof lastPrice]);\n\n (mergedPrice[\n key as keyof typeof mergedPrice\n ] as FiatPriceFromApi[keyof FiatPriceFromApi]) = val;\n }\n }\n\n // we updated the price\n if (changed) {\n // let's keep updatedAt, source from the last price\n mergedPrice.updatedAt = lastPrice.updatedAt;\n mergedPrice.source = lastPrice.source;\n }\n\n acc[address] = mergedPrice;\n return acc;\n },\n prices\n );\n\n return combined;\n}\n\nexport function constructTokenPricesQueryKey(\n chainId: number\n): TokenPricesQueryKey {\n return [\"token-prices\", chainId];\n}\n\nexport function constructTokenPricesQueryOptions({\n chainId,\n fallbackToCachedPrices,\n enabled,\n}: {\n chainId: SupportedChainId;\n fallbackToCachedPrices?: boolean;\n enabled?: boolean;\n}): UseQueryOptions<FiatPriceMap, Error, FiatPriceMap, TokenPricesQueryKey> {\n {\n return {\n queryKey: constructTokenPricesQueryKey(chainId),\n queryFn: ({ signal }) =>\n fetchTokenPricesWithFallback({\n chainId,\n fallbackToCachedPrices,\n signal,\n }),\n enabled,\n notifyOnChangeProps: [\"data\", \"isLoading\", \"isError\"],\n staleTime: LONG_STALE_TIME_FOR_REACTIVENESS,\n refetchInterval: ONE_MINUTE_MS,\n };\n }\n}\n"],"names":["keysToSkip","shouldTryOverride","key","includes","fetchTokenPricesWithFallback","chainId","fallbackToCachedPrices","signal","data","prices","axios","get","getApiURL","lastPrices","queryClient","getQueryData","constructTokenPricesQueryKey","combined","Object","entries","reduce","acc","address","price","isAddress","lastPrice","source","mergedPrice","changed","keys","val","updatedAt","constructTokenPricesQueryOptions","enabled","queryKey","queryFn","notifyOnChangeProps","staleTime","LONG_STALE_TIME_FOR_REACTIVENESS","refetchInterval","ONE_MINUTE_MS"],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { BridgeProtocolsMapping, BridgeProtocolsReturn } from './swap/prices/delta/queries/bridgeProtocols/types';
|
|
2
|
+
export declare function useGetBridgeProtocols(): import('./swap/prices/delta/queries/bridgeProtocols/types').BridgeProtocolsQueryResult<BridgeProtocolsReturn>;
|
|
3
|
+
export declare function useGetBridgeProtocolsMap(): import('./swap/prices/delta/queries/bridgeProtocols/types').BridgeProtocolsQueryResult<BridgeProtocolsMapping>;
|
|
4
|
+
//# sourceMappingURL=useBridgeProtocols.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBridgeProtocols.d.ts","sourceRoot":"","sources":["../../src/hooks/useBridgeProtocols.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,mDAAmD,CAAC;AAW3D,wBAAgB,qBAAqB,kHAMpC;AAED,wBAAgB,wBAAwB,mHAUvC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { d as distExports } from '../_virtual/index.js';
|
|
2
|
+
import { useBridgeProtocolsQuery } from './swap/prices/delta/queries/bridgeProtocols/useBridgeProtocols.js';
|
|
3
|
+
|
|
4
|
+
const createProtocolMapping = (data) => data.reduce((acc, {
|
|
5
|
+
protocol,
|
|
6
|
+
...rest
|
|
7
|
+
}) => {
|
|
8
|
+
const lowercasedProtocol = protocol.toLowerCase();
|
|
9
|
+
acc[lowercasedProtocol] = {
|
|
10
|
+
protocol: lowercasedProtocol,
|
|
11
|
+
...rest
|
|
12
|
+
};
|
|
13
|
+
return acc;
|
|
14
|
+
}, {});
|
|
15
|
+
function useGetBridgeProtocols() {
|
|
16
|
+
const $ = distExports.c(1);
|
|
17
|
+
let t0;
|
|
18
|
+
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
|
|
19
|
+
t0 = {
|
|
20
|
+
query: {
|
|
21
|
+
staleTime: Infinity,
|
|
22
|
+
gcTime: Infinity
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
$[0] = t0;
|
|
26
|
+
} else {
|
|
27
|
+
t0 = $[0];
|
|
28
|
+
}
|
|
29
|
+
const result = useBridgeProtocolsQuery(t0);
|
|
30
|
+
return result;
|
|
31
|
+
}
|
|
32
|
+
function useGetBridgeProtocolsMap() {
|
|
33
|
+
const $ = distExports.c(1);
|
|
34
|
+
let t0;
|
|
35
|
+
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
|
|
36
|
+
t0 = {
|
|
37
|
+
query: {
|
|
38
|
+
staleTime: Infinity,
|
|
39
|
+
gcTime: Infinity,
|
|
40
|
+
select: createProtocolMapping
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
$[0] = t0;
|
|
44
|
+
} else {
|
|
45
|
+
t0 = $[0];
|
|
46
|
+
}
|
|
47
|
+
const result = useBridgeProtocolsQuery(t0);
|
|
48
|
+
return result;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export { useGetBridgeProtocols, useGetBridgeProtocolsMap };
|
|
52
|
+
//# sourceMappingURL=useBridgeProtocols.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBridgeProtocols.js","sources":["../../src/hooks/useBridgeProtocols.ts"],"sourcesContent":["import type {\n BridgeProtocolsMapping,\n BridgeProtocolsReturn,\n} from \"./swap/prices/delta/queries/bridgeProtocols/types\";\nimport { useBridgeProtocolsQuery } from \"./swap/prices/delta/queries/bridgeProtocols/useBridgeProtocols\";\n\n// mapping {[protocol.toLowerCase()]: bridgeProtocolResponse} for faster access\nconst createProtocolMapping = (data: BridgeProtocolsReturn) =>\n data.reduce<BridgeProtocolsMapping>((acc, { protocol, ...rest }) => {\n const lowercasedProtocol = protocol.toLowerCase();\n acc[lowercasedProtocol] = { protocol: lowercasedProtocol, ...rest };\n return acc;\n }, {});\n\nexport function useGetBridgeProtocols() {\n const result = useBridgeProtocolsQuery({\n query: { staleTime: Infinity, gcTime: Infinity },\n });\n\n return result;\n}\n\nexport function useGetBridgeProtocolsMap() {\n const result = useBridgeProtocolsQuery({\n query: {\n staleTime: Infinity,\n gcTime: Infinity,\n select: createProtocolMapping,\n },\n });\n\n return result;\n}\n"],"names":["createProtocolMapping","data","reduce","acc","protocol","rest","lowercasedProtocol","toLowerCase","useGetBridgeProtocols","$","_c","t0","Symbol","for","query","staleTime","Infinity","gcTime","result","useBridgeProtocolsQuery","useGetBridgeProtocolsMap","select"],"mappings":";;;AAOA,MAAMA,wBAAwBA,CAACC,IAAAA,KAC7BA,IAAAA,CAAKC,MAAAA,CAA+B,CAACC,GAAAA,EAAK;AAAA,EAAEC,QAAAA;AAAAA,EAAU,GAAGC;AAAK,CAAA,KAAM;AAClE,EAAA,MAAMC,kBAAAA,GAAqBF,SAASG,WAAAA,EAAY;AAChDJ,EAAAA,GAAAA,CAAIG,kBAAkB,CAAA,GAAI;AAAA,IAAEF,QAAAA,EAAUE,kBAAAA;AAAAA,IAAoB,GAAGD;AAAAA,GAAK;AAClE,EAAA,OAAOF,GAAAA;AACT,CAAA,EAAG,EAAE,CAAA;AAEA,SAAAK,qBAAAA,GAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAF,EAAA,CAAA,CAAA,KAAAG,MAAAA,CAAAC,GAAAA,CAAA,2BAAA,CAAA,EAAA;AACkCF,IAAAA,EAAAA,GAAA;AAAA,MAAAG,KAAAA,EAC9B;AAAA,QAAAC,SAAAA,EAAaC,QAAAA;AAAAA,QAAQC,MAAAA,EAAUD;AAAAA;AAAS,KACjD;AAACP,IAAAA,CAAAA,MAAAE,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAF,EAAA,CAAA,CAAA;AAAA,EAAA;AAFD,EAAA,MAAAS,MAAAA,GAAeC,wBAAwBR,EAEtC,CAAA;AAAE,EAAA,OAEIO,MAAAA;AAAM;AAGR,SAAAE,wBAAAA,GAAA;AAAA,EAAA,MAAAX,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAF,EAAA,CAAA,CAAA,KAAAG,MAAAA,CAAAC,GAAAA,CAAA,2BAAA,CAAA,EAAA;AACkCF,IAAAA,EAAAA,GAAA;AAAA,MAAAG,KAAAA,EAC9B;AAAA,QAAAC,SAAAA,EACMC,QAAAA;AAAAA,QAAQC,MAAAA,EACXD,QAAAA;AAAAA,QAAQK,MAAAA,EACRrB;AAAAA;AACV,KACF;AAACS,IAAAA,CAAAA,MAAAE,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAF,EAAA,CAAA,CAAA;AAAA,EAAA;AAND,EAAA,MAAAS,MAAAA,GAAeC,wBAAwBR,EAMtC,CAAA;AAAE,EAAA,OAEIO,MAAAA;AAAM;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useClickOutside.js","sources":["../../src/hooks/useClickOutside.ts"],"sourcesContent":["import { useEffect, useLayoutEffect, useRef } from \"react\";\n\nexport function useClickOutside<T extends HTMLElement>(\n ref: React.RefObject<T | null>,\n callback: (event: PointerEvent) => void
|
|
1
|
+
{"version":3,"file":"useClickOutside.js","sources":["../../src/hooks/useClickOutside.ts"],"sourcesContent":["import { useEffect, useLayoutEffect, useRef } from \"react\";\n\nexport function useClickOutside<T extends HTMLElement>(\n ref: React.RefObject<T | null>,\n callback: (event: PointerEvent) => void\n) {\n // keep track of the latest callback\n // and don't include it in the effect deps\n const callbackRef = useRef(callback);\n useLayoutEffect(() => {\n callbackRef.current = callback;\n }, [callback]);\n\n useEffect(() => {\n const listener = (event: PointerEvent) => {\n const element = event.target as Node | null;\n // element belongs to Document tree\n if (!element || !element.isConnected) return;\n if (!ref.current) return;\n\n if (ref.current.contains(element)) {\n return;\n }\n /**\n * edge case when a Dropdown is opened and click is performed outside of dropdown,\n * but inside the Widget container, still registers as a click outside the Widget because:\n * 1. Dropdown onOpen assigns document.style.pointerEvents = \"none\"\n * and events don't reach below <html> (this prevents detecting document.elementsFromPoint)\n * 2. Dropdown onOpen adds pointerdown listener to document, which triggers after pointerdown listener here,\n * so we can't use DropdownMenuContent.onPointerDownOutside to intercept first\n *\n * Manual check against BoundingClientRect to determine if click is inside the Widget works\n */\n\n const clickPoint = {\n // in viewport coordinates\n x: event.clientX,\n y: event.clientY,\n };\n\n // in viewport coordinates\n const dimensions = ref.current.getBoundingClientRect();\n const isClickInside =\n clickPoint.x >= dimensions.left &&\n clickPoint.x <= dimensions.right &&\n clickPoint.y >= dimensions.top &&\n clickPoint.y <= dimensions.bottom;\n\n if (isClickInside) {\n return;\n }\n\n callbackRef.current(event);\n };\n\n // pointerdown = mousedown + touchstart\n document.addEventListener(\"pointerdown\", listener);\n\n return () => {\n document.removeEventListener(\"pointerdown\", listener);\n };\n }, [ref]);\n}\n"],"names":["useClickOutside","ref","callback","$","_c","callbackRef","useRef","t0","t1","current","useLayoutEffect","t2","t3","listener","event","element","target","isConnected","contains","clickPoint","x","clientX","y","clientY","dimensions","getBoundingClientRect","isClickInside","left","right","top","bottom","document","addEventListener","removeEventListener","useEffect"],"mappings":";;;AAEO,SAAAA,eAAAA,CAAAC,KAAAC,QAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAML,EAAA,MAAAC,WAAAA,GAAoBC,OAAOJ,QAAQ,CAAA;AAAE,EAAA,IAAAK,EAAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAL,CAAAA,QAAAD,QAAAA,EAAA;AACrBK,IAAAA,EAAAA,GAAAA,MAAA;AACdF,MAAAA,WAAAA,CAAWI,OAAAA,GAAWP,QAAAA;AAAAA,IAAH,CAAA;AAClBM,IAAAA,EAAAA,GAAA,CAACN,QAAQ,CAAA;AAACC,IAAAA,CAAAA,MAAAD,QAAAA;AAAAC,IAAAA,CAAAA,MAAAI,EAAAA;AAAAJ,IAAAA,CAAAA,MAAAK,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAD,IAAAA,EAAAA,GAAAJ,EAAA,CAAA,CAAA;AAAAK,IAAAA,EAAAA,GAAAL,EAAA,CAAA,CAAA;AAAA,EAAA;AAFbO,EAAAA,eAAAA,CAAgBH,IAEbC,EAAU,CAAA;AAAC,EAAA,IAAAG,EAAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAT,CAAAA,QAAAF,GAAAA,EAAA;AAEJU,IAAAA,EAAAA,GAAAA,MAAA;AACR,MAAA,MAAAE,WAAiBC,CAAAA,KAAAA,KAAA;AACf,QAAA,MAAAC,UAAgBD,KAAAA,CAAKE,MAAAA;AAErB,QAAA,IAAI,CAACD,OAAAA,IAAD,CAAaA,OAAAA,CAAOE,WAAAA,EAAY;AAAA,UAAA;AAAA,QAAA;AACpC,QAAA,IAAI,CAAChB,IAAGQ,OAAAA,EAAQ;AAAA,UAAA;AAAA,QAAA;AAEhB,QAAA,IAAIR,GAAAA,CAAGQ,OAAAA,CAAQS,QAAAA,CAAUH,OAAO,CAAA,EAAC;AAAA,UAAA;AAAA,QAAA;AAcjC,QAAA,MAAAI,UAAAA,GAAmB;AAAA,UAAAC,GAEdN,KAAAA,CAAKO,OAAAA;AAAAA,UAAQC,GACbR,KAAAA,CAAKS;AAAAA,SACV;AAGA,QAAA,MAAAC,UAAAA,GAAmBvB,GAAAA,CAAGQ,OAAAA,CAAQgB,qBAAAA,EAAuB;AACrD,QAAA,MAAAC,aAAAA,GACEP,UAAAA,CAAUC,CAAAA,IAAMI,UAAAA,CAAUG,QAC1BR,UAAAA,CAAUC,CAAAA,IAAMI,UAAAA,CAAUI,KAAAA,IAC1BT,WAAUG,CAAAA,IAAME,UAAAA,CAAUK,GAAAA,IAC1BV,UAAAA,CAAUG,KAAME,UAAAA,CAAUM,MAAAA;AAE5B,QAAA,IAAIJ,aAAAA,EAAa;AAAA,UAAA;AAAA,QAAA;AAIjBrB,QAAAA,WAAAA,CAAWI,QAASK,KAAK,CAAA;AAAA,MAAC,CAAA;AAI5BiB,MAAAA,QAAAA,CAAQC,gBAAAA,CAAkB,eAAenB,QAAQ,CAAA;AAAC,MAAA,OAE3C,MAAA;AACLkB,QAAAA,QAAAA,CAAQE,mBAAAA,CAAqB,eAAepB,QAAQ,CAAA;AAAA,MAAC,CAAA;AAAA,IACtD,CAAA;AACAD,IAAAA,EAAAA,GAAA,CAACX,GAAG,CAAA;AAACE,IAAAA,CAAAA,MAAAF,GAAAA;AAAAE,IAAAA,CAAAA,MAAAQ,EAAAA;AAAAR,IAAAA,CAAAA,MAAAS,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAD,IAAAA,EAAAA,GAAAR,EAAA,CAAA,CAAA;AAAAS,IAAAA,EAAAA,GAAAT,EAAA,CAAA,CAAA;AAAA,EAAA;AAhDR+B,EAAAA,SAAAA,CAAUvB,IAgDPC,EAAK,CAAA;AAAC;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"weth.js","sources":["../../../src/lib/constants/weth.ts"],"sourcesContent":["import type { Address } from \"viem\";\nimport type { SupportedChainId } from \"../web3/wagmi/types\";\nimport {\n arbitrum,\n avalanche,\n base,\n bsc,\n gnosis,\n mainnet,\n optimism,\n polygon,\n sonic,\n unichain,\n} from \"../web3/wagmi/supportedChains\";\n\nimport { ReactComponent as WethSvg } from \"@/assets/weth.svg\";\nimport WethSvgStr from \"@/assets/weth.svg?url\";\nimport { ReactComponent as WmaticSvg } from \"@/assets/wmatic.svg\";\nimport WmaticSvgStr from \"@/assets/wmatic.svg?url\";\nimport { ReactComponent as WavaxSvg } from \"@/assets/wavax.svg\";\nimport WavaxSvgStr from \"@/assets/wavax.svg?url\";\nimport { ReactComponent as WbnbSvg } from \"@/assets/wbnb.svg\";\nimport WbnbSvgStr from \"@/assets/wbnb.svg?url\";\nimport { ReactComponent as WxdaiSvg } from \"@/assets/wxdai.svg\";\nimport WxdaiSvgStr from \"@/assets/wxdai.svg?url\";\nimport { ReactComponent as wSSvg } from \"@/assets/wS.svg\";\nimport wSSvgStr from \"@/assets/wS.svg?url\";\n\nexport const wrappedNativeCurrency: Record<SupportedChainId, Address> = {\n [mainnet.id]: \"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\",\n [optimism.id]: \"0x4200000000000000000000000000000000000006\",\n [polygon.id]: \"0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270\",\n [base.id]: \"0x4200000000000000000000000000000000000006\",\n [arbitrum.id]: \"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1\",\n [avalanche.id]: \"0xb31f66aa3c1e785363f0875a1b74e27b85fd66c7\",\n [gnosis.id]: \"0xe91d153e0b41518a2ce8dd3d7944fa863463a97d\",\n [bsc.id]: \"0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c\",\n [sonic.id]: \"0x039e2fB66102314Ce7b64Ce5Ce3E5183bc94aD38\",\n [unichain.id]: \"0x4200000000000000000000000000000000000006\"
|
|
1
|
+
{"version":3,"file":"weth.js","sources":["../../../src/lib/constants/weth.ts"],"sourcesContent":["import type { Address } from \"viem\";\nimport type { SupportedChainId } from \"../web3/wagmi/types\";\nimport {\n arbitrum,\n avalanche,\n base,\n bsc,\n gnosis,\n mainnet,\n optimism,\n polygon,\n sonic,\n unichain,\n} from \"../web3/wagmi/supportedChains\";\n\nimport { ReactComponent as WethSvg } from \"@/assets/weth.svg\";\nimport WethSvgStr from \"@/assets/weth.svg?url\";\nimport { ReactComponent as WmaticSvg } from \"@/assets/wmatic.svg\";\nimport WmaticSvgStr from \"@/assets/wmatic.svg?url\";\nimport { ReactComponent as WavaxSvg } from \"@/assets/wavax.svg\";\nimport WavaxSvgStr from \"@/assets/wavax.svg?url\";\nimport { ReactComponent as WbnbSvg } from \"@/assets/wbnb.svg\";\nimport WbnbSvgStr from \"@/assets/wbnb.svg?url\";\nimport { ReactComponent as WxdaiSvg } from \"@/assets/wxdai.svg\";\nimport WxdaiSvgStr from \"@/assets/wxdai.svg?url\";\nimport { ReactComponent as wSSvg } from \"@/assets/wS.svg\";\nimport wSSvgStr from \"@/assets/wS.svg?url\";\n\nexport const wrappedNativeCurrency: Record<SupportedChainId, Address> = {\n [mainnet.id]: \"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\",\n [optimism.id]: \"0x4200000000000000000000000000000000000006\",\n [polygon.id]: \"0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270\",\n [base.id]: \"0x4200000000000000000000000000000000000006\",\n [arbitrum.id]: \"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1\",\n [avalanche.id]: \"0xb31f66aa3c1e785363f0875a1b74e27b85fd66c7\",\n [gnosis.id]: \"0xe91d153e0b41518a2ce8dd3d7944fa863463a97d\",\n [bsc.id]: \"0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c\",\n [sonic.id]: \"0x039e2fB66102314Ce7b64Ce5Ce3E5183bc94aD38\",\n [unichain.id]: \"0x4200000000000000000000000000000000000006\",\n};\n\nexport const wrappedNativeCurrencyLogo: Record<\n SupportedChainId,\n {\n component: typeof WethSvg;\n string: string;\n }\n> = {\n [mainnet.id]: { component: WethSvg, string: WethSvgStr },\n [optimism.id]: { component: WethSvg, string: WethSvgStr },\n [polygon.id]: { component: WmaticSvg, string: WmaticSvgStr },\n [base.id]: { component: WethSvg, string: WethSvgStr },\n [arbitrum.id]: { component: WethSvg, string: WethSvgStr },\n [avalanche.id]: { component: WavaxSvg, string: WavaxSvgStr },\n [gnosis.id]: { component: WxdaiSvg, string: WxdaiSvgStr },\n [bsc.id]: { component: WbnbSvg, string: WbnbSvgStr },\n [sonic.id]: { component: wSSvg, string: wSSvgStr },\n [unichain.id]: { component: WethSvg, string: WethSvgStr },\n};\n"],"names":["wrappedNativeCurrency","mainnet","id","optimism","polygon","base","arbitrum","avalanche","gnosis","bsc","sonic","unichain","wrappedNativeCurrencyLogo","component","WethSvg","string","WethSvgStr","WmaticSvg","WmaticSvgStr","WavaxSvg","WavaxSvgStr","WxdaiSvg","WxdaiSvgStr","WbnbSvg","WbnbSvgStr","wSSvg","wSSvgStr"],"mappings":";;;;;;;;;;;;;;AA4BO,MAAMA,qBAAAA,GAA2D;AAAA,EACtE,CAACC,OAAAA,CAAQC,EAAE,GAAG,4CAAA;AAAA,EACd,CAACC,QAAAA,CAASD,EAAE,GAAG,4CAAA;AAAA,EACf,CAACE,OAAAA,CAAQF,EAAE,GAAG,4CAAA;AAAA,EACd,CAACG,IAAAA,CAAKH,EAAE,GAAG,4CAAA;AAAA,EACX,CAACI,QAAAA,CAASJ,EAAE,GAAG,4CAAA;AAAA,EACf,CAACK,SAAAA,CAAUL,EAAE,GAAG,4CAAA;AAAA,EAChB,CAACM,MAAAA,CAAON,EAAE,GAAG,4CAAA;AAAA,EACb,CAACO,GAAAA,CAAIP,EAAE,GAAG,4CAAA;AAAA,EACV,CAACQ,KAAAA,CAAMR,EAAE,GAAG,4CAAA;AAAA,EACZ,CAACS,QAAAA,CAAST,EAAE,GAAG;AACjB;AAEO,MAAMU,yBAAAA,GAMT;AAAA,EACF,CAACX,OAAAA,CAAQC,EAAE,GAAG;AAAA,IAAEW,SAAAA,EAAWC,UAAAA;AAAAA,IAASC,MAAAA,EAAQC;AAAAA,GAAW;AAAA,EACvD,CAACb,QAAAA,CAASD,EAAE,GAAG;AAAA,IAAEW,SAAAA,EAAWC,UAAAA;AAAAA,IAASC,MAAAA,EAAQC;AAAAA,GAAW;AAAA,EACxD,CAACZ,OAAAA,CAAQF,EAAE,GAAG;AAAA,IAAEW,SAAAA,EAAWI,YAAAA;AAAAA,IAAWF,MAAAA,EAAQG;AAAAA,GAAa;AAAA,EAC3D,CAACb,IAAAA,CAAKH,EAAE,GAAG;AAAA,IAAEW,SAAAA,EAAWC,UAAAA;AAAAA,IAASC,MAAAA,EAAQC;AAAAA,GAAW;AAAA,EACpD,CAACV,QAAAA,CAASJ,EAAE,GAAG;AAAA,IAAEW,SAAAA,EAAWC,UAAAA;AAAAA,IAASC,MAAAA,EAAQC;AAAAA,GAAW;AAAA,EACxD,CAACT,SAAAA,CAAUL,EAAE,GAAG;AAAA,IAAEW,SAAAA,EAAWM,YAAAA;AAAAA,IAAUJ,MAAAA,EAAQK;AAAAA,GAAY;AAAA,EAC3D,CAACZ,MAAAA,CAAON,EAAE,GAAG;AAAA,IAAEW,SAAAA,EAAWQ,YAAAA;AAAAA,IAAUN,MAAAA,EAAQO;AAAAA,GAAY;AAAA,EACxD,CAACb,GAAAA,CAAIP,EAAE,GAAG;AAAA,IAAEW,SAAAA,EAAWU,YAAAA;AAAAA,IAASR,MAAAA,EAAQS;AAAAA,GAAW;AAAA,EACnD,CAACd,KAAAA,CAAMR,EAAE,GAAG;AAAA,IAAEW,SAAAA,EAAWY,YAAAA;AAAAA,IAAOV,MAAAA,EAAQW;AAAAA,GAAS;AAAA,EACjD,CAACf,QAAAA,CAAST,EAAE,GAAG;AAAA,IAAEW,SAAAA,EAAWC,UAAAA;AAAAA,IAASC,MAAAA,EAAQC;AAAAA;AAC/C;;;;"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import { DeltaOrMarketPrice } from '../../hooks/swap/prices/types';
|
|
2
1
|
import { default as Big } from 'big.js';
|
|
3
2
|
export declare function calculatePriceImpactPercent(fromUSD: string, toUSD: string): Big;
|
|
4
|
-
export declare function getPriceImpact(
|
|
3
|
+
export declare function getPriceImpact({ srcUSD, destUSD, }: {
|
|
4
|
+
srcUSD: string | null;
|
|
5
|
+
destUSD: string | null;
|
|
6
|
+
}): {
|
|
5
7
|
priceImpact: number;
|
|
6
8
|
isHighImpact: boolean;
|
|
7
9
|
};
|
|
10
|
+
export declare function formatPriceImpactPercent(priceImpact: number): `${string}%`;
|
|
8
11
|
//# sourceMappingURL=priceImpact.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"priceImpact.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/priceImpact.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"priceImpact.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/priceImpact.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,QAAQ,CAAC;AAEzB,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,GACZ,GAAG,CAUL;AAED,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,OAAO,GACR,EAAE;IACD,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,GAAG;IACF,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;CACvB,CAkBA;AAED,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,GAAG,MAAM,GAAG,CAE1E"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { isDeltaPrice } from '../../hooks/swap/prices/delta/queries/useDeltaPriceQuery.js';
|
|
2
1
|
import Big from 'big.js';
|
|
3
2
|
|
|
4
3
|
function calculatePriceImpactPercent(fromUSD, toUSD) {
|
|
@@ -10,9 +9,10 @@ function calculatePriceImpactPercent(fromUSD, toUSD) {
|
|
|
10
9
|
const calculatedImpact = Big(1).minus(toBN.div(fromUSD)).times(100);
|
|
11
10
|
return Big(Math.min(calculatedImpact.toNumber(), 100));
|
|
12
11
|
}
|
|
13
|
-
function getPriceImpact(
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
function getPriceImpact({
|
|
13
|
+
srcUSD,
|
|
14
|
+
destUSD
|
|
15
|
+
}) {
|
|
16
16
|
const impact = (
|
|
17
17
|
// can't calc priceImpact without knowing USD prices of tokens
|
|
18
18
|
srcUSD && destUSD ? calculatePriceImpactPercent(srcUSD, destUSD) : null
|
|
@@ -29,6 +29,9 @@ function getPriceImpact(price) {
|
|
|
29
29
|
isHighImpact: impactAbsoluteValue.gt(5)
|
|
30
30
|
};
|
|
31
31
|
}
|
|
32
|
+
function formatPriceImpactPercent(priceImpact) {
|
|
33
|
+
return `${priceImpact.toFixed(2)}%`;
|
|
34
|
+
}
|
|
32
35
|
|
|
33
|
-
export { calculatePriceImpactPercent, getPriceImpact };
|
|
36
|
+
export { calculatePriceImpactPercent, formatPriceImpactPercent, getPriceImpact };
|
|
34
37
|
//# sourceMappingURL=priceImpact.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"priceImpact.js","sources":["../../../src/lib/utils/priceImpact.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"priceImpact.js","sources":["../../../src/lib/utils/priceImpact.ts"],"sourcesContent":["import Big from \"big.js\";\n\nexport function calculatePriceImpactPercent(\n fromUSD: string,\n toUSD: string\n): Big {\n if (fromUSD === \"0\" || toUSD === \"0\") {\n return new Big(0);\n }\n\n const toBN = Big(toUSD);\n if (toBN.gte(fromUSD)) return Big(0);\n const calculatedImpact = Big(1).minus(toBN.div(fromUSD)).times(100);\n\n return Big(Math.min(calculatedImpact.toNumber(), 100));\n}\n\nexport function getPriceImpact({\n srcUSD,\n destUSD,\n}: {\n srcUSD: string | null;\n destUSD: string | null;\n}): {\n priceImpact: number;\n isHighImpact: boolean;\n} {\n const impact =\n // can't calc priceImpact without knowing USD prices of tokens\n srcUSD && destUSD ? calculatePriceImpactPercent(srcUSD, destUSD) : null;\n\n if (impact === null) {\n return {\n priceImpact: 0,\n isHighImpact: false,\n };\n }\n\n const impactAbsoluteValue = impact.abs();\n\n return {\n priceImpact: impactAbsoluteValue.toNumber(),\n isHighImpact: impactAbsoluteValue.gt(5),\n };\n}\n\nexport function formatPriceImpactPercent(priceImpact: number): `${string}%` {\n return `${priceImpact.toFixed(2)}%`;\n}\n"],"names":["calculatePriceImpactPercent","fromUSD","toUSD","Big","toBN","gte","calculatedImpact","minus","div","times","Math","min","toNumber","getPriceImpact","srcUSD","destUSD","impact","priceImpact","isHighImpact","impactAbsoluteValue","abs","gt","formatPriceImpactPercent","toFixed"],"mappings":";;AAEO,SAASA,2BAAAA,CACdC,SACAC,KAAAA,EACK;AACL,EAAA,IAAID,OAAAA,KAAY,GAAA,IAAOC,KAAAA,KAAU,GAAA,EAAK;AACpC,IAAA,OAAO,IAAIC,IAAI,CAAC,CAAA;AAAA,EAClB;AAEA,EAAA,MAAMC,IAAAA,GAAOD,IAAID,KAAK,CAAA;AACtB,EAAA,IAAIE,KAAKC,GAAAA,CAAIJ,OAAO,CAAA,EAAG,OAAOE,IAAI,CAAC,CAAA;AACnC,EAAA,MAAMG,gBAAAA,GAAmBH,GAAAA,CAAI,CAAC,CAAA,CAAEI,KAAAA,CAAMH,IAAAA,CAAKI,GAAAA,CAAIP,OAAO,CAAC,CAAA,CAAEQ,KAAAA,CAAM,GAAG,CAAA;AAElE,EAAA,OAAON,IAAIO,IAAAA,CAAKC,GAAAA,CAAIL,iBAAiBM,QAAAA,EAAS,EAAG,GAAG,CAAC,CAAA;AACvD;AAEO,SAASC,cAAAA,CAAe;AAAA,EAC7BC,MAAAA;AAAAA,EACAC;AAIF,CAAA,EAGE;AACA,EAAA,MAAMC,MAAAA;AAAAA;AAAAA,IAEJF,MAAAA,IAAUC,OAAAA,GAAUf,2BAAAA,CAA4Bc,MAAAA,EAAQC,OAAO,CAAA,GAAI;AAAA,GAAA;AAErE,EAAA,IAAIC,WAAW,IAAA,EAAM;AACnB,IAAA,OAAO;AAAA,MACLC,WAAAA,EAAa,CAAA;AAAA,MACbC,YAAAA,EAAc;AAAA,KAChB;AAAA,EACF;AAEA,EAAA,MAAMC,mBAAAA,GAAsBH,OAAOI,GAAAA,EAAI;AAEvC,EAAA,OAAO;AAAA,IACLH,WAAAA,EAAaE,oBAAoBP,QAAAA,EAAS;AAAA,IAC1CM,YAAAA,EAAcC,mBAAAA,CAAoBE,EAAAA,CAAG,CAAC;AAAA,GACxC;AACF;AAEO,SAASC,yBAAyBL,WAAAA,EAAmC;AAC1E,EAAA,OAAO,CAAA,EAAGA,WAAAA,CAAYM,OAAAA,CAAQ,CAAC,CAAC,CAAA,CAAA,CAAA;AAClC;;;;"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { NonEmptyArray } from 'ts-essentials';
|
|
2
2
|
export declare const isFilledArray: <T>(array: T[]) => array is NonEmptyArray<T>;
|
|
3
3
|
export declare function assertFilledArray<T>(array: T[]): asserts array is NonEmptyArray<T>;
|
|
4
|
+
export declare function nonEmptyArrayOrUndefined<T>(arr?: T[]): NonEmptyArray<T> | undefined;
|
|
4
5
|
export declare function isTupleOfLength<T, N extends number>(array: T[], len: N): array is TupleOfLength<T, N>;
|
|
5
6
|
export declare function isTupleAtLeastLength<T, N extends number>(array: T[], len: N): array is TupleOfLengthAtLeast<T, N>;
|
|
6
7
|
export type TupleOfLength<T, N extends number> = number extends N ? never : _TupleOf<T, N, []>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tuple.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/tuple.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAG3D,eAAO,MAAM,aAAa,GAAI,CAAC,EAAE,OAAO,CAAC,EAAE,KAAG,KAAK,IAAI,aAAa,CAAC,CAAC,CAErE,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,KAAK,EAAE,CAAC,EAAE,GACT,OAAO,CAAC,KAAK,IAAI,aAAa,CAAC,CAAC,CAAC,CAEnC;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,EACjD,KAAK,EAAE,CAAC,EAAE,EACV,GAAG,EAAE,CAAC,GACL,KAAK,IAAI,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAE9B;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,EACtD,KAAK,EAAE,CAAC,EAAE,EACV,GAAG,EAAE,CAAC,GACL,KAAK,IAAI,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,CAErC;AAGD,MAAM,MAAM,aAAa,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,IAAI,MAAM,SAAS,CAAC,GAC7D,KAAK,GACL,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACvB,KAAK,QAAQ,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,OAAO,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,GAC3E,CAAC,GACD,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAE9B,MAAM,MAAM,oBAAoB,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,IAAI,MAAM,SAAS,CAAC,GACpE,KAAK,GACL,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAC9B,KAAK,eAAe,CAClB,CAAC,EACD,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,OAAO,EAAE,IACjB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"tuple.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/tuple.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAG3D,eAAO,MAAM,aAAa,GAAI,CAAC,EAAE,OAAO,CAAC,EAAE,KAAG,KAAK,IAAI,aAAa,CAAC,CAAC,CAErE,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,KAAK,EAAE,CAAC,EAAE,GACT,OAAO,CAAC,KAAK,IAAI,aAAa,CAAC,CAAC,CAAC,CAEnC;AAED,wBAAgB,wBAAwB,CAAC,CAAC,EACxC,GAAG,CAAC,EAAE,CAAC,EAAE,GACR,aAAa,CAAC,CAAC,CAAC,GAAG,SAAS,CAG9B;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,EACjD,KAAK,EAAE,CAAC,EAAE,EACV,GAAG,EAAE,CAAC,GACL,KAAK,IAAI,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAE9B;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,EACtD,KAAK,EAAE,CAAC,EAAE,EACV,GAAG,EAAE,CAAC,GACL,KAAK,IAAI,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,CAErC;AAGD,MAAM,MAAM,aAAa,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,IAAI,MAAM,SAAS,CAAC,GAC7D,KAAK,GACL,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACvB,KAAK,QAAQ,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,OAAO,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,GAC3E,CAAC,GACD,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAE9B,MAAM,MAAM,oBAAoB,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,IAAI,MAAM,SAAS,CAAC,GACpE,KAAK,GACL,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAC9B,KAAK,eAAe,CAClB,CAAC,EACD,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,OAAO,EAAE,IACjB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC"}
|
package/dist/lib/utils/tuple.js
CHANGED
|
@@ -3,9 +3,13 @@ import 'ts-essentials';
|
|
|
3
3
|
const isFilledArray = (array) => {
|
|
4
4
|
return array.length > 0;
|
|
5
5
|
};
|
|
6
|
+
function nonEmptyArrayOrUndefined(arr) {
|
|
7
|
+
if (!arr) return;
|
|
8
|
+
return isFilledArray(arr) ? arr : void 0;
|
|
9
|
+
}
|
|
6
10
|
function isTupleAtLeastLength(array, len) {
|
|
7
11
|
return array.length >= len;
|
|
8
12
|
}
|
|
9
13
|
|
|
10
|
-
export { isFilledArray, isTupleAtLeastLength };
|
|
14
|
+
export { isFilledArray, isTupleAtLeastLength, nonEmptyArrayOrUndefined };
|
|
11
15
|
//# sourceMappingURL=tuple.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tuple.js","sources":["../../../src/lib/utils/tuple.ts"],"sourcesContent":["import { assert, type NonEmptyArray } from \"ts-essentials\";\n\n// checks that array has at least one element\nexport const isFilledArray = <T>(array: T[]): array is NonEmptyArray<T> => {\n return array.length > 0;\n};\n\nexport function assertFilledArray<T>(\n array: T[]
|
|
1
|
+
{"version":3,"file":"tuple.js","sources":["../../../src/lib/utils/tuple.ts"],"sourcesContent":["import { assert, type NonEmptyArray } from \"ts-essentials\";\n\n// checks that array has at least one element\nexport const isFilledArray = <T>(array: T[]): array is NonEmptyArray<T> => {\n return array.length > 0;\n};\n\nexport function assertFilledArray<T>(\n array: T[],\n): asserts array is NonEmptyArray<T> {\n assert(isFilledArray(array), \"array must not be empty\");\n}\n\nexport function nonEmptyArrayOrUndefined<T>(\n arr?: T[],\n): NonEmptyArray<T> | undefined {\n if (!arr) return;\n return isFilledArray(arr) ? arr : undefined;\n}\n\nexport function isTupleOfLength<T, N extends number>(\n array: T[],\n len: N,\n): array is TupleOfLength<T, N> {\n return array.length === len;\n}\n\nexport function isTupleAtLeastLength<T, N extends number>(\n array: T[],\n len: N,\n): array is TupleOfLengthAtLeast<T, N> {\n return array.length >= len;\n}\n\n// based on https://stackoverflow.com/a/52490977/7316062\nexport type TupleOfLength<T, N extends number> = number extends N\n ? never\n : _TupleOf<T, N, []>;\ntype _TupleOf<T, N extends number, R extends unknown[]> = R[\"length\"] extends N\n ? R\n : _TupleOf<T, N, [T, ...R]>;\n\nexport type TupleOfLengthAtLeast<T, N extends number> = number extends N\n ? never\n : _TupleOfAtLeast<T, N, []>;\ntype _TupleOfAtLeast<\n T,\n N extends number,\n R extends unknown[],\n> = R[\"length\"] extends N ? [...R, ...T[]] : _TupleOfAtLeast<T, N, [T, ...R]>;\n"],"names":["isFilledArray","array","length","nonEmptyArrayOrUndefined","arr","undefined","isTupleAtLeastLength","len"],"mappings":";;AAGO,MAAMA,aAAAA,GAAgB,CAAIC,KAAAA,KAA0C;AACzE,EAAA,OAAOA,MAAMC,MAAAA,GAAS,CAAA;AACxB;AAQO,SAASC,yBACdC,GAAAA,EAC8B;AAC9B,EAAA,IAAI,CAACA,GAAAA,EAAK;AACV,EAAA,OAAOJ,aAAAA,CAAcI,GAAG,CAAA,GAAIA,GAAAA,GAAMC,MAAAA;AACpC;AASO,SAASC,oBAAAA,CACdL,OACAM,GAAAA,EACqC;AACrC,EAAA,OAAON,MAAMC,MAAAA,IAAUK,GAAAA;AACzB;;;;"}
|
|
@@ -28,7 +28,7 @@ const privyConfig = {
|
|
|
28
28
|
},
|
|
29
29
|
// another option is to give an invalid ID,
|
|
30
30
|
// but then it retries indefinitely
|
|
31
|
-
walletConnectCloudProjectId: "
|
|
31
|
+
walletConnectCloudProjectId: "9796e40630a6bea7605ac281b0deb939",
|
|
32
32
|
// Privy doesn't accept const Chain[]
|
|
33
33
|
supportedChains: chains
|
|
34
34
|
// defaultChain: chains[0], @TODO set to App's selected chain
|
|
@@ -6,7 +6,7 @@ import { isInIframe } from './isInsideSafeIframe.js';
|
|
|
6
6
|
|
|
7
7
|
const connectors = [
|
|
8
8
|
walletConnect({
|
|
9
|
-
projectId: "
|
|
9
|
+
projectId: "9796e40630a6bea7605ac281b0deb939"
|
|
10
10
|
}),
|
|
11
11
|
injected(),
|
|
12
12
|
// metaMask() as CreateConnectorFn, // injected() detects metamask already
|
package/dist/styles.css
CHANGED
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
|
-
|
|
73
|
+
:root, :host {
|
|
74
74
|
--font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
|
75
75
|
--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
|
76
76
|
--color-red-800: oklch(44.4% .177 26.899);
|
|
@@ -611,6 +611,10 @@
|
|
|
611
611
|
width: calc(var(--spacing) * 5);
|
|
612
612
|
height: calc(var(--spacing) * 5);
|
|
613
613
|
}
|
|
614
|
+
.velora-widget.velora-widget .size-5\.5 {
|
|
615
|
+
width: calc(var(--spacing) * 5.5);
|
|
616
|
+
height: calc(var(--spacing) * 5.5);
|
|
617
|
+
}
|
|
614
618
|
.velora-widget.velora-widget .size-6 {
|
|
615
619
|
width: calc(var(--spacing) * 6);
|
|
616
620
|
height: calc(var(--spacing) * 6);
|
|
@@ -738,12 +742,18 @@
|
|
|
738
742
|
.velora-widget.velora-widget .h-\[72px\] {
|
|
739
743
|
height: 72px;
|
|
740
744
|
}
|
|
745
|
+
.velora-widget.velora-widget .h-\[100px\] {
|
|
746
|
+
height: 100px;
|
|
747
|
+
}
|
|
741
748
|
.velora-widget.velora-widget .h-\[116px\] {
|
|
742
749
|
height: 116px;
|
|
743
750
|
}
|
|
744
751
|
.velora-widget.velora-widget .h-\[168px\] {
|
|
745
752
|
height: 168px;
|
|
746
753
|
}
|
|
754
|
+
.velora-widget.velora-widget .h-\[406px\] {
|
|
755
|
+
height: 406px;
|
|
756
|
+
}
|
|
747
757
|
.velora-widget.velora-widget .h-\[420px\] {
|
|
748
758
|
height: 420px;
|
|
749
759
|
}
|
|
@@ -765,6 +775,9 @@
|
|
|
765
775
|
.velora-widget.velora-widget .h-full {
|
|
766
776
|
height: 100%;
|
|
767
777
|
}
|
|
778
|
+
.velora-widget.velora-widget .h-min {
|
|
779
|
+
height: min-content;
|
|
780
|
+
}
|
|
768
781
|
.velora-widget.velora-widget .h-px {
|
|
769
782
|
height: 1px;
|
|
770
783
|
}
|
|
@@ -792,6 +805,9 @@
|
|
|
792
805
|
.velora-widget.velora-widget .min-h-\[400px\] {
|
|
793
806
|
min-height: 400px;
|
|
794
807
|
}
|
|
808
|
+
.velora-widget.velora-widget .min-h-\[571px\] {
|
|
809
|
+
min-height: 571px;
|
|
810
|
+
}
|
|
795
811
|
.velora-widget.velora-widget .min-h-\[620px\] {
|
|
796
812
|
min-height: 620px;
|
|
797
813
|
}
|
|
@@ -900,6 +916,9 @@
|
|
|
900
916
|
.velora-widget.velora-widget .min-w-0 {
|
|
901
917
|
min-width: calc(var(--spacing) * 0);
|
|
902
918
|
}
|
|
919
|
+
.velora-widget.velora-widget .min-w-6 {
|
|
920
|
+
min-width: calc(var(--spacing) * 6);
|
|
921
|
+
}
|
|
903
922
|
.velora-widget.velora-widget .min-w-\[8rem\] {
|
|
904
923
|
min-width: 8rem;
|
|
905
924
|
}
|
|
@@ -1020,6 +1039,9 @@
|
|
|
1020
1039
|
.velora-widget.velora-widget .flex-wrap {
|
|
1021
1040
|
flex-wrap: wrap;
|
|
1022
1041
|
}
|
|
1042
|
+
.velora-widget.velora-widget .items-baseline-last {
|
|
1043
|
+
align-items: last baseline;
|
|
1044
|
+
}
|
|
1023
1045
|
.velora-widget.velora-widget .items-center {
|
|
1024
1046
|
align-items: center;
|
|
1025
1047
|
}
|
|
@@ -1062,6 +1084,9 @@
|
|
|
1062
1084
|
.velora-widget.velora-widget .gap-3 {
|
|
1063
1085
|
gap: calc(var(--spacing) * 3);
|
|
1064
1086
|
}
|
|
1087
|
+
.velora-widget.velora-widget .gap-3\.5 {
|
|
1088
|
+
gap: calc(var(--spacing) * 3.5);
|
|
1089
|
+
}
|
|
1065
1090
|
.velora-widget.velora-widget .gap-4 {
|
|
1066
1091
|
gap: calc(var(--spacing) * 4);
|
|
1067
1092
|
}
|
|
@@ -1086,6 +1111,9 @@
|
|
|
1086
1111
|
.velora-widget.velora-widget .gap-\[6px\] {
|
|
1087
1112
|
gap: 6px;
|
|
1088
1113
|
}
|
|
1114
|
+
.velora-widget.velora-widget .gap-\[7px\] {
|
|
1115
|
+
gap: 7px;
|
|
1116
|
+
}
|
|
1089
1117
|
.velora-widget.velora-widget .gap-\[8px\] {
|
|
1090
1118
|
gap: 8px;
|
|
1091
1119
|
}
|
|
@@ -1162,6 +1190,9 @@
|
|
|
1162
1190
|
.velora-widget.velora-widget .rounded-\[17px\] {
|
|
1163
1191
|
border-radius: 17px;
|
|
1164
1192
|
}
|
|
1193
|
+
.velora-widget.velora-widget .rounded-\[40px\] {
|
|
1194
|
+
border-radius: 40px;
|
|
1195
|
+
}
|
|
1165
1196
|
.velora-widget.velora-widget .rounded-\[43px\] {
|
|
1166
1197
|
border-radius: 43px;
|
|
1167
1198
|
}
|
|
@@ -1269,12 +1300,18 @@
|
|
|
1269
1300
|
.velora-widget.velora-widget .bg-\[\#0000000D\] {
|
|
1270
1301
|
background-color: #0000000d;
|
|
1271
1302
|
}
|
|
1303
|
+
.velora-widget.velora-widget .bg-\[\#34CA9A1A\] {
|
|
1304
|
+
background-color: #34ca9a1a;
|
|
1305
|
+
}
|
|
1272
1306
|
.velora-widget.velora-widget .bg-\[\#00976733\] {
|
|
1273
1307
|
background-color: #00976733;
|
|
1274
1308
|
}
|
|
1275
1309
|
.velora-widget.velora-widget .bg-\[\#B7BECB\] {
|
|
1276
1310
|
background-color: #b7becb;
|
|
1277
1311
|
}
|
|
1312
|
+
.velora-widget.velora-widget .bg-\[\#F75C2A26\] {
|
|
1313
|
+
background-color: #f75c2a26;
|
|
1314
|
+
}
|
|
1278
1315
|
.velora-widget.velora-widget .bg-\[\#FF3B301A\] {
|
|
1279
1316
|
background-color: #ff3b301a;
|
|
1280
1317
|
}
|
|
@@ -1666,6 +1703,10 @@
|
|
|
1666
1703
|
.velora-widget.velora-widget .text-\[24px\] {
|
|
1667
1704
|
font-size: 24px;
|
|
1668
1705
|
}
|
|
1706
|
+
.velora-widget.velora-widget .leading-5 {
|
|
1707
|
+
--tw-leading: calc(var(--spacing) * 5);
|
|
1708
|
+
line-height: calc(var(--spacing) * 5);
|
|
1709
|
+
}
|
|
1669
1710
|
.velora-widget.velora-widget .leading-none {
|
|
1670
1711
|
--tw-leading: 1;
|
|
1671
1712
|
line-height: 1;
|
|
@@ -1766,12 +1807,18 @@
|
|
|
1766
1807
|
.velora-widget.velora-widget .text-primary-foreground {
|
|
1767
1808
|
color: var(--primary-foreground);
|
|
1768
1809
|
}
|
|
1810
|
+
.velora-widget.velora-widget .text-primary-papaya-1 {
|
|
1811
|
+
color: var(--primary-papaya-1);
|
|
1812
|
+
}
|
|
1769
1813
|
.velora-widget.velora-widget .text-secondary-foreground {
|
|
1770
1814
|
color: var(--secondary-foreground);
|
|
1771
1815
|
}
|
|
1772
1816
|
.velora-widget.velora-widget .text-secondary-iris-blue-1 {
|
|
1773
1817
|
color: var(--secondary-iris_blue-1);
|
|
1774
1818
|
}
|
|
1819
|
+
.velora-widget.velora-widget .text-secondary-light-slate-3 {
|
|
1820
|
+
color: var(--secondary-light_slate-3);
|
|
1821
|
+
}
|
|
1775
1822
|
.velora-widget.velora-widget .text-secondary-orange-peel-1 {
|
|
1776
1823
|
color: var(--secondary-orange_peel-1);
|
|
1777
1824
|
}
|
|
@@ -1892,6 +1939,9 @@
|
|
|
1892
1939
|
outline-style: var(--tw-outline-style);
|
|
1893
1940
|
outline-width: 1px;
|
|
1894
1941
|
}
|
|
1942
|
+
.velora-widget.velora-widget .outline-contrast-6 {
|
|
1943
|
+
outline-color: var(--contrast-6);
|
|
1944
|
+
}
|
|
1895
1945
|
.velora-widget.velora-widget .outline-contrast-7 {
|
|
1896
1946
|
outline-color: var(--contrast-7);
|
|
1897
1947
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../src/tokens/queries.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAGxC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAShD,KAAK,mBAAmB,CAAC,CAAC,SAAS,MAAM,IAAI;IAC3C,iBAAiB,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACvC,MAAM,EAAE,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;CACzD,CAAC;AAiBF,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,MAAM,GAAG,KAAK,GAAG,KAAK,EACpE,QAAQ,EAAE,MAAM,EAAE,EAClB,GAAG,CAAC,EAAE,CAAC,6GAaR;AAED,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,MAAM,GAAG,KAAK,GAAG,KAAK,EAC1E,OAAO,EAAE,MAAM,EACf,GAAG,CAAC,EAAE,CAAC,GACN,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CA6BlD;AAGD,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,MAAM,GAAG,KAAK,GAAG,KAAK,EACvE,OAAO,EAAE,MAAM,EACf,GAAG,CAAC,EAAE,CAAC,GACN,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAOlD;AAED,eAAO,MAAM,4BAA4B,GAAI,CAAC,SAAS,MAAM,GAAG,KAAK,GAAG,KAAK,EAC3E,UAAU,MAAM,EAAE,EAClB,MAAM,CAAC,KACN,mBAAmB,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../src/tokens/queries.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAGxC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAShD,KAAK,mBAAmB,CAAC,CAAC,SAAS,MAAM,IAAI;IAC3C,iBAAiB,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACvC,MAAM,EAAE,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;CACzD,CAAC;AAiBF,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,MAAM,GAAG,KAAK,GAAG,KAAK,EACpE,QAAQ,EAAE,MAAM,EAAE,EAClB,GAAG,CAAC,EAAE,CAAC,6GAaR;AAED,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,MAAM,GAAG,KAAK,GAAG,KAAK,EAC1E,OAAO,EAAE,MAAM,EACf,GAAG,CAAC,EAAE,CAAC,GACN,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CA6BlD;AAGD,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,MAAM,GAAG,KAAK,GAAG,KAAK,EACvE,OAAO,EAAE,MAAM,EACf,GAAG,CAAC,EAAE,CAAC,GACN,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAOlD;AAED,eAAO,MAAM,4BAA4B,GAAI,CAAC,SAAS,MAAM,GAAG,KAAK,GAAG,KAAK,EAC3E,UAAU,MAAM,EAAE,EAClB,MAAM,CAAC,KACN,mBAAmB,CAAC,CAAC,CAAC,EAkBxB,CAAC;AAEF,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,GAAG,KAAK,GAAG,KAAK,EAC5D,QAAQ,EAAE,MAAM,EAAE,EAClB,GAAG,CAAC,EAAE,CAAC,GACN,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAOvB;AAED,wBAAgB,kBAAkB,IAAI,gBAAgB,EAAE,CASvD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries.js","sources":["../../src/tokens/queries.ts"],"sourcesContent":["import {\n replaceEqualDeep,\n useQueries,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport { versionComparator } from \"@uniswap/token-lists\";\nimport type { AxiosError } from \"axios\";\nimport { /* useRef, useLayoutEffect, */ useMemo } from \"react\";\nimport { downloadTokenListDataWithFallback } from \"./lists/download\";\nimport type { TokenListFetched } from \"./types\";\nimport { QUERY_KEY_FETCH_TOKEN_LISTS } from \"./constants\";\nimport { constructPlaceholderData } from \"./lists/utils\";\nimport { isTruthy } from \"@/lib/utils\";\nimport { overrideTokenList } from \"./overrides\";\nimport { stableCoinsTokenLists } from \"./stabeCoins\";\nimport { useAtomValue } from \"@/core/store\";\nimport { tokenListUrlsAtom } from \"./lists/state/tokenListsStateAtom\";\n\ntype UseFetchListsResult<T extends string> = {\n dataOrPlaceholder: TokenListFetched<T>;\n result: UseQueryResult<TokenListFetched<T>, AxiosError>;\n};\n\nfunction isDataEqual<T extends string | never = never>(\n currentData: TokenListFetched<T> | undefined,\n incomingData: TokenListFetched<T>\n): currentData is typeof incomingData {\n // there was no oldData --> data not equal\n if (!currentData) return false;\n // data was a placeholder (available = false) and data.available changed --> data not equal\n if (!currentData.available || !incomingData.available)\n return currentData.available !== incomingData.available;\n // incoming list.version <= current list.version --> consider data equal (don't replace with incoming older version)\n const isOlderOrEqual =\n versionComparator(incomingData.data.version, currentData.data.version) <= 0;\n return isOlderOrEqual;\n}\n\nexport function produceQueriesOptions<T extends string | never = never>(\n listURLs: string[],\n tag?: T\n) {\n // there are duplicate listURLs because in lists.json same list can be present for multiple chains\n const uniqueListURLs = Array.from(new Set(listURLs));\n\n return (\n uniqueListURLs\n // to prevent occasional `token_list_download_error:\"\"` event tag\n .filter(isTruthy)\n .map<UseQueryOptions<TokenListFetched<T>, AxiosError>>((listURL) =>\n produceSingleQueryOption<T>(listURL, tag)\n )\n );\n}\n\nexport function produceSingleQueryOptionMin<T extends string | never = never>(\n listURL: string,\n tag?: T\n): UseQueryOptions<TokenListFetched<T>, AxiosError> {\n return {\n queryKey: [QUERY_KEY_FETCH_TOKEN_LISTS, listURL],\n queryFn: async ({ signal }) => {\n const _data = await downloadTokenListDataWithFallback(listURL, signal);\n\n const data = overrideTokenList(_data, listURL);\n\n return {\n url: listURL,\n name: data.name,\n data,\n tag,\n // possibly mitigates https://sentry.io/organizations/paraswap/discover/ui:3fa26b87e3594d1998ff9fb4770a26d9\n available: Array.isArray(data.tokens),\n };\n },\n staleTime: Infinity,\n gcTime: Infinity,\n\n // custom comparison to optimize big token list comparison\n structuralSharing: (oldData, newData) =>\n isDataEqual(\n oldData as TokenListFetched<T> | undefined,\n newData as TokenListFetched<T>\n )\n ? oldData\n : replaceEqualDeep(oldData, newData),\n };\n}\n\n// adds useQuery options\nexport function produceSingleQueryOption<T extends string | never = never>(\n listURL: string,\n tag?: T\n): UseQueryOptions<TokenListFetched<T>, AxiosError> {\n return {\n ...produceSingleQueryOptionMin<T>(listURL, tag),\n notifyOnChangeProps: [\"data\"],\n placeholderData: constructPlaceholderData(listURL), // start with unavailable but still with url\n refetchOnMount: false,\n };\n}\n\nexport const useFetchListsWithQueryResult = <T extends string | never = never>(\n listURLs: string[],\n tag?: T\n): UseFetchListsResult<T>[] => {\n const queryResults = useQueries<\n UseQueryOptions<TokenListFetched<T>, AxiosError>[]\n >({
|
|
1
|
+
{"version":3,"file":"queries.js","sources":["../../src/tokens/queries.ts"],"sourcesContent":["import {\n replaceEqualDeep,\n useQueries,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport { versionComparator } from \"@uniswap/token-lists\";\nimport type { AxiosError } from \"axios\";\nimport { /* useRef, useLayoutEffect, */ useMemo } from \"react\";\nimport { downloadTokenListDataWithFallback } from \"./lists/download\";\nimport type { TokenListFetched } from \"./types\";\nimport { QUERY_KEY_FETCH_TOKEN_LISTS } from \"./constants\";\nimport { constructPlaceholderData } from \"./lists/utils\";\nimport { isTruthy } from \"@/lib/utils\";\nimport { overrideTokenList } from \"./overrides\";\nimport { stableCoinsTokenLists } from \"./stabeCoins\";\nimport { useAtomValue } from \"@/core/store\";\nimport { tokenListUrlsAtom } from \"./lists/state/tokenListsStateAtom\";\n\ntype UseFetchListsResult<T extends string> = {\n dataOrPlaceholder: TokenListFetched<T>;\n result: UseQueryResult<TokenListFetched<T>, AxiosError>;\n};\n\nfunction isDataEqual<T extends string | never = never>(\n currentData: TokenListFetched<T> | undefined,\n incomingData: TokenListFetched<T>\n): currentData is typeof incomingData {\n // there was no oldData --> data not equal\n if (!currentData) return false;\n // data was a placeholder (available = false) and data.available changed --> data not equal\n if (!currentData.available || !incomingData.available)\n return currentData.available !== incomingData.available;\n // incoming list.version <= current list.version --> consider data equal (don't replace with incoming older version)\n const isOlderOrEqual =\n versionComparator(incomingData.data.version, currentData.data.version) <= 0;\n return isOlderOrEqual;\n}\n\nexport function produceQueriesOptions<T extends string | never = never>(\n listURLs: string[],\n tag?: T\n) {\n // there are duplicate listURLs because in lists.json same list can be present for multiple chains\n const uniqueListURLs = Array.from(new Set(listURLs));\n\n return (\n uniqueListURLs\n // to prevent occasional `token_list_download_error:\"\"` event tag\n .filter(isTruthy)\n .map<UseQueryOptions<TokenListFetched<T>, AxiosError>>((listURL) =>\n produceSingleQueryOption<T>(listURL, tag)\n )\n );\n}\n\nexport function produceSingleQueryOptionMin<T extends string | never = never>(\n listURL: string,\n tag?: T\n): UseQueryOptions<TokenListFetched<T>, AxiosError> {\n return {\n queryKey: [QUERY_KEY_FETCH_TOKEN_LISTS, listURL],\n queryFn: async ({ signal }) => {\n const _data = await downloadTokenListDataWithFallback(listURL, signal);\n\n const data = overrideTokenList(_data, listURL);\n\n return {\n url: listURL,\n name: data.name,\n data,\n tag,\n // possibly mitigates https://sentry.io/organizations/paraswap/discover/ui:3fa26b87e3594d1998ff9fb4770a26d9\n available: Array.isArray(data.tokens),\n };\n },\n staleTime: Infinity,\n gcTime: Infinity,\n\n // custom comparison to optimize big token list comparison\n structuralSharing: (oldData, newData) =>\n isDataEqual(\n oldData as TokenListFetched<T> | undefined,\n newData as TokenListFetched<T>\n )\n ? oldData\n : replaceEqualDeep(oldData, newData),\n };\n}\n\n// adds useQuery options\nexport function produceSingleQueryOption<T extends string | never = never>(\n listURL: string,\n tag?: T\n): UseQueryOptions<TokenListFetched<T>, AxiosError> {\n return {\n ...produceSingleQueryOptionMin<T>(listURL, tag),\n notifyOnChangeProps: [\"data\"],\n placeholderData: constructPlaceholderData(listURL), // start with unavailable but still with url\n refetchOnMount: false,\n };\n}\n\nexport const useFetchListsWithQueryResult = <T extends string | never = never>(\n listURLs: string[],\n tag?: T\n): UseFetchListsResult<T>[] => {\n const queryResults = useQueries<\n UseQueryOptions<TokenListFetched<T>, AxiosError>[]\n >({\n queries: produceQueriesOptions(listURLs, tag),\n });\n\n return useMemo<UseFetchListsResult<T>[]>(\n () =>\n queryResults.map((result) => ({\n // provide {url, name} even on error\n dataOrPlaceholder:\n result.data ||\n constructPlaceholderData(result.error?.config?.url || \"\"),\n result,\n })),\n [queryResults]\n );\n};\n\nexport function useFetchLists<T extends string | never = never>(\n listURLs: string[],\n tag?: T\n): TokenListFetched<T>[] {\n const queryResults = useFetchListsWithQueryResult(listURLs, tag);\n\n return useMemo(\n () => queryResults.map(({ dataOrPlaceholder }) => dataOrPlaceholder),\n [queryResults]\n );\n}\n\nexport function useFetchTokenLists(): TokenListFetched[] {\n const currentlyEnabledLists = useAtomValue(tokenListUrlsAtom);\n\n // stablecoins list is auxiliary list, always in use\n const includingStablecoins = stableCoinsTokenLists.concat(\n currentlyEnabledLists\n );\n\n return useFetchLists(includingStablecoins);\n}\n"],"names":["isDataEqual","currentData","incomingData","available","isOlderOrEqual","versionComparator","data","version","produceQueriesOptions","listURLs","tag","uniqueListURLs","Array","from","Set","filter","isTruthy","map","listURL","produceSingleQueryOption","produceSingleQueryOptionMin","queryKey","QUERY_KEY_FETCH_TOKEN_LISTS","queryFn","signal","_data","downloadTokenListDataWithFallback","overrideTokenList","url","name","isArray","tokens","staleTime","Infinity","gcTime","structuralSharing","oldData","newData","replaceEqualDeep","notifyOnChangeProps","placeholderData","constructPlaceholderData","refetchOnMount","useFetchListsWithQueryResult","$","_c","t0","t1","queries","queryResults","useQueries","t2","_temp","useFetchLists","_temp2","dataOrPlaceholder","useFetchTokenLists","currentlyEnabledLists","useAtomValue","tokenListUrlsAtom","stableCoinsTokenLists","concat","includingStablecoins","result","error","config"],"mappings":";;;;;;;;;;;;;AAwBA,SAASA,WAAAA,CACPC,aACAC,YAAAA,EACoC;AAEpC,EAAA,IAAI,CAACD,aAAa,OAAO,KAAA;AAEzB,EAAA,IAAI,CAACA,YAAYE,SAAAA,IAAa,CAACD,aAAaC,SAAAA,EAC1C,OAAOF,WAAAA,CAAYE,SAAAA,KAAcD,YAAAA,CAAaC,SAAAA;AAEhD,EAAA,MAAMC,cAAAA,GACJC,kBAAkBH,YAAAA,CAAaI,IAAAA,CAAKC,SAASN,WAAAA,CAAYK,IAAAA,CAAKC,OAAO,CAAA,IAAK,CAAA;AAC5E,EAAA,OAAOH,cAAAA;AACT;AAEO,SAASI,qBAAAA,CACdC,UACAC,GAAAA,EACA;AAEA,EAAA,MAAMC,iBAAiBC,KAAAA,CAAMC,IAAAA,CAAK,IAAIC,GAAAA,CAAIL,QAAQ,CAAC,CAAA;AAEnD,EAAA,OACEE,cAAAA,CAEGI,OAAOC,QAAQ,CAAA,CACfC,IAAuDC,CAAAA,OAAAA,KACtDC,wBAAAA,CAA4BD,OAAAA,EAASR,GAAG,CAC1C,CAAA;AAEN;AAEO,SAASU,2BAAAA,CACdF,SACAR,GAAAA,EACkD;AAClD,EAAA,OAAO;AAAA,IACLW,QAAAA,EAAU,CAACC,2BAAAA,EAA6BJ,OAAO,CAAA;AAAA,IAC/CK,SAAS,OAAO;AAAA,MAAEC;AAAAA,KAAO,KAAM;AAC7B,MAAA,MAAMC,KAAAA,GAAQ,MAAMC,iCAAAA,CAAkCR,OAAAA,EAASM,MAAM,CAAA;AAErE,MAAA,MAAMlB,IAAAA,GAAOqB,iBAAAA,CAAkBF,KAAAA,EAAOP,OAAO,CAAA;AAE7C,MAAA,OAAO;AAAA,QACLU,GAAAA,EAAKV,OAAAA;AAAAA,QACLW,MAAMvB,IAAAA,CAAKuB,IAAAA;AAAAA,QACXvB,IAAAA;AAAAA,QACAI,GAAAA;AAAAA;AAAAA,QAEAP,SAAAA,EAAWS,KAAAA,CAAMkB,OAAAA,CAAQxB,IAAAA,CAAKyB,MAAM;AAAA,OACtC;AAAA,IACF,CAAA;AAAA,IACAC,SAAAA,EAAWC,QAAAA;AAAAA,IACXC,MAAAA,EAAQD,QAAAA;AAAAA;AAAAA,IAGRE,iBAAAA,EAAmBA,CAACC,OAAAA,EAASC,OAAAA,KAC3BrC,WAAAA,CACEoC,OAAAA,EACAC,OACF,CAAA,GACID,OAAAA,GACAE,gBAAAA,CAAiBF,OAAAA,EAASC,OAAO;AAAA,GACzC;AACF;AAGO,SAASlB,wBAAAA,CACdD,SACAR,GAAAA,EACkD;AAClD,EAAA,OAAO;AAAA,IACL,GAAGU,2BAAAA,CAA+BF,OAAAA,EAASR,GAAG,CAAA;AAAA,IAC9C6B,mBAAAA,EAAqB,CAAC,MAAM,CAAA;AAAA,IAC5BC,eAAAA,EAAiBC,yBAAyBvB,OAAO,CAAA;AAAA;AAAA,IACjDwB,cAAAA,EAAgB;AAAA,GAClB;AACF;AAEO,MAAMC,4BAAAA,GAA+BA,CAAAlC,QAAAA,EAAAC,GAAAA,KAAA;AAAA,EAAA,MAAAkC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAF,EAAA,CAAA,CAAA,KAAAnC,YAAAmC,CAAAA,QAAAlC,GAAAA,EAAA;AAO/BoC,IAAAA,EAAAA,GAAAtC,qBAAAA,CAAsBC,UAAUC,GAAG,CAAA;AAACkC,IAAAA,CAAAA,MAAAnC,QAAAA;AAAAmC,IAAAA,CAAAA,MAAAlC,GAAAA;AAAAkC,IAAAA,CAAAA,MAAAE,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAF,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAG,EAAAA;AAAA,EAAA,IAAAH,CAAAA,QAAAE,EAAAA,EAAA;AAD7CC,IAAAA,EAAAA,GAAA;AAAA,MAAAC,OAAAA,EACSF;AAAAA,KACX;AAACF,IAAAA,CAAAA,MAAAE,EAAAA;AAAAF,IAAAA,CAAAA,MAAAG,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAH,EAAA,CAAA,CAAA;AAAA,EAAA;AAJD,EAAA,MAAAK,YAAAA,GAAqBC,WAEnBH,EAED,CAAA;AAAE,EAAA,IAAAI,EAAAA;AAAA,EAAA,IAAAP,CAAAA,QAAAK,YAAAA,EAAA;AAICE,IAAAA,EAAAA,GAAAF,YAAAA,CAAYhC,IAAKmC,KAMf,CAAA;AAACR,IAAAA,CAAAA,MAAAK,YAAAA;AAAAL,IAAAA,CAAAA,MAAAO,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAP,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OANHO,EAAAA;AAMG;AAKF,SAAAE,aAAAA,CAAA5C,UAAAC,GAAAA,EAAA;AAAA,EAAA,MAAAkC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAIL,EAAA,MAAAI,YAAAA,GAAqBN,4BAAAA,CAA6BlC,QAAAA,EAAUC,GAAG,CAAA;AAAE,EAAA,IAAAoC,EAAAA;AAAA,EAAA,IAAAF,CAAAA,QAAAK,YAAAA,EAAA;AAGzDH,IAAAA,EAAAA,GAAAG,YAAAA,CAAYhC,IAAKqC,MAA4C,CAAA;AAACV,IAAAA,CAAAA,MAAAK,YAAAA;AAAAL,IAAAA,CAAAA,MAAAE,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAF,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAA9DE,EAAAA;AAA8D;AAPjE,SAAAQ,OAAAR,EAAAA,EAAA;AAOqB,EAAA,MAAA;AAAA,IAAAS;AAAAA,GAAA,GAAAT,EAAAA;AAAqB,EAAA,OAAKS,iBAAAA;AAAiB;AAKhE,SAAAC,kBAAAA,GAAA;AAAA,EAAA,MAAAZ,CAAAA,GAAAC,cAAA,CAAA,CAAA;AACL,EAAA,MAAAY,qBAAAA,GAA8BC,aAAaC,iBAAiB,CAAA;AAAE,EAAA,IAAAb,EAAAA;AAAA,EAAA,IAAAF,CAAAA,QAAAa,qBAAAA,EAAA;AAGjCX,IAAAA,EAAAA,GAAAc,qBAAAA,CAAqBC,OAChDJ,qBACF,CAAA;AAACb,IAAAA,CAAAA,MAAAa,qBAAAA;AAAAb,IAAAA,CAAAA,MAAAE,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAF,EAAA,CAAA,CAAA;AAAA,EAAA;AAFD,EAAA,MAAAkB,oBAAAA,GAA6BhB,EAAAA;AAE3B,EAAA,OAEKO,cAAcS,oBAAoB,CAAA;AAAC;AA3CA,SAAAV,MAAAW,MAAAA,EAAA;AAAA,EAAA,OAYR;AAAA,IAAAR,iBAAAA,EAG1BQ,OAAMzD,IAAAA,IACNmC,wBAAAA,CAAyBsB,OAAMC,KAAAA,EAAcC,MAAAA,EAAKrC,OAAzB,EAA+B,CAAA;AAAA,IAACmC;AAAAA,GAE7D;AAAC;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@velora-dex/widget",
|
|
3
|
-
"version": "0.3.1",
|
|
3
|
+
"version": "0.3.2-dev.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
"@tanstack/react-pacer": "^0.14.0",
|
|
75
75
|
"@tanstack/react-virtual": "^3.13.12",
|
|
76
76
|
"@uniswap/token-lists": "1.0.0-beta.34",
|
|
77
|
-
"@velora-dex/sdk": "9.3.
|
|
77
|
+
"@velora-dex/sdk": "9.3.1",
|
|
78
78
|
"@wagmi/core": "^2.18.1",
|
|
79
79
|
"axios": "^1.11.0",
|
|
80
80
|
"big.js": "^7.0.1",
|