@velora-dex/widget 0.1.3 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/index.js +1 -1
- package/dist/components/ui/accordion.d.ts +3 -1
- package/dist/components/ui/accordion.d.ts.map +1 -1
- package/dist/components/ui/accordion.js +42 -27
- package/dist/components/ui/accordion.js.map +1 -1
- package/dist/components/ui/button.js.map +1 -1
- package/dist/components/ui/dialog.js.map +1 -1
- package/dist/components/ui/dropdown-menu.js.map +1 -1
- package/dist/components/ui/progress.js.map +1 -1
- package/dist/components/ui/sonner.js.map +1 -1
- package/dist/components/ui/tooltip.js.map +1 -1
- package/dist/components/web3/AccountButton.js.map +1 -1
- package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.js.map +1 -1
- package/dist/components/web3/ConnectWallets/WalletConnectButtons.js.map +1 -1
- package/dist/components/web3/ConnectWallets/index.js +43 -35
- package/dist/components/web3/ConnectWallets/index.js.map +1 -1
- package/dist/components/web3/ConnectWallets/privy/button.js.map +1 -1
- package/dist/components/web3/ConnectWallets/privy/iframe.js.map +1 -1
- package/dist/components/web3/ConnectWallets/walletIcons.js.map +1 -1
- package/dist/components/web3/ConnectedWallet/ConnectedWallet.js.map +1 -1
- package/dist/components/widget/AppHeader/Activities/Activities.js +4 -12
- package/dist/components/widget/AppHeader/Activities/Activities.js.map +1 -1
- package/dist/components/widget/AppHeader/Activities/ActivityItems.js.map +1 -1
- package/dist/components/widget/AppHeader/Activities/Drawers.js.map +1 -1
- package/dist/components/widget/AppHeader/Activities/hooks.js.map +1 -1
- package/dist/components/widget/AppHeader/ActivityButton.js.map +1 -1
- package/dist/components/widget/AppHeader/AppHeader.js.map +1 -1
- package/dist/components/widget/AppHeader/TradeModeSwitcher.js.map +1 -1
- package/dist/components/widget/Details/DetailWithValueList.js.map +1 -1
- package/dist/components/widget/Details/DetailWithValueListExpandable.js.map +1 -1
- package/dist/components/widget/DexesList/DexItem.js.map +1 -1
- package/dist/components/widget/DexesList/DexesList.js +3 -14
- package/dist/components/widget/DexesList/DexesList.js.map +1 -1
- package/dist/components/widget/Dialog/DialogRoot.js.map +1 -1
- package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressDialog.js +131 -115
- package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressDialog.js.map +1 -1
- package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressInput.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js +4 -12
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/RegularTokenList.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/index.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListRow.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenSearch.js.map +1 -1
- package/dist/components/widget/Dialog/state/dialogAtom.js +24 -26
- package/dist/components/widget/Dialog/state/dialogAtom.js.map +1 -1
- package/dist/components/widget/Drawer/Overlay.js.map +1 -1
- package/dist/components/widget/Drawer/index.js.map +1 -1
- package/dist/components/widget/Drawer/state/useDrawerControls.js.map +1 -1
- package/dist/components/widget/ImportToken/ImportToken.js.map +1 -1
- package/dist/components/widget/ImportToken/useImportTokenDrawer.js.map +1 -1
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/Controls.js.map +1 -1
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/LimitOrderDetails.js.map +1 -1
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderListItem.js +84 -66
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderListItem.js.map +1 -1
- package/dist/components/widget/LimitPriceInput/index.js.map +1 -1
- package/dist/components/widget/Line/Line.js.map +1 -1
- package/dist/components/widget/NetworkIcon/NetworkIconSquare.js.map +1 -1
- package/dist/components/widget/NetworkSwitcher/CompactNetworkSwitcher.js.map +1 -1
- package/dist/components/widget/NetworkSwitcher/NetworkSwitcherDropdown.js +28 -30
- package/dist/components/widget/NetworkSwitcher/NetworkSwitcherDropdown.js.map +1 -1
- package/dist/components/widget/NetworkWithIcon/NetworkIconWithChevron.js.map +1 -1
- package/dist/components/widget/NetworkWithIcon/NetworkWithIcon.js.map +1 -1
- package/dist/components/widget/OrderExpiryInput/index.js.map +1 -1
- package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/Controls.js.map +1 -1
- package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/OtcOrderDetails.js.map +1 -1
- package/dist/components/widget/OtcOrdersDrawer/OtcOrderListItem.js.map +1 -1
- package/dist/components/widget/PayReceiveInfo/PayReceiveInfo.js.map +1 -1
- package/dist/components/widget/ReceiverAddress/ReceiverAddress.js.map +1 -1
- package/dist/components/widget/ReceiverAddress/state/receiverAddressAtom.js.map +1 -1
- package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcControls.js.map +1 -1
- package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcReviewAndConfirm.js.map +1 -1
- package/dist/components/widget/SelectToken/SelectTokenButton.js.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/SwapModeSwitcherExpandable.js.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js.map +1 -1
- package/dist/components/widget/SwapRate/SwapRate.js +75 -43
- package/dist/components/widget/SwapRate/SwapRate.js.map +1 -1
- package/dist/components/widget/Tabs/Tabs.js.map +1 -1
- package/dist/components/widget/Toasts/CustomToast.js.map +1 -1
- package/dist/components/widget/TokenBadge/TokenBadge.js.map +1 -1
- package/dist/components/widget/TokenInput/index.js.map +1 -1
- package/dist/components/widget/TokenSwitcher/TokenSwitcher.js.map +1 -1
- package/dist/components/widget/TradeOverview/Step/Step.js.map +1 -1
- package/dist/components/widget/TradeOverview/Stepper.js +23 -38
- package/dist/components/widget/TradeOverview/Stepper.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteFooter.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteHeader.js +36 -27
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteHeader.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/useTradeCompleteDetails.js +79 -36
- package/dist/components/widget/TradeOverview/TradeComplete/useTradeCompleteDetails.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeDetailsDisplay.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverview.d.ts +3 -0
- package/dist/components/widget/TradeOverview/TradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverviewFooter.js.map +1 -1
- package/dist/components/widget/TradeOverview/tradeFlowContext.js.map +1 -1
- package/dist/components/widget/TradeParameters/SlippageParameter/SlippageParameter.js.map +1 -1
- package/dist/components/widget/TradeParameters/SlippageParameter/hooks/useCustomSlippageProps.js.map +1 -1
- package/dist/components/widget/TradeParameters/TradeParameters.js.map +1 -1
- package/dist/components/widget/TradeParameters/TransactionSpeedParameter.js.map +1 -1
- package/dist/components/widget/TradeParameters/hooks/useIsNotDefaultAnyParameter.js.map +1 -1
- package/dist/components/widget/TradeParameters/state/gasPresetParamAtom.js.map +1 -1
- package/dist/components/widget/TradeParameters/useTempTradeParameters.js.map +1 -1
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.js.map +1 -1
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/TransactionDetails.js.map +1 -1
- package/dist/components/widget/TransactionDetails/TransactionListItem.js +57 -38
- package/dist/components/widget/TransactionDetails/TransactionListItem.js.map +1 -1
- package/dist/components/widget/Warning/InsufficientBalanceMessage.js.map +1 -1
- package/dist/components/widget/Warning/Warning.js.map +1 -1
- package/dist/components/widget/Warning/WarningMessage.js.map +1 -1
- package/dist/components/widget/WrapEth/WrapEthContent.js.map +1 -1
- package/dist/components/widget/WrapEth/WrapEthDrawerButton.d.ts.map +1 -1
- package/dist/components/widget/WrapEth/WrapEthDrawerButton.js +72 -90
- package/dist/components/widget/WrapEth/WrapEthDrawerButton.js.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.d.ts.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js +141 -84
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js.map +1 -1
- package/dist/components/widget/YouGet/YouGet.js.map +1 -1
- package/dist/configurator/Configurator.d.ts.map +1 -1
- package/dist/configurator/components/AllowNoUsdPricesSwitcher.d.ts +5 -0
- package/dist/configurator/components/AllowNoUsdPricesSwitcher.d.ts.map +1 -0
- package/dist/configurator/components/CrossChainSwitcher.d.ts +5 -0
- package/dist/configurator/components/CrossChainSwitcher.d.ts.map +1 -0
- package/dist/configurator/components/DeltaSwitcher.d.ts +5 -0
- package/dist/configurator/components/DeltaSwitcher.d.ts.map +1 -0
- package/dist/configurator/components/DevTools.d.ts +7 -0
- package/dist/configurator/components/DevTools.d.ts.map +1 -0
- package/dist/configurator/components/EnabledChainsSelector.d.ts +8 -0
- package/dist/configurator/components/EnabledChainsSelector.d.ts.map +1 -0
- package/dist/configurator/components/FormPropsInputs.d.ts +6 -0
- package/dist/configurator/components/FormPropsInputs.d.ts.map +1 -0
- package/dist/configurator/components/PanelHeader.d.ts +6 -0
- package/dist/configurator/components/PanelHeader.d.ts.map +1 -0
- package/dist/configurator/components/PartnerInput.d.ts +5 -0
- package/dist/configurator/components/PartnerInput.d.ts.map +1 -0
- package/dist/configurator/components/PrivyInputs.d.ts +7 -0
- package/dist/configurator/components/PrivyInputs.d.ts.map +1 -0
- package/dist/configurator/components/ThemeSwitcher.d.ts +6 -0
- package/dist/configurator/components/ThemeSwitcher.d.ts.map +1 -0
- package/dist/configurator/components/TokenListsInput.d.ts +5 -0
- package/dist/configurator/components/TokenListsInput.d.ts.map +1 -0
- package/dist/configurator/components/TradeModesSelector.d.ts +7 -0
- package/dist/configurator/components/TradeModesSelector.d.ts.map +1 -0
- package/dist/configurator/components/WidgetModeSwitcher.d.ts +5 -0
- package/dist/configurator/components/WidgetModeSwitcher.d.ts.map +1 -0
- package/dist/configurator/components/common/DetailWithTooltip.d.ts +3 -0
- package/dist/configurator/components/common/DetailWithTooltip.d.ts.map +1 -0
- package/dist/configurator/components/common/Input.d.ts +8 -0
- package/dist/configurator/components/common/Input.d.ts.map +1 -0
- package/dist/configurator/components/common/Switch.d.ts +12 -0
- package/dist/configurator/components/common/Switch.d.ts.map +1 -0
- package/dist/configurator/state/themeAtom.d.ts +3 -0
- package/dist/configurator/state/themeAtom.d.ts.map +1 -0
- package/dist/core/ConnectWalletDrawerButton.js +53 -66
- package/dist/core/ConnectWalletDrawerButton.js.map +1 -1
- package/dist/core/LimitOrderButton.js.map +1 -1
- package/dist/core/LimitOrderDetails.js.map +1 -1
- package/dist/core/OtcOrderButton.d.ts.map +1 -1
- package/dist/core/OtcOrderButton.js +4 -1
- package/dist/core/OtcOrderButton.js.map +1 -1
- package/dist/core/OtcOrderDetails.js.map +1 -1
- package/dist/core/Toaster.js.map +1 -1
- package/dist/core/TradeFlowButton.d.ts.map +1 -1
- package/dist/core/TradeFlowButton.js +414 -621
- package/dist/core/TradeFlowButton.js.map +1 -1
- package/dist/core/Updaters.js.map +1 -1
- package/dist/core/Warnings.js.map +1 -1
- package/dist/core/button/hooks/useWidgetButtonExtraProps.js.map +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/inputs/hooks/useTokenFromInputProps.d.ts.map +1 -1
- package/dist/core/inputs/hooks/useTokenFromInputProps.js +83 -54
- package/dist/core/inputs/hooks/useTokenFromInputProps.js.map +1 -1
- package/dist/core/inputs/hooks/useTokenSwitcherProps.js.map +1 -1
- package/dist/core/inputs/hooks/useTokenToInputProps.js +20 -28
- package/dist/core/inputs/hooks/useTokenToInputProps.js.map +1 -1
- package/dist/core/inputs/state/common.js.map +1 -1
- package/dist/core/inputs/state/selectedTokenAtom.js.map +1 -1
- package/dist/core/inputs/state/setTokenByAddressAtom.js.map +1 -1
- package/dist/core/limit/state/deadlineAtom.js.map +1 -1
- package/dist/core/limit/state/selectedTokenAtom.js.map +1 -1
- package/dist/core/limit/useLimitDetailsListProps.js.map +1 -1
- package/dist/core/limit/useLimitNotSupported.js +12 -1
- package/dist/core/limit/useLimitNotSupported.js.map +1 -1
- package/dist/core/limit/useLimitPriceDifference.js.map +1 -1
- package/dist/core/limit/useLimitPriceInputProps.js.map +1 -1
- package/dist/core/limit/useLimitRate.js.map +1 -1
- package/dist/core/limit/useLimitTokenFromInputProps.d.ts.map +1 -1
- package/dist/core/limit/useLimitTokenFromInputProps.js +69 -52
- package/dist/core/limit/useLimitTokenFromInputProps.js.map +1 -1
- package/dist/core/limit/useLimitTokenSwitcherProps.js.map +1 -1
- package/dist/core/limit/useLimitTokenToInputProps.js.map +1 -1
- package/dist/core/logger.js +12 -14
- package/dist/core/logger.js.map +1 -1
- package/dist/core/otc/state/deadlineAtom.js.map +1 -1
- package/dist/core/otc/state/receiverAddressAtom.js.map +1 -1
- package/dist/core/otc/state/selectedTokenAtom.js.map +1 -1
- package/dist/core/otc/useOtcDetailsListProps.js.map +1 -1
- package/dist/core/otc/useOtcNotSupported.js +12 -1
- package/dist/core/otc/useOtcNotSupported.js.map +1 -1
- package/dist/core/otc/useOtcPriceDifference.js.map +1 -1
- package/dist/core/otc/useOtcPriceInputProps.js.map +1 -1
- package/dist/core/otc/useOtcTokenFromInputProps.d.ts.map +1 -1
- package/dist/core/otc/useOtcTokenFromInputProps.js +69 -52
- package/dist/core/otc/useOtcTokenFromInputProps.js.map +1 -1
- package/dist/core/otc/useOtcTokenSwitcherProps.js.map +1 -1
- package/dist/core/otc/useOtcTokenToInputProps.js.map +1 -1
- package/dist/core/state/chainToAtom.js.map +1 -1
- package/dist/core/state/configAtom.d.ts +2 -2
- package/dist/core/state/configAtom.d.ts.map +1 -1
- package/dist/core/state/configAtom.js +1 -7
- package/dist/core/state/configAtom.js.map +1 -1
- package/dist/core/state/configEffectAtom.js.map +1 -1
- package/dist/core/state/containerAtom.js.map +1 -1
- package/dist/core/state/enabledChainsAtom.js.map +1 -1
- package/dist/core/state/externalProviderAtom.js.map +1 -1
- package/dist/core/state/isCrosschainAtom.js.map +1 -1
- package/dist/core/state/tradeModeAtom.js.map +1 -1
- package/dist/core/state/widgetEventsAtom.js.map +1 -1
- package/dist/core/swapDetails/useSwapDetailsListProps.js +34 -36
- package/dist/core/swapDetails/useSwapDetailsListProps.js.map +1 -1
- package/dist/events/hooks/useActivateEffects.js.map +1 -1
- package/dist/events/hooks/useOnWalletConnect.js.map +1 -1
- package/dist/events/types/approve.d.ts +22 -6
- package/dist/events/types/approve.d.ts.map +1 -1
- package/dist/external/.pnpm/react-compiler-runtime@1.0.0_react@19.1.1/external/react-compiler-runtime/dist/index.js.map +1 -0
- package/dist/hooks/batch/useAwaitCalls.d.ts.map +1 -1
- package/dist/hooks/batch/useAwaitCalls.js +20 -16
- package/dist/hooks/batch/useAwaitCalls.js.map +1 -1
- package/dist/hooks/batch/useCanBatchTxs.js.map +1 -1
- package/dist/hooks/batch/useSendBatchTx.js.map +1 -1
- package/dist/hooks/connectors/useIsConnectedSafe.js +10 -18
- package/dist/hooks/connectors/useIsConnectedSafe.js.map +1 -1
- package/dist/hooks/connectors/useIsGnosisSafeConnector.js.map +1 -1
- package/dist/hooks/connectors/useIsSafeThroughWalletConnect.js +4 -15
- package/dist/hooks/connectors/useIsSafeThroughWalletConnect.js.map +1 -1
- package/dist/hooks/gas/useGasPrices.js.map +1 -1
- package/dist/hooks/getCode/useIsAccountContract.js.map +1 -1
- package/dist/hooks/getCode/useIsContractAtAddress.js +30 -46
- package/dist/hooks/getCode/useIsContractAtAddress.js.map +1 -1
- package/dist/hooks/otc/mutations/useCancelLimitOrder.d.ts.map +1 -1
- package/dist/hooks/otc/mutations/useCancelLimitOrder.js +21 -12
- package/dist/hooks/otc/mutations/useCancelLimitOrder.js.map +1 -1
- package/dist/hooks/otc/mutations/useCreateLimitOrder.d.ts.map +1 -1
- package/dist/hooks/otc/mutations/useCreateLimitOrder.js +22 -12
- package/dist/hooks/otc/mutations/useCreateLimitOrder.js.map +1 -1
- package/dist/hooks/otc/mutations/useFillOrder.d.ts.map +1 -1
- package/dist/hooks/otc/mutations/useFillOrder.js +10 -32
- package/dist/hooks/otc/mutations/useFillOrder.js.map +1 -1
- package/dist/hooks/otc/queries/useLimitOrderRequiredBalance.d.ts +22 -3
- package/dist/hooks/otc/queries/useLimitOrderRequiredBalance.d.ts.map +1 -1
- package/dist/hooks/otc/queries/useLimitOrderRequiredBalance.js +39 -2
- package/dist/hooks/otc/queries/useLimitOrderRequiredBalance.js.map +1 -1
- package/dist/hooks/otc/queries/useLimitOrders.js.map +1 -1
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.d.ts.map +1 -1
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js +2 -3
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js.map +1 -1
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderStep.js.map +1 -1
- package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.d.ts +7 -4
- package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.d.ts.map +1 -1
- package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.js +46 -4
- package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.js.map +1 -1
- package/dist/hooks/otc/tradeFlow/useOtcOrderStep.d.ts.map +1 -1
- package/dist/hooks/otc/tradeFlow/useOtcOrderStep.js +38 -36
- package/dist/hooks/otc/tradeFlow/useOtcOrderStep.js.map +1 -1
- package/dist/hooks/permit/hooks/common/useSignArbitraryTypedData.js.map +1 -1
- package/dist/hooks/permit/hooks/common/useSignPermit.js.map +1 -1
- package/dist/hooks/permit/hooks/common/useWalletSupportsPermit.js.map +1 -1
- package/dist/hooks/permit/hooks/permit1/useGetPermitInfo.js.map +1 -1
- package/dist/hooks/permit/hooks/permit1/useGetSafePermitInfo.js.map +1 -1
- package/dist/hooks/permit/hooks/permit1/useSignTokenPermit1.js.map +1 -1
- package/dist/hooks/permit/hooks/permit1/useTokenFromPermit1Nonce.js.map +1 -1
- package/dist/hooks/permit/hooks/permit1/useTokenFromPermitInfo.js.map +1 -1
- package/dist/hooks/permit/hooks/permit1/useTryToSignPermit1.js.map +1 -1
- package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.js +39 -31
- package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.js.map +1 -1
- package/dist/hooks/permit/hooks/permit2/useSignTokenPermit2TransferFrom.js +7 -15
- package/dist/hooks/permit/hooks/permit2/useSignTokenPermit2TransferFrom.js.map +1 -1
- package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2TransferFromNonce.js.map +1 -1
- package/dist/hooks/sdk/useGetContracts.js.map +1 -1
- package/dist/hooks/sdk/useSpender.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelLimitDeltaOrders.d.ts +2 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelLimitDeltaOrders.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelLimitDeltaOrders.js +23 -13
- package/dist/hooks/swap/prices/delta/mutations/useCancelLimitDeltaOrders.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.d.ts +3 -2
- package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.js +41 -10
- package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.d.ts +25 -0
- package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.js +88 -0
- package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.js.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.d.ts +16 -0
- package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.js +83 -0
- package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.js.map +1 -0
- package/dist/hooks/swap/prices/delta/orders/utils.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/orders/utils.js +3 -2
- package/dist/hooks/swap/prices/delta/orders/utils.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.d.ts +22 -3
- package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.js +39 -2
- package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaOrders.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useIsTokenSupportedInDelta.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/market/mutations/useBuildTx.js.map +1 -1
- package/dist/hooks/swap/prices/market/mutations/useSendMarketSwapTx.js.map +1 -1
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js.map +1 -1
- package/dist/hooks/swap/prices/market/queries/useSpenderAndContracts.d.ts +9 -0
- package/dist/hooks/swap/prices/market/queries/useSpenderAndContracts.d.ts.map +1 -1
- package/dist/hooks/swap/prices/market/queries/useSpenderAndContracts.js +49 -2
- package/dist/hooks/swap/prices/market/queries/useSpenderAndContracts.js.map +1 -1
- package/dist/hooks/swap/prices/usePricesParams.js.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
- package/dist/hooks/swap/prices/useTokenInputsFromPrice.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/types.d.ts +17 -0
- package/dist/hooks/swap/tradeFlow/common/types.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.d.ts +3 -1
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js +164 -140
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermitEvents.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useBatchWrapAndApprove.d.ts +46 -0
- package/dist/hooks/swap/tradeFlow/common/useBatchWrapAndApprove.d.ts.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/useBatchWrapAndApprove.js +328 -0
- package/dist/hooks/swap/tradeFlow/common/useBatchWrapAndApprove.js.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/useConstructGasParams.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useConstructGasParams.js +16 -14
- package/dist/hooks/swap/tradeFlow/common/useConstructGasParams.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.d.ts +74 -0
- package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.d.ts.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.js +274 -0
- package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.js.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/useRequiredAllowanceForOrders.d.ts +15 -0
- package/dist/hooks/swap/tradeFlow/common/useRequiredAllowanceForOrders.d.ts.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/useRequiredAllowanceForOrders.js +88 -0
- package/dist/hooks/swap/tradeFlow/common/useRequiredAllowanceForOrders.js.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/utils.d.ts +1 -0
- package/dist/hooks/swap/tradeFlow/common/utils.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/utils.js +16 -1
- package/dist/hooks/swap/tradeFlow/common/utils.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts +28 -23
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +59 -17
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts +4 -3
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js +61 -15
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderStep.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts +2 -18
- package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js.map +1 -1
- package/dist/hooks/tokens/allowance/useTokenAllowance.js +25 -15
- package/dist/hooks/tokens/allowance/useTokenAllowance.js.map +1 -1
- package/dist/hooks/tokens/balances/useAttachTokenBalanceMultichain.js +8 -10
- package/dist/hooks/tokens/balances/useAttachTokenBalanceMultichain.js.map +1 -1
- package/dist/hooks/tokens/balances/useIsInsufficientTokenBalance.js.map +1 -1
- package/dist/hooks/tokens/balances/useIsLimitOrderInsufficientBalance.js.map +1 -1
- package/dist/hooks/tokens/balances/useMultichainTokenBalances.js +20 -37
- package/dist/hooks/tokens/balances/useMultichainTokenBalances.js.map +1 -1
- package/dist/hooks/tokens/balances/useTokenBalance.js.map +1 -1
- package/dist/hooks/tokens/data/useCombineTokensWithFetched.js +11 -19
- package/dist/hooks/tokens/data/useCombineTokensWithFetched.js.map +1 -1
- package/dist/hooks/tokens/data/useFetchTokens.js.map +1 -1
- package/dist/hooks/tokens/data/useMultichainTokensData.js.map +1 -1
- package/dist/hooks/tokens/prices/useMultichainTokenPrices.js +21 -25
- package/dist/hooks/tokens/prices/useMultichainTokenPrices.js.map +1 -1
- package/dist/hooks/tokens/prices/useTokenPrices.js.map +1 -1
- package/dist/hooks/tokens/useAllTokensWithFilter.js +121 -49
- package/dist/hooks/tokens/useAllTokensWithFilter.js.map +1 -1
- package/dist/hooks/tokens/useNativeToken.js +1 -1
- package/dist/hooks/tokens/useNativeToken.js.map +1 -1
- package/dist/hooks/tokens/useTokenTaxFee.js.map +1 -1
- package/dist/hooks/tokens/useTokensByAddress.js.map +1 -1
- package/dist/hooks/tokens/useTokensFromAcross.js.map +1 -1
- package/dist/hooks/txs/mutations/useApprove.js.map +1 -1
- package/dist/hooks/txs/mutations/useDepositWeth.js.map +1 -1
- package/dist/hooks/txs/mutations/useSendTx.js.map +1 -1
- package/dist/hooks/txs/queries/useAwaitTx.js.map +1 -1
- package/dist/hooks/txs/queries/useTxHistory.js.map +1 -1
- package/dist/hooks/useAvailableCrosses.js.map +1 -1
- package/dist/hooks/useBridgeInfo.js.map +1 -1
- package/dist/hooks/useCurrentChain.js.map +1 -1
- package/dist/hooks/useDebouncedInputState.js.map +1 -1
- package/dist/hooks/useEIP1559Enabled.js.map +1 -1
- package/dist/hooks/useGlobalDeltaEnabled.js.map +1 -1
- package/dist/hooks/useIsCrosschainPossible.js.map +1 -1
- package/dist/hooks/useMinViemClient.js.map +1 -1
- package/dist/hooks/useSDK.d.ts +3 -2
- package/dist/hooks/useSDK.d.ts.map +1 -1
- package/dist/hooks/useSDK.js +37 -8
- package/dist/hooks/useSDK.js.map +1 -1
- package/dist/hooks/useSelectableDestChains.js.map +1 -1
- package/dist/hooks/useSlippage.js.map +1 -1
- package/dist/lib/utils/approval.js.map +1 -1
- package/dist/lib/utils/theme.d.ts +2 -0
- package/dist/lib/utils/theme.d.ts.map +1 -0
- package/dist/lib/utils/theme.js +10 -0
- package/dist/lib/utils/theme.js.map +1 -0
- package/dist/lib/web3/privy/config.js +1 -1
- package/dist/lib/web3/wagmi/config.js +1 -1
- package/dist/lib/web3/wagmi/isInsideSafeIframe.js.map +1 -1
- package/dist/styles.css +80 -39
- package/dist/tokens/hooks.js.map +1 -1
- package/dist/tokens/lists/state/effects.js.map +1 -1
- package/dist/tokens/queries.js +6 -10
- package/dist/tokens/queries.js.map +1 -1
- package/dist/tokens/stabeCoins/hooks.js +3 -5
- package/dist/tokens/stabeCoins/hooks.js.map +1 -1
- package/dist/tokens/utils/transferAmountsFromReceipt.js.map +1 -1
- package/dist/transactions/queries/ensureCallsStatus.d.ts +1 -0
- package/dist/transactions/queries/ensureCallsStatus.d.ts.map +1 -1
- package/dist/transactions/queries/ensureCallsStatus.js +7 -5
- package/dist/transactions/queries/ensureCallsStatus.js.map +1 -1
- package/dist/transactions/state/hooks/useActivateEffects.js.map +1 -1
- package/dist/transactions/state/hooks/useTransactions.js.map +1 -1
- package/dist/transactions/types.d.ts +21 -1
- package/dist/transactions/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/dist/external/.pnpm/react-compiler-runtime@19.1.0-rc.2_react@19.1.1/external/react-compiler-runtime/dist/index.js.map +0 -1
- /package/dist/external/.pnpm/{react-compiler-runtime@19.1.0-rc.2_react@19.1.1 → react-compiler-runtime@1.0.0_react@19.1.1}/external/react-compiler-runtime/dist/index.js +0 -0
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
import { useFetchOnlySDK } from '../../../useSDK.js';
|
|
2
|
+
import { useCreatePreSignableDeltaOrder } from '../../prices/delta/mutations/useCreatePreSignableDeltaOrder.js';
|
|
3
|
+
import { useBatchWithApproveTxs } from '../../../batch/useBatchWithApproveTxs.js';
|
|
4
|
+
import { useSendBatchTx } from '../../../batch/useSendBatchTx.js';
|
|
5
|
+
import { useAwaitCalls, useEnsureCallsStatus } from '../../../batch/useAwaitCalls.js';
|
|
6
|
+
import { isAddress } from 'viem';
|
|
7
|
+
import { deltaOrdersQueryKey } from '../../prices/delta/queries/useDeltaOrders.js';
|
|
8
|
+
import { useConnectedSafe } from '../../../connectors/useIsConnectedSafe.js';
|
|
9
|
+
import { useCanBatchTxs } from '../../../batch/useCanBatchTxs.js';
|
|
10
|
+
import { usePostDeltaOrder } from '../../prices/delta/mutations/usePostDeltaOrder.js';
|
|
11
|
+
import { useQueryClient } from '@tanstack/react-query';
|
|
12
|
+
import { wrappedNativeCurrency } from '../../../../lib/constants/weth.js';
|
|
13
|
+
import { depositWETHCalldata } from './utils.js';
|
|
14
|
+
import { assert } from 'ts-essentials';
|
|
15
|
+
import { useEnsureContractsQuery } from '../../prices/market/queries/useSpenderAndContracts.js';
|
|
16
|
+
|
|
17
|
+
function usePreSignAndSubmitDeltaOrder({
|
|
18
|
+
chainId,
|
|
19
|
+
account,
|
|
20
|
+
logger,
|
|
21
|
+
viemClient
|
|
22
|
+
}) {
|
|
23
|
+
const queryClient = useQueryClient();
|
|
24
|
+
const {
|
|
25
|
+
forCurrentChain: canBatchTxs
|
|
26
|
+
} = useCanBatchTxs();
|
|
27
|
+
const isConnectedToSafe = useConnectedSafe();
|
|
28
|
+
const createPreSignableOrderMut = useCreatePreSignableDeltaOrder({
|
|
29
|
+
chainId,
|
|
30
|
+
client: viemClient
|
|
31
|
+
});
|
|
32
|
+
const {
|
|
33
|
+
sdk: fetchOnlySDK
|
|
34
|
+
} = useFetchOnlySDK({
|
|
35
|
+
chainId
|
|
36
|
+
});
|
|
37
|
+
const preSignPreparations = {
|
|
38
|
+
isCreatingOrder: createPreSignableOrderMut.isPending,
|
|
39
|
+
isOrderHashReady: createPreSignableOrderMut.isSuccess,
|
|
40
|
+
order: createPreSignableOrderMut.data?.orderToPost,
|
|
41
|
+
isPending: createPreSignableOrderMut.isPending,
|
|
42
|
+
isError: createPreSignableOrderMut.isError,
|
|
43
|
+
isSuccess: createPreSignableOrderMut.isSuccess,
|
|
44
|
+
error: createPreSignableOrderMut.error
|
|
45
|
+
};
|
|
46
|
+
const {
|
|
47
|
+
addTxWithApprovals
|
|
48
|
+
} = useBatchWithApproveTxs();
|
|
49
|
+
const batchTxMut = useSendBatchTx({
|
|
50
|
+
onSuccess: () => {
|
|
51
|
+
logger.log("Batch tx success");
|
|
52
|
+
},
|
|
53
|
+
onError: (error) => {
|
|
54
|
+
logger.error("Batch tx error", error);
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
const batchTxMined = useAwaitCalls({
|
|
58
|
+
id: batchTxMut.data?.id
|
|
59
|
+
});
|
|
60
|
+
const lastCallsReceipt = batchTxMined.data?.receipts?.[batchTxMined.data.receipts.length - 1];
|
|
61
|
+
const deltaPreSignBatch = {
|
|
62
|
+
canBatchTxs,
|
|
63
|
+
callsId: batchTxMut.data?.id,
|
|
64
|
+
txHash: lastCallsReceipt?.transactionHash,
|
|
65
|
+
receipt: lastCallsReceipt,
|
|
66
|
+
/* calls sending */
|
|
67
|
+
isConfirmingCalls: batchTxMut.isPending,
|
|
68
|
+
isConfirmingCallsError: batchTxMut.isError,
|
|
69
|
+
isCallsSent: batchTxMut.isSuccess,
|
|
70
|
+
/* calls awaiting */
|
|
71
|
+
isCallsPending: batchTxMined.isLoading,
|
|
72
|
+
isCallsMined: batchTxMined.isSuccess,
|
|
73
|
+
isCallsAwaitingError: batchTxMined.isError,
|
|
74
|
+
/* combined */
|
|
75
|
+
isPending: batchTxMut.isPending || batchTxMined.isLoading,
|
|
76
|
+
isSuccess: batchTxMined.isSuccess,
|
|
77
|
+
isError: batchTxMut.isError || batchTxMined.isError,
|
|
78
|
+
error: batchTxMut.error || batchTxMined.error
|
|
79
|
+
};
|
|
80
|
+
const postOrderMut = usePostDeltaOrder({
|
|
81
|
+
chainId,
|
|
82
|
+
account,
|
|
83
|
+
client: viemClient,
|
|
84
|
+
mutationOptions: {
|
|
85
|
+
onSuccess: (order) => {
|
|
86
|
+
logger.log("Create Delta Order success", order);
|
|
87
|
+
queryClient.invalidateQueries({
|
|
88
|
+
queryKey: deltaOrdersQueryKey({
|
|
89
|
+
userAddress: order.user
|
|
90
|
+
}),
|
|
91
|
+
exact: false
|
|
92
|
+
});
|
|
93
|
+
},
|
|
94
|
+
onError: (error_0) => {
|
|
95
|
+
logger.error("Create Delta Order error", error_0);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
const deltaOrderPosting = {
|
|
100
|
+
order: postOrderMut.data,
|
|
101
|
+
isPostingOrder: postOrderMut.isPending,
|
|
102
|
+
isOrderSent: postOrderMut.isSuccess,
|
|
103
|
+
isPending: postOrderMut.isPending,
|
|
104
|
+
isError: postOrderMut.isError,
|
|
105
|
+
isSuccess: postOrderMut.isSuccess,
|
|
106
|
+
error: postOrderMut.error
|
|
107
|
+
};
|
|
108
|
+
const deltaOrderPreSign = {
|
|
109
|
+
canPreSignBatch: !!canBatchTxs,
|
|
110
|
+
order: postOrderMut.data,
|
|
111
|
+
preSignPrep: preSignPreparations,
|
|
112
|
+
preSignBatch: deltaPreSignBatch,
|
|
113
|
+
postingOrder: deltaOrderPosting,
|
|
114
|
+
isCreatingOrder: preSignPreparations.isCreatingOrder || deltaPreSignBatch.isPending || deltaOrderPosting.isPostingOrder,
|
|
115
|
+
isOrderSent: deltaOrderPosting.isOrderSent,
|
|
116
|
+
isPending: preSignPreparations.isPending || deltaPreSignBatch.isPending || deltaOrderPosting.isPending,
|
|
117
|
+
isError: preSignPreparations.isError || deltaPreSignBatch.isError || deltaOrderPosting.isError,
|
|
118
|
+
isSuccess: deltaOrderPosting.isSuccess,
|
|
119
|
+
error: preSignPreparations.error || deltaPreSignBatch.error || deltaOrderPosting.error
|
|
120
|
+
};
|
|
121
|
+
const ensureCallsStatus = useEnsureCallsStatus();
|
|
122
|
+
const {
|
|
123
|
+
ensureContractsLoaded
|
|
124
|
+
} = useEnsureContractsQuery({
|
|
125
|
+
chainId
|
|
126
|
+
});
|
|
127
|
+
const preSignAndSubmitDeltaOrder = async ({
|
|
128
|
+
createDeltaOrderInput,
|
|
129
|
+
preWrapETH,
|
|
130
|
+
approval,
|
|
131
|
+
onTxSent
|
|
132
|
+
}) => {
|
|
133
|
+
const {
|
|
134
|
+
signal,
|
|
135
|
+
orderInput
|
|
136
|
+
} = createDeltaOrderInput;
|
|
137
|
+
const {
|
|
138
|
+
orderToPost,
|
|
139
|
+
preSignCalldata
|
|
140
|
+
} = await createPreSignableOrderMut.mutateAsync(createDeltaOrderInput);
|
|
141
|
+
signal?.throwIfAborted();
|
|
142
|
+
const {
|
|
143
|
+
ParaswapDelta: DeltaContract
|
|
144
|
+
} = await ensureContractsLoaded({
|
|
145
|
+
signal
|
|
146
|
+
});
|
|
147
|
+
assert(DeltaContract && isAddress(DeltaContract), `DeltaContract is not available on chain ${chainId}`);
|
|
148
|
+
const txsParams = [{
|
|
149
|
+
to: DeltaContract,
|
|
150
|
+
account,
|
|
151
|
+
data: preSignCalldata,
|
|
152
|
+
value: 0n,
|
|
153
|
+
chainId
|
|
154
|
+
}];
|
|
155
|
+
const needToApprove = approval.allowanceToSet && approval.allowanceToSet > 0n && approval.spender;
|
|
156
|
+
if (preWrapETH) {
|
|
157
|
+
const wrapAmount = BigInt(orderInput.srcAmount);
|
|
158
|
+
txsParams.unshift({
|
|
159
|
+
to: wrappedNativeCurrency[chainId],
|
|
160
|
+
account,
|
|
161
|
+
data: depositWETHCalldata,
|
|
162
|
+
value: wrapAmount,
|
|
163
|
+
chainId
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
const approveProps = needToApprove ? [{
|
|
167
|
+
spender: approval.spender,
|
|
168
|
+
allowanceToSet: approval.allowanceToSet,
|
|
169
|
+
token: approval.token,
|
|
170
|
+
chainId: approval.chainId
|
|
171
|
+
}] : void 0;
|
|
172
|
+
const {
|
|
173
|
+
calls
|
|
174
|
+
} = await addTxWithApprovals({
|
|
175
|
+
txsParams,
|
|
176
|
+
approveProps
|
|
177
|
+
});
|
|
178
|
+
signal?.throwIfAborted();
|
|
179
|
+
let orderIsPosted = false;
|
|
180
|
+
const sendUnsentOrderOnPageHide = () => {
|
|
181
|
+
if (orderIsPosted) return;
|
|
182
|
+
orderIsPosted = true;
|
|
183
|
+
fetchOnlySDK?.postDeltaOrder(orderToPost);
|
|
184
|
+
};
|
|
185
|
+
window.addEventListener("pagehide", sendUnsentOrderOnPageHide, {
|
|
186
|
+
once: true
|
|
187
|
+
});
|
|
188
|
+
const unsubscribeFromPageHide = () => {
|
|
189
|
+
window.removeEventListener("pagehide", sendUnsentOrderOnPageHide);
|
|
190
|
+
};
|
|
191
|
+
try {
|
|
192
|
+
const sendCallsResult = await batchTxMut.sendCalls({
|
|
193
|
+
txsParams: calls
|
|
194
|
+
});
|
|
195
|
+
const sendCallsReceiptPromise = ensureCallsStatus({
|
|
196
|
+
id: sendCallsResult.id
|
|
197
|
+
}).then((status) => status.receipts?.[status.receipts.length - 1]);
|
|
198
|
+
logger.log("~ deltaOrder ~ awaiting setPreSignature calls id :", sendCallsResult.id);
|
|
199
|
+
if (onTxSent) {
|
|
200
|
+
onTxSent({
|
|
201
|
+
chainId,
|
|
202
|
+
action: "preSignDeltaOrder",
|
|
203
|
+
callsId: sendCallsResult.id,
|
|
204
|
+
receiptPromise: sendCallsReceiptPromise,
|
|
205
|
+
transactionSpecificData: {
|
|
206
|
+
action: "preSignDeltaOrder",
|
|
207
|
+
order: orderToPost
|
|
208
|
+
}
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
await sendCallsReceiptPromise;
|
|
212
|
+
const orderFromAPI = await postOrderMut.mutateAsync(orderToPost);
|
|
213
|
+
orderIsPosted = true;
|
|
214
|
+
return orderFromAPI;
|
|
215
|
+
} catch (error_1) {
|
|
216
|
+
logger.error("Pre-sign and submit Delta Order error", error_1);
|
|
217
|
+
throw error_1;
|
|
218
|
+
} finally {
|
|
219
|
+
unsubscribeFromPageHide();
|
|
220
|
+
}
|
|
221
|
+
};
|
|
222
|
+
const reset = () => {
|
|
223
|
+
createPreSignableOrderMut.reset();
|
|
224
|
+
batchTxMut.reset();
|
|
225
|
+
postOrderMut.reset();
|
|
226
|
+
};
|
|
227
|
+
return {
|
|
228
|
+
deltaOrderPreSign,
|
|
229
|
+
canBatchTxs,
|
|
230
|
+
isConnectedToSafe,
|
|
231
|
+
preSignAndSubmitDeltaOrder,
|
|
232
|
+
reset
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
function shouldApproveOrBatch({
|
|
236
|
+
approval,
|
|
237
|
+
preWrapETH,
|
|
238
|
+
signPermit,
|
|
239
|
+
canBatchTxs,
|
|
240
|
+
isConnectedToSafe
|
|
241
|
+
}) {
|
|
242
|
+
const tryPermit = signPermit.isPermitSupported && signPermit.isPermitReadyToSign;
|
|
243
|
+
const allowanceToSet = approval.allowanceToSet ?? 0n;
|
|
244
|
+
const tokenNeedsApproval = approval.needsApproval && allowanceToSet > 0n;
|
|
245
|
+
let numberOfActions = 1;
|
|
246
|
+
let numberOfTxs = 0;
|
|
247
|
+
if (preWrapETH) {
|
|
248
|
+
numberOfActions++;
|
|
249
|
+
numberOfTxs++;
|
|
250
|
+
}
|
|
251
|
+
if (tokenNeedsApproval) {
|
|
252
|
+
numberOfActions++;
|
|
253
|
+
if (!tryPermit) {
|
|
254
|
+
numberOfTxs++;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
let shouldPreSignBatch = false;
|
|
258
|
+
if (canBatchTxs) {
|
|
259
|
+
if (isConnectedToSafe && numberOfActions > 1) {
|
|
260
|
+
shouldPreSignBatch = true;
|
|
261
|
+
} else if (numberOfTxs > 0 && numberOfActions > 1) {
|
|
262
|
+
shouldPreSignBatch = true;
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
const shouldDoApprovalTxOrPermit = tokenNeedsApproval && !shouldPreSignBatch;
|
|
266
|
+
return {
|
|
267
|
+
shouldDoApprovalTxOrPermit,
|
|
268
|
+
tryPermit,
|
|
269
|
+
shouldPreSignBatch
|
|
270
|
+
};
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
export { shouldApproveOrBatch, usePreSignAndSubmitDeltaOrder };
|
|
274
|
+
//# sourceMappingURL=usePreSignAndSubmitDeltaOrder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePreSignAndSubmitDeltaOrder.js","sources":["../../../../../src/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.ts"],"sourcesContent":["import { useFetchOnlySDK } from \"@/hooks/useSDK\";\nimport {\n useCreatePreSignableDeltaOrder,\n type DeltaOrderToPost,\n} from \"../../prices/delta/mutations/useCreatePreSignableDeltaOrder\";\nimport {\n useBatchWithApproveTxs,\n type TxParams,\n} from \"@/hooks/batch/useBatchWithApproveTxs\";\nimport { useSendBatchTx } from \"@/hooks/batch/useSendBatchTx\";\nimport {\n useAwaitCalls,\n useEnsureCallsStatus,\n} from \"@/hooks/batch/useAwaitCalls\";\nimport { isAddress, type Address } from \"viem\";\nimport {\n deltaOrdersQueryKey,\n type SubmittedDeltaOrderFromAPI,\n} from \"../../prices/delta/queries/useDeltaOrders\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport type { LoggerInstance } from \"@/lib/utils/logger\";\nimport type { DeltaOrderApiResponse, MinViemClient } from \"@velora-dex/sdk\";\nimport { useConnectedSafe } from \"@/hooks/connectors/useIsConnectedSafe\";\nimport { useCanBatchTxs } from \"@/hooks/batch/useCanBatchTxs\";\nimport { usePostDeltaOrder } from \"../../prices/delta/mutations/usePostDeltaOrder\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport type { CreateDeltaOrderInput } from \"../../prices/delta/mutations/useCreateDeltaOrder\";\nimport type { CallsSentObject } from \"@/lib/utils/transactionHandlers\";\nimport type {\n ApprovalFlowResult,\n BatchTxStepResult,\n SignPermitFlowResult,\n} from \"./types\";\nimport { wrappedNativeCurrency } from \"@/lib/constants/weth\";\nimport { depositWETHCalldata } from \"./utils\";\nimport { assert } from \"ts-essentials\";\nimport { useEnsureContractsQuery } from \"../../prices/market/queries/useSpenderAndContracts\";\n\nexport type DeltaOrderPreSignResult = {\n canPreSignBatch: boolean;\n preSignPrep: {\n order?: DeltaOrderToPost;\n isCreatingOrder: boolean;\n isOrderHashReady: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n preSignBatch: BatchTxStepResult;\n postingOrder: {\n order?: SubmittedDeltaOrderFromAPI;\n isPostingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n order?: SubmittedDeltaOrderFromAPI;\n isCreatingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n};\n\ntype UsePreSignAndSubmitDeltaOrderInput = {\n chainId: SupportedChainId;\n account?: Address;\n logger: LoggerInstance;\n viemClient?: MinViemClient;\n};\n\ntype UsePreSignAndSubmitDeltaOrderResult = {\n deltaOrderPreSign: DeltaOrderPreSignResult;\n canBatchTxs?: boolean;\n isConnectedToSafe: boolean;\n preSignAndSubmitDeltaOrder: PreSignAndSubmitDeltaOrderFunc;\n reset: () => void;\n};\n\nexport function usePreSignAndSubmitDeltaOrder({\n chainId,\n account,\n logger,\n viemClient,\n}: UsePreSignAndSubmitDeltaOrderInput): UsePreSignAndSubmitDeltaOrderResult {\n const queryClient = useQueryClient();\n\n const { forCurrentChain: canBatchTxs } = useCanBatchTxs();\n const isConnectedToSafe = useConnectedSafe();\n\n /* 1. submit Batch tx (Approve + Delta pre-sign) */\n\n const createPreSignableOrderMut = useCreatePreSignableDeltaOrder({\n chainId,\n client: viemClient,\n });\n\n const { sdk: fetchOnlySDK } = useFetchOnlySDK({\n chainId,\n });\n\n const preSignPreparations: DeltaOrderPreSignResult[\"preSignPrep\"] = {\n isCreatingOrder: createPreSignableOrderMut.isPending,\n isOrderHashReady: createPreSignableOrderMut.isSuccess,\n order: createPreSignableOrderMut.data?.orderToPost,\n isPending: createPreSignableOrderMut.isPending,\n isError: createPreSignableOrderMut.isError,\n isSuccess: createPreSignableOrderMut.isSuccess,\n error: createPreSignableOrderMut.error,\n };\n\n const { addTxWithApprovals } = useBatchWithApproveTxs();\n\n const batchTxMut = useSendBatchTx({\n onSuccess: () => {\n logger.log(\"Batch tx success\");\n },\n onError: (error) => {\n logger.error(\"Batch tx error\", error);\n },\n });\n\n /* 2. await Batch tx */\n const batchTxMined = useAwaitCalls({\n id: batchTxMut.data?.id,\n });\n\n // for a successful SendCalls execution there will either be one receipt only,\n // or several receipts with the last one for the last tx from the batch\n const lastCallsReceipt =\n batchTxMined.data?.receipts?.[batchTxMined.data.receipts.length - 1];\n\n const deltaPreSignBatch: BatchTxStepResult = {\n canBatchTxs,\n callsId: batchTxMut.data?.id,\n txHash: lastCallsReceipt?.transactionHash,\n receipt: lastCallsReceipt,\n /* calls sending */\n isConfirmingCalls: batchTxMut.isPending,\n isConfirmingCallsError: batchTxMut.isError,\n isCallsSent: batchTxMut.isSuccess,\n /* calls awaiting */\n isCallsPending: batchTxMined.isLoading,\n isCallsMined: batchTxMined.isSuccess,\n isCallsAwaitingError: batchTxMined.isError,\n /* combined */\n isPending: batchTxMut.isPending || batchTxMined.isLoading,\n isSuccess: batchTxMined.isSuccess,\n isError: batchTxMut.isError || batchTxMined.isError,\n error: batchTxMut.error || batchTxMined.error,\n };\n\n /* 3. post Pre-signed Order */\n\n const postOrderMut = usePostDeltaOrder({\n chainId,\n account,\n client: viemClient,\n mutationOptions: {\n onSuccess: (order) => {\n logger.log(\"Create Delta Order success\", order);\n queryClient.invalidateQueries({\n queryKey: deltaOrdersQueryKey({\n userAddress: order.user,\n }),\n exact: false,\n });\n },\n onError: (error) => {\n logger.error(\"Create Delta Order error\", error);\n },\n },\n });\n\n const deltaOrderPosting: DeltaOrderPreSignResult[\"postingOrder\"] = {\n order: postOrderMut.data,\n isPostingOrder: postOrderMut.isPending,\n isOrderSent: postOrderMut.isSuccess,\n isPending: postOrderMut.isPending,\n isError: postOrderMut.isError,\n isSuccess: postOrderMut.isSuccess,\n error: postOrderMut.error,\n };\n\n const deltaOrderPreSign: DeltaOrderPreSignResult = {\n canPreSignBatch: !!canBatchTxs,\n order: postOrderMut.data,\n preSignPrep: preSignPreparations,\n preSignBatch: deltaPreSignBatch,\n postingOrder: deltaOrderPosting,\n isCreatingOrder:\n preSignPreparations.isCreatingOrder ||\n deltaPreSignBatch.isPending ||\n deltaOrderPosting.isPostingOrder,\n isOrderSent: deltaOrderPosting.isOrderSent,\n isPending:\n preSignPreparations.isPending ||\n deltaPreSignBatch.isPending ||\n deltaOrderPosting.isPending,\n isError:\n preSignPreparations.isError ||\n deltaPreSignBatch.isError ||\n deltaOrderPosting.isError,\n isSuccess: deltaOrderPosting.isSuccess,\n error:\n preSignPreparations.error ||\n deltaPreSignBatch.error ||\n deltaOrderPosting.error,\n };\n\n const ensureCallsStatus = useEnsureCallsStatus();\n const { ensureContractsLoaded } = useEnsureContractsQuery({ chainId });\n\n const preSignAndSubmitDeltaOrder: PreSignAndSubmitDeltaOrderFunc = async ({\n createDeltaOrderInput,\n preWrapETH,\n approval,\n onTxSent,\n }) => {\n // prepare Order for pre-signing and POSTing:\n // 1. builds the order\n // 2. hashes the built order\n // 3 construct DeltaContract.setPreSignature(orderHash, true) tx calldata\n\n const { signal, orderInput } = createDeltaOrderInput;\n\n const { orderToPost, preSignCalldata } =\n await createPreSignableOrderMut.mutateAsync(createDeltaOrderInput);\n\n // if aborted by this point, throw an error\n signal?.throwIfAborted();\n\n const { ParaswapDelta: DeltaContract } = await ensureContractsLoaded({\n signal,\n });\n\n assert(\n DeltaContract && isAddress(DeltaContract),\n `DeltaContract is not available on chain ${chainId}`\n );\n\n const txsParams: [TxParams, ...TxParams[]] = [\n {\n to: DeltaContract,\n account,\n data: preSignCalldata,\n value: 0n,\n chainId,\n },\n ];\n\n const needToApprove =\n approval.allowanceToSet &&\n approval.allowanceToSet > 0n &&\n approval.spender;\n\n if (preWrapETH) {\n // add WETH.deposit call,\n // we'll have Approve + Deposit WETH + setPreSignature batch tx;\n // the order doesn't really matter\n\n // avoid using approval.allowanceToSet as it may represent Unlimited Approval\n const wrapAmount = BigInt(orderInput.srcAmount);\n txsParams.unshift({\n to: wrappedNativeCurrency[chainId],\n account,\n data: depositWETHCalldata,\n value: wrapAmount,\n chainId,\n });\n }\n\n const approveProps = needToApprove\n ? [\n {\n spender: approval.spender,\n allowanceToSet: approval.allowanceToSet,\n token: approval.token,\n chainId: approval.chainId,\n },\n ]\n : undefined;\n\n // 4. construct a sendCalls batch with Approve Token + setPreSignature call\n const { calls } = await addTxWithApprovals({\n txsParams,\n approveProps,\n });\n\n // if aborted by this point, throw an error\n signal?.throwIfAborted();\n\n let orderIsPosted = false;\n\n const sendUnsentOrderOnPageHide = () => {\n if (orderIsPosted) return;\n orderIsPosted = true;\n fetchOnlySDK?.postDeltaOrder(orderToPost);\n };\n\n // check if the page was closed after sendCalls succeeded but before the Order was posted.\n // in that case POST the Order just in case the page is never reloaded or localStorage survives until then.\n // `pagehide` event is more reliable on desktop and does not fire on tab switching in browser,\n // but on mobile minimizing the browser doesn't fire `pagehide` event but does `visibilitychange`.\n // with `visibilitychange` though we can't reliably resume the flow because navigator.sendBeacon doesn't return response\n window.addEventListener(\"pagehide\", sendUnsentOrderOnPageHide, {\n once: true,\n });\n // prepared to POST Order in case of page close before sending the Approve+setPreSignature batch tx request,\n // because inside Safe it's very easy to switch page and go to Transactions page by clicking in a popup,\n // so the Widget state will be lost but the Safe would already receive a tx to sign\n // and it's not obvious that the Delta flow was aborted\n const unsubscribeFromPageHide = () => {\n window.removeEventListener(\"pagehide\", sendUnsentOrderOnPageHide);\n };\n\n try {\n // 5. send the Approve+setPreSignature batch tx request to the wallet\n const sendCallsResult = await batchTxMut.sendCalls({\n txsParams: calls,\n });\n\n const sendCallsReceiptPromise = ensureCallsStatus({\n id: sendCallsResult.id,\n }).then((status) => status.receipts?.[status.receipts.length - 1]);\n\n logger.log(\n \"~ deltaOrder ~ awaiting setPreSignature calls id :\",\n sendCallsResult.id\n );\n\n if (onTxSent) {\n onTxSent({\n chainId,\n action: \"preSignDeltaOrder\",\n callsId: sendCallsResult.id,\n receiptPromise: sendCallsReceiptPromise,\n transactionSpecificData: {\n action: \"preSignDeltaOrder\",\n order: orderToPost,\n },\n });\n }\n\n // 6. wait for that batch tx to be mined;\n await sendCallsReceiptPromise;\n\n // 7. POST the Order to API with signature=0x\n const orderFromAPI = await postOrderMut.mutateAsync(orderToPost);\n orderIsPosted = true;\n\n return orderFromAPI;\n } catch (error) {\n logger.error(\"Pre-sign and submit Delta Order error\", error);\n throw error;\n } finally {\n unsubscribeFromPageHide();\n }\n };\n\n const reset = () => {\n createPreSignableOrderMut.reset();\n batchTxMut.reset();\n postOrderMut.reset();\n };\n\n return {\n deltaOrderPreSign,\n canBatchTxs,\n isConnectedToSafe,\n preSignAndSubmitDeltaOrder,\n reset,\n };\n}\n\ntype PreSignAndSubmitDeltaOrderInput = {\n createDeltaOrderInput: CreateDeltaOrderInput;\n approval: Pick<\n ApprovalFlowResult,\n \"spender\" | \"allowanceToSet\" | \"token\" | \"chainId\"\n >;\n preWrapETH?: boolean;\n onTxSent?: (txSent: CallsSentObject) => void;\n};\n\ntype PreSignAndSubmitDeltaOrderFunc = (\n input: PreSignAndSubmitDeltaOrderInput\n) => Promise<DeltaOrderApiResponse>;\n\ntype ShouldApproveOrBatchInput = {\n approval: Pick<ApprovalFlowResult, \"needsApproval\" | \"allowanceToSet\">;\n preWrapETH?: boolean;\n signPermit: Pick<\n SignPermitFlowResult,\n \"isPermitSupported\" | \"isPermitReadyToSign\"\n >;\n canBatchTxs?: boolean;\n isConnectedToSafe: boolean;\n};\n\ntype ShouldApproveOrBatchResult = {\n shouldDoApprovalTxOrPermit: boolean;\n tryPermit: boolean;\n shouldPreSignBatch: boolean;\n};\n\nexport function shouldApproveOrBatch({\n approval,\n preWrapETH,\n signPermit,\n canBatchTxs,\n isConnectedToSafe,\n}: ShouldApproveOrBatchInput): ShouldApproveOrBatchResult {\n // can sign a Permit\n const tryPermit =\n signPermit.isPermitSupported && signPermit.isPermitReadyToSign;\n\n const allowanceToSet = approval.allowanceToSet ?? 0n;\n // need to Approve Token or sign Permit for it\n const tokenNeedsApproval = approval.needsApproval && allowanceToSet > 0n;\n\n let numberOfActions = 1; // Delta Order creation\n let numberOfTxs = 0;\n if (preWrapETH) {\n // needs to call WETH.deposit\n numberOfActions++;\n numberOfTxs++;\n }\n if (tokenNeedsApproval) {\n // needs to approve a token\n numberOfActions++;\n if (!tryPermit) {\n // can't sign a Permit\n numberOfTxs++;\n }\n }\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 let shouldPreSignBatch = false;\n // wallet can batch txs\n if (canBatchTxs) {\n // wallet is Safe and there will be multiple actions Safe needs to perform\n if (isConnectedToSafe && numberOfActions > 1) {\n // do it in one batch tx\n shouldPreSignBatch = true;\n } else if (numberOfTxs > 0 && numberOfActions > 1) {\n // if at least one tx to perform, batch it with actions\n shouldPreSignBatch = true;\n }\n // else if only one action (Delta signing), then can signTypedData only\n }\n\n // will do an Approval of Token (tx or Permit)\n const shouldDoApprovalTxOrPermit = tokenNeedsApproval && !shouldPreSignBatch;\n\n return {\n shouldDoApprovalTxOrPermit,\n tryPermit,\n shouldPreSignBatch,\n };\n}\n"],"names":["usePreSignAndSubmitDeltaOrder","chainId","account","logger","viemClient","queryClient","useQueryClient","forCurrentChain","canBatchTxs","useCanBatchTxs","isConnectedToSafe","useConnectedSafe","createPreSignableOrderMut","useCreatePreSignableDeltaOrder","client","sdk","fetchOnlySDK","useFetchOnlySDK","preSignPreparations","isCreatingOrder","isPending","isOrderHashReady","isSuccess","order","data","orderToPost","isError","error","addTxWithApprovals","useBatchWithApproveTxs","batchTxMut","useSendBatchTx","onSuccess","log","onError","batchTxMined","useAwaitCalls","id","lastCallsReceipt","receipts","length","deltaPreSignBatch","callsId","txHash","transactionHash","receipt","isConfirmingCalls","isConfirmingCallsError","isCallsSent","isCallsPending","isLoading","isCallsMined","isCallsAwaitingError","postOrderMut","usePostDeltaOrder","mutationOptions","invalidateQueries","queryKey","deltaOrdersQueryKey","userAddress","user","exact","deltaOrderPosting","isPostingOrder","isOrderSent","deltaOrderPreSign","canPreSignBatch","preSignPrep","preSignBatch","postingOrder","ensureCallsStatus","useEnsureCallsStatus","ensureContractsLoaded","useEnsureContractsQuery","preSignAndSubmitDeltaOrder","createDeltaOrderInput","preWrapETH","approval","onTxSent","signal","orderInput","preSignCalldata","mutateAsync","throwIfAborted","ParaswapDelta","DeltaContract","assert","isAddress","txsParams","to","value","needToApprove","allowanceToSet","spender","wrapAmount","BigInt","srcAmount","unshift","wrappedNativeCurrency","depositWETHCalldata","approveProps","token","undefined","calls","orderIsPosted","sendUnsentOrderOnPageHide","postDeltaOrder","window","addEventListener","once","unsubscribeFromPageHide","removeEventListener","sendCallsResult","sendCalls","sendCallsReceiptPromise","then","status","action","receiptPromise","transactionSpecificData","orderFromAPI","reset","shouldApproveOrBatch","signPermit","tryPermit","isPermitSupported","isPermitReadyToSign","tokenNeedsApproval","needsApproval","numberOfActions","numberOfTxs","shouldPreSignBatch","shouldDoApprovalTxOrPermit"],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { SpenderContractType } from '../../../sdk/types';
|
|
2
|
+
type UseRequiredAllowanceForOrdersInput = {
|
|
3
|
+
tokenAddress?: string;
|
|
4
|
+
increaseByAmount?: string | bigint;
|
|
5
|
+
spenderContractType: SpenderContractType;
|
|
6
|
+
/** @description Whether to include the allowance of currently active Orders in the combined allowance */
|
|
7
|
+
includeCurrentOrdersAllowance?: boolean;
|
|
8
|
+
};
|
|
9
|
+
type UseRequiredAllowanceForOrdersResult = {
|
|
10
|
+
combinedAllowance?: bigint;
|
|
11
|
+
isLoading: boolean;
|
|
12
|
+
};
|
|
13
|
+
export declare function useRequiredAllowanceForOrders({ tokenAddress, increaseByAmount, spenderContractType, includeCurrentOrdersAllowance, }: UseRequiredAllowanceForOrdersInput): UseRequiredAllowanceForOrdersResult;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=useRequiredAllowanceForOrders.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRequiredAllowanceForOrders.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/swap/tradeFlow/common/useRequiredAllowanceForOrders.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,KAAK,kCAAkC,GAAG;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACnC,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,yGAAyG;IACzG,6BAA6B,CAAC,EAAE,OAAO,CAAC;CACzC,CAAC;AAEF,KAAK,mCAAmC,GAAG;IACzC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,wBAAgB,6BAA6B,CAAC,EAC5C,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,6BAAoC,GACrC,EAAE,kCAAkC,GAAG,mCAAmC,CAmC1E"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { d as distExports } from '../../../../_virtual/index.js';
|
|
2
|
+
import { useOTCOrderRequiredAllowance } from '../../../otc/queries/useLimitOrderRequiredBalance.js';
|
|
3
|
+
import { useDeltaOrderRequiredAllowance } from '../../prices/delta/queries/useDeltaLimitOrderRequiredBalance.js';
|
|
4
|
+
|
|
5
|
+
function useRequiredAllowanceForOrders(t0) {
|
|
6
|
+
const $ = distExports.c(13);
|
|
7
|
+
const {
|
|
8
|
+
tokenAddress,
|
|
9
|
+
increaseByAmount,
|
|
10
|
+
spenderContractType,
|
|
11
|
+
includeCurrentOrdersAllowance: t1
|
|
12
|
+
} = t0;
|
|
13
|
+
const includeCurrentOrdersAllowance = t1 === void 0 ? true : t1;
|
|
14
|
+
const t2 = includeCurrentOrdersAllowance && spenderContractType === "ParaswapDelta";
|
|
15
|
+
let t3;
|
|
16
|
+
if ($[0] !== increaseByAmount || $[1] !== t2 || $[2] !== tokenAddress) {
|
|
17
|
+
t3 = {
|
|
18
|
+
tokenAddress,
|
|
19
|
+
amount: increaseByAmount,
|
|
20
|
+
enabled: t2
|
|
21
|
+
};
|
|
22
|
+
$[0] = increaseByAmount;
|
|
23
|
+
$[1] = t2;
|
|
24
|
+
$[2] = tokenAddress;
|
|
25
|
+
$[3] = t3;
|
|
26
|
+
} else {
|
|
27
|
+
t3 = $[3];
|
|
28
|
+
}
|
|
29
|
+
const {
|
|
30
|
+
combinedAllowance: srcCombinedAllowanceDelta,
|
|
31
|
+
isLoading: isLoadingDelta
|
|
32
|
+
} = useDeltaOrderRequiredAllowance(t3);
|
|
33
|
+
const t4 = includeCurrentOrdersAllowance && spenderContractType === "AugustusRFQ";
|
|
34
|
+
let t5;
|
|
35
|
+
if ($[4] !== increaseByAmount || $[5] !== t4 || $[6] !== tokenAddress) {
|
|
36
|
+
t5 = {
|
|
37
|
+
tokenAddress,
|
|
38
|
+
amount: increaseByAmount,
|
|
39
|
+
enabled: t4
|
|
40
|
+
};
|
|
41
|
+
$[4] = increaseByAmount;
|
|
42
|
+
$[5] = t4;
|
|
43
|
+
$[6] = tokenAddress;
|
|
44
|
+
$[7] = t5;
|
|
45
|
+
} else {
|
|
46
|
+
t5 = $[7];
|
|
47
|
+
}
|
|
48
|
+
const {
|
|
49
|
+
combinedAllowance: srcCombinedAllowanceOTC,
|
|
50
|
+
isLoading: isLoadingOTC
|
|
51
|
+
} = useOTCOrderRequiredAllowance(t5);
|
|
52
|
+
let combinedAllowance;
|
|
53
|
+
if (spenderContractType === "ParaswapDelta") {
|
|
54
|
+
combinedAllowance = srcCombinedAllowanceDelta;
|
|
55
|
+
} else {
|
|
56
|
+
if (spenderContractType === "AugustusRFQ") {
|
|
57
|
+
combinedAllowance = srcCombinedAllowanceOTC;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
if (combinedAllowance === void 0 && increaseByAmount !== void 0) {
|
|
61
|
+
let t62;
|
|
62
|
+
if ($[8] !== increaseByAmount) {
|
|
63
|
+
t62 = BigInt(increaseByAmount);
|
|
64
|
+
$[8] = increaseByAmount;
|
|
65
|
+
$[9] = t62;
|
|
66
|
+
} else {
|
|
67
|
+
t62 = $[9];
|
|
68
|
+
}
|
|
69
|
+
combinedAllowance = t62;
|
|
70
|
+
}
|
|
71
|
+
const t6 = isLoadingDelta || isLoadingOTC;
|
|
72
|
+
let t7;
|
|
73
|
+
if ($[10] !== combinedAllowance || $[11] !== t6) {
|
|
74
|
+
t7 = {
|
|
75
|
+
combinedAllowance,
|
|
76
|
+
isLoading: t6
|
|
77
|
+
};
|
|
78
|
+
$[10] = combinedAllowance;
|
|
79
|
+
$[11] = t6;
|
|
80
|
+
$[12] = t7;
|
|
81
|
+
} else {
|
|
82
|
+
t7 = $[12];
|
|
83
|
+
}
|
|
84
|
+
return t7;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
export { useRequiredAllowanceForOrders };
|
|
88
|
+
//# sourceMappingURL=useRequiredAllowanceForOrders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRequiredAllowanceForOrders.js","sources":["../../../../../src/hooks/swap/tradeFlow/common/useRequiredAllowanceForOrders.ts"],"sourcesContent":["import { useOTCOrderRequiredAllowance } from \"@/hooks/otc/queries/useLimitOrderRequiredBalance\";\nimport { useDeltaOrderRequiredAllowance } from \"../../prices/delta/queries/useDeltaLimitOrderRequiredBalance\";\nimport type { SpenderContractType } from \"@/hooks/sdk/types\";\n\ntype UseRequiredAllowanceForOrdersInput = {\n tokenAddress?: string;\n increaseByAmount?: string | bigint; // amount to increase the allowance by (=srcTokenAmount)\n spenderContractType: SpenderContractType;\n /** @description Whether to include the allowance of currently active Orders in the combined allowance */\n includeCurrentOrdersAllowance?: boolean;\n};\n\ntype UseRequiredAllowanceForOrdersResult = {\n combinedAllowance?: bigint;\n isLoading: boolean;\n};\n\nexport function useRequiredAllowanceForOrders({\n tokenAddress,\n increaseByAmount,\n spenderContractType,\n includeCurrentOrdersAllowance = true,\n}: UseRequiredAllowanceForOrdersInput): UseRequiredAllowanceForOrdersResult {\n const {\n combinedAllowance: srcCombinedAllowanceDelta,\n isLoading: isLoadingDelta,\n } = useDeltaOrderRequiredAllowance({\n tokenAddress,\n amount: increaseByAmount,\n enabled:\n includeCurrentOrdersAllowance && spenderContractType === \"ParaswapDelta\",\n });\n // =amount required to cover allowance of current OTC Orders + amount for the new OTC Order\n const {\n combinedAllowance: srcCombinedAllowanceOTC,\n isLoading: isLoadingOTC,\n } = useOTCOrderRequiredAllowance({\n tokenAddress,\n amount: increaseByAmount,\n enabled:\n includeCurrentOrdersAllowance && spenderContractType === \"AugustusRFQ\",\n });\n\n let combinedAllowance: bigint | undefined;\n if (spenderContractType === \"ParaswapDelta\") {\n combinedAllowance = srcCombinedAllowanceDelta;\n } else if (spenderContractType === \"AugustusRFQ\") {\n combinedAllowance = srcCombinedAllowanceOTC;\n }\n if (combinedAllowance === undefined && increaseByAmount !== undefined) {\n combinedAllowance = BigInt(increaseByAmount);\n }\n\n return {\n combinedAllowance,\n isLoading: isLoadingDelta || isLoadingOTC,\n };\n}\n"],"names":["useRequiredAllowanceForOrders","t0","$","_c","tokenAddress","increaseByAmount","spenderContractType","includeCurrentOrdersAllowance","t1","undefined","t2","t3","amount","enabled","combinedAllowance","srcCombinedAllowanceDelta","isLoading","isLoadingDelta","useDeltaOrderRequiredAllowance","t4","t5","srcCombinedAllowanceOTC","isLoadingOTC","useOTCOrderRequiredAllowance","t6","BigInt","t7"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSignPermit1Or2.js","sources":["../../../../../src/hooks/swap/tradeFlow/common/useSignPermit1Or2.ts"],"sourcesContent":["import {\n useMarkPermit2NonceAsUsed,\n useSignTokenPermit2TransferFrom,\n type SignPermit2TransferFromInput,\n type SignedPermit2Result,\n type UseSignTokenPermit2TransferFromResult,\n} from \"@/hooks/permit/hooks/permit2/useSignTokenPermit2TransferFrom\";\nimport type { SignPermitFlowResult } from \"./types\";\nimport {\n useMarkPermit1NonceAsUsed,\n useSignTokenPermit1,\n type SignedPermit1Result,\n type UseSignTokenPermit1Result,\n} from \"@/hooks/permit/hooks/permit1/useSignTokenPermit1\";\nimport type { GenericTokenAllowance } from \"@/hooks/tokens/allowance/types\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport type { Address, Hash } from \"viem\";\nimport type {\n DaiPermitInput,\n Permit2Input,\n} from \"@/hooks/permit/utils/construct\";\nimport type { Permit1Input } from \"@/hooks/permit/utils/construct\";\nimport { useLogger } from \"@/core/logger\";\nimport { useTokensByAddress } from \"@/hooks/tokens/useTokensByAddress\";\n\ntype UseSignPermitInput = {\n srcToken?: Address;\n chainId: SupportedChainId;\n allowance: Pick<\n GenericTokenAllowance,\n \"allowanceToSet\" | \"spender\" | \"needsApproval\"\n >;\n};\n\ntype SignPermit1FlowResult = {\n type: \"permit1\";\n signPermit1: SignPermitFlowResult;\n signPermit1Mut: UseSignTokenPermit1Result;\n};\n\ntype SignPermit2FlowResult = {\n type: \"permit2\";\n variant: \"transferFrom\";\n signPermit2: SignPermitFlowResult;\n signPermit2Mut: UseSignTokenPermit2TransferFromResult;\n};\n\nexport type PermitType = \"permit1\" | \"permit2TransferFrom\";\n\nexport type PermitMut = Pick<\n UseSignTokenPermit1Result,\n | \"isPermitSupported\"\n | \"isPermitReadyToSign\"\n | \"permitFetchingState\"\n | \"permitSigningState\"\n | \"isPending\"\n | \"isSuccess\"\n | \"isError\"\n | \"error\"\n | \"reset\"\n | \"signature\"\n> & {\n signPermit: UseSignTokenPermit2TransferFromResult[\"signPermit2\"];\n signPermitAsync: (\n params?: SignPermit2TransferFromInput\n ) => Promise<SignedPermitResult>;\n encodePermitArgs: UseSignTokenPermit2TransferFromResult[\"encodePermitArgs\"];\n permitType: PermitType | null;\n};\n\nexport type SignedPermitResult = {\n signature: Hash;\n permitEncodedArgs: Hash;\n signedPermitData:\n | SignedPermit1Result[\"signedPermitData\"]\n | SignedPermit2Result[\"signedPermitData\"];\n};\n\ntype UseSignPermitResult = {\n permit1: SignPermit1FlowResult;\n permit2: SignPermit2FlowResult;\n signPermit: SignPermitFlowResult;\n signPermitMut: PermitMut;\n permitType: PermitType | null;\n};\n\nexport function useSignPermit1Or2({\n srcToken,\n chainId,\n allowance,\n}: UseSignPermitInput): UseSignPermitResult {\n const logger = useLogger(\"SignPermit1Or2\");\n const permitsEnabled = allowance.needsApproval;\n\n const signPermit1Mut = useSignTokenPermit1({\n token: srcToken\n ? {\n address: srcToken,\n network: chainId,\n }\n : undefined,\n value: allowance.allowanceToSet,\n spender: allowance.spender,\n enabled: permitsEnabled,\n onSuccess: (signature) => {\n logger.log(\"Permit1 signature\", signature);\n },\n onError: (error) => {\n logger.error(\"Permit1 error\", error);\n },\n });\n\n const signPermit2Mut = useSignTokenPermit2TransferFrom({\n token: srcToken\n ? {\n address: srcToken,\n network: chainId,\n }\n : undefined,\n value: allowance.allowanceToSet,\n spender: allowance.spender,\n enabled: permitsEnabled,\n onSuccess: (signature) => {\n logger.log(\"Permit2 signature\", signature);\n },\n onError: (error) => {\n logger.error(\"Permit2 error\", error);\n },\n });\n\n const tokensMap = useTokensByAddress(chainId);\n const tokenObject = srcToken ? tokensMap[srcToken.toLowerCase()] : undefined;\n\n const signPermit1: SignPermitFlowResult = {\n token: srcToken,\n tokenObject,\n chainId,\n isPermitSupported: signPermit1Mut.isPermitSupported,\n isPermitReadyToSign: signPermit1Mut.isPermitReadyToSign,\n amountToPermit: allowance.allowanceToSet,\n spender: allowance.spender,\n isLoadingPermitData: signPermit1Mut.permitFetchingState.isPending,\n isSigningPermit: signPermit1Mut.permitSigningState.isPending,\n isPermitSigned: signPermit1Mut.permitSigningState.isSuccess,\n signature: signPermit1Mut.signature,\n isPending: signPermit1Mut.isPending,\n isSuccess: signPermit1Mut.isSuccess,\n isError: signPermit1Mut.isError,\n error: signPermit1Mut.error,\n permitType: \"permit1\",\n };\n\n const signPermit2: SignPermitFlowResult = {\n token: srcToken,\n tokenObject,\n chainId,\n isPermitSupported: signPermit2Mut.isPermitSupported,\n isPermitReadyToSign: signPermit2Mut.isPermitReadyToSign,\n amountToPermit: allowance.allowanceToSet,\n spender: allowance.spender,\n isLoadingPermitData: signPermit2Mut.permitFetchingState.isPending,\n isSigningPermit: signPermit2Mut.permitSigningState.isPending,\n isPermitSigned: signPermit2Mut.permitSigningState.isSuccess,\n signature: signPermit2Mut.signature,\n isPending: signPermit2Mut.isPending,\n isSuccess: signPermit2Mut.isSuccess,\n isError: signPermit2Mut.isError,\n error: signPermit2Mut.error,\n permitType: \"permit2TransferFrom\",\n };\n\n const signPermit1Res: SignPermit1FlowResult = {\n type: \"permit1\",\n signPermit1,\n signPermit1Mut,\n };\n\n const signPermit2Res: SignPermit2FlowResult = {\n type: \"permit2\",\n variant: \"transferFrom\",\n signPermit2,\n signPermit2Mut,\n };\n\n const usingPermit2 =\n permitsEnabled &&\n signPermit2.isPermitSupported &&\n signPermit2.isPermitReadyToSign;\n\n const signPermit = usingPermit2 ? signPermit2 : signPermit1;\n\n const signPermitMut: PermitMut = usingPermit2\n ? {\n ...signPermit2Mut,\n signPermit: signPermit2Mut.signPermit2,\n signPermitAsync: async (params) => {\n const result = await signPermit2Mut.signPermit2Async(params);\n return {\n signature: result.signature,\n permitEncodedArgs: result.permit2TransferFromEncodedArgs,\n signedPermitData: result.signedPermitData,\n };\n },\n encodePermitArgs: signPermit2Mut.encodePermitArgs,\n permitType: \"permit2TransferFrom\",\n }\n : {\n ...signPermit1Mut,\n signPermit: signPermit1Mut.signPermit1,\n signPermitAsync: async (params) => {\n const result = await signPermit1Mut.signPermit1Async(params);\n return {\n signature: result.signature,\n permitEncodedArgs: result.permit1EncodedArgs,\n signedPermitData: result.signedPermitData,\n };\n },\n encodePermitArgs: signPermit1Mut.encodePermitArgs,\n permitType: \"permit1\",\n };\n\n const permitType = !permitsEnabled\n ? null\n : usingPermit2\n ? \"permit2TransferFrom\"\n : \"permit1\";\n\n return {\n signPermit,\n signPermitMut,\n permit1: signPermit1Res,\n permit2: signPermit2Res,\n permitType,\n };\n}\n\n///// mark nonce as used //////\n\ntype SignedPermitData =\n | Permit1Input\n | DaiPermitInput\n | (Permit2Input & { owner: Address });\n\ntype UseMarkPermit1Or2NonceAsUsedResult = {\n markNonceAsUsed: (signedPermitData: SignedPermitData) => void;\n clearNonce: (signedPermitData: SignedPermitData) => void;\n};\n\nexport function useMarkPermit1Or2NonceAsUsed({\n chainId,\n}: {\n chainId: SupportedChainId;\n}) {\n const permit1NonceUsedMarker = useMarkPermit1NonceAsUsed({\n chainId,\n });\n\n const permit2NonceUsedMarker = useMarkPermit2NonceAsUsed();\n\n const markNonceAsUsed: UseMarkPermit1Or2NonceAsUsedResult[\"markNonceAsUsed\"] =\n (signedPermitData) => {\n if (signedPermitData.type === \"permit2\") {\n return permit2NonceUsedMarker.markNonceAsUsed(signedPermitData);\n } else {\n return permit1NonceUsedMarker.markNonceAsUsed(signedPermitData);\n }\n };\n\n const clearNonce: UseMarkPermit1Or2NonceAsUsedResult[\"clearNonce\"] = (\n signedPermitData\n ) => {\n if (signedPermitData.type !== \"permit2\") {\n return permit1NonceUsedMarker.clearNonce(signedPermitData);\n }\n };\n\n return {\n markNonceAsUsed,\n clearNonce,\n };\n}\n"],"names":["useSignPermit1Or2","t0","$","_c","srcToken","chainId","allowance","logger","useLogger","permitsEnabled","needsApproval","t1","address","network","undefined","t2","t3","signature","log","error","t4","allowanceToSet","spender","token","value","enabled","onSuccess","onError","signPermit1Mut","useSignTokenPermit1","t5","t6","t7","signature_0","error_0","t8","signPermit2Mut","useSignTokenPermit2TransferFrom","tokensMap","useTokensByAddress","t9","toLowerCase","tokenObject","t10","isError","isPending","isPermitReadyToSign","isPermitSupported","isSuccess","permitFetchingState","permitSigningState","amountToPermit","isLoadingPermitData","isSigningPermit","isPermitSigned","permitType","signPermit1","t11","signPermit2","t12","type","signPermit1Res","t13","variant","signPermit2Res","usingPermit2","signPermit","t14","signPermitAsync","params","result","signPermit2Async","permitEncodedArgs","permit2TransferFromEncodedArgs","signedPermitData","encodePermitArgs","params_0","result_0","signPermit1Async","permit1EncodedArgs","signPermitMut","t15","permit1","permit2","useMarkPermit1Or2NonceAsUsed","permit1NonceUsedMarker","useMarkPermit1NonceAsUsed","permit2NonceUsedMarker","useMarkPermit2NonceAsUsed","markNonceAsUsed","signedPermitData_0","clearNonce"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useSignPermit1Or2.js","sources":["../../../../../src/hooks/swap/tradeFlow/common/useSignPermit1Or2.ts"],"sourcesContent":["import {\n useMarkPermit2NonceAsUsed,\n useSignTokenPermit2TransferFrom,\n type SignPermit2TransferFromInput,\n type SignedPermit2Result,\n type UseSignTokenPermit2TransferFromResult,\n} from \"@/hooks/permit/hooks/permit2/useSignTokenPermit2TransferFrom\";\nimport type { SignPermitFlowResult } from \"./types\";\nimport {\n useMarkPermit1NonceAsUsed,\n useSignTokenPermit1,\n type SignedPermit1Result,\n type UseSignTokenPermit1Result,\n} from \"@/hooks/permit/hooks/permit1/useSignTokenPermit1\";\nimport type { GenericTokenAllowance } from \"@/hooks/tokens/allowance/types\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport type { Address, Hash } from \"viem\";\nimport type {\n DaiPermitInput,\n Permit2Input,\n} from \"@/hooks/permit/utils/construct\";\nimport type { Permit1Input } from \"@/hooks/permit/utils/construct\";\nimport { useLogger } from \"@/core/logger\";\nimport { useTokensByAddress } from \"@/hooks/tokens/useTokensByAddress\";\n\ntype UseSignPermitInput = {\n srcToken?: Address;\n chainId: SupportedChainId;\n allowance: Pick<\n GenericTokenAllowance,\n \"allowanceToSet\" | \"spender\" | \"needsApproval\"\n >;\n};\n\ntype SignPermit1FlowResult = {\n type: \"permit1\";\n signPermit1: SignPermitFlowResult;\n signPermit1Mut: UseSignTokenPermit1Result;\n};\n\ntype SignPermit2FlowResult = {\n type: \"permit2\";\n variant: \"transferFrom\";\n signPermit2: SignPermitFlowResult;\n signPermit2Mut: UseSignTokenPermit2TransferFromResult;\n};\n\nexport type PermitType = \"permit1\" | \"permit2TransferFrom\";\n\nexport type PermitMut = Pick<\n UseSignTokenPermit1Result,\n | \"isPermitSupported\"\n | \"isPermitReadyToSign\"\n | \"permitFetchingState\"\n | \"permitSigningState\"\n | \"isPending\"\n | \"isSuccess\"\n | \"isError\"\n | \"error\"\n | \"reset\"\n | \"signature\"\n> & {\n signPermit: UseSignTokenPermit2TransferFromResult[\"signPermit2\"];\n signPermitAsync: (\n params?: SignPermit2TransferFromInput\n ) => Promise<SignedPermitResult>;\n encodePermitArgs: UseSignTokenPermit2TransferFromResult[\"encodePermitArgs\"];\n permitType: PermitType | null;\n};\n\nexport type SignedPermitResult = {\n signature: Hash;\n permitEncodedArgs: Hash;\n signedPermitData:\n | SignedPermit1Result[\"signedPermitData\"]\n | SignedPermit2Result[\"signedPermitData\"];\n};\n\ntype UseSignPermitResult = {\n permit1: SignPermit1FlowResult;\n permit2: SignPermit2FlowResult;\n signPermit: SignPermitFlowResult;\n signPermitMut: PermitMut;\n permitType: PermitType | null;\n};\n\nexport function useSignPermit1Or2({\n srcToken,\n chainId,\n allowance,\n}: UseSignPermitInput): UseSignPermitResult {\n const logger = useLogger(\"SignPermit1Or2\");\n const permitsEnabled = allowance.needsApproval;\n\n const signPermit1Mut = useSignTokenPermit1({\n token: srcToken\n ? {\n address: srcToken,\n network: chainId,\n }\n : undefined,\n value: allowance.allowanceToSet,\n spender: allowance.spender,\n enabled: permitsEnabled,\n onSuccess: (signature) => {\n logger.log(\"Permit1 signature\", signature);\n },\n onError: (error) => {\n logger.error(\"Permit1 error\", error);\n },\n });\n\n const signPermit2Mut = useSignTokenPermit2TransferFrom({\n token: srcToken\n ? {\n address: srcToken,\n network: chainId,\n }\n : undefined,\n value: allowance.allowanceToSet,\n spender: allowance.spender,\n enabled: permitsEnabled,\n onSuccess: (signature) => {\n logger.log(\"Permit2 signature\", signature);\n },\n onError: (error) => {\n logger.error(\"Permit2 error\", error);\n },\n });\n\n const tokensMap = useTokensByAddress(chainId);\n const tokenObject = srcToken ? tokensMap[srcToken.toLowerCase()] : undefined;\n\n const signPermit1: SignPermitFlowResult = {\n token: srcToken,\n tokenObject,\n chainId,\n isPermitSupported: signPermit1Mut.isPermitSupported,\n isPermitReadyToSign: signPermit1Mut.isPermitReadyToSign,\n amountToPermit: allowance.allowanceToSet,\n spender: allowance.spender,\n isLoadingPermitData: signPermit1Mut.permitFetchingState.isPending,\n isSigningPermit: signPermit1Mut.permitSigningState.isPending,\n isPermitSigned: signPermit1Mut.permitSigningState.isSuccess,\n signature: signPermit1Mut.signature,\n isPending: signPermit1Mut.isPending,\n isSuccess: signPermit1Mut.isSuccess,\n isError: signPermit1Mut.isError,\n error: signPermit1Mut.error,\n permitType: \"permit1\",\n };\n\n const signPermit2: SignPermitFlowResult = {\n token: srcToken,\n tokenObject,\n chainId,\n isPermitSupported: signPermit2Mut.isPermitSupported,\n isPermitReadyToSign: signPermit2Mut.isPermitReadyToSign,\n amountToPermit: allowance.allowanceToSet,\n spender: allowance.spender,\n isLoadingPermitData: signPermit2Mut.permitFetchingState.isPending,\n isSigningPermit: signPermit2Mut.permitSigningState.isPending,\n isPermitSigned: signPermit2Mut.permitSigningState.isSuccess,\n signature: signPermit2Mut.signature,\n isPending: signPermit2Mut.isPending,\n isSuccess: signPermit2Mut.isSuccess,\n isError: signPermit2Mut.isError,\n error: signPermit2Mut.error,\n permitType: \"permit2TransferFrom\",\n };\n\n const signPermit1Res: SignPermit1FlowResult = {\n type: \"permit1\",\n signPermit1,\n signPermit1Mut,\n };\n\n const signPermit2Res: SignPermit2FlowResult = {\n type: \"permit2\",\n variant: \"transferFrom\",\n signPermit2,\n signPermit2Mut,\n };\n\n const usingPermit2 =\n permitsEnabled &&\n signPermit2.isPermitSupported &&\n signPermit2.isPermitReadyToSign;\n\n const signPermit = usingPermit2 ? signPermit2 : signPermit1;\n\n const signPermitMut: PermitMut = usingPermit2\n ? {\n ...signPermit2Mut,\n signPermit: signPermit2Mut.signPermit2,\n signPermitAsync: async (params) => {\n const result = await signPermit2Mut.signPermit2Async(params);\n return {\n signature: result.signature,\n permitEncodedArgs: result.permit2TransferFromEncodedArgs,\n signedPermitData: result.signedPermitData,\n };\n },\n encodePermitArgs: signPermit2Mut.encodePermitArgs,\n permitType: \"permit2TransferFrom\",\n }\n : {\n ...signPermit1Mut,\n signPermit: signPermit1Mut.signPermit1,\n signPermitAsync: async (params) => {\n const result = await signPermit1Mut.signPermit1Async(params);\n return {\n signature: result.signature,\n permitEncodedArgs: result.permit1EncodedArgs,\n signedPermitData: result.signedPermitData,\n };\n },\n encodePermitArgs: signPermit1Mut.encodePermitArgs,\n permitType: \"permit1\",\n };\n\n const permitType = !permitsEnabled\n ? null\n : usingPermit2\n ? \"permit2TransferFrom\"\n : \"permit1\";\n\n return {\n signPermit,\n signPermitMut,\n permit1: signPermit1Res,\n permit2: signPermit2Res,\n permitType,\n };\n}\n\n///// mark nonce as used //////\n\ntype SignedPermitData =\n | Permit1Input\n | DaiPermitInput\n | (Permit2Input & { owner: Address });\n\ntype UseMarkPermit1Or2NonceAsUsedResult = {\n markNonceAsUsed: (signedPermitData: SignedPermitData) => void;\n clearNonce: (signedPermitData: SignedPermitData) => void;\n};\n\nexport function useMarkPermit1Or2NonceAsUsed({\n chainId,\n}: {\n chainId: SupportedChainId;\n}) {\n const permit1NonceUsedMarker = useMarkPermit1NonceAsUsed({\n chainId,\n });\n\n const permit2NonceUsedMarker = useMarkPermit2NonceAsUsed();\n\n const markNonceAsUsed: UseMarkPermit1Or2NonceAsUsedResult[\"markNonceAsUsed\"] =\n (signedPermitData) => {\n if (signedPermitData.type === \"permit2\") {\n return permit2NonceUsedMarker.markNonceAsUsed(signedPermitData);\n } else {\n return permit1NonceUsedMarker.markNonceAsUsed(signedPermitData);\n }\n };\n\n const clearNonce: UseMarkPermit1Or2NonceAsUsedResult[\"clearNonce\"] = (\n signedPermitData\n ) => {\n if (signedPermitData.type !== \"permit2\") {\n return permit1NonceUsedMarker.clearNonce(signedPermitData);\n }\n };\n\n return {\n markNonceAsUsed,\n clearNonce,\n };\n}\n"],"names":["useSignPermit1Or2","t0","$","_c","srcToken","chainId","allowance","logger","useLogger","permitsEnabled","needsApproval","t1","address","network","undefined","t2","t3","signature","log","error","t4","allowanceToSet","spender","token","value","enabled","onSuccess","onError","signPermit1Mut","useSignTokenPermit1","t5","t6","t7","signature_0","error_0","t8","signPermit2Mut","useSignTokenPermit2TransferFrom","tokensMap","useTokensByAddress","t9","toLowerCase","tokenObject","t10","isError","isPending","isPermitReadyToSign","isPermitSupported","isSuccess","permitFetchingState","permitSigningState","amountToPermit","isLoadingPermitData","isSigningPermit","isPermitSigned","permitType","signPermit1","t11","signPermit2","t12","type","signPermit1Res","t13","variant","signPermit2Res","usingPermit2","signPermit","t14","signPermitAsync","params","result","signPermit2Async","permitEncodedArgs","permit2TransferFromEncodedArgs","signedPermitData","encodePermitArgs","params_0","result_0","signPermit1Async","permit1EncodedArgs","signPermitMut","t15","permit1","permit2","useMarkPermit1Or2NonceAsUsed","permit1NonceUsedMarker","useMarkPermit1NonceAsUsed","permit2NonceUsedMarker","useMarkPermit2NonceAsUsed","markNonceAsUsed","signedPermitData_0","clearNonce"],"mappings":";;;;;;AAsFO,SAAAA,kBAAAC,EAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAA2B,EAAA,MAAA;AAAA,IAAAC,QAAAA;AAAAA,IAAAC,OAAAA;AAAAA,IAAAC;AAAAA,GAAA,GAAAL,EAAAA;AAKhC,EAAA,MAAAM,MAAAA,GAAeC,UAAU,gBAAgB,CAAA;AACzC,EAAA,MAAAC,iBAAuBH,SAAAA,CAASI,aAAAA;AAAe,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAT,EAAA,CAAA,CAAA,KAAAG,WAAAH,CAAAA,QAAAE,QAAAA,EAAA;AAGtCO,IAAAA,EAAAA,GAAAP,QAAAA,GAAA;AAAA,MAAAQ,OAAAA,EAEQR,QAAAA;AAAAA,MAAQS,OAAAA,EACRR;AAAAA,KAEH,GALLS,MAAAA;AAKMZ,IAAAA,CAAAA,MAAAG,OAAAA;AAAAH,IAAAA,CAAAA,MAAAE,QAAAA;AAAAF,IAAAA,CAAAA,MAAAS,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAT,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAa,EAAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAd,CAAAA,QAAAK,MAAAA,EAAA;AAIFQ,IAAAA,EAAAA,GAAAE,CAAAA,SAAAA,KAAA;AACTV,MAAAA,MAAAA,CAAMW,GAAAA,CAAK,qBAAqBD,SAAS,CAAA;AAAA,IAAC,CAAA;AAEnCD,IAAAA,EAAAA,GAAAG,CAAAA,KAAAA,KAAA;AACPZ,MAAAA,MAAAA,CAAMY,KAAAA,CAAO,iBAAiBA,KAAK,CAAA;AAAA,IAAC,CAAA;AACrCjB,IAAAA,CAAAA,MAAAK,MAAAA;AAAAL,IAAAA,CAAAA,MAAAa,EAAAA;AAAAb,IAAAA,CAAAA,MAAAc,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAD,IAAAA,EAAAA,GAAAb,EAAA,CAAA,CAAA;AAAAc,IAAAA,EAAAA,GAAAd,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAkB,EAAAA;AAAA,EAAA,IAAAlB,CAAAA,CAAA,CAAA,CAAA,KAAAI,SAAAA,CAAAe,cAAAA,IAAAnB,EAAA,CAAA,CAAA,KAAAI,SAAAA,CAAAgB,OAAAA,IAAApB,CAAAA,QAAAO,cAAAA,IAAAP,CAAAA,CAAA,CAAA,CAAA,KAAAS,EAAAA,IAAAT,CAAAA,CAAA,EAAA,CAAA,KAAAa,EAAAA,IAAAb,CAAAA,CAAA,EAAA,CAAA,KAAAc,EAAAA,EAAA;AAfwCI,IAAAA,EAAAA,GAAA;AAAA,MAAAG,KAAAA,EAClCZ,EAAAA;AAAAA,MAKMa,OACNlB,SAAAA,CAASe,cAAAA;AAAAA,MAAeC,SACtBhB,SAAAA,CAASgB,OAAAA;AAAAA,MAAQG,OAAAA,EACjBhB,cAAAA;AAAAA,MAAciB,SAAAA,EACZX,EAAAA;AAAAA,MAEVY,OAAAA,EACQX;AAAAA,KAGX;AAACd,IAAAA,CAAAA,CAAA,CAAA,IAAAI,SAAAA,CAAAe,cAAAA;AAAAnB,IAAAA,CAAAA,CAAA,CAAA,IAAAI,SAAAA,CAAAgB,OAAAA;AAAApB,IAAAA,CAAAA,MAAAO,cAAAA;AAAAP,IAAAA,CAAAA,MAAAS,EAAAA;AAAAT,IAAAA,CAAAA,OAAAa,EAAAA;AAAAb,IAAAA,CAAAA,OAAAc,EAAAA;AAAAd,IAAAA,CAAAA,OAAAkB,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAlB,EAAA,EAAA,CAAA;AAAA,EAAA;AAhBD,EAAA,MAAA0B,cAAAA,GAAuBC,oBAAoBT,EAgB1C,CAAA;AAAE,EAAA,IAAAU,EAAAA;AAAA,EAAA,IAAA5B,EAAA,EAAA,CAAA,KAAAG,WAAAH,CAAAA,SAAAE,QAAAA,EAAA;AAGM0B,IAAAA,EAAAA,GAAA1B,QAAAA,GAAA;AAAA,MAAAQ,OAAAA,EAEQR,QAAAA;AAAAA,MAAQS,OAAAA,EACRR;AAAAA,KAEH,GALLS,MAAAA;AAKMZ,IAAAA,CAAAA,OAAAG,OAAAA;AAAAH,IAAAA,CAAAA,OAAAE,QAAAA;AAAAF,IAAAA,CAAAA,OAAA4B,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAA5B,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAA6B,EAAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAA9B,CAAAA,SAAAK,MAAAA,EAAA;AAIFwB,IAAAA,EAAAA,GAAAE,CAAAA,WAAAA,KAAA;AACT1B,MAAAA,MAAAA,CAAMW,GAAAA,CAAK,qBAAqBD,WAAS,CAAA;AAAA,IAAC,CAAA;AAEnCe,IAAAA,EAAAA,GAAAE,CAAAA,OAAAA,KAAA;AACP3B,MAAAA,MAAAA,CAAMY,KAAAA,CAAO,iBAAiBA,OAAK,CAAA;AAAA,IAAC,CAAA;AACrCjB,IAAAA,CAAAA,OAAAK,MAAAA;AAAAL,IAAAA,CAAAA,OAAA6B,EAAAA;AAAA7B,IAAAA,CAAAA,OAAA8B,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAD,IAAAA,EAAAA,GAAA7B,EAAA,EAAA,CAAA;AAAA8B,IAAAA,EAAAA,GAAA9B,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAiC,EAAAA;AAAA,EAAA,IAAAjC,CAAAA,CAAA,EAAA,CAAA,KAAAI,SAAAA,CAAAe,cAAAA,IAAAnB,EAAA,EAAA,CAAA,KAAAI,SAAAA,CAAAgB,OAAAA,IAAApB,CAAAA,SAAAO,cAAAA,IAAAP,CAAAA,CAAA,EAAA,CAAA,KAAA4B,EAAAA,IAAA5B,CAAAA,CAAA,EAAA,CAAA,KAAA6B,EAAAA,IAAA7B,CAAAA,CAAA,EAAA,CAAA,KAAA8B,EAAAA,EAAA;AAfoDG,IAAAA,EAAAA,GAAA;AAAA,MAAAZ,KAAAA,EAC9CO,EAAAA;AAAAA,MAKMN,OACNlB,SAAAA,CAASe,cAAAA;AAAAA,MAAeC,SACtBhB,SAAAA,CAASgB,OAAAA;AAAAA,MAAQG,OAAAA,EACjBhB,cAAAA;AAAAA,MAAciB,SAAAA,EACZK,EAAAA;AAAAA,MAEVJ,OAAAA,EACQK;AAAAA,KAGX;AAAC9B,IAAAA,CAAAA,CAAA,EAAA,IAAAI,SAAAA,CAAAe,cAAAA;AAAAnB,IAAAA,CAAAA,CAAA,EAAA,IAAAI,SAAAA,CAAAgB,OAAAA;AAAApB,IAAAA,CAAAA,OAAAO,cAAAA;AAAAP,IAAAA,CAAAA,OAAA4B,EAAAA;AAAA5B,IAAAA,CAAAA,OAAA6B,EAAAA;AAAA7B,IAAAA,CAAAA,OAAA8B,EAAAA;AAAA9B,IAAAA,CAAAA,OAAAiC,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAjC,EAAA,EAAA,CAAA;AAAA,EAAA;AAhBD,EAAA,MAAAkC,cAAAA,GAAuBC,gCAAgCF,EAgBtD,CAAA;AAED,EAAA,MAAAG,SAAAA,GAAkBC,mBAAmBlC,OAAO,CAAA;AAAE,EAAA,IAAAmC,EAAAA;AAAA,EAAA,IAAAtC,EAAA,EAAA,CAAA,KAAAE,YAAAF,CAAAA,SAAAoC,SAAAA,EAAA;AAC1BE,IAAAA,EAAAA,GAAApC,QAAAA,GAAWkC,SAAAA,CAAUlC,QAAAA,CAAQqC,WAAAA,EAAc,CAAA,GAA3C3B,MAAAA;AAAwDZ,IAAAA,CAAAA,OAAAE,QAAAA;AAAAF,IAAAA,CAAAA,OAAAoC,SAAAA;AAAApC,IAAAA,CAAAA,OAAAsC,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAtC,EAAA,EAAA,CAAA;AAAA,EAAA;AAA5E,EAAA,MAAAwC,WAAAA,GAAoBF,EAAAA;AAAyD,EAAA,IAAAG,GAAAA;AAAA,EAAA,IAAAzC,CAAAA,CAAA,EAAA,CAAA,KAAAI,SAAAA,CAAAe,kBAAAnB,CAAAA,CAAA,EAAA,CAAA,KAAAI,SAAAA,CAAAgB,WAAApB,CAAAA,CAAA,EAAA,CAAA,KAAAG,OAAAA,IAAAH,EAAA,EAAA,CAAA,KAAA0B,cAAAA,CAAAT,KAAAA,IAAAjB,UAAA0B,cAAAA,CAAAgB,OAAAA,IAAA1C,UAAA0B,cAAAA,CAAAiB,SAAAA,IAAA3C,UAAA0B,cAAAA,CAAAkB,mBAAAA,IAAA5C,UAAA0B,cAAAA,CAAAmB,iBAAAA,IAAA7C,CAAAA,CAAA,EAAA,CAAA,KAAA0B,cAAAA,CAAAoB,aAAA9C,CAAAA,CAAA,EAAA,CAAA,KAAA0B,cAAAA,CAAAqB,oBAAAJ,SAAAA,IAAA3C,CAAAA,SAAA0B,eAAAsB,kBAAAA,CAAAL,SAAAA,IAAA3C,CAAAA,SAAA0B,cAAAA,CAAAsB,kBAAAA,CAAAF,SAAAA,IAAA9C,CAAAA,CAAA,EAAA,CAAA,KAAA0B,cAAAA,CAAAX,SAAAA,IAAAf,CAAAA,CAAA,EAAA,CAAA,KAAAE,QAAAA,IAAAF,CAAAA,SAAAwC,WAAAA,EAAA;AAEnCC,IAAAA,GAAAA,GAAA;AAAA,MAAApB,KAAAA,EACjCnB,QAAAA;AAAAA,MAAQsC,WAAAA;AAAAA,MAAArC,OAAAA;AAAAA,MAAA0C,mBAGInB,cAAAA,CAAcmB,iBAAAA;AAAAA,MAAkBD,qBAC9BlB,cAAAA,CAAckB,mBAAAA;AAAAA,MAAoBK,gBACvC7C,SAAAA,CAASe,cAAAA;AAAAA,MAAeC,SAC/BhB,SAAAA,CAASgB,OAAAA;AAAAA,MAAQ8B,mBAAAA,EACLxB,eAAcqB,mBAAAA,CAAoBJ,SAAAA;AAAAA,MAAUQ,eAAAA,EAChDzB,eAAcsB,kBAAAA,CAAmBL,SAAAA;AAAAA,MAAUS,cAAAA,EAC5C1B,eAAcsB,kBAAAA,CAAmBF,SAAAA;AAAAA,MAAU/B,WAChDW,cAAAA,CAAcX,SAAAA;AAAAA,MAAU4B,WACxBjB,cAAAA,CAAciB,SAAAA;AAAAA,MAAUG,WACxBpB,cAAAA,CAAcoB,SAAAA;AAAAA,MAAUJ,SAC1BhB,cAAAA,CAAcgB,OAAAA;AAAAA,MAAQzB,OACxBS,cAAAA,CAAcT,KAAAA;AAAAA,MAAMoC,UAAAA,EACf;AAAA,KACd;AAACrD,IAAAA,CAAAA,CAAA,EAAA,IAAAI,SAAAA,CAAAe,cAAAA;AAAAnB,IAAAA,CAAAA,CAAA,EAAA,IAAAI,SAAAA,CAAAgB,OAAAA;AAAApB,IAAAA,CAAAA,OAAAG,OAAAA;AAAAH,IAAAA,CAAAA,CAAA,EAAA,IAAA0B,cAAAA,CAAAT,KAAAA;AAAAjB,IAAAA,CAAAA,CAAA,EAAA,IAAA0B,cAAAA,CAAAgB,OAAAA;AAAA1C,IAAAA,CAAAA,CAAA,EAAA,IAAA0B,cAAAA,CAAAiB,SAAAA;AAAA3C,IAAAA,CAAAA,CAAA,EAAA,IAAA0B,cAAAA,CAAAkB,mBAAAA;AAAA5C,IAAAA,CAAAA,CAAA,EAAA,IAAA0B,cAAAA,CAAAmB,iBAAAA;AAAA7C,IAAAA,CAAAA,CAAA,EAAA,IAAA0B,cAAAA,CAAAoB,SAAAA;AAAA9C,IAAAA,CAAAA,CAAA,EAAA,CAAA,GAAA0B,cAAAA,CAAAqB,mBAAAA,CAAAJ,SAAAA;AAAA3C,IAAAA,CAAAA,CAAA,EAAA,CAAA,GAAA0B,cAAAA,CAAAsB,kBAAAA,CAAAL,SAAAA;AAAA3C,IAAAA,CAAAA,CAAA,EAAA,CAAA,GAAA0B,cAAAA,CAAAsB,kBAAAA,CAAAF,SAAAA;AAAA9C,IAAAA,CAAAA,CAAA,EAAA,IAAA0B,cAAAA,CAAAX,SAAAA;AAAAf,IAAAA,CAAAA,OAAAE,QAAAA;AAAAF,IAAAA,CAAAA,OAAAwC,WAAAA;AAAAxC,IAAAA,CAAAA,OAAAyC,GAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,GAAAA,GAAAzC,EAAA,EAAA,CAAA;AAAA,EAAA;AAjBD,EAAA,MAAAsD,WAAAA,GAA0Cb,GAAAA;AAiBxC,EAAA,IAAAc,GAAAA;AAAA,EAAA,IAAAvD,CAAAA,CAAA,EAAA,CAAA,KAAAI,SAAAA,CAAAe,kBAAAnB,CAAAA,CAAA,EAAA,CAAA,KAAAI,SAAAA,CAAAgB,WAAApB,CAAAA,CAAA,EAAA,CAAA,KAAAG,OAAAA,IAAAH,EAAA,EAAA,CAAA,KAAAkC,cAAAA,CAAAjB,KAAAA,IAAAjB,UAAAkC,cAAAA,CAAAQ,OAAAA,IAAA1C,UAAAkC,cAAAA,CAAAS,SAAAA,IAAA3C,UAAAkC,cAAAA,CAAAU,mBAAAA,IAAA5C,UAAAkC,cAAAA,CAAAW,iBAAAA,IAAA7C,CAAAA,CAAA,EAAA,CAAA,KAAAkC,cAAAA,CAAAY,aAAA9C,CAAAA,CAAA,EAAA,CAAA,KAAAkC,cAAAA,CAAAa,oBAAAJ,SAAAA,IAAA3C,CAAAA,SAAAkC,eAAAc,kBAAAA,CAAAL,SAAAA,IAAA3C,CAAAA,SAAAkC,cAAAA,CAAAc,kBAAAA,CAAAF,SAAAA,IAAA9C,CAAAA,CAAA,EAAA,CAAA,KAAAkC,cAAAA,CAAAnB,SAAAA,IAAAf,CAAAA,CAAA,EAAA,CAAA,KAAAE,QAAAA,IAAAF,CAAAA,SAAAwC,WAAAA,EAAA;AAEwCe,IAAAA,GAAAA,GAAA;AAAA,MAAAlC,KAAAA,EACjCnB,QAAAA;AAAAA,MAAQsC,WAAAA;AAAAA,MAAArC,OAAAA;AAAAA,MAAA0C,mBAGIX,cAAAA,CAAcW,iBAAAA;AAAAA,MAAkBD,qBAC9BV,cAAAA,CAAcU,mBAAAA;AAAAA,MAAoBK,gBACvC7C,SAAAA,CAASe,cAAAA;AAAAA,MAAeC,SAC/BhB,SAAAA,CAASgB,OAAAA;AAAAA,MAAQ8B,mBAAAA,EACLhB,eAAca,mBAAAA,CAAoBJ,SAAAA;AAAAA,MAAUQ,eAAAA,EAChDjB,eAAcc,kBAAAA,CAAmBL,SAAAA;AAAAA,MAAUS,cAAAA,EAC5ClB,eAAcc,kBAAAA,CAAmBF,SAAAA;AAAAA,MAAU/B,WAChDmB,cAAAA,CAAcnB,SAAAA;AAAAA,MAAU4B,WACxBT,cAAAA,CAAcS,SAAAA;AAAAA,MAAUG,WACxBZ,cAAAA,CAAcY,SAAAA;AAAAA,MAAUJ,SAC1BR,cAAAA,CAAcQ,OAAAA;AAAAA,MAAQzB,OACxBiB,cAAAA,CAAcjB,KAAAA;AAAAA,MAAMoC,UAAAA,EACf;AAAA,KACd;AAACrD,IAAAA,CAAAA,CAAA,EAAA,IAAAI,SAAAA,CAAAe,cAAAA;AAAAnB,IAAAA,CAAAA,CAAA,EAAA,IAAAI,SAAAA,CAAAgB,OAAAA;AAAApB,IAAAA,CAAAA,OAAAG,OAAAA;AAAAH,IAAAA,CAAAA,CAAA,EAAA,IAAAkC,cAAAA,CAAAjB,KAAAA;AAAAjB,IAAAA,CAAAA,CAAA,EAAA,IAAAkC,cAAAA,CAAAQ,OAAAA;AAAA1C,IAAAA,CAAAA,CAAA,EAAA,IAAAkC,cAAAA,CAAAS,SAAAA;AAAA3C,IAAAA,CAAAA,CAAA,EAAA,IAAAkC,cAAAA,CAAAU,mBAAAA;AAAA5C,IAAAA,CAAAA,CAAA,EAAA,IAAAkC,cAAAA,CAAAW,iBAAAA;AAAA7C,IAAAA,CAAAA,CAAA,EAAA,IAAAkC,cAAAA,CAAAY,SAAAA;AAAA9C,IAAAA,CAAAA,CAAA,EAAA,CAAA,GAAAkC,cAAAA,CAAAa,mBAAAA,CAAAJ,SAAAA;AAAA3C,IAAAA,CAAAA,CAAA,EAAA,CAAA,GAAAkC,cAAAA,CAAAc,kBAAAA,CAAAL,SAAAA;AAAA3C,IAAAA,CAAAA,CAAA,EAAA,CAAA,GAAAkC,cAAAA,CAAAc,kBAAAA,CAAAF,SAAAA;AAAA9C,IAAAA,CAAAA,CAAA,EAAA,IAAAkC,cAAAA,CAAAnB,SAAAA;AAAAf,IAAAA,CAAAA,OAAAE,QAAAA;AAAAF,IAAAA,CAAAA,OAAAwC,WAAAA;AAAAxC,IAAAA,CAAAA,OAAAuD,GAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,GAAAA,GAAAvD,EAAA,EAAA,CAAA;AAAA,EAAA;AAjBD,EAAA,MAAAwD,WAAAA,GAA0CD,GAAAA;AAiBxC,EAAA,IAAAE,GAAAA;AAAA,EAAA,IAAAzD,EAAA,EAAA,CAAA,KAAAsD,eAAAtD,CAAAA,SAAA0B,cAAAA,EAAA;AAE4C+B,IAAAA,GAAAA,GAAA;AAAA,MAAAC,IAAAA,EACtC,SAAA;AAAA,MAASJ,WAAAA;AAAAA,MAAA5B;AAAAA,KAGjB;AAAC1B,IAAAA,CAAAA,OAAAsD,WAAAA;AAAAtD,IAAAA,CAAAA,OAAA0B,cAAAA;AAAA1B,IAAAA,CAAAA,OAAAyD,GAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,GAAAA,GAAAzD,EAAA,EAAA,CAAA;AAAA,EAAA;AAJD,EAAA,MAAA2D,cAAAA,GAA8CF,GAAAA;AAI5C,EAAA,IAAAG,GAAAA;AAAA,EAAA,IAAA5D,EAAA,EAAA,CAAA,KAAAwD,eAAAxD,CAAAA,SAAAkC,cAAAA,EAAA;AAE4C0B,IAAAA,GAAAA,GAAA;AAAA,MAAAF,IAAAA,EACtC,SAAA;AAAA,MAASG,OAAAA,EACN,cAAA;AAAA,MAAcL,WAAAA;AAAAA,MAAAtB;AAAAA,KAGzB;AAAClC,IAAAA,CAAAA,OAAAwD,WAAAA;AAAAxD,IAAAA,CAAAA,OAAAkC,cAAAA;AAAAlC,IAAAA,CAAAA,OAAA4D,GAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,GAAAA,GAAA5D,EAAA,EAAA,CAAA;AAAA,EAAA;AALD,EAAA,MAAA8D,cAAAA,GAA8CF,GAAAA;AAO9C,EAAA,MAAAG,YAAAA,GACExD,cAAAA,IACAiD,WAAAA,CAAWX,iBAAAA,IACXW,WAAAA,CAAWZ,mBAAAA;AAEb,EAAA,MAAAoB,UAAAA,GAAmBD,eAAAP,WAAAA,GAAAF,WAAAA;AAAyC,EAAA,IAAAW,GAAAA;AAAA,EAAA,IAAAjE,CAAAA,CAAA,EAAA,CAAA,KAAA0B,cAAAA,IAAA1B,CAAAA,SAAAkC,cAAAA,IAAAlC,CAAAA,CAAA,EAAA,CAAA,KAAA+D,YAAAA,EAAA;AAE3BE,IAAAA,GAAAA,GAAAF,YAAAA,GAAA;AAAA,MAAA,GAExB7B,cAAAA;AAAAA,MAAc8B,YACL9B,cAAAA,CAAcsB,WAAAA;AAAAA,MAAYU,eAAAA,EACrB,OAAAC,MAAAA,KAAA;AACf,QAAA,MAAAC,MAAAA,GAAe,MAAMlC,cAAAA,CAAcmC,gBAAAA,CAAkBF,MAAM,CAAA;AAAE,QAAA,OACtD;AAAA,UAAApD,WACMqD,MAAAA,CAAMrD,SAAAA;AAAAA,UAAUuD,mBACRF,MAAAA,CAAMG,8BAAAA;AAAAA,UAA+BC,kBACtCJ,MAAAA,CAAMI;AAAAA,SAC1B;AAAA,MAAC,CAAA;AAAA,MACFC,kBACiBvC,cAAAA,CAAcuC,gBAAAA;AAAAA,MAAiBpB,UAAAA,EACrC;AAAA,KAed,GA5B6B;AAAA,MAAA,GAgBxB3B,cAAAA;AAAAA,MAAcsC,YACLtC,cAAAA,CAAc4B,WAAAA;AAAAA,MAAYY,eAAAA,EACrB,OAAAQ,QAAAA,KAAA;AACf,QAAA,MAAAC,QAAAA,GAAe,MAAMjD,cAAAA,CAAckD,gBAAAA,CAAkBT,QAAM,CAAA;AAAE,QAAA,OACtD;AAAA,UAAApD,WACMqD,QAAAA,CAAMrD,SAAAA;AAAAA,UAAUuD,mBACRF,QAAAA,CAAMS,kBAAAA;AAAAA,UAAmBL,kBAC1BJ,QAAAA,CAAMI;AAAAA,SAC1B;AAAA,MAAC,CAAA;AAAA,MACFC,kBACiB/C,cAAAA,CAAc+C,gBAAAA;AAAAA,MAAiBpB,UAAAA,EACrC;AAAA,KACd;AAACrD,IAAAA,CAAAA,OAAA0B,cAAAA;AAAA1B,IAAAA,CAAAA,OAAAkC,cAAAA;AAAAlC,IAAAA,CAAAA,OAAA+D,YAAAA;AAAA/D,IAAAA,CAAAA,OAAAiE,GAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,GAAAA,GAAAjE,EAAA,EAAA,CAAA;AAAA,EAAA;AA5BL,EAAA,MAAA8E,aAAAA,GAAiCb,GAAAA;AA8BjC,EAAA,MAAAZ,UAAAA,GAAmB,CAAC9C,cAAAA,GAAD,IAAA,GAEfwD,eAAA,qBAAA,GAAA,SAAA;AAEY,EAAA,IAAAgB,GAAAA;AAAA,EAAA,IAAA/E,EAAA,EAAA,CAAA,KAAAqD,cAAArD,CAAAA,CAAA,EAAA,MAAAgE,UAAAA,IAAAhE,CAAAA,CAAA,EAAA,CAAA,KAAA2D,cAAAA,IAAA3D,EAAA,EAAA,CAAA,KAAA8D,kBAAA9D,CAAAA,SAAA8E,aAAAA,EAAA;AAETC,IAAAA,GAAAA,GAAA;AAAA,MAAAf,UAAAA;AAAAA,MAAAc,aAAAA;AAAAA,MAAAE,OAAAA,EAGIrB,cAAAA;AAAAA,MAAcsB,OAAAA,EACdnB,cAAAA;AAAAA,MAAcT;AAAAA,KAEzB;AAACrD,IAAAA,CAAAA,OAAAqD,UAAAA;AAAArD,IAAAA,CAAAA,OAAAgE,UAAAA;AAAAhE,IAAAA,CAAAA,OAAA2D,cAAAA;AAAA3D,IAAAA,CAAAA,OAAA8D,cAAAA;AAAA9D,IAAAA,CAAAA,OAAA8E,aAAAA;AAAA9E,IAAAA,CAAAA,OAAA+E,GAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,GAAAA,GAAA/E,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OANM+E,GAAAA;AAMN;AAeI,SAAAG,6BAAAnF,EAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAAsC,EAAA,MAAA;AAAA,IAAAE;AAAAA,GAAA,GAAAJ,EAAAA;AAI5C,EAAA,IAAAU,EAAAA;AAAA,EAAA,IAAAT,CAAAA,QAAAG,OAAAA,EAAA;AAC0DM,IAAAA,EAAAA,GAAA;AAAA,MAAAN;AAAAA,KAEzD;AAACH,IAAAA,CAAAA,MAAAG,OAAAA;AAAAH,IAAAA,CAAAA,MAAAS,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAT,EAAA,CAAA,CAAA;AAAA,EAAA;AAFD,EAAA,MAAAmF,sBAAAA,GAA+BC,0BAA0B3E,EAExD,CAAA;AAED,EAAA,MAAA4E,yBAA+BC,yBAAAA,EAA0B;AAAE,EAAA,IAAAzE,EAAAA;AAAA,EAAA,IAAAb,EAAA,CAAA,CAAA,KAAAmF,0BAAAnF,CAAAA,QAAAqF,sBAAAA,EAAA;AAGzDxE,IAAAA,EAAAA,GAAA2D,CAAAA,gBAAAA,KAAA;AACE,MAAA,IAAIA,gBAAAA,CAAgBd,SAAU,SAAA,EAAS;AAAA,QAAA,OAC9B2B,sBAAAA,CAAsBE,gBAAiBf,gBAAgB,CAAA;AAAA,MAAC,CAAA,MAAA;AAAA,QAAA,OAExDW,sBAAAA,CAAsBI,gBAAiBf,gBAAgB,CAAA;AAAA,MAAC;AAAA,IAChE,CAAA;AACFxE,IAAAA,CAAAA,MAAAmF,sBAAAA;AAAAnF,IAAAA,CAAAA,MAAAqF,sBAAAA;AAAArF,IAAAA,CAAAA,MAAAa,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAb,EAAA,CAAA,CAAA;AAAA,EAAA;AAPH,EAAA,MAAAuF,eAAAA,GACE1E,EAAAA;AAME,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAd,CAAAA,QAAAmF,sBAAAA,EAAA;AAEiErE,IAAAA,EAAAA,GAAA0E,CAAAA,kBAAAA,KAAA;AAGnE,MAAA,IAAIhB,kBAAAA,CAAgBd,SAAU,SAAA,EAAS;AAAA,QAAA,OAC9ByB,sBAAAA,CAAsBM,WAAYjB,kBAAgB,CAAA;AAAA,MAAC;AAAA,IAC3D,CAAA;AACFxE,IAAAA,CAAAA,MAAAmF,sBAAAA;AAAAnF,IAAAA,CAAAA,MAAAc,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAd,EAAA,CAAA,CAAA;AAAA,EAAA;AAND,EAAA,MAAAyF,UAAAA,GAAqE3E,EAAAA;AAMnE,EAAA,IAAAI,EAAAA;AAAA,EAAA,IAAAlB,EAAA,CAAA,CAAA,KAAAyF,cAAAzF,CAAAA,QAAAuF,eAAAA,EAAA;AAEKrE,IAAAA,EAAAA,GAAA;AAAA,MAAAqE,eAAAA;AAAAA,MAAAE;AAAAA,KAGP;AAACzF,IAAAA,CAAAA,MAAAyF,UAAAA;AAAAzF,IAAAA,CAAAA,MAAAuF,eAAAA;AAAAvF,IAAAA,CAAAA,MAAAkB,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAlB,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAHMkB,EAAAA;AAGN;;;;"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { TradeFlowType, OrderTradeFlowType, SwapTradeFlowType } from './types';
|
|
2
2
|
export declare function isSwapTradeFlowType(tradeFlowType: TradeFlowType): tradeFlowType is SwapTradeFlowType;
|
|
3
3
|
export declare function isOrderTradeFlowType(tradeFlowType: TradeFlowType): tradeFlowType is OrderTradeFlowType;
|
|
4
|
+
export declare const depositWETHCalldata: `0x${string}`;
|
|
4
5
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/swap/tradeFlow/common/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/swap/tradeFlow/common/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAEjB,wBAAgB,mBAAmB,CACjC,aAAa,EAAE,aAAa,GAC3B,aAAa,IAAI,iBAAiB,CAEpC;AAED,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,aAAa,GAC3B,aAAa,IAAI,kBAAkB,CAMrC;AAaD,eAAO,MAAM,mBAAmB,eAI9B,CAAC"}
|
|
@@ -1,6 +1,21 @@
|
|
|
1
|
+
import { encodeFunctionData } from 'viem/utils';
|
|
2
|
+
|
|
1
3
|
function isOrderTradeFlowType(tradeFlowType) {
|
|
2
4
|
return tradeFlowType === "limitOrder" || tradeFlowType === "otcOrder" || tradeFlowType === "fillOtcOrder";
|
|
3
5
|
}
|
|
6
|
+
const WETHMinAbi = [{
|
|
7
|
+
inputs: [],
|
|
8
|
+
name: "deposit",
|
|
9
|
+
outputs: [],
|
|
10
|
+
payable: true,
|
|
11
|
+
stateMutability: "payable",
|
|
12
|
+
type: "function"
|
|
13
|
+
}];
|
|
14
|
+
const depositWETHCalldata = encodeFunctionData({
|
|
15
|
+
abi: WETHMinAbi,
|
|
16
|
+
functionName: "deposit",
|
|
17
|
+
args: []
|
|
18
|
+
});
|
|
4
19
|
|
|
5
|
-
export { isOrderTradeFlowType };
|
|
20
|
+
export { depositWETHCalldata, isOrderTradeFlowType };
|
|
6
21
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../../../src/hooks/swap/tradeFlow/common/utils.ts"],"sourcesContent":["import type {\n TradeFlowType,\n OrderTradeFlowType,\n SwapTradeFlowType,\n} from \"./types\";\n\nexport function isSwapTradeFlowType(\n tradeFlowType: TradeFlowType\n): tradeFlowType is SwapTradeFlowType {\n return tradeFlowType === \"marketSwap\" || tradeFlowType === \"deltaOrder\";\n}\n\nexport function isOrderTradeFlowType(\n tradeFlowType: TradeFlowType\n): tradeFlowType is OrderTradeFlowType {\n return (\n tradeFlowType === \"limitOrder\" ||\n tradeFlowType === \"otcOrder\" ||\n tradeFlowType === \"fillOtcOrder\"\n );\n}\n"],"names":["isOrderTradeFlowType","tradeFlowType"],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../../src/hooks/swap/tradeFlow/common/utils.ts"],"sourcesContent":["import { encodeFunctionData } from \"viem/utils\";\nimport type {\n TradeFlowType,\n OrderTradeFlowType,\n SwapTradeFlowType,\n} from \"./types\";\n\nexport function isSwapTradeFlowType(\n tradeFlowType: TradeFlowType\n): tradeFlowType is SwapTradeFlowType {\n return tradeFlowType === \"marketSwap\" || tradeFlowType === \"deltaOrder\";\n}\n\nexport function isOrderTradeFlowType(\n tradeFlowType: TradeFlowType\n): tradeFlowType is OrderTradeFlowType {\n return (\n tradeFlowType === \"limitOrder\" ||\n tradeFlowType === \"otcOrder\" ||\n tradeFlowType === \"fillOtcOrder\"\n );\n}\n\nconst WETHMinAbi = [\n {\n inputs: [],\n name: \"deposit\",\n outputs: [],\n payable: true,\n stateMutability: \"payable\",\n type: \"function\",\n },\n] as const;\n\nexport const depositWETHCalldata = encodeFunctionData({\n abi: WETHMinAbi,\n functionName: \"deposit\",\n args: [],\n});\n"],"names":["isOrderTradeFlowType","tradeFlowType","WETHMinAbi","inputs","name","outputs","payable","stateMutability","type","depositWETHCalldata","encodeFunctionData","abi","functionName","args"],"mappings":";;AAaO,SAASA,qBACdC,aAAAA,EACqC;AACrC,EAAA,OACEA,aAAAA,KAAkB,YAAA,IAClBA,aAAAA,KAAkB,UAAA,IAClBA,aAAAA,KAAkB,cAAA;AAEtB;AAEA,MAAMC,aAAa,CACjB;AAAA,EACEC,QAAQ,EAAA;AAAA,EACRC,IAAAA,EAAM,SAAA;AAAA,EACNC,SAAS,EAAA;AAAA,EACTC,OAAAA,EAAS,IAAA;AAAA,EACTC,eAAAA,EAAiB,SAAA;AAAA,EACjBC,IAAAA,EAAM;AACR,CAAC,CAAA;AAGI,MAAMC,sBAAsBC,kBAAAA,CAAmB;AAAA,EACpDC,GAAAA,EAAKT,UAAAA;AAAAA,EACLU,YAAAA,EAAc,SAAA;AAAA,EACdC,MAAM;AACR,CAAC;;;;"}
|