@velora-dex/widget 0.4.14-dev.4 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/ui/button.d.ts +1 -1
- package/dist/components/ui/button.d.ts.map +1 -1
- package/dist/components/ui/button.js +0 -1
- package/dist/components/ui/button.js.map +1 -1
- package/dist/components/web3/ConnectWallets/walletFlags.d.ts +90 -0
- package/dist/components/web3/ConnectWallets/walletFlags.d.ts.map +1 -0
- package/dist/components/web3/ConnectWallets/walletFlags.js +104 -0
- package/dist/components/web3/ConnectWallets/walletFlags.js.map +1 -0
- package/dist/components/web3/ConnectWallets/walletIcons.d.ts +4 -1
- package/dist/components/web3/ConnectWallets/walletIcons.d.ts.map +1 -1
- package/dist/components/web3/ConnectWallets/walletIcons.js +23 -3
- package/dist/components/web3/ConnectWallets/walletIcons.js.map +1 -1
- package/dist/components/widget/AppHeader/Activities/Drawers.d.ts.map +1 -1
- package/dist/components/widget/AppHeader/Activities/Drawers.js +24 -14
- package/dist/components/widget/AppHeader/Activities/Drawers.js.map +1 -1
- package/dist/components/widget/AppHeader/Activities/hooks.d.ts.map +1 -1
- package/dist/components/widget/AppHeader/Activities/hooks.js.map +1 -1
- package/dist/components/widget/AppHeader/Activities/utils.d.ts +3 -3
- package/dist/components/widget/AppHeader/Activities/utils.d.ts.map +1 -1
- package/dist/components/widget/AppHeader/Activities/utils.js +1 -2
- package/dist/components/widget/AppHeader/Activities/utils.js.map +1 -1
- package/dist/components/widget/AppHeader/TradeModeSwitcher.d.ts.map +1 -1
- package/dist/components/widget/AppHeader/TradeModeSwitcher.js +1 -2
- package/dist/components/widget/AppHeader/TradeModeSwitcher.js.map +1 -1
- package/dist/components/widget/Button/CancelButton/CancelButton.js +44 -40
- package/dist/components/widget/Button/CancelButton/CancelButton.js.map +1 -1
- package/dist/components/widget/Button/CancelButton/CancelButtonWithDrawer.d.ts +15 -0
- package/dist/components/widget/Button/CancelButton/CancelButtonWithDrawer.d.ts.map +1 -0
- package/dist/components/widget/Button/CancelButton/CancelButtonWithDrawer.js +66 -0
- package/dist/components/widget/Button/CancelButton/CancelButtonWithDrawer.js.map +1 -0
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.d.ts.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js +26 -44
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js.map +1 -1
- package/dist/components/widget/Drawer/state/useDrawerControls.d.ts +5 -2
- package/dist/components/widget/Drawer/state/useDrawerControls.d.ts.map +1 -1
- package/dist/components/widget/Drawer/state/useDrawerControls.js +75 -2
- package/dist/components/widget/Drawer/state/useDrawerControls.js.map +1 -1
- package/dist/components/widget/Duration/Duration.d.ts +1 -1
- package/dist/components/widget/Duration/Duration.d.ts.map +1 -1
- package/dist/components/widget/Duration/Duration.js +4 -1
- package/dist/components/widget/Duration/Duration.js.map +1 -1
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/Controls.d.ts.map +1 -1
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/Controls.js +85 -49
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/Controls.js.map +1 -1
- package/dist/components/widget/LimitOrderItem/LimitOrderListItem.d.ts +1 -2
- package/dist/components/widget/LimitOrderItem/LimitOrderListItem.d.ts.map +1 -1
- package/dist/components/widget/LimitOrderItem/LimitOrderListItem.js +7 -9
- package/dist/components/widget/LimitOrderItem/LimitOrderListItem.js.map +1 -1
- package/dist/components/widget/LimitOrderItem/types.d.ts +2 -2
- package/dist/components/widget/LimitOrderItem/types.d.ts.map +1 -1
- package/dist/components/widget/LimitOrderItem/utils.d.ts +2 -2
- package/dist/components/widget/LimitOrderItem/utils.d.ts.map +1 -1
- package/dist/components/widget/LimitOrderItem/utils.js +9 -25
- package/dist/components/widget/LimitOrderItem/utils.js.map +1 -1
- package/dist/components/widget/OtcOrderItem/OtcOrderDetails/Controls.d.ts.map +1 -1
- package/dist/components/widget/OtcOrderItem/OtcOrderDetails/Controls.js +33 -22
- package/dist/components/widget/OtcOrderItem/OtcOrderDetails/Controls.js.map +1 -1
- package/dist/components/widget/ReceiverAddress/state/subscriptions.d.ts.map +1 -1
- package/dist/components/widget/ReceiverAddress/state/subscriptions.js +4 -8
- package/dist/components/widget/ReceiverAddress/state/subscriptions.js.map +1 -1
- package/dist/components/widget/SwapRate/SwapRate.d.ts +1 -2
- package/dist/components/widget/SwapRate/SwapRate.d.ts.map +1 -1
- package/dist/components/widget/SwapRate/SwapRate.js +20 -29
- package/dist/components/widget/SwapRate/SwapRate.js.map +1 -1
- package/dist/components/widget/TradeOverview/CancelButtonWithDrawer.d.ts +7 -0
- package/dist/components/widget/TradeOverview/CancelButtonWithDrawer.d.ts.map +1 -0
- package/dist/components/widget/TradeOverview/CancelButtonWithDrawer.js +84 -0
- package/dist/components/widget/TradeOverview/CancelButtonWithDrawer.js.map +1 -0
- package/dist/components/widget/TradeOverview/CancelOrder/ConfirmCancel.d.ts +12 -0
- package/dist/components/widget/TradeOverview/CancelOrder/ConfirmCancel.d.ts.map +1 -0
- package/dist/components/widget/TradeOverview/CancelOrder/ConfirmCancel.js +227 -0
- package/dist/components/widget/TradeOverview/CancelOrder/ConfirmCancel.js.map +1 -0
- package/dist/components/widget/TradeOverview/CancelOrder/constants.d.ts +8 -0
- package/dist/components/widget/TradeOverview/CancelOrder/constants.d.ts.map +1 -0
- package/dist/components/widget/TradeOverview/CancelOrder/constants.js +20 -0
- package/dist/components/widget/TradeOverview/CancelOrder/constants.js.map +1 -0
- package/dist/components/widget/TradeOverview/CancelOrder/utils.d.ts +12 -0
- package/dist/components/widget/TradeOverview/CancelOrder/utils.d.ts.map +1 -0
- package/dist/components/widget/TradeOverview/CancelOrder/utils.js +49 -0
- package/dist/components/widget/TradeOverview/CancelOrder/utils.js.map +1 -0
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js +86 -77
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.d.ts +2 -2
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.js +38 -28
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteFooter.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteFooter.js +16 -18
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteFooter.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteHeader.d.ts +2 -1
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteHeader.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteHeader.js +102 -70
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteHeader.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/constants.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/constants.js +1 -2
- package/dist/components/widget/TradeOverview/TradeComplete/constants.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/index.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/index.js +21 -14
- package/dist/components/widget/TradeOverview/TradeComplete/index.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/useTradeCompleteDetails.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/useTradeCompleteDetails.js +72 -105
- package/dist/components/widget/TradeOverview/TradeComplete/useTradeCompleteDetails.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/utils.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/utils.js +11 -46
- package/dist/components/widget/TradeOverview/TradeComplete/utils.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorDetails.d.ts +2 -1
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorDetails.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorDetails.js +66 -24
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorDetails.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/index.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/index.js +11 -7
- package/dist/components/widget/TradeOverview/TradeError/index.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/utils.d.ts +4 -1
- package/dist/components/widget/TradeOverview/TradeError/utils.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/utils.js +20 -2
- package/dist/components/widget/TradeOverview/TradeError/utils.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverview.d.ts +5 -4
- package/dist/components/widget/TradeOverview/TradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverviewFooter.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverviewFooter.js +15 -21
- package/dist/components/widget/TradeOverview/TradeOverviewFooter.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverviewScreen.d.ts +2 -7
- package/dist/components/widget/TradeOverview/TradeOverviewScreen.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverviewScreen.js +7 -19
- package/dist/components/widget/TradeOverview/TradeOverviewScreen.js.map +1 -1
- package/dist/components/widget/TradeOverview/steps.d.ts +4 -37
- package/dist/components/widget/TradeOverview/steps.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/steps.js +1 -10
- package/dist/components/widget/TradeOverview/steps.js.map +1 -1
- package/dist/components/widget/TradeOverview/tradeFlowContext.d.ts +22 -5
- package/dist/components/widget/TradeOverview/tradeFlowContext.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/tradeFlowContext.js +37 -11
- package/dist/components/widget/TradeOverview/tradeFlowContext.js.map +1 -1
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.d.ts +4 -1
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.d.ts.map +1 -1
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.js +133 -31
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.js.map +1 -1
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/TransactionDetails.d.ts +7 -2
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/TransactionDetails.d.ts.map +1 -1
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/TransactionDetails.js +18 -14
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/TransactionDetails.js.map +1 -1
- package/dist/components/widget/TransactionDetails/TransactionListItem.d.ts.map +1 -1
- package/dist/components/widget/TransactionDetails/TransactionListItem.js +1 -1
- package/dist/components/widget/TransactionDetails/TransactionListItem.js.map +1 -1
- package/dist/configurator/components/FormPropsInputs.d.ts.map +1 -1
- package/dist/configurator/components/TradeModesSelector.d.ts.map +1 -1
- package/dist/core/TradeFlowScreenButton.d.ts +0 -5
- package/dist/core/TradeFlowScreenButton.d.ts.map +1 -1
- package/dist/core/TradeFlowScreenButton.js +1 -58
- package/dist/core/TradeFlowScreenButton.js.map +1 -1
- package/dist/core/Updaters.d.ts.map +1 -1
- package/dist/core/Updaters.js +2 -0
- package/dist/core/Updaters.js.map +1 -1
- package/dist/core/across/isCrosschainPossible.d.ts.map +1 -1
- package/dist/core/across/isCrosschainPossible.js +1 -1
- package/dist/core/across/isCrosschainPossible.js.map +1 -1
- package/dist/core/button/hooks/useWidgetButtonExtraProps.d.ts +0 -1
- package/dist/core/button/hooks/useWidgetButtonExtraProps.d.ts.map +1 -1
- package/dist/core/button/hooks/useWidgetButtonExtraProps.js +1 -71
- package/dist/core/button/hooks/useWidgetButtonExtraProps.js.map +1 -1
- package/dist/core/constants.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +3 -199
- package/dist/core/index.js.map +1 -1
- package/dist/core/inputs/hooks/types.d.ts +1 -1
- package/dist/core/inputs/hooks/types.d.ts.map +1 -1
- package/dist/core/inputs/state/common.d.ts +0 -4
- package/dist/core/inputs/state/common.d.ts.map +1 -1
- package/dist/core/inputs/state/common.js +4 -49
- package/dist/core/inputs/state/common.js.map +1 -1
- package/dist/core/inputs/state/setTokenByAddressAtom.d.ts.map +1 -1
- package/dist/core/inputs/state/setTokenByAddressAtom.js +27 -27
- package/dist/core/inputs/state/setTokenByAddressAtom.js.map +1 -1
- package/dist/core/limit/state/utils.d.ts +1 -1
- package/dist/core/limit/useLimitRate.d.ts.map +1 -1
- package/dist/core/limit/useLimitRate.js +2 -0
- package/dist/core/limit/useLimitRate.js.map +1 -1
- package/dist/core/state/chainToAtom.d.ts +0 -2
- package/dist/core/state/chainToAtom.d.ts.map +1 -1
- package/dist/core/state/chainToAtom.js +7 -28
- package/dist/core/state/chainToAtom.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/tradeModeAtom.d.ts +1 -1
- package/dist/core/state/tradeModeAtom.d.ts.map +1 -1
- package/dist/core/state/tradeModeAtom.js.map +1 -1
- package/dist/core/state/widgetEventsAtom.d.ts.map +1 -1
- package/dist/core/state/widgetEventsAtom.js +28 -36
- package/dist/core/state/widgetEventsAtom.js.map +1 -1
- package/dist/events/effects/formInput.d.ts +0 -3
- package/dist/events/effects/formInput.d.ts.map +1 -1
- package/dist/events/effects/formInput.js +1 -17
- package/dist/events/effects/formInput.js.map +1 -1
- package/dist/events/getters/widgetState.d.ts.map +1 -1
- package/dist/events/getters/widgetState.js +1 -3
- package/dist/events/getters/widgetState.js.map +1 -1
- package/dist/events/hooks/useActivateEffects.d.ts.map +1 -1
- package/dist/events/hooks/useActivateEffects.js +1 -2
- package/dist/events/hooks/useActivateEffects.js.map +1 -1
- package/dist/events/types/{cancel.d.ts → cancelOrder.d.ts} +5 -2
- package/dist/events/types/cancelOrder.d.ts.map +1 -0
- package/dist/events/types/cancelTx.d.ts +35 -0
- package/dist/events/types/cancelTx.d.ts.map +1 -0
- package/dist/events/types/common.d.ts +0 -6
- package/dist/events/types/common.d.ts.map +1 -1
- package/dist/events/types/formInput.d.ts +2 -11
- package/dist/events/types/formInput.d.ts.map +1 -1
- package/dist/events/types/index.d.ts +5 -5
- package/dist/events/types/index.d.ts.map +1 -1
- package/dist/events/types/limit.d.ts +2 -2
- package/dist/events/types/limit.d.ts.map +1 -1
- package/dist/events/types/swap.d.ts +12 -3
- package/dist/events/types/swap.d.ts.map +1 -1
- package/dist/hooks/batch/useSendBatchTx.d.ts +1 -1
- package/dist/hooks/batch/useSendBatchTx.d.ts.map +1 -1
- package/dist/hooks/batch/useSendBatchTx.js.map +1 -1
- package/dist/hooks/connectors/useIsConnectedSafe.js +1 -0
- package/dist/hooks/connectors/useIsConnectedSafe.js.map +1 -1
- package/dist/hooks/getCode/useIsAccountContract.js.map +1 -1
- package/dist/hooks/otc/mutations/useCancelLimitOrder.d.ts +20 -2
- package/dist/hooks/otc/mutations/useCancelLimitOrder.d.ts.map +1 -1
- package/dist/hooks/otc/mutations/useCancelLimitOrder.js +197 -74
- package/dist/hooks/otc/mutations/useCancelLimitOrder.js.map +1 -1
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.d.ts.map +1 -1
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js +0 -1
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js.map +1 -1
- package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.d.ts +6 -1
- package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.d.ts.map +1 -1
- package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.js +37 -24
- package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.js.map +1 -1
- package/dist/hooks/otc/tradeFlow/useOtcOrderStep.d.ts +2 -2
- package/dist/hooks/otc/tradeFlow/useOtcOrderStep.d.ts.map +1 -1
- package/dist/hooks/otc/tradeFlow/useOtcOrderStep.js +28 -42
- package/dist/hooks/otc/tradeFlow/useOtcOrderStep.js.map +1 -1
- package/dist/hooks/permit/utils/deadlines.d.ts +2 -2
- package/dist/hooks/permit/utils/deadlines.d.ts.map +1 -1
- package/dist/hooks/permit/utils/deadlines.js +4 -4
- package/dist/hooks/permit/utils/deadlines.js.map +1 -1
- package/dist/hooks/swap/prices/constants.d.ts +0 -1
- package/dist/hooks/swap/prices/constants.d.ts.map +1 -1
- package/dist/hooks/swap/prices/constants.js +1 -2
- package/dist/hooks/swap/prices/constants.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/types.d.ts +1 -10
- package/dist/hooks/swap/prices/delta/mutations/types.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrders.d.ts +5 -2
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrders.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrders.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrdersEvents.d.ts +6 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrdersEvents.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrdersEvents.js +16 -0
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrdersEvents.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.d.ts +13 -6
- package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.js +176 -145
- package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.d.ts +6 -6
- package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useIsDeltaOrderCancellable.d.ts +11 -0
- package/dist/hooks/swap/prices/delta/mutations/useIsDeltaOrderCancellable.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/useIsDeltaOrderCancellable.js +69 -0
- package/dist/hooks/swap/prices/delta/mutations/useIsDeltaOrderCancellable.js.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.d.ts +3 -3
- package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.js +15 -3
- package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.d.ts +6 -5
- package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.js +24 -28
- package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/utils.d.ts +6 -17
- package/dist/hooks/swap/prices/delta/mutations/utils.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/utils.js +2 -34
- package/dist/hooks/swap/prices/delta/mutations/utils.js.map +1 -1
- package/dist/hooks/swap/prices/delta/orders/types.d.ts +46 -11
- package/dist/hooks/swap/prices/delta/orders/types.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/orders/unposted/index.d.ts +2 -2
- package/dist/hooks/swap/prices/delta/orders/unposted/index.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/orders/unposted/index.js.map +1 -1
- package/dist/hooks/swap/prices/delta/orders/unposted/types.d.ts +5 -6
- package/dist/hooks/swap/prices/delta/orders/unposted/types.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/orders/unposted/utils.d.ts +1 -67
- package/dist/hooks/swap/prices/delta/orders/unposted/utils.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/orders/unposted/utils.js +6 -24
- package/dist/hooks/swap/prices/delta/orders/unposted/utils.js.map +1 -1
- package/dist/hooks/swap/prices/delta/orders/utils.d.ts +10 -17
- package/dist/hooks/swap/prices/delta/orders/utils.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/orders/utils.js +4 -32
- package/dist/hooks/swap/prices/delta/orders/utils.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaOrders.d.ts +6 -5
- package/dist/hooks/swap/prices/delta/queries/useDeltaOrders.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaOrders.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts +7 -7
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js +35 -37
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.d.ts +17 -14
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/utils.d.ts +0 -1
- package/dist/hooks/swap/prices/delta/queries/utils.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/utils.js +1 -8
- package/dist/hooks/swap/prices/delta/queries/utils.js.map +1 -1
- package/dist/hooks/swap/prices/market/mutations/useSendMarketSwapTx.d.ts +6 -2
- package/dist/hooks/swap/prices/market/mutations/useSendMarketSwapTx.d.ts.map +1 -1
- package/dist/hooks/swap/prices/market/mutations/useSendMarketSwapTx.js +8 -2
- package/dist/hooks/swap/prices/market/mutations/useSendMarketSwapTx.js.map +1 -1
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.d.ts.map +1 -1
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js +35 -37
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js.map +1 -1
- package/dist/hooks/swap/prices/market/queries/useSpenderAndContracts.d.ts.map +1 -1
- package/dist/hooks/swap/prices/market/queries/useSpenderAndContracts.js.map +1 -1
- package/dist/hooks/swap/prices/usePricesParams.d.ts.map +1 -1
- package/dist/hooks/swap/prices/usePricesParams.js +5 -9
- package/dist/hooks/swap/prices/usePricesParams.js.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.d.ts.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.js +2 -0
- package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
- package/dist/hooks/swap/prices/useTokenInputsFromPrice.d.ts +1 -1
- package/dist/hooks/swap/prices/useTokenInputsFromPrice.d.ts.map +1 -1
- package/dist/hooks/swap/prices/useTokenInputsFromPrice.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/errors.d.ts +6 -0
- package/dist/hooks/swap/tradeFlow/common/errors.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/errors.js +15 -1
- package/dist/hooks/swap/tradeFlow/common/errors.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/types.d.ts +2 -4
- package/dist/hooks/swap/tradeFlow/common/types.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.d.ts +0 -1
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js +55 -57
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.d.ts +6 -6
- package/dist/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.js +152 -263
- package/dist/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.d.ts +7 -7
- package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.js +181 -296
- package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.d.ts +1 -2
- package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.js +83 -85
- package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/utils.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/utils.js +1 -1
- package/dist/hooks/swap/tradeFlow/common/utils.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts +15 -9
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +58 -23
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.d.ts +2 -2
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js +45 -57
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts +12 -6
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js +35 -10
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderStep.d.ts +4 -4
- package/dist/hooks/swap/tradeFlow/useLimitOrderStep.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderStep.js +23 -37
- package/dist/hooks/swap/tradeFlow/useLimitOrderStep.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts +13 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.js +93 -26
- package/dist/hooks/swap/tradeFlow/useMarketFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.d.ts +7 -1
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js +59 -42
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js.map +1 -1
- package/dist/hooks/txs/mutations/useReplaceTx.d.ts +86 -0
- package/dist/hooks/txs/mutations/useReplaceTx.d.ts.map +1 -0
- package/dist/hooks/txs/mutations/useReplaceTx.js +514 -0
- package/dist/hooks/txs/mutations/useReplaceTx.js.map +1 -0
- package/dist/hooks/txs/mutations/useSendTx.d.ts +7 -2
- package/dist/hooks/txs/mutations/useSendTx.d.ts.map +1 -1
- package/dist/hooks/txs/mutations/useSendTx.js.map +1 -1
- package/dist/hooks/txs/queries/useAccountNonce.d.ts +9 -0
- package/dist/hooks/txs/queries/useAccountNonce.d.ts.map +1 -0
- package/dist/hooks/txs/queries/useAccountNonce.js +31 -0
- package/dist/hooks/txs/queries/useAccountNonce.js.map +1 -0
- package/dist/hooks/txs/queries/useTxFees.d.ts +16 -0
- package/dist/hooks/txs/queries/useTxFees.d.ts.map +1 -0
- package/dist/hooks/txs/queries/useTxFees.js +103 -0
- package/dist/hooks/txs/queries/useTxFees.js.map +1 -0
- package/dist/hooks/txs/queries/useTxHistory.d.ts.map +1 -1
- package/dist/hooks/txs/queries/useTxHistory.js +3 -2
- package/dist/hooks/txs/queries/useTxHistory.js.map +1 -1
- package/dist/hooks/txs/queries/useTxResponse.d.ts +2390 -0
- package/dist/hooks/txs/queries/useTxResponse.d.ts.map +1 -0
- package/dist/hooks/txs/queries/useTxResponse.js +75 -0
- package/dist/hooks/txs/queries/useTxResponse.js.map +1 -0
- package/dist/hooks/txs/queries/useWalletCanReplaceTx.d.ts +2 -0
- package/dist/hooks/txs/queries/useWalletCanReplaceTx.d.ts.map +1 -0
- package/dist/hooks/txs/queries/useWalletCanReplaceTx.js +30 -0
- package/dist/hooks/txs/queries/useWalletCanReplaceTx.js.map +1 -0
- package/dist/hooks/useSDK.d.ts +4 -4
- package/dist/hooks/useSDK.d.ts.map +1 -1
- package/dist/hooks/useSDK.js +4 -4
- package/dist/hooks/useSDK.js.map +1 -1
- package/dist/hooks/useSlippage.d.ts.map +1 -1
- package/dist/hooks/useSlippage.js +1 -2
- package/dist/hooks/useSlippage.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/lib/constants/delta.d.ts.map +1 -1
- package/dist/lib/constants/delta.js +1 -1
- package/dist/lib/constants/delta.js.map +1 -1
- package/dist/lib/constants/time.d.ts +0 -1
- package/dist/lib/constants/time.d.ts.map +1 -1
- package/dist/lib/constants/time.js +1 -2
- package/dist/lib/constants/time.js.map +1 -1
- package/dist/lib/queryClient.js +2 -2
- package/dist/lib/queryClient.js.map +1 -1
- package/dist/lib/tradeMode.d.ts +1 -9
- package/dist/lib/tradeMode.d.ts.map +1 -1
- package/dist/lib/tradeMode.js +2 -4
- package/dist/lib/tradeMode.js.map +1 -1
- package/dist/lib/utils/index.d.ts +0 -8
- package/dist/lib/utils/index.d.ts.map +1 -1
- package/dist/lib/utils/index.js +1 -18
- package/dist/lib/utils/index.js.map +1 -1
- package/dist/lib/utils/price.d.ts +0 -1
- package/dist/lib/utils/price.d.ts.map +1 -1
- package/dist/lib/utils/price.js +2 -4
- package/dist/lib/utils/price.js.map +1 -1
- package/dist/lib/utils/time.d.ts +0 -2
- package/dist/lib/utils/time.d.ts.map +1 -1
- package/dist/lib/utils/time.js +1 -7
- package/dist/lib/utils/time.js.map +1 -1
- package/dist/lib/utils/toasts.d.ts +4 -4
- package/dist/lib/utils/toasts.d.ts.map +1 -1
- package/dist/lib/utils/toasts.js.map +1 -1
- package/dist/lib/web3/privy/config.js +1 -1
- package/dist/lib/web3/privy/config.js.map +1 -1
- package/dist/lib/web3/wagmi/config.js +1 -1
- package/dist/lib/web3/wagmi/config.js.map +1 -1
- package/dist/styles.css +7 -65
- package/dist/tokens/constants.d.ts.map +1 -1
- package/dist/tokens/constants.js +9 -9
- package/dist/tokens/constants.js.map +1 -1
- package/dist/tokens/defaultTokens.d.ts.map +1 -1
- package/dist/tokens/defaultTokens.js +18 -21
- package/dist/tokens/defaultTokens.js.map +1 -1
- package/dist/tokens/lists/constants.d.ts +1 -1
- package/dist/tokens/lists/constants.d.ts.map +1 -1
- package/dist/tokens/lists/constants.js +1 -1
- package/dist/tokens/lists/constants.js.map +1 -1
- package/dist/transactions/queries/ensureEstimateFeesPerGas.d.ts +16 -0
- package/dist/transactions/queries/ensureEstimateFeesPerGas.d.ts.map +1 -0
- package/dist/transactions/queries/ensureEstimateFeesPerGas.js +23 -0
- package/dist/transactions/queries/ensureEstimateFeesPerGas.js.map +1 -0
- package/dist/transactions/queries/ensureTxReceipt.d.ts.map +1 -1
- package/dist/transactions/queries/ensureTxReceipt.js +1 -1
- package/dist/transactions/queries/ensureTxReceipt.js.map +1 -1
- package/dist/transactions/queries/ensureTxResponse.d.ts +17 -0
- package/dist/transactions/queries/ensureTxResponse.d.ts.map +1 -0
- package/dist/transactions/queries/ensureTxResponse.js +23 -0
- package/dist/transactions/queries/ensureTxResponse.js.map +1 -0
- package/dist/transactions/state/hooks/useMarkTxAsDropped.d.ts +7 -0
- package/dist/transactions/state/hooks/useMarkTxAsDropped.d.ts.map +1 -0
- package/dist/transactions/state/hooks/useMarkTxAsDropped.js +10 -0
- package/dist/transactions/state/hooks/useMarkTxAsDropped.js.map +1 -0
- package/dist/transactions/state/transactionsActionAtom.d.ts +12 -0
- package/dist/transactions/state/transactionsActionAtom.d.ts.map +1 -1
- package/dist/transactions/state/transactionsActionAtom.js +40 -1
- package/dist/transactions/state/transactionsActionAtom.js.map +1 -1
- package/dist/transactions/status.d.ts +1 -1
- package/dist/transactions/status.d.ts.map +1 -1
- package/dist/transactions/status.js +6 -0
- package/dist/transactions/status.js.map +1 -1
- package/dist/transactions/types.d.ts +18 -5
- package/dist/transactions/types.d.ts.map +1 -1
- package/package.json +3 -3
- package/dist/components/widget/NumberInput/NumberInput.d.ts +0 -18
- package/dist/components/widget/NumberInput/NumberInput.d.ts.map +0 -1
- package/dist/components/widget/NumberInput/NumberInput.js +0 -255
- package/dist/components/widget/NumberInput/NumberInput.js.map +0 -1
- package/dist/components/widget/NumberInput/assets/arrow-down.svg.js +0 -12
- package/dist/components/widget/NumberInput/assets/arrow-down.svg.js.map +0 -1
- package/dist/components/widget/NumberInput/assets/arrow-up.svg.js +0 -12
- package/dist/components/widget/NumberInput/assets/arrow-up.svg.js.map +0 -1
- package/dist/components/widget/TradeOverview/TwapOrderTradeOverview.d.ts +0 -15
- package/dist/components/widget/TradeOverview/TwapOrderTradeOverview.d.ts.map +0 -1
- package/dist/components/widget/TradeOverview/TwapOrderTradeOverview.js +0 -241
- package/dist/components/widget/TradeOverview/TwapOrderTradeOverview.js.map +0 -1
- package/dist/components/widget/TradeOverview/utils/swapAmounts.d.ts +0 -14
- package/dist/components/widget/TradeOverview/utils/swapAmounts.d.ts.map +0 -1
- package/dist/components/widget/TradeOverview/utils/swapAmounts.js +0 -43
- package/dist/components/widget/TradeOverview/utils/swapAmounts.js.map +0 -1
- package/dist/components/widget/Twap/OrderDuration.d.ts +0 -2
- package/dist/components/widget/Twap/OrderDuration.d.ts.map +0 -1
- package/dist/components/widget/Twap/OrderDuration.js +0 -75
- package/dist/components/widget/Twap/OrderDuration.js.map +0 -1
- package/dist/components/widget/Twap/OrderSplit.d.ts +0 -2
- package/dist/components/widget/Twap/OrderSplit.d.ts.map +0 -1
- package/dist/components/widget/Twap/OrderSplit.js +0 -57
- package/dist/components/widget/Twap/OrderSplit.js.map +0 -1
- package/dist/components/widget/Twap/RateProtection.d.ts +0 -2
- package/dist/components/widget/Twap/RateProtection.d.ts.map +0 -1
- package/dist/components/widget/Twap/RateProtection.js +0 -57
- package/dist/components/widget/Twap/RateProtection.js.map +0 -1
- package/dist/components/widget/Twap/TwapDetailWithTooltip.d.ts +0 -3
- package/dist/components/widget/Twap/TwapDetailWithTooltip.d.ts.map +0 -1
- package/dist/components/widget/Twap/TwapDetailWithTooltip.js +0 -33
- package/dist/components/widget/Twap/TwapDetailWithTooltip.js.map +0 -1
- package/dist/core/TwapDetails.d.ts +0 -2
- package/dist/core/TwapDetails.d.ts.map +0 -1
- package/dist/core/TwapDetails.js +0 -24
- package/dist/core/TwapDetails.js.map +0 -1
- package/dist/core/twap/state/constants.d.ts +0 -15
- package/dist/core/twap/state/constants.d.ts.map +0 -1
- package/dist/core/twap/state/constants.js +0 -19
- package/dist/core/twap/state/constants.js.map +0 -1
- package/dist/core/twap/state/currentTwapInputAtom.d.ts +0 -4
- package/dist/core/twap/state/currentTwapInputAtom.d.ts.map +0 -1
- package/dist/core/twap/state/currentTwapInputAtom.js +0 -6
- package/dist/core/twap/state/currentTwapInputAtom.js.map +0 -1
- package/dist/core/twap/state/isCrosschainAtom.d.ts +0 -3
- package/dist/core/twap/state/isCrosschainAtom.d.ts.map +0 -1
- package/dist/core/twap/state/isCrosschainAtom.js +0 -16
- package/dist/core/twap/state/isCrosschainAtom.js.map +0 -1
- package/dist/core/twap/state/selectedTokenActionsAtom.d.ts +0 -13
- package/dist/core/twap/state/selectedTokenActionsAtom.d.ts.map +0 -1
- package/dist/core/twap/state/selectedTokenActionsAtom.js +0 -194
- package/dist/core/twap/state/selectedTokenActionsAtom.js.map +0 -1
- package/dist/core/twap/state/twapInputAmountAtom.d.ts +0 -9
- package/dist/core/twap/state/twapInputAmountAtom.d.ts.map +0 -1
- package/dist/core/twap/state/twapInputAmountAtom.js +0 -21
- package/dist/core/twap/state/twapInputAmountAtom.js.map +0 -1
- package/dist/core/twap/state/twapParamsAtom.d.ts +0 -16
- package/dist/core/twap/state/twapParamsAtom.d.ts.map +0 -1
- package/dist/core/twap/state/twapParamsAtom.js +0 -22
- package/dist/core/twap/state/twapParamsAtom.js.map +0 -1
- package/dist/core/twap/state/twapReceiverAddressAtom.d.ts +0 -5
- package/dist/core/twap/state/twapReceiverAddressAtom.d.ts.map +0 -1
- package/dist/core/twap/state/twapReceiverAddressAtom.js +0 -10
- package/dist/core/twap/state/twapReceiverAddressAtom.js.map +0 -1
- package/dist/core/twap/state/twapSideAtom.d.ts +0 -4
- package/dist/core/twap/state/twapSideAtom.d.ts.map +0 -1
- package/dist/core/twap/state/twapSideAtom.js +0 -24
- package/dist/core/twap/state/twapSideAtom.js.map +0 -1
- package/dist/core/twap/state/twapTokenAtoms.d.ts +0 -10
- package/dist/core/twap/state/twapTokenAtoms.d.ts.map +0 -1
- package/dist/core/twap/state/twapTokenAtoms.js +0 -29
- package/dist/core/twap/state/twapTokenAtoms.js.map +0 -1
- package/dist/core/twap/twapDetails/minimumReceiveable.d.ts +0 -12
- package/dist/core/twap/twapDetails/minimumReceiveable.d.ts.map +0 -1
- package/dist/core/twap/twapDetails/minimumReceiveable.js +0 -44
- package/dist/core/twap/twapDetails/minimumReceiveable.js.map +0 -1
- package/dist/core/twap/useTwapDetailsListProps.d.ts +0 -3
- package/dist/core/twap/useTwapDetailsListProps.d.ts.map +0 -1
- package/dist/core/twap/useTwapDetailsListProps.js +0 -109
- package/dist/core/twap/useTwapDetailsListProps.js.map +0 -1
- package/dist/core/twap/useTwapTokenFromInputProps.d.ts +0 -9
- package/dist/core/twap/useTwapTokenFromInputProps.d.ts.map +0 -1
- package/dist/core/twap/useTwapTokenFromInputProps.js +0 -455
- package/dist/core/twap/useTwapTokenFromInputProps.js.map +0 -1
- package/dist/core/twap/useTwapTokenSwitcherProps.d.ts +0 -3
- package/dist/core/twap/useTwapTokenSwitcherProps.d.ts.map +0 -1
- package/dist/core/twap/useTwapTokenSwitcherProps.js +0 -38
- package/dist/core/twap/useTwapTokenSwitcherProps.js.map +0 -1
- package/dist/core/twap/useTwapTokenToInputProps.d.ts +0 -9
- package/dist/core/twap/useTwapTokenToInputProps.d.ts.map +0 -1
- package/dist/core/twap/useTwapTokenToInputProps.js +0 -274
- package/dist/core/twap/useTwapTokenToInputProps.js.map +0 -1
- package/dist/events/getters/twap.d.ts +0 -6
- package/dist/events/getters/twap.d.ts.map +0 -1
- package/dist/events/getters/twap.js +0 -65
- package/dist/events/getters/twap.js.map +0 -1
- package/dist/events/types/cancel.d.ts.map +0 -1
- package/dist/events/types/twap.d.ts +0 -26
- package/dist/events/types/twap.d.ts.map +0 -1
- package/dist/hooks/swap/prices/delta/mutations/twap/useCreatePreSignableTwapOrder.d.ts +0 -19
- package/dist/hooks/swap/prices/delta/mutations/twap/useCreatePreSignableTwapOrder.d.ts.map +0 -1
- package/dist/hooks/swap/prices/delta/mutations/twap/useCreatePreSignableTwapOrder.js +0 -86
- package/dist/hooks/swap/prices/delta/mutations/twap/useCreatePreSignableTwapOrder.js.map +0 -1
- package/dist/hooks/swap/prices/delta/mutations/twap/useCreateTwapOrder.d.ts +0 -37
- package/dist/hooks/swap/prices/delta/mutations/twap/useCreateTwapOrder.d.ts.map +0 -1
- package/dist/hooks/swap/prices/delta/mutations/twap/useCreateTwapOrder.js +0 -164
- package/dist/hooks/swap/prices/delta/mutations/twap/useCreateTwapOrder.js.map +0 -1
- package/dist/hooks/swap/prices/delta/mutations/twap/useDepositAndSubmitTwapOrder.d.ts +0 -69
- package/dist/hooks/swap/prices/delta/mutations/twap/useDepositAndSubmitTwapOrder.d.ts.map +0 -1
- package/dist/hooks/swap/prices/delta/mutations/twap/useDepositAndSubmitTwapOrder.js +0 -278
- package/dist/hooks/swap/prices/delta/mutations/twap/useDepositAndSubmitTwapOrder.js.map +0 -1
- package/dist/hooks/swap/prices/delta/mutations/twap/usePostTwapOrder.d.ts +0 -15
- package/dist/hooks/swap/prices/delta/mutations/twap/usePostTwapOrder.d.ts.map +0 -1
- package/dist/hooks/swap/prices/delta/mutations/twap/usePostTwapOrder.js +0 -89
- package/dist/hooks/swap/prices/delta/mutations/twap/usePostTwapOrder.js.map +0 -1
- package/dist/hooks/swap/prices/delta/mutations/twap/usePreSignAndSubmitTwapOrder.d.ts +0 -60
- package/dist/hooks/swap/prices/delta/mutations/twap/usePreSignAndSubmitTwapOrder.d.ts.map +0 -1
- package/dist/hooks/swap/prices/delta/mutations/twap/usePreSignAndSubmitTwapOrder.js +0 -325
- package/dist/hooks/swap/prices/delta/mutations/twap/usePreSignAndSubmitTwapOrder.js.map +0 -1
- package/dist/hooks/swap/prices/delta/mutations/twap/useTwapOrderToPost.d.ts +0 -18
- package/dist/hooks/swap/prices/delta/mutations/twap/useTwapOrderToPost.d.ts.map +0 -1
- package/dist/hooks/swap/prices/delta/mutations/twap/useTwapOrderToPost.js +0 -87
- package/dist/hooks/swap/prices/delta/mutations/twap/useTwapOrderToPost.js.map +0 -1
- package/dist/hooks/swap/prices/useTokenInputsFromTwapPrice.d.ts +0 -16
- package/dist/hooks/swap/prices/useTokenInputsFromTwapPrice.d.ts.map +0 -1
- package/dist/hooks/swap/prices/useTokenInputsFromTwapPrice.js +0 -73
- package/dist/hooks/swap/prices/useTokenInputsFromTwapPrice.js.map +0 -1
- package/dist/hooks/swap/prices/useTwapPrices.d.ts +0 -28
- package/dist/hooks/swap/prices/useTwapPrices.d.ts.map +0 -1
- package/dist/hooks/swap/prices/useTwapPrices.js +0 -175
- package/dist/hooks/swap/prices/useTwapPrices.js.map +0 -1
- package/dist/hooks/swap/tradeFlow/common/factory/depositAndSubmitOrderFactory.d.ts +0 -48
- package/dist/hooks/swap/tradeFlow/common/factory/depositAndSubmitOrderFactory.d.ts.map +0 -1
- package/dist/hooks/swap/tradeFlow/common/factory/depositAndSubmitOrderFactory.js +0 -71
- package/dist/hooks/swap/tradeFlow/common/factory/depositAndSubmitOrderFactory.js.map +0 -1
- package/dist/hooks/swap/tradeFlow/common/factory/preSignAndSubmitOrderFactory.d.ts +0 -50
- package/dist/hooks/swap/tradeFlow/common/factory/preSignAndSubmitOrderFactory.d.ts.map +0 -1
- package/dist/hooks/swap/tradeFlow/common/factory/preSignAndSubmitOrderFactory.js +0 -94
- package/dist/hooks/swap/tradeFlow/common/factory/preSignAndSubmitOrderFactory.js.map +0 -1
- package/dist/hooks/swap/tradeFlow/useTwapFlow.d.ts +0 -88
- package/dist/hooks/swap/tradeFlow/useTwapFlow.d.ts.map +0 -1
- package/dist/hooks/swap/tradeFlow/useTwapFlow.js +0 -591
- package/dist/hooks/swap/tradeFlow/useTwapFlow.js.map +0 -1
- package/dist/hooks/swap/tradeFlow/useTwapSwapStep.d.ts +0 -25
- package/dist/hooks/swap/tradeFlow/useTwapSwapStep.d.ts.map +0 -1
- package/dist/hooks/swap/tradeFlow/useTwapSwapStep.js +0 -237
- package/dist/hooks/swap/tradeFlow/useTwapSwapStep.js.map +0 -1
- package/dist/lib/utils/twap.d.ts +0 -17
- package/dist/lib/utils/twap.d.ts.map +0 -1
- package/dist/lib/utils/twap.js +0 -34
- package/dist/lib/utils/twap.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMarketFlow.js","sources":["../../../../src/hooks/swap/tradeFlow/useMarketFlow.ts"],"sourcesContent":["import { useAwaitTx } from \"@/hooks/txs\";\nimport type { OptimalRate } from \"@velora-dex/sdk\";\nimport { useAccount } from \"wagmi\";\nimport { useSendMarketSwapTx } from \"../prices/market/mutations/useSendMarketSwapTx\";\nimport {\n useBuildTx,\n type BuildMarketSwapTxInput,\n} from \"../prices/market/mutations/useBuildTx\";\nimport { assert } from \"ts-essentials\";\nimport { useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport type { Address, Hash, Hex, TransactionReceipt } from \"viem\";\nimport type {\n ApprovalFlowResult,\n SignPermitFlowResult,\n SubmitTxResult,\n} from \"./common/types\";\nimport { applySlippage } from \"@/lib/utils/price\";\nimport { useSlippage } from \"@/hooks/useSlippage\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { useRef } from \"react\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { UserCancelledError } from \"./common/errors\";\nimport { useSwapReceiverAddressValue } from \"@/components/widget/ReceiverAddress/state/receiverAddressAtom\";\nimport type {\n CallsSentObject,\n TxSentObject,\n} from \"@/lib/utils/transactionHandlers\";\nimport { useSwapSide } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport { useApproveOrPermit } from \"./common/useApproveOrPermit\";\nimport {\n useMarkPermit1Or2NonceAsUsed,\n type SignedPermitResult,\n} from \"./common/useSignPermit1Or2\";\nimport { useLogger } from \"@/core/logger\";\nimport { useConstructGasParams } from \"./common/useConstructGasParams\";\nimport {\n useMarketPriceQuery,\n useSubscribeToMarketPrice,\n} from \"../prices/market/queries/useMarketPriceQuery\";\nimport { usePartner } from \"@/hooks/usePartner\";\n\nconst marketSwapFlowType = \"marketSwap\";\nimport { useSendBatchTx } from \"@/hooks/batch/useSendBatchTx\";\nimport { useCanBatchTxs } from \"@/hooks/batch/useCanBatchTxs\";\nimport {\n useAwaitCalls,\n useEnsureCallsStatus,\n} from \"@/hooks/batch/useAwaitCalls\";\nimport { type CallsReceipt } from \"@/hooks/batch/useAwaitCalls\";\nimport { useBatchWithApproveTxs } from \"@/hooks/batch/useBatchWithApproveTxs\";\nimport { useWidgetEvents } from \"@/core/state/widgetEventsAtom\";\nimport type { BatchTxStepResult } from \"./common/types\";\nimport { usePricesParams } from \"../prices/usePricesParams\";\n\nexport type UseMarketFlowInput = {\n marketPrice?: OptimalRate;\n};\n\nexport type MarketSwapRequest = BuildMarketSwapTxInput & {\n // narrow down BuildMarketSwapTxInput from \"any two present\" {srcAmount?, destAmount?, slippage?}\n // to \"amounts always present\" variant\n swapTxInput: { srcAmount: string; destAmount: string };\n};\n\nexport type SubmitSwapResult = {\n tradeFlowType: typeof marketSwapFlowType;\n approve: SubmitTxResult;\n swap: SubmitTxResult & { swapRequest?: MarketSwapRequest };\n marketPrice: OptimalRate;\n account: Address;\n receiverAddress?: Address;\n};\n\ntype OnTxSent = (txSent: TxSentObject | CallsSentObject) => void;\n// @TODO instead add global onTxSent subscription to\n// MutationCache({onSuccess: txHash}) when sent\n// and QueryCache({onSuccess: txReceipt}) when mined,\n// maybe??\ntype RunMarketOptions = {\n onTxSent?: OnTxSent;\n};\n\nexport type UseMarketFlowResult = {\n tradeFlowType: typeof marketSwapFlowType;\n chainId: SupportedChainId;\n runMarketSwapFlow: (options?: RunMarketOptions) => Promise<SubmitSwapResult>;\n reset: () => void; // reset on Error to retry\n cancelFlow: () => void; // cancel flow\n retryFlow: (options?: RunMarketOptions) => Promise<SubmitSwapResult>; // reset and retry flow\n approval: ApprovalFlowResult;\n signPermit: SignPermitFlowResult;\n buildTxParams: {\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n swap: {\n txHash?: Hash;\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 isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n swapBatch: BatchTxStepResult;\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n result?: SubmitSwapResult;\n usedPrice?: OptimalRate;\n freshPrice?: OptimalRate;\n submittedSwapRequest?: MarketSwapRequest;\n};\n\nconst MARKET_SWAP_MUTATION_KEY = \"runMarketSwapFlow\";\n\nexport function useMarketFlow({\n marketPrice: _marketPrice,\n}: UseMarketFlowInput): UseMarketFlowResult {\n const logger = useLogger(\"MarketFlow\");\n const { resolvedSlippage } = useSlippage(\"swap\");\n const swapSideFromInput = useSwapSide();\n\n const { priceParams, chainId } = usePricesParams(\"swap\");\n\n const { result: marketPriceQuery, queryKey: marketPriceQueryKey } =\n useMarketPriceQuery({\n priceParams,\n chainId,\n query: {\n enabled: false,\n },\n });\n\n const marketPrice = marketPriceQuery.data || _marketPrice;\n\n /* Inside useApproveOrPermit:\n 1. Get allowance for tokenFrom \n 2.1. submit Approve tx if necessary \n\n 2.2. sign Permit1 \n\n 3. await Approve tx (if not using Permit) \n */\n const {\n approval,\n signPermit,\n approveTxMut,\n signPermitMut,\n events: approveOrPermitEvents,\n } = useApproveOrPermit({\n srcToken: marketPrice?.srcToken,\n // if we already approved some amount, save it in approval and signPermit objects\n srcAmount: marketPrice?.srcAmount,\n spenderContractType: \"AugustusSwapper\",\n // marketPrice is the preferred source of truth\n swapSide: marketPrice?.side ?? swapSideFromInput,\n tradeMode: \"swap\",\n chainId,\n });\n\n /* 4. Build Swap tx */\n const buildTxMut = useBuildTx({\n chainId,\n mutationOptions: {\n onSuccess: () => {\n logger.log(\"Build tx success\");\n },\n onError: (error) => {\n logger.error(\"Build tx error\", error);\n },\n },\n });\n\n const buildTxParams: UseMarketFlowResult[\"buildTxParams\"] = {\n isPending: buildTxMut.isPending,\n isError: buildTxMut.isError,\n isSuccess: buildTxMut.isSuccess,\n error: buildTxMut.error,\n };\n\n /* 5. submit Swap tx */\n\n /* 5.1. submit standalone Swap tx */\n\n const sendSwapTxMut = useSendMarketSwapTx({\n onSuccess: () => {\n logger.log(\"Swap tx success\");\n },\n onError: (error) => {\n logger.error(\"Swap tx error\", error);\n },\n });\n\n /* 5.2. submit Batch tx */\n const { forCurrentChain: canBatchTxs } = useCanBatchTxs();\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 /* 6. await Swap tx */\n\n /* 6.1. await standalone Swap tx */\n const swapTxMined = useAwaitTx({\n hash: sendSwapTxMut.txHash,\n chainId,\n });\n\n /* 6.2. await Batch tx */\n const batchTxMined = useAwaitCalls({\n id: batchTxMut.data?.id,\n });\n\n const swap: UseMarketFlowResult[\"swap\"] = {\n txHash: sendSwapTxMut.txHash,\n receipt: swapTxMined.data,\n /* tx sending */\n isConfirmingTX: sendSwapTxMut.isPending,\n isConfirmingTxError: sendSwapTxMut.isError,\n isTxSent: sendSwapTxMut.isSuccess,\n /* tx awaiting */\n isTxPending: swapTxMined.isLoading,\n isTxMined: swapTxMined.isSuccess,\n isTxAwaitingError: swapTxMined.isError,\n /* combined */\n isPending: sendSwapTxMut.isPending || swapTxMined.isLoading,\n isSuccess: swapTxMined.isSuccess, // final success\n isError: sendSwapTxMut.isError || swapTxMined.isError,\n error: sendSwapTxMut.error || swapTxMined.error,\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 swapBatch: UseMarketFlowResult[\"swapBatch\"] = {\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 { address: account } = useAccount();\n\n const ensureTxReceipt = useEnsureTxReceipt();\n const ensureCallsStatus = useEnsureCallsStatus();\n\n // allows to abort (cancel) currently running flow,\n const currentAbortControllerRef = useRef<AbortController | null>(null);\n const usingPriceRef = useRef<OptimalRate | null>(null);\n\n const cancelFlow = () => {\n currentAbortControllerRef.current?.abort(new UserCancelledError());\n currentAbortControllerRef.current = null;\n\n usingPriceRef.current = null;\n };\n\n const receiverAddress = useSwapReceiverAddressValue();\n\n const { markNonceAsUsed, clearNonce } = useMarkPermit1Or2NonceAsUsed({\n chainId,\n });\n\n const { constructGasParams } = useConstructGasParams();\n\n const { partner, partnerAddress, partnerFeeBps, partnerTakesSurplus } =\n usePartner();\n\n const subscribeToPrice = useSubscribeToMarketPrice();\n\n const { onSwap } = useWidgetEvents();\n\n const submitSwapTx: (\n options?: RunMarketOptions & { lastPrice?: OptimalRate | null }\n ) => Promise<SubmitSwapResult> = async ({ onTxSent, lastPrice } = {}) => {\n // reset all mutations except the current one,\n // otherwise we'll have previous data (txs) as mutation results\n approveTxMut.reset();\n signPermitMut.reset();\n buildTxMut.reset();\n sendSwapTxMut.reset();\n batchTxMut.reset();\n\n // no sense in starting flow without a price,\n // which may be unavailable only if we are retrying and deltaPrice response now returns an error.\n // Otherwise this flow will be stopped by disabling Swap button in the first place\n assert(marketPrice, \"Market price is not available\");\n\n const abortController = new AbortController();\n currentAbortControllerRef.current = abortController;\n\n const signal = abortController.signal;\n\n let signedPermitResult: SignedPermitResult | undefined;\n\n let approveTxHash: Hash | undefined;\n let approveTxReceipt: TransactionReceipt | undefined;\n\n // at this point this is the syncronously available price\n const allowanceToSet = approval.allowanceToSet;\n const allowanceToPermit = signPermit.amountToPermit;\n // we use this allowance as a max allowance we will accept new prices for\n\n // marketPrice here is the starting price, available before async code and waiting\n let freshPrice = marketPrice;\n if (freshPrice.hmac === lastPrice?.hmac) {\n // we are resubmitting the Swap tx, because it failed the last time,\n // but the price hasn't updated yet, so force refetch\n const newPriceResult = await marketPriceQuery.refetch({\n cancelRefetch: false,\n });\n // check if cancelled during refetch\n signal.throwIfAborted();\n\n if (newPriceResult.data) {\n freshPrice = newPriceResult.data;\n }\n }\n let unsubscribeFromPrice: (() => void) | undefined;\n // this also resets previous usingPriceRef\n usingPriceRef.current = freshPrice;\n\n const shouldBatchTxs =\n canBatchTxs && approval.needsApproval && !!allowanceToSet;\n\n try {\n // need allowance\n if (!shouldBatchTxs && approval.needsApproval && allowanceToSet) {\n // queryKey used to fetch the current price,\n // it will be used for the subsequent price refetches as long as price params not changed\n const queryKey = marketPriceQueryKey;\n\n // should always be available\n if (queryKey) {\n // freeze allowanceToSet\n const approvedAmount = allowanceToSet;\n\n // subscribe to price updates to keep track of new prices for the same price params,\n // independently of the hook itself\n unsubscribeFromPrice = subscribeToPrice({\n queryKey,\n onData: (newPrice) => {\n if (signal.aborted) {\n // just in case unsubscribe in finally is not yet called\n // for the queued update with the price from an already cancelled flow\n unsubscribeFromPrice?.();\n unsubscribeFromPrice = undefined;\n return;\n }\n\n // slightly higher amount if BUY with slippage\n const amountsAfterSlippage = applySlippage(\n {\n srcAmount: newPrice.srcAmount,\n destAmount: newPrice.destAmount,\n },\n resolvedSlippage,\n newPrice.side\n );\n\n // if new price fits into allowance, update it\n if (approvedAmount >= BigInt(amountsAfterSlippage.srcAmount)) {\n logger.log(\"~ fresh price ~\", newPrice);\n freshPrice = newPrice;\n usingPriceRef.current = freshPrice;\n }\n },\n });\n }\n\n const tryPermit =\n signPermit.isPermitSupported && signPermit.isPermitReadyToSign;\n try {\n if (!tryPermit) {\n approveOrPermitEvents.onApproveTx.request({ allowanceToSet });\n\n // Token doesn't support Permit\n // make an Approval tx\n approveTxHash = await approveTxMut.approveAsync({\n allowanceData: {\n allowanceToSet,\n },\n });\n\n approveOrPermitEvents.onApproveTx.sent({\n allowanceToSet,\n txHash: approveTxHash,\n });\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n const approveTxReceiptPromise = ensureTxReceipt({\n hash: approveTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\"onReplaced:approveTx\", approveTxHash, data);\n },\n });\n\n if (onTxSent) {\n onTxSent({\n chainId,\n action: \"approve\",\n transactionHash: approveTxHash,\n receiptPromise: approveTxReceiptPromise,\n transactionSpecificData: {\n action: \"approve\",\n approvedAmount: allowanceToSet,\n tokenAddress: approval.token as Address,\n spenderAddress: approval.spender as Address,\n },\n });\n }\n\n approveTxReceipt = await approveTxReceiptPromise;\n\n approveOrPermitEvents.onApproveTx.confirmed({\n allowanceToSet,\n txHash: approveTxHash,\n txReceipt: approveTxReceipt,\n });\n\n logger.log(\"~ approveTx ~ receipt:\", approveTxReceipt);\n // @TODO check if we need to see if receipt.status === \"reverted\" and throw,\n // or if waitForTransactionReceipt already throws on such receipts\n } else {\n approveOrPermitEvents.onSignPermit.request({\n allowanceToSet: allowanceToPermit,\n });\n\n // sign Permit\n signedPermitResult = await signPermitMut.signPermitAsync({\n value: allowanceToPermit,\n });\n\n approveOrPermitEvents.onSignPermit.confirmed({\n allowanceToSet: allowanceToPermit,\n permit: signedPermitResult?.permitEncodedArgs,\n });\n }\n } catch (error) {\n if (!tryPermit) {\n approveOrPermitEvents.onApproveTx.failed({\n allowanceToSet,\n error: error as Error,\n txHash: approveTxHash, // won't necessarily be available\n });\n } else {\n approveOrPermitEvents.onSignPermit.failed({\n allowanceToSet: allowanceToPermit,\n error: error as Error,\n });\n }\n throw error;\n }\n }\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n assert(account, \"Account is not connected\");\n // as long as we had set approvedAmount, we will only get new prices that satisfy the allowance\n const marketPriceToUse = freshPrice;\n usingPriceRef.current = marketPriceToUse;\n // no longer need updates, unsubscribe\n unsubscribeFromPrice?.();\n unsubscribeFromPrice = undefined;\n\n assert(marketPriceToUse, \"Market price is not available\");\n\n const amountsAfterSlippage = applySlippage(\n {\n srcAmount: marketPriceToUse.srcAmount,\n destAmount: marketPriceToUse.destAmount,\n },\n resolvedSlippage,\n marketPriceToUse.side\n );\n\n // fresh gas params\n const gasParams = constructGasParams();\n\n const swapRequest: MarketSwapRequest = {\n swapTxInput: {\n userAddress: account,\n receiver: receiverAddress,\n srcToken: marketPriceToUse.srcToken,\n destToken: marketPriceToUse.destToken,\n srcDecimals: marketPriceToUse.srcDecimals,\n destDecimals: marketPriceToUse.destDecimals,\n\n partner,\n partnerAddress,\n partnerFeeBps,\n takeSurplus: partnerTakesSurplus,\n\n permit: signedPermitResult?.permitEncodedArgs, // just signed Permit signature\n\n priceRoute: marketPriceToUse,\n ...amountsAfterSlippage,\n },\n\n swapTxOptions: {\n // ignoreChecks: true,\n // gas estimate will break if only swap tx is estimated, but approve tx is not considered in a batch\n ignoreGasEstimate: shouldBatchTxs,\n // for Batch-capable wallets batch Approve+Swap tx have to ignore all checks\n ignoreAllowance: shouldBatchTxs,\n // onlyParams: true,\n degenMode: priceParams.degenMode,\n ...gasParams,\n },\n };\n\n const txParams = await buildTxMut.mutateAsync(swapRequest);\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n let swapTxHash: Hash | undefined;\n let swapCallsId: string | undefined;\n\n onSwap?.({\n event: {\n name: \"Swap:request\",\n params: {\n swapMode: \"market\",\n price: marketPriceToUse,\n },\n },\n });\n\n if (shouldBatchTxs) {\n const { calls } = await addTxWithApprovals({\n txsParams: [\n {\n to: txParams.to as Address,\n account: txParams.from as Address,\n data: txParams.data as Hex,\n value: BigInt(txParams.value),\n chainId: txParams.chainId,\n },\n ],\n approveProps: [\n {\n spender: approval.spender,\n allowanceToSet: approval.allowanceToSet,\n token: approval.token,\n chainId: approval.chainId,\n },\n ],\n });\n\n const sendCallsResult = await batchTxMut.sendCalls({\n txsParams: calls,\n });\n swapCallsId = sendCallsResult.id;\n onSwap?.({\n event: {\n name: \"Swap:sent\",\n params: {\n swapMode: \"market\",\n price: marketPriceToUse,\n callsId: swapCallsId,\n },\n },\n });\n } else {\n swapTxHash = await sendSwapTxMut.sendTransactionAsync(txParams);\n onSwap?.({\n event: {\n name: \"Swap:sent\",\n params: {\n swapMode: \"market\",\n price: marketPriceToUse,\n txHash: swapTxHash,\n },\n },\n });\n }\n\n // no use aborting past this point, tx is already sent,\n // but we may want to connect this late abortion to tx cancellation, in the future\n\n // tx is sent, consider Token nonce as used\n if (signedPermitResult) {\n markNonceAsUsed(signedPermitResult.signedPermitData);\n }\n\n let swapCallsReceipt: CallsReceipt | undefined;\n let swapTxReceipt: TransactionReceipt | undefined;\n\n if (swapCallsId) {\n const sendCallsReceiptPromise = ensureCallsStatus({\n id: swapCallsId,\n }).then((status) => status.receipts?.[status.receipts.length - 1]);\n\n logger.log(\"~ swapTx ~ awaiting calls id :\", swapCallsId);\n\n if (onTxSent) {\n onTxSent({\n chainId,\n action: \"swap\",\n callsId: swapCallsId,\n receiptPromise: sendCallsReceiptPromise,\n transactionSpecificData: {\n action: \"swap\",\n source: \"local\",\n srcTokenAddress: marketPriceToUse.srcToken as Address,\n destTokenAddress: marketPriceToUse.destToken as Address,\n srcAmount: amountsAfterSlippage.srcAmount,\n destAmount: amountsAfterSlippage.destAmount,\n srcAmountUSD: marketPriceToUse.srcUSD,\n destAmountUSD: marketPriceToUse.destUSD,\n gasCost: marketPriceToUse.gasCost,\n },\n });\n }\n\n swapCallsReceipt = await sendCallsReceiptPromise;\n\n if (swapCallsReceipt) {\n onSwap?.({\n event: {\n name: \"Swap:confirmed\",\n params: {\n swapMode: \"market\",\n price: marketPriceToUse,\n callsReceipt: swapCallsReceipt,\n callsId: swapCallsId,\n },\n },\n });\n }\n } else if (swapTxHash) {\n const swapTxReceiptPromise = ensureTxReceipt({\n hash: swapTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\"onReplaced:swapTx\", swapTxHash, data);\n },\n });\n\n logger.log(\"~ swapTx ~ awaiting tx hash :\", swapTxHash);\n\n if (onTxSent) {\n onTxSent({\n chainId,\n action: \"swap\",\n transactionHash: swapTxHash,\n receiptPromise: swapTxReceiptPromise,\n transactionSpecificData: {\n action: \"swap\",\n source: \"local\",\n srcTokenAddress: marketPriceToUse.srcToken as Address,\n destTokenAddress: marketPriceToUse.destToken as Address,\n srcAmount: amountsAfterSlippage.srcAmount,\n destAmount: amountsAfterSlippage.destAmount,\n srcAmountUSD: marketPriceToUse.srcUSD,\n destAmountUSD: marketPriceToUse.destUSD,\n gasCost: marketPriceToUse.gasCost,\n gasCostUSD: marketPriceToUse.gasCostUSD,\n },\n });\n }\n\n swapTxReceipt = await swapTxReceiptPromise;\n\n if (swapTxReceipt) {\n onSwap?.({\n event: {\n name: \"Swap:confirmed\",\n params: {\n swapMode: \"market\",\n price: marketPriceToUse,\n txReceipt: swapTxReceipt,\n txHash: swapTxHash,\n },\n },\n });\n }\n }\n\n logger.log(\"~ swapTx ~ receipt:\", swapCallsReceipt || swapTxReceipt);\n // @TODO check if we need to see if receipt.status === \"reverted\" and trhow,\n // or if waitForTransactionReceipt already throws on such receipts\n\n return {\n tradeFlowType: marketSwapFlowType,\n approve: {\n txHash: approveTxHash,\n receipt: approveTxReceipt,\n },\n swap: {\n swapRequest,\n callsId: swapCallsId,\n txHash: swapTxHash,\n receipt: swapTxReceipt,\n callsReceipt: swapCallsReceipt,\n },\n marketPrice: marketPriceToUse,\n // @TODO add whatever else may be relevant\n account,\n receiverAddress,\n };\n } catch (error) {\n // Market swap failed, we can't be sure if nonce can be reused or it was incremented in a different tx\n // or even Order in the meantime\n if (signedPermitResult) {\n clearNonce(signedPermitResult.signedPermitData);\n }\n onSwap?.({\n event: {\n name: \"Swap:failed\",\n params: {\n swapMode: \"market\",\n error: error as Error,\n },\n },\n });\n throw error;\n } finally {\n // always unsubscribe if subscribed previously\n unsubscribeFromPrice?.();\n }\n };\n\n const marketSwapMut = useMutation({\n mutationFn: submitSwapTx,\n mutationKey: [MARKET_SWAP_MUTATION_KEY],\n onSuccess: (data) => {\n logger.log(\"Swap tx success\", data);\n },\n onError: (error) => {\n logger.error(\"Swap tx error\", error);\n },\n onSettled: () => {\n logger.log(\"Swap tx settled\");\n },\n });\n\n const runMarketSwapFlow = marketSwapMut.mutateAsync;\n\n const reset = () => {\n usingPriceRef.current = null;\n\n approveTxMut.reset();\n signPermitMut.reset();\n buildTxMut.reset();\n sendSwapTxMut.reset();\n batchTxMut.reset();\n marketSwapMut.reset();\n };\n\n const retryFlow = (options?: RunMarketOptions): Promise<SubmitSwapResult> => {\n const lastPrice = usingPriceRef.current;\n reset();\n return runMarketSwapFlow({ ...options, lastPrice });\n };\n\n // finalPrice if we reached that point, or usable price (based on allowance given)\n const usedPrice = usingPriceRef.current || marketPrice;\n\n const result = marketSwapMut.data;\n const submittedSwapRequest = result?.swap.swapRequest;\n\n /* 7. return result */\n return {\n tradeFlowType: marketSwapFlowType,\n chainId,\n runMarketSwapFlow,\n reset,\n cancelFlow,\n retryFlow,\n approval,\n signPermit,\n buildTxParams,\n swap,\n swapBatch,\n // marketSwapMut includes all steps' queries and mutations and returns more precise errors (including cancellation)\n isPending: marketSwapMut.isPending,\n isSuccess: marketSwapMut.isSuccess,\n isError: marketSwapMut.isError,\n error: marketSwapMut.error,\n result: marketSwapMut.data,\n usedPrice,\n freshPrice: marketPrice,\n submittedSwapRequest,\n };\n}\n"],"names":["marketSwapFlowType","MARKET_SWAP_MUTATION_KEY","useMarketFlow","marketPrice","_marketPrice","logger","useLogger","resolvedSlippage","useSlippage","swapSideFromInput","useSwapSide","priceParams","chainId","usePricesParams","result","marketPriceQuery","queryKey","marketPriceQueryKey","useMarketPriceQuery","query","enabled","data","approval","signPermit","approveTxMut","signPermitMut","events","approveOrPermitEvents","useApproveOrPermit","srcToken","srcAmount","spenderContractType","swapSide","side","tradeMode","buildTxMut","useBuildTx","mutationOptions","onSuccess","log","onError","error","buildTxParams","isPending","isError","isSuccess","sendSwapTxMut","useSendMarketSwapTx","forCurrentChain","canBatchTxs","useCanBatchTxs","addTxWithApprovals","useBatchWithApproveTxs","batchTxMut","useSendBatchTx","swapTxMined","useAwaitTx","hash","txHash","batchTxMined","useAwaitCalls","id","swap","receipt","isConfirmingTX","isConfirmingTxError","isTxSent","isTxPending","isLoading","isTxMined","isTxAwaitingError","lastCallsReceipt","receipts","length","swapBatch","callsId","transactionHash","isConfirmingCalls","isConfirmingCallsError","isCallsSent","isCallsPending","isCallsMined","isCallsAwaitingError","address","account","useAccount","ensureTxReceipt","useEnsureTxReceipt","ensureCallsStatus","useEnsureCallsStatus","currentAbortControllerRef","useRef","usingPriceRef","cancelFlow","current","abort","UserCancelledError","receiverAddress","useSwapReceiverAddressValue","markNonceAsUsed","clearNonce","useMarkPermit1Or2NonceAsUsed","constructGasParams","useConstructGasParams","partner","partnerAddress","partnerFeeBps","partnerTakesSurplus","usePartner","subscribeToPrice","useSubscribeToMarketPrice","onSwap","useWidgetEvents","submitSwapTx","onTxSent","lastPrice","reset","assert","abortController","AbortController","signal","signedPermitResult","approveTxHash","approveTxReceipt","allowanceToSet","allowanceToPermit","amountToPermit","freshPrice","hmac","newPriceResult","refetch","cancelRefetch","throwIfAborted","unsubscribeFromPrice","shouldBatchTxs","needsApproval","approvedAmount","onData","newPrice","aborted","undefined","amountsAfterSlippage","applySlippage","destAmount","BigInt","tryPermit","isPermitSupported","isPermitReadyToSign","onApproveTx","request","approveAsync","allowanceData","sent","approveTxReceiptPromise","onReplaced","action","receiptPromise","transactionSpecificData","tokenAddress","token","spenderAddress","spender","confirmed","txReceipt","onSignPermit","signPermitAsync","value","permit","permitEncodedArgs","failed","marketPriceToUse","gasParams","swapRequest","swapTxInput","userAddress","receiver","destToken","srcDecimals","destDecimals","takeSurplus","priceRoute","swapTxOptions","ignoreGasEstimate","ignoreAllowance","degenMode","txParams","mutateAsync","swapTxHash","swapCallsId","event","name","params","swapMode","price","calls","txsParams","to","from","approveProps","sendCallsResult","sendCalls","sendTransactionAsync","signedPermitData","swapCallsReceipt","swapTxReceipt","sendCallsReceiptPromise","then","status","source","srcTokenAddress","destTokenAddress","srcAmountUSD","srcUSD","destAmountUSD","destUSD","gasCost","callsReceipt","swapTxReceiptPromise","gasCostUSD","tradeFlowType","approve","marketSwapMut","useMutation","mutationFn","mutationKey","onSettled","runMarketSwapFlow","retryFlow","options","usedPrice","submittedSwapRequest"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useMarketFlow.js","sources":["../../../../src/hooks/swap/tradeFlow/useMarketFlow.ts"],"sourcesContent":["import { useAwaitTx } from \"@/hooks/txs\";\nimport type { OptimalRate } from \"@velora-dex/sdk\";\nimport { useAccount } from \"wagmi\";\nimport { useSendMarketSwapTx } from \"../prices/market/mutations/useSendMarketSwapTx\";\nimport {\n useBuildTx,\n type BuildMarketSwapTxInput,\n} from \"../prices/market/mutations/useBuildTx\";\nimport { assert } from \"ts-essentials\";\nimport { useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport {\n type Address,\n type Hash,\n type Hex,\n type TransactionReceipt,\n} from \"viem\";\nimport type {\n ApprovalFlowResult,\n SignPermitFlowResult,\n SubmitTxResult,\n} from \"./common/types\";\nimport { applySlippage } from \"@/lib/utils/price\";\nimport { useSlippage } from \"@/hooks/useSlippage\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { useRef } from \"react\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport {\n isTransactionCancelledError,\n TransactionCancelledError,\n UserCancelledError,\n} from \"./common/errors\";\nimport { useSwapReceiverAddressValue } from \"@/components/widget/ReceiverAddress/state/receiverAddressAtom\";\nimport type {\n CallsSentObject,\n TxSentObject,\n} from \"@/lib/utils/transactionHandlers\";\nimport { useSwapSide } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport { useApproveOrPermit } from \"./common/useApproveOrPermit\";\nimport {\n useMarkPermit1Or2NonceAsUsed,\n type SignedPermitResult,\n} from \"./common/useSignPermit1Or2\";\nimport { useLogger } from \"@/core/logger\";\nimport { useConstructGasParams } from \"./common/useConstructGasParams\";\nimport {\n useMarketPriceQuery,\n useSubscribeToMarketPrice,\n} from \"../prices/market/queries/useMarketPriceQuery\";\nimport { usePartner } from \"@/hooks/usePartner\";\n\nimport { useSendBatchTx } from \"@/hooks/batch/useSendBatchTx\";\nimport { useCanBatchTxs } from \"@/hooks/batch/useCanBatchTxs\";\nimport {\n useAwaitCalls,\n useEnsureCallsStatus,\n} from \"@/hooks/batch/useAwaitCalls\";\nimport { type CallsReceipt } from \"@/hooks/batch/useAwaitCalls\";\nimport { useBatchWithApproveTxs } from \"@/hooks/batch/useBatchWithApproveTxs\";\nimport { useWidgetEvents } from \"@/core/state/widgetEventsAtom\";\nimport type { BatchTxStepResult } from \"./common/types\";\nimport { usePricesParams } from \"../prices/usePricesParams\";\nimport {\n useReplaceTx,\n type ReplaceTxResult,\n} from \"@/hooks/txs/mutations/useReplaceTx\";\nimport type { CancelOrderStepKey } from \"@/components/widget/TradeOverview/steps\";\n\nexport type UseMarketFlowInput = {\n marketPrice?: OptimalRate;\n};\n\nexport type MarketSwapRequest = BuildMarketSwapTxInput & {\n // narrow down BuildMarketSwapTxInput from \"any two present\" {srcAmount?, destAmount?, slippage?}\n // to \"amounts always present\" variant\n swapTxInput: { srcAmount: string; destAmount: string };\n};\n\nconst marketSwapFlowType = \"marketSwap\";\n\nexport type SubmitSwapResult = {\n tradeFlowType: typeof marketSwapFlowType;\n approve: SubmitTxResult;\n swap: SubmitTxResult & { swapRequest?: MarketSwapRequest };\n marketPrice: OptimalRate;\n account: Address;\n receiverAddress?: Address;\n};\n\ntype OnTxSent = (txSent: TxSentObject | CallsSentObject) => void;\n// @TODO instead add global onTxSent subscription to\n// MutationCache({onSuccess: txHash}) when sent\n// and QueryCache({onSuccess: txReceipt}) when mined,\n// maybe??\ntype RunMarketOptions = {\n onTxSent?: OnTxSent;\n};\n\nexport type UseMarketFlowResult = {\n tradeFlowType: typeof marketSwapFlowType;\n chainId: SupportedChainId;\n runMarketSwapFlow: (options?: RunMarketOptions) => Promise<SubmitSwapResult>;\n reset: () => void; // reset on Error to retry\n cancelFlow: () => void; // cancel flow\n retryFlow: (options?: RunMarketOptions) => Promise<SubmitSwapResult>; // reset and retry flow\n approval: ApprovalFlowResult;\n signPermit: SignPermitFlowResult;\n buildTxParams: {\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n swap: {\n txHash?: Hash;\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 isError: boolean;\n isSuccess: boolean;\n isTxCancellable: boolean;\n cancelSwapTx: () => Promise<ReplaceTxResult | undefined>;\n cancellingState: {\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n result?: ReplaceTxResult;\n step?: CancelOrderStepKey;\n };\n error: Error | null;\n };\n swapBatch: BatchTxStepResult;\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n result?: SubmitSwapResult;\n usedPrice?: OptimalRate;\n freshPrice?: OptimalRate;\n submittedSwapRequest?: MarketSwapRequest;\n};\n\nconst MARKET_SWAP_MUTATION_KEY = \"runMarketSwapFlow\";\n\nexport function useMarketFlow({\n marketPrice: _marketPrice,\n}: UseMarketFlowInput): UseMarketFlowResult {\n const logger = useLogger(\"MarketFlow\");\n const { resolvedSlippage } = useSlippage(\"swap\");\n const swapSideFromInput = useSwapSide();\n\n const { priceParams, chainId } = usePricesParams(\"swap\");\n\n const { result: marketPriceQuery, queryKey: marketPriceQueryKey } =\n useMarketPriceQuery({\n priceParams,\n chainId,\n query: {\n enabled: false,\n },\n });\n\n const marketPrice = marketPriceQuery.data || _marketPrice;\n\n /* Inside useApproveOrPermit:\n 1. Get allowance for tokenFrom \n 2.1. submit Approve tx if necessary \n\n 2.2. sign Permit1 \n\n 3. await Approve tx (if not using Permit) \n */\n const {\n approval,\n signPermit,\n approveTxMut,\n signPermitMut,\n events: approveOrPermitEvents,\n } = useApproveOrPermit({\n srcToken: marketPrice?.srcToken,\n // if we already approved some amount, save it in approval and signPermit objects\n srcAmount: marketPrice?.srcAmount,\n spenderContractType: \"AugustusSwapper\",\n // marketPrice is the preferred source of truth\n swapSide: marketPrice?.side ?? swapSideFromInput,\n tradeMode: \"swap\",\n chainId,\n });\n\n /* 4. Build Swap tx */\n const buildTxMut = useBuildTx({\n chainId,\n mutationOptions: {\n onSuccess: () => {\n logger.log(\"Build tx success\");\n },\n onError: (error) => {\n logger.error(\"Build tx error\", error);\n },\n },\n });\n\n const buildTxParams: UseMarketFlowResult[\"buildTxParams\"] = {\n isPending: buildTxMut.isPending,\n isError: buildTxMut.isError,\n isSuccess: buildTxMut.isSuccess,\n error: buildTxMut.error,\n };\n\n /* 5. submit Swap tx */\n\n /* 5.1. submit standalone Swap tx */\n\n const sendSwapTxMut = useSendMarketSwapTx({\n onSuccess: () => {\n logger.log(\"Swap tx success\");\n },\n onError: (error) => {\n logger.error(\"Swap tx error\", error);\n },\n });\n\n /* 5.2. submit Batch tx */\n const { forCurrentChain: canBatchTxs } = useCanBatchTxs();\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 /* 6. await Swap tx */\n\n /* 6.1. await standalone Swap tx */\n const swapTxMined = useAwaitTx({\n hash: sendSwapTxMut.txHash,\n chainId,\n });\n\n /* 6.2. await Batch tx */\n const batchTxMined = useAwaitCalls({\n id: batchTxMut.data?.id,\n });\n\n const cancelSwapTxMut = useReplaceTx({\n chainId,\n txHash: sendSwapTxMut.txHash,\n cancelTxType: \"SWAP\",\n onSuccess: (details) => {\n onSwap?.({\n event: {\n name: \"Swap:cancelled\",\n params: {\n swapMode: \"market\",\n cancelTxDetails: details,\n },\n },\n });\n },\n });\n\n // allows to abort (cancel) currently running flow,\n const currentAbortControllerRef = useRef<AbortController | null>(null);\n\n const cancelSwapTx = async () => {\n try {\n assert(sendSwapTxMut.txHash, \"Swap tx hash is not available\");\n const result = await cancelSwapTxMut.replaceTx({\n action: \"cancel\",\n hash: sendSwapTxMut.txHash,\n });\n if (result.replacementTxReceipt.status === \"success\") {\n currentAbortControllerRef.current?.abort(\n new TransactionCancelledError(\"Swap tx cancelled\", result)\n );\n }\n return result;\n } catch (error) {\n logger.error(\"Cancel swap tx error\", error);\n // allow to re-trigger cancellation after error (like UserCancelledError)\n cancelSwapTxMut.reset();\n }\n };\n\n const swap: UseMarketFlowResult[\"swap\"] = {\n txHash: sendSwapTxMut.txHash,\n receipt: swapTxMined.data,\n /* tx sending */\n isConfirmingTX: sendSwapTxMut.isPending,\n isConfirmingTxError: sendSwapTxMut.isError,\n isTxSent: sendSwapTxMut.isSuccess,\n /* tx awaiting */\n isTxPending: swapTxMined.isLoading,\n isTxMined: swapTxMined.isSuccess,\n isTxAwaitingError: swapTxMined.isError,\n /* combined */\n isPending: sendSwapTxMut.isPending || swapTxMined.isLoading,\n isSuccess: swapTxMined.isSuccess, // final success\n isError: sendSwapTxMut.isError || swapTxMined.isError,\n error: sendSwapTxMut.error || swapTxMined.error,\n isTxCancellable:\n cancelSwapTxMut.isWalletSupported &&\n // allow to retry cancel (no !cancelSwapTxMut.isPending check) if the Cancel tx is slow\n !!sendSwapTxMut.txHash &&\n !swapTxMined.data &&\n !cancelSwapTxMut.isSuccess,\n cancelSwapTx,\n cancellingState: {\n isPending: cancelSwapTxMut.isPending,\n isError: cancelSwapTxMut.isError,\n isSuccess: cancelSwapTxMut.isSuccess,\n error: cancelSwapTxMut.error,\n result: cancelSwapTxMut.result,\n step: cancelSwapTxMut.step,\n },\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 swapBatch: UseMarketFlowResult[\"swapBatch\"] = {\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 { address: account } = useAccount();\n\n const ensureTxReceipt = useEnsureTxReceipt();\n const ensureCallsStatus = useEnsureCallsStatus();\n\n const usingPriceRef = useRef<OptimalRate | null>(null);\n\n const cancelFlow = () => {\n currentAbortControllerRef.current?.abort(new UserCancelledError());\n currentAbortControllerRef.current = null;\n\n usingPriceRef.current = null;\n };\n\n const receiverAddress = useSwapReceiverAddressValue();\n\n const { markNonceAsUsed, clearNonce } = useMarkPermit1Or2NonceAsUsed({\n chainId,\n });\n\n const { constructGasParams } = useConstructGasParams();\n\n const { partner, partnerAddress, partnerFeeBps, partnerTakesSurplus } =\n usePartner();\n\n const subscribeToPrice = useSubscribeToMarketPrice();\n\n const { onSwap } = useWidgetEvents();\n\n const submitSwapTx: (\n options?: RunMarketOptions & { lastPrice?: OptimalRate | null }\n ) => Promise<SubmitSwapResult> = async ({ onTxSent, lastPrice } = {}) => {\n // reset all mutations except the current one,\n // otherwise we'll have previous data (txs) as mutation results\n approveTxMut.reset();\n signPermitMut.reset();\n buildTxMut.reset();\n sendSwapTxMut.reset();\n batchTxMut.reset();\n cancelSwapTxMut.reset();\n\n // no sense in starting flow without a price,\n // which may be unavailable only if we are retrying and deltaPrice response now returns an error.\n // Otherwise this flow will be stopped by disabling Swap button in the first place\n assert(marketPrice, \"Market price is not available\");\n\n const abortController = new AbortController();\n currentAbortControllerRef.current = abortController;\n\n const signal = abortController.signal;\n\n let signedPermitResult: SignedPermitResult | undefined;\n\n let approveTxHash: Hash | undefined;\n let approveTxReceipt: TransactionReceipt | undefined;\n\n // at this point this is the syncronously available price\n const allowanceToSet = approval.allowanceToSet;\n const allowanceToPermit = signPermit.amountToPermit;\n // we use this allowance as a max allowance we will accept new prices for\n\n // marketPrice here is the starting price, available before async code and waiting\n let freshPrice = marketPrice;\n if (freshPrice.hmac === lastPrice?.hmac) {\n // we are resubmitting the Swap tx, because it failed the last time,\n // but the price hasn't updated yet, so force refetch\n const newPriceResult = await marketPriceQuery.refetch({\n cancelRefetch: false,\n });\n // check if cancelled during refetch\n signal.throwIfAborted();\n\n if (newPriceResult.data) {\n freshPrice = newPriceResult.data;\n }\n }\n let unsubscribeFromPrice: (() => void) | undefined;\n // this also resets previous usingPriceRef\n usingPriceRef.current = freshPrice;\n\n const shouldBatchTxs =\n canBatchTxs && approval.needsApproval && !!allowanceToSet;\n\n try {\n // need allowance\n if (!shouldBatchTxs && approval.needsApproval && allowanceToSet) {\n // queryKey used to fetch the current price,\n // it will be used for the subsequent price refetches as long as price params not changed\n const queryKey = marketPriceQueryKey;\n\n // should always be available\n if (queryKey) {\n // freeze allowanceToSet\n const approvedAmount = allowanceToSet;\n\n // subscribe to price updates to keep track of new prices for the same price params,\n // independently of the hook itself\n unsubscribeFromPrice = subscribeToPrice({\n queryKey,\n onData: (newPrice) => {\n if (signal.aborted) {\n // just in case unsubscribe in finally is not yet called\n // for the queued update with the price from an already cancelled flow\n unsubscribeFromPrice?.();\n unsubscribeFromPrice = undefined;\n return;\n }\n\n // slightly higher amount if BUY with slippage\n const amountsAfterSlippage = applySlippage(\n {\n srcAmount: newPrice.srcAmount,\n destAmount: newPrice.destAmount,\n },\n resolvedSlippage,\n newPrice.side\n );\n\n // if new price fits into allowance, update it\n if (approvedAmount >= BigInt(amountsAfterSlippage.srcAmount)) {\n logger.log(\"~ fresh price ~\", newPrice);\n freshPrice = newPrice;\n usingPriceRef.current = freshPrice;\n }\n },\n });\n }\n\n const tryPermit =\n signPermit.isPermitSupported && signPermit.isPermitReadyToSign;\n try {\n if (!tryPermit) {\n approveOrPermitEvents.onApproveTx.request({ allowanceToSet });\n\n // Token doesn't support Permit\n // make an Approval tx\n approveTxHash = await approveTxMut.approveAsync({\n allowanceData: {\n allowanceToSet,\n },\n });\n\n approveOrPermitEvents.onApproveTx.sent({\n allowanceToSet,\n txHash: approveTxHash,\n });\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n const approveTxReceiptPromise = ensureTxReceipt({\n hash: approveTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\"onReplaced:approveTx\", approveTxHash, data);\n },\n });\n\n if (onTxSent) {\n onTxSent({\n chainId,\n action: \"approve\",\n transactionHash: approveTxHash,\n receiptPromise: approveTxReceiptPromise,\n transactionSpecificData: {\n action: \"approve\",\n approvedAmount: allowanceToSet,\n tokenAddress: approval.token as Address,\n spenderAddress: approval.spender as Address,\n },\n });\n }\n\n approveTxReceipt = await approveTxReceiptPromise;\n\n approveOrPermitEvents.onApproveTx.confirmed({\n allowanceToSet,\n txHash: approveTxHash,\n txReceipt: approveTxReceipt,\n });\n\n logger.log(\"~ approveTx ~ receipt:\", approveTxReceipt);\n } else {\n approveOrPermitEvents.onSignPermit.request({\n allowanceToSet: allowanceToPermit,\n });\n\n // sign Permit\n signedPermitResult = await signPermitMut.signPermitAsync({\n value: allowanceToPermit,\n });\n\n approveOrPermitEvents.onSignPermit.confirmed({\n allowanceToSet: allowanceToPermit,\n permit: signedPermitResult?.permitEncodedArgs,\n });\n }\n } catch (error) {\n if (!tryPermit) {\n approveOrPermitEvents.onApproveTx.failed({\n allowanceToSet,\n error: error as Error,\n txHash: approveTxHash, // won't necessarily be available\n });\n } else {\n approveOrPermitEvents.onSignPermit.failed({\n allowanceToSet: allowanceToPermit,\n error: error as Error,\n });\n }\n throw error;\n }\n }\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n assert(account, \"Account is not connected\");\n // as long as we had set approvedAmount, we will only get new prices that satisfy the allowance\n const marketPriceToUse = freshPrice;\n usingPriceRef.current = marketPriceToUse;\n // no longer need updates, unsubscribe\n unsubscribeFromPrice?.();\n unsubscribeFromPrice = undefined;\n\n assert(marketPriceToUse, \"Market price is not available\");\n\n const amountsAfterSlippage = applySlippage(\n {\n srcAmount: marketPriceToUse.srcAmount,\n destAmount: marketPriceToUse.destAmount,\n },\n resolvedSlippage,\n marketPriceToUse.side\n );\n\n // fresh gas params\n const gasParams = constructGasParams();\n\n const swapRequest: MarketSwapRequest = {\n swapTxInput: {\n userAddress: account,\n receiver: receiverAddress,\n srcToken: marketPriceToUse.srcToken,\n destToken: marketPriceToUse.destToken,\n srcDecimals: marketPriceToUse.srcDecimals,\n destDecimals: marketPriceToUse.destDecimals,\n\n partner,\n partnerAddress,\n partnerFeeBps,\n takeSurplus: partnerTakesSurplus,\n\n permit: signedPermitResult?.permitEncodedArgs, // just signed Permit signature\n\n priceRoute: marketPriceToUse,\n ...amountsAfterSlippage,\n },\n\n swapTxOptions: {\n // ignoreChecks: true,\n // gas estimate will break if only swap tx is estimated, but approve tx is not considered in a batch\n ignoreGasEstimate: shouldBatchTxs,\n // for Batch-capable wallets batch Approve+Swap tx have to ignore all checks\n ignoreAllowance: shouldBatchTxs,\n // onlyParams: true,\n degenMode: priceParams.degenMode,\n ...gasParams,\n },\n };\n\n const txParams = await buildTxMut.mutateAsync(swapRequest);\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n let swapTxHash: Hash | undefined;\n let swapCallsId: string | undefined;\n\n onSwap?.({\n event: {\n name: \"Swap:request\",\n params: {\n swapMode: \"market\",\n price: marketPriceToUse,\n },\n },\n });\n\n if (shouldBatchTxs) {\n const { calls } = await addTxWithApprovals({\n txsParams: [\n {\n to: txParams.to as Address,\n account: txParams.from as Address,\n data: txParams.data as Hex,\n value: BigInt(txParams.value),\n chainId: txParams.chainId,\n },\n ],\n approveProps: [\n {\n spender: approval.spender,\n allowanceToSet: approval.allowanceToSet,\n token: approval.token,\n chainId: approval.chainId,\n },\n ],\n });\n\n const sendCallsResult = await batchTxMut.sendCalls({\n txsParams: calls,\n });\n swapCallsId = sendCallsResult.id;\n onSwap?.({\n event: {\n name: \"Swap:sent\",\n params: {\n swapMode: \"market\",\n price: marketPriceToUse,\n callsId: swapCallsId,\n },\n },\n });\n } else {\n swapTxHash = await sendSwapTxMut.sendTransactionAsync({\n ...txParams,\n chainId,\n });\n onSwap?.({\n event: {\n name: \"Swap:sent\",\n params: {\n swapMode: \"market\",\n price: marketPriceToUse,\n txHash: swapTxHash,\n },\n },\n });\n }\n\n // no use aborting past this point, tx is already sent,\n // but we may want to connect this late abortion to tx cancellation, in the future\n\n // tx is sent, consider Token nonce as used\n if (signedPermitResult) {\n markNonceAsUsed(signedPermitResult.signedPermitData);\n }\n\n let swapCallsReceipt: CallsReceipt | undefined;\n let swapTxReceipt: TransactionReceipt | undefined;\n\n if (swapCallsId) {\n const sendCallsReceiptPromise = ensureCallsStatus({\n id: swapCallsId,\n }).then((status) => status.receipts?.[status.receipts.length - 1]);\n\n logger.log(\"~ swapTx ~ awaiting calls id :\", swapCallsId);\n\n if (onTxSent) {\n onTxSent({\n chainId,\n action: \"swap\",\n callsId: swapCallsId,\n receiptPromise: sendCallsReceiptPromise,\n transactionSpecificData: {\n action: \"swap\",\n source: \"local\",\n srcTokenAddress: marketPriceToUse.srcToken as Address,\n destTokenAddress: marketPriceToUse.destToken as Address,\n srcAmount: amountsAfterSlippage.srcAmount,\n destAmount: amountsAfterSlippage.destAmount,\n srcAmountUSD: marketPriceToUse.srcUSD,\n destAmountUSD: marketPriceToUse.destUSD,\n gasCost: marketPriceToUse.gasCost,\n swapSide: marketPriceToUse.side,\n },\n });\n }\n\n swapCallsReceipt = await sendCallsReceiptPromise;\n\n if (swapCallsReceipt) {\n onSwap?.({\n event: {\n name: \"Swap:confirmed\",\n params: {\n swapMode: \"market\",\n price: marketPriceToUse,\n callsReceipt: swapCallsReceipt,\n callsId: swapCallsId,\n },\n },\n });\n }\n } else if (swapTxHash) {\n const swapTxReceiptPromise = ensureTxReceipt({\n hash: swapTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\"onReplaced:swapTx\", swapTxHash, data);\n },\n });\n\n logger.log(\"~ swapTx ~ awaiting tx hash :\", swapTxHash);\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n // watch for signal to potentially get aborted after a cancel tx is mined\n const txCancelledPromise = new Promise<never>((_, reject) => {\n signal.onabort = () => {\n try {\n signal.throwIfAborted();\n } catch (error) {\n if (isTransactionCancelledError(error)) {\n reject(error);\n }\n }\n };\n });\n\n // whichever happens first:\n // - original swap tx is mined (not reverted) and swapTxReceiptPromise resolves\n // - the abort signal fires (e.g. after a cancel/replace tx is mined) and the race rejects\n // if the original tx is replaced/cancelled, ensureTxReceipt will never resolve (or reject if given a timeout)\n const txReceiptOrCancelledPromise = Promise.race([\n swapTxReceiptPromise,\n txCancelledPromise,\n ]);\n\n if (onTxSent) {\n onTxSent({\n chainId,\n action: \"swap\",\n transactionHash: swapTxHash,\n receiptPromise: txReceiptOrCancelledPromise,\n transactionSpecificData: {\n action: \"swap\",\n source: \"local\",\n srcTokenAddress: marketPriceToUse.srcToken as Address,\n destTokenAddress: marketPriceToUse.destToken as Address,\n srcAmount: amountsAfterSlippage.srcAmount,\n destAmount: amountsAfterSlippage.destAmount,\n srcAmountUSD: marketPriceToUse.srcUSD,\n destAmountUSD: marketPriceToUse.destUSD,\n gasCost: marketPriceToUse.gasCost,\n gasCostUSD: marketPriceToUse.gasCostUSD,\n swapSide: marketPriceToUse.side,\n },\n });\n }\n\n swapTxReceipt = await txReceiptOrCancelledPromise;\n\n if (swapTxReceipt) {\n onSwap?.({\n event: {\n name: \"Swap:confirmed\",\n params: {\n swapMode: \"market\",\n price: marketPriceToUse,\n txReceipt: swapTxReceipt,\n txHash: swapTxHash,\n },\n },\n });\n }\n }\n\n logger.log(\"~ swapTx ~ receipt:\", swapCallsReceipt || swapTxReceipt);\n\n return {\n tradeFlowType: marketSwapFlowType,\n approve: {\n txHash: approveTxHash,\n receipt: approveTxReceipt,\n },\n swap: {\n swapRequest,\n callsId: swapCallsId,\n txHash: swapTxHash,\n receipt: swapTxReceipt,\n callsReceipt: swapCallsReceipt,\n },\n marketPrice: marketPriceToUse,\n // @TODO add whatever else may be relevant\n account,\n receiverAddress,\n };\n } catch (error) {\n // Market swap failed, we can't be sure if nonce can be reused or it was incremented in a different tx\n // or even Order in the meantime\n if (signedPermitResult) {\n clearNonce(signedPermitResult.signedPermitData);\n }\n\n if (!isTransactionCancelledError(error)) {\n // Swap:cancelled event is handled in cancelSwapTxMut.onSuccess\n onSwap?.({\n event: {\n name: \"Swap:failed\",\n params: {\n swapMode: \"market\",\n error: error as Error,\n },\n },\n });\n }\n throw error;\n } finally {\n // always unsubscribe if subscribed previously\n unsubscribeFromPrice?.();\n }\n };\n\n const marketSwapMut = useMutation({\n mutationFn: submitSwapTx,\n mutationKey: [MARKET_SWAP_MUTATION_KEY],\n onSuccess: (data) => {\n logger.log(\"Swap tx success\", data);\n },\n onError: (error) => {\n logger.error(\"Swap tx error\", error);\n },\n onSettled: () => {\n logger.log(\"Swap tx settled\");\n },\n });\n\n const runMarketSwapFlow = marketSwapMut.mutateAsync;\n\n const reset = () => {\n usingPriceRef.current = null;\n\n approveTxMut.reset();\n signPermitMut.reset();\n buildTxMut.reset();\n sendSwapTxMut.reset();\n batchTxMut.reset();\n marketSwapMut.reset();\n\n cancelSwapTxMut.reset();\n };\n\n const retryFlow = (options?: RunMarketOptions): Promise<SubmitSwapResult> => {\n const lastPrice = usingPriceRef.current;\n reset();\n return runMarketSwapFlow({ ...options, lastPrice });\n };\n\n // finalPrice if we reached that point, or usable price (based on allowance given)\n const usedPrice = usingPriceRef.current || marketPrice;\n\n const result = marketSwapMut.data;\n const submittedSwapRequest = result?.swap.swapRequest;\n\n /* 7. return result */\n return {\n tradeFlowType: marketSwapFlowType,\n chainId,\n runMarketSwapFlow,\n reset,\n cancelFlow,\n retryFlow,\n approval,\n signPermit,\n buildTxParams,\n swap,\n swapBatch,\n // marketSwapMut includes all steps' queries and mutations and returns more precise errors (including cancellation)\n isPending: marketSwapMut.isPending,\n isSuccess: marketSwapMut.isSuccess,\n isError: marketSwapMut.isError,\n error: marketSwapMut.error,\n result: marketSwapMut.data,\n usedPrice,\n freshPrice: marketPrice,\n submittedSwapRequest,\n };\n}\n"],"names":["marketSwapFlowType","MARKET_SWAP_MUTATION_KEY","useMarketFlow","marketPrice","_marketPrice","logger","useLogger","resolvedSlippage","useSlippage","swapSideFromInput","useSwapSide","priceParams","chainId","usePricesParams","result","marketPriceQuery","queryKey","marketPriceQueryKey","useMarketPriceQuery","query","enabled","data","approval","signPermit","approveTxMut","signPermitMut","events","approveOrPermitEvents","useApproveOrPermit","srcToken","srcAmount","spenderContractType","swapSide","side","tradeMode","buildTxMut","useBuildTx","mutationOptions","onSuccess","log","onError","error","buildTxParams","isPending","isError","isSuccess","sendSwapTxMut","useSendMarketSwapTx","forCurrentChain","canBatchTxs","useCanBatchTxs","addTxWithApprovals","useBatchWithApproveTxs","batchTxMut","useSendBatchTx","swapTxMined","useAwaitTx","hash","txHash","batchTxMined","useAwaitCalls","id","cancelSwapTxMut","useReplaceTx","cancelTxType","details","onSwap","event","name","params","swapMode","cancelTxDetails","currentAbortControllerRef","useRef","cancelSwapTx","assert","replaceTx","action","replacementTxReceipt","status","current","abort","TransactionCancelledError","reset","swap","receipt","isConfirmingTX","isConfirmingTxError","isTxSent","isTxPending","isLoading","isTxMined","isTxAwaitingError","isTxCancellable","isWalletSupported","cancellingState","step","lastCallsReceipt","receipts","length","swapBatch","callsId","transactionHash","isConfirmingCalls","isConfirmingCallsError","isCallsSent","isCallsPending","isCallsMined","isCallsAwaitingError","address","account","useAccount","ensureTxReceipt","useEnsureTxReceipt","ensureCallsStatus","useEnsureCallsStatus","usingPriceRef","cancelFlow","UserCancelledError","receiverAddress","useSwapReceiverAddressValue","markNonceAsUsed","clearNonce","useMarkPermit1Or2NonceAsUsed","constructGasParams","useConstructGasParams","partner","partnerAddress","partnerFeeBps","partnerTakesSurplus","usePartner","subscribeToPrice","useSubscribeToMarketPrice","useWidgetEvents","submitSwapTx","onTxSent","lastPrice","abortController","AbortController","signal","signedPermitResult","approveTxHash","approveTxReceipt","allowanceToSet","allowanceToPermit","amountToPermit","freshPrice","hmac","newPriceResult","refetch","cancelRefetch","throwIfAborted","unsubscribeFromPrice","shouldBatchTxs","needsApproval","approvedAmount","onData","newPrice","aborted","undefined","amountsAfterSlippage","applySlippage","destAmount","BigInt","tryPermit","isPermitSupported","isPermitReadyToSign","onApproveTx","request","approveAsync","allowanceData","sent","approveTxReceiptPromise","onReplaced","receiptPromise","transactionSpecificData","tokenAddress","token","spenderAddress","spender","confirmed","txReceipt","onSignPermit","signPermitAsync","value","permit","permitEncodedArgs","failed","marketPriceToUse","gasParams","swapRequest","swapTxInput","userAddress","receiver","destToken","srcDecimals","destDecimals","takeSurplus","priceRoute","swapTxOptions","ignoreGasEstimate","ignoreAllowance","degenMode","txParams","mutateAsync","swapTxHash","swapCallsId","price","calls","txsParams","to","from","approveProps","sendCallsResult","sendCalls","sendTransactionAsync","signedPermitData","swapCallsReceipt","swapTxReceipt","sendCallsReceiptPromise","then","source","srcTokenAddress","destTokenAddress","srcAmountUSD","srcUSD","destAmountUSD","destUSD","gasCost","callsReceipt","swapTxReceiptPromise","txCancelledPromise","Promise","_","reject","onabort","isTransactionCancelledError","txReceiptOrCancelledPromise","race","gasCostUSD","tradeFlowType","approve","marketSwapMut","useMutation","mutationFn","mutationKey","onSettled","runMarketSwapFlow","retryFlow","options","usedPrice","submittedSwapRequest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AA6EA,MAAMA,kBAAAA,GAAqB,YAAA;AAsE3B,MAAMC,wBAAAA,GAA2B,mBAAA;AAE1B,SAASC,aAAAA,CAAc;AAAA,EAC5BC,WAAAA,EAAaC;AACK,CAAA,EAAwB;AAC1C,EAAA,MAAMC,MAAAA,GAASC,UAAU,YAAY,CAAA;AACrC,EAAA,MAAM;AAAA,IAAEC;AAAAA,GAAiB,GAAIC,YAAY,MAAM,CAAA;AAC/C,EAAA,MAAMC,oBAAoBC,WAAAA,EAAY;AAEtC,EAAA,MAAM;AAAA,IAAEC,WAAAA;AAAAA,IAAaC;AAAAA,GAAQ,GAAIC,gBAAgB,MAAM,CAAA;AAEvD,EAAA,MAAM;AAAA,IAAEC,MAAAA,EAAQC,gBAAAA;AAAAA,IAAkBC,QAAAA,EAAUC;AAAAA,MAC1CC,mBAAAA,CAAoB;AAAA,IAClBP,WAAAA;AAAAA,IACAC,OAAAA;AAAAA,IACAO,KAAAA,EAAO;AAAA,MACLC,OAAAA,EAAS;AAAA;AACX,GACD,CAAA;AAEH,EAAA,MAAMjB,WAAAA,GAAcY,iBAAiBM,IAAAA,IAAQjB,YAAAA;AAU7C,EAAA,MAAM;AAAA,IACJkB,QAAAA;AAAAA,IACAC,UAAAA;AAAAA,IACAC,YAAAA;AAAAA,IACAC,aAAAA;AAAAA,IACAC,MAAAA,EAAQC;AAAAA,MACNC,kBAAAA,CAAmB;AAAA,IACrBC,UAAU1B,WAAAA,EAAa0B,QAAAA;AAAAA;AAAAA,IAEvBC,WAAW3B,WAAAA,EAAa2B,SAAAA;AAAAA,IACxBC,mBAAAA,EAAqB,iBAAA;AAAA;AAAA,IAErBC,QAAAA,EAAU7B,aAAa8B,IAAAA,IAAQxB,iBAAAA;AAAAA,IAC/ByB,SAAAA,EAAW,MAAA;AAAA,IACXtB;AAAAA,GACD,CAAA;AAGD,EAAA,MAAMuB,aAAaC,UAAAA,CAAW;AAAA,IAC5BxB,OAAAA;AAAAA,IACAyB,eAAAA,EAAiB;AAAA,MACfC,WAAWA,MAAM;AACfjC,QAAAA,MAAAA,CAAOkC,IAAI,kBAAkB,CAAA;AAAA,MAC/B,CAAA;AAAA,MACAC,SAAUC,CAAAA,KAAAA,KAAU;AAClBpC,QAAAA,MAAAA,CAAOoC,KAAAA,CAAM,kBAAkBA,KAAK,CAAA;AAAA,MACtC;AAAA;AACF,GACD,CAAA;AAED,EAAA,MAAMC,aAAAA,GAAsD;AAAA,IAC1DC,WAAWR,UAAAA,CAAWQ,SAAAA;AAAAA,IACtBC,SAAST,UAAAA,CAAWS,OAAAA;AAAAA,IACpBC,WAAWV,UAAAA,CAAWU,SAAAA;AAAAA,IACtBJ,OAAON,UAAAA,CAAWM;AAAAA,GACpB;AAMA,EAAA,MAAMK,gBAAgBC,mBAAAA,CAAoB;AAAA,IACxCT,WAAWA,MAAM;AACfjC,MAAAA,MAAAA,CAAOkC,IAAI,iBAAiB,CAAA;AAAA,IAC9B,CAAA;AAAA,IACAC,SAAUC,CAAAA,OAAAA,KAAU;AAClBpC,MAAAA,MAAAA,CAAOoC,KAAAA,CAAM,iBAAiBA,OAAK,CAAA;AAAA,IACrC;AAAA,GACD,CAAA;AAGD,EAAA,MAAM;AAAA,IAAEO,eAAAA,EAAiBC;AAAAA,MAAgBC,cAAAA,EAAe;AACxD,EAAA,MAAM;AAAA,IAAEC;AAAAA,MAAuBC,sBAAAA,EAAuB;AAEtD,EAAA,MAAMC,aAAaC,cAAAA,CAAe;AAAA,IAChChB,WAAWA,MAAM;AACfjC,MAAAA,MAAAA,CAAOkC,IAAI,kBAAkB,CAAA;AAAA,IAC/B,CAAA;AAAA,IACAC,SAAUC,CAAAA,OAAAA,KAAU;AAClBpC,MAAAA,MAAAA,CAAOoC,KAAAA,CAAM,kBAAkBA,OAAK,CAAA;AAAA,IACtC;AAAA,GACD,CAAA;AAKD,EAAA,MAAMc,cAAcC,UAAAA,CAAW;AAAA,IAC7BC,MAAMX,aAAAA,CAAcY,MAAAA;AAAAA,IACpB9C;AAAAA,GACD,CAAA;AAGD,EAAA,MAAM+C,eAAeC,aAAAA,CAAc;AAAA,IACjCC,EAAAA,EAAIR,WAAWhC,IAAAA,EAAMwC;AAAAA,GACtB,CAAA;AAED,EAAA,MAAMC,kBAAkBC,YAAAA,CAAa;AAAA,IACnCnD,OAAAA;AAAAA,IACA8C,QAAQZ,aAAAA,CAAcY,MAAAA;AAAAA,IACtBM,YAAAA,EAAc,MAAA;AAAA,IACd1B,WAAY2B,CAAAA,OAAAA,KAAY;AACtBC,MAAAA,MAAAA,GAAS;AAAA,QACPC,KAAAA,EAAO;AAAA,UACLC,IAAAA,EAAM,gBAAA;AAAA,UACNC,MAAAA,EAAQ;AAAA,YACNC,QAAAA,EAAU,QAAA;AAAA,YACVC,eAAAA,EAAiBN;AAAAA;AACnB;AACF,OACD,CAAA;AAAA,IACH;AAAA,GACD,CAAA;AAGD,EAAA,MAAMO,yBAAAA,GAA4BC,OAA+B,IAAI,CAAA;AAErE,EAAA,MAAMC,eAAe,YAAY;AAC/B,IAAA,IAAI;AACFC,MAAAA,MAAAA,CAAO7B,aAAAA,CAAcY,QAAQ,+BAA+B,CAAA;AAC5D,MAAA,MAAM5C,MAAAA,GAAS,MAAMgD,eAAAA,CAAgBc,SAAAA,CAAU;AAAA,QAC7CC,MAAAA,EAAQ,QAAA;AAAA,QACRpB,MAAMX,aAAAA,CAAcY;AAAAA,OACrB,CAAA;AACD,MAAA,IAAI5C,MAAAA,CAAOgE,oBAAAA,CAAqBC,MAAAA,KAAW,SAAA,EAAW;AACpDP,QAAAA,yBAAAA,CAA0BQ,SAASC,KAAAA,CACjC,IAAIC,yBAAAA,CAA0B,mBAAA,EAAqBpE,MAAM,CAC3D,CAAA;AAAA,MACF;AACA,MAAA,OAAOA,MAAAA;AAAAA,IACT,SAAS2B,OAAAA,EAAO;AACdpC,MAAAA,MAAAA,CAAOoC,KAAAA,CAAM,wBAAwBA,OAAK,CAAA;AAE1CqB,MAAAA,eAAAA,CAAgBqB,KAAAA,EAAM;AAAA,IACxB;AAAA,EACF,CAAA;AAEA,EAAA,MAAMC,IAAAA,GAAoC;AAAA,IACxC1B,QAAQZ,aAAAA,CAAcY,MAAAA;AAAAA,IACtB2B,SAAS9B,WAAAA,CAAYlC,IAAAA;AAAAA;AAAAA,IAErBiE,gBAAgBxC,aAAAA,CAAcH,SAAAA;AAAAA,IAC9B4C,qBAAqBzC,aAAAA,CAAcF,OAAAA;AAAAA,IACnC4C,UAAU1C,aAAAA,CAAcD,SAAAA;AAAAA;AAAAA,IAExB4C,aAAalC,WAAAA,CAAYmC,SAAAA;AAAAA,IACzBC,WAAWpC,WAAAA,CAAYV,SAAAA;AAAAA,IACvB+C,mBAAmBrC,WAAAA,CAAYX,OAAAA;AAAAA;AAAAA,IAE/BD,SAAAA,EAAWG,aAAAA,CAAcH,SAAAA,IAAaY,WAAAA,CAAYmC,SAAAA;AAAAA,IAClD7C,WAAWU,WAAAA,CAAYV,SAAAA;AAAAA;AAAAA,IACvBD,OAAAA,EAASE,aAAAA,CAAcF,OAAAA,IAAWW,WAAAA,CAAYX,OAAAA;AAAAA,IAC9CH,KAAAA,EAAOK,aAAAA,CAAcL,KAAAA,IAASc,WAAAA,CAAYd,KAAAA;AAAAA,IAC1CoD,iBACE/B,eAAAA,CAAgBgC,iBAAAA;AAAAA,IAEhB,CAAC,CAAChD,aAAAA,CAAcY,MAAAA,IAChB,CAACH,WAAAA,CAAYlC,IAAAA,IACb,CAACyC,eAAAA,CAAgBjB,SAAAA;AAAAA,IACnB6B,YAAAA;AAAAA,IACAqB,eAAAA,EAAiB;AAAA,MACfpD,WAAWmB,eAAAA,CAAgBnB,SAAAA;AAAAA,MAC3BC,SAASkB,eAAAA,CAAgBlB,OAAAA;AAAAA,MACzBC,WAAWiB,eAAAA,CAAgBjB,SAAAA;AAAAA,MAC3BJ,OAAOqB,eAAAA,CAAgBrB,KAAAA;AAAAA,MACvB3B,QAAQgD,eAAAA,CAAgBhD,MAAAA;AAAAA,MACxBkF,MAAMlC,eAAAA,CAAgBkC;AAAAA;AACxB,GACF;AAIA,EAAA,MAAMC,gBAAAA,GACJtC,aAAatC,IAAAA,EAAM6E,QAAAA,GAAWvC,aAAatC,IAAAA,CAAK6E,QAAAA,CAASC,SAAS,CAAC,CAAA;AAErE,EAAA,MAAMC,SAAAA,GAA8C;AAAA,IAClDnD,WAAAA;AAAAA,IACAoD,OAAAA,EAAShD,WAAWhC,IAAAA,EAAMwC,EAAAA;AAAAA,IAC1BH,QAAQuC,gBAAAA,EAAkBK,eAAAA;AAAAA,IAC1BjB,OAAAA,EAASY,gBAAAA;AAAAA;AAAAA,IAETM,mBAAmBlD,UAAAA,CAAWV,SAAAA;AAAAA,IAC9B6D,wBAAwBnD,UAAAA,CAAWT,OAAAA;AAAAA,IACnC6D,aAAapD,UAAAA,CAAWR,SAAAA;AAAAA;AAAAA,IAExB6D,gBAAgB/C,YAAAA,CAAa+B,SAAAA;AAAAA,IAC7BiB,cAAchD,YAAAA,CAAad,SAAAA;AAAAA,IAC3B+D,sBAAsBjD,YAAAA,CAAaf,OAAAA;AAAAA;AAAAA,IAEnCD,SAAAA,EAAWU,UAAAA,CAAWV,SAAAA,IAAagB,YAAAA,CAAa+B,SAAAA;AAAAA,IAChD7C,WAAWc,YAAAA,CAAad,SAAAA;AAAAA,IACxBD,OAAAA,EAASS,UAAAA,CAAWT,OAAAA,IAAWe,YAAAA,CAAaf,OAAAA;AAAAA,IAC5CH,KAAAA,EAAOY,UAAAA,CAAWZ,KAAAA,IAASkB,YAAAA,CAAalB;AAAAA,GAC1C;AAEA,EAAA,MAAM;AAAA,IAAEoE,OAAAA,EAASC;AAAAA,MAAYC,UAAAA,EAAW;AAExC,EAAA,MAAMC,kBAAkBC,kBAAAA,EAAmB;AAC3C,EAAA,MAAMC,oBAAoBC,oBAAAA,EAAqB;AAE/C,EAAA,MAAMC,aAAAA,GAAgB3C,OAA2B,IAAI,CAAA;AAErD,EAAA,MAAM4C,aAAaA,MAAM;AACvB7C,IAAAA,yBAAAA,CAA0BQ,OAAAA,EAASC,KAAAA,CAAM,IAAIqC,kBAAAA,EAAoB,CAAA;AACjE9C,IAAAA,yBAAAA,CAA0BQ,OAAAA,GAAU,IAAA;AAEpCoC,IAAAA,aAAAA,CAAcpC,OAAAA,GAAU,IAAA;AAAA,EAC1B,CAAA;AAEA,EAAA,MAAMuC,kBAAkBC,2BAAAA,EAA4B;AAEpD,EAAA,MAAM;AAAA,IAAEC,eAAAA;AAAAA,IAAiBC;AAAAA,MAAeC,4BAAAA,CAA6B;AAAA,IACnE/G;AAAAA,GACD,CAAA;AAED,EAAA,MAAM;AAAA,IAAEgH;AAAAA,MAAuBC,qBAAAA,EAAsB;AAErD,EAAA,MAAM;AAAA,IAAEC,OAAAA;AAAAA,IAASC,cAAAA;AAAAA,IAAgBC,aAAAA;AAAAA,IAAeC;AAAAA,MAC9CC,UAAAA,EAAW;AAEb,EAAA,MAAMC,mBAAmBC,yBAAAA,EAA0B;AAEnD,EAAA,MAAM;AAAA,IAAElE;AAAAA,MAAWmE,eAAAA,EAAgB;AAEnC,EAAA,MAAMC,eAE2B,OAAO;AAAA,IAAEC,QAAAA;AAAAA,IAAUC;AAAAA,GAAU,GAAI,EAAC,KAAM;AAGvEhH,IAAAA,YAAAA,CAAa2D,KAAAA,EAAM;AACnB1D,IAAAA,aAAAA,CAAc0D,KAAAA,EAAM;AACpBhD,IAAAA,UAAAA,CAAWgD,KAAAA,EAAM;AACjBrC,IAAAA,aAAAA,CAAcqC,KAAAA,EAAM;AACpB9B,IAAAA,UAAAA,CAAW8B,KAAAA,EAAM;AACjBrB,IAAAA,eAAAA,CAAgBqB,KAAAA,EAAM;AAKtBR,IAAAA,MAAAA,CAAOxE,aAAa,+BAA+B,CAAA;AAEnD,IAAA,MAAMsI,eAAAA,GAAkB,IAAIC,eAAAA,EAAgB;AAC5ClE,IAAAA,yBAAAA,CAA0BQ,OAAAA,GAAUyD,eAAAA;AAEpC,IAAA,MAAME,SAASF,eAAAA,CAAgBE,MAAAA;AAE/B,IAAA,IAAIC,kBAAAA;AAEJ,IAAA,IAAIC,aAAAA;AACJ,IAAA,IAAIC,gBAAAA;AAGJ,IAAA,MAAMC,iBAAiBzH,QAAAA,CAASyH,cAAAA;AAChC,IAAA,MAAMC,oBAAoBzH,UAAAA,CAAW0H,cAAAA;AAIrC,IAAA,IAAIC,UAAAA,GAAa/I,WAAAA;AACjB,IAAA,IAAI+I,UAAAA,CAAWC,IAAAA,KAASX,SAAAA,EAAWW,IAAAA,EAAM;AAGvC,MAAA,MAAMC,cAAAA,GAAiB,MAAMrI,gBAAAA,CAAiBsI,OAAAA,CAAQ;AAAA,QACpDC,aAAAA,EAAe;AAAA,OAChB,CAAA;AAEDX,MAAAA,MAAAA,CAAOY,cAAAA,EAAe;AAEtB,MAAA,IAAIH,eAAe/H,IAAAA,EAAM;AACvB6H,QAAAA,UAAAA,GAAaE,cAAAA,CAAe/H,IAAAA;AAAAA,MAC9B;AAAA,IACF;AACA,IAAA,IAAImI,oBAAAA;AAEJpC,IAAAA,aAAAA,CAAcpC,OAAAA,GAAUkE,UAAAA;AAExB,IAAA,MAAMO,cAAAA,GACJxG,WAAAA,IAAe3B,QAAAA,CAASoI,aAAAA,IAAiB,CAAC,CAACX,cAAAA;AAE7C,IAAA,IAAI;AAEF,MAAA,IAAI,CAACU,cAAAA,IAAkBnI,QAAAA,CAASoI,aAAAA,IAAiBX,cAAAA,EAAgB;AAG/D,QAAA,MAAM/H,QAAAA,GAAWC,mBAAAA;AAGjB,QAAA,IAAID,QAAAA,EAAU;AAEZ,UAAA,MAAM2I,cAAAA,GAAiBZ,cAAAA;AAIvBS,UAAAA,oBAAAA,GAAuBrB,gBAAAA,CAAiB;AAAA,YACtCnH,QAAAA;AAAAA,YACA4I,QAASC,CAAAA,QAAAA,KAAa;AACpB,cAAA,IAAIlB,OAAOmB,OAAAA,EAAS;AAGlBN,gBAAAA,oBAAAA,IAAuB;AACvBA,gBAAAA,oBAAAA,GAAuBO,KAAAA,CAAAA;AACvB,gBAAA;AAAA,cACF;AAGA,cAAA,MAAMC,uBAAuBC,aAAAA,CAC3B;AAAA,gBACEnI,WAAW+H,QAAAA,CAAS/H,SAAAA;AAAAA,gBACpBoI,YAAYL,QAAAA,CAASK;AAAAA,eACvB,EACA3J,gBAAAA,EACAsJ,QAAAA,CAAS5H,IACX,CAAA;AAGA,cAAA,IAAI0H,cAAAA,IAAkBQ,MAAAA,CAAOH,oBAAAA,CAAqBlI,SAAS,CAAA,EAAG;AAC5DzB,gBAAAA,MAAAA,CAAOkC,GAAAA,CAAI,mBAAmBsH,QAAQ,CAAA;AACtCX,gBAAAA,UAAAA,GAAaW,QAAAA;AACbzC,gBAAAA,aAAAA,CAAcpC,OAAAA,GAAUkE,UAAAA;AAAAA,cAC1B;AAAA,YACF;AAAA,WACD,CAAA;AAAA,QACH;AAEA,QAAA,MAAMkB,SAAAA,GACJ7I,UAAAA,CAAW8I,iBAAAA,IAAqB9I,UAAAA,CAAW+I,mBAAAA;AAC7C,QAAA,IAAI;AACF,UAAA,IAAI,CAACF,SAAAA,EAAW;AACdzI,YAAAA,qBAAAA,CAAsB4I,YAAYC,OAAAA,CAAQ;AAAA,cAAEzB;AAAAA,aAAgB,CAAA;AAI5DF,YAAAA,aAAAA,GAAgB,MAAMrH,aAAaiJ,YAAAA,CAAa;AAAA,cAC9CC,aAAAA,EAAe;AAAA,gBACb3B;AAAAA;AACF,aACD,CAAA;AAEDpH,YAAAA,qBAAAA,CAAsB4I,YAAYI,IAAAA,CAAK;AAAA,cACrC5B,cAAAA;AAAAA,cACArF,MAAAA,EAAQmF;AAAAA,aACT,CAAA;AAGDF,YAAAA,MAAAA,CAAOY,cAAAA,EAAe;AAEtB,YAAA,MAAMqB,0BAA0B5D,eAAAA,CAAgB;AAAA,cAC9CvD,IAAAA,EAAMoF,aAAAA;AAAAA,cACNjI,OAAAA;AAAAA,cACAiK,YAAaxJ,CAAAA,IAAAA,KAAS;AACpBhB,gBAAAA,MAAAA,CAAOkC,GAAAA,CAAI,sBAAA,EAAwBsG,aAAAA,EAAexH,IAAI,CAAA;AAAA,cACxD;AAAA,aACD,CAAA;AAED,YAAA,IAAIkH,QAAAA,EAAU;AACZA,cAAAA,QAAAA,CAAS;AAAA,gBACP3H,OAAAA;AAAAA,gBACAiE,MAAAA,EAAQ,SAAA;AAAA,gBACRyB,eAAAA,EAAiBuC,aAAAA;AAAAA,gBACjBiC,cAAAA,EAAgBF,uBAAAA;AAAAA,gBAChBG,uBAAAA,EAAyB;AAAA,kBACvBlG,MAAAA,EAAQ,SAAA;AAAA,kBACR8E,cAAAA,EAAgBZ,cAAAA;AAAAA,kBAChBiC,cAAc1J,QAAAA,CAAS2J,KAAAA;AAAAA,kBACvBC,gBAAgB5J,QAAAA,CAAS6J;AAAAA;AAC3B,eACD,CAAA;AAAA,YACH;AAEArC,YAAAA,gBAAAA,GAAmB,MAAM8B,uBAAAA;AAEzBjJ,YAAAA,qBAAAA,CAAsB4I,YAAYa,SAAAA,CAAU;AAAA,cAC1CrC,cAAAA;AAAAA,cACArF,MAAAA,EAAQmF,aAAAA;AAAAA,cACRwC,SAAAA,EAAWvC;AAAAA,aACZ,CAAA;AAEDzI,YAAAA,MAAAA,CAAOkC,GAAAA,CAAI,0BAA0BuG,gBAAgB,CAAA;AAAA,UACvD,CAAA,MAAO;AACLnH,YAAAA,qBAAAA,CAAsB2J,aAAad,OAAAA,CAAQ;AAAA,cACzCzB,cAAAA,EAAgBC;AAAAA,aACjB,CAAA;AAGDJ,YAAAA,kBAAAA,GAAqB,MAAMnH,cAAc8J,eAAAA,CAAgB;AAAA,cACvDC,KAAAA,EAAOxC;AAAAA,aACR,CAAA;AAEDrH,YAAAA,qBAAAA,CAAsB2J,aAAaF,SAAAA,CAAU;AAAA,cAC3CrC,cAAAA,EAAgBC,iBAAAA;AAAAA,cAChByC,QAAQ7C,kBAAAA,EAAoB8C;AAAAA,aAC7B,CAAA;AAAA,UACH;AAAA,QACF,SAASjJ,OAAAA,EAAO;AACd,UAAA,IAAI,CAAC2H,SAAAA,EAAW;AACdzI,YAAAA,qBAAAA,CAAsB4I,YAAYoB,MAAAA,CAAO;AAAA,cACvC5C,cAAAA;AAAAA,cACAtG,KAAAA,EAAOA,OAAAA;AAAAA,cACPiB,MAAAA,EAAQmF;AAAAA;AAAAA,aACT,CAAA;AAAA,UACH,CAAA,MAAO;AACLlH,YAAAA,qBAAAA,CAAsB2J,aAAaK,MAAAA,CAAO;AAAA,cACxC5C,cAAAA,EAAgBC,iBAAAA;AAAAA,cAChBvG,KAAAA,EAAOA;AAAAA,aACR,CAAA;AAAA,UACH;AACA,UAAA,MAAMA,OAAAA;AAAAA,QACR;AAAA,MACF;AAGAkG,MAAAA,MAAAA,CAAOY,cAAAA,EAAe;AAEtB5E,MAAAA,MAAAA,CAAOmC,SAAS,0BAA0B,CAAA;AAE1C,MAAA,MAAM8E,gBAAAA,GAAmB1C,UAAAA;AACzB9B,MAAAA,aAAAA,CAAcpC,OAAAA,GAAU4G,gBAAAA;AAExBpC,MAAAA,oBAAAA,IAAuB;AACvBA,MAAAA,oBAAAA,GAAuBO,KAAAA,CAAAA;AAEvBpF,MAAAA,MAAAA,CAAOiH,kBAAkB,+BAA+B,CAAA;AAExD,MAAA,MAAM5B,yBAAuBC,aAAAA,CAC3B;AAAA,QACEnI,WAAW8J,gBAAAA,CAAiB9J,SAAAA;AAAAA,QAC5BoI,YAAY0B,gBAAAA,CAAiB1B;AAAAA,OAC/B,EACA3J,gBAAAA,EACAqL,gBAAAA,CAAiB3J,IACnB,CAAA;AAGA,MAAA,MAAM4J,YAAYjE,kBAAAA,EAAmB;AAErC,MAAA,MAAMkE,WAAAA,GAAiC;AAAA,QACrCC,WAAAA,EAAa;AAAA,UACXC,WAAAA,EAAalF,OAAAA;AAAAA,UACbmF,QAAAA,EAAU1E,eAAAA;AAAAA,UACV1F,UAAU+J,gBAAAA,CAAiB/J,QAAAA;AAAAA,UAC3BqK,WAAWN,gBAAAA,CAAiBM,SAAAA;AAAAA,UAC5BC,aAAaP,gBAAAA,CAAiBO,WAAAA;AAAAA,UAC9BC,cAAcR,gBAAAA,CAAiBQ,YAAAA;AAAAA,UAE/BtE,OAAAA;AAAAA,UACAC,cAAAA;AAAAA,UACAC,aAAAA;AAAAA,UACAqE,WAAAA,EAAapE,mBAAAA;AAAAA,UAEbwD,QAAQ7C,kBAAAA,EAAoB8C,iBAAAA;AAAAA;AAAAA,UAE5BY,UAAAA,EAAYV,gBAAAA;AAAAA,UACZ,GAAG5B;AAAAA,SACL;AAAA,QAEAuC,aAAAA,EAAe;AAAA;AAAA;AAAA,UAGbC,iBAAAA,EAAmB/C,cAAAA;AAAAA;AAAAA,UAEnBgD,eAAAA,EAAiBhD,cAAAA;AAAAA;AAAAA,UAEjBiD,WAAW/L,WAAAA,CAAY+L,SAAAA;AAAAA,UACvB,GAAGb;AAAAA;AACL,OACF;AAEA,MAAA,MAAMc,QAAAA,GAAW,MAAMxK,UAAAA,CAAWyK,WAAAA,CAAYd,WAAW,CAAA;AAGzDnD,MAAAA,MAAAA,CAAOY,cAAAA,EAAe;AAEtB,MAAA,IAAIsD,UAAAA;AACJ,MAAA,IAAIC,WAAAA;AAEJ5I,MAAAA,MAAAA,GAAS;AAAA,QACPC,KAAAA,EAAO;AAAA,UACLC,IAAAA,EAAM,cAAA;AAAA,UACNC,MAAAA,EAAQ;AAAA,YACNC,QAAAA,EAAU,QAAA;AAAA,YACVyI,KAAAA,EAAOnB;AAAAA;AACT;AACF,OACD,CAAA;AAED,MAAA,IAAInC,cAAAA,EAAgB;AAClB,QAAA,MAAM;AAAA,UAAEuD;AAAAA,SAAM,GAAI,MAAM7J,kBAAAA,CAAmB;AAAA,UACzC8J,WAAW,CACT;AAAA,YACEC,IAAIP,QAAAA,CAASO,EAAAA;AAAAA,YACbpG,SAAS6F,QAAAA,CAASQ,IAAAA;AAAAA,YAClB9L,MAAMsL,QAAAA,CAAStL,IAAAA;AAAAA,YACfmK,KAAAA,EAAOrB,MAAAA,CAAOwC,QAAAA,CAASnB,KAAK,CAAA;AAAA,YAC5B5K,SAAS+L,QAAAA,CAAS/L;AAAAA,WACnB,CAAA;AAAA,UAEHwM,cAAc,CACZ;AAAA,YACEjC,SAAS7J,QAAAA,CAAS6J,OAAAA;AAAAA,YAClBpC,gBAAgBzH,QAAAA,CAASyH,cAAAA;AAAAA,YACzBkC,OAAO3J,QAAAA,CAAS2J,KAAAA;AAAAA,YAChBrK,SAASU,QAAAA,CAASV;AAAAA,WACnB;AAAA,SAEJ,CAAA;AAED,QAAA,MAAMyM,eAAAA,GAAkB,MAAMhK,UAAAA,CAAWiK,SAAAA,CAAU;AAAA,UACjDL,SAAAA,EAAWD;AAAAA,SACZ,CAAA;AACDF,QAAAA,WAAAA,GAAcO,eAAAA,CAAgBxJ,EAAAA;AAC9BK,QAAAA,MAAAA,GAAS;AAAA,UACPC,KAAAA,EAAO;AAAA,YACLC,IAAAA,EAAM,WAAA;AAAA,YACNC,MAAAA,EAAQ;AAAA,cACNC,QAAAA,EAAU,QAAA;AAAA,cACVyI,KAAAA,EAAOnB,gBAAAA;AAAAA,cACPvF,OAAAA,EAASyG;AAAAA;AACX;AACF,SACD,CAAA;AAAA,MACH,CAAA,MAAO;AACLD,QAAAA,UAAAA,GAAa,MAAM/J,cAAcyK,oBAAAA,CAAqB;AAAA,UACpD,GAAGZ,QAAAA;AAAAA,UACH/L;AAAAA,SACD,CAAA;AACDsD,QAAAA,MAAAA,GAAS;AAAA,UACPC,KAAAA,EAAO;AAAA,YACLC,IAAAA,EAAM,WAAA;AAAA,YACNC,MAAAA,EAAQ;AAAA,cACNC,QAAAA,EAAU,QAAA;AAAA,cACVyI,KAAAA,EAAOnB,gBAAAA;AAAAA,cACPlI,MAAAA,EAAQmJ;AAAAA;AACV;AACF,SACD,CAAA;AAAA,MACH;AAMA,MAAA,IAAIjE,kBAAAA,EAAoB;AACtBnB,QAAAA,eAAAA,CAAgBmB,mBAAmB4E,gBAAgB,CAAA;AAAA,MACrD;AAEA,MAAA,IAAIC,gBAAAA;AACJ,MAAA,IAAIC,aAAAA;AAEJ,MAAA,IAAIZ,WAAAA,EAAa;AACf,QAAA,MAAMa,0BAA0BzG,iBAAAA,CAAkB;AAAA,UAChDrD,EAAAA,EAAIiJ;AAAAA,SACL,CAAA,CAAEc,IAAAA,CAAM7I,CAAAA,MAAAA,KAAWA,MAAAA,CAAOmB,WAAWnB,MAAAA,CAAOmB,QAAAA,CAASC,MAAAA,GAAS,CAAC,CAAC,CAAA;AAEjE9F,QAAAA,MAAAA,CAAOkC,GAAAA,CAAI,kCAAkCuK,WAAW,CAAA;AAExD,QAAA,IAAIvE,QAAAA,EAAU;AACZA,UAAAA,QAAAA,CAAS;AAAA,YACP3H,OAAAA;AAAAA,YACAiE,MAAAA,EAAQ,MAAA;AAAA,YACRwB,OAAAA,EAASyG,WAAAA;AAAAA,YACThC,cAAAA,EAAgB6C,uBAAAA;AAAAA,YAChB5C,uBAAAA,EAAyB;AAAA,cACvBlG,MAAAA,EAAQ,MAAA;AAAA,cACRgJ,MAAAA,EAAQ,OAAA;AAAA,cACRC,iBAAiBlC,gBAAAA,CAAiB/J,QAAAA;AAAAA,cAClCkM,kBAAkBnC,gBAAAA,CAAiBM,SAAAA;AAAAA,cACnCpK,WAAWkI,sBAAAA,CAAqBlI,SAAAA;AAAAA,cAChCoI,YAAYF,sBAAAA,CAAqBE,UAAAA;AAAAA,cACjC8D,cAAcpC,gBAAAA,CAAiBqC,MAAAA;AAAAA,cAC/BC,eAAetC,gBAAAA,CAAiBuC,OAAAA;AAAAA,cAChCC,SAASxC,gBAAAA,CAAiBwC,OAAAA;AAAAA,cAC1BpM,UAAU4J,gBAAAA,CAAiB3J;AAAAA;AAC7B,WACD,CAAA;AAAA,QACH;AAEAwL,QAAAA,gBAAAA,GAAmB,MAAME,uBAAAA;AAEzB,QAAA,IAAIF,gBAAAA,EAAkB;AACpBvJ,UAAAA,MAAAA,GAAS;AAAA,YACPC,KAAAA,EAAO;AAAA,cACLC,IAAAA,EAAM,gBAAA;AAAA,cACNC,MAAAA,EAAQ;AAAA,gBACNC,QAAAA,EAAU,QAAA;AAAA,gBACVyI,KAAAA,EAAOnB,gBAAAA;AAAAA,gBACPyC,YAAAA,EAAcZ,gBAAAA;AAAAA,gBACdpH,OAAAA,EAASyG;AAAAA;AACX;AACF,WACD,CAAA;AAAA,QACH;AAAA,MACF,WAAWD,UAAAA,EAAY;AACrB,QAAA,MAAMyB,uBAAuBtH,eAAAA,CAAgB;AAAA,UAC3CvD,IAAAA,EAAMoJ,UAAAA;AAAAA,UACNjM,OAAAA;AAAAA,UACAiK,YAAaxJ,CAAAA,MAAAA,KAAS;AACpBhB,YAAAA,MAAAA,CAAOkC,GAAAA,CAAI,mBAAA,EAAqBsK,UAAAA,EAAYxL,MAAI,CAAA;AAAA,UAClD;AAAA,SACD,CAAA;AAEDhB,QAAAA,MAAAA,CAAOkC,GAAAA,CAAI,iCAAiCsK,UAAU,CAAA;AAGtDlE,QAAAA,MAAAA,CAAOY,cAAAA,EAAe;AAEtB,QAAA,MAAMgF,kBAAAA,GAAqB,IAAIC,OAAAA,CAAe,CAACC,GAAGC,MAAAA,KAAW;AAC3D/F,UAAAA,MAAAA,CAAOgG,UAAU,MAAM;AACrB,YAAA,IAAI;AACFhG,cAAAA,MAAAA,CAAOY,cAAAA,EAAe;AAAA,YACxB,SAAS9G,OAAAA,EAAO;AACd,cAAA,IAAImM,2BAAAA,CAA4BnM,OAAK,CAAA,EAAG;AACtCiM,gBAAAA,MAAAA,CAAOjM,OAAK,CAAA;AAAA,cACd;AAAA,YACF;AAAA,UACF,CAAA;AAAA,QACF,CAAC,CAAA;AAMD,QAAA,MAAMoM,8BAA8BL,OAAAA,CAAQM,IAAAA,CAAK,CAC/CR,oBAAAA,EACAC,kBAAkB,CACnB,CAAA;AAED,QAAA,IAAIhG,QAAAA,EAAU;AACZA,UAAAA,QAAAA,CAAS;AAAA,YACP3H,OAAAA;AAAAA,YACAiE,MAAAA,EAAQ,MAAA;AAAA,YACRyB,eAAAA,EAAiBuG,UAAAA;AAAAA,YACjB/B,cAAAA,EAAgB+D,2BAAAA;AAAAA,YAChB9D,uBAAAA,EAAyB;AAAA,cACvBlG,MAAAA,EAAQ,MAAA;AAAA,cACRgJ,MAAAA,EAAQ,OAAA;AAAA,cACRC,iBAAiBlC,gBAAAA,CAAiB/J,QAAAA;AAAAA,cAClCkM,kBAAkBnC,gBAAAA,CAAiBM,SAAAA;AAAAA,cACnCpK,WAAWkI,sBAAAA,CAAqBlI,SAAAA;AAAAA,cAChCoI,YAAYF,sBAAAA,CAAqBE,UAAAA;AAAAA,cACjC8D,cAAcpC,gBAAAA,CAAiBqC,MAAAA;AAAAA,cAC/BC,eAAetC,gBAAAA,CAAiBuC,OAAAA;AAAAA,cAChCC,SAASxC,gBAAAA,CAAiBwC,OAAAA;AAAAA,cAC1BW,YAAYnD,gBAAAA,CAAiBmD,UAAAA;AAAAA,cAC7B/M,UAAU4J,gBAAAA,CAAiB3J;AAAAA;AAC7B,WACD,CAAA;AAAA,QACH;AAEAyL,QAAAA,aAAAA,GAAgB,MAAMmB,2BAAAA;AAEtB,QAAA,IAAInB,aAAAA,EAAe;AACjBxJ,UAAAA,MAAAA,GAAS;AAAA,YACPC,KAAAA,EAAO;AAAA,cACLC,IAAAA,EAAM,gBAAA;AAAA,cACNC,MAAAA,EAAQ;AAAA,gBACNC,QAAAA,EAAU,QAAA;AAAA,gBACVyI,KAAAA,EAAOnB,gBAAAA;AAAAA,gBACPP,SAAAA,EAAWqC,aAAAA;AAAAA,gBACXhK,MAAAA,EAAQmJ;AAAAA;AACV;AACF,WACD,CAAA;AAAA,QACH;AAAA,MACF;AAEAxM,MAAAA,MAAAA,CAAOkC,GAAAA,CAAI,qBAAA,EAAuBkL,gBAAAA,IAAoBC,aAAa,CAAA;AAEnE,MAAA,OAAO;AAAA,QACLsB,aAAAA,EAAehP,kBAAAA;AAAAA,QACfiP,OAAAA,EAAS;AAAA,UACPvL,MAAAA,EAAQmF,aAAAA;AAAAA,UACRxD,OAAAA,EAASyD;AAAAA,SACX;AAAA,QACA1D,IAAAA,EAAM;AAAA,UACJ0G,WAAAA;AAAAA,UACAzF,OAAAA,EAASyG,WAAAA;AAAAA,UACTpJ,MAAAA,EAAQmJ,UAAAA;AAAAA,UACRxH,OAAAA,EAASqI,aAAAA;AAAAA,UACTW,YAAAA,EAAcZ;AAAAA,SAChB;AAAA,QACAtN,WAAAA,EAAayL,gBAAAA;AAAAA;AAAAA,QAEb9E,OAAAA;AAAAA,QACAS;AAAAA,OACF;AAAA,IACF,SAAS9E,OAAAA,EAAO;AAGd,MAAA,IAAImG,kBAAAA,EAAoB;AACtBlB,QAAAA,UAAAA,CAAWkB,mBAAmB4E,gBAAgB,CAAA;AAAA,MAChD;AAEA,MAAA,IAAI,CAACoB,2BAAAA,CAA4BnM,OAAK,CAAA,EAAG;AAEvCyB,QAAAA,MAAAA,GAAS;AAAA,UACPC,KAAAA,EAAO;AAAA,YACLC,IAAAA,EAAM,aAAA;AAAA,YACNC,MAAAA,EAAQ;AAAA,cACNC,QAAAA,EAAU,QAAA;AAAA,cACV7B,KAAAA,EAAOA;AAAAA;AACT;AACF,SACD,CAAA;AAAA,MACH;AACA,MAAA,MAAMA,OAAAA;AAAAA,IACR,CAAA,SAAC;AAEC+G,MAAAA,oBAAAA,IAAuB;AAAA,IACzB;AAAA,EACF,CAAA;AAEA,EAAA,MAAM0F,gBAAgBC,WAAAA,CAAY;AAAA,IAChCC,UAAAA,EAAY9G,YAAAA;AAAAA,IACZ+G,WAAAA,EAAa,CAACpP,wBAAwB,CAAA;AAAA,IACtCqC,WAAYjB,CAAAA,MAAAA,KAAS;AACnBhB,MAAAA,MAAAA,CAAOkC,GAAAA,CAAI,mBAAmBlB,MAAI,CAAA;AAAA,IACpC,CAAA;AAAA,IACAmB,SAAUC,CAAAA,OAAAA,KAAU;AAClBpC,MAAAA,MAAAA,CAAOoC,KAAAA,CAAM,iBAAiBA,OAAK,CAAA;AAAA,IACrC,CAAA;AAAA,IACA6M,WAAWA,MAAM;AACfjP,MAAAA,MAAAA,CAAOkC,IAAI,iBAAiB,CAAA;AAAA,IAC9B;AAAA,GACD,CAAA;AAED,EAAA,MAAMgN,oBAAoBL,aAAAA,CAActC,WAAAA;AAExC,EAAA,MAAMzH,QAAQA,MAAM;AAClBiC,IAAAA,aAAAA,CAAcpC,OAAAA,GAAU,IAAA;AAExBxD,IAAAA,YAAAA,CAAa2D,KAAAA,EAAM;AACnB1D,IAAAA,aAAAA,CAAc0D,KAAAA,EAAM;AACpBhD,IAAAA,UAAAA,CAAWgD,KAAAA,EAAM;AACjBrC,IAAAA,aAAAA,CAAcqC,KAAAA,EAAM;AACpB9B,IAAAA,UAAAA,CAAW8B,KAAAA,EAAM;AACjB+J,IAAAA,aAAAA,CAAc/J,KAAAA,EAAM;AAEpBrB,IAAAA,eAAAA,CAAgBqB,KAAAA,EAAM;AAAA,EACxB,CAAA;AAEA,EAAA,MAAMqK,SAAAA,GAAYA,CAACC,OAAAA,KAA0D;AAC3E,IAAA,MAAMjH,cAAYpB,aAAAA,CAAcpC,OAAAA;AAChCG,IAAAA,KAAAA,EAAM;AACN,IAAA,OAAOoK,iBAAAA,CAAkB;AAAA,MAAE,GAAGE,OAAAA;AAAAA,MAASjH,SAAAA,EAAAA;AAAAA,KAAW,CAAA;AAAA,EACpD,CAAA;AAGA,EAAA,MAAMkH,SAAAA,GAAYtI,cAAcpC,OAAAA,IAAW7E,WAAAA;AAE3C,EAAA,MAAMW,WAASoO,aAAAA,CAAc7N,IAAAA;AAC7B,EAAA,MAAMsO,oBAAAA,GAAuB7O,UAAQsE,IAAAA,CAAK0G,WAAAA;AAG1C,EAAA,OAAO;AAAA,IACLkD,aAAAA,EAAehP,kBAAAA;AAAAA,IACfY,OAAAA;AAAAA,IACA2O,iBAAAA;AAAAA,IACApK,KAAAA;AAAAA,IACAkC,UAAAA;AAAAA,IACAmI,SAAAA;AAAAA,IACAlO,QAAAA;AAAAA,IACAC,UAAAA;AAAAA,IACAmB,aAAAA;AAAAA,IACA0C,IAAAA;AAAAA,IACAgB,SAAAA;AAAAA;AAAAA,IAEAzD,WAAWuM,aAAAA,CAAcvM,SAAAA;AAAAA,IACzBE,WAAWqM,aAAAA,CAAcrM,SAAAA;AAAAA,IACzBD,SAASsM,aAAAA,CAActM,OAAAA;AAAAA,IACvBH,OAAOyM,aAAAA,CAAczM,KAAAA;AAAAA,IACrB3B,QAAQoO,aAAAA,CAAc7N,IAAAA;AAAAA,IACtBqO,SAAAA;AAAAA,IACAxG,UAAAA,EAAY/I,WAAAA;AAAAA,IACZwP;AAAAA,GACF;AACF;;;;"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { MarketSwapStep, MarketSwapStepKey } from '../../../components/widget/TradeOverview/steps';
|
|
1
|
+
import { CancelOrderStepKey, MarketSwapStep, MarketSwapStepKey } from '../../../components/widget/TradeOverview/steps';
|
|
2
2
|
import { UseMarketFlowInput, UseMarketFlowResult, SubmitSwapResult } from './useMarketFlow';
|
|
3
|
+
import { ReplaceTxResult } from '../../txs/mutations/useReplaceTx';
|
|
3
4
|
type UseMarketSwapStepResult = {
|
|
4
5
|
startMarketSwap: UseMarketFlowResult["runMarketSwapFlow"];
|
|
5
6
|
reset: UseMarketFlowResult["reset"];
|
|
@@ -8,6 +9,10 @@ type UseMarketSwapStepResult = {
|
|
|
8
9
|
goToBeforeSwap: () => void;
|
|
9
10
|
isNonFlowStep: boolean;
|
|
10
11
|
isFlowCancellable: boolean;
|
|
12
|
+
isSwapTxCancellable: boolean;
|
|
13
|
+
isSwapTxCancelled: boolean;
|
|
14
|
+
cancelSwapTxResult?: ReplaceTxResult;
|
|
15
|
+
cancelSwapTx: UseMarketFlowResult["swap"]["cancelSwapTx"];
|
|
11
16
|
step?: MarketSwapStep;
|
|
12
17
|
explorerLink?: string;
|
|
13
18
|
error: Error | null;
|
|
@@ -16,6 +21,7 @@ type UseMarketSwapStepResult = {
|
|
|
16
21
|
usedPrice: UseMarketFlowResult["usedPrice"];
|
|
17
22
|
submittedSwapRequest?: UseMarketFlowResult["submittedSwapRequest"];
|
|
18
23
|
tradeFlowType: UseMarketFlowResult["tradeFlowType"];
|
|
24
|
+
swapTxCancellationStep?: CancelOrderStepKey;
|
|
19
25
|
};
|
|
20
26
|
export declare function useMarketSwapStep(options: UseMarketFlowInput): UseMarketSwapStepResult;
|
|
21
27
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMarketSwapStep.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useMarketSwapStep.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EAElB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACtB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"useMarketSwapStep.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useMarketSwapStep.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EAElB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACtB,MAAM,iBAAiB,CAAC;AAMzB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAE1E,KAAK,uBAAuB,GAAG;IAC7B,eAAe,EAAE,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;IAE1D,KAAK,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACpC,UAAU,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAC9C,SAAS,EAAE,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC5C,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,kBAAkB,CAAC,EAAE,eAAe,CAAC;IACrC,YAAY,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;IAC1D,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,SAAS,EAAE,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC5C,oBAAoB,CAAC,EAAE,mBAAmB,CAAC,sBAAsB,CAAC,CAAC;IACnE,aAAa,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACpD,sBAAsB,CAAC,EAAE,kBAAkB,CAAC;CAC7C,CAAC;AAEF,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,kBAAkB,GAC1B,uBAAuB,CAwMzB"}
|
|
@@ -7,7 +7,7 @@ import { getStandaloneTxHash } from '../../../transactions/hash.js';
|
|
|
7
7
|
import { useState } from 'react';
|
|
8
8
|
|
|
9
9
|
function useMarketSwapStep(options) {
|
|
10
|
-
const $ = distExports.c(
|
|
10
|
+
const $ = distExports.c(41);
|
|
11
11
|
const logger = useLogger("MarketSwapStep");
|
|
12
12
|
const marketFlow = useMarketFlow(options);
|
|
13
13
|
const startMarketSwap = marketFlow.runMarketSwapFlow;
|
|
@@ -53,9 +53,13 @@ function useMarketSwapStep(options) {
|
|
|
53
53
|
const swapTxHash = marketFlow.swapBatch.txHash || getStandaloneTxHash({
|
|
54
54
|
transactionHash: marketFlow.swap.txHash
|
|
55
55
|
});
|
|
56
|
-
const
|
|
56
|
+
const isSwapTxCancellable = marketFlow.swap.isTxCancellable;
|
|
57
|
+
const isSwapTxCancelled = marketFlow.swap.cancellingState.isSuccess;
|
|
58
|
+
const cancelSwapTxResult = marketFlow.swap.cancellingState.result;
|
|
59
|
+
const linkTxHash = isSwapTxCancelled && cancelSwapTxResult?.replacementTxHash || swapTxHash;
|
|
60
|
+
const explorerLink = linkTxHash ? constructTxLinkForChain({
|
|
57
61
|
chainId: marketFlow.chainId,
|
|
58
|
-
txHash:
|
|
62
|
+
txHash: linkTxHash
|
|
59
63
|
}) : void 0;
|
|
60
64
|
const [nonFlowStep, setNonFlowStep] = useState(null);
|
|
61
65
|
let t0;
|
|
@@ -85,7 +89,10 @@ function useMarketSwapStep(options) {
|
|
|
85
89
|
logger.once.log("step", step, marketFlow, {
|
|
86
90
|
isFlowCancellable,
|
|
87
91
|
explorerLink,
|
|
88
|
-
txHash: swapTxHash
|
|
92
|
+
txHash: swapTxHash,
|
|
93
|
+
isSwapTxCancellable,
|
|
94
|
+
isSwapTxCancelled,
|
|
95
|
+
cancelSwapTxResult
|
|
89
96
|
});
|
|
90
97
|
let t2;
|
|
91
98
|
if ($[2] !== marketFlow.error) {
|
|
@@ -107,7 +114,7 @@ function useMarketSwapStep(options) {
|
|
|
107
114
|
}
|
|
108
115
|
}
|
|
109
116
|
let t3;
|
|
110
|
-
if ($[4] !== error || $[5] !== erroredStep || $[6] !== explorerLink || $[7] !== isFlowCancellable || $[8] !== isNonFlowStep || $[9] !== marketFlow.freshPrice || $[10] !== marketFlow.result || $[11] !== marketFlow.submittedSwapRequest || $[12] !== marketFlow.usedPrice) {
|
|
117
|
+
if ($[4] !== error || $[5] !== erroredStep || $[6] !== explorerLink || $[7] !== isFlowCancellable || $[8] !== isNonFlowStep || $[9] !== marketFlow.freshPrice || $[10] !== marketFlow.result || $[11] !== marketFlow.submittedSwapRequest || $[12] !== marketFlow.swap.cancellingState.step || $[13] !== marketFlow.usedPrice) {
|
|
111
118
|
t3 = isNonFlowStep ? {
|
|
112
119
|
usedPrice: marketFlow.freshPrice,
|
|
113
120
|
isFlowCancellable: false,
|
|
@@ -119,7 +126,8 @@ function useMarketSwapStep(options) {
|
|
|
119
126
|
erroredStep,
|
|
120
127
|
result: marketFlow.result,
|
|
121
128
|
usedPrice: marketFlow.usedPrice,
|
|
122
|
-
submittedSwapRequest: marketFlow.submittedSwapRequest
|
|
129
|
+
submittedSwapRequest: marketFlow.submittedSwapRequest,
|
|
130
|
+
swapTxCancellationStep: marketFlow.swap.cancellingState.step
|
|
123
131
|
};
|
|
124
132
|
$[4] = error;
|
|
125
133
|
$[5] = erroredStep;
|
|
@@ -129,62 +137,63 @@ function useMarketSwapStep(options) {
|
|
|
129
137
|
$[9] = marketFlow.freshPrice;
|
|
130
138
|
$[10] = marketFlow.result;
|
|
131
139
|
$[11] = marketFlow.submittedSwapRequest;
|
|
132
|
-
$[12] = marketFlow.
|
|
133
|
-
$[13] =
|
|
140
|
+
$[12] = marketFlow.swap.cancellingState.step;
|
|
141
|
+
$[13] = marketFlow.usedPrice;
|
|
142
|
+
$[14] = t3;
|
|
134
143
|
} else {
|
|
135
|
-
t3 = $[
|
|
144
|
+
t3 = $[14];
|
|
136
145
|
}
|
|
137
146
|
const resultProps = t3;
|
|
138
147
|
let t4;
|
|
139
|
-
if ($[
|
|
148
|
+
if ($[15] !== resetStepOverride || $[16] !== startMarketSwap) {
|
|
140
149
|
t4 = (options_0) => {
|
|
141
150
|
resetStepOverride();
|
|
142
151
|
return startMarketSwap(options_0);
|
|
143
152
|
};
|
|
144
|
-
$[
|
|
145
|
-
$[
|
|
146
|
-
$[
|
|
153
|
+
$[15] = resetStepOverride;
|
|
154
|
+
$[16] = startMarketSwap;
|
|
155
|
+
$[17] = t4;
|
|
147
156
|
} else {
|
|
148
|
-
t4 = $[
|
|
157
|
+
t4 = $[17];
|
|
149
158
|
}
|
|
150
159
|
let t5;
|
|
151
|
-
if ($[
|
|
160
|
+
if ($[18] !== reset || $[19] !== resetStepOverride) {
|
|
152
161
|
t5 = () => {
|
|
153
162
|
resetStepOverride();
|
|
154
163
|
return reset();
|
|
155
164
|
};
|
|
156
|
-
$[
|
|
157
|
-
$[
|
|
158
|
-
$[
|
|
165
|
+
$[18] = reset;
|
|
166
|
+
$[19] = resetStepOverride;
|
|
167
|
+
$[20] = t5;
|
|
159
168
|
} else {
|
|
160
|
-
t5 = $[
|
|
169
|
+
t5 = $[20];
|
|
161
170
|
}
|
|
162
171
|
let t6;
|
|
163
|
-
if ($[
|
|
172
|
+
if ($[21] !== cancelFlow || $[22] !== resetStepOverride) {
|
|
164
173
|
t6 = () => {
|
|
165
174
|
resetStepOverride();
|
|
166
175
|
return cancelFlow();
|
|
167
176
|
};
|
|
168
|
-
$[
|
|
169
|
-
$[
|
|
170
|
-
$[
|
|
177
|
+
$[21] = cancelFlow;
|
|
178
|
+
$[22] = resetStepOverride;
|
|
179
|
+
$[23] = t6;
|
|
171
180
|
} else {
|
|
172
|
-
t6 = $[
|
|
181
|
+
t6 = $[23];
|
|
173
182
|
}
|
|
174
183
|
let t7;
|
|
175
|
-
if ($[
|
|
184
|
+
if ($[24] !== resetStepOverride || $[25] !== retryFlow) {
|
|
176
185
|
t7 = (options_1) => {
|
|
177
186
|
resetStepOverride();
|
|
178
187
|
return retryFlow(options_1);
|
|
179
188
|
};
|
|
180
|
-
$[
|
|
181
|
-
$[
|
|
182
|
-
$[
|
|
189
|
+
$[24] = resetStepOverride;
|
|
190
|
+
$[25] = retryFlow;
|
|
191
|
+
$[26] = t7;
|
|
183
192
|
} else {
|
|
184
|
-
t7 = $[
|
|
193
|
+
t7 = $[26];
|
|
185
194
|
}
|
|
186
195
|
let t8;
|
|
187
|
-
if ($[
|
|
196
|
+
if ($[27] !== cancelSwapTxResult || $[28] !== goToBeforeSwap || $[29] !== isNonFlowStep || $[30] !== isSwapTxCancellable || $[31] !== isSwapTxCancelled || $[32] !== marketFlow.swap.cancelSwapTx || $[33] !== marketFlow.tradeFlowType || $[34] !== resultProps || $[35] !== step || $[36] !== t4 || $[37] !== t5 || $[38] !== t6 || $[39] !== t7) {
|
|
188
197
|
t8 = {
|
|
189
198
|
startMarketSwap: t4,
|
|
190
199
|
reset: t5,
|
|
@@ -194,20 +203,28 @@ function useMarketSwapStep(options) {
|
|
|
194
203
|
step,
|
|
195
204
|
isNonFlowStep,
|
|
196
205
|
...resultProps,
|
|
197
|
-
tradeFlowType: marketFlow.tradeFlowType
|
|
206
|
+
tradeFlowType: marketFlow.tradeFlowType,
|
|
207
|
+
isSwapTxCancellable,
|
|
208
|
+
isSwapTxCancelled,
|
|
209
|
+
cancelSwapTxResult,
|
|
210
|
+
cancelSwapTx: marketFlow.swap.cancelSwapTx
|
|
198
211
|
};
|
|
199
|
-
$[
|
|
200
|
-
$[
|
|
201
|
-
$[
|
|
202
|
-
$[
|
|
203
|
-
$[
|
|
204
|
-
$[
|
|
205
|
-
$[
|
|
206
|
-
$[
|
|
207
|
-
$[
|
|
208
|
-
$[
|
|
212
|
+
$[27] = cancelSwapTxResult;
|
|
213
|
+
$[28] = goToBeforeSwap;
|
|
214
|
+
$[29] = isNonFlowStep;
|
|
215
|
+
$[30] = isSwapTxCancellable;
|
|
216
|
+
$[31] = isSwapTxCancelled;
|
|
217
|
+
$[32] = marketFlow.swap.cancelSwapTx;
|
|
218
|
+
$[33] = marketFlow.tradeFlowType;
|
|
219
|
+
$[34] = resultProps;
|
|
220
|
+
$[35] = step;
|
|
221
|
+
$[36] = t4;
|
|
222
|
+
$[37] = t5;
|
|
223
|
+
$[38] = t6;
|
|
224
|
+
$[39] = t7;
|
|
225
|
+
$[40] = t8;
|
|
209
226
|
} else {
|
|
210
|
-
t8 = $[
|
|
227
|
+
t8 = $[40];
|
|
211
228
|
}
|
|
212
229
|
return t8;
|
|
213
230
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMarketSwapStep.js","sources":["../../../../src/hooks/swap/tradeFlow/useMarketSwapStep.ts"],"sourcesContent":["import type {\n MarketSwapStep,\n MarketSwapStepKey,\n NonFlowStep,\n} from \"@/components/widget/TradeOverview/steps\";\nimport {\n useMarketFlow,\n type UseMarketFlowInput,\n type UseMarketFlowResult,\n type SubmitSwapResult,\n} from \"./useMarketFlow\";\nimport { constructTxLinkForChain } from \"@/lib/utils/explorer\";\nimport { useLogger } from \"@/core/logger\";\nimport { isUserCancelledError } from \"./common/errors\";\nimport { getStandaloneTxHash } from \"@/transactions/hash\";\nimport { useState } from \"react\";\n\ntype UseMarketSwapStepResult = {\n startMarketSwap: UseMarketFlowResult[\"runMarketSwapFlow\"];\n // @TODO check if resetting is necessary on error, maybe not if submit on click works as a reset\n reset: UseMarketFlowResult[\"reset\"];\n cancelFlow: UseMarketFlowResult[\"cancelFlow\"];\n retryFlow: UseMarketFlowResult[\"retryFlow\"];\n goToBeforeSwap: () => void;\n isNonFlowStep: boolean;\n isFlowCancellable: boolean;\n step?: MarketSwapStep;\n explorerLink?: string;\n error: Error | null;\n erroredStep?: MarketSwapStepKey;\n result?: SubmitSwapResult;\n usedPrice: UseMarketFlowResult[\"usedPrice\"];\n submittedSwapRequest?: UseMarketFlowResult[\"submittedSwapRequest\"];\n tradeFlowType: UseMarketFlowResult[\"tradeFlowType\"];\n};\n\nexport function useMarketSwapStep(\n options: UseMarketFlowInput\n): UseMarketSwapStepResult {\n const logger = useLogger(\"MarketSwapStep\");\n const marketFlow = useMarketFlow(options);\n\n const startMarketSwap = marketFlow.runMarketSwapFlow;\n const reset = marketFlow.reset;\n const cancelFlow = marketFlow.cancelFlow;\n const retryFlow = marketFlow.retryFlow;\n\n let step: MarketSwapStep | undefined;\n\n const permitSigningHappeningOrNeverHappened =\n // isPending starts as false,\n // so we can use !isPermitSigned to detect if Permit signing is happening or never happened\n marketFlow.signPermit.isPending || !marketFlow.signPermit.isPermitSigned;\n\n const approvalHappeningOrNeverHappened =\n // isPending starts as false,\n // needsApproval && !isSuccess allows to detect approve step right away even then\n marketFlow.approval.isPending || !marketFlow.approval.isSuccess;\n\n const willUsePermit =\n marketFlow.approval.needsApproval &&\n marketFlow.signPermit.isPermitSupported &&\n marketFlow.signPermit.isPermitReadyToSign &&\n !marketFlow.swapBatch.canBatchTxs;\n\n const permitOrApprovalHappeningOrNeverHappened = willUsePermit\n ? permitSigningHappeningOrNeverHappened\n : approvalHappeningOrNeverHappened;\n\n if (\n marketFlow.approval.needsApproval &&\n permitOrApprovalHappeningOrNeverHappened\n ) {\n step = { key: \"signature\", subStep: \"approval-signature\" };\n } else if (\n marketFlow.buildTxParams.isPending ||\n marketFlow.swap.isConfirmingTX ||\n marketFlow.swapBatch.isConfirmingCalls\n ) {\n const permitOrApprovalHappened = !!(\n marketFlow.approval.txHash || marketFlow.signPermit.signature\n );\n\n step = {\n key: \"signature\",\n subStep: permitOrApprovalHappened\n ? \"order-signature\"\n : \"standalone-order-signature\",\n };\n } else if (\n marketFlow.swap.isTxPending ||\n marketFlow.swapBatch.isCallsPending\n ) {\n step = { key: \"swap-tx-execution\" };\n } else if (marketFlow.isPending) {\n // if something is between steps but not clear step,\n // then assume we're at the standalone signature sub-step\n step = { key: \"signature\", subStep: \"standalone-order-signature\" };\n }\n\n const approvalIsStarted =\n step?.key === \"signature\" &&\n step.subStep === \"approval-signature\" &&\n marketFlow.approval.isTxPending;\n\n const inSwapTxConfirmation =\n step?.key === \"signature\" &&\n (step.subStep === \"order-signature\" ||\n step.subStep === \"standalone-order-signature\");\n\n const notYetSwapTxSent =\n step?.key === \"swap-tx-execution\" &&\n !marketFlow.swap.isTxSent &&\n !marketFlow.swapBatch.isCallsSent;\n\n // final tx is not yet sent, there's something to cancel;\n // but some steps are already started so we can't simply dismiss\n const isFlowCancellable =\n approvalIsStarted || inSwapTxConfirmation || notYetSwapTxSent;\n\n const swapTxHash =\n // either last txHash from batch receipt\n marketFlow.swapBatch.txHash ||\n // or standalone swap txHash\n getStandaloneTxHash({ transactionHash: marketFlow.swap.txHash });\n const explorerLink = swapTxHash\n ? constructTxLinkForChain({\n chainId: marketFlow.chainId,\n txHash: swapTxHash,\n })\n : undefined;\n\n const [nonFlowStep, setNonFlowStep] = useState<NonFlowStep | null>(null);\n const goToBeforeSwap = () => {\n setNonFlowStep({ key: \"prepare-swap\" });\n };\n const resetStepOverride = () => {\n setNonFlowStep(null);\n };\n\n step = nonFlowStep || step;\n const isNonFlowStep = !!nonFlowStep;\n\n logger.once.log(\"step\", step, marketFlow, {\n isFlowCancellable,\n explorerLink,\n txHash: swapTxHash,\n });\n\n // intentional cancellation is handled separately\n const error = isUserCancelledError(marketFlow.error)\n ? null\n : marketFlow.error;\n\n let erroredStep: MarketSwapStepKey | undefined;\n\n if (marketFlow.isError) {\n if (\n marketFlow.approval.isError ||\n marketFlow.signPermit.isError ||\n marketFlow.buildTxParams.isError ||\n marketFlow.swap.isConfirmingTxError ||\n marketFlow.swapBatch.isConfirmingCallsError\n ) {\n erroredStep = \"signature\";\n } else if (\n marketFlow.swap.isTxAwaitingError ||\n marketFlow.swapBatch.isCallsAwaitingError\n ) {\n erroredStep = \"swap-tx-execution\";\n }\n }\n\n const resultProps: Pick<\n UseMarketSwapStepResult,\n | \"usedPrice\"\n | \"isFlowCancellable\"\n | \"error\"\n | \"erroredStep\"\n | \"result\"\n | \"submittedSwapRequest\"\n | \"explorerLink\"\n > = isNonFlowStep\n ? {\n // don't return previous data when in non-flow step\n usedPrice: marketFlow.freshPrice,\n isFlowCancellable: false,\n error: null,\n }\n : {\n isFlowCancellable,\n explorerLink,\n error,\n erroredStep,\n result: marketFlow.result,\n usedPrice: marketFlow.usedPrice,\n submittedSwapRequest: marketFlow.submittedSwapRequest,\n };\n\n return {\n startMarketSwap: (options) => {\n resetStepOverride();\n return startMarketSwap(options);\n },\n reset: () => {\n resetStepOverride();\n return reset();\n },\n cancelFlow: () => {\n resetStepOverride();\n return cancelFlow();\n },\n retryFlow: (options) => {\n resetStepOverride();\n return retryFlow(options);\n },\n goToBeforeSwap,\n step,\n isNonFlowStep,\n ...resultProps,\n tradeFlowType: marketFlow.tradeFlowType,\n };\n}\n"],"names":["useMarketSwapStep","options","$","_c","logger","useLogger","marketFlow","useMarketFlow","startMarketSwap","runMarketSwapFlow","reset","cancelFlow","retryFlow","step","permitSigningHappeningOrNeverHappened","signPermit","isPending","isPermitSigned","approvalHappeningOrNeverHappened","approval","isSuccess","willUsePermit","needsApproval","isPermitSupported","isPermitReadyToSign","swapBatch","canBatchTxs","permitOrApprovalHappeningOrNeverHappened","buildTxParams","swap","isConfirmingTX","isConfirmingCalls","permitOrApprovalHappened","txHash","signature","isTxPending","isCallsPending","approvalIsStarted","key","subStep","inSwapTxConfirmation","notYetSwapTxSent","isTxSent","isCallsSent","isFlowCancellable","swapTxHash","getStandaloneTxHash","transactionHash","explorerLink","constructTxLinkForChain","chainId","undefined","nonFlowStep","setNonFlowStep","useState","t0","Symbol","for","goToBeforeSwap","t1","resetStepOverride","isNonFlowStep","once","log","t2","error","isUserCancelledError","erroredStep","isError","isConfirmingTxError","isConfirmingCallsError","isTxAwaitingError","isCallsAwaitingError","t3","freshPrice","result","submittedSwapRequest","usedPrice","resultProps","t4","options_0","t5","t6","t7","options_1","t8","tradeFlowType"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useMarketSwapStep.js","sources":["../../../../src/hooks/swap/tradeFlow/useMarketSwapStep.ts"],"sourcesContent":["import type {\n CancelOrderStepKey,\n MarketSwapStep,\n MarketSwapStepKey,\n NonFlowStep,\n} from \"@/components/widget/TradeOverview/steps\";\nimport {\n useMarketFlow,\n type UseMarketFlowInput,\n type UseMarketFlowResult,\n type SubmitSwapResult,\n} from \"./useMarketFlow\";\nimport { constructTxLinkForChain } from \"@/lib/utils/explorer\";\nimport { useLogger } from \"@/core/logger\";\nimport { isUserCancelledError } from \"./common/errors\";\nimport { getStandaloneTxHash } from \"@/transactions/hash\";\nimport { useState } from \"react\";\nimport type { ReplaceTxResult } from \"@/hooks/txs/mutations/useReplaceTx\";\n\ntype UseMarketSwapStepResult = {\n startMarketSwap: UseMarketFlowResult[\"runMarketSwapFlow\"];\n // @TODO check if resetting is necessary on error, maybe not if submit on click works as a reset\n reset: UseMarketFlowResult[\"reset\"];\n cancelFlow: UseMarketFlowResult[\"cancelFlow\"];\n retryFlow: UseMarketFlowResult[\"retryFlow\"];\n goToBeforeSwap: () => void;\n isNonFlowStep: boolean;\n isFlowCancellable: boolean;\n isSwapTxCancellable: boolean;\n isSwapTxCancelled: boolean;\n cancelSwapTxResult?: ReplaceTxResult;\n cancelSwapTx: UseMarketFlowResult[\"swap\"][\"cancelSwapTx\"];\n step?: MarketSwapStep;\n explorerLink?: string;\n error: Error | null;\n erroredStep?: MarketSwapStepKey;\n result?: SubmitSwapResult;\n usedPrice: UseMarketFlowResult[\"usedPrice\"];\n submittedSwapRequest?: UseMarketFlowResult[\"submittedSwapRequest\"];\n tradeFlowType: UseMarketFlowResult[\"tradeFlowType\"];\n swapTxCancellationStep?: CancelOrderStepKey;\n};\n\nexport function useMarketSwapStep(\n options: UseMarketFlowInput\n): UseMarketSwapStepResult {\n const logger = useLogger(\"MarketSwapStep\");\n const marketFlow = useMarketFlow(options);\n\n const startMarketSwap = marketFlow.runMarketSwapFlow;\n const reset = marketFlow.reset;\n const cancelFlow = marketFlow.cancelFlow;\n const retryFlow = marketFlow.retryFlow;\n\n let step: MarketSwapStep | undefined;\n\n const permitSigningHappeningOrNeverHappened =\n // isPending starts as false,\n // so we can use !isPermitSigned to detect if Permit signing is happening or never happened\n marketFlow.signPermit.isPending || !marketFlow.signPermit.isPermitSigned;\n\n const approvalHappeningOrNeverHappened =\n // isPending starts as false,\n // needsApproval && !isSuccess allows to detect approve step right away even then\n marketFlow.approval.isPending || !marketFlow.approval.isSuccess;\n\n const willUsePermit =\n marketFlow.approval.needsApproval &&\n marketFlow.signPermit.isPermitSupported &&\n marketFlow.signPermit.isPermitReadyToSign &&\n !marketFlow.swapBatch.canBatchTxs;\n\n const permitOrApprovalHappeningOrNeverHappened = willUsePermit\n ? permitSigningHappeningOrNeverHappened\n : approvalHappeningOrNeverHappened;\n\n if (\n marketFlow.approval.needsApproval &&\n permitOrApprovalHappeningOrNeverHappened\n ) {\n step = { key: \"signature\", subStep: \"approval-signature\" };\n } else if (\n marketFlow.buildTxParams.isPending ||\n marketFlow.swap.isConfirmingTX ||\n marketFlow.swapBatch.isConfirmingCalls\n ) {\n const permitOrApprovalHappened = !!(\n marketFlow.approval.txHash || marketFlow.signPermit.signature\n );\n\n step = {\n key: \"signature\",\n subStep: permitOrApprovalHappened\n ? \"order-signature\"\n : \"standalone-order-signature\",\n };\n } else if (\n marketFlow.swap.isTxPending ||\n marketFlow.swapBatch.isCallsPending\n ) {\n step = { key: \"swap-tx-execution\" };\n } else if (marketFlow.isPending) {\n // if something is between steps but not clear step,\n // then assume we're at the standalone signature sub-step\n step = { key: \"signature\", subStep: \"standalone-order-signature\" };\n }\n\n const approvalIsStarted =\n step?.key === \"signature\" &&\n step.subStep === \"approval-signature\" &&\n marketFlow.approval.isTxPending;\n\n const inSwapTxConfirmation =\n step?.key === \"signature\" &&\n (step.subStep === \"order-signature\" ||\n step.subStep === \"standalone-order-signature\");\n\n const notYetSwapTxSent =\n step?.key === \"swap-tx-execution\" &&\n !marketFlow.swap.isTxSent &&\n !marketFlow.swapBatch.isCallsSent;\n\n // final tx is not yet sent, there's something to cancel;\n // but some steps are already started so we can't simply dismiss\n const isFlowCancellable =\n approvalIsStarted || inSwapTxConfirmation || notYetSwapTxSent;\n\n const swapTxHash =\n // either last txHash from batch receipt\n marketFlow.swapBatch.txHash ||\n // or standalone swap txHash\n getStandaloneTxHash({ transactionHash: marketFlow.swap.txHash });\n\n const isSwapTxCancellable = marketFlow.swap.isTxCancellable;\n const isSwapTxCancelled = marketFlow.swap.cancellingState.isSuccess;\n const cancelSwapTxResult = marketFlow.swap.cancellingState.result;\n\n const linkTxHash =\n (isSwapTxCancelled && cancelSwapTxResult?.replacementTxHash) || swapTxHash;\n const explorerLink = linkTxHash\n ? constructTxLinkForChain({\n chainId: marketFlow.chainId,\n txHash: linkTxHash,\n })\n : undefined;\n\n const [nonFlowStep, setNonFlowStep] = useState<NonFlowStep | null>(null);\n const goToBeforeSwap = () => {\n setNonFlowStep({ key: \"prepare-swap\" });\n };\n const resetStepOverride = () => {\n setNonFlowStep(null);\n };\n\n step = nonFlowStep || step;\n const isNonFlowStep = !!nonFlowStep;\n\n logger.once.log(\"step\", step, marketFlow, {\n isFlowCancellable,\n explorerLink,\n txHash: swapTxHash,\n isSwapTxCancellable,\n isSwapTxCancelled,\n cancelSwapTxResult,\n });\n\n // intentional cancellation is handled separately\n const error = isUserCancelledError(marketFlow.error)\n ? null\n : marketFlow.error;\n\n let erroredStep: MarketSwapStepKey | undefined;\n\n if (marketFlow.isError) {\n if (\n marketFlow.approval.isError ||\n marketFlow.signPermit.isError ||\n marketFlow.buildTxParams.isError ||\n marketFlow.swap.isConfirmingTxError ||\n marketFlow.swapBatch.isConfirmingCallsError\n ) {\n erroredStep = \"signature\";\n } else if (\n marketFlow.swap.isTxAwaitingError ||\n marketFlow.swapBatch.isCallsAwaitingError\n ) {\n erroredStep = \"swap-tx-execution\";\n }\n }\n\n const resultProps: Pick<\n UseMarketSwapStepResult,\n | \"usedPrice\"\n | \"isFlowCancellable\"\n | \"error\"\n | \"erroredStep\"\n | \"result\"\n | \"submittedSwapRequest\"\n | \"explorerLink\"\n | \"swapTxCancellationStep\"\n > = isNonFlowStep\n ? {\n // don't return previous data when in non-flow step\n usedPrice: marketFlow.freshPrice,\n isFlowCancellable: false,\n error: null,\n }\n : {\n isFlowCancellable,\n explorerLink,\n error,\n erroredStep,\n result: marketFlow.result,\n usedPrice: marketFlow.usedPrice,\n submittedSwapRequest: marketFlow.submittedSwapRequest,\n swapTxCancellationStep: marketFlow.swap.cancellingState.step,\n };\n\n return {\n startMarketSwap: (options) => {\n resetStepOverride();\n return startMarketSwap(options);\n },\n reset: () => {\n resetStepOverride();\n return reset();\n },\n cancelFlow: () => {\n resetStepOverride();\n return cancelFlow();\n },\n retryFlow: (options) => {\n resetStepOverride();\n return retryFlow(options);\n },\n goToBeforeSwap,\n step,\n isNonFlowStep,\n ...resultProps,\n tradeFlowType: marketFlow.tradeFlowType,\n isSwapTxCancellable,\n isSwapTxCancelled,\n cancelSwapTxResult,\n cancelSwapTx: marketFlow.swap.cancelSwapTx,\n };\n}\n"],"names":["useMarketSwapStep","options","$","_c","logger","useLogger","marketFlow","useMarketFlow","startMarketSwap","runMarketSwapFlow","reset","cancelFlow","retryFlow","step","permitSigningHappeningOrNeverHappened","signPermit","isPending","isPermitSigned","approvalHappeningOrNeverHappened","approval","isSuccess","willUsePermit","needsApproval","isPermitSupported","isPermitReadyToSign","swapBatch","canBatchTxs","permitOrApprovalHappeningOrNeverHappened","buildTxParams","swap","isConfirmingTX","isConfirmingCalls","permitOrApprovalHappened","txHash","signature","isTxPending","isCallsPending","approvalIsStarted","key","subStep","inSwapTxConfirmation","notYetSwapTxSent","isTxSent","isCallsSent","isFlowCancellable","swapTxHash","getStandaloneTxHash","transactionHash","isSwapTxCancellable","isTxCancellable","isSwapTxCancelled","cancellingState","cancelSwapTxResult","result","linkTxHash","replacementTxHash","explorerLink","constructTxLinkForChain","chainId","undefined","nonFlowStep","setNonFlowStep","useState","t0","Symbol","for","goToBeforeSwap","t1","resetStepOverride","isNonFlowStep","once","log","t2","error","isUserCancelledError","erroredStep","isError","isConfirmingTxError","isConfirmingCallsError","isTxAwaitingError","isCallsAwaitingError","t3","freshPrice","submittedSwapRequest","usedPrice","swapTxCancellationStep","resultProps","t4","options_0","t5","t6","t7","options_1","t8","cancelSwapTx","tradeFlowType"],"mappings":"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"}
|