@velora-dex/widget 0.0.23 → 0.1.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/index.js +1 -1
- package/dist/components/ui/accordion.js.map +1 -1
- package/dist/components/ui/badge.js.map +1 -1
- package/dist/components/ui/button.js.map +1 -1
- package/dist/components/ui/card.js.map +1 -1
- package/dist/components/ui/dialog.js.map +1 -1
- package/dist/components/ui/drawer.d.ts +2 -2
- package/dist/components/ui/drawer.d.ts.map +1 -1
- package/dist/components/ui/drawer.js +1 -1
- package/dist/components/ui/drawer.js.map +1 -1
- package/dist/components/ui/dropdown-menu.js.map +1 -1
- package/dist/components/ui/input.js.map +1 -1
- package/dist/components/ui/progress.js.map +1 -1
- package/dist/components/ui/skeleton.js.map +1 -1
- package/dist/components/ui/sonner.d.ts.map +1 -1
- package/dist/components/ui/sonner.js +1 -2
- package/dist/components/ui/sonner.js.map +1 -1
- package/dist/components/ui/switch.js.map +1 -1
- package/dist/components/ui/tooltip.js.map +1 -1
- package/dist/components/web3/AccountButton.js.map +1 -1
- package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.js.map +1 -1
- package/dist/components/web3/ConnectWallets/WalletConnectButtons.d.ts.map +1 -1
- package/dist/components/web3/ConnectWallets/WalletConnectButtons.js +23 -14
- package/dist/components/web3/ConnectWallets/WalletConnectButtons.js.map +1 -1
- package/dist/components/web3/ConnectWallets/index.js.map +1 -1
- package/dist/components/web3/ConnectWallets/privy/button.js.map +1 -1
- package/dist/components/web3/ConnectWallets/privy/connectRunner.d.ts.map +1 -1
- package/dist/components/web3/ConnectWallets/privy/connectRunner.js +0 -2
- package/dist/components/web3/ConnectWallets/privy/connectRunner.js.map +1 -1
- package/dist/components/web3/ConnectWallets/privy/iframe.js.map +1 -1
- package/dist/components/web3/ConnectWallets/privy/provider.js.map +1 -1
- package/dist/components/web3/ConnectWallets/walletIcons.d.ts +30 -0
- package/dist/components/web3/ConnectWallets/walletIcons.d.ts.map +1 -1
- package/dist/components/web3/ConnectWallets/walletIcons.js +84 -2
- package/dist/components/web3/ConnectWallets/walletIcons.js.map +1 -1
- package/dist/components/web3/ConnectedWallet/ConnectedWallet.d.ts.map +1 -1
- package/dist/components/web3/ConnectedWallet/ConnectedWallet.js +69 -65
- package/dist/components/web3/ConnectedWallet/ConnectedWallet.js.map +1 -1
- package/dist/components/web3/providers.js.map +1 -1
- package/dist/components/widget/AppHeader/ActivityButton.js.map +1 -1
- package/dist/components/widget/AppHeader/AppHeader.d.ts.map +1 -1
- package/dist/components/widget/AppHeader/AppHeader.js +49 -55
- package/dist/components/widget/AppHeader/AppHeader.js.map +1 -1
- package/dist/components/widget/Details/DetailWithTooltip.js.map +1 -1
- package/dist/components/widget/Details/DetailWithValueList.js.map +1 -1
- package/dist/components/widget/Details/DetailWithValueListExpandable.js.map +1 -1
- package/dist/components/widget/Details/SwapDetailsExpandable.js.map +1 -1
- package/dist/components/widget/Dialog/ConnectWalletDialog/ConnectWalletDialog.js.map +1 -1
- package/dist/components/widget/Dialog/DialogRoot.js.map +1 -1
- package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressDialog.js +2 -2
- package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressDialog.js.map +1 -1
- package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressInput.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.d.ts.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js +125 -78
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.d.ts +5 -2
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.d.ts.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.js +10 -8
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/RegularTokenList.d.ts +5 -2
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/RegularTokenList.d.ts.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/RegularTokenList.js +10 -8
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/RegularTokenList.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/index.d.ts +11 -0
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/index.d.ts.map +1 -0
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/index.js +101 -0
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/index.js.map +1 -0
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/tokens.d.ts +5 -0
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/tokens.d.ts.map +1 -0
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/tokens.js +186 -0
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/tokens.js.map +1 -0
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListBody.d.ts +6 -2
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListBody.d.ts.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListBody.js +33 -20
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListBody.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenSearch.js +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenSearch.js.map +1 -1
- package/dist/components/widget/Dialog/state/dialogAtom.js.map +1 -1
- package/dist/components/widget/Drawer/index.d.ts +3 -1
- package/dist/components/widget/Drawer/index.d.ts.map +1 -1
- package/dist/components/widget/Drawer/index.js +64 -37
- package/dist/components/widget/Drawer/index.js.map +1 -1
- package/dist/components/widget/Drawer/state/useDrawerControls.d.ts +24 -1
- package/dist/components/widget/Drawer/state/useDrawerControls.d.ts.map +1 -1
- package/dist/components/widget/Drawer/state/useDrawerControls.js +91 -2
- package/dist/components/widget/Drawer/state/useDrawerControls.js.map +1 -1
- package/dist/components/widget/Dropdown/DropdownWithItems.d.ts.map +1 -1
- package/dist/components/widget/Dropdown/DropdownWithItems.js +5 -3
- package/dist/components/widget/Dropdown/DropdownWithItems.js.map +1 -1
- package/dist/components/widget/Dropdown/types.d.ts +2 -1
- package/dist/components/widget/Dropdown/types.d.ts.map +1 -1
- package/dist/components/widget/Icon/CheckIcon.js.map +1 -1
- package/dist/components/widget/Icon/ChevronIcon.js.map +1 -1
- package/dist/components/widget/Icon/DeltaIcon.js.map +1 -1
- package/dist/components/widget/Icon/EllipseIcon.js.map +1 -1
- package/dist/components/widget/Icon/InfoIcon.js.map +1 -1
- package/dist/components/widget/Icon/MarketIcon.js.map +1 -1
- package/dist/components/widget/Icon/SliderIcon.js.map +1 -1
- package/dist/components/widget/Line/Line.js.map +1 -1
- package/dist/components/widget/NetworkIcon/NetworkIconSquare.js.map +1 -1
- package/dist/components/widget/NetworkSwitcher/CompactNetworkSwitcher.d.ts.map +1 -1
- package/dist/components/widget/NetworkSwitcher/CompactNetworkSwitcher.js +14 -10
- package/dist/components/widget/NetworkSwitcher/CompactNetworkSwitcher.js.map +1 -1
- package/dist/components/widget/NetworkSwitcher/NetworkSwitcherDropdown.d.ts.map +1 -1
- package/dist/components/widget/NetworkSwitcher/NetworkSwitcherDropdown.js +10 -8
- package/dist/components/widget/NetworkSwitcher/NetworkSwitcherDropdown.js.map +1 -1
- package/dist/components/widget/NetworkSwitcher/types.d.ts +2 -2
- package/dist/components/widget/NetworkSwitcher/types.d.ts.map +1 -1
- package/dist/components/widget/NetworkWithIcon/NetworkIconWithChevron.js.map +1 -1
- package/dist/components/widget/NetworkWithIcon/NetworkWithIcon.js.map +1 -1
- package/dist/components/widget/PoweredBy/PoweredBy.js.map +1 -1
- package/dist/components/widget/ReceiverAddress/ReceiverAddress.js.map +1 -1
- package/dist/components/widget/ReceiverAddress/state/receiverAddressAtom.js.map +1 -1
- package/dist/components/widget/ReceiverAddress/state/subscriptions.js.map +1 -1
- package/dist/components/widget/RowVirtualizer/RowVirtualizerFixed.d.ts +1 -1
- package/dist/components/widget/RowVirtualizer/RowVirtualizerFixed.d.ts.map +1 -1
- package/dist/components/widget/RowVirtualizer/RowVirtualizerFixed.js +5 -1
- package/dist/components/widget/RowVirtualizer/RowVirtualizerFixed.js.map +1 -1
- package/dist/components/widget/RowVirtualizer/types.d.ts +1 -0
- package/dist/components/widget/RowVirtualizer/types.d.ts.map +1 -1
- package/dist/components/widget/SelectToken/SelectTokenButton.js.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/SwapModeSwitcherExpandable.js.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/state/swapModeActionsAtom.js.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js.map +1 -1
- package/dist/components/widget/SwapRate/SwapRate.d.ts.map +1 -1
- package/dist/components/widget/SwapRate/SwapRate.js +3 -0
- package/dist/components/widget/SwapRate/SwapRate.js.map +1 -1
- package/dist/components/widget/Toasts/CustomToast.js.map +1 -1
- package/dist/components/widget/TokenBadge/TokenBadge.d.ts.map +1 -1
- package/dist/components/widget/TokenBadge/TokenBadge.js +1 -1
- package/dist/components/widget/TokenBadge/TokenBadge.js.map +1 -1
- package/dist/components/widget/TokenInput/EmptyInput.js.map +1 -1
- package/dist/components/widget/TokenInput/index.js +1 -1
- package/dist/components/widget/TokenInput/index.js.map +1 -1
- package/dist/components/widget/TokenSwitcher/TokenSwitcher.js.map +1 -1
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/Step/Step.js.map +1 -1
- package/dist/components/widget/TradeOverview/Step/utils.js.map +1 -1
- package/dist/components/widget/TradeOverview/Stepper.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/Stepper.js +39 -21
- package/dist/components/widget/TradeOverview/Stepper.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteFooter.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteHeader.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompletedDetails.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/index.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/useTradeCompleteDetails.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/useTradeCompleteDetails.js +40 -72
- package/dist/components/widget/TradeOverview/TradeComplete/useTradeCompleteDetails.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/utils.d.ts +23 -3
- package/dist/components/widget/TradeOverview/TradeComplete/utils.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/utils.js +67 -19
- package/dist/components/widget/TradeOverview/TradeComplete/utils.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeDetails.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeDetailsDisplay.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorDetails.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorFooter.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/index.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/utils.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverview.js +40 -56
- package/dist/components/widget/TradeOverview/TradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverviewFooter.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverviewHeader.js.map +1 -1
- package/dist/components/widget/TradeOverview/VerticalDash.js.map +1 -1
- package/dist/components/widget/TradeOverview/tradeFlowContext.js.map +1 -1
- package/dist/components/widget/TradeParameters/DeltaParameter.js.map +1 -1
- package/dist/components/widget/TradeParameters/EIP1559Parameter.js.map +1 -1
- package/dist/components/widget/TradeParameters/SlippageParameter/CustomSlippageInput.js.map +1 -1
- package/dist/components/widget/TradeParameters/SlippageParameter/EditSlippage.js.map +1 -1
- package/dist/components/widget/TradeParameters/SlippageParameter/SlippageParameter.js +2 -2
- package/dist/components/widget/TradeParameters/SlippageParameter/SlippageParameter.js.map +1 -1
- package/dist/components/widget/TradeParameters/SlippageParameter/hooks/useCustomSlippageProps.d.ts.map +1 -1
- package/dist/components/widget/TradeParameters/SlippageParameter/hooks/useCustomSlippageProps.js +42 -19
- package/dist/components/widget/TradeParameters/SlippageParameter/hooks/useCustomSlippageProps.js.map +1 -1
- package/dist/components/widget/TradeParameters/TradeParameters.js.map +1 -1
- package/dist/components/widget/TradeParameters/TransactionSpeedParameter.js +3 -3
- package/dist/components/widget/TradeParameters/TransactionSpeedParameter.js.map +1 -1
- package/dist/components/widget/TradeParameters/hooks/useIsNotDefaultAnyParameter.js.map +1 -1
- package/dist/components/widget/TradeParameters/state/slippageParamActionsAtom.js.map +1 -1
- package/dist/components/widget/Warning/InsufficientBalanceMessage.js.map +1 -1
- package/dist/components/widget/Warning/Warning.js.map +1 -1
- package/dist/components/widget/Warning/WarningMessage.js.map +1 -1
- package/dist/components/widget/WrapEth/WrapEthContent.js.map +1 -1
- package/dist/components/widget/WrapEth/WrapEthDrawerButton.js.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useSubmitDepositTxMutation.d.ts.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useSubmitDepositTxMutation.js +18 -24
- package/dist/components/widget/WrapEth/hooks/useSubmitDepositTxMutation.js.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js.map +1 -1
- package/dist/components/widget/YouGet/YouGet.js.map +1 -1
- package/dist/configurator/Configurator.d.ts.map +1 -1
- package/dist/core/ConnectWalletDrawerButton.js.map +1 -1
- package/dist/core/Toaster.js.map +1 -1
- package/dist/core/TradeFlowButton.js +154 -126
- package/dist/core/TradeFlowButton.js.map +1 -1
- package/dist/core/Updaters.d.ts.map +1 -1
- package/dist/core/Updaters.js +2 -0
- package/dist/core/Updaters.js.map +1 -1
- package/dist/core/button/hooks/useWidgetButtonExtraProps.js.map +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +55 -28
- package/dist/core/index.js.map +1 -1
- package/dist/core/inputs/hooks/useTokenFromInputProps.js.map +1 -1
- package/dist/core/inputs/hooks/useTokenSwitcherProps.js.map +1 -1
- package/dist/core/inputs/hooks/useTokenToInputProps.d.ts.map +1 -1
- package/dist/core/inputs/hooks/useTokenToInputProps.js +15 -15
- package/dist/core/inputs/hooks/useTokenToInputProps.js.map +1 -1
- package/dist/core/inputs/state/inputAmountAtom.js.map +1 -1
- package/dist/core/inputs/state/selectedTokenActionsAtom.js.map +1 -1
- package/dist/core/inputs/state/selectedTokenAtom.js.map +1 -1
- package/dist/core/inputs/state/subscriptions.js.map +1 -1
- package/dist/core/logger.js.map +1 -1
- package/dist/core/state/chainToAtom.d.ts +2 -2
- package/dist/core/state/chainToAtom.js.map +1 -1
- package/dist/core/state/configActionsAtom.d.ts +1 -1
- package/dist/core/state/configActionsAtom.js.map +1 -1
- package/dist/core/state/configAtom.js.map +1 -1
- package/dist/core/state/externalProviderAtom.js.map +1 -1
- package/dist/core/swapDetails/fees.js.map +1 -1
- package/dist/core/swapDetails/orderRouting.js.map +1 -1
- package/dist/core/swapDetails/priceImpact.js.map +1 -1
- package/dist/core/swapDetails/useSwapDetailsListProps.js.map +1 -1
- package/dist/core/swapDetails/youGet.js.map +1 -1
- package/dist/external/.pnpm/{react-compiler-runtime@19.1.0-rc.2_react@19.1.0 → react-compiler-runtime@19.1.0-rc.2_react@19.1.1}/external/react-compiler-runtime/dist/index.js.map +1 -1
- package/dist/external/.pnpm/{vaul@1.1.2_patch_hash_07b36ba5def3805dde9d543a880ba9e4caf55e5eb58e544faaa2c186846bf3c1__15df56ff48174365d34843c037ea8a33 → vaul@1.1.2_patch_hash_07b36ba5def3805dde9d543a880ba9e4caf55e5eb58e544faaa2c186846bf3c1__7f2d7d5ed11750fbec42b3f5689c802d}/external/vaul/dist/index.js.map +1 -1
- package/dist/hooks/gas/useGasPrices.js.map +1 -1
- package/dist/hooks/getCode/useIsAccountContract.js.map +1 -1
- package/dist/hooks/getCode/useIsContractAtAddress.js.map +1 -1
- package/dist/hooks/permit/hooks/common/useSignArbitraryTypedData.js.map +1 -1
- package/dist/hooks/permit/hooks/common/useSignPermit.js.map +1 -1
- package/dist/hooks/permit/hooks/common/useWalletSupportsPermit.js.map +1 -1
- package/dist/hooks/permit/hooks/permit1/useGetPermitInfo.js.map +1 -1
- package/dist/hooks/permit/hooks/permit1/useGetSafePermitInfo.js.map +1 -1
- package/dist/hooks/permit/hooks/permit1/usePermit1Nonce.js.map +1 -1
- package/dist/hooks/permit/hooks/permit1/useSignTokenPermit1.js.map +1 -1
- package/dist/hooks/permit/hooks/permit1/useTokenFromPermit1Nonce.js.map +1 -1
- package/dist/hooks/permit/hooks/permit1/useTokenFromPermitInfo.js.map +1 -1
- package/dist/hooks/permit/hooks/permit1/useTryToSignPermit1.js.map +1 -1
- package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.js.map +1 -1
- package/dist/hooks/permit/hooks/permit2/usePermit2TransferFromNonce.js.map +1 -1
- package/dist/hooks/permit/hooks/permit2/useSignTokenPermit2TransferFrom.js.map +1 -1
- package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2TransferFromNonce.js.map +1 -1
- package/dist/hooks/permit/utils/construct.js.map +1 -1
- package/dist/hooks/permit/utils/detect.js.map +1 -1
- package/dist/hooks/permit/utils/domainSeparator.js.map +1 -1
- package/dist/hooks/permit/utils/encodeArgs.js +1 -1
- package/dist/hooks/permit/utils/encodeArgs.js.map +1 -1
- package/dist/hooks/permit/utils/trySignPermit1.js.map +1 -1
- package/dist/hooks/permit/utils/utils.js.map +1 -1
- package/dist/hooks/sdk/useGetContracts.js.map +1 -1
- package/dist/hooks/sdk/useSpender.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/orders/utils.d.ts +2 -0
- package/dist/hooks/swap/prices/delta/orders/utils.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/orders/utils.js +4 -1
- package/dist/hooks/swap/prices/delta/orders/utils.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts +14 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js +60 -2
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useIsTokenSupportedInDelta.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.d.ts +8 -0
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js +12 -3
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/market/mutations/useBuildTx.js.map +1 -1
- package/dist/hooks/swap/prices/market/mutations/useSendMarketSwapTx.js.map +1 -1
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.d.ts +14 -1
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.d.ts.map +1 -1
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js +60 -2
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js.map +1 -1
- package/dist/hooks/swap/prices/market/queries/useSpenderAndContracts.js.map +1 -1
- package/dist/hooks/swap/prices/usePricesParams.js.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
- package/dist/hooks/swap/prices/useTokenInputsFromPrice.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/errors.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useConstructGasParams.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts +1 -0
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +207 -458
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts +1 -0
- package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.js +210 -411
- package/dist/hooks/swap/tradeFlow/useMarketFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js.map +1 -1
- package/dist/hooks/tokens/allowance/useGenericTokenAllowance.js.map +1 -1
- package/dist/hooks/tokens/allowance/useTokenAllowance.js.map +1 -1
- package/dist/hooks/tokens/balances/queries.js.map +1 -1
- package/dist/hooks/tokens/balances/useAttachTokenBalanceMultichain.d.ts.map +1 -1
- package/dist/hooks/tokens/balances/useAttachTokenBalanceMultichain.js +18 -7
- package/dist/hooks/tokens/balances/useAttachTokenBalanceMultichain.js.map +1 -1
- package/dist/hooks/tokens/balances/useInvalidateTokenData.d.ts +3 -2
- package/dist/hooks/tokens/balances/useInvalidateTokenData.d.ts.map +1 -1
- package/dist/hooks/tokens/balances/useInvalidateTokenData.js +60 -77
- package/dist/hooks/tokens/balances/useInvalidateTokenData.js.map +1 -1
- package/dist/hooks/tokens/balances/useIsInsufficientTokenBalance.js.map +1 -1
- package/dist/hooks/tokens/balances/useMultichainTokenBalances.js.map +1 -1
- package/dist/hooks/tokens/balances/useSelectedTokenBalances.d.ts +5 -0
- package/dist/hooks/tokens/balances/useSelectedTokenBalances.d.ts.map +1 -0
- package/dist/hooks/tokens/balances/useSelectedTokenBalances.js +38 -0
- package/dist/hooks/tokens/balances/useSelectedTokenBalances.js.map +1 -0
- package/dist/hooks/tokens/balances/useTokenBalance.d.ts +15 -0
- package/dist/hooks/tokens/balances/useTokenBalance.d.ts.map +1 -1
- package/dist/hooks/tokens/balances/useTokenBalance.js +2 -0
- package/dist/hooks/tokens/balances/useTokenBalance.js.map +1 -1
- package/dist/hooks/tokens/prices/queries.js.map +1 -1
- package/dist/hooks/tokens/prices/useMultichainTokenPrices.js.map +1 -1
- package/dist/hooks/tokens/prices/useTokenPrices.js.map +1 -1
- package/dist/hooks/tokens/useNativeToken.js.map +1 -1
- package/dist/hooks/tokens/useTokenLists.js.map +1 -1
- package/dist/hooks/tokens/useTokenTaxFee.js.map +1 -1
- package/dist/hooks/tokens/useTokensByAddress.js.map +1 -1
- package/dist/hooks/tokens/useTokensFromAcross.js.map +1 -1
- package/dist/hooks/txs/mutations/useApprove.js.map +1 -1
- package/dist/hooks/txs/mutations/useDepositWeth.js.map +1 -1
- package/dist/hooks/txs/mutations/useSendTx.js.map +1 -1
- package/dist/hooks/txs/queries/useAwaitTx.js.map +1 -1
- package/dist/hooks/txs/queries/utils.d.ts +3 -0
- package/dist/hooks/txs/queries/utils.d.ts.map +1 -0
- package/dist/hooks/txs/queries/utils.js +6 -0
- package/dist/hooks/txs/queries/utils.js.map +1 -0
- package/dist/hooks/useAvailableCrosses.js.map +1 -1
- package/dist/hooks/useBridgeInfo.js.map +1 -1
- package/dist/hooks/useDebouncedInputState.js.map +1 -1
- package/dist/hooks/useEIP1559Enabled.js.map +1 -1
- package/dist/hooks/useGlobalDeltaEnabled.js.map +1 -1
- package/dist/hooks/useIsCrosschainPossible.js.map +1 -1
- package/dist/hooks/useMinViemClient.js.map +1 -1
- package/dist/hooks/useSDK.js +1 -1
- package/dist/hooks/useSDK.js.map +1 -1
- package/dist/hooks/useSlippage.js.map +1 -1
- package/dist/lib/ipfs.js.map +1 -1
- package/dist/lib/queryClient.d.ts.map +1 -1
- package/dist/lib/queryClient.js +32 -2
- package/dist/lib/queryClient.js.map +1 -1
- package/dist/lib/utils/copyToClipboard.js.map +1 -1
- package/dist/lib/utils/delta.js.map +1 -1
- package/dist/lib/utils/formatTokenBalance.js.map +1 -1
- package/dist/lib/utils/index.js.map +1 -1
- package/dist/lib/utils/logger.js.map +1 -1
- package/dist/lib/utils/price.js.map +1 -1
- package/dist/lib/utils/priceImpact.d.ts.map +1 -1
- package/dist/lib/utils/priceImpact.js +1 -1
- package/dist/lib/utils/priceImpact.js.map +1 -1
- package/dist/lib/utils/providerErrors.js.map +1 -1
- package/dist/lib/utils/removeZeroDecimals.js.map +1 -1
- package/dist/lib/utils/toasts.js +0 -24
- package/dist/lib/utils/toasts.js.map +1 -1
- package/dist/lib/web3/privy/config.js +1 -1
- package/dist/lib/web3/wagmi/config.d.ts +12 -2
- package/dist/lib/web3/wagmi/config.d.ts.map +1 -1
- package/dist/lib/web3/wagmi/config.js +6 -3
- package/dist/lib/web3/wagmi/config.js.map +1 -1
- package/dist/lib/web3/wagmi/constants.d.ts +12 -2
- package/dist/lib/web3/wagmi/constants.d.ts.map +1 -1
- package/dist/lib/web3/wagmi/isInsideSafeIframe.d.ts +25 -0
- package/dist/lib/web3/wagmi/isInsideSafeIframe.d.ts.map +1 -0
- package/dist/lib/web3/wagmi/isInsideSafeIframe.js +113 -0
- package/dist/lib/web3/wagmi/isInsideSafeIframe.js.map +1 -0
- package/dist/styles.css +81 -9
- package/dist/tokens/lists/constants.js.map +1 -1
- package/dist/tokens/lists/download.js.map +1 -1
- package/dist/tokens/lists/hooks.js.map +1 -1
- package/dist/tokens/lists/state/observer.js.map +1 -1
- package/dist/tokens/lists/state/tokenListsActionsAtom.js.map +1 -1
- package/dist/tokens/lists/state/tokenListsStateAtom.d.ts +2 -2
- package/dist/tokens/overrides.js.map +1 -1
- package/dist/tokens/queries.js.map +1 -1
- package/dist/tokens/stabeCoins/hooks.js.map +1 -1
- package/dist/tokens/state/constructTokens.js.map +1 -1
- package/dist/tokens/state/tokensAtom.js.map +1 -1
- package/dist/tokens/utils/filtering.js.map +1 -1
- package/dist/tokens/utils/sets.js.map +1 -1
- package/dist/tokens/utils/sorting.js.map +1 -1
- package/dist/tokens/utils/transferAmountsFromReceipt.d.ts +51 -0
- package/dist/tokens/utils/transferAmountsFromReceipt.d.ts.map +1 -0
- package/dist/tokens/utils/transferAmountsFromReceipt.js +281 -0
- package/dist/tokens/utils/transferAmountsFromReceipt.js.map +1 -0
- package/package.json +32 -31
- package/dist/hooks/swap/tradeFlow/common/useTrackedPrice.d.ts +0 -25
- package/dist/hooks/swap/tradeFlow/common/useTrackedPrice.d.ts.map +0 -1
- package/dist/hooks/swap/tradeFlow/common/useTrackedPrice.js +0 -103
- package/dist/hooks/swap/tradeFlow/common/useTrackedPrice.js.map +0 -1
- /package/dist/external/.pnpm/{react-compiler-runtime@19.1.0-rc.2_react@19.1.0 → react-compiler-runtime@19.1.0-rc.2_react@19.1.1}/external/react-compiler-runtime/dist/index.js +0 -0
- /package/dist/external/.pnpm/{vaul@1.1.2_patch_hash_07b36ba5def3805dde9d543a880ba9e4caf55e5eb58e544faaa2c186846bf3c1__15df56ff48174365d34843c037ea8a33 → vaul@1.1.2_patch_hash_07b36ba5def3805dde9d543a880ba9e4caf55e5eb58e544faaa2c186846bf3c1__7f2d7d5ed11750fbec42b3f5689c802d}/external/vaul/dist/index.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGasPrices.js","sources":["../../../src/hooks/gas/useGasPrices.ts"],"sourcesContent":["import axios from \"axios\";\nimport { useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { useChainId } from \"wagmi\";\nimport { API_URL } from \"@/lib/constants\";\nimport type { ConsolidatedGasPrices, GasPricesAPIResponse } from \"./types\";\nimport { isLegacyPriceResponse, weiToGwei } from \"./utils\";\nimport { gasPricesConfig } from \"./config\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\n\nconst GAS_PRICES_BASE_QUERY_KEY = \"gas-prices\";\n\ntype GasPricesQueryKey = [\n typeof GAS_PRICES_BASE_QUERY_KEY,\n chainId: SupportedChainId,\n eip1559Enabled: boolean,\n];\n\nexport function constructGasParamsQueryKey(\n chainId: SupportedChainId,\n eop1559Enabled: boolean\n): GasPricesQueryKey {\n return [GAS_PRICES_BASE_QUERY_KEY, chainId, eop1559Enabled];\n}\n\nexport function useGasPrices({\n chainId: _chainId,\n}: {\n chainId?: SupportedChainId;\n} = {}): UseQueryResult<ConsolidatedGasPrices, Error> {\n const appChainId = useChainId();\n const chainId = _chainId ?? appChainId;\n\n const config = gasPricesConfig[chainId];\n\n return useQuery<\n ConsolidatedGasPrices,\n Error,\n ConsolidatedGasPrices,\n GasPricesQueryKey\n >({\n queryKey: constructGasParamsQueryKey(chainId, config.eip1559),\n queryFn: async ({ signal }) => {\n const allowEip1559 = config.eip1559;\n\n const { data } = await axios.get<GasPricesAPIResponse>(\n `${API_URL}/prices/gas/${chainId}`,\n { signal, params: { eip1559: allowEip1559 } }\n );\n\n const legacyPrices = isLegacyPriceResponse(!allowEip1559, data)\n ? {\n slow: weiToGwei(data.safeLow),\n standard: weiToGwei(data.average),\n fast: weiToGwei(data.fast),\n instant: weiToGwei(data.fastest),\n }\n : {\n slow: weiToGwei(data.safeLow.legacyGasPrice),\n standard: weiToGwei(data.average.legacyGasPrice),\n fast: weiToGwei(data.fast.legacyGasPrice),\n instant: weiToGwei(data.fastest.legacyGasPrice),\n };\n\n const eip1559Prices = !isLegacyPriceResponse(!allowEip1559, data)\n ? {\n slow: {\n maxFeePerGas: weiToGwei(data.safeLow.maxFeePerGas),\n maxPriorityFeePerGas: weiToGwei(\n data.safeLow.maxPriorityFeePerGas\n ),\n },\n standard: {\n maxFeePerGas: weiToGwei(data.average.maxFeePerGas),\n maxPriorityFeePerGas: weiToGwei(\n data.average.maxPriorityFeePerGas\n ),\n },\n fast: {\n maxFeePerGas: weiToGwei(data.fast.maxFeePerGas),\n maxPriorityFeePerGas: weiToGwei(data.fast.maxPriorityFeePerGas),\n },\n instant: {\n maxFeePerGas: weiToGwei(data.fastest.maxFeePerGas),\n maxPriorityFeePerGas: weiToGwei(\n data.fastest.maxPriorityFeePerGas\n ),\n },\n }\n : undefined;\n\n return {\n legacyPrices,\n eip1559Prices,\n blockData: data.blockData,\n optimisticGasOracleData:\n data.optimismGasOracleData || data.baseGasOracleData,\n };\n },\n\n enabled: !!chainId,\n refetchInterval: import.meta.env.DEV\n ? config.refetchInterval * 2 // avoid rate limiting in dev\n : config.refetchInterval,\n });\n}\n"],"names":["GAS_PRICES_BASE_QUERY_KEY","constructGasParamsQueryKey","chainId","eop1559Enabled","useGasPrices","t0","$","_c","t1","_chainId","appChainId","useChainId","config","gasPricesConfig","t2","eip1559","t3","t4","signal","allowEip1559","data","axios","get","API_URL","params","legacyPrices","isLegacyPriceResponse","slow","weiToGwei","safeLow","standard","average","fast","instant","fastest","legacyGasPrice","eip1559Prices","maxFeePerGas","maxPriorityFeePerGas","undefined","blockData","optimisticGasOracleData","optimismGasOracleData","baseGasOracleData","t5","refetchInterval","t6","queryKey","queryFn","enabled","useQuery"],"mappings":";;;;;;;;AASA,MAAMA,yBAAAA,GAA4B,YAAA;AAQ3B,SAASC,0BAAAA,CACdC,SACAC,cAAAA,EACmB;AACnB,EAAA,OAAO,CAACH,yBAAAA,EAA2BE,OAAAA,EAASC,cAAc,CAAA;AAC5D;AAEO,SAAAC,aAAAC,EAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAF,CAAAA,QAAAD,EAAAA,EAAA;AAAsBG,IAAAA,EAAAA,MAAAH;AAIvBC,IAAAA,CAAAA,MAAAD,EAAAA;AAAAC,IAAAA,CAAAA,MAAAE,EAAAA;AAAAA,
|
|
1
|
+
{"version":3,"file":"useGasPrices.js","sources":["../../../src/hooks/gas/useGasPrices.ts"],"sourcesContent":["import axios from \"axios\";\nimport { useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { useChainId } from \"wagmi\";\nimport { API_URL } from \"@/lib/constants\";\nimport type { ConsolidatedGasPrices, GasPricesAPIResponse } from \"./types\";\nimport { isLegacyPriceResponse, weiToGwei } from \"./utils\";\nimport { gasPricesConfig } from \"./config\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\n\nconst GAS_PRICES_BASE_QUERY_KEY = \"gas-prices\";\n\ntype GasPricesQueryKey = [\n typeof GAS_PRICES_BASE_QUERY_KEY,\n chainId: SupportedChainId,\n eip1559Enabled: boolean,\n];\n\nexport function constructGasParamsQueryKey(\n chainId: SupportedChainId,\n eop1559Enabled: boolean\n): GasPricesQueryKey {\n return [GAS_PRICES_BASE_QUERY_KEY, chainId, eop1559Enabled];\n}\n\nexport function useGasPrices({\n chainId: _chainId,\n}: {\n chainId?: SupportedChainId;\n} = {}): UseQueryResult<ConsolidatedGasPrices, Error> {\n const appChainId = useChainId();\n const chainId = _chainId ?? appChainId;\n\n const config = gasPricesConfig[chainId];\n\n return useQuery<\n ConsolidatedGasPrices,\n Error,\n ConsolidatedGasPrices,\n GasPricesQueryKey\n >({\n queryKey: constructGasParamsQueryKey(chainId, config.eip1559),\n queryFn: async ({ signal }) => {\n const allowEip1559 = config.eip1559;\n\n const { data } = await axios.get<GasPricesAPIResponse>(\n `${API_URL}/prices/gas/${chainId}`,\n { signal, params: { eip1559: allowEip1559 } }\n );\n\n const legacyPrices = isLegacyPriceResponse(!allowEip1559, data)\n ? {\n slow: weiToGwei(data.safeLow),\n standard: weiToGwei(data.average),\n fast: weiToGwei(data.fast),\n instant: weiToGwei(data.fastest),\n }\n : {\n slow: weiToGwei(data.safeLow.legacyGasPrice),\n standard: weiToGwei(data.average.legacyGasPrice),\n fast: weiToGwei(data.fast.legacyGasPrice),\n instant: weiToGwei(data.fastest.legacyGasPrice),\n };\n\n const eip1559Prices = !isLegacyPriceResponse(!allowEip1559, data)\n ? {\n slow: {\n maxFeePerGas: weiToGwei(data.safeLow.maxFeePerGas),\n maxPriorityFeePerGas: weiToGwei(\n data.safeLow.maxPriorityFeePerGas\n ),\n },\n standard: {\n maxFeePerGas: weiToGwei(data.average.maxFeePerGas),\n maxPriorityFeePerGas: weiToGwei(\n data.average.maxPriorityFeePerGas\n ),\n },\n fast: {\n maxFeePerGas: weiToGwei(data.fast.maxFeePerGas),\n maxPriorityFeePerGas: weiToGwei(data.fast.maxPriorityFeePerGas),\n },\n instant: {\n maxFeePerGas: weiToGwei(data.fastest.maxFeePerGas),\n maxPriorityFeePerGas: weiToGwei(\n data.fastest.maxPriorityFeePerGas\n ),\n },\n }\n : undefined;\n\n return {\n legacyPrices,\n eip1559Prices,\n blockData: data.blockData,\n optimisticGasOracleData:\n data.optimismGasOracleData || data.baseGasOracleData,\n };\n },\n\n enabled: !!chainId,\n refetchInterval: import.meta.env.DEV\n ? config.refetchInterval * 2 // avoid rate limiting in dev\n : config.refetchInterval,\n });\n}\n"],"names":["GAS_PRICES_BASE_QUERY_KEY","constructGasParamsQueryKey","chainId","eop1559Enabled","useGasPrices","t0","$","_c","t1","_chainId","appChainId","useChainId","config","gasPricesConfig","t2","eip1559","t3","t4","signal","allowEip1559","data","axios","get","API_URL","params","legacyPrices","isLegacyPriceResponse","slow","weiToGwei","safeLow","standard","average","fast","instant","fastest","legacyGasPrice","eip1559Prices","maxFeePerGas","maxPriorityFeePerGas","undefined","blockData","optimisticGasOracleData","optimismGasOracleData","baseGasOracleData","t5","refetchInterval","t6","queryKey","queryFn","enabled","useQuery"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useIsAccountContract.js","sources":["../../../src/hooks/getCode/useIsAccountContract.ts"],"sourcesContent":["import { useAccount } from \"wagmi\";\nimport { useIsContractAtAddress } from \"./useIsContractAtAddress\";\nimport { isSupportedChainId } from \"@/lib/web3/wagmi/utils\";\n\nexport const useIsAccountContract = () => {\n const { address, chainId } = useAccount();\n\n // it makes more sense to check if the address is a contract on the same chain as it is connected too,\n // a Smart Contract Wallet will likely not be deployed on all chains the Widget supports\n const checkOnChainId =\n chainId && isSupportedChainId(chainId) ? chainId : undefined;\n // will default to Widget chainId anyway if Wallet is on an unsupported chain\n\n return useIsContractAtAddress({ address, chainId: checkOnChainId });\n};\n"],"names":["useIsAccountContract","$","_c","address","chainId","useAccount","t0","isSupportedChainId","undefined","checkOnChainId","t1","useIsContractAtAddress"],"mappings":";;;;;AAIO,MAAMA,uBAAuBA,MAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAClC,EAAA,MAAA;AAAA,IAAAC,OAAAA;AAAAA,IAAAC;AAAAA,MAA6BC,UAAAA,EAAW;AAAE,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAL,CAAAA,QAAAG,OAAAA,EAAA;AAKxCE,IAAAA,EAAAA,GAAAF,OAAAA,IAAWG,kBAAAA,CAAmBH,OAAO,CAAA,GAAIA,OAAAA,GAAOI,MAAAA;AAAYP,IAAAA,CAAAA,MAAAG,OAAAA;AAAAH,IAAAA,CAAAA,MAAAK,EAAAA;AAAAA,
|
|
1
|
+
{"version":3,"file":"useIsAccountContract.js","sources":["../../../src/hooks/getCode/useIsAccountContract.ts"],"sourcesContent":["import { useAccount } from \"wagmi\";\nimport { useIsContractAtAddress } from \"./useIsContractAtAddress\";\nimport { isSupportedChainId } from \"@/lib/web3/wagmi/utils\";\n\nexport const useIsAccountContract = () => {\n const { address, chainId } = useAccount();\n\n // it makes more sense to check if the address is a contract on the same chain as it is connected too,\n // a Smart Contract Wallet will likely not be deployed on all chains the Widget supports\n const checkOnChainId =\n chainId && isSupportedChainId(chainId) ? chainId : undefined;\n // will default to Widget chainId anyway if Wallet is on an unsupported chain\n\n return useIsContractAtAddress({ address, chainId: checkOnChainId });\n};\n"],"names":["useIsAccountContract","$","_c","address","chainId","useAccount","t0","isSupportedChainId","undefined","checkOnChainId","t1","useIsContractAtAddress"],"mappings":";;;;;AAIO,MAAMA,uBAAuBA,MAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAClC,EAAA,MAAA;AAAA,IAAAC,OAAAA;AAAAA,IAAAC;AAAAA,MAA6BC,UAAAA,EAAW;AAAE,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAL,CAAAA,QAAAG,OAAAA,EAAA;AAKxCE,IAAAA,EAAAA,GAAAF,OAAAA,IAAWG,kBAAAA,CAAmBH,OAAO,CAAA,GAAIA,OAAAA,GAAOI,MAAAA;AAAYP,IAAAA,CAAAA,MAAAG,OAAAA;AAAAH,IAAAA,CAAAA,MAAAK,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAL,EAAA,CAAA,CAAA;AAAA,EAAA;AAD9D,EAAA,MAAAQ,cAAAA,GACEH,EAAAA;AAA6D,EAAA,IAAAI,EAAAA;AAAA,EAAA,IAAAT,EAAA,CAAA,CAAA,KAAAE,WAAAF,CAAAA,QAAAQ,cAAAA,EAAA;AAGjCC,IAAAA,EAAAA,GAAA;AAAA,MAAAP,OAAAA;AAAAA,MAAAC,OAAAA,EAAoBK;AAAAA,KAAc;AAAER,IAAAA,CAAAA,MAAAE,OAAAA;AAAAF,IAAAA,CAAAA,MAAAQ,cAAAA;AAAAR,IAAAA,CAAAA,MAAAS,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAT,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAA3DU,uBAAuBD,EAAoC,CAAA;AAAC;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useIsContractAtAddress.js","sources":["../../../src/hooks/getCode/useIsContractAtAddress.ts"],"sourcesContent":["import { useQuery } from \"@tanstack/react-query\";\n\nimport { isAddress } from \"viem\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useChainId } from \"wagmi\";\nimport { assert } from \"ts-essentials\";\nimport {\n constructIsContractAtAddressQueryKey,\n getIsContractAtAddress,\n} from \"./query\";\nimport type {\n GetIsContractAtAddressResult,\n IsContractAtAddressQueryKey,\n} from \"./types\";\n\nexport const useIsContractAtAddress = ({\n address,\n chainId: _chainId,\n}: {\n address?: string;\n chainId?: SupportedChainId;\n} = {}) => {\n const appChainId = useChainId();\n const chainId = _chainId ?? appChainId;\n\n return useQuery<\n GetIsContractAtAddressResult,\n Error,\n GetIsContractAtAddressResult,\n IsContractAtAddressQueryKey\n >({\n queryKey: constructIsContractAtAddressQueryKey({ address, chainId }),\n queryFn: async () => {\n assert(address && isAddress(address), \"address is required\");\n return getIsContractAtAddress({\n address,\n chainId,\n });\n },\n enabled: !!address && isAddress(address),\n staleTime: Infinity,\n gcTime: Infinity,\n });\n};\n"],"names":["useIsContractAtAddress","t0","$","_c","t1","undefined","address","chainId","_chainId","appChainId","useChainId","t2","constructIsContractAtAddressQueryKey","t3","assert","isAddress","getIsContractAtAddress","t4","t5","queryKey","queryFn","enabled","staleTime","Infinity","gcTime","useQuery"],"mappings":";;;;;;;AAeO,MAAMA,yBAAyBC,CAAAA,EAAAA,KAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAF,CAAAA,QAAAD,EAAAA,EAAA;AAACG,IAAAA,EAAAA,GAAAH,EAAAA,KAMjCI,MAAAA,QANiCJ,EAAAA;AAMjCC,IAAAA,CAAAA,MAAAD,EAAAA;AAAAC,IAAAA,CAAAA,MAAAE,EAAAA;AAAAA,
|
|
1
|
+
{"version":3,"file":"useIsContractAtAddress.js","sources":["../../../src/hooks/getCode/useIsContractAtAddress.ts"],"sourcesContent":["import { useQuery } from \"@tanstack/react-query\";\n\nimport { isAddress } from \"viem\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useChainId } from \"wagmi\";\nimport { assert } from \"ts-essentials\";\nimport {\n constructIsContractAtAddressQueryKey,\n getIsContractAtAddress,\n} from \"./query\";\nimport type {\n GetIsContractAtAddressResult,\n IsContractAtAddressQueryKey,\n} from \"./types\";\n\nexport const useIsContractAtAddress = ({\n address,\n chainId: _chainId,\n}: {\n address?: string;\n chainId?: SupportedChainId;\n} = {}) => {\n const appChainId = useChainId();\n const chainId = _chainId ?? appChainId;\n\n return useQuery<\n GetIsContractAtAddressResult,\n Error,\n GetIsContractAtAddressResult,\n IsContractAtAddressQueryKey\n >({\n queryKey: constructIsContractAtAddressQueryKey({ address, chainId }),\n queryFn: async () => {\n assert(address && isAddress(address), \"address is required\");\n return getIsContractAtAddress({\n address,\n chainId,\n });\n },\n enabled: !!address && isAddress(address),\n staleTime: Infinity,\n gcTime: Infinity,\n });\n};\n"],"names":["useIsContractAtAddress","t0","$","_c","t1","undefined","address","chainId","_chainId","appChainId","useChainId","t2","constructIsContractAtAddressQueryKey","t3","assert","isAddress","getIsContractAtAddress","t4","t5","queryKey","queryFn","enabled","staleTime","Infinity","gcTime","useQuery"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSignArbitraryTypedData.js","sources":["../../../../../src/hooks/permit/hooks/common/useSignArbitraryTypedData.ts"],"sourcesContent":["import { useSignTypedData } from \"wagmi\";\nimport { type Hash } from \"viem\";\nimport { useAccount } from \"wagmi\";\nimport { assert } from \"ts-essentials\";\nimport type { SignTypedDataVariables } from \"wagmi/query\";\n\nexport type UseSignedArbitraryTypedDataInput = {\n onSuccess?: (signature: Hash) => void;\n onError?: (error: Error) => void;\n};\n\nexport type UseSignedArbitraryTypedDataReturn = {\n signTypedData: (typedData: SignTypedDataVariables) => void;\n signTypedDataAsync: (typedData: SignTypedDataVariables) => Promise<Hash>;\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n signature?: Hash;\n reset: () => void;\n};\n\nexport const useSignArbitraryTypedData = ({\n onSuccess,\n onError,\n}: UseSignedArbitraryTypedDataInput = {}): UseSignedArbitraryTypedDataReturn => {\n const { isConnected } = useAccount();\n\n const {\n signTypedData,\n signTypedDataAsync,\n isPending,\n isSuccess,\n isError,\n error,\n data: signature,\n reset,\n } = useSignTypedData();\n\n const signTx = (typedData: SignTypedDataVariables) => {\n // Validate inputs using assert for better type safety\n assert(isConnected, \"Wallet not connected\");\n assert(typedData, \"Typed data is required\");\n\n // Execute signature\n signTypedData(typedData, {\n onSuccess,\n onError,\n });\n };\n\n const signTxAsync = async (\n typedData: SignTypedDataVariables\n ): Promise<Hash> => {\n // Validate inputs using assert for better type safety\n assert(isConnected, \"Wallet not connected\");\n assert(typedData, \"Typed data is required\");\n\n // Execute signature and return the hash\n return signTypedDataAsync(typedData, {\n onSuccess,\n onError,\n });\n };\n\n return {\n signTypedData: signTx,\n signTypedDataAsync: signTxAsync,\n isPending,\n isSuccess,\n isError,\n error,\n signature,\n reset,\n };\n};\n"],"names":["useSignArbitraryTypedData","t0","$","_c","t1","undefined","onSuccess","onError","isConnected","useAccount","signTypedData","signTypedDataAsync","isPending","isSuccess","isError","error","data","signature","reset","useSignTypedData","t2","typedData","assert","signTx","t3","typedData_0","signTxAsync","t4"],"mappings":";;;;;AAsBO,MAAMA,4BAA4BC,CAAAA,EAAAA,KAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAF,CAAAA,QAAAD,EAAAA,EAAA;AAACG,IAAAA,EAAAA,GAAAH,EAAAA,KAGFI,MAAAA,QAHEJ,EAAAA;AAGFC,IAAAA,CAAAA,MAAAD,EAAAA;AAAAC,IAAAA,CAAAA,MAAAE,EAAAA;AAAAA,
|
|
1
|
+
{"version":3,"file":"useSignArbitraryTypedData.js","sources":["../../../../../src/hooks/permit/hooks/common/useSignArbitraryTypedData.ts"],"sourcesContent":["import { useSignTypedData } from \"wagmi\";\nimport { type Hash } from \"viem\";\nimport { useAccount } from \"wagmi\";\nimport { assert } from \"ts-essentials\";\nimport type { SignTypedDataVariables } from \"wagmi/query\";\n\nexport type UseSignedArbitraryTypedDataInput = {\n onSuccess?: (signature: Hash) => void;\n onError?: (error: Error) => void;\n};\n\nexport type UseSignedArbitraryTypedDataReturn = {\n signTypedData: (typedData: SignTypedDataVariables) => void;\n signTypedDataAsync: (typedData: SignTypedDataVariables) => Promise<Hash>;\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n signature?: Hash;\n reset: () => void;\n};\n\nexport const useSignArbitraryTypedData = ({\n onSuccess,\n onError,\n}: UseSignedArbitraryTypedDataInput = {}): UseSignedArbitraryTypedDataReturn => {\n const { isConnected } = useAccount();\n\n const {\n signTypedData,\n signTypedDataAsync,\n isPending,\n isSuccess,\n isError,\n error,\n data: signature,\n reset,\n } = useSignTypedData();\n\n const signTx = (typedData: SignTypedDataVariables) => {\n // Validate inputs using assert for better type safety\n assert(isConnected, \"Wallet not connected\");\n assert(typedData, \"Typed data is required\");\n\n // Execute signature\n signTypedData(typedData, {\n onSuccess,\n onError,\n });\n };\n\n const signTxAsync = async (\n typedData: SignTypedDataVariables\n ): Promise<Hash> => {\n // Validate inputs using assert for better type safety\n assert(isConnected, \"Wallet not connected\");\n assert(typedData, \"Typed data is required\");\n\n // Execute signature and return the hash\n return signTypedDataAsync(typedData, {\n onSuccess,\n onError,\n });\n };\n\n return {\n signTypedData: signTx,\n signTypedDataAsync: signTxAsync,\n isPending,\n isSuccess,\n isError,\n error,\n signature,\n reset,\n };\n};\n"],"names":["useSignArbitraryTypedData","t0","$","_c","t1","undefined","onSuccess","onError","isConnected","useAccount","signTypedData","signTypedDataAsync","isPending","isSuccess","isError","error","data","signature","reset","useSignTypedData","t2","typedData","assert","signTx","t3","typedData_0","signTxAsync","t4"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSignPermit.js","sources":["../../../../../src/hooks/permit/hooks/common/useSignPermit.ts"],"sourcesContent":["import {\n useSignArbitraryTypedData,\n type UseSignedArbitraryTypedDataInput,\n} from \"./useSignArbitraryTypedData\";\nimport {\n constructPermitTypedData,\n type PermitTypedDataInput,\n} from \"../../utils/construct\";\n\nexport function useSignPermit({\n onSuccess,\n onError,\n}: UseSignedArbitraryTypedDataInput = {}) {\n const {\n signTypedData,\n signTypedDataAsync,\n isPending,\n isSuccess,\n isError,\n error,\n signature,\n reset,\n } = useSignArbitraryTypedData({ onSuccess, onError });\n\n const signPermit = (input: PermitTypedDataInput) => {\n const typedData = constructPermitTypedData(input);\n signTypedData(typedData);\n };\n\n const signPermitAsync = (input: PermitTypedDataInput) => {\n const typedData = constructPermitTypedData(input);\n return signTypedDataAsync(typedData);\n };\n\n return {\n signPermit,\n signPermitAsync,\n isPending,\n isSuccess,\n isError,\n error,\n signature,\n reset,\n };\n}\n"],"names":["useSignPermit","t0","$","_c","t1","undefined","onSuccess","onError","t2","signTypedData","signTypedDataAsync","isPending","isSuccess","isError","error","signature","reset","useSignArbitraryTypedData","t3","input","typedData","constructPermitTypedData","signPermit","t4","input_0","typedData_0","signPermitAsync","t5"],"mappings":";;;;AASO,SAAAA,cAAAC,EAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAF,CAAAA,QAAAD,EAAAA,EAAA;AAAuBG,IAAAA,EAAAA,GAAAH,EAAAA,KAGUI,MAAAA,QAHVJ,EAAAA;AAGUC,IAAAA,CAAAA,MAAAD,EAAAA;AAAAC,IAAAA,CAAAA,MAAAE,EAAAA;AAAAA,
|
|
1
|
+
{"version":3,"file":"useSignPermit.js","sources":["../../../../../src/hooks/permit/hooks/common/useSignPermit.ts"],"sourcesContent":["import {\n useSignArbitraryTypedData,\n type UseSignedArbitraryTypedDataInput,\n} from \"./useSignArbitraryTypedData\";\nimport {\n constructPermitTypedData,\n type PermitTypedDataInput,\n} from \"../../utils/construct\";\n\nexport function useSignPermit({\n onSuccess,\n onError,\n}: UseSignedArbitraryTypedDataInput = {}) {\n const {\n signTypedData,\n signTypedDataAsync,\n isPending,\n isSuccess,\n isError,\n error,\n signature,\n reset,\n } = useSignArbitraryTypedData({ onSuccess, onError });\n\n const signPermit = (input: PermitTypedDataInput) => {\n const typedData = constructPermitTypedData(input);\n signTypedData(typedData);\n };\n\n const signPermitAsync = (input: PermitTypedDataInput) => {\n const typedData = constructPermitTypedData(input);\n return signTypedDataAsync(typedData);\n };\n\n return {\n signPermit,\n signPermitAsync,\n isPending,\n isSuccess,\n isError,\n error,\n signature,\n reset,\n };\n}\n"],"names":["useSignPermit","t0","$","_c","t1","undefined","onSuccess","onError","t2","signTypedData","signTypedDataAsync","isPending","isSuccess","isError","error","signature","reset","useSignArbitraryTypedData","t3","input","typedData","constructPermitTypedData","signPermit","t4","input_0","typedData_0","signPermitAsync","t5"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWalletSupportsPermit.js","sources":["../../../../../src/hooks/permit/hooks/common/useWalletSupportsPermit.ts"],"sourcesContent":["import { useIsAccountContract } from \"@/hooks/getCode/useIsAccountContract\";\n\ntype UseWalletSupportsPermitResult = {\n permit1: boolean;\n permit2: boolean;\n};\n\nexport function useWalletSupportsPermit(): UseWalletSupportsPermitResult {\n const isWalletContract = useIsAccountContract().data?.isContract ?? false;\n // Multisig Smart Wallet signature can't be encoded for permitMethodArgs\n // simpler to just disable for all Smart Contract Wallets, multisig and not\n return {\n permit1: !isWalletContract,\n permit2: !isWalletContract,\n // @TODO enable for Permit2 Delta when support is added\n };\n}\n"],"names":["useWalletSupportsPermit","$","_c","isWalletContract","useIsAccountContract","data","isContract","t0","t1","t2","permit1","permit2"],"mappings":";;;AAOO,SAAAA,uBAAAA,GAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AACL,EAAA,MAAAC,gBAAAA,GAAyBC,oBAAAA,EAAqB,CAACC,IAAAA,EAAAC,UAAAA,IAAA,KAAA;AAIpC,EAAA,MAAAC,MAACJ,gBAAAA;AACD,EAAA,MAAAK,MAACL,gBAAAA;AAAgB,EAAA,IAAAM,EAAAA;AAAA,EAAA,IAAAR,EAAA,CAAA,CAAA,KAAAM,MAAAN,CAAAA,QAAAO,EAAAA,EAAA;AAFrBC,IAAAA,EAAAA,GAAA;AAAA,MAAAC,OAAAA,EACIH,EAAAA;AAAAA,MAAiBI,OAAAA,EACjBH;AAAAA,KAAiB;AAE3BP,IAAAA,CAAAA,MAAAM,EAAAA;AAAAN,IAAAA,CAAAA,MAAAO,EAAAA;AAAAP,IAAAA,CAAAA,MAAAQ,EAAAA;AAAAA,
|
|
1
|
+
{"version":3,"file":"useWalletSupportsPermit.js","sources":["../../../../../src/hooks/permit/hooks/common/useWalletSupportsPermit.ts"],"sourcesContent":["import { useIsAccountContract } from \"@/hooks/getCode/useIsAccountContract\";\n\ntype UseWalletSupportsPermitResult = {\n permit1: boolean;\n permit2: boolean;\n};\n\nexport function useWalletSupportsPermit(): UseWalletSupportsPermitResult {\n const isWalletContract = useIsAccountContract().data?.isContract ?? false;\n // Multisig Smart Wallet signature can't be encoded for permitMethodArgs\n // simpler to just disable for all Smart Contract Wallets, multisig and not\n return {\n permit1: !isWalletContract,\n permit2: !isWalletContract,\n // @TODO enable for Permit2 Delta when support is added\n };\n}\n"],"names":["useWalletSupportsPermit","$","_c","isWalletContract","useIsAccountContract","data","isContract","t0","t1","t2","permit1","permit2"],"mappings":";;;AAOO,SAAAA,uBAAAA,GAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AACL,EAAA,MAAAC,gBAAAA,GAAyBC,oBAAAA,EAAqB,CAACC,IAAAA,EAAAC,UAAAA,IAAA,KAAA;AAIpC,EAAA,MAAAC,MAACJ,gBAAAA;AACD,EAAA,MAAAK,MAACL,gBAAAA;AAAgB,EAAA,IAAAM,EAAAA;AAAA,EAAA,IAAAR,EAAA,CAAA,CAAA,KAAAM,MAAAN,CAAAA,QAAAO,EAAAA,EAAA;AAFrBC,IAAAA,EAAAA,GAAA;AAAA,MAAAC,OAAAA,EACIH,EAAAA;AAAAA,MAAiBI,OAAAA,EACjBH;AAAAA,KAAiB;AAE3BP,IAAAA,CAAAA,MAAAM,EAAAA;AAAAN,IAAAA,CAAAA,MAAAO,EAAAA;AAAAP,IAAAA,CAAAA,MAAAQ,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAR,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAJMQ,EAAAA;AAIN;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGetPermitInfo.js","sources":["../../../../../src/hooks/permit/hooks/permit1/useGetPermitInfo.ts"],"sourcesContent":["import type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport type { Address } from \"viem\";\nimport {\n useQuery,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport {\n detectPermitSupportType,\n type NotDetectedPermitSupport,\n type PermitSupportResult,\n} from \"../../utils/detect\";\nimport { useConfig } from \"wagmi\";\nimport { constructAddressLinkForChain } from \"@/lib/utils/explorer\";\nimport { assert } from \"ts-essentials\";\nimport { useLogger } from \"@/core/logger\";\n\ntype GetPermitInfoQueryKey = readonly [\n \"permitInfo\",\n Address?,\n SupportedChainId?,\n];\n\ntype PermitInfo = PermitSupportResult & {\n tokenAddress: Address;\n chainId: SupportedChainId;\n};\n\ntype NotDetectedPermitInfo = NotDetectedPermitSupport & {\n tokenAddress: Address;\n chainId: SupportedChainId;\n};\n\ntype PermitInfoResult = PermitInfo | NotDetectedPermitInfo;\n\nexport type UseGetPermitInfoParameters<Select = PermitInfoResult> = {\n tokenAddress?: Address;\n chainId?: SupportedChainId;\n query?: Omit<\n UseQueryOptions<PermitInfoResult, Error, Select, GetPermitInfoQueryKey>,\n \"queryKey\" | \"queryFn\"\n >;\n};\n\nexport type UseGetPermitInfoReturnType<Select = PermitInfoResult> =\n UseQueryResult<Select, Error>;\n\nexport function useGetPermitInfo<Select = PermitInfoResult>({\n tokenAddress,\n chainId,\n query,\n}: UseGetPermitInfoParameters<Select>): UseGetPermitInfoReturnType<Select> {\n const logger = useLogger(\"PERMIT1::GetPermitInfo\");\n const config = useConfig();\n\n const queryEnabled = query?.enabled ?? true;\n\n const queryResult = useQuery<\n PermitInfoResult,\n Error,\n Select,\n GetPermitInfoQueryKey\n >({\n queryKey: [\"permitInfo\", tokenAddress?.toLowerCase() as Address, chainId],\n queryFn: async () => {\n assert(tokenAddress, \"tokenAddress is required\");\n assert(chainId, \"chainId is required\");\n\n const permitSupport = await detectPermitSupportType({\n config,\n tokenAddress,\n chainId,\n });\n\n const result = {\n ...permitSupport,\n tokenAddress,\n chainId,\n };\n\n logger.log(\"result\", result);\n logger.log(\n \"check Token in explorer\",\n constructAddressLinkForChain({\n chainId,\n address: tokenAddress,\n }) + \"#writeContract\"\n );\n\n return result;\n },\n // Token Permit support won't change during App runtime\n staleTime: Infinity,\n gcTime: Infinity,\n ...query,\n enabled: queryEnabled && !!tokenAddress && !!chainId,\n });\n\n return queryResult;\n}\n"],"names":["useGetPermitInfo","t0","$","_c","tokenAddress","chainId","query","logger","useLogger","config","useConfig","queryEnabled","enabled","t1","toLowerCase","t2","t3","t4","assert","permitSupport","detectPermitSupportType","result","log","constructAddressLinkForChain","address","t5","t6","queryKey","queryFn","staleTime","Infinity","gcTime","queryResult","useQuery"],"mappings":";;;;;;;;AA+CO,SAAAA,iBAAAC,EAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAAqD,EAAA,MAAA;AAAA,IAAAC,YAAAA;AAAAA,IAAAC,OAAAA;AAAAA,IAAAC;AAAAA,GAAA,GAAAL,EAAAA;AAK1D,EAAA,MAAAM,MAAAA,GAAeC,UAAU,wBAAwB,CAAA;AACjD,EAAA,MAAAC,SAAeC,SAAAA,EAAU;AAEzB,EAAA,MAAAC,YAAAA,GAAqBL,OAAKM,OAAAA,IAAA,IAAA;AAAkB,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAX,CAAAA,QAAAE,YAAAA,EAAA;AAQjBS,IAAAA,EAAAA,GAAAT,cAAYU,WAAAA,EAAA;AAAeZ,IAAAA,CAAAA,MAAAE,YAAAA;AAAAF,IAAAA,CAAAA,MAAAW,EAAAA;AAAAA,
|
|
1
|
+
{"version":3,"file":"useGetPermitInfo.js","sources":["../../../../../src/hooks/permit/hooks/permit1/useGetPermitInfo.ts"],"sourcesContent":["import type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport type { Address } from \"viem\";\nimport {\n useQuery,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport {\n detectPermitSupportType,\n type NotDetectedPermitSupport,\n type PermitSupportResult,\n} from \"../../utils/detect\";\nimport { useConfig } from \"wagmi\";\nimport { constructAddressLinkForChain } from \"@/lib/utils/explorer\";\nimport { assert } from \"ts-essentials\";\nimport { useLogger } from \"@/core/logger\";\n\ntype GetPermitInfoQueryKey = readonly [\n \"permitInfo\",\n Address?,\n SupportedChainId?,\n];\n\ntype PermitInfo = PermitSupportResult & {\n tokenAddress: Address;\n chainId: SupportedChainId;\n};\n\ntype NotDetectedPermitInfo = NotDetectedPermitSupport & {\n tokenAddress: Address;\n chainId: SupportedChainId;\n};\n\ntype PermitInfoResult = PermitInfo | NotDetectedPermitInfo;\n\nexport type UseGetPermitInfoParameters<Select = PermitInfoResult> = {\n tokenAddress?: Address;\n chainId?: SupportedChainId;\n query?: Omit<\n UseQueryOptions<PermitInfoResult, Error, Select, GetPermitInfoQueryKey>,\n \"queryKey\" | \"queryFn\"\n >;\n};\n\nexport type UseGetPermitInfoReturnType<Select = PermitInfoResult> =\n UseQueryResult<Select, Error>;\n\nexport function useGetPermitInfo<Select = PermitInfoResult>({\n tokenAddress,\n chainId,\n query,\n}: UseGetPermitInfoParameters<Select>): UseGetPermitInfoReturnType<Select> {\n const logger = useLogger(\"PERMIT1::GetPermitInfo\");\n const config = useConfig();\n\n const queryEnabled = query?.enabled ?? true;\n\n const queryResult = useQuery<\n PermitInfoResult,\n Error,\n Select,\n GetPermitInfoQueryKey\n >({\n queryKey: [\"permitInfo\", tokenAddress?.toLowerCase() as Address, chainId],\n queryFn: async () => {\n assert(tokenAddress, \"tokenAddress is required\");\n assert(chainId, \"chainId is required\");\n\n const permitSupport = await detectPermitSupportType({\n config,\n tokenAddress,\n chainId,\n });\n\n const result = {\n ...permitSupport,\n tokenAddress,\n chainId,\n };\n\n logger.log(\"result\", result);\n logger.log(\n \"check Token in explorer\",\n constructAddressLinkForChain({\n chainId,\n address: tokenAddress,\n }) + \"#writeContract\"\n );\n\n return result;\n },\n // Token Permit support won't change during App runtime\n staleTime: Infinity,\n gcTime: Infinity,\n ...query,\n enabled: queryEnabled && !!tokenAddress && !!chainId,\n });\n\n return queryResult;\n}\n"],"names":["useGetPermitInfo","t0","$","_c","tokenAddress","chainId","query","logger","useLogger","config","useConfig","queryEnabled","enabled","t1","toLowerCase","t2","t3","t4","assert","permitSupport","detectPermitSupportType","result","log","constructAddressLinkForChain","address","t5","t6","queryKey","queryFn","staleTime","Infinity","gcTime","queryResult","useQuery"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGetSafePermitInfo.js","sources":["../../../../../src/hooks/permit/hooks/permit1/useGetSafePermitInfo.ts"],"sourcesContent":["import type { Address } from \"viem\";\nimport { useGetPermitInfo } from \"./useGetPermitInfo\";\nimport { useTryToSignPermit1 } from \"./useTryToSignPermit1\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport type {\n TrySignPermitFailure,\n TrySignPermitSuccess,\n} from \"../../utils/trySignPermit1\";\nimport type { PermitSupportResult } from \"../../utils/detect\";\nimport type { Prettify } from \"ts-essentials\";\n\ntype UseGetSafePermitInfoParameters = {\n tokenAddress?: Address;\n chainId?: SupportedChainId;\n enabled?: boolean;\n};\n\ntype UseGetSafePermitInfoSuccess = {\n testPermitResult?: TrySignPermitSuccess;\n safePermitInfo?: PermitSupportResult;\n};\n\ntype UseGetSafePermitInfoFailure = {\n testPermitResult?: TrySignPermitFailure;\n safePermitInfo?: undefined;\n};\n\nexport type UseGetSafePermitInfoResult = Prettify<\n (UseGetSafePermitInfoSuccess | UseGetSafePermitInfoFailure) & {\n isLoading: boolean;\n isError: boolean;\n error: Error | null;\n isSuccess: boolean;\n }\n>;\n\n/**\n * Prefer this hook for getting permitInfo\n * as it employs more checks\n */\nexport function useGetSafePermitInfo({\n tokenAddress,\n chainId,\n enabled = true, // enabled: false to get cached results\n}: UseGetSafePermitInfoParameters): UseGetSafePermitInfoResult {\n const permitInfoQuery = useGetPermitInfo({\n tokenAddress,\n chainId,\n query: {\n enabled,\n },\n });\n\n const trySignPermitQuery = useTryToSignPermit1({\n permitInfo:\n permitInfoQuery.data?.type !== \"NOT_DETECTED\"\n ? permitInfoQuery.data\n : undefined,\n tokenAddress: permitInfoQuery.data?.tokenAddress,\n chainId: permitInfoQuery.data?.chainId,\n query: {\n enabled,\n },\n });\n\n const testPermitResult = trySignPermitQuery.data;\n\n const safePermitInfo = testPermitResult?.success\n ? testPermitResult.permitInfo\n : undefined;\n const isLoading = permitInfoQuery.isLoading || trySignPermitQuery.isLoading;\n const isError = permitInfoQuery.isError || trySignPermitQuery.isError;\n const error = permitInfoQuery.error || trySignPermitQuery.error;\n const isSuccess = permitInfoQuery.isSuccess || trySignPermitQuery.isSuccess;\n\n if (testPermitResult?.success) {\n return {\n testPermitResult,\n safePermitInfo, // when present, Token can use some kind of Permit1\n isLoading,\n isError,\n error,\n isSuccess,\n };\n }\n\n return {\n testPermitResult,\n isLoading,\n isError,\n error,\n isSuccess,\n };\n}\n"],"names":["useGetSafePermitInfo","t0","$","_c","tokenAddress","chainId","enabled","t1","undefined","t2","t3","query","permitInfoQuery","useGetPermitInfo","t4","data","type","t5","t6","t7","t8","permitInfo","trySignPermitQuery","useTryToSignPermit1","testPermitResult","safePermitInfo","success","isLoading","isError","error","isSuccess","t9"],"mappings":";;;;AAwCO,SAAAA,qBAAAC,EAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAA8B,EAAA,MAAA;AAAA,IAAAC,YAAAA;AAAAA,IAAAC,OAAAA;AAAAA,IAAAC,OAAAA,EAAAC;AAAAA,GAAA,GAAAN,EAAAA;AAGnC,EAAA,MAAAK,OAAAA,GAAAC,EAAAA,KAAcC,MAAAA,UAAdD,EAAAA;AAAc,EAAA,IAAAE,EAAAA;AAAA,EAAA,IAAAP,CAAAA,QAAAI,OAAAA,EAAA;AAKLG,IAAAA,EAAAA,GAAA;AAAA,MAAAH;AAAAA,KAAA;AAENJ,IAAAA,CAAAA,MAAAI,OAAAA;AAAAJ,IAAAA,CAAAA,MAAAO,EAAAA;AAAAA,
|
|
1
|
+
{"version":3,"file":"useGetSafePermitInfo.js","sources":["../../../../../src/hooks/permit/hooks/permit1/useGetSafePermitInfo.ts"],"sourcesContent":["import type { Address } from \"viem\";\nimport { useGetPermitInfo } from \"./useGetPermitInfo\";\nimport { useTryToSignPermit1 } from \"./useTryToSignPermit1\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport type {\n TrySignPermitFailure,\n TrySignPermitSuccess,\n} from \"../../utils/trySignPermit1\";\nimport type { PermitSupportResult } from \"../../utils/detect\";\nimport type { Prettify } from \"ts-essentials\";\n\ntype UseGetSafePermitInfoParameters = {\n tokenAddress?: Address;\n chainId?: SupportedChainId;\n enabled?: boolean;\n};\n\ntype UseGetSafePermitInfoSuccess = {\n testPermitResult?: TrySignPermitSuccess;\n safePermitInfo?: PermitSupportResult;\n};\n\ntype UseGetSafePermitInfoFailure = {\n testPermitResult?: TrySignPermitFailure;\n safePermitInfo?: undefined;\n};\n\nexport type UseGetSafePermitInfoResult = Prettify<\n (UseGetSafePermitInfoSuccess | UseGetSafePermitInfoFailure) & {\n isLoading: boolean;\n isError: boolean;\n error: Error | null;\n isSuccess: boolean;\n }\n>;\n\n/**\n * Prefer this hook for getting permitInfo\n * as it employs more checks\n */\nexport function useGetSafePermitInfo({\n tokenAddress,\n chainId,\n enabled = true, // enabled: false to get cached results\n}: UseGetSafePermitInfoParameters): UseGetSafePermitInfoResult {\n const permitInfoQuery = useGetPermitInfo({\n tokenAddress,\n chainId,\n query: {\n enabled,\n },\n });\n\n const trySignPermitQuery = useTryToSignPermit1({\n permitInfo:\n permitInfoQuery.data?.type !== \"NOT_DETECTED\"\n ? permitInfoQuery.data\n : undefined,\n tokenAddress: permitInfoQuery.data?.tokenAddress,\n chainId: permitInfoQuery.data?.chainId,\n query: {\n enabled,\n },\n });\n\n const testPermitResult = trySignPermitQuery.data;\n\n const safePermitInfo = testPermitResult?.success\n ? testPermitResult.permitInfo\n : undefined;\n const isLoading = permitInfoQuery.isLoading || trySignPermitQuery.isLoading;\n const isError = permitInfoQuery.isError || trySignPermitQuery.isError;\n const error = permitInfoQuery.error || trySignPermitQuery.error;\n const isSuccess = permitInfoQuery.isSuccess || trySignPermitQuery.isSuccess;\n\n if (testPermitResult?.success) {\n return {\n testPermitResult,\n safePermitInfo, // when present, Token can use some kind of Permit1\n isLoading,\n isError,\n error,\n isSuccess,\n };\n }\n\n return {\n testPermitResult,\n isLoading,\n isError,\n error,\n isSuccess,\n };\n}\n"],"names":["useGetSafePermitInfo","t0","$","_c","tokenAddress","chainId","enabled","t1","undefined","t2","t3","query","permitInfoQuery","useGetPermitInfo","t4","data","type","t5","t6","t7","t8","permitInfo","trySignPermitQuery","useTryToSignPermit1","testPermitResult","safePermitInfo","success","isLoading","isError","error","isSuccess","t9"],"mappings":";;;;AAwCO,SAAAA,qBAAAC,EAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAA8B,EAAA,MAAA;AAAA,IAAAC,YAAAA;AAAAA,IAAAC,OAAAA;AAAAA,IAAAC,OAAAA,EAAAC;AAAAA,GAAA,GAAAN,EAAAA;AAGnC,EAAA,MAAAK,OAAAA,GAAAC,EAAAA,KAAcC,MAAAA,UAAdD,EAAAA;AAAc,EAAA,IAAAE,EAAAA;AAAA,EAAA,IAAAP,CAAAA,QAAAI,OAAAA,EAAA;AAKLG,IAAAA,EAAAA,GAAA;AAAA,MAAAH;AAAAA,KAAA;AAENJ,IAAAA,CAAAA,MAAAI,OAAAA;AAAAJ,IAAAA,CAAAA,MAAAO,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAP,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAQ,EAAAA;AAAA,EAAA,IAAAR,CAAAA,CAAA,CAAA,CAAA,KAAAG,OAAAA,IAAAH,CAAAA,QAAAO,EAAAA,IAAAP,CAAAA,CAAA,CAAA,CAAA,KAAAE,YAAAA,EAAA;AALsCM,IAAAA,EAAAA,GAAA;AAAA,MAAAN,YAAAA;AAAAA,MAAAC,OAAAA;AAAAA,MAAAM,KAAAA,EAGhCF;AAAAA,KAEN;AACFP,IAAAA,CAAAA,MAAAG,OAAAA;AAAAH,IAAAA,CAAAA,MAAAO,EAAAA;AAAAP,IAAAA,CAAAA,MAAAE,YAAAA;AAAAF,IAAAA,CAAAA,MAAAQ,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAR,EAAA,CAAA,CAAA;AAAA,EAAA;AAND,EAAA,MAAAU,eAAAA,GAAwBC,iBAAiBH,EAMxC,CAAA;AAIG,EAAA,MAAAI,KAAAF,eAAAA,CAAeG,IAAAA,EAAAC,IAAAA,KAAgB,cAAA,GAC3BJ,gBAAeG,IAAAA,GAAAP,MAAAA;AAEP,EAAA,MAAAS,EAAAA,GAAAL,gBAAeG,IAAAA,EAAAX,YAAAA;AACpB,EAAA,MAAAc,EAAAA,GAAAN,gBAAeG,IAAAA,EAAAV,OAAAA;AAAc,EAAA,IAAAc,EAAAA;AAAA,EAAA,IAAAjB,CAAAA,QAAAI,OAAAA,EAAA;AAC/Ba,IAAAA,EAAAA,GAAA;AAAA,MAAAb;AAAAA,KAAA;AAENJ,IAAAA,CAAAA,MAAAI,OAAAA;AAAAJ,IAAAA,CAAAA,MAAAiB,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAjB,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAkB,EAAAA;AAAA,EAAA,IAAAlB,CAAAA,CAAA,CAAA,CAAA,KAAAY,EAAAA,IAAAZ,EAAA,CAAA,CAAA,KAAAe,EAAAA,IAAAf,CAAAA,CAAA,EAAA,CAAA,KAAAgB,EAAAA,IAAAhB,CAAAA,SAAAiB,EAAAA,EAAA;AAT4CC,IAAAA,EAAAA,GAAA;AAAA,MAAAC,UAAAA,EAE3CP,EAAAA;AAAAA,MAEaV,YAAAA,EACDa,EAAAA;AAAAA,MAAkCZ,OAAAA,EACvCa,EAAAA;AAAAA,MAA6BP,KAAAA,EAC/BQ;AAAAA,KAEN;AACFjB,IAAAA,CAAAA,MAAAY,EAAAA;AAAAZ,IAAAA,CAAAA,MAAAe,EAAAA;AAAAf,IAAAA,CAAAA,OAAAgB,EAAAA;AAAAhB,IAAAA,CAAAA,OAAAiB,EAAAA;AAAAjB,IAAAA,CAAAA,OAAAkB,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAlB,EAAA,EAAA,CAAA;AAAA,EAAA;AAVD,EAAA,MAAAoB,kBAAAA,GAA2BC,oBAAoBH,EAU9C,CAAA;AAED,EAAA,MAAAI,mBAAyBF,kBAAAA,CAAkBP,IAAAA;AAE3C,EAAA,MAAAU,cAAAA,GAAuBD,gBAAAA,EAAgBE,OAAAA,GACnCF,gBAAAA,CAAgBH,UAAAA,GAAAb,MAAAA;AAEpB,EAAA,MAAAmB,SAAAA,GAAkBf,eAAAA,CAAee,SAAAA,IAAcL,kBAAAA,CAAkBK,SAAAA;AACjE,EAAA,MAAAC,OAAAA,GAAgBhB,eAAAA,CAAegB,OAAAA,IAAYN,kBAAAA,CAAkBM,OAAAA;AAC7D,EAAA,MAAAC,KAAAA,GAAcjB,eAAAA,CAAeiB,KAAAA,IAAUP,kBAAAA,CAAkBO,KAAAA;AACzD,EAAA,MAAAC,SAAAA,GAAkBlB,eAAAA,CAAekB,SAAAA,IAAcR,kBAAAA,CAAkBQ,SAAAA;AAAW,EAAA,IAExEN,kBAAgBE,OAAAA,EAAA;AAAA,IAAA,IAAAK,GAAAA;AAAA,IAAA,IAAA7B,CAAAA,SAAA2B,KAAAA,IAAA3B,EAAA,EAAA,CAAA,KAAA0B,OAAAA,IAAA1B,CAAAA,CAAA,EAAA,CAAA,KAAAyB,aAAAzB,CAAAA,CAAA,EAAA,CAAA,KAAA4B,SAAAA,IAAA5B,CAAAA,SAAAuB,cAAAA,IAAAvB,CAAAA,CAAA,EAAA,CAAA,KAAAsB,gBAAAA,EAAA;AACXO,MAAAA,GAAAA,GAAA;AAAA,QAAAP,gBAAAA;AAAAA,QAAAC,cAAAA;AAAAA,QAAAE,SAAAA;AAAAA,QAAAC,OAAAA;AAAAA,QAAAC,KAAAA;AAAAA,QAAAC;AAAAA,OAAA;AAON5B,MAAAA,CAAAA,OAAA2B,KAAAA;AAAA3B,MAAAA,CAAAA,OAAA0B,OAAAA;AAAA1B,MAAAA,CAAAA,OAAAyB,SAAAA;AAAAzB,MAAAA,CAAAA,OAAA4B,SAAAA;AAAA5B,MAAAA,CAAAA,OAAAuB,cAAAA;AAAAvB,MAAAA,CAAAA,OAAAsB,gBAAAA;AAAAtB,MAAAA,CAAAA,OAAA6B,GAAAA;AAAAA,IAAA,CAAA,MAAA;AAAAA,MAAAA,GAAAA,GAAA7B,EAAA,EAAA,CAAA;AAAA,IAAA;AAAA,IAAA,OAPM6B,GAAAA;AAAAA,EAON;AAAA,EAAA,IAAAA,EAAAA;AAAA,EAAA,IAAA7B,EAAA,EAAA,CAAA,KAAA2B,SAAA3B,CAAAA,CAAA,EAAA,MAAA0B,OAAAA,IAAA1B,CAAAA,CAAA,EAAA,CAAA,KAAAyB,SAAAA,IAAAzB,EAAA,EAAA,CAAA,KAAA4B,aAAA5B,CAAAA,SAAAsB,gBAAAA,EAAA;AAGIO,IAAAA,EAAAA,GAAA;AAAA,MAAAP,gBAAAA;AAAAA,MAAAG,SAAAA;AAAAA,MAAAC,OAAAA;AAAAA,MAAAC,KAAAA;AAAAA,MAAAC;AAAAA,KAAA;AAMN5B,IAAAA,CAAAA,OAAA2B,KAAAA;AAAA3B,IAAAA,CAAAA,OAAA0B,OAAAA;AAAA1B,IAAAA,CAAAA,OAAAyB,SAAAA;AAAAzB,IAAAA,CAAAA,OAAA4B,SAAAA;AAAA5B,IAAAA,CAAAA,OAAAsB,gBAAAA;AAAAtB,IAAAA,CAAAA,OAAA6B,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAA7B,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OANM6B,EAAAA;AAMN;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePermit1Nonce.js","sources":["../../../../../src/hooks/permit/hooks/permit1/usePermit1Nonce.ts"],"sourcesContent":["import { useReadContracts } from \"wagmi\";\nimport { ERC_20_NONCES_ABI } from \"../../utils/constants\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { atom, useAtomValue, useSetAtom } from \"jotai\";\nimport type { Token } from \"@/tokens/state/types\";\nimport type {\n QueryObserverResult,\n RefetchOptions,\n} from \"@tanstack/react-query\";\nimport type { Address } from \"viem\";\nimport { useMemo } from \"react\";\nimport type { ReadContractsData } from \"wagmi/query\";\nimport { isETHaddress } from \"@/tokens/utils/eth\";\n\ninterface UsePermitNonceParams {\n token?: Address;\n owner?: Address;\n chainId?: SupportedChainId;\n enabled?: boolean;\n}\n\n// chainId:token:owner => unused nonce (next to be used, starting with 0)\nconst NoncesAtom = atom<Record<TokenNonceKey, bigint>>({});\n\ntype SetNonceInput = {\n token: Pick<Token, \"address\" | \"network\">;\n owner: Address;\n usedNonce?: bigint;\n};\n\ntype UseMarkNonceAsUsedResult = {\n // mark as minimum nonce to use for next Permit, after sending Order or tx out\n markNonceAsUsed: (input: SetNonceInput) => void;\n // clear saved minimum nonce to rely on fetched nonce, if Order or tx failed\n clearNonce: (input: Pick<SetNonceInput, \"token\" | \"owner\">) => void;\n};\n\nexport function useMarkNonceAsUsed(): UseMarkNonceAsUsedResult {\n const setNonces = useSetAtom(NoncesAtom);\n\n const markNonceAsUsed: UseMarkNonceAsUsedResult[\"markNonceAsUsed\"] = ({\n token,\n owner,\n usedNonce,\n }) => {\n setNonces((prev) => {\n const key = getNonceKey({\n token: token.address as Address,\n owner,\n chainId: token.network,\n });\n const prevNonce = usedNonce ?? prev[key] ?? 0n;\n return {\n ...prev,\n [key]: prevNonce + 1n,\n };\n });\n };\n\n const clearNonce: UseMarkNonceAsUsedResult[\"clearNonce\"] = ({\n token,\n owner,\n }) => {\n setNonces((prev) => {\n const key = getNonceKey({\n token: token.address as Address,\n owner,\n chainId: token.network,\n });\n\n if (prev[key] === undefined) return prev;\n\n const { [key]: _, ...withoutKey } = prev;\n return withoutKey;\n });\n };\n\n return {\n markNonceAsUsed,\n clearNonce,\n };\n}\n\ntype GetNonceInput = {\n token: Address;\n owner: Address;\n chainId: SupportedChainId;\n};\n\ntype TokenNonceKey = `${number}:${Address}:${Address}`;\n\nfunction getNonceKey({ token, owner, chainId }: GetNonceInput): TokenNonceKey {\n return `${chainId}:${token.toLowerCase() as Address}:${owner.toLowerCase() as Address}` as const;\n}\n\nexport type NonceMethod = (typeof ERC_20_NONCES_ABI)[number][\"name\"];\n\ntype PermitNonceResult = {\n nonceMethod: NonceMethod;\n nonceToUse: bigint;\n};\n\nexport type UsePermit1NonceResult = {\n // null when no nonce support detected\n nonceToUse?: PermitNonceResult[\"nonceToUse\"] | null;\n nonceMethod?: PermitNonceResult[\"nonceMethod\"] | null;\n isLoading: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n refetch: (\n options?: RefetchOptions\n ) => Promise<QueryObserverResult<PermitNonceResult | null, Error>>;\n};\n\nexport function usePermit1Nonce({\n token,\n owner,\n chainId,\n enabled = true,\n}: UsePermitNonceParams): UsePermit1NonceResult {\n const key =\n token && owner && chainId ? getNonceKey({ token, owner, chainId }) : null;\n\n const noncesMap = useAtomValue(NoncesAtom);\n const tokenNotETH = token && !isETHaddress(token);\n\n // explicitly memoize select\n const { contractCalls, select } = useMemo(() => {\n const select = (\n data: ReadContractsData<typeof contractCalls, true>\n ): PermitNonceResult | null => {\n const successIndex = data.findIndex((d) => d.status === \"success\");\n // no method successfully returned anything\n if (successIndex === -1) return null;\n const method = contractCalls[successIndex]?.functionName;\n const result = data[successIndex]?.result;\n\n // the vars will always be non-null at this point\n if (!method || result === undefined) return null;\n\n const lastUnusedNonce = key ? (noncesMap[key] ?? 0n) : 0n;\n const nonce = result > lastUnusedNonce ? result : lastUnusedNonce;\n\n return {\n nonceMethod: method,\n nonceToUse: nonce,\n };\n };\n\n const ZERO_ADDRESS = \"0x0000000000000000000000000000000000000000\";\n // for the case where the token or owner is not set, to match the types,\n // readContracts isn't run anyway because of enabled=false\n const tokenAddress = (token?.toLowerCase() as Address) ?? ZERO_ADDRESS;\n const ownerAddress = (owner?.toLowerCase() as Address) ?? ZERO_ADDRESS;\n\n const contractCalls = [\n {\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: \"nonces\",\n args: [ownerAddress],\n },\n {\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: \"_nonces\",\n args: [ownerAddress],\n },\n {\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: \"nonce\",\n args: [ownerAddress],\n },\n {\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: \"getNonce\",\n args: [ownerAddress],\n },\n ] as const;\n\n return {\n contractCalls,\n select,\n };\n }, [noncesMap, key, owner, token]);\n\n const {\n data: nonceResult,\n isLoading,\n isError,\n isSuccess,\n error,\n refetch,\n } = useReadContracts({\n allowFailure: true,\n contracts: contractCalls,\n query: {\n enabled: enabled && tokenNotETH && !!(token && owner && chainId),\n select,\n },\n });\n\n return {\n nonceToUse: nonceResult === null ? null : nonceResult?.nonceToUse,\n nonceMethod: nonceResult === null ? null : nonceResult?.nonceMethod,\n isLoading,\n isError,\n isSuccess,\n error,\n refetch,\n };\n}\n"],"names":["NoncesAtom","atom","useMarkNonceAsUsed","setNonces","useSetAtom","markNonceAsUsed","token","owner","usedNonce","prev","key","getNonceKey","address","chainId","network","prevNonce","clearNonce","undefined","_","withoutKey","toLowerCase","usePermit1Nonce","enabled","noncesMap","useAtomValue","tokenNotETH","isETHaddress","contractCalls","select","useMemo","data","successIndex","findIndex","d","status","method","functionName","result","lastUnusedNonce","nonce","nonceMethod","nonceToUse","ZERO_ADDRESS","tokenAddress","ownerAddress","abi","ERC_20_NONCES_ABI","args","nonceResult","isLoading","isError","isSuccess","error","refetch","useReadContracts","allowFailure","contracts","query"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"usePermit1Nonce.js","sources":["../../../../../src/hooks/permit/hooks/permit1/usePermit1Nonce.ts"],"sourcesContent":["import { useReadContracts } from \"wagmi\";\nimport { ERC_20_NONCES_ABI } from \"../../utils/constants\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { atom, useAtomValue, useSetAtom } from \"jotai\";\nimport type { Token } from \"@/tokens/state/types\";\nimport type {\n QueryObserverResult,\n RefetchOptions,\n} from \"@tanstack/react-query\";\nimport type { Address } from \"viem\";\nimport { useMemo } from \"react\";\nimport type { ReadContractsData } from \"wagmi/query\";\nimport { isETHaddress } from \"@/tokens/utils/eth\";\n\ninterface UsePermitNonceParams {\n token?: Address;\n owner?: Address;\n chainId?: SupportedChainId;\n enabled?: boolean;\n}\n\n// chainId:token:owner => unused nonce (next to be used, starting with 0)\nconst NoncesAtom = atom<Record<TokenNonceKey, bigint>>({});\n\ntype SetNonceInput = {\n token: Pick<Token, \"address\" | \"network\">;\n owner: Address;\n usedNonce?: bigint;\n};\n\ntype UseMarkNonceAsUsedResult = {\n // mark as minimum nonce to use for next Permit, after sending Order or tx out\n markNonceAsUsed: (input: SetNonceInput) => void;\n // clear saved minimum nonce to rely on fetched nonce, if Order or tx failed\n clearNonce: (input: Pick<SetNonceInput, \"token\" | \"owner\">) => void;\n};\n\nexport function useMarkNonceAsUsed(): UseMarkNonceAsUsedResult {\n const setNonces = useSetAtom(NoncesAtom);\n\n const markNonceAsUsed: UseMarkNonceAsUsedResult[\"markNonceAsUsed\"] = ({\n token,\n owner,\n usedNonce,\n }) => {\n setNonces((prev) => {\n const key = getNonceKey({\n token: token.address as Address,\n owner,\n chainId: token.network,\n });\n const prevNonce = usedNonce ?? prev[key] ?? 0n;\n return {\n ...prev,\n [key]: prevNonce + 1n,\n };\n });\n };\n\n const clearNonce: UseMarkNonceAsUsedResult[\"clearNonce\"] = ({\n token,\n owner,\n }) => {\n setNonces((prev) => {\n const key = getNonceKey({\n token: token.address as Address,\n owner,\n chainId: token.network,\n });\n\n if (prev[key] === undefined) return prev;\n\n const { [key]: _, ...withoutKey } = prev;\n return withoutKey;\n });\n };\n\n return {\n markNonceAsUsed,\n clearNonce,\n };\n}\n\ntype GetNonceInput = {\n token: Address;\n owner: Address;\n chainId: SupportedChainId;\n};\n\ntype TokenNonceKey = `${number}:${Address}:${Address}`;\n\nfunction getNonceKey({ token, owner, chainId }: GetNonceInput): TokenNonceKey {\n return `${chainId}:${token.toLowerCase() as Address}:${owner.toLowerCase() as Address}` as const;\n}\n\nexport type NonceMethod = (typeof ERC_20_NONCES_ABI)[number][\"name\"];\n\ntype PermitNonceResult = {\n nonceMethod: NonceMethod;\n nonceToUse: bigint;\n};\n\nexport type UsePermit1NonceResult = {\n // null when no nonce support detected\n nonceToUse?: PermitNonceResult[\"nonceToUse\"] | null;\n nonceMethod?: PermitNonceResult[\"nonceMethod\"] | null;\n isLoading: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n refetch: (\n options?: RefetchOptions\n ) => Promise<QueryObserverResult<PermitNonceResult | null, Error>>;\n};\n\nexport function usePermit1Nonce({\n token,\n owner,\n chainId,\n enabled = true,\n}: UsePermitNonceParams): UsePermit1NonceResult {\n const key =\n token && owner && chainId ? getNonceKey({ token, owner, chainId }) : null;\n\n const noncesMap = useAtomValue(NoncesAtom);\n const tokenNotETH = token && !isETHaddress(token);\n\n // explicitly memoize select\n const { contractCalls, select } = useMemo(() => {\n const select = (\n data: ReadContractsData<typeof contractCalls, true>\n ): PermitNonceResult | null => {\n const successIndex = data.findIndex((d) => d.status === \"success\");\n // no method successfully returned anything\n if (successIndex === -1) return null;\n const method = contractCalls[successIndex]?.functionName;\n const result = data[successIndex]?.result;\n\n // the vars will always be non-null at this point\n if (!method || result === undefined) return null;\n\n const lastUnusedNonce = key ? (noncesMap[key] ?? 0n) : 0n;\n const nonce = result > lastUnusedNonce ? result : lastUnusedNonce;\n\n return {\n nonceMethod: method,\n nonceToUse: nonce,\n };\n };\n\n const ZERO_ADDRESS = \"0x0000000000000000000000000000000000000000\";\n // for the case where the token or owner is not set, to match the types,\n // readContracts isn't run anyway because of enabled=false\n const tokenAddress = (token?.toLowerCase() as Address) ?? ZERO_ADDRESS;\n const ownerAddress = (owner?.toLowerCase() as Address) ?? ZERO_ADDRESS;\n\n const contractCalls = [\n {\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: \"nonces\",\n args: [ownerAddress],\n },\n {\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: \"_nonces\",\n args: [ownerAddress],\n },\n {\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: \"nonce\",\n args: [ownerAddress],\n },\n {\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: \"getNonce\",\n args: [ownerAddress],\n },\n ] as const;\n\n return {\n contractCalls,\n select,\n };\n }, [noncesMap, key, owner, token]);\n\n const {\n data: nonceResult,\n isLoading,\n isError,\n isSuccess,\n error,\n refetch,\n } = useReadContracts({\n allowFailure: true,\n contracts: contractCalls,\n query: {\n enabled: enabled && tokenNotETH && !!(token && owner && chainId),\n select,\n },\n });\n\n return {\n nonceToUse: nonceResult === null ? null : nonceResult?.nonceToUse,\n nonceMethod: nonceResult === null ? null : nonceResult?.nonceMethod,\n isLoading,\n isError,\n isSuccess,\n error,\n refetch,\n };\n}\n"],"names":["NoncesAtom","atom","useMarkNonceAsUsed","setNonces","useSetAtom","markNonceAsUsed","token","owner","usedNonce","prev","key","getNonceKey","address","chainId","network","prevNonce","clearNonce","undefined","_","withoutKey","toLowerCase","usePermit1Nonce","enabled","noncesMap","useAtomValue","tokenNotETH","isETHaddress","contractCalls","select","useMemo","data","successIndex","findIndex","d","status","method","functionName","result","lastUnusedNonce","nonce","nonceMethod","nonceToUse","ZERO_ADDRESS","tokenAddress","ownerAddress","abi","ERC_20_NONCES_ABI","args","nonceResult","isLoading","isError","isSuccess","error","refetch","useReadContracts","allowFailure","contracts","query"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSignTokenPermit1.js","sources":["../../../../../src/hooks/permit/hooks/permit1/useSignTokenPermit1.ts"],"sourcesContent":["import { useAccount } from \"wagmi\";\nimport { useMarkNonceAsUsed, usePermit1Nonce } from \"./usePermit1Nonce\";\nimport type { Address, Hash, Hex } from \"viem\";\nimport { useSignPermit } from \"../common/useSignPermit\";\nimport type { DaiPermitInput, Permit1Input } from \"../../utils/construct\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { useGetSafePermitInfo } from \"./useGetSafePermitInfo\";\nimport { assert } from \"ts-essentials\";\nimport { encodePermit1MethodArgs } from \"../../utils/encodeArgs\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { produceSignatureDeadline } from \"../../utils/deadlines\";\nimport { useWalletSupportsPermit } from \"../common/useWalletSupportsPermit\";\n\ntype UseSignTokenPermit1Params = {\n onSuccess?: (signature: Hex) => void;\n onError?: (error: Error) => void;\n token?: Pick<Token, \"address\" | \"network\">;\n value?: bigint;\n spender?: Address;\n enabled?: boolean;\n};\n\ntype QueryMutState = {\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n};\n\nexport type SignedPermit1Result = {\n signature: Hash;\n permit1EncodedArgs: Hash;\n signedPermitData: Permit1Input | DaiPermitInput;\n};\n\nexport type SignPermit1Input = Pick<\n UseSignTokenPermit1Params,\n \"value\" | \"spender\"\n>;\n\nexport type UseSignTokenPermit1Result = {\n signPermit1: (params?: SignPermit1Input) => void;\n signPermit1Async: (params?: SignPermit1Input) => Promise<SignedPermit1Result>;\n encodePermitArgs: (params?: SignPermit1Input) => Hash | undefined;\n isPermitSupported: boolean;\n isPermitReadyToSign: boolean;\n permitFetchingState: QueryMutState;\n permitSigningState: QueryMutState;\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n reset: () => void;\n signature?: Hash;\n permit1EncodedArgs?: Hash;\n};\n\nexport function useSignTokenPermit1({\n onSuccess,\n onError,\n token,\n value,\n spender,\n enabled = true,\n}: UseSignTokenPermit1Params): UseSignTokenPermit1Result {\n const { permit1: isPermit1Supported } = useWalletSupportsPermit();\n\n const queriesEnabled = enabled && isPermit1Supported;\n\n const permitInfoQueryResult = useGetSafePermitInfo({\n tokenAddress: token?.address as Address,\n chainId: token?.network,\n enabled: queriesEnabled,\n });\n\n const { address: owner } = useAccount();\n\n const nonceQueryResult = usePermit1Nonce({\n token: token?.address as Address,\n owner,\n chainId: token?.network,\n enabled: queriesEnabled,\n });\n\n const permitFetchingState = {\n isPending: permitInfoQueryResult.isLoading || nonceQueryResult.isLoading,\n isError: permitInfoQueryResult.isError || nonceQueryResult.isError,\n isSuccess: permitInfoQueryResult.isSuccess || nonceQueryResult.isSuccess,\n error: permitInfoQueryResult.error || nonceQueryResult.error,\n };\n\n const isPermitSupported =\n !!permitInfoQueryResult.safePermitInfo && isPermit1Supported;\n const isPermitReadyToSign =\n isPermitSupported &&\n !!owner &&\n typeof nonceQueryResult.nonceToUse === \"bigint\";\n\n const signMut = useSignPermit({\n onSuccess,\n onError,\n });\n\n const permitSigningState = {\n isPending: signMut.isPending,\n isError: signMut.isError,\n isSuccess: signMut.isSuccess,\n error: signMut.error,\n };\n\n const isPending =\n permitFetchingState.isPending || permitSigningState.isPending;\n const isError = permitFetchingState.isError || permitSigningState.isError;\n const isSuccess =\n permitFetchingState.isSuccess || permitSigningState.isSuccess;\n const error = permitFetchingState.error || permitSigningState.error;\n\n const nonce = nonceQueryResult.nonceToUse;\n const permitInfo = permitInfoQueryResult.safePermitInfo;\n\n const producePermitInput = (params?: SignPermit1Input) => {\n const _spender = params?.spender || spender;\n const _value = params?.value || value;\n\n assert(permitInfo, \"Permit info not found\");\n assert(owner, \"Account not connected\");\n assert(typeof nonce === \"bigint\", \"Nonce not available\");\n assert(_spender, \"Spender not available\");\n assert(_value, \"Value not available or 0\");\n\n const deadline = produceSignatureDeadline();\n\n if (permitInfo.type === \"eip2612\") {\n const input: Permit1Input = {\n type: \"permit1\",\n permitInfo,\n owner,\n spender: _spender,\n value: _value,\n nonce,\n deadline,\n };\n return input;\n }\n const input: DaiPermitInput = {\n type: \"dai\",\n permitInfo,\n holder: owner,\n spender: _spender,\n nonce,\n expiry: deadline,\n allowed: true,\n };\n return input;\n };\n\n const signPermit1Async: UseSignTokenPermit1Result[\"signPermit1Async\"] =\n async (params) => {\n const input = producePermitInput(params);\n const signature = await signMut.signPermitAsync(input);\n\n const encodedArgs = encodePermit1MethodArgs({\n ...input,\n signature,\n });\n\n return {\n signature,\n permit1EncodedArgs: encodedArgs,\n signedPermitData: input,\n };\n };\n\n const signPermit1: UseSignTokenPermit1Result[\"signPermit1\"] = (params) => {\n const input = producePermitInput(params);\n signMut.signPermit(input);\n };\n\n const paramsNotAvailable = !permitInfo || typeof nonce !== \"bigint\" || !owner;\n\n const encodePermitArgs: UseSignTokenPermit1Result[\"encodePermitArgs\"] = (\n params\n ) => {\n const _spender = params?.spender || spender;\n const _value = params?.value || value;\n\n if (!signMut.signature || paramsNotAvailable || !_spender || !_value) {\n return;\n }\n const input = producePermitInput({\n spender: _spender,\n value: _value,\n });\n return encodePermit1MethodArgs({\n ...input,\n signature: signMut.signature,\n });\n };\n\n return {\n signPermit1,\n signPermit1Async,\n encodePermitArgs,\n isPermitSupported,\n isPermitReadyToSign,\n permitFetchingState,\n permitSigningState,\n isPending,\n isSuccess,\n isError,\n error,\n reset: signMut.reset,\n signature: signMut.signature,\n };\n}\n\ntype UseMarkPermit1NonceAsUsedParams = {\n chainId: SupportedChainId;\n};\n\ntype UseMarkPermit1NonceAsUsedResult = {\n markNonceAsUsed: (signedPermitData: Permit1Input | DaiPermitInput) => void;\n clearNonce: (signedPermitData: Permit1Input | DaiPermitInput) => void;\n};\n\nexport function useMarkPermit1NonceAsUsed({\n chainId,\n}: UseMarkPermit1NonceAsUsedParams): UseMarkPermit1NonceAsUsedResult {\n const nonceUsedMarker = useMarkNonceAsUsed();\n\n const markNonceAsUsed: UseMarkPermit1NonceAsUsedResult[\"markNonceAsUsed\"] = (\n signedPermitData\n ) => {\n const permitInfo = signedPermitData.permitInfo;\n\n const address = permitInfo.domain.verifyingContract;\n const network = (permitInfo.domain.chainId as SupportedChainId) ?? chainId;\n\n const owner =\n signedPermitData.type === \"dai\"\n ? signedPermitData.holder\n : signedPermitData.owner;\n\n const nonce = signedPermitData.nonce;\n\n nonceUsedMarker.markNonceAsUsed({\n token: {\n address,\n network,\n },\n owner,\n usedNonce: nonce,\n });\n };\n\n const clearNonce: UseMarkPermit1NonceAsUsedResult[\"clearNonce\"] = (\n signedPermitData\n ) => {\n const permitInfo = signedPermitData.permitInfo;\n\n const address = permitInfo.domain.verifyingContract;\n const network = (permitInfo.domain.chainId as SupportedChainId) ?? chainId;\n\n const owner =\n signedPermitData.type === \"dai\"\n ? signedPermitData.holder\n : signedPermitData.owner;\n\n nonceUsedMarker.clearNonce({\n token: {\n address,\n network,\n },\n owner,\n });\n };\n return {\n markNonceAsUsed,\n clearNonce,\n };\n}\n"],"names":["useSignTokenPermit1","t0","$","_c","onSuccess","onError","token","value","spender","enabled","t1","undefined","permit1","isPermit1Supported","useWalletSupportsPermit","queriesEnabled","t2","address","t3","network","t4","tokenAddress","chainId","permitInfoQueryResult","useGetSafePermitInfo","owner","useAccount","t5","t6","t7","nonceQueryResult","usePermit1Nonce","t8","isLoading","t9","isError","t10","isSuccess","t11","error","t12","isPending","permitFetchingState","isPermitSupported","safePermitInfo","isPermitReadyToSign","nonceToUse","t13","signMut","useSignPermit","t14","permitSigningState","nonce","permitInfo","t15","params","_spender","_value","assert","deadline","produceSignatureDeadline","type","input","input_0","holder","expiry","allowed","producePermitInput","t16","params_0","input_1","signature","signPermitAsync","encodedArgs","encodePermit1MethodArgs","permit1EncodedArgs","signedPermitData","signPermit1Async","t17","params_1","input_2","signPermit","signPermit1","paramsNotAvailable","t18","params_2","_spender_0","_value_0","input_3","encodePermitArgs","t19","reset","useMarkPermit1NonceAsUsed","nonceUsedMarker","useMarkNonceAsUsed","domain","verifyingContract","markNonceAsUsed","usedNonce","signedPermitData_0","permitInfo_0","address_0","network_0","owner_0","clearNonce"],"mappings":";;;;;;;;;;AAyDO,SAAAA,oBAAAC,EAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAA6B,EAAA,MAAA;AAAA,IAAAC,SAAAA;AAAAA,IAAAC,OAAAA;AAAAA,IAAAC,KAAAA;AAAAA,IAAAC,KAAAA;AAAAA,IAAAC,OAAAA;AAAAA,IAAAC,OAAAA,EAAAC;AAAAA,GAAA,GAAAT,EAAAA;AAMlC,EAAA,MAAAQ,OAAAA,GAAAC,EAAAA,KAAcC,MAAAA,UAAdD,EAAAA;AAEA,EAAA,MAAA;AAAA,IAAAE,OAAAA,EAAAC;AAAAA,MAAwCC,uBAAAA,EAAwB;AAEhE,EAAA,MAAAC,iBAAuBN,OAAAA,IAAWI,kBAAAA;AAGlB,EAAA,MAAAG,KAAAV,KAAAA,EAAKW,OAAAA;AACV,EAAA,MAAAC,KAAAZ,KAAAA,EAAKa,OAAAA;AAAS,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAlB,CAAAA,CAAA,CAAA,CAAA,KAAAa,cAAAA,IAAAb,CAAAA,QAAAc,EAAAA,IAAAd,CAAAA,CAAA,CAAA,CAAA,KAAAgB,EAAAA,EAAA;AAF0BE,IAAAA,EAAAA,GAAA;AAAA,MAAAC,YAAAA,EACnCL,EAAAA;AAAAA,MAAyBM,OAAAA,EAC9BJ,EAAAA;AAAAA,MAAcT,OAAAA,EACdM;AAAAA,KAAc;AACxBb,IAAAA,CAAAA,MAAAa,cAAAA;AAAAb,IAAAA,CAAAA,MAAAc,EAAAA;AAAAd,IAAAA,CAAAA,MAAAgB,EAAAA;AAAAhB,IAAAA,CAAAA,MAAAkB,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAlB,EAAA,CAAA,CAAA;AAAA;AAJD,EAAA,MAAAqB,qBAAAA,GAA8BC,qBAAqBJ,EAIlD,CAAA;AAED,EAAA,MAAA;AAAA,IAAAH,OAAAA,EAAAQ;AAAAA,MAA2BC,UAAAA,EAAW;AAG7B,EAAA,MAAAC,KAAArB,KAAAA,EAAKW,OAAAA;AAEH,EAAA,MAAAW,KAAAtB,KAAAA,EAAKa,OAAAA;AAAS,EAAA,IAAAU,EAAAA;AAAA,EAAA,IAAA3B,CAAAA,CAAA,CAAA,CAAA,KAAAuB,KAAAA,IAAAvB,EAAA,CAAA,CAAA,KAAAa,cAAAA,IAAAb,CAAAA,CAAA,CAAA,CAAA,KAAAyB,EAAAA,IAAAzB,CAAAA,QAAA0B,EAAAA,EAAA;AAHgBC,IAAAA,EAAAA,GAAA;AAAA,MAAAvB,KAAAA,EAChCqB,EAAAA;AAAAA,MAAyBF,KAAAA;AAAAA,MAAAH,OAAAA,EAEvBM,EAAAA;AAAAA,MAAcnB,OAAAA,EACdM;AAAAA,KAAc;AACxBb,IAAAA,CAAAA,MAAAuB,KAAAA;AAAAvB,IAAAA,CAAAA,MAAAa,cAAAA;AAAAb,IAAAA,CAAAA,MAAAyB,EAAAA;AAAAzB,IAAAA,CAAAA,MAAA0B,EAAAA;AAAA1B,IAAAA,CAAAA,MAAA2B,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAA3B,EAAA,CAAA,CAAA;AAAA;AALD,EAAA,MAAA4B,gBAAAA,GAAyBC,gBAAgBF,EAKxC,CAAA;AAGY,EAAA,MAAAG,EAAAA,GAAAT,qBAAAA,CAAqBU,SAAAA,IAAcH,gBAAAA,CAAgBG,SAAAA;AACrD,EAAA,MAAAC,EAAAA,GAAAX,qBAAAA,CAAqBY,OAAAA,IAAYL,gBAAAA,CAAgBK,OAAAA;AAC/C,EAAA,MAAAC,GAAAA,GAAAb,qBAAAA,CAAqBc,SAAAA,IAAcP,gBAAAA,CAAgBO,SAAAA;AACvD,EAAA,MAAAC,GAAAA,GAAAf,qBAAAA,CAAqBgB,KAAAA,IAAUT,gBAAAA,CAAgBS,KAAAA;AAAM,EAAA,IAAAC,GAAAA;AAAA,EAAA,IAAAtC,CAAAA,CAAA,CAAA,CAAA,KAAAkC,GAAAA,IAAAlC,EAAA,EAAA,CAAA,KAAAoC,GAAAA,IAAApC,CAAAA,CAAA,EAAA,CAAA,KAAA8B,EAAAA,IAAA9B,CAAAA,SAAAgC,EAAAA,EAAA;AAJlCM,IAAAA,GAAAA,GAAA;AAAA,MAAAC,SAAAA,EACfT,EAAAA;AAAAA,MAA6DG,OAAAA,EAC/DD,EAAAA;AAAAA,MAAyDG,SAAAA,EACvDD,GAAAA;AAAAA,MAA6DG,KAAAA,EACjED;AAAAA,KAAqD;AAC7DpC,IAAAA,CAAAA,MAAAkC,GAAAA;AAAAlC,IAAAA,CAAAA,OAAAoC,GAAAA;AAAApC,IAAAA,CAAAA,OAAA8B,EAAAA;AAAA9B,IAAAA,CAAAA,OAAAgC,EAAAA;AAAAhC,IAAAA,CAAAA,OAAAsC,GAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,GAAAA,GAAAtC,EAAA,EAAA,CAAA;AAAA;AALD,EAAA,MAAAwC,mBAAAA,GAA4BF,GAAAA;AAO5B,EAAA,MAAAG,iBAAAA,GACE,CAAA,CAAEpB,qBAAAA,CAAqBqB,cAAAA,IAAmB/B,kBAAAA;AAC5C,EAAA,MAAAgC,sBACEF,iBAAAA,IAAiB,CAAA,CACflB,KAAAA,IACF,OAAOK,iBAAgBgB,UAAAA,KAAgB,QAAA;AAAS,EAAA,IAAAC,GAAAA;AAAA,EAAA,IAAA7C,EAAA,EAAA,CAAA,KAAAG,WAAAH,CAAAA,SAAAE,SAAAA,EAAA;AAEpB2C,IAAAA,GAAAA,GAAA;AAAA,MAAA3C,SAAAA;AAAAA,MAAAC;AAAAA,KAAA;AAG7BH,IAAAA,CAAAA,OAAAG,OAAAA;AAAAH,IAAAA,CAAAA,OAAAE,SAAAA;AAAAF,IAAAA,CAAAA,OAAA6C,GAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,GAAAA,GAAA7C,EAAA,EAAA,CAAA;AAAA;AAHD,EAAA,MAAA8C,OAAAA,GAAgBC,cAAcF,GAG7B,CAAA;AAAE,EAAA,IAAAG,GAAAA;AAAA,EAAA,IAAAhD,UAAA8C,QAAAT,KAAAA,IAAArC,CAAAA,CAAA,EAAA,CAAA,KAAA8C,OAAAA,CAAAb,WAAAjC,CAAAA,CAAA,EAAA,MAAA8C,OAAAA,CAAAP,SAAAA,IAAAvC,EAAA,EAAA,CAAA,KAAA8C,QAAAX,SAAAA,EAAA;AAEwBa,IAAAA,GAAAA,GAAA;AAAA,MAAAT,WACdO,OAAAA,CAAOP,SAAAA;AAAAA,MAAAN,SACTa,OAAAA,CAAOb,OAAAA;AAAAA,MAAAE,WACLW,OAAAA,CAAOX,SAAAA;AAAAA,MAAAE,OACXS,OAAAA,CAAOT;AAAAA,KAAA;AACfrC,IAAAA,CAAAA,CAAA,EAAA,IAAA8C,OAAAA,CAAAT,KAAAA;AAAArC,IAAAA,CAAAA,CAAA,EAAA,IAAA8C,OAAAA,CAAAb,OAAAA;AAAAjC,IAAAA,CAAAA,CAAA,EAAA,IAAA8C,OAAAA,CAAAP,SAAAA;AAAAvC,IAAAA,CAAAA,CAAA,EAAA,IAAA8C,OAAAA,CAAAX,SAAAA;AAAAnC,IAAAA,CAAAA,OAAAgD,GAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,GAAAA,GAAAhD,EAAA,EAAA,CAAA;AAAA;AALD,EAAA,MAAAiD,kBAAAA,GAA2BD,GAAAA;AAO3B,EAAA,MAAAT,SAAAA,GACEC,mBAAAA,CAAmBD,SAAAA,IAAcU,kBAAAA,CAAkBV,SAAAA;AACrD,EAAA,MAAAN,OAAAA,GAAgBO,mBAAAA,CAAmBP,OAAAA,IAAYgB,kBAAAA,CAAkBhB,OAAAA;AACjE,EAAA,MAAAE,SAAAA,GACEK,mBAAAA,CAAmBL,SAAAA,IAAcc,kBAAAA,CAAkBd,SAAAA;AACrD,EAAA,MAAAE,KAAAA,GAAcG,mBAAAA,CAAmBH,KAAAA,IAAUY,kBAAAA,CAAkBZ,KAAAA;AAE7D,EAAA,MAAAa,QAActB,gBAAAA,CAAgBgB,UAAAA;AAC9B,EAAA,MAAAO,aAAmB9B,qBAAAA,CAAqBqB,cAAAA;AAAgB,EAAA,IAAAU,GAAAA;AAAA,EAAA,IAAApD,EAAA,EAAA,CAAA,KAAAkD,SAAAlD,CAAAA,CAAA,EAAA,MAAAuB,KAAAA,IAAAvB,CAAAA,CAAA,EAAA,CAAA,KAAAmD,UAAAA,IAAAnD,EAAA,EAAA,CAAA,KAAAM,WAAAN,CAAAA,SAAAK,KAAAA,EAAA;AAE7B+C,IAAAA,GAAAA,GAAAC,CAAAA,MAAAA,KAAA;AACzB,MAAA,MAAAC,QAAAA,GAAiBD,QAAM/C,OAAAA,IAAaA,OAAAA;AACpC,MAAA,MAAAiD,MAAAA,GAAeF,QAAMhD,KAAAA,IAAWA,KAAAA;AAEhCmD,MAAAA,MAAAA,CAAOL,YAAY,uBAAuB,CAAA;AAC1CK,MAAAA,MAAAA,CAAOjC,OAAO,uBAAuB,CAAA;AACrCiC,MAAAA,MAAAA,CAAO,OAAON,KAAAA,KAAU,QAAA,EAAU,qBAAqB,CAAA;AACvDM,MAAAA,MAAAA,CAAOF,UAAU,uBAAuB,CAAA;AACxCE,MAAAA,MAAAA,CAAOD,QAAQ,0BAA0B,CAAA;AAEzC,MAAA,MAAAE,WAAiBC,wBAAAA,EAAyB;AAAE,MAAA,IAExCP,UAAAA,CAAUQ,SAAU,SAAA,EAAS;AAC/B,QAAA,MAAAC,KAAAA,GAAA;AAAA,UAAAD,IAAAA,EACQ,SAAA;AAAA,UAASR,UAAAA;AAAAA,UAAA5B,KAAAA;AAAAA,UAAAjB,OAAAA,EAGNgD,QAAAA;AAAAA,UAAQjD,KAAAA,EACVkD,MAAAA;AAAAA,UAAML,KAAAA;AAAAA,UAAAO;AAAAA,SAAA;AAGb,QAAA,OACKG,KAAAA;AAAAA;AAET,MAAA,MAAAC,OAAAA,GAAA;AAAA,QAAAF,IAAAA,EACQ,KAAA;AAAA,QAAKR,UAAAA;AAAAA,QAAAW,MAAAA,EAEHvC,KAAAA;AAAAA,QAAKjB,OAAAA,EACJgD,QAAAA;AAAAA,QAAQJ,KAAAA;AAAAA,QAAAa,MAAAA,EAETN,QAAAA;AAAAA,QAAQO,OAAAA,EAAA;AAAA,OAAA;AAEhB,MAAA,OACKJ,OAAAA;AAAAA,KAAK;AACb5D,IAAAA,CAAAA,OAAAkD,KAAAA;AAAAlD,IAAAA,CAAAA,OAAAuB,KAAAA;AAAAvB,IAAAA,CAAAA,OAAAmD,UAAAA;AAAAnD,IAAAA,CAAAA,OAAAM,OAAAA;AAAAN,IAAAA,CAAAA,OAAAK,KAAAA;AAAAL,IAAAA,CAAAA,OAAAoD,GAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,GAAAA,GAAApD,EAAA,EAAA,CAAA;AAAA;AAlCD,EAAA,MAAAiE,kBAAAA,GAA2Bb,GAAAA;AAkCzB,EAAA,IAAAc,GAAAA;AAAA,EAAA,IAAAlE,EAAA,EAAA,CAAA,KAAAiE,sBAAAjE,CAAAA,SAAA8C,OAAAA,EAAA;AAGAoB,IAAAA,GAAAA,UAAAC,QAAAA,KAAA;AACE,MAAA,MAAAC,OAAAA,GAAcH,mBAAmBZ,QAAM,CAAA;AACvC,MAAA,MAAAgB,SAAAA,GAAA,MAAwBvB,OAAAA,CAAOwB,eAAAA,CAAiBV,OAAK,CAAA;AAErD,MAAA,MAAAW,cAAoBC,uBAAAA,CAAA;AAAA,QAAA,GACfZ,OAAAA;AAAAA,QAAKS;AAAAA,OAET,CAAA;AAAE,MAAA,OAAA;AAAA,QAAAA,SAAAA;AAAAA,QAAAI,kBAAAA,EAImBF,WAAAA;AAAAA,QAAWG,gBAAAA,EACbd;AAAAA,OAAK;AAAA,KAAA;AAE1B5D,IAAAA,CAAAA,OAAAiE,kBAAAA;AAAAjE,IAAAA,CAAAA,OAAA8C,OAAAA;AAAA9C,IAAAA,CAAAA,OAAAkE,GAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,GAAAA,GAAAlE,EAAA,EAAA,CAAA;AAAA;AAfH,EAAA,MAAA2E,gBAAAA,GACET,GAAAA;AAcE,EAAA,IAAAU,GAAAA;AAAA,EAAA,IAAA5E,EAAA,EAAA,CAAA,KAAAiE,sBAAAjE,CAAAA,SAAA8C,OAAAA,EAAA;AAE0D8B,IAAAA,GAAAA,GAAAC,CAAAA,QAAAA,KAAA;AAC5D,MAAA,MAAAC,OAAAA,GAAcb,mBAAmBZ,QAAM,CAAA;AACvCP,MAAAA,OAAAA,CAAOiC,WAAYnB,OAAK,CAAA;AAAA,KAAC;AAC1B5D,IAAAA,CAAAA,OAAAiE,kBAAAA;AAAAjE,IAAAA,CAAAA,OAAA8C,OAAAA;AAAA9C,IAAAA,CAAAA,OAAA4E,GAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,GAAAA,GAAA5E,EAAA,EAAA,CAAA;AAAA;AAHD,EAAA,MAAAgF,WAAAA,GAA8DJ,GAAAA;AAK9D,EAAA,MAAAK,qBAA2B,CAAC9B,UAAAA,IAAc,OAAOD,KAAAA,KAAU,YAAQ,CAAK3B,KAAAA;AAAM,EAAA,IAAA2D,GAAAA;AAAA,EAAA,IAAAlF,CAAAA,SAAAiF,kBAAAA,IAAAjF,EAAA,EAAA,CAAA,KAAAiE,sBAAAjE,CAAAA,CAAA,EAAA,MAAA8C,OAAAA,CAAAuB,SAAAA,IAAArE,EAAA,EAAA,CAAA,KAAAM,WAAAN,CAAAA,SAAAK,KAAAA,EAAA;AAEN6E,IAAAA,GAAAA,GAAAC,CAAAA,QAAAA,KAAA;AAGtE,MAAA,MAAAC,UAAAA,GAAiB/B,UAAM/C,OAAAA,IAAaA,OAAAA;AACpC,MAAA,MAAA+E,QAAAA,GAAehC,UAAMhD,KAAAA,IAAWA,KAAAA;AAAM,MAAA,IAElC,CAACyC,OAAAA,CAAOuB,SAAAA,IAAcY,sBAAkB,CAAK3B,UAAAA,IAAQ,CAAKC,QAAAA,EAAM;AAAA,QAAA;AAAA;AAGpE,MAAA,MAAA+B,UAAcrB,kBAAAA,CAAkB;AAAA,QAAA3D,OAAAA,EACrBgD,UAAAA;AAAAA,QAAQjD,KAAAA,EACVkD;AAAAA,OACR,CAAA;AAAE,MAAA,OACIiB,uBAAAA,CAAA;AAAA,QAAA,GACFZ,OAAAA;AAAAA,QAAKS,WACGvB,OAAAA,CAAOuB;AAAAA,OACnB,CAAA;AAAA,KAAC;AACHrE,IAAAA,CAAAA,OAAAiF,kBAAAA;AAAAjF,IAAAA,CAAAA,OAAAiE,kBAAAA;AAAAjE,IAAAA,CAAAA,CAAA,EAAA,IAAA8C,OAAAA,CAAAuB,SAAAA;AAAArE,IAAAA,CAAAA,OAAAM,OAAAA;AAAAN,IAAAA,CAAAA,OAAAK,KAAAA;AAAAL,IAAAA,CAAAA,OAAAkF,GAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,GAAAA,GAAAlF,EAAA,EAAA,CAAA;AAAA;AAjBD,EAAA,MAAAuF,gBAAAA,GAAwEL,GAAAA;AAiBtE,EAAA,IAAAM,GAAAA;AAAA,EAAA,IAAAxF,CAAAA,CAAA,EAAA,CAAA,KAAAuF,gBAAAA,IAAAvF,CAAAA,SAAAqC,KAAAA,IAAArC,CAAAA,CAAA,EAAA,CAAA,KAAAiC,OAAAA,IAAAjC,EAAA,EAAA,CAAA,KAAAuC,SAAAA,IAAAvC,CAAAA,CAAA,EAAA,CAAA,KAAA2C,uBAAA3C,CAAAA,CAAA,EAAA,CAAA,KAAAyC,iBAAAA,IAAAzC,CAAAA,CAAA,EAAA,MAAAmC,SAAAA,IAAAnC,CAAAA,CAAA,EAAA,CAAA,KAAAwC,mBAAAA,IAAAxC,CAAAA,CAAA,EAAA,CAAA,KAAAiD,kBAAAA,IAAAjD,CAAAA,CAAA,EAAA,CAAA,KAAA8C,OAAAA,CAAA2C,SAAAzF,CAAAA,CAAA,EAAA,CAAA,KAAA8C,OAAAA,CAAAuB,SAAAA,IAAArE,CAAAA,CAAA,EAAA,CAAA,KAAAgF,WAAAA,IAAAhF,CAAAA,CAAA,EAAA,CAAA,KAAA2E,gBAAAA,EAAA;AAEKa,IAAAA,GAAAA,GAAA;AAAA,MAAAR,WAAAA;AAAAA,MAAAL,gBAAAA;AAAAA,MAAAY,gBAAAA;AAAAA,MAAA9C,iBAAAA;AAAAA,MAAAE,mBAAAA;AAAAA,MAAAH,mBAAAA;AAAAA,MAAAS,kBAAAA;AAAAA,MAAAV,SAAAA;AAAAA,MAAAJ,SAAAA;AAAAA,MAAAF,OAAAA;AAAAA,MAAAI,KAAAA;AAAAA,MAAAoD,OAYE3C,OAAAA,CAAO2C,KAAAA;AAAAA,MAAApB,WACHvB,OAAAA,CAAOuB;AAAAA,KAAA;AACnBrE,IAAAA,CAAAA,OAAAuF,gBAAAA;AAAAvF,IAAAA,CAAAA,OAAAqC,KAAAA;AAAArC,IAAAA,CAAAA,OAAAiC,OAAAA;AAAAjC,IAAAA,CAAAA,OAAAuC,SAAAA;AAAAvC,IAAAA,CAAAA,OAAA2C,mBAAAA;AAAA3C,IAAAA,CAAAA,OAAAyC,iBAAAA;AAAAzC,IAAAA,CAAAA,OAAAmC,SAAAA;AAAAnC,IAAAA,CAAAA,OAAAwC,mBAAAA;AAAAxC,IAAAA,CAAAA,OAAAiD,kBAAAA;AAAAjD,IAAAA,CAAAA,CAAA,EAAA,IAAA8C,OAAAA,CAAA2C,KAAAA;AAAAzF,IAAAA,CAAAA,CAAA,EAAA,IAAA8C,OAAAA,CAAAuB,SAAAA;AAAArE,IAAAA,CAAAA,OAAAgF,WAAAA;AAAAhF,IAAAA,CAAAA,OAAA2E,gBAAAA;AAAA3E,IAAAA,CAAAA,OAAAwF,GAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,GAAAA,GAAAxF,EAAA,EAAA,CAAA;AAAA;AAAA,EAAA,OAdMwF,GAAAA;AAcN;AAYI,SAAAE,0BAAA3F,EAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAAmC,EAAA,MAAA;AAAA,IAAAmB;AAAAA,GAAA,GAAArB,EAAAA;AAGxC,EAAA,MAAA4F,kBAAwBC,kBAAAA,EAAmB;AAAE,EAAA,IAAApF,EAAAA;AAAA,EAAA,IAAAR,EAAA,CAAA,CAAA,KAAAoB,WAAApB,CAAAA,QAAA2F,eAAAA,EAAA;AAE+BnF,IAAAA,EAAAA,GAAAkE,CAAAA,gBAAAA,KAAA;AAG1E,MAAA,MAAAvB,aAAmBuB,gBAAAA,CAAgBvB,UAAAA;AAEnC,MAAA,MAAApC,OAAAA,GAAgBoC,WAAU0C,MAAAA,CAAAC,iBAAAA;AAC1B,MAAA,MAAA7E,OAAAA,GAAiBkC,UAAAA,CAAU0C,MAAAA,CAAAzE,OAAAA,IAAwCA,OAAAA;AAEnE,MAAA,MAAAG,QACEmD,gBAAAA,CAAgBf,IAAAA,KAAU,KAAA,GACtBe,gBAAAA,CAAgBZ,SAChBY,gBAAAA,CAAgBnD,KAAAA;AAEtB,MAAA,MAAA2B,QAAcwB,gBAAAA,CAAgBxB,KAAAA;AAE9ByC,MAAAA,eAAAA,CAAeI,eAAAA,CAAA;AAAA,QAAA3F,KAAAA,EAAA;AAAA,UAAAW,OAAAA;AAAAA,UAAAE;AAAAA,SAAA;AAAA,QAAAM,KAAAA;AAAAA,QAAAyE,SAAAA,EAMF9C;AAAAA,OACZ,CAAA;AAAA,KAAC;AACHlD,IAAAA,CAAAA,MAAAoB,OAAAA;AAAApB,IAAAA,CAAAA,MAAA2F,eAAAA;AAAA3F,IAAAA,CAAAA,MAAAQ,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAR,EAAA,CAAA,CAAA;AAAA;AAvBD,EAAA,MAAA+F,eAAAA,GAA4EvF,EAAAA;AAuB1E,EAAA,IAAAM,EAAAA;AAAA,EAAA,IAAAd,EAAA,CAAA,CAAA,KAAAoB,WAAApB,CAAAA,QAAA2F,eAAAA,EAAA;AAEgE7E,IAAAA,EAAAA,GAAAmF,CAAAA,kBAAAA,KAAA;AAGhE,MAAA,MAAAC,eAAmBxB,kBAAAA,CAAgBvB,UAAAA;AAEnC,MAAA,MAAAgD,SAAAA,GAAgBhD,aAAU0C,MAAAA,CAAAC,iBAAAA;AAC1B,MAAA,MAAAM,SAAAA,GAAiBjD,YAAAA,CAAU0C,MAAAA,CAAAzE,OAAAA,IAAwCA,OAAAA;AAEnE,MAAA,MAAAiF,UACE3B,kBAAAA,CAAgBf,IAAAA,KAAU,KAAA,GACtBe,kBAAAA,CAAgBZ,SAChBY,kBAAAA,CAAgBnD,KAAAA;AAEtBoE,MAAAA,eAAAA,CAAeW,UAAAA,CAAA;AAAA,QAAAlG,KAAAA,EAAA;AAAA,UAAAW,OAAAA,EAEXA,SAAAA;AAAAA,UAAOE,OAAAA,EACPA;AAAAA,SAAO;AAAA,QAAAM,KAAAA,EAETA;AAAAA,OACD,CAAA;AAAA,KAAC;AACHvB,IAAAA,CAAAA,MAAAoB,OAAAA;AAAApB,IAAAA,CAAAA,MAAA2F,eAAAA;AAAA3F,IAAAA,CAAAA,MAAAc,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAd,EAAA,CAAA,CAAA;AAAA;AApBD,EAAA,MAAAsG,UAAAA,GAAkExF,EAAAA;AAoBhE,EAAA,IAAAE,EAAAA;AAAA,EAAA,IAAAhB,EAAA,CAAA,CAAA,KAAAsG,cAAAtG,CAAAA,QAAA+F,eAAAA,EAAA;AACK/E,IAAAA,EAAAA,GAAA;AAAA,MAAA+E,eAAAA;AAAAA,MAAAO;AAAAA,KAAA;AAGNtG,IAAAA,CAAAA,MAAAsG,UAAAA;AAAAtG,IAAAA,CAAAA,MAAA+F,eAAAA;AAAA/F,IAAAA,CAAAA,MAAAgB,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAhB,EAAA,CAAA,CAAA;AAAA;AAAA,EAAA,OAHMgB,EAAAA;AAGN;;;;"}
|
|
1
|
+
{"version":3,"file":"useSignTokenPermit1.js","sources":["../../../../../src/hooks/permit/hooks/permit1/useSignTokenPermit1.ts"],"sourcesContent":["import { useAccount } from \"wagmi\";\nimport { useMarkNonceAsUsed, usePermit1Nonce } from \"./usePermit1Nonce\";\nimport type { Address, Hash, Hex } from \"viem\";\nimport { useSignPermit } from \"../common/useSignPermit\";\nimport type { DaiPermitInput, Permit1Input } from \"../../utils/construct\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { useGetSafePermitInfo } from \"./useGetSafePermitInfo\";\nimport { assert } from \"ts-essentials\";\nimport { encodePermit1MethodArgs } from \"../../utils/encodeArgs\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { produceSignatureDeadline } from \"../../utils/deadlines\";\nimport { useWalletSupportsPermit } from \"../common/useWalletSupportsPermit\";\n\ntype UseSignTokenPermit1Params = {\n onSuccess?: (signature: Hex) => void;\n onError?: (error: Error) => void;\n token?: Pick<Token, \"address\" | \"network\">;\n value?: bigint;\n spender?: Address;\n enabled?: boolean;\n};\n\ntype QueryMutState = {\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n};\n\nexport type SignedPermit1Result = {\n signature: Hash;\n permit1EncodedArgs: Hash;\n signedPermitData: Permit1Input | DaiPermitInput;\n};\n\nexport type SignPermit1Input = Pick<\n UseSignTokenPermit1Params,\n \"value\" | \"spender\"\n>;\n\nexport type UseSignTokenPermit1Result = {\n signPermit1: (params?: SignPermit1Input) => void;\n signPermit1Async: (params?: SignPermit1Input) => Promise<SignedPermit1Result>;\n encodePermitArgs: (params?: SignPermit1Input) => Hash | undefined;\n isPermitSupported: boolean;\n isPermitReadyToSign: boolean;\n permitFetchingState: QueryMutState;\n permitSigningState: QueryMutState;\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n reset: () => void;\n signature?: Hash;\n permit1EncodedArgs?: Hash;\n};\n\nexport function useSignTokenPermit1({\n onSuccess,\n onError,\n token,\n value,\n spender,\n enabled = true,\n}: UseSignTokenPermit1Params): UseSignTokenPermit1Result {\n const { permit1: isPermit1Supported } = useWalletSupportsPermit();\n\n const queriesEnabled = enabled && isPermit1Supported;\n\n const permitInfoQueryResult = useGetSafePermitInfo({\n tokenAddress: token?.address as Address,\n chainId: token?.network,\n enabled: queriesEnabled,\n });\n\n const { address: owner } = useAccount();\n\n const nonceQueryResult = usePermit1Nonce({\n token: token?.address as Address,\n owner,\n chainId: token?.network,\n enabled: queriesEnabled,\n });\n\n const permitFetchingState = {\n isPending: permitInfoQueryResult.isLoading || nonceQueryResult.isLoading,\n isError: permitInfoQueryResult.isError || nonceQueryResult.isError,\n isSuccess: permitInfoQueryResult.isSuccess || nonceQueryResult.isSuccess,\n error: permitInfoQueryResult.error || nonceQueryResult.error,\n };\n\n const isPermitSupported =\n !!permitInfoQueryResult.safePermitInfo && isPermit1Supported;\n const isPermitReadyToSign =\n isPermitSupported &&\n !!owner &&\n typeof nonceQueryResult.nonceToUse === \"bigint\";\n\n const signMut = useSignPermit({\n onSuccess,\n onError,\n });\n\n const permitSigningState = {\n isPending: signMut.isPending,\n isError: signMut.isError,\n isSuccess: signMut.isSuccess,\n error: signMut.error,\n };\n\n const isPending =\n permitFetchingState.isPending || permitSigningState.isPending;\n const isError = permitFetchingState.isError || permitSigningState.isError;\n const isSuccess =\n permitFetchingState.isSuccess || permitSigningState.isSuccess;\n const error = permitFetchingState.error || permitSigningState.error;\n\n const nonce = nonceQueryResult.nonceToUse;\n const permitInfo = permitInfoQueryResult.safePermitInfo;\n\n const producePermitInput = (params?: SignPermit1Input) => {\n const _spender = params?.spender || spender;\n const _value = params?.value || value;\n\n assert(permitInfo, \"Permit info not found\");\n assert(owner, \"Account not connected\");\n assert(typeof nonce === \"bigint\", \"Nonce not available\");\n assert(_spender, \"Spender not available\");\n assert(_value, \"Value not available or 0\");\n\n const deadline = produceSignatureDeadline();\n\n if (permitInfo.type === \"eip2612\") {\n const input: Permit1Input = {\n type: \"permit1\",\n permitInfo,\n owner,\n spender: _spender,\n value: _value,\n nonce,\n deadline,\n };\n return input;\n }\n const input: DaiPermitInput = {\n type: \"dai\",\n permitInfo,\n holder: owner,\n spender: _spender,\n nonce,\n expiry: deadline,\n allowed: true,\n };\n return input;\n };\n\n const signPermit1Async: UseSignTokenPermit1Result[\"signPermit1Async\"] =\n async (params) => {\n const input = producePermitInput(params);\n const signature = await signMut.signPermitAsync(input);\n\n const encodedArgs = encodePermit1MethodArgs({\n ...input,\n signature,\n });\n\n return {\n signature,\n permit1EncodedArgs: encodedArgs,\n signedPermitData: input,\n };\n };\n\n const signPermit1: UseSignTokenPermit1Result[\"signPermit1\"] = (params) => {\n const input = producePermitInput(params);\n signMut.signPermit(input);\n };\n\n const paramsNotAvailable = !permitInfo || typeof nonce !== \"bigint\" || !owner;\n\n const encodePermitArgs: UseSignTokenPermit1Result[\"encodePermitArgs\"] = (\n params\n ) => {\n const _spender = params?.spender || spender;\n const _value = params?.value || value;\n\n if (!signMut.signature || paramsNotAvailable || !_spender || !_value) {\n return;\n }\n const input = producePermitInput({\n spender: _spender,\n value: _value,\n });\n return encodePermit1MethodArgs({\n ...input,\n signature: signMut.signature,\n });\n };\n\n return {\n signPermit1,\n signPermit1Async,\n encodePermitArgs,\n isPermitSupported,\n isPermitReadyToSign,\n permitFetchingState,\n permitSigningState,\n isPending,\n isSuccess,\n isError,\n error,\n reset: signMut.reset,\n signature: signMut.signature,\n };\n}\n\ntype UseMarkPermit1NonceAsUsedParams = {\n chainId: SupportedChainId;\n};\n\ntype UseMarkPermit1NonceAsUsedResult = {\n markNonceAsUsed: (signedPermitData: Permit1Input | DaiPermitInput) => void;\n clearNonce: (signedPermitData: Permit1Input | DaiPermitInput) => void;\n};\n\nexport function useMarkPermit1NonceAsUsed({\n chainId,\n}: UseMarkPermit1NonceAsUsedParams): UseMarkPermit1NonceAsUsedResult {\n const nonceUsedMarker = useMarkNonceAsUsed();\n\n const markNonceAsUsed: UseMarkPermit1NonceAsUsedResult[\"markNonceAsUsed\"] = (\n signedPermitData\n ) => {\n const permitInfo = signedPermitData.permitInfo;\n\n const address = permitInfo.domain.verifyingContract;\n const network = (permitInfo.domain.chainId as SupportedChainId) ?? chainId;\n\n const owner =\n signedPermitData.type === \"dai\"\n ? signedPermitData.holder\n : signedPermitData.owner;\n\n const nonce = signedPermitData.nonce;\n\n nonceUsedMarker.markNonceAsUsed({\n token: {\n address,\n network,\n },\n owner,\n usedNonce: nonce,\n });\n };\n\n const clearNonce: UseMarkPermit1NonceAsUsedResult[\"clearNonce\"] = (\n signedPermitData\n ) => {\n const permitInfo = signedPermitData.permitInfo;\n\n const address = permitInfo.domain.verifyingContract;\n const network = (permitInfo.domain.chainId as SupportedChainId) ?? chainId;\n\n const owner =\n signedPermitData.type === \"dai\"\n ? signedPermitData.holder\n : signedPermitData.owner;\n\n nonceUsedMarker.clearNonce({\n token: {\n address,\n network,\n },\n owner,\n });\n };\n return {\n markNonceAsUsed,\n clearNonce,\n };\n}\n"],"names":["useSignTokenPermit1","t0","$","_c","onSuccess","onError","token","value","spender","enabled","t1","undefined","permit1","isPermit1Supported","useWalletSupportsPermit","queriesEnabled","t2","address","t3","network","t4","tokenAddress","chainId","permitInfoQueryResult","useGetSafePermitInfo","owner","useAccount","t5","t6","t7","nonceQueryResult","usePermit1Nonce","t8","isLoading","t9","isError","t10","isSuccess","t11","error","t12","isPending","permitFetchingState","isPermitSupported","safePermitInfo","isPermitReadyToSign","nonceToUse","t13","signMut","useSignPermit","t14","permitSigningState","nonce","permitInfo","t15","params","_spender","_value","assert","deadline","produceSignatureDeadline","type","input","input_0","holder","expiry","allowed","producePermitInput","t16","params_0","input_1","signature","signPermitAsync","encodedArgs","encodePermit1MethodArgs","permit1EncodedArgs","signedPermitData","signPermit1Async","t17","params_1","input_2","signPermit","signPermit1","paramsNotAvailable","t18","params_2","_spender_0","_value_0","input_3","encodePermitArgs","t19","reset","useMarkPermit1NonceAsUsed","nonceUsedMarker","useMarkNonceAsUsed","domain","verifyingContract","markNonceAsUsed","usedNonce","signedPermitData_0","permitInfo_0","address_0","network_0","owner_0","clearNonce"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTokenFromPermit1Nonce.js","sources":["../../../../../src/hooks/permit/hooks/permit1/useTokenFromPermit1Nonce.ts"],"sourcesContent":["import { useTokenFromAtom } from \"@/core/inputs/state/selectedTokenAtom\";\n\nimport { type Address } from \"viem\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { usePermit1Nonce, type UsePermit1NonceResult } from \"./usePermit1Nonce\";\nimport { useAccount } from \"wagmi\";\n\ntype UseTokenFromPermitInfoParameters = {\n enabled?: boolean;\n};\n\nexport function useTokenFromPermit1Nonce({\n enabled = true, // enabled: false to get cached results\n}: UseTokenFromPermitInfoParameters = {}): UsePermit1NonceResult & {\n token: Token;\n} {\n const tokenFrom = useTokenFromAtom();\n const { address: owner } = useAccount();\n const queryResult = usePermit1Nonce({\n token: tokenFrom.address as Address,\n owner,\n chainId: tokenFrom.network,\n enabled,\n });\n\n return {\n ...queryResult,\n token: tokenFrom,\n };\n}\n"],"names":["useTokenFromPermit1Nonce","t0","$","_c","t1","enabled","t2","undefined","tokenFrom","useTokenFromAtom","address","owner","useAccount","t3","t4","network","token","chainId","queryResult","usePermit1Nonce","t5"],"mappings":";;;;;;AAWO,SAAAA,yBAAAC,EAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAF,CAAAA,QAAAD,EAAAA,EAAA;AAAkCG,IAAAA,EAAAA,MAAAH;AAEDC,IAAAA,CAAAA,MAAAD,EAAAA;AAAAC,IAAAA,CAAAA,MAAAE,EAAAA;AAAAA,
|
|
1
|
+
{"version":3,"file":"useTokenFromPermit1Nonce.js","sources":["../../../../../src/hooks/permit/hooks/permit1/useTokenFromPermit1Nonce.ts"],"sourcesContent":["import { useTokenFromAtom } from \"@/core/inputs/state/selectedTokenAtom\";\n\nimport { type Address } from \"viem\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { usePermit1Nonce, type UsePermit1NonceResult } from \"./usePermit1Nonce\";\nimport { useAccount } from \"wagmi\";\n\ntype UseTokenFromPermitInfoParameters = {\n enabled?: boolean;\n};\n\nexport function useTokenFromPermit1Nonce({\n enabled = true, // enabled: false to get cached results\n}: UseTokenFromPermitInfoParameters = {}): UsePermit1NonceResult & {\n token: Token;\n} {\n const tokenFrom = useTokenFromAtom();\n const { address: owner } = useAccount();\n const queryResult = usePermit1Nonce({\n token: tokenFrom.address as Address,\n owner,\n chainId: tokenFrom.network,\n enabled,\n });\n\n return {\n ...queryResult,\n token: tokenFrom,\n };\n}\n"],"names":["useTokenFromPermit1Nonce","t0","$","_c","t1","enabled","t2","undefined","tokenFrom","useTokenFromAtom","address","owner","useAccount","t3","t4","network","token","chainId","queryResult","usePermit1Nonce","t5"],"mappings":";;;;;;AAWO,SAAAA,yBAAAC,EAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAF,CAAAA,QAAAD,EAAAA,EAAA;AAAkCG,IAAAA,EAAAA,MAAAH;AAEDC,IAAAA,CAAAA,MAAAD,EAAAA;AAAAC,IAAAA,CAAAA,MAAAE,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAF,EAAA,CAAA,CAAA;AAAA,EAAA;AAFC,EAAA,MAAA;AAAA,IAAAG,OAAAA,EAAAC;AAAAA,GAAA,GAAAF,EAAAA;AACvC,EAAA,MAAAC,OAAAA,GAAAC,EAAAA,KAAcC,MAAAA,UAAdD,EAAAA;AAIA,EAAA,MAAAE,YAAkBC,gBAAAA,EAAiB;AACnC,EAAA,MAAA;AAAA,IAAAC,OAAAA,EAAAC;AAAAA,MAA2BC,UAAAA,EAAW;AAE7B,EAAA,MAAAC,KAAAL,SAAAA,CAASE,OAAAA;AAAmB,EAAA,IAAAI,EAAAA;AAAA,EAAA,IAAAZ,EAAA,CAAA,CAAA,KAAAG,OAAAA,IAAAH,CAAAA,QAAAS,KAAAA,IAAAT,CAAAA,CAAA,CAAA,MAAAW,EAAAA,IAAAX,CAAAA,CAAA,CAAA,CAAA,KAAAM,UAAAO,OAAAA,EAAA;AADDD,IAAAA,EAAAA,GAAA;AAAA,MAAAE,KAAAA,EAC3BH,EAAAA;AAAAA,MAA4BF,KAAAA;AAAAA,MAAAM,SAE1BT,SAAAA,CAASO,OAAAA;AAAAA,MAAAV;AAAAA,KAAA;AAEnBH,IAAAA,CAAAA,MAAAG,OAAAA;AAAAH,IAAAA,CAAAA,MAAAS,KAAAA;AAAAT,IAAAA,CAAAA,MAAAW,EAAAA;AAAAX,IAAAA,CAAAA,CAAA,CAAA,IAAAM,SAAAA,CAAAO,OAAAA;AAAAb,IAAAA,CAAAA,MAAAY,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAZ,EAAA,CAAA,CAAA;AAAA,EAAA;AALD,EAAA,MAAAgB,WAAAA,GAAoBC,gBAAgBL,EAKnC,CAAA;AAAE,EAAA,IAAAM,EAAAA;AAAA,EAAA,IAAAlB,EAAA,CAAA,CAAA,KAAAgB,eAAAhB,CAAAA,QAAAM,SAAAA,EAAA;AAEIY,IAAAA,EAAAA,GAAA;AAAA,MAAA,GACFF,WAAAA;AAAAA,MAAWF,KAAAA,EACPR;AAAAA,KAAS;AACjBN,IAAAA,CAAAA,MAAAgB,WAAAA;AAAAhB,IAAAA,CAAAA,MAAAM,SAAAA;AAAAN,IAAAA,CAAAA,MAAAkB,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAlB,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAHMkB,EAAAA;AAGN;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTokenFromPermitInfo.js","sources":["../../../../../src/hooks/permit/hooks/permit1/useTokenFromPermitInfo.ts"],"sourcesContent":["import { useTokenFromAtom } from \"@/core/inputs/state/selectedTokenAtom\";\n\nimport { type Address } from \"viem\";\nimport {\n useGetSafePermitInfo,\n type UseGetSafePermitInfoResult,\n} from \"./useGetSafePermitInfo\";\nimport type { Token } from \"@/tokens/state/types\";\n\ntype UseTokenFromPermitInfoParameters = {\n enabled?: boolean;\n};\n\nexport function useTokenFromPermitInfo({\n enabled = true, // enabled: false to get cached results\n}: UseTokenFromPermitInfoParameters = {}): UseGetSafePermitInfoResult & {\n token: Token;\n} {\n const tokenFrom = useTokenFromAtom();\n const queryResult = useGetSafePermitInfo({\n tokenAddress: tokenFrom.address as Address,\n chainId: tokenFrom.network,\n enabled,\n });\n\n return {\n ...queryResult,\n token: tokenFrom,\n };\n}\n"],"names":["useTokenFromPermitInfo","t0","$","_c","t1","enabled","t2","undefined","tokenFrom","useTokenFromAtom","t3","address","t4","network","tokenAddress","chainId","queryResult","useGetSafePermitInfo","t5","token"],"mappings":";;;;;AAaO,SAAAA,uBAAAC,EAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAF,CAAAA,QAAAD,EAAAA,EAAA;AAAgCG,IAAAA,EAAAA,MAAAH;AAECC,IAAAA,CAAAA,MAAAD,EAAAA;AAAAC,IAAAA,CAAAA,MAAAE,EAAAA;AAAAA,
|
|
1
|
+
{"version":3,"file":"useTokenFromPermitInfo.js","sources":["../../../../../src/hooks/permit/hooks/permit1/useTokenFromPermitInfo.ts"],"sourcesContent":["import { useTokenFromAtom } from \"@/core/inputs/state/selectedTokenAtom\";\n\nimport { type Address } from \"viem\";\nimport {\n useGetSafePermitInfo,\n type UseGetSafePermitInfoResult,\n} from \"./useGetSafePermitInfo\";\nimport type { Token } from \"@/tokens/state/types\";\n\ntype UseTokenFromPermitInfoParameters = {\n enabled?: boolean;\n};\n\nexport function useTokenFromPermitInfo({\n enabled = true, // enabled: false to get cached results\n}: UseTokenFromPermitInfoParameters = {}): UseGetSafePermitInfoResult & {\n token: Token;\n} {\n const tokenFrom = useTokenFromAtom();\n const queryResult = useGetSafePermitInfo({\n tokenAddress: tokenFrom.address as Address,\n chainId: tokenFrom.network,\n enabled,\n });\n\n return {\n ...queryResult,\n token: tokenFrom,\n };\n}\n"],"names":["useTokenFromPermitInfo","t0","$","_c","t1","enabled","t2","undefined","tokenFrom","useTokenFromAtom","t3","address","t4","network","tokenAddress","chainId","queryResult","useGetSafePermitInfo","t5","token"],"mappings":";;;;;AAaO,SAAAA,uBAAAC,EAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAF,CAAAA,QAAAD,EAAAA,EAAA;AAAgCG,IAAAA,EAAAA,MAAAH;AAECC,IAAAA,CAAAA,MAAAD,EAAAA;AAAAC,IAAAA,CAAAA,MAAAE,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAF,EAAA,CAAA,CAAA;AAAA,EAAA;AAFD,EAAA,MAAA;AAAA,IAAAG,OAAAA,EAAAC;AAAAA,GAAA,GAAAF,EAAAA;AACrC,EAAA,MAAAC,OAAAA,GAAAC,EAAAA,KAAcC,MAAAA,UAAdD,EAAAA;AAIA,EAAA,MAAAE,YAAkBC,gBAAAA,EAAiB;AAEnB,EAAA,MAAAC,KAAAF,SAAAA,CAASG,OAAAA;AAAmB,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAV,CAAAA,CAAA,CAAA,CAAA,KAAAG,OAAAA,IAAAH,CAAAA,CAAA,CAAA,CAAA,KAAAQ,EAAAA,IAAAR,CAAAA,CAAA,CAAA,CAAA,KAAAM,SAAAA,CAAAK,OAAAA,EAAA;AADHD,IAAAA,EAAAA,GAAA;AAAA,MAAAE,YAAAA,EACzBJ,EAAAA;AAAAA,MAA4BK,SACjCP,SAAAA,CAASK,OAAAA;AAAAA,MAAAR;AAAAA,KAAA;AAEnBH,IAAAA,CAAAA,MAAAG,OAAAA;AAAAH,IAAAA,CAAAA,MAAAQ,EAAAA;AAAAR,IAAAA,CAAAA,CAAA,CAAA,IAAAM,SAAAA,CAAAK,OAAAA;AAAAX,IAAAA,CAAAA,MAAAU,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAV,EAAA,CAAA,CAAA;AAAA,EAAA;AAJD,EAAA,MAAAc,WAAAA,GAAoBC,qBAAqBL,EAIxC,CAAA;AAAE,EAAA,IAAAM,EAAAA;AAAA,EAAA,IAAAhB,EAAA,CAAA,CAAA,KAAAc,eAAAd,CAAAA,QAAAM,SAAAA,EAAA;AAEIU,IAAAA,EAAAA,GAAA;AAAA,MAAA,GACFF,WAAAA;AAAAA,MAAWG,KAAAA,EACPX;AAAAA,KAAS;AACjBN,IAAAA,CAAAA,MAAAc,WAAAA;AAAAd,IAAAA,CAAAA,MAAAM,SAAAA;AAAAN,IAAAA,CAAAA,MAAAgB,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAhB,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAHMgB,EAAAA;AAGN;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTryToSignPermit1.js","sources":["../../../../../src/hooks/permit/hooks/permit1/useTryToSignPermit1.ts"],"sourcesContent":["import {\n useQuery,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport { trySignPermit1 } from \"../../utils/trySignPermit1\";\nimport type {\n TrySignPermitParams,\n TrySignPermitResult,\n} from \"../../utils/trySignPermit1\";\nimport { useConfig } from \"wagmi\";\nimport { assert } from \"ts-essentials\";\nimport type { Address } from \"viem\";\nimport { useLogger } from \"@/core/logger\";\n\ntype TryToSingPermitQueryKey = [\n \"trySignPermit\",\n TrySignPermitParams[\"permitInfo\"]?,\n Address?,\n Address?,\n bigint?,\n];\n\ntype UseTryToSignPermitParams<Select = TrySignPermitResult> = Partial<\n Omit<TrySignPermitParams, \"config\">\n> & {\n query?: Omit<\n UseQueryOptions<\n TrySignPermitResult,\n Error,\n Select,\n TryToSingPermitQueryKey\n >,\n \"queryKey\" | \"queryFn\"\n >;\n};\n\nexport function useTryToSignPermit1<Select = TrySignPermitResult>({\n permitInfo,\n tokenAddress,\n spenderAddress,\n amount,\n chainId,\n query,\n}: UseTryToSignPermitParams<Select>): UseQueryResult<Select, Error> {\n const logger = useLogger(\"PERMIT1::TryToSignPermit1\");\n const config = useConfig();\n\n const queryEnabled = query?.enabled ?? true;\n\n const queryResult = useQuery<\n TrySignPermitResult,\n Error,\n Select,\n TryToSingPermitQueryKey\n >({\n queryKey: [\n \"trySignPermit\",\n permitInfo,\n tokenAddress,\n spenderAddress,\n amount,\n ],\n queryFn: async () => {\n assert(permitInfo, \"permitInfo is required\");\n assert(tokenAddress, \"tokenAddress is required\");\n assert(chainId, \"chainId is required\");\n\n const result = await trySignPermit1({\n config,\n permitInfo,\n tokenAddress,\n chainId,\n spenderAddress,\n amount,\n });\n\n logger.log(\"result\", result);\n\n return result;\n },\n refetchOnMount: false,\n refetchOnWindowFocus: false,\n staleTime: Infinity,\n gcTime: Infinity,\n retry: false,\n ...query,\n enabled: queryEnabled && !!(permitInfo && tokenAddress && !!chainId),\n });\n\n return queryResult;\n}\n"],"names":["useTryToSignPermit1","t0","$","_c","permitInfo","tokenAddress","spenderAddress","amount","chainId","query","logger","useLogger","config","useConfig","queryEnabled","enabled","t1","t2","assert","result","trySignPermit1","log","t3","t4","queryKey","queryFn","refetchOnMount","refetchOnWindowFocus","staleTime","Infinity","gcTime","retry","queryResult","useQuery"],"mappings":";;;;;;;AAqCO,SAAAA,oBAAAC,EAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAA2D,EAAA,MAAA;AAAA,IAAAC,UAAAA;AAAAA,IAAAC,YAAAA;AAAAA,IAAAC,cAAAA;AAAAA,IAAAC,MAAAA;AAAAA,IAAAC,OAAAA;AAAAA,IAAAC;AAAAA,GAAA,GAAAR,EAAAA;AAQhE,EAAA,MAAAS,MAAAA,GAAeC,UAAU,2BAA2B,CAAA;AACpD,EAAA,MAAAC,SAAeC,SAAAA,EAAU;AAEzB,EAAA,MAAAC,YAAAA,GAAqBL,OAAKM,OAAAA,IAAA,IAAA;AAAkB,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAd,CAAAA,CAAA,CAAA,CAAA,KAAAK,MAAAA,IAAAL,EAAA,CAAA,CAAA,KAAAE,UAAAA,IAAAF,CAAAA,CAAA,CAAA,CAAA,KAAAI,cAAAA,IAAAJ,CAAAA,QAAAG,YAAAA,EAAA;AAQhCW,IAAAA,EAAAA,GAAA,CACR,eAAA,EACAZ,UAAAA,EACAC,YAAAA,EACAC,gBACAC,MAAM,CAAA;AACPL,IAAAA,CAAAA,MAAAK,MAAAA;AAAAL,IAAAA,CAAAA,MAAAE,UAAAA;AAAAF,IAAAA,CAAAA,MAAAI,cAAAA;AAAAJ,IAAAA,CAAAA,MAAAG,YAAAA;AAAAH,IAAAA,CAAAA,MAAAc,EAAAA;AAAAA,
|
|
1
|
+
{"version":3,"file":"useTryToSignPermit1.js","sources":["../../../../../src/hooks/permit/hooks/permit1/useTryToSignPermit1.ts"],"sourcesContent":["import {\n useQuery,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport { trySignPermit1 } from \"../../utils/trySignPermit1\";\nimport type {\n TrySignPermitParams,\n TrySignPermitResult,\n} from \"../../utils/trySignPermit1\";\nimport { useConfig } from \"wagmi\";\nimport { assert } from \"ts-essentials\";\nimport type { Address } from \"viem\";\nimport { useLogger } from \"@/core/logger\";\n\ntype TryToSingPermitQueryKey = [\n \"trySignPermit\",\n TrySignPermitParams[\"permitInfo\"]?,\n Address?,\n Address?,\n bigint?,\n];\n\ntype UseTryToSignPermitParams<Select = TrySignPermitResult> = Partial<\n Omit<TrySignPermitParams, \"config\">\n> & {\n query?: Omit<\n UseQueryOptions<\n TrySignPermitResult,\n Error,\n Select,\n TryToSingPermitQueryKey\n >,\n \"queryKey\" | \"queryFn\"\n >;\n};\n\nexport function useTryToSignPermit1<Select = TrySignPermitResult>({\n permitInfo,\n tokenAddress,\n spenderAddress,\n amount,\n chainId,\n query,\n}: UseTryToSignPermitParams<Select>): UseQueryResult<Select, Error> {\n const logger = useLogger(\"PERMIT1::TryToSignPermit1\");\n const config = useConfig();\n\n const queryEnabled = query?.enabled ?? true;\n\n const queryResult = useQuery<\n TrySignPermitResult,\n Error,\n Select,\n TryToSingPermitQueryKey\n >({\n queryKey: [\n \"trySignPermit\",\n permitInfo,\n tokenAddress,\n spenderAddress,\n amount,\n ],\n queryFn: async () => {\n assert(permitInfo, \"permitInfo is required\");\n assert(tokenAddress, \"tokenAddress is required\");\n assert(chainId, \"chainId is required\");\n\n const result = await trySignPermit1({\n config,\n permitInfo,\n tokenAddress,\n chainId,\n spenderAddress,\n amount,\n });\n\n logger.log(\"result\", result);\n\n return result;\n },\n refetchOnMount: false,\n refetchOnWindowFocus: false,\n staleTime: Infinity,\n gcTime: Infinity,\n retry: false,\n ...query,\n enabled: queryEnabled && !!(permitInfo && tokenAddress && !!chainId),\n });\n\n return queryResult;\n}\n"],"names":["useTryToSignPermit1","t0","$","_c","permitInfo","tokenAddress","spenderAddress","amount","chainId","query","logger","useLogger","config","useConfig","queryEnabled","enabled","t1","t2","assert","result","trySignPermit1","log","t3","t4","queryKey","queryFn","refetchOnMount","refetchOnWindowFocus","staleTime","Infinity","gcTime","retry","queryResult","useQuery"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePermit2Allowance.js","sources":["../../../../../src/hooks/permit/hooks/permit2/usePermit2Allowance.ts"],"sourcesContent":["import { useAccount } from \"wagmi\";\nimport type { Address } from \"viem\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { isETH } from \"@/tokens/utils/eth\";\nimport { useTokenAllowance } from \"@/hooks/tokens/allowance/useTokenAllowance\";\nimport { useLogger } from \"@/core/logger\";\nimport { PERMIT2_ADDRESS } from \"../../utils/construct\";\n\ninterface UsePermit2AllowanceParams {\n token?: Pick<Token, \"address\" | \"network\">;\n spender?: Address;\n amount?: bigint;\n enabled?: boolean;\n}\n\ntype UsePermit2AllowanceResult = {\n canUsePermit2: boolean;\n enoughAllowanceForPermit2: boolean;\n isLoading: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n refetch: () => void;\n permit2Allowance: bigint | null;\n};\n\nexport function usePermit2Allowance({\n token,\n spender,\n amount,\n enabled = true,\n}: UsePermit2AllowanceParams): UsePermit2AllowanceResult {\n const logger = useLogger(\"PERMIT2::Allowance\");\n const { address: user } = useAccount();\n\n const tokenNotETH = token && !isETH(token);\n\n const allowanceForPermit2Query = useTokenAllowance({\n tokenAddress: token?.address,\n spender: PERMIT2_ADDRESS,\n chainId: token?.network,\n enabled,\n });\n\n const enoughAllowanceForPermit2 = !!(\n amount &&\n allowanceForPermit2Query.data &&\n allowanceForPermit2Query.data >= amount\n );\n\n const canUsePermit2 = !!(\n tokenNotETH &&\n user &&\n spender &&\n amount &&\n enoughAllowanceForPermit2\n );\n\n logger.once.log({\n canUsePermit2,\n enoughAllowanceForPermit2,\n allowance: allowanceForPermit2Query.data,\n error: allowanceForPermit2Query.error,\n });\n\n return {\n canUsePermit2,\n enoughAllowanceForPermit2,\n isLoading: allowanceForPermit2Query.isLoading,\n isError: allowanceForPermit2Query.isError,\n isSuccess: allowanceForPermit2Query.isSuccess,\n error: allowanceForPermit2Query.error,\n permit2Allowance: allowanceForPermit2Query.data ?? null,\n refetch: allowanceForPermit2Query.refetch,\n };\n}\n"],"names":["usePermit2Allowance","t0","$","_c","token","spender","amount","enabled","t1","undefined","logger","useLogger","address","user","useAccount","tokenNotETH","isETH","t2","t3","network","t4","tokenAddress","PERMIT2_ADDRESS","chainId","allowanceForPermit2Query","useTokenAllowance","enoughAllowanceForPermit2","data","canUsePermit2","once","log","allowance","error","t5","t6","isError","isLoading","isSuccess","refetch","permit2Allowance"],"mappings":";;;;;;;AA0BO,SAAAA,oBAAAC,EAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAA6B,EAAA,MAAA;AAAA,IAAAC,KAAAA;AAAAA,IAAAC,OAAAA;AAAAA,IAAAC,MAAAA;AAAAA,IAAAC,OAAAA,EAAAC;AAAAA,GAAA,GAAAP,EAAAA;AAIlC,EAAA,MAAAM,OAAAA,GAAAC,EAAAA,KAAcC,MAAAA,UAAdD,EAAAA;AAEA,EAAA,MAAAE,MAAAA,GAAeC,UAAU,oBAAoB,CAAA;AAC7C,EAAA,MAAA;AAAA,IAAAC,OAAAA,EAAAC;AAAAA,MAA0BC,UAAAA,EAAW;AAErC,EAAA,MAAAC,WAAAA,GAAoBX,KAAAA,KAAUY,KAAAA,CAAMZ,KAAK,CAAA;AAGzB,EAAA,MAAAa,KAAAb,KAAAA,EAAKQ,OAAAA;AAEV,EAAA,MAAAM,KAAAd,KAAAA,EAAKe,OAAAA;AAAS,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAlB,CAAAA,CAAA,CAAA,CAAA,KAAAK,OAAAA,IAAAL,CAAAA,QAAAe,EAAAA,IAAAf,CAAAA,CAAA,CAAA,CAAA,KAAAgB,EAAAA,EAAA;AAH0BE,IAAAA,EAAAA,GAAA;AAAA,MAAAC,YAAAA,EACnCJ,EAAAA;AAAAA,MAAcZ,OAAAA,EAAAiB,eAAAA;AAAAA,MAAAC,OAAAA,EAEnBL,EAAAA;AAAAA,MAAcX;AAAAA,KAAA;AAExBL,IAAAA,CAAAA,MAAAK,OAAAA;AAAAL,IAAAA,CAAAA,MAAAe,EAAAA;AAAAf,IAAAA,CAAAA,MAAAgB,EAAAA;AAAAhB,IAAAA,CAAAA,MAAAkB,EAAAA;AAAAA,
|
|
1
|
+
{"version":3,"file":"usePermit2Allowance.js","sources":["../../../../../src/hooks/permit/hooks/permit2/usePermit2Allowance.ts"],"sourcesContent":["import { useAccount } from \"wagmi\";\nimport type { Address } from \"viem\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { isETH } from \"@/tokens/utils/eth\";\nimport { useTokenAllowance } from \"@/hooks/tokens/allowance/useTokenAllowance\";\nimport { useLogger } from \"@/core/logger\";\nimport { PERMIT2_ADDRESS } from \"../../utils/construct\";\n\ninterface UsePermit2AllowanceParams {\n token?: Pick<Token, \"address\" | \"network\">;\n spender?: Address;\n amount?: bigint;\n enabled?: boolean;\n}\n\ntype UsePermit2AllowanceResult = {\n canUsePermit2: boolean;\n enoughAllowanceForPermit2: boolean;\n isLoading: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n refetch: () => void;\n permit2Allowance: bigint | null;\n};\n\nexport function usePermit2Allowance({\n token,\n spender,\n amount,\n enabled = true,\n}: UsePermit2AllowanceParams): UsePermit2AllowanceResult {\n const logger = useLogger(\"PERMIT2::Allowance\");\n const { address: user } = useAccount();\n\n const tokenNotETH = token && !isETH(token);\n\n const allowanceForPermit2Query = useTokenAllowance({\n tokenAddress: token?.address,\n spender: PERMIT2_ADDRESS,\n chainId: token?.network,\n enabled,\n });\n\n const enoughAllowanceForPermit2 = !!(\n amount &&\n allowanceForPermit2Query.data &&\n allowanceForPermit2Query.data >= amount\n );\n\n const canUsePermit2 = !!(\n tokenNotETH &&\n user &&\n spender &&\n amount &&\n enoughAllowanceForPermit2\n );\n\n logger.once.log({\n canUsePermit2,\n enoughAllowanceForPermit2,\n allowance: allowanceForPermit2Query.data,\n error: allowanceForPermit2Query.error,\n });\n\n return {\n canUsePermit2,\n enoughAllowanceForPermit2,\n isLoading: allowanceForPermit2Query.isLoading,\n isError: allowanceForPermit2Query.isError,\n isSuccess: allowanceForPermit2Query.isSuccess,\n error: allowanceForPermit2Query.error,\n permit2Allowance: allowanceForPermit2Query.data ?? null,\n refetch: allowanceForPermit2Query.refetch,\n };\n}\n"],"names":["usePermit2Allowance","t0","$","_c","token","spender","amount","enabled","t1","undefined","logger","useLogger","address","user","useAccount","tokenNotETH","isETH","t2","t3","network","t4","tokenAddress","PERMIT2_ADDRESS","chainId","allowanceForPermit2Query","useTokenAllowance","enoughAllowanceForPermit2","data","canUsePermit2","once","log","allowance","error","t5","t6","isError","isLoading","isSuccess","refetch","permit2Allowance"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePermit2TransferFromNonce.js","sources":["../../../../../src/hooks/permit/hooks/permit2/usePermit2TransferFromNonce.ts"],"sourcesContent":["import {\n useQuery,\n useQueryClient,\n type QueryObserverResult,\n type RefetchOptions,\n} from \"@tanstack/react-query\";\nimport { type Address, maxUint256 } from \"viem\";\nimport { useConfig, type Config } from \"wagmi\";\nimport { readContract } from \"@wagmi/core\";\nimport { assert } from \"ts-essentials\";\nimport { PERMIT2_ABI } from \"../../utils/abi\";\nimport { PERMIT2_ADDRESS } from \"../../utils/construct\";\nimport { getLogger, useLogger } from \"@/core/logger\";\n\n/**\n * Permit2 stores nonces using a nested bitmap structure:\n *\n * mapping(address => mapping(uint256 => uint256)) public nonceBitmap;\n *\n * - The outer key (`address`) is the permit signer (the `owner`)\n * - The inner key (`uint256 word`) is the index of a 256-bit \"page\"\n * - The value (`uint256`) is the bitmap for that page — each bit (0 to 255) represents a nonce\n * - If bit `i` is `0`, then nonce `word * 256 + i` is **unused**\n * - If bit `i` is `1`, then that nonce has **already been used**\n *\n * This is what enables Permit2 to support unordered nonces while saving gas.\n */\n\n// Result of finding an available nonce\ntype NonceState = {\n word: bigint; // which 256-bit \"page\" of the bitmap we used\n bitmap: bigint; // the bitmap for that word\n nonce: bigint; // full 256-based offset: word * 256 + bit index\n};\n\nconst PERMIT2_TRANSFER_FROM_NONCE_QUERY_KEY = \"permit2-nonce\";\n\ntype Permit2TransferFromQueryKey = [\n typeof PERMIT2_TRANSFER_FROM_NONCE_QUERY_KEY,\n owner?: Address,\n chainId?: number,\n];\n\ninterface UsePermit2TransferFromNonceOptions {\n owner?: Address;\n chainId?: number;\n initWord?: bigint; // word offset to begin scanning from\n enabled?: boolean;\n}\n\nexport type UsePermit2TransferFromNonceResult = {\n // null when no can't calculate Permit2 nonce\n nonceToUse?: bigint | null;\n nonceState?: NonceState | null;\n isLoading: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n refetch: (\n options?: RefetchOptions\n ) => Promise<QueryObserverResult<NonceState | null, Error>>;\n};\n\n/**\n * React hook to find the next unused Permit2 nonce for `permitTransferFrom`.\n *\n * Permit2 stores nonces as a bitmap:\n * - Each address has a mapping from uint256 => uint256\n * - Each value is a 256-bit bitmap (called a \"word\")\n * - If a bit is 1, the nonce (word * 256 + bit index) is used\n * - If it's 0, it's free and can be used\n */\nexport function usePermit2TransferFromNonce({\n owner,\n chainId,\n initWord = 0n,\n enabled = true,\n}: UsePermit2TransferFromNonceOptions) {\n const queryClient = useQueryClient();\n const config = useConfig();\n const logger = useLogger(\"PERMIT2::TransferFromNonce\");\n\n const queryKey: Permit2TransferFromQueryKey = [\n PERMIT2_TRANSFER_FROM_NONCE_QUERY_KEY,\n owner,\n chainId,\n ];\n\n const {\n data: nonceState,\n isLoading,\n isError,\n isSuccess,\n error,\n refetch,\n } = useQuery<\n NonceState | null,\n Error,\n NonceState | null,\n Permit2TransferFromQueryKey\n >({\n enabled: enabled && !!(owner && chainId),\n\n queryKey,\n\n queryFn: async () => {\n // Safety checks\n assert(owner, \"owner is required\");\n assert(chainId, \"chainId is required\");\n\n // Try to resume scanning from last known state if available\n const last = queryClient.getQueryData<NonceState>(queryKey);\n\n // Find a bitmap word that has at least one unused bit (i.e. a usable nonce)\n const nextOpenWord = await getNextOpenWord({\n owner,\n config,\n startWord: last?.word ?? initWord,\n });\n\n if (!nextOpenWord) {\n logger.warn(\"No available nonce found\");\n return null;\n }\n\n const { word, bitmap } = nextOpenWord;\n // Identify the first 0-bit in the bitmap — that’s our next nonce\n const bitPos = getFirstUnsetBit(bitmap);\n if (bitPos === -1) {\n logger.warn(\"No available nonce found\");\n return null;\n }\n\n const nonceState = {\n word,\n bitmap,\n nonce: word * 256n + BigInt(bitPos),\n };\n\n logger.log(\"nonceState\", nonceState);\n\n // The final usable nonce is: word * 256 + bit index\n return nonceState;\n },\n\n // Useful defaults\n refetchOnWindowFocus: false,\n notifyOnChangeProps: [\"data\", \"isLoading\"],\n });\n\n return {\n nonceState,\n nonceToUse: nonceState === null ? null : nonceState?.nonce,\n isLoading,\n isError,\n isSuccess,\n error,\n refetch,\n };\n}\n\ninterface GetNextOpenWordInput {\n owner: Address;\n config: Config;\n startWord: bigint;\n}\n\n/**\n * Scans bitmap word-by-word starting at `startWord` until it finds\n * one with at least one unused bit (i.e., not all bits are set to 1).\n */\nasync function getNextOpenWord({\n owner,\n config,\n startWord,\n}: GetNextOpenWordInput): Promise<{ word: bigint; bitmap: bigint } | null> {\n let word = startWord;\n const MAX = maxUint256; // full 256-bit word (0xffff...ffff)\n\n while (true) {\n // Read the bitmap word for the given owner and word index\n const bitmap = await readContract(config, {\n address: PERMIT2_ADDRESS,\n abi: PERMIT2_ABI,\n functionName: \"nonceBitmap\",\n args: [owner, word],\n });\n\n // If the bitmap is not fully used (i.e., not all bits are 1)\n if (bitmap !== MAX) {\n return { word, bitmap };\n }\n\n word += 1n;\n\n // Fail-safe: don't scan more than 1024 words (262,144 nonces)\n if (word - startWord > 1024n) {\n getLogger(\"PERMIT2::getNextOpenWord\").warn(\"Exceeded nonce search limit\");\n return null;\n }\n }\n}\n\n/**\n * Returns the index (0–255) of the first unset (zero) bit in a 256-bit bitmap.\n *\n * Uses a classic bit-hack: (~bitmap) & (bitmap + 1)\n *\n * This produces a bitmask with only the lowest 0-bit set to 1.\n * Example:\n * bitmap = 0b1110 → unset bit at index 0\n * ~bitmap = 0b...0001\n * bitmap + 1 = 0b1111\n * result = 0b0001 → bitmask for index 0\n *\n * We then convert the bitmask to binary and count how many bits it takes\n * to shift that 1 into place = its position.\n */\nfunction getFirstUnsetBit(bitmap: bigint): number {\n // Create a bitmask with a 1 only at the first 0-bit (LSB side)\n const mask = ~bitmap & (bitmap + 1n);\n\n // If all bits are set (mask is zero), there are no available nonces\n if (mask === 0n) return -1;\n\n // Convert mask to binary and count digits – the length is the index + 1\n // e.g. mask = 0b1000 → \"1000\" → length = 4 → index = 3\n return mask.toString(2).length - 1;\n}\n\n/////// MARK NONCE AS USED ///////\n\ntype SetNonceInput = {\n owner: Address;\n chainId: number;\n usedNonce: bigint;\n};\n\ntype UseMarkNonceAsUsedResult = {\n /**\n * Mark a nonce as \"used\" in the local cache after submitting a transaction or order\n * This prevents reuse of the same nonce while it's still pending on-chain.\n */\n markNonceAsUsed: (input: SetNonceInput) => void;\n};\n\n/**\n * Hook to manually bump the locally cached Permit2 nonce to avoid reuse\n *\n * Permit2 allows unordered nonces, but while a tx is pending, it's safer to use\n * a strictly increasing nonce to avoid accidental replays or reuse.\n *\n * clearing an unsued nonce is not necessary because nonces are unordered\n */\nexport function useMarkNonceAsUsed(): UseMarkNonceAsUsedResult {\n const queryClient = useQueryClient();\n\n const markNonceAsUsed: UseMarkNonceAsUsedResult[\"markNonceAsUsed\"] = ({\n owner,\n chainId,\n usedNonce,\n }) => {\n const queryKey: Permit2TransferFromQueryKey = [\n PERMIT2_TRANSFER_FROM_NONCE_QUERY_KEY,\n owner,\n chainId,\n ];\n\n // Update cached nonce state if the used nonce was >= current one\n queryClient.setQueryData<NonceState>(queryKey, (oldNonceState) => {\n if (!oldNonceState) return oldNonceState; // should not happen unless cache was cleared\n\n // If we're already past this nonce, nothing to do\n if (oldNonceState.nonce > usedNonce) return oldNonceState;\n\n const newNonce = oldNonceState.nonce + 1n;\n const { word, bitPos } = splitNonce(newNonce);\n\n return {\n word,\n bitmap: 1n << bitPos, // ✅ convert bit index to actual 256-bit bitmap\n nonce: newNonce,\n };\n });\n };\n\n return {\n markNonceAsUsed,\n };\n}\n\n/**\n * Splits a Permit2 nonce into:\n * - `word`: which 256-bit bitmap page (nonce / 256)\n * - `bitPos`: position within that word (nonce % 256)\n */\nfunction splitNonce(nonce: bigint): { word: bigint; bitPos: bigint } {\n const word = nonce / 256n;\n const bitPos = nonce % 256n;\n return { word, bitPos };\n}\n"],"names":["PERMIT2_TRANSFER_FROM_NONCE_QUERY_KEY","usePermit2TransferFromNonce","owner","chainId","initWord","enabled","queryClient","useQueryClient","config","useConfig","logger","useLogger","queryKey","data","nonceState","isLoading","isError","isSuccess","error","refetch","useQuery","queryFn","assert","last","getQueryData","nextOpenWord","getNextOpenWord","startWord","word","warn","bitmap","bitPos","getFirstUnsetBit","nonce","BigInt","log","refetchOnWindowFocus","notifyOnChangeProps","nonceToUse","MAX","maxUint256","readContract","address","PERMIT2_ADDRESS","abi","PERMIT2_ABI","functionName","args","getLogger","mask","toString","length","useMarkNonceAsUsed","markNonceAsUsed","usedNonce","setQueryData","oldNonceState","newNonce","splitNonce"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"usePermit2TransferFromNonce.js","sources":["../../../../../src/hooks/permit/hooks/permit2/usePermit2TransferFromNonce.ts"],"sourcesContent":["import {\n useQuery,\n useQueryClient,\n type QueryObserverResult,\n type RefetchOptions,\n} from \"@tanstack/react-query\";\nimport { type Address, maxUint256 } from \"viem\";\nimport { useConfig, type Config } from \"wagmi\";\nimport { readContract } from \"@wagmi/core\";\nimport { assert } from \"ts-essentials\";\nimport { PERMIT2_ABI } from \"../../utils/abi\";\nimport { PERMIT2_ADDRESS } from \"../../utils/construct\";\nimport { getLogger, useLogger } from \"@/core/logger\";\n\n/**\n * Permit2 stores nonces using a nested bitmap structure:\n *\n * mapping(address => mapping(uint256 => uint256)) public nonceBitmap;\n *\n * - The outer key (`address`) is the permit signer (the `owner`)\n * - The inner key (`uint256 word`) is the index of a 256-bit \"page\"\n * - The value (`uint256`) is the bitmap for that page — each bit (0 to 255) represents a nonce\n * - If bit `i` is `0`, then nonce `word * 256 + i` is **unused**\n * - If bit `i` is `1`, then that nonce has **already been used**\n *\n * This is what enables Permit2 to support unordered nonces while saving gas.\n */\n\n// Result of finding an available nonce\ntype NonceState = {\n word: bigint; // which 256-bit \"page\" of the bitmap we used\n bitmap: bigint; // the bitmap for that word\n nonce: bigint; // full 256-based offset: word * 256 + bit index\n};\n\nconst PERMIT2_TRANSFER_FROM_NONCE_QUERY_KEY = \"permit2-nonce\";\n\ntype Permit2TransferFromQueryKey = [\n typeof PERMIT2_TRANSFER_FROM_NONCE_QUERY_KEY,\n owner?: Address,\n chainId?: number,\n];\n\ninterface UsePermit2TransferFromNonceOptions {\n owner?: Address;\n chainId?: number;\n initWord?: bigint; // word offset to begin scanning from\n enabled?: boolean;\n}\n\nexport type UsePermit2TransferFromNonceResult = {\n // null when no can't calculate Permit2 nonce\n nonceToUse?: bigint | null;\n nonceState?: NonceState | null;\n isLoading: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n refetch: (\n options?: RefetchOptions\n ) => Promise<QueryObserverResult<NonceState | null, Error>>;\n};\n\n/**\n * React hook to find the next unused Permit2 nonce for `permitTransferFrom`.\n *\n * Permit2 stores nonces as a bitmap:\n * - Each address has a mapping from uint256 => uint256\n * - Each value is a 256-bit bitmap (called a \"word\")\n * - If a bit is 1, the nonce (word * 256 + bit index) is used\n * - If it's 0, it's free and can be used\n */\nexport function usePermit2TransferFromNonce({\n owner,\n chainId,\n initWord = 0n,\n enabled = true,\n}: UsePermit2TransferFromNonceOptions) {\n const queryClient = useQueryClient();\n const config = useConfig();\n const logger = useLogger(\"PERMIT2::TransferFromNonce\");\n\n const queryKey: Permit2TransferFromQueryKey = [\n PERMIT2_TRANSFER_FROM_NONCE_QUERY_KEY,\n owner,\n chainId,\n ];\n\n const {\n data: nonceState,\n isLoading,\n isError,\n isSuccess,\n error,\n refetch,\n } = useQuery<\n NonceState | null,\n Error,\n NonceState | null,\n Permit2TransferFromQueryKey\n >({\n enabled: enabled && !!(owner && chainId),\n\n queryKey,\n\n queryFn: async () => {\n // Safety checks\n assert(owner, \"owner is required\");\n assert(chainId, \"chainId is required\");\n\n // Try to resume scanning from last known state if available\n const last = queryClient.getQueryData<NonceState>(queryKey);\n\n // Find a bitmap word that has at least one unused bit (i.e. a usable nonce)\n const nextOpenWord = await getNextOpenWord({\n owner,\n config,\n startWord: last?.word ?? initWord,\n });\n\n if (!nextOpenWord) {\n logger.warn(\"No available nonce found\");\n return null;\n }\n\n const { word, bitmap } = nextOpenWord;\n // Identify the first 0-bit in the bitmap — that’s our next nonce\n const bitPos = getFirstUnsetBit(bitmap);\n if (bitPos === -1) {\n logger.warn(\"No available nonce found\");\n return null;\n }\n\n const nonceState = {\n word,\n bitmap,\n nonce: word * 256n + BigInt(bitPos),\n };\n\n logger.log(\"nonceState\", nonceState);\n\n // The final usable nonce is: word * 256 + bit index\n return nonceState;\n },\n\n // Useful defaults\n refetchOnWindowFocus: false,\n notifyOnChangeProps: [\"data\", \"isLoading\"],\n });\n\n return {\n nonceState,\n nonceToUse: nonceState === null ? null : nonceState?.nonce,\n isLoading,\n isError,\n isSuccess,\n error,\n refetch,\n };\n}\n\ninterface GetNextOpenWordInput {\n owner: Address;\n config: Config;\n startWord: bigint;\n}\n\n/**\n * Scans bitmap word-by-word starting at `startWord` until it finds\n * one with at least one unused bit (i.e., not all bits are set to 1).\n */\nasync function getNextOpenWord({\n owner,\n config,\n startWord,\n}: GetNextOpenWordInput): Promise<{ word: bigint; bitmap: bigint } | null> {\n let word = startWord;\n const MAX = maxUint256; // full 256-bit word (0xffff...ffff)\n\n while (true) {\n // Read the bitmap word for the given owner and word index\n const bitmap = await readContract(config, {\n address: PERMIT2_ADDRESS,\n abi: PERMIT2_ABI,\n functionName: \"nonceBitmap\",\n args: [owner, word],\n });\n\n // If the bitmap is not fully used (i.e., not all bits are 1)\n if (bitmap !== MAX) {\n return { word, bitmap };\n }\n\n word += 1n;\n\n // Fail-safe: don't scan more than 1024 words (262,144 nonces)\n if (word - startWord > 1024n) {\n getLogger(\"PERMIT2::getNextOpenWord\").warn(\"Exceeded nonce search limit\");\n return null;\n }\n }\n}\n\n/**\n * Returns the index (0–255) of the first unset (zero) bit in a 256-bit bitmap.\n *\n * Uses a classic bit-hack: (~bitmap) & (bitmap + 1)\n *\n * This produces a bitmask with only the lowest 0-bit set to 1.\n * Example:\n * bitmap = 0b1110 → unset bit at index 0\n * ~bitmap = 0b...0001\n * bitmap + 1 = 0b1111\n * result = 0b0001 → bitmask for index 0\n *\n * We then convert the bitmask to binary and count how many bits it takes\n * to shift that 1 into place = its position.\n */\nfunction getFirstUnsetBit(bitmap: bigint): number {\n // Create a bitmask with a 1 only at the first 0-bit (LSB side)\n const mask = ~bitmap & (bitmap + 1n);\n\n // If all bits are set (mask is zero), there are no available nonces\n if (mask === 0n) return -1;\n\n // Convert mask to binary and count digits – the length is the index + 1\n // e.g. mask = 0b1000 → \"1000\" → length = 4 → index = 3\n return mask.toString(2).length - 1;\n}\n\n/////// MARK NONCE AS USED ///////\n\ntype SetNonceInput = {\n owner: Address;\n chainId: number;\n usedNonce: bigint;\n};\n\ntype UseMarkNonceAsUsedResult = {\n /**\n * Mark a nonce as \"used\" in the local cache after submitting a transaction or order\n * This prevents reuse of the same nonce while it's still pending on-chain.\n */\n markNonceAsUsed: (input: SetNonceInput) => void;\n};\n\n/**\n * Hook to manually bump the locally cached Permit2 nonce to avoid reuse\n *\n * Permit2 allows unordered nonces, but while a tx is pending, it's safer to use\n * a strictly increasing nonce to avoid accidental replays or reuse.\n *\n * clearing an unsued nonce is not necessary because nonces are unordered\n */\nexport function useMarkNonceAsUsed(): UseMarkNonceAsUsedResult {\n const queryClient = useQueryClient();\n\n const markNonceAsUsed: UseMarkNonceAsUsedResult[\"markNonceAsUsed\"] = ({\n owner,\n chainId,\n usedNonce,\n }) => {\n const queryKey: Permit2TransferFromQueryKey = [\n PERMIT2_TRANSFER_FROM_NONCE_QUERY_KEY,\n owner,\n chainId,\n ];\n\n // Update cached nonce state if the used nonce was >= current one\n queryClient.setQueryData<NonceState>(queryKey, (oldNonceState) => {\n if (!oldNonceState) return oldNonceState; // should not happen unless cache was cleared\n\n // If we're already past this nonce, nothing to do\n if (oldNonceState.nonce > usedNonce) return oldNonceState;\n\n const newNonce = oldNonceState.nonce + 1n;\n const { word, bitPos } = splitNonce(newNonce);\n\n return {\n word,\n bitmap: 1n << bitPos, // ✅ convert bit index to actual 256-bit bitmap\n nonce: newNonce,\n };\n });\n };\n\n return {\n markNonceAsUsed,\n };\n}\n\n/**\n * Splits a Permit2 nonce into:\n * - `word`: which 256-bit bitmap page (nonce / 256)\n * - `bitPos`: position within that word (nonce % 256)\n */\nfunction splitNonce(nonce: bigint): { word: bigint; bitPos: bigint } {\n const word = nonce / 256n;\n const bitPos = nonce % 256n;\n return { word, bitPos };\n}\n"],"names":["PERMIT2_TRANSFER_FROM_NONCE_QUERY_KEY","usePermit2TransferFromNonce","owner","chainId","initWord","enabled","queryClient","useQueryClient","config","useConfig","logger","useLogger","queryKey","data","nonceState","isLoading","isError","isSuccess","error","refetch","useQuery","queryFn","assert","last","getQueryData","nextOpenWord","getNextOpenWord","startWord","word","warn","bitmap","bitPos","getFirstUnsetBit","nonce","BigInt","log","refetchOnWindowFocus","notifyOnChangeProps","nonceToUse","MAX","maxUint256","readContract","address","PERMIT2_ADDRESS","abi","PERMIT2_ABI","functionName","args","getLogger","mask","toString","length","useMarkNonceAsUsed","markNonceAsUsed","usedNonce","setQueryData","oldNonceState","newNonce","splitNonce"],"mappings":"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"}
|