@velora-dex/widget 0.5.0 → 0.5.1-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/ui/button.d.ts +1 -1
- package/dist/components/ui/button.d.ts.map +1 -1
- package/dist/components/ui/button.js +1 -0
- package/dist/components/ui/button.js.map +1 -1
- package/dist/components/web3/ConnectWallets/walletIcons.d.ts +1 -4
- package/dist/components/web3/ConnectWallets/walletIcons.d.ts.map +1 -1
- package/dist/components/web3/ConnectWallets/walletIcons.js +3 -23
- 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 +14 -24
- 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 +7 -6
- 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 +2 -1
- package/dist/components/widget/AppHeader/TradeModeSwitcher.js.map +1 -1
- package/dist/components/widget/Button/CancelButton/CancelButton.js +40 -44
- package/dist/components/widget/Button/CancelButton/CancelButton.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.d.ts.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js +26 -4
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.d.ts +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.d.ts.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.js.map +1 -1
- package/dist/components/widget/Drawer/state/useDrawerControls.d.ts +2 -5
- package/dist/components/widget/Drawer/state/useDrawerControls.d.ts.map +1 -1
- package/dist/components/widget/Drawer/state/useDrawerControls.js +2 -75
- 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 +1 -4
- 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 +49 -85
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/Controls.js.map +1 -1
- package/dist/components/widget/LimitOrderItem/LimitOrderListItem.d.ts +7 -8
- package/dist/components/widget/LimitOrderItem/LimitOrderListItem.d.ts.map +1 -1
- package/dist/components/widget/LimitOrderItem/LimitOrderListItem.js +54 -60
- package/dist/components/widget/LimitOrderItem/LimitOrderListItem.js.map +1 -1
- package/dist/components/widget/LimitOrderItem/types.d.ts +3 -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 +19 -10
- package/dist/components/widget/LimitOrderItem/utils.js.map +1 -1
- package/dist/components/widget/NumberInput/NumberInput.d.ts +18 -0
- package/dist/components/widget/NumberInput/NumberInput.d.ts.map +1 -0
- package/dist/components/widget/NumberInput/NumberInput.js +242 -0
- package/dist/components/widget/NumberInput/NumberInput.js.map +1 -0
- package/dist/components/widget/NumberInput/assets/arrow-down.svg.js +12 -0
- package/dist/components/widget/NumberInput/assets/arrow-down.svg.js.map +1 -0
- package/dist/components/widget/NumberInput/assets/arrow-up.svg.js +12 -0
- package/dist/components/widget/NumberInput/assets/arrow-up.svg.js.map +1 -0
- package/dist/components/widget/OtcOrderItem/OtcOrderDetails/Controls.d.ts.map +1 -1
- package/dist/components/widget/OtcOrderItem/OtcOrderDetails/Controls.js +22 -33
- package/dist/components/widget/OtcOrderItem/OtcOrderDetails/Controls.js.map +1 -1
- package/dist/components/widget/OtcOrderItem/utils.d.ts.map +1 -1
- package/dist/components/widget/OtcOrderItem/utils.js +5 -2
- package/dist/components/widget/OtcOrderItem/utils.js.map +1 -1
- package/dist/components/widget/ReceiverAddress/state/subscriptions.d.ts.map +1 -1
- package/dist/components/widget/ReceiverAddress/state/subscriptions.js +8 -4
- package/dist/components/widget/ReceiverAddress/state/subscriptions.js.map +1 -1
- package/dist/components/widget/SwapRate/SwapRate.d.ts +2 -9
- package/dist/components/widget/SwapRate/SwapRate.d.ts.map +1 -1
- package/dist/components/widget/SwapRate/SwapRate.js +30 -21
- package/dist/components/widget/SwapRate/SwapRate.js.map +1 -1
- package/dist/components/widget/SwapRate/types.d.ts +13 -0
- package/dist/components/widget/SwapRate/types.d.ts.map +1 -0
- package/dist/components/widget/SwapRateWithPriceImpactRow/SwapRateWithPriceImpactRow.d.ts +7 -0
- package/dist/components/widget/SwapRateWithPriceImpactRow/SwapRateWithPriceImpactRow.d.ts.map +1 -0
- package/dist/components/widget/SwapRateWithPriceImpactRow/SwapRateWithPriceImpactRow.js +118 -0
- package/dist/components/widget/SwapRateWithPriceImpactRow/SwapRateWithPriceImpactRow.js.map +1 -0
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js +83 -90
- 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 +28 -38
- 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 +18 -16
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteFooter.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteHeader.d.ts +1 -2
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteHeader.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteHeader.js +70 -102
- 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 +2 -1
- 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 +14 -21
- 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 +105 -72
- 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 +41 -18
- package/dist/components/widget/TradeOverview/TradeComplete/utils.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorDetails.d.ts +1 -2
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorDetails.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorDetails.js +24 -66
- 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 +7 -11
- package/dist/components/widget/TradeOverview/TradeError/index.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/utils.d.ts +1 -4
- package/dist/components/widget/TradeOverview/TradeError/utils.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/utils.js +2 -20
- package/dist/components/widget/TradeOverview/TradeError/utils.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverview.d.ts +4 -5
- 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 +21 -15
- package/dist/components/widget/TradeOverview/TradeOverviewFooter.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverviewScreen.d.ts +7 -2
- package/dist/components/widget/TradeOverview/TradeOverviewScreen.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverviewScreen.js +19 -7
- package/dist/components/widget/TradeOverview/TradeOverviewScreen.js.map +1 -1
- package/dist/components/widget/TradeOverview/TwapOrderTradeOverview.d.ts +15 -0
- package/dist/components/widget/TradeOverview/TwapOrderTradeOverview.d.ts.map +1 -0
- package/dist/components/widget/TradeOverview/TwapOrderTradeOverview.js +249 -0
- package/dist/components/widget/TradeOverview/TwapOrderTradeOverview.js.map +1 -0
- package/dist/components/widget/TradeOverview/steps.d.ts +37 -4
- package/dist/components/widget/TradeOverview/steps.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/steps.js +10 -1
- package/dist/components/widget/TradeOverview/steps.js.map +1 -1
- package/dist/components/widget/TradeOverview/tradeFlowContext.d.ts +5 -22
- package/dist/components/widget/TradeOverview/tradeFlowContext.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/tradeFlowContext.js +11 -37
- package/dist/components/widget/TradeOverview/tradeFlowContext.js.map +1 -1
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.d.ts +1 -4
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.d.ts.map +1 -1
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.js +31 -133
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.js.map +1 -1
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/TransactionDetails.d.ts +2 -7
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/TransactionDetails.d.ts.map +1 -1
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/TransactionDetails.js +14 -18
- 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/components/widget/Twap/OrderDuration.d.ts +2 -0
- package/dist/components/widget/Twap/OrderDuration.d.ts.map +1 -0
- package/dist/components/widget/Twap/OrderDuration.js +77 -0
- package/dist/components/widget/Twap/OrderDuration.js.map +1 -0
- package/dist/components/widget/Twap/OrderSplit.d.ts +2 -0
- package/dist/components/widget/Twap/OrderSplit.d.ts.map +1 -0
- package/dist/components/widget/Twap/OrderSplit.js +57 -0
- package/dist/components/widget/Twap/OrderSplit.js.map +1 -0
- package/dist/components/widget/Twap/RateProtection.d.ts +2 -0
- package/dist/components/widget/Twap/RateProtection.d.ts.map +1 -0
- package/dist/components/widget/Twap/RateProtection.js +57 -0
- package/dist/components/widget/Twap/RateProtection.js.map +1 -0
- package/dist/components/widget/Twap/TwapDetailWithTooltip.d.ts +3 -0
- package/dist/components/widget/Twap/TwapDetailWithTooltip.d.ts.map +1 -0
- package/dist/components/widget/Twap/TwapDetailWithTooltip.js +33 -0
- package/dist/components/widget/Twap/TwapDetailWithTooltip.js.map +1 -0
- 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 +5 -0
- package/dist/core/TradeFlowScreenButton.d.ts.map +1 -1
- package/dist/core/TradeFlowScreenButton.js +58 -1
- package/dist/core/TradeFlowScreenButton.js.map +1 -1
- package/dist/core/TwapDetails.d.ts +2 -0
- package/dist/core/TwapDetails.d.ts.map +1 -0
- package/dist/core/TwapDetails.js +24 -0
- package/dist/core/TwapDetails.js.map +1 -0
- package/dist/core/Updaters.d.ts.map +1 -1
- package/dist/core/Updaters.js +0 -2
- package/dist/core/Updaters.js.map +1 -1
- package/dist/core/Warnings.d.ts +2 -1
- package/dist/core/Warnings.d.ts.map +1 -1
- package/dist/core/Warnings.js +99 -33
- package/dist/core/Warnings.js.map +1 -1
- package/dist/core/across/isCrosschainPossible.d.ts +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 +1 -0
- package/dist/core/button/hooks/useWidgetButtonExtraProps.d.ts.map +1 -1
- package/dist/core/button/hooks/useWidgetButtonExtraProps.js +134 -51
- 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 +205 -4
- package/dist/core/index.js.map +1 -1
- package/dist/core/inputs/hooks/types.d.ts +1 -1
- package/dist/core/inputs/hooks/types.d.ts.map +1 -1
- package/dist/core/inputs/hooks/useTokenToInputProps.d.ts.map +1 -1
- package/dist/core/inputs/hooks/useTokenToInputProps.js +5 -69
- package/dist/core/inputs/hooks/useTokenToInputProps.js.map +1 -1
- package/dist/core/inputs/hooks/useWarningMessage.d.ts +10 -0
- package/dist/core/inputs/hooks/useWarningMessage.d.ts.map +1 -0
- package/dist/core/inputs/hooks/useWarningMessage.js +71 -0
- package/dist/core/inputs/hooks/useWarningMessage.js.map +1 -0
- package/dist/core/inputs/state/common.d.ts +4 -0
- package/dist/core/inputs/state/common.d.ts.map +1 -1
- package/dist/core/inputs/state/common.js +49 -4
- 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 -33
- 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 +0 -2
- package/dist/core/limit/useLimitRate.js.map +1 -1
- package/dist/core/limit/useLimitTokenToInputProps.js.map +1 -1
- package/dist/core/state/chainToAtom.d.ts +2 -0
- package/dist/core/state/chainToAtom.d.ts.map +1 -1
- package/dist/core/state/chainToAtom.js +28 -7
- 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/configEffectAtom.d.ts.map +1 -1
- package/dist/core/state/configEffectAtom.js +10 -15
- package/dist/core/state/configEffectAtom.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 +36 -28
- package/dist/core/state/widgetEventsAtom.js.map +1 -1
- package/dist/core/swapDetails/priceImpact.d.ts +2 -2
- package/dist/core/swapDetails/priceImpact.d.ts.map +1 -1
- package/dist/core/swapDetails/priceImpact.js.map +1 -1
- package/dist/core/swapDetails/types.d.ts +4 -0
- package/dist/core/swapDetails/types.d.ts.map +1 -0
- package/dist/core/swapDetails/useSwapDetailsListProps.d.ts.map +1 -1
- package/dist/core/swapDetails/useSwapDetailsListProps.js +62 -158
- package/dist/core/swapDetails/useSwapDetailsListProps.js.map +1 -1
- package/dist/core/twap/state/constants.d.ts +20 -0
- package/dist/core/twap/state/constants.d.ts.map +1 -0
- package/dist/core/twap/state/constants.js +39 -0
- package/dist/core/twap/state/constants.js.map +1 -0
- package/dist/core/twap/state/currentTwapInputAtom.d.ts +4 -0
- package/dist/core/twap/state/currentTwapInputAtom.d.ts.map +1 -0
- package/dist/core/twap/state/currentTwapInputAtom.js +6 -0
- package/dist/core/twap/state/currentTwapInputAtom.js.map +1 -0
- package/dist/core/twap/state/isCrosschainAtom.d.ts +3 -0
- package/dist/core/twap/state/isCrosschainAtom.d.ts.map +1 -0
- package/dist/core/twap/state/isCrosschainAtom.js +16 -0
- package/dist/core/twap/state/isCrosschainAtom.js.map +1 -0
- package/dist/core/twap/state/selectedTokenActionsAtom.d.ts +13 -0
- package/dist/core/twap/state/selectedTokenActionsAtom.d.ts.map +1 -0
- package/dist/core/twap/state/selectedTokenActionsAtom.js +194 -0
- package/dist/core/twap/state/selectedTokenActionsAtom.js.map +1 -0
- package/dist/core/twap/state/twapInputAmountAtom.d.ts +9 -0
- package/dist/core/twap/state/twapInputAmountAtom.d.ts.map +1 -0
- package/dist/core/twap/state/twapInputAmountAtom.js +21 -0
- package/dist/core/twap/state/twapInputAmountAtom.js.map +1 -0
- package/dist/core/twap/state/twapParamsAtom.d.ts +15 -0
- package/dist/core/twap/state/twapParamsAtom.d.ts.map +1 -0
- package/dist/core/twap/state/twapParamsAtom.js +22 -0
- package/dist/core/twap/state/twapParamsAtom.js.map +1 -0
- package/dist/core/twap/state/twapReceiverAddressAtom.d.ts +5 -0
- package/dist/core/twap/state/twapReceiverAddressAtom.d.ts.map +1 -0
- package/dist/core/twap/state/twapReceiverAddressAtom.js +10 -0
- package/dist/core/twap/state/twapReceiverAddressAtom.js.map +1 -0
- package/dist/core/twap/state/twapSideAtom.d.ts +4 -0
- package/dist/core/twap/state/twapSideAtom.d.ts.map +1 -0
- package/dist/core/twap/state/twapSideAtom.js +24 -0
- package/dist/core/twap/state/twapSideAtom.js.map +1 -0
- package/dist/core/twap/state/twapTokenAtoms.d.ts +10 -0
- package/dist/core/twap/state/twapTokenAtoms.d.ts.map +1 -0
- package/dist/core/twap/state/twapTokenAtoms.js +17 -0
- package/dist/core/twap/state/twapTokenAtoms.js.map +1 -0
- package/dist/core/twap/twapDetails/minimumReceiveable.d.ts +12 -0
- package/dist/core/twap/twapDetails/minimumReceiveable.d.ts.map +1 -0
- package/dist/core/twap/twapDetails/minimumReceiveable.js +44 -0
- package/dist/core/twap/twapDetails/minimumReceiveable.js.map +1 -0
- package/dist/core/twap/useTwapDetailsListProps.d.ts +3 -0
- package/dist/core/twap/useTwapDetailsListProps.d.ts.map +1 -0
- package/dist/core/twap/useTwapDetailsListProps.js +143 -0
- package/dist/core/twap/useTwapDetailsListProps.js.map +1 -0
- package/dist/core/twap/useTwapTokenFromInputProps.d.ts +9 -0
- package/dist/core/twap/useTwapTokenFromInputProps.d.ts.map +1 -0
- package/dist/core/twap/useTwapTokenFromInputProps.js +455 -0
- package/dist/core/twap/useTwapTokenFromInputProps.js.map +1 -0
- package/dist/core/twap/useTwapTokenSwitcherProps.d.ts +3 -0
- package/dist/core/twap/useTwapTokenSwitcherProps.d.ts.map +1 -0
- package/dist/core/twap/useTwapTokenSwitcherProps.js +37 -0
- package/dist/core/twap/useTwapTokenSwitcherProps.js.map +1 -0
- package/dist/core/twap/useTwapTokenToInputProps.d.ts +10 -0
- package/dist/core/twap/useTwapTokenToInputProps.d.ts.map +1 -0
- package/dist/core/twap/useTwapTokenToInputProps.js +301 -0
- package/dist/core/twap/useTwapTokenToInputProps.js.map +1 -0
- package/dist/events/effects/formInput.d.ts +3 -0
- package/dist/events/effects/formInput.d.ts.map +1 -1
- package/dist/events/effects/formInput.js +17 -1
- package/dist/events/effects/formInput.js.map +1 -1
- package/dist/events/getters/twap.d.ts +6 -0
- package/dist/events/getters/twap.d.ts.map +1 -0
- package/dist/events/getters/twap.js +76 -0
- package/dist/events/getters/twap.js.map +1 -0
- package/dist/events/getters/widgetState.d.ts.map +1 -1
- package/dist/events/getters/widgetState.js +3 -1
- 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 +2 -1
- package/dist/events/hooks/useActivateEffects.js.map +1 -1
- package/dist/events/types/{cancelOrder.d.ts → cancel.d.ts} +2 -5
- package/dist/events/types/cancel.d.ts.map +1 -0
- package/dist/events/types/common.d.ts +8 -0
- package/dist/events/types/common.d.ts.map +1 -1
- package/dist/events/types/formInput.d.ts +11 -2
- 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 +3 -12
- package/dist/events/types/swap.d.ts.map +1 -1
- package/dist/events/types/twap.d.ts +26 -0
- package/dist/events/types/twap.d.ts.map +1 -0
- 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 +0 -1
- 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 +2 -20
- package/dist/hooks/otc/mutations/useCancelLimitOrder.d.ts.map +1 -1
- package/dist/hooks/otc/mutations/useCancelLimitOrder.js +74 -197
- 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 +1 -0
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js.map +1 -1
- package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.d.ts +1 -6
- package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.d.ts.map +1 -1
- package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.js +24 -37
- 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 +42 -28
- package/dist/hooks/otc/tradeFlow/useOtcOrderStep.js.map +1 -1
- package/dist/hooks/permit/utils/deadlines.d.ts +0 -3
- package/dist/hooks/permit/utils/deadlines.d.ts.map +1 -1
- package/dist/hooks/permit/utils/deadlines.js +3 -9
- package/dist/hooks/permit/utils/deadlines.js.map +1 -1
- package/dist/hooks/swap/prices/constants.d.ts +1 -0
- package/dist/hooks/swap/prices/constants.d.ts.map +1 -1
- package/dist/hooks/swap/prices/constants.js +2 -1
- package/dist/hooks/swap/prices/constants.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/twap/useCreatePreSignableTwapOrder.d.ts +19 -0
- package/dist/hooks/swap/prices/delta/mutations/twap/useCreatePreSignableTwapOrder.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/twap/useCreatePreSignableTwapOrder.js +86 -0
- package/dist/hooks/swap/prices/delta/mutations/twap/useCreatePreSignableTwapOrder.js.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/twap/useCreateTwapOrder.d.ts +37 -0
- package/dist/hooks/swap/prices/delta/mutations/twap/useCreateTwapOrder.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/twap/useCreateTwapOrder.js +164 -0
- package/dist/hooks/swap/prices/delta/mutations/twap/useCreateTwapOrder.js.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/twap/useDepositAndSubmitTwapOrder.d.ts +69 -0
- package/dist/hooks/swap/prices/delta/mutations/twap/useDepositAndSubmitTwapOrder.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/twap/useDepositAndSubmitTwapOrder.js +278 -0
- package/dist/hooks/swap/prices/delta/mutations/twap/useDepositAndSubmitTwapOrder.js.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/twap/usePostTwapOrder.d.ts +15 -0
- package/dist/hooks/swap/prices/delta/mutations/twap/usePostTwapOrder.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/twap/usePostTwapOrder.js +89 -0
- package/dist/hooks/swap/prices/delta/mutations/twap/usePostTwapOrder.js.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/twap/usePreSignAndSubmitTwapOrder.d.ts +60 -0
- package/dist/hooks/swap/prices/delta/mutations/twap/usePreSignAndSubmitTwapOrder.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/twap/usePreSignAndSubmitTwapOrder.js +325 -0
- package/dist/hooks/swap/prices/delta/mutations/twap/usePreSignAndSubmitTwapOrder.js.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/twap/useTwapOrderToPost.d.ts +18 -0
- package/dist/hooks/swap/prices/delta/mutations/twap/useTwapOrderToPost.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/twap/useTwapOrderToPost.js +87 -0
- package/dist/hooks/swap/prices/delta/mutations/twap/useTwapOrderToPost.js.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/types.d.ts +12 -1
- package/dist/hooks/swap/prices/delta/mutations/types.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrders.d.ts +2 -5
- 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 +1 -6
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrdersEvents.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrdersEvents.js +0 -16
- package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrdersEvents.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.d.ts +6 -13
- package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.js +149 -181
- 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/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 +3 -15
- package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.d.ts +5 -5
- package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.js +35 -24
- package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/utils.d.ts +17 -6
- package/dist/hooks/swap/prices/delta/mutations/utils.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/utils.js +35 -2
- package/dist/hooks/swap/prices/delta/mutations/utils.js.map +1 -1
- package/dist/hooks/swap/prices/delta/orders/types.d.ts +11 -46
- 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 +6 -5
- 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 +67 -1
- package/dist/hooks/swap/prices/delta/orders/unposted/utils.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/orders/unposted/utils.js +24 -6
- package/dist/hooks/swap/prices/delta/orders/unposted/utils.js.map +1 -1
- package/dist/hooks/swap/prices/delta/orders/utils.d.ts +41 -10
- package/dist/hooks/swap/prices/delta/orders/utils.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/orders/utils.js +135 -4
- package/dist/hooks/swap/prices/delta/orders/utils.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/bridgeInfosLoadedAtom.js +3 -3
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/bridgeInfosLoadedAtom.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/types.d.ts +1 -1
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/types.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/useBridgeInfo.d.ts +0 -1
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/useBridgeInfo.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/useBridgeInfo.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/errors.d.ts +10 -0
- package/dist/hooks/swap/prices/delta/queries/errors.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/errors.js +22 -1
- package/dist/hooks/swap/prices/delta/queries/errors.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaOrders.d.ts +5 -6
- 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 +37 -35
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.d.ts +14 -17
- 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/market/mutations/useSendMarketSwapTx.d.ts +2 -6
- package/dist/hooks/swap/prices/market/mutations/useSendMarketSwapTx.d.ts.map +1 -1
- package/dist/hooks/swap/prices/market/mutations/useSendMarketSwapTx.js +2 -8
- 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 +37 -35
- 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 +3 -4
- package/dist/hooks/swap/prices/usePricesParams.js.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.d.ts +3 -0
- package/dist/hooks/swap/prices/useSwapPrices.d.ts.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.js +51 -33
- 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/prices/useTokenInputsFromTwapPrice.d.ts +16 -0
- package/dist/hooks/swap/prices/useTokenInputsFromTwapPrice.d.ts.map +1 -0
- package/dist/hooks/swap/prices/useTokenInputsFromTwapPrice.js +73 -0
- package/dist/hooks/swap/prices/useTokenInputsFromTwapPrice.js.map +1 -0
- package/dist/hooks/swap/prices/useTwapPrices.d.ts +44 -0
- package/dist/hooks/swap/prices/useTwapPrices.d.ts.map +1 -0
- package/dist/hooks/swap/prices/useTwapPrices.js +241 -0
- package/dist/hooks/swap/prices/useTwapPrices.js.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/errors.d.ts +0 -6
- package/dist/hooks/swap/tradeFlow/common/errors.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/errors.js +1 -15
- package/dist/hooks/swap/tradeFlow/common/errors.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/factory/depositAndSubmitOrderFactory.d.ts +48 -0
- package/dist/hooks/swap/tradeFlow/common/factory/depositAndSubmitOrderFactory.d.ts.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/factory/depositAndSubmitOrderFactory.js +71 -0
- package/dist/hooks/swap/tradeFlow/common/factory/depositAndSubmitOrderFactory.js.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/factory/preSignAndSubmitOrderFactory.d.ts +50 -0
- package/dist/hooks/swap/tradeFlow/common/factory/preSignAndSubmitOrderFactory.d.ts.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/factory/preSignAndSubmitOrderFactory.js +94 -0
- package/dist/hooks/swap/tradeFlow/common/factory/preSignAndSubmitOrderFactory.js.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/types.d.ts +4 -2
- package/dist/hooks/swap/tradeFlow/common/types.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.d.ts +2 -0
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js +57 -55
- 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 +263 -152
- 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 +296 -181
- package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.d.ts +2 -1
- package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.js +85 -83
- 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 +9 -15
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +25 -61
- 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 +57 -45
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts +6 -12
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js +10 -35
- 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 +37 -23
- package/dist/hooks/swap/tradeFlow/useLimitOrderStep.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts +1 -13
- package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.js +26 -93
- package/dist/hooks/swap/tradeFlow/useMarketFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.d.ts +1 -7
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js +42 -59
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useTwapFlow.d.ts +88 -0
- package/dist/hooks/swap/tradeFlow/useTwapFlow.d.ts.map +1 -0
- package/dist/hooks/swap/tradeFlow/useTwapFlow.js +595 -0
- package/dist/hooks/swap/tradeFlow/useTwapFlow.js.map +1 -0
- package/dist/hooks/swap/tradeFlow/useTwapSwapStep.d.ts +25 -0
- package/dist/hooks/swap/tradeFlow/useTwapSwapStep.d.ts.map +1 -0
- package/dist/hooks/swap/tradeFlow/useTwapSwapStep.js +237 -0
- package/dist/hooks/swap/tradeFlow/useTwapSwapStep.js.map +1 -0
- package/dist/hooks/tokens/useAllTokensWithFilter.d.ts +1 -1
- package/dist/hooks/tokens/useAllTokensWithFilter.d.ts.map +1 -1
- package/dist/hooks/tokens/useAllTokensWithFilter.js.map +1 -1
- package/dist/hooks/tokens/useTokensFromAcross.d.ts +1 -1
- package/dist/hooks/tokens/useTokensFromAcross.d.ts.map +1 -1
- package/dist/hooks/tokens/useTokensFromAcross.js.map +1 -1
- package/dist/hooks/txs/mutations/useSendTx.d.ts +2 -7
- 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/useTxHistory.d.ts.map +1 -1
- package/dist/hooks/txs/queries/useTxHistory.js +2 -3
- package/dist/hooks/txs/queries/useTxHistory.js.map +1 -1
- package/dist/hooks/useBridgeInfo.d.ts +1 -1
- package/dist/hooks/useBridgeInfo.d.ts.map +1 -1
- package/dist/hooks/useBridgeInfo.js.map +1 -1
- package/dist/hooks/useIsCrosschainPossible.d.ts +1 -1
- package/dist/hooks/useIsCrosschainPossible.d.ts.map +1 -1
- package/dist/hooks/useIsCrosschainPossible.js.map +1 -1
- 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/useSelectableDestChains.d.ts +1 -1
- package/dist/hooks/useSelectableDestChains.d.ts.map +1 -1
- package/dist/hooks/useSelectableDestChains.js.map +1 -1
- package/dist/hooks/useSlippage.d.ts.map +1 -1
- package/dist/hooks/useSlippage.js +2 -1
- 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 +1 -0
- package/dist/lib/constants/time.d.ts.map +1 -1
- package/dist/lib/constants/time.js +2 -1
- 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 +9 -1
- package/dist/lib/tradeMode.d.ts.map +1 -1
- package/dist/lib/tradeMode.js +4 -2
- package/dist/lib/tradeMode.js.map +1 -1
- package/dist/lib/utils/delta.d.ts +10 -0
- package/dist/lib/utils/delta.d.ts.map +1 -1
- package/dist/lib/utils/delta.js +24 -1
- package/dist/lib/utils/delta.js.map +1 -1
- package/dist/lib/utils/index.d.ts +8 -0
- package/dist/lib/utils/index.d.ts.map +1 -1
- package/dist/lib/utils/index.js +18 -1
- package/dist/lib/utils/index.js.map +1 -1
- package/dist/lib/utils/price.d.ts +1 -0
- package/dist/lib/utils/price.d.ts.map +1 -1
- package/dist/lib/utils/price.js +4 -2
- package/dist/lib/utils/price.js.map +1 -1
- package/dist/lib/utils/scaleFactor.d.ts +3 -0
- package/dist/lib/utils/scaleFactor.d.ts.map +1 -0
- package/dist/lib/utils/scaleFactor.js +12 -0
- package/dist/lib/utils/scaleFactor.js.map +1 -0
- package/dist/lib/utils/time.d.ts +2 -0
- package/dist/lib/utils/time.d.ts.map +1 -1
- package/dist/lib/utils/time.js +7 -1
- 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/utils/twap.d.ts +24 -0
- package/dist/lib/utils/twap.d.ts.map +1 -0
- package/dist/lib/utils/twap.js +52 -0
- package/dist/lib/utils/twap.js.map +1 -0
- 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 +65 -7
- 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.js +17 -17
- 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/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/state/transactionsActionAtom.d.ts +0 -12
- package/dist/transactions/state/transactionsActionAtom.d.ts.map +1 -1
- package/dist/transactions/state/transactionsActionAtom.js +1 -40
- 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 +0 -6
- package/dist/transactions/status.js.map +1 -1
- package/dist/transactions/types.d.ts +5 -18
- package/dist/transactions/types.d.ts.map +1 -1
- package/package.json +3 -3
- package/dist/components/web3/ConnectWallets/walletFlags.d.ts +0 -90
- package/dist/components/web3/ConnectWallets/walletFlags.d.ts.map +0 -1
- package/dist/components/web3/ConnectWallets/walletFlags.js +0 -104
- package/dist/components/web3/ConnectWallets/walletFlags.js.map +0 -1
- package/dist/components/widget/Button/CancelButton/CancelButtonWithDrawer.d.ts +0 -15
- package/dist/components/widget/Button/CancelButton/CancelButtonWithDrawer.d.ts.map +0 -1
- package/dist/components/widget/Button/CancelButton/CancelButtonWithDrawer.js +0 -66
- package/dist/components/widget/Button/CancelButton/CancelButtonWithDrawer.js.map +0 -1
- package/dist/components/widget/TradeOverview/CancelButtonWithDrawer.d.ts +0 -7
- package/dist/components/widget/TradeOverview/CancelButtonWithDrawer.d.ts.map +0 -1
- package/dist/components/widget/TradeOverview/CancelButtonWithDrawer.js +0 -84
- package/dist/components/widget/TradeOverview/CancelButtonWithDrawer.js.map +0 -1
- package/dist/components/widget/TradeOverview/CancelOrder/ConfirmCancel.d.ts +0 -12
- package/dist/components/widget/TradeOverview/CancelOrder/ConfirmCancel.d.ts.map +0 -1
- package/dist/components/widget/TradeOverview/CancelOrder/ConfirmCancel.js +0 -227
- package/dist/components/widget/TradeOverview/CancelOrder/ConfirmCancel.js.map +0 -1
- package/dist/components/widget/TradeOverview/CancelOrder/constants.d.ts +0 -8
- package/dist/components/widget/TradeOverview/CancelOrder/constants.d.ts.map +0 -1
- package/dist/components/widget/TradeOverview/CancelOrder/constants.js +0 -20
- package/dist/components/widget/TradeOverview/CancelOrder/constants.js.map +0 -1
- package/dist/components/widget/TradeOverview/CancelOrder/utils.d.ts +0 -12
- package/dist/components/widget/TradeOverview/CancelOrder/utils.d.ts.map +0 -1
- package/dist/components/widget/TradeOverview/CancelOrder/utils.js +0 -49
- package/dist/components/widget/TradeOverview/CancelOrder/utils.js.map +0 -1
- package/dist/events/types/cancelOrder.d.ts.map +0 -1
- package/dist/events/types/cancelTx.d.ts +0 -35
- package/dist/events/types/cancelTx.d.ts.map +0 -1
- package/dist/hooks/swap/prices/delta/mutations/useIsDeltaOrderCancellable.d.ts +0 -11
- package/dist/hooks/swap/prices/delta/mutations/useIsDeltaOrderCancellable.d.ts.map +0 -1
- package/dist/hooks/swap/prices/delta/mutations/useIsDeltaOrderCancellable.js +0 -69
- package/dist/hooks/swap/prices/delta/mutations/useIsDeltaOrderCancellable.js.map +0 -1
- package/dist/hooks/swap/prices/delta/queries/utils.d.ts +0 -4
- package/dist/hooks/swap/prices/delta/queries/utils.d.ts.map +0 -1
- package/dist/hooks/swap/prices/delta/queries/utils.js +0 -16
- package/dist/hooks/swap/prices/delta/queries/utils.js.map +0 -1
- package/dist/hooks/txs/mutations/useReplaceTx.d.ts +0 -86
- package/dist/hooks/txs/mutations/useReplaceTx.d.ts.map +0 -1
- package/dist/hooks/txs/mutations/useReplaceTx.js +0 -514
- package/dist/hooks/txs/mutations/useReplaceTx.js.map +0 -1
- package/dist/hooks/txs/queries/useAccountNonce.d.ts +0 -9
- package/dist/hooks/txs/queries/useAccountNonce.d.ts.map +0 -1
- package/dist/hooks/txs/queries/useAccountNonce.js +0 -31
- package/dist/hooks/txs/queries/useAccountNonce.js.map +0 -1
- package/dist/hooks/txs/queries/useTxFees.d.ts +0 -16
- package/dist/hooks/txs/queries/useTxFees.d.ts.map +0 -1
- package/dist/hooks/txs/queries/useTxFees.js +0 -103
- package/dist/hooks/txs/queries/useTxFees.js.map +0 -1
- package/dist/hooks/txs/queries/useTxResponse.d.ts +0 -2390
- package/dist/hooks/txs/queries/useTxResponse.d.ts.map +0 -1
- package/dist/hooks/txs/queries/useTxResponse.js +0 -75
- package/dist/hooks/txs/queries/useTxResponse.js.map +0 -1
- package/dist/hooks/txs/queries/useWalletCanReplaceTx.d.ts +0 -2
- package/dist/hooks/txs/queries/useWalletCanReplaceTx.d.ts.map +0 -1
- package/dist/hooks/txs/queries/useWalletCanReplaceTx.js +0 -30
- package/dist/hooks/txs/queries/useWalletCanReplaceTx.js.map +0 -1
- package/dist/transactions/queries/ensureEstimateFeesPerGas.d.ts +0 -16
- package/dist/transactions/queries/ensureEstimateFeesPerGas.d.ts.map +0 -1
- package/dist/transactions/queries/ensureEstimateFeesPerGas.js +0 -23
- package/dist/transactions/queries/ensureEstimateFeesPerGas.js.map +0 -1
- package/dist/transactions/queries/ensureTxResponse.d.ts +0 -17
- package/dist/transactions/queries/ensureTxResponse.d.ts.map +0 -1
- package/dist/transactions/queries/ensureTxResponse.js +0 -23
- package/dist/transactions/queries/ensureTxResponse.js.map +0 -1
- package/dist/transactions/state/hooks/useMarkTxAsDropped.d.ts +0 -7
- package/dist/transactions/state/hooks/useMarkTxAsDropped.d.ts.map +0 -1
- package/dist/transactions/state/hooks/useMarkTxAsDropped.js +0 -10
- package/dist/transactions/state/hooks/useMarkTxAsDropped.js.map +0 -1
|
@@ -5,16 +5,16 @@ import { deltaOrdersQueryKey } from '../prices/delta/queries/useDeltaOrders.js';
|
|
|
5
5
|
import { useCreateAndSubmitDeltaOrder } from '../prices/delta/mutations/useCreateDeltaOrder.js';
|
|
6
6
|
import { useMinViemClient } from '../../useMinViemClient.js';
|
|
7
7
|
import { useWatchDeltaAuction, useEnsureDeltaOrderExecuted } from '../prices/delta/queries/useWatchDeltaOrder.js';
|
|
8
|
-
import { getOverallOrderStatus } from '../prices/delta/orders/utils.js';
|
|
8
|
+
import { getSwapSideFromDeltaPrice, getOverallOrderStatus } from '../prices/delta/orders/utils.js';
|
|
9
9
|
import { applySlippage } from '../../../lib/utils/price.js';
|
|
10
10
|
import { useSlippage } from '../../useSlippage.js';
|
|
11
11
|
import { useQueryClient, useMutation } from '@tanstack/react-query';
|
|
12
12
|
import { useRef } from 'react';
|
|
13
|
-
import {
|
|
13
|
+
import { UserCancelledError } from './common/errors.js';
|
|
14
14
|
import { useSwapReceiverAddressValue } from '../../../components/widget/ReceiverAddress/state/receiverAddressAtom.js';
|
|
15
15
|
import { useApproveOrPermit } from './common/useApproveOrPermit.js';
|
|
16
16
|
import { useMarkPermit1Or2NonceAsUsed } from './common/useSignPermit1Or2.js';
|
|
17
|
-
import { produceDeltaOrderDeadline } from '
|
|
17
|
+
import { produceDeltaOrderDeadline } from '../../../lib/utils/delta.js';
|
|
18
18
|
import { encodePermit2TransferFromSigDataForDelta } from '../../permit/utils/encodeArgs.js';
|
|
19
19
|
import { useLogger } from '../../../core/logger.js';
|
|
20
20
|
import { useDeltaPriceQuery, useSubscribeToDeltaPrice, isBridgePrice } from '../prices/delta/queries/useDeltaPriceQuery.js';
|
|
@@ -22,7 +22,6 @@ import { usePartner } from '../../usePartner.js';
|
|
|
22
22
|
import { useWidgetEvents } from '../../../core/state/widgetEventsAtom.js';
|
|
23
23
|
import { usePreSignAndSubmitDeltaOrder, shouldApproveOrBatch } from './common/usePreSignAndSubmitDeltaOrder.js';
|
|
24
24
|
import { useSwapSide } from '../../../components/widget/SwapModeSwitcher/state/swapSideAtom.js';
|
|
25
|
-
import { getSwapSideFromDeltaPrice } from '../prices/delta/queries/utils.js';
|
|
26
25
|
import { extractSelectedBridgePrice } from '../prices/delta/bridge/utils.js';
|
|
27
26
|
import { useAtomValue } from '../../../core/store.js';
|
|
28
27
|
import { bridgePreferenceAtom } from '../../../components/widget/TradeParameters/state/bridgePreferences/bridgePreferenceAtom.js';
|
|
@@ -176,48 +175,23 @@ function useDeltaFlow({
|
|
|
176
175
|
isSuccess: orderStatus === "confirmed",
|
|
177
176
|
error: watchOrderExecution.error
|
|
178
177
|
};
|
|
179
|
-
const {
|
|
180
|
-
onSwap
|
|
181
|
-
} = useWidgetEvents();
|
|
182
|
-
const orderToCancel = deltaOrderExecution.lastOrderState || deltaOrderExecution.sentOrder;
|
|
183
178
|
const cancelOrderMut = useCancelOrWithdrawAndCancelDeltaOrder({
|
|
184
179
|
// supply the must up-to-date order for cancellation
|
|
185
|
-
order:
|
|
180
|
+
order: deltaOrderExecution.lastOrderState || deltaOrderExecution.sentOrder,
|
|
186
181
|
chainId,
|
|
187
182
|
account,
|
|
188
183
|
client: minClient,
|
|
189
|
-
logger
|
|
190
|
-
mutationOptions: {
|
|
191
|
-
onMutate: () => {
|
|
192
|
-
assert(orderToCancel, "No order to cancel");
|
|
193
|
-
return orderToCancel;
|
|
194
|
-
},
|
|
195
|
-
onSuccess: (_details, _variables, onMutateResult) => {
|
|
196
|
-
onSwap?.({
|
|
197
|
-
event: {
|
|
198
|
-
name: "Swap:cancelled",
|
|
199
|
-
params: {
|
|
200
|
-
swapMode: "delta",
|
|
201
|
-
order: onMutateResult
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
});
|
|
205
|
-
}
|
|
206
|
-
}
|
|
184
|
+
logger
|
|
207
185
|
});
|
|
208
186
|
const deltaOrderCancelation = {
|
|
209
187
|
receipt: cancelOrderMut.receipt,
|
|
210
|
-
txHash: cancelOrderMut.txHash,
|
|
211
|
-
response: cancelOrderMut.cancelOrderResponse,
|
|
212
188
|
isCancelingOrder: cancelOrderMut.isPending,
|
|
213
189
|
isOrderCancellable: cancelOrderMut.isOrderCancellable,
|
|
214
190
|
isOrderCanceled: cancelOrderMut.isSuccess,
|
|
215
191
|
isPending: cancelOrderMut.isPending,
|
|
216
192
|
isError: cancelOrderMut.isError,
|
|
217
193
|
isSuccess: cancelOrderMut.isSuccess,
|
|
218
|
-
error: cancelOrderMut.error
|
|
219
|
-
result: cancelOrderMut.result,
|
|
220
|
-
step: cancelOrderMut.step
|
|
194
|
+
error: cancelOrderMut.error
|
|
221
195
|
};
|
|
222
196
|
const ensureOrderExecuted = useEnsureDeltaOrderExecuted({
|
|
223
197
|
onAuctionSuccess: (order_4) => {
|
|
@@ -261,6 +235,9 @@ function useDeltaFlow({
|
|
|
261
235
|
const protocolName = useAtomValue(protocolNameAtom);
|
|
262
236
|
const bridgePreference = useAtomValue(bridgePreferenceAtom);
|
|
263
237
|
const subscribeToPrice = useSubscribeToDeltaPrice();
|
|
238
|
+
const {
|
|
239
|
+
onSwap
|
|
240
|
+
} = useWidgetEvents();
|
|
264
241
|
const submitDeltaOrder = async ({
|
|
265
242
|
onTxSent,
|
|
266
243
|
onOrderSent,
|
|
@@ -484,14 +461,15 @@ function useDeltaFlow({
|
|
|
484
461
|
}
|
|
485
462
|
};
|
|
486
463
|
if (shouldDepositAndPreSign) {
|
|
464
|
+
const depositAmount = createOrderInput.orderInput.srcAmount;
|
|
487
465
|
orderFromAPI = await depositAndSubmitDeltaOrder({
|
|
488
|
-
|
|
489
|
-
depositAmount
|
|
466
|
+
createOrderInput,
|
|
467
|
+
depositAmount,
|
|
490
468
|
onTxSent
|
|
491
469
|
});
|
|
492
470
|
} else if (shouldPreSignBatch) {
|
|
493
471
|
orderFromAPI = await preSignAndSubmitDeltaOrder({
|
|
494
|
-
|
|
472
|
+
createOrderInput,
|
|
495
473
|
approval,
|
|
496
474
|
onTxSent
|
|
497
475
|
});
|
|
@@ -528,12 +506,7 @@ function useDeltaFlow({
|
|
|
528
506
|
params: {
|
|
529
507
|
swapMode: "delta",
|
|
530
508
|
price: deltaPriceToUse,
|
|
531
|
-
order:
|
|
532
|
-
...lastOrderState,
|
|
533
|
-
orderVersion: orderFromAPI.orderVersion,
|
|
534
|
-
deltaGasOverhead: orderFromAPI.deltaGasOverhead,
|
|
535
|
-
signature: orderFromAPI.signature
|
|
536
|
-
} : orderFromAPI
|
|
509
|
+
order: orderFromAPI
|
|
537
510
|
}
|
|
538
511
|
}
|
|
539
512
|
});
|
|
@@ -556,38 +529,29 @@ function useDeltaFlow({
|
|
|
556
529
|
if (signedPermitResult) {
|
|
557
530
|
clearNonce(signedPermitResult.signedPermitData);
|
|
558
531
|
}
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
error: error_0
|
|
566
|
-
}
|
|
532
|
+
onSwap?.({
|
|
533
|
+
event: {
|
|
534
|
+
name: "Swap:failed",
|
|
535
|
+
params: {
|
|
536
|
+
swapMode: "delta",
|
|
537
|
+
error: error_0
|
|
567
538
|
}
|
|
568
|
-
}
|
|
569
|
-
}
|
|
539
|
+
}
|
|
540
|
+
});
|
|
570
541
|
throw error_0;
|
|
571
542
|
} finally {
|
|
572
543
|
unsubscribeFromPrice?.();
|
|
573
544
|
}
|
|
574
545
|
};
|
|
575
|
-
const cancelDeltaOrder =
|
|
576
|
-
try {
|
|
577
|
-
return await cancelOrderMut.cancelDeltaOrder();
|
|
578
|
-
} catch (error_2) {
|
|
579
|
-
logger.error("Cancel Delta order error", error_2);
|
|
580
|
-
cancelOrderMut.reset();
|
|
581
|
-
}
|
|
582
|
-
};
|
|
546
|
+
const cancelDeltaOrder = cancelOrderMut.cancelDeltaOrder;
|
|
583
547
|
const deltaOrderMut = useMutation({
|
|
584
548
|
mutationFn: submitDeltaOrder,
|
|
585
549
|
mutationKey: [DELTA_ORDER_MUTATION_KEY],
|
|
586
550
|
onSuccess: (data_0) => {
|
|
587
551
|
logger.log("Delta Order success", data_0);
|
|
588
552
|
},
|
|
589
|
-
onError: (
|
|
590
|
-
logger.error("Delta Order error",
|
|
553
|
+
onError: (error_2) => {
|
|
554
|
+
logger.error("Delta Order error", error_2);
|
|
591
555
|
},
|
|
592
556
|
onSettled: () => {
|
|
593
557
|
logger.log("Delta Order settled");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDeltaFlow.js","sources":["../../../../src/hooks/swap/tradeFlow/useDeltaFlow.ts"],"sourcesContent":["import type {\n BridgePrice,\n DeltaAuction,\n DeltaOrderApiResponse,\n DeltaPrice,\n} from \"@velora-dex/sdk\";\nimport { useAccount } from \"wagmi\";\nimport { assert } from \"ts-essentials\";\nimport { useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport type { Address, Hash, TransactionReceipt } from \"viem\";\nimport {\n deltaOrdersQueryKey,\n type SubmittedDeltaOrderFromAPI,\n} from \"../prices/delta/queries/useDeltaOrders\";\nimport type {\n ApprovalFlowResult,\n SignPermitFlowResult,\n SubmitTxResult,\n} from \"./common/types\";\nimport {\n useCreateAndSubmitDeltaOrder,\n type CreateAndSubmitDeltaOrderInput,\n} from \"../prices/delta/mutations/useCreateDeltaOrder\";\nimport { useMinViemClient } from \"@/hooks/useMinViemClient\";\nimport {\n useEnsureDeltaOrderExecuted,\n useWatchDeltaAuction,\n type MaybeVeloraDeltaAuction,\n} from \"../prices/delta/queries/useWatchDeltaOrder\";\nimport { getOverallOrderStatus } from \"../prices/delta/orders/utils\";\nimport { applySlippage } from \"@/lib/utils/price\";\nimport { useSlippage } from \"@/hooks/useSlippage\";\nimport { useMutation, useQueryClient } from \"@tanstack/react-query\";\nimport { useRef } from \"react\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport {\n isTransactionCancelledError,\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 type { OrderSentObject } from \"@/lib/utils/toasts\";\nimport { useApproveOrPermit } from \"./common/useApproveOrPermit\";\nimport {\n useMarkPermit1Or2NonceAsUsed,\n type SignedPermitResult,\n} from \"./common/useSignPermit1Or2\";\nimport { produceDeltaOrderDeadline } from \"@/hooks/permit/utils/deadlines\";\nimport { encodePermit2TransferFromSigDataForDelta } from \"@/hooks/permit/utils/encodeArgs\";\nimport { useLogger } from \"@/core/logger\";\nimport {\n isBridgePrice,\n useDeltaPriceQuery,\n useSubscribeToDeltaPrice,\n} from \"../prices/delta/queries/useDeltaPriceQuery\";\nimport { usePartner } from \"@/hooks/usePartner\";\nimport { useWidgetEvents } from \"@/core/state/widgetEventsAtom\";\nimport {\n shouldApproveOrBatch,\n usePreSignAndSubmitDeltaOrder,\n type DeltaOrderPreSignResult,\n} from \"./common/usePreSignAndSubmitDeltaOrder\";\nimport { useSwapSide } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport { getSwapSideFromDeltaPrice } from \"../prices/delta/queries/utils\";\nimport { extractSelectedBridgePrice } from \"../prices/delta/bridge/utils\";\nimport type { DeltaOrBridgePrice } from \"../prices/types\";\nimport { useAtomValue } from \"@/core/store\";\nimport { bridgePreferenceAtom } from \"@/components/widget/TradeParameters/state/bridgePreferences/bridgePreferenceAtom\";\nimport { protocolNameAtom } from \"@/components/widget/TradeParameters/state/bridgePreferences/protocolNameAtom\";\nimport {\n useDepositAndSubmitDeltaOrder,\n type DeltaOrderDepositResult,\n} from \"./common/useDepositAndSubmitDeltaOrder\";\nimport { isETHaddress } from \"@/tokens/utils/eth\";\nimport { useCancelOrWithdrawAndCancelDeltaOrder } from \"../prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder\";\nimport type { CancelDeltaOrdersReturn } from \"../prices/delta/mutations/useCancelDeltaOrders\";\n\nimport {\n useExtraDeltaPriceParams,\n usePricesParams,\n} from \"../prices/usePricesParams\";\nimport { useSelectedBridgePrice } from \"../prices/delta/bridge/useSelectedBridgePrice\";\nimport type { CancelOrderStepKey } from \"@/components/widget/TradeOverview/steps\";\n\nconst deltaOrderFlowType = \"deltaOrder\";\n\nexport type UseDeltaFlowInput = {\n deltaPrice?: DeltaPrice | BridgePrice;\n};\n\nexport type SubmitDeltaOrderResult = {\n tradeFlowType: typeof deltaOrderFlowType;\n approve: SubmitTxResult;\n deltaOrder: {\n sentOrder: SubmittedDeltaOrderFromAPI;\n lastOrderState: MaybeVeloraDeltaAuction;\n };\n deltaPrice: DeltaPrice | BridgePrice;\n account: Address;\n receiverAddress?: Address;\n};\n\ntype OnTxSent = (txSent: TxSentObject | CallsSentObject) => void;\n\ntype OnOrderSent = (orderSent: OrderSentObject) => void;\n\n// @TODO instead add global onTxSent subscription to\n// MutationCache({onSuccess: txHash}) when sent\n// and QueryCache({onSuccess: txReceipt|Order executed}) when mined,\n// maybe??\ntype RunDeltaOrderOptions = {\n onTxSent?: OnTxSent;\n onOrderSent?: OnOrderSent;\n};\n\ntype DeltaOrderSubmissionResult = {\n order?: SubmittedDeltaOrderFromAPI;\n isCreatingOrder: boolean;\n isPostingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n};\n\ntype DeltaOrderExecutionResult = {\n sentOrder?: SubmittedDeltaOrderFromAPI;\n lastOrderState?: MaybeVeloraDeltaAuction;\n isOrderPending: boolean;\n isOrderExecuting: boolean;\n isOrderExecuted: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n};\n\ntype DeltaOrderCancelationResult = {\n step?: CancelOrderStepKey;\n receipt?: TransactionReceipt;\n txHash?: string;\n response?: CancelDeltaOrdersReturn;\n isCancelingOrder: boolean;\n isOrderCancellable: boolean;\n isOrderCanceled: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n result?: TransactionReceipt | CancelDeltaOrdersReturn;\n error: Error | null;\n};\n\nexport type UseDeltaFlowResult = {\n tradeFlowType: typeof deltaOrderFlowType;\n chainId: SupportedChainId;\n runDeltaOrderFlow: (\n options?: RunDeltaOrderOptions\n ) => Promise<SubmitDeltaOrderResult>;\n reset: () => void; // reset on Error to retry\n cancelFlow: () => void; // cancel flow\n retryFlow: (\n options?: RunDeltaOrderOptions\n ) => Promise<SubmitDeltaOrderResult>; // reset and retry flow\n cancelDeltaOrder: () => Promise<\n TransactionReceipt | CancelDeltaOrdersReturn | undefined\n >;\n approval: ApprovalFlowResult;\n signPermit: SignPermitFlowResult;\n deltaOrderPreSign: DeltaOrderPreSignResult;\n deltaOrderDeposit: DeltaOrderDepositResult;\n // submission represents either normal signing and POSTing of Order or pre-signing (in a tx) and POSTing\n deltaOrderSubmission: DeltaOrderSubmissionResult;\n deltaOrderExecution: DeltaOrderExecutionResult;\n deltaOrderCancelation: DeltaOrderCancelationResult;\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n result?: SubmitDeltaOrderResult;\n usedPrice?: DeltaPrice | BridgePrice;\n freshPrice?: DeltaPrice | BridgePrice;\n submittedDeltaOrder?: Omit<DeltaAuction, \"signature\" | \"transactions\">;\n};\n\nconst DELTA_ORDER_MUTATION_KEY = \"runDeltaOrderFlow\";\n\nexport function useDeltaFlow({\n deltaPrice: _deltaPrice,\n}: UseDeltaFlowInput): UseDeltaFlowResult {\n const logger = useLogger(\"DeltaFlow\");\n const { resolvedSlippage } = useSlippage(\"swap\");\n\n const { priceParams, chainId, destChainId } = usePricesParams(\"swap\");\n const extraDeltaPriceParams = useExtraDeltaPriceParams();\n const { result: deltaPriceQuery, queryKey: deltaPriceQueryKey } =\n useDeltaPriceQuery({\n priceParams: {\n ...priceParams,\n ...extraDeltaPriceParams,\n },\n chainId,\n destChainId,\n query: {\n enabled: false,\n },\n });\n const selectedBridgePrice = useSelectedBridgePrice({\n price: deltaPriceQuery.data,\n });\n const deltaPrice: DeltaOrBridgePrice | undefined =\n selectedBridgePrice || deltaPriceQuery.data || _deltaPrice;\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\n const swapSideFromInput = useSwapSide();\n\n const shouldApplySlippage =\n !!deltaPrice &&\n deltaPrice.srcToken.toLowerCase() !== deltaPrice.destToken.toLowerCase();\n\n const {\n approval,\n signPermit,\n approveTxMut,\n signPermitMut,\n events: approveOrPermitEvents,\n } = useApproveOrPermit({\n srcToken: deltaPrice?.srcToken,\n srcAmount: deltaPrice?.srcAmount,\n spenderContractType: \"ParaswapDelta\",\n swapSide:\n (deltaPrice && getSwapSideFromDeltaPrice(deltaPrice)) ||\n swapSideFromInput,\n tradeMode: \"swap\",\n chainId,\n applySlippage: shouldApplySlippage,\n });\n\n /* 4.1. Build and Submit Delta Order */\n\n const { address: account } = useAccount();\n\n const { minClient } = useMinViemClient({\n chainId,\n account,\n });\n const queryClient = useQueryClient();\n\n const createAndSubmitOrderMut = useCreateAndSubmitDeltaOrder({\n chainId,\n account,\n client: minClient,\n mutationOptions: {\n onSuccess: (order) => {\n logger.log(\"Create Delta Order success\", order);\n },\n onError: (error) => {\n logger.error(\"Create Delta Order error\", error);\n },\n },\n });\n\n const deltaOrderCreateAndSubmit: UseDeltaFlowResult[\"deltaOrderSubmission\"] =\n {\n order: createAndSubmitOrderMut.order,\n isCreatingOrder: createAndSubmitOrderMut.isCreatingOrder,\n isPostingOrder: createAndSubmitOrderMut.isPostingOrder,\n isOrderSent: createAndSubmitOrderMut.isOrderSent,\n isPending: createAndSubmitOrderMut.isPending,\n isError: createAndSubmitOrderMut.isError,\n isSuccess: createAndSubmitOrderMut.isSuccess,\n error: createAndSubmitOrderMut.error,\n };\n\n /* 4.2.\n 1. submit Batch tx (Approve + Delta pre-sign)\n 2. await Batch tx\n 3. post Pre-signed Order\n */\n\n const {\n deltaOrderPreSign,\n canBatchTxs,\n isConnectedToSafe,\n preSignAndSubmitDeltaOrder,\n reset: resetPreSignAndSubmitDeltaOrder,\n } = usePreSignAndSubmitDeltaOrder({\n chainId,\n account,\n logger,\n viemClient: minClient,\n });\n\n const {\n deltaOrderDeposit,\n reset: resetDepositAndSubmitDeltaOrder,\n depositAndSubmitDeltaOrder: depositAndSubmitDeltaOrder,\n } = useDepositAndSubmitDeltaOrder({\n chainId,\n account,\n logger,\n viemClient: minClient,\n });\n\n /* final Delta Order submission for step 4 */\n const deltaOrderSubmission: UseDeltaFlowResult[\"deltaOrderSubmission\"] = {\n order:\n deltaOrderCreateAndSubmit.order ||\n deltaOrderPreSign.order ||\n deltaOrderDeposit.order,\n isPostingOrder:\n deltaOrderCreateAndSubmit.isPostingOrder ||\n deltaOrderPreSign.postingOrder.isPostingOrder ||\n deltaOrderDeposit.postingOrder.isPostingOrder,\n isCreatingOrder:\n deltaOrderCreateAndSubmit.isCreatingOrder ||\n deltaOrderPreSign.isCreatingOrder ||\n deltaOrderDeposit.isCreatingOrder,\n isOrderSent:\n deltaOrderCreateAndSubmit.isOrderSent ||\n deltaOrderPreSign.isOrderSent ||\n deltaOrderDeposit.isOrderSent,\n isPending:\n deltaOrderCreateAndSubmit.isPending ||\n deltaOrderPreSign.isPending ||\n deltaOrderDeposit.isPending,\n isError:\n deltaOrderCreateAndSubmit.isError ||\n deltaOrderPreSign.isError ||\n deltaOrderDeposit.isError,\n isSuccess:\n deltaOrderCreateAndSubmit.isSuccess ||\n deltaOrderPreSign.isSuccess ||\n deltaOrderDeposit.isSuccess,\n error:\n deltaOrderCreateAndSubmit.error ||\n deltaOrderPreSign.error ||\n deltaOrderDeposit.error,\n };\n\n /* 5. await Order execution */\n\n const watchOrderExecution = useWatchDeltaAuction({\n orderId: deltaOrderSubmission.order?.id,\n onAuctionSuccess: (order) => {\n logger.log(\"Delta Order success\", order);\n },\n onAuctionFailure: (order) => {\n logger.log(\"Delta Order failure\", order);\n },\n onUpdatedAuction: (order) => {\n logger.log(\"Delta Order updated\", order);\n },\n onTimeoutGettingOrder: (order) => {\n logger.log(\"Delta Order timeout\", order);\n },\n });\n\n const orderStatus = watchOrderExecution.data\n ? getOverallOrderStatus(watchOrderExecution.data)\n : null;\n\n // refetching stops after one minute of not finding an order (order==null)\n const neverFetchedFinishedOrder =\n watchOrderExecution.data === null && watchOrderExecution.isSuccess;\n\n const deltaOrderExecution: UseDeltaFlowResult[\"deltaOrderExecution\"] = {\n sentOrder: deltaOrderSubmission.order,\n lastOrderState: watchOrderExecution.data,\n isOrderPending: orderStatus === \"pending\",\n isOrderExecuting: orderStatus === \"executing\",\n isOrderExecuted: orderStatus === \"confirmed\",\n isPending:\n watchOrderExecution.isLoading ||\n watchOrderExecution.isRefetching ||\n orderStatus === \"pending\" ||\n orderStatus === \"executing\",\n isError:\n watchOrderExecution.isError ||\n orderStatus === \"failed\" ||\n neverFetchedFinishedOrder,\n isSuccess: orderStatus === \"confirmed\",\n error: watchOrderExecution.error,\n };\n\n const { onSwap } = useWidgetEvents();\n\n const orderToCancel =\n deltaOrderExecution.lastOrderState || deltaOrderExecution.sentOrder;\n\n const cancelOrderMut = useCancelOrWithdrawAndCancelDeltaOrder({\n // supply the must up-to-date order for cancellation\n order: orderToCancel,\n chainId,\n account,\n client: minClient,\n logger,\n mutationOptions: {\n onMutate: () => {\n assert(orderToCancel, \"No order to cancel\");\n return orderToCancel;\n },\n onSuccess: (_details, _variables, onMutateResult) => {\n onSwap?.({\n event: {\n name: \"Swap:cancelled\",\n params: {\n swapMode: \"delta\",\n order: onMutateResult,\n },\n },\n });\n },\n },\n });\n\n const deltaOrderCancelation: UseDeltaFlowResult[\"deltaOrderCancelation\"] = {\n receipt: cancelOrderMut.receipt,\n txHash: cancelOrderMut.txHash,\n response: cancelOrderMut.cancelOrderResponse,\n isCancelingOrder: cancelOrderMut.isPending,\n isOrderCancellable: cancelOrderMut.isOrderCancellable,\n isOrderCanceled: cancelOrderMut.isSuccess,\n isPending: cancelOrderMut.isPending,\n isError: cancelOrderMut.isError,\n isSuccess: cancelOrderMut.isSuccess,\n error: cancelOrderMut.error,\n result: cancelOrderMut.result,\n step: cancelOrderMut.step,\n };\n\n const ensureOrderExecuted = useEnsureDeltaOrderExecuted({\n onAuctionSuccess: (order) => {\n queryClient.invalidateQueries({\n queryKey: deltaOrdersQueryKey({\n userAddress: order.user,\n }),\n exact: false,\n });\n },\n onAuctionFailure: (order) => {\n queryClient.invalidateQueries({\n queryKey: deltaOrdersQueryKey({\n userAddress: order.user,\n }),\n exact: false,\n });\n },\n });\n const ensureTxReceipt = useEnsureTxReceipt();\n\n const currentAbortControllerRef = useRef<AbortController | null>(null);\n const usingPriceRef = useRef<DeltaPrice | BridgePrice | 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 { partner, partnerAddress, partnerFeeBps, partnerTakesSurplus } =\n usePartner();\n const protocolName = useAtomValue(protocolNameAtom);\n const bridgePreference = useAtomValue(bridgePreferenceAtom);\n\n const subscribeToPrice = useSubscribeToDeltaPrice();\n\n const submitDeltaOrder = async ({\n onTxSent,\n onOrderSent,\n lastPrice,\n }: RunDeltaOrderOptions & {\n lastPrice?: DeltaPrice | BridgePrice | null;\n } = {}): Promise<SubmitDeltaOrderResult> => {\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 createAndSubmitOrderMut.reset();\n cancelOrderMut.reset();\n resetPreSignAndSubmitDeltaOrder();\n resetDepositAndSubmitDeltaOrder();\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(deltaPrice, \"Delta price is not available\");\n const swapSide = getSwapSideFromDeltaPrice(deltaPrice);\n\n const abortController = new AbortController();\n currentAbortControllerRef.current = abortController;\n\n const signal = abortController.signal;\n\n // on Delta the order.deadline must exactly match permit2.deadline\n const orderDeadline = produceDeltaOrderDeadline();\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 // deltaPrice here is the starting price, available before async code and waiting\n let freshPrice = deltaPrice;\n if (freshPrice.hmac === lastPrice?.hmac) {\n // we are resubmitting the Delta order, because it failed the last time,\n // but the price hasn't updated yet, so force refetch,\n // comparing raw prices here before mutating to select by bridge preference\n const newPriceResult = await deltaPriceQuery.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 // if we have a specific bridge we need to use\n if (isBridgePrice(freshPrice)) {\n // extract the selected bridge price\n freshPrice = extractSelectedBridgePrice({\n price: freshPrice,\n protocolName,\n bridgePreference,\n });\n }\n }\n }\n let unsubscribeFromPrice: (() => void) | undefined;\n // this also resets previous usingPriceRef\n usingPriceRef.current = freshPrice;\n\n const shouldDepositAndPreSign =\n // @TODO [depositNativeAndPreSign] ensureDeltaEthBalance and compare with price.srcAmount to skip the deposit,\n // or deposit the difference between user dETH balance and price.srcAmount to avoid unnecessary deposits\n isETHaddress(freshPrice.srcToken);\n\n /*\n if connected to Safe, or needs to approve a token with a tx, or needs to pre-wrap ETH\n and can batch txs, then pre-sign the batch;\n that way Safe does only one action (wrapETH?+Approve+setPreSignature batch tx)\n and a wallet that would otherwise potentially wrap ETH and then Approve Token (tx, not Permit),\n and then sign Order, basically has to make at least one tx, does only one action as well.\n */\n const { shouldDoApprovalTxOrPermit, tryPermit, shouldPreSignBatch } =\n shouldApproveOrBatch({\n approval,\n signPermit,\n canBatchTxs,\n isConnectedToSafe,\n });\n\n try {\n if (shouldDoApprovalTxOrPermit && 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 = deltaPriceQueryKey;\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: (price) => {\n let newPrice: DeltaOrBridgePrice = price;\n if (isBridgePrice(price)) {\n newPrice = extractSelectedBridgePrice({\n price,\n protocolName,\n bridgePreference,\n });\n }\n\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 const amounts = {\n srcAmount: newPrice.srcAmount,\n destAmount: newPrice.destAmount,\n };\n\n const amountsAfterSlippage = shouldApplySlippage\n ? // slightly higher srcAmount if BUY with slippage,\n // slightly lower destAmount if SELL with slippage\n applySlippage(amounts, resolvedSlippage, swapSide)\n : amounts;\n\n // if new price fits into allowance, update it\n if (approvedAmount >= BigInt(amountsAfterSlippage.srcAmount)) {\n // add this check to resubmit flow\n logger.log(\"~ fresh price ~\", newPrice);\n freshPrice = newPrice;\n usingPriceRef.current = freshPrice;\n }\n },\n });\n }\n\n try {\n if (!tryPermit) {\n approveOrPermitEvents.onApproveTx.request({ allowanceToSet });\n\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 deadline: orderDeadline,\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\n // as long as we had set approvedAmount, we will only get new prices that satisfy the allowance\n const deltaPriceToUse = freshPrice;\n usingPriceRef.current = deltaPriceToUse;\n\n // no longer need updates, unsubscribe\n unsubscribeFromPrice?.();\n unsubscribeFromPrice = undefined;\n\n assert(deltaPriceToUse, \"Delta price is not available\");\n\n const amounts = {\n srcAmount: deltaPriceToUse.srcAmount,\n destAmount: deltaPriceToUse.destAmount,\n };\n\n const amountsAfterSlippage = shouldApplySlippage\n ? // slightly higher srcAmount if BUY with slippage,\n // slightly lower destAmount if SELL with slippage\n applySlippage(amounts, resolvedSlippage, swapSide)\n : amounts;\n\n let permit = signedPermitResult?.permitEncodedArgs;\n if (\n signedPermitResult?.signedPermitData.type === \"permit2\" &&\n signedPermitResult.signedPermitData.variant === \"transferFrom\"\n ) {\n // In the Delta Contract, specifically for Permit2 transferFrom, we have signature consisting of\n // bytes32(permit2nonce) + bytes64(signature) = bytes96 Permit2 Transfer format\n permit = encodePermit2TransferFromSigDataForDelta({\n nonce: signedPermitResult.signedPermitData.nonce,\n signature: signedPermitResult.signature,\n });\n }\n\n const destChainId = isBridgePrice(deltaPriceToUse)\n ? deltaPriceToUse.bridge.destinationChainId\n : chainId;\n\n onSwap?.({\n event: {\n name: \"Swap:request\",\n params: {\n swapMode: \"delta\",\n price: deltaPriceToUse,\n },\n },\n });\n\n let orderFromAPI: DeltaOrderApiResponse;\n\n const createOrderInput: CreateAndSubmitDeltaOrderInput = {\n signal,\n type: \"MARKET\",\n degenMode: priceParams.degenMode,\n orderInput: {\n owner: account,\n beneficiary: receiverAddress,\n srcToken: deltaPriceToUse.srcToken,\n destToken: deltaPriceToUse.destToken,\n permit,\n destChainId,\n deltaPrice: deltaPriceToUse,\n\n partner,\n partnerAddress,\n partnerFeeBps,\n partnerTakesSurplus,\n\n ...amountsAfterSlippage,\n deadline: Number(orderDeadline),\n side: swapSide,\n },\n };\n\n if (shouldDepositAndPreSign) {\n // deposit ETH + depositTx + POST order\n orderFromAPI = await depositAndSubmitDeltaOrder({\n createDeltaOrderInput: createOrderInput,\n depositAmount: createOrderInput.orderInput.srcAmount,\n onTxSent,\n });\n } else if (shouldPreSignBatch) {\n // prepare Order for pre-signing and POSTing:\n // 1. builds the order\n // 2. hashes the built order\n // 3. construct DeltaContract.setPreSignature(orderHash, true) tx calldata\n\n orderFromAPI = await preSignAndSubmitDeltaOrder({\n createDeltaOrderInput: createOrderInput,\n approval,\n onTxSent,\n });\n } else {\n // creating signing and POSTing the Order all together in one mutation\n orderFromAPI =\n await createAndSubmitOrderMut.mutateAsync(createOrderInput);\n }\n\n // Order is sent, consider Token nonce as used\n if (signedPermitResult) {\n markNonceAsUsed(signedPermitResult.signedPermitData);\n }\n\n onSwap?.({\n event: {\n name: \"Swap:sent\",\n params: {\n swapMode: \"delta\",\n price: deltaPriceToUse,\n order: orderFromAPI,\n },\n },\n });\n\n // will refetch Order on interval until completed.\n // in parallel with useWatchDeltaAuction but independently if useWatchDeltaAuction is unmounted\n const lastOrderStatePromise = ensureOrderExecuted({\n orderId: orderFromAPI.id,\n // signal, // fails the toast if aborted, don't use\n });\n\n if (onOrderSent) {\n onOrderSent({\n order: orderFromAPI,\n lastOrderState: lastOrderStatePromise,\n });\n }\n\n const lastOrderState = await lastOrderStatePromise;\n\n onSwap?.({\n event: {\n name: \"Swap:confirmed\",\n params: {\n swapMode: \"delta\",\n price: deltaPriceToUse,\n order: lastOrderState\n ? {\n ...lastOrderState,\n orderVersion: orderFromAPI.orderVersion,\n deltaGasOverhead: orderFromAPI.deltaGasOverhead,\n signature: orderFromAPI.signature,\n }\n : orderFromAPI,\n },\n },\n });\n\n // no use aborting past this point, Order is already being processed\n\n return {\n tradeFlowType: deltaOrderFlowType,\n approve: {\n txHash: approveTxHash,\n receipt: approveTxReceipt,\n },\n deltaOrder: {\n sentOrder: orderFromAPI,\n lastOrderState,\n },\n deltaPrice: deltaPriceToUse,\n // @TODO add whatever else may be relevant\n account,\n receiverAddress,\n };\n } catch (error) {\n // Order failed, we can't be sure if nonce can be reused or it was incremented in a different Order\n // or even a Market swap tx in the meantime\n if (signedPermitResult) {\n clearNonce(signedPermitResult.signedPermitData);\n }\n if (!isTransactionCancelledError(error)) {\n // Swap:cancelled event is handled in cancelOrderMut.onSuccess\n onSwap?.({\n event: {\n name: \"Swap:failed\",\n params: {\n swapMode: \"delta\",\n error: error as Error,\n },\n },\n });\n }\n\n throw error;\n } finally {\n // always unsubscribe if subscribed previously\n unsubscribeFromPrice?.();\n }\n };\n\n const cancelDeltaOrder = async () => {\n try {\n return await cancelOrderMut.cancelDeltaOrder();\n } catch (error) {\n logger.error(\"Cancel Delta order error\", error);\n // allow to re-trigger cancellation after error (like UserCancelledError)\n cancelOrderMut.reset();\n }\n };\n\n const deltaOrderMut = useMutation({\n mutationFn: submitDeltaOrder,\n mutationKey: [DELTA_ORDER_MUTATION_KEY],\n onSuccess: (data) => {\n logger.log(\"Delta Order success\", data);\n },\n onError: (error) => {\n logger.error(\"Delta Order error\", error);\n },\n onSettled: () => {\n logger.log(\"Delta Order settled\");\n },\n });\n\n const runDeltaOrderFlow = deltaOrderMut.mutateAsync;\n\n const reset = () => {\n usingPriceRef.current = null;\n\n approveTxMut.reset();\n signPermitMut.reset();\n createAndSubmitOrderMut.reset();\n deltaOrderMut.reset();\n cancelOrderMut.reset();\n resetPreSignAndSubmitDeltaOrder();\n resetDepositAndSubmitDeltaOrder();\n };\n\n const retryFlow = (\n options?: RunDeltaOrderOptions\n ): Promise<SubmitDeltaOrderResult> => {\n const lastPrice = usingPriceRef.current;\n reset();\n return runDeltaOrderFlow({ ...options, lastPrice });\n };\n\n // finalPrice if we reached that point, or usable price (based on allowance given)\n const usedPrice: typeof deltaPrice = usingPriceRef.current || deltaPrice;\n\n const result = deltaOrderMut.data;\n\n /**\n * priority:\n * 1. lastOrderState = updated sent Order from final result\n * 2. sentOrder = just sent Order from final result\n * 3. deltaOrderExecution.lastOrderState = updated sent Order from watchOrderExecution (intermediate result)\n * 4. deltaOrderExecution.sentOrder = just sent Order from watchOrderExecution (intermediate result)\n */\n const submittedDeltaOrder:\n | Omit<DeltaAuction, \"signature\" | \"transactions\">\n | undefined =\n result?.deltaOrder.lastOrderState ||\n result?.deltaOrder.sentOrder ||\n deltaOrderExecution.lastOrderState ||\n deltaOrderExecution.sentOrder;\n\n /* 6. return result */\n return {\n tradeFlowType: deltaOrderFlowType,\n chainId,\n runDeltaOrderFlow,\n reset,\n cancelFlow,\n retryFlow,\n cancelDeltaOrder,\n approval,\n signPermit,\n deltaOrderPreSign,\n deltaOrderDeposit,\n deltaOrderSubmission,\n deltaOrderExecution,\n deltaOrderCancelation,\n // deltaOrderMut includes all steps' queries and mutations and returns more precise errors (including cancellation)\n isPending: deltaOrderMut.isPending,\n isSuccess: deltaOrderSubmission.isSuccess && deltaOrderExecution.isSuccess, // approval is an optional step\n isError: deltaOrderMut.isError,\n error: deltaOrderMut.error,\n result,\n usedPrice,\n freshPrice: deltaPrice,\n submittedDeltaOrder,\n };\n}\n"],"names":["deltaOrderFlowType","DELTA_ORDER_MUTATION_KEY","useDeltaFlow","deltaPrice","_deltaPrice","logger","useLogger","resolvedSlippage","useSlippage","priceParams","chainId","destChainId","usePricesParams","extraDeltaPriceParams","useExtraDeltaPriceParams","result","deltaPriceQuery","queryKey","deltaPriceQueryKey","useDeltaPriceQuery","query","enabled","selectedBridgePrice","useSelectedBridgePrice","price","data","swapSideFromInput","useSwapSide","shouldApplySlippage","srcToken","toLowerCase","destToken","approval","signPermit","approveTxMut","signPermitMut","events","approveOrPermitEvents","useApproveOrPermit","srcAmount","spenderContractType","swapSide","getSwapSideFromDeltaPrice","tradeMode","applySlippage","address","account","useAccount","minClient","useMinViemClient","queryClient","useQueryClient","createAndSubmitOrderMut","useCreateAndSubmitDeltaOrder","client","mutationOptions","onSuccess","order","log","onError","error","deltaOrderCreateAndSubmit","isCreatingOrder","isPostingOrder","isOrderSent","isPending","isError","isSuccess","deltaOrderPreSign","canBatchTxs","isConnectedToSafe","preSignAndSubmitDeltaOrder","reset","resetPreSignAndSubmitDeltaOrder","usePreSignAndSubmitDeltaOrder","viemClient","deltaOrderDeposit","resetDepositAndSubmitDeltaOrder","depositAndSubmitDeltaOrder","useDepositAndSubmitDeltaOrder","deltaOrderSubmission","postingOrder","watchOrderExecution","useWatchDeltaAuction","orderId","id","onAuctionSuccess","onAuctionFailure","onUpdatedAuction","onTimeoutGettingOrder","orderStatus","getOverallOrderStatus","neverFetchedFinishedOrder","deltaOrderExecution","sentOrder","lastOrderState","isOrderPending","isOrderExecuting","isOrderExecuted","isLoading","isRefetching","onSwap","useWidgetEvents","orderToCancel","cancelOrderMut","useCancelOrWithdrawAndCancelDeltaOrder","onMutate","assert","_details","_variables","onMutateResult","event","name","params","swapMode","deltaOrderCancelation","receipt","txHash","response","cancelOrderResponse","isCancelingOrder","isOrderCancellable","isOrderCanceled","step","ensureOrderExecuted","useEnsureDeltaOrderExecuted","invalidateQueries","deltaOrdersQueryKey","userAddress","user","exact","ensureTxReceipt","useEnsureTxReceipt","currentAbortControllerRef","useRef","usingPriceRef","cancelFlow","current","abort","UserCancelledError","receiverAddress","useSwapReceiverAddressValue","markNonceAsUsed","clearNonce","useMarkPermit1Or2NonceAsUsed","partner","partnerAddress","partnerFeeBps","partnerTakesSurplus","usePartner","protocolName","useAtomValue","protocolNameAtom","bridgePreference","bridgePreferenceAtom","subscribeToPrice","useSubscribeToDeltaPrice","submitDeltaOrder","onTxSent","onOrderSent","lastPrice","abortController","AbortController","signal","orderDeadline","produceDeltaOrderDeadline","signedPermitResult","approveTxHash","approveTxReceipt","allowanceToSet","allowanceToPermit","amountToPermit","freshPrice","hmac","newPriceResult","refetch","cancelRefetch","throwIfAborted","isBridgePrice","extractSelectedBridgePrice","unsubscribeFromPrice","shouldDepositAndPreSign","isETHaddress","shouldDoApprovalTxOrPermit","tryPermit","shouldPreSignBatch","shouldApproveOrBatch","approvedAmount","onData","newPrice","aborted","undefined","amounts","destAmount","amountsAfterSlippage","BigInt","onApproveTx","request","approveAsync","allowanceData","sent","approveTxReceiptPromise","hash","onReplaced","action","transactionHash","receiptPromise","transactionSpecificData","tokenAddress","token","spenderAddress","spender","confirmed","txReceipt","onSignPermit","signPermitAsync","deadline","value","permit","permitEncodedArgs","failed","deltaPriceToUse","signedPermitData","type","variant","encodePermit2TransferFromSigDataForDelta","nonce","signature","bridge","destinationChainId","orderFromAPI","createOrderInput","degenMode","orderInput","owner","beneficiary","Number","side","createDeltaOrderInput","depositAmount","mutateAsync","lastOrderStatePromise","orderVersion","deltaGasOverhead","tradeFlowType","approve","deltaOrder","isTransactionCancelledError","cancelDeltaOrder","deltaOrderMut","useMutation","mutationFn","mutationKey","onSettled","runDeltaOrderFlow","retryFlow","options","usedPrice","submittedDeltaOrder"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useDeltaFlow.js","sources":["../../../../src/hooks/swap/tradeFlow/useDeltaFlow.ts"],"sourcesContent":["import type { BridgePrice, DeltaPrice } from \"@velora-dex/sdk\";\nimport { useAccount } from \"wagmi\";\nimport { assert } from \"ts-essentials\";\nimport { useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport type { Address, Hash, TransactionReceipt } from \"viem\";\nimport { deltaOrdersQueryKey } from \"../prices/delta/queries/useDeltaOrders\";\nimport type {\n ApprovalFlowResult,\n SignPermitFlowResult,\n SubmitTxResult,\n} from \"./common/types\";\nimport {\n useCreateAndSubmitDeltaOrder,\n type CreateAndSubmitDeltaOrderInput,\n} from \"../prices/delta/mutations/useCreateDeltaOrder\";\nimport { useMinViemClient } from \"@/hooks/useMinViemClient\";\nimport {\n useEnsureDeltaOrderExecuted,\n useWatchDeltaAuction,\n} from \"../prices/delta/queries/useWatchDeltaOrder\";\nimport { getOverallOrderStatus } from \"../prices/delta/orders/utils\";\nimport { applySlippage } from \"@/lib/utils/price\";\nimport { useSlippage } from \"@/hooks/useSlippage\";\nimport { useMutation, useQueryClient } 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 type { OrderSentObject } from \"@/lib/utils/toasts\";\nimport { useApproveOrPermit } from \"./common/useApproveOrPermit\";\nimport {\n useMarkPermit1Or2NonceAsUsed,\n type SignedPermitResult,\n} from \"./common/useSignPermit1Or2\";\nimport { produceDeltaOrderDeadline } from \"@/lib/utils/delta\";\nimport { encodePermit2TransferFromSigDataForDelta } from \"@/hooks/permit/utils/encodeArgs\";\nimport { useLogger } from \"@/core/logger\";\nimport {\n isBridgePrice,\n useDeltaPriceQuery,\n useSubscribeToDeltaPrice,\n} from \"../prices/delta/queries/useDeltaPriceQuery\";\nimport { usePartner } from \"@/hooks/usePartner\";\nimport { useWidgetEvents } from \"@/core/state/widgetEventsAtom\";\nimport {\n shouldApproveOrBatch,\n usePreSignAndSubmitDeltaOrder,\n type DeltaOrderPreSignResult,\n} from \"./common/usePreSignAndSubmitDeltaOrder\";\nimport { useSwapSide } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport { getSwapSideFromDeltaPrice } from \"../prices/delta/orders/utils\";\nimport { extractSelectedBridgePrice } from \"../prices/delta/bridge/utils\";\nimport type { DeltaOrBridgePrice } from \"../prices/types\";\nimport { useAtomValue } from \"@/core/store\";\nimport { bridgePreferenceAtom } from \"@/components/widget/TradeParameters/state/bridgePreferences/bridgePreferenceAtom\";\nimport { protocolNameAtom } from \"@/components/widget/TradeParameters/state/bridgePreferences/protocolNameAtom\";\nimport {\n useDepositAndSubmitDeltaOrder,\n type DeltaOrderDepositResult,\n} from \"./common/useDepositAndSubmitDeltaOrder\";\nimport { isETHaddress } from \"@/tokens/utils/eth\";\nimport { useCancelOrWithdrawAndCancelDeltaOrder } from \"../prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder\";\nimport type { CancelDeltaOrdersReturn } from \"../prices/delta/mutations/useCancelDeltaOrders\";\n\nimport {\n useExtraDeltaPriceParams,\n usePricesParams,\n} from \"../prices/usePricesParams\";\nimport { useSelectedBridgePrice } from \"../prices/delta/bridge/useSelectedBridgePrice\";\nimport type {\n DeltaAuctionWithOrder,\n NullableDeltaAuctionWithOrder,\n} from \"../prices/delta/orders/types\";\n\nconst deltaOrderFlowType = \"deltaOrder\";\n\nexport type UseDeltaFlowInput = {\n deltaPrice?: DeltaPrice | BridgePrice;\n};\n\nexport type SubmitDeltaOrderResult = {\n tradeFlowType: typeof deltaOrderFlowType;\n approve: SubmitTxResult;\n deltaOrder: {\n sentOrder: DeltaAuctionWithOrder;\n lastOrderState: NullableDeltaAuctionWithOrder;\n };\n deltaPrice: DeltaPrice | BridgePrice;\n account: Address;\n receiverAddress?: Address;\n};\n\ntype OnTxSent = (txSent: TxSentObject | CallsSentObject) => void;\n\ntype OnOrderSent = (orderSent: OrderSentObject) => void;\n\n// @TODO instead add global onTxSent subscription to\n// MutationCache({onSuccess: txHash}) when sent\n// and QueryCache({onSuccess: txReceipt|Order executed}) when mined,\n// maybe??\ntype RunDeltaOrderOptions = {\n onTxSent?: OnTxSent;\n onOrderSent?: OnOrderSent;\n};\n\ntype DeltaOrderSubmissionResult = {\n order?: DeltaAuctionWithOrder;\n isCreatingOrder: boolean;\n isPostingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n};\n\ntype DeltaOrderExecutionResult = {\n sentOrder?: DeltaAuctionWithOrder;\n lastOrderState?: NullableDeltaAuctionWithOrder;\n isOrderPending: boolean;\n isOrderExecuting: boolean;\n isOrderExecuted: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n};\n\ntype DeltaOrderCancelationResult = {\n receipt?: TransactionReceipt;\n isCancelingOrder: boolean;\n isOrderCancellable: boolean;\n isOrderCanceled: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n};\n\nexport type UseDeltaFlowResult = {\n tradeFlowType: typeof deltaOrderFlowType;\n chainId: SupportedChainId;\n runDeltaOrderFlow: (\n options?: RunDeltaOrderOptions\n ) => Promise<SubmitDeltaOrderResult>;\n reset: () => void; // reset on Error to retry\n cancelFlow: () => void; // cancel flow\n retryFlow: (\n options?: RunDeltaOrderOptions\n ) => Promise<SubmitDeltaOrderResult>; // reset and retry flow\n cancelDeltaOrder: () => Promise<TransactionReceipt | CancelDeltaOrdersReturn>;\n approval: ApprovalFlowResult;\n signPermit: SignPermitFlowResult;\n deltaOrderPreSign: DeltaOrderPreSignResult;\n deltaOrderDeposit: DeltaOrderDepositResult;\n // submission represents either normal signing and POSTing of Order or pre-signing (in a tx) and POSTing\n deltaOrderSubmission: DeltaOrderSubmissionResult;\n deltaOrderExecution: DeltaOrderExecutionResult;\n deltaOrderCancelation: DeltaOrderCancelationResult;\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n result?: SubmitDeltaOrderResult;\n usedPrice?: DeltaPrice | BridgePrice;\n freshPrice?: DeltaPrice | BridgePrice;\n submittedDeltaOrder?: DeltaAuctionWithOrder;\n};\n\nconst DELTA_ORDER_MUTATION_KEY = \"runDeltaOrderFlow\";\n\nexport function useDeltaFlow({\n deltaPrice: _deltaPrice,\n}: UseDeltaFlowInput): UseDeltaFlowResult {\n const logger = useLogger(\"DeltaFlow\");\n const { resolvedSlippage } = useSlippage(\"swap\");\n\n const { priceParams, chainId, destChainId } = usePricesParams(\"swap\");\n const extraDeltaPriceParams = useExtraDeltaPriceParams();\n const { result: deltaPriceQuery, queryKey: deltaPriceQueryKey } =\n useDeltaPriceQuery({\n priceParams: {\n ...priceParams,\n ...extraDeltaPriceParams,\n },\n chainId,\n destChainId,\n query: {\n enabled: false,\n },\n });\n const selectedBridgePrice = useSelectedBridgePrice({\n price: deltaPriceQuery.data,\n });\n const deltaPrice: DeltaOrBridgePrice | undefined =\n selectedBridgePrice || deltaPriceQuery.data || _deltaPrice;\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\n const swapSideFromInput = useSwapSide();\n\n const shouldApplySlippage =\n !!deltaPrice &&\n deltaPrice.srcToken.toLowerCase() !== deltaPrice.destToken.toLowerCase();\n\n const {\n approval,\n signPermit,\n approveTxMut,\n signPermitMut,\n events: approveOrPermitEvents,\n } = useApproveOrPermit({\n srcToken: deltaPrice?.srcToken,\n srcAmount: deltaPrice?.srcAmount,\n spenderContractType: \"ParaswapDelta\",\n swapSide:\n (deltaPrice && getSwapSideFromDeltaPrice(deltaPrice)) ||\n swapSideFromInput,\n tradeMode: \"swap\",\n chainId,\n applySlippage: shouldApplySlippage,\n });\n\n /* 4.1. Build and Submit Delta Order */\n\n const { address: account } = useAccount();\n\n const { minClient } = useMinViemClient({\n chainId,\n account,\n });\n const queryClient = useQueryClient();\n\n const createAndSubmitOrderMut = useCreateAndSubmitDeltaOrder({\n chainId,\n account,\n client: minClient,\n mutationOptions: {\n onSuccess: (order) => {\n logger.log(\"Create Delta Order success\", order);\n },\n onError: (error) => {\n logger.error(\"Create Delta Order error\", error);\n },\n },\n });\n\n const deltaOrderCreateAndSubmit: UseDeltaFlowResult[\"deltaOrderSubmission\"] =\n {\n order: createAndSubmitOrderMut.order,\n isCreatingOrder: createAndSubmitOrderMut.isCreatingOrder,\n isPostingOrder: createAndSubmitOrderMut.isPostingOrder,\n isOrderSent: createAndSubmitOrderMut.isOrderSent,\n isPending: createAndSubmitOrderMut.isPending,\n isError: createAndSubmitOrderMut.isError,\n isSuccess: createAndSubmitOrderMut.isSuccess,\n error: createAndSubmitOrderMut.error,\n };\n\n /* 4.2.\n 1. submit Batch tx (Approve + Delta pre-sign)\n 2. await Batch tx\n 3. post Pre-signed Order\n */\n\n const {\n deltaOrderPreSign,\n canBatchTxs,\n isConnectedToSafe,\n preSignAndSubmitDeltaOrder,\n reset: resetPreSignAndSubmitDeltaOrder,\n } = usePreSignAndSubmitDeltaOrder({\n chainId,\n account,\n logger,\n viemClient: minClient,\n });\n\n const {\n deltaOrderDeposit,\n reset: resetDepositAndSubmitDeltaOrder,\n depositAndSubmitDeltaOrder: depositAndSubmitDeltaOrder,\n } = useDepositAndSubmitDeltaOrder({\n chainId,\n account,\n logger,\n viemClient: minClient,\n });\n\n /* final Delta Order submission for step 4 */\n const deltaOrderSubmission: UseDeltaFlowResult[\"deltaOrderSubmission\"] = {\n order:\n deltaOrderCreateAndSubmit.order ||\n deltaOrderPreSign.order ||\n deltaOrderDeposit.order,\n isPostingOrder:\n deltaOrderCreateAndSubmit.isPostingOrder ||\n deltaOrderPreSign.postingOrder.isPostingOrder ||\n deltaOrderDeposit.postingOrder.isPostingOrder,\n isCreatingOrder:\n deltaOrderCreateAndSubmit.isCreatingOrder ||\n deltaOrderPreSign.isCreatingOrder ||\n deltaOrderDeposit.isCreatingOrder,\n isOrderSent:\n deltaOrderCreateAndSubmit.isOrderSent ||\n deltaOrderPreSign.isOrderSent ||\n deltaOrderDeposit.isOrderSent,\n isPending:\n deltaOrderCreateAndSubmit.isPending ||\n deltaOrderPreSign.isPending ||\n deltaOrderDeposit.isPending,\n isError:\n deltaOrderCreateAndSubmit.isError ||\n deltaOrderPreSign.isError ||\n deltaOrderDeposit.isError,\n isSuccess:\n deltaOrderCreateAndSubmit.isSuccess ||\n deltaOrderPreSign.isSuccess ||\n deltaOrderDeposit.isSuccess,\n error:\n deltaOrderCreateAndSubmit.error ||\n deltaOrderPreSign.error ||\n deltaOrderDeposit.error,\n };\n\n /* 5. await Order execution */\n\n const watchOrderExecution =\n useWatchDeltaAuction<NullableDeltaAuctionWithOrder>({\n orderId: deltaOrderSubmission.order?.id,\n onAuctionSuccess: (order) => {\n logger.log(\"Delta Order success\", order);\n },\n onAuctionFailure: (order) => {\n logger.log(\"Delta Order failure\", order);\n },\n onUpdatedAuction: (order) => {\n logger.log(\"Delta Order updated\", order);\n },\n onTimeoutGettingOrder: (order) => {\n logger.log(\"Delta Order timeout\", order);\n },\n });\n\n const orderStatus = watchOrderExecution.data\n ? getOverallOrderStatus(watchOrderExecution.data)\n : null;\n\n // refetching stops after one minute of not finding an order (order==null)\n const neverFetchedFinishedOrder =\n watchOrderExecution.data === null && watchOrderExecution.isSuccess;\n\n const deltaOrderExecution: UseDeltaFlowResult[\"deltaOrderExecution\"] = {\n sentOrder: deltaOrderSubmission.order,\n lastOrderState: watchOrderExecution.data,\n isOrderPending: orderStatus === \"pending\",\n isOrderExecuting: orderStatus === \"executing\",\n isOrderExecuted: orderStatus === \"confirmed\",\n isPending:\n watchOrderExecution.isLoading ||\n watchOrderExecution.isRefetching ||\n orderStatus === \"pending\" ||\n orderStatus === \"executing\",\n isError:\n watchOrderExecution.isError ||\n orderStatus === \"failed\" ||\n neverFetchedFinishedOrder,\n isSuccess: orderStatus === \"confirmed\",\n error: watchOrderExecution.error,\n };\n\n const cancelOrderMut = useCancelOrWithdrawAndCancelDeltaOrder({\n // supply the must up-to-date order for cancellation\n order: deltaOrderExecution.lastOrderState || deltaOrderExecution.sentOrder,\n chainId,\n account,\n client: minClient,\n logger,\n });\n\n const deltaOrderCancelation: UseDeltaFlowResult[\"deltaOrderCancelation\"] = {\n receipt: cancelOrderMut.receipt,\n isCancelingOrder: cancelOrderMut.isPending,\n isOrderCancellable: cancelOrderMut.isOrderCancellable,\n isOrderCanceled: cancelOrderMut.isSuccess,\n isPending: cancelOrderMut.isPending,\n isError: cancelOrderMut.isError,\n isSuccess: cancelOrderMut.isSuccess,\n error: cancelOrderMut.error,\n };\n\n const ensureOrderExecuted =\n useEnsureDeltaOrderExecuted<NullableDeltaAuctionWithOrder>({\n onAuctionSuccess: (order) => {\n queryClient.invalidateQueries({\n queryKey: deltaOrdersQueryKey({\n userAddress: order.user,\n }),\n exact: false,\n });\n },\n onAuctionFailure: (order) => {\n queryClient.invalidateQueries({\n queryKey: deltaOrdersQueryKey({\n userAddress: order.user,\n }),\n exact: false,\n });\n },\n });\n const ensureTxReceipt = useEnsureTxReceipt();\n\n const currentAbortControllerRef = useRef<AbortController | null>(null);\n const usingPriceRef = useRef<DeltaPrice | BridgePrice | 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 { partner, partnerAddress, partnerFeeBps, partnerTakesSurplus } =\n usePartner();\n const protocolName = useAtomValue(protocolNameAtom);\n const bridgePreference = useAtomValue(bridgePreferenceAtom);\n\n const subscribeToPrice = useSubscribeToDeltaPrice();\n\n const { onSwap } = useWidgetEvents();\n\n const submitDeltaOrder = async ({\n onTxSent,\n onOrderSent,\n lastPrice,\n }: RunDeltaOrderOptions & {\n lastPrice?: DeltaPrice | BridgePrice | null;\n } = {}): Promise<SubmitDeltaOrderResult> => {\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 createAndSubmitOrderMut.reset();\n cancelOrderMut.reset();\n resetPreSignAndSubmitDeltaOrder();\n resetDepositAndSubmitDeltaOrder();\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(deltaPrice, \"Delta price is not available\");\n const swapSide = getSwapSideFromDeltaPrice(deltaPrice);\n\n const abortController = new AbortController();\n currentAbortControllerRef.current = abortController;\n\n const signal = abortController.signal;\n\n // on Delta the order.deadline must exactly match permit2.deadline\n const orderDeadline = produceDeltaOrderDeadline();\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 // deltaPrice here is the starting price, available before async code and waiting\n let freshPrice = deltaPrice;\n if (freshPrice.hmac === lastPrice?.hmac) {\n // we are resubmitting the Delta order, because it failed the last time,\n // but the price hasn't updated yet, so force refetch,\n // comparing raw prices here before mutating to select by bridge preference\n const newPriceResult = await deltaPriceQuery.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 // if we have a specific bridge we need to use\n if (isBridgePrice(freshPrice)) {\n // extract the selected bridge price\n freshPrice = extractSelectedBridgePrice({\n price: freshPrice,\n protocolName,\n bridgePreference,\n });\n }\n }\n }\n let unsubscribeFromPrice: (() => void) | undefined;\n // this also resets previous usingPriceRef\n usingPriceRef.current = freshPrice;\n\n const shouldDepositAndPreSign =\n // @TODO [depositNativeAndPreSign] ensureDeltaEthBalance and compare with price.srcAmount to skip the deposit,\n // or deposit the difference between user dETH balance and price.srcAmount to avoid unnecessary deposits\n isETHaddress(freshPrice.srcToken);\n\n /*\n if connected to Safe, or needs to approve a token with a tx, or needs to pre-wrap ETH\n and can batch txs, then pre-sign the batch;\n that way Safe does only one action (wrapETH?+Approve+setPreSignature batch tx)\n and a wallet that would otherwise potentially wrap ETH and then Approve Token (tx, not Permit),\n and then sign Order, basically has to make at least one tx, does only one action as well.\n */\n const { shouldDoApprovalTxOrPermit, tryPermit, shouldPreSignBatch } =\n shouldApproveOrBatch({\n approval,\n signPermit,\n canBatchTxs,\n isConnectedToSafe,\n });\n\n try {\n if (shouldDoApprovalTxOrPermit && 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 = deltaPriceQueryKey;\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: (price) => {\n let newPrice: DeltaOrBridgePrice = price;\n if (isBridgePrice(price)) {\n newPrice = extractSelectedBridgePrice({\n price,\n protocolName,\n bridgePreference,\n });\n }\n\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 const amounts = {\n srcAmount: newPrice.srcAmount,\n destAmount: newPrice.destAmount,\n };\n\n const amountsAfterSlippage = shouldApplySlippage\n ? // slightly higher srcAmount if BUY with slippage,\n // slightly lower destAmount if SELL with slippage\n applySlippage(amounts, resolvedSlippage, swapSide)\n : amounts;\n\n // if new price fits into allowance, update it\n if (approvedAmount >= BigInt(amountsAfterSlippage.srcAmount)) {\n // add this check to resubmit flow\n logger.log(\"~ fresh price ~\", newPrice);\n freshPrice = newPrice;\n usingPriceRef.current = freshPrice;\n }\n },\n });\n }\n\n try {\n if (!tryPermit) {\n approveOrPermitEvents.onApproveTx.request({ allowanceToSet });\n\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 deadline: orderDeadline,\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\n // as long as we had set approvedAmount, we will only get new prices that satisfy the allowance\n const deltaPriceToUse = freshPrice;\n usingPriceRef.current = deltaPriceToUse;\n\n // no longer need updates, unsubscribe\n unsubscribeFromPrice?.();\n unsubscribeFromPrice = undefined;\n\n assert(deltaPriceToUse, \"Delta price is not available\");\n\n const amounts = {\n srcAmount: deltaPriceToUse.srcAmount,\n destAmount: deltaPriceToUse.destAmount,\n };\n\n const amountsAfterSlippage = shouldApplySlippage\n ? // slightly higher srcAmount if BUY with slippage,\n // slightly lower destAmount if SELL with slippage\n applySlippage(amounts, resolvedSlippage, swapSide)\n : amounts;\n\n let permit = signedPermitResult?.permitEncodedArgs;\n if (\n signedPermitResult?.signedPermitData.type === \"permit2\" &&\n signedPermitResult.signedPermitData.variant === \"transferFrom\"\n ) {\n // In the Delta Contract, specifically for Permit2 transferFrom, we have signature consisting of\n // bytes32(permit2nonce) + bytes64(signature) = bytes96 Permit2 Transfer format\n permit = encodePermit2TransferFromSigDataForDelta({\n nonce: signedPermitResult.signedPermitData.nonce,\n signature: signedPermitResult.signature,\n });\n }\n\n const destChainId = isBridgePrice(deltaPriceToUse)\n ? deltaPriceToUse.bridge.destinationChainId\n : chainId;\n\n onSwap?.({\n event: {\n name: \"Swap:request\",\n params: {\n swapMode: \"delta\",\n price: deltaPriceToUse,\n },\n },\n });\n\n let orderFromAPI: DeltaAuctionWithOrder;\n\n const createOrderInput: CreateAndSubmitDeltaOrderInput = {\n signal,\n type: \"MARKET\",\n degenMode: priceParams.degenMode,\n orderInput: {\n owner: account,\n beneficiary: receiverAddress,\n srcToken: deltaPriceToUse.srcToken,\n destToken: deltaPriceToUse.destToken,\n permit,\n destChainId,\n deltaPrice: deltaPriceToUse,\n\n partner,\n partnerAddress,\n partnerFeeBps,\n partnerTakesSurplus,\n\n ...amountsAfterSlippage,\n deadline: Number(orderDeadline),\n side: swapSide,\n },\n };\n\n if (shouldDepositAndPreSign) {\n const depositAmount = createOrderInput.orderInput.srcAmount;\n // deposit ETH + depositTx + POST order\n orderFromAPI = await depositAndSubmitDeltaOrder({\n createOrderInput,\n depositAmount,\n onTxSent,\n });\n } else if (shouldPreSignBatch) {\n // prepare Order for pre-signing and POSTing:\n // 1. builds the order\n // 2. hashes the built order\n // 3. construct DeltaContract.setPreSignature(orderHash, true) tx calldata\n\n orderFromAPI = await preSignAndSubmitDeltaOrder({\n createOrderInput,\n approval,\n onTxSent,\n });\n } else {\n // creating signing and POSTing the Order all together in one mutation\n orderFromAPI =\n await createAndSubmitOrderMut.mutateAsync(createOrderInput);\n }\n\n // Order is sent, consider Token nonce as used\n if (signedPermitResult) {\n markNonceAsUsed(signedPermitResult.signedPermitData);\n }\n\n onSwap?.({\n event: {\n name: \"Swap:sent\",\n params: {\n swapMode: \"delta\",\n price: deltaPriceToUse,\n order: orderFromAPI,\n },\n },\n });\n\n // will refetch Order on interval until completed.\n // in parallel with useWatchDeltaAuction but independently if useWatchDeltaAuction is unmounted\n const lastOrderStatePromise = ensureOrderExecuted({\n orderId: orderFromAPI.id,\n // signal, // fails the toast if aborted, don't use\n });\n\n if (onOrderSent) {\n onOrderSent({\n order: orderFromAPI,\n lastOrderState: lastOrderStatePromise,\n });\n }\n\n const lastOrderState = await lastOrderStatePromise;\n\n onSwap?.({\n event: {\n name: \"Swap:confirmed\",\n params: {\n swapMode: \"delta\",\n price: deltaPriceToUse,\n order: orderFromAPI,\n },\n },\n });\n\n // no use aborting past this point, Order is already being processed\n\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 // @TODO try catch, handle errors, refetch allowance and balance in finally\n\n return {\n tradeFlowType: deltaOrderFlowType,\n approve: {\n txHash: approveTxHash,\n receipt: approveTxReceipt,\n },\n deltaOrder: {\n sentOrder: orderFromAPI,\n lastOrderState,\n },\n deltaPrice: deltaPriceToUse,\n // @TODO add whatever else may be relevant\n account,\n receiverAddress,\n };\n } catch (error) {\n // Order failed, we can't be sure if nonce can be reused or it was incremented in a different Order\n // or even a Market swap tx in the meantime\n if (signedPermitResult) {\n clearNonce(signedPermitResult.signedPermitData);\n }\n onSwap?.({\n event: {\n name: \"Swap:failed\",\n params: {\n swapMode: \"delta\",\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 cancelDeltaOrder = cancelOrderMut.cancelDeltaOrder;\n\n const deltaOrderMut = useMutation({\n mutationFn: submitDeltaOrder,\n mutationKey: [DELTA_ORDER_MUTATION_KEY],\n onSuccess: (data) => {\n logger.log(\"Delta Order success\", data);\n },\n onError: (error) => {\n logger.error(\"Delta Order error\", error);\n },\n onSettled: () => {\n logger.log(\"Delta Order settled\");\n },\n });\n\n const runDeltaOrderFlow = deltaOrderMut.mutateAsync;\n\n const reset = () => {\n usingPriceRef.current = null;\n\n approveTxMut.reset();\n signPermitMut.reset();\n createAndSubmitOrderMut.reset();\n deltaOrderMut.reset();\n cancelOrderMut.reset();\n resetPreSignAndSubmitDeltaOrder();\n resetDepositAndSubmitDeltaOrder();\n };\n\n const retryFlow = (\n options?: RunDeltaOrderOptions\n ): Promise<SubmitDeltaOrderResult> => {\n const lastPrice = usingPriceRef.current;\n reset();\n return runDeltaOrderFlow({ ...options, lastPrice });\n };\n\n // finalPrice if we reached that point, or usable price (based on allowance given)\n const usedPrice: typeof deltaPrice = usingPriceRef.current || deltaPrice;\n\n const result = deltaOrderMut.data;\n\n /**\n * priority:\n * 1. lastOrderState = updated sent Order from final result\n * 2. sentOrder = just sent Order from final result\n * 3. deltaOrderExecution.lastOrderState = updated sent Order from watchOrderExecution (intermediate result)\n * 4. deltaOrderExecution.sentOrder = just sent Order from watchOrderExecution (intermediate result)\n */\n const submittedDeltaOrder: DeltaAuctionWithOrder | undefined =\n result?.deltaOrder.lastOrderState ||\n result?.deltaOrder.sentOrder ||\n deltaOrderExecution.lastOrderState ||\n deltaOrderExecution.sentOrder;\n\n /* 6. return result */\n return {\n tradeFlowType: deltaOrderFlowType,\n chainId,\n runDeltaOrderFlow,\n reset,\n cancelFlow,\n retryFlow,\n cancelDeltaOrder,\n approval,\n signPermit,\n deltaOrderPreSign,\n deltaOrderDeposit,\n deltaOrderSubmission,\n deltaOrderExecution,\n deltaOrderCancelation,\n // deltaOrderMut includes all steps' queries and mutations and returns more precise errors (including cancellation)\n isPending: deltaOrderMut.isPending,\n isSuccess: deltaOrderSubmission.isSuccess && deltaOrderExecution.isSuccess, // approval is an optional step\n isError: deltaOrderMut.isError,\n error: deltaOrderMut.error,\n result,\n usedPrice,\n freshPrice: deltaPrice,\n submittedDeltaOrder,\n };\n}\n"],"names":["deltaOrderFlowType","DELTA_ORDER_MUTATION_KEY","useDeltaFlow","deltaPrice","_deltaPrice","logger","useLogger","resolvedSlippage","useSlippage","priceParams","chainId","destChainId","usePricesParams","extraDeltaPriceParams","useExtraDeltaPriceParams","result","deltaPriceQuery","queryKey","deltaPriceQueryKey","useDeltaPriceQuery","query","enabled","selectedBridgePrice","useSelectedBridgePrice","price","data","swapSideFromInput","useSwapSide","shouldApplySlippage","srcToken","toLowerCase","destToken","approval","signPermit","approveTxMut","signPermitMut","events","approveOrPermitEvents","useApproveOrPermit","srcAmount","spenderContractType","swapSide","getSwapSideFromDeltaPrice","tradeMode","applySlippage","address","account","useAccount","minClient","useMinViemClient","queryClient","useQueryClient","createAndSubmitOrderMut","useCreateAndSubmitDeltaOrder","client","mutationOptions","onSuccess","order","log","onError","error","deltaOrderCreateAndSubmit","isCreatingOrder","isPostingOrder","isOrderSent","isPending","isError","isSuccess","deltaOrderPreSign","canBatchTxs","isConnectedToSafe","preSignAndSubmitDeltaOrder","reset","resetPreSignAndSubmitDeltaOrder","usePreSignAndSubmitDeltaOrder","viemClient","deltaOrderDeposit","resetDepositAndSubmitDeltaOrder","depositAndSubmitDeltaOrder","useDepositAndSubmitDeltaOrder","deltaOrderSubmission","postingOrder","watchOrderExecution","useWatchDeltaAuction","orderId","id","onAuctionSuccess","onAuctionFailure","onUpdatedAuction","onTimeoutGettingOrder","orderStatus","getOverallOrderStatus","neverFetchedFinishedOrder","deltaOrderExecution","sentOrder","lastOrderState","isOrderPending","isOrderExecuting","isOrderExecuted","isLoading","isRefetching","cancelOrderMut","useCancelOrWithdrawAndCancelDeltaOrder","deltaOrderCancelation","receipt","isCancelingOrder","isOrderCancellable","isOrderCanceled","ensureOrderExecuted","useEnsureDeltaOrderExecuted","invalidateQueries","deltaOrdersQueryKey","userAddress","user","exact","ensureTxReceipt","useEnsureTxReceipt","currentAbortControllerRef","useRef","usingPriceRef","cancelFlow","current","abort","UserCancelledError","receiverAddress","useSwapReceiverAddressValue","markNonceAsUsed","clearNonce","useMarkPermit1Or2NonceAsUsed","partner","partnerAddress","partnerFeeBps","partnerTakesSurplus","usePartner","protocolName","useAtomValue","protocolNameAtom","bridgePreference","bridgePreferenceAtom","subscribeToPrice","useSubscribeToDeltaPrice","onSwap","useWidgetEvents","submitDeltaOrder","onTxSent","onOrderSent","lastPrice","assert","abortController","AbortController","signal","orderDeadline","produceDeltaOrderDeadline","signedPermitResult","approveTxHash","approveTxReceipt","allowanceToSet","allowanceToPermit","amountToPermit","freshPrice","hmac","newPriceResult","refetch","cancelRefetch","throwIfAborted","isBridgePrice","extractSelectedBridgePrice","unsubscribeFromPrice","shouldDepositAndPreSign","isETHaddress","shouldDoApprovalTxOrPermit","tryPermit","shouldPreSignBatch","shouldApproveOrBatch","approvedAmount","onData","newPrice","aborted","undefined","amounts","destAmount","amountsAfterSlippage","BigInt","onApproveTx","request","approveAsync","allowanceData","sent","txHash","approveTxReceiptPromise","hash","onReplaced","action","transactionHash","receiptPromise","transactionSpecificData","tokenAddress","token","spenderAddress","spender","confirmed","txReceipt","onSignPermit","signPermitAsync","deadline","value","permit","permitEncodedArgs","failed","deltaPriceToUse","signedPermitData","type","variant","encodePermit2TransferFromSigDataForDelta","nonce","signature","bridge","destinationChainId","event","name","params","swapMode","orderFromAPI","createOrderInput","degenMode","orderInput","owner","beneficiary","Number","side","depositAmount","mutateAsync","lastOrderStatePromise","tradeFlowType","approve","deltaOrder","cancelDeltaOrder","deltaOrderMut","useMutation","mutationFn","mutationKey","onSettled","runDeltaOrderFlow","retryFlow","options","usedPrice","submittedDeltaOrder"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DeltaOrderStep, DeltaOrderStepKey, GenericStep } from '../../../components/widget/TradeOverview/steps';
|
|
2
2
|
import { SubmitDeltaOrderResult, UseDeltaFlowInput, UseDeltaFlowResult } from './useDeltaFlow';
|
|
3
3
|
type UseDeltaSwapStepResult = {
|
|
4
4
|
startDeltaSwap: UseDeltaFlowResult["runDeltaOrderFlow"];
|
|
@@ -10,7 +10,7 @@ type UseDeltaSwapStepResult = {
|
|
|
10
10
|
isFlowCancellable: boolean;
|
|
11
11
|
isOrderCancellable: boolean;
|
|
12
12
|
step?: DeltaOrderStep;
|
|
13
|
-
orderCancellationStep?:
|
|
13
|
+
orderCancellationStep?: GenericStep;
|
|
14
14
|
isNonFlowStep: boolean;
|
|
15
15
|
explorerLink?: string;
|
|
16
16
|
error: Error | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDeltaSwapStep.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useDeltaSwapStep.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,
|
|
1
|
+
{"version":3,"file":"useDeltaSwapStep.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useDeltaSwapStep.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EACjB,WAAW,EAEZ,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACxB,MAAM,gBAAgB,CAAC;AAMxB,KAAK,sBAAsB,GAAG;IAC5B,cAAc,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;IACxD,gBAAgB,EAAE,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;IAEzD,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACnC,UAAU,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAC7C,SAAS,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC3C,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,qBAAqB,CAAC,EAAE,WAAW,CAAC;IACpC,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC,SAAS,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC3C,mBAAmB,CAAC,EAAE,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;IAChE,aAAa,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC;CACpD,CAAC;AAEF,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,iBAAiB,GACzB,sBAAsB,CAsLxB"}
|