@velora-dex/widget 0.0.15 → 0.0.16
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/README.md +91 -29
- package/dist/assets/circle-check.svg.js +12 -0
- package/dist/assets/circle-check.svg.js.map +1 -0
- package/dist/assets/circle-exclamation.svg.js +12 -0
- package/dist/assets/circle-exclamation.svg.js.map +1 -0
- package/dist/assets/copy.svg.js +12 -0
- package/dist/assets/copy.svg.js.map +1 -0
- package/dist/assets/external-url.svg.js +12 -0
- package/dist/assets/external-url.svg.js.map +1 -0
- package/dist/assets/logout.svg.js +12 -0
- package/dist/assets/logout.svg.js.map +1 -0
- package/dist/assets/spinner.svg.js.map +1 -0
- package/dist/assets/wS.svg.js +12 -0
- package/dist/assets/wS.svg.js.map +1 -0
- package/dist/assets/wS.svg2.js +4 -0
- package/dist/assets/wS.svg2.js.map +1 -0
- package/dist/components/ui/button.d.ts +1 -1
- package/dist/components/ui/button.js +1 -1
- package/dist/components/ui/button.js.map +1 -1
- package/dist/components/ui/card.js +1 -106
- package/dist/components/ui/card.js.map +1 -1
- package/dist/components/ui/dialog.js +2 -116
- package/dist/components/ui/dialog.js.map +1 -1
- package/dist/components/ui/drawer.d.ts +1 -1
- package/dist/components/ui/drawer.d.ts.map +1 -1
- package/dist/components/ui/drawer.js +2 -2
- package/dist/components/ui/drawer.js.map +1 -1
- package/dist/components/ui/dropdown-menu.js +3 -334
- package/dist/components/ui/dropdown-menu.js.map +1 -1
- package/dist/components/ui/progress.d.ts +13 -0
- package/dist/components/ui/progress.d.ts.map +1 -0
- package/dist/components/ui/progress.js +120 -0
- package/dist/components/ui/progress.js.map +1 -0
- package/dist/components/ui/sonner.d.ts.map +1 -1
- package/dist/components/ui/sonner.js +33 -9
- package/dist/components/ui/sonner.js.map +1 -1
- package/dist/components/ui/switch.d.ts +3 -1
- package/dist/components/ui/switch.d.ts.map +1 -1
- package/dist/components/ui/switch.js +30 -16
- package/dist/components/ui/switch.js.map +1 -1
- package/dist/components/ui/tooltip.d.ts.map +1 -1
- package/dist/components/ui/tooltip.js +15 -4
- package/dist/components/ui/tooltip.js.map +1 -1
- package/dist/components/web3/AccountButton.d.ts.map +1 -1
- package/dist/components/web3/AccountButton.js +98 -41
- package/dist/components/web3/AccountButton.js.map +1 -1
- package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.d.ts +2 -0
- package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.d.ts.map +1 -0
- package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.js +92 -0
- package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.js.map +1 -0
- package/dist/components/web3/ConnectWallets/index.js +1 -1
- package/dist/components/web3/ConnectWallets/index.js.map +1 -1
- package/dist/components/web3/ConnectedWallet/ConnectedWallet.d.ts +9 -0
- package/dist/components/web3/ConnectedWallet/ConnectedWallet.d.ts.map +1 -0
- package/dist/components/web3/ConnectedWallet/ConnectedWallet.js +211 -0
- package/dist/components/web3/ConnectedWallet/ConnectedWallet.js.map +1 -0
- package/dist/components/web3/providers.d.ts.map +1 -1
- package/dist/components/web3/providers.js +10 -6
- package/dist/components/web3/providers.js.map +1 -1
- package/dist/components/widget/AppHeader/AppHeader.d.ts.map +1 -1
- package/dist/components/widget/AppHeader/AppHeader.js +2 -1
- package/dist/components/widget/AppHeader/AppHeader.js.map +1 -1
- package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressDialog.js +126 -136
- package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressDialog.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListBody.d.ts.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListBody.js +2 -3
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListBody.js.map +1 -1
- package/dist/components/widget/Drawer/state/useDrawerControls.d.ts +7 -5
- package/dist/components/widget/Drawer/state/useDrawerControls.d.ts.map +1 -1
- package/dist/components/widget/Drawer/state/useDrawerControls.js +57 -46
- package/dist/components/widget/Drawer/state/useDrawerControls.js.map +1 -1
- package/dist/components/widget/Line/Line.d.ts +3 -1
- package/dist/components/widget/Line/Line.d.ts.map +1 -1
- package/dist/components/widget/Line/Line.js +22 -15
- package/dist/components/widget/Line/Line.js.map +1 -1
- package/dist/components/widget/NetworkIcon/NetworkIconSquare.d.ts.map +1 -1
- package/dist/components/widget/NetworkIcon/NetworkIconSquare.js +22 -20
- package/dist/components/widget/NetworkIcon/NetworkIconSquare.js.map +1 -1
- package/dist/components/widget/NetworkIcon/assets/sqr/sonic.svg.js +12 -0
- package/dist/components/widget/NetworkIcon/assets/sqr/sonic.svg.js.map +1 -0
- package/dist/components/widget/NetworkIcon/assets/sqr/unichain.svg.js +12 -0
- package/dist/components/widget/NetworkIcon/assets/sqr/unichain.svg.js.map +1 -0
- package/dist/components/widget/ReceiverAddress/ReceiverAddress.d.ts.map +1 -1
- package/dist/components/widget/ReceiverAddress/ReceiverAddress.js +61 -52
- package/dist/components/widget/ReceiverAddress/ReceiverAddress.js.map +1 -1
- package/dist/components/widget/SelectToken/SelectTokenButton.d.ts.map +1 -1
- package/dist/components/widget/SelectToken/SelectTokenButton.js +106 -88
- package/dist/components/widget/SelectToken/SelectTokenButton.js.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js +1 -1
- package/dist/components/widget/Toasts/CustomToast.d.ts +8 -0
- package/dist/components/widget/Toasts/CustomToast.d.ts.map +1 -0
- package/dist/components/widget/Toasts/CustomToast.js +222 -0
- package/dist/components/widget/Toasts/CustomToast.js.map +1 -0
- package/dist/components/widget/TokenInput/index.d.ts.map +1 -1
- package/dist/components/widget/TokenInput/index.js +122 -137
- package/dist/components/widget/TokenInput/index.js.map +1 -1
- package/dist/components/widget/TokenInput/types.d.ts +1 -0
- package/dist/components/widget/TokenInput/types.d.ts.map +1 -1
- package/dist/components/widget/TokenSwitcher/TokenSwitcher.js +1 -1
- package/dist/components/widget/TokenSwitcher/TokenSwitcher.js.map +1 -1
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.d.ts +2 -2
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js +20 -16
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.d.ts +2 -2
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.js +20 -16
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/Step.js +1 -1
- package/dist/components/widget/TradeOverview/Step.js.map +1 -1
- package/dist/components/widget/TradeOverview/Stepper.js +5 -40
- package/dist/components/widget/TradeOverview/Stepper.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/index.js +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/index.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeDetails.js +1 -1
- package/dist/components/widget/TradeOverview/TradeDetails.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeDetailsDisplay.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeDetailsDisplay.js +35 -6
- package/dist/components/widget/TradeOverview/TradeDetailsDisplay.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorDetails.d.ts +5 -0
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorDetails.d.ts.map +1 -0
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorDetails.js +55 -0
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorDetails.js.map +1 -0
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorFooter.d.ts +5 -0
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorFooter.d.ts.map +1 -0
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorFooter.js +43 -0
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorFooter.js.map +1 -0
- package/dist/components/widget/TradeOverview/TradeError/index.d.ts +6 -0
- package/dist/components/widget/TradeOverview/TradeError/index.d.ts.map +1 -0
- package/dist/components/widget/TradeOverview/TradeError/index.js +55 -0
- package/dist/components/widget/TradeOverview/TradeError/index.js.map +1 -0
- package/dist/components/widget/TradeOverview/TradeError/utils.d.ts +4 -0
- package/dist/components/widget/TradeOverview/TradeError/utils.d.ts.map +1 -0
- package/dist/components/widget/TradeOverview/TradeError/utils.js +30 -0
- package/dist/components/widget/TradeOverview/TradeError/utils.js.map +1 -0
- package/dist/components/widget/TradeOverview/TradeOverview.d.ts +3 -1
- package/dist/components/widget/TradeOverview/TradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverview.js +156 -101
- package/dist/components/widget/TradeOverview/TradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverviewHeader.js +1 -1
- package/dist/components/widget/TradeOverview/TradeOverviewHeader.js.map +1 -1
- package/dist/components/widget/TradeOverview/assets/1_approving.lottie.js +4 -0
- package/dist/components/widget/TradeOverview/assets/1_approving.lottie.js.map +1 -0
- package/dist/components/widget/TradeOverview/assets/2_in_progress.lottie.js +4 -0
- package/dist/components/widget/TradeOverview/assets/2_in_progress.lottie.js.map +1 -0
- package/dist/components/widget/TradeOverview/assets/3_executing_step.lottie.js +4 -0
- package/dist/components/widget/TradeOverview/assets/3_executing_step.lottie.js.map +1 -0
- package/dist/components/widget/TradeOverview/assets/4_complete_step.lottie.js +4 -0
- package/dist/components/widget/TradeOverview/assets/4_complete_step.lottie.js.map +1 -0
- package/dist/components/widget/TradeOverview/assets/5_error_step.lottie.js +4 -0
- package/dist/components/widget/TradeOverview/assets/5_error_step.lottie.js.map +1 -0
- package/dist/components/widget/TradeOverview/tradeFlowContext.d.ts +8 -3
- package/dist/components/widget/TradeOverview/tradeFlowContext.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/tradeFlowContext.js +17 -1
- package/dist/components/widget/TradeOverview/tradeFlowContext.js.map +1 -1
- package/dist/components/widget/TradeParameters/EIP1559Parameter.d.ts +2 -0
- package/dist/components/widget/TradeParameters/EIP1559Parameter.d.ts.map +1 -0
- package/dist/components/widget/TradeParameters/EIP1559Parameter.js +56 -0
- package/dist/components/widget/TradeParameters/EIP1559Parameter.js.map +1 -0
- package/dist/components/widget/TradeParameters/SlippageParameter/SlippageParameter.d.ts.map +1 -1
- package/dist/components/widget/TradeParameters/SlippageParameter/SlippageParameter.js +25 -16
- package/dist/components/widget/TradeParameters/SlippageParameter/SlippageParameter.js.map +1 -1
- package/dist/components/widget/TradeParameters/TradeParameters.d.ts.map +1 -1
- package/dist/components/widget/TradeParameters/TradeParameters.js +61 -34
- package/dist/components/widget/TradeParameters/TradeParameters.js.map +1 -1
- package/dist/components/widget/TradeParameters/TransactionSpeedParameter.d.ts +2 -0
- package/dist/components/widget/TradeParameters/TransactionSpeedParameter.d.ts.map +1 -0
- package/dist/components/widget/TradeParameters/TransactionSpeedParameter.js +155 -0
- package/dist/components/widget/TradeParameters/TransactionSpeedParameter.js.map +1 -0
- package/dist/components/widget/TradeParameters/hooks/useIsNotDefaultAnyParameter.d.ts.map +1 -1
- package/dist/components/widget/TradeParameters/hooks/useIsNotDefaultAnyParameter.js +24 -7
- package/dist/components/widget/TradeParameters/hooks/useIsNotDefaultAnyParameter.js.map +1 -1
- package/dist/components/widget/TradeParameters/state/eip1559ParamAtom.d.ts +6 -0
- package/dist/components/widget/TradeParameters/state/eip1559ParamAtom.d.ts.map +1 -0
- package/dist/components/widget/TradeParameters/state/eip1559ParamAtom.js +10 -0
- package/dist/components/widget/TradeParameters/state/eip1559ParamAtom.js.map +1 -0
- package/dist/components/widget/TradeParameters/state/gasPresetParamAtom.d.ts +8 -0
- package/dist/components/widget/TradeParameters/state/gasPresetParamAtom.d.ts.map +1 -0
- package/dist/components/widget/TradeParameters/state/gasPresetParamAtom.js +13 -0
- package/dist/components/widget/TradeParameters/state/gasPresetParamAtom.js.map +1 -0
- package/dist/components/widget/TradeParameters/state/resetParamsAtom.d.ts +4 -0
- package/dist/components/widget/TradeParameters/state/resetParamsAtom.d.ts.map +1 -0
- package/dist/components/widget/TradeParameters/state/resetParamsAtom.js +16 -0
- package/dist/components/widget/TradeParameters/state/resetParamsAtom.js.map +1 -0
- package/dist/components/widget/WrapEth/WrapEthContent.d.ts.map +1 -1
- package/dist/components/widget/WrapEth/WrapEthContent.js +64 -66
- package/dist/components/widget/WrapEth/WrapEthContent.js.map +1 -1
- package/dist/components/widget/WrapEth/WrapEthDrawerButton.d.ts +1 -1
- package/dist/components/widget/WrapEth/WrapEthDrawerButton.d.ts.map +1 -1
- package/dist/components/widget/WrapEth/WrapEthDrawerButton.js +56 -47
- package/dist/components/widget/WrapEth/WrapEthDrawerButton.js.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useSubmitDepositTxMutation.d.ts.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useSubmitDepositTxMutation.js +2 -1
- package/dist/components/widget/WrapEth/hooks/useSubmitDepositTxMutation.js.map +1 -1
- package/dist/components/widget/YouGet/YouGet.d.ts.map +1 -1
- package/dist/components/widget/YouGet/YouGet.js +97 -98
- package/dist/components/widget/YouGet/YouGet.js.map +1 -1
- package/dist/external/.pnpm/vaul@1.1.2_patch_hash_07b36ba5def3805dde9d543a880ba9e4caf55e5eb58e544faaa2c186846bf3c1__15df56ff48174365d34843c037ea8a33/external/vaul/dist/index.js +1626 -0
- package/dist/external/.pnpm/vaul@1.1.2_patch_hash_07b36ba5def3805dde9d543a880ba9e4caf55e5eb58e544faaa2c186846bf3c1__15df56ff48174365d34843c037ea8a33/external/vaul/dist/index.js.map +1 -0
- package/dist/hooks/gas/config.d.ts.map +1 -1
- package/dist/hooks/gas/config.js +9 -5
- package/dist/hooks/gas/config.js.map +1 -1
- package/dist/hooks/gas/types.d.ts +1 -1
- package/dist/hooks/gas/types.d.ts.map +1 -1
- package/dist/hooks/gas/useGasPrices.d.ts +8 -0
- package/dist/hooks/gas/useGasPrices.d.ts.map +1 -1
- package/dist/hooks/gas/useGasPrices.js +30 -21
- package/dist/hooks/gas/useGasPrices.js.map +1 -1
- package/dist/hooks/gas/utils.d.ts +5 -0
- package/dist/hooks/gas/utils.d.ts.map +1 -1
- package/dist/hooks/gas/utils.js +5 -2
- package/dist/hooks/gas/utils.js.map +1 -1
- package/dist/hooks/getCode/useIsAccountContract.d.ts.map +1 -1
- package/dist/hooks/getCode/useIsAccountContract.js +21 -8
- package/dist/hooks/getCode/useIsAccountContract.js.map +1 -1
- package/dist/hooks/permit/hooks/common/useSignArbitraryTypedData.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/{useSignArbitraryTypedData.js → common/useSignArbitraryTypedData.js} +1 -1
- package/dist/hooks/permit/hooks/common/useSignArbitraryTypedData.js.map +1 -0
- package/dist/hooks/permit/hooks/{useSignPermit.d.ts → common/useSignPermit.d.ts} +1 -1
- package/dist/hooks/permit/hooks/common/useSignPermit.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/{useSignPermit.js → common/useSignPermit.js} +2 -2
- package/dist/hooks/permit/hooks/common/useSignPermit.js.map +1 -0
- package/dist/hooks/permit/hooks/common/useWalletSupportsPermit.d.ts +7 -0
- package/dist/hooks/permit/hooks/common/useWalletSupportsPermit.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/common/useWalletSupportsPermit.js +25 -0
- package/dist/hooks/permit/hooks/common/useWalletSupportsPermit.js.map +1 -0
- package/dist/hooks/permit/hooks/{useGetPermitInfo.d.ts → permit1/useGetPermitInfo.d.ts} +2 -2
- package/dist/hooks/permit/hooks/permit1/useGetPermitInfo.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/{useGetPermitInfo.js → permit1/useGetPermitInfo.js} +3 -3
- package/dist/hooks/permit/hooks/permit1/useGetPermitInfo.js.map +1 -0
- package/dist/hooks/permit/hooks/{useGetSafePermitInfo.d.ts → permit1/useGetSafePermitInfo.d.ts} +3 -3
- package/dist/hooks/permit/hooks/permit1/useGetSafePermitInfo.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/{useGetSafePermitInfo.js → permit1/useGetSafePermitInfo.js} +1 -1
- package/dist/hooks/permit/hooks/permit1/useGetSafePermitInfo.js.map +1 -0
- package/dist/hooks/permit/hooks/{usePermit1Nonce.d.ts → permit1/usePermit1Nonce.d.ts} +5 -5
- package/dist/hooks/permit/hooks/permit1/usePermit1Nonce.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/{usePermit1Nonce.js → permit1/usePermit1Nonce.js} +4 -2
- package/dist/hooks/permit/hooks/permit1/usePermit1Nonce.js.map +1 -0
- package/dist/hooks/permit/hooks/{useSignTokenFromPermit1.d.ts → permit1/useSignTokenPermit1.d.ts} +15 -14
- package/dist/hooks/permit/hooks/permit1/useSignTokenPermit1.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/{useSignTokenFromPermit1.js → permit1/useSignTokenPermit1.js} +75 -68
- package/dist/hooks/permit/hooks/permit1/useSignTokenPermit1.js.map +1 -0
- package/dist/hooks/permit/hooks/permit1/useTokenFromPermit1Nonce.d.ts +10 -0
- package/dist/hooks/permit/hooks/permit1/useTokenFromPermit1Nonce.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/{useTokenFromPermit1Nonce.js → permit1/useTokenFromPermit1Nonce.js} +2 -2
- package/dist/hooks/permit/hooks/permit1/useTokenFromPermit1Nonce.js.map +1 -0
- package/dist/hooks/permit/hooks/{useTokenFromPermitInfo.d.ts → permit1/useTokenFromPermitInfo.d.ts} +1 -1
- package/dist/hooks/permit/hooks/permit1/useTokenFromPermitInfo.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/{useTokenFromPermitInfo.js → permit1/useTokenFromPermitInfo.js} +2 -2
- package/dist/hooks/permit/hooks/permit1/useTokenFromPermitInfo.js.map +1 -0
- package/dist/hooks/permit/hooks/{useTryToSignPermit1.d.ts → permit1/useTryToSignPermit1.d.ts} +1 -1
- package/dist/hooks/permit/hooks/permit1/useTryToSignPermit1.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/{useTryToSignPermit1.js → permit1/useTryToSignPermit1.js} +2 -2
- package/dist/hooks/permit/hooks/permit1/useTryToSignPermit1.js.map +1 -0
- package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.d.ts +21 -0
- package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.js +79 -0
- package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.js.map +1 -0
- package/dist/hooks/permit/hooks/permit2/usePermit2TransferFromNonce.d.ts +76 -0
- package/dist/hooks/permit/hooks/permit2/usePermit2TransferFromNonce.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/permit2/usePermit2TransferFromNonce.js +143 -0
- package/dist/hooks/permit/hooks/permit2/usePermit2TransferFromNonce.js.map +1 -0
- package/dist/hooks/permit/hooks/permit2/useSignTokenPermit2TransferFrom.d.ts +52 -0
- package/dist/hooks/permit/hooks/permit2/useSignTokenPermit2TransferFrom.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/permit2/useSignTokenPermit2TransferFrom.js +299 -0
- package/dist/hooks/permit/hooks/permit2/useSignTokenPermit2TransferFrom.js.map +1 -0
- package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2TransferFromNonce.d.ts +10 -0
- package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2TransferFromNonce.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2TransferFromNonce.js +55 -0
- package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2TransferFromNonce.js.map +1 -0
- package/dist/hooks/permit/utils/abi.d.ts +173 -0
- package/dist/hooks/permit/utils/abi.d.ts.map +1 -1
- package/dist/hooks/permit/utils/abi.js +174 -1
- package/dist/hooks/permit/utils/abi.js.map +1 -1
- package/dist/hooks/permit/utils/construct.d.ts +3 -4
- package/dist/hooks/permit/utils/construct.d.ts.map +1 -1
- package/dist/hooks/permit/utils/construct.js +1 -1
- package/dist/hooks/permit/utils/construct.js.map +1 -1
- package/dist/hooks/permit/utils/deadlines.d.ts +8 -0
- package/dist/hooks/permit/utils/deadlines.d.ts.map +1 -0
- package/dist/hooks/permit/utils/deadlines.js +15 -0
- package/dist/hooks/permit/utils/deadlines.js.map +1 -0
- package/dist/hooks/permit/utils/encodeArgs.d.ts +22 -4
- package/dist/hooks/permit/utils/encodeArgs.d.ts.map +1 -1
- package/dist/hooks/permit/utils/encodeArgs.js +33 -4
- package/dist/hooks/permit/utils/encodeArgs.js.map +1 -1
- package/dist/hooks/permit/utils/trySignPermit1.d.ts +1 -1
- package/dist/hooks/permit/utils/trySignPermit1.d.ts.map +1 -1
- package/dist/hooks/permit/utils/trySignPermit1.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts +1 -0
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js +4 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
- package/dist/hooks/swap/prices/usePricesParams.d.ts +1 -1
- package/dist/hooks/swap/prices/usePricesParams.d.ts.map +1 -1
- package/dist/hooks/swap/prices/usePricesParams.js +87 -32
- package/dist/hooks/swap/prices/usePricesParams.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/types.d.ts +0 -1
- package/dist/hooks/swap/tradeFlow/common/types.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.d.ts +18 -0
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.d.ts.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js +190 -0
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/useConstructGasParams.d.ts +20 -0
- package/dist/hooks/swap/tradeFlow/common/useConstructGasParams.d.ts.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/useConstructGasParams.js +81 -0
- package/dist/hooks/swap/tradeFlow/common/useConstructGasParams.js.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.d.ts +53 -0
- package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.d.ts.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.js +308 -0
- package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.js.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/useTrackedPrice.d.ts +25 -0
- package/dist/hooks/swap/tradeFlow/common/useTrackedPrice.d.ts.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/useTrackedPrice.js +103 -0
- package/dist/hooks/swap/tradeFlow/common/useTrackedPrice.js.map +1 -0
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts +2 -0
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +333 -397
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.d.ts +3 -0
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js +31 -10
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts +4 -0
- package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.js +295 -362
- package/dist/hooks/swap/tradeFlow/useMarketFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.d.ts +3 -0
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js +32 -11
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js.map +1 -1
- package/dist/hooks/tokens/allowance/types.d.ts +3 -0
- package/dist/hooks/tokens/allowance/types.d.ts.map +1 -1
- package/dist/hooks/tokens/allowance/useTokenAllowance.d.ts +1 -1
- package/dist/hooks/tokens/allowance/useTokenAllowance.d.ts.map +1 -1
- package/dist/hooks/tokens/allowance/useTokenAllowance.js +32 -28
- package/dist/hooks/tokens/allowance/useTokenAllowance.js.map +1 -1
- package/dist/hooks/tokens/balances/useInvalidateTokenData.d.ts.map +1 -1
- package/dist/hooks/tokens/balances/useInvalidateTokenData.js.map +1 -1
- package/dist/hooks/tokens/balances/useIsInsufficientTokenBalance.d.ts +1 -0
- package/dist/hooks/tokens/balances/useIsInsufficientTokenBalance.d.ts.map +1 -1
- package/dist/hooks/tokens/balances/useIsInsufficientTokenBalance.js +41 -1
- package/dist/hooks/tokens/balances/useIsInsufficientTokenBalance.js.map +1 -1
- package/dist/hooks/tokens/useTokenLists.d.ts +1 -0
- package/dist/hooks/tokens/useTokenLists.d.ts.map +1 -1
- package/dist/hooks/tokens/useTokenLists.js +15 -2
- package/dist/hooks/tokens/useTokenLists.js.map +1 -1
- package/dist/hooks/tokens/useTokenTaxFee.d.ts +12 -0
- package/dist/hooks/tokens/useTokenTaxFee.d.ts.map +1 -0
- package/dist/hooks/tokens/useTokenTaxFee.js +54 -0
- package/dist/hooks/tokens/useTokenTaxFee.js.map +1 -0
- package/dist/hooks/txs/index.d.ts +1 -1
- package/dist/hooks/txs/mutations/useApprove.d.ts +5 -4
- package/dist/hooks/txs/mutations/useApprove.d.ts.map +1 -1
- package/dist/hooks/txs/mutations/useApprove.js +55 -39
- package/dist/hooks/txs/mutations/useApprove.js.map +1 -1
- package/dist/hooks/txs/mutations/useDepositWeth.d.ts.map +1 -1
- package/dist/hooks/txs/mutations/useDepositWeth.js +37 -27
- package/dist/hooks/txs/mutations/useDepositWeth.js.map +1 -1
- package/dist/hooks/useEIP1559Enabled.d.ts +6 -0
- package/dist/hooks/useEIP1559Enabled.d.ts.map +1 -0
- package/dist/hooks/useEIP1559Enabled.js +31 -0
- package/dist/hooks/useEIP1559Enabled.js.map +1 -0
- package/dist/index.d.ts +2 -19
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -21
- package/dist/index.js.map +1 -1
- package/dist/lib/constants/delta.d.ts.map +1 -1
- package/dist/lib/constants/delta.js +3 -2
- package/dist/lib/constants/delta.js.map +1 -1
- package/dist/lib/constants/weth.d.ts.map +1 -1
- package/dist/lib/constants/weth.js +24 -17
- package/dist/lib/constants/weth.js.map +1 -1
- package/dist/lib/utils/copyToClipboard.d.ts +2 -0
- package/dist/lib/utils/copyToClipboard.d.ts.map +1 -0
- package/dist/lib/utils/copyToClipboard.js +14 -0
- package/dist/lib/utils/copyToClipboard.js.map +1 -0
- package/dist/lib/utils/logger.js +24 -0
- package/dist/lib/utils/logger.js.map +1 -0
- package/dist/lib/utils/price.js +1 -1
- package/dist/lib/utils/providerErrors.d.ts +12 -0
- package/dist/lib/utils/providerErrors.d.ts.map +1 -0
- package/dist/lib/utils/providerErrors.js +29 -0
- package/dist/lib/utils/providerErrors.js.map +1 -0
- package/dist/lib/utils/slippage.d.ts +5 -0
- package/dist/lib/utils/slippage.d.ts.map +1 -1
- package/dist/lib/utils/slippage.js.map +1 -1
- package/dist/lib/utils/toDecimal.d.ts +1 -0
- package/dist/lib/utils/toDecimal.d.ts.map +1 -1
- package/dist/lib/utils/toDecimal.js +9 -4
- package/dist/lib/utils/toDecimal.js.map +1 -1
- package/dist/lib/utils/toasts.d.ts +2 -0
- package/dist/lib/utils/toasts.d.ts.map +1 -1
- package/dist/lib/utils/toasts.js +48 -27
- package/dist/lib/utils/toasts.js.map +1 -1
- package/dist/lib/web3/wagmi/config.d.ts +333 -35
- package/dist/lib/web3/wagmi/config.d.ts.map +1 -1
- package/dist/lib/web3/wagmi/constants.d.ts +333 -35
- package/dist/lib/web3/wagmi/constants.d.ts.map +1 -1
- package/dist/lib/web3/wagmi/constants.js +5 -4
- package/dist/lib/web3/wagmi/constants.js.map +1 -1
- package/dist/lib/web3/wagmi/supportedChains.d.ts +1 -1
- package/dist/lib/web3/wagmi/supportedChains.d.ts.map +1 -1
- package/dist/lib/web3/wagmi/transports.d.ts.map +1 -1
- package/dist/lib/web3/wagmi/transports.js +3 -2
- package/dist/lib/web3/wagmi/transports.js.map +1 -1
- package/dist/styles.css +2445 -2933
- package/dist/test/Configurator.d.ts.map +1 -1
- package/dist/tokens/constants.d.ts.map +1 -1
- package/dist/tokens/constants.js +4 -3
- package/dist/tokens/constants.js.map +1 -1
- package/dist/tokens/defaultTokens.d.ts.map +1 -1
- package/dist/tokens/defaultTokens.js +44 -22
- package/dist/tokens/defaultTokens.js.map +1 -1
- package/dist/tokens/lists/lists.json.d.ts +21 -0
- package/dist/tokens/lists/lists.json.js +21 -0
- package/dist/tokens/lists/lists.json.js.map +1 -1
- package/dist/tokens/lists/state/tokenListsStateAtom.d.ts +10 -6
- package/dist/tokens/lists/state/tokenListsStateAtom.d.ts.map +1 -1
- package/dist/tokens/lists/state/types.d.ts +3 -2
- package/dist/tokens/lists/state/types.d.ts.map +1 -1
- package/dist/widget/ConnectWalletDrawerButton.d.ts +7 -0
- package/dist/widget/ConnectWalletDrawerButton.d.ts.map +1 -0
- package/dist/widget/ConnectWalletDrawerButton.js +95 -0
- package/dist/widget/ConnectWalletDrawerButton.js.map +1 -0
- package/dist/widget/Toaster.d.ts +2 -0
- package/dist/widget/Toaster.d.ts.map +1 -0
- package/dist/widget/Toaster.js +24 -0
- package/dist/widget/Toaster.js.map +1 -0
- package/dist/widget/TradeFlowButton.d.ts +16 -0
- package/dist/widget/TradeFlowButton.d.ts.map +1 -0
- package/dist/widget/TradeFlowButton.js +474 -0
- package/dist/widget/TradeFlowButton.js.map +1 -0
- package/dist/widget/Updaters.d.ts.map +1 -1
- package/dist/widget/Updaters.js +6 -2
- package/dist/widget/Updaters.js.map +1 -1
- package/dist/widget/button/hooks/useWidgetButtonExtraProps.d.ts.map +1 -1
- package/dist/widget/button/hooks/useWidgetButtonExtraProps.js +64 -31
- package/dist/widget/button/hooks/useWidgetButtonExtraProps.js.map +1 -1
- package/dist/widget/constants.d.ts +1 -0
- package/dist/widget/constants.d.ts.map +1 -1
- package/dist/widget/constants.js +2 -1
- package/dist/widget/constants.js.map +1 -1
- package/dist/widget/index.d.ts +1 -1
- package/dist/widget/index.d.ts.map +1 -1
- package/dist/widget/index.js +116 -461
- package/dist/widget/index.js.map +1 -1
- package/dist/widget/inputs/hooks/types.d.ts +1 -1
- package/dist/widget/inputs/hooks/types.d.ts.map +1 -1
- package/dist/widget/inputs/hooks/useTokenFromInputProps.d.ts.map +1 -1
- package/dist/widget/inputs/hooks/useTokenFromInputProps.js +66 -53
- package/dist/widget/inputs/hooks/useTokenFromInputProps.js.map +1 -1
- package/dist/widget/inputs/hooks/useTokenToInputProps.d.ts.map +1 -1
- package/dist/widget/inputs/hooks/useTokenToInputProps.js +46 -20
- package/dist/widget/inputs/hooks/useTokenToInputProps.js.map +1 -1
- package/dist/widget/inputs/state/selectedTokenActionsAtom.js +1 -1
- package/dist/widget/state/chainToAtom.d.ts +2 -2
- package/dist/widget/state/chainToAtom.d.ts.map +1 -1
- package/dist/widget/state/configActionsAtom.d.ts.map +1 -1
- package/dist/widget/state/configActionsAtom.js +3 -1
- package/dist/widget/state/configActionsAtom.js.map +1 -1
- package/dist/widget/state/configAtom.d.ts +4 -1
- package/dist/widget/state/configAtom.d.ts.map +1 -1
- package/dist/widget/state/configAtom.js +2 -1
- package/dist/widget/state/configAtom.js.map +1 -1
- package/dist/widget/state/containerAtom.js +1 -1
- package/dist/widget/state/externalProviderAtom.d.ts +23 -0
- package/dist/widget/state/externalProviderAtom.d.ts.map +1 -0
- package/dist/widget/state/externalProviderAtom.js +20 -0
- package/dist/widget/state/externalProviderAtom.js.map +1 -0
- package/dist/widget/swapDetails/youGet.d.ts.map +1 -1
- package/dist/widget/swapDetails/youGet.js +2 -3
- package/dist/widget/swapDetails/youGet.js.map +1 -1
- package/dist/widget/types.d.ts +4 -0
- package/dist/widget/types.d.ts.map +1 -1
- package/package.json +8 -66
- package/dist/components/ui/counter.js +0 -33
- package/dist/components/ui/counter.js.map +0 -1
- package/dist/components/ui/header.js +0 -21
- package/dist/components/ui/header.js.map +0 -1
- package/dist/components/ui/select.js +0 -427
- package/dist/components/ui/select.js.map +0 -1
- package/dist/components/ui/vaul/browser.d.ts +0 -8
- package/dist/components/ui/vaul/browser.d.ts.map +0 -1
- package/dist/components/ui/vaul/browser.js +0 -27
- package/dist/components/ui/vaul/browser.js.map +0 -1
- package/dist/components/ui/vaul/constants.d.ts +0 -12
- package/dist/components/ui/vaul/constants.d.ts.map +0 -1
- package/dist/components/ui/vaul/constants.js +0 -14
- package/dist/components/ui/vaul/constants.js.map +0 -1
- package/dist/components/ui/vaul/context.d.ts +0 -38
- package/dist/components/ui/vaul/context.d.ts.map +0 -1
- package/dist/components/ui/vaul/context.js +0 -62
- package/dist/components/ui/vaul/context.js.map +0 -1
- package/dist/components/ui/vaul/helpers.d.ts +0 -17
- package/dist/components/ui/vaul/helpers.d.ts.map +0 -1
- package/dist/components/ui/vaul/helpers.js +0 -77
- package/dist/components/ui/vaul/helpers.js.map +0 -1
- package/dist/components/ui/vaul/index.d.ts +0 -140
- package/dist/components/ui/vaul/index.d.ts.map +0 -1
- package/dist/components/ui/vaul/index.js +0 -797
- package/dist/components/ui/vaul/index.js.map +0 -1
- package/dist/components/ui/vaul/types.d.ts +0 -7
- package/dist/components/ui/vaul/types.d.ts.map +0 -1
- package/dist/components/ui/vaul/use-composed-refs.d.ts +0 -14
- package/dist/components/ui/vaul/use-composed-refs.d.ts.map +0 -1
- package/dist/components/ui/vaul/use-composed-refs.js +0 -18
- package/dist/components/ui/vaul/use-composed-refs.js.map +0 -1
- package/dist/components/ui/vaul/use-controllable-state.d.ts +0 -9
- package/dist/components/ui/vaul/use-controllable-state.d.ts.map +0 -1
- package/dist/components/ui/vaul/use-controllable-state.js +0 -124
- package/dist/components/ui/vaul/use-controllable-state.js.map +0 -1
- package/dist/components/ui/vaul/use-position-fixed.d.ts +0 -19
- package/dist/components/ui/vaul/use-position-fixed.d.ts.map +0 -1
- package/dist/components/ui/vaul/use-position-fixed.js +0 -99
- package/dist/components/ui/vaul/use-position-fixed.js.map +0 -1
- package/dist/components/ui/vaul/use-prevent-scroll.d.ts +0 -18
- package/dist/components/ui/vaul/use-prevent-scroll.d.ts.map +0 -1
- package/dist/components/ui/vaul/use-prevent-scroll.js +0 -172
- package/dist/components/ui/vaul/use-prevent-scroll.js.map +0 -1
- package/dist/components/ui/vaul/use-scale-background.d.ts +0 -2
- package/dist/components/ui/vaul/use-scale-background.d.ts.map +0 -1
- package/dist/components/ui/vaul/use-scale-background.js +0 -58
- package/dist/components/ui/vaul/use-scale-background.js.map +0 -1
- package/dist/components/ui/vaul/use-snap-points.d.ts +0 -32
- package/dist/components/ui/vaul/use-snap-points.d.ts.map +0 -1
- package/dist/components/ui/vaul/use-snap-points.js +0 -212
- package/dist/components/ui/vaul/use-snap-points.js.map +0 -1
- package/dist/components/widget/Informative/Informative.js +0 -23
- package/dist/components/widget/Informative/Informative.js.map +0 -1
- package/dist/components/widget/NetworkIcon/assets/sqr/polygonZkEVM.svg.js +0 -12
- package/dist/components/widget/NetworkIcon/assets/sqr/polygonZkEVM.svg.js.map +0 -1
- package/dist/components/widget/TradeOverview/assets/spinner.svg.js.map +0 -1
- package/dist/hooks/permit/hooks/useGetPermitInfo.d.ts.map +0 -1
- package/dist/hooks/permit/hooks/useGetPermitInfo.js.map +0 -1
- package/dist/hooks/permit/hooks/useGetSafePermitInfo.d.ts.map +0 -1
- package/dist/hooks/permit/hooks/useGetSafePermitInfo.js.map +0 -1
- package/dist/hooks/permit/hooks/usePermit1Nonce.d.ts.map +0 -1
- package/dist/hooks/permit/hooks/usePermit1Nonce.js.map +0 -1
- package/dist/hooks/permit/hooks/useSignArbitraryTypedData.d.ts.map +0 -1
- package/dist/hooks/permit/hooks/useSignArbitraryTypedData.js.map +0 -1
- package/dist/hooks/permit/hooks/useSignPermit.d.ts.map +0 -1
- package/dist/hooks/permit/hooks/useSignPermit.js.map +0 -1
- package/dist/hooks/permit/hooks/useSignTokenFromPermit1.d.ts.map +0 -1
- package/dist/hooks/permit/hooks/useSignTokenFromPermit1.js.map +0 -1
- package/dist/hooks/permit/hooks/useTokenFromPermit1Nonce.d.ts +0 -10
- package/dist/hooks/permit/hooks/useTokenFromPermit1Nonce.d.ts.map +0 -1
- package/dist/hooks/permit/hooks/useTokenFromPermit1Nonce.js.map +0 -1
- package/dist/hooks/permit/hooks/useTokenFromPermitInfo.d.ts.map +0 -1
- package/dist/hooks/permit/hooks/useTokenFromPermitInfo.js.map +0 -1
- package/dist/hooks/permit/hooks/useTryToSignPermit1.d.ts.map +0 -1
- package/dist/hooks/permit/hooks/useTryToSignPermit1.js.map +0 -1
- package/dist/styles2.css +0 -256
- package/dist/test/connect/AccountDisplay.js +0 -83
- package/dist/test/connect/AccountDisplay.js.map +0 -1
- package/dist/test/connect/App.js +0 -68
- package/dist/test/connect/App.js.map +0 -1
- package/dist/test/connect/ConnectWallet.js +0 -100
- package/dist/test/connect/ConnectWallet.js.map +0 -1
- package/dist/test/connect/WagmiProfile.js +0 -396
- package/dist/test/connect/WagmiProfile.js.map +0 -1
- package/dist/test/connect/WalletActions.js +0 -314
- package/dist/test/connect/WalletActions.js.map +0 -1
- package/dist/widget/DevTools.js +0 -24
- package/dist/widget/DevTools.js.map +0 -1
- /package/dist/{components/widget/TradeOverview/assets → assets}/spinner.svg.js +0 -0
- /package/dist/hooks/permit/hooks/{useSignArbitraryTypedData.d.ts → common/useSignArbitraryTypedData.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMarketFlow.js","sources":["../../../../src/hooks/swap/tradeFlow/useMarketFlow.ts"],"sourcesContent":["import { useGenericTokenAllowanceMin } from \"@/hooks/tokens/allowance/useGenericTokenAllowance\";\nimport { useApprove, useAwaitTx } from \"@/hooks/txs\";\nimport type { OptimalRate } from \"@velora-dex/sdk\";\nimport { useAccount, useChainId } from \"wagmi\";\nimport { useSendMarketSwapTx } from \"../prices/market/mutations/useSendMarketSwapTx\";\nimport { useBuildTx } from \"../prices/market/mutations/useBuildTx\";\nimport { assert } from \"ts-essentials\";\nimport { useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport type { Address, Hash, TransactionReceipt } from \"viem\";\nimport type {\n ApprovalFlowResult,\n SignPermitFlowResult,\n SubmitTxResult,\n} from \"./common/types\";\nimport { applySlippage } from \"@/lib/utils/price\";\nimport { useSlippage } from \"@/hooks/useSlippage\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { useRef } from \"react\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useInvalidateTokenDataQuery } from \"@/hooks/tokens/balances/useInvalidateTokenData\";\nimport { UserCancelledError } from \"./common/errors\";\nimport { useReceiverAddressValue } from \"@/components/widget/ReceiverAddress/state/receiverAddressAtom\";\nimport type { TxSentObject } from \"@/lib/utils/toasts\";\nimport {\n useMarkPermit1NonceAsUsed,\n useSignTokenPermit1,\n type SignedPermitResult,\n} from \"@/hooks/permit/hooks/useSignTokenFromPermit1\";\n\nexport type UseMarketFlowInput = {\n marketPrice?: OptimalRate;\n};\n\nexport type SubmitSwapResult = {\n tradeFlowType: \"marketSwap\";\n approve: SubmitTxResult;\n swap: SubmitTxResult;\n marketPrice: OptimalRate;\n account: Address;\n};\n\ntype OnTxSent = (txSent: TxSentObject) => void;\n// @TODO instead add global onTxSent subscription to\n// MutationCache({onSuccess: txHash}) when sent\n// and QueryCache({onSuccess: txReceipt}) when mined,\n// maybe??\ntype RunMarketOptions = {\n onTxSent?: OnTxSent;\n};\n\nexport type UseMarketFlowResult = {\n chainId: SupportedChainId;\n runMarketSwapFlow: (options?: RunMarketOptions) => Promise<SubmitSwapResult>;\n reset: () => void; // reset on Error to retry\n cancelFlow: () => void; // cancel flow\n approval: ApprovalFlowResult;\n signPermit: SignPermitFlowResult;\n buildTxParams: {\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n swap: {\n txHash?: Hash;\n receipt?: TransactionReceipt;\n isConfirmingTX: boolean;\n isTxSent: boolean;\n isTxPending: boolean;\n isTxMined: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n result?: SubmitSwapResult;\n};\n\nconst MARKET_SWAP_MUTATION_KEY = \"runMarketSwapFlow\";\n\nexport function useMarketFlow({\n marketPrice,\n}: UseMarketFlowInput): UseMarketFlowResult {\n const chainId = useChainId();\n\n /* 1. Get allowance for tokenFrom */\n\n const allowance = useGenericTokenAllowanceMin({\n tokenAddress: marketPrice?.srcToken,\n amountToApproveInWei: marketPrice?.srcAmount,\n spenderContractType: \"AugustusSwapper\",\n chainId,\n });\n\n /* 2.1. submit Approve tx if necessary */\n\n const approveTxMut = useApprove({\n token: marketPrice?.srcToken\n ? { address: marketPrice.srcToken }\n : undefined,\n allowanceData: { allowanceToSet: allowance.allowanceToSet },\n spender: allowance.spender,\n onSuccess: () => {\n console.log(\"Approve tx success\");\n },\n onError: (error) => {\n console.error(\"Approve tx error\", error);\n },\n });\n\n /* 2.2. sign Permit1 */\n\n const signPermit1Mut = useSignTokenPermit1({\n token: {\n address: marketPrice?.srcToken as Address,\n network: chainId,\n },\n value: allowance.allowanceToSet,\n spender: allowance.spender as Address,\n enabled: allowance.needsApproval,\n onSuccess: (signature) => {\n console.log(\"Permit1 signature\", signature);\n },\n onError: (error) => {\n console.error(\"Permit1 error\", error);\n },\n });\n\n const signPermit: UseMarketFlowResult[\"signPermit\"] = {\n isPermitSupported: signPermit1Mut.isPermitSupported,\n isPermitReadyToSign: signPermit1Mut.isPermitReadyToSign,\n amountToPermit: allowance.allowanceToSet,\n spender: allowance.spender as Address,\n isLoadingPermitData: signPermit1Mut.permitFetchingState.isPending,\n isSigningPermit: signPermit1Mut.permitSigningState.isPending,\n isPermitSigned: signPermit1Mut.permitSigningState.isSuccess,\n signature: signPermit1Mut.signature,\n permitEncodedArgs: signPermit1Mut.permit1EncodedArgs,\n isPending: signPermit1Mut.isPending,\n isSuccess: signPermit1Mut.isSuccess,\n isError: signPermit1Mut.isError,\n error: signPermit1Mut.error,\n };\n\n /* 3. await Approve tx (if not using Permit) */\n const approveTxMined = useAwaitTx({\n hash: approveTxMut.txHash,\n chainId,\n });\n\n const approval: UseMarketFlowResult[\"approval\"] = {\n /* allowance fetching */\n needsApproval: allowance.needsApproval,\n allowanceToSet: allowance.allowanceToSet,\n spender: allowance.spender as Address,\n txHash: approveTxMut.txHash,\n receipt: approveTxMined.data,\n isLoadingAllowance: allowance.isLoadingPrerequisites,\n /* tx sending */\n isConfirmingTX: approveTxMut.isPending,\n isTxSent: approveTxMut.isSuccess,\n /* tx awaiting */\n isTxPending: approveTxMined.isLoading,\n isTxMined: approveTxMined.isSuccess,\n /* combined */\n isPending:\n allowance.needsApproval &&\n (approveTxMut.isPending || approveTxMined.isLoading),\n isError:\n allowance.needsApproval &&\n (approveTxMut.isError || approveTxMined.isError),\n isSuccess: !allowance.needsApproval || approveTxMined.isSuccess, // final success\n error: allowance.needsApproval\n ? approveTxMut.error || approveTxMined.error\n : null,\n };\n\n /* 4. Build Swap tx */\n const buildTxMut = useBuildTx({\n chainId,\n mutationOptions: {\n onSuccess: () => {\n console.log(\"Build tx success\");\n },\n onError: (error) => {\n console.error(\"Build tx error\", error);\n },\n },\n });\n\n const buildTxParams: UseMarketFlowResult[\"buildTxParams\"] = {\n isPending: buildTxMut.isPending,\n isError: buildTxMut.isError,\n isSuccess: buildTxMut.isSuccess,\n error: buildTxMut.error,\n };\n\n /* 5. submit Swap tx */\n\n const sendSwapTxMut = useSendMarketSwapTx({\n onSuccess: () => {\n console.log(\"Swap tx success\");\n },\n onError: (error) => {\n console.error(\"Swap tx error\", error);\n },\n });\n\n /* 6. await Swap tx */\n const swapTxMined = useAwaitTx({\n hash: sendSwapTxMut.txHash,\n chainId,\n });\n\n const swap: UseMarketFlowResult[\"swap\"] = {\n txHash: sendSwapTxMut.txHash,\n receipt: swapTxMined.data,\n /* tx sending */\n isConfirmingTX: sendSwapTxMut.isPending,\n isTxSent: sendSwapTxMut.isSuccess,\n /* tx awaiting */\n isTxPending: swapTxMined.isLoading,\n isTxMined: swapTxMined.isSuccess,\n /* combined */\n isPending: sendSwapTxMut.isPending || swapTxMined.isLoading,\n isSuccess: swapTxMined.isSuccess, // final success\n isError: sendSwapTxMut.isError || swapTxMined.isError,\n error: sendSwapTxMut.error || swapTxMined.error,\n };\n\n const { address: account } = useAccount();\n const { resolvedSlippage } = useSlippage();\n\n const ensureTxReceipt = useEnsureTxReceipt();\n\n // allows to abort (cancel) currently running flow,\n const currentAbortControllerRef = useRef<AbortController | null>(null);\n\n const cancelFlow = () => {\n currentAbortControllerRef.current?.abort(new UserCancelledError());\n currentAbortControllerRef.current = null;\n };\n\n const receiverAddress = useReceiverAddressValue();\n\n const { markNonceAsUsed, clearNonce } = useMarkPermit1NonceAsUsed({\n chainId,\n });\n\n const submitSwapTx: UseMarketFlowResult[\"runMarketSwapFlow\"] = async ({\n onTxSent,\n } = {}) => {\n // reset all mutations except the current one,\n // otherwise we'll have previous data (txs) as mutation results\n approveTxMut.reset();\n signPermit1Mut.reset();\n buildTxMut.reset();\n sendSwapTxMut.reset();\n\n const abortController = new AbortController();\n currentAbortControllerRef.current = abortController;\n\n const signal = abortController.signal;\n\n let signedPermitResult: SignedPermitResult | undefined;\n\n let approveTxHash: Hash | undefined;\n let approveTxReceipt: TransactionReceipt | undefined;\n if (approval.needsApproval) {\n // need allowance\n if (!signPermit.isPermitSupported || !signPermit.isPermitReadyToSign) {\n // Token doesn't support Permit\n // make an Approval tx\n approveTxHash = await approveTxMut.approveAsync();\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n const approveTxReceiptPromise = ensureTxReceipt({\n hash: approveTxHash,\n chainId,\n onReplaced: (data) => {\n console.log(\"onReplaced:approveTx\", approveTxHash, data);\n },\n });\n\n if (onTxSent) {\n onTxSent({\n txHash: approveTxHash,\n actionType: \"approve\",\n receiptPromise: approveTxReceiptPromise,\n });\n }\n\n approveTxReceipt = await approveTxReceiptPromise;\n\n console.log(\"🚀 ~ approveTx ~ receipt:\", approveTxReceipt);\n // @TODO check if we need to see if receipt.status === \"reverted\" and throw,\n // or if waitForTransactionReceipt already throws on such receipts\n } else {\n // sign Permit1\n signedPermitResult = await signPermit1Mut.signPermit1Async();\n }\n }\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n assert(account, \"Account is not connected\");\n assert(marketPrice, \"Market price is not available\");\n\n const amountsAfterSlippage = applySlippage(\n {\n srcAmount: marketPrice.srcAmount,\n destAmount: marketPrice.destAmount,\n },\n resolvedSlippage,\n marketPrice.side\n );\n\n const txParams = await buildTxMut.mutateAsync({\n swapTxInput: {\n userAddress: account,\n receiver: receiverAddress,\n srcToken: marketPrice.srcToken,\n destToken: marketPrice.destToken,\n srcDecimals: marketPrice.srcDecimals,\n destDecimals: marketPrice.destDecimals,\n\n /* @TODO fill in when available, at least `partner`\n referrer: \"\",\n partner: \"\",\n partnerAddress: \"\",\n partnerFeeBps: 0, \n takeSurplus: false,*/\n permit: signedPermitResult?.permit1EncodedArgs, // just signed Permit signature\n\n priceRoute: marketPrice,\n ...amountsAfterSlippage,\n },\n /* swapTxOptions: {\n ignoreChecks: true,\n ignoreGasEstimate: true,\n ignoreAllowance: true,\n onlyParams: true,\n @TODO turn on ignore options when necessary (for Safe),\n add gasPrice params\n }, */\n });\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n const swapTxHash = await sendSwapTxMut.sendTransactionAsync(txParams);\n\n // no use aborting past this point, tx is already sent,\n // but we may want to connect this late abortion to tx cancellation, in the future\n\n // tx is sent, consider Token nonce as used\n if (signedPermitResult) {\n markNonceAsUsed(signedPermitResult.signedPermitData);\n }\n\n try {\n const swapTxReceiptPromise = ensureTxReceipt({\n hash: swapTxHash,\n chainId,\n onReplaced: (data) => {\n console.log(\"onReplaced:swapTx\", swapTxHash, data);\n },\n });\n if (onTxSent) {\n onTxSent({\n txHash: swapTxHash,\n actionType: \"swap\",\n receiptPromise: swapTxReceiptPromise,\n });\n }\n\n const swapTxReceipt = await swapTxReceiptPromise;\n console.log(\"🚀 ~ swapTx ~ receipt:\", swapTxReceipt);\n // @TODO check if we need to see if receipt.status === \"reverted\" and trhow,\n // or if waitForTransactionReceipt already throws on such receipts\n\n // @TODO try catch, handle errors, refetch allowance and balance in finally\n\n return {\n tradeFlowType: \"marketSwap\",\n approve: {\n txHash: approveTxHash,\n receipt: approveTxReceipt,\n },\n swap: {\n txHash: swapTxHash,\n receipt: swapTxReceipt,\n },\n marketPrice,\n // @TODO add whatever else may be relevant\n account,\n };\n } catch (error) {\n // Market swap failed, we can't be sure if nonce can be reused or it was incremented in a different tx\n // or even Order in the meantime\n if (signedPermitResult) {\n clearNonce(signedPermitResult.signedPermitData);\n }\n throw error;\n }\n };\n\n const invalidateTokenData = useInvalidateTokenDataQuery();\n\n const marketSwapMut = useMutation({\n mutationFn: submitSwapTx,\n mutationKey: [MARKET_SWAP_MUTATION_KEY],\n onSuccess: (data) => {\n console.log(\"Swap tx success\", data);\n },\n onError: (error) => {\n console.error(\"Swap tx error\", error);\n },\n onSettled: () => {\n console.log(\"Swap tx settled, invalidating balances and allowances\");\n invalidateTokenData({ nonces: true });\n },\n });\n\n const reset = () => {\n approveTxMut.reset();\n signPermit1Mut.reset();\n buildTxMut.reset();\n sendSwapTxMut.reset();\n marketSwapMut.reset();\n };\n\n /* 7. return result */\n return {\n chainId,\n runMarketSwapFlow: marketSwapMut.mutateAsync,\n reset,\n cancelFlow,\n approval,\n signPermit,\n buildTxParams,\n swap,\n // marketSwapMut includes all steps' queries and mutations and returns more precise errors (including cancellation)\n isPending: marketSwapMut.isPending,\n isSuccess: marketSwapMut.isSuccess,\n isError: marketSwapMut.isError,\n error: marketSwapMut.error,\n result: marketSwapMut.data,\n };\n}\n"],"names":["MARKET_SWAP_MUTATION_KEY","useMarketFlow","t0","$","_c","marketPrice","chainId","useChainId","t1","srcToken","t2","srcAmount","t3","tokenAddress","amountToApproveInWei","spenderContractType","allowance","useGenericTokenAllowanceMin","t4","address","undefined","t5","allowanceToSet","t6","spender","token","allowanceData","onSuccess","_temp","onError","_temp2","approveTxMut","useApprove","t7","t8","network","t9","t10","needsApproval","value","enabled","_temp3","_temp4","signPermit1Mut","useSignTokenPermit1","t11","t12","error","isError","isPending","isPermitReadyToSign","isPermitSupported","isSuccess","permit1EncodedArgs","permitFetchingState","permitSigningState","signature","amountToPermit","isLoadingPermitData","isSigningPermit","isPermitSigned","permitEncodedArgs","signPermit","t13","txHash","hash","approveTxMined","useAwaitTx","t14","t15","isLoading","t16","t17","t18","t19","isLoadingPrerequisites","data","receipt","isLoadingAllowance","isConfirmingTX","isTxSent","isTxPending","isTxMined","approval","t20","Symbol","for","_temp5","_temp6","t21","mutationOptions","buildTxMut","useBuildTx","t22","buildTxParams","t23","_temp7","_temp8","sendSwapTxMut","useSendMarketSwapTx","t24","swapTxMined","t25","t26","t27","t28","swap","account","useAccount","resolvedSlippage","useSlippage","ensureTxReceipt","useEnsureTxReceipt","currentAbortControllerRef","useRef","t29","current","abort","UserCancelledError","cancelFlow","receiverAddress","useReceiverAddressValue","t30","markNonceAsUsed","clearNonce","useMarkPermit1NonceAsUsed","t31","t32","onTxSent","reset","abortController","AbortController","signal","signedPermitResult","approveTxHash","approveTxReceipt","approveAsync","throwIfAborted","approveTxReceiptPromise","onReplaced","console","log","actionType","receiptPromise","signPermit1Async","assert","amountsAfterSlippage","applySlippage","destAmount","side","txParams","mutateAsync","swapTxInput","userAddress","receiver","destToken","srcDecimals","destDecimals","permit","priceRoute","swapTxHash","sendTransactionAsync","signedPermitData","swapTxReceiptPromise","data_0","swapTxReceipt","tradeFlowType","approve","t33","submitSwapTx","invalidateTokenData","useInvalidateTokenDataQuery","nonces","t34","mutationFn","mutationKey","_temp9","_temp0","onSettled","marketSwapMut","useMutation","t35","t36","runMarketSwapFlow","result","error_4","data_1","error_2","error_1","error_0"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useMarketFlow.js","sources":["../../../../src/hooks/swap/tradeFlow/useMarketFlow.ts"],"sourcesContent":["import { useAwaitTx } from \"@/hooks/txs\";\nimport type { OptimalRate } from \"@velora-dex/sdk\";\nimport { useAccount, useChainId } from \"wagmi\";\nimport { useSendMarketSwapTx } from \"../prices/market/mutations/useSendMarketSwapTx\";\nimport { useBuildTx } from \"../prices/market/mutations/useBuildTx\";\nimport { assert } from \"ts-essentials\";\nimport { useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport type { Address, Hash, TransactionReceipt } from \"viem\";\nimport type {\n ApprovalFlowResult,\n SignPermitFlowResult,\n SubmitTxResult,\n} from \"./common/types\";\nimport { applySlippage } from \"@/lib/utils/price\";\nimport { useSlippage } from \"@/hooks/useSlippage\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { useRef } from \"react\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useInvalidateTokenDataQuery } from \"@/hooks/tokens/balances/useInvalidateTokenData\";\nimport { UserCancelledError } from \"./common/errors\";\nimport { useReceiverAddressValue } from \"@/components/widget/ReceiverAddress/state/receiverAddressAtom\";\nimport type { TxSentObject } from \"@/lib/utils/toasts\";\nimport { useSwapSide } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport { useApproveOrPermit } from \"./common/useApproveOrPermit\";\nimport {\n useMarkPermit1Or2NonceAsUsed,\n type SignedPermitResult,\n} from \"./common/useSignPermit1Or2\";\nimport { useWidgetConfig } from \"@/widget/state/configAtom\";\nimport { useTrackedPrice } from \"./common/useTrackedPrice\";\nimport { useConstructGasParams } from \"./common/useConstructGasParams\";\n\nexport type UseMarketFlowInput = {\n marketPrice?: OptimalRate;\n};\n\nexport type SubmitSwapResult = {\n tradeFlowType: \"marketSwap\";\n approve: SubmitTxResult;\n swap: SubmitTxResult;\n marketPrice: OptimalRate;\n account: Address;\n};\n\ntype OnTxSent = (txSent: TxSentObject) => void;\n// @TODO instead add global onTxSent subscription to\n// MutationCache({onSuccess: txHash}) when sent\n// and QueryCache({onSuccess: txReceipt}) when mined,\n// maybe??\ntype RunMarketOptions = {\n onTxSent?: OnTxSent;\n};\n\nexport type UseMarketFlowResult = {\n chainId: SupportedChainId;\n runMarketSwapFlow: (options?: RunMarketOptions) => Promise<SubmitSwapResult>;\n reset: () => void; // reset on Error to retry\n cancelFlow: () => void; // cancel flow\n retryFlow: (options?: RunMarketOptions) => Promise<SubmitSwapResult>; // reset and retry flow\n approval: ApprovalFlowResult;\n signPermit: SignPermitFlowResult;\n buildTxParams: {\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n swap: {\n txHash?: Hash;\n receipt?: TransactionReceipt;\n isConfirmingTX: boolean;\n isConfirmingTxError: boolean;\n isTxSent: boolean;\n isTxPending: boolean;\n isTxMined: boolean;\n isTxAwaitingError: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n result?: SubmitSwapResult;\n usedPrice?: OptimalRate;\n};\n\nconst MARKET_SWAP_MUTATION_KEY = \"runMarketSwapFlow\";\n\nexport function useMarketFlow({\n marketPrice,\n}: UseMarketFlowInput): UseMarketFlowResult {\n const chainId = useChainId();\n const { resolvedSlippage } = useSlippage();\n const swapSide = useSwapSide();\n\n const trackedPrice = useTrackedPrice({\n price: marketPrice,\n slippage: resolvedSlippage,\n side: swapSide,\n });\n\n /* Inside useApproveOrPermit:\n 1. Get allowance for tokenFrom \n 2.1. submit Approve tx if necessary \n\n 2.2. sign Permit1 \n\n 3. await Approve tx (if not using Permit) \n */\n const usingPrice = trackedPrice.get.usingPrice();\n const { approval, signPermit, approveTxMut, signPermitMut } =\n useApproveOrPermit({\n srcToken: usingPrice?.srcToken ?? marketPrice?.srcToken,\n // if we already approved some amount, save it in approval and signPermit objects\n srcAmount: trackedPrice.get.approvedAmount() ?? marketPrice?.srcAmount,\n spenderContractType: \"AugustusSwapper\",\n // marketPrice is the preferred source of truth\n swapSide: usingPrice?.side ?? swapSide,\n });\n\n /* 4. Build Swap tx */\n const buildTxMut = useBuildTx({\n chainId,\n mutationOptions: {\n onSuccess: () => {\n console.log(\"Build tx success\");\n },\n onError: (error) => {\n console.error(\"Build tx error\", error);\n },\n },\n });\n\n const buildTxParams: UseMarketFlowResult[\"buildTxParams\"] = {\n isPending: buildTxMut.isPending,\n isError: buildTxMut.isError,\n isSuccess: buildTxMut.isSuccess,\n error: buildTxMut.error,\n };\n\n /* 5. submit Swap tx */\n\n const sendSwapTxMut = useSendMarketSwapTx({\n onSuccess: () => {\n console.log(\"Swap tx success\");\n },\n onError: (error) => {\n console.error(\"Swap tx error\", error);\n },\n });\n\n /* 6. await Swap tx */\n const swapTxMined = useAwaitTx({\n hash: sendSwapTxMut.txHash,\n chainId,\n });\n\n const swap: UseMarketFlowResult[\"swap\"] = {\n txHash: sendSwapTxMut.txHash,\n receipt: swapTxMined.data,\n /* tx sending */\n isConfirmingTX: sendSwapTxMut.isPending,\n isConfirmingTxError: sendSwapTxMut.isError,\n isTxSent: sendSwapTxMut.isSuccess,\n /* tx awaiting */\n isTxPending: swapTxMined.isLoading,\n isTxMined: swapTxMined.isSuccess,\n isTxAwaitingError: swapTxMined.isError,\n /* combined */\n isPending: sendSwapTxMut.isPending || swapTxMined.isLoading,\n isSuccess: swapTxMined.isSuccess, // final success\n isError: sendSwapTxMut.isError || swapTxMined.isError,\n error: sendSwapTxMut.error || swapTxMined.error,\n };\n\n const { address: account } = useAccount();\n\n const ensureTxReceipt = useEnsureTxReceipt();\n\n // allows to abort (cancel) currently running flow,\n const currentAbortControllerRef = useRef<AbortController | null>(null);\n\n const cancelFlow = () => {\n currentAbortControllerRef.current?.abort(new UserCancelledError());\n currentAbortControllerRef.current = null;\n };\n\n const receiverAddress = useReceiverAddressValue();\n\n const { markNonceAsUsed, clearNonce } = useMarkPermit1Or2NonceAsUsed({\n chainId,\n });\n\n const { constructGasParams } = useConstructGasParams();\n\n const partner = useWidgetConfig().partner;\n\n const submitSwapTx: UseMarketFlowResult[\"runMarketSwapFlow\"] = async ({\n onTxSent,\n } = {}) => {\n // reset all mutations except the current one,\n // otherwise we'll have previous data (txs) as mutation results\n approveTxMut.reset();\n signPermitMut.reset();\n buildTxMut.reset();\n sendSwapTxMut.reset();\n\n const abortController = new AbortController();\n currentAbortControllerRef.current = abortController;\n\n const signal = abortController.signal;\n\n let signedPermitResult: SignedPermitResult | undefined;\n\n let approveTxHash: Hash | undefined;\n let approveTxReceipt: TransactionReceipt | undefined;\n\n // at this point this is the syncronously available price\n const allowanceToSet = approval.allowanceToSet;\n // we use this allowance as a max allowance we will accept new prices for\n\n if (approval.needsApproval) {\n // need allowance\n if (!signPermit.isPermitSupported || !signPermit.isPermitReadyToSign) {\n // freeze allowanceToSet\n trackedPrice.set.approvedAmount(allowanceToSet);\n\n // Token doesn't support Permit\n // make an Approval tx\n approveTxHash = await approveTxMut.approveAsync({\n allowanceData: {\n allowanceToSet,\n },\n });\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n const approveTxReceiptPromise = ensureTxReceipt({\n hash: approveTxHash,\n chainId,\n onReplaced: (data) => {\n console.log(\"onReplaced:approveTx\", approveTxHash, data);\n },\n });\n\n if (onTxSent) {\n onTxSent({\n chainId,\n txHash: approveTxHash,\n actionType: \"approve\",\n receiptPromise: approveTxReceiptPromise,\n });\n }\n\n approveTxReceipt = await approveTxReceiptPromise;\n\n console.log(\"🚀 ~ approveTx ~ receipt:\", approveTxReceipt);\n // @TODO check if we need to see if receipt.status === \"reverted\" and throw,\n // or if waitForTransactionReceipt already throws on such receipts\n } else {\n // freeze allowanceToSet\n trackedPrice.set.approvedAmount(allowanceToSet);\n\n // sign Permit\n signedPermitResult = await signPermitMut.signPermitAsync({\n value: allowanceToSet,\n });\n }\n }\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n assert(account, \"Account is not connected\");\n // as long as we had set approvedAmountRef, we will only get new prices that satisfy the allowance\n let marketPriceToUse = trackedPrice.get.usingPrice();\n // usingPriceRef.current can be null depending on reset() timing (e.g. inside retry)\n if (!marketPriceToUse) {\n marketPriceToUse = marketPrice || null;\n trackedPrice.set.usingPrice(marketPriceToUse);\n }\n assert(marketPriceToUse, \"Market price is not available\");\n\n const amountsAfterSlippage = applySlippage(\n {\n srcAmount: marketPriceToUse.srcAmount,\n destAmount: marketPriceToUse.destAmount,\n },\n resolvedSlippage,\n marketPriceToUse.side\n );\n\n // freeze final price to avoid any changes to displayed and result amounts\n trackedPrice.set.finalPrice(marketPriceToUse);\n\n // fresh gas params\n const gasParams = constructGasParams();\n\n const txParams = await buildTxMut.mutateAsync({\n swapTxInput: {\n userAddress: account,\n receiver: receiverAddress,\n srcToken: marketPriceToUse.srcToken,\n destToken: marketPriceToUse.destToken,\n srcDecimals: marketPriceToUse.srcDecimals,\n destDecimals: marketPriceToUse.destDecimals,\n\n partner,\n /* @TODO fill in when and if available\n referrer: \"\",\n partnerAddress: \"\",\n partnerFeeBps: 0, \n takeSurplus: false,*/\n permit: signedPermitResult?.permitEncodedArgs, // just signed Permit signature\n\n priceRoute: marketPriceToUse,\n ...amountsAfterSlippage,\n },\n\n swapTxOptions:\n // ignoreChecks: true,\n // ignoreGasEstimate: true,\n // ignoreAllowance: true,\n // onlyParams: true,\n // @TODO turn on ignore options when necessary (for Safe),\n gasParams,\n });\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n const swapTxHash = await sendSwapTxMut.sendTransactionAsync(txParams);\n\n // no use aborting past this point, tx is already sent,\n // but we may want to connect this late abortion to tx cancellation, in the future\n\n // tx is sent, consider Token nonce as used\n if (signedPermitResult) {\n markNonceAsUsed(signedPermitResult.signedPermitData);\n }\n\n try {\n const swapTxReceiptPromise = ensureTxReceipt({\n hash: swapTxHash,\n chainId,\n onReplaced: (data) => {\n console.log(\"onReplaced:swapTx\", swapTxHash, data);\n },\n });\n if (onTxSent) {\n onTxSent({\n chainId,\n txHash: swapTxHash,\n actionType: \"swap\",\n receiptPromise: swapTxReceiptPromise,\n });\n }\n\n const swapTxReceipt = await swapTxReceiptPromise;\n console.log(\"🚀 ~ swapTx ~ receipt:\", swapTxReceipt);\n // @TODO check if we need to see if receipt.status === \"reverted\" and trhow,\n // or if waitForTransactionReceipt already throws on such receipts\n\n // @TODO try catch, handle errors, refetch allowance and balance in finally\n\n return {\n tradeFlowType: \"marketSwap\",\n approve: {\n txHash: approveTxHash,\n receipt: approveTxReceipt,\n },\n swap: {\n txHash: swapTxHash,\n receipt: swapTxReceipt,\n },\n marketPrice: marketPriceToUse,\n // @TODO add whatever else may be relevant\n account,\n };\n } catch (error) {\n // Market swap failed, we can't be sure if nonce can be reused or it was incremented in a different tx\n // or even Order in the meantime\n if (signedPermitResult) {\n clearNonce(signedPermitResult.signedPermitData);\n }\n throw error;\n }\n };\n\n const invalidateTokenData = useInvalidateTokenDataQuery();\n\n const marketSwapMut = useMutation({\n mutationFn: submitSwapTx,\n mutationKey: [MARKET_SWAP_MUTATION_KEY],\n onSuccess: (data) => {\n console.log(\"Swap tx success\", data);\n },\n onError: (error) => {\n console.error(\"Swap tx error\", error);\n },\n onSettled: () => {\n console.log(\"Swap tx settled, invalidating balances and allowances\");\n invalidateTokenData({ nonces: true });\n trackedPrice.resetTrackedPrice();\n },\n });\n\n const runMarketSwapFlow = marketSwapMut.mutateAsync;\n\n const reset = () => {\n trackedPrice.resetTrackedPrice();\n approveTxMut.reset();\n signPermitMut.reset();\n buildTxMut.reset();\n sendSwapTxMut.reset();\n marketSwapMut.reset();\n };\n\n const retryFlow = (options?: RunMarketOptions): Promise<SubmitSwapResult> => {\n reset();\n return runMarketSwapFlow(options);\n };\n\n // finalPrice if we reached that point, or usable price (based on allowance given)\n const usedPrice =\n trackedPrice.get.finalPrice() ||\n trackedPrice.get.usingPrice() ||\n marketPrice;\n\n /* 7. return result */\n return {\n chainId,\n runMarketSwapFlow,\n reset,\n cancelFlow,\n retryFlow,\n approval,\n signPermit,\n buildTxParams,\n swap,\n // marketSwapMut includes all steps' queries and mutations and returns more precise errors (including cancellation)\n isPending: marketSwapMut.isPending,\n isSuccess: marketSwapMut.isSuccess,\n isError: marketSwapMut.isError,\n error: marketSwapMut.error,\n result: marketSwapMut.data,\n usedPrice,\n };\n}\n"],"names":["MARKET_SWAP_MUTATION_KEY","useMarketFlow","t0","$","_c","marketPrice","chainId","useChainId","resolvedSlippage","useSlippage","swapSide","useSwapSide","t1","price","slippage","side","trackedPrice","useTrackedPrice","t2","get","usingPrice","t3","srcToken","t4","srcAmount","approvedAmount","t5","t6","spenderContractType","approval","signPermit","approveTxMut","signPermitMut","useApproveOrPermit","t7","Symbol","for","onSuccess","_temp","onError","_temp2","t8","mutationOptions","buildTxMut","useBuildTx","t9","error","isError","isPending","isSuccess","buildTxParams","t10","_temp3","_temp4","sendSwapTxMut","useSendMarketSwapTx","t11","txHash","hash","swapTxMined","useAwaitTx","t12","isLoading","t13","t14","t15","data","receipt","isConfirmingTX","isConfirmingTxError","isTxSent","isTxPending","isTxMined","isTxAwaitingError","swap","address","account","useAccount","ensureTxReceipt","useEnsureTxReceipt","currentAbortControllerRef","useRef","t16","current","abort","UserCancelledError","cancelFlow","receiverAddress","useReceiverAddressValue","t17","markNonceAsUsed","clearNonce","useMarkPermit1Or2NonceAsUsed","constructGasParams","useConstructGasParams","partner","useWidgetConfig","t18","set","t19","onTxSent","undefined","reset","abortController","AbortController","signal","signedPermitResult","approveTxHash","approveTxReceipt","allowanceToSet","needsApproval","isPermitSupported","isPermitReadyToSign","approveAsync","allowanceData","throwIfAborted","approveTxReceiptPromise","onReplaced","console","log","actionType","receiptPromise","signPermitAsync","value","assert","marketPriceToUse","amountsAfterSlippage","applySlippage","destAmount","finalPrice","gasParams","txParams","mutateAsync","swapTxInput","userAddress","receiver","destToken","srcDecimals","destDecimals","permit","permitEncodedArgs","priceRoute","swapTxOptions","swapTxHash","sendTransactionAsync","signedPermitData","swapTxReceiptPromise","data_0","swapTxReceipt","tradeFlowType","approve","t20","submitSwapTx","invalidateTokenData","useInvalidateTokenDataQuery","nonces","resetTrackedPrice","t21","mutationFn","mutationKey","_temp5","_temp6","onSettled","marketSwapMut","useMutation","runMarketSwapFlow","t22","t23","options","retryFlow","t24","usedPrice","t25","result","error_2","data_1","error_0"],"mappings":";;;;;;;;;;;;;;;;;;;;AAyFA,MAAMA,wBAAAA,GAA2B,mBAAA;AAE1B,SAAAC,cAAAC,EAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAAuB,EAAA,MAAA;AAAA,IAAAC;AAAAA,GAAA,GAAAH,EAAAA;AAG5B,EAAA,MAAAI,UAAgBC,UAAAA,EAAW;AAC3B,EAAA,MAAA;AAAA,IAAAC;AAAAA,MAA6BC,WAAAA,EAAY;AACzC,EAAA,MAAAC,WAAiBC,WAAAA,EAAY;AAAE,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAT,CAAAA,CAAA,CAAA,CAAA,KAAAE,WAAAA,IAAAF,CAAAA,QAAAK,gBAAAA,IAAAL,CAAAA,CAAA,CAAA,CAAA,KAAAO,QAAAA,EAAA;AAEME,IAAAA,EAAAA,GAAA;AAAA,MAAAC,KAAAA,EAC5BR,WAAAA;AAAAA,MAAWS,QAAAA,EACRN,gBAAAA;AAAAA,MAAgBO,IAAAA,EACpBL;AAAAA,KAAQ;AACfP,IAAAA,CAAAA,MAAAE,WAAAA;AAAAF,IAAAA,CAAAA,MAAAK,gBAAAA;AAAAL,IAAAA,CAAAA,MAAAO,QAAAA;AAAAP,IAAAA,CAAAA,MAAAS,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAT,EAAA,CAAA,CAAA;AAAA;AAJD,EAAA,MAAAa,YAAAA,GAAqBC,gBAAgBL,EAIpC,CAAA;AAAE,EAAA,IAAAM,EAAAA;AAAA,EAAA,IAAAf,CAAAA,CAAA,CAAA,CAAA,KAAAa,YAAAA,CAAAG,GAAAA,EAAA;AAUgBD,IAAAA,EAAAA,GAAAF,YAAAA,CAAYG,IAAAC,UAAAA,EAAgB;AAACjB,IAAAA,CAAAA,CAAA,CAAA,IAAAa,YAAAA,CAAAG,GAAAA;AAAAhB,IAAAA,CAAAA,MAAAe,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAf,EAAA,CAAA,CAAA;AAAA;AAAhD,EAAA,MAAAiB,UAAAA,GAAmBF,EAAAA;AAGL,EAAA,MAAAG,EAAAA,GAAAD,UAAAA,EAAUE,QAAAA,IAAcjB,WAAAA,EAAWiB,QAAAA;AAAU,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAApB,CAAAA,CAAA,CAAA,CAAA,KAAAE,WAAAA,EAAAmB,aAAArB,CAAAA,CAAA,CAAA,CAAA,KAAAa,YAAAA,CAAAG,GAAAA,EAAA;AAE5CI,IAAAA,EAAAA,GAAAP,YAAAA,CAAYG,GAAAA,CAAAM,cAAAA,EAAoB,IAAKpB,WAAAA,EAAWmB,SAAAA;AAAWrB,IAAAA,CAAAA,CAAA,CAAA,IAAAE,WAAAA,EAAAmB,SAAAA;AAAArB,IAAAA,CAAAA,CAAA,CAAA,IAAAa,YAAAA,CAAAG,GAAAA;AAAAhB,IAAAA,CAAAA,MAAAoB,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAApB,EAAA,CAAA,CAAA;AAAA;AAG5D,EAAA,MAAAuB,EAAAA,GAAAN,YAAUL,IAAAA,IAAUL,QAAAA;AAAQ,EAAA,IAAAiB,EAAAA;AAAA,EAAA,IAAAxB,CAAAA,CAAA,CAAA,CAAA,KAAAkB,EAAAA,IAAAlB,CAAAA,SAAAoB,EAAAA,IAAApB,CAAAA,CAAA,EAAA,CAAA,KAAAuB,EAAAA,EAAA;AANrBC,IAAAA,EAAAA,GAAA;AAAA,MAAAL,QAAAA,EACPD,EAAAA;AAAAA,MAA6CG,SAAAA,EAE5CD,EAAAA;AAAAA,MAA2DK,mBAAAA,EACjD,iBAAA;AAAA,MAAiBlB,QAAAA,EAE5BgB;AAAAA,KAA4B;AACvCvB,IAAAA,CAAAA,MAAAkB,EAAAA;AAAAlB,IAAAA,CAAAA,OAAAoB,EAAAA;AAAApB,IAAAA,CAAAA,OAAAuB,EAAAA;AAAAvB,IAAAA,CAAAA,OAAAwB,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAxB,EAAA,EAAA,CAAA;AAAA;AARH,EAAA,MAAA;AAAA,IAAA0B,QAAAA;AAAAA,IAAAC,UAAAA;AAAAA,IAAAC,YAAAA;AAAAA,IAAAC;AAAAA,GAAA,GACEC,mBAAmBN,EAOlB,CAAA;AAAE,EAAA,IAAAO,EAAAA;AAAA,EAAA,IAAA/B,EAAA,EAAA,CAAA,KAAAgC,MAAAA,CAAAC,GAAAA,CAAA,2BAAA,CAAA,EAAA;AAKcF,IAAAA,EAAAA,GAAA;AAAA,MAAAG,SAAAA,EAAAC,KAAAA;AAAAA,MAAAC,OAAAA,EAAAC;AAAAA,KAAA;AAOhBrC,IAAAA,CAAAA,OAAA+B,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAA/B,EAAA,EAAA,CAAA;AAAA;AAAA,EAAA,IAAAsC,EAAAA;AAAA,EAAA,IAAAtC,CAAAA,SAAAG,OAAAA,EAAA;AAT2BmC,IAAAA,EAAAA,GAAA;AAAA,MAAAnC,OAAAA;AAAAA,MAAAoC,eAAAA,EAEXR;AAAAA,KAOhB;AACF/B,IAAAA,CAAAA,OAAAG,OAAAA;AAAAH,IAAAA,CAAAA,OAAAsC,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAtC,EAAA,EAAA,CAAA;AAAA;AAVD,EAAA,MAAAwC,UAAAA,GAAmBC,WAAWH,EAU7B,CAAA;AAAE,EAAA,IAAAI,EAAAA;AAAA,EAAA,IAAA1C,UAAAwC,WAAAG,KAAAA,IAAA3C,CAAAA,CAAA,EAAA,CAAA,KAAAwC,UAAAA,CAAAI,WAAA5C,CAAAA,CAAA,EAAA,MAAAwC,UAAAA,CAAAK,SAAAA,IAAA7C,EAAA,EAAA,CAAA,KAAAwC,WAAAM,SAAAA,EAAA;AAEyDJ,IAAAA,EAAAA,GAAA;AAAA,MAAAG,WAC/CL,UAAAA,CAAUK,SAAAA;AAAAA,MAAAD,SACZJ,UAAAA,CAAUI,OAAAA;AAAAA,MAAAE,WACRN,UAAAA,CAAUM,SAAAA;AAAAA,MAAAH,OACdH,UAAAA,CAAUG;AAAAA,KAAA;AAClB3C,IAAAA,CAAAA,CAAA,EAAA,IAAAwC,UAAAA,CAAAG,KAAAA;AAAA3C,IAAAA,CAAAA,CAAA,EAAA,IAAAwC,UAAAA,CAAAI,OAAAA;AAAA5C,IAAAA,CAAAA,CAAA,EAAA,IAAAwC,UAAAA,CAAAK,SAAAA;AAAA7C,IAAAA,CAAAA,CAAA,EAAA,IAAAwC,UAAAA,CAAAM,SAAAA;AAAA9C,IAAAA,CAAAA,OAAA0C,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAA1C,EAAA,EAAA,CAAA;AAAA;AALD,EAAA,MAAA+C,aAAAA,GAA4DL,EAAAA;AAK1D,EAAA,IAAAM,GAAAA;AAAA,EAAA,IAAAhD,EAAA,EAAA,CAAA,KAAAgC,MAAAA,CAAAC,GAAAA,CAAA,2BAAA,CAAA,EAAA;AAIwCe,IAAAA,GAAAA,GAAA;AAAA,MAAAd,SAAAA,EAAAe,MAAAA;AAAAA,MAAAb,OAAAA,EAAAc;AAAAA,KAAA;AAOzClD,IAAAA,CAAAA,OAAAgD,GAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,GAAAA,GAAAhD,EAAA,EAAA,CAAA;AAAA;AAPD,EAAA,MAAAmD,aAAAA,GAAsBC,oBAAoBJ,GAOzC,CAAA;AAAE,EAAA,IAAAK,GAAAA;AAAA,EAAA,IAAArD,CAAAA,SAAAG,OAAAA,IAAAH,EAAA,EAAA,CAAA,KAAAmD,cAAAG,MAAAA,EAAA;AAG4BD,IAAAA,GAAAA,GAAA;AAAA,MAAAE,MACvBJ,aAAAA,CAAaG,MAAAA;AAAAA,MAAAnD;AAAAA,KAAA;AAEpBH,IAAAA,CAAAA,OAAAG,OAAAA;AAAAH,IAAAA,CAAAA,CAAA,EAAA,IAAAmD,aAAAA,CAAAG,MAAAA;AAAAtD,IAAAA,CAAAA,OAAAqD,GAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,GAAAA,GAAArD,EAAA,EAAA,CAAA;AAAA;AAHD,EAAA,MAAAwD,WAAAA,GAAoBC,WAAWJ,GAG9B,CAAA;AAcY,EAAA,MAAAK,GAAAA,GAAAP,aAAAA,CAAaN,SAAAA,IAAcW,WAAAA,CAAWG,SAAAA;AAExC,EAAA,MAAAC,GAAAA,GAAAT,aAAAA,CAAaP,OAAAA,IAAYY,WAAAA,CAAWZ,OAAAA;AACtC,EAAA,MAAAiB,GAAAA,GAAAV,aAAAA,CAAaR,KAAAA,IAAUa,WAAAA,CAAWb,KAAAA;AAAM,EAAA,IAAAmB,GAAAA;AAAA,EAAA,IAAA9D,CAAAA,CAAA,EAAA,CAAA,KAAAmD,aAAAA,CAAAP,WAAA5C,CAAAA,CAAA,EAAA,CAAA,KAAAmD,aAAAA,CAAAN,SAAAA,IAAA7C,CAAAA,CAAA,EAAA,CAAA,KAAAmD,aAAAA,CAAAL,SAAAA,IAAA9C,CAAAA,CAAA,EAAA,CAAA,KAAAmD,cAAAG,MAAAA,IAAAtD,CAAAA,CAAA,EAAA,CAAA,KAAAwD,WAAAA,CAAAO,IAAAA,IAAA/D,EAAA,EAAA,CAAA,KAAAwD,WAAAA,CAAAZ,OAAAA,IAAA5C,CAAAA,CAAA,EAAA,MAAAwD,WAAAA,CAAAG,SAAAA,IAAA3D,CAAAA,CAAA,EAAA,CAAA,KAAAwD,WAAAA,CAAAV,aAAA9C,CAAAA,CAAA,EAAA,CAAA,KAAA0D,GAAAA,IAAA1D,CAAAA,CAAA,EAAA,MAAA4D,GAAAA,IAAA5D,CAAAA,CAAA,EAAA,CAAA,KAAA6D,GAAAA,EAAA;AAfPC,IAAAA,GAAAA,GAAA;AAAA,MAAAR,QAChCH,aAAAA,CAAaG,MAAAA;AAAAA,MAAAU,SACZR,WAAAA,CAAWO,IAAAA;AAAAA,MAAAE,gBAEJd,aAAAA,CAAaN,SAAAA;AAAAA,MAAAqB,qBACRf,aAAAA,CAAaP,OAAAA;AAAAA,MAAAuB,UACxBhB,aAAAA,CAAaL,SAAAA;AAAAA,MAAAsB,aAEVZ,WAAAA,CAAWG,SAAAA;AAAAA,MAAAU,WACbb,WAAAA,CAAWV,SAAAA;AAAAA,MAAAwB,mBACHd,WAAAA,CAAWZ,OAAAA;AAAAA,MAAAC,SAAAA,EAEnBa,GAAAA;AAAAA,MAAgDZ,WAChDU,WAAAA,CAAWV,SAAAA;AAAAA,MAAAF,OAAAA,EACbgB,GAAAA;AAAAA,MAA4CjB,KAAAA,EAC9CkB;AAAAA,KAAwC;AAChD7D,IAAAA,CAAAA,CAAA,EAAA,IAAAmD,aAAAA,CAAAP,OAAAA;AAAA5C,IAAAA,CAAAA,CAAA,EAAA,IAAAmD,aAAAA,CAAAN,SAAAA;AAAA7C,IAAAA,CAAAA,CAAA,EAAA,IAAAmD,aAAAA,CAAAL,SAAAA;AAAA9C,IAAAA,CAAAA,CAAA,EAAA,IAAAmD,aAAAA,CAAAG,MAAAA;AAAAtD,IAAAA,CAAAA,CAAA,EAAA,IAAAwD,WAAAA,CAAAO,IAAAA;AAAA/D,IAAAA,CAAAA,CAAA,EAAA,IAAAwD,WAAAA,CAAAZ,OAAAA;AAAA5C,IAAAA,CAAAA,CAAA,EAAA,IAAAwD,WAAAA,CAAAG,SAAAA;AAAA3D,IAAAA,CAAAA,CAAA,EAAA,IAAAwD,WAAAA,CAAAV,SAAAA;AAAA9C,IAAAA,CAAAA,OAAA0D,GAAAA;AAAA1D,IAAAA,CAAAA,OAAA4D,GAAAA;AAAA5D,IAAAA,CAAAA,OAAA6D,GAAAA;AAAA7D,IAAAA,CAAAA,OAAA8D,GAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,GAAAA,GAAA9D,EAAA,EAAA,CAAA;AAAA;AAhBD,EAAA,MAAAuE,IAAAA,GAA0CT,GAAAA;AAkB1C,EAAA,MAAA;AAAA,IAAAU,OAAAA,EAAAC;AAAAA,MAA6BC,UAAAA,EAAW;AAExC,EAAA,MAAAC,kBAAwBC,kBAAAA,EAAmB;AAG3C,EAAA,MAAAC,yBAAAA,GAAkCC,OAAA,IAAmC,CAAA;AAAE,EAAA,IAAAC,GAAAA;AAAA,EAAA,IAAA/E,EAAA,EAAA,CAAA,KAAAgC,MAAAA,CAAAC,GAAAA,CAAA,2BAAA,CAAA,EAAA;AAEpD8C,IAAAA,GAAAA,GAAAA,MAAA;AACjBF,MAAAA,yBAAAA,CAAyBG,OAAAA,EAAAC,KAAAA,KAAAC,kBAAAA,EAAA,CAAA;AACzBL,MAAAA,yBAAAA,CAAyBG,OAAAA,GAAA,IAAA;AAAA,KAAA;AAC1BhF,IAAAA,CAAAA,OAAA+E,GAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,GAAAA,GAAA/E,EAAA,EAAA,CAAA;AAAA;AAHD,EAAA,MAAAmF,UAAAA,GAAmBJ,GAAAA;AAKnB,EAAA,MAAAK,kBAAwBC,uBAAAA,EAAwB;AAAE,EAAA,IAAAC,GAAAA;AAAA,EAAA,IAAAtF,CAAAA,SAAAG,OAAAA,EAAA;AAEmBmF,IAAAA,GAAAA,GAAA;AAAA,MAAAnF;AAAAA,KAAA;AAEpEH,IAAAA,CAAAA,OAAAG,OAAAA;AAAAH,IAAAA,CAAAA,OAAAsF,GAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,GAAAA,GAAAtF,EAAA,EAAA,CAAA;AAAA;AAFD,EAAA,MAAA;AAAA,IAAAuF,eAAAA;AAAAA,IAAAC;AAAAA,GAAA,GAAwCC,6BAA6BH,GAEpE,CAAA;AAED,EAAA,MAAA;AAAA,IAAAI;AAAAA,MAA+BC,qBAAAA,EAAsB;AAErD,EAAA,MAAAC,OAAAA,GAAgBC,iBAAgB,CAACD,OAAAA;AAAS,EAAA,IAAAE,GAAAA;AAAA,EAAA,IAAA9F,CAAAA,CAAA,EAAA,CAAA,KAAAyE,OAAAA,IAAAzE,EAAA,EAAA,CAAA,KAAA0B,QAAAA,IAAA1B,CAAAA,SAAA4B,YAAAA,IAAA5B,CAAAA,CAAA,EAAA,MAAAwC,UAAAA,IAAAxC,CAAAA,CAAA,EAAA,CAAA,KAAAG,OAAAA,IAAAH,CAAAA,CAAA,EAAA,CAAA,KAAAwF,cAAAxF,CAAAA,CAAA,EAAA,CAAA,KAAA0F,kBAAAA,IAAA1F,UAAA2E,eAAAA,IAAA3E,CAAAA,CAAA,EAAA,CAAA,KAAAuF,eAAAA,IAAAvF,CAAAA,CAAA,EAAA,CAAA,KAAAE,WAAAA,IAAAF,CAAAA,CAAA,EAAA,MAAA4F,OAAAA,IAAA5F,CAAAA,CAAA,EAAA,CAAA,KAAAoF,mBAAApF,CAAAA,CAAA,EAAA,CAAA,KAAAK,gBAAAA,IAAAL,UAAAmD,aAAAA,IAAAnD,CAAAA,CAAA,EAAA,CAAA,KAAA2B,UAAAA,IAAA3B,CAAAA,CAAA,EAAA,MAAA6B,aAAAA,IAAA7B,CAAAA,CAAA,EAAA,CAAA,KAAAa,aAAAG,GAAAA,IAAAhB,CAAAA,CAAA,EAAA,CAAA,KAAAa,aAAAkF,GAAAA,EAAA;AAEqBD,IAAAA,GAAAA,UAAAE,IAAAA,KAAA;AAAO,MAAA,MAAA;AAAA,QAAAC;AAAAA,OAAA,GAAAD,IAAAA,KAEhEE,MAAAA,GAAA,EAAA,GAFgEF,IAAAA;AAKpEpE,MAAAA,YAAAA,CAAYuE,KAAAA,EAAO;AACnBtE,MAAAA,aAAAA,CAAasE,KAAAA,EAAO;AACpB3D,MAAAA,UAAAA,CAAU2D,KAAAA,EAAO;AACjBhD,MAAAA,aAAAA,CAAagD,KAAAA,EAAO;AAEpB,MAAA,MAAAC,eAAAA,OAAAC,eAAAA,EAAA;AACAxB,MAAAA,yBAAAA,CAAyBG,OAAAA,GAAWoB,eAAAA;AAEpC,MAAA,MAAAE,SAAeF,eAAAA,CAAeE,MAAAA;AAE1BC,MAAAA,IAAAA,kBAAAA;AAEAC,MAAAA,IAAAA,aAAAA;AACAC,MAAAA,IAAAA,gBAAAA;AAGJ,MAAA,MAAAC,iBAAuBhF,QAAAA,CAAQgF,cAAAA;AAAgB,MAAA,IAG3ChF,SAAQiF,aAAAA,EAAA;AAAA,QAAA,IAEN,CAAChF,UAAAA,CAAUiF,iBAAAA,IAAA,CAAuBjF,WAAUkF,mBAAAA,EAAoB;AAElEhG,UAAAA,YAAAA,CAAYkF,GAAAA,CAAAzE,eAAoBoF,cAAc,CAAA;AAI9CF,UAAAA,aAAAA,GAAAA,MAAsB5E,aAAYkF,YAAAA,CAAA;AAAA,YAAAC,aAAAA,EAAA;AAAA,cAAAL;AAAAA;AAAA,WAIjC,CAAA;AAGDJ,UAAAA,MAAAA,CAAMU,cAAAA,EAAgB;AAEtB,UAAA,MAAAC,0BAAgCtC,eAAAA,CAAe;AAAA,YAAApB,IAAAA,EACvCiD,aAAAA;AAAAA,YAAarG,OAAAA;AAAAA,YAAA+G,YAAAnD,CAAAA,IAAAA,KAAA;AAGjBoD,cAAAA,OAAAA,CAAAC,GAAAA,CAAY,sBAAA,EAAwBZ,aAAAA,EAAezC,IAAI,CAAA;AAAA;AAAC,WAE3D,CAAA;AAAE,UAAA,IAECkC,QAAAA,EAAQ;AACVA,YAAAA,QAAAA,CAAQ;AAAA,cAAA9F,OAAAA;AAAAA,cAAAmD,MAAAA,EAEEkD,aAAAA;AAAAA,cAAaa,UAAAA,EACT,SAAA;AAAA,cAASC,cAAAA,EACLL;AAAAA,aACjB,CAAA;AAAA;AAGHR,UAAAA,gBAAAA,GAAAA,MAAyBQ,uBAAAA;AAEzBE,UAAAA,OAAAA,CAAAC,GAAAA,CAAY,6BAA6BX,gBAAgB,CAAA;AAAA,SAAC,MAAA;AAK1D5F,UAAAA,YAAAA,CAAYkF,GAAAA,CAAAzE,eAAoBoF,cAAc,CAAA;AAG9CH,UAAAA,kBAAAA,GAAAA,MAA2B1E,cAAa0F,eAAAA,CAAA;AAAA,YAAAC,KAAAA,EAC/Bd;AAAAA,WACR,CAAA;AAAA;AAFiB;AAOtBJ,MAAAA,MAAAA,CAAMU,cAAAA,EAAgB;AAEtBS,MAAAA,MAAAA,CAAOhD,SAAS,0BAA0B,CAAA;AAE1C,MAAA,IAAAiD,gBAAAA,GAAuB7G,YAAAA,CAAYG,GAAAA,CAAAC,UAAAA,EAAgB;AAAE,MAAA,IAAA,CAEhDyG,gBAAAA,EAAgB;AACnBA,QAAAA,gBAAAA,GAAmBxH,WAAAA,IAAW,IAAA;AAC9BW,QAAAA,YAAAA,CAAYkF,GAAAA,CAAA9E,WAAgByG,gBAAgB,CAAA;AAAA;AAE9CD,MAAAA,MAAAA,CAAOC,kBAAkB,+BAA+B,CAAA;AAExD,MAAA,MAAAC,uBAA6BC,aAAAA,CAAA;AAAA,QAAAvG,WAEdqG,gBAAAA,CAAgBrG,SAAAA;AAAAA,QAAAwG,YACfH,gBAAAA,CAAgBG;AAAAA,OAAA,EAE9BxH,gBAAAA,EACAqH,gBAAAA,CAAgB9G,IAClB,CAAA;AAGAC,MAAAA,YAAAA,CAAYkF,GAAAA,CAAA+B,WAAgBJ,gBAAgB,CAAA;AAG5C,MAAA,MAAAK,YAAkBrC,kBAAAA,EAAmB;AAErC,MAAA,MAAAsC,QAAAA,GAAA,MAAuBxF,UAAAA,CAAUyF,WAAAA,CAAA;AAAA,QAAAC,WAAAA,EAAA;AAAA,UAAAC,WAAAA,EAEhB1D,OAAAA;AAAAA,UAAO2D,QAAAA,EACVhD,eAAAA;AAAAA,UAAejE,UACfuG,gBAAAA,CAAgBvG,QAAAA;AAAAA,UAAAkH,WACfX,gBAAAA,CAAgBW,SAAAA;AAAAA,UAAAC,aACdZ,gBAAAA,CAAgBY,WAAAA;AAAAA,UAAAC,cACfb,gBAAAA,CAAgBa,YAAAA;AAAAA,UAAA3C,OAAAA;AAAAA,UAAA4C,QAQtBjC,kBAAAA,EAAkBkC,iBAAAA;AAAAA,UAAAC,UAAAA,EAEdhB,gBAAAA;AAAAA,UAAgB,GACzBC;AAAAA,SAAoB;AAAA,QAAAgB,aAAAA,EASvBZ;AAAAA,OACH,CAAA;AAGDzB,MAAAA,MAAAA,CAAMU,cAAAA,EAAgB;AAEtB,MAAA,MAAA4B,UAAAA,GAAA,MAAyBzF,aAAAA,CAAa0F,oBAAAA,CAAsBb,QAAQ,CAAA;AAAE,MAAA,IAMlEzB,kBAAAA,EAAkB;AACpBhB,QAAAA,eAAAA,CAAgBgB,mBAAkBuC,gBAAiB,CAAA;AAAA;AAAC,MAAA,IAAA;AAIpD,QAAA,MAAAC,uBAA6BpE,eAAAA,CAAe;AAAA,UAAApB,IAAAA,EACpCqF,UAAAA;AAAAA,UAAUzI,OAAAA;AAAAA,UAAA+G,YAAA8B,CAAAA,MAAAA,KAAA;AAGd7B,YAAAA,OAAAA,CAAAC,GAAAA,CAAY,mBAAA,EAAqBwB,UAAAA,EAAY7E,MAAI,CAAA;AAAA;AAAC,SAErD,CAAA;AAAE,QAAA,IACCkC,QAAAA,EAAQ;AACVA,UAAAA,QAAAA,CAAQ;AAAA,YAAA9F,OAAAA;AAAAA,YAAAmD,MAAAA,EAEEsF,UAAAA;AAAAA,YAAUvB,UAAAA,EACN,MAAA;AAAA,YAAMC,cAAAA,EACFyB;AAAAA,WACjB,CAAA;AAAA;AAGH,QAAA,MAAAE,sBAA4BF,oBAAAA;AAC5B5B,QAAAA,OAAAA,CAAAC,GAAAA,CAAY,0BAA0B6B,aAAa,CAAA;AAAC,QAAA,OAAA;AAAA,UAAAC,aAAAA,EAOnC,YAAA;AAAA,UAAYC,OAAAA,EAAA;AAAA,YAAA7F,MAAAA,EAEjBkD,aAAAA;AAAAA,YAAaxC,OAAAA,EACZyC;AAAAA,WAAgB;AAAA,UAAAlC,IAAAA,EAAA;AAAA,YAAAjB,MAAAA,EAGjBsF,UAAAA;AAAAA,YAAU5E,OAAAA,EACTiF;AAAAA,WAAa;AAAA,UAAA/I,WAAAA,EAEXwH,gBAAAA;AAAAA,UAAgBjD;AAAAA,SAAA;AAAA,eAAA2E,IAAAA,EAAA;AAIxBzG,QAAAA,MAAAA,OAAAA,GAAAA,IAAAA;AAAK,QAAA,IAGR4D,kBAAAA,EAAkB;AACpBf,UAAAA,UAAAA,CAAWe,mBAAkBuC,gBAAiB,CAAA;AAAA;AAAC,QAAA,MAE3CnG,OAAAA;AAAAA;AAAK,KAAA;AAEd3C,IAAAA,CAAAA,OAAAyE,OAAAA;AAAAzE,IAAAA,CAAAA,OAAA0B,QAAAA;AAAA1B,IAAAA,CAAAA,OAAA4B,YAAAA;AAAA5B,IAAAA,CAAAA,OAAAwC,UAAAA;AAAAxC,IAAAA,CAAAA,OAAAG,OAAAA;AAAAH,IAAAA,CAAAA,OAAAwF,UAAAA;AAAAxF,IAAAA,CAAAA,OAAA0F,kBAAAA;AAAA1F,IAAAA,CAAAA,OAAA2E,eAAAA;AAAA3E,IAAAA,CAAAA,OAAAuF,eAAAA;AAAAvF,IAAAA,CAAAA,OAAAE,WAAAA;AAAAF,IAAAA,CAAAA,OAAA4F,OAAAA;AAAA5F,IAAAA,CAAAA,OAAAoF,eAAAA;AAAApF,IAAAA,CAAAA,OAAAK,gBAAAA;AAAAL,IAAAA,CAAAA,OAAAmD,aAAAA;AAAAnD,IAAAA,CAAAA,OAAA2B,UAAAA;AAAA3B,IAAAA,CAAAA,OAAA6B,aAAAA;AAAA7B,IAAAA,CAAAA,CAAA,EAAA,IAAAa,YAAAA,CAAAG,GAAAA;AAAAhB,IAAAA,CAAAA,CAAA,EAAA,IAAAa,YAAAA,CAAAkF,GAAAA;AAAA/F,IAAAA,CAAAA,OAAA8F,GAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,GAAAA,GAAA9F,EAAA,EAAA,CAAA;AAAA;AA/LD,EAAA,MAAAqJ,YAAAA,GAA+DvD,GAAAA;AAiM/D,EAAA,MAAAwD,sBAA4BC,2BAAAA,EAA4B;AAAE,EAAA,IAAAvD,GAAAA;AAAA,EAAA,IAAAhG,EAAA,EAAA,CAAA,KAAAgC,MAAAA,CAAAC,GAAAA,CAAA,2BAAA,CAAA,EAAA;AAI3C+D,IAAAA,GAAAA,IAAAnG,wBAAA,CAAA;AAA0BG,IAAAA,CAAAA,OAAAgG,GAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,GAAAA,GAAAhG,EAAA,EAAA,CAAA;AAAA;AAAA,EAAA,IAAAoJ,GAAAA;AAAA,EAAA,IAAApJ,EAAA,EAAA,CAAA,KAAAsJ,uBAAAtJ,CAAAA,SAAAa,YAAAA,EAAA;AAO5BuI,IAAAA,GAAAA,GAAAA,MAAA;AACTjC,MAAAA,OAAAA,CAAAC,IAAY,uDAAuD,CAAA;AACnEkC,MAAAA,mBAAAA,CAAmB;AAAA,QAAAE,MAAAA,EAAA;AAAA,OAAiB,CAAA;AACpC3I,MAAAA,YAAAA,CAAY4I,iBAAAA,EAAmB;AAAA,KAAC;AACjCzJ,IAAAA,CAAAA,OAAAsJ,mBAAAA;AAAAtJ,IAAAA,CAAAA,OAAAa,YAAAA;AAAAb,IAAAA,CAAAA,OAAAoJ,GAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,GAAAA,GAAApJ,EAAA,EAAA,CAAA;AAAA;AAAA,EAAA,IAAA0J,GAAAA;AAAA,EAAA,IAAA1J,EAAA,EAAA,CAAA,KAAAqJ,gBAAArJ,CAAAA,SAAAoJ,GAAAA,EAAA;AAb+BM,IAAAA,GAAAA,GAAA;AAAA,MAAAC,UAAAA,EACpBN,YAAAA;AAAAA,MAAYO,WAAAA,EACX5D,GAAAA;AAAAA,MAA0B9D,SAAAA,EAAA2H,MAAAA;AAAAA,MAAAzH,OAAAA,EAAA0H,MAAAA;AAAAA,MAAAC,SAAAA,EAO5BX;AAAAA,KAIV;AACFpJ,IAAAA,CAAAA,OAAAqJ,YAAAA;AAAArJ,IAAAA,CAAAA,OAAAoJ,GAAAA;AAAApJ,IAAAA,CAAAA,OAAA0J,GAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,GAAAA,GAAA1J,EAAA,EAAA,CAAA;AAAA;AAdD,EAAA,MAAAgK,aAAAA,GAAsBC,YAAYP,GAcjC,CAAA;AAED,EAAA,MAAAQ,oBAA0BF,aAAAA,CAAa/B,WAAAA;AAAa,EAAA,IAAAkC,GAAAA;AAAA,EAAA,IAAAnK,CAAAA,SAAA4B,YAAAA,IAAA5B,EAAA,EAAA,CAAA,KAAAwC,UAAAA,IAAAxC,CAAAA,CAAA,EAAA,CAAA,KAAAgK,iBAAAhK,CAAAA,CAAA,EAAA,CAAA,KAAAmD,aAAAA,IAAAnD,CAAAA,SAAA6B,aAAAA,IAAA7B,CAAAA,CAAA,EAAA,CAAA,KAAAa,YAAAA,EAAA;AAEtCsJ,IAAAA,GAAAA,GAAAA,MAAA;AACZtJ,MAAAA,YAAAA,CAAY4I,iBAAAA,EAAmB;AAC/B7H,MAAAA,YAAAA,CAAYuE,KAAAA,EAAO;AACnBtE,MAAAA,aAAAA,CAAasE,KAAAA,EAAO;AACpB3D,MAAAA,UAAAA,CAAU2D,KAAAA,EAAO;AACjBhD,MAAAA,aAAAA,CAAagD,KAAAA,EAAO;AACpB6D,MAAAA,aAAAA,CAAa7D,KAAAA,EAAO;AAAA,KAAC;AACtBnG,IAAAA,CAAAA,OAAA4B,YAAAA;AAAA5B,IAAAA,CAAAA,OAAAwC,UAAAA;AAAAxC,IAAAA,CAAAA,OAAAgK,aAAAA;AAAAhK,IAAAA,CAAAA,OAAAmD,aAAAA;AAAAnD,IAAAA,CAAAA,OAAA6B,aAAAA;AAAA7B,IAAAA,CAAAA,OAAAa,YAAAA;AAAAb,IAAAA,CAAAA,OAAAmK,GAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,GAAAA,GAAAnK,EAAA,EAAA,CAAA;AAAA;AAPD,EAAA,MAAAmG,KAAAA,GAAcgE,GAAAA;AAOZ,EAAA,IAAAC,GAAAA;AAAA,EAAA,IAAApK,EAAA,EAAA,CAAA,KAAAmG,SAAAnG,CAAAA,SAAAkK,iBAAAA,EAAA;AAEgBE,IAAAA,GAAAA,GAAAC,CAAAA,OAAAA,KAAA;AAChBlE,MAAAA,KAAAA,EAAM;AAAC,MAAA,OACA+D,kBAAkBG,OAAO,CAAA;AAAA,KAAC;AAClCrK,IAAAA,CAAAA,OAAAmG,KAAAA;AAAAnG,IAAAA,CAAAA,OAAAkK,iBAAAA;AAAAlK,IAAAA,CAAAA,OAAAoK,GAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,GAAAA,GAAApK,EAAA,EAAA,CAAA;AAAA;AAHD,EAAA,MAAAsK,SAAAA,GAAkBF,GAAAA;AAGhB,EAAA,IAAAG,GAAAA;AAAA,EAAA,IAAAvK,CAAAA,SAAAE,WAAAA,IAAAF,EAAA,EAAA,CAAA,KAAAa,aAAAG,GAAAA,EAAA;AAIAuJ,IAAAA,GAAAA,GAAA1J,aAAYG,GAAAA,CAAA8G,UAAAA,MACZjH,YAAAA,CAAYG,GAAAA,CAAAC,YAAgB,IAC5Bf,WAAAA;AAAWF,IAAAA,CAAAA,OAAAE,WAAAA;AAAAF,IAAAA,CAAAA,CAAA,EAAA,IAAAa,YAAAA,CAAAG,GAAAA;AAAAhB,IAAAA,CAAAA,OAAAuK,GAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,GAAAA,GAAAvK,EAAA,EAAA,CAAA;AAAA;AAHb,EAAA,MAAAwK,SAAAA,GACED,GAAAA;AAEY,EAAA,IAAAE,GAAAA;AAAA,EAAA,IAAAzK,CAAAA,CAAA,EAAA,CAAA,KAAA0B,QAAAA,IAAA1B,CAAAA,CAAA,EAAA,CAAA,KAAA+C,aAAAA,IAAA/C,CAAAA,CAAA,EAAA,CAAA,KAAAG,OAAAA,IAAAH,CAAAA,CAAA,EAAA,CAAA,KAAAgK,aAAAA,CAAAjG,IAAAA,IAAA/D,CAAAA,CAAA,EAAA,CAAA,KAAAgK,aAAAA,CAAArH,KAAAA,IAAA3C,CAAAA,CAAA,EAAA,CAAA,KAAAgK,aAAAA,CAAApH,OAAAA,IAAA5C,CAAAA,CAAA,EAAA,CAAA,KAAAgK,aAAAA,CAAAnH,SAAAA,IAAA7C,CAAAA,CAAA,EAAA,CAAA,KAAAgK,aAAAA,CAAAlH,SAAAA,IAAA9C,CAAAA,CAAA,EAAA,CAAA,KAAAmG,KAAAA,IAAAnG,CAAAA,CAAA,EAAA,CAAA,KAAAsK,SAAAA,IAAAtK,CAAAA,CAAA,EAAA,CAAA,KAAAkK,iBAAAA,IAAAlK,CAAAA,CAAA,EAAA,CAAA,KAAA2B,UAAAA,IAAA3B,CAAAA,CAAA,EAAA,CAAA,KAAAuE,IAAAA,IAAAvE,CAAAA,SAAAwK,SAAAA,EAAA;AAGPC,IAAAA,GAAAA,GAAA;AAAA,MAAAtK,OAAAA;AAAAA,MAAA+J,iBAAAA;AAAAA,MAAA/D,KAAAA;AAAAA,MAAAhB,UAAAA;AAAAA,MAAAmF,SAAAA;AAAAA,MAAA5I,QAAAA;AAAAA,MAAAC,UAAAA;AAAAA,MAAAoB,aAAAA;AAAAA,MAAAwB,IAAAA;AAAAA,MAAA1B,WAWMmH,aAAAA,CAAanH,SAAAA;AAAAA,MAAAC,WACbkH,aAAAA,CAAalH,SAAAA;AAAAA,MAAAF,SACfoH,aAAAA,CAAapH,OAAAA;AAAAA,MAAAD,OACfqH,aAAAA,CAAarH,KAAAA;AAAAA,MAAA+H,QACZV,aAAAA,CAAajG,IAAAA;AAAAA,MAAAyG;AAAAA,KAAA;AAEtBxK,IAAAA,CAAAA,OAAA0B,QAAAA;AAAA1B,IAAAA,CAAAA,OAAA+C,aAAAA;AAAA/C,IAAAA,CAAAA,OAAAG,OAAAA;AAAAH,IAAAA,CAAAA,CAAA,EAAA,IAAAgK,aAAAA,CAAAjG,IAAAA;AAAA/D,IAAAA,CAAAA,CAAA,EAAA,IAAAgK,aAAAA,CAAArH,KAAAA;AAAA3C,IAAAA,CAAAA,CAAA,EAAA,IAAAgK,aAAAA,CAAApH,OAAAA;AAAA5C,IAAAA,CAAAA,CAAA,EAAA,IAAAgK,aAAAA,CAAAnH,SAAAA;AAAA7C,IAAAA,CAAAA,CAAA,EAAA,IAAAgK,aAAAA,CAAAlH,SAAAA;AAAA9C,IAAAA,CAAAA,OAAAmG,KAAAA;AAAAnG,IAAAA,CAAAA,OAAAsK,SAAAA;AAAAtK,IAAAA,CAAAA,OAAAkK,iBAAAA;AAAAlK,IAAAA,CAAAA,OAAA2B,UAAAA;AAAA3B,IAAAA,CAAAA,OAAAuE,IAAAA;AAAAvE,IAAAA,CAAAA,OAAAwK,SAAAA;AAAAxK,IAAAA,CAAAA,OAAAyK,GAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,GAAAA,GAAAzK,EAAA,EAAA,CAAA;AAAA;AAAA,EAAA,OAjBMyK,GAAAA;AAiBN;AAxWI,SAAAX,OAAAa,OAAAA,EAAA;AAuTDxD,EAAAA,OAAAA,CAAAxE,KAAAA,CAAc,iBAAiBA,OAAK,CAAA;AAAC;AAvTpC,SAAAkH,OAAAe,MAAAA,EAAA;AAoTDzD,EAAAA,OAAAA,CAAAC,GAAAA,CAAY,mBAAmBrD,MAAI,CAAA;AAAC;AApTnC,SAAAb,OAAA2H,OAAAA,EAAA;AA2DD1D,EAAAA,OAAAA,CAAAxE,KAAAA,CAAc,iBAAiBA,OAAK,CAAA;AAAC;AA3DpC,SAAAM,MAAAA,GAAA;AAwDDkE,EAAAA,OAAAA,CAAAC,IAAY,iBAAiB,CAAA;AAAC;AAxD7B,SAAA/E,OAAAM,KAAAA,EAAA;AAwCCwE,EAAAA,OAAAA,CAAAxE,KAAAA,CAAc,kBAAkBA,KAAK,CAAA;AAAC;AAxCvC,SAAAR,KAAAA,GAAA;AAqCCgF,EAAAA,OAAAA,CAAAC,IAAY,kBAAkB,CAAA;AAAC;;;;"}
|
|
@@ -4,11 +4,14 @@ type UseMarketSwapStepResult = {
|
|
|
4
4
|
startMarketSwap: UseMarketFlowResult["runMarketSwapFlow"];
|
|
5
5
|
reset: UseMarketFlowResult["reset"];
|
|
6
6
|
cancelFlow: UseMarketFlowResult["cancelFlow"];
|
|
7
|
+
retryFlow: UseMarketFlowResult["retryFlow"];
|
|
7
8
|
isCancellable: boolean;
|
|
8
9
|
step?: MarketSwapStepKey;
|
|
9
10
|
explorerLink?: string;
|
|
10
11
|
error: Error | null;
|
|
12
|
+
erroredStep?: MarketSwapStepKey;
|
|
11
13
|
result?: SubmitSwapResult;
|
|
14
|
+
usedPrice: UseMarketFlowResult["usedPrice"];
|
|
12
15
|
};
|
|
13
16
|
export declare function useMarketSwapStep(options: UseMarketFlowInput): UseMarketSwapStepResult;
|
|
14
17
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMarketSwapStep.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useMarketSwapStep.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACtB,MAAM,iBAAiB,CAAC;AAKzB,KAAK,uBAAuB,GAAG;IAC7B,eAAe,EAAE,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;IAE1D,KAAK,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACpC,UAAU,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAC9C,aAAa,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"useMarketSwapStep.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useMarketSwapStep.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACtB,MAAM,iBAAiB,CAAC;AAKzB,KAAK,uBAAuB,GAAG;IAC7B,eAAe,EAAE,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;IAE1D,KAAK,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACpC,UAAU,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAC9C,SAAS,EAAE,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC5C,aAAa,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,SAAS,EAAE,mBAAmB,CAAC,WAAW,CAAC,CAAC;CAC7C,CAAC;AAIF,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,kBAAkB,GAC1B,uBAAuB,CAwGzB"}
|
|
@@ -6,11 +6,12 @@ import 'tailwind-merge';
|
|
|
6
6
|
import { isUserCancelledError } from './common/errors.js';
|
|
7
7
|
|
|
8
8
|
function useMarketSwapStep(options) {
|
|
9
|
-
const $ = distExports.c(
|
|
9
|
+
const $ = distExports.c(19);
|
|
10
10
|
const marketFlow = useMarketFlow(options);
|
|
11
11
|
const startMarketSwap = marketFlow.runMarketSwapFlow;
|
|
12
12
|
const reset = marketFlow.reset;
|
|
13
13
|
const cancelFlow = marketFlow.cancelFlow;
|
|
14
|
+
const retryFlow = marketFlow.retryFlow;
|
|
14
15
|
let step;
|
|
15
16
|
const permitSigningHappeningOrNeverHappened = marketFlow.signPermit.isPending || !marketFlow.signPermit.isPermitSigned;
|
|
16
17
|
const approvalHappeningOrNeverHappened = marketFlow.approval.isPending || !marketFlow.approval.isSuccess;
|
|
@@ -59,29 +60,49 @@ function useMarketSwapStep(options) {
|
|
|
59
60
|
t0 = $[6];
|
|
60
61
|
}
|
|
61
62
|
const error = t0;
|
|
63
|
+
let erroredStep;
|
|
64
|
+
if (marketFlow.isError) {
|
|
65
|
+
if (marketFlow.approval.isError || marketFlow.signPermit.isError) {
|
|
66
|
+
erroredStep = "approve-spending";
|
|
67
|
+
} else {
|
|
68
|
+
if (marketFlow.buildTxParams.isError || marketFlow.swap.isConfirmingTxError) {
|
|
69
|
+
erroredStep = "swap-tx-confirmation";
|
|
70
|
+
} else {
|
|
71
|
+
if (marketFlow.swap.isTxAwaitingError) {
|
|
72
|
+
erroredStep = "swap-tx-execution";
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
62
77
|
let t1;
|
|
63
|
-
if ($[7] !== cancelFlow || $[8] !== error || $[9] !==
|
|
78
|
+
if ($[7] !== cancelFlow || $[8] !== error || $[9] !== erroredStep || $[10] !== explorerLink || $[11] !== isCancellable || $[12] !== marketFlow.result || $[13] !== marketFlow.usedPrice || $[14] !== reset || $[15] !== retryFlow || $[16] !== startMarketSwap || $[17] !== step) {
|
|
64
79
|
t1 = {
|
|
65
80
|
startMarketSwap,
|
|
66
81
|
reset,
|
|
67
82
|
cancelFlow,
|
|
83
|
+
retryFlow,
|
|
68
84
|
isCancellable,
|
|
69
85
|
step,
|
|
70
86
|
explorerLink,
|
|
71
87
|
error,
|
|
72
|
-
|
|
88
|
+
erroredStep,
|
|
89
|
+
result: marketFlow.result,
|
|
90
|
+
usedPrice: marketFlow.usedPrice
|
|
73
91
|
};
|
|
74
92
|
$[7] = cancelFlow;
|
|
75
93
|
$[8] = error;
|
|
76
|
-
$[9] =
|
|
77
|
-
$[10] =
|
|
78
|
-
$[11] =
|
|
79
|
-
$[12] =
|
|
80
|
-
$[13] =
|
|
81
|
-
$[14] =
|
|
82
|
-
$[15] =
|
|
94
|
+
$[9] = erroredStep;
|
|
95
|
+
$[10] = explorerLink;
|
|
96
|
+
$[11] = isCancellable;
|
|
97
|
+
$[12] = marketFlow.result;
|
|
98
|
+
$[13] = marketFlow.usedPrice;
|
|
99
|
+
$[14] = reset;
|
|
100
|
+
$[15] = retryFlow;
|
|
101
|
+
$[16] = startMarketSwap;
|
|
102
|
+
$[17] = step;
|
|
103
|
+
$[18] = t1;
|
|
83
104
|
} else {
|
|
84
|
-
t1 = $[
|
|
105
|
+
t1 = $[18];
|
|
85
106
|
}
|
|
86
107
|
return t1;
|
|
87
108
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMarketSwapStep.js","sources":["../../../../src/hooks/swap/tradeFlow/useMarketSwapStep.ts"],"sourcesContent":["import type { MarketSwapStepKey } from \"@/components/widget/TradeOverview/steps\";\nimport {\n useMarketFlow,\n type UseMarketFlowInput,\n type UseMarketFlowResult,\n type SubmitSwapResult,\n} from \"./useMarketFlow\";\nimport { constructTxLinkForChain } from \"@/lib/utils/explorer\";\nimport { createLogger } from \"@/lib/utils\";\nimport { isUserCancelledError } from \"./common/errors\";\n\ntype UseMarketSwapStepResult = {\n startMarketSwap: UseMarketFlowResult[\"runMarketSwapFlow\"];\n // @TODO check if resetting is necessary on error, maybe not if submit on click works as a reset\n reset: UseMarketFlowResult[\"reset\"];\n cancelFlow: UseMarketFlowResult[\"cancelFlow\"];\n
|
|
1
|
+
{"version":3,"file":"useMarketSwapStep.js","sources":["../../../../src/hooks/swap/tradeFlow/useMarketSwapStep.ts"],"sourcesContent":["import type { MarketSwapStepKey } from \"@/components/widget/TradeOverview/steps\";\nimport {\n useMarketFlow,\n type UseMarketFlowInput,\n type UseMarketFlowResult,\n type SubmitSwapResult,\n} from \"./useMarketFlow\";\nimport { constructTxLinkForChain } from \"@/lib/utils/explorer\";\nimport { createLogger } from \"@/lib/utils\";\nimport { isUserCancelledError } from \"./common/errors\";\n\ntype UseMarketSwapStepResult = {\n startMarketSwap: UseMarketFlowResult[\"runMarketSwapFlow\"];\n // @TODO check if resetting is necessary on error, maybe not if submit on click works as a reset\n reset: UseMarketFlowResult[\"reset\"];\n cancelFlow: UseMarketFlowResult[\"cancelFlow\"];\n retryFlow: UseMarketFlowResult[\"retryFlow\"];\n isCancellable: boolean;\n step?: MarketSwapStepKey;\n explorerLink?: string;\n error: Error | null;\n erroredStep?: MarketSwapStepKey;\n result?: SubmitSwapResult;\n usedPrice: UseMarketFlowResult[\"usedPrice\"];\n};\n\nconst logger = createLogger(\"MarketSwapStep\");\n\nexport function useMarketSwapStep(\n options: UseMarketFlowInput\n): UseMarketSwapStepResult {\n const marketFlow = useMarketFlow(options);\n\n const startMarketSwap = marketFlow.runMarketSwapFlow;\n const reset = marketFlow.reset;\n const cancelFlow = marketFlow.cancelFlow;\n const retryFlow = marketFlow.retryFlow;\n\n let step: MarketSwapStepKey | undefined;\n\n const permitSigningHappeningOrNeverHappened =\n // isPending starts as false,\n // so we can use !isPermitSigned to detect if Permit signing is happening or never happened\n marketFlow.signPermit.isPending || !marketFlow.signPermit.isPermitSigned;\n\n const approvalHappeningOrNeverHappened =\n // isPending starts as false,\n // needsApproval && !isSuccess allows to detect approve step right away even then\n marketFlow.approval.isPending || !marketFlow.approval.isSuccess;\n\n const willUsePermit =\n marketFlow.approval.needsApproval &&\n marketFlow.signPermit.isPermitSupported &&\n marketFlow.signPermit.isPermitReadyToSign;\n\n const permitOrApprovalHappeningOrNeverHappened = willUsePermit\n ? permitSigningHappeningOrNeverHappened\n : approvalHappeningOrNeverHappened;\n\n if (\n marketFlow.approval.needsApproval &&\n permitOrApprovalHappeningOrNeverHappened\n ) {\n step = \"approve-spending\";\n } else if (\n marketFlow.buildTxParams.isPending ||\n marketFlow.swap.isConfirmingTX\n ) {\n step = \"swap-tx-confirmation\";\n } else if (marketFlow.swap.isTxPending) {\n step = \"swap-tx-execution\";\n } else if (marketFlow.isPending) {\n // if something is between steps but not clear step,\n // then assume we're in the first non-optional step\n step = \"swap-tx-confirmation\";\n }\n\n const approvalIsStarted =\n step === \"approve-spending\" && marketFlow.approval.isTxPending;\n\n const inSwapTxConfirmation = step === \"swap-tx-confirmation\";\n\n const notYetSwapTxSent =\n step === \"swap-tx-execution\" && !marketFlow.swap.isTxSent;\n\n // final tx is not yet sent, there's something to cancel;\n // but some steps are already started so we can't simply dismiss\n const isCancellable =\n approvalIsStarted || inSwapTxConfirmation || notYetSwapTxSent;\n\n const txHash = marketFlow.swap.txHash;\n const explorerLink = txHash\n ? constructTxLinkForChain({ chainId: marketFlow.chainId, txHash })\n : undefined;\n\n logger.once.log(\"step\", step, marketFlow, {\n isCancellable,\n explorerLink,\n txHash,\n });\n\n // intentional cancellation is handled separately\n const error = isUserCancelledError(marketFlow.error)\n ? null\n : marketFlow.error;\n\n let erroredStep: MarketSwapStepKey | undefined;\n\n if (marketFlow.isError) {\n if (marketFlow.approval.isError || marketFlow.signPermit.isError) {\n erroredStep = \"approve-spending\";\n } else if (\n marketFlow.buildTxParams.isError ||\n marketFlow.swap.isConfirmingTxError\n ) {\n erroredStep = \"swap-tx-confirmation\";\n } else if (marketFlow.swap.isTxAwaitingError) {\n erroredStep = \"swap-tx-execution\";\n }\n }\n\n return {\n startMarketSwap,\n reset,\n cancelFlow,\n retryFlow,\n isCancellable,\n step,\n explorerLink,\n error,\n erroredStep,\n result: marketFlow.result,\n usedPrice: marketFlow.usedPrice,\n };\n}\n"],"names":["useMarketSwapStep","options","$","_c","marketFlow","useMarketFlow","startMarketSwap","runMarketSwapFlow","reset","cancelFlow","retryFlow","step","permitSigningHappeningOrNeverHappened","signPermit","isPending","isPermitSigned","approvalHappeningOrNeverHappened","approval","isSuccess","willUsePermit","needsApproval","isPermitSupported","isPermitReadyToSign","permitOrApprovalHappeningOrNeverHappened","buildTxParams","swap","isConfirmingTX","isTxPending","approvalIsStarted","inSwapTxConfirmation","notYetSwapTxSent","isTxSent","isCancellable","txHash","explorerLink","constructTxLinkForChain","chainId","undefined","t0","error","isUserCancelledError","erroredStep","isError","isConfirmingTxError","isTxAwaitingError","t1","result","usedPrice"],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { SpenderContractType } from '../../sdk/types';
|
|
2
2
|
import { SupportedChainId } from '../../../lib/web3/wagmi/types';
|
|
3
3
|
import { Token } from '@velora-dex/sdk';
|
|
4
|
+
import { Address } from 'viem';
|
|
4
5
|
export type UseGenericTokenAllowanceInput = {
|
|
5
6
|
token?: Pick<Token, "address" | "decimals">;
|
|
6
7
|
spenderContractType?: SpenderContractType;
|
|
@@ -23,5 +24,7 @@ export type UseTokenAllowanceInput = {
|
|
|
23
24
|
tokenAddress?: string;
|
|
24
25
|
spender?: string;
|
|
25
26
|
chainId?: SupportedChainId;
|
|
27
|
+
owner?: Address;
|
|
28
|
+
enabled?: boolean;
|
|
26
29
|
};
|
|
27
30
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/hooks/tokens/allowance/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/hooks/tokens/allowance/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpC,MAAM,MAAM,6BAA6B,GAAG;IAC1C,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,UAAU,CAAC,CAAC;IAC5C,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,oBAAoB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,aAAa,EAAE,OAAO,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,oCAAoC,CAAC,EAAE,MAAM,CAAC;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,sBAAsB,EAAE,OAAO,CAAC;CACjC,GAAG,aAAa,CAAC;AAElB,MAAM,MAAM,sBAAsB,GAAG;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { UseTokenAllowanceInput } from './types';
|
|
2
|
-
export declare const useTokenAllowance: ({ tokenAddress, spender, chainId, }: UseTokenAllowanceInput) => import('wagmi').UseReadContractReturnType<readonly [{
|
|
2
|
+
export declare const useTokenAllowance: ({ tokenAddress, spender, chainId, owner, enabled, }: UseTokenAllowanceInput) => import('wagmi').UseReadContractReturnType<readonly [{
|
|
3
3
|
readonly type: "event";
|
|
4
4
|
readonly name: "Approval";
|
|
5
5
|
readonly inputs: readonly [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTokenAllowance.d.ts","sourceRoot":"","sources":["../../../../src/hooks/tokens/allowance/useTokenAllowance.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEtD,eAAO,MAAM,iBAAiB,GAAI,
|
|
1
|
+
{"version":3,"file":"useTokenAllowance.d.ts","sourceRoot":"","sources":["../../../../src/hooks/tokens/allowance/useTokenAllowance.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEtD,eAAO,MAAM,iBAAiB,GAAI,qDAM/B,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iEAwBxB,CAAC"}
|
|
@@ -9,54 +9,58 @@ const useTokenAllowance = (t0) => {
|
|
|
9
9
|
const {
|
|
10
10
|
tokenAddress,
|
|
11
11
|
spender,
|
|
12
|
-
chainId
|
|
12
|
+
chainId,
|
|
13
|
+
owner,
|
|
14
|
+
enabled: t1
|
|
13
15
|
} = t0;
|
|
16
|
+
const enabled = t1 === void 0 ? true : t1;
|
|
14
17
|
const {
|
|
15
18
|
address: account
|
|
16
19
|
} = useAccount();
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
const ownerAddress = owner || account;
|
|
21
|
+
const t2 = tokenAddress && isAddress(tokenAddress) ? tokenAddress : void 0;
|
|
22
|
+
let t3;
|
|
23
|
+
if ($[0] !== ownerAddress || $[1] !== spender) {
|
|
24
|
+
t3 = ownerAddress && spender && isAddress(spender) ? [ownerAddress, spender] : void 0;
|
|
25
|
+
$[0] = ownerAddress;
|
|
22
26
|
$[1] = spender;
|
|
23
|
-
$[2] =
|
|
27
|
+
$[2] = t3;
|
|
24
28
|
} else {
|
|
25
|
-
|
|
29
|
+
t3 = $[2];
|
|
26
30
|
}
|
|
27
|
-
const
|
|
31
|
+
const t4 = enabled && !!tokenAddress && !!account && !!spender && !isETH({
|
|
28
32
|
address: tokenAddress
|
|
29
33
|
});
|
|
30
|
-
let
|
|
31
|
-
if ($[3] !==
|
|
32
|
-
|
|
33
|
-
enabled:
|
|
34
|
+
let t5;
|
|
35
|
+
if ($[3] !== t4) {
|
|
36
|
+
t5 = {
|
|
37
|
+
enabled: t4,
|
|
34
38
|
staleTime: LONG_STALE_TIME_FOR_REACTIVENESS
|
|
35
39
|
};
|
|
36
|
-
$[3] =
|
|
37
|
-
$[4] =
|
|
40
|
+
$[3] = t4;
|
|
41
|
+
$[4] = t5;
|
|
38
42
|
} else {
|
|
39
|
-
|
|
43
|
+
t5 = $[4];
|
|
40
44
|
}
|
|
41
|
-
let
|
|
42
|
-
if ($[5] !== chainId || $[6] !==
|
|
43
|
-
|
|
44
|
-
address:
|
|
45
|
+
let t6;
|
|
46
|
+
if ($[5] !== chainId || $[6] !== t2 || $[7] !== t3 || $[8] !== t5) {
|
|
47
|
+
t6 = {
|
|
48
|
+
address: t2,
|
|
45
49
|
functionName: "allowance",
|
|
46
50
|
abi: erc20Abi,
|
|
47
51
|
chainId,
|
|
48
|
-
args:
|
|
49
|
-
query:
|
|
52
|
+
args: t3,
|
|
53
|
+
query: t5
|
|
50
54
|
};
|
|
51
55
|
$[5] = chainId;
|
|
52
|
-
$[6] =
|
|
53
|
-
$[7] =
|
|
54
|
-
$[8] =
|
|
55
|
-
$[9] =
|
|
56
|
+
$[6] = t2;
|
|
57
|
+
$[7] = t3;
|
|
58
|
+
$[8] = t5;
|
|
59
|
+
$[9] = t6;
|
|
56
60
|
} else {
|
|
57
|
-
|
|
61
|
+
t6 = $[9];
|
|
58
62
|
}
|
|
59
|
-
return useReadContract(
|
|
63
|
+
return useReadContract(t6);
|
|
60
64
|
};
|
|
61
65
|
|
|
62
66
|
export { useTokenAllowance };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTokenAllowance.js","sources":["../../../../src/hooks/tokens/allowance/useTokenAllowance.ts"],"sourcesContent":["import { LONG_STALE_TIME_FOR_REACTIVENESS } from \"@/lib/constants/time\";\nimport { isETH } from \"@/tokens/utils/eth\";\nimport { erc20Abi, isAddress } from \"viem\";\nimport { useAccount, useReadContract } from \"wagmi\";\nimport type { UseTokenAllowanceInput } from \"./types\";\n\nexport const useTokenAllowance = ({\n tokenAddress,\n spender,\n chainId,\n}: UseTokenAllowanceInput) => {\n const { address: account } = useAccount();\n\n return useReadContract({\n address: tokenAddress && isAddress(tokenAddress) ? tokenAddress : undefined,\n functionName: \"allowance\" as const,\n abi: erc20Abi,\n chainId,\n args:\n
|
|
1
|
+
{"version":3,"file":"useTokenAllowance.js","sources":["../../../../src/hooks/tokens/allowance/useTokenAllowance.ts"],"sourcesContent":["import { LONG_STALE_TIME_FOR_REACTIVENESS } from \"@/lib/constants/time\";\nimport { isETH } from \"@/tokens/utils/eth\";\nimport { erc20Abi, isAddress } from \"viem\";\nimport { useAccount, useReadContract } from \"wagmi\";\nimport type { UseTokenAllowanceInput } from \"./types\";\n\nexport const useTokenAllowance = ({\n tokenAddress,\n spender,\n chainId,\n owner,\n enabled = true,\n}: UseTokenAllowanceInput) => {\n const { address: account } = useAccount();\n\n const ownerAddress = owner || account;\n\n return useReadContract({\n address: tokenAddress && isAddress(tokenAddress) ? tokenAddress : undefined,\n functionName: \"allowance\" as const,\n abi: erc20Abi,\n chainId,\n args:\n ownerAddress && spender && isAddress(spender)\n ? [ownerAddress, spender]\n : undefined,\n query: {\n enabled:\n enabled &&\n !!tokenAddress &&\n !!account &&\n !!spender &&\n !isETH({ address: tokenAddress }),\n staleTime: LONG_STALE_TIME_FOR_REACTIVENESS,\n },\n });\n};\n"],"names":["useTokenAllowance","t0","$","_c","tokenAddress","spender","chainId","owner","enabled","t1","undefined","address","account","useAccount","ownerAddress","t2","isAddress","t3","t4","isETH","t5","staleTime","LONG_STALE_TIME_FOR_REACTIVENESS","t6","functionName","abi","erc20Abi","args","query","useReadContract"],"mappings":";;;;;;AAMO,MAAMA,oBAAoBC,CAAAA,EAAAA,KAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAAC,EAAA,MAAA;AAAA,IAAAC,YAAAA;AAAAA,IAAAC,OAAAA;AAAAA,IAAAC,OAAAA;AAAAA,IAAAC,KAAAA;AAAAA,IAAAC,OAAAA,EAAAC;AAAAA,GAAA,GAAAR,EAAAA;AAKhC,EAAA,MAAAO,OAAAA,GAAAC,EAAAA,KAAcC,MAAAA,UAAdD,EAAAA;AAEA,EAAA,MAAA;AAAA,IAAAE,OAAAA,EAAAC;AAAAA,MAA6BC,UAAAA,EAAW;AAExC,EAAA,MAAAC,eAAqBP,KAAAA,IAASK,OAAAA;AAGnB,EAAA,MAAAG,EAAAA,GAAAX,YAAAA,IAAgBY,SAAAA,CAAUZ,YAAY,IAAIA,YAAAA,GAAYM,MAAAA;AAAY,EAAA,IAAAO,EAAAA;AAAA,EAAA,IAAAf,EAAA,CAAA,CAAA,KAAAY,gBAAAZ,CAAAA,QAAAG,OAAAA,EAAA;AAKzEY,IAAAA,EAAAA,GAAAH,YAAAA,IAAgBT,WAAWW,SAAAA,CAAUX,OAAO,IAAC,CACxCS,YAAAA,EAAcT,OAAO,CAAA,GAAAK,MAAAA;AACbR,IAAAA,CAAAA,MAAAY,YAAAA;AAAAZ,IAAAA,CAAAA,MAAAG,OAAAA;AAAAH,IAAAA,CAAAA,MAAAe,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAf,EAAA,CAAA,CAAA;AAAA;AAGX,EAAA,MAAAgB,EAAAA,GAAAV,OAAAA,IAAO,CAAA,CACLJ,YAAAA,MACAQ,OAAAA,IAAO,CAAA,CACPP,OAAAA,IAAO,CACRc,KAAAA,CAAA;AAAA,IAAAR,OAAAA,EAAiBP;AAAAA,GAAc,CAAA;AAAC,EAAA,IAAAgB,EAAAA;AAAA,EAAA,IAAAlB,CAAAA,QAAAgB,EAAAA,EAAA;AAN9BE,IAAAA,EAAAA,GAAA;AAAA,MAAAZ,OAAAA,EAEHU,EAAAA;AAAAA,MAIiCG,SAAAA,EAAAC;AAAAA,KAAA;AAEpCpB,IAAAA,CAAAA,MAAAgB,EAAAA;AAAAhB,IAAAA,CAAAA,MAAAkB,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAlB,EAAA,CAAA,CAAA;AAAA;AAAA,EAAA,IAAAqB,EAAAA;AAAA,EAAA,IAAArB,CAAAA,CAAA,CAAA,CAAA,KAAAI,OAAAA,IAAAJ,EAAA,CAAA,CAAA,KAAAa,EAAAA,IAAAb,CAAAA,CAAA,CAAA,CAAA,KAAAe,EAAAA,IAAAf,CAAAA,QAAAkB,EAAAA,EAAA;AAjBoBG,IAAAA,EAAAA,GAAA;AAAA,MAAAZ,OAAAA,EACZI,EAAAA;AAAAA,MAAkES,YAAAA,EAC7D,WAAA;AAAA,MAAoBC,GAAAA,EAAAC,QAAAA;AAAAA,MAAApB,OAAAA;AAAAA,MAAAqB,IAAAA,EAIhCV,EAAAA;AAAAA,MAEaW,KAAAA,EACRR;AAAAA,KAQN;AACFlB,IAAAA,CAAAA,MAAAI,OAAAA;AAAAJ,IAAAA,CAAAA,MAAAa,EAAAA;AAAAb,IAAAA,CAAAA,MAAAe,EAAAA;AAAAf,IAAAA,CAAAA,MAAAkB,EAAAA;AAAAlB,IAAAA,CAAAA,MAAAqB,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAArB,EAAA,CAAA,CAAA;AAAA;AAAA,EAAA,OAlBM2B,gBAAgBN,EAkBtB,CAAA;AAAC;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useInvalidateTokenData.d.ts","sourceRoot":"","sources":["../../../../src/hooks/tokens/balances/useInvalidateTokenData.ts"],"names":[],"mappings":"AAwDA,KAAK,sBAAsB,GAAG;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"useInvalidateTokenData.d.ts","sourceRoot":"","sources":["../../../../src/hooks/tokens/balances/useInvalidateTokenData.ts"],"names":[],"mappings":"AAwDA,KAAK,sBAAsB,GAAG;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;CAElB,CAAC;AACF;;;;;GAKG;AAEH,wBAAgB,2BAA2B,IAAI,CAC7C,aAAa,CAAC,EAAE,sBAAsB,KACnC,OAAO,CAAC,IAAI,CAAC,CAsFjB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useInvalidateTokenData.js","sources":["../../../../src/hooks/tokens/balances/useInvalidateTokenData.ts"],"sourcesContent":["import type { NonceMethod } from \"@/hooks/permit/hooks/usePermit1Nonce\";\nimport { Query, useQueryClient, type QueryKey } from \"@tanstack/react-query\";\n\nimport { erc20Abi, type Address } from \"viem\";\nimport { type Config } from \"wagmi\";\nimport {\n type ReadContractQueryKey,\n type GetBalanceQueryKey,\n type ReadContractsQueryKey,\n} from \"wagmi/query\";\n\ntype LooseQueryMatchToInvalidate<Q extends QueryKey> = {\n queryKey: [Q[0]];\n exact: false;\n predicate?: (query: Query) => boolean;\n};\n\ntype ETHBalanceQueryMatch = LooseQueryMatchToInvalidate<\n GetBalanceQueryKey<Config>\n>;\n\ntype ERC20BalanceQueryKey = ReadContractQueryKey<\n typeof erc20Abi,\n \"balanceOf\" | \"allowance\",\n [Address],\n Config\n>;\ntype ERC20BalanceAllowanceQueryMatch =\n LooseQueryMatchToInvalidate<ERC20BalanceQueryKey>;\n\nfunction isReadContractQueryKey(\n queryKey: QueryKey\n): queryKey is ReadContractQueryKey<unknown[], string, unknown[], Config> {\n return queryKey[0] === \"readContract\";\n}\n\ntype NoncesQueryKey = ReadContractsQueryKey<\n {\n address: Address;\n abi: typeof erc20Abi;\n functionName: NonceMethod;\n args: [Address];\n }[],\n boolean,\n Config\n>;\n\ntype NoncesQueryMatch = LooseQueryMatchToInvalidate<NoncesQueryKey>;\nconst nonceMethods: NonceMethod[] = [\"nonces\", \"_nonces\", \"nonce\", \"getNonce\"];\n\nfunction isReadContractsQueryKey(\n queryKey: QueryKey\n): queryKey is ReadContractsQueryKey<unknown[], boolean, Config> {\n return queryKey[0] === \"readContracts\";\n}\n\ntype TokenFuncsToInvalidate = {\n allowance?: boolean;\n balanceOf?: boolean;\n nonces?: boolean
|
|
1
|
+
{"version":3,"file":"useInvalidateTokenData.js","sources":["../../../../src/hooks/tokens/balances/useInvalidateTokenData.ts"],"sourcesContent":["import type { NonceMethod } from \"@/hooks/permit/hooks/permit1/usePermit1Nonce\";\nimport { Query, useQueryClient, type QueryKey } from \"@tanstack/react-query\";\n\nimport { erc20Abi, type Address } from \"viem\";\nimport { type Config } from \"wagmi\";\nimport {\n type ReadContractQueryKey,\n type GetBalanceQueryKey,\n type ReadContractsQueryKey,\n} from \"wagmi/query\";\n\ntype LooseQueryMatchToInvalidate<Q extends QueryKey> = {\n queryKey: [Q[0]];\n exact: false;\n predicate?: (query: Query) => boolean;\n};\n\ntype ETHBalanceQueryMatch = LooseQueryMatchToInvalidate<\n GetBalanceQueryKey<Config>\n>;\n\ntype ERC20BalanceQueryKey = ReadContractQueryKey<\n typeof erc20Abi,\n \"balanceOf\" | \"allowance\",\n [Address],\n Config\n>;\ntype ERC20BalanceAllowanceQueryMatch =\n LooseQueryMatchToInvalidate<ERC20BalanceQueryKey>;\n\nfunction isReadContractQueryKey(\n queryKey: QueryKey\n): queryKey is ReadContractQueryKey<unknown[], string, unknown[], Config> {\n return queryKey[0] === \"readContract\";\n}\n\ntype NoncesQueryKey = ReadContractsQueryKey<\n {\n address: Address;\n abi: typeof erc20Abi;\n functionName: NonceMethod;\n args: [Address];\n }[],\n boolean,\n Config\n>;\n\ntype NoncesQueryMatch = LooseQueryMatchToInvalidate<NoncesQueryKey>;\nconst nonceMethods: NonceMethod[] = [\"nonces\", \"_nonces\", \"nonce\", \"getNonce\"];\n\nfunction isReadContractsQueryKey(\n queryKey: QueryKey\n): queryKey is ReadContractsQueryKey<unknown[], boolean, Config> {\n return queryKey[0] === \"readContracts\";\n}\n\ntype TokenFuncsToInvalidate = {\n allowance?: boolean;\n balanceOf?: boolean;\n nonces?: boolean; // invalidate queries with Permit1 nonces,\n // Permit2 nonces can be safely incremented without syncing with what's on chain\n};\n/**\n * Helper function to invalidate token-related query cache entries.\n * Used to refresh token balances and allowances after transactions that modify them.\n * Can selectively invalidate either balance or allowance queries, or both.\n * Invalidates for all tokens that have their queries currently mounted, which is easier than matching.\n */\n\nexport function useInvalidateTokenDataQuery(): (\n tokenDataType?: TokenFuncsToInvalidate\n) => Promise<void> {\n const queryClient = useQueryClient();\n\n const invalidateBalancesAndAllowances = async ({\n allowance = true,\n balanceOf = true,\n nonces = false,\n }: TokenFuncsToInvalidate = {}) => {\n const queries: LooseQueryMatchToInvalidate<QueryKey>[] = [];\n\n if (balanceOf) {\n const ethBalanceQuery: ETHBalanceQueryMatch = {\n // easier to just match the queryKey base\n queryKey: [\"balance\"],\n exact: false,\n };\n queries.push(ethBalanceQuery);\n }\n\n type ERC20Func = NonNullable<ERC20BalanceQueryKey[1][\"functionName\"]>;\n\n const tokenFuncs: ERC20Func[] = [];\n if (balanceOf) {\n tokenFuncs.push(\"balanceOf\");\n }\n if (allowance) {\n tokenFuncs.push(\"allowance\");\n }\n\n if (tokenFuncs.length > 0) {\n // relax type to allow string[].includes(string)\n const matchedERC20Funcs: string[] = tokenFuncs;\n\n const erc20BalanceQuery: ERC20BalanceAllowanceQueryMatch = {\n queryKey: [\"readContract\"],\n exact: false,\n predicate: (query) => {\n const { queryKey } = query;\n // all queries that read Contract.<anything>\n if (isReadContractQueryKey(queryKey)) {\n if (\n queryKey[1].functionName &&\n matchedERC20Funcs.includes(queryKey[1].functionName)\n // all queries that read Contract.balanceOf or Contract.allowance\n ) {\n return true;\n }\n }\n return false;\n },\n };\n queries.push(erc20BalanceQuery);\n }\n\n if (nonces) {\n // relax type to allow string[].includes(string)\n const matchedNonceMethods: string[] = nonceMethods;\n\n const nonceQuery: NoncesQueryMatch = {\n queryKey: [\"readContracts\"],\n exact: false,\n predicate: (query) => {\n const { queryKey } = query;\n // all queries that read multiple Contract.<anything>\n if (isReadContractsQueryKey(queryKey)) {\n // we only ever use nonce methods with other nonce methods only,\n // no non-nonce methods mixed in\n const firstMethod = queryKey[1].contracts?.[0]?.functionName;\n if (firstMethod && matchedNonceMethods.includes(firstMethod)) {\n return true;\n }\n }\n return false;\n },\n };\n queries.push(nonceQuery);\n }\n\n if (queries.length > 0) {\n await Promise.all(\n queries.map((query) => queryClient.invalidateQueries(query))\n );\n }\n };\n\n return invalidateBalancesAndAllowances;\n}\n"],"names":["isReadContractQueryKey","queryKey","nonceMethods","isReadContractsQueryKey","useInvalidateTokenDataQuery","$","_c","queryClient","useQueryClient","t0","t1","allowance","t2","balanceOf","t3","nonces","t4","undefined","queries","ethBalanceQuery","exact","push","tokenFuncs","length","matchedERC20Funcs","erc20BalanceQuery","predicate","query","functionName","includes","nonceQuery","_temp","Promise","all","map","query_1","invalidateQueries","invalidateBalancesAndAllowances","query_0","queryKey_0","firstMethod","contracts"],"mappings":"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"}
|
|
@@ -3,4 +3,5 @@ export declare const useIsInsufficientTokenBalance: ({ token, requiredBalanceWei
|
|
|
3
3
|
token?: Token;
|
|
4
4
|
requiredBalanceWei?: string;
|
|
5
5
|
}) => boolean;
|
|
6
|
+
export declare const useIsTokenFromInsufficientBalance: () => boolean;
|
|
6
7
|
//# sourceMappingURL=useIsInsufficientTokenBalance.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useIsInsufficientTokenBalance.d.ts","sourceRoot":"","sources":["../../../../src/hooks/tokens/balances/useIsInsufficientTokenBalance.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"useIsInsufficientTokenBalance.d.ts","sourceRoot":"","sources":["../../../../src/hooks/tokens/balances/useIsInsufficientTokenBalance.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAQlD,eAAO,MAAM,6BAA6B,GAAI,gCAG3C;IACD,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,YAaA,CAAC;AAEF,eAAO,MAAM,iCAAiC,eAiB7C,CAAC"}
|
|
@@ -1,5 +1,12 @@
|
|
|
1
|
+
import { d as distExports } from '../../../_virtual/index.js';
|
|
1
2
|
import { useAccount } from 'wagmi';
|
|
2
3
|
import { useTokenBalance } from './useTokenBalance.js';
|
|
4
|
+
import { useAtomValue } from 'jotai';
|
|
5
|
+
import { payInputAmountWeiAtom } from '../../../widget/inputs/state/inputAmountAtom.js';
|
|
6
|
+
import { useTokenFromAtom } from '../../../widget/inputs/state/selectedTokenAtom.js';
|
|
7
|
+
import { amountAfterSlippage } from '../../../lib/utils/slippage.js';
|
|
8
|
+
import { useSwapSide } from '../../../components/widget/SwapModeSwitcher/state/swapSideAtom.js';
|
|
9
|
+
import { useSlippage } from '../../useSlippage.js';
|
|
3
10
|
|
|
4
11
|
const useIsInsufficientTokenBalance = ({
|
|
5
12
|
token,
|
|
@@ -16,6 +23,39 @@ const useIsInsufficientTokenBalance = ({
|
|
|
16
23
|
if (requiredBalanceWei === void 0 || balance === void 0 || !token || !account) return false;
|
|
17
24
|
return balance === 0n || balance < BigInt(requiredBalanceWei);
|
|
18
25
|
};
|
|
26
|
+
const useIsTokenFromInsufficientBalance = () => {
|
|
27
|
+
const $ = distExports.c(7);
|
|
28
|
+
const tokenFrom = useTokenFromAtom();
|
|
29
|
+
const payAmountWei = useAtomValue(payInputAmountWeiAtom);
|
|
30
|
+
const swapSide = useSwapSide();
|
|
31
|
+
const {
|
|
32
|
+
resolvedSlippage
|
|
33
|
+
} = useSlippage();
|
|
34
|
+
let t0;
|
|
35
|
+
if ($[0] !== payAmountWei || $[1] !== resolvedSlippage || $[2] !== swapSide) {
|
|
36
|
+
t0 = swapSide === "BUY" ? amountAfterSlippage(payAmountWei, resolvedSlippage, swapSide).toFixed(0) : payAmountWei;
|
|
37
|
+
$[0] = payAmountWei;
|
|
38
|
+
$[1] = resolvedSlippage;
|
|
39
|
+
$[2] = swapSide;
|
|
40
|
+
$[3] = t0;
|
|
41
|
+
} else {
|
|
42
|
+
t0 = $[3];
|
|
43
|
+
}
|
|
44
|
+
const requiredBalanceAfterPossibleSlippage = t0;
|
|
45
|
+
let t1;
|
|
46
|
+
if ($[4] !== requiredBalanceAfterPossibleSlippage || $[5] !== tokenFrom) {
|
|
47
|
+
t1 = {
|
|
48
|
+
token: tokenFrom,
|
|
49
|
+
requiredBalanceWei: requiredBalanceAfterPossibleSlippage
|
|
50
|
+
};
|
|
51
|
+
$[4] = requiredBalanceAfterPossibleSlippage;
|
|
52
|
+
$[5] = tokenFrom;
|
|
53
|
+
$[6] = t1;
|
|
54
|
+
} else {
|
|
55
|
+
t1 = $[6];
|
|
56
|
+
}
|
|
57
|
+
return useIsInsufficientTokenBalance(t1);
|
|
58
|
+
};
|
|
19
59
|
|
|
20
|
-
export { useIsInsufficientTokenBalance };
|
|
60
|
+
export { useIsInsufficientTokenBalance, useIsTokenFromInsufficientBalance };
|
|
21
61
|
//# sourceMappingURL=useIsInsufficientTokenBalance.js.map
|