@velora-dex/widget 0.1.2 → 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/web3/providers.d.ts +3 -0
- package/dist/components/web3/providers.d.ts.map +1 -1
- package/dist/components/web3/providers.js +18 -3
- package/dist/components/web3/providers.js.map +1 -1
- package/dist/components/widget/AppHeader/Activities/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.d.ts.map +1 -1
- package/dist/components/widget/AppHeader/Activities/Drawers.js +33 -29
- package/dist/components/widget/AppHeader/Activities/Drawers.js.map +1 -1
- package/dist/components/widget/AppHeader/Activities/hooks.d.ts.map +1 -1
- package/dist/components/widget/AppHeader/Activities/hooks.js +193 -106
- package/dist/components/widget/AppHeader/Activities/hooks.js.map +1 -1
- package/dist/components/widget/AppHeader/ActivityButton.js.map +1 -1
- 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 +67 -42
- 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.d.ts.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js +211 -203
- 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/ReceiverAddress/state/subscriptions.d.ts.map +1 -1
- package/dist/components/widget/ReceiverAddress/state/subscriptions.js +10 -3
- package/dist/components/widget/ReceiverAddress/state/subscriptions.js.map +1 -1
- package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcControls.js.map +1 -1
- package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcReviewAndConfirm.d.ts.map +1 -1
- package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcReviewAndConfirm.js +37 -39
- package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcReviewAndConfirm.js.map +1 -1
- package/dist/components/widget/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/EmptyInput.d.ts +1 -1
- package/dist/components/widget/TokenInput/EmptyInput.d.ts.map +1 -1
- package/dist/components/widget/TokenInput/EmptyInput.js +16 -14
- package/dist/components/widget/TokenInput/EmptyInput.js.map +1 -1
- package/dist/components/widget/TokenInput/index.d.ts.map +1 -1
- package/dist/components/widget/TokenInput/index.js +92 -91
- package/dist/components/widget/TokenInput/index.js.map +1 -1
- package/dist/components/widget/TokenSwitcher/TokenSwitcher.d.ts.map +1 -1
- package/dist/components/widget/TokenSwitcher/TokenSwitcher.js +34 -31
- package/dist/components/widget/TokenSwitcher/TokenSwitcher.js.map +1 -1
- package/dist/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.d.ts.map +1 -1
- package/dist/core/Updaters.js +9 -5
- package/dist/core/Updaters.js.map +1 -1
- package/dist/core/Warnings.js.map +1 -1
- package/dist/core/across/utils.d.ts.map +1 -1
- package/dist/core/across/utils.js +4 -4
- package/dist/core/across/utils.js.map +1 -1
- package/dist/core/button/hooks/useWidgetButtonExtraProps.js.map +1 -1
- package/dist/core/constants.d.ts +5 -0
- package/dist/core/constants.d.ts.map +1 -1
- package/dist/core/constants.js +11 -1
- package/dist/core/constants.js.map +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +191 -120
- package/dist/core/index.js.map +1 -1
- package/dist/core/inputs/hooks/types.d.ts +1 -1
- package/dist/core/inputs/hooks/types.d.ts.map +1 -1
- package/dist/core/inputs/hooks/useTokenFromInputProps.d.ts.map +1 -1
- package/dist/core/inputs/hooks/useTokenFromInputProps.js +119 -97
- package/dist/core/inputs/hooks/useTokenFromInputProps.js.map +1 -1
- package/dist/core/inputs/hooks/useTokenSwitcherProps.d.ts.map +1 -1
- package/dist/core/inputs/hooks/useTokenSwitcherProps.js +17 -7
- package/dist/core/inputs/hooks/useTokenSwitcherProps.js.map +1 -1
- package/dist/core/inputs/hooks/useTokenToInputProps.d.ts.map +1 -1
- package/dist/core/inputs/hooks/useTokenToInputProps.js +84 -105
- 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/selectedTokenActionsAtom.d.ts +1 -1
- package/dist/core/inputs/state/selectedTokenActionsAtom.d.ts.map +1 -1
- package/dist/core/inputs/state/selectedTokenActionsAtom.js +58 -28
- package/dist/core/inputs/state/selectedTokenActionsAtom.js.map +1 -1
- package/dist/core/inputs/state/selectedTokenAtom.js.map +1 -1
- package/dist/core/inputs/state/setTokenByAddressAtom.d.ts.map +1 -1
- package/dist/core/inputs/state/setTokenByAddressAtom.js +10 -9
- package/dist/core/inputs/state/setTokenByAddressAtom.js.map +1 -1
- package/dist/core/inputs/state/subscriptions.d.ts.map +1 -1
- package/dist/core/inputs/state/subscriptions.js +2 -1
- package/dist/core/inputs/state/subscriptions.js.map +1 -1
- package/dist/core/limit/state/deadlineAtom.js.map +1 -1
- package/dist/core/limit/state/selectedTokenActionsAtom.d.ts.map +1 -1
- package/dist/core/limit/state/selectedTokenActionsAtom.js +3 -3
- package/dist/core/limit/state/selectedTokenActionsAtom.js.map +1 -1
- package/dist/core/limit/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 +104 -94
- package/dist/core/limit/useLimitTokenFromInputProps.js.map +1 -1
- package/dist/core/limit/useLimitTokenSwitcherProps.js.map +1 -1
- package/dist/core/limit/useLimitTokenToInputProps.d.ts.map +1 -1
- package/dist/core/limit/useLimitTokenToInputProps.js +9 -20
- package/dist/core/limit/useLimitTokenToInputProps.js.map +1 -1
- package/dist/core/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/selectedTokenActionsAtom.d.ts.map +1 -1
- package/dist/core/otc/state/selectedTokenActionsAtom.js +3 -3
- package/dist/core/otc/state/selectedTokenActionsAtom.js.map +1 -1
- package/dist/core/otc/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 +104 -94
- package/dist/core/otc/useOtcTokenFromInputProps.js.map +1 -1
- package/dist/core/otc/useOtcTokenSwitcherProps.js.map +1 -1
- package/dist/core/otc/useOtcTokenToInputProps.d.ts.map +1 -1
- package/dist/core/otc/useOtcTokenToInputProps.js +9 -20
- package/dist/core/otc/useOtcTokenToInputProps.js.map +1 -1
- package/dist/core/state/chainToAtom.js.map +1 -1
- package/dist/core/state/configActionsAtom.d.ts +5 -2
- package/dist/core/state/configActionsAtom.d.ts.map +1 -1
- package/dist/core/state/configActionsAtom.js +24 -12
- package/dist/core/state/configActionsAtom.js.map +1 -1
- package/dist/core/state/configAtom.d.ts +32 -10
- package/dist/core/state/configAtom.d.ts.map +1 -1
- package/dist/core/state/configAtom.js +16 -8
- package/dist/core/state/configAtom.js.map +1 -1
- package/dist/core/state/configEffectAtom.d.ts +5 -0
- package/dist/core/state/configEffectAtom.d.ts.map +1 -0
- package/dist/core/state/configEffectAtom.js +56 -0
- package/dist/core/state/configEffectAtom.js.map +1 -0
- package/dist/core/state/containerAtom.js.map +1 -1
- package/dist/core/state/enabledChainsAtom.d.ts +10 -0
- package/dist/core/state/enabledChainsAtom.d.ts.map +1 -0
- package/dist/core/state/enabledChainsAtom.js +101 -0
- package/dist/core/state/enabledChainsAtom.js.map +1 -0
- package/dist/core/state/enabledTradeModesAtom.d.ts +3 -0
- package/dist/core/state/enabledTradeModesAtom.d.ts.map +1 -0
- package/dist/core/state/enabledTradeModesAtom.js +31 -0
- package/dist/core/state/enabledTradeModesAtom.js.map +1 -0
- package/dist/core/state/externalProviderAtom.js.map +1 -1
- package/dist/core/state/isCrosschainAtom.js.map +1 -1
- package/dist/core/state/tradeModeAtom.d.ts +2 -1
- package/dist/core/state/tradeModeAtom.d.ts.map +1 -1
- package/dist/core/state/tradeModeAtom.js +9 -2
- package/dist/core/state/tradeModeAtom.js.map +1 -1
- package/dist/core/state/widgetEventsAtom.js.map +1 -1
- package/dist/core/subscriptions.d.ts.map +1 -1
- package/dist/core/subscriptions.js +0 -2
- package/dist/core/subscriptions.js.map +1 -1
- package/dist/core/swapDetails/useSwapDetailsListProps.js +34 -36
- package/dist/core/swapDetails/useSwapDetailsListProps.js.map +1 -1
- package/dist/core/types.d.ts +12 -0
- package/dist/core/types.d.ts.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 +13 -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.d.ts +5 -2
- package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.js +19 -2
- package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.js.map +1 -1
- package/dist/hooks/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.d.ts.map +1 -1
- package/dist/hooks/tokens/data/useCombineTokensWithFetched.js +43 -49
- 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.d.ts.map +1 -1
- package/dist/hooks/txs/queries/useAwaitTx.js +11 -7
- package/dist/hooks/txs/queries/useAwaitTx.js.map +1 -1
- package/dist/hooks/txs/queries/useTxHistory.js.map +1 -1
- package/dist/hooks/useAvailableCrosses.d.ts +3 -2
- package/dist/hooks/useAvailableCrosses.d.ts.map +1 -1
- package/dist/hooks/useAvailableCrosses.js +23 -20
- package/dist/hooks/useAvailableCrosses.js.map +1 -1
- package/dist/hooks/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.d.ts +1 -0
- package/dist/hooks/useGlobalDeltaEnabled.d.ts.map +1 -1
- package/dist/hooks/useGlobalDeltaEnabled.js +22 -17
- package/dist/hooks/useGlobalDeltaEnabled.js.map +1 -1
- package/dist/hooks/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.d.ts +14 -0
- package/dist/hooks/useSelectableDestChains.d.ts.map +1 -0
- package/dist/hooks/useSelectableDestChains.js +91 -0
- package/dist/hooks/useSelectableDestChains.js.map +1 -0
- package/dist/hooks/useSlippage.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/constants/delta.js +1 -1
- package/dist/lib/constants/delta.js.map +1 -1
- package/dist/lib/constants/index.js +1 -1
- package/dist/lib/constants/index.js.map +1 -1
- package/dist/lib/tradeMode.d.ts +4 -0
- package/dist/lib/tradeMode.d.ts.map +1 -0
- package/dist/lib/tradeMode.js +8 -0
- package/dist/lib/tradeMode.js.map +1 -0
- package/dist/lib/utils/approval.js.map +1 -1
- package/dist/lib/utils/atomWithCompare.d.ts +2 -0
- package/dist/lib/utils/atomWithCompare.d.ts.map +1 -0
- package/dist/lib/utils/atomWithCompare.js +13 -0
- package/dist/lib/utils/atomWithCompare.js.map +1 -0
- package/dist/lib/utils/index.d.ts +2 -0
- package/dist/lib/utils/index.d.ts.map +1 -1
- package/dist/lib/utils/index.js +17 -1
- package/dist/lib/utils/index.js.map +1 -1
- package/dist/lib/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.d.ts.map +1 -1
- package/dist/lib/web3/wagmi/config.js +3 -2
- package/dist/lib/web3/wagmi/config.js.map +1 -1
- package/dist/lib/web3/wagmi/constants.d.ts +2 -1
- package/dist/lib/web3/wagmi/constants.d.ts.map +1 -1
- package/dist/lib/web3/wagmi/constants.js.map +1 -1
- package/dist/lib/web3/wagmi/isInsideSafeIframe.js.map +1 -1
- package/dist/lib/web3/wagmi/switchChain.d.ts +1169 -0
- package/dist/lib/web3/wagmi/switchChain.d.ts.map +1 -0
- package/dist/lib/web3/wagmi/switchChain.js +23 -0
- package/dist/lib/web3/wagmi/switchChain.js.map +1 -0
- package/dist/lib/web3/wagmi/types.d.ts +2 -2
- package/dist/lib/web3/wagmi/types.d.ts.map +1 -1
- package/dist/styles.css +83 -39
- package/dist/tokens/hooks.js.map +1 -1
- package/dist/tokens/lists/constants.d.ts +1 -0
- package/dist/tokens/lists/constants.d.ts.map +1 -1
- package/dist/tokens/lists/constants.js +6 -2
- package/dist/tokens/lists/constants.js.map +1 -1
- package/dist/tokens/lists/lists.json.d.ts +23 -44
- package/dist/tokens/lists/lists.json.js +354 -1
- package/dist/tokens/lists/lists.json.js.map +1 -1
- package/dist/tokens/lists/state/effects.d.ts +2 -0
- package/dist/tokens/lists/state/effects.d.ts.map +1 -0
- package/dist/tokens/lists/state/effects.js +25 -0
- package/dist/tokens/lists/state/effects.js.map +1 -0
- package/dist/tokens/lists/state/tokenListsActionsAtom.js +3 -3
- package/dist/tokens/lists/state/tokenListsActionsAtom.js.map +1 -1
- package/dist/tokens/lists/state/tokenListsStateAtom.d.ts +16 -7
- package/dist/tokens/lists/state/tokenListsStateAtom.d.ts.map +1 -1
- package/dist/tokens/lists/state/tokenListsStateAtom.js +50 -5
- package/dist/tokens/lists/state/tokenListsStateAtom.js.map +1 -1
- package/dist/tokens/lists/types.d.ts.map +1 -1
- package/dist/tokens/lists/utils.js +1 -1
- package/dist/tokens/queries.d.ts +4 -2
- package/dist/tokens/queries.d.ts.map +1 -1
- package/dist/tokens/queries.js +31 -25
- 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/state/fromListsAtom.js +4 -4
- package/dist/tokens/state/fromListsAtom.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/queries/ensureTxReceipt.d.ts +3 -2
- package/dist/transactions/queries/ensureTxReceipt.d.ts.map +1 -1
- package/dist/transactions/queries/ensureTxReceipt.js +26 -6
- package/dist/transactions/queries/ensureTxReceipt.js.map +1 -1
- package/dist/transactions/state/hooks/useActivateEffects.js.map +1 -1
- package/dist/transactions/state/hooks/useTransactions.d.ts +2 -0
- package/dist/transactions/state/hooks/useTransactions.d.ts.map +1 -1
- package/dist/transactions/state/hooks/useTransactions.js +59 -1
- package/dist/transactions/state/hooks/useTransactions.js.map +1 -1
- package/dist/transactions/types.d.ts +21 -1
- package/dist/transactions/types.d.ts.map +1 -1
- package/package.json +6 -5
- 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/tokens/lists/hooks.d.ts +0 -2
- package/dist/tokens/lists/hooks.d.ts.map +0 -1
- package/dist/tokens/lists/hooks.js +0 -26
- package/dist/tokens/lists/hooks.js.map +0 -1
- package/dist/tokens/lists/state/observer.d.ts +0 -2
- package/dist/tokens/lists/state/observer.d.ts.map +0 -1
- package/dist/tokens/lists/state/observer.js +0 -18
- package/dist/tokens/lists/state/observer.js.map +0 -1
- /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
package/dist/tokens/queries.js
CHANGED
|
@@ -7,8 +7,9 @@ import { QUERY_KEY_FETCH_TOKEN_LISTS } from './constants.js';
|
|
|
7
7
|
import { constructPlaceholderData } from './lists/utils.js';
|
|
8
8
|
import { isTruthy } from '../lib/utils/index.js';
|
|
9
9
|
import { overrideTokenList } from './overrides.js';
|
|
10
|
-
import { useAllTokenLists } from './lists/hooks.js';
|
|
11
10
|
import { stableCoinsTokenLists } from './stabeCoins/index.js';
|
|
11
|
+
import { useAtomValue } from 'jotai';
|
|
12
|
+
import { tokenListUrlsAtom } from './lists/state/tokenListsStateAtom.js';
|
|
12
13
|
|
|
13
14
|
function isDataEqual(currentData, incomingData) {
|
|
14
15
|
if (!currentData) return false;
|
|
@@ -16,9 +17,12 @@ function isDataEqual(currentData, incomingData) {
|
|
|
16
17
|
const isOlderOrEqual = versionComparator(incomingData.data.version, currentData.data.version) <= 0;
|
|
17
18
|
return isOlderOrEqual;
|
|
18
19
|
}
|
|
19
|
-
function
|
|
20
|
+
function produceQueriesOptions(listURLs, tag) {
|
|
20
21
|
const uniqueListURLs = Array.from(new Set(listURLs));
|
|
21
|
-
return uniqueListURLs.filter(isTruthy).map((listURL) => (
|
|
22
|
+
return uniqueListURLs.filter(isTruthy).map((listURL) => produceSingleQueryOption(listURL, tag));
|
|
23
|
+
}
|
|
24
|
+
function produceSingleQueryOptionMin(listURL, tag) {
|
|
25
|
+
return {
|
|
22
26
|
queryKey: [QUERY_KEY_FETCH_TOKEN_LISTS, listURL],
|
|
23
27
|
queryFn: async ({
|
|
24
28
|
signal
|
|
@@ -34,20 +38,26 @@ function produceQueryOptions(listURLs, tag) {
|
|
|
34
38
|
available: Array.isArray(data.tokens)
|
|
35
39
|
};
|
|
36
40
|
},
|
|
37
|
-
notifyOnChangeProps: ["data"],
|
|
38
|
-
placeholderData: constructPlaceholderData(listURL),
|
|
39
|
-
// start with unavailable but still with url
|
|
40
|
-
refetchOnMount: false,
|
|
41
41
|
staleTime: Infinity,
|
|
42
|
+
gcTime: Infinity,
|
|
42
43
|
// custom comparison to optimize big token list comparison
|
|
43
44
|
structuralSharing: (oldData, newData) => isDataEqual(oldData, newData) ? oldData : replaceEqualDeep(oldData, newData)
|
|
44
|
-
}
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
function produceSingleQueryOption(listURL, tag) {
|
|
48
|
+
return {
|
|
49
|
+
...produceSingleQueryOptionMin(listURL, tag),
|
|
50
|
+
notifyOnChangeProps: ["data"],
|
|
51
|
+
placeholderData: constructPlaceholderData(listURL),
|
|
52
|
+
// start with unavailable but still with url
|
|
53
|
+
refetchOnMount: false
|
|
54
|
+
};
|
|
45
55
|
}
|
|
46
56
|
const useFetchListsWithQueryResult = (listURLs, tag) => {
|
|
47
57
|
const $ = distExports.c(7);
|
|
48
58
|
let t0;
|
|
49
59
|
if ($[0] !== listURLs || $[1] !== tag) {
|
|
50
|
-
t0 =
|
|
60
|
+
t0 = produceQueriesOptions(listURLs, tag);
|
|
51
61
|
$[0] = listURLs;
|
|
52
62
|
$[1] = tag;
|
|
53
63
|
$[2] = t0;
|
|
@@ -66,30 +76,26 @@ const useFetchListsWithQueryResult = (listURLs, tag) => {
|
|
|
66
76
|
}
|
|
67
77
|
const queryResults = useQueries(t1);
|
|
68
78
|
let t2;
|
|
69
|
-
let t3;
|
|
70
79
|
if ($[5] !== queryResults) {
|
|
71
|
-
|
|
80
|
+
t2 = queryResults.map(_temp);
|
|
72
81
|
$[5] = queryResults;
|
|
73
|
-
$[6] =
|
|
82
|
+
$[6] = t2;
|
|
74
83
|
} else {
|
|
75
|
-
|
|
84
|
+
t2 = $[6];
|
|
76
85
|
}
|
|
77
|
-
t2 = t3;
|
|
78
86
|
return t2;
|
|
79
87
|
};
|
|
80
88
|
function useFetchLists(listURLs, tag) {
|
|
81
89
|
const $ = distExports.c(2);
|
|
82
90
|
const queryResults = useFetchListsWithQueryResult(listURLs, tag);
|
|
83
91
|
let t0;
|
|
84
|
-
let t1;
|
|
85
92
|
if ($[0] !== queryResults) {
|
|
86
|
-
|
|
93
|
+
t0 = queryResults.map(_temp2);
|
|
87
94
|
$[0] = queryResults;
|
|
88
|
-
$[1] =
|
|
95
|
+
$[1] = t0;
|
|
89
96
|
} else {
|
|
90
|
-
|
|
97
|
+
t0 = $[1];
|
|
91
98
|
}
|
|
92
|
-
t0 = t1;
|
|
93
99
|
return t0;
|
|
94
100
|
}
|
|
95
101
|
function _temp2(t0) {
|
|
@@ -98,13 +104,13 @@ function _temp2(t0) {
|
|
|
98
104
|
} = t0;
|
|
99
105
|
return dataOrPlaceholder;
|
|
100
106
|
}
|
|
101
|
-
function
|
|
107
|
+
function useFetchTokenLists() {
|
|
102
108
|
const $ = distExports.c(2);
|
|
103
|
-
const
|
|
109
|
+
const currentlyEnabledLists = useAtomValue(tokenListUrlsAtom);
|
|
104
110
|
let t0;
|
|
105
|
-
if ($[0] !==
|
|
106
|
-
t0 = stableCoinsTokenLists.concat(
|
|
107
|
-
$[0] =
|
|
111
|
+
if ($[0] !== currentlyEnabledLists) {
|
|
112
|
+
t0 = stableCoinsTokenLists.concat(currentlyEnabledLists);
|
|
113
|
+
$[0] = currentlyEnabledLists;
|
|
108
114
|
$[1] = t0;
|
|
109
115
|
} else {
|
|
110
116
|
t0 = $[1];
|
|
@@ -119,5 +125,5 @@ function _temp(result) {
|
|
|
119
125
|
};
|
|
120
126
|
}
|
|
121
127
|
|
|
122
|
-
export {
|
|
128
|
+
export { produceQueriesOptions, produceSingleQueryOption, produceSingleQueryOptionMin, useFetchLists, useFetchListsWithQueryResult, useFetchTokenLists };
|
|
123
129
|
//# sourceMappingURL=queries.js.map
|
|
@@ -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 {
|
|
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 \"jotai\";\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 >({ queries: produceQueriesOptions(listURLs, tag) });\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;AAM7BoC,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;AAA/CC,IAAAA,EAAAA,GAAA;AAAA,MAAAC,OAAAA,EAAWF;AAAAA,KAAqC;AAACF,IAAAA,CAAAA,MAAAE,EAAAA;AAAAF,IAAAA,CAAAA,MAAAG,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAH,EAAA,CAAA,CAAA;AAAA,EAAA;AAFnD,EAAA,MAAAK,YAAAA,GAAqBC,WAEnBH,EAAiD,CAAA;AAAE,EAAA,IAAAI,EAAAA;AAAA,EAAA,IAAAP,CAAAA,QAAAK,YAAAA,EAAA;AAIjDE,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;AAzCA,SAAAV,MAAAW,MAAAA,EAAA;AAAA,EAAA,OAUR;AAAA,IAAAR,iBAAAA,EAG1BQ,OAAMzD,IAAAA,IACNmC,wBAAAA,CAAyBsB,OAAMC,KAAAA,EAAcC,MAAAA,EAAKrC,OAAzB,EAA+B,CAAA;AAAA,IAACmC;AAAAA,GAE7D;AAAC;;;;"}
|
|
@@ -11,15 +11,13 @@ function useStablecoinSetsByChain() {
|
|
|
11
11
|
const $ = distExports.c(2);
|
|
12
12
|
const lists = useStableCoinTokenLists();
|
|
13
13
|
let t0;
|
|
14
|
-
let t1;
|
|
15
14
|
if ($[0] !== lists) {
|
|
16
|
-
|
|
15
|
+
t0 = tokenlistsToSetsByChain(lists);
|
|
17
16
|
$[0] = lists;
|
|
18
|
-
$[1] =
|
|
17
|
+
$[1] = t0;
|
|
19
18
|
} else {
|
|
20
|
-
|
|
19
|
+
t0 = $[1];
|
|
21
20
|
}
|
|
22
|
-
t0 = t1;
|
|
23
21
|
return t0;
|
|
24
22
|
}
|
|
25
23
|
function useIsAddressStablecoin(addresses, chainId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sources":["../../../src/tokens/stabeCoins/hooks.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport { stableCoinsTokenLists } from \".\";\nimport { useFetchLists } from \"../queries\";\nimport type { ChainTokensSet, TokenListFetched } from \"../types\";\nimport {\n checkAddressesBelongToChainSet,\n tokenlistsToSetsByChain,\n} from \"../utils/sets\";\n\nexport function useStableCoinTokenLists(): TokenListFetched<\"stablecoin\">[] {\n return useFetchLists(stableCoinsTokenLists, \"stablecoin\");\n}\n\n// compose stablecoin sets\nexport function useStablecoinSetsByChain(): ChainTokensSet {\n const lists = useStableCoinTokenLists();\n\n return useMemo(() => tokenlistsToSetsByChain(lists), [lists]);\n}\n\nexport function useIsAddressStablecoin(\n addresses: (string | undefined)[],\n chainId?: number\n): boolean {\n const chainId2StableCoinSets = useStablecoinSetsByChain();\n return checkAddressesBelongToChainSet(\n chainId2StableCoinSets,\n addresses,\n chainId\n );\n}\n"],"names":["useStableCoinTokenLists","useFetchLists","stableCoinsTokenLists","useStablecoinSetsByChain","$","_c","lists","t0","
|
|
1
|
+
{"version":3,"file":"hooks.js","sources":["../../../src/tokens/stabeCoins/hooks.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport { stableCoinsTokenLists } from \".\";\nimport { useFetchLists } from \"../queries\";\nimport type { ChainTokensSet, TokenListFetched } from \"../types\";\nimport {\n checkAddressesBelongToChainSet,\n tokenlistsToSetsByChain,\n} from \"../utils/sets\";\n\nexport function useStableCoinTokenLists(): TokenListFetched<\"stablecoin\">[] {\n return useFetchLists(stableCoinsTokenLists, \"stablecoin\");\n}\n\n// compose stablecoin sets\nexport function useStablecoinSetsByChain(): ChainTokensSet {\n const lists = useStableCoinTokenLists();\n\n return useMemo(() => tokenlistsToSetsByChain(lists), [lists]);\n}\n\nexport function useIsAddressStablecoin(\n addresses: (string | undefined)[],\n chainId?: number\n): boolean {\n const chainId2StableCoinSets = useStablecoinSetsByChain();\n return checkAddressesBelongToChainSet(\n chainId2StableCoinSets,\n addresses,\n chainId\n );\n}\n"],"names":["useStableCoinTokenLists","useFetchLists","stableCoinsTokenLists","useStablecoinSetsByChain","$","_c","lists","t0","tokenlistsToSetsByChain","useIsAddressStablecoin","addresses","chainId","chainId2StableCoinSets","checkAddressesBelongToChainSet"],"mappings":";;;;;;AASO,SAAAA,uBAAAA,GAAA;AAAA,EAAA,OACEC,aAAAA,CAAcC,uBAAuB,YAAY,CAAA;AAAC;AAIpD,SAAAC,wBAAAA,GAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AACL,EAAA,MAAAC,QAAcN,uBAAAA,EAAwB;AAAE,EAAA,IAAAO,EAAAA;AAAA,EAAA,IAAAH,CAAAA,QAAAE,KAAAA,EAAA;AAEnBC,IAAAA,EAAAA,GAAAC,wBAAwBF,KAAK,CAAA;AAACF,IAAAA,CAAAA,MAAAE,KAAAA;AAAAF,IAAAA,CAAAA,MAAAG,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAH,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAA9BG,EAAAA;AAA8B;AAG9C,SAAAE,sBAAAA,CAAAC,WAAAC,OAAAA,EAAA;AAAA,EAAA,MAAAP,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAIL,EAAA,MAAAO,yBAA+BT,wBAAAA,EAAyB;AAAE,EAAA,IAAAI,EAAAA;AAAA,EAAA,IAAAH,CAAAA,CAAA,CAAA,CAAA,KAAAM,SAAAA,IAAAN,CAAAA,QAAAO,OAAAA,IAAAP,CAAAA,CAAA,CAAA,CAAA,KAAAQ,sBAAAA,EAAA;AACnDL,IAAAA,EAAAA,GAAAM,8BAAAA,CACLD,sBAAAA,EACAF,SAAAA,EACAC,OACF,CAAA;AAACP,IAAAA,CAAAA,MAAAM,SAAAA;AAAAN,IAAAA,CAAAA,MAAAO,OAAAA;AAAAP,IAAAA,CAAAA,MAAAQ,sBAAAA;AAAAR,IAAAA,CAAAA,MAAAG,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAH,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAJMG,EAAAA;AAIN;;;;"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { constructedTokensByURLAtom, enabledAndDefaultTokenURLSAtom } from '../lists/state/tokenListsStateAtom.js';
|
|
2
2
|
import { atom } from 'jotai';
|
|
3
3
|
import { constructTokensFromLists } from './constructTokens.js';
|
|
4
4
|
import { gatherObjectsByProp } from '../../lib/utils/index.js';
|
|
5
5
|
import { isSupportedChainId } from '../../lib/web3/wagmi/utils.js';
|
|
6
6
|
|
|
7
7
|
const fromListsAtom = atom((get) => {
|
|
8
|
-
const tokenListsState = get(tokenListsAtom);
|
|
9
8
|
const constructedTokensByURLState = get(constructedTokensByURLAtom);
|
|
10
|
-
const
|
|
9
|
+
const enabledAndDefaultTokenURLS = get(enabledAndDefaultTokenURLSAtom);
|
|
10
|
+
const chainsFromLists = Object.keys(enabledAndDefaultTokenURLS).map(Number).filter(isSupportedChainId);
|
|
11
11
|
const fromLists = chainsFromLists.reduce((acc, chainId) => {
|
|
12
|
-
const tokenListForChain =
|
|
12
|
+
const tokenListForChain = enabledAndDefaultTokenURLS[chainId];
|
|
13
13
|
if (!tokenListForChain) return acc;
|
|
14
14
|
const constructedLists = constructTokensFromLists({
|
|
15
15
|
enabledListURLs: tokenListForChain.enabled || [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fromListsAtom.js","sources":["../../../src/tokens/state/fromListsAtom.ts"],"sourcesContent":["import type { Token, TokenFromList } from \"./types\";\nimport {\n constructedTokensByURLAtom,\n
|
|
1
|
+
{"version":3,"file":"fromListsAtom.js","sources":["../../../src/tokens/state/fromListsAtom.ts"],"sourcesContent":["import type { Token, TokenFromList } from \"./types\";\nimport {\n constructedTokensByURLAtom,\n enabledAndDefaultTokenURLSAtom,\n} from \"../lists/state/tokenListsStateAtom\";\nimport { atom } from \"jotai\";\nimport { constructTokensFromLists } from \"./constructTokens\";\nimport { gatherObjectsByProp } from \"@/lib/utils\";\nimport { isSupportedChainId } from \"@/lib/web3/wagmi/utils\";\nimport type { MarkOptional } from \"ts-essentials\";\n\nexport type TokensFromLists<TToken extends Token = TokenFromList> = {\n tokens: TToken[];\n addressMap: Record<string, TToken>;\n};\n\ntype TokensFromListsByChain<TToken extends Token = TokenFromList> = {\n listByChainId: Record<number, TokensFromLists<TToken>>;\n // unlike listByChainId, this contains tokens from disabled lists only, no imported tokens\n disabledListByChainId: Record<number, TokensFromLists<TToken>>;\n};\n\nexport type TokensFromListsState<TToken extends Token = TokenFromList> =\n TokensFromListsByChain<TToken> & {\n tokensFromAllChains: MarkOptional<TokenFromList, \"fromListURL\">[]; // without disabled\n };\n\nexport const fromListsAtom = atom<TokensFromListsState>((get) => {\n // get the current list atoms\n const constructedTokensByURLState = get(constructedTokensByURLAtom);\n const enabledAndDefaultTokenURLS = get(enabledAndDefaultTokenURLSAtom);\n\n const chainsFromLists = Object.keys(enabledAndDefaultTokenURLS)\n .map(Number)\n .filter(isSupportedChainId);\n\n // atom with the lists of constructed SDK tokens\n const fromLists = chainsFromLists.reduce<TokensFromListsByChain>(\n (acc, chainId) => {\n const tokenListForChain = enabledAndDefaultTokenURLS[chainId];\n if (!tokenListForChain) return acc;\n\n const constructedLists = constructTokensFromLists({\n enabledListURLs: tokenListForChain.enabled || [],\n tokensFromListByURL: constructedTokensByURLState,\n allListURLs: tokenListForChain.all || [],\n chainId,\n });\n if (!constructedLists) return acc;\n\n acc.listByChainId[chainId] = {\n tokens: constructedLists.list,\n addressMap: gatherObjectsByProp(constructedLists.list, (token) =>\n token.address.toLowerCase()\n ),\n };\n acc.disabledListByChainId[chainId] = {\n tokens: constructedLists.disabledList,\n addressMap: gatherObjectsByProp(\n constructedLists.disabledList,\n (token) => token.address.toLowerCase()\n ),\n };\n\n return acc;\n },\n {\n listByChainId: {},\n disabledListByChainId: {},\n }\n );\n\n const tokensFromAllChains = Object.values(fromLists.listByChainId).flatMap(\n ({ tokens }) => tokens\n );\n\n return { ...fromLists, tokensFromAllChains };\n});\n"],"names":["fromListsAtom","atom","get","constructedTokensByURLState","constructedTokensByURLAtom","enabledAndDefaultTokenURLS","enabledAndDefaultTokenURLSAtom","chainsFromLists","Object","keys","map","Number","filter","isSupportedChainId","fromLists","reduce","acc","chainId","tokenListForChain","constructedLists","constructTokensFromLists","enabledListURLs","enabled","tokensFromListByURL","allListURLs","all","listByChainId","tokens","list","addressMap","gatherObjectsByProp","token","address","toLowerCase","disabledListByChainId","disabledList","tokensFromAllChains","values","flatMap"],"mappings":";;;;;;AA2BO,MAAMA,aAAAA,GAAgBC,KAA4BC,CAAAA,GAAAA,KAAQ;AAE/D,EAAA,MAAMC,2BAAAA,GAA8BD,IAAIE,0BAA0B,CAAA;AAClE,EAAA,MAAMC,0BAAAA,GAA6BH,IAAII,8BAA8B,CAAA;AAErE,EAAA,MAAMC,eAAAA,GAAkBC,OAAOC,IAAAA,CAAKJ,0BAA0B,EAC3DK,GAAAA,CAAIC,MAAM,CAAA,CACVC,MAAAA,CAAOC,kBAAkB,CAAA;AAG5B,EAAA,MAAMC,SAAAA,GAAYP,eAAAA,CAAgBQ,MAAAA,CAChC,CAACC,KAAKC,OAAAA,KAAY;AAChB,IAAA,MAAMC,iBAAAA,GAAoBb,2BAA2BY,OAAO,CAAA;AAC5D,IAAA,IAAI,CAACC,mBAAmB,OAAOF,GAAAA;AAE/B,IAAA,MAAMG,mBAAmBC,wBAAAA,CAAyB;AAAA,MAChDC,eAAAA,EAAiBH,iBAAAA,CAAkBI,OAAAA,IAAW,EAAA;AAAA,MAC9CC,mBAAAA,EAAqBpB,2BAAAA;AAAAA,MACrBqB,WAAAA,EAAaN,iBAAAA,CAAkBO,GAAAA,IAAO,EAAA;AAAA,MACtCR;AAAAA,KACD,CAAA;AACD,IAAA,IAAI,CAACE,kBAAkB,OAAOH,GAAAA;AAE9BA,IAAAA,GAAAA,CAAIU,aAAAA,CAAcT,OAAO,CAAA,GAAI;AAAA,MAC3BU,QAAQR,gBAAAA,CAAiBS,IAAAA;AAAAA,MACzBC,UAAAA,EAAYC,oBAAoBX,gBAAAA,CAAiBS,IAAAA,EAAOG,WACtDA,KAAAA,CAAMC,OAAAA,CAAQC,aAChB;AAAA,KACF;AACAjB,IAAAA,GAAAA,CAAIkB,qBAAAA,CAAsBjB,OAAO,CAAA,GAAI;AAAA,MACnCU,QAAQR,gBAAAA,CAAiBgB,YAAAA;AAAAA,MACzBN,UAAAA,EAAYC,oBACVX,gBAAAA,CAAiBgB,YAAAA,EAChBJ,WAAUA,KAAAA,CAAMC,OAAAA,CAAQC,aAC3B;AAAA,KACF;AAEA,IAAA,OAAOjB,GAAAA;AAAAA,EACT,CAAA,EACA;AAAA,IACEU,eAAe,EAAC;AAAA,IAChBQ,uBAAuB;AAAC,GAE5B,CAAA;AAEA,EAAA,MAAME,sBAAsB5B,MAAAA,CAAO6B,MAAAA,CAAOvB,UAAUY,aAAa,CAAA,CAAEY,QACjE,CAAC;AAAA,IAAEX;AAAAA,QAAaA,MAClB,CAAA;AAEA,EAAA,OAAO;AAAA,IAAE,GAAGb,SAAAA;AAAAA,IAAWsB;AAAAA,GAAoB;AAC7C,CAAC;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transferAmountsFromReceipt.js","sources":["../../../src/tokens/utils/transferAmountsFromReceipt.ts"],"sourcesContent":["import {\n type Address,\n type TransactionReceipt,\n type Client,\n decodeEventLog,\n erc20Abi,\n type Hex,\n type Hash,\n} from \"viem\";\nimport {\n getBalance,\n getGasPrice,\n getTransaction,\n getTransactionReceipt,\n} from \"viem/actions\";\nimport type { Token } from \"../state/types\";\nimport { ETH_ADDRESS_LOWERCASE } from \"../constants\";\nimport { gatherObjectsByProp } from \"@/lib/utils\";\nimport { useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { useClient } from \"wagmi\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useCallback } from \"react\";\nimport { assert, type MarkOptional } from \"ts-essentials\";\nimport { isETH } from \"./eth\";\nimport { createLogger } from \"@/lib/utils/logger\";\nimport { isFilledArray } from \"@/lib/utils/tuple\";\n\ntype MinRequiredReceiptLog = {\n address: Address;\n topics: Hex[];\n data: Hex;\n};\n\ntype ERC20TransferAmountsFromReceiptInput = {\n receipt: {\n logs: MinRequiredReceiptLog[];\n };\n tokens: Pick<Token, \"address\">[];\n senderAddress: Address;\n receiverAddress: Address;\n};\n\ntype TransferAmountsFromReceiptInput = ERC20TransferAmountsFromReceiptInput & {\n receipt: MarkOptional<\n Pick<\n TransactionReceipt,\n | \"blockNumber\"\n | \"gasUsed\"\n | \"effectiveGasPrice\"\n | \"from\"\n | \"transactionHash\"\n >,\n \"effectiveGasPrice\" | \"from\"\n >;\n};\n\nexport type TokenTransfers = {\n token: Address;\n sentAmount: bigint;\n receivedAmount: bigint;\n};\n\ntype TransferAmountsFromReceiptResult = Record<Address, TokenTransfers>;\n\n// ERC20 Transfer event signature: Transfer(address,address,uint256)\nconst TRANSFER_EVENT_SIGNATURE =\n \"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef\";\n\n// give TransactionReceipt and tokens finds all transfers of Tokens to receiverAddress and returns amounts\nexport function getERC20TransferAmountsFromReceipt({\n receipt,\n tokens,\n senderAddress,\n receiverAddress,\n}: ERC20TransferAmountsFromReceiptInput): TransferAmountsFromReceiptResult {\n // Initialize result mapping with one entry per token\n const result: Record<Address, TokenTransfers> = gatherObjectsByProp(\n tokens,\n (token) => token.address.toLowerCase(),\n (token) => ({\n token: token.address as Address,\n sentAmount: 0n,\n receivedAmount: 0n,\n })\n );\n\n // Create a map for quick token lookup\n const tokensSet = new Set(tokens.map((token) => token.address.toLowerCase()));\n\n const fromAddressLowercase = senderAddress.toLowerCase();\n const toAddressLowercase = receiverAddress.toLowerCase();\n\n // Parse all logs in the transaction receipt\n for (const log of receipt.logs) {\n const logAddressLowercase = log.address.toLowerCase() as Address;\n // Check if this is a Transfer event from one of our tokens\n if (\n isFilledArray(log.topics) &&\n log.topics[0] === TRANSFER_EVENT_SIGNATURE &&\n tokensSet.has(logAddressLowercase)\n ) {\n try {\n // Parse the Transfer event parameters\n // topics[0] = event signature\n // topics[1] = from address (padded to 32 bytes)\n // topics[2] = to address (padded to 32 bytes)\n // data = value (uint256)\n\n const decoded = decodeEventLog({\n abi: erc20Abi,\n data: log.data,\n topics: log.topics,\n eventName: \"Transfer\",\n });\n\n const { from: fromAddress, to: toAddress, value } = decoded.args;\n\n const tokenTransfer = result[logAddressLowercase];\n if (!tokenTransfer) {\n continue;\n }\n\n // Check if the transfer is from sender to someone else\n if (fromAddress.toLowerCase() === fromAddressLowercase) {\n tokenTransfer.sentAmount += value;\n }\n // Check if the transfer is to receiver from someone else\n if (toAddress.toLowerCase() === toAddressLowercase) {\n tokenTransfer.receivedAmount += value;\n }\n } catch (_error) {\n // If parsing fails, skip this log\n continue;\n }\n }\n }\n\n return result;\n}\n\ntype NativeTokenTransferInput = {\n receipt: MarkOptional<\n Pick<\n TransactionReceipt,\n | \"blockNumber\"\n | \"gasUsed\"\n | \"effectiveGasPrice\"\n | \"from\"\n | \"transactionHash\"\n >,\n \"effectiveGasPrice\" | \"from\"\n >;\n senderAddress: Address;\n receiverAddress: Address;\n client: Client;\n};\n\n// when no gasPrice was fetched across several methods\nconst REASONABLE_GAS_PRICE = 2700000000n;\n\nexport async function getNativeTokenTransfer({\n receipt,\n senderAddress,\n receiverAddress,\n client,\n}: NativeTokenTransferInput): Promise<TokenTransfers> {\n const beforeBlockNumber = receipt.blockNumber - 1n;\n const afterBlockNumber = receipt.blockNumber;\n\n /*\n if the transaction was the only one transaction involving the sender and receiver\n in the block it was mined, and if the transaction was a SwapTransaction only,\n not some bulk transaction or a flashbot transaction, then we can consider\n that the ETH balances difference matches the ETH Swap amount.\n */\n\n const senderPromises = [\n // Get balances before the transaction\n getBalance(client, {\n address: senderAddress,\n blockNumber: beforeBlockNumber,\n }),\n // Get balances after the transaction\n getBalance(client, {\n address: senderAddress,\n blockNumber: afterBlockNumber,\n }),\n ] as const;\n\n const senderIsReceiver =\n senderAddress.toLowerCase() === receiverAddress.toLowerCase();\n\n const receiverPromises = senderIsReceiver\n ? // reuse sender promises if sender is receiver\n senderPromises\n : ([\n // Get balances before the transaction\n getBalance(client, {\n address: receiverAddress,\n blockNumber: beforeBlockNumber,\n }),\n // Get balances after the transaction\n getBalance(client, {\n address: receiverAddress,\n blockNumber: afterBlockNumber,\n }),\n ] as const);\n\n const [\n senderBalanceBefore,\n senderBalanceAfter,\n receiverBalanceBefore,\n receiverBalanceAfter,\n ] = await Promise.all([...senderPromises, ...receiverPromises]);\n\n // Calculate the differences\n let sentAmount = senderBalanceBefore - senderBalanceAfter; // difference in balances = sent ETH + paid gas\n let receivedAmount = receiverBalanceAfter - receiverBalanceBefore;\n\n let gasPrice = receipt.effectiveGasPrice;\n let from = receipt.from;\n if (!gasPrice) {\n // SendCalls receipt does not include some fields,\n // try to fetch them from the transaction hash\n const minTxData = await getMinTxDataFromHash({\n hash: receipt.transactionHash,\n client,\n });\n gasPrice = minTxData.gasPrice;\n from = minTxData.from;\n }\n\n if (!gasPrice) {\n gasPrice = REASONABLE_GAS_PRICE;\n }\n\n if (!from) {\n from = client.account?.address || senderAddress;\n }\n\n const gasCost = receipt.gasUsed * gasPrice;\n\n // if sender is the transaction sender (it may not be if a Relayer was involved)\n if (senderAddress.toLowerCase() === from.toLowerCase()) {\n // Adjust sentAmount for gas:\n // Subtract gas cost from sentAmount to get actual ETH sent (excluding gas fees)\n sentAmount -= gasCost;\n }\n\n // if sender is receiver, then need to adjust receivedAmount for gas\n if (senderAddress.toLowerCase() === receiverAddress.toLowerCase()) {\n receivedAmount += gasCost; // gas was paid out of the receivedAmount, so make this the amount before gas paid\n }\n\n return {\n token: ETH_ADDRESS_LOWERCASE, // Native token address\n sentAmount: sentAmount > 0n ? sentAmount : 0n,\n receivedAmount: receivedAmount > 0n ? receivedAmount : 0n,\n };\n}\n\ntype TokenTransfersFromReceiptInput = TransferAmountsFromReceiptInput & {\n client: Client;\n};\n\nexport async function getTokenTransfersFromReceipt({\n receipt,\n tokens,\n senderAddress,\n receiverAddress,\n client,\n}: TokenTransfersFromReceiptInput): Promise<TransferAmountsFromReceiptResult> {\n const tokensWithoutNative = tokens.filter((token) => !isETH(token));\n\n const tokenTransfers = getERC20TransferAmountsFromReceipt({\n receipt,\n tokens: tokensWithoutNative,\n senderAddress,\n receiverAddress,\n });\n\n // there was a native Token in the list\n if (tokensWithoutNative.length < tokens.length) {\n const nativeTokenTransfer = await getNativeTokenTransfer({\n receipt,\n senderAddress,\n receiverAddress,\n client,\n });\n\n tokenTransfers[ETH_ADDRESS_LOWERCASE] = nativeTokenTransfer;\n }\n\n return tokenTransfers;\n}\n\ntype TokenTransfersFromReceiptWithLimitsInput = {\n detectedTokenTransfers: Record<Address, TokenTransfers>;\n expectedTokenTransfers: Record<Address, TokenTransfers>;\n};\n\n// Helper function to validate an amount against expected value with tolerance\nfunction validateAmount({\n calculatedAmount,\n expectedAmount,\n tolerancePercent = 15, // max slippage %\n}: {\n calculatedAmount: bigint;\n expectedAmount: bigint;\n tolerancePercent?: number;\n}): bigint {\n if (expectedAmount === 0n) {\n // If expected is 0, use expected\n return expectedAmount;\n }\n\n // Check if calculated is within tolerance of expected\n const tolerance = (expectedAmount * BigInt(tolerancePercent)) / 100n;\n const minExpected = expectedAmount - tolerance;\n const maxExpected = expectedAmount + tolerance;\n\n if (calculatedAmount >= minExpected && calculatedAmount <= maxExpected) {\n return calculatedAmount;\n } else {\n return expectedAmount;\n }\n}\n\nconst logger1 = createLogger(\"Swap:amounts:Expected\");\nconst logger2 = createLogger(\"Swap:amounts:Detected\");\n\nexport function getTokenTransfersFromReceiptWithLimits({\n detectedTokenTransfers,\n expectedTokenTransfers,\n}: TokenTransfersFromReceiptWithLimitsInput): TransferAmountsFromReceiptResult {\n // Validate and adjust amounts based on expected values\n const validatedTokenTransfers: Record<Address, TokenTransfers> = {};\n\n logger1.once.log(\"Expected token transfers\", expectedTokenTransfers);\n logger2.once.log(\"Detected token transfers\", detectedTokenTransfers);\n\n for (const [tokenAddress, calculatedTransfer] of Object.entries(\n detectedTokenTransfers\n )) {\n const expectedTransfer = expectedTokenTransfers[tokenAddress as Address];\n\n if (!expectedTransfer) {\n // No expected value, use calculated\n validatedTokenTransfers[tokenAddress as Address] = calculatedTransfer;\n continue;\n }\n\n const validatedTransfer: TokenTransfers = {\n token: calculatedTransfer.token,\n sentAmount: validateAmount({\n calculatedAmount: calculatedTransfer.sentAmount,\n expectedAmount: expectedTransfer.sentAmount,\n }),\n receivedAmount: validateAmount({\n calculatedAmount: calculatedTransfer.receivedAmount,\n expectedAmount: expectedTransfer.receivedAmount,\n }),\n };\n\n validatedTokenTransfers[tokenAddress as Address] = validatedTransfer;\n }\n\n return validatedTokenTransfers;\n}\n\ntype UseTokenTransfersFromReceiptInput = TransferAmountsFromReceiptInput & {\n receipt: Pick<TransactionReceipt, \"transactionHash\">;\n chainId: SupportedChainId;\n expectedTokenTransfers: Record<Address, TokenTransfers>;\n};\n\n/**\n * @param expectedTokenTransfers - expected token transfers, if provided, will be used to validate the detected token transfers\n * @param chainId - chain id\n * @param receipt - transaction receipt\n * @param tokens - tokens\n * @param senderAddress - sender address\n * @param receiverAddress - receiver address\n * @returns - token transfers from receipt validated against expected token transfers\n * @note - ETH transfers are a best guess, and may not be accurate (falls back to expected token transfers)\n */\nexport function useTokenTransfersFromReceipt({\n receipt,\n tokens,\n senderAddress,\n receiverAddress,\n expectedTokenTransfers,\n chainId,\n}: MarkOptional<\n UseTokenTransfersFromReceiptInput,\n \"receipt\" | \"senderAddress\" | \"receiverAddress\" | \"expectedTokenTransfers\"\n>): UseQueryResult<TransferAmountsFromReceiptResult, Error> {\n const client = useClient({ chainId });\n\n const select = useCallback(\n (data: TransferAmountsFromReceiptResult) => {\n if (!expectedTokenTransfers) {\n return data;\n }\n\n return getTokenTransfersFromReceiptWithLimits({\n detectedTokenTransfers: data,\n expectedTokenTransfers,\n });\n },\n [expectedTokenTransfers]\n );\n\n return useQuery({\n queryKey: [\n \"token-transfers-from-receipt\",\n receipt?.transactionHash,\n receipt?.logs.length,\n senderAddress?.toLowerCase(),\n receiverAddress?.toLowerCase(),\n ],\n queryFn: async () => {\n assert(receipt, \"Receipt is required\");\n assert(senderAddress, \"Sender address is required\");\n assert(receiverAddress, \"Receiver address is required\");\n\n return getTokenTransfersFromReceipt({\n receipt,\n tokens,\n senderAddress,\n receiverAddress,\n client,\n });\n },\n select,\n enabled:\n !!receipt &&\n receipt.logs.length > 0 &&\n tokens.length > 0 &&\n !!senderAddress &&\n !!receiverAddress,\n });\n}\n\ntype MinTxData = {\n from?: Address;\n gasPrice?: bigint;\n};\n\ntype GetMinTxDataFromHashInput = {\n hash: Hash;\n client: Client;\n};\n\nasync function getMinTxDataFromHash({\n hash,\n client,\n}: GetMinTxDataFromHashInput): Promise<MinTxData> {\n let gasPrice: bigint | undefined = undefined;\n let from: Address | undefined;\n try {\n // likely this will return the correct receipt for the hash,\n // but in case of different RPC providers between the Wallet (which performed sendCalls),\n // and the RPC of the Client, the receipt may not be found\n const receipt = await getTransactionReceipt(client, {\n hash,\n });\n from = receipt.from;\n gasPrice = receipt.effectiveGasPrice;\n } catch {\n // can be TransactionReceiptNotFoundError\n }\n\n if (!gasPrice) {\n try {\n // very unlikely that even the transaction will not be found, but still possible\n const tx = await getTransaction(client, {\n hash,\n });\n from = tx.from;\n gasPrice = tx.gasPrice;\n } catch {\n // can be TransactionNotFoundError\n }\n }\n\n if (!gasPrice) {\n try {\n // just in case this may error\n gasPrice = await getGasPrice(client);\n } catch {\n // can be RequestError\n }\n }\n\n if (!from) {\n from = client.account?.address;\n }\n\n return {\n from,\n gasPrice,\n };\n}\n"],"names":["TRANSFER_EVENT_SIGNATURE","getERC20TransferAmountsFromReceipt","receipt","tokens","senderAddress","receiverAddress","result","gatherObjectsByProp","token","address","toLowerCase","sentAmount","receivedAmount","tokensSet","Set","map","fromAddressLowercase","toAddressLowercase","log","logs","logAddressLowercase","isFilledArray","topics","has","decoded","decodeEventLog","abi","erc20Abi","data","eventName","from","fromAddress","to","toAddress","value","args","tokenTransfer","_error","REASONABLE_GAS_PRICE","getNativeTokenTransfer","client","beforeBlockNumber","blockNumber","afterBlockNumber","senderPromises","getBalance","senderIsReceiver","receiverPromises","senderBalanceBefore","senderBalanceAfter","receiverBalanceBefore","receiverBalanceAfter","Promise","all","gasPrice","effectiveGasPrice","minTxData","getMinTxDataFromHash","hash","transactionHash","account","gasCost","gasUsed","ETH_ADDRESS_LOWERCASE","getTokenTransfersFromReceipt","tokensWithoutNative","filter","isETH","tokenTransfers","length","nativeTokenTransfer","validateAmount","calculatedAmount","expectedAmount","tolerancePercent","tolerance","BigInt","minExpected","maxExpected","logger1","createLogger","logger2","getTokenTransfersFromReceiptWithLimits","detectedTokenTransfers","expectedTokenTransfers","validatedTokenTransfers","once","tokenAddress","calculatedTransfer","Object","entries","expectedTransfer","validatedTransfer","useTokenTransfersFromReceipt","t0","$","_c","chainId","t1","useClient","t2","select","t3","t4","t5","t6","t7","t8","assert","t9","t10","queryKey","queryFn","enabled","useQuery","undefined","getTransactionReceipt","tx","getTransaction","getGasPrice"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"transferAmountsFromReceipt.js","sources":["../../../src/tokens/utils/transferAmountsFromReceipt.ts"],"sourcesContent":["import {\n type Address,\n type TransactionReceipt,\n type Client,\n decodeEventLog,\n erc20Abi,\n type Hex,\n type Hash,\n} from \"viem\";\nimport {\n getBalance,\n getGasPrice,\n getTransaction,\n getTransactionReceipt,\n} from \"viem/actions\";\nimport type { Token } from \"../state/types\";\nimport { ETH_ADDRESS_LOWERCASE } from \"../constants\";\nimport { gatherObjectsByProp } from \"@/lib/utils\";\nimport { useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { useClient } from \"wagmi\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useCallback } from \"react\";\nimport { assert, type MarkOptional } from \"ts-essentials\";\nimport { isETH } from \"./eth\";\nimport { createLogger } from \"@/lib/utils/logger\";\nimport { isFilledArray } from \"@/lib/utils/tuple\";\n\ntype MinRequiredReceiptLog = {\n address: Address;\n topics: Hex[];\n data: Hex;\n};\n\ntype ERC20TransferAmountsFromReceiptInput = {\n receipt: {\n logs: MinRequiredReceiptLog[];\n };\n tokens: Pick<Token, \"address\">[];\n senderAddress: Address;\n receiverAddress: Address;\n};\n\ntype TransferAmountsFromReceiptInput = ERC20TransferAmountsFromReceiptInput & {\n receipt: MarkOptional<\n Pick<\n TransactionReceipt,\n | \"blockNumber\"\n | \"gasUsed\"\n | \"effectiveGasPrice\"\n | \"from\"\n | \"transactionHash\"\n >,\n \"effectiveGasPrice\" | \"from\"\n >;\n};\n\nexport type TokenTransfers = {\n token: Address;\n sentAmount: bigint;\n receivedAmount: bigint;\n};\n\ntype TransferAmountsFromReceiptResult = Record<Address, TokenTransfers>;\n\n// ERC20 Transfer event signature: Transfer(address,address,uint256)\nconst TRANSFER_EVENT_SIGNATURE =\n \"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef\";\n\n// give TransactionReceipt and tokens finds all transfers of Tokens to receiverAddress and returns amounts\nexport function getERC20TransferAmountsFromReceipt({\n receipt,\n tokens,\n senderAddress,\n receiverAddress,\n}: ERC20TransferAmountsFromReceiptInput): TransferAmountsFromReceiptResult {\n // Initialize result mapping with one entry per token\n const result: Record<Address, TokenTransfers> = gatherObjectsByProp(\n tokens,\n (token) => token.address.toLowerCase(),\n (token) => ({\n token: token.address as Address,\n sentAmount: 0n,\n receivedAmount: 0n,\n })\n );\n\n // Create a map for quick token lookup\n const tokensSet = new Set(tokens.map((token) => token.address.toLowerCase()));\n\n const fromAddressLowercase = senderAddress.toLowerCase();\n const toAddressLowercase = receiverAddress.toLowerCase();\n\n // Parse all logs in the transaction receipt\n for (const log of receipt.logs) {\n const logAddressLowercase = log.address.toLowerCase() as Address;\n // Check if this is a Transfer event from one of our tokens\n if (\n isFilledArray(log.topics) &&\n log.topics[0] === TRANSFER_EVENT_SIGNATURE &&\n tokensSet.has(logAddressLowercase)\n ) {\n try {\n // Parse the Transfer event parameters\n // topics[0] = event signature\n // topics[1] = from address (padded to 32 bytes)\n // topics[2] = to address (padded to 32 bytes)\n // data = value (uint256)\n\n const decoded = decodeEventLog({\n abi: erc20Abi,\n data: log.data,\n topics: log.topics,\n eventName: \"Transfer\",\n });\n\n const { from: fromAddress, to: toAddress, value } = decoded.args;\n\n const tokenTransfer = result[logAddressLowercase];\n if (!tokenTransfer) {\n continue;\n }\n\n // Check if the transfer is from sender to someone else\n if (fromAddress.toLowerCase() === fromAddressLowercase) {\n tokenTransfer.sentAmount += value;\n }\n // Check if the transfer is to receiver from someone else\n if (toAddress.toLowerCase() === toAddressLowercase) {\n tokenTransfer.receivedAmount += value;\n }\n } catch (_error) {\n // If parsing fails, skip this log\n continue;\n }\n }\n }\n\n return result;\n}\n\ntype NativeTokenTransferInput = {\n receipt: MarkOptional<\n Pick<\n TransactionReceipt,\n | \"blockNumber\"\n | \"gasUsed\"\n | \"effectiveGasPrice\"\n | \"from\"\n | \"transactionHash\"\n >,\n \"effectiveGasPrice\" | \"from\"\n >;\n senderAddress: Address;\n receiverAddress: Address;\n client: Client;\n};\n\n// when no gasPrice was fetched across several methods\nconst REASONABLE_GAS_PRICE = 2700000000n;\n\nexport async function getNativeTokenTransfer({\n receipt,\n senderAddress,\n receiverAddress,\n client,\n}: NativeTokenTransferInput): Promise<TokenTransfers> {\n const beforeBlockNumber = receipt.blockNumber - 1n;\n const afterBlockNumber = receipt.blockNumber;\n\n /*\n if the transaction was the only one transaction involving the sender and receiver\n in the block it was mined, and if the transaction was a SwapTransaction only,\n not some bulk transaction or a flashbot transaction, then we can consider\n that the ETH balances difference matches the ETH Swap amount.\n */\n\n const senderPromises = [\n // Get balances before the transaction\n getBalance(client, {\n address: senderAddress,\n blockNumber: beforeBlockNumber,\n }),\n // Get balances after the transaction\n getBalance(client, {\n address: senderAddress,\n blockNumber: afterBlockNumber,\n }),\n ] as const;\n\n const senderIsReceiver =\n senderAddress.toLowerCase() === receiverAddress.toLowerCase();\n\n const receiverPromises = senderIsReceiver\n ? // reuse sender promises if sender is receiver\n senderPromises\n : ([\n // Get balances before the transaction\n getBalance(client, {\n address: receiverAddress,\n blockNumber: beforeBlockNumber,\n }),\n // Get balances after the transaction\n getBalance(client, {\n address: receiverAddress,\n blockNumber: afterBlockNumber,\n }),\n ] as const);\n\n const [\n senderBalanceBefore,\n senderBalanceAfter,\n receiverBalanceBefore,\n receiverBalanceAfter,\n ] = await Promise.all([...senderPromises, ...receiverPromises]);\n\n // Calculate the differences\n let sentAmount = senderBalanceBefore - senderBalanceAfter; // difference in balances = sent ETH + paid gas\n let receivedAmount = receiverBalanceAfter - receiverBalanceBefore;\n\n let gasPrice = receipt.effectiveGasPrice;\n let from = receipt.from;\n if (!gasPrice) {\n // SendCalls receipt does not include some fields,\n // try to fetch them from the transaction hash\n const minTxData = await getMinTxDataFromHash({\n hash: receipt.transactionHash,\n client,\n });\n gasPrice = minTxData.gasPrice;\n from = minTxData.from;\n }\n\n if (!gasPrice) {\n gasPrice = REASONABLE_GAS_PRICE;\n }\n\n if (!from) {\n from = client.account?.address || senderAddress;\n }\n\n const gasCost = receipt.gasUsed * gasPrice;\n\n // if sender is the transaction sender (it may not be if a Relayer was involved)\n if (senderAddress.toLowerCase() === from.toLowerCase()) {\n // Adjust sentAmount for gas:\n // Subtract gas cost from sentAmount to get actual ETH sent (excluding gas fees)\n sentAmount -= gasCost;\n }\n\n // if sender is receiver, then need to adjust receivedAmount for gas\n if (senderAddress.toLowerCase() === receiverAddress.toLowerCase()) {\n receivedAmount += gasCost; // gas was paid out of the receivedAmount, so make this the amount before gas paid\n }\n\n return {\n token: ETH_ADDRESS_LOWERCASE, // Native token address\n sentAmount: sentAmount > 0n ? sentAmount : 0n,\n receivedAmount: receivedAmount > 0n ? receivedAmount : 0n,\n };\n}\n\ntype TokenTransfersFromReceiptInput = TransferAmountsFromReceiptInput & {\n client: Client;\n};\n\nexport async function getTokenTransfersFromReceipt({\n receipt,\n tokens,\n senderAddress,\n receiverAddress,\n client,\n}: TokenTransfersFromReceiptInput): Promise<TransferAmountsFromReceiptResult> {\n const tokensWithoutNative = tokens.filter((token) => !isETH(token));\n\n const tokenTransfers = getERC20TransferAmountsFromReceipt({\n receipt,\n tokens: tokensWithoutNative,\n senderAddress,\n receiverAddress,\n });\n\n // there was a native Token in the list\n if (tokensWithoutNative.length < tokens.length) {\n const nativeTokenTransfer = await getNativeTokenTransfer({\n receipt,\n senderAddress,\n receiverAddress,\n client,\n });\n\n tokenTransfers[ETH_ADDRESS_LOWERCASE] = nativeTokenTransfer;\n }\n\n return tokenTransfers;\n}\n\ntype TokenTransfersFromReceiptWithLimitsInput = {\n detectedTokenTransfers: Record<Address, TokenTransfers>;\n expectedTokenTransfers: Record<Address, TokenTransfers>;\n};\n\n// Helper function to validate an amount against expected value with tolerance\nfunction validateAmount({\n calculatedAmount,\n expectedAmount,\n tolerancePercent = 15, // max slippage %\n}: {\n calculatedAmount: bigint;\n expectedAmount: bigint;\n tolerancePercent?: number;\n}): bigint {\n if (expectedAmount === 0n) {\n // If expected is 0, use expected\n return expectedAmount;\n }\n\n // Check if calculated is within tolerance of expected\n const tolerance = (expectedAmount * BigInt(tolerancePercent)) / 100n;\n const minExpected = expectedAmount - tolerance;\n const maxExpected = expectedAmount + tolerance;\n\n if (calculatedAmount >= minExpected && calculatedAmount <= maxExpected) {\n return calculatedAmount;\n } else {\n return expectedAmount;\n }\n}\n\nconst logger1 = createLogger(\"Swap:amounts:Expected\");\nconst logger2 = createLogger(\"Swap:amounts:Detected\");\n\nexport function getTokenTransfersFromReceiptWithLimits({\n detectedTokenTransfers,\n expectedTokenTransfers,\n}: TokenTransfersFromReceiptWithLimitsInput): TransferAmountsFromReceiptResult {\n // Validate and adjust amounts based on expected values\n const validatedTokenTransfers: Record<Address, TokenTransfers> = {};\n\n logger1.once.log(\"Expected token transfers\", expectedTokenTransfers);\n logger2.once.log(\"Detected token transfers\", detectedTokenTransfers);\n\n for (const [tokenAddress, calculatedTransfer] of Object.entries(\n detectedTokenTransfers\n )) {\n const expectedTransfer = expectedTokenTransfers[tokenAddress as Address];\n\n if (!expectedTransfer) {\n // No expected value, use calculated\n validatedTokenTransfers[tokenAddress as Address] = calculatedTransfer;\n continue;\n }\n\n const validatedTransfer: TokenTransfers = {\n token: calculatedTransfer.token,\n sentAmount: validateAmount({\n calculatedAmount: calculatedTransfer.sentAmount,\n expectedAmount: expectedTransfer.sentAmount,\n }),\n receivedAmount: validateAmount({\n calculatedAmount: calculatedTransfer.receivedAmount,\n expectedAmount: expectedTransfer.receivedAmount,\n }),\n };\n\n validatedTokenTransfers[tokenAddress as Address] = validatedTransfer;\n }\n\n return validatedTokenTransfers;\n}\n\ntype UseTokenTransfersFromReceiptInput = TransferAmountsFromReceiptInput & {\n receipt: Pick<TransactionReceipt, \"transactionHash\">;\n chainId: SupportedChainId;\n expectedTokenTransfers: Record<Address, TokenTransfers>;\n};\n\n/**\n * @param expectedTokenTransfers - expected token transfers, if provided, will be used to validate the detected token transfers\n * @param chainId - chain id\n * @param receipt - transaction receipt\n * @param tokens - tokens\n * @param senderAddress - sender address\n * @param receiverAddress - receiver address\n * @returns - token transfers from receipt validated against expected token transfers\n * @note - ETH transfers are a best guess, and may not be accurate (falls back to expected token transfers)\n */\nexport function useTokenTransfersFromReceipt({\n receipt,\n tokens,\n senderAddress,\n receiverAddress,\n expectedTokenTransfers,\n chainId,\n}: MarkOptional<\n UseTokenTransfersFromReceiptInput,\n \"receipt\" | \"senderAddress\" | \"receiverAddress\" | \"expectedTokenTransfers\"\n>): UseQueryResult<TransferAmountsFromReceiptResult, Error> {\n const client = useClient({ chainId });\n\n const select = useCallback(\n (data: TransferAmountsFromReceiptResult) => {\n if (!expectedTokenTransfers) {\n return data;\n }\n\n return getTokenTransfersFromReceiptWithLimits({\n detectedTokenTransfers: data,\n expectedTokenTransfers,\n });\n },\n [expectedTokenTransfers]\n );\n\n return useQuery({\n queryKey: [\n \"token-transfers-from-receipt\",\n receipt?.transactionHash,\n receipt?.logs.length,\n senderAddress?.toLowerCase(),\n receiverAddress?.toLowerCase(),\n ],\n queryFn: async () => {\n assert(receipt, \"Receipt is required\");\n assert(senderAddress, \"Sender address is required\");\n assert(receiverAddress, \"Receiver address is required\");\n\n return getTokenTransfersFromReceipt({\n receipt,\n tokens,\n senderAddress,\n receiverAddress,\n client,\n });\n },\n select,\n enabled:\n !!receipt &&\n receipt.logs.length > 0 &&\n tokens.length > 0 &&\n !!senderAddress &&\n !!receiverAddress,\n });\n}\n\ntype MinTxData = {\n from?: Address;\n gasPrice?: bigint;\n};\n\ntype GetMinTxDataFromHashInput = {\n hash: Hash;\n client: Client;\n};\n\nasync function getMinTxDataFromHash({\n hash,\n client,\n}: GetMinTxDataFromHashInput): Promise<MinTxData> {\n let gasPrice: bigint | undefined = undefined;\n let from: Address | undefined;\n try {\n // likely this will return the correct receipt for the hash,\n // but in case of different RPC providers between the Wallet (which performed sendCalls),\n // and the RPC of the Client, the receipt may not be found\n const receipt = await getTransactionReceipt(client, {\n hash,\n });\n from = receipt.from;\n gasPrice = receipt.effectiveGasPrice;\n } catch {\n // can be TransactionReceiptNotFoundError\n }\n\n if (!gasPrice) {\n try {\n // very unlikely that even the transaction will not be found, but still possible\n const tx = await getTransaction(client, {\n hash,\n });\n from = tx.from;\n gasPrice = tx.gasPrice;\n } catch {\n // can be TransactionNotFoundError\n }\n }\n\n if (!gasPrice) {\n try {\n // just in case this may error\n gasPrice = await getGasPrice(client);\n } catch {\n // can be RequestError\n }\n }\n\n if (!from) {\n from = client.account?.address;\n }\n\n return {\n from,\n gasPrice,\n };\n}\n"],"names":["TRANSFER_EVENT_SIGNATURE","getERC20TransferAmountsFromReceipt","receipt","tokens","senderAddress","receiverAddress","result","gatherObjectsByProp","token","address","toLowerCase","sentAmount","receivedAmount","tokensSet","Set","map","fromAddressLowercase","toAddressLowercase","log","logs","logAddressLowercase","isFilledArray","topics","has","decoded","decodeEventLog","abi","erc20Abi","data","eventName","from","fromAddress","to","toAddress","value","args","tokenTransfer","_error","REASONABLE_GAS_PRICE","getNativeTokenTransfer","client","beforeBlockNumber","blockNumber","afterBlockNumber","senderPromises","getBalance","senderIsReceiver","receiverPromises","senderBalanceBefore","senderBalanceAfter","receiverBalanceBefore","receiverBalanceAfter","Promise","all","gasPrice","effectiveGasPrice","minTxData","getMinTxDataFromHash","hash","transactionHash","account","gasCost","gasUsed","ETH_ADDRESS_LOWERCASE","getTokenTransfersFromReceipt","tokensWithoutNative","filter","isETH","tokenTransfers","length","nativeTokenTransfer","validateAmount","calculatedAmount","expectedAmount","tolerancePercent","tolerance","BigInt","minExpected","maxExpected","logger1","createLogger","logger2","getTokenTransfersFromReceiptWithLimits","detectedTokenTransfers","expectedTokenTransfers","validatedTokenTransfers","once","tokenAddress","calculatedTransfer","Object","entries","expectedTransfer","validatedTransfer","useTokenTransfersFromReceipt","t0","$","_c","chainId","t1","useClient","t2","select","t3","t4","t5","t6","t7","t8","assert","t9","t10","queryKey","queryFn","enabled","useQuery","undefined","getTransactionReceipt","tx","getTransaction","getGasPrice"],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ export type EnsureCallsStatusFn = (options: {
|
|
|
7
7
|
type EnsureCallsStatusFactory = (params?: {
|
|
8
8
|
queryClient?: QueryClient;
|
|
9
9
|
wagmiConfig?: Config;
|
|
10
|
+
isSafe?: boolean;
|
|
10
11
|
}) => EnsureCallsStatusFn;
|
|
11
12
|
export declare const ensureCallsStatusFactory: EnsureCallsStatusFactory;
|
|
12
13
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensureCallsStatus.d.ts","sourceRoot":"","sources":["../../../src/transactions/queries/ensureCallsStatus.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ensureCallsStatus.d.ts","sourceRoot":"","sources":["../../../src/transactions/queries/ensureCallsStatus.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAsB,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAE9D,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,EAAE;IAC1C,EAAE,EAAE,MAAM,CAAC;CACZ,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC;AAEtC,KAAK,wBAAwB,GAAG,CAAC,MAAM,CAAC,EAAE;IACxC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,KAAK,mBAAmB,CAAC;AAE1B,eAAO,MAAM,wBAAwB,EAAE,wBAwBpC,CAAC"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { connectedSafe } from '../../hooks/connectors/useIsConnectedSafe.js';
|
|
2
1
|
import { SAFE_CALLS_WAIT_TIMEOUT } from '../../lib/constants/index.js';
|
|
3
2
|
import { queryClient } from '../../lib/queryClient.js';
|
|
4
3
|
import { wagmiConfig } from '../../lib/web3/wagmi/config.js';
|
|
@@ -7,21 +6,24 @@ import { waitForCallsStatusQueryKey } from 'wagmi/query';
|
|
|
7
6
|
|
|
8
7
|
const ensureCallsStatusFactory = ({
|
|
9
8
|
queryClient: queryClient$1 = queryClient,
|
|
10
|
-
wagmiConfig: wagmiConfig$1 = wagmiConfig
|
|
9
|
+
wagmiConfig: wagmiConfig$1 = wagmiConfig,
|
|
10
|
+
isSafe = false
|
|
11
11
|
} = {}) => async ({
|
|
12
12
|
id
|
|
13
13
|
}) => {
|
|
14
|
+
const timeout = isSafe ? SAFE_CALLS_WAIT_TIMEOUT : void 0;
|
|
14
15
|
const queryKey = waitForCallsStatusQueryKey({
|
|
15
|
-
id
|
|
16
|
+
id,
|
|
17
|
+
timeout
|
|
18
|
+
// important to include timeout into queryKey to match useAwaitCalls queryKey
|
|
16
19
|
});
|
|
17
20
|
const status = await queryClient$1.ensureQueryData({
|
|
18
21
|
queryKey,
|
|
19
22
|
queryFn: async () => {
|
|
20
|
-
const isSafe = await connectedSafe();
|
|
21
23
|
return waitForCallsStatus(wagmiConfig$1, {
|
|
22
24
|
id,
|
|
23
25
|
throwOnFailure: true,
|
|
24
|
-
timeout
|
|
26
|
+
timeout
|
|
25
27
|
});
|
|
26
28
|
}
|
|
27
29
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensureCallsStatus.js","sources":["../../../src/transactions/queries/ensureCallsStatus.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"ensureCallsStatus.js","sources":["../../../src/transactions/queries/ensureCallsStatus.ts"],"sourcesContent":["import { SAFE_CALLS_WAIT_TIMEOUT } from \"@/lib/constants\";\nimport { queryClient as _queryClient } from \"@/lib/queryClient\";\nimport { wagmiConfig as _wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport type { QueryClient } from \"@tanstack/react-query\";\nimport { waitForCallsStatus, type Config } from \"@wagmi/core\";\n\nimport {\n waitForCallsStatusQueryKey,\n type WaitForCallsStatusData,\n} from \"wagmi/query\";\n\nexport type EnsureCallsStatusFn = (options: {\n id: string;\n}) => Promise<WaitForCallsStatusData>;\n\ntype EnsureCallsStatusFactory = (params?: {\n queryClient?: QueryClient;\n wagmiConfig?: Config;\n isSafe?: boolean;\n}) => EnsureCallsStatusFn;\n\nexport const ensureCallsStatusFactory: EnsureCallsStatusFactory =\n ({\n queryClient = _queryClient,\n wagmiConfig = _wagmiConfig,\n isSafe = false,\n } = {}) =>\n async ({ id }) => {\n const timeout = isSafe ? SAFE_CALLS_WAIT_TIMEOUT : undefined;\n const queryKey = waitForCallsStatusQueryKey({\n id,\n timeout, // important to include timeout into queryKey to match useAwaitCalls queryKey\n });\n const status = await queryClient.ensureQueryData({\n queryKey,\n queryFn: async () => {\n return waitForCallsStatus(wagmiConfig, {\n id,\n throwOnFailure: true,\n timeout,\n });\n },\n });\n\n return status;\n };\n"],"names":["ensureCallsStatusFactory","queryClient","_queryClient","wagmiConfig","_wagmiConfig","isSafe","id","timeout","SAFE_CALLS_WAIT_TIMEOUT","undefined","queryKey","waitForCallsStatusQueryKey","status","ensureQueryData","queryFn","waitForCallsStatus","throwOnFailure"],"mappings":";;;;;;AAqBO,MAAMA,2BACXA,CAAC;AAAA,eACCC,aAAAA,GAAcC,WAAAA;AAAAA,eACdC,aAAAA,GAAcC,WAAAA;AAAAA,EACdC,MAAAA,GAAS;AACX,CAAA,GAAI,OACJ,OAAO;AAAA,EAAEC;AAAG,CAAA,KAAM;AAChB,EAAA,MAAMC,OAAAA,GAAUF,SAASG,uBAAAA,GAA0BC,MAAAA;AACnD,EAAA,MAAMC,WAAWC,0BAAAA,CAA2B;AAAA,IAC1CL,EAAAA;AAAAA,IACAC;AAAAA;AAAAA,GACD,CAAA;AACD,EAAA,MAAMK,MAAAA,GAAS,MAAMX,aAAAA,CAAYY,eAAAA,CAAgB;AAAA,IAC/CH,QAAAA;AAAAA,IACAI,SAAS,YAAY;AACnB,MAAA,OAAOC,mBAAmBZ,aAAAA,EAAa;AAAA,QACrCG,EAAAA;AAAAA,QACAU,cAAAA,EAAgB,IAAA;AAAA,QAChBT;AAAAA,OACD,CAAA;AAAA,IACH;AAAA,GACD,CAAA;AAED,EAAA,OAAOK,MAAAA;AACT;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { UseAwaitTxParameters } from '../../hooks/txs/queries/useAwaitTx';
|
|
2
|
+
import { wagmiConfig as _wagmiConfig } from '../../lib/web3/wagmi/config';
|
|
2
3
|
import { QueryClient } from '@tanstack/react-query';
|
|
3
|
-
import { Config } from '@wagmi/core';
|
|
4
4
|
import { MarkRequired } from 'ts-essentials';
|
|
5
5
|
import { ReplacementReturnType, TransactionReceipt } from 'viem';
|
|
6
6
|
type OnReplacedCb = (data: ReplacementReturnType) => void;
|
|
@@ -9,7 +9,8 @@ export type EnsureTxReceiptFn = (options: MarkRequired<Pick<UseAwaitTxParameters
|
|
|
9
9
|
}) => Promise<TransactionReceipt>;
|
|
10
10
|
type EnsureTxReceiptFactory = (params?: {
|
|
11
11
|
queryClient?: QueryClient;
|
|
12
|
-
wagmiConfig?:
|
|
12
|
+
wagmiConfig?: typeof _wagmiConfig;
|
|
13
|
+
isSafe?: boolean;
|
|
13
14
|
}) => EnsureTxReceiptFn;
|
|
14
15
|
export declare const ensureTxReceiptFactory: EnsureTxReceiptFactory;
|
|
15
16
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensureTxReceipt.d.ts","sourceRoot":"","sources":["../../../src/transactions/queries/ensureTxReceipt.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ensureTxReceipt.d.ts","sourceRoot":"","sources":["../../../src/transactions/queries/ensureTxReceipt.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAE3E,OAAO,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAU,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAK9E,KAAK,YAAY,GAAG,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,CAAC;AAE1D,MAAM,MAAM,iBAAiB,GAAG,CAC9B,OAAO,EAAE,YAAY,CACnB,IAAI,CAAC,oBAAoB,EAAE,MAAM,GAAG,SAAS,GAAG,eAAe,CAAC,EAChE,MAAM,GAAG,SAAS,CACnB,GAAG;IACF,UAAU,CAAC,EAAE,YAAY,CAAC;CAC3B,KACE,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAEjC,KAAK,sBAAsB,GAAG,CAAC,MAAM,CAAC,EAAE;IACtC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,YAAY,CAAC;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,KAAK,iBAAiB,CAAC;AAExB,eAAO,MAAM,sBAAsB,EAAE,sBAmClC,CAAC"}
|
|
@@ -1,30 +1,50 @@
|
|
|
1
|
+
import { isSafeConnector } from '../../hooks/connectors/useIsGnosisSafeConnector.js';
|
|
1
2
|
import { queryClient } from '../../lib/queryClient.js';
|
|
2
3
|
import { wagmiConfig } from '../../lib/web3/wagmi/config.js';
|
|
3
|
-
import {
|
|
4
|
+
import { getAccount, getConnectorClient } from '@wagmi/core';
|
|
5
|
+
import { waitForTransactionReceipt } from 'viem/actions';
|
|
4
6
|
import { waitForTransactionReceiptQueryKey } from 'wagmi/query';
|
|
7
|
+
import { SAFE_CALLS_WAIT_TIMEOUT } from '../../lib/constants/index.js';
|
|
5
8
|
|
|
6
9
|
const ensureTxReceiptFactory = ({
|
|
7
10
|
queryClient: queryClient$1 = queryClient,
|
|
8
|
-
wagmiConfig: wagmiConfig$1 = wagmiConfig
|
|
11
|
+
wagmiConfig: wagmiConfig$1 = wagmiConfig,
|
|
12
|
+
isSafe
|
|
9
13
|
} = {}) => async ({
|
|
10
14
|
hash,
|
|
11
15
|
chainId,
|
|
12
16
|
confirmations,
|
|
13
17
|
onReplaced
|
|
14
18
|
}) => {
|
|
19
|
+
const timeout = isSafe ? SAFE_CALLS_WAIT_TIMEOUT : void 0;
|
|
15
20
|
const queryKey = waitForTransactionReceiptQueryKey({
|
|
16
21
|
hash,
|
|
17
22
|
chainId,
|
|
18
|
-
confirmations
|
|
23
|
+
confirmations,
|
|
24
|
+
timeout
|
|
19
25
|
});
|
|
26
|
+
let client;
|
|
27
|
+
const {
|
|
28
|
+
connector
|
|
29
|
+
} = getAccount(wagmiConfig$1);
|
|
30
|
+
if (connector && isSafeConnector(connector)) {
|
|
31
|
+
client = await getConnectorClient(wagmiConfig$1, {
|
|
32
|
+
chainId,
|
|
33
|
+
connector
|
|
34
|
+
});
|
|
35
|
+
} else {
|
|
36
|
+
client = wagmiConfig$1.getClient({
|
|
37
|
+
chainId
|
|
38
|
+
});
|
|
39
|
+
}
|
|
20
40
|
const receipt = await queryClient$1.ensureQueryData({
|
|
21
41
|
queryKey,
|
|
22
42
|
queryFn: () => {
|
|
23
|
-
return waitForTransactionReceipt(
|
|
43
|
+
return waitForTransactionReceipt(client, {
|
|
24
44
|
hash,
|
|
25
|
-
chainId,
|
|
26
45
|
confirmations,
|
|
27
|
-
onReplaced
|
|
46
|
+
onReplaced,
|
|
47
|
+
timeout
|
|
28
48
|
});
|
|
29
49
|
}
|
|
30
50
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensureTxReceipt.js","sources":["../../../src/transactions/queries/ensureTxReceipt.ts"],"sourcesContent":["import type { UseAwaitTxParameters } from \"@/hooks/txs/queries/useAwaitTx\";\nimport { queryClient as _queryClient } from \"@/lib/queryClient\";\nimport { wagmiConfig as _wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport type { QueryClient } from \"@tanstack/react-query\";\nimport {
|
|
1
|
+
{"version":3,"file":"ensureTxReceipt.js","sources":["../../../src/transactions/queries/ensureTxReceipt.ts"],"sourcesContent":["import { isSafeConnector } from \"@/hooks/connectors/useIsGnosisSafeConnector\";\nimport type { UseAwaitTxParameters } from \"@/hooks/txs/queries/useAwaitTx\";\nimport { queryClient as _queryClient } from \"@/lib/queryClient\";\nimport { wagmiConfig as _wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport type { QueryClient } from \"@tanstack/react-query\";\nimport { getAccount, getConnectorClient } from \"@wagmi/core\";\nimport { waitForTransactionReceipt } from \"viem/actions\";\nimport type { MarkRequired } from \"ts-essentials\";\nimport type { Client, ReplacementReturnType, TransactionReceipt } from \"viem\";\n\nimport { waitForTransactionReceiptQueryKey } from \"wagmi/query\";\nimport { SAFE_CALLS_WAIT_TIMEOUT } from \"@/lib/constants\";\n\ntype OnReplacedCb = (data: ReplacementReturnType) => void;\n\nexport type EnsureTxReceiptFn = (\n options: MarkRequired<\n Pick<UseAwaitTxParameters, \"hash\" | \"chainId\" | \"confirmations\">,\n \"hash\" | \"chainId\"\n > & {\n onReplaced?: OnReplacedCb;\n }\n) => Promise<TransactionReceipt>;\n\ntype EnsureTxReceiptFactory = (params?: {\n queryClient?: QueryClient;\n wagmiConfig?: typeof _wagmiConfig;\n isSafe?: boolean;\n}) => EnsureTxReceiptFn;\n\nexport const ensureTxReceiptFactory: EnsureTxReceiptFactory =\n ({ queryClient = _queryClient, wagmiConfig = _wagmiConfig, isSafe } = {}) =>\n async ({ hash, chainId, confirmations, onReplaced }) => {\n const timeout = isSafe ? SAFE_CALLS_WAIT_TIMEOUT : undefined;\n const queryKey = waitForTransactionReceiptQueryKey({\n hash,\n chainId,\n confirmations,\n timeout,\n });\n\n let client: Client;\n const { connector } = getAccount(wagmiConfig);\n // always use connector client if connected through native safe connector.\n // safe provider returns a safeTxHash that is different from a real tx hash.\n // if connected to safe through WalletConnect - publicClient returns a real tx hash.\n if (connector && isSafeConnector(connector)) {\n client = await getConnectorClient(wagmiConfig, { chainId, connector });\n } else {\n client = wagmiConfig.getClient({ chainId });\n }\n\n const receipt = await queryClient.ensureQueryData({\n queryKey,\n queryFn: () => {\n return waitForTransactionReceipt(client, {\n hash,\n confirmations,\n onReplaced,\n timeout,\n });\n },\n });\n\n return receipt;\n };\n"],"names":["ensureTxReceiptFactory","queryClient","_queryClient","wagmiConfig","_wagmiConfig","isSafe","hash","chainId","confirmations","onReplaced","timeout","SAFE_CALLS_WAIT_TIMEOUT","undefined","queryKey","waitForTransactionReceiptQueryKey","client","connector","getAccount","isSafeConnector","getConnectorClient","getClient","receipt","ensureQueryData","queryFn","waitForTransactionReceipt"],"mappings":";;;;;;;;AA8BO,MAAMA,yBACXA,CAAC;AAAA,eAAEC,aAAAA,GAAcC,WAAAA;AAAAA,eAAcC,aAAAA,GAAcC,WAAAA;AAAAA,EAAcC;AAAO,CAAA,GAAI,OACtE,OAAO;AAAA,EAAEC,IAAAA;AAAAA,EAAMC,OAAAA;AAAAA,EAASC,aAAAA;AAAAA,EAAeC;AAAW,CAAA,KAAM;AACtD,EAAA,MAAMC,OAAAA,GAAUL,SAASM,uBAAAA,GAA0BC,MAAAA;AACnD,EAAA,MAAMC,WAAWC,iCAAAA,CAAkC;AAAA,IACjDR,IAAAA;AAAAA,IACAC,OAAAA;AAAAA,IACAC,aAAAA;AAAAA,IACAE;AAAAA,GACD,CAAA;AAED,EAAA,IAAIK,MAAAA;AACJ,EAAA,MAAM;AAAA,IAAEC;AAAAA,GAAU,GAAIC,WAAWd,aAAW,CAAA;AAI5C,EAAA,IAAIa,SAAAA,IAAaE,eAAAA,CAAgBF,SAAS,CAAA,EAAG;AAC3CD,IAAAA,MAAAA,GAAS,MAAMI,mBAAmBhB,aAAAA,EAAa;AAAA,MAAEI,OAAAA;AAAAA,MAASS;AAAAA,KAAW,CAAA;AAAA,EACvE,CAAA,MAAO;AACLD,IAAAA,MAAAA,GAASZ,cAAYiB,SAAAA,CAAU;AAAA,MAAEb;AAAAA,KAAS,CAAA;AAAA,EAC5C;AAEA,EAAA,MAAMc,OAAAA,GAAU,MAAMpB,aAAAA,CAAYqB,eAAAA,CAAgB;AAAA,IAChDT,QAAAA;AAAAA,IACAU,SAASA,MAAM;AACb,MAAA,OAAOC,0BAA0BT,MAAAA,EAAQ;AAAA,QACvCT,IAAAA;AAAAA,QACAE,aAAAA;AAAAA,QACAC,UAAAA;AAAAA,QACAC;AAAAA,OACD,CAAA;AAAA,IACH;AAAA,GACD,CAAA;AAED,EAAA,OAAOW,OAAAA;AACT;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useActivateEffects.js","sources":["../../../../src/transactions/state/hooks/useActivateEffects.ts"],"sourcesContent":["import { useAtom } from \"jotai\";\nimport {\n finalizeBatchTxsEffect,\n finalizeStandoloneTxsEffect,\n} from \"@/transactions/state/effects/finalize\";\n\nexport function useActivateEffects() {\n // atomEffects must be rendered for subscriptions to activate\n useAtom(finalizeStandoloneTxsEffect);\n useAtom(finalizeBatchTxsEffect);\n}\n"],"names":["useActivateEffects","useAtom","finalizeStandoloneTxsEffect","finalizeBatchTxsEffect"],"mappings":";;;AAMO,SAAAA,kBAAAA,GAAA;AAELC,EAAAA,OAAAA,
|
|
1
|
+
{"version":3,"file":"useActivateEffects.js","sources":["../../../../src/transactions/state/hooks/useActivateEffects.ts"],"sourcesContent":["import { useAtom } from \"jotai\";\nimport {\n finalizeBatchTxsEffect,\n finalizeStandoloneTxsEffect,\n} from \"@/transactions/state/effects/finalize\";\n\nexport function useActivateEffects() {\n // atomEffects must be rendered for subscriptions to activate\n useAtom(finalizeStandoloneTxsEffect);\n useAtom(finalizeBatchTxsEffect);\n}\n"],"names":["useActivateEffects","useAtom","finalizeStandoloneTxsEffect","finalizeBatchTxsEffect"],"mappings":";;;AAMO,SAAAA,kBAAAA,GAAA;AAELC,EAAAA,OAAAA,CAAQC,2BAA2B,CAAA;AACnCD,EAAAA,OAAAA,CAAQE,sBAAsB,CAAA;AAAC;;;;"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
export declare const useUserPendingTransactions: () => import('../../types').TransactionItem[];
|
|
2
2
|
export declare const useUserSwapTransactions: () => import('../../types').TransactionItemSwap[];
|
|
3
|
+
export declare const useUserSwapTransactionsOnEnabledChains: () => import('../../types').TransactionItemSwap[];
|
|
4
|
+
export declare const useUserPendingTransactionsOnEnabledChains: () => import('../../types').TransactionItem[];
|
|
3
5
|
//# sourceMappingURL=useTransactions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTransactions.d.ts","sourceRoot":"","sources":["../../../../src/transactions/state/hooks/useTransactions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useTransactions.d.ts","sourceRoot":"","sources":["../../../../src/transactions/state/hooks/useTransactions.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,0BAA0B,+CACI,CAAC;AAC5C,eAAO,MAAM,uBAAuB,mDACI,CAAC;AAEzC,eAAO,MAAM,sCAAsC,mDAMlD,CAAC;AACF,eAAO,MAAM,yCAAyC,+CAMrD,CAAC"}
|