@velora-dex/widget 0.1.3 → 0.2.0
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/_virtual/index.js +1 -1
- package/dist/components/ui/accordion.d.ts +3 -1
- package/dist/components/ui/accordion.d.ts.map +1 -1
- package/dist/components/ui/accordion.js +42 -27
- package/dist/components/ui/accordion.js.map +1 -1
- package/dist/components/ui/button.js.map +1 -1
- package/dist/components/ui/dialog.js.map +1 -1
- package/dist/components/ui/dropdown-menu.js.map +1 -1
- package/dist/components/ui/progress.js.map +1 -1
- package/dist/components/ui/sonner.js.map +1 -1
- package/dist/components/ui/tooltip.js.map +1 -1
- package/dist/components/web3/AccountButton.js.map +1 -1
- package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.js.map +1 -1
- package/dist/components/web3/ConnectWallets/WalletConnectButtons.js.map +1 -1
- package/dist/components/web3/ConnectWallets/index.js +43 -35
- package/dist/components/web3/ConnectWallets/index.js.map +1 -1
- package/dist/components/web3/ConnectWallets/privy/button.js.map +1 -1
- package/dist/components/web3/ConnectWallets/privy/iframe.js.map +1 -1
- package/dist/components/web3/ConnectWallets/walletIcons.js.map +1 -1
- package/dist/components/web3/ConnectedWallet/ConnectedWallet.js.map +1 -1
- package/dist/components/widget/AppHeader/Activities/Activities.js +4 -12
- package/dist/components/widget/AppHeader/Activities/Activities.js.map +1 -1
- package/dist/components/widget/AppHeader/Activities/ActivityItems.js.map +1 -1
- package/dist/components/widget/AppHeader/Activities/Drawers.js.map +1 -1
- package/dist/components/widget/AppHeader/Activities/hooks.js.map +1 -1
- package/dist/components/widget/AppHeader/ActivityButton.js.map +1 -1
- package/dist/components/widget/AppHeader/AppHeader.js.map +1 -1
- package/dist/components/widget/AppHeader/TradeModeSwitcher.js.map +1 -1
- package/dist/components/widget/Details/DetailWithValueList.js.map +1 -1
- package/dist/components/widget/Details/DetailWithValueListExpandable.js.map +1 -1
- package/dist/components/widget/DexesList/DexItem.js.map +1 -1
- package/dist/components/widget/DexesList/DexesList.js +3 -14
- package/dist/components/widget/DexesList/DexesList.js.map +1 -1
- package/dist/components/widget/Dialog/DialogRoot.js.map +1 -1
- package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressDialog.js +131 -115
- package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressDialog.js.map +1 -1
- package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressInput.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js +4 -12
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/RegularTokenList.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/index.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListRow.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenSearch.js.map +1 -1
- package/dist/components/widget/Dialog/state/dialogAtom.js +24 -26
- package/dist/components/widget/Dialog/state/dialogAtom.js.map +1 -1
- package/dist/components/widget/Drawer/Overlay.js.map +1 -1
- package/dist/components/widget/Drawer/index.js.map +1 -1
- package/dist/components/widget/Drawer/state/useDrawerControls.js.map +1 -1
- package/dist/components/widget/ImportToken/ImportToken.js.map +1 -1
- package/dist/components/widget/ImportToken/useImportTokenDrawer.js.map +1 -1
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/Controls.js.map +1 -1
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/LimitOrderDetails.js.map +1 -1
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderListItem.js +84 -66
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderListItem.js.map +1 -1
- package/dist/components/widget/LimitPriceInput/index.js.map +1 -1
- package/dist/components/widget/Line/Line.js.map +1 -1
- package/dist/components/widget/NetworkIcon/NetworkIconSquare.js.map +1 -1
- package/dist/components/widget/NetworkSwitcher/CompactNetworkSwitcher.js.map +1 -1
- package/dist/components/widget/NetworkSwitcher/NetworkSwitcherDropdown.js +28 -30
- package/dist/components/widget/NetworkSwitcher/NetworkSwitcherDropdown.js.map +1 -1
- package/dist/components/widget/NetworkWithIcon/NetworkIconWithChevron.js.map +1 -1
- package/dist/components/widget/NetworkWithIcon/NetworkWithIcon.js.map +1 -1
- package/dist/components/widget/OrderExpiryInput/index.js.map +1 -1
- package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/Controls.js.map +1 -1
- package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/OtcOrderDetails.js.map +1 -1
- package/dist/components/widget/OtcOrdersDrawer/OtcOrderListItem.js.map +1 -1
- package/dist/components/widget/PayReceiveInfo/PayReceiveInfo.js.map +1 -1
- package/dist/components/widget/ReceiverAddress/ReceiverAddress.js.map +1 -1
- package/dist/components/widget/ReceiverAddress/state/receiverAddressAtom.js.map +1 -1
- package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcControls.js.map +1 -1
- package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcReviewAndConfirm.js.map +1 -1
- package/dist/components/widget/SelectToken/SelectTokenButton.js.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/SwapModeSwitcherExpandable.js.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js.map +1 -1
- package/dist/components/widget/SwapRate/SwapRate.js +75 -43
- package/dist/components/widget/SwapRate/SwapRate.js.map +1 -1
- package/dist/components/widget/Tabs/Tabs.js.map +1 -1
- package/dist/components/widget/Toasts/CustomToast.js.map +1 -1
- package/dist/components/widget/TokenBadge/TokenBadge.js.map +1 -1
- package/dist/components/widget/TokenInput/index.js.map +1 -1
- package/dist/components/widget/TokenSwitcher/TokenSwitcher.js.map +1 -1
- package/dist/components/widget/TradeOverview/Step/Step.js.map +1 -1
- package/dist/components/widget/TradeOverview/Stepper.js +23 -38
- package/dist/components/widget/TradeOverview/Stepper.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteFooter.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteHeader.js +36 -27
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteHeader.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/useTradeCompleteDetails.js +79 -36
- package/dist/components/widget/TradeOverview/TradeComplete/useTradeCompleteDetails.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeDetailsDisplay.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverview.d.ts +3 -0
- package/dist/components/widget/TradeOverview/TradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverviewFooter.js.map +1 -1
- package/dist/components/widget/TradeOverview/tradeFlowContext.js.map +1 -1
- package/dist/components/widget/TradeParameters/SlippageParameter/SlippageParameter.js.map +1 -1
- package/dist/components/widget/TradeParameters/SlippageParameter/hooks/useCustomSlippageProps.js.map +1 -1
- package/dist/components/widget/TradeParameters/TradeParameters.js.map +1 -1
- package/dist/components/widget/TradeParameters/TransactionSpeedParameter.js.map +1 -1
- package/dist/components/widget/TradeParameters/hooks/useIsNotDefaultAnyParameter.js.map +1 -1
- package/dist/components/widget/TradeParameters/state/gasPresetParamAtom.js.map +1 -1
- package/dist/components/widget/TradeParameters/useTempTradeParameters.js.map +1 -1
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.js.map +1 -1
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/TransactionDetails.js.map +1 -1
- package/dist/components/widget/TransactionDetails/TransactionListItem.js +57 -38
- package/dist/components/widget/TransactionDetails/TransactionListItem.js.map +1 -1
- package/dist/components/widget/Warning/InsufficientBalanceMessage.js.map +1 -1
- package/dist/components/widget/Warning/Warning.js.map +1 -1
- package/dist/components/widget/Warning/WarningMessage.js.map +1 -1
- package/dist/components/widget/WrapEth/WrapEthContent.js.map +1 -1
- package/dist/components/widget/WrapEth/WrapEthDrawerButton.d.ts.map +1 -1
- package/dist/components/widget/WrapEth/WrapEthDrawerButton.js +72 -90
- package/dist/components/widget/WrapEth/WrapEthDrawerButton.js.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.d.ts.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js +141 -84
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js.map +1 -1
- package/dist/components/widget/YouGet/YouGet.js.map +1 -1
- package/dist/configurator/Configurator.d.ts.map +1 -1
- package/dist/configurator/components/AllowNoUsdPricesSwitcher.d.ts +5 -0
- package/dist/configurator/components/AllowNoUsdPricesSwitcher.d.ts.map +1 -0
- package/dist/configurator/components/CrossChainSwitcher.d.ts +5 -0
- package/dist/configurator/components/CrossChainSwitcher.d.ts.map +1 -0
- package/dist/configurator/components/DeltaSwitcher.d.ts +5 -0
- package/dist/configurator/components/DeltaSwitcher.d.ts.map +1 -0
- package/dist/configurator/components/DevTools.d.ts +7 -0
- package/dist/configurator/components/DevTools.d.ts.map +1 -0
- package/dist/configurator/components/EnabledChainsSelector.d.ts +8 -0
- package/dist/configurator/components/EnabledChainsSelector.d.ts.map +1 -0
- package/dist/configurator/components/FormPropsInputs.d.ts +6 -0
- package/dist/configurator/components/FormPropsInputs.d.ts.map +1 -0
- package/dist/configurator/components/PanelHeader.d.ts +6 -0
- package/dist/configurator/components/PanelHeader.d.ts.map +1 -0
- package/dist/configurator/components/PartnerInput.d.ts +5 -0
- package/dist/configurator/components/PartnerInput.d.ts.map +1 -0
- package/dist/configurator/components/PrivyInputs.d.ts +7 -0
- package/dist/configurator/components/PrivyInputs.d.ts.map +1 -0
- package/dist/configurator/components/ThemeSwitcher.d.ts +6 -0
- package/dist/configurator/components/ThemeSwitcher.d.ts.map +1 -0
- package/dist/configurator/components/TokenListsInput.d.ts +5 -0
- package/dist/configurator/components/TokenListsInput.d.ts.map +1 -0
- package/dist/configurator/components/TradeModesSelector.d.ts +7 -0
- package/dist/configurator/components/TradeModesSelector.d.ts.map +1 -0
- package/dist/configurator/components/WidgetModeSwitcher.d.ts +5 -0
- package/dist/configurator/components/WidgetModeSwitcher.d.ts.map +1 -0
- package/dist/configurator/components/common/DetailWithTooltip.d.ts +3 -0
- package/dist/configurator/components/common/DetailWithTooltip.d.ts.map +1 -0
- package/dist/configurator/components/common/Input.d.ts +8 -0
- package/dist/configurator/components/common/Input.d.ts.map +1 -0
- package/dist/configurator/components/common/Switch.d.ts +12 -0
- package/dist/configurator/components/common/Switch.d.ts.map +1 -0
- package/dist/configurator/state/themeAtom.d.ts +3 -0
- package/dist/configurator/state/themeAtom.d.ts.map +1 -0
- package/dist/core/ConnectWalletDrawerButton.js +53 -66
- package/dist/core/ConnectWalletDrawerButton.js.map +1 -1
- package/dist/core/LimitOrderButton.js.map +1 -1
- package/dist/core/LimitOrderDetails.js.map +1 -1
- package/dist/core/OtcOrderButton.d.ts.map +1 -1
- package/dist/core/OtcOrderButton.js +4 -1
- package/dist/core/OtcOrderButton.js.map +1 -1
- package/dist/core/OtcOrderDetails.js.map +1 -1
- package/dist/core/Toaster.js.map +1 -1
- package/dist/core/TradeFlowButton.d.ts.map +1 -1
- package/dist/core/TradeFlowButton.js +414 -621
- package/dist/core/TradeFlowButton.js.map +1 -1
- package/dist/core/Updaters.js.map +1 -1
- package/dist/core/Warnings.js.map +1 -1
- package/dist/core/button/hooks/useWidgetButtonExtraProps.js.map +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/inputs/hooks/useTokenFromInputProps.d.ts.map +1 -1
- package/dist/core/inputs/hooks/useTokenFromInputProps.js +83 -54
- package/dist/core/inputs/hooks/useTokenFromInputProps.js.map +1 -1
- package/dist/core/inputs/hooks/useTokenSwitcherProps.js.map +1 -1
- package/dist/core/inputs/hooks/useTokenToInputProps.js +20 -28
- package/dist/core/inputs/hooks/useTokenToInputProps.js.map +1 -1
- package/dist/core/inputs/state/common.js.map +1 -1
- package/dist/core/inputs/state/selectedTokenAtom.js.map +1 -1
- package/dist/core/inputs/state/setTokenByAddressAtom.js.map +1 -1
- package/dist/core/limit/state/deadlineAtom.js.map +1 -1
- package/dist/core/limit/state/selectedTokenAtom.js.map +1 -1
- package/dist/core/limit/useLimitDetailsListProps.js.map +1 -1
- package/dist/core/limit/useLimitNotSupported.js +12 -1
- package/dist/core/limit/useLimitNotSupported.js.map +1 -1
- package/dist/core/limit/useLimitPriceDifference.js.map +1 -1
- package/dist/core/limit/useLimitPriceInputProps.js.map +1 -1
- package/dist/core/limit/useLimitRate.js.map +1 -1
- package/dist/core/limit/useLimitTokenFromInputProps.d.ts.map +1 -1
- package/dist/core/limit/useLimitTokenFromInputProps.js +69 -52
- package/dist/core/limit/useLimitTokenFromInputProps.js.map +1 -1
- package/dist/core/limit/useLimitTokenSwitcherProps.js.map +1 -1
- package/dist/core/limit/useLimitTokenToInputProps.js.map +1 -1
- package/dist/core/logger.js +12 -14
- package/dist/core/logger.js.map +1 -1
- package/dist/core/otc/state/deadlineAtom.js.map +1 -1
- package/dist/core/otc/state/receiverAddressAtom.js.map +1 -1
- package/dist/core/otc/state/selectedTokenAtom.js.map +1 -1
- package/dist/core/otc/useOtcDetailsListProps.js.map +1 -1
- package/dist/core/otc/useOtcNotSupported.js +12 -1
- package/dist/core/otc/useOtcNotSupported.js.map +1 -1
- package/dist/core/otc/useOtcPriceDifference.js.map +1 -1
- package/dist/core/otc/useOtcPriceInputProps.js.map +1 -1
- package/dist/core/otc/useOtcTokenFromInputProps.d.ts.map +1 -1
- package/dist/core/otc/useOtcTokenFromInputProps.js +69 -52
- package/dist/core/otc/useOtcTokenFromInputProps.js.map +1 -1
- package/dist/core/otc/useOtcTokenSwitcherProps.js.map +1 -1
- package/dist/core/otc/useOtcTokenToInputProps.js.map +1 -1
- package/dist/core/state/chainToAtom.js.map +1 -1
- package/dist/core/state/configAtom.d.ts +2 -2
- package/dist/core/state/configAtom.d.ts.map +1 -1
- package/dist/core/state/configAtom.js +1 -7
- package/dist/core/state/configAtom.js.map +1 -1
- package/dist/core/state/configEffectAtom.js.map +1 -1
- package/dist/core/state/containerAtom.js.map +1 -1
- package/dist/core/state/enabledChainsAtom.js.map +1 -1
- package/dist/core/state/externalProviderAtom.js.map +1 -1
- package/dist/core/state/isCrosschainAtom.js.map +1 -1
- package/dist/core/state/tradeModeAtom.js.map +1 -1
- package/dist/core/state/widgetEventsAtom.js.map +1 -1
- package/dist/core/swapDetails/useSwapDetailsListProps.js +34 -36
- package/dist/core/swapDetails/useSwapDetailsListProps.js.map +1 -1
- package/dist/events/hooks/useActivateEffects.js.map +1 -1
- package/dist/events/hooks/useOnWalletConnect.js.map +1 -1
- package/dist/events/types/approve.d.ts +22 -6
- package/dist/events/types/approve.d.ts.map +1 -1
- package/dist/external/.pnpm/react-compiler-runtime@1.0.0_react@19.1.1/external/react-compiler-runtime/dist/index.js.map +1 -0
- package/dist/hooks/batch/useAwaitCalls.d.ts.map +1 -1
- package/dist/hooks/batch/useAwaitCalls.js +20 -16
- package/dist/hooks/batch/useAwaitCalls.js.map +1 -1
- package/dist/hooks/batch/useCanBatchTxs.js.map +1 -1
- package/dist/hooks/batch/useSendBatchTx.js.map +1 -1
- package/dist/hooks/connectors/useIsConnectedSafe.js +10 -18
- package/dist/hooks/connectors/useIsConnectedSafe.js.map +1 -1
- package/dist/hooks/connectors/useIsGnosisSafeConnector.js.map +1 -1
- package/dist/hooks/connectors/useIsSafeThroughWalletConnect.js +4 -15
- package/dist/hooks/connectors/useIsSafeThroughWalletConnect.js.map +1 -1
- package/dist/hooks/gas/useGasPrices.js.map +1 -1
- package/dist/hooks/getCode/useIsAccountContract.js.map +1 -1
- package/dist/hooks/getCode/useIsContractAtAddress.js +30 -46
- package/dist/hooks/getCode/useIsContractAtAddress.js.map +1 -1
- package/dist/hooks/otc/mutations/useCancelLimitOrder.d.ts.map +1 -1
- package/dist/hooks/otc/mutations/useCancelLimitOrder.js +21 -12
- package/dist/hooks/otc/mutations/useCancelLimitOrder.js.map +1 -1
- package/dist/hooks/otc/mutations/useCreateLimitOrder.d.ts.map +1 -1
- package/dist/hooks/otc/mutations/useCreateLimitOrder.js +22 -12
- package/dist/hooks/otc/mutations/useCreateLimitOrder.js.map +1 -1
- package/dist/hooks/otc/mutations/useFillOrder.d.ts.map +1 -1
- package/dist/hooks/otc/mutations/useFillOrder.js +10 -32
- package/dist/hooks/otc/mutations/useFillOrder.js.map +1 -1
- package/dist/hooks/otc/queries/useLimitOrderRequiredBalance.d.ts +22 -3
- package/dist/hooks/otc/queries/useLimitOrderRequiredBalance.d.ts.map +1 -1
- package/dist/hooks/otc/queries/useLimitOrderRequiredBalance.js +39 -2
- package/dist/hooks/otc/queries/useLimitOrderRequiredBalance.js.map +1 -1
- package/dist/hooks/otc/queries/useLimitOrders.js.map +1 -1
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.d.ts.map +1 -1
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js +2 -3
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js.map +1 -1
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderStep.js.map +1 -1
- package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.d.ts +7 -4
- package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.d.ts.map +1 -1
- package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.js +46 -4
- package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.js.map +1 -1
- package/dist/hooks/otc/tradeFlow/useOtcOrderStep.d.ts.map +1 -1
- package/dist/hooks/otc/tradeFlow/useOtcOrderStep.js +38 -36
- package/dist/hooks/otc/tradeFlow/useOtcOrderStep.js.map +1 -1
- package/dist/hooks/permit/hooks/common/useSignArbitraryTypedData.js.map +1 -1
- package/dist/hooks/permit/hooks/common/useSignPermit.js.map +1 -1
- package/dist/hooks/permit/hooks/common/useWalletSupportsPermit.js.map +1 -1
- package/dist/hooks/permit/hooks/permit1/useGetPermitInfo.js.map +1 -1
- package/dist/hooks/permit/hooks/permit1/useGetSafePermitInfo.js.map +1 -1
- package/dist/hooks/permit/hooks/permit1/useSignTokenPermit1.js.map +1 -1
- package/dist/hooks/permit/hooks/permit1/useTokenFromPermit1Nonce.js.map +1 -1
- package/dist/hooks/permit/hooks/permit1/useTokenFromPermitInfo.js.map +1 -1
- package/dist/hooks/permit/hooks/permit1/useTryToSignPermit1.js.map +1 -1
- package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.js +39 -31
- package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.js.map +1 -1
- package/dist/hooks/permit/hooks/permit2/useSignTokenPermit2TransferFrom.js +7 -15
- package/dist/hooks/permit/hooks/permit2/useSignTokenPermit2TransferFrom.js.map +1 -1
- package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2TransferFromNonce.js.map +1 -1
- package/dist/hooks/sdk/useGetContracts.js.map +1 -1
- package/dist/hooks/sdk/useSpender.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelLimitDeltaOrders.d.ts +2 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelLimitDeltaOrders.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelLimitDeltaOrders.js +23 -13
- package/dist/hooks/swap/prices/delta/mutations/useCancelLimitDeltaOrders.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.d.ts +3 -2
- package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.js +41 -10
- package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.d.ts +25 -0
- package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.js +88 -0
- package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.js.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.d.ts +16 -0
- package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.js +83 -0
- package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.js.map +1 -0
- package/dist/hooks/swap/prices/delta/orders/utils.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/orders/utils.js +3 -2
- package/dist/hooks/swap/prices/delta/orders/utils.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.d.ts +22 -3
- package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.js +39 -2
- package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaOrders.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useIsTokenSupportedInDelta.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/market/mutations/useBuildTx.js.map +1 -1
- package/dist/hooks/swap/prices/market/mutations/useSendMarketSwapTx.js.map +1 -1
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js.map +1 -1
- package/dist/hooks/swap/prices/market/queries/useSpenderAndContracts.d.ts +9 -0
- package/dist/hooks/swap/prices/market/queries/useSpenderAndContracts.d.ts.map +1 -1
- package/dist/hooks/swap/prices/market/queries/useSpenderAndContracts.js +49 -2
- package/dist/hooks/swap/prices/market/queries/useSpenderAndContracts.js.map +1 -1
- package/dist/hooks/swap/prices/usePricesParams.js.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
- package/dist/hooks/swap/prices/useTokenInputsFromPrice.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/types.d.ts +17 -0
- package/dist/hooks/swap/tradeFlow/common/types.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.d.ts +3 -1
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js +164 -140
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermitEvents.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useBatchWrapAndApprove.d.ts +46 -0
- package/dist/hooks/swap/tradeFlow/common/useBatchWrapAndApprove.d.ts.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/useBatchWrapAndApprove.js +328 -0
- package/dist/hooks/swap/tradeFlow/common/useBatchWrapAndApprove.js.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/useConstructGasParams.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useConstructGasParams.js +16 -14
- package/dist/hooks/swap/tradeFlow/common/useConstructGasParams.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.d.ts +74 -0
- package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.d.ts.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.js +274 -0
- package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.js.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/useRequiredAllowanceForOrders.d.ts +15 -0
- package/dist/hooks/swap/tradeFlow/common/useRequiredAllowanceForOrders.d.ts.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/useRequiredAllowanceForOrders.js +88 -0
- package/dist/hooks/swap/tradeFlow/common/useRequiredAllowanceForOrders.js.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/utils.d.ts +1 -0
- package/dist/hooks/swap/tradeFlow/common/utils.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/utils.js +16 -1
- package/dist/hooks/swap/tradeFlow/common/utils.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts +28 -23
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +59 -17
- 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/useLimitOrderFlow.d.ts +4 -3
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js +61 -15
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderStep.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts +2 -18
- package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts.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/allowance/useTokenAllowance.js +25 -15
- package/dist/hooks/tokens/allowance/useTokenAllowance.js.map +1 -1
- package/dist/hooks/tokens/balances/useAttachTokenBalanceMultichain.js +8 -10
- package/dist/hooks/tokens/balances/useAttachTokenBalanceMultichain.js.map +1 -1
- package/dist/hooks/tokens/balances/useIsInsufficientTokenBalance.js.map +1 -1
- package/dist/hooks/tokens/balances/useIsLimitOrderInsufficientBalance.js.map +1 -1
- package/dist/hooks/tokens/balances/useMultichainTokenBalances.js +20 -37
- package/dist/hooks/tokens/balances/useMultichainTokenBalances.js.map +1 -1
- package/dist/hooks/tokens/balances/useTokenBalance.js.map +1 -1
- package/dist/hooks/tokens/data/useCombineTokensWithFetched.js +11 -19
- package/dist/hooks/tokens/data/useCombineTokensWithFetched.js.map +1 -1
- package/dist/hooks/tokens/data/useFetchTokens.js.map +1 -1
- package/dist/hooks/tokens/data/useMultichainTokensData.js.map +1 -1
- package/dist/hooks/tokens/prices/useMultichainTokenPrices.js +21 -25
- package/dist/hooks/tokens/prices/useMultichainTokenPrices.js.map +1 -1
- package/dist/hooks/tokens/prices/useTokenPrices.js.map +1 -1
- package/dist/hooks/tokens/useAllTokensWithFilter.js +121 -49
- package/dist/hooks/tokens/useAllTokensWithFilter.js.map +1 -1
- package/dist/hooks/tokens/useNativeToken.js +1 -1
- package/dist/hooks/tokens/useNativeToken.js.map +1 -1
- package/dist/hooks/tokens/useTokenTaxFee.js.map +1 -1
- package/dist/hooks/tokens/useTokensByAddress.js.map +1 -1
- package/dist/hooks/tokens/useTokensFromAcross.js.map +1 -1
- package/dist/hooks/txs/mutations/useApprove.js.map +1 -1
- package/dist/hooks/txs/mutations/useDepositWeth.js.map +1 -1
- package/dist/hooks/txs/mutations/useSendTx.js.map +1 -1
- package/dist/hooks/txs/queries/useAwaitTx.js.map +1 -1
- package/dist/hooks/txs/queries/useTxHistory.js.map +1 -1
- package/dist/hooks/useAvailableCrosses.js.map +1 -1
- package/dist/hooks/useBridgeInfo.js.map +1 -1
- package/dist/hooks/useCurrentChain.js.map +1 -1
- package/dist/hooks/useDebouncedInputState.js.map +1 -1
- package/dist/hooks/useEIP1559Enabled.js.map +1 -1
- package/dist/hooks/useGlobalDeltaEnabled.js.map +1 -1
- package/dist/hooks/useIsCrosschainPossible.js.map +1 -1
- package/dist/hooks/useMinViemClient.js.map +1 -1
- package/dist/hooks/useSDK.d.ts +3 -2
- package/dist/hooks/useSDK.d.ts.map +1 -1
- package/dist/hooks/useSDK.js +37 -8
- package/dist/hooks/useSDK.js.map +1 -1
- package/dist/hooks/useSelectableDestChains.js.map +1 -1
- package/dist/hooks/useSlippage.js.map +1 -1
- package/dist/lib/utils/approval.js.map +1 -1
- package/dist/lib/utils/theme.d.ts +2 -0
- package/dist/lib/utils/theme.d.ts.map +1 -0
- package/dist/lib/utils/theme.js +10 -0
- package/dist/lib/utils/theme.js.map +1 -0
- package/dist/lib/web3/privy/config.js +1 -1
- package/dist/lib/web3/wagmi/config.js +1 -1
- package/dist/lib/web3/wagmi/isInsideSafeIframe.js.map +1 -1
- package/dist/styles.css +80 -39
- package/dist/tokens/hooks.js.map +1 -1
- package/dist/tokens/lists/state/effects.js.map +1 -1
- package/dist/tokens/queries.js +6 -10
- package/dist/tokens/queries.js.map +1 -1
- package/dist/tokens/stabeCoins/hooks.js +3 -5
- package/dist/tokens/stabeCoins/hooks.js.map +1 -1
- package/dist/tokens/utils/transferAmountsFromReceipt.js.map +1 -1
- package/dist/transactions/queries/ensureCallsStatus.d.ts +1 -0
- package/dist/transactions/queries/ensureCallsStatus.d.ts.map +1 -1
- package/dist/transactions/queries/ensureCallsStatus.js +7 -5
- package/dist/transactions/queries/ensureCallsStatus.js.map +1 -1
- package/dist/transactions/state/hooks/useActivateEffects.js.map +1 -1
- package/dist/transactions/state/hooks/useTransactions.js.map +1 -1
- package/dist/transactions/types.d.ts +21 -1
- package/dist/transactions/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/dist/external/.pnpm/react-compiler-runtime@19.1.0-rc.2_react@19.1.1/external/react-compiler-runtime/dist/index.js.map +0 -1
- /package/dist/external/.pnpm/{react-compiler-runtime@19.1.0-rc.2_react@19.1.1 → react-compiler-runtime@1.0.0_react@19.1.1}/external/react-compiler-runtime/dist/index.js +0 -0
|
@@ -7,7 +7,7 @@ import { assert } from 'ts-essentials';
|
|
|
7
7
|
import { isSupportedChainId } from '../../../lib/web3/wagmi/utils.js';
|
|
8
8
|
|
|
9
9
|
const useMultiChainTokenBalances = (t0) => {
|
|
10
|
-
const $ = distExports.c(
|
|
10
|
+
const $ = distExports.c(9);
|
|
11
11
|
const {
|
|
12
12
|
addressesMap,
|
|
13
13
|
select
|
|
@@ -17,10 +17,9 @@ const useMultiChainTokenBalances = (t0) => {
|
|
|
17
17
|
} = useAccount();
|
|
18
18
|
let t1;
|
|
19
19
|
if ($[0] !== account || $[1] !== addressesMap || $[2] !== select) {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
const [_chainId, addresses] = t32;
|
|
20
|
+
t1 = {
|
|
21
|
+
queries: Object.entries(addressesMap).map((t22) => {
|
|
22
|
+
const [_chainId, addresses] = t22;
|
|
24
23
|
const validAddressesLowerCase = addresses.map(_temp).filter(_temp2);
|
|
25
24
|
const chainId = Number(_chainId);
|
|
26
25
|
assert(isSupportedChainId(chainId), "SupportedChainId guaranteed by");
|
|
@@ -28,14 +27,8 @@ const useMultiChainTokenBalances = (t0) => {
|
|
|
28
27
|
tokenAddressesLowercase: validAddressesLowerCase,
|
|
29
28
|
chainId,
|
|
30
29
|
account});
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
$[5] = select;
|
|
34
|
-
$[6] = t22;
|
|
35
|
-
} else {
|
|
36
|
-
t22 = $[6];
|
|
37
|
-
}
|
|
38
|
-
t1 = Object.entries(addressesMap).map(t22);
|
|
30
|
+
})
|
|
31
|
+
};
|
|
39
32
|
$[0] = account;
|
|
40
33
|
$[1] = addressesMap;
|
|
41
34
|
$[2] = select;
|
|
@@ -43,41 +36,31 @@ const useMultiChainTokenBalances = (t0) => {
|
|
|
43
36
|
} else {
|
|
44
37
|
t1 = $[3];
|
|
45
38
|
}
|
|
39
|
+
const queriesResult = useQueries(t1);
|
|
46
40
|
let t2;
|
|
47
|
-
if ($[
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
$[7] = t1;
|
|
52
|
-
$[8] = t2;
|
|
53
|
-
} else {
|
|
54
|
-
t2 = $[8];
|
|
55
|
-
}
|
|
56
|
-
const queriesResult = useQueries(t2);
|
|
57
|
-
let t3;
|
|
58
|
-
if ($[9] !== addressesMap || $[10] !== queriesResult) {
|
|
59
|
-
let t4;
|
|
60
|
-
if ($[12] !== addressesMap) {
|
|
61
|
-
t4 = (acc, queryResult, index) => {
|
|
41
|
+
if ($[4] !== addressesMap || $[5] !== queriesResult) {
|
|
42
|
+
let t3;
|
|
43
|
+
if ($[7] !== addressesMap) {
|
|
44
|
+
t3 = (acc, queryResult, index) => {
|
|
62
45
|
if (queryResult.data) {
|
|
63
46
|
const chainId_0 = Object.keys(addressesMap)[index];
|
|
64
47
|
acc[Number(chainId_0)] = queryResult.data;
|
|
65
48
|
}
|
|
66
49
|
return acc;
|
|
67
50
|
};
|
|
68
|
-
$[
|
|
69
|
-
$[
|
|
51
|
+
$[7] = addressesMap;
|
|
52
|
+
$[8] = t3;
|
|
70
53
|
} else {
|
|
71
|
-
|
|
54
|
+
t3 = $[8];
|
|
72
55
|
}
|
|
73
|
-
|
|
74
|
-
$[
|
|
75
|
-
$[
|
|
76
|
-
$[
|
|
56
|
+
t2 = queriesResult.reduce(t3, {});
|
|
57
|
+
$[4] = addressesMap;
|
|
58
|
+
$[5] = queriesResult;
|
|
59
|
+
$[6] = t2;
|
|
77
60
|
} else {
|
|
78
|
-
|
|
61
|
+
t2 = $[6];
|
|
79
62
|
}
|
|
80
|
-
return
|
|
63
|
+
return t2;
|
|
81
64
|
};
|
|
82
65
|
function _temp(address) {
|
|
83
66
|
return address.toLowerCase();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMultichainTokenBalances.js","sources":["../../../../src/hooks/tokens/balances/useMultichainTokenBalances.ts"],"sourcesContent":["import type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useQueries } from \"@tanstack/react-query\";\nimport { isAddress, type Address } from \"viem\";\nimport { useAccount } from \"wagmi\";\nimport { constructTokenBalancesQueryOptions } from \"./queries\";\nimport type { AddressBalanceMap } from \"./types\";\nimport { assert } from \"ts-essentials\";\nimport { isSupportedChainId } from \"@/lib/web3/wagmi/utils\";\n\nexport const useMultiChainTokenBalances = <TData>({\n addressesMap,\n select,\n}: {\n addressesMap: Partial<Record<SupportedChainId, string[]>>;\n select?: (data: AddressBalanceMap) => TData;\n}) => {\n const { address: account } = useAccount();\n\n const queriesResult = useQueries({\n queries: Object.entries(addressesMap).map(([_chainId, addresses]) => {\n const validAddressesLowerCase = addresses\n .map((address) => address.toLowerCase() as Lowercase<string>)\n .filter((address): address is Lowercase<Address> => isAddress(address));\n\n const chainId = Number(_chainId);\n\n // Object.entries destroyed the types.\n // should not happen, but to satisfy TypeScript:\n assert(isSupportedChainId(chainId), \"SupportedChainId guaranteed by\");\n\n return constructTokenBalancesQueryOptions({\n tokenAddressesLowercase: validAddressesLowerCase,\n chainId,\n account: account,\n select,\n });\n }),\n });\n\n return queriesResult.reduce<Record<number, AddressBalanceMap>>(\n (acc, queryResult, index) => {\n if (queryResult.data) {\n const chainId = Object.keys(addressesMap)[index];\n acc[Number(chainId)] = queryResult.data;\n }\n return acc;\n },\n {}\n );\n};\n"],"names":["useMultiChainTokenBalances","t0","$","_c","addressesMap","select","address","account","useAccount","t1","
|
|
1
|
+
{"version":3,"file":"useMultichainTokenBalances.js","sources":["../../../../src/hooks/tokens/balances/useMultichainTokenBalances.ts"],"sourcesContent":["import type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useQueries } from \"@tanstack/react-query\";\nimport { isAddress, type Address } from \"viem\";\nimport { useAccount } from \"wagmi\";\nimport { constructTokenBalancesQueryOptions } from \"./queries\";\nimport type { AddressBalanceMap } from \"./types\";\nimport { assert } from \"ts-essentials\";\nimport { isSupportedChainId } from \"@/lib/web3/wagmi/utils\";\n\nexport const useMultiChainTokenBalances = <TData>({\n addressesMap,\n select,\n}: {\n addressesMap: Partial<Record<SupportedChainId, string[]>>;\n select?: (data: AddressBalanceMap) => TData;\n}) => {\n const { address: account } = useAccount();\n\n const queriesResult = useQueries({\n queries: Object.entries(addressesMap).map(([_chainId, addresses]) => {\n const validAddressesLowerCase = addresses\n .map((address) => address.toLowerCase() as Lowercase<string>)\n .filter((address): address is Lowercase<Address> => isAddress(address));\n\n const chainId = Number(_chainId);\n\n // Object.entries destroyed the types.\n // should not happen, but to satisfy TypeScript:\n assert(isSupportedChainId(chainId), \"SupportedChainId guaranteed by\");\n\n return constructTokenBalancesQueryOptions({\n tokenAddressesLowercase: validAddressesLowerCase,\n chainId,\n account: account,\n select,\n });\n }),\n });\n\n return queriesResult.reduce<Record<number, AddressBalanceMap>>(\n (acc, queryResult, index) => {\n if (queryResult.data) {\n const chainId = Object.keys(addressesMap)[index];\n acc[Number(chainId)] = queryResult.data;\n }\n return acc;\n },\n {}\n );\n};\n"],"names":["useMultiChainTokenBalances","t0","$","_c","addressesMap","select","address","account","useAccount","t1","queries","Object","entries","map","t2","_chainId","addresses","validAddressesLowerCase","_temp","filter","_temp2","chainId","Number","assert","isSupportedChainId","constructTokenBalancesQueryOptions","tokenAddressesLowercase","queriesResult","useQueries","t3","acc","queryResult","index","data","chainId_0","keys","reduce","toLowerCase","address_0","isAddress"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTokenBalance.js","sources":["../../../../src/hooks/tokens/balances/useTokenBalance.ts"],"sourcesContent":["import { ONE_MINUTE_MS } from \"@/lib/constants/time\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { isETH } from \"@/tokens/utils/eth\";\n\nimport { erc20Abi, formatUnits, isAddress } from \"viem\";\nimport { useAccount, useReadContract, useBalance } from \"wagmi\";\n\nexport const useERC20Balance = ({\n token,\n queryOptions: _queryOptions,\n}: UseTokenBalanceInput) => {\n const { address: account } = useAccount();\n const { enabled = true, ...queryOptions } = _queryOptions ?? {};\n\n const addressToFetch =\n token && isAddress(token.address) && !isETH({ address: token.address })\n ? token.address\n : undefined;\n\n return useReadContract({\n functionName: \"balanceOf\" as const,\n address: addressToFetch,\n chainId: token?.network,\n abi: erc20Abi,\n args: account ? [account] : undefined,\n query: {\n enabled: !!enabled && !!addressToFetch && !!account,\n refetchInterval: ONE_MINUTE_MS,\n refetchOnWindowFocus: false,\n ...queryOptions,\n },\n });\n};\n\nexport const useNativeBalance = (\n params?: Omit<UseTokenBalanceInput, \"token\">\n) => {\n const { address: account } = useAccount();\n const { enabled = true, ...queryOptions } = params?.queryOptions ?? {};\n\n return useBalance({\n address: account,\n chainId: params?.chainId,\n query: {\n enabled: !!enabled && !!account && !!params?.chainId,\n refetchInterval: ONE_MINUTE_MS,\n refetchOnWindowFocus: false,\n ...queryOptions,\n },\n });\n};\n\ntype UseTokenBalanceInput = {\n token?: Pick<Token, \"address\" | \"decimals\" | \"network\">;\n chainId?: SupportedChainId;\n queryOptions?: {\n refetchInterval?: number;\n refetchOnWindowFocus?: boolean | \"always\";\n enabled?: boolean;\n };\n};\n\n// BOTH\nexport const useTokenBalance = ({\n token,\n chainId,\n queryOptions,\n}: UseTokenBalanceInput) => {\n const requestedNative = token?.address\n ? isETH({ address: token.address })\n : undefined;\n\n const { data: nativeTokenBalance, ...nativeBalanceQueryResult } =\n useNativeBalance({\n chainId: chainId ?? token?.network,\n queryOptions: {\n enabled: requestedNative,\n ...queryOptions,\n },\n });\n\n const { data: erc20TokenBalance, ...erc20BalanceQueryResult } =\n useERC20Balance({\n chainId: chainId ?? token?.network,\n token,\n queryOptions: {\n enabled: !requestedNative,\n ...queryOptions,\n },\n });\n\n const balance = getBalanceFromQueries({\n requestedNative,\n nativeTokenBalance,\n erc20TokenBalance,\n tokenDecimals: token?.decimals,\n });\n\n const queryResult = requestedNative\n ? nativeBalanceQueryResult\n : erc20BalanceQueryResult;\n\n return {\n ...balance,\n ...queryResult,\n };\n};\n\ntype GetBalanceReturnType = {\n decimals: number;\n formatted: string;\n symbol: string;\n value: bigint;\n};\n\nfunction getBalanceFromQueries({\n requestedNative,\n nativeTokenBalance,\n erc20TokenBalance,\n tokenDecimals,\n}: {\n requestedNative?: boolean;\n nativeTokenBalance?: GetBalanceReturnType;\n erc20TokenBalance?: bigint;\n tokenDecimals?: number;\n}) {\n if (requestedNative && nativeTokenBalance !== undefined) {\n const balance = nativeTokenBalance.value;\n const balanceUnit = formatUnits(balance, nativeTokenBalance.decimals);\n return { balance, balanceUnit };\n }\n\n if (erc20TokenBalance !== undefined && tokenDecimals !== undefined) {\n const balance = erc20TokenBalance;\n const balanceUnit = formatUnits(balance, tokenDecimals);\n return { balance, balanceUnit };\n }\n}\n"],"names":["useERC20Balance","t0","$","_c","token","queryOptions","_queryOptions","address","account","useAccount","t1","t2","enabled","undefined","addressToFetch","isAddress","isETH","t3","network","t4","t5","t6","refetchInterval","ONE_MINUTE_MS","refetchOnWindowFocus","t7","functionName","chainId","abi","erc20Abi","args","query","useReadContract","useNativeBalance","params","useBalance","useTokenBalance","requestedNative","data","nativeTokenBalance","nativeBalanceQueryResult","erc20BalanceQueryResult","erc20TokenBalance","balance","getBalanceFromQueries","tokenDecimals","decimals","queryResult","value","balanceUnit","formatUnits"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useTokenBalance.js","sources":["../../../../src/hooks/tokens/balances/useTokenBalance.ts"],"sourcesContent":["import { ONE_MINUTE_MS } from \"@/lib/constants/time\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { isETH } from \"@/tokens/utils/eth\";\n\nimport { erc20Abi, formatUnits, isAddress } from \"viem\";\nimport { useAccount, useReadContract, useBalance } from \"wagmi\";\n\nexport const useERC20Balance = ({\n token,\n queryOptions: _queryOptions,\n}: UseTokenBalanceInput) => {\n const { address: account } = useAccount();\n const { enabled = true, ...queryOptions } = _queryOptions ?? {};\n\n const addressToFetch =\n token && isAddress(token.address) && !isETH({ address: token.address })\n ? token.address\n : undefined;\n\n return useReadContract({\n functionName: \"balanceOf\" as const,\n address: addressToFetch,\n chainId: token?.network,\n abi: erc20Abi,\n args: account ? [account] : undefined,\n query: {\n enabled: !!enabled && !!addressToFetch && !!account,\n refetchInterval: ONE_MINUTE_MS,\n refetchOnWindowFocus: false,\n ...queryOptions,\n },\n });\n};\n\nexport const useNativeBalance = (\n params?: Omit<UseTokenBalanceInput, \"token\">\n) => {\n const { address: account } = useAccount();\n const { enabled = true, ...queryOptions } = params?.queryOptions ?? {};\n\n return useBalance({\n address: account,\n chainId: params?.chainId,\n query: {\n enabled: !!enabled && !!account && !!params?.chainId,\n refetchInterval: ONE_MINUTE_MS,\n refetchOnWindowFocus: false,\n ...queryOptions,\n },\n });\n};\n\ntype UseTokenBalanceInput = {\n token?: Pick<Token, \"address\" | \"decimals\" | \"network\">;\n chainId?: SupportedChainId;\n queryOptions?: {\n refetchInterval?: number;\n refetchOnWindowFocus?: boolean | \"always\";\n enabled?: boolean;\n };\n};\n\n// BOTH\nexport const useTokenBalance = ({\n token,\n chainId,\n queryOptions,\n}: UseTokenBalanceInput) => {\n const requestedNative = token?.address\n ? isETH({ address: token.address })\n : undefined;\n\n const { data: nativeTokenBalance, ...nativeBalanceQueryResult } =\n useNativeBalance({\n chainId: chainId ?? token?.network,\n queryOptions: {\n enabled: requestedNative,\n ...queryOptions,\n },\n });\n\n const { data: erc20TokenBalance, ...erc20BalanceQueryResult } =\n useERC20Balance({\n chainId: chainId ?? token?.network,\n token,\n queryOptions: {\n enabled: !requestedNative,\n ...queryOptions,\n },\n });\n\n const balance = getBalanceFromQueries({\n requestedNative,\n nativeTokenBalance,\n erc20TokenBalance,\n tokenDecimals: token?.decimals,\n });\n\n const queryResult = requestedNative\n ? nativeBalanceQueryResult\n : erc20BalanceQueryResult;\n\n return {\n ...balance,\n ...queryResult,\n };\n};\n\ntype GetBalanceReturnType = {\n decimals: number;\n formatted: string;\n symbol: string;\n value: bigint;\n};\n\nfunction getBalanceFromQueries({\n requestedNative,\n nativeTokenBalance,\n erc20TokenBalance,\n tokenDecimals,\n}: {\n requestedNative?: boolean;\n nativeTokenBalance?: GetBalanceReturnType;\n erc20TokenBalance?: bigint;\n tokenDecimals?: number;\n}) {\n if (requestedNative && nativeTokenBalance !== undefined) {\n const balance = nativeTokenBalance.value;\n const balanceUnit = formatUnits(balance, nativeTokenBalance.decimals);\n return { balance, balanceUnit };\n }\n\n if (erc20TokenBalance !== undefined && tokenDecimals !== undefined) {\n const balance = erc20TokenBalance;\n const balanceUnit = formatUnits(balance, tokenDecimals);\n return { balance, balanceUnit };\n }\n}\n"],"names":["useERC20Balance","t0","$","_c","token","queryOptions","_queryOptions","address","account","useAccount","t1","t2","enabled","undefined","addressToFetch","isAddress","isETH","t3","network","t4","t5","t6","refetchInterval","ONE_MINUTE_MS","refetchOnWindowFocus","t7","functionName","chainId","abi","erc20Abi","args","query","useReadContract","useNativeBalance","params","useBalance","useTokenBalance","requestedNative","data","nativeTokenBalance","nativeBalanceQueryResult","erc20BalanceQueryResult","erc20TokenBalance","balance","getBalanceFromQueries","tokenDecimals","decimals","queryResult","value","balanceUnit","formatUnits"],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ import { isBlacklistedToken } from '../../../tokens/blacklist.js';
|
|
|
7
7
|
import { useAllEnabledChains } from '../../../core/state/enabledChainsAtom.js';
|
|
8
8
|
|
|
9
9
|
const useCombineTokensWithFetched = (allTokenRows, tokenFilter) => {
|
|
10
|
-
const $ = distExports.c(
|
|
10
|
+
const $ = distExports.c(22);
|
|
11
11
|
let t0;
|
|
12
12
|
if ($[0] !== tokenFilter) {
|
|
13
13
|
t0 = isAddress(tokenFilter) && !isBlacklistedToken({
|
|
@@ -76,20 +76,23 @@ const useCombineTokensWithFetched = (allTokenRows, tokenFilter) => {
|
|
|
76
76
|
const attachTokenBalance = useAttachTokenBalanceMultichain(t5);
|
|
77
77
|
let t6;
|
|
78
78
|
if ($[16] !== allTokenRows || $[17] !== attachTokenBalance || $[18] !== tokenRowsFetched.tokens) {
|
|
79
|
-
let
|
|
79
|
+
let t7;
|
|
80
80
|
if ($[20] !== attachTokenBalance) {
|
|
81
|
-
|
|
81
|
+
t7 = (token_1) => attachTokenBalance({
|
|
82
82
|
...constructToken(token_1),
|
|
83
83
|
network: token_1.network,
|
|
84
84
|
fetchedOnChain: true
|
|
85
85
|
});
|
|
86
86
|
$[20] = attachTokenBalance;
|
|
87
|
-
$[21] =
|
|
87
|
+
$[21] = t7;
|
|
88
88
|
} else {
|
|
89
|
-
|
|
89
|
+
t7 = $[21];
|
|
90
90
|
}
|
|
91
|
-
const tokensFetchedWithBalance = tokenRowsFetched.tokens.map(
|
|
92
|
-
|
|
91
|
+
const tokensFetchedWithBalance = tokenRowsFetched.tokens.map(t7);
|
|
92
|
+
const combinedTokenRows = [...allTokenRows, ...tokensFetchedWithBalance];
|
|
93
|
+
t6 = {
|
|
94
|
+
tokenRowsCombined: combinedTokenRows
|
|
95
|
+
};
|
|
93
96
|
$[16] = allTokenRows;
|
|
94
97
|
$[17] = attachTokenBalance;
|
|
95
98
|
$[18] = tokenRowsFetched.tokens;
|
|
@@ -97,18 +100,7 @@ const useCombineTokensWithFetched = (allTokenRows, tokenFilter) => {
|
|
|
97
100
|
} else {
|
|
98
101
|
t6 = $[19];
|
|
99
102
|
}
|
|
100
|
-
|
|
101
|
-
let t7;
|
|
102
|
-
if ($[22] !== combinedTokenRows) {
|
|
103
|
-
t7 = {
|
|
104
|
-
tokenRowsCombined: combinedTokenRows
|
|
105
|
-
};
|
|
106
|
-
$[22] = combinedTokenRows;
|
|
107
|
-
$[23] = t7;
|
|
108
|
-
} else {
|
|
109
|
-
t7 = $[23];
|
|
110
|
-
}
|
|
111
|
-
return t7;
|
|
103
|
+
return t6;
|
|
112
104
|
};
|
|
113
105
|
function _temp(acc, token_0) {
|
|
114
106
|
const chainId_0 = token_0.network;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCombineTokensWithFetched.js","sources":["../../../../src/hooks/tokens/data/useCombineTokensWithFetched.ts"],"sourcesContent":["import type { TokenMaybeWithUsdBalance } from \"@/tokens/state/types\";\nimport { useFetchTokens } from \"./useFetchTokens\";\nimport { isAddress } from \"viem\";\nimport type { TokenRowForFetchedToken } from \"@/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListRow\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useAttachTokenBalanceMultichain } from \"../balances/useAttachTokenBalanceMultichain\";\nimport { constructToken } from \"@velora-dex/sdk\";\nimport { isBlacklistedToken } from \"@/tokens/blacklist\";\nimport { useAllEnabledChains } from \"@/core/state/enabledChainsAtom\";\n\ntype UseCombineTokensWithFetchedReturn = {\n tokenRowsCombined: TokenRowForFetchedToken[];\n};\nexport const useCombineTokensWithFetched = (\n allTokenRows: TokenMaybeWithUsdBalance[],\n tokenFilter: string\n): UseCombineTokensWithFetchedReturn => {\n const isTokenFilterValidAddress =\n isAddress(tokenFilter) && !isBlacklistedToken({ address: tokenFilter });\n\n // fetch on enabled chains only\n const enabledChains = useAllEnabledChains();\n const chainsWithNoTokenFound = !isTokenFilterValidAddress\n ? enabledChains\n : enabledChains.filter(\n // if exact match by address found in tokenLists, no need to fetch Token data onchain for that chain\n (chainId) => !allTokenRows.some((token) => token.network === chainId)\n );\n\n // if user's typed filter is a valid address, fetch tokens for all networks (as it's possible that lists data not enough -- even if token is spotted in one of the lists for one chain, it could be missing in another one)\n const tokenRowsFetched = useFetchTokens({\n addresses: isTokenFilterValidAddress ? [tokenFilter] : [],\n chainIds: chainsWithNoTokenFound,\n });\n\n const tokensFetched = tokenRowsFetched.tokens;\n\n const tokenFetchedAddressesMap = tokensFetched.reduce<\n Partial<Record<SupportedChainId, string[]>>\n >((acc, token) => {\n const chainId = token.network;\n if (!acc[chainId]) acc[chainId] = [];\n\n acc[chainId].push(token.address);\n return acc;\n }, {});\n\n const attachTokenBalance = useAttachTokenBalanceMultichain({\n addressesMap: tokenFetchedAddressesMap,\n });\n\n const tokensFetchedWithBalance =\n tokenRowsFetched.tokens.map<TokenRowForFetchedToken>((token) =>\n attachTokenBalance({\n ...constructToken(token),\n network: token.network,\n fetchedOnChain: true,\n })\n );\n\n const combinedTokenRows: TokenRowForFetchedToken[] = [\n ...allTokenRows,\n ...tokensFetchedWithBalance, // tokens not present in allTokenRows,\n // because chains to fetch on exclude chains found for exact token in another chain\n ];\n\n return {\n tokenRowsCombined: combinedTokenRows,\n };\n};\n"],"names":["useCombineTokensWithFetched","allTokenRows","tokenFilter","$","_c","t0","isAddress","isBlacklistedToken","address","isTokenFilterValidAddress","enabledChains","useAllEnabledChains","t1","filter","chainId","some","token","network","chainsWithNoTokenFound","t2","t3","addresses","chainIds","tokenRowsFetched","useFetchTokens","tokensFetched","tokens","t4","reduce","_temp","tokenFetchedAddressesMap","t5","addressesMap","attachTokenBalance","useAttachTokenBalanceMultichain","t6","t7","token_1","constructToken","fetchedOnChain","tokensFetchedWithBalance","map","combinedTokenRows","tokenRowsCombined","acc","token_0","chainId_0","push"],"mappings":";;;;;;;;AAaO,MAAMA,2BAAAA,GAA8BA,CAAAC,YAAAA,EAAAC,WAAAA,KAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAF,CAAAA,QAAAD,WAAAA,EAAA;AAKvCG,IAAAA,EAAAA,GAAAC,SAAAA,CAAUJ,
|
|
1
|
+
{"version":3,"file":"useCombineTokensWithFetched.js","sources":["../../../../src/hooks/tokens/data/useCombineTokensWithFetched.ts"],"sourcesContent":["import type { TokenMaybeWithUsdBalance } from \"@/tokens/state/types\";\nimport { useFetchTokens } from \"./useFetchTokens\";\nimport { isAddress } from \"viem\";\nimport type { TokenRowForFetchedToken } from \"@/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListRow\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useAttachTokenBalanceMultichain } from \"../balances/useAttachTokenBalanceMultichain\";\nimport { constructToken } from \"@velora-dex/sdk\";\nimport { isBlacklistedToken } from \"@/tokens/blacklist\";\nimport { useAllEnabledChains } from \"@/core/state/enabledChainsAtom\";\n\ntype UseCombineTokensWithFetchedReturn = {\n tokenRowsCombined: TokenRowForFetchedToken[];\n};\nexport const useCombineTokensWithFetched = (\n allTokenRows: TokenMaybeWithUsdBalance[],\n tokenFilter: string\n): UseCombineTokensWithFetchedReturn => {\n const isTokenFilterValidAddress =\n isAddress(tokenFilter) && !isBlacklistedToken({ address: tokenFilter });\n\n // fetch on enabled chains only\n const enabledChains = useAllEnabledChains();\n const chainsWithNoTokenFound = !isTokenFilterValidAddress\n ? enabledChains\n : enabledChains.filter(\n // if exact match by address found in tokenLists, no need to fetch Token data onchain for that chain\n (chainId) => !allTokenRows.some((token) => token.network === chainId)\n );\n\n // if user's typed filter is a valid address, fetch tokens for all networks (as it's possible that lists data not enough -- even if token is spotted in one of the lists for one chain, it could be missing in another one)\n const tokenRowsFetched = useFetchTokens({\n addresses: isTokenFilterValidAddress ? [tokenFilter] : [],\n chainIds: chainsWithNoTokenFound,\n });\n\n const tokensFetched = tokenRowsFetched.tokens;\n\n const tokenFetchedAddressesMap = tokensFetched.reduce<\n Partial<Record<SupportedChainId, string[]>>\n >((acc, token) => {\n const chainId = token.network;\n if (!acc[chainId]) acc[chainId] = [];\n\n acc[chainId].push(token.address);\n return acc;\n }, {});\n\n const attachTokenBalance = useAttachTokenBalanceMultichain({\n addressesMap: tokenFetchedAddressesMap,\n });\n\n const tokensFetchedWithBalance =\n tokenRowsFetched.tokens.map<TokenRowForFetchedToken>((token) =>\n attachTokenBalance({\n ...constructToken(token),\n network: token.network,\n fetchedOnChain: true,\n })\n );\n\n const combinedTokenRows: TokenRowForFetchedToken[] = [\n ...allTokenRows,\n ...tokensFetchedWithBalance, // tokens not present in allTokenRows,\n // because chains to fetch on exclude chains found for exact token in another chain\n ];\n\n return {\n tokenRowsCombined: combinedTokenRows,\n };\n};\n"],"names":["useCombineTokensWithFetched","allTokenRows","tokenFilter","$","_c","t0","isAddress","isBlacklistedToken","address","isTokenFilterValidAddress","enabledChains","useAllEnabledChains","t1","filter","chainId","some","token","network","chainsWithNoTokenFound","t2","t3","addresses","chainIds","tokenRowsFetched","useFetchTokens","tokensFetched","tokens","t4","reduce","_temp","tokenFetchedAddressesMap","t5","addressesMap","attachTokenBalance","useAttachTokenBalanceMultichain","t6","t7","token_1","constructToken","fetchedOnChain","tokensFetchedWithBalance","map","combinedTokenRows","tokenRowsCombined","acc","token_0","chainId_0","push"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFetchTokens.js","sources":["../../../../src/hooks/tokens/data/useFetchTokens.ts"],"sourcesContent":["import { useMultiChainTokensData } from \"./useMultichainTokensData\";\nimport type { Address } from \"viem\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport type { MinErc20Token } from \"@/tokens/state/types\";\nimport type { UseQueryResult } from \"@tanstack/react-query\";\n\nconst combineFlatten = (\n results: UseQueryResult<MinErc20Token[], Error>[]\n): MinErc20Token[] => {\n const allTokensTogether = results.flatMap((res) => res.data || []);\n return allTokensTogether;\n};\n\ntype UseFetchTokensReturn = {\n tokens: MinErc20Token[];\n};\nexport const useFetchTokens = ({\n addresses,\n chainIds,\n}: {\n addresses: Address[];\n chainIds: SupportedChainId[];\n}): UseFetchTokensReturn => {\n const minTokensData = useMultiChainTokensData({\n addresses,\n chainIds,\n combine: combineFlatten,\n });\n return {\n tokens: minTokensData,\n };\n};\n"],"names":["combineFlatten","results","allTokensTogether","flatMap","res","data","useFetchTokens","t0","$","_c","addresses","chainIds","t1","combine","minTokensData","useMultiChainTokensData","t2","tokens"],"mappings":";;;AAMA,MAAMA,cAAAA,GAAiBA,CACrBC,OAAAA,KACoB;AACpB,EAAA,MAAMC,oBAAoBD,OAAAA,CAAQE,OAAAA,CAASC,SAAQA,GAAAA,CAAIC,IAAAA,IAAQ,EAAE,CAAA;AACjE,EAAA,OAAOH,iBAAAA;AACT,CAAA;AAKO,MAAMI,iBAAiBC,CAAAA,EAAAA,KAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAAC,EAAA,MAAA;AAAA,IAAAC,SAAAA;AAAAA,IAAAC;AAAAA,GAAA,GAAAJ,EAAAA;AAM9B,EAAA,IAAAK,EAAAA;AAAA,EAAA,IAAAJ,EAAA,CAAA,CAAA,KAAAE,aAAAF,CAAAA,QAAAG,QAAAA,EAAA;AAC+CC,IAAAA,EAAAA,GAAA;AAAA,MAAAF,SAAAA;AAAAA,MAAAC,QAAAA;AAAAA,MAAAE,OAAAA,
|
|
1
|
+
{"version":3,"file":"useFetchTokens.js","sources":["../../../../src/hooks/tokens/data/useFetchTokens.ts"],"sourcesContent":["import { useMultiChainTokensData } from \"./useMultichainTokensData\";\nimport type { Address } from \"viem\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport type { MinErc20Token } from \"@/tokens/state/types\";\nimport type { UseQueryResult } from \"@tanstack/react-query\";\n\nconst combineFlatten = (\n results: UseQueryResult<MinErc20Token[], Error>[]\n): MinErc20Token[] => {\n const allTokensTogether = results.flatMap((res) => res.data || []);\n return allTokensTogether;\n};\n\ntype UseFetchTokensReturn = {\n tokens: MinErc20Token[];\n};\nexport const useFetchTokens = ({\n addresses,\n chainIds,\n}: {\n addresses: Address[];\n chainIds: SupportedChainId[];\n}): UseFetchTokensReturn => {\n const minTokensData = useMultiChainTokensData({\n addresses,\n chainIds,\n combine: combineFlatten,\n });\n return {\n tokens: minTokensData,\n };\n};\n"],"names":["combineFlatten","results","allTokensTogether","flatMap","res","data","useFetchTokens","t0","$","_c","addresses","chainIds","t1","combine","minTokensData","useMultiChainTokensData","t2","tokens"],"mappings":";;;AAMA,MAAMA,cAAAA,GAAiBA,CACrBC,OAAAA,KACoB;AACpB,EAAA,MAAMC,oBAAoBD,OAAAA,CAAQE,OAAAA,CAASC,SAAQA,GAAAA,CAAIC,IAAAA,IAAQ,EAAE,CAAA;AACjE,EAAA,OAAOH,iBAAAA;AACT,CAAA;AAKO,MAAMI,iBAAiBC,CAAAA,EAAAA,KAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAAC,EAAA,MAAA;AAAA,IAAAC,SAAAA;AAAAA,IAAAC;AAAAA,GAAA,GAAAJ,EAAAA;AAM9B,EAAA,IAAAK,EAAAA;AAAA,EAAA,IAAAJ,EAAA,CAAA,CAAA,KAAAE,aAAAF,CAAAA,QAAAG,QAAAA,EAAA;AAC+CC,IAAAA,EAAAA,GAAA;AAAA,MAAAF,SAAAA;AAAAA,MAAAC,QAAAA;AAAAA,MAAAE,OAAAA,EAGnCb;AAAAA,KACX;AAACQ,IAAAA,CAAAA,MAAAE,SAAAA;AAAAF,IAAAA,CAAAA,MAAAG,QAAAA;AAAAH,IAAAA,CAAAA,MAAAI,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAJ,EAAA,CAAA,CAAA;AAAA,EAAA;AAJD,EAAA,MAAAM,aAAAA,GAAsBC,wBAAwBH,EAI7C,CAAA;AAAE,EAAA,IAAAI,EAAAA;AAAA,EAAA,IAAAR,CAAAA,QAAAM,aAAAA,EAAA;AACIE,IAAAA,EAAAA,GAAA;AAAA,MAAAC,MAAAA,EACGH;AAAAA,KACV;AAACN,IAAAA,CAAAA,MAAAM,aAAAA;AAAAN,IAAAA,CAAAA,MAAAQ,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAR,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAFMQ,EAAAA;AAEN;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMultichainTokensData.js","sources":["../../../../src/hooks/tokens/data/useMultichainTokensData.ts"],"sourcesContent":["import type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { type Address } from \"viem\";\nimport { assert, type MarkOptional, type MarkRequired } from \"ts-essentials\";\nimport { type MinErc20Token } from \"@/tokens/state/types\";\nimport { erc20Abi, type MulticallReturnType } from \"viem\";\nimport { useConfig } from \"wagmi\";\nimport type { ReadContractsData } from \"wagmi/query\";\nimport { useLogger } from \"@/core/logger\";\nimport { readContracts, type Config } from \"@wagmi/core\";\nimport {\n QueryClient,\n useQueries,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport { gatherObjectsByProp } from \"@/lib/utils\";\nimport { isFilledArray } from \"@/lib/utils/tuple\";\nimport { queryClient } from \"@/lib/queryClient\";\nimport { wagmiConfig } from \"@/lib/web3/wagmi/config\";\n\ntype TokensByAddressByChain = Partial<\n Record<SupportedChainId, Record<Address, MinErc20Token>>\n>;\n\nconst defaultCombine = (\n results: UseQueryResult<MinErc20Token[], Error>[]\n): TokensByAddressByChain => {\n const mapping = results.reduce<TokensByAddressByChain>((accum, result) => {\n if (!result.data || !isFilledArray(result.data)) return accum;\n const chainId = result.data[0].network;\n const tokensMapping: Record<Address, MinErc20Token> = gatherObjectsByProp(\n result.data,\n (token) => token.address.toLowerCase()\n );\n\n if (!accum[chainId]) {\n accum[chainId] = {};\n }\n\n accum[chainId] = tokensMapping;\n return accum;\n }, {});\n\n return mapping;\n};\n\ntype UseMultichainTokensDataInput<Res> = {\n addresses: Address[];\n chainIds: SupportedChainId[];\n combine: (results: UseQueryResult<MinErc20Token[], Error>[]) => Res;\n};\n\ntype UseMultichainTokensDataInputDefault = MarkOptional<\n UseMultichainTokensDataInput<never>,\n \"combine\"\n>;\n\n// Function overloads to accept combine function\nexport function useMultiChainTokensData(\n input: UseMultichainTokensDataInputDefault\n): TokensByAddressByChain;\nexport function useMultiChainTokensData<T>(\n input: UseMultichainTokensDataInput<T>\n): T;\nexport function useMultiChainTokensData<T>({\n addresses,\n chainIds,\n combine,\n}: MarkOptional<UseMultichainTokensDataInput<T>, \"combine\">):\n | T\n | TokensByAddressByChain;\nexport function useMultiChainTokensData<T>({\n addresses,\n chainIds,\n combine,\n}: MarkOptional<UseMultichainTokensDataInput<T>, \"combine\">):\n | T\n | TokensByAddressByChain {\n const logger = useLogger(\"MultichainTokensData\");\n\n const config = useConfig();\n\n const queries = produceQueries({ addresses, chainIds, config });\n\n // useReadContracts uses a singular useQuery internally\n // which calls readContracts once only for multiple chainIds\n // and has to wait for all promises to resolve before returning the data.\n // useQueries allows to independently process readContracts results for each chainId\n const fetchedTokens = useQueries<typeof queries, T | TokensByAddressByChain>({\n queries,\n combine: combine || defaultCombine,\n });\n\n logger.once.log(\"TokensData result\", {\n addresses,\n chainIds,\n data: fetchedTokens,\n });\n\n return fetchedTokens;\n}\n\nfunction produceQueries({\n addresses,\n chainIds,\n config,\n}: Omit<UseMultichainTokensDataInputDefault, \"combine\"> & { config: Config }) {\n if (addresses.length === 0 || chainIds.length === 0) {\n // don't spawn any queries\n return [];\n }\n\n const contractsArr = addresses.map(\n (address) =>\n [\n {\n address,\n abi: erc20Abi,\n functionName: \"symbol\",\n },\n {\n address,\n abi: erc20Abi,\n functionName: \"name\",\n },\n {\n address,\n abi: erc20Abi,\n functionName: \"decimals\",\n },\n ] as const\n );\n\n const callsPerToken = contractsArr[0]?.length;\n\n type Calls = (typeof contractsArr)[0];\n type MulticallRes = MulticallReturnType<Calls, true>;\n const contractsForAllChainsArr = chainIds.map((chainId) =>\n contractsArr.flatMap((contractsCalls) =>\n contractsCalls.map((contract) => ({ ...contract, chainId }))\n )\n );\n\n type SingleChainResult = ReadContractsData<Calls[], true>;\n\n type QueryOpts = MarkRequired<\n UseQueryOptions<\n SingleChainResult,\n Error,\n MinErc20Token[],\n [\n \"readContracts/tokensData/batch\",\n { addresses: Address[]; chainId?: SupportedChainId },\n ]\n >,\n \"select\"\n >;\n\n const select = (\n result: SingleChainResult,\n contracts: { address: Address; chainId: SupportedChainId }[]\n ): MinErc20Token[] => {\n const tokenData: MinErc20Token[] = [];\n\n assert(callsPerToken, \"zero calls made\");\n for (let i = 0; i < result.length; i += callsPerToken) {\n const { address, chainId } = contracts[i] || {};\n assert(\n address && chainId,\n `contract call object for index ${i} should be defined`\n );\n\n const tokenDataSlice = result.slice(i, i + callsPerToken) as MulticallRes;\n\n const [symbolResult, nameResult, decimalsResult] = tokenDataSlice;\n\n const symbol =\n symbolResult?.status === \"success\" ? symbolResult.result : undefined;\n const decimals =\n decimalsResult?.status === \"success\"\n ? decimalsResult.result\n : undefined;\n\n const name =\n nameResult?.status === \"success\" ? nameResult.result : undefined;\n\n if (!symbol || !decimals || !name) {\n // skip if it's not a valid token.\n continue;\n }\n\n const minTokenData: MinErc20Token = {\n address: address.toLowerCase(),\n network: chainId,\n symbol,\n decimals,\n name,\n };\n tokenData.push(minTokenData);\n }\n\n return tokenData;\n };\n\n const queries = contractsForAllChainsArr.map<QueryOpts>((contracts) => ({\n queryKey: [\n \"readContracts/tokensData/batch\",\n { addresses, chainId: contracts[0]?.chainId },\n ],\n queryFn: async () => {\n const data = await readContracts(config, {\n contracts,\n allowFailure: true,\n batchSize: 512,\n });\n return data;\n },\n select: (res) => select(res, contracts),\n enabled: contracts.length > 0,\n staleTime: Infinity,\n gcTime: Infinity,\n }));\n\n return queries;\n}\n\ntype FetchUnknownTokenDataInput = {\n address: Address;\n chainId: SupportedChainId;\n config?: Config;\n client?: QueryClient;\n};\n\nexport async function fetchUnknownTokenData({\n address,\n chainId,\n config = wagmiConfig,\n client = queryClient,\n}: FetchUnknownTokenDataInput): Promise<MinErc20Token | null> {\n const [queryOptions] = produceQueries({\n addresses: [address],\n chainIds: [chainId],\n config,\n });\n\n if (!queryOptions) {\n return null;\n }\n\n try {\n // doesn't throw just returns {status:\"failure\"} which select eliminates\n const data = await client.ensureQueryData(queryOptions);\n // queryClient.fetch*|ensure doesn't use select\n const selectedData = queryOptions.select(data);\n return selectedData[0] ?? null;\n } catch {\n // in case of RPC/network error\n return null;\n }\n}\n"],"names":["defaultCombine","results","mapping","reduce","accum","result","data","isFilledArray","chainId","network","tokensMapping","gatherObjectsByProp","token","address","toLowerCase","useMultiChainTokensData","t0","$","_c","addresses","chainIds","combine","logger","useLogger","config","useConfig","t1","produceQueries","queries","t2","t3","fetchedTokens","useQueries","once","log","length","contractsArr","map","abi","erc20Abi","functionName","callsPerToken","contractsForAllChainsArr","flatMap","contractsCalls","contract","select","contracts","tokenData","assert","i","tokenDataSlice","slice","symbolResult","nameResult","decimalsResult","symbol","status","undefined","decimals","name","minTokenData","push","queryKey","queryFn","readContracts","allowFailure","batchSize","res","enabled","staleTime","Infinity","gcTime","fetchUnknownTokenData","wagmiConfig","client","queryClient","queryOptions","ensureQueryData","selectedData"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useMultichainTokensData.js","sources":["../../../../src/hooks/tokens/data/useMultichainTokensData.ts"],"sourcesContent":["import type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { type Address } from \"viem\";\nimport { assert, type MarkOptional, type MarkRequired } from \"ts-essentials\";\nimport { type MinErc20Token } from \"@/tokens/state/types\";\nimport { erc20Abi, type MulticallReturnType } from \"viem\";\nimport { useConfig } from \"wagmi\";\nimport type { ReadContractsData } from \"wagmi/query\";\nimport { useLogger } from \"@/core/logger\";\nimport { readContracts, type Config } from \"@wagmi/core\";\nimport {\n QueryClient,\n useQueries,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport { gatherObjectsByProp } from \"@/lib/utils\";\nimport { isFilledArray } from \"@/lib/utils/tuple\";\nimport { queryClient } from \"@/lib/queryClient\";\nimport { wagmiConfig } from \"@/lib/web3/wagmi/config\";\n\ntype TokensByAddressByChain = Partial<\n Record<SupportedChainId, Record<Address, MinErc20Token>>\n>;\n\nconst defaultCombine = (\n results: UseQueryResult<MinErc20Token[], Error>[]\n): TokensByAddressByChain => {\n const mapping = results.reduce<TokensByAddressByChain>((accum, result) => {\n if (!result.data || !isFilledArray(result.data)) return accum;\n const chainId = result.data[0].network;\n const tokensMapping: Record<Address, MinErc20Token> = gatherObjectsByProp(\n result.data,\n (token) => token.address.toLowerCase()\n );\n\n if (!accum[chainId]) {\n accum[chainId] = {};\n }\n\n accum[chainId] = tokensMapping;\n return accum;\n }, {});\n\n return mapping;\n};\n\ntype UseMultichainTokensDataInput<Res> = {\n addresses: Address[];\n chainIds: SupportedChainId[];\n combine: (results: UseQueryResult<MinErc20Token[], Error>[]) => Res;\n};\n\ntype UseMultichainTokensDataInputDefault = MarkOptional<\n UseMultichainTokensDataInput<never>,\n \"combine\"\n>;\n\n// Function overloads to accept combine function\nexport function useMultiChainTokensData(\n input: UseMultichainTokensDataInputDefault\n): TokensByAddressByChain;\nexport function useMultiChainTokensData<T>(\n input: UseMultichainTokensDataInput<T>\n): T;\nexport function useMultiChainTokensData<T>({\n addresses,\n chainIds,\n combine,\n}: MarkOptional<UseMultichainTokensDataInput<T>, \"combine\">):\n | T\n | TokensByAddressByChain;\nexport function useMultiChainTokensData<T>({\n addresses,\n chainIds,\n combine,\n}: MarkOptional<UseMultichainTokensDataInput<T>, \"combine\">):\n | T\n | TokensByAddressByChain {\n const logger = useLogger(\"MultichainTokensData\");\n\n const config = useConfig();\n\n const queries = produceQueries({ addresses, chainIds, config });\n\n // useReadContracts uses a singular useQuery internally\n // which calls readContracts once only for multiple chainIds\n // and has to wait for all promises to resolve before returning the data.\n // useQueries allows to independently process readContracts results for each chainId\n const fetchedTokens = useQueries<typeof queries, T | TokensByAddressByChain>({\n queries,\n combine: combine || defaultCombine,\n });\n\n logger.once.log(\"TokensData result\", {\n addresses,\n chainIds,\n data: fetchedTokens,\n });\n\n return fetchedTokens;\n}\n\nfunction produceQueries({\n addresses,\n chainIds,\n config,\n}: Omit<UseMultichainTokensDataInputDefault, \"combine\"> & { config: Config }) {\n if (addresses.length === 0 || chainIds.length === 0) {\n // don't spawn any queries\n return [];\n }\n\n const contractsArr = addresses.map(\n (address) =>\n [\n {\n address,\n abi: erc20Abi,\n functionName: \"symbol\",\n },\n {\n address,\n abi: erc20Abi,\n functionName: \"name\",\n },\n {\n address,\n abi: erc20Abi,\n functionName: \"decimals\",\n },\n ] as const\n );\n\n const callsPerToken = contractsArr[0]?.length;\n\n type Calls = (typeof contractsArr)[0];\n type MulticallRes = MulticallReturnType<Calls, true>;\n const contractsForAllChainsArr = chainIds.map((chainId) =>\n contractsArr.flatMap((contractsCalls) =>\n contractsCalls.map((contract) => ({ ...contract, chainId }))\n )\n );\n\n type SingleChainResult = ReadContractsData<Calls[], true>;\n\n type QueryOpts = MarkRequired<\n UseQueryOptions<\n SingleChainResult,\n Error,\n MinErc20Token[],\n [\n \"readContracts/tokensData/batch\",\n { addresses: Address[]; chainId?: SupportedChainId },\n ]\n >,\n \"select\"\n >;\n\n const select = (\n result: SingleChainResult,\n contracts: { address: Address; chainId: SupportedChainId }[]\n ): MinErc20Token[] => {\n const tokenData: MinErc20Token[] = [];\n\n assert(callsPerToken, \"zero calls made\");\n for (let i = 0; i < result.length; i += callsPerToken) {\n const { address, chainId } = contracts[i] || {};\n assert(\n address && chainId,\n `contract call object for index ${i} should be defined`\n );\n\n const tokenDataSlice = result.slice(i, i + callsPerToken) as MulticallRes;\n\n const [symbolResult, nameResult, decimalsResult] = tokenDataSlice;\n\n const symbol =\n symbolResult?.status === \"success\" ? symbolResult.result : undefined;\n const decimals =\n decimalsResult?.status === \"success\"\n ? decimalsResult.result\n : undefined;\n\n const name =\n nameResult?.status === \"success\" ? nameResult.result : undefined;\n\n if (!symbol || !decimals || !name) {\n // skip if it's not a valid token.\n continue;\n }\n\n const minTokenData: MinErc20Token = {\n address: address.toLowerCase(),\n network: chainId,\n symbol,\n decimals,\n name,\n };\n tokenData.push(minTokenData);\n }\n\n return tokenData;\n };\n\n const queries = contractsForAllChainsArr.map<QueryOpts>((contracts) => ({\n queryKey: [\n \"readContracts/tokensData/batch\",\n { addresses, chainId: contracts[0]?.chainId },\n ],\n queryFn: async () => {\n const data = await readContracts(config, {\n contracts,\n allowFailure: true,\n batchSize: 512,\n });\n return data;\n },\n select: (res) => select(res, contracts),\n enabled: contracts.length > 0,\n staleTime: Infinity,\n gcTime: Infinity,\n }));\n\n return queries;\n}\n\ntype FetchUnknownTokenDataInput = {\n address: Address;\n chainId: SupportedChainId;\n config?: Config;\n client?: QueryClient;\n};\n\nexport async function fetchUnknownTokenData({\n address,\n chainId,\n config = wagmiConfig,\n client = queryClient,\n}: FetchUnknownTokenDataInput): Promise<MinErc20Token | null> {\n const [queryOptions] = produceQueries({\n addresses: [address],\n chainIds: [chainId],\n config,\n });\n\n if (!queryOptions) {\n return null;\n }\n\n try {\n // doesn't throw just returns {status:\"failure\"} which select eliminates\n const data = await client.ensureQueryData(queryOptions);\n // queryClient.fetch*|ensure doesn't use select\n const selectedData = queryOptions.select(data);\n return selectedData[0] ?? null;\n } catch {\n // in case of RPC/network error\n return null;\n }\n}\n"],"names":["defaultCombine","results","mapping","reduce","accum","result","data","isFilledArray","chainId","network","tokensMapping","gatherObjectsByProp","token","address","toLowerCase","useMultiChainTokensData","t0","$","_c","addresses","chainIds","combine","logger","useLogger","config","useConfig","t1","produceQueries","queries","t2","t3","fetchedTokens","useQueries","once","log","length","contractsArr","map","abi","erc20Abi","functionName","callsPerToken","contractsForAllChainsArr","flatMap","contractsCalls","contract","select","contracts","tokenData","assert","i","tokenDataSlice","slice","symbolResult","nameResult","decimalsResult","symbol","status","undefined","decimals","name","minTokenData","push","queryKey","queryFn","readContracts","allowFailure","batchSize","res","enabled","staleTime","Infinity","gcTime","fetchUnknownTokenData","wagmiConfig","client","queryClient","queryOptions","ensureQueryData","selectedData"],"mappings":"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"}
|
|
@@ -6,11 +6,10 @@ import { constructTokenPricesQueryOptions } from './queries.js';
|
|
|
6
6
|
const useMultiChainTokenPrices = (chainIds, _params) => {
|
|
7
7
|
const $ = distExports.c(12);
|
|
8
8
|
let t0;
|
|
9
|
-
let t1;
|
|
10
9
|
if ($[0] !== _params || $[1] !== chainIds) {
|
|
11
|
-
let
|
|
10
|
+
let t12;
|
|
12
11
|
if ($[3] !== _params) {
|
|
13
|
-
|
|
12
|
+
t12 = (chainId) => {
|
|
14
13
|
const specificQueryParams = _params?.[chainId];
|
|
15
14
|
return constructTokenPricesQueryOptions({
|
|
16
15
|
chainId,
|
|
@@ -19,36 +18,34 @@ const useMultiChainTokenPrices = (chainIds, _params) => {
|
|
|
19
18
|
});
|
|
20
19
|
};
|
|
21
20
|
$[3] = _params;
|
|
22
|
-
$[4] =
|
|
21
|
+
$[4] = t12;
|
|
23
22
|
} else {
|
|
24
|
-
|
|
23
|
+
t12 = $[4];
|
|
25
24
|
}
|
|
26
|
-
|
|
25
|
+
t0 = chainIds.map(t12);
|
|
27
26
|
$[0] = _params;
|
|
28
27
|
$[1] = chainIds;
|
|
29
|
-
$[2] =
|
|
28
|
+
$[2] = t0;
|
|
30
29
|
} else {
|
|
31
|
-
|
|
30
|
+
t0 = $[2];
|
|
32
31
|
}
|
|
33
|
-
t0 = t1;
|
|
34
32
|
const queries = t0;
|
|
35
|
-
let
|
|
33
|
+
let t1;
|
|
36
34
|
if ($[5] !== queries) {
|
|
37
|
-
|
|
35
|
+
t1 = {
|
|
38
36
|
queries
|
|
39
37
|
};
|
|
40
38
|
$[5] = queries;
|
|
41
|
-
$[6] =
|
|
39
|
+
$[6] = t1;
|
|
42
40
|
} else {
|
|
43
|
-
|
|
41
|
+
t1 = $[6];
|
|
44
42
|
}
|
|
45
|
-
const queryResults = useQueries(
|
|
46
|
-
let
|
|
47
|
-
let t4;
|
|
43
|
+
const queryResults = useQueries(t1);
|
|
44
|
+
let t2;
|
|
48
45
|
if ($[7] !== chainIds || $[8] !== queryResults) {
|
|
49
|
-
let
|
|
46
|
+
let t3;
|
|
50
47
|
if ($[10] !== queryResults) {
|
|
51
|
-
|
|
48
|
+
t3 = (accum, chainId_0, index) => {
|
|
52
49
|
const result = queryResults[index]?.data;
|
|
53
50
|
if (result) {
|
|
54
51
|
accum[chainId_0] = result;
|
|
@@ -56,19 +53,18 @@ const useMultiChainTokenPrices = (chainIds, _params) => {
|
|
|
56
53
|
return accum;
|
|
57
54
|
};
|
|
58
55
|
$[10] = queryResults;
|
|
59
|
-
$[11] =
|
|
56
|
+
$[11] = t3;
|
|
60
57
|
} else {
|
|
61
|
-
|
|
58
|
+
t3 = $[11];
|
|
62
59
|
}
|
|
63
|
-
|
|
60
|
+
t2 = chainIds.reduce(t3, {});
|
|
64
61
|
$[7] = chainIds;
|
|
65
62
|
$[8] = queryResults;
|
|
66
|
-
$[9] =
|
|
63
|
+
$[9] = t2;
|
|
67
64
|
} else {
|
|
68
|
-
|
|
65
|
+
t2 = $[9];
|
|
69
66
|
}
|
|
70
|
-
|
|
71
|
-
return t3;
|
|
67
|
+
return t2;
|
|
72
68
|
};
|
|
73
69
|
|
|
74
70
|
export { useMultiChainTokenPrices };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMultichainTokenPrices.js","sources":["../../../../src/hooks/tokens/prices/useMultichainTokenPrices.ts"],"sourcesContent":["import { useQueries } from \"@tanstack/react-query\";\nimport { useMemo } from \"react\";\nimport type { FiatPriceMap, UseMultichainTokenPricesInput } from \"./types\";\nimport { constructTokenPricesQueryOptions } from \"./queries\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\n\nexport const useMultiChainTokenPrices = (\n chainIds: SupportedChainId[],\n _params?: UseMultichainTokenPricesInput\n): Record<number, FiatPriceMap> => {\n const queries = useMemo(\n () =>\n chainIds.map((chainId) => {\n const specificQueryParams = _params?.[chainId];\n\n return constructTokenPricesQueryOptions({\n chainId,\n fallbackToCachedPrices: specificQueryParams?.fallbackToCachedPrices,\n enabled: specificQueryParams?.enabled,\n });\n }),\n [_params, chainIds]\n );\n\n const queryResults = useQueries({ queries });\n\n return useMemo(\n () =>\n chainIds.reduce<Record<number, FiatPriceMap>>((accum, chainId, index) => {\n const result = queryResults[index]?.data;\n if (result) accum[chainId] = result;\n return accum;\n }, {}),\n [chainIds, queryResults]\n );\n};\n"],"names":["useMultiChainTokenPrices","chainIds","_params","$","_c","t0","t1","
|
|
1
|
+
{"version":3,"file":"useMultichainTokenPrices.js","sources":["../../../../src/hooks/tokens/prices/useMultichainTokenPrices.ts"],"sourcesContent":["import { useQueries } from \"@tanstack/react-query\";\nimport { useMemo } from \"react\";\nimport type { FiatPriceMap, UseMultichainTokenPricesInput } from \"./types\";\nimport { constructTokenPricesQueryOptions } from \"./queries\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\n\nexport const useMultiChainTokenPrices = (\n chainIds: SupportedChainId[],\n _params?: UseMultichainTokenPricesInput\n): Record<number, FiatPriceMap> => {\n const queries = useMemo(\n () =>\n chainIds.map((chainId) => {\n const specificQueryParams = _params?.[chainId];\n\n return constructTokenPricesQueryOptions({\n chainId,\n fallbackToCachedPrices: specificQueryParams?.fallbackToCachedPrices,\n enabled: specificQueryParams?.enabled,\n });\n }),\n [_params, chainIds]\n );\n\n const queryResults = useQueries({ queries });\n\n return useMemo(\n () =>\n chainIds.reduce<Record<number, FiatPriceMap>>((accum, chainId, index) => {\n const result = queryResults[index]?.data;\n if (result) accum[chainId] = result;\n return accum;\n }, {}),\n [chainIds, queryResults]\n );\n};\n"],"names":["useMultiChainTokenPrices","chainIds","_params","$","_c","t0","t1","chainId","specificQueryParams","constructTokenPricesQueryOptions","fallbackToCachedPrices","enabled","map","queries","queryResults","useQueries","t2","t3","accum","chainId_0","index","result","data","reduce"],"mappings":";;;;;AAMO,MAAMA,wBAAAA,GAA2BA,CAAAC,QAAAA,EAAAC,OAAAA,KAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAF,EAAA,CAAA,CAAA,KAAAD,WAAAC,CAAAA,QAAAF,QAAAA,EAAA;AAAA,IAAA,IAAAK,GAAAA;AAAA,IAAA,IAAAH,CAAAA,QAAAD,OAAAA,EAAA;AAMrBI,MAAAA,MAAAC,CAAAA,OAAAA,KAAA;AACX,QAAA,MAAAC,mBAAAA,GAA4BN,UAAUK,OAAO,CAAA;AAAE,QAAA,OAExCE,gCAAAA,CAAiC;AAAA,UAAAF,OAAAA;AAAAA,UAAAG,wBAEdF,mBAAAA,EAAmBE,sBAAAA;AAAAA,UAAwBC,SAC1DH,mBAAAA,EAAmBG;AAAAA,SAC7B,CAAA;AAAA,MAAC,CAAA;AACHR,MAAAA,CAAAA,MAAAD,OAAAA;AAAAC,MAAAA,CAAAA,MAAAG,GAAAA;AAAAA,IAAA,CAAA,MAAA;AAAAA,MAAAA,GAAAA,GAAAH,EAAA,CAAA,CAAA;AAAA,IAAA;AARDE,IAAAA,EAAAA,GAAAJ,QAAAA,CAAQW,IAAKN,GAQZ,CAAA;AAACH,IAAAA,CAAAA,MAAAD,OAAAA;AAAAC,IAAAA,CAAAA,MAAAF,QAAAA;AAAAE,IAAAA,CAAAA,MAAAE,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAF,EAAA,CAAA,CAAA;AAAA,EAAA;AAVN,EAAA,MAAAU,OAAAA,GAEIR,EAAAA;AAUF,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAH,CAAAA,QAAAU,OAAAA,EAAA;AAE8BP,IAAAA,EAAAA,GAAA;AAAA,MAAAO;AAAAA,KAAU;AAACV,IAAAA,CAAAA,MAAAU,OAAAA;AAAAV,IAAAA,CAAAA,MAAAG,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAH,EAAA,CAAA,CAAA;AAAA,EAAA;AAA3C,EAAA,MAAAW,YAAAA,GAAqBC,WAAWT,EAAW,CAAA;AAAE,EAAA,IAAAU,EAAAA;AAAA,EAAA,IAAAb,EAAA,CAAA,CAAA,KAAAF,YAAAE,CAAAA,QAAAW,YAAAA,EAAA;AAAA,IAAA,IAAAG,EAAAA;AAAA,IAAA,IAAAd,CAAAA,SAAAW,YAAAA,EAAA;AAIKG,MAAAA,EAAAA,GAAAA,CAAAC,KAAAA,EAAAC,SAAAA,EAAAC,KAAAA,KAAA;AAC5C,QAAA,MAAAC,MAAAA,GAAeP,YAAAA,CAAaM,KAAK,CAAA,EAAOE,IAAAA;AACxC,QAAA,IAAID,MAAAA,EAAM;AAAEH,UAAAA,KAAAA,CAAMX,SAAO,CAAA,GAAIc,MAAAA;AAAAA,QAAH;AAAU,QAAA,OAC7BH,KAAAA;AAAAA,MAAK,CAAA;AACbf,MAAAA,CAAAA,OAAAW,YAAAA;AAAAX,MAAAA,CAAAA,OAAAc,EAAAA;AAAAA,IAAA,CAAA,MAAA;AAAAA,MAAAA,EAAAA,GAAAd,EAAA,EAAA,CAAA;AAAA,IAAA;AAJDa,IAAAA,EAAAA,GAAAf,QAAAA,CAAQsB,MAAAA,CAAsCN,EAAAA,EAI3C,EAAE,CAAA;AAACd,IAAAA,CAAAA,MAAAF,QAAAA;AAAAE,IAAAA,CAAAA,MAAAW,YAAAA;AAAAX,IAAAA,CAAAA,MAAAa,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAb,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAJNa,EAAAA;AAIM;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTokenPrices.js","sources":["../../../../src/hooks/tokens/prices/useTokenPrices.ts"],"sourcesContent":["import {\n useQuery,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport type {\n FiatPriceFromApi,\n FiatPriceMap,\n TokenPricesQueryKey,\n} from \"./types\";\nimport {\n constructTokenPricesQueryKey,\n fetchTokenPricesWithFallback,\n} from \"./queries\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport {\n LONG_STALE_TIME_FOR_REACTIVENESS,\n ONE_MINUTE_MS,\n} from \"@/lib/constants/time\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { assert } from \"ts-essentials\";\nimport { type Address } from \"viem\";\nimport { useNativeToken } from \"../useNativeToken\";\n\ntype UseTokenPricesInput<TData = FiatPriceMap> = {\n chainId?: SupportedChainId;\n fallbackToCachedPrices?: boolean;\n query?: Omit<\n UseQueryOptions<FiatPriceMap, Error, TData, TokenPricesQueryKey>,\n \"queryKey\" | \"queryFn\"\n >;\n};\n\ntype UseTokenPricesResult<TData = FiatPriceMap> = UseQueryResult<TData, Error>;\n\nexport const useTokenPrices = <TData = FiatPriceMap>({\n chainId,\n fallbackToCachedPrices,\n query,\n}: UseTokenPricesInput<TData>): UseTokenPricesResult<TData> => {\n const queryEnabled = query?.enabled ?? true;\n\n const queryResults = useQuery<\n FiatPriceMap,\n Error,\n TData,\n TokenPricesQueryKey\n >({\n queryKey: constructTokenPricesQueryKey(chainId ?? 0),\n queryFn: ({ signal }) => {\n assert(chainId, \"chainId is required\");\n return fetchTokenPricesWithFallback({\n chainId,\n fallbackToCachedPrices,\n signal,\n });\n },\n staleTime: LONG_STALE_TIME_FOR_REACTIVENESS,\n refetchInterval: ONE_MINUTE_MS,\n ...query,\n enabled: queryEnabled && !!chainId,\n });\n\n return queryResults;\n};\n\nexport const useTokenPrice = (\n token?: Pick<Token, \"address\" | \"network\">,\n query?: Omit<\n UseQueryOptions<\n FiatPriceMap,\n Error,\n FiatPriceFromApi | undefined,\n TokenPricesQueryKey\n >,\n \"queryKey\" | \"queryFn\" | \"select\"\n >\n): UseQueryResult<FiatPriceFromApi | undefined, Error> => {\n const queryEnabled = query?.enabled ?? true;\n\n const queryResult = useTokenPrices({\n chainId: token?.network,\n fallbackToCachedPrices: true,\n query: {\n ...query,\n enabled: queryEnabled && !!token?.address,\n select: (data) => data[token?.address.toLowerCase() as Address],\n },\n });\n\n return queryResult;\n};\n\nexport const useNativeTokenPrice = (\n query?: Omit<\n UseQueryOptions<\n FiatPriceMap,\n Error,\n FiatPriceFromApi | undefined,\n TokenPricesQueryKey\n >,\n \"queryKey\" | \"queryFn\" | \"select\"\n >\n) => {\n const nativeToken = useNativeToken();\n return useTokenPrice(nativeToken, query);\n};\n"],"names":["useTokenPrices","t0","$","_c","chainId","fallbackToCachedPrices","query","queryEnabled","enabled","t1","t2","constructTokenPricesQueryKey","t3","t4","signal","assert","fetchTokenPricesWithFallback","t5","queryKey","queryFn","staleTime","LONG_STALE_TIME_FOR_REACTIVENESS","refetchInterval","ONE_MINUTE_MS","queryResults","useQuery","useTokenPrice","token","network","address","data","toLowerCase","select","queryResult","useNativeTokenPrice","nativeToken","useNativeToken"],"mappings":";;;;;;;;AAmCO,MAAMA,iBAAiBC,CAAAA,EAAAA,KAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAAuB,EAAA,MAAA;AAAA,IAAAC,OAAAA;AAAAA,IAAAC,sBAAAA;AAAAA,IAAAC;AAAAA,GAAA,GAAAL,EAAAA;AAKnD,EAAA,MAAAM,YAAAA,GAAqBD,OAAKE,OAAAA,
|
|
1
|
+
{"version":3,"file":"useTokenPrices.js","sources":["../../../../src/hooks/tokens/prices/useTokenPrices.ts"],"sourcesContent":["import {\n useQuery,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport type {\n FiatPriceFromApi,\n FiatPriceMap,\n TokenPricesQueryKey,\n} from \"./types\";\nimport {\n constructTokenPricesQueryKey,\n fetchTokenPricesWithFallback,\n} from \"./queries\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport {\n LONG_STALE_TIME_FOR_REACTIVENESS,\n ONE_MINUTE_MS,\n} from \"@/lib/constants/time\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { assert } from \"ts-essentials\";\nimport { type Address } from \"viem\";\nimport { useNativeToken } from \"../useNativeToken\";\n\ntype UseTokenPricesInput<TData = FiatPriceMap> = {\n chainId?: SupportedChainId;\n fallbackToCachedPrices?: boolean;\n query?: Omit<\n UseQueryOptions<FiatPriceMap, Error, TData, TokenPricesQueryKey>,\n \"queryKey\" | \"queryFn\"\n >;\n};\n\ntype UseTokenPricesResult<TData = FiatPriceMap> = UseQueryResult<TData, Error>;\n\nexport const useTokenPrices = <TData = FiatPriceMap>({\n chainId,\n fallbackToCachedPrices,\n query,\n}: UseTokenPricesInput<TData>): UseTokenPricesResult<TData> => {\n const queryEnabled = query?.enabled ?? true;\n\n const queryResults = useQuery<\n FiatPriceMap,\n Error,\n TData,\n TokenPricesQueryKey\n >({\n queryKey: constructTokenPricesQueryKey(chainId ?? 0),\n queryFn: ({ signal }) => {\n assert(chainId, \"chainId is required\");\n return fetchTokenPricesWithFallback({\n chainId,\n fallbackToCachedPrices,\n signal,\n });\n },\n staleTime: LONG_STALE_TIME_FOR_REACTIVENESS,\n refetchInterval: ONE_MINUTE_MS,\n ...query,\n enabled: queryEnabled && !!chainId,\n });\n\n return queryResults;\n};\n\nexport const useTokenPrice = (\n token?: Pick<Token, \"address\" | \"network\">,\n query?: Omit<\n UseQueryOptions<\n FiatPriceMap,\n Error,\n FiatPriceFromApi | undefined,\n TokenPricesQueryKey\n >,\n \"queryKey\" | \"queryFn\" | \"select\"\n >\n): UseQueryResult<FiatPriceFromApi | undefined, Error> => {\n const queryEnabled = query?.enabled ?? true;\n\n const queryResult = useTokenPrices({\n chainId: token?.network,\n fallbackToCachedPrices: true,\n query: {\n ...query,\n enabled: queryEnabled && !!token?.address,\n select: (data) => data[token?.address.toLowerCase() as Address],\n },\n });\n\n return queryResult;\n};\n\nexport const useNativeTokenPrice = (\n query?: Omit<\n UseQueryOptions<\n FiatPriceMap,\n Error,\n FiatPriceFromApi | undefined,\n TokenPricesQueryKey\n >,\n \"queryKey\" | \"queryFn\" | \"select\"\n >\n) => {\n const nativeToken = useNativeToken();\n return useTokenPrice(nativeToken, query);\n};\n"],"names":["useTokenPrices","t0","$","_c","chainId","fallbackToCachedPrices","query","queryEnabled","enabled","t1","t2","constructTokenPricesQueryKey","t3","t4","signal","assert","fetchTokenPricesWithFallback","t5","queryKey","queryFn","staleTime","LONG_STALE_TIME_FOR_REACTIVENESS","refetchInterval","ONE_MINUTE_MS","queryResults","useQuery","useTokenPrice","token","network","address","data","toLowerCase","select","queryResult","useNativeTokenPrice","nativeToken","useNativeToken"],"mappings":"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"}
|