@velora-dex/widget 0.8.1-dev.0 → 0.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/SearchInput/SearchInput.js.map +1 -1
- package/dist/components/ui/accordion.js.map +1 -1
- package/dist/components/ui/button.js.map +1 -1
- package/dist/components/ui/card.js.map +1 -1
- package/dist/components/ui/drawer.js.map +1 -1
- package/dist/components/ui/dropdown-menu.js.map +1 -1
- package/dist/components/ui/input.js.map +1 -1
- package/dist/components/ui/progress.js.map +1 -1
- package/dist/components/ui/skeleton.js.map +1 -1
- package/dist/components/ui/sonner.js.map +1 -1
- package/dist/components/ui/switch.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/ConnectExternalProvider/metamaskProviderWrapper.d.ts +1 -0
- package/dist/components/web3/ConnectExternalProvider/metamaskProviderWrapper.d.ts.map +1 -1
- package/dist/components/web3/ConnectExternalProvider/metamaskProviderWrapper.js +30 -16
- package/dist/components/web3/ConnectExternalProvider/metamaskProviderWrapper.js.map +1 -1
- package/dist/components/web3/ConnectExternalProvider/safeProviderWrapper.js.map +1 -1
- package/dist/components/web3/ConnectExternalProvider/utils.js.map +1 -1
- package/dist/components/web3/ConnectWallets/WalletConnectButtons.js.map +1 -1
- package/dist/components/web3/ConnectWallets/index.js +1 -1
- 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/connectRunner.js.map +1 -1
- package/dist/components/web3/ConnectWallets/privy/iframe.js.map +1 -1
- package/dist/components/web3/ConnectWallets/privy/provider.js.map +1 -1
- package/dist/components/web3/ConnectWallets/walletFlags.js.map +1 -1
- package/dist/components/web3/ConnectWallets/walletIcons.js +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.js.map +1 -1
- package/dist/components/widget/AppHeader/Activities/Activities.js.map +1 -1
- package/dist/components/widget/AppHeader/Activities/ActivitiesScreen.js.map +1 -1
- package/dist/components/widget/AppHeader/Activities/ActivityItems.js.map +1 -1
- package/dist/components/widget/AppHeader/Activities/Drawers.js.map +1 -1
- package/dist/components/widget/AppHeader/Activities/hooks.js.map +1 -1
- package/dist/components/widget/AppHeader/Activities/utils.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 +61 -53
- package/dist/components/widget/AppHeader/TradeModeSwitcher.js.map +1 -1
- package/dist/components/widget/AppHeader/state/showMoreAtom.js.map +1 -1
- package/dist/components/widget/BridgeList/BridgeListItem.js.map +1 -1
- package/dist/components/widget/BridgeList/BridgeProtocolsList.js.map +1 -1
- package/dist/components/widget/BridgeList/BridgesList.js.map +1 -1
- package/dist/components/widget/BridgeList/hooks.js.map +1 -1
- package/dist/components/widget/BridgePreferences/BridgePreferences.js.map +1 -1
- package/dist/components/widget/BridgeSelectorExpandable/BridgeSelectorExpandable.js.map +1 -1
- package/dist/components/widget/Button/CancelButton/CancelButton.js.map +1 -1
- package/dist/components/widget/Button/CancelButton/CancelButtonWithDrawer.js.map +1 -1
- package/dist/components/widget/Button/DismissButton.js.map +1 -1
- package/dist/components/widget/Button/RefreshButton.d.ts +3 -0
- package/dist/components/widget/Button/RefreshButton.d.ts.map +1 -0
- package/dist/components/widget/Button/RefreshButton.js +28 -0
- package/dist/components/widget/Button/RefreshButton.js.map +1 -0
- package/dist/components/widget/Button/types.d.ts +7 -0
- package/dist/components/widget/Button/types.d.ts.map +1 -0
- package/dist/components/widget/CompareQuotes/CompareQuotes.d.ts.map +1 -1
- package/dist/components/widget/CompareQuotes/CompareQuotes.js +67 -73
- package/dist/components/widget/CompareQuotes/CompareQuotes.js.map +1 -1
- package/dist/components/widget/Details/DetailWithTooltip.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/Details/SwapDetailsExpandable.js.map +1 -1
- package/dist/components/widget/DexesList/DexItem.js.map +1 -1
- package/dist/components/widget/DexesList/DexesList.js.map +1 -1
- package/dist/components/widget/DexesList/getDexProps.js.map +1 -1
- package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressDialog.js.map +1 -1
- package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressInput.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js.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/TokenListBody.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/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/Dropdown/DropdownWithItems.d.ts.map +1 -1
- package/dist/components/widget/Dropdown/DropdownWithItems.js +3 -2
- package/dist/components/widget/Dropdown/DropdownWithItems.js.map +1 -1
- package/dist/components/widget/Dropdown/types.d.ts +1 -1
- package/dist/components/widget/Dropdown/types.d.ts.map +1 -1
- package/dist/components/widget/Duration/Duration.js.map +1 -1
- package/dist/components/widget/Duration/utils.js.map +1 -1
- package/dist/components/widget/EnabledExchanges/EnabledExchanges.js.map +1 -1
- package/dist/components/widget/EnabledExchanges/EnabledExchangesList.js.map +1 -1
- package/dist/components/widget/EnabledList/EnabledList.js.map +1 -1
- package/dist/components/widget/FetchingQuotes/FetchingQuotes.js.map +1 -1
- package/dist/components/widget/Icon/CheckIcon.js.map +1 -1
- package/dist/components/widget/Icon/ChevronIcon.js.map +1 -1
- package/dist/components/widget/Icon/DeltaIcon.js.map +1 -1
- package/dist/components/widget/Icon/EllipseIcon.js.map +1 -1
- package/dist/components/widget/Icon/InfoIcon.js.map +1 -1
- package/dist/components/widget/Icon/MarketIcon.js.map +1 -1
- package/dist/components/widget/Icon/SliderIcon.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/LimitOrderItem/LimitOrderDetails/Controls.js.map +1 -1
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/LimitOrderDetails.js.map +1 -1
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/utils.js.map +1 -1
- package/dist/components/widget/LimitOrderItem/LimitOrderListItem.js +5 -8
- package/dist/components/widget/LimitOrderItem/LimitOrderListItem.js.map +1 -1
- package/dist/components/widget/LimitOrderItem/constants.js.map +1 -1
- package/dist/components/widget/LimitOrderItem/utils.js.map +1 -1
- package/dist/components/widget/LimitPriceInput/index.js +6 -6
- package/dist/components/widget/LimitPriceInput/index.js.map +1 -1
- package/dist/components/widget/Line/Line.js.map +1 -1
- package/dist/components/widget/ListItem/ListItemWithSwitch.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.map +1 -1
- package/dist/components/widget/NetworkSwitcher/NetworkSwitcherList.js.map +1 -1
- package/dist/components/widget/NetworkSwitcher/common/AllNetworksItem.js.map +1 -1
- package/dist/components/widget/NetworkSwitcher/common/NetworkItem.js.map +1 -1
- package/dist/components/widget/NetworkSwitcher/utils/items.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/NumberInput/NumberInput.js.map +1 -1
- package/dist/components/widget/OrderExpiryInput/index.js.map +1 -1
- package/dist/components/widget/OtcOrderItem/OtcOrderDetails/Controls.js.map +1 -1
- package/dist/components/widget/OtcOrderItem/OtcOrderDetails/OtcOrderDetails.js.map +1 -1
- package/dist/components/widget/OtcOrderItem/OtcOrderDetails/utils.js.map +1 -1
- package/dist/components/widget/OtcOrderItem/OtcOrderListItem.js +5 -8
- package/dist/components/widget/OtcOrderItem/OtcOrderListItem.js.map +1 -1
- package/dist/components/widget/OtcOrderItem/constants.js.map +1 -1
- package/dist/components/widget/OtcOrderItem/utils.js.map +1 -1
- package/dist/components/widget/PayReceiveInfo/PayReceiveInfo.js.map +1 -1
- package/dist/components/widget/PoweredBy/PoweredBy.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.js.map +1 -1
- package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcControls.js.map +1 -1
- package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcReviewAndConfirm.js.map +1 -1
- package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/utils.js.map +1 -1
- package/dist/components/widget/RowVirtualizer/RowVirtualizerFixed.js.map +1 -1
- package/dist/components/widget/Screen/GenericScreen.js.map +1 -1
- package/dist/components/widget/Screen/ScreenContainer.js.map +1 -1
- package/dist/components/widget/SelectToken/SelectTokenButton.js.map +1 -1
- package/dist/components/widget/SettingsButton/SettingsButton.js.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/SwapModeSwitcherExpandable.js.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/state/swapModeActionsAtom.js.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js.map +1 -1
- package/dist/components/widget/SwapRate/SwapRate.js.map +1 -1
- package/dist/components/widget/SwapRate/SwapRateWithTooltip.js.map +1 -1
- package/dist/components/widget/SwapRate/utils.js.map +1 -1
- package/dist/components/widget/SwapRateWithPriceImpactRow/SwapRateWithPriceImpactRow.d.ts +4 -1
- package/dist/components/widget/SwapRateWithPriceImpactRow/SwapRateWithPriceImpactRow.d.ts.map +1 -1
- package/dist/components/widget/SwapRateWithPriceImpactRow/SwapRateWithPriceImpactRow.js +51 -28
- package/dist/components/widget/SwapRateWithPriceImpactRow/SwapRateWithPriceImpactRow.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/TokenBadge/TokenLink.js.map +1 -1
- package/dist/components/widget/TokenInput/InputContainer.js.map +1 -1
- package/dist/components/widget/TokenInput/InputField.js.map +1 -1
- package/dist/components/widget/TokenInput/InputFooter.js.map +1 -1
- package/dist/components/widget/TokenInput/InputHeader.js.map +1 -1
- package/dist/components/widget/TokenInput/common/Balance.js.map +1 -1
- package/dist/components/widget/TokenInput/common/MaxButtons.js.map +1 -1
- package/dist/components/widget/TokenInput/index.js.map +1 -1
- package/dist/components/widget/TokenSwitcher/TokenSwitcher.js.map +1 -1
- package/dist/components/widget/TradeOverview/CancelButtonWithDrawer.js.map +1 -1
- package/dist/components/widget/TradeOverview/CancelOrder/ConfirmCancel.js.map +1 -1
- package/dist/components/widget/TradeOverview/CancelOrder/utils.js.map +1 -1
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/FillOtcOrderTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/Step/Step.js.map +1 -1
- package/dist/components/widget/TradeOverview/Step/utils.js.map +1 -1
- 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.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompletedDetails.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/index.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/useTradeCompleteDetails.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/utils.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeDetails.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeDetailsDisplay.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorDetails.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorFooter.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/index.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/utils.js.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/TradeOverviewHeader.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverviewScreen.js.map +1 -1
- package/dist/components/widget/TradeOverview/TwapOrderTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/VerticalDash.js.map +1 -1
- package/dist/components/widget/TradeOverview/tradeFlowContext.js.map +1 -1
- package/dist/components/widget/TradeOverview/utils/isNonFlowStep.js.map +1 -1
- package/dist/components/widget/TradeOverview/utils/preWrap.js.map +1 -1
- package/dist/components/widget/TradeOverview/utils/useSwapAmountsWithSlippage.js.map +1 -1
- package/dist/components/widget/TradeParameters/BridgePreferenceParameters/BridgePreferenceParameters.js.map +1 -1
- package/dist/components/widget/TradeParameters/BridgePreferenceParameters/useDraftBridgePreferencesState.js.map +1 -1
- package/dist/components/widget/TradeParameters/DegenModeConfirmation.js.map +1 -1
- package/dist/components/widget/TradeParameters/DegenModeParameter.js.map +1 -1
- package/dist/components/widget/TradeParameters/DeltaParameter.js.map +1 -1
- package/dist/components/widget/TradeParameters/EIP1559Parameter.js.map +1 -1
- package/dist/components/widget/TradeParameters/EnabledExchangesParameters/EnabledExchangesParameters.js.map +1 -1
- package/dist/components/widget/TradeParameters/EnabledExchangesParameters/useDraftEnabledExchangesState.js.map +1 -1
- package/dist/components/widget/TradeParameters/SlippageParameter/CustomSlippageInput.js.map +1 -1
- package/dist/components/widget/TradeParameters/SlippageParameter/EditSlippage.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/bridgePreferences/bridgePreferenceAtom.js.map +1 -1
- package/dist/components/widget/TradeParameters/state/bridgePreferences/disabledBridgesAtom.js.map +1 -1
- package/dist/components/widget/TradeParameters/state/bridgePreferences/excludeBridgesAtom.js.map +1 -1
- package/dist/components/widget/TradeParameters/state/bridgePreferences/protocolNameAtom.js.map +1 -1
- package/dist/components/widget/TradeParameters/state/bridgePreferences/resetDraftsAtom.js.map +1 -1
- package/dist/components/widget/TradeParameters/state/bridgePreferences/useBridgePreferences.js.map +1 -1
- package/dist/components/widget/TradeParameters/state/deltaParamActionsAtom.js.map +1 -1
- package/dist/components/widget/TradeParameters/state/enabledExchanges/disabledDexesAtomFamily.js.map +1 -1
- package/dist/components/widget/TradeParameters/state/enabledExchanges/useDisabledDexes.js.map +1 -1
- package/dist/components/widget/TradeParameters/state/slippageParamAtom.js.map +1 -1
- package/dist/components/widget/TradeParameters/state/tradePreferencesAtom.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/LimitOrderDetails/utils.js.map +1 -1
- package/dist/components/widget/TransactionDetails/TransactionListItem.js.map +1 -1
- package/dist/components/widget/TransactionDetails/utils.js.map +1 -1
- package/dist/components/widget/Twap/CustomDurationDrawer.js.map +1 -1
- package/dist/components/widget/Twap/OrderDuration.js.map +1 -1
- package/dist/components/widget/Twap/OrderSplit.js.map +1 -1
- package/dist/components/widget/Twap/RateProtection.js.map +1 -1
- package/dist/components/widget/Twap/TwapDetailWithTooltip.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.js.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useSubmitDepositTxMutation.js.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js.map +1 -1
- package/dist/components/widget/YouGet/YouGet.js.map +1 -1
- 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.js.map +1 -1
- package/dist/core/OtcOrderDetails.js.map +1 -1
- package/dist/core/Toaster.js.map +1 -1
- package/dist/core/TradeFlowScreenButton.js.map +1 -1
- package/dist/core/TwapDetails.js.map +1 -1
- package/dist/core/Updaters.js.map +1 -1
- package/dist/core/Warnings.js.map +1 -1
- package/dist/core/across/isCrosschainPossible.js.map +1 -1
- package/dist/core/across/utils.js.map +1 -1
- package/dist/core/button/hooks/useWidgetButtonExtraProps.js.map +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/inputs/hooks/useMaxButtonProps.js.map +1 -1
- package/dist/core/inputs/hooks/useTokenFromInputProps.js.map +1 -1
- package/dist/core/inputs/hooks/useTokenSwitcherProps.js.map +1 -1
- package/dist/core/inputs/hooks/useTokenToInputProps.js.map +1 -1
- package/dist/core/inputs/hooks/useWarningMessage.js.map +1 -1
- package/dist/core/inputs/hooks/utils.js.map +1 -1
- package/dist/core/inputs/state/common.js.map +1 -1
- package/dist/core/inputs/state/inputAmountAtom.js.map +1 -1
- 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 +1 -1
- package/dist/core/inputs/state/setTokenByAddressAtom.js.map +1 -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/isCrosschainAtom.js.map +1 -1
- package/dist/core/limit/state/limitInputActionsAtom.js.map +1 -1
- package/dist/core/limit/state/limitInputAmountAtom.js.map +1 -1
- package/dist/core/limit/state/receiverAddressAtom.js.map +1 -1
- package/dist/core/limit/state/selectedTokenActionsAtom.js.map +1 -1
- package/dist/core/limit/state/selectedTokenAtom.js.map +1 -1
- package/dist/core/limit/state/utils.js.map +1 -1
- package/dist/core/limit/useLimitDetailsListProps.js.map +1 -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.js.map +1 -1
- package/dist/core/limit/useLimitTokenSwitcherProps.js.map +1 -1
- package/dist/core/limit/useLimitTokenToInputProps.js.map +1 -1
- package/dist/core/logger.js.map +1 -1
- package/dist/core/otc/state/deadlineAtom.js.map +1 -1
- package/dist/core/otc/state/otcInputActionsAtom.js.map +1 -1
- package/dist/core/otc/state/otcInputAmountAtom.js.map +1 -1
- package/dist/core/otc/state/receiverAddressAtom.js.map +1 -1
- 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.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.js.map +1 -1
- package/dist/core/otc/useOtcTokenSwitcherProps.js.map +1 -1
- package/dist/core/otc/useOtcTokenToInputProps.js.map +1 -1
- package/dist/core/screen/hooks/useInitialValue.js.map +1 -1
- package/dist/core/screen/hooks/useOnClickOutside.js.map +1 -1
- package/dist/core/screen/hooks/useResizeObserver.js.map +1 -1
- package/dist/core/screen/hooks/useRunOnMount.js.map +1 -1
- package/dist/core/screen/state/hooks/useScreen.js.map +1 -1
- package/dist/core/screen/state/hooks/useScreenValue.js.map +1 -1
- package/dist/core/screen/state/hooks/useSetScreen.js.map +1 -1
- package/dist/core/screen/state/screenAtom.js.map +1 -1
- package/dist/core/state/apiConfigAtom.js.map +1 -1
- package/dist/core/state/chainToAtom.js.map +1 -1
- package/dist/core/state/configActionsAtom.js.map +1 -1
- package/dist/core/state/configAtom.js +2 -2
- package/dist/core/state/configAtom.js.map +1 -1
- package/dist/core/state/configEffectAtom.js.map +1 -1
- package/dist/core/state/containerAtom.js.map +1 -1
- package/dist/core/state/enabledChainsAtom.js.map +1 -1
- package/dist/core/state/enabledTradeModesAtom.d.ts +7 -1
- package/dist/core/state/enabledTradeModesAtom.d.ts.map +1 -1
- package/dist/core/state/enabledTradeModesAtom.js +1 -1
- package/dist/core/state/enabledTradeModesAtom.js.map +1 -1
- package/dist/core/state/externalProviderAtom.js.map +1 -1
- package/dist/core/state/getSelectableDestChains.js.map +1 -1
- package/dist/core/state/isCrosschainAtom.js.map +1 -1
- package/dist/core/state/tradeModeAtom.js +1 -1
- package/dist/core/state/tradeModeAtom.js.map +1 -1
- package/dist/core/state/validatedPartnerConfigAtom.js.map +1 -1
- package/dist/core/state/validatedReferrerConfigAtom.js.map +1 -1
- package/dist/core/state/widgetEventsAtom.js.map +1 -1
- package/dist/core/subscriptions.js.map +1 -1
- package/dist/core/swapDetails/fees.js.map +1 -1
- package/dist/core/swapDetails/maxToPay.js.map +1 -1
- package/dist/core/swapDetails/orderRouting.js.map +1 -1
- package/dist/core/swapDetails/priceImpact.js.map +1 -1
- package/dist/core/swapDetails/useSwapDetailsListProps.d.ts.map +1 -1
- package/dist/core/swapDetails/useSwapDetailsListProps.js +37 -31
- package/dist/core/swapDetails/useSwapDetailsListProps.js.map +1 -1
- package/dist/core/swapDetails/youGet.js.map +1 -1
- package/dist/core/twap/state/isCrosschainAtom.js.map +1 -1
- package/dist/core/twap/state/selectedTokenActionsAtom.js.map +1 -1
- package/dist/core/twap/state/twapInputAmountAtom.js.map +1 -1
- package/dist/core/twap/state/twapParamsAtom.js.map +1 -1
- package/dist/core/twap/state/twapSideAtom.js.map +1 -1
- package/dist/core/twap/twapDetails/minimumReceiveable.js.map +1 -1
- package/dist/core/twap/useTwapDetailsListProps.d.ts.map +1 -1
- package/dist/core/twap/useTwapDetailsListProps.js +36 -31
- package/dist/core/twap/useTwapDetailsListProps.js.map +1 -1
- package/dist/core/twap/useTwapTokenFromInputProps.js.map +1 -1
- package/dist/core/twap/useTwapTokenSwitcherProps.js.map +1 -1
- package/dist/core/twap/useTwapTokenToInputProps.js.map +1 -1
- package/dist/events/effects/formInput.js.map +1 -1
- package/dist/events/effects/price.js.map +1 -1
- package/dist/events/effects/swapMode.js.map +1 -1
- package/dist/events/getters/limit.js.map +1 -1
- package/dist/events/getters/otc.js.map +1 -1
- package/dist/events/getters/settings.js.map +1 -1
- package/dist/events/getters/swap.js.map +1 -1
- package/dist/events/getters/twap.js.map +1 -1
- package/dist/events/getters/widgetState.js.map +1 -1
- package/dist/events/hooks/useActivateEffects.js.map +1 -1
- package/dist/events/hooks/useOnPriceUpdates.js.map +1 -1
- package/dist/events/hooks/useOnWalletConnect.js.map +1 -1
- package/dist/external/.pnpm/vaul@1.1.2_patch_hash_07b36ba5def3805dde9d543a880ba9e4caf55e5eb58e544faaa2c186846bf3c1__6feb48fe37bd41e9af5c8e81d5a6f4e1/external/vaul/dist/index.js.map +1 -1
- package/dist/hooks/batch/useAwaitCalls.js.map +1 -1
- package/dist/hooks/batch/useBatchWithApproveTxs.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.map +1 -1
- package/dist/hooks/connectors/useIsGnosisSafeConnector.js.map +1 -1
- package/dist/hooks/connectors/useIsSafeThroughWalletConnect.js.map +1 -1
- package/dist/hooks/gas/useGasPrices.js.map +1 -1
- package/dist/hooks/gas/utils.js.map +1 -1
- package/dist/hooks/getCode/query.js.map +1 -1
- package/dist/hooks/getCode/useIsAccountContract.js.map +1 -1
- package/dist/hooks/getCode/useIsContractAtAddress.js.map +1 -1
- package/dist/hooks/otc/mutations/useCancelLimitOrder.js.map +1 -1
- package/dist/hooks/otc/mutations/useCreateLimitOrder.js.map +1 -1
- package/dist/hooks/otc/mutations/useFillOrder.js.map +1 -1
- package/dist/hooks/otc/mutations/utils.js.map +1 -1
- 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.js.map +1 -1
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderStep.js.map +1 -1
- package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.js.map +1 -1
- 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/usePermit1Nonce.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.map +1 -1
- package/dist/hooks/permit/hooks/permit2/usePermit2TransferFromNonce.js.map +1 -1
- package/dist/hooks/permit/hooks/permit2/useSignTokenPermit2TransferFrom.js.map +1 -1
- package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2Allowance.js.map +1 -1
- package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2TransferFromNonce.js.map +1 -1
- package/dist/hooks/permit/utils/constants.js.map +1 -1
- package/dist/hooks/permit/utils/construct.js.map +1 -1
- package/dist/hooks/permit/utils/deadlines.js.map +1 -1
- package/dist/hooks/permit/utils/detect.js.map +1 -1
- package/dist/hooks/permit/utils/domainSeparator.js.map +1 -1
- package/dist/hooks/permit/utils/encodeArgs.js.map +1 -1
- package/dist/hooks/permit/utils/trySignPermit1.js.map +1 -1
- package/dist/hooks/permit/utils/utils.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/bridge/useSelectedBridgePrice.js.map +1 -1
- package/dist/hooks/swap/prices/delta/bridge/utils.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/twap/useCreatePreSignableTwapOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/twap/useCreateTwapOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/twap/useDepositAndSubmitTwapOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/twap/usePostTwapOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/twap/usePreSignAndSubmitTwapOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/twap/useTwapOrderToPost.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrders.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrdersEvents.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useDeltaOrderToPost.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useIsDeltaOrderCancellable.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useSendDepositPreSignDeltaOrderTx.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/utils.js.map +1 -1
- package/dist/hooks/swap/prices/delta/orders/unposted/effect.js.map +1 -1
- package/dist/hooks/swap/prices/delta/orders/unposted/index.js.map +1 -1
- package/dist/hooks/swap/prices/delta/orders/unposted/storage.js.map +1 -1
- package/dist/hooks/swap/prices/delta/orders/unposted/utils.js.map +1 -1
- package/dist/hooks/swap/prices/delta/orders/utils.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/bridgeInfosLoadedAtom.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/common.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/getBridgeInfoQueryData.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/useBridgeInfo.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/bridgeProtocols/useBridgeProtocols.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/errors.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaOrderPreConditions.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/factory.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/dexesList/useDexesList.js.map +1 -1
- package/dist/hooks/swap/prices/market/queries/errors.js.map +1 -1
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js.map +1 -1
- 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.d.ts +4 -7
- package/dist/hooks/swap/prices/useSwapPrices.d.ts.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.js +28 -24
- package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
- package/dist/hooks/swap/prices/useTokenInputsFromPrice.js.map +1 -1
- package/dist/hooks/swap/prices/useTokenInputsFromTwapPrice.js.map +1 -1
- package/dist/hooks/swap/prices/useTwapPrices.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/errors.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/factory/depositAndSubmitOrderFactory.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/factory/preSignAndSubmitOrderFactory.js.map +1 -1
- 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.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useConstructGasParams.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useRequiredAllowanceForOrders.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/utils.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderStep.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useTwapFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useTwapSwapStep.js.map +1 -1
- package/dist/hooks/tokens/allowance/useGenericTokenAllowance.js.map +1 -1
- package/dist/hooks/tokens/allowance/useTokenAllowance.js.map +1 -1
- package/dist/hooks/tokens/allowance/utils.js.map +1 -1
- package/dist/hooks/tokens/balances/queries.js.map +1 -1
- package/dist/hooks/tokens/balances/useAttachTokenBalanceMultichain.js.map +1 -1
- package/dist/hooks/tokens/balances/useInvalidateTokenData.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.map +1 -1
- package/dist/hooks/tokens/balances/useSelectedTokenBalances.js.map +1 -1
- package/dist/hooks/tokens/balances/useTokenBalance.js.map +1 -1
- 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/queries.js.map +1 -1
- 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.map +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/useReplaceTx.js.map +1 -1
- package/dist/hooks/txs/mutations/useSendTx.js.map +1 -1
- package/dist/hooks/txs/queries/useAccountNonce.js.map +1 -1
- package/dist/hooks/txs/queries/useAwaitTx.js.map +1 -1
- package/dist/hooks/txs/queries/useTxFees.js.map +1 -1
- package/dist/hooks/txs/queries/useTxHistory.js.map +1 -1
- package/dist/hooks/txs/queries/useTxResponse.js.map +1 -1
- package/dist/hooks/txs/queries/useWalletCanReplaceTx.js.map +1 -1
- package/dist/hooks/txs/queries/utils.js.map +1 -1
- package/dist/hooks/useAvailableCrosses.js.map +1 -1
- package/dist/hooks/useBreakpoints.js.map +1 -1
- package/dist/hooks/useBridgeInfo.js.map +1 -1
- package/dist/hooks/useBridgeProtocols.js.map +1 -1
- package/dist/hooks/useCachedQueryError.js.map +1 -1
- package/dist/hooks/useChainMatches.js.map +1 -1
- package/dist/hooks/useClickOutside.js.map +1 -1
- package/dist/hooks/useCurrentChain.js.map +1 -1
- package/dist/hooks/useDebouncedInputState.js.map +1 -1
- package/dist/hooks/useEIP1559Enabled.js.map +1 -1
- package/dist/hooks/useGlobalDeltaEnabled.js.map +1 -1
- package/dist/hooks/useIsCrosschainPossible.js.map +1 -1
- package/dist/hooks/useMinViemClient.js.map +1 -1
- package/dist/hooks/useSDK.js.map +1 -1
- package/dist/hooks/useSelectableDestChains.js.map +1 -1
- package/dist/hooks/useSlippage.js.map +1 -1
- package/dist/hooks/useSwitchChainWithGuard.js.map +1 -1
- package/dist/lib/constants/urls.js.map +1 -1
- package/dist/lib/ipfs.js.map +1 -1
- package/dist/lib/queryClient.js.map +1 -1
- package/dist/lib/tradeMode.d.ts +1 -0
- package/dist/lib/tradeMode.d.ts.map +1 -1
- package/dist/lib/tradeMode.js +4 -1
- package/dist/lib/tradeMode.js.map +1 -1
- package/dist/lib/utils/approval.js.map +1 -1
- package/dist/lib/utils/atomWithCompare.js.map +1 -1
- package/dist/lib/utils/copyToClipboard.js.map +1 -1
- package/dist/lib/utils/delta.js.map +1 -1
- package/dist/lib/utils/dexes.js.map +1 -1
- package/dist/lib/utils/explorer.js.map +1 -1
- package/dist/lib/utils/fee.js.map +1 -1
- package/dist/lib/utils/formatFiatPrice.js.map +1 -1
- package/dist/lib/utils/formatPercent.js.map +1 -1
- package/dist/lib/utils/formatTokenBalance.js.map +1 -1
- package/dist/lib/utils/index.js.map +1 -1
- package/dist/lib/utils/logger.js.map +1 -1
- package/dist/lib/utils/metabase.js.map +1 -1
- package/dist/lib/utils/mobile.js.map +1 -1
- package/dist/lib/utils/price.js.map +1 -1
- package/dist/lib/utils/priceImpact.js.map +1 -1
- package/dist/lib/utils/providerErrors.js.map +1 -1
- package/dist/lib/utils/rate.js.map +1 -1
- package/dist/lib/utils/removeZeroDecimals.js.map +1 -1
- package/dist/lib/utils/savedAmountUSD.js.map +1 -1
- package/dist/lib/utils/scaleFactor.js.map +1 -1
- package/dist/lib/utils/slippage.js.map +1 -1
- package/dist/lib/utils/time.js.map +1 -1
- package/dist/lib/utils/toDecimal.js.map +1 -1
- package/dist/lib/utils/toasts.js.map +1 -1
- package/dist/lib/utils/tradeFlow.js.map +1 -1
- package/dist/lib/utils/transactionHandlers.js.map +1 -1
- package/dist/lib/utils/tuple.js.map +1 -1
- package/dist/lib/utils/twap.js.map +1 -1
- package/dist/lib/utils/useDateNow.js.map +1 -1
- package/dist/lib/web3/wagmi/config.d.ts +0 -18
- package/dist/lib/web3/wagmi/config.d.ts.map +1 -1
- package/dist/lib/web3/wagmi/config.js +19 -6
- package/dist/lib/web3/wagmi/config.js.map +1 -1
- package/dist/lib/web3/wagmi/external.js.map +1 -1
- package/dist/lib/web3/wagmi/isInsideSafeIframe.js.map +1 -1
- package/dist/lib/web3/wagmi/switchChain.js.map +1 -1
- package/dist/lib/web3/wagmi/utils.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/tokens/blacklist.js.map +1 -1
- package/dist/tokens/constructor.js.map +1 -1
- package/dist/tokens/defaultTokens.js.map +1 -1
- package/dist/tokens/hooks.js.map +1 -1
- package/dist/tokens/lists/constants.js.map +1 -1
- package/dist/tokens/lists/download.js.map +1 -1
- package/dist/tokens/lists/state/effects.js.map +1 -1
- package/dist/tokens/lists/state/tokenListsActionsAtom.js.map +1 -1
- package/dist/tokens/lists/state/tokenListsStateAtom.js.map +1 -1
- package/dist/tokens/overrides.js.map +1 -1
- package/dist/tokens/queries.js.map +1 -1
- package/dist/tokens/stabeCoins/hooks.js.map +1 -1
- package/dist/tokens/stabeCoins/index.js.map +1 -1
- package/dist/tokens/state/addImportedTokenAtom.js.map +1 -1
- package/dist/tokens/state/allTokensByChainAtom.js.map +1 -1
- package/dist/tokens/state/constructTokens.js.map +1 -1
- package/dist/tokens/state/fromListsAtom.js.map +1 -1
- package/dist/tokens/utils/areTokensSame.js.map +1 -1
- package/dist/tokens/utils/brand.js.map +1 -1
- package/dist/tokens/utils/eth.js.map +1 -1
- package/dist/tokens/utils/filtering.js.map +1 -1
- package/dist/tokens/utils/sets.js.map +1 -1
- package/dist/tokens/utils/sorting.js.map +1 -1
- package/dist/tokens/utils/transferAmountsFromReceipt.js.map +1 -1
- package/dist/transactions/hash.js.map +1 -1
- package/dist/transactions/queries/ensureCallsStatus.js.map +1 -1
- package/dist/transactions/queries/ensureEstimateFeesPerGas.js.map +1 -1
- package/dist/transactions/queries/ensureTxReceipt.js.map +1 -1
- package/dist/transactions/queries/ensureTxResponse.js.map +1 -1
- package/dist/transactions/state/effects/finalize.js.map +1 -1
- package/dist/transactions/state/hooks/useActivateEffects.js.map +1 -1
- package/dist/transactions/state/hooks/useMarkTxAsDropped.js.map +1 -1
- package/dist/transactions/state/hooks/useTransactions.js.map +1 -1
- package/dist/transactions/state/transactionsActionAtom.js.map +1 -1
- package/dist/transactions/state/transactionsAtom.js.map +1 -1
- package/dist/transactions/status.js.map +1 -1
- package/dist/transactions/utils.js.map +1 -1
- package/package.json +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTwapPrices.js","names":["useAtomValue","SwapSideUnion","useDeltaPriceQuery","DeltaPriceQueryKey","DeltaPriceQueryParams","useGlobalDeltaEnabled","useCachedQueryError","getSwapSideFromDeltaPrice","PRICE_REFETCH_INTERVAL_MS","useExtraDeltaPriceParams","usePricesParams","twapPayInputAmountWeiAtom","twapReceiveInputAmountWeiAtom","useTwapSplit","useTwapSide","SupportedChainId","getTwapChunkAmount","getTwapAmountsFromPrice","QueryObserverResult","RefetchOptions","DeltaOrBridgePrice","getPriceImpactFromPriceFactory","PriceImpactResult","getDeltaPriceErrorType","UseTwapPricesReturn","totalSrcAmount","totalDestAmount","price","priceParams","side","isLoading","isFetching","isError","error","Error","cachedError","refetch","options","Promise","getPriceImpact","queryKey","numSlices","chainId","destChainId","isCrossChain","useTwapPrices","t0","$","_c","t1","undefined","enabled","payAmountWei","receiveAmountWei","isSell","totalAmount","t2","totalWei","chunkAmount","extraDeltaPriceParams","t3","allowBridgeAndSwap","amount","twapPriceParams","enabledGlobally","t4","t5","refetchInterval","staleTime","retry","t6","query","result","deltaPriceQuery","data","t7","total","t8","t9","t10","t11","t12","t13","t14","srcAmount","t15","destAmount","t16","priceError","t17","UseCurrentTwapPriceErrorReturn","isMaxImpactReachedError","isNoUsdPriceError","isNoAvailablePricesError","isUnsupportedTokenError","isNoAvailableBridgeOptionsError","useCurrentTwapPriceError","params","deltaPriceErrorType"],"sources":["../../../../src/hooks/swap/prices/useTwapPrices.ts"],"sourcesContent":["import { useAtomValue } from \"@/core/store\";\nimport type { SwapSideUnion } from \"@velora-dex/sdk\";\nimport {\n useDeltaPriceQuery,\n type DeltaPriceQueryKey,\n type DeltaPriceQueryParams,\n} from \"./delta/queries/useDeltaPriceQuery\";\nimport { useGlobalDeltaEnabled } from \"@/hooks/useGlobalDeltaEnabled\";\nimport { useCachedQueryError } from \"@/hooks/useCachedQueryError\";\nimport { getSwapSideFromDeltaPrice } from \"./delta/orders/utils\";\nimport { PRICE_REFETCH_INTERVAL_MS } from \"./constants\";\nimport { useExtraDeltaPriceParams, usePricesParams } from \"./usePricesParams\";\n\nimport {\n twapPayInputAmountWeiAtom,\n twapReceiveInputAmountWeiAtom,\n} from \"@/core/twap/state/twapInputAmountAtom\";\nimport { useTwapSplit } from \"@/core/twap/state/twapParamsAtom\";\nimport { useTwapSide } from \"@/core/twap/state/twapSideAtom\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { getTwapChunkAmount, getTwapAmountsFromPrice } from \"@/lib/utils/twap\";\nimport type {\n QueryObserverResult,\n RefetchOptions,\n} from \"@tanstack/react-query\";\nimport type { DeltaOrBridgePrice } from \"./types\";\nimport { getPriceImpactFromPriceFactory } from \"./factory\";\nimport type { PriceImpactResult } from \"@/lib/utils/priceImpact\";\nimport { getDeltaPriceErrorType } from \"./delta/queries/errors\";\n\nexport type UseTwapPricesReturn = {\n /** @description price.srcAmount multiplied by numSlices */\n totalSrcAmount?: string;\n /** @description price.receivedDestAmount multiplied by numSlices */\n totalDestAmount?: string;\n price?: DeltaOrBridgePrice;\n priceParams: DeltaPriceQueryParams;\n side?: SwapSideUnion;\n isLoading: boolean;\n isFetching: boolean;\n isError: boolean;\n error: Error | null;\n cachedError: Error | null;\n refetch: (\n options?: RefetchOptions\n ) => Promise<QueryObserverResult<DeltaOrBridgePrice, Error>>;\n getPriceImpact: () => PriceImpactResult;\n queryKey: DeltaPriceQueryKey;\n numSlices: number;\n chainId: SupportedChainId;\n destChainId?: SupportedChainId;\n isCrossChain: boolean;\n};\n\nexport function useTwapPrices(\n { enabled } = { enabled: true }\n): UseTwapPricesReturn {\n const { priceParams, isCrossChain, chainId, destChainId } =\n usePricesParams(\"twap\");\n\n const payAmountWei = useAtomValue(twapPayInputAmountWeiAtom);\n const receiveAmountWei = useAtomValue(twapReceiveInputAmountWeiAtom) ?? \"0\";\n\n const numSlices = useTwapSplit();\n\n const side = useTwapSide();\n const isSell = side === \"SELL\";\n\n const totalAmount = isSell ? payAmountWei : receiveAmountWei;\n // Request a quote for a single slice amount\n const chunkAmount = getTwapChunkAmount({ totalWei: totalAmount, numSlices });\n\n const extraDeltaPriceParams = useExtraDeltaPriceParams();\n\n const twapPriceParams: DeltaPriceQueryParams = {\n ...priceParams,\n ...extraDeltaPriceParams,\n // allowBridgeAndSwap=true isn't supported for TWAP for now\n allowBridgeAndSwap: false,\n amount: chunkAmount,\n };\n\n const { enabledGlobally } = useGlobalDeltaEnabled();\n\n const { result: deltaPriceQuery, queryKey } = useDeltaPriceQuery({\n priceParams: twapPriceParams,\n chainId,\n destChainId,\n query: {\n enabled: enabled && enabledGlobally,\n refetchInterval: PRICE_REFETCH_INTERVAL_MS,\n staleTime: PRICE_REFETCH_INTERVAL_MS,\n retry: false,\n },\n });\n\n const cachedError = useCachedQueryError(deltaPriceQuery);\n const price = deltaPriceQuery.data;\n\n const total = price\n ? getTwapAmountsFromPrice({ price, numSlices })\n : undefined;\n\n return {\n price,\n priceParams: twapPriceParams,\n side: price ? getSwapSideFromDeltaPrice(price) : undefined,\n isLoading: deltaPriceQuery.isLoading,\n isFetching: deltaPriceQuery.isFetching,\n isError: deltaPriceQuery.isError,\n error: deltaPriceQuery.error,\n refetch: deltaPriceQuery.refetch,\n cachedError,\n queryKey,\n numSlices: numSlices,\n chainId,\n destChainId,\n isCrossChain,\n totalSrcAmount: total?.srcAmount,\n totalDestAmount: total?.destAmount,\n getPriceImpact: getPriceImpactFromPriceFactory({\n priceError: cachedError,\n price,\n }),\n };\n}\n\ntype UseCurrentTwapPriceErrorReturn = {\n price?: DeltaOrBridgePrice;\n cachedError: Error | null;\n getPriceImpact: () => PriceImpactResult;\n isMaxImpactReachedError: boolean;\n isNoUsdPriceError: boolean;\n isNoAvailablePricesError: boolean;\n isUnsupportedTokenError: boolean;\n isNoAvailableBridgeOptionsError: boolean;\n};\n\nexport function useCurrentTwapPriceError(\n params: { enabled: boolean } = { enabled: false }\n): UseCurrentTwapPriceErrorReturn {\n const { price, cachedError, getPriceImpact } = useTwapPrices(params);\n\n // cachedError keeps the error until the query succeeds,\n // so if the prices errored for the current token pair,\n // the error is unlikely to disappear unless the user changes tokenFrom/tokenTo (main screen unmount -> ref resets to null -> error disappears)\n const deltaPriceErrorType = getDeltaPriceErrorType(cachedError);\n\n return {\n price,\n cachedError,\n getPriceImpact,\n isMaxImpactReachedError: deltaPriceErrorType === \"MaxImpactReached\",\n isNoUsdPriceError: deltaPriceErrorType === \"NoUSDPriceForToken\",\n isNoAvailablePricesError: deltaPriceErrorType === \"NoAvailablePrices\",\n isUnsupportedTokenError: deltaPriceErrorType === \"UnsupportedToken\",\n isNoAvailableBridgeOptionsError:\n deltaPriceErrorType === \"NoAvailableBridgeOptions\",\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useTwapPrices.js","names":["useAtomValue","SwapSideUnion","useDeltaPriceQuery","DeltaPriceQueryKey","DeltaPriceQueryParams","useGlobalDeltaEnabled","useCachedQueryError","getSwapSideFromDeltaPrice","PRICE_REFETCH_INTERVAL_MS","useExtraDeltaPriceParams","usePricesParams","twapPayInputAmountWeiAtom","twapReceiveInputAmountWeiAtom","useTwapSplit","useTwapSide","SupportedChainId","getTwapChunkAmount","getTwapAmountsFromPrice","QueryObserverResult","RefetchOptions","DeltaOrBridgePrice","getPriceImpactFromPriceFactory","PriceImpactResult","getDeltaPriceErrorType","UseTwapPricesReturn","totalSrcAmount","totalDestAmount","price","priceParams","side","isLoading","isFetching","isError","error","Error","cachedError","refetch","options","Promise","getPriceImpact","queryKey","numSlices","chainId","destChainId","isCrossChain","useTwapPrices","t0","$","_c","t1","undefined","enabled","payAmountWei","receiveAmountWei","isSell","totalAmount","t2","totalWei","chunkAmount","extraDeltaPriceParams","t3","allowBridgeAndSwap","amount","twapPriceParams","enabledGlobally","t4","t5","refetchInterval","staleTime","retry","t6","query","result","deltaPriceQuery","data","t7","total","t8","t9","t10","t11","t12","t13","t14","srcAmount","t15","destAmount","t16","priceError","t17","UseCurrentTwapPriceErrorReturn","isMaxImpactReachedError","isNoUsdPriceError","isNoAvailablePricesError","isUnsupportedTokenError","isNoAvailableBridgeOptionsError","useCurrentTwapPriceError","params","deltaPriceErrorType"],"sources":["../../../../src/hooks/swap/prices/useTwapPrices.ts"],"sourcesContent":["import { useAtomValue } from \"@/core/store\";\nimport type { SwapSideUnion } from \"@velora-dex/sdk\";\nimport {\n useDeltaPriceQuery,\n type DeltaPriceQueryKey,\n type DeltaPriceQueryParams,\n} from \"./delta/queries/useDeltaPriceQuery\";\nimport { useGlobalDeltaEnabled } from \"@/hooks/useGlobalDeltaEnabled\";\nimport { useCachedQueryError } from \"@/hooks/useCachedQueryError\";\nimport { getSwapSideFromDeltaPrice } from \"./delta/orders/utils\";\nimport { PRICE_REFETCH_INTERVAL_MS } from \"./constants\";\nimport { useExtraDeltaPriceParams, usePricesParams } from \"./usePricesParams\";\n\nimport {\n twapPayInputAmountWeiAtom,\n twapReceiveInputAmountWeiAtom,\n} from \"@/core/twap/state/twapInputAmountAtom\";\nimport { useTwapSplit } from \"@/core/twap/state/twapParamsAtom\";\nimport { useTwapSide } from \"@/core/twap/state/twapSideAtom\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { getTwapChunkAmount, getTwapAmountsFromPrice } from \"@/lib/utils/twap\";\nimport type {\n QueryObserverResult,\n RefetchOptions,\n} from \"@tanstack/react-query\";\nimport type { DeltaOrBridgePrice } from \"./types\";\nimport { getPriceImpactFromPriceFactory } from \"./factory\";\nimport type { PriceImpactResult } from \"@/lib/utils/priceImpact\";\nimport { getDeltaPriceErrorType } from \"./delta/queries/errors\";\n\nexport type UseTwapPricesReturn = {\n /** @description price.srcAmount multiplied by numSlices */\n totalSrcAmount?: string;\n /** @description price.receivedDestAmount multiplied by numSlices */\n totalDestAmount?: string;\n price?: DeltaOrBridgePrice;\n priceParams: DeltaPriceQueryParams;\n side?: SwapSideUnion;\n isLoading: boolean;\n isFetching: boolean;\n isError: boolean;\n error: Error | null;\n cachedError: Error | null;\n refetch: (\n options?: RefetchOptions\n ) => Promise<QueryObserverResult<DeltaOrBridgePrice, Error>>;\n getPriceImpact: () => PriceImpactResult;\n queryKey: DeltaPriceQueryKey;\n numSlices: number;\n chainId: SupportedChainId;\n destChainId?: SupportedChainId;\n isCrossChain: boolean;\n};\n\nexport function useTwapPrices(\n { enabled } = { enabled: true }\n): UseTwapPricesReturn {\n const { priceParams, isCrossChain, chainId, destChainId } =\n usePricesParams(\"twap\");\n\n const payAmountWei = useAtomValue(twapPayInputAmountWeiAtom);\n const receiveAmountWei = useAtomValue(twapReceiveInputAmountWeiAtom) ?? \"0\";\n\n const numSlices = useTwapSplit();\n\n const side = useTwapSide();\n const isSell = side === \"SELL\";\n\n const totalAmount = isSell ? payAmountWei : receiveAmountWei;\n // Request a quote for a single slice amount\n const chunkAmount = getTwapChunkAmount({ totalWei: totalAmount, numSlices });\n\n const extraDeltaPriceParams = useExtraDeltaPriceParams();\n\n const twapPriceParams: DeltaPriceQueryParams = {\n ...priceParams,\n ...extraDeltaPriceParams,\n // allowBridgeAndSwap=true isn't supported for TWAP for now\n allowBridgeAndSwap: false,\n amount: chunkAmount,\n };\n\n const { enabledGlobally } = useGlobalDeltaEnabled();\n\n const { result: deltaPriceQuery, queryKey } = useDeltaPriceQuery({\n priceParams: twapPriceParams,\n chainId,\n destChainId,\n query: {\n enabled: enabled && enabledGlobally,\n refetchInterval: PRICE_REFETCH_INTERVAL_MS,\n staleTime: PRICE_REFETCH_INTERVAL_MS,\n retry: false,\n },\n });\n\n const cachedError = useCachedQueryError(deltaPriceQuery);\n const price = deltaPriceQuery.data;\n\n const total = price\n ? getTwapAmountsFromPrice({ price, numSlices })\n : undefined;\n\n return {\n price,\n priceParams: twapPriceParams,\n side: price ? getSwapSideFromDeltaPrice(price) : undefined,\n isLoading: deltaPriceQuery.isLoading,\n isFetching: deltaPriceQuery.isFetching,\n isError: deltaPriceQuery.isError,\n error: deltaPriceQuery.error,\n refetch: deltaPriceQuery.refetch,\n cachedError,\n queryKey,\n numSlices: numSlices,\n chainId,\n destChainId,\n isCrossChain,\n totalSrcAmount: total?.srcAmount,\n totalDestAmount: total?.destAmount,\n getPriceImpact: getPriceImpactFromPriceFactory({\n priceError: cachedError,\n price,\n }),\n };\n}\n\ntype UseCurrentTwapPriceErrorReturn = {\n price?: DeltaOrBridgePrice;\n cachedError: Error | null;\n getPriceImpact: () => PriceImpactResult;\n isMaxImpactReachedError: boolean;\n isNoUsdPriceError: boolean;\n isNoAvailablePricesError: boolean;\n isUnsupportedTokenError: boolean;\n isNoAvailableBridgeOptionsError: boolean;\n};\n\nexport function useCurrentTwapPriceError(\n params: { enabled: boolean } = { enabled: false }\n): UseCurrentTwapPriceErrorReturn {\n const { price, cachedError, getPriceImpact } = useTwapPrices(params);\n\n // cachedError keeps the error until the query succeeds,\n // so if the prices errored for the current token pair,\n // the error is unlikely to disappear unless the user changes tokenFrom/tokenTo (main screen unmount -> ref resets to null -> error disappears)\n const deltaPriceErrorType = getDeltaPriceErrorType(cachedError);\n\n return {\n price,\n cachedError,\n getPriceImpact,\n isMaxImpactReachedError: deltaPriceErrorType === \"MaxImpactReached\",\n isNoUsdPriceError: deltaPriceErrorType === \"NoUSDPriceForToken\",\n isNoAvailablePricesError: deltaPriceErrorType === \"NoAvailablePrices\",\n isUnsupportedTokenError: deltaPriceErrorType === \"UnsupportedToken\",\n isNoAvailableBridgeOptionsError:\n deltaPriceErrorType === \"NoAvailableBridgeOptions\",\n };\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","names":["ReplaceTxResult","UserCancelledError","Error","constructor","message","name","captureStackTrace","isUserCancelledError","error","TransactionCancelledError","details","isTransactionCancelledError"],"sources":["../../../../../src/hooks/swap/tradeFlow/common/errors.ts"],"sourcesContent":["import type { ReplaceTxResult } from \"@/hooks/txs/mutations/useReplaceTx\";\n\nexport class UserCancelledError extends Error {\n constructor(message: string = \"User cancelled request\") {\n super(message);\n this.name = \"UserCancelledError\";\n\n // Capture stack trace, excluding the constructor call\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, UserCancelledError);\n }\n }\n}\n\nexport function isUserCancelledError(\n error: unknown\n): error is UserCancelledError {\n return error instanceof UserCancelledError;\n}\n\nexport class TransactionCancelledError extends Error {\n details: ReplaceTxResult;\n constructor(\n message: string = \"Transaction cancelled\",\n details: ReplaceTxResult\n ) {\n super(message);\n this.name = \"TransactionCancelledError\";\n this.details = details;\n\n // Capture stack trace, excluding the constructor call\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, TransactionCancelledError);\n }\n }\n}\n\nexport function isTransactionCancelledError(\n error: unknown\n): error is TransactionCancelledError {\n return error instanceof TransactionCancelledError;\n}\n"],"mappings":";AAEA,IAAaC,IAAb,MAAaA,UAA2BC,MAAM;CAC5CC,YAAYC,IAAkB,0BAA0B;
|
|
1
|
+
{"version":3,"file":"errors.js","names":["ReplaceTxResult","UserCancelledError","Error","constructor","message","name","captureStackTrace","isUserCancelledError","error","TransactionCancelledError","details","isTransactionCancelledError"],"sources":["../../../../../src/hooks/swap/tradeFlow/common/errors.ts"],"sourcesContent":["import type { ReplaceTxResult } from \"@/hooks/txs/mutations/useReplaceTx\";\n\nexport class UserCancelledError extends Error {\n constructor(message: string = \"User cancelled request\") {\n super(message);\n this.name = \"UserCancelledError\";\n\n // Capture stack trace, excluding the constructor call\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, UserCancelledError);\n }\n }\n}\n\nexport function isUserCancelledError(\n error: unknown\n): error is UserCancelledError {\n return error instanceof UserCancelledError;\n}\n\nexport class TransactionCancelledError extends Error {\n details: ReplaceTxResult;\n constructor(\n message: string = \"Transaction cancelled\",\n details: ReplaceTxResult\n ) {\n super(message);\n this.name = \"TransactionCancelledError\";\n this.details = details;\n\n // Capture stack trace, excluding the constructor call\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, TransactionCancelledError);\n }\n }\n}\n\nexport function isTransactionCancelledError(\n error: unknown\n): error is TransactionCancelledError {\n return error instanceof TransactionCancelledError;\n}\n"],"mappings":";AAEA,IAAaC,IAAb,MAAaA,UAA2BC,MAAM;CAC5CC,YAAYC,IAAkB,0BAA0B;EAKtD,AAJA,MAAMA,EAAQ,EACd,KAAKC,OAAO,sBAGRH,MAAMI,qBACRJ,MAAMI,kBAAkB,MAAML,EAAmB;;;AAKvD,SAAgBM,EACdC,GAC6B;CAC7B,OAAOA,aAAiBP;;AAG1B,IAAaQ,IAAb,MAAaA,UAAkCP,MAAM;CACnDQ;CACAP,YACEC,IAAkB,yBAClBM,GACA;EAMA,AALA,MAAMN,EAAQ,EACd,KAAKC,OAAO,6BACZ,KAAKK,UAAUA,GAGXR,MAAMI,qBACRJ,MAAMI,kBAAkB,MAAMG,EAA0B;;;AAK9D,SAAgBE,EACdH,GACoC;CACpC,OAAOA,aAAiBC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"depositAndSubmitOrderFactory.js","names":["DeltaAuction","PreSignOrderToPost","EnsureTxReceiptFn","Hash","SupportedChainId","LoggerInstance","TxSentObject","assert","isETHaddress","DepositAndSubmitOrderInput","signal","AbortSignal","orderInput","srcToken","createOrderInput","TCreateInput","depositAmount","onTxSent","txSent","DepositAndSubmitOrderFunc","input","Promise","TAuction","DepositAndSubmitOrderFactoryDeps","createOrderToPost","TOrderToPost","sendDepositPreSignTx","params","orderHash","postOrder","order","ensureTxReceipt","logger","chainId","depositAndSubmitOrderFactory","_depositAmount","BigInt","throwIfAborted","orderToPost","orderFromAPI","depositTxHash","toString","depositTxReceiptPromise","hash","onReplaced","data","log","action","receiptPromise","transactionHash","transactionSpecificData","error"],"sources":["../../../../../../src/hooks/swap/tradeFlow/common/factory/depositAndSubmitOrderFactory.ts"],"sourcesContent":["import type { DeltaAuction } from \"@velora-dex/sdk\";\nimport type { PreSignOrderToPost } from \"../../../prices/delta/mutations/types\";\nimport type { EnsureTxReceiptFn } from \"@/transactions/queries/ensureTxReceipt\";\nimport type { Hash } from \"viem\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport type { LoggerInstance } from \"@/lib/utils/logger\";\nimport type { TxSentObject } from \"@/lib/utils/transactionHandlers\";\nimport { assert } from \"ts-essentials\";\nimport { isETHaddress } from \"@/tokens/utils/eth\";\n\nexport type DepositAndSubmitOrderInput<\n TCreateInput extends {\n signal?: AbortSignal;\n orderInput: { srcToken: string };\n },\n> = {\n createOrderInput: TCreateInput;\n depositAmount: string;\n onTxSent?: (txSent: TxSentObject) => void;\n};\n\nexport type DepositAndSubmitOrderFunc<\n TCreateInput extends {\n signal?: AbortSignal;\n orderInput: { srcToken: string };\n },\n TAuction extends DeltaAuction,\n> = (input: DepositAndSubmitOrderInput<TCreateInput>) => Promise<TAuction>;\n\ntype DepositAndSubmitOrderFactoryDeps<\n TOrderToPost extends PreSignOrderToPost,\n TAuction extends DeltaAuction,\n TCreateInput extends {\n signal?: AbortSignal;\n orderInput: { srcToken: string };\n },\n> = {\n createOrderToPost: (input: TCreateInput) => Promise<TOrderToPost>;\n sendDepositPreSignTx: (params: {\n orderHash: string;\n depositAmount: string;\n signal?: AbortSignal;\n }) => Promise<Hash>;\n postOrder: (order: TOrderToPost) => Promise<TAuction>;\n ensureTxReceipt: EnsureTxReceiptFn;\n logger: LoggerInstance;\n chainId: SupportedChainId;\n};\n\nexport function depositAndSubmitOrderFactory<\n TOrderToPost extends PreSignOrderToPost,\n TAuction extends DeltaAuction,\n TCreateInput extends {\n signal?: AbortSignal;\n orderInput: { srcToken: string };\n },\n>({\n createOrderToPost,\n sendDepositPreSignTx,\n postOrder,\n ensureTxReceipt,\n logger,\n chainId,\n}: DepositAndSubmitOrderFactoryDeps<\n TOrderToPost,\n TAuction,\n TCreateInput\n>): DepositAndSubmitOrderFunc<TCreateInput, TAuction> {\n return async ({\n depositAmount: _depositAmount,\n createOrderInput,\n onTxSent,\n }) => {\n const depositAmount = BigInt(_depositAmount);\n\n assert(\n isETHaddress(createOrderInput.orderInput.srcToken),\n \"srcToken must be ETH\"\n );\n assert(depositAmount > 0n, \"depositAmount must be greater than 0\");\n\n // sign depositTx + POST order\n\n const { signal } = createOrderInput;\n\n // if aborted by this point, throw an error\n signal?.throwIfAborted();\n\n try {\n const orderToPost = await createOrderToPost(createOrderInput);\n // POST the Order to API with signature=0x\n const orderFromAPI = await postOrder(orderToPost);\n\n // if aborted by this point, throw an error\n signal?.throwIfAborted();\n\n const depositTxHash = await sendDepositPreSignTx({\n orderHash: orderToPost.orderHash,\n depositAmount: depositAmount.toString(),\n signal,\n });\n\n if (onTxSent) {\n const depositTxReceiptPromise = ensureTxReceipt({\n hash: depositTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\n \"[DepositAndSubmit] onReplaced:txHash\",\n depositTxHash,\n data\n );\n },\n });\n\n logger.log(\n \"[DepositAndSubmit] awaiting depositNativeAndPreSign txHash:\",\n depositTxHash\n );\n\n onTxSent({\n chainId,\n action: \"depositNativeAndPreSign\",\n receiptPromise: depositTxReceiptPromise,\n transactionHash: depositTxHash,\n transactionSpecificData: {\n action: \"depositNativeAndPreSign\",\n order: orderToPost,\n depositAmount,\n },\n });\n }\n\n return orderFromAPI;\n } catch (error) {\n logger.error(\"[DepositAndSubmit] error\", error);\n throw error;\n }\n };\n}\n"],"mappings":";;;AAiDA,SAAgBkC,EAOd,EACAV,sBACAE,yBACAG,cACAE,oBACAC,WACAC,cAKoD;
|
|
1
|
+
{"version":3,"file":"depositAndSubmitOrderFactory.js","names":["DeltaAuction","PreSignOrderToPost","EnsureTxReceiptFn","Hash","SupportedChainId","LoggerInstance","TxSentObject","assert","isETHaddress","DepositAndSubmitOrderInput","signal","AbortSignal","orderInput","srcToken","createOrderInput","TCreateInput","depositAmount","onTxSent","txSent","DepositAndSubmitOrderFunc","input","Promise","TAuction","DepositAndSubmitOrderFactoryDeps","createOrderToPost","TOrderToPost","sendDepositPreSignTx","params","orderHash","postOrder","order","ensureTxReceipt","logger","chainId","depositAndSubmitOrderFactory","_depositAmount","BigInt","throwIfAborted","orderToPost","orderFromAPI","depositTxHash","toString","depositTxReceiptPromise","hash","onReplaced","data","log","action","receiptPromise","transactionHash","transactionSpecificData","error"],"sources":["../../../../../../src/hooks/swap/tradeFlow/common/factory/depositAndSubmitOrderFactory.ts"],"sourcesContent":["import type { DeltaAuction } from \"@velora-dex/sdk\";\nimport type { PreSignOrderToPost } from \"../../../prices/delta/mutations/types\";\nimport type { EnsureTxReceiptFn } from \"@/transactions/queries/ensureTxReceipt\";\nimport type { Hash } from \"viem\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport type { LoggerInstance } from \"@/lib/utils/logger\";\nimport type { TxSentObject } from \"@/lib/utils/transactionHandlers\";\nimport { assert } from \"ts-essentials\";\nimport { isETHaddress } from \"@/tokens/utils/eth\";\n\nexport type DepositAndSubmitOrderInput<\n TCreateInput extends {\n signal?: AbortSignal;\n orderInput: { srcToken: string };\n },\n> = {\n createOrderInput: TCreateInput;\n depositAmount: string;\n onTxSent?: (txSent: TxSentObject) => void;\n};\n\nexport type DepositAndSubmitOrderFunc<\n TCreateInput extends {\n signal?: AbortSignal;\n orderInput: { srcToken: string };\n },\n TAuction extends DeltaAuction,\n> = (input: DepositAndSubmitOrderInput<TCreateInput>) => Promise<TAuction>;\n\ntype DepositAndSubmitOrderFactoryDeps<\n TOrderToPost extends PreSignOrderToPost,\n TAuction extends DeltaAuction,\n TCreateInput extends {\n signal?: AbortSignal;\n orderInput: { srcToken: string };\n },\n> = {\n createOrderToPost: (input: TCreateInput) => Promise<TOrderToPost>;\n sendDepositPreSignTx: (params: {\n orderHash: string;\n depositAmount: string;\n signal?: AbortSignal;\n }) => Promise<Hash>;\n postOrder: (order: TOrderToPost) => Promise<TAuction>;\n ensureTxReceipt: EnsureTxReceiptFn;\n logger: LoggerInstance;\n chainId: SupportedChainId;\n};\n\nexport function depositAndSubmitOrderFactory<\n TOrderToPost extends PreSignOrderToPost,\n TAuction extends DeltaAuction,\n TCreateInput extends {\n signal?: AbortSignal;\n orderInput: { srcToken: string };\n },\n>({\n createOrderToPost,\n sendDepositPreSignTx,\n postOrder,\n ensureTxReceipt,\n logger,\n chainId,\n}: DepositAndSubmitOrderFactoryDeps<\n TOrderToPost,\n TAuction,\n TCreateInput\n>): DepositAndSubmitOrderFunc<TCreateInput, TAuction> {\n return async ({\n depositAmount: _depositAmount,\n createOrderInput,\n onTxSent,\n }) => {\n const depositAmount = BigInt(_depositAmount);\n\n assert(\n isETHaddress(createOrderInput.orderInput.srcToken),\n \"srcToken must be ETH\"\n );\n assert(depositAmount > 0n, \"depositAmount must be greater than 0\");\n\n // sign depositTx + POST order\n\n const { signal } = createOrderInput;\n\n // if aborted by this point, throw an error\n signal?.throwIfAborted();\n\n try {\n const orderToPost = await createOrderToPost(createOrderInput);\n // POST the Order to API with signature=0x\n const orderFromAPI = await postOrder(orderToPost);\n\n // if aborted by this point, throw an error\n signal?.throwIfAborted();\n\n const depositTxHash = await sendDepositPreSignTx({\n orderHash: orderToPost.orderHash,\n depositAmount: depositAmount.toString(),\n signal,\n });\n\n if (onTxSent) {\n const depositTxReceiptPromise = ensureTxReceipt({\n hash: depositTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\n \"[DepositAndSubmit] onReplaced:txHash\",\n depositTxHash,\n data\n );\n },\n });\n\n logger.log(\n \"[DepositAndSubmit] awaiting depositNativeAndPreSign txHash:\",\n depositTxHash\n );\n\n onTxSent({\n chainId,\n action: \"depositNativeAndPreSign\",\n receiptPromise: depositTxReceiptPromise,\n transactionHash: depositTxHash,\n transactionSpecificData: {\n action: \"depositNativeAndPreSign\",\n order: orderToPost,\n depositAmount,\n },\n });\n }\n\n return orderFromAPI;\n } catch (error) {\n logger.error(\"[DepositAndSubmit] error\", error);\n throw error;\n }\n };\n}\n"],"mappings":";;;AAiDA,SAAgBkC,EAOd,EACAV,sBACAE,yBACAG,cACAE,oBACAC,WACAC,cAKoD;CACpD,OAAO,OAAO,EACZjB,eAAemB,GACfrB,qBACAG,kBACI;EACJ,IAAMD,IAAgBoB,OAAOD,EAAe;EAM5C5B,AAJAA,EACEC,EAAaM,EAAiBF,WAAWC,SAAS,EAClD,uBACD,EACDN,EAAOS,IAAgB,IAAI,uCAAuC;EAIlE,IAAM,EAAEN,cAAWI;EAGnBJ,GAAQ2B,gBAAgB;EAExB,IAAI;GACF,IAAMC,IAAc,MAAMd,EAAkBV,EAAiB,EAEvDyB,IAAe,MAAMV,EAAUS,EAAY;GAGjD5B,GAAQ2B,gBAAgB;GAExB,IAAMG,IAAgB,MAAMd,EAAqB;IAC/CE,WAAWU,EAAYV;IACvBZ,eAAeA,EAAcyB,UAAU;IACvC/B;IACD,CAAC;GAEF,IAAIO,GAAU;IACZ,IAAMyB,IAA0BX,EAAgB;KAC9CY,MAAMH;KACNP;KACAW,aAAaC,MAAS;MACpBb,EAAOc,IACL,wCACAN,GACAK,EACD;;KAEJ,CAAC;IAOF5B,AALAe,EAAOc,IACL,+DACAN,EACD,EAEDvB,EAAS;KACPgB;KACAc,QAAQ;KACRC,gBAAgBN;KAChBO,iBAAiBT;KACjBU,yBAAyB;MACvBH,QAAQ;MACRjB,OAAOQ;MACPtB;MACF;KACD,CAAC;;GAGJ,OAAOuB;WACAY,GAAO;GAEd,MADAnB,EAAOmB,MAAM,4BAA4BA,EAAM,EACzCA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preSignAndSubmitOrderFactory.js","names":["DeltaAuction","PreSignOrderToPost","TxParams","SendCalls","EnsureCallsStatusFn","AdaptersContractsResult","isAddress","Address","Hex","SupportedChainId","LoggerInstance","ApprovalFlowResult","CallsSentObject","assert","PreSignableOrderResult","orderToPost","TOrderToPost","preSignCalldata","AddTxWithApprovals","options","txsParams","approveProps","Pick","Promise","calls","PreSignAndSubmitOrderInput","signal","AbortSignal","createOrderInput","TCreateInput","approval","onTxSent","txSent","PreSignAndSubmitOrderFunc","input","TAuction","PreSignAndSubmitOrderFactoryDeps","createPreSignableOrder","postOrder","order","addTxWithApprovals","sendCalls","ensureCallsStatus","ensureContractsLoaded","params","logger","chainId","account","preSignAndSubmitOrderFactory","throwIfAborted","ParaswapDelta","DeltaContract","to","data","value","needToApprove","allowanceToSet","spender","token","undefined","orderFromAPI","sendCallsResult","sendCallsReceiptPromise","id","then","status","receipts","length","log","action","callsId","receiptPromise","transactionSpecificData","error"],"sources":["../../../../../../src/hooks/swap/tradeFlow/common/factory/preSignAndSubmitOrderFactory.ts"],"sourcesContent":["import type { DeltaAuction } from \"@velora-dex/sdk\";\nimport type { PreSignOrderToPost } from \"../../../prices/delta/mutations/types\";\nimport type { TxParams } from \"@/hooks/batch/useBatchWithApproveTxs\";\nimport type { SendCalls } from \"@/hooks/batch/useSendBatchTx\";\nimport type { EnsureCallsStatusFn } from \"@/transactions/queries/ensureCallsStatus\";\nimport type { AdaptersContractsResult } from \"@velora-dex/sdk\";\nimport { isAddress, type Address, type Hex } from \"viem\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport type { LoggerInstance } from \"@/lib/utils/logger\";\nimport type { ApprovalFlowResult } from \"../types\";\nimport type { CallsSentObject } from \"@/lib/utils/transactionHandlers\";\nimport { assert } from \"ts-essentials\";\n\ntype PreSignableOrderResult<TOrderToPost> = {\n orderToPost: TOrderToPost;\n preSignCalldata: Hex;\n};\n\nexport type AddTxWithApprovals = (options: {\n txsParams: [TxParams, ...TxParams[]];\n approveProps?: Pick<\n ApprovalFlowResult,\n \"spender\" | \"allowanceToSet\" | \"token\" | \"chainId\"\n >[];\n}) => Promise<{ calls: [TxParams, ...TxParams[]] }>;\n\nexport type PreSignAndSubmitOrderInput<\n TCreateInput extends { signal?: AbortSignal },\n> = {\n createOrderInput: TCreateInput;\n approval: Pick<\n ApprovalFlowResult,\n \"spender\" | \"allowanceToSet\" | \"token\" | \"chainId\"\n >;\n onTxSent?: (txSent: CallsSentObject) => void;\n};\n\nexport type PreSignAndSubmitOrderFunc<\n TCreateInput extends { signal?: AbortSignal },\n TAuction extends DeltaAuction,\n> = (input: PreSignAndSubmitOrderInput<TCreateInput>) => Promise<TAuction>;\n\ntype PreSignAndSubmitOrderFactoryDeps<\n TOrderToPost extends PreSignOrderToPost,\n TAuction extends DeltaAuction,\n TCreateInput extends { signal?: AbortSignal },\n> = {\n createPreSignableOrder: (\n input: TCreateInput\n ) => Promise<PreSignableOrderResult<TOrderToPost>>;\n postOrder: (order: TOrderToPost) => Promise<TAuction>;\n addTxWithApprovals: AddTxWithApprovals;\n sendCalls: SendCalls;\n ensureCallsStatus: EnsureCallsStatusFn;\n ensureContractsLoaded: (params: {\n signal?: AbortSignal;\n }) => Promise<AdaptersContractsResult>;\n logger: LoggerInstance;\n chainId: SupportedChainId;\n account?: Address;\n};\n\nexport function preSignAndSubmitOrderFactory<\n TOrderToPost extends PreSignOrderToPost,\n TAuction extends DeltaAuction,\n TCreateInput extends { signal?: AbortSignal },\n>({\n createPreSignableOrder,\n postOrder,\n addTxWithApprovals,\n sendCalls,\n ensureCallsStatus,\n ensureContractsLoaded,\n logger,\n chainId,\n account,\n}: PreSignAndSubmitOrderFactoryDeps<\n TOrderToPost,\n TAuction,\n TCreateInput\n>): PreSignAndSubmitOrderFunc<TCreateInput, TAuction> {\n return async ({ createOrderInput, approval, onTxSent }) => {\n // prepare Order for pre-signing and POSTing:\n // 1. builds the order\n // 2. hashes the built order\n // 3 construct DeltaContract.setPreSignature(orderHash, true) tx calldata\n\n const { signal } = createOrderInput;\n\n const { orderToPost, preSignCalldata } =\n await createPreSignableOrder(createOrderInput);\n\n // if aborted by this point, throw an error\n signal?.throwIfAborted();\n\n const { ParaswapDelta: DeltaContract } = await ensureContractsLoaded({\n signal,\n });\n\n assert(\n DeltaContract && isAddress(DeltaContract),\n `DeltaContract is not available on chain ${chainId}`\n );\n\n const txsParams: [TxParams, ...TxParams[]] = [\n {\n to: DeltaContract,\n account,\n data: preSignCalldata,\n value: 0n,\n chainId,\n },\n ];\n\n const needToApprove =\n approval.allowanceToSet &&\n approval.allowanceToSet > 0n &&\n approval.spender;\n\n const approveProps = needToApprove\n ? [\n {\n spender: approval.spender,\n allowanceToSet: approval.allowanceToSet,\n token: approval.token,\n chainId: approval.chainId,\n },\n ]\n : undefined;\n\n try {\n // 4. construct a sendCalls batch with Approve Token + setPreSignature call\n const { calls } = await addTxWithApprovals({\n txsParams,\n approveProps,\n });\n\n // if aborted by this point, throw an error\n signal?.throwIfAborted();\n\n // 5. POST the Order to API with signature=0x\n const orderFromAPI = await postOrder(orderToPost);\n\n // if aborted by this point, throw an error\n signal?.throwIfAborted();\n\n // 6. send the Approve+setPreSignature batch tx request to the wallet\n const sendCallsResult = await sendCalls({\n txsParams: calls,\n });\n\n // if aborted by this point, throw an error\n signal?.throwIfAborted();\n\n if (onTxSent) {\n const sendCallsReceiptPromise = ensureCallsStatus({\n id: sendCallsResult.id,\n }).then((status) => status.receipts?.[status.receipts.length - 1]);\n\n logger.log(\n \"~ deltaOrder ~ setPreSignature calls id :\",\n sendCallsResult.id\n );\n\n onTxSent({\n chainId,\n action: \"preSignDeltaOrder\",\n callsId: sendCallsResult.id,\n receiptPromise: sendCallsReceiptPromise,\n transactionSpecificData: {\n action: \"preSignDeltaOrder\",\n order: orderToPost,\n },\n });\n }\n\n return orderFromAPI;\n } catch (error) {\n logger.error(\"Pre-sign and submit Order error\", error);\n throw error;\n }\n };\n}\n"],"mappings":";;;AA8DA,SAAgBgD,EAId,EACAX,2BACAC,cACAE,uBACAC,cACAC,sBACAC,0BACAE,WACAC,YACAC,cAKoD;
|
|
1
|
+
{"version":3,"file":"preSignAndSubmitOrderFactory.js","names":["DeltaAuction","PreSignOrderToPost","TxParams","SendCalls","EnsureCallsStatusFn","AdaptersContractsResult","isAddress","Address","Hex","SupportedChainId","LoggerInstance","ApprovalFlowResult","CallsSentObject","assert","PreSignableOrderResult","orderToPost","TOrderToPost","preSignCalldata","AddTxWithApprovals","options","txsParams","approveProps","Pick","Promise","calls","PreSignAndSubmitOrderInput","signal","AbortSignal","createOrderInput","TCreateInput","approval","onTxSent","txSent","PreSignAndSubmitOrderFunc","input","TAuction","PreSignAndSubmitOrderFactoryDeps","createPreSignableOrder","postOrder","order","addTxWithApprovals","sendCalls","ensureCallsStatus","ensureContractsLoaded","params","logger","chainId","account","preSignAndSubmitOrderFactory","throwIfAborted","ParaswapDelta","DeltaContract","to","data","value","needToApprove","allowanceToSet","spender","token","undefined","orderFromAPI","sendCallsResult","sendCallsReceiptPromise","id","then","status","receipts","length","log","action","callsId","receiptPromise","transactionSpecificData","error"],"sources":["../../../../../../src/hooks/swap/tradeFlow/common/factory/preSignAndSubmitOrderFactory.ts"],"sourcesContent":["import type { DeltaAuction } from \"@velora-dex/sdk\";\nimport type { PreSignOrderToPost } from \"../../../prices/delta/mutations/types\";\nimport type { TxParams } from \"@/hooks/batch/useBatchWithApproveTxs\";\nimport type { SendCalls } from \"@/hooks/batch/useSendBatchTx\";\nimport type { EnsureCallsStatusFn } from \"@/transactions/queries/ensureCallsStatus\";\nimport type { AdaptersContractsResult } from \"@velora-dex/sdk\";\nimport { isAddress, type Address, type Hex } from \"viem\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport type { LoggerInstance } from \"@/lib/utils/logger\";\nimport type { ApprovalFlowResult } from \"../types\";\nimport type { CallsSentObject } from \"@/lib/utils/transactionHandlers\";\nimport { assert } from \"ts-essentials\";\n\ntype PreSignableOrderResult<TOrderToPost> = {\n orderToPost: TOrderToPost;\n preSignCalldata: Hex;\n};\n\nexport type AddTxWithApprovals = (options: {\n txsParams: [TxParams, ...TxParams[]];\n approveProps?: Pick<\n ApprovalFlowResult,\n \"spender\" | \"allowanceToSet\" | \"token\" | \"chainId\"\n >[];\n}) => Promise<{ calls: [TxParams, ...TxParams[]] }>;\n\nexport type PreSignAndSubmitOrderInput<\n TCreateInput extends { signal?: AbortSignal },\n> = {\n createOrderInput: TCreateInput;\n approval: Pick<\n ApprovalFlowResult,\n \"spender\" | \"allowanceToSet\" | \"token\" | \"chainId\"\n >;\n onTxSent?: (txSent: CallsSentObject) => void;\n};\n\nexport type PreSignAndSubmitOrderFunc<\n TCreateInput extends { signal?: AbortSignal },\n TAuction extends DeltaAuction,\n> = (input: PreSignAndSubmitOrderInput<TCreateInput>) => Promise<TAuction>;\n\ntype PreSignAndSubmitOrderFactoryDeps<\n TOrderToPost extends PreSignOrderToPost,\n TAuction extends DeltaAuction,\n TCreateInput extends { signal?: AbortSignal },\n> = {\n createPreSignableOrder: (\n input: TCreateInput\n ) => Promise<PreSignableOrderResult<TOrderToPost>>;\n postOrder: (order: TOrderToPost) => Promise<TAuction>;\n addTxWithApprovals: AddTxWithApprovals;\n sendCalls: SendCalls;\n ensureCallsStatus: EnsureCallsStatusFn;\n ensureContractsLoaded: (params: {\n signal?: AbortSignal;\n }) => Promise<AdaptersContractsResult>;\n logger: LoggerInstance;\n chainId: SupportedChainId;\n account?: Address;\n};\n\nexport function preSignAndSubmitOrderFactory<\n TOrderToPost extends PreSignOrderToPost,\n TAuction extends DeltaAuction,\n TCreateInput extends { signal?: AbortSignal },\n>({\n createPreSignableOrder,\n postOrder,\n addTxWithApprovals,\n sendCalls,\n ensureCallsStatus,\n ensureContractsLoaded,\n logger,\n chainId,\n account,\n}: PreSignAndSubmitOrderFactoryDeps<\n TOrderToPost,\n TAuction,\n TCreateInput\n>): PreSignAndSubmitOrderFunc<TCreateInput, TAuction> {\n return async ({ createOrderInput, approval, onTxSent }) => {\n // prepare Order for pre-signing and POSTing:\n // 1. builds the order\n // 2. hashes the built order\n // 3 construct DeltaContract.setPreSignature(orderHash, true) tx calldata\n\n const { signal } = createOrderInput;\n\n const { orderToPost, preSignCalldata } =\n await createPreSignableOrder(createOrderInput);\n\n // if aborted by this point, throw an error\n signal?.throwIfAborted();\n\n const { ParaswapDelta: DeltaContract } = await ensureContractsLoaded({\n signal,\n });\n\n assert(\n DeltaContract && isAddress(DeltaContract),\n `DeltaContract is not available on chain ${chainId}`\n );\n\n const txsParams: [TxParams, ...TxParams[]] = [\n {\n to: DeltaContract,\n account,\n data: preSignCalldata,\n value: 0n,\n chainId,\n },\n ];\n\n const needToApprove =\n approval.allowanceToSet &&\n approval.allowanceToSet > 0n &&\n approval.spender;\n\n const approveProps = needToApprove\n ? [\n {\n spender: approval.spender,\n allowanceToSet: approval.allowanceToSet,\n token: approval.token,\n chainId: approval.chainId,\n },\n ]\n : undefined;\n\n try {\n // 4. construct a sendCalls batch with Approve Token + setPreSignature call\n const { calls } = await addTxWithApprovals({\n txsParams,\n approveProps,\n });\n\n // if aborted by this point, throw an error\n signal?.throwIfAborted();\n\n // 5. POST the Order to API with signature=0x\n const orderFromAPI = await postOrder(orderToPost);\n\n // if aborted by this point, throw an error\n signal?.throwIfAborted();\n\n // 6. send the Approve+setPreSignature batch tx request to the wallet\n const sendCallsResult = await sendCalls({\n txsParams: calls,\n });\n\n // if aborted by this point, throw an error\n signal?.throwIfAborted();\n\n if (onTxSent) {\n const sendCallsReceiptPromise = ensureCallsStatus({\n id: sendCallsResult.id,\n }).then((status) => status.receipts?.[status.receipts.length - 1]);\n\n logger.log(\n \"~ deltaOrder ~ setPreSignature calls id :\",\n sendCallsResult.id\n );\n\n onTxSent({\n chainId,\n action: \"preSignDeltaOrder\",\n callsId: sendCallsResult.id,\n receiptPromise: sendCallsReceiptPromise,\n transactionSpecificData: {\n action: \"preSignDeltaOrder\",\n order: orderToPost,\n },\n });\n }\n\n return orderFromAPI;\n } catch (error) {\n logger.error(\"Pre-sign and submit Order error\", error);\n throw error;\n }\n };\n}\n"],"mappings":";;;AA8DA,SAAgBgD,EAId,EACAX,2BACAC,cACAE,uBACAC,cACAC,sBACAC,0BACAE,WACAC,YACAC,cAKoD;CACpD,OAAO,OAAO,EAAEnB,qBAAkBE,aAAUC,kBAAe;EAMzD,IAAM,EAAEL,cAAWE,GAEb,EAAEb,gBAAaE,uBACnB,MAAMoB,EAAuBT,EAAiB;EAGhDF,GAAQuB,gBAAgB;EAExB,IAAM,EAAEC,eAAeC,MAAkB,MAAMR,EAAsB,EACnEjB,WACD,CAAC;EAEFb,EACEsC,KAAiB7C,EAAU6C,EAAc,EACzC,2CAA2CL,IAC5C;EAED,IAAM1B,IAAuC,CAC3C;GACEgC,IAAID;GACJJ;GACAM,MAAMpC;GACNqC,OAAO;GACPR;GACD,CACF,EAOKzB,IAJJS,EAAS0B,kBACT1B,EAAS0B,iBAAiB,MAC1B1B,EAAS2B,UAGP,CACE;GACEA,SAAS3B,EAAS2B;GAClBD,gBAAgB1B,EAAS0B;GACzBE,OAAO5B,EAAS4B;GAChBZ,SAAShB,EAASgB;GACnB,CACF,GACDa,KAAAA;EAEJ,IAAI;GAEF,IAAM,EAAEnC,aAAU,MAAMgB,EAAmB;IACzCpB;IACAC;IACD,CAAC;GAGFK,GAAQuB,gBAAgB;GAGxB,IAAMW,IAAe,MAAMtB,EAAUvB,EAAY;GAGjDW,GAAQuB,gBAAgB;GAGxB,IAAMY,IAAkB,MAAMpB,EAAU,EACtCrB,WAAWI,GACZ,CAAC;GAKF,IAFAE,GAAQuB,gBAAgB,EAEpBlB,GAAU;IACZ,IAAM+B,IAA0BpB,EAAkB,EAChDqB,IAAIF,EAAgBE,IACrB,CAAC,CAACC,MAAMC,MAAWA,EAAOC,WAAWD,EAAOC,SAASC,SAAS,GAAG;IAOlEpC,AALAc,EAAOuB,IACL,6CACAP,EAAgBE,GACjB,EAEDhC,EAAS;KACPe;KACAuB,QAAQ;KACRC,SAAST,EAAgBE;KACzBQ,gBAAgBT;KAChBU,yBAAyB;MACvBH,QAAQ;MACR9B,OAAOxB;MACT;KACD,CAAC;;GAGJ,OAAO6C;WACAa,GAAO;GAEd,MADA5B,EAAO4B,MAAM,mCAAmCA,EAAM,EAChDA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useApproveOrPermit.js","names":["useApprove","useAwaitTx","Address","useGenericTokenAllowanceMin","ApprovalFlowResult","SignPermitFlowResult","UseApproveResult","useSlippage","useSignPermit1Or2","PermitMut","useLogger","SpenderContractType","TradeMode","useTokensByAddress","useApproveOrPermitEvents","ApproveOrPermitEvents","useRequiredAllowanceForOrders","SupportedChainId","allowanceWithSlippage","genericAllowanceWithSlippage","UseApproveOrPermitInput","srcToken","srcAmount","spenderContractType","swapSide","tradeMode","includeCurrentOrdersAllowance","applySlippage","chainId","tryPermit2","UseApproveOrPermitResult","approval","approveTxMut","signPermit","signPermitMut","events","useApproveOrPermit","params","$","_c","logger","combinedAllowance","allowanceToSetWithSlippage","singleUseAllowance","permit2Allowance","useAllowanceToApprove","t0","address","undefined","t1","t2","log","error","t3","token","allowanceData","spender","onSuccess","onError","t4","t5","allowanceToSet","needsApproval","permit1AllowanceToSet","permit2AllowanceToSet","t6","allowance","t7","txHash","hash","approveTxMined","tokensMap","t8","toLowerCase","tokenObject","t9","t10","isPending","isLoading","t11","isError","t12","isSuccess","t13","t14","isLoadingPrerequisites","data","currentAllowance","receipt","isLoadingAllowance","isConfirmingTX","isTxSent","isTxPending","isTxMined","t15","allowanceToApprove","t16","useCombinedAllowance","useSingleUseAllowance","resolvedSlippage","increaseByAmount","slippage","tokenAddress","srcCombinedAllowance","amountToApproveInWei"],"sources":["../../../../../src/hooks/swap/tradeFlow/common/useApproveOrPermit.ts"],"sourcesContent":["import { useApprove, useAwaitTx } from \"@/hooks/txs\";\nimport type { Address } from \"viem\";\nimport { useGenericTokenAllowanceMin } from \"@/hooks/tokens/allowance/useGenericTokenAllowance\";\nimport type { ApprovalFlowResult, SignPermitFlowResult } from \"./types\";\nimport type { UseApproveResult } from \"@/hooks/txs/mutations/useApprove\";\nimport { useSlippage } from \"@/hooks/useSlippage\";\nimport { useSignPermit1Or2, type PermitMut } from \"./useSignPermit1Or2\";\nimport { useLogger } from \"@/core/logger\";\nimport type { SpenderContractType } from \"@/hooks/sdk/types\";\nimport type { TradeMode } from \"@/core/state/tradeModeAtom\";\nimport { useTokensByAddress } from \"@/hooks/tokens/useTokensByAddress\";\nimport {\n useApproveOrPermitEvents,\n type ApproveOrPermitEvents,\n} from \"./useApproveOrPermitEvents\";\nimport { useRequiredAllowanceForOrders } from \"./useRequiredAllowanceForOrders\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport {\n allowanceWithSlippage,\n genericAllowanceWithSlippage,\n} from \"@/hooks/tokens/allowance/utils\";\n\ntype UseApproveOrPermitInput = {\n srcToken?: string;\n srcAmount?: string | bigint;\n spenderContractType: SpenderContractType;\n swapSide: \"BUY\" | \"SELL\";\n tradeMode: TradeMode;\n /** @description Whether to include the allowance of currently active Orders in the combined allowance */\n includeCurrentOrdersAllowance?: boolean;\n applySlippage?: boolean; // whether to apply slippage on the allowanceToSet (only for BUY side)\n chainId: SupportedChainId;\n /** @description TWAP mode doesn't support Permit2.transferFrom */\n tryPermit2?: boolean;\n};\n\ntype UseApproveOrPermitResult = {\n approval: ApprovalFlowResult;\n approveTxMut: UseApproveResult;\n signPermit: SignPermitFlowResult;\n signPermitMut: PermitMut;\n events: ApproveOrPermitEvents;\n};\n\nexport function useApproveOrPermit(\n params: UseApproveOrPermitInput\n): UseApproveOrPermitResult {\n const logger = useLogger(\"ApproveOrPermit\");\n\n const { srcToken, tradeMode, chainId } = params;\n\n /* 1. gather Allowance data */\n\n const {\n combinedAllowance: allowanceToSetWithSlippage,\n // Permit2 allowance is usually unlimited if the user traded this token in Uniswap before\n // for Delta Orders permit2 amount and deadline have to match with order.srcAmount and order.deadline\n // that user signs when creating the order in useDeltaFlow\n singleUseAllowance: permit2Allowance,\n } = useAllowanceToApprove(params);\n\n /* 2.1. submit Approve tx */\n\n const approveTxMut = useApprove({\n token: srcToken ? { address: srcToken } : undefined,\n allowanceData: allowanceToSetWithSlippage,\n spender: allowanceToSetWithSlippage.spender,\n onSuccess: () => {\n logger.log(\"Approve tx success\");\n },\n onError: (error) => {\n logger.error(\"Approve tx error\", error);\n },\n });\n\n /* 2.2. or sign Permit1/Permit2 */\n\n const { signPermit, signPermitMut } = useSignPermit1Or2({\n srcToken: srcToken as Address | undefined,\n chainId,\n allowance: {\n spender: allowanceToSetWithSlippage.spender,\n needsApproval: allowanceToSetWithSlippage.needsApproval,\n permit1AllowanceToSet: allowanceToSetWithSlippage.allowanceToSet,\n permit2AllowanceToSet: permit2Allowance.allowanceToSet,\n },\n tryPermit2: params.tryPermit2,\n });\n\n /* 3. await Approve tx (if sent) */\n const approveTxMined = useAwaitTx({\n hash: approveTxMut.txHash,\n chainId,\n });\n\n const tokensMap = useTokensByAddress(chainId);\n const tokenObject = srcToken ? tokensMap[srcToken.toLowerCase()] : undefined;\n\n const approval: ApprovalFlowResult = {\n token: srcToken as Address | undefined,\n tokenObject,\n chainId,\n /* allowance fetching */\n needsApproval: allowanceToSetWithSlippage.needsApproval,\n allowanceToSet: allowanceToSetWithSlippage.allowanceToSet,\n currentAllowance: allowanceToSetWithSlippage.allowance,\n spender: allowanceToSetWithSlippage.spender,\n txHash: approveTxMut.txHash,\n receipt: approveTxMined.data,\n isLoadingAllowance: allowanceToSetWithSlippage.isLoadingPrerequisites,\n /* tx sending */\n isConfirmingTX: approveTxMut.isPending,\n isTxSent: approveTxMut.isSuccess,\n /* tx awaiting */\n isTxPending: approveTxMined.isLoading,\n isTxMined: approveTxMined.isSuccess,\n /* combined */\n isPending:\n allowanceToSetWithSlippage.needsApproval &&\n (approveTxMut.isPending || approveTxMined.isLoading),\n isError:\n allowanceToSetWithSlippage.needsApproval &&\n (approveTxMut.isError || approveTxMined.isError),\n isSuccess:\n !allowanceToSetWithSlippage.needsApproval || approveTxMined.isSuccess, // final success\n error: allowanceToSetWithSlippage.needsApproval\n ? approveTxMut.error || approveTxMined.error\n : null,\n };\n\n const events = useApproveOrPermitEvents({\n approval,\n signPermit,\n allowanceToApprove: allowanceToSetWithSlippage.allowanceToSet,\n permit2Allowance: permit2Allowance.allowanceToSet,\n chainId,\n tradeMode,\n });\n\n return {\n approval,\n approveTxMut,\n signPermit,\n signPermitMut,\n events,\n };\n}\n\nfunction useAllowanceToApprove(params: UseApproveOrPermitInput) {\n const combinedAllowance = useCombinedAllowance(params);\n const singleUseAllowance = useSingleUseAllowance(params);\n\n return {\n combinedAllowance, // allowance for any open Delta/OTC orders + new order, with slippage if BUY\n singleUseAllowance, // exact allowance for srcAmount, with slippage if BUY\n };\n}\n\n// amount for the new Delta/OTC order + amount required to cover allowance of current Delta/OTC orders\n// if includeCurrentOrdersAllowance=true (only for SpenderContractType=ParaswapDelta)\n// =exact required? + (single * slippage if BUY)\nfunction useCombinedAllowance({\n srcToken,\n srcAmount,\n spenderContractType,\n swapSide,\n tradeMode,\n includeCurrentOrdersAllowance,\n chainId,\n applySlippage = true,\n}: UseApproveOrPermitInput) {\n const { resolvedSlippage } = useSlippage(tradeMode);\n\n let increaseByAmount = srcAmount;\n if (applySlippage) {\n increaseByAmount = allowanceWithSlippage({\n allowance: srcAmount,\n swapSide,\n slippage: resolvedSlippage,\n });\n }\n\n const { combinedAllowance: srcCombinedAllowance } =\n useRequiredAllowanceForOrders({\n tokenAddress: srcToken,\n increaseByAmount,\n spenderContractType,\n includeCurrentOrdersAllowance,\n });\n\n return useGenericTokenAllowanceMin({\n tokenAddress: srcToken,\n amountToApproveInWei: srcCombinedAllowance,\n spenderContractType,\n chainId,\n });\n}\n\n// =exact srcAmount * slippage if BUY\nfunction useSingleUseAllowance({\n srcToken,\n srcAmount,\n spenderContractType,\n chainId,\n swapSide,\n tradeMode,\n applySlippage = true,\n}: UseApproveOrPermitInput) {\n const { resolvedSlippage } = useSlippage(tradeMode);\n\n const singleUseAllowance = useGenericTokenAllowanceMin({\n tokenAddress: srcToken,\n amountToApproveInWei: srcAmount,\n spenderContractType,\n chainId,\n });\n\n if (applySlippage) {\n return genericAllowanceWithSlippage({\n allowance: singleUseAllowance,\n swapSide,\n slippage: resolvedSlippage,\n });\n }\n\n return singleUseAllowance;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useApproveOrPermit.js","names":["useApprove","useAwaitTx","Address","useGenericTokenAllowanceMin","ApprovalFlowResult","SignPermitFlowResult","UseApproveResult","useSlippage","useSignPermit1Or2","PermitMut","useLogger","SpenderContractType","TradeMode","useTokensByAddress","useApproveOrPermitEvents","ApproveOrPermitEvents","useRequiredAllowanceForOrders","SupportedChainId","allowanceWithSlippage","genericAllowanceWithSlippage","UseApproveOrPermitInput","srcToken","srcAmount","spenderContractType","swapSide","tradeMode","includeCurrentOrdersAllowance","applySlippage","chainId","tryPermit2","UseApproveOrPermitResult","approval","approveTxMut","signPermit","signPermitMut","events","useApproveOrPermit","params","$","_c","logger","combinedAllowance","allowanceToSetWithSlippage","singleUseAllowance","permit2Allowance","useAllowanceToApprove","t0","address","undefined","t1","t2","log","error","t3","token","allowanceData","spender","onSuccess","onError","t4","t5","allowanceToSet","needsApproval","permit1AllowanceToSet","permit2AllowanceToSet","t6","allowance","t7","txHash","hash","approveTxMined","tokensMap","t8","toLowerCase","tokenObject","t9","t10","isPending","isLoading","t11","isError","t12","isSuccess","t13","t14","isLoadingPrerequisites","data","currentAllowance","receipt","isLoadingAllowance","isConfirmingTX","isTxSent","isTxPending","isTxMined","t15","allowanceToApprove","t16","useCombinedAllowance","useSingleUseAllowance","resolvedSlippage","increaseByAmount","slippage","tokenAddress","srcCombinedAllowance","amountToApproveInWei"],"sources":["../../../../../src/hooks/swap/tradeFlow/common/useApproveOrPermit.ts"],"sourcesContent":["import { useApprove, useAwaitTx } from \"@/hooks/txs\";\nimport type { Address } from \"viem\";\nimport { useGenericTokenAllowanceMin } from \"@/hooks/tokens/allowance/useGenericTokenAllowance\";\nimport type { ApprovalFlowResult, SignPermitFlowResult } from \"./types\";\nimport type { UseApproveResult } from \"@/hooks/txs/mutations/useApprove\";\nimport { useSlippage } from \"@/hooks/useSlippage\";\nimport { useSignPermit1Or2, type PermitMut } from \"./useSignPermit1Or2\";\nimport { useLogger } from \"@/core/logger\";\nimport type { SpenderContractType } from \"@/hooks/sdk/types\";\nimport type { TradeMode } from \"@/core/state/tradeModeAtom\";\nimport { useTokensByAddress } from \"@/hooks/tokens/useTokensByAddress\";\nimport {\n useApproveOrPermitEvents,\n type ApproveOrPermitEvents,\n} from \"./useApproveOrPermitEvents\";\nimport { useRequiredAllowanceForOrders } from \"./useRequiredAllowanceForOrders\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport {\n allowanceWithSlippage,\n genericAllowanceWithSlippage,\n} from \"@/hooks/tokens/allowance/utils\";\n\ntype UseApproveOrPermitInput = {\n srcToken?: string;\n srcAmount?: string | bigint;\n spenderContractType: SpenderContractType;\n swapSide: \"BUY\" | \"SELL\";\n tradeMode: TradeMode;\n /** @description Whether to include the allowance of currently active Orders in the combined allowance */\n includeCurrentOrdersAllowance?: boolean;\n applySlippage?: boolean; // whether to apply slippage on the allowanceToSet (only for BUY side)\n chainId: SupportedChainId;\n /** @description TWAP mode doesn't support Permit2.transferFrom */\n tryPermit2?: boolean;\n};\n\ntype UseApproveOrPermitResult = {\n approval: ApprovalFlowResult;\n approveTxMut: UseApproveResult;\n signPermit: SignPermitFlowResult;\n signPermitMut: PermitMut;\n events: ApproveOrPermitEvents;\n};\n\nexport function useApproveOrPermit(\n params: UseApproveOrPermitInput\n): UseApproveOrPermitResult {\n const logger = useLogger(\"ApproveOrPermit\");\n\n const { srcToken, tradeMode, chainId } = params;\n\n /* 1. gather Allowance data */\n\n const {\n combinedAllowance: allowanceToSetWithSlippage,\n // Permit2 allowance is usually unlimited if the user traded this token in Uniswap before\n // for Delta Orders permit2 amount and deadline have to match with order.srcAmount and order.deadline\n // that user signs when creating the order in useDeltaFlow\n singleUseAllowance: permit2Allowance,\n } = useAllowanceToApprove(params);\n\n /* 2.1. submit Approve tx */\n\n const approveTxMut = useApprove({\n token: srcToken ? { address: srcToken } : undefined,\n allowanceData: allowanceToSetWithSlippage,\n spender: allowanceToSetWithSlippage.spender,\n onSuccess: () => {\n logger.log(\"Approve tx success\");\n },\n onError: (error) => {\n logger.error(\"Approve tx error\", error);\n },\n });\n\n /* 2.2. or sign Permit1/Permit2 */\n\n const { signPermit, signPermitMut } = useSignPermit1Or2({\n srcToken: srcToken as Address | undefined,\n chainId,\n allowance: {\n spender: allowanceToSetWithSlippage.spender,\n needsApproval: allowanceToSetWithSlippage.needsApproval,\n permit1AllowanceToSet: allowanceToSetWithSlippage.allowanceToSet,\n permit2AllowanceToSet: permit2Allowance.allowanceToSet,\n },\n tryPermit2: params.tryPermit2,\n });\n\n /* 3. await Approve tx (if sent) */\n const approveTxMined = useAwaitTx({\n hash: approveTxMut.txHash,\n chainId,\n });\n\n const tokensMap = useTokensByAddress(chainId);\n const tokenObject = srcToken ? tokensMap[srcToken.toLowerCase()] : undefined;\n\n const approval: ApprovalFlowResult = {\n token: srcToken as Address | undefined,\n tokenObject,\n chainId,\n /* allowance fetching */\n needsApproval: allowanceToSetWithSlippage.needsApproval,\n allowanceToSet: allowanceToSetWithSlippage.allowanceToSet,\n currentAllowance: allowanceToSetWithSlippage.allowance,\n spender: allowanceToSetWithSlippage.spender,\n txHash: approveTxMut.txHash,\n receipt: approveTxMined.data,\n isLoadingAllowance: allowanceToSetWithSlippage.isLoadingPrerequisites,\n /* tx sending */\n isConfirmingTX: approveTxMut.isPending,\n isTxSent: approveTxMut.isSuccess,\n /* tx awaiting */\n isTxPending: approveTxMined.isLoading,\n isTxMined: approveTxMined.isSuccess,\n /* combined */\n isPending:\n allowanceToSetWithSlippage.needsApproval &&\n (approveTxMut.isPending || approveTxMined.isLoading),\n isError:\n allowanceToSetWithSlippage.needsApproval &&\n (approveTxMut.isError || approveTxMined.isError),\n isSuccess:\n !allowanceToSetWithSlippage.needsApproval || approveTxMined.isSuccess, // final success\n error: allowanceToSetWithSlippage.needsApproval\n ? approveTxMut.error || approveTxMined.error\n : null,\n };\n\n const events = useApproveOrPermitEvents({\n approval,\n signPermit,\n allowanceToApprove: allowanceToSetWithSlippage.allowanceToSet,\n permit2Allowance: permit2Allowance.allowanceToSet,\n chainId,\n tradeMode,\n });\n\n return {\n approval,\n approveTxMut,\n signPermit,\n signPermitMut,\n events,\n };\n}\n\nfunction useAllowanceToApprove(params: UseApproveOrPermitInput) {\n const combinedAllowance = useCombinedAllowance(params);\n const singleUseAllowance = useSingleUseAllowance(params);\n\n return {\n combinedAllowance, // allowance for any open Delta/OTC orders + new order, with slippage if BUY\n singleUseAllowance, // exact allowance for srcAmount, with slippage if BUY\n };\n}\n\n// amount for the new Delta/OTC order + amount required to cover allowance of current Delta/OTC orders\n// if includeCurrentOrdersAllowance=true (only for SpenderContractType=ParaswapDelta)\n// =exact required? + (single * slippage if BUY)\nfunction useCombinedAllowance({\n srcToken,\n srcAmount,\n spenderContractType,\n swapSide,\n tradeMode,\n includeCurrentOrdersAllowance,\n chainId,\n applySlippage = true,\n}: UseApproveOrPermitInput) {\n const { resolvedSlippage } = useSlippage(tradeMode);\n\n let increaseByAmount = srcAmount;\n if (applySlippage) {\n increaseByAmount = allowanceWithSlippage({\n allowance: srcAmount,\n swapSide,\n slippage: resolvedSlippage,\n });\n }\n\n const { combinedAllowance: srcCombinedAllowance } =\n useRequiredAllowanceForOrders({\n tokenAddress: srcToken,\n increaseByAmount,\n spenderContractType,\n includeCurrentOrdersAllowance,\n });\n\n return useGenericTokenAllowanceMin({\n tokenAddress: srcToken,\n amountToApproveInWei: srcCombinedAllowance,\n spenderContractType,\n chainId,\n });\n}\n\n// =exact srcAmount * slippage if BUY\nfunction useSingleUseAllowance({\n srcToken,\n srcAmount,\n spenderContractType,\n chainId,\n swapSide,\n tradeMode,\n applySlippage = true,\n}: UseApproveOrPermitInput) {\n const { resolvedSlippage } = useSlippage(tradeMode);\n\n const singleUseAllowance = useGenericTokenAllowanceMin({\n tokenAddress: srcToken,\n amountToApproveInWei: srcAmount,\n spenderContractType,\n chainId,\n });\n\n if (applySlippage) {\n return genericAllowanceWithSlippage({\n allowance: singleUseAllowance,\n swapSide,\n slippage: resolvedSlippage,\n });\n }\n\n return singleUseAllowance;\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useApproveOrPermitEvents.js","names":["TradeMode","useWidgetEvents","SupportedChainId","ApprovalFlowResult","SignPermitFlowResult","Hash","TransactionReceipt","ApproveEventCallbacksInput","approval","Pick","signPermit","allowanceToApprove","permit2Allowance","chainId","tradeMode","EventsInput","allowanceToSet","ApproveOrPermitEvents","onApproveTx","request","sent","txHash","confirmed","txReceipt","failed","error","Error","onSignPermit","permit","useApproveOrPermitEvents","t0","$","_c","onAllowToken","t1","t2","t3","undefined","tokenObject","spender","event","name","params","token","amountWei","spenderAddress","type","t4","t5","allowanceToSet_0","t6","t7","txHash_0","allowanceToSet_1","t8","t9","txHash_1","allowanceToSet_2","input","allowanceToSet_3","permitType","input_0","allowanceToSet_4","error_0","input_1","allowanceToSet_5"],"sources":["../../../../../src/hooks/swap/tradeFlow/common/useApproveOrPermitEvents.ts"],"sourcesContent":["import type { TradeMode } from \"@/core/state/tradeModeAtom\";\nimport { useWidgetEvents } from \"@/core/state/widgetEventsAtom\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport type { ApprovalFlowResult, SignPermitFlowResult } from \"./types\";\nimport type { Hash, TransactionReceipt } from \"viem\";\n\ntype ApproveEventCallbacksInput = {\n approval: Pick<ApprovalFlowResult, \"tokenObject\" | \"spender\">;\n signPermit: Pick<\n SignPermitFlowResult,\n \"tokenObject\" | \"spender\" | \"permitType\"\n >;\n allowanceToApprove?: bigint;\n permit2Allowance?: bigint;\n chainId: SupportedChainId;\n tradeMode: TradeMode;\n};\n\ntype EventsInput = {\n allowanceToSet?: bigint;\n};\n\nexport type ApproveOrPermitEvents = {\n onApproveTx: {\n request: ({ allowanceToSet }: EventsInput) => void;\n sent: ({\n allowanceToSet,\n txHash,\n }: EventsInput & {\n txHash: Hash;\n }) => void;\n confirmed: ({\n allowanceToSet,\n txHash,\n txReceipt,\n }: EventsInput & {\n txHash: Hash;\n txReceipt: TransactionReceipt;\n }) => void;\n failed: ({\n allowanceToSet,\n txHash,\n error,\n }: EventsInput & {\n txHash?: Hash;\n error: Error;\n }) => void;\n };\n onSignPermit: {\n request: ({ allowanceToSet }: EventsInput) => void;\n confirmed: ({\n allowanceToSet,\n permit,\n }: EventsInput & {\n permit: Hash;\n }) => void;\n failed: ({\n allowanceToSet,\n error,\n }: EventsInput & {\n error: Error;\n }) => void;\n };\n};\n\nexport function useApproveOrPermitEvents({\n approval,\n signPermit,\n allowanceToApprove,\n permit2Allowance,\n chainId,\n tradeMode,\n}: ApproveEventCallbacksInput) {\n const { onAllowToken } = useWidgetEvents();\n\n const onApproveTx: ApproveOrPermitEvents[\"onApproveTx\"] = {\n request: ({ allowanceToSet = allowanceToApprove }) => {\n if (approval.tokenObject && approval.spender && allowanceToSet) {\n onAllowToken?.({\n event: {\n name: \"AllowToken:request\",\n params: {\n token: approval.tokenObject,\n amountWei: allowanceToSet,\n spenderAddress: approval.spender,\n chainId,\n tradeMode,\n type: \"approve\",\n },\n },\n });\n }\n },\n sent: ({ allowanceToSet = allowanceToApprove, txHash }) => {\n if (approval.tokenObject && approval.spender && allowanceToSet) {\n onAllowToken?.({\n event: {\n name: \"AllowToken:sent\",\n params: {\n token: approval.tokenObject,\n amountWei: allowanceToSet,\n spenderAddress: approval.spender,\n chainId,\n tradeMode,\n type: \"approve\",\n txHash,\n },\n },\n });\n }\n },\n confirmed: ({ allowanceToSet = allowanceToApprove, txHash, txReceipt }) => {\n if (approval.tokenObject && approval.spender && allowanceToSet) {\n onAllowToken?.({\n event: {\n name: \"AllowToken:confirmed\",\n params: {\n token: approval.tokenObject,\n amountWei: allowanceToSet,\n spenderAddress: approval.spender,\n chainId,\n tradeMode,\n type: \"approve\",\n txHash,\n txReceipt,\n },\n },\n });\n }\n },\n failed: ({ allowanceToSet = allowanceToApprove, txHash, error }) => {\n if (approval.tokenObject && approval.spender && allowanceToSet) {\n onAllowToken?.({\n event: {\n name: \"AllowToken:failed\",\n params: {\n token: approval.tokenObject,\n amountWei: allowanceToSet,\n spenderAddress: approval.spender,\n chainId,\n tradeMode,\n type: \"approve\",\n txHash,\n error,\n },\n },\n });\n }\n },\n };\n\n const onSignPermit: ApproveOrPermitEvents[\"onSignPermit\"] = {\n request: (input) => {\n const allowanceToSet =\n input.allowanceToSet ??\n (signPermit.permitType === \"permit2TransferFrom\"\n ? permit2Allowance\n : allowanceToApprove);\n if (signPermit.tokenObject && signPermit.spender && allowanceToSet) {\n onAllowToken?.({\n event: {\n name: \"AllowToken:request\",\n params: {\n token: signPermit.tokenObject,\n amountWei: allowanceToSet,\n spenderAddress: signPermit.spender,\n chainId,\n tradeMode,\n type: \"permit\",\n permitType: signPermit.permitType,\n },\n },\n });\n }\n },\n confirmed: ({ permit, ...input }) => {\n const allowanceToSet =\n input.allowanceToSet ??\n (signPermit.permitType === \"permit2TransferFrom\"\n ? permit2Allowance\n : allowanceToApprove);\n if (signPermit.tokenObject && signPermit.spender && allowanceToSet) {\n onAllowToken?.({\n event: {\n name: \"AllowToken:confirmed\",\n params: {\n token: signPermit.tokenObject,\n amountWei: allowanceToSet,\n spenderAddress: signPermit.spender,\n chainId,\n tradeMode,\n type: \"permit\",\n permitType: signPermit.permitType,\n permit,\n },\n },\n });\n }\n },\n failed: ({ error, ...input }) => {\n const allowanceToSet =\n input.allowanceToSet ??\n (signPermit.permitType === \"permit2TransferFrom\"\n ? permit2Allowance\n : allowanceToApprove);\n if (signPermit.tokenObject && signPermit.spender && allowanceToSet) {\n onAllowToken?.({\n event: {\n name: \"AllowToken:failed\",\n params: {\n token: signPermit.tokenObject,\n amountWei: allowanceToSet,\n spenderAddress: signPermit.spender,\n chainId,\n tradeMode,\n type: \"permit\",\n permitType: signPermit.permitType,\n error,\n },\n },\n });\n }\n },\n };\n\n return {\n onApproveTx,\n onSignPermit,\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useApproveOrPermitEvents.js","names":["TradeMode","useWidgetEvents","SupportedChainId","ApprovalFlowResult","SignPermitFlowResult","Hash","TransactionReceipt","ApproveEventCallbacksInput","approval","Pick","signPermit","allowanceToApprove","permit2Allowance","chainId","tradeMode","EventsInput","allowanceToSet","ApproveOrPermitEvents","onApproveTx","request","sent","txHash","confirmed","txReceipt","failed","error","Error","onSignPermit","permit","useApproveOrPermitEvents","t0","$","_c","onAllowToken","t1","t2","t3","undefined","tokenObject","spender","event","name","params","token","amountWei","spenderAddress","type","t4","t5","allowanceToSet_0","t6","t7","txHash_0","allowanceToSet_1","t8","t9","txHash_1","allowanceToSet_2","input","allowanceToSet_3","permitType","input_0","allowanceToSet_4","error_0","input_1","allowanceToSet_5"],"sources":["../../../../../src/hooks/swap/tradeFlow/common/useApproveOrPermitEvents.ts"],"sourcesContent":["import type { TradeMode } from \"@/core/state/tradeModeAtom\";\nimport { useWidgetEvents } from \"@/core/state/widgetEventsAtom\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport type { ApprovalFlowResult, SignPermitFlowResult } from \"./types\";\nimport type { Hash, TransactionReceipt } from \"viem\";\n\ntype ApproveEventCallbacksInput = {\n approval: Pick<ApprovalFlowResult, \"tokenObject\" | \"spender\">;\n signPermit: Pick<\n SignPermitFlowResult,\n \"tokenObject\" | \"spender\" | \"permitType\"\n >;\n allowanceToApprove?: bigint;\n permit2Allowance?: bigint;\n chainId: SupportedChainId;\n tradeMode: TradeMode;\n};\n\ntype EventsInput = {\n allowanceToSet?: bigint;\n};\n\nexport type ApproveOrPermitEvents = {\n onApproveTx: {\n request: ({ allowanceToSet }: EventsInput) => void;\n sent: ({\n allowanceToSet,\n txHash,\n }: EventsInput & {\n txHash: Hash;\n }) => void;\n confirmed: ({\n allowanceToSet,\n txHash,\n txReceipt,\n }: EventsInput & {\n txHash: Hash;\n txReceipt: TransactionReceipt;\n }) => void;\n failed: ({\n allowanceToSet,\n txHash,\n error,\n }: EventsInput & {\n txHash?: Hash;\n error: Error;\n }) => void;\n };\n onSignPermit: {\n request: ({ allowanceToSet }: EventsInput) => void;\n confirmed: ({\n allowanceToSet,\n permit,\n }: EventsInput & {\n permit: Hash;\n }) => void;\n failed: ({\n allowanceToSet,\n error,\n }: EventsInput & {\n error: Error;\n }) => void;\n };\n};\n\nexport function useApproveOrPermitEvents({\n approval,\n signPermit,\n allowanceToApprove,\n permit2Allowance,\n chainId,\n tradeMode,\n}: ApproveEventCallbacksInput) {\n const { onAllowToken } = useWidgetEvents();\n\n const onApproveTx: ApproveOrPermitEvents[\"onApproveTx\"] = {\n request: ({ allowanceToSet = allowanceToApprove }) => {\n if (approval.tokenObject && approval.spender && allowanceToSet) {\n onAllowToken?.({\n event: {\n name: \"AllowToken:request\",\n params: {\n token: approval.tokenObject,\n amountWei: allowanceToSet,\n spenderAddress: approval.spender,\n chainId,\n tradeMode,\n type: \"approve\",\n },\n },\n });\n }\n },\n sent: ({ allowanceToSet = allowanceToApprove, txHash }) => {\n if (approval.tokenObject && approval.spender && allowanceToSet) {\n onAllowToken?.({\n event: {\n name: \"AllowToken:sent\",\n params: {\n token: approval.tokenObject,\n amountWei: allowanceToSet,\n spenderAddress: approval.spender,\n chainId,\n tradeMode,\n type: \"approve\",\n txHash,\n },\n },\n });\n }\n },\n confirmed: ({ allowanceToSet = allowanceToApprove, txHash, txReceipt }) => {\n if (approval.tokenObject && approval.spender && allowanceToSet) {\n onAllowToken?.({\n event: {\n name: \"AllowToken:confirmed\",\n params: {\n token: approval.tokenObject,\n amountWei: allowanceToSet,\n spenderAddress: approval.spender,\n chainId,\n tradeMode,\n type: \"approve\",\n txHash,\n txReceipt,\n },\n },\n });\n }\n },\n failed: ({ allowanceToSet = allowanceToApprove, txHash, error }) => {\n if (approval.tokenObject && approval.spender && allowanceToSet) {\n onAllowToken?.({\n event: {\n name: \"AllowToken:failed\",\n params: {\n token: approval.tokenObject,\n amountWei: allowanceToSet,\n spenderAddress: approval.spender,\n chainId,\n tradeMode,\n type: \"approve\",\n txHash,\n error,\n },\n },\n });\n }\n },\n };\n\n const onSignPermit: ApproveOrPermitEvents[\"onSignPermit\"] = {\n request: (input) => {\n const allowanceToSet =\n input.allowanceToSet ??\n (signPermit.permitType === \"permit2TransferFrom\"\n ? permit2Allowance\n : allowanceToApprove);\n if (signPermit.tokenObject && signPermit.spender && allowanceToSet) {\n onAllowToken?.({\n event: {\n name: \"AllowToken:request\",\n params: {\n token: signPermit.tokenObject,\n amountWei: allowanceToSet,\n spenderAddress: signPermit.spender,\n chainId,\n tradeMode,\n type: \"permit\",\n permitType: signPermit.permitType,\n },\n },\n });\n }\n },\n confirmed: ({ permit, ...input }) => {\n const allowanceToSet =\n input.allowanceToSet ??\n (signPermit.permitType === \"permit2TransferFrom\"\n ? permit2Allowance\n : allowanceToApprove);\n if (signPermit.tokenObject && signPermit.spender && allowanceToSet) {\n onAllowToken?.({\n event: {\n name: \"AllowToken:confirmed\",\n params: {\n token: signPermit.tokenObject,\n amountWei: allowanceToSet,\n spenderAddress: signPermit.spender,\n chainId,\n tradeMode,\n type: \"permit\",\n permitType: signPermit.permitType,\n permit,\n },\n },\n });\n }\n },\n failed: ({ error, ...input }) => {\n const allowanceToSet =\n input.allowanceToSet ??\n (signPermit.permitType === \"permit2TransferFrom\"\n ? permit2Allowance\n : allowanceToApprove);\n if (signPermit.tokenObject && signPermit.spender && allowanceToSet) {\n onAllowToken?.({\n event: {\n name: \"AllowToken:failed\",\n params: {\n token: signPermit.tokenObject,\n amountWei: allowanceToSet,\n spenderAddress: signPermit.spender,\n chainId,\n tradeMode,\n type: \"permit\",\n permitType: signPermit.permitType,\n error,\n },\n },\n });\n }\n },\n };\n\n return {\n onApproveTx,\n onSignPermit,\n };\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBatchWrapAndApprove.js","names":["useBatchWithApproveTxs","TxParams","useSendBatchTx","useAwaitCalls","useEnsureCallsStatus","Address","SupportedChainId","LoggerInstance","useCanBatchTxs","CallsSentObject","ApprovalFlowResult","wrappedNativeCurrency","depositWETHCalldata","BatchTxStepResult","WaitForCallsStatusData","useWidgetEvents","TradeMode","CallsReceipt","RequiredApprovalInput","Pick","RequiredWrapInput","wrapAmount","BatchWrapAndApproveStepResult","approval","wrap","UseBatchWrapAndApproveInput","chainId","account","logger","tradeMode","BatchWrapAndApproveFunc","input","preWrapETH","onTxSent","txSent","signal","AbortSignal","Promise","UseBatchWrapAndApproveResult","wrapAndApproveBatchResult","canBatchTxs","batchWrapAndApprove","reset","useBatchWrapAndApprove","forCurrentChain","addTxWithApprovals","batchTxMut","onSuccess","log","onError","error","batchTxMined","id","data","lastCallsReceipt","receipts","length","callsId","txHash","transactionHash","receipt","isConfirmingCalls","isPending","isConfirmingCallsError","isError","isCallsSent","isSuccess","isCallsPending","isLoading","isCallsMined","isCallsAwaitingError","ensureCallsStatus","events","useWrapAndApproveBatchEvents","needToApprove","allowanceToSet","spender","token","txsParams","to","value","const","approveProps","undefined","calls","throwIfAborted","onBatchTx","request","sentCalls","sendCalls","sent","sendCallsPromise","sendCallsReceiptPromise","then","status","action","receiptPromise","transactionSpecificData","wrappedAmount","sendCallsResult","confirmed","callsReceipt","failed","Error","ShouldApproveOrBatchInput","ShouldApproveOrBatchResult","shouldDoApprovalTx","shouldWrapAndApproveBatch","shouldApproveOrBatchWrapAndApprove","tokenNeedsApproval","needsApproval","WrapAndApproveBatchEventsInput","WrapAndApproveBatchEventsParams","WrapAndApproveBatchEvents","params","t0","$","_c","onAllowToken","t1","baseParams","tokenObject","amountWei","spenderAddress","type","getBaseParams","t2","t3","approval_0","baseParams_0","event","name","batched","t4","wrapAmount_0","approval_1","baseParams_1","t5","wrapAmount_1","callsId_0","approval_2","baseParams_2","t6","wrapAmount_2","callsId_1","approval_3","baseParams_3"],"sources":["../../../../../src/hooks/swap/tradeFlow/common/useBatchWrapAndApprove.ts"],"sourcesContent":["import {\n useBatchWithApproveTxs,\n type TxParams,\n} from \"@/hooks/batch/useBatchWithApproveTxs\";\nimport { useSendBatchTx } from \"@/hooks/batch/useSendBatchTx\";\nimport {\n useAwaitCalls,\n useEnsureCallsStatus,\n} from \"@/hooks/batch/useAwaitCalls\";\nimport { type Address } from \"viem\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport type { LoggerInstance } from \"@/lib/utils/logger\";\nimport { useCanBatchTxs } from \"@/hooks/batch/useCanBatchTxs\";\nimport type { CallsSentObject } from \"@/lib/utils/transactionHandlers\";\nimport type { ApprovalFlowResult } from \"./types\";\nimport { wrappedNativeCurrency } from \"@/lib/constants/weth\";\nimport { depositWETHCalldata } from \"./utils\";\nimport type { BatchTxStepResult } from \"./types\";\nimport type { WaitForCallsStatusData } from \"wagmi/query\";\nimport { useWidgetEvents } from \"@/core/state/widgetEventsAtom\";\nimport type { TradeMode } from \"@/core/state/tradeModeAtom\";\nimport type { CallsReceipt } from \"@/hooks/batch/useAwaitCalls\";\n\ntype RequiredApprovalInput = Pick<\n ApprovalFlowResult,\n \"chainId\" | \"spender\" | \"allowanceToSet\" | \"token\" | \"tokenObject\"\n>;\ntype RequiredWrapInput = {\n wrapAmount: bigint;\n};\n\nexport type BatchWrapAndApproveStepResult = BatchTxStepResult & {\n approval: RequiredApprovalInput;\n wrap: RequiredWrapInput;\n};\n\ntype UseBatchWrapAndApproveInput = {\n chainId: SupportedChainId;\n account?: Address;\n logger: LoggerInstance;\n tradeMode: TradeMode;\n};\n\ntype BatchWrapAndApproveFunc = (input: {\n approval: RequiredApprovalInput;\n preWrapETH: RequiredWrapInput;\n onTxSent?: (txSent: CallsSentObject) => void;\n signal?: AbortSignal;\n}) => Promise<WaitForCallsStatusData>;\n\ntype UseBatchWrapAndApproveResult = {\n wrapAndApproveBatchResult: BatchTxStepResult;\n canBatchTxs?: boolean;\n batchWrapAndApprove: BatchWrapAndApproveFunc;\n reset: () => void;\n};\n\nexport function useBatchWrapAndApprove({\n chainId,\n account,\n logger,\n tradeMode,\n}: UseBatchWrapAndApproveInput): UseBatchWrapAndApproveResult {\n const { forCurrentChain: canBatchTxs } = useCanBatchTxs();\n\n /* 1. submit Batch tx (Wrap ETH + Approve WETH) */\n\n const { addTxWithApprovals } = useBatchWithApproveTxs();\n\n const batchTxMut = useSendBatchTx({\n onSuccess: () => {\n logger.log(\"Batch tx success\");\n },\n onError: (error) => {\n logger.error(\"Batch tx error\", error);\n },\n });\n\n /* 2. await Batch tx */\n const batchTxMined = useAwaitCalls({\n id: batchTxMut.data?.id,\n });\n\n // for a successful SendCalls execution there will either be one receipt only,\n // or several receipts with the last one for the last tx from the batch\n const lastCallsReceipt =\n batchTxMined.data?.receipts?.[batchTxMined.data.receipts.length - 1];\n\n const wrapAndApproveBatchResult: BatchTxStepResult = {\n canBatchTxs,\n callsId: batchTxMut.data?.id,\n txHash: lastCallsReceipt?.transactionHash,\n receipt: lastCallsReceipt,\n /* calls sending */\n isConfirmingCalls: batchTxMut.isPending,\n isConfirmingCallsError: batchTxMut.isError,\n isCallsSent: batchTxMut.isSuccess,\n /* calls awaiting */\n isCallsPending: batchTxMined.isLoading,\n isCallsMined: batchTxMined.isSuccess,\n isCallsAwaitingError: batchTxMined.isError,\n /* combined */\n isPending: batchTxMut.isPending || batchTxMined.isLoading,\n isSuccess: batchTxMined.isSuccess,\n isError: batchTxMut.isError || batchTxMined.isError,\n error: batchTxMut.error || batchTxMined.error,\n };\n\n const ensureCallsStatus = useEnsureCallsStatus();\n\n const events = useWrapAndApproveBatchEvents({\n chainId,\n tradeMode,\n });\n\n const batchWrapAndApprove: BatchWrapAndApproveFunc = async ({\n approval,\n preWrapETH,\n signal,\n onTxSent,\n }) => {\n const needToApprove = !!(\n approval.allowanceToSet &&\n approval.allowanceToSet > 0n &&\n approval.spender &&\n approval.token\n );\n\n // 3. add WETH.deposit call,\n // we'll have Approve + Deposit WETH batch tx;\n // the order doesn't really matter\n\n // avoid using approval.allowanceToSet for deposit.value as it may represent Unlimited Approval\n const txsParams: [TxParams] = [\n {\n to: wrappedNativeCurrency[chainId],\n account,\n data: depositWETHCalldata,\n value: preWrapETH.wrapAmount,\n chainId,\n },\n ] as const;\n\n const approveProps = needToApprove\n ? [\n {\n spender: approval.spender,\n allowanceToSet: approval.allowanceToSet,\n token: approval.token,\n chainId: approval.chainId,\n },\n ]\n : undefined;\n\n // 4. construct a sendCalls batch with Approve WETH + Deposit ETH call\n const { calls } = await addTxWithApprovals({\n txsParams,\n approveProps,\n });\n\n // if aborted by this point, throw an error\n signal?.throwIfAborted();\n\n let callsId: string | undefined;\n\n try {\n // 5. send the Wrap ETH + Approve WETH batch tx request to the wallet\n events.onBatchTx.request({\n approval,\n wrapAmount: preWrapETH.wrapAmount,\n });\n\n const sentCalls = await batchTxMut.sendCalls({\n txsParams: calls,\n });\n\n events.onBatchTx.sent({\n approval,\n wrapAmount: preWrapETH.wrapAmount,\n callsId: sentCalls.id,\n });\n\n callsId = sentCalls.id;\n\n const sendCallsPromise = ensureCallsStatus({\n id: sentCalls.id,\n });\n\n const sendCallsReceiptPromise = sendCallsPromise.then(\n (status) => status.receipts?.[status.receipts.length - 1]\n );\n\n if (onTxSent) {\n if (\n needToApprove &&\n approval.allowanceToSet &&\n approval.spender &&\n approval.token\n ) {\n onTxSent({\n chainId,\n action: \"wrapAndApproveBatch\",\n callsId: sentCalls.id,\n receiptPromise: sendCallsReceiptPromise,\n transactionSpecificData: {\n action: \"wrapAndApproveBatch\",\n wrappedAmount: preWrapETH.wrapAmount,\n approval: {\n allowanceToSet: approval.allowanceToSet,\n spender: approval.spender,\n token: approval.token,\n },\n },\n });\n } else {\n // this won't happen because of conditions in submitOtcOrder,\n // just in case, to cover all branches and conditions\n onTxSent({\n chainId,\n action: \"wrapETH\",\n callsId: sentCalls.id,\n receiptPromise: sendCallsReceiptPromise,\n transactionSpecificData: {\n action: \"wrapETH\",\n wrappedAmount: preWrapETH.wrapAmount,\n },\n });\n }\n }\n\n // 6. wait for that batch tx to be mined;\n const sendCallsResult = await sendCallsPromise;\n\n const lastCallsReceipt =\n sendCallsResult?.receipts?.[sendCallsResult.receipts.length - 1];\n\n if (lastCallsReceipt) {\n events.onBatchTx.confirmed({\n approval,\n wrapAmount: preWrapETH.wrapAmount,\n callsId: sentCalls.id,\n callsReceipt: lastCallsReceipt,\n });\n }\n\n logger.log(\n \"Wrap ETH and Approve WETH batch tx ~ receipt:\",\n lastCallsReceipt\n );\n\n return sendCallsResult;\n } catch (error) {\n logger.error(\"Wrap ETH and Approve WETH Batch tx error\", error);\n events.onBatchTx.failed({\n approval,\n wrapAmount: preWrapETH.wrapAmount,\n callsId,\n error: error as Error,\n });\n throw error;\n }\n };\n\n const reset = () => {\n batchTxMut.reset();\n };\n\n return {\n wrapAndApproveBatchResult,\n canBatchTxs,\n batchWrapAndApprove,\n reset,\n };\n}\n\ntype ShouldApproveOrBatchInput = {\n approval: Pick<ApprovalFlowResult, \"needsApproval\" | \"allowanceToSet\">;\n preWrapETH?: boolean;\n canBatchTxs?: boolean;\n};\n\ntype ShouldApproveOrBatchResult = {\n shouldDoApprovalTx: boolean;\n shouldWrapAndApproveBatch: boolean;\n};\n\nexport function shouldApproveOrBatchWrapAndApprove({\n approval,\n preWrapETH,\n canBatchTxs,\n}: ShouldApproveOrBatchInput): ShouldApproveOrBatchResult {\n const allowanceToSet = approval.allowanceToSet ?? 0n;\n // need to Approve Token\n const tokenNeedsApproval = approval.needsApproval && allowanceToSet > 0n;\n\n // need to do 2 txs and can batch them\n const shouldWrapAndApproveBatch = !!(\n canBatchTxs && // can batch txs\n preWrapETH && // needs to wrap ETH\n tokenNeedsApproval // needs to approve WETH\n );\n\n // can't or don't need to batch, but still need to approve\n const shouldDoApprovalTx = !shouldWrapAndApproveBatch && tokenNeedsApproval;\n\n return {\n shouldDoApprovalTx,\n shouldWrapAndApproveBatch,\n };\n}\n\ntype WrapAndApproveBatchEventsInput = {\n chainId: SupportedChainId;\n tradeMode: TradeMode;\n};\n\ntype WrapAndApproveBatchEventsParams = {\n wrapAmount: bigint;\n approval: RequiredApprovalInput;\n};\n\ntype WrapAndApproveBatchEvents = {\n onBatchTx: {\n request: (params: WrapAndApproveBatchEventsParams) => void;\n sent: (\n params: WrapAndApproveBatchEventsParams & { callsId: string }\n ) => void;\n confirmed: (\n params: WrapAndApproveBatchEventsParams & {\n callsId: string;\n callsReceipt: CallsReceipt;\n }\n ) => void;\n failed: (\n params: WrapAndApproveBatchEventsParams & {\n callsId?: string;\n error: Error;\n }\n ) => void;\n };\n};\n\nfunction useWrapAndApproveBatchEvents({\n chainId,\n tradeMode,\n}: WrapAndApproveBatchEventsInput): WrapAndApproveBatchEvents {\n const { onAllowToken } = useWidgetEvents();\n\n const getBaseParams = (approval: RequiredApprovalInput) => {\n const baseParams =\n approval.allowanceToSet && approval.spender && approval.tokenObject\n ? ({\n token: approval.tokenObject,\n amountWei: approval.allowanceToSet,\n spenderAddress: approval.spender,\n chainId,\n tradeMode,\n type: \"approve\",\n } as const)\n : null;\n\n return baseParams;\n };\n\n const onBatchTx: WrapAndApproveBatchEvents[\"onBatchTx\"] = {\n request: ({ wrapAmount, approval }) => {\n const baseParams = getBaseParams(approval);\n if (!baseParams || !onAllowToken) return;\n\n onAllowToken({\n event: {\n name: \"AllowToken:request\",\n params: {\n ...baseParams,\n preWrapETH: {\n wrapAmount,\n batched: true,\n },\n },\n },\n });\n },\n sent: ({ wrapAmount, callsId, approval }) => {\n const baseParams = getBaseParams(approval);\n if (!baseParams || !onAllowToken) return;\n onAllowToken({\n event: {\n name: \"AllowToken:sent\",\n params: {\n ...baseParams,\n callsId,\n preWrapETH: {\n wrapAmount,\n batched: true,\n },\n },\n },\n });\n },\n confirmed: ({ wrapAmount, callsId, callsReceipt, approval }) => {\n const baseParams = getBaseParams(approval);\n if (!baseParams || !onAllowToken) return;\n\n onAllowToken({\n event: {\n name: \"AllowToken:confirmed\",\n params: {\n ...baseParams,\n callsId,\n callsReceipt,\n preWrapETH: {\n wrapAmount,\n batched: true,\n },\n },\n },\n });\n },\n failed: ({ wrapAmount, callsId, error, approval }) => {\n const baseParams = getBaseParams(approval);\n if (!baseParams || !onAllowToken) return;\n\n onAllowToken({\n event: {\n name: \"AllowToken:failed\",\n params: {\n ...baseParams,\n callsId,\n preWrapETH: {\n wrapAmount,\n batched: true,\n },\n error: error as Error,\n },\n },\n });\n },\n };\n\n return {\n onBatchTx,\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useBatchWrapAndApprove.js","names":["useBatchWithApproveTxs","TxParams","useSendBatchTx","useAwaitCalls","useEnsureCallsStatus","Address","SupportedChainId","LoggerInstance","useCanBatchTxs","CallsSentObject","ApprovalFlowResult","wrappedNativeCurrency","depositWETHCalldata","BatchTxStepResult","WaitForCallsStatusData","useWidgetEvents","TradeMode","CallsReceipt","RequiredApprovalInput","Pick","RequiredWrapInput","wrapAmount","BatchWrapAndApproveStepResult","approval","wrap","UseBatchWrapAndApproveInput","chainId","account","logger","tradeMode","BatchWrapAndApproveFunc","input","preWrapETH","onTxSent","txSent","signal","AbortSignal","Promise","UseBatchWrapAndApproveResult","wrapAndApproveBatchResult","canBatchTxs","batchWrapAndApprove","reset","useBatchWrapAndApprove","forCurrentChain","addTxWithApprovals","batchTxMut","onSuccess","log","onError","error","batchTxMined","id","data","lastCallsReceipt","receipts","length","callsId","txHash","transactionHash","receipt","isConfirmingCalls","isPending","isConfirmingCallsError","isError","isCallsSent","isSuccess","isCallsPending","isLoading","isCallsMined","isCallsAwaitingError","ensureCallsStatus","events","useWrapAndApproveBatchEvents","needToApprove","allowanceToSet","spender","token","txsParams","to","value","const","approveProps","undefined","calls","throwIfAborted","onBatchTx","request","sentCalls","sendCalls","sent","sendCallsPromise","sendCallsReceiptPromise","then","status","action","receiptPromise","transactionSpecificData","wrappedAmount","sendCallsResult","confirmed","callsReceipt","failed","Error","ShouldApproveOrBatchInput","ShouldApproveOrBatchResult","shouldDoApprovalTx","shouldWrapAndApproveBatch","shouldApproveOrBatchWrapAndApprove","tokenNeedsApproval","needsApproval","WrapAndApproveBatchEventsInput","WrapAndApproveBatchEventsParams","WrapAndApproveBatchEvents","params","t0","$","_c","onAllowToken","t1","baseParams","tokenObject","amountWei","spenderAddress","type","getBaseParams","t2","t3","approval_0","baseParams_0","event","name","batched","t4","wrapAmount_0","approval_1","baseParams_1","t5","wrapAmount_1","callsId_0","approval_2","baseParams_2","t6","wrapAmount_2","callsId_1","approval_3","baseParams_3"],"sources":["../../../../../src/hooks/swap/tradeFlow/common/useBatchWrapAndApprove.ts"],"sourcesContent":["import {\n useBatchWithApproveTxs,\n type TxParams,\n} from \"@/hooks/batch/useBatchWithApproveTxs\";\nimport { useSendBatchTx } from \"@/hooks/batch/useSendBatchTx\";\nimport {\n useAwaitCalls,\n useEnsureCallsStatus,\n} from \"@/hooks/batch/useAwaitCalls\";\nimport { type Address } from \"viem\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport type { LoggerInstance } from \"@/lib/utils/logger\";\nimport { useCanBatchTxs } from \"@/hooks/batch/useCanBatchTxs\";\nimport type { CallsSentObject } from \"@/lib/utils/transactionHandlers\";\nimport type { ApprovalFlowResult } from \"./types\";\nimport { wrappedNativeCurrency } from \"@/lib/constants/weth\";\nimport { depositWETHCalldata } from \"./utils\";\nimport type { BatchTxStepResult } from \"./types\";\nimport type { WaitForCallsStatusData } from \"wagmi/query\";\nimport { useWidgetEvents } from \"@/core/state/widgetEventsAtom\";\nimport type { TradeMode } from \"@/core/state/tradeModeAtom\";\nimport type { CallsReceipt } from \"@/hooks/batch/useAwaitCalls\";\n\ntype RequiredApprovalInput = Pick<\n ApprovalFlowResult,\n \"chainId\" | \"spender\" | \"allowanceToSet\" | \"token\" | \"tokenObject\"\n>;\ntype RequiredWrapInput = {\n wrapAmount: bigint;\n};\n\nexport type BatchWrapAndApproveStepResult = BatchTxStepResult & {\n approval: RequiredApprovalInput;\n wrap: RequiredWrapInput;\n};\n\ntype UseBatchWrapAndApproveInput = {\n chainId: SupportedChainId;\n account?: Address;\n logger: LoggerInstance;\n tradeMode: TradeMode;\n};\n\ntype BatchWrapAndApproveFunc = (input: {\n approval: RequiredApprovalInput;\n preWrapETH: RequiredWrapInput;\n onTxSent?: (txSent: CallsSentObject) => void;\n signal?: AbortSignal;\n}) => Promise<WaitForCallsStatusData>;\n\ntype UseBatchWrapAndApproveResult = {\n wrapAndApproveBatchResult: BatchTxStepResult;\n canBatchTxs?: boolean;\n batchWrapAndApprove: BatchWrapAndApproveFunc;\n reset: () => void;\n};\n\nexport function useBatchWrapAndApprove({\n chainId,\n account,\n logger,\n tradeMode,\n}: UseBatchWrapAndApproveInput): UseBatchWrapAndApproveResult {\n const { forCurrentChain: canBatchTxs } = useCanBatchTxs();\n\n /* 1. submit Batch tx (Wrap ETH + Approve WETH) */\n\n const { addTxWithApprovals } = useBatchWithApproveTxs();\n\n const batchTxMut = useSendBatchTx({\n onSuccess: () => {\n logger.log(\"Batch tx success\");\n },\n onError: (error) => {\n logger.error(\"Batch tx error\", error);\n },\n });\n\n /* 2. await Batch tx */\n const batchTxMined = useAwaitCalls({\n id: batchTxMut.data?.id,\n });\n\n // for a successful SendCalls execution there will either be one receipt only,\n // or several receipts with the last one for the last tx from the batch\n const lastCallsReceipt =\n batchTxMined.data?.receipts?.[batchTxMined.data.receipts.length - 1];\n\n const wrapAndApproveBatchResult: BatchTxStepResult = {\n canBatchTxs,\n callsId: batchTxMut.data?.id,\n txHash: lastCallsReceipt?.transactionHash,\n receipt: lastCallsReceipt,\n /* calls sending */\n isConfirmingCalls: batchTxMut.isPending,\n isConfirmingCallsError: batchTxMut.isError,\n isCallsSent: batchTxMut.isSuccess,\n /* calls awaiting */\n isCallsPending: batchTxMined.isLoading,\n isCallsMined: batchTxMined.isSuccess,\n isCallsAwaitingError: batchTxMined.isError,\n /* combined */\n isPending: batchTxMut.isPending || batchTxMined.isLoading,\n isSuccess: batchTxMined.isSuccess,\n isError: batchTxMut.isError || batchTxMined.isError,\n error: batchTxMut.error || batchTxMined.error,\n };\n\n const ensureCallsStatus = useEnsureCallsStatus();\n\n const events = useWrapAndApproveBatchEvents({\n chainId,\n tradeMode,\n });\n\n const batchWrapAndApprove: BatchWrapAndApproveFunc = async ({\n approval,\n preWrapETH,\n signal,\n onTxSent,\n }) => {\n const needToApprove = !!(\n approval.allowanceToSet &&\n approval.allowanceToSet > 0n &&\n approval.spender &&\n approval.token\n );\n\n // 3. add WETH.deposit call,\n // we'll have Approve + Deposit WETH batch tx;\n // the order doesn't really matter\n\n // avoid using approval.allowanceToSet for deposit.value as it may represent Unlimited Approval\n const txsParams: [TxParams] = [\n {\n to: wrappedNativeCurrency[chainId],\n account,\n data: depositWETHCalldata,\n value: preWrapETH.wrapAmount,\n chainId,\n },\n ] as const;\n\n const approveProps = needToApprove\n ? [\n {\n spender: approval.spender,\n allowanceToSet: approval.allowanceToSet,\n token: approval.token,\n chainId: approval.chainId,\n },\n ]\n : undefined;\n\n // 4. construct a sendCalls batch with Approve WETH + Deposit ETH call\n const { calls } = await addTxWithApprovals({\n txsParams,\n approveProps,\n });\n\n // if aborted by this point, throw an error\n signal?.throwIfAborted();\n\n let callsId: string | undefined;\n\n try {\n // 5. send the Wrap ETH + Approve WETH batch tx request to the wallet\n events.onBatchTx.request({\n approval,\n wrapAmount: preWrapETH.wrapAmount,\n });\n\n const sentCalls = await batchTxMut.sendCalls({\n txsParams: calls,\n });\n\n events.onBatchTx.sent({\n approval,\n wrapAmount: preWrapETH.wrapAmount,\n callsId: sentCalls.id,\n });\n\n callsId = sentCalls.id;\n\n const sendCallsPromise = ensureCallsStatus({\n id: sentCalls.id,\n });\n\n const sendCallsReceiptPromise = sendCallsPromise.then(\n (status) => status.receipts?.[status.receipts.length - 1]\n );\n\n if (onTxSent) {\n if (\n needToApprove &&\n approval.allowanceToSet &&\n approval.spender &&\n approval.token\n ) {\n onTxSent({\n chainId,\n action: \"wrapAndApproveBatch\",\n callsId: sentCalls.id,\n receiptPromise: sendCallsReceiptPromise,\n transactionSpecificData: {\n action: \"wrapAndApproveBatch\",\n wrappedAmount: preWrapETH.wrapAmount,\n approval: {\n allowanceToSet: approval.allowanceToSet,\n spender: approval.spender,\n token: approval.token,\n },\n },\n });\n } else {\n // this won't happen because of conditions in submitOtcOrder,\n // just in case, to cover all branches and conditions\n onTxSent({\n chainId,\n action: \"wrapETH\",\n callsId: sentCalls.id,\n receiptPromise: sendCallsReceiptPromise,\n transactionSpecificData: {\n action: \"wrapETH\",\n wrappedAmount: preWrapETH.wrapAmount,\n },\n });\n }\n }\n\n // 6. wait for that batch tx to be mined;\n const sendCallsResult = await sendCallsPromise;\n\n const lastCallsReceipt =\n sendCallsResult?.receipts?.[sendCallsResult.receipts.length - 1];\n\n if (lastCallsReceipt) {\n events.onBatchTx.confirmed({\n approval,\n wrapAmount: preWrapETH.wrapAmount,\n callsId: sentCalls.id,\n callsReceipt: lastCallsReceipt,\n });\n }\n\n logger.log(\n \"Wrap ETH and Approve WETH batch tx ~ receipt:\",\n lastCallsReceipt\n );\n\n return sendCallsResult;\n } catch (error) {\n logger.error(\"Wrap ETH and Approve WETH Batch tx error\", error);\n events.onBatchTx.failed({\n approval,\n wrapAmount: preWrapETH.wrapAmount,\n callsId,\n error: error as Error,\n });\n throw error;\n }\n };\n\n const reset = () => {\n batchTxMut.reset();\n };\n\n return {\n wrapAndApproveBatchResult,\n canBatchTxs,\n batchWrapAndApprove,\n reset,\n };\n}\n\ntype ShouldApproveOrBatchInput = {\n approval: Pick<ApprovalFlowResult, \"needsApproval\" | \"allowanceToSet\">;\n preWrapETH?: boolean;\n canBatchTxs?: boolean;\n};\n\ntype ShouldApproveOrBatchResult = {\n shouldDoApprovalTx: boolean;\n shouldWrapAndApproveBatch: boolean;\n};\n\nexport function shouldApproveOrBatchWrapAndApprove({\n approval,\n preWrapETH,\n canBatchTxs,\n}: ShouldApproveOrBatchInput): ShouldApproveOrBatchResult {\n const allowanceToSet = approval.allowanceToSet ?? 0n;\n // need to Approve Token\n const tokenNeedsApproval = approval.needsApproval && allowanceToSet > 0n;\n\n // need to do 2 txs and can batch them\n const shouldWrapAndApproveBatch = !!(\n canBatchTxs && // can batch txs\n preWrapETH && // needs to wrap ETH\n tokenNeedsApproval // needs to approve WETH\n );\n\n // can't or don't need to batch, but still need to approve\n const shouldDoApprovalTx = !shouldWrapAndApproveBatch && tokenNeedsApproval;\n\n return {\n shouldDoApprovalTx,\n shouldWrapAndApproveBatch,\n };\n}\n\ntype WrapAndApproveBatchEventsInput = {\n chainId: SupportedChainId;\n tradeMode: TradeMode;\n};\n\ntype WrapAndApproveBatchEventsParams = {\n wrapAmount: bigint;\n approval: RequiredApprovalInput;\n};\n\ntype WrapAndApproveBatchEvents = {\n onBatchTx: {\n request: (params: WrapAndApproveBatchEventsParams) => void;\n sent: (\n params: WrapAndApproveBatchEventsParams & { callsId: string }\n ) => void;\n confirmed: (\n params: WrapAndApproveBatchEventsParams & {\n callsId: string;\n callsReceipt: CallsReceipt;\n }\n ) => void;\n failed: (\n params: WrapAndApproveBatchEventsParams & {\n callsId?: string;\n error: Error;\n }\n ) => void;\n };\n};\n\nfunction useWrapAndApproveBatchEvents({\n chainId,\n tradeMode,\n}: WrapAndApproveBatchEventsInput): WrapAndApproveBatchEvents {\n const { onAllowToken } = useWidgetEvents();\n\n const getBaseParams = (approval: RequiredApprovalInput) => {\n const baseParams =\n approval.allowanceToSet && approval.spender && approval.tokenObject\n ? ({\n token: approval.tokenObject,\n amountWei: approval.allowanceToSet,\n spenderAddress: approval.spender,\n chainId,\n tradeMode,\n type: \"approve\",\n } as const)\n : null;\n\n return baseParams;\n };\n\n const onBatchTx: WrapAndApproveBatchEvents[\"onBatchTx\"] = {\n request: ({ wrapAmount, approval }) => {\n const baseParams = getBaseParams(approval);\n if (!baseParams || !onAllowToken) return;\n\n onAllowToken({\n event: {\n name: \"AllowToken:request\",\n params: {\n ...baseParams,\n preWrapETH: {\n wrapAmount,\n batched: true,\n },\n },\n },\n });\n },\n sent: ({ wrapAmount, callsId, approval }) => {\n const baseParams = getBaseParams(approval);\n if (!baseParams || !onAllowToken) return;\n onAllowToken({\n event: {\n name: \"AllowToken:sent\",\n params: {\n ...baseParams,\n callsId,\n preWrapETH: {\n wrapAmount,\n batched: true,\n },\n },\n },\n });\n },\n confirmed: ({ wrapAmount, callsId, callsReceipt, approval }) => {\n const baseParams = getBaseParams(approval);\n if (!baseParams || !onAllowToken) return;\n\n onAllowToken({\n event: {\n name: \"AllowToken:confirmed\",\n params: {\n ...baseParams,\n callsId,\n callsReceipt,\n preWrapETH: {\n wrapAmount,\n batched: true,\n },\n },\n },\n });\n },\n failed: ({ wrapAmount, callsId, error, approval }) => {\n const baseParams = getBaseParams(approval);\n if (!baseParams || !onAllowToken) return;\n\n onAllowToken({\n event: {\n name: \"AllowToken:failed\",\n params: {\n ...baseParams,\n callsId,\n preWrapETH: {\n wrapAmount,\n batched: true,\n },\n error: error as Error,\n },\n },\n });\n },\n };\n\n return {\n onBatchTx,\n };\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useConstructGasParams.js","names":["useGasPreset","ConsolidatedGasPrices","constructGasParamsQueryKey","gweiToWei","useEIP1559Enabled","useQueryClient","useChainId","GasParams","gasPrice","maxFeePerGas","maxPriorityFeePerGas","ViemGasParams","ConstructGasParams","ConstructViemGasParams","useConstructGasParams","$","_c","gasPreset","enabled","eip1559Enabled","chainId","queryClient","t0","gasPriceGwei","getQueryData","eip1559Prices","legacyPrices","constructGasParams","t1","gasParams","BigInt","constructViemGasParams","t2"],"sources":["../../../../../src/hooks/swap/tradeFlow/common/useConstructGasParams.ts"],"sourcesContent":["import { useGasPreset } from \"@/components/widget/TradeParameters/state/gasPresetParamAtom\";\nimport type { ConsolidatedGasPrices } from \"@/hooks/gas/types\";\nimport { constructGasParamsQueryKey } from \"@/hooks/gas/useGasPrices\";\nimport { gweiToWei } from \"@/hooks/gas/utils\";\nimport { useEIP1559Enabled } from \"@/hooks/useEIP1559Enabled\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport { useChainId } from \"wagmi\";\n\ntype GasParams =\n | { gasPrice: string }\n | { maxFeePerGas: string; maxPriorityFeePerGas: string };\n\ntype ViemGasParams =\n | { gasPrice: bigint }\n | { maxFeePerGas: bigint; maxPriorityFeePerGas: bigint };\n\ntype ConstructGasParams = () => GasParams | undefined;\ntype ConstructViemGasParams = () => ViemGasParams | undefined;\n\nexport function useConstructGasParams(): {\n constructGasParams: ConstructGasParams;\n constructViemGasParams: ConstructViemGasParams;\n} {\n const gasPreset = useGasPreset();\n const { enabled: eip1559Enabled } = useEIP1559Enabled();\n const chainId = useChainId();\n const queryClient = useQueryClient();\n\n const constructGasParams: ConstructGasParams = () => {\n const gasPriceGwei = queryClient.getQueryData<ConsolidatedGasPrices>(\n constructGasParamsQueryKey(chainId, eip1559Enabled)\n );\n\n if (!gasPriceGwei) return;\n\n if (eip1559Enabled && gasPriceGwei.eip1559Prices) {\n const eip1559Prices = gasPriceGwei.eip1559Prices[gasPreset];\n\n return {\n maxFeePerGas: gweiToWei(eip1559Prices.maxFeePerGas),\n maxPriorityFeePerGas: gweiToWei(eip1559Prices.maxPriorityFeePerGas),\n };\n }\n\n return {\n gasPrice: gweiToWei(gasPriceGwei.legacyPrices[gasPreset]),\n };\n };\n\n // exclusively wrapped gas params in BigInt for viem\n const constructViemGasParams: ConstructViemGasParams = () => {\n const gasParams = constructGasParams();\n\n if (!gasParams) return;\n\n if (\"maxFeePerGas\" in gasParams) {\n return {\n maxFeePerGas: BigInt(gasParams.maxFeePerGas),\n maxPriorityFeePerGas: BigInt(gasParams.maxPriorityFeePerGas),\n };\n }\n\n return {\n gasPrice: BigInt(gasParams.gasPrice),\n };\n };\n\n return { constructGasParams, constructViemGasParams };\n}\n"],"mappings":";;;;;;;;AAmBA,SAAOc,IAAA;CAAA,IAAAC,IAAAC,EAAA,GAAA,EAILC,IAAkBjB,GAAc,EAChC,EAAAkB,SAAAC,MAAoCf,GAAmB,EACvDgB,IAAgBd,GAAY,EAC5Be,IAAoBhB,GAAgB,EAACiB;
|
|
1
|
+
{"version":3,"file":"useConstructGasParams.js","names":["useGasPreset","ConsolidatedGasPrices","constructGasParamsQueryKey","gweiToWei","useEIP1559Enabled","useQueryClient","useChainId","GasParams","gasPrice","maxFeePerGas","maxPriorityFeePerGas","ViemGasParams","ConstructGasParams","ConstructViemGasParams","useConstructGasParams","$","_c","gasPreset","enabled","eip1559Enabled","chainId","queryClient","t0","gasPriceGwei","getQueryData","eip1559Prices","legacyPrices","constructGasParams","t1","gasParams","BigInt","constructViemGasParams","t2"],"sources":["../../../../../src/hooks/swap/tradeFlow/common/useConstructGasParams.ts"],"sourcesContent":["import { useGasPreset } from \"@/components/widget/TradeParameters/state/gasPresetParamAtom\";\nimport type { ConsolidatedGasPrices } from \"@/hooks/gas/types\";\nimport { constructGasParamsQueryKey } from \"@/hooks/gas/useGasPrices\";\nimport { gweiToWei } from \"@/hooks/gas/utils\";\nimport { useEIP1559Enabled } from \"@/hooks/useEIP1559Enabled\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport { useChainId } from \"wagmi\";\n\ntype GasParams =\n | { gasPrice: string }\n | { maxFeePerGas: string; maxPriorityFeePerGas: string };\n\ntype ViemGasParams =\n | { gasPrice: bigint }\n | { maxFeePerGas: bigint; maxPriorityFeePerGas: bigint };\n\ntype ConstructGasParams = () => GasParams | undefined;\ntype ConstructViemGasParams = () => ViemGasParams | undefined;\n\nexport function useConstructGasParams(): {\n constructGasParams: ConstructGasParams;\n constructViemGasParams: ConstructViemGasParams;\n} {\n const gasPreset = useGasPreset();\n const { enabled: eip1559Enabled } = useEIP1559Enabled();\n const chainId = useChainId();\n const queryClient = useQueryClient();\n\n const constructGasParams: ConstructGasParams = () => {\n const gasPriceGwei = queryClient.getQueryData<ConsolidatedGasPrices>(\n constructGasParamsQueryKey(chainId, eip1559Enabled)\n );\n\n if (!gasPriceGwei) return;\n\n if (eip1559Enabled && gasPriceGwei.eip1559Prices) {\n const eip1559Prices = gasPriceGwei.eip1559Prices[gasPreset];\n\n return {\n maxFeePerGas: gweiToWei(eip1559Prices.maxFeePerGas),\n maxPriorityFeePerGas: gweiToWei(eip1559Prices.maxPriorityFeePerGas),\n };\n }\n\n return {\n gasPrice: gweiToWei(gasPriceGwei.legacyPrices[gasPreset]),\n };\n };\n\n // exclusively wrapped gas params in BigInt for viem\n const constructViemGasParams: ConstructViemGasParams = () => {\n const gasParams = constructGasParams();\n\n if (!gasParams) return;\n\n if (\"maxFeePerGas\" in gasParams) {\n return {\n maxFeePerGas: BigInt(gasParams.maxFeePerGas),\n maxPriorityFeePerGas: BigInt(gasParams.maxPriorityFeePerGas),\n };\n }\n\n return {\n gasPrice: BigInt(gasParams.gasPrice),\n };\n };\n\n return { constructGasParams, constructViemGasParams };\n}\n"],"mappings":";;;;;;;;AAmBA,SAAOc,IAAA;CAAA,IAAAC,IAAAC,EAAA,GAAA,EAILC,IAAkBjB,GAAc,EAChC,EAAAkB,SAAAC,MAAoCf,GAAmB,EACvDgB,IAAgBd,GAAY,EAC5Be,IAAoBhB,GAAgB,EAACiB;CAAA,AAAAP,EAAA,OAAAK,KAAAL,EAAA,OAAAI,KAAAJ,EAAA,OAAAE,KAAAF,EAAA,OAAAM,KAEUC,UAAA;EAC7C,IAAAC,IAAqBF,EAAWG,aAC9BtB,EAA2BkB,GAASD,EACtC,CAAC;EAEII,OAEL;OAAIJ,KAAkBI,EAAYE,eAAc;IAC9C,IAAAA,IAAsBF,EAAYE,cAAeR;IAAW,OAErD;KAAAR,cACSN,EAAUsB,EAAahB,aAAc;KAAAC,sBAC7BP,EAAUsB,EAAaf,qBAAqB;KACnE;;GACF,OAEM,EAAAF,UACKL,EAAUoB,EAAYG,aAAcT,GAAU,EACzD;;IACFF,EAAA,KAAAK,GAAAL,EAAA,KAAAI,GAAAJ,EAAA,KAAAE,GAAAF,EAAA,KAAAM,GAAAN,EAAA,KAAAO,KAAAA,IAAAP,EAAA;CAnBD,IAAAY,IAA+CL,GAmB7CM;CAAA,AAAAb,EAAA,OAAAY,IAkBDC,IAAAb,EAAA,MAfsDa,UAAA;EACrD,IAAAC,IAAkBF,GAAoB;EAEjCE,OAOJ,OALG,kBAAkBA,IACb;GAAApB,cACSqB,OAAOD,EAASpB,aAAc;GAAAC,sBACtBoB,OAAOD,EAASnB,qBAAqB;GAC5D,GAGI,EAAAF,UACKsB,OAAOD,EAASrB,SAAS,EACpC;IACFO,EAAA,KAAAY,GAAAZ,EAAA,KAAAa;CAfD,IAAAG,IAAuDH,GAerDI;CAEmD,OAFnDjB,EAAA,OAAAY,KAAAZ,EAAA,OAAAgB,KAEKC,IAAA;EAAAL;EAAAI;EAA8C,EAAAhB,EAAA,KAAAY,GAAAZ,EAAA,KAAAgB,GAAAhB,EAAA,KAAAiB,KAAAA,IAAAjB,EAAA,IAA9CiB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDepositAndSubmitDeltaOrder.js","names":["Address","TransactionReceipt","deltaOrdersQueryKey","SupportedChainId","LoggerInstance","MinViemClient","usePostDeltaOrder","useQueryClient","CreateAndSubmitDeltaOrderInput","TxSentObject","useAwaitTx","useEnsureTxReceipt","useDeltaOrderToPost","useSendDepositPreSignDeltaOrderTx","PreSignDeltaOrderToPost","DeltaAuctionWithOrder","depositAndSubmitOrderFactory","DeltaOrderDepositResult","depositPrep","order","isCreatingOrder","isOrderHashReady","isPending","isError","isSuccess","error","Error","depositTx","txHash","receipt","isConfirmingTX","isConfirmingTxError","isTxSent","isTxPending","isTxMined","isTxAwaitingError","postingOrder","isPostingOrder","isOrderSent","UseDepositAndSubmitDeltaOrderInput","chainId","account","logger","viemClient","UseDepositAndSubmitDeltaOrderResult","deltaOrderDeposit","depositAndSubmitDeltaOrder","DepositAndSubmitDeltaOrderFunc","reset","useDepositAndSubmitDeltaOrder","t0","$","_c","queryClient","t1","client","deltaOrderToPostMut","t2","data","t3","sendDepositTxMut","t4","hash","awaitDepositTx","t5","isLoading","t6","t7","t8","t9","log","invalidateQueries","queryKey","userAddress","user","exact","t10","t11","onSuccess","onError","t12","mutationOptions","postOrderMut","t13","deltaOrderPosting","t14","t15","t16","t17","t18","t19","ensureTxReceipt","t20","mutateAsync","createOrderToPost","sendDepositPreSignTx","postOrder","t21","t22","DepositAndSubmitDeltaOrderInput","createOrderInput","depositAmount","onTxSent","txSent","input","Promise"],"sources":["../../../../../src/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.ts"],"sourcesContent":["import { type Address, type TransactionReceipt } from \"viem\";\nimport { deltaOrdersQueryKey } from \"../../prices/delta/queries/useDeltaOrders\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport type { LoggerInstance } from \"@/lib/utils/logger\";\nimport type { MinViemClient } from \"@velora-dex/sdk\";\nimport { usePostDeltaOrder } from \"../../prices/delta/mutations/usePostDeltaOrder\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport type { CreateAndSubmitDeltaOrderInput } from \"../../prices/delta/mutations/useCreateDeltaOrder\";\nimport type { TxSentObject } from \"@/lib/utils/transactionHandlers\";\nimport { useAwaitTx, useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport { useDeltaOrderToPost } from \"../../prices/delta/mutations/useDeltaOrderToPost\";\nimport { useSendDepositPreSignDeltaOrderTx } from \"../../prices/delta/mutations/useSendDepositPreSignDeltaOrderTx\";\nimport type { PreSignDeltaOrderToPost } from \"../../prices/delta/mutations/types\";\nimport type { DeltaAuctionWithOrder } from \"../../prices/delta/orders/types\";\nimport { depositAndSubmitOrderFactory } from \"./factory/depositAndSubmitOrderFactory\";\n\nexport type DeltaOrderDepositResult = {\n depositPrep: {\n order?: PreSignDeltaOrderToPost;\n isCreatingOrder: boolean;\n isOrderHashReady: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n depositTx: {\n txHash?: Address;\n receipt?: TransactionReceipt;\n isConfirmingTX: boolean;\n isConfirmingTxError: boolean;\n isTxSent: boolean;\n isTxPending: boolean;\n isTxMined: boolean;\n isTxAwaitingError: boolean;\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n };\n postingOrder: {\n order?: DeltaAuctionWithOrder;\n isPostingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n order?: DeltaAuctionWithOrder;\n isCreatingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n};\n\ntype UseDepositAndSubmitDeltaOrderInput = {\n chainId: SupportedChainId;\n account?: Address;\n logger: LoggerInstance;\n viemClient?: MinViemClient;\n};\n\ntype UseDepositAndSubmitDeltaOrderResult = {\n deltaOrderDeposit: DeltaOrderDepositResult;\n depositAndSubmitDeltaOrder: DepositAndSubmitDeltaOrderFunc;\n reset: () => void;\n};\n\nexport function useDepositAndSubmitDeltaOrder({\n chainId,\n account,\n logger,\n viemClient,\n}: UseDepositAndSubmitDeltaOrderInput): UseDepositAndSubmitDeltaOrderResult {\n const queryClient = useQueryClient();\n\n const deltaOrderToPostMut = useDeltaOrderToPost({\n chainId,\n client: viemClient,\n });\n\n const depositPrep: DeltaOrderDepositResult[\"depositPrep\"] = {\n isCreatingOrder: deltaOrderToPostMut.isPending,\n isOrderHashReady: deltaOrderToPostMut.isSuccess,\n order: deltaOrderToPostMut.data,\n isPending: deltaOrderToPostMut.isPending,\n isError: deltaOrderToPostMut.isError,\n isSuccess: deltaOrderToPostMut.isSuccess,\n error: deltaOrderToPostMut.error,\n };\n\n /* 1. submit depositNativeAndPreSign tx */\n const sendDepositTxMut = useSendDepositPreSignDeltaOrderTx({\n chainId,\n client: viemClient,\n });\n\n /* 2. await depositNativeAndPreSign tx */\n const awaitDepositTx = useAwaitTx({\n hash: sendDepositTxMut.data,\n chainId,\n });\n\n const depositTx = {\n txHash: sendDepositTxMut.data,\n receipt: awaitDepositTx.data,\n /* tx sending */\n isConfirmingTX: sendDepositTxMut.isPending,\n isConfirmingTxError: sendDepositTxMut.isError,\n isTxSent: sendDepositTxMut.isSuccess,\n /* tx awaiting */\n isTxPending: awaitDepositTx.isLoading,\n isTxMined: awaitDepositTx.isSuccess,\n isTxAwaitingError: awaitDepositTx.isError,\n /* combined */\n isPending: sendDepositTxMut.isPending || awaitDepositTx.isLoading,\n isSuccess: awaitDepositTx.isSuccess, // final success\n isError: sendDepositTxMut.isError || awaitDepositTx.isError,\n error: sendDepositTxMut.error || awaitDepositTx.error,\n };\n\n /* 3. post Pre-signed Order */\n\n const postOrderMut = usePostDeltaOrder({\n chainId,\n account,\n client: viemClient,\n mutationOptions: {\n onSuccess: (order) => {\n logger.log(\"[DepositAndSubmit] Create Delta Order success\", order);\n queryClient.invalidateQueries({\n queryKey: deltaOrdersQueryKey({\n userAddress: order.user,\n }),\n exact: false,\n });\n },\n onError: (error) => {\n logger.error(\"[DepositAndSubmit] Create Delta Order error\", error);\n },\n },\n });\n\n const deltaOrderPosting: DeltaOrderDepositResult[\"postingOrder\"] = {\n order: postOrderMut.data,\n isPostingOrder: postOrderMut.isPending,\n isOrderSent: postOrderMut.isSuccess,\n isPending: postOrderMut.isPending,\n isError: postOrderMut.isError,\n isSuccess: postOrderMut.isSuccess,\n error: postOrderMut.error,\n };\n\n const deltaOrderDeposit: DeltaOrderDepositResult = {\n order: postOrderMut.data,\n depositPrep: depositPrep,\n depositTx,\n postingOrder: deltaOrderPosting,\n isCreatingOrder:\n depositPrep.isCreatingOrder ||\n depositTx.isPending ||\n deltaOrderPosting.isPostingOrder,\n isOrderSent: deltaOrderPosting.isOrderSent,\n isPending:\n depositPrep.isPending ||\n depositTx.isPending ||\n deltaOrderPosting.isPending,\n isError:\n depositPrep.isError || depositTx.isError || deltaOrderPosting.isError,\n isSuccess: deltaOrderPosting.isSuccess && depositTx.isTxSent,\n error: depositPrep.error || depositTx.error || deltaOrderPosting.error,\n };\n\n const ensureTxReceipt = useEnsureTxReceipt();\n\n const depositAndSubmitDeltaOrder = depositAndSubmitOrderFactory({\n createOrderToPost: deltaOrderToPostMut.mutateAsync,\n sendDepositPreSignTx: sendDepositTxMut.mutateAsync,\n postOrder: postOrderMut.mutateAsync,\n ensureTxReceipt,\n logger,\n chainId,\n });\n\n const reset = () => {\n deltaOrderToPostMut.reset();\n sendDepositTxMut.reset();\n postOrderMut.reset();\n };\n\n return {\n deltaOrderDeposit,\n depositAndSubmitDeltaOrder,\n reset,\n };\n}\n\ntype DepositAndSubmitDeltaOrderInput = {\n createOrderInput: CreateAndSubmitDeltaOrderInput;\n depositAmount: string;\n onTxSent?: (txSent: TxSentObject) => void;\n};\n\ntype DepositAndSubmitDeltaOrderFunc = (\n input: DepositAndSubmitDeltaOrderInput\n) => Promise<DeltaAuctionWithOrder>;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useDepositAndSubmitDeltaOrder.js","names":["Address","TransactionReceipt","deltaOrdersQueryKey","SupportedChainId","LoggerInstance","MinViemClient","usePostDeltaOrder","useQueryClient","CreateAndSubmitDeltaOrderInput","TxSentObject","useAwaitTx","useEnsureTxReceipt","useDeltaOrderToPost","useSendDepositPreSignDeltaOrderTx","PreSignDeltaOrderToPost","DeltaAuctionWithOrder","depositAndSubmitOrderFactory","DeltaOrderDepositResult","depositPrep","order","isCreatingOrder","isOrderHashReady","isPending","isError","isSuccess","error","Error","depositTx","txHash","receipt","isConfirmingTX","isConfirmingTxError","isTxSent","isTxPending","isTxMined","isTxAwaitingError","postingOrder","isPostingOrder","isOrderSent","UseDepositAndSubmitDeltaOrderInput","chainId","account","logger","viemClient","UseDepositAndSubmitDeltaOrderResult","deltaOrderDeposit","depositAndSubmitDeltaOrder","DepositAndSubmitDeltaOrderFunc","reset","useDepositAndSubmitDeltaOrder","t0","$","_c","queryClient","t1","client","deltaOrderToPostMut","t2","data","t3","sendDepositTxMut","t4","hash","awaitDepositTx","t5","isLoading","t6","t7","t8","t9","log","invalidateQueries","queryKey","userAddress","user","exact","t10","t11","onSuccess","onError","t12","mutationOptions","postOrderMut","t13","deltaOrderPosting","t14","t15","t16","t17","t18","t19","ensureTxReceipt","t20","mutateAsync","createOrderToPost","sendDepositPreSignTx","postOrder","t21","t22","DepositAndSubmitDeltaOrderInput","createOrderInput","depositAmount","onTxSent","txSent","input","Promise"],"sources":["../../../../../src/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.ts"],"sourcesContent":["import { type Address, type TransactionReceipt } from \"viem\";\nimport { deltaOrdersQueryKey } from \"../../prices/delta/queries/useDeltaOrders\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport type { LoggerInstance } from \"@/lib/utils/logger\";\nimport type { MinViemClient } from \"@velora-dex/sdk\";\nimport { usePostDeltaOrder } from \"../../prices/delta/mutations/usePostDeltaOrder\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport type { CreateAndSubmitDeltaOrderInput } from \"../../prices/delta/mutations/useCreateDeltaOrder\";\nimport type { TxSentObject } from \"@/lib/utils/transactionHandlers\";\nimport { useAwaitTx, useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport { useDeltaOrderToPost } from \"../../prices/delta/mutations/useDeltaOrderToPost\";\nimport { useSendDepositPreSignDeltaOrderTx } from \"../../prices/delta/mutations/useSendDepositPreSignDeltaOrderTx\";\nimport type { PreSignDeltaOrderToPost } from \"../../prices/delta/mutations/types\";\nimport type { DeltaAuctionWithOrder } from \"../../prices/delta/orders/types\";\nimport { depositAndSubmitOrderFactory } from \"./factory/depositAndSubmitOrderFactory\";\n\nexport type DeltaOrderDepositResult = {\n depositPrep: {\n order?: PreSignDeltaOrderToPost;\n isCreatingOrder: boolean;\n isOrderHashReady: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n depositTx: {\n txHash?: Address;\n receipt?: TransactionReceipt;\n isConfirmingTX: boolean;\n isConfirmingTxError: boolean;\n isTxSent: boolean;\n isTxPending: boolean;\n isTxMined: boolean;\n isTxAwaitingError: boolean;\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n };\n postingOrder: {\n order?: DeltaAuctionWithOrder;\n isPostingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n order?: DeltaAuctionWithOrder;\n isCreatingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n};\n\ntype UseDepositAndSubmitDeltaOrderInput = {\n chainId: SupportedChainId;\n account?: Address;\n logger: LoggerInstance;\n viemClient?: MinViemClient;\n};\n\ntype UseDepositAndSubmitDeltaOrderResult = {\n deltaOrderDeposit: DeltaOrderDepositResult;\n depositAndSubmitDeltaOrder: DepositAndSubmitDeltaOrderFunc;\n reset: () => void;\n};\n\nexport function useDepositAndSubmitDeltaOrder({\n chainId,\n account,\n logger,\n viemClient,\n}: UseDepositAndSubmitDeltaOrderInput): UseDepositAndSubmitDeltaOrderResult {\n const queryClient = useQueryClient();\n\n const deltaOrderToPostMut = useDeltaOrderToPost({\n chainId,\n client: viemClient,\n });\n\n const depositPrep: DeltaOrderDepositResult[\"depositPrep\"] = {\n isCreatingOrder: deltaOrderToPostMut.isPending,\n isOrderHashReady: deltaOrderToPostMut.isSuccess,\n order: deltaOrderToPostMut.data,\n isPending: deltaOrderToPostMut.isPending,\n isError: deltaOrderToPostMut.isError,\n isSuccess: deltaOrderToPostMut.isSuccess,\n error: deltaOrderToPostMut.error,\n };\n\n /* 1. submit depositNativeAndPreSign tx */\n const sendDepositTxMut = useSendDepositPreSignDeltaOrderTx({\n chainId,\n client: viemClient,\n });\n\n /* 2. await depositNativeAndPreSign tx */\n const awaitDepositTx = useAwaitTx({\n hash: sendDepositTxMut.data,\n chainId,\n });\n\n const depositTx = {\n txHash: sendDepositTxMut.data,\n receipt: awaitDepositTx.data,\n /* tx sending */\n isConfirmingTX: sendDepositTxMut.isPending,\n isConfirmingTxError: sendDepositTxMut.isError,\n isTxSent: sendDepositTxMut.isSuccess,\n /* tx awaiting */\n isTxPending: awaitDepositTx.isLoading,\n isTxMined: awaitDepositTx.isSuccess,\n isTxAwaitingError: awaitDepositTx.isError,\n /* combined */\n isPending: sendDepositTxMut.isPending || awaitDepositTx.isLoading,\n isSuccess: awaitDepositTx.isSuccess, // final success\n isError: sendDepositTxMut.isError || awaitDepositTx.isError,\n error: sendDepositTxMut.error || awaitDepositTx.error,\n };\n\n /* 3. post Pre-signed Order */\n\n const postOrderMut = usePostDeltaOrder({\n chainId,\n account,\n client: viemClient,\n mutationOptions: {\n onSuccess: (order) => {\n logger.log(\"[DepositAndSubmit] Create Delta Order success\", order);\n queryClient.invalidateQueries({\n queryKey: deltaOrdersQueryKey({\n userAddress: order.user,\n }),\n exact: false,\n });\n },\n onError: (error) => {\n logger.error(\"[DepositAndSubmit] Create Delta Order error\", error);\n },\n },\n });\n\n const deltaOrderPosting: DeltaOrderDepositResult[\"postingOrder\"] = {\n order: postOrderMut.data,\n isPostingOrder: postOrderMut.isPending,\n isOrderSent: postOrderMut.isSuccess,\n isPending: postOrderMut.isPending,\n isError: postOrderMut.isError,\n isSuccess: postOrderMut.isSuccess,\n error: postOrderMut.error,\n };\n\n const deltaOrderDeposit: DeltaOrderDepositResult = {\n order: postOrderMut.data,\n depositPrep: depositPrep,\n depositTx,\n postingOrder: deltaOrderPosting,\n isCreatingOrder:\n depositPrep.isCreatingOrder ||\n depositTx.isPending ||\n deltaOrderPosting.isPostingOrder,\n isOrderSent: deltaOrderPosting.isOrderSent,\n isPending:\n depositPrep.isPending ||\n depositTx.isPending ||\n deltaOrderPosting.isPending,\n isError:\n depositPrep.isError || depositTx.isError || deltaOrderPosting.isError,\n isSuccess: deltaOrderPosting.isSuccess && depositTx.isTxSent,\n error: depositPrep.error || depositTx.error || deltaOrderPosting.error,\n };\n\n const ensureTxReceipt = useEnsureTxReceipt();\n\n const depositAndSubmitDeltaOrder = depositAndSubmitOrderFactory({\n createOrderToPost: deltaOrderToPostMut.mutateAsync,\n sendDepositPreSignTx: sendDepositTxMut.mutateAsync,\n postOrder: postOrderMut.mutateAsync,\n ensureTxReceipt,\n logger,\n chainId,\n });\n\n const reset = () => {\n deltaOrderToPostMut.reset();\n sendDepositTxMut.reset();\n postOrderMut.reset();\n };\n\n return {\n deltaOrderDeposit,\n depositAndSubmitDeltaOrder,\n reset,\n };\n}\n\ntype DepositAndSubmitDeltaOrderInput = {\n createOrderInput: CreateAndSubmitDeltaOrderInput;\n depositAmount: string;\n onTxSent?: (txSent: TxSentObject) => void;\n};\n\ntype DepositAndSubmitDeltaOrderFunc = (\n input: DepositAndSubmitDeltaOrderInput\n) => Promise<DeltaAuctionWithOrder>;\n"],"mappings":"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"}
|