@velora-dex/widget 0.0.22 → 0.0.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/ui/button.d.ts +3 -4
- package/dist/components/ui/button.d.ts.map +1 -1
- package/dist/components/ui/button.js +11 -8
- package/dist/components/ui/button.js.map +1 -1
- package/dist/components/ui/dialog.js +2 -2
- 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 +57 -18
- package/dist/components/ui/drawer.js.map +1 -1
- package/dist/components/ui/dropdown-menu.js +1 -1
- package/dist/components/ui/dropdown-menu.js.map +1 -1
- package/dist/components/ui/sonner.js +3 -3
- package/dist/components/ui/sonner.js.map +1 -1
- package/dist/components/ui/tooltip.js +1 -1
- package/dist/components/ui/tooltip.js.map +1 -1
- package/dist/components/web3/AccountButton.js +2 -2
- package/dist/components/web3/AccountButton.js.map +1 -1
- package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.js +1 -1
- package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.js.map +1 -1
- package/dist/components/web3/ConnectWallets/index.js +1 -1
- package/dist/components/web3/ConnectWallets/index.js.map +1 -1
- package/dist/components/web3/ConnectWallets/privy/button.js +1 -1
- package/dist/components/web3/ConnectWallets/privy/button.js.map +1 -1
- package/dist/components/web3/ConnectWallets/privy/connectRunner.js +1 -1
- package/dist/components/web3/ConnectWallets/privy/connectRunner.js.map +1 -1
- package/dist/components/web3/ConnectWallets/privy/iframe.js +1 -1
- package/dist/components/web3/ConnectWallets/privy/iframe.js.map +1 -1
- package/dist/components/web3/ConnectWallets/privy/types.d.ts +1 -1
- package/dist/components/web3/ConnectWallets/privy/types.d.ts.map +1 -1
- package/dist/components/web3/providers.js +1 -1
- package/dist/components/web3/providers.js.map +1 -1
- package/dist/components/widget/Details/SwapDetailsExpandable.js +1 -1
- package/dist/components/widget/Details/SwapDetailsExpandable.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js +2 -2
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js.map +1 -1
- package/dist/components/widget/Drawer/index.d.ts +2 -1
- package/dist/components/widget/Drawer/index.d.ts.map +1 -1
- package/dist/components/widget/Drawer/index.js +47 -33
- package/dist/components/widget/Drawer/index.js.map +1 -1
- package/dist/components/widget/Drawer/state/useDrawerControls.js +1 -1
- package/dist/components/widget/Drawer/state/useDrawerControls.js.map +1 -1
- package/dist/components/widget/Icon/InfoIcon.d.ts +1 -1
- package/dist/components/widget/Icon/InfoIcon.d.ts.map +1 -1
- package/dist/components/widget/Icon/InfoIcon.js +11 -8
- package/dist/components/widget/Icon/InfoIcon.js.map +1 -1
- package/dist/components/widget/NetworkIcon/NetworkIconSquare.js +1 -1
- package/dist/components/widget/NetworkIcon/NetworkIconSquare.js.map +1 -1
- package/dist/components/widget/NetworkWithIcon/NetworkWithIcon.js +1 -1
- package/dist/components/widget/NetworkWithIcon/NetworkWithIcon.js.map +1 -1
- package/dist/components/widget/RowVirtualizer/RowVirtualizerFixed.js +1 -1
- package/dist/components/widget/RowVirtualizer/RowVirtualizerFixed.js.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/SwapModeSwitcherExpandable.js +1 -1
- package/dist/components/widget/SwapModeSwitcher/SwapModeSwitcherExpandable.js.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/state/swapModeActionsAtom.js +3 -3
- package/dist/components/widget/SwapModeSwitcher/state/swapModeActionsAtom.js.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/state/swapModeAtom.js +1 -1
- package/dist/components/widget/SwapModeSwitcher/state/swapModeAtom.js.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js +3 -3
- package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js.map +1 -1
- package/dist/components/widget/Toasts/CustomToast.js +1 -1
- package/dist/components/widget/Toasts/CustomToast.js.map +1 -1
- package/dist/components/widget/TradeOverview/VerticalDash.js +1 -1
- package/dist/components/widget/TradeOverview/VerticalDash.js.map +1 -1
- package/dist/components/widget/TradeParameters/state/deltaParamAtom.js +1 -1
- package/dist/components/widget/TradeParameters/state/deltaParamAtom.js.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useSubmitDepositTxMutation.js +2 -2
- package/dist/components/widget/WrapEth/hooks/useSubmitDepositTxMutation.js.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.d.ts.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js +6 -4
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js.map +1 -1
- package/dist/configurator/Configurator.d.ts.map +1 -0
- package/dist/configurator/index.d.ts.map +1 -0
- package/dist/core/ConnectWalletDrawerButton.d.ts.map +1 -0
- package/dist/core/ConnectWalletDrawerButton.js.map +1 -0
- package/dist/core/DevTools.d.ts.map +1 -0
- package/dist/core/Toaster.d.ts.map +1 -0
- package/dist/core/Toaster.js.map +1 -0
- package/dist/core/TradeFlowButton.d.ts.map +1 -0
- package/dist/core/TradeFlowButton.js.map +1 -0
- package/dist/core/Updaters.d.ts.map +1 -0
- package/dist/core/Updaters.js.map +1 -0
- package/dist/core/across/utils.d.ts.map +1 -0
- package/dist/core/across/utils.js.map +1 -0
- package/dist/core/button/hooks/useWidgetButtonExtraProps.d.ts.map +1 -0
- package/dist/core/button/hooks/useWidgetButtonExtraProps.js.map +1 -0
- package/dist/core/constants.d.ts.map +1 -0
- package/dist/core/constants.js.map +1 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/inputs/hooks/types.d.ts.map +1 -0
- package/dist/core/inputs/hooks/useTokenFromInputProps.d.ts.map +1 -0
- package/dist/{widget → core}/inputs/hooks/useTokenFromInputProps.js +114 -93
- package/dist/core/inputs/hooks/useTokenFromInputProps.js.map +1 -0
- package/dist/core/inputs/hooks/useTokenSwitcherProps.d.ts.map +1 -0
- package/dist/core/inputs/hooks/useTokenSwitcherProps.js.map +1 -0
- package/dist/core/inputs/hooks/useTokenToInputProps.d.ts.map +1 -0
- package/dist/{widget → core}/inputs/hooks/useTokenToInputProps.js +46 -35
- package/dist/core/inputs/hooks/useTokenToInputProps.js.map +1 -0
- package/dist/core/inputs/hooks/useWidgetButtonProps.d.ts.map +1 -0
- package/dist/core/inputs/state/inputAmountAtom.d.ts.map +1 -0
- package/dist/core/inputs/state/inputAmountAtom.js.map +1 -0
- package/dist/core/inputs/state/selectedTokenActionsAtom.d.ts.map +1 -0
- package/dist/core/inputs/state/selectedTokenActionsAtom.js.map +1 -0
- package/dist/core/inputs/state/selectedTokenAtom.d.ts.map +1 -0
- package/dist/core/inputs/state/selectedTokenAtom.js.map +1 -0
- package/dist/core/inputs/state/subscriptions.d.ts.map +1 -0
- package/dist/core/inputs/state/subscriptions.js.map +1 -0
- package/dist/core/logger.d.ts.map +1 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/state/chainToAtom.d.ts +3 -0
- package/dist/core/state/chainToAtom.d.ts.map +1 -0
- package/dist/core/state/chainToAtom.js.map +1 -0
- package/dist/core/state/configActionsAtom.d.ts.map +1 -0
- package/dist/core/state/configActionsAtom.js.map +1 -0
- package/dist/core/state/configAtom.d.ts.map +1 -0
- package/dist/core/state/configAtom.js.map +1 -0
- package/dist/core/state/containerAtom.d.ts.map +1 -0
- package/dist/core/state/containerAtom.js.map +1 -0
- package/dist/core/state/currentSwapInputAtom.d.ts.map +1 -0
- package/dist/core/state/currentSwapInputAtom.js.map +1 -0
- package/dist/core/state/externalProviderAtom.d.ts.map +1 -0
- package/dist/core/state/externalProviderAtom.js.map +1 -0
- package/dist/core/state/isCrosschainAtom.d.ts.map +1 -0
- package/dist/core/state/isCrosschainAtom.js.map +1 -0
- package/dist/core/subscriptions.d.ts.map +1 -0
- package/dist/core/subscriptions.js.map +1 -0
- package/dist/core/swapDetails/fees.d.ts.map +1 -0
- package/dist/core/swapDetails/fees.js.map +1 -0
- package/dist/core/swapDetails/orderRouting.d.ts.map +1 -0
- package/dist/core/swapDetails/orderRouting.js.map +1 -0
- package/dist/core/swapDetails/priceImpact.d.ts.map +1 -0
- package/dist/core/swapDetails/priceImpact.js.map +1 -0
- package/dist/core/swapDetails/useSwapDetailsListProps.d.ts.map +1 -0
- package/dist/core/swapDetails/useSwapDetailsListProps.js.map +1 -0
- package/dist/core/swapDetails/youGet.d.ts.map +1 -0
- package/dist/core/swapDetails/youGet.js.map +1 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/external/.pnpm/vaul@1.1.2_patch_hash_07b36ba5def3805dde9d543a880ba9e4caf55e5eb58e544faaa2c186846bf3c1__15df56ff48174365d34843c037ea8a33/external/vaul/dist/index.js +3 -1
- package/dist/external/.pnpm/vaul@1.1.2_patch_hash_07b36ba5def3805dde9d543a880ba9e4caf55e5eb58e544faaa2c186846bf3c1__15df56ff48174365d34843c037ea8a33/external/vaul/dist/index.js.map +1 -1
- package/dist/hooks/permit/hooks/permit1/useGetPermitInfo.js +1 -1
- package/dist/hooks/permit/hooks/permit1/useGetPermitInfo.js.map +1 -1
- package/dist/hooks/permit/hooks/permit1/useTokenFromPermit1Nonce.js +1 -1
- package/dist/hooks/permit/hooks/permit1/useTokenFromPermit1Nonce.js.map +1 -1
- package/dist/hooks/permit/hooks/permit1/useTokenFromPermitInfo.js +1 -1
- package/dist/hooks/permit/hooks/permit1/useTokenFromPermitInfo.js.map +1 -1
- package/dist/hooks/permit/hooks/permit1/useTryToSignPermit1.js +1 -1
- package/dist/hooks/permit/hooks/permit1/useTryToSignPermit1.js.map +1 -1
- package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.js +1 -1
- package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.js.map +1 -1
- package/dist/hooks/permit/hooks/permit2/usePermit2TransferFromNonce.js +1 -1
- package/dist/hooks/permit/hooks/permit2/usePermit2TransferFromNonce.js.map +1 -1
- package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2TransferFromNonce.js +1 -1
- package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2TransferFromNonce.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js +29 -14
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/usePricesParams.js +4 -4
- package/dist/hooks/swap/prices/usePricesParams.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js +1 -1
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.js +1 -1
- package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +2 -2
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.js +2 -2
- package/dist/hooks/swap/tradeFlow/useMarketFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js.map +1 -1
- package/dist/hooks/tokens/balances/useIsInsufficientTokenBalance.d.ts.map +1 -1
- package/dist/hooks/tokens/balances/useIsInsufficientTokenBalance.js +7 -3
- package/dist/hooks/tokens/balances/useIsInsufficientTokenBalance.js.map +1 -1
- package/dist/hooks/txs/queries/useAwaitTx.js +1 -1
- package/dist/hooks/txs/queries/useAwaitTx.js.map +1 -1
- package/dist/hooks/useGlobalDeltaEnabled.js +1 -1
- package/dist/hooks/useGlobalDeltaEnabled.js.map +1 -1
- package/dist/hooks/useSDK.js +1 -1
- package/dist/hooks/useSDK.js.map +1 -1
- package/dist/hooks/useSlippage.js +1 -1
- package/dist/hooks/useSlippage.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/lib/constants/time.js +2 -1
- package/dist/lib/constants/time.js.map +1 -1
- package/dist/lib/web3/wagmi/config.d.ts +1 -1
- package/dist/lib/web3/wagmi/constants.d.ts +1 -1
- package/dist/styles.css +1 -140
- package/dist/tokens/lists/state/tokenListsStateAtom.d.ts +2 -2
- package/package.json +1 -1
- package/dist/test/Configurator.d.ts.map +0 -1
- package/dist/test/connect/AccountDisplay.d.ts +0 -2
- package/dist/test/connect/AccountDisplay.d.ts.map +0 -1
- package/dist/test/connect/App.d.ts +0 -2
- package/dist/test/connect/App.d.ts.map +0 -1
- package/dist/test/connect/ConnectWallet.d.ts +0 -2
- package/dist/test/connect/ConnectWallet.d.ts.map +0 -1
- package/dist/test/connect/PrivyProfile.d.ts +0 -2
- package/dist/test/connect/PrivyProfile.d.ts.map +0 -1
- package/dist/test/connect/WagmiProfile.d.ts +0 -2
- package/dist/test/connect/WagmiProfile.d.ts.map +0 -1
- package/dist/test/connect/WalletActions.d.ts +0 -2
- package/dist/test/connect/WalletActions.d.ts.map +0 -1
- package/dist/test/index.d.ts.map +0 -1
- package/dist/widget/ConnectWalletDrawerButton.d.ts.map +0 -1
- package/dist/widget/ConnectWalletDrawerButton.js.map +0 -1
- package/dist/widget/DevTools.d.ts.map +0 -1
- package/dist/widget/Toaster.d.ts.map +0 -1
- package/dist/widget/Toaster.js.map +0 -1
- package/dist/widget/TradeFlowButton.d.ts.map +0 -1
- package/dist/widget/TradeFlowButton.js.map +0 -1
- package/dist/widget/Updaters.d.ts.map +0 -1
- package/dist/widget/Updaters.js.map +0 -1
- package/dist/widget/across/utils.d.ts.map +0 -1
- package/dist/widget/across/utils.js.map +0 -1
- package/dist/widget/button/hooks/useWidgetButtonExtraProps.d.ts.map +0 -1
- package/dist/widget/button/hooks/useWidgetButtonExtraProps.js.map +0 -1
- package/dist/widget/constants.d.ts.map +0 -1
- package/dist/widget/constants.js.map +0 -1
- package/dist/widget/index.d.ts.map +0 -1
- package/dist/widget/index.js.map +0 -1
- package/dist/widget/inputs/hooks/types.d.ts.map +0 -1
- package/dist/widget/inputs/hooks/useTokenFromInputProps.d.ts.map +0 -1
- package/dist/widget/inputs/hooks/useTokenFromInputProps.js.map +0 -1
- package/dist/widget/inputs/hooks/useTokenSwitcherProps.d.ts.map +0 -1
- package/dist/widget/inputs/hooks/useTokenSwitcherProps.js.map +0 -1
- package/dist/widget/inputs/hooks/useTokenToInputProps.d.ts.map +0 -1
- package/dist/widget/inputs/hooks/useTokenToInputProps.js.map +0 -1
- package/dist/widget/inputs/hooks/useWidgetButtonProps.d.ts.map +0 -1
- package/dist/widget/inputs/state/inputAmountAtom.d.ts.map +0 -1
- package/dist/widget/inputs/state/inputAmountAtom.js.map +0 -1
- package/dist/widget/inputs/state/selectedTokenActionsAtom.d.ts.map +0 -1
- package/dist/widget/inputs/state/selectedTokenActionsAtom.js.map +0 -1
- package/dist/widget/inputs/state/selectedTokenAtom.d.ts.map +0 -1
- package/dist/widget/inputs/state/selectedTokenAtom.js.map +0 -1
- package/dist/widget/inputs/state/subscriptions.d.ts.map +0 -1
- package/dist/widget/inputs/state/subscriptions.js.map +0 -1
- package/dist/widget/logger.d.ts.map +0 -1
- package/dist/widget/logger.js.map +0 -1
- package/dist/widget/state/chainToAtom.d.ts +0 -3
- package/dist/widget/state/chainToAtom.d.ts.map +0 -1
- package/dist/widget/state/chainToAtom.js.map +0 -1
- package/dist/widget/state/configActionsAtom.d.ts.map +0 -1
- package/dist/widget/state/configActionsAtom.js.map +0 -1
- package/dist/widget/state/configAtom.d.ts.map +0 -1
- package/dist/widget/state/configAtom.js.map +0 -1
- package/dist/widget/state/containerAtom.d.ts.map +0 -1
- package/dist/widget/state/containerAtom.js.map +0 -1
- package/dist/widget/state/currentSwapInputAtom.d.ts.map +0 -1
- package/dist/widget/state/currentSwapInputAtom.js.map +0 -1
- package/dist/widget/state/externalProviderAtom.d.ts.map +0 -1
- package/dist/widget/state/externalProviderAtom.js.map +0 -1
- package/dist/widget/state/isCrosschainAtom.d.ts.map +0 -1
- package/dist/widget/state/isCrosschainAtom.js.map +0 -1
- package/dist/widget/subscriptions.d.ts.map +0 -1
- package/dist/widget/subscriptions.js.map +0 -1
- package/dist/widget/swapDetails/fees.d.ts.map +0 -1
- package/dist/widget/swapDetails/fees.js.map +0 -1
- package/dist/widget/swapDetails/orderRouting.d.ts.map +0 -1
- package/dist/widget/swapDetails/orderRouting.js.map +0 -1
- package/dist/widget/swapDetails/priceImpact.d.ts.map +0 -1
- package/dist/widget/swapDetails/priceImpact.js.map +0 -1
- package/dist/widget/swapDetails/useSwapDetailsListProps.d.ts.map +0 -1
- package/dist/widget/swapDetails/useSwapDetailsListProps.js.map +0 -1
- package/dist/widget/swapDetails/youGet.d.ts.map +0 -1
- package/dist/widget/swapDetails/youGet.js.map +0 -1
- package/dist/widget/types.d.ts.map +0 -1
- /package/dist/{test → configurator}/Configurator.d.ts +0 -0
- /package/dist/{test → configurator}/index.d.ts +0 -0
- /package/dist/{widget → core}/ConnectWalletDrawerButton.d.ts +0 -0
- /package/dist/{widget → core}/ConnectWalletDrawerButton.js +0 -0
- /package/dist/{widget → core}/DevTools.d.ts +0 -0
- /package/dist/{widget → core}/Toaster.d.ts +0 -0
- /package/dist/{widget → core}/Toaster.js +0 -0
- /package/dist/{widget → core}/TradeFlowButton.d.ts +0 -0
- /package/dist/{widget → core}/TradeFlowButton.js +0 -0
- /package/dist/{widget → core}/Updaters.d.ts +0 -0
- /package/dist/{widget → core}/Updaters.js +0 -0
- /package/dist/{widget → core}/across/utils.d.ts +0 -0
- /package/dist/{widget → core}/across/utils.js +0 -0
- /package/dist/{widget → core}/button/hooks/useWidgetButtonExtraProps.d.ts +0 -0
- /package/dist/{widget → core}/button/hooks/useWidgetButtonExtraProps.js +0 -0
- /package/dist/{widget → core}/constants.d.ts +0 -0
- /package/dist/{widget → core}/constants.js +0 -0
- /package/dist/{widget → core}/index.d.ts +0 -0
- /package/dist/{widget → core}/index.js +0 -0
- /package/dist/{widget → core}/inputs/hooks/types.d.ts +0 -0
- /package/dist/{widget → core}/inputs/hooks/useTokenFromInputProps.d.ts +0 -0
- /package/dist/{widget → core}/inputs/hooks/useTokenSwitcherProps.d.ts +0 -0
- /package/dist/{widget → core}/inputs/hooks/useTokenSwitcherProps.js +0 -0
- /package/dist/{widget → core}/inputs/hooks/useTokenToInputProps.d.ts +0 -0
- /package/dist/{widget → core}/inputs/hooks/useWidgetButtonProps.d.ts +0 -0
- /package/dist/{widget → core}/inputs/state/inputAmountAtom.d.ts +0 -0
- /package/dist/{widget → core}/inputs/state/inputAmountAtom.js +0 -0
- /package/dist/{widget → core}/inputs/state/selectedTokenActionsAtom.d.ts +0 -0
- /package/dist/{widget → core}/inputs/state/selectedTokenActionsAtom.js +0 -0
- /package/dist/{widget → core}/inputs/state/selectedTokenAtom.d.ts +0 -0
- /package/dist/{widget → core}/inputs/state/selectedTokenAtom.js +0 -0
- /package/dist/{widget → core}/inputs/state/subscriptions.d.ts +0 -0
- /package/dist/{widget → core}/inputs/state/subscriptions.js +0 -0
- /package/dist/{widget → core}/logger.d.ts +0 -0
- /package/dist/{widget → core}/logger.js +0 -0
- /package/dist/{widget → core}/state/chainToAtom.js +0 -0
- /package/dist/{widget → core}/state/configActionsAtom.d.ts +0 -0
- /package/dist/{widget → core}/state/configActionsAtom.js +0 -0
- /package/dist/{widget → core}/state/configAtom.d.ts +0 -0
- /package/dist/{widget → core}/state/configAtom.js +0 -0
- /package/dist/{widget → core}/state/containerAtom.d.ts +0 -0
- /package/dist/{widget → core}/state/containerAtom.js +0 -0
- /package/dist/{widget → core}/state/currentSwapInputAtom.d.ts +0 -0
- /package/dist/{widget → core}/state/currentSwapInputAtom.js +0 -0
- /package/dist/{widget → core}/state/externalProviderAtom.d.ts +0 -0
- /package/dist/{widget → core}/state/externalProviderAtom.js +0 -0
- /package/dist/{widget → core}/state/isCrosschainAtom.d.ts +0 -0
- /package/dist/{widget → core}/state/isCrosschainAtom.js +0 -0
- /package/dist/{widget → core}/subscriptions.d.ts +0 -0
- /package/dist/{widget → core}/subscriptions.js +0 -0
- /package/dist/{widget → core}/swapDetails/fees.d.ts +0 -0
- /package/dist/{widget → core}/swapDetails/fees.js +0 -0
- /package/dist/{widget → core}/swapDetails/orderRouting.d.ts +0 -0
- /package/dist/{widget → core}/swapDetails/orderRouting.js +0 -0
- /package/dist/{widget → core}/swapDetails/priceImpact.d.ts +0 -0
- /package/dist/{widget → core}/swapDetails/priceImpact.js +0 -0
- /package/dist/{widget → core}/swapDetails/useSwapDetailsListProps.d.ts +0 -0
- /package/dist/{widget → core}/swapDetails/useSwapDetailsListProps.js +0 -0
- /package/dist/{widget → core}/swapDetails/youGet.d.ts +0 -0
- /package/dist/{widget → core}/swapDetails/youGet.js +0 -0
- /package/dist/{widget → core}/types.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMarketFlow.js","sources":["../../../../src/hooks/swap/tradeFlow/useMarketFlow.ts"],"sourcesContent":["import { useAwaitTx } from \"@/hooks/txs\";\nimport type { OptimalRate } from \"@velora-dex/sdk\";\nimport { useAccount, useChainId } from \"wagmi\";\nimport { useSendMarketSwapTx } from \"../prices/market/mutations/useSendMarketSwapTx\";\nimport { useBuildTx } from \"../prices/market/mutations/useBuildTx\";\nimport { assert } from \"ts-essentials\";\nimport { useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport type { Address, Hash, TransactionReceipt } from \"viem\";\nimport type {\n ApprovalFlowResult,\n SignPermitFlowResult,\n SubmitTxResult,\n} from \"./common/types\";\nimport { applySlippage } from \"@/lib/utils/price\";\nimport { useSlippage } from \"@/hooks/useSlippage\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { useRef } from \"react\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useInvalidateTokenDataQuery } from \"@/hooks/tokens/balances/useInvalidateTokenData\";\nimport { UserCancelledError } from \"./common/errors\";\nimport { useReceiverAddressValue } from \"@/components/widget/ReceiverAddress/state/receiverAddressAtom\";\nimport type { TxSentObject } from \"@/lib/utils/toasts\";\nimport { useSwapSide } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport { useApproveOrPermit } from \"./common/useApproveOrPermit\";\nimport {\n useMarkPermit1Or2NonceAsUsed,\n type SignedPermitResult,\n} from \"./common/useSignPermit1Or2\";\nimport { useWidgetConfig } from \"@/widget/state/configAtom\";\nimport { useLogger } from \"@/widget/logger\";\nimport { useTrackedPrice } from \"./common/useTrackedPrice\";\nimport { useConstructGasParams } from \"./common/useConstructGasParams\";\n\nexport type UseMarketFlowInput = {\n marketPrice?: OptimalRate;\n};\n\nexport type SubmitSwapResult = {\n tradeFlowType: \"marketSwap\";\n approve: SubmitTxResult;\n swap: SubmitTxResult;\n marketPrice: OptimalRate;\n account: Address;\n};\n\ntype OnTxSent = (txSent: TxSentObject) => void;\n// @TODO instead add global onTxSent subscription to\n// MutationCache({onSuccess: txHash}) when sent\n// and QueryCache({onSuccess: txReceipt}) when mined,\n// maybe??\ntype RunMarketOptions = {\n onTxSent?: OnTxSent;\n};\n\nexport type UseMarketFlowResult = {\n chainId: SupportedChainId;\n runMarketSwapFlow: (options?: RunMarketOptions) => Promise<SubmitSwapResult>;\n reset: () => void; // reset on Error to retry\n cancelFlow: () => void; // cancel flow\n retryFlow: (options?: RunMarketOptions) => Promise<SubmitSwapResult>; // reset and retry flow\n approval: ApprovalFlowResult;\n signPermit: SignPermitFlowResult;\n buildTxParams: {\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n swap: {\n txHash?: Hash;\n receipt?: TransactionReceipt;\n isConfirmingTX: boolean;\n isConfirmingTxError: boolean;\n isTxSent: boolean;\n isTxPending: boolean;\n isTxMined: boolean;\n isTxAwaitingError: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n result?: SubmitSwapResult;\n usedPrice?: OptimalRate;\n};\n\nconst MARKET_SWAP_MUTATION_KEY = \"runMarketSwapFlow\";\n\nexport function useMarketFlow({\n marketPrice,\n}: UseMarketFlowInput): UseMarketFlowResult {\n const logger = useLogger(\"MarketFlow\");\n const chainId = useChainId();\n const { resolvedSlippage } = useSlippage();\n const swapSide = useSwapSide();\n\n const trackedPrice = useTrackedPrice({\n price: marketPrice,\n slippage: resolvedSlippage,\n side: swapSide,\n });\n\n /* Inside useApproveOrPermit:\n 1. Get allowance for tokenFrom \n 2.1. submit Approve tx if necessary \n\n 2.2. sign Permit1 \n\n 3. await Approve tx (if not using Permit) \n */\n const usingPrice = trackedPrice.get.usingPrice();\n const { approval, signPermit, approveTxMut, signPermitMut } =\n useApproveOrPermit({\n srcToken: usingPrice?.srcToken ?? marketPrice?.srcToken,\n // if we already approved some amount, save it in approval and signPermit objects\n srcAmount: trackedPrice.get.approvedAmount() ?? marketPrice?.srcAmount,\n spenderContractType: \"AugustusSwapper\",\n // marketPrice is the preferred source of truth\n swapSide: usingPrice?.side ?? swapSide,\n });\n\n /* 4. Build Swap tx */\n const buildTxMut = useBuildTx({\n chainId,\n mutationOptions: {\n onSuccess: () => {\n logger.log(\"Build tx success\");\n },\n onError: (error) => {\n logger.error(\"Build tx error\", error);\n },\n },\n });\n\n const buildTxParams: UseMarketFlowResult[\"buildTxParams\"] = {\n isPending: buildTxMut.isPending,\n isError: buildTxMut.isError,\n isSuccess: buildTxMut.isSuccess,\n error: buildTxMut.error,\n };\n\n /* 5. submit Swap tx */\n\n const sendSwapTxMut = useSendMarketSwapTx({\n onSuccess: () => {\n logger.log(\"Swap tx success\");\n },\n onError: (error) => {\n logger.error(\"Swap tx error\", error);\n },\n });\n\n /* 6. await Swap tx */\n const swapTxMined = useAwaitTx({\n hash: sendSwapTxMut.txHash,\n chainId,\n });\n\n const swap: UseMarketFlowResult[\"swap\"] = {\n txHash: sendSwapTxMut.txHash,\n receipt: swapTxMined.data,\n /* tx sending */\n isConfirmingTX: sendSwapTxMut.isPending,\n isConfirmingTxError: sendSwapTxMut.isError,\n isTxSent: sendSwapTxMut.isSuccess,\n /* tx awaiting */\n isTxPending: swapTxMined.isLoading,\n isTxMined: swapTxMined.isSuccess,\n isTxAwaitingError: swapTxMined.isError,\n /* combined */\n isPending: sendSwapTxMut.isPending || swapTxMined.isLoading,\n isSuccess: swapTxMined.isSuccess, // final success\n isError: sendSwapTxMut.isError || swapTxMined.isError,\n error: sendSwapTxMut.error || swapTxMined.error,\n };\n\n const { address: account } = useAccount();\n\n const ensureTxReceipt = useEnsureTxReceipt();\n\n // allows to abort (cancel) currently running flow,\n const currentAbortControllerRef = useRef<AbortController | null>(null);\n\n const cancelFlow = () => {\n currentAbortControllerRef.current?.abort(new UserCancelledError());\n currentAbortControllerRef.current = null;\n };\n\n const receiverAddress = useReceiverAddressValue();\n\n const { markNonceAsUsed, clearNonce } = useMarkPermit1Or2NonceAsUsed({\n chainId,\n });\n\n const { constructGasParams } = useConstructGasParams();\n\n const partner = useWidgetConfig().partner;\n\n const submitSwapTx: UseMarketFlowResult[\"runMarketSwapFlow\"] = async ({\n onTxSent,\n } = {}) => {\n // reset all mutations except the current one,\n // otherwise we'll have previous data (txs) as mutation results\n approveTxMut.reset();\n signPermitMut.reset();\n buildTxMut.reset();\n sendSwapTxMut.reset();\n\n const abortController = new AbortController();\n currentAbortControllerRef.current = abortController;\n\n const signal = abortController.signal;\n\n let signedPermitResult: SignedPermitResult | undefined;\n\n let approveTxHash: Hash | undefined;\n let approveTxReceipt: TransactionReceipt | undefined;\n\n // at this point this is the syncronously available price\n const allowanceToSet = approval.allowanceToSet;\n // we use this allowance as a max allowance we will accept new prices for\n\n if (approval.needsApproval) {\n // need allowance\n if (!signPermit.isPermitSupported || !signPermit.isPermitReadyToSign) {\n // freeze allowanceToSet\n trackedPrice.set.approvedAmount(allowanceToSet);\n\n // Token doesn't support Permit\n // make an Approval tx\n approveTxHash = await approveTxMut.approveAsync({\n allowanceData: {\n allowanceToSet,\n },\n });\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n const approveTxReceiptPromise = ensureTxReceipt({\n hash: approveTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\"onReplaced:approveTx\", approveTxHash, data);\n },\n });\n\n if (onTxSent) {\n onTxSent({\n chainId,\n txHash: approveTxHash,\n actionType: \"approve\",\n receiptPromise: approveTxReceiptPromise,\n });\n }\n\n approveTxReceipt = await approveTxReceiptPromise;\n\n logger.log(\"~ approveTx ~ receipt:\", approveTxReceipt);\n // @TODO check if we need to see if receipt.status === \"reverted\" and throw,\n // or if waitForTransactionReceipt already throws on such receipts\n } else {\n // freeze allowanceToSet\n trackedPrice.set.approvedAmount(allowanceToSet);\n\n // sign Permit\n signedPermitResult = await signPermitMut.signPermitAsync({\n value: allowanceToSet,\n });\n }\n }\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n assert(account, \"Account is not connected\");\n // as long as we had set approvedAmountRef, we will only get new prices that satisfy the allowance\n let marketPriceToUse = trackedPrice.get.usingPrice();\n // usingPriceRef.current can be null depending on reset() timing (e.g. inside retry)\n if (!marketPriceToUse) {\n marketPriceToUse = marketPrice || null;\n trackedPrice.set.usingPrice(marketPriceToUse);\n }\n assert(marketPriceToUse, \"Market price is not available\");\n\n const amountsAfterSlippage = applySlippage(\n {\n srcAmount: marketPriceToUse.srcAmount,\n destAmount: marketPriceToUse.destAmount,\n },\n resolvedSlippage,\n marketPriceToUse.side\n );\n\n // freeze final price to avoid any changes to displayed and result amounts\n trackedPrice.set.finalPrice(marketPriceToUse);\n\n // fresh gas params\n const gasParams = constructGasParams();\n\n const txParams = await buildTxMut.mutateAsync({\n swapTxInput: {\n userAddress: account,\n receiver: receiverAddress,\n srcToken: marketPriceToUse.srcToken,\n destToken: marketPriceToUse.destToken,\n srcDecimals: marketPriceToUse.srcDecimals,\n destDecimals: marketPriceToUse.destDecimals,\n\n partner,\n /* @TODO fill in when and if available\n referrer: \"\",\n partnerAddress: \"\",\n partnerFeeBps: 0, \n takeSurplus: false,*/\n permit: signedPermitResult?.permitEncodedArgs, // just signed Permit signature\n\n priceRoute: marketPriceToUse,\n ...amountsAfterSlippage,\n },\n\n swapTxOptions:\n // ignoreChecks: true,\n // ignoreGasEstimate: true,\n // ignoreAllowance: true,\n // onlyParams: true,\n // @TODO turn on ignore options when necessary (for Safe),\n gasParams,\n });\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n const swapTxHash = await sendSwapTxMut.sendTransactionAsync(txParams);\n\n // no use aborting past this point, tx is already sent,\n // but we may want to connect this late abortion to tx cancellation, in the future\n\n // tx is sent, consider Token nonce as used\n if (signedPermitResult) {\n markNonceAsUsed(signedPermitResult.signedPermitData);\n }\n\n try {\n const swapTxReceiptPromise = ensureTxReceipt({\n hash: swapTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\"onReplaced:swapTx\", swapTxHash, data);\n },\n });\n if (onTxSent) {\n onTxSent({\n chainId,\n txHash: swapTxHash,\n actionType: \"swap\",\n receiptPromise: swapTxReceiptPromise,\n });\n }\n\n const swapTxReceipt = await swapTxReceiptPromise;\n logger.log(\"~ swapTx ~ receipt:\", swapTxReceipt);\n // @TODO check if we need to see if receipt.status === \"reverted\" and trhow,\n // or if waitForTransactionReceipt already throws on such receipts\n\n // @TODO try catch, handle errors, refetch allowance and balance in finally\n\n return {\n tradeFlowType: \"marketSwap\",\n approve: {\n txHash: approveTxHash,\n receipt: approveTxReceipt,\n },\n swap: {\n txHash: swapTxHash,\n receipt: swapTxReceipt,\n },\n marketPrice: marketPriceToUse,\n // @TODO add whatever else may be relevant\n account,\n };\n } catch (error) {\n // Market swap failed, we can't be sure if nonce can be reused or it was incremented in a different tx\n // or even Order in the meantime\n if (signedPermitResult) {\n clearNonce(signedPermitResult.signedPermitData);\n }\n throw error;\n }\n };\n\n const invalidateTokenData = useInvalidateTokenDataQuery();\n\n const marketSwapMut = useMutation({\n mutationFn: submitSwapTx,\n mutationKey: [MARKET_SWAP_MUTATION_KEY],\n onSuccess: (data) => {\n logger.log(\"Swap tx success\", data);\n },\n onError: (error) => {\n logger.error(\"Swap tx error\", error);\n },\n onSettled: () => {\n logger.log(\"Swap tx settled, invalidating balances and allowances\");\n invalidateTokenData({ nonces: true });\n trackedPrice.resetTrackedPrice();\n },\n });\n\n const runMarketSwapFlow = marketSwapMut.mutateAsync;\n\n const reset = () => {\n trackedPrice.resetTrackedPrice();\n approveTxMut.reset();\n signPermitMut.reset();\n buildTxMut.reset();\n sendSwapTxMut.reset();\n marketSwapMut.reset();\n };\n\n const retryFlow = (options?: RunMarketOptions): Promise<SubmitSwapResult> => {\n reset();\n return runMarketSwapFlow(options);\n };\n\n // finalPrice if we reached that point, or usable price (based on allowance given)\n const usedPrice =\n trackedPrice.get.finalPrice() ||\n trackedPrice.get.usingPrice() ||\n marketPrice;\n\n /* 7. return result */\n return {\n chainId,\n runMarketSwapFlow,\n reset,\n cancelFlow,\n retryFlow,\n approval,\n signPermit,\n buildTxParams,\n swap,\n // marketSwapMut includes all steps' queries and mutations and returns more precise errors (including cancellation)\n isPending: marketSwapMut.isPending,\n isSuccess: marketSwapMut.isSuccess,\n isError: marketSwapMut.isError,\n error: marketSwapMut.error,\n result: marketSwapMut.data,\n usedPrice,\n };\n}\n"],"names":["MARKET_SWAP_MUTATION_KEY","useMarketFlow","t0","$","_c","marketPrice","logger","useLogger","chainId","useChainId","resolvedSlippage","useSlippage","swapSide","useSwapSide","t1","price","slippage","side","trackedPrice","useTrackedPrice","t2","get","usingPrice","t3","srcToken","t4","srcAmount","approvedAmount","t5","t6","spenderContractType","approval","signPermit","approveTxMut","signPermitMut","useApproveOrPermit","t7","onSuccess","log","onError","error","t8","mutationOptions","buildTxMut","useBuildTx","t9","isError","isPending","isSuccess","buildTxParams","t10","error_0","sendSwapTxMut","useSendMarketSwapTx","t11","txHash","hash","swapTxMined","useAwaitTx","t12","isLoading","t13","t14","t15","data","receipt","isConfirmingTX","isConfirmingTxError","isTxSent","isTxPending","isTxMined","isTxAwaitingError","swap","address","account","useAccount","ensureTxReceipt","useEnsureTxReceipt","currentAbortControllerRef","useRef","t16","Symbol","for","current","abort","UserCancelledError","cancelFlow","receiverAddress","useReceiverAddressValue","t17","markNonceAsUsed","clearNonce","useMarkPermit1Or2NonceAsUsed","constructGasParams","useConstructGasParams","partner","useWidgetConfig","t18","set","t19","onTxSent","undefined","reset","abortController","AbortController","signal","signedPermitResult","approveTxHash","approveTxReceipt","allowanceToSet","needsApproval","isPermitSupported","isPermitReadyToSign","approveAsync","allowanceData","throwIfAborted","approveTxReceiptPromise","onReplaced","actionType","receiptPromise","signPermitAsync","value","assert","marketPriceToUse","amountsAfterSlippage","applySlippage","destAmount","finalPrice","gasParams","txParams","mutateAsync","swapTxInput","userAddress","receiver","destToken","srcDecimals","destDecimals","permit","permitEncodedArgs","priceRoute","swapTxOptions","swapTxHash","sendTransactionAsync","signedPermitData","swapTxReceiptPromise","data_0","swapTxReceipt","tradeFlowType","approve","t20","submitSwapTx","invalidateTokenData","useInvalidateTokenDataQuery","t21","data_1","error_2","t22","nonces","resetTrackedPrice","t23","mutationFn","mutationKey","onSettled","marketSwapMut","useMutation","runMarketSwapFlow","t24","t25","options","retryFlow","t26","usedPrice","t27","result"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useMarketFlow.js","sources":["../../../../src/hooks/swap/tradeFlow/useMarketFlow.ts"],"sourcesContent":["import { useAwaitTx } from \"@/hooks/txs\";\nimport type { OptimalRate } from \"@velora-dex/sdk\";\nimport { useAccount, useChainId } from \"wagmi\";\nimport { useSendMarketSwapTx } from \"../prices/market/mutations/useSendMarketSwapTx\";\nimport { useBuildTx } from \"../prices/market/mutations/useBuildTx\";\nimport { assert } from \"ts-essentials\";\nimport { useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport type { Address, Hash, TransactionReceipt } from \"viem\";\nimport type {\n ApprovalFlowResult,\n SignPermitFlowResult,\n SubmitTxResult,\n} from \"./common/types\";\nimport { applySlippage } from \"@/lib/utils/price\";\nimport { useSlippage } from \"@/hooks/useSlippage\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { useRef } from \"react\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useInvalidateTokenDataQuery } from \"@/hooks/tokens/balances/useInvalidateTokenData\";\nimport { UserCancelledError } from \"./common/errors\";\nimport { useReceiverAddressValue } from \"@/components/widget/ReceiverAddress/state/receiverAddressAtom\";\nimport type { TxSentObject } from \"@/lib/utils/toasts\";\nimport { useSwapSide } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport { useApproveOrPermit } from \"./common/useApproveOrPermit\";\nimport {\n useMarkPermit1Or2NonceAsUsed,\n type SignedPermitResult,\n} from \"./common/useSignPermit1Or2\";\nimport { useWidgetConfig } from \"@/core/state/configAtom\";\nimport { useLogger } from \"@/core/logger\";\nimport { useTrackedPrice } from \"./common/useTrackedPrice\";\nimport { useConstructGasParams } from \"./common/useConstructGasParams\";\n\nexport type UseMarketFlowInput = {\n marketPrice?: OptimalRate;\n};\n\nexport type SubmitSwapResult = {\n tradeFlowType: \"marketSwap\";\n approve: SubmitTxResult;\n swap: SubmitTxResult;\n marketPrice: OptimalRate;\n account: Address;\n};\n\ntype OnTxSent = (txSent: TxSentObject) => void;\n// @TODO instead add global onTxSent subscription to\n// MutationCache({onSuccess: txHash}) when sent\n// and QueryCache({onSuccess: txReceipt}) when mined,\n// maybe??\ntype RunMarketOptions = {\n onTxSent?: OnTxSent;\n};\n\nexport type UseMarketFlowResult = {\n chainId: SupportedChainId;\n runMarketSwapFlow: (options?: RunMarketOptions) => Promise<SubmitSwapResult>;\n reset: () => void; // reset on Error to retry\n cancelFlow: () => void; // cancel flow\n retryFlow: (options?: RunMarketOptions) => Promise<SubmitSwapResult>; // reset and retry flow\n approval: ApprovalFlowResult;\n signPermit: SignPermitFlowResult;\n buildTxParams: {\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n swap: {\n txHash?: Hash;\n receipt?: TransactionReceipt;\n isConfirmingTX: boolean;\n isConfirmingTxError: boolean;\n isTxSent: boolean;\n isTxPending: boolean;\n isTxMined: boolean;\n isTxAwaitingError: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n result?: SubmitSwapResult;\n usedPrice?: OptimalRate;\n};\n\nconst MARKET_SWAP_MUTATION_KEY = \"runMarketSwapFlow\";\n\nexport function useMarketFlow({\n marketPrice,\n}: UseMarketFlowInput): UseMarketFlowResult {\n const logger = useLogger(\"MarketFlow\");\n const chainId = useChainId();\n const { resolvedSlippage } = useSlippage();\n const swapSide = useSwapSide();\n\n const trackedPrice = useTrackedPrice({\n price: marketPrice,\n slippage: resolvedSlippage,\n side: swapSide,\n });\n\n /* Inside useApproveOrPermit:\n 1. Get allowance for tokenFrom \n 2.1. submit Approve tx if necessary \n\n 2.2. sign Permit1 \n\n 3. await Approve tx (if not using Permit) \n */\n const usingPrice = trackedPrice.get.usingPrice();\n const { approval, signPermit, approveTxMut, signPermitMut } =\n useApproveOrPermit({\n srcToken: usingPrice?.srcToken ?? marketPrice?.srcToken,\n // if we already approved some amount, save it in approval and signPermit objects\n srcAmount: trackedPrice.get.approvedAmount() ?? marketPrice?.srcAmount,\n spenderContractType: \"AugustusSwapper\",\n // marketPrice is the preferred source of truth\n swapSide: usingPrice?.side ?? swapSide,\n });\n\n /* 4. Build Swap tx */\n const buildTxMut = useBuildTx({\n chainId,\n mutationOptions: {\n onSuccess: () => {\n logger.log(\"Build tx success\");\n },\n onError: (error) => {\n logger.error(\"Build tx error\", error);\n },\n },\n });\n\n const buildTxParams: UseMarketFlowResult[\"buildTxParams\"] = {\n isPending: buildTxMut.isPending,\n isError: buildTxMut.isError,\n isSuccess: buildTxMut.isSuccess,\n error: buildTxMut.error,\n };\n\n /* 5. submit Swap tx */\n\n const sendSwapTxMut = useSendMarketSwapTx({\n onSuccess: () => {\n logger.log(\"Swap tx success\");\n },\n onError: (error) => {\n logger.error(\"Swap tx error\", error);\n },\n });\n\n /* 6. await Swap tx */\n const swapTxMined = useAwaitTx({\n hash: sendSwapTxMut.txHash,\n chainId,\n });\n\n const swap: UseMarketFlowResult[\"swap\"] = {\n txHash: sendSwapTxMut.txHash,\n receipt: swapTxMined.data,\n /* tx sending */\n isConfirmingTX: sendSwapTxMut.isPending,\n isConfirmingTxError: sendSwapTxMut.isError,\n isTxSent: sendSwapTxMut.isSuccess,\n /* tx awaiting */\n isTxPending: swapTxMined.isLoading,\n isTxMined: swapTxMined.isSuccess,\n isTxAwaitingError: swapTxMined.isError,\n /* combined */\n isPending: sendSwapTxMut.isPending || swapTxMined.isLoading,\n isSuccess: swapTxMined.isSuccess, // final success\n isError: sendSwapTxMut.isError || swapTxMined.isError,\n error: sendSwapTxMut.error || swapTxMined.error,\n };\n\n const { address: account } = useAccount();\n\n const ensureTxReceipt = useEnsureTxReceipt();\n\n // allows to abort (cancel) currently running flow,\n const currentAbortControllerRef = useRef<AbortController | null>(null);\n\n const cancelFlow = () => {\n currentAbortControllerRef.current?.abort(new UserCancelledError());\n currentAbortControllerRef.current = null;\n };\n\n const receiverAddress = useReceiverAddressValue();\n\n const { markNonceAsUsed, clearNonce } = useMarkPermit1Or2NonceAsUsed({\n chainId,\n });\n\n const { constructGasParams } = useConstructGasParams();\n\n const partner = useWidgetConfig().partner;\n\n const submitSwapTx: UseMarketFlowResult[\"runMarketSwapFlow\"] = async ({\n onTxSent,\n } = {}) => {\n // reset all mutations except the current one,\n // otherwise we'll have previous data (txs) as mutation results\n approveTxMut.reset();\n signPermitMut.reset();\n buildTxMut.reset();\n sendSwapTxMut.reset();\n\n const abortController = new AbortController();\n currentAbortControllerRef.current = abortController;\n\n const signal = abortController.signal;\n\n let signedPermitResult: SignedPermitResult | undefined;\n\n let approveTxHash: Hash | undefined;\n let approveTxReceipt: TransactionReceipt | undefined;\n\n // at this point this is the syncronously available price\n const allowanceToSet = approval.allowanceToSet;\n // we use this allowance as a max allowance we will accept new prices for\n\n if (approval.needsApproval) {\n // need allowance\n if (!signPermit.isPermitSupported || !signPermit.isPermitReadyToSign) {\n // freeze allowanceToSet\n trackedPrice.set.approvedAmount(allowanceToSet);\n\n // Token doesn't support Permit\n // make an Approval tx\n approveTxHash = await approveTxMut.approveAsync({\n allowanceData: {\n allowanceToSet,\n },\n });\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n const approveTxReceiptPromise = ensureTxReceipt({\n hash: approveTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\"onReplaced:approveTx\", approveTxHash, data);\n },\n });\n\n if (onTxSent) {\n onTxSent({\n chainId,\n txHash: approveTxHash,\n actionType: \"approve\",\n receiptPromise: approveTxReceiptPromise,\n });\n }\n\n approveTxReceipt = await approveTxReceiptPromise;\n\n logger.log(\"~ approveTx ~ receipt:\", approveTxReceipt);\n // @TODO check if we need to see if receipt.status === \"reverted\" and throw,\n // or if waitForTransactionReceipt already throws on such receipts\n } else {\n // freeze allowanceToSet\n trackedPrice.set.approvedAmount(allowanceToSet);\n\n // sign Permit\n signedPermitResult = await signPermitMut.signPermitAsync({\n value: allowanceToSet,\n });\n }\n }\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n assert(account, \"Account is not connected\");\n // as long as we had set approvedAmountRef, we will only get new prices that satisfy the allowance\n let marketPriceToUse = trackedPrice.get.usingPrice();\n // usingPriceRef.current can be null depending on reset() timing (e.g. inside retry)\n if (!marketPriceToUse) {\n marketPriceToUse = marketPrice || null;\n trackedPrice.set.usingPrice(marketPriceToUse);\n }\n assert(marketPriceToUse, \"Market price is not available\");\n\n const amountsAfterSlippage = applySlippage(\n {\n srcAmount: marketPriceToUse.srcAmount,\n destAmount: marketPriceToUse.destAmount,\n },\n resolvedSlippage,\n marketPriceToUse.side\n );\n\n // freeze final price to avoid any changes to displayed and result amounts\n trackedPrice.set.finalPrice(marketPriceToUse);\n\n // fresh gas params\n const gasParams = constructGasParams();\n\n const txParams = await buildTxMut.mutateAsync({\n swapTxInput: {\n userAddress: account,\n receiver: receiverAddress,\n srcToken: marketPriceToUse.srcToken,\n destToken: marketPriceToUse.destToken,\n srcDecimals: marketPriceToUse.srcDecimals,\n destDecimals: marketPriceToUse.destDecimals,\n\n partner,\n /* @TODO fill in when and if available\n referrer: \"\",\n partnerAddress: \"\",\n partnerFeeBps: 0, \n takeSurplus: false,*/\n permit: signedPermitResult?.permitEncodedArgs, // just signed Permit signature\n\n priceRoute: marketPriceToUse,\n ...amountsAfterSlippage,\n },\n\n swapTxOptions:\n // ignoreChecks: true,\n // ignoreGasEstimate: true,\n // ignoreAllowance: true,\n // onlyParams: true,\n // @TODO turn on ignore options when necessary (for Safe),\n gasParams,\n });\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n const swapTxHash = await sendSwapTxMut.sendTransactionAsync(txParams);\n\n // no use aborting past this point, tx is already sent,\n // but we may want to connect this late abortion to tx cancellation, in the future\n\n // tx is sent, consider Token nonce as used\n if (signedPermitResult) {\n markNonceAsUsed(signedPermitResult.signedPermitData);\n }\n\n try {\n const swapTxReceiptPromise = ensureTxReceipt({\n hash: swapTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\"onReplaced:swapTx\", swapTxHash, data);\n },\n });\n if (onTxSent) {\n onTxSent({\n chainId,\n txHash: swapTxHash,\n actionType: \"swap\",\n receiptPromise: swapTxReceiptPromise,\n });\n }\n\n const swapTxReceipt = await swapTxReceiptPromise;\n logger.log(\"~ swapTx ~ receipt:\", swapTxReceipt);\n // @TODO check if we need to see if receipt.status === \"reverted\" and trhow,\n // or if waitForTransactionReceipt already throws on such receipts\n\n // @TODO try catch, handle errors, refetch allowance and balance in finally\n\n return {\n tradeFlowType: \"marketSwap\",\n approve: {\n txHash: approveTxHash,\n receipt: approveTxReceipt,\n },\n swap: {\n txHash: swapTxHash,\n receipt: swapTxReceipt,\n },\n marketPrice: marketPriceToUse,\n // @TODO add whatever else may be relevant\n account,\n };\n } catch (error) {\n // Market swap failed, we can't be sure if nonce can be reused or it was incremented in a different tx\n // or even Order in the meantime\n if (signedPermitResult) {\n clearNonce(signedPermitResult.signedPermitData);\n }\n throw error;\n }\n };\n\n const invalidateTokenData = useInvalidateTokenDataQuery();\n\n const marketSwapMut = useMutation({\n mutationFn: submitSwapTx,\n mutationKey: [MARKET_SWAP_MUTATION_KEY],\n onSuccess: (data) => {\n logger.log(\"Swap tx success\", data);\n },\n onError: (error) => {\n logger.error(\"Swap tx error\", error);\n },\n onSettled: () => {\n logger.log(\"Swap tx settled, invalidating balances and allowances\");\n invalidateTokenData({ nonces: true });\n trackedPrice.resetTrackedPrice();\n },\n });\n\n const runMarketSwapFlow = marketSwapMut.mutateAsync;\n\n const reset = () => {\n trackedPrice.resetTrackedPrice();\n approveTxMut.reset();\n signPermitMut.reset();\n buildTxMut.reset();\n sendSwapTxMut.reset();\n marketSwapMut.reset();\n };\n\n const retryFlow = (options?: RunMarketOptions): Promise<SubmitSwapResult> => {\n reset();\n return runMarketSwapFlow(options);\n };\n\n // finalPrice if we reached that point, or usable price (based on allowance given)\n const usedPrice =\n trackedPrice.get.finalPrice() ||\n trackedPrice.get.usingPrice() ||\n marketPrice;\n\n /* 7. return result */\n return {\n chainId,\n runMarketSwapFlow,\n reset,\n cancelFlow,\n retryFlow,\n approval,\n signPermit,\n buildTxParams,\n swap,\n // marketSwapMut includes all steps' queries and mutations and returns more precise errors (including cancellation)\n isPending: marketSwapMut.isPending,\n isSuccess: marketSwapMut.isSuccess,\n isError: marketSwapMut.isError,\n error: marketSwapMut.error,\n result: marketSwapMut.data,\n usedPrice,\n };\n}\n"],"names":["MARKET_SWAP_MUTATION_KEY","useMarketFlow","t0","$","_c","marketPrice","logger","useLogger","chainId","useChainId","resolvedSlippage","useSlippage","swapSide","useSwapSide","t1","price","slippage","side","trackedPrice","useTrackedPrice","t2","get","usingPrice","t3","srcToken","t4","srcAmount","approvedAmount","t5","t6","spenderContractType","approval","signPermit","approveTxMut","signPermitMut","useApproveOrPermit","t7","onSuccess","log","onError","error","t8","mutationOptions","buildTxMut","useBuildTx","t9","isError","isPending","isSuccess","buildTxParams","t10","error_0","sendSwapTxMut","useSendMarketSwapTx","t11","txHash","hash","swapTxMined","useAwaitTx","t12","isLoading","t13","t14","t15","data","receipt","isConfirmingTX","isConfirmingTxError","isTxSent","isTxPending","isTxMined","isTxAwaitingError","swap","address","account","useAccount","ensureTxReceipt","useEnsureTxReceipt","currentAbortControllerRef","useRef","t16","Symbol","for","current","abort","UserCancelledError","cancelFlow","receiverAddress","useReceiverAddressValue","t17","markNonceAsUsed","clearNonce","useMarkPermit1Or2NonceAsUsed","constructGasParams","useConstructGasParams","partner","useWidgetConfig","t18","set","t19","onTxSent","undefined","reset","abortController","AbortController","signal","signedPermitResult","approveTxHash","approveTxReceipt","allowanceToSet","needsApproval","isPermitSupported","isPermitReadyToSign","approveAsync","allowanceData","throwIfAborted","approveTxReceiptPromise","onReplaced","actionType","receiptPromise","signPermitAsync","value","assert","marketPriceToUse","amountsAfterSlippage","applySlippage","destAmount","finalPrice","gasParams","txParams","mutateAsync","swapTxInput","userAddress","receiver","destToken","srcDecimals","destDecimals","permit","permitEncodedArgs","priceRoute","swapTxOptions","swapTxHash","sendTransactionAsync","signedPermitData","swapTxReceiptPromise","data_0","swapTxReceipt","tradeFlowType","approve","t20","submitSwapTx","invalidateTokenData","useInvalidateTokenDataQuery","t21","data_1","error_2","t22","nonces","resetTrackedPrice","t23","mutationFn","mutationKey","onSettled","marketSwapMut","useMutation","runMarketSwapFlow","t24","t25","options","retryFlow","t26","usedPrice","t27","result"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { d as distExports } from '../../../_virtual/index.js';
|
|
2
2
|
import { useMarketFlow } from './useMarketFlow.js';
|
|
3
3
|
import { constructTxLinkForChain } from '../../../lib/utils/explorer.js';
|
|
4
|
-
import { useLogger } from '../../../
|
|
4
|
+
import { useLogger } from '../../../core/logger.js';
|
|
5
5
|
import { isUserCancelledError } from './common/errors.js';
|
|
6
6
|
|
|
7
7
|
function useMarketSwapStep(options) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMarketSwapStep.js","sources":["../../../../src/hooks/swap/tradeFlow/useMarketSwapStep.ts"],"sourcesContent":["import type {\n MarketSwapStep,\n MarketSwapStepKey,\n} from \"@/components/widget/TradeOverview/steps\";\nimport {\n useMarketFlow,\n type UseMarketFlowInput,\n type UseMarketFlowResult,\n type SubmitSwapResult,\n} from \"./useMarketFlow\";\nimport { constructTxLinkForChain } from \"@/lib/utils/explorer\";\nimport { useLogger } from \"@/widget/logger\";\nimport { isUserCancelledError } from \"./common/errors\";\n\ntype UseMarketSwapStepResult = {\n startMarketSwap: UseMarketFlowResult[\"runMarketSwapFlow\"];\n // @TODO check if resetting is necessary on error, maybe not if submit on click works as a reset\n reset: UseMarketFlowResult[\"reset\"];\n cancelFlow: UseMarketFlowResult[\"cancelFlow\"];\n retryFlow: UseMarketFlowResult[\"retryFlow\"];\n isCancellable: boolean;\n step?: MarketSwapStep;\n explorerLink?: string;\n error: Error | null;\n erroredStep?: MarketSwapStepKey;\n result?: SubmitSwapResult;\n usedPrice: UseMarketFlowResult[\"usedPrice\"];\n};\n\nexport function useMarketSwapStep(\n options: UseMarketFlowInput\n): UseMarketSwapStepResult {\n const logger = useLogger(\"MarketSwapStep\");\n const marketFlow = useMarketFlow(options);\n\n const startMarketSwap = marketFlow.runMarketSwapFlow;\n const reset = marketFlow.reset;\n const cancelFlow = marketFlow.cancelFlow;\n const retryFlow = marketFlow.retryFlow;\n\n let step: MarketSwapStep | undefined;\n\n const permitSigningHappeningOrNeverHappened =\n // isPending starts as false,\n // so we can use !isPermitSigned to detect if Permit signing is happening or never happened\n marketFlow.signPermit.isPending || !marketFlow.signPermit.isPermitSigned;\n\n const approvalHappeningOrNeverHappened =\n // isPending starts as false,\n // needsApproval && !isSuccess allows to detect approve step right away even then\n marketFlow.approval.isPending || !marketFlow.approval.isSuccess;\n\n const willUsePermit =\n marketFlow.approval.needsApproval &&\n marketFlow.signPermit.isPermitSupported &&\n marketFlow.signPermit.isPermitReadyToSign;\n\n const permitOrApprovalHappeningOrNeverHappened = willUsePermit\n ? permitSigningHappeningOrNeverHappened\n : approvalHappeningOrNeverHappened;\n\n if (\n marketFlow.approval.needsApproval &&\n permitOrApprovalHappeningOrNeverHappened\n ) {\n step = { key: \"signature\", subStep: \"approval-signature\" };\n } else if (\n marketFlow.buildTxParams.isPending ||\n marketFlow.swap.isConfirmingTX\n ) {\n const permitOrApprovalHappened = !!(\n marketFlow.approval.txHash || marketFlow.signPermit.signature\n );\n\n step = {\n key: \"signature\",\n subStep: permitOrApprovalHappened\n ? \"order-signature\"\n : \"standalone-order-signature\",\n };\n } else if (marketFlow.swap.isTxPending) {\n step = { key: \"swap-tx-execution\" };\n } else if (marketFlow.isPending) {\n // if something is between steps but not clear step,\n // then assume we're at the standalone signature sub-step\n step = { key: \"signature\", subStep: \"standalone-order-signature\" };\n }\n\n const approvalIsStarted =\n step?.key === \"signature\" &&\n step.subStep === \"approval-signature\" &&\n marketFlow.approval.isTxPending;\n\n const inSwapTxConfirmation =\n step?.key === \"signature\" &&\n (step.subStep === \"order-signature\" ||\n step.subStep === \"standalone-order-signature\");\n\n const notYetSwapTxSent =\n step?.key === \"swap-tx-execution\" && !marketFlow.swap.isTxSent;\n\n // final tx is not yet sent, there's something to cancel;\n // but some steps are already started so we can't simply dismiss\n const isCancellable =\n approvalIsStarted || inSwapTxConfirmation || notYetSwapTxSent;\n\n const txHash = marketFlow.swap.txHash;\n const explorerLink = txHash\n ? constructTxLinkForChain({ chainId: marketFlow.chainId, txHash })\n : undefined;\n\n logger.once.log(\"step\", step, marketFlow, {\n isCancellable,\n explorerLink,\n txHash,\n });\n\n // intentional cancellation is handled separately\n const error = isUserCancelledError(marketFlow.error)\n ? null\n : marketFlow.error;\n\n let erroredStep: MarketSwapStepKey | undefined;\n\n if (marketFlow.isError) {\n if (\n marketFlow.approval.isError ||\n marketFlow.signPermit.isError ||\n marketFlow.buildTxParams.isError ||\n marketFlow.swap.isConfirmingTxError\n ) {\n erroredStep = \"signature\";\n } else if (marketFlow.swap.isTxAwaitingError) {\n erroredStep = \"swap-tx-execution\";\n }\n }\n\n return {\n startMarketSwap,\n reset,\n cancelFlow,\n retryFlow,\n isCancellable,\n step,\n explorerLink,\n error,\n erroredStep,\n result: marketFlow.result,\n usedPrice: marketFlow.usedPrice,\n };\n}\n"],"names":["useMarketSwapStep","options","$","_c","logger","useLogger","marketFlow","useMarketFlow","startMarketSwap","runMarketSwapFlow","reset","cancelFlow","retryFlow","explorerLink","isCancellable","step","once","permitSigningHappeningOrNeverHappened","signPermit","isPending","isPermitSigned","approvalHappeningOrNeverHappened","approval","isSuccess","willUsePermit","needsApproval","isPermitSupported","isPermitReadyToSign","permitOrApprovalHappeningOrNeverHappened","buildTxParams","swap","isConfirmingTX","permitOrApprovalHappened","txHash","signature","isTxPending","approvalIsStarted","key","subStep","inSwapTxConfirmation","notYetSwapTxSent","isTxSent","constructTxLinkForChain","chainId","undefined","log","t0","error","isUserCancelledError","erroredStep","isError","isConfirmingTxError","isTxAwaitingError","t1","result","usedPrice"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useMarketSwapStep.js","sources":["../../../../src/hooks/swap/tradeFlow/useMarketSwapStep.ts"],"sourcesContent":["import type {\n MarketSwapStep,\n MarketSwapStepKey,\n} from \"@/components/widget/TradeOverview/steps\";\nimport {\n useMarketFlow,\n type UseMarketFlowInput,\n type UseMarketFlowResult,\n type SubmitSwapResult,\n} from \"./useMarketFlow\";\nimport { constructTxLinkForChain } from \"@/lib/utils/explorer\";\nimport { useLogger } from \"@/core/logger\";\nimport { isUserCancelledError } from \"./common/errors\";\n\ntype UseMarketSwapStepResult = {\n startMarketSwap: UseMarketFlowResult[\"runMarketSwapFlow\"];\n // @TODO check if resetting is necessary on error, maybe not if submit on click works as a reset\n reset: UseMarketFlowResult[\"reset\"];\n cancelFlow: UseMarketFlowResult[\"cancelFlow\"];\n retryFlow: UseMarketFlowResult[\"retryFlow\"];\n isCancellable: boolean;\n step?: MarketSwapStep;\n explorerLink?: string;\n error: Error | null;\n erroredStep?: MarketSwapStepKey;\n result?: SubmitSwapResult;\n usedPrice: UseMarketFlowResult[\"usedPrice\"];\n};\n\nexport function useMarketSwapStep(\n options: UseMarketFlowInput\n): UseMarketSwapStepResult {\n const logger = useLogger(\"MarketSwapStep\");\n const marketFlow = useMarketFlow(options);\n\n const startMarketSwap = marketFlow.runMarketSwapFlow;\n const reset = marketFlow.reset;\n const cancelFlow = marketFlow.cancelFlow;\n const retryFlow = marketFlow.retryFlow;\n\n let step: MarketSwapStep | undefined;\n\n const permitSigningHappeningOrNeverHappened =\n // isPending starts as false,\n // so we can use !isPermitSigned to detect if Permit signing is happening or never happened\n marketFlow.signPermit.isPending || !marketFlow.signPermit.isPermitSigned;\n\n const approvalHappeningOrNeverHappened =\n // isPending starts as false,\n // needsApproval && !isSuccess allows to detect approve step right away even then\n marketFlow.approval.isPending || !marketFlow.approval.isSuccess;\n\n const willUsePermit =\n marketFlow.approval.needsApproval &&\n marketFlow.signPermit.isPermitSupported &&\n marketFlow.signPermit.isPermitReadyToSign;\n\n const permitOrApprovalHappeningOrNeverHappened = willUsePermit\n ? permitSigningHappeningOrNeverHappened\n : approvalHappeningOrNeverHappened;\n\n if (\n marketFlow.approval.needsApproval &&\n permitOrApprovalHappeningOrNeverHappened\n ) {\n step = { key: \"signature\", subStep: \"approval-signature\" };\n } else if (\n marketFlow.buildTxParams.isPending ||\n marketFlow.swap.isConfirmingTX\n ) {\n const permitOrApprovalHappened = !!(\n marketFlow.approval.txHash || marketFlow.signPermit.signature\n );\n\n step = {\n key: \"signature\",\n subStep: permitOrApprovalHappened\n ? \"order-signature\"\n : \"standalone-order-signature\",\n };\n } else if (marketFlow.swap.isTxPending) {\n step = { key: \"swap-tx-execution\" };\n } else if (marketFlow.isPending) {\n // if something is between steps but not clear step,\n // then assume we're at the standalone signature sub-step\n step = { key: \"signature\", subStep: \"standalone-order-signature\" };\n }\n\n const approvalIsStarted =\n step?.key === \"signature\" &&\n step.subStep === \"approval-signature\" &&\n marketFlow.approval.isTxPending;\n\n const inSwapTxConfirmation =\n step?.key === \"signature\" &&\n (step.subStep === \"order-signature\" ||\n step.subStep === \"standalone-order-signature\");\n\n const notYetSwapTxSent =\n step?.key === \"swap-tx-execution\" && !marketFlow.swap.isTxSent;\n\n // final tx is not yet sent, there's something to cancel;\n // but some steps are already started so we can't simply dismiss\n const isCancellable =\n approvalIsStarted || inSwapTxConfirmation || notYetSwapTxSent;\n\n const txHash = marketFlow.swap.txHash;\n const explorerLink = txHash\n ? constructTxLinkForChain({ chainId: marketFlow.chainId, txHash })\n : undefined;\n\n logger.once.log(\"step\", step, marketFlow, {\n isCancellable,\n explorerLink,\n txHash,\n });\n\n // intentional cancellation is handled separately\n const error = isUserCancelledError(marketFlow.error)\n ? null\n : marketFlow.error;\n\n let erroredStep: MarketSwapStepKey | undefined;\n\n if (marketFlow.isError) {\n if (\n marketFlow.approval.isError ||\n marketFlow.signPermit.isError ||\n marketFlow.buildTxParams.isError ||\n marketFlow.swap.isConfirmingTxError\n ) {\n erroredStep = \"signature\";\n } else if (marketFlow.swap.isTxAwaitingError) {\n erroredStep = \"swap-tx-execution\";\n }\n }\n\n return {\n startMarketSwap,\n reset,\n cancelFlow,\n retryFlow,\n isCancellable,\n step,\n explorerLink,\n error,\n erroredStep,\n result: marketFlow.result,\n usedPrice: marketFlow.usedPrice,\n };\n}\n"],"names":["useMarketSwapStep","options","$","_c","logger","useLogger","marketFlow","useMarketFlow","startMarketSwap","runMarketSwapFlow","reset","cancelFlow","retryFlow","explorerLink","isCancellable","step","once","permitSigningHappeningOrNeverHappened","signPermit","isPending","isPermitSigned","approvalHappeningOrNeverHappened","approval","isSuccess","willUsePermit","needsApproval","isPermitSupported","isPermitReadyToSign","permitOrApprovalHappeningOrNeverHappened","buildTxParams","swap","isConfirmingTX","permitOrApprovalHappened","txHash","signature","isTxPending","approvalIsStarted","key","subStep","inSwapTxConfirmation","notYetSwapTxSent","isTxSent","constructTxLinkForChain","chainId","undefined","log","t0","error","isUserCancelledError","erroredStep","isError","isConfirmingTxError","isTxAwaitingError","t1","result","usedPrice"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useIsInsufficientTokenBalance.d.ts","sourceRoot":"","sources":["../../../../src/hooks/tokens/balances/useIsInsufficientTokenBalance.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"useIsInsufficientTokenBalance.d.ts","sourceRoot":"","sources":["../../../../src/hooks/tokens/balances/useIsInsufficientTokenBalance.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AASlD,eAAO,MAAM,6BAA6B,GAAI,gCAG3C;IACD,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,YAgBA,CAAC;AAEF,eAAO,MAAM,iCAAiC,eAiB7C,CAAC"}
|
|
@@ -2,11 +2,12 @@ import { d as distExports } from '../../../_virtual/index.js';
|
|
|
2
2
|
import { useAccount } from 'wagmi';
|
|
3
3
|
import { useTokenBalance } from './useTokenBalance.js';
|
|
4
4
|
import { useAtomValue } from 'jotai';
|
|
5
|
-
import { payInputAmountWeiAtom } from '../../../
|
|
6
|
-
import { useTokenFromAtom } from '../../../
|
|
5
|
+
import { payInputAmountWeiAtom } from '../../../core/inputs/state/inputAmountAtom.js';
|
|
6
|
+
import { useTokenFromAtom } from '../../../core/inputs/state/selectedTokenAtom.js';
|
|
7
7
|
import { amountAfterSlippage } from '../../../lib/utils/slippage.js';
|
|
8
8
|
import { useSwapSide } from '../../../components/widget/SwapModeSwitcher/state/swapSideAtom.js';
|
|
9
9
|
import { useSlippage } from '../../useSlippage.js';
|
|
10
|
+
import { MEDIUM_STALE_TIME_FOR_REACTIVENESS } from '../../../lib/constants/time.js';
|
|
10
11
|
|
|
11
12
|
const useIsInsufficientTokenBalance = ({
|
|
12
13
|
token,
|
|
@@ -18,7 +19,10 @@ const useIsInsufficientTokenBalance = ({
|
|
|
18
19
|
const {
|
|
19
20
|
balance
|
|
20
21
|
} = useTokenBalance({
|
|
21
|
-
token
|
|
22
|
+
token,
|
|
23
|
+
queryOptions: {
|
|
24
|
+
refetchInterval: MEDIUM_STALE_TIME_FOR_REACTIVENESS
|
|
25
|
+
}
|
|
22
26
|
});
|
|
23
27
|
if (requiredBalanceWei === void 0 || balance === void 0 || !token || !account) return false;
|
|
24
28
|
return balance === 0n || balance < BigInt(requiredBalanceWei);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useIsInsufficientTokenBalance.js","sources":["../../../../src/hooks/tokens/balances/useIsInsufficientTokenBalance.ts"],"sourcesContent":["import { useAccount } from \"wagmi\";\nimport { useTokenBalance } from \"./useTokenBalance\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { useAtomValue } from \"jotai\";\nimport { payInputAmountWeiAtom } from \"@/
|
|
1
|
+
{"version":3,"file":"useIsInsufficientTokenBalance.js","sources":["../../../../src/hooks/tokens/balances/useIsInsufficientTokenBalance.ts"],"sourcesContent":["import { useAccount } from \"wagmi\";\nimport { useTokenBalance } from \"./useTokenBalance\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { useAtomValue } from \"jotai\";\nimport { payInputAmountWeiAtom } from \"@/core/inputs/state/inputAmountAtom\";\nimport { useTokenFromAtom } from \"@/core/inputs/state/selectedTokenAtom\";\nimport { amountAfterSlippage } from \"@/lib/utils/slippage\";\nimport { useSwapSide } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport { useSlippage } from \"@/hooks/useSlippage\";\nimport { MEDIUM_STALE_TIME_FOR_REACTIVENESS } from \"@/lib/constants/time\";\n\nexport const useIsInsufficientTokenBalance = ({\n token,\n requiredBalanceWei,\n}: {\n token?: Token;\n requiredBalanceWei?: string;\n}) => {\n const { address: account } = useAccount();\n const { balance } = useTokenBalance({\n token,\n queryOptions: { refetchInterval: MEDIUM_STALE_TIME_FOR_REACTIVENESS },\n });\n\n if (\n requiredBalanceWei === undefined ||\n balance === undefined ||\n !token ||\n !account\n )\n return false;\n\n return balance === 0n || balance < BigInt(requiredBalanceWei);\n};\n\nexport const useIsTokenFromInsufficientBalance = () => {\n const tokenFrom = useTokenFromAtom();\n const payAmountWei = useAtomValue(payInputAmountWeiAtom);\n const swapSide = useSwapSide();\n const { resolvedSlippage } = useSlippage();\n\n const requiredBalanceAfterPossibleSlippage =\n swapSide === \"BUY\"\n ? // payAmount + slippage for BUY\n amountAfterSlippage(payAmountWei, resolvedSlippage, swapSide).toFixed(0)\n : // raw payAmount for SELL\n payAmountWei;\n\n return useIsInsufficientTokenBalance({\n token: tokenFrom,\n requiredBalanceWei: requiredBalanceAfterPossibleSlippage,\n });\n};\n"],"names":["useIsInsufficientTokenBalance","token","requiredBalanceWei","address","account","useAccount","balance","useTokenBalance","queryOptions","refetchInterval","MEDIUM_STALE_TIME_FOR_REACTIVENESS","undefined","BigInt","useIsTokenFromInsufficientBalance","$","_c","tokenFrom","useTokenFromAtom","payAmountWei","useAtomValue","payInputAmountWeiAtom","swapSide","useSwapSide","resolvedSlippage","useSlippage","t0","amountAfterSlippage","toFixed","requiredBalanceAfterPossibleSlippage","t1"],"mappings":";;;;;;;;;;;AAWO,MAAMA,gCAAgCA,CAAC;AAAA,EAC5CC,KAAAA;AAAAA,EACAC;AAIF,CAAA,KAAM;AACJ,EAAA,MAAM;AAAA,IAAEC,OAAAA,EAASC;AAAAA,MAAYC,UAAAA,EAAW;AACxC,EAAA,MAAM;AAAA,IAAEC;AAAAA,MAAYC,eAAAA,CAAgB;AAAA,IAClCN,KAAAA;AAAAA,IACAO,YAAAA,EAAc;AAAA,MAAEC,eAAAA,EAAiBC;AAAAA;AAAmC,GACrE,CAAA;AAED,EAAA,IACER,kBAAAA,KAAuBS,UACvBL,OAAAA,KAAYK,MAAAA,IACZ,CAACV,KAAAA,IACD,CAACG,SAED,OAAO,KAAA;AAET,EAAA,OAAOE,OAAAA,KAAY,EAAA,IAAMA,OAAAA,GAAUM,MAAAA,CAAOV,kBAAkB,CAAA;AAC9D;AAEO,MAAMW,oCAAoCA,MAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAC/C,EAAA,MAAAC,YAAkBC,gBAAAA,EAAiB;AACnC,EAAA,MAAAC,YAAAA,GAAqBC,aAAAC,qBAAkC,CAAA;AACvD,EAAA,MAAAC,WAAiBC,WAAAA,EAAY;AAC7B,EAAA,MAAA;AAAA,IAAAC;AAAAA,MAA6BC,WAAAA,EAAY;AAAE,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAX,CAAAA,CAAA,CAAA,CAAA,KAAAI,YAAAA,IAAAJ,CAAAA,QAAAS,gBAAAA,IAAAT,CAAAA,CAAA,CAAA,CAAA,KAAAO,QAAAA,EAAA;AAGzCI,IAAAA,EAAAA,GAAAJ,QAAAA,KAAa,QAETK,mBAAAA,CAAoBR,YAAAA,EAAcK,kBAAkBF,QAAQ,CAAA,CAACM,OAAAA,CAAA,CAAU,CAAA,GAEvET,YAAAA;AAAYJ,IAAAA,CAAAA,MAAAI,YAAAA;AAAAJ,IAAAA,CAAAA,MAAAS,gBAAAA;AAAAT,IAAAA,CAAAA,MAAAO,QAAAA;AAAAP,IAAAA,CAAAA,MAAAW,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAX,EAAA,CAAA,CAAA;AAAA;AALlB,EAAA,MAAAc,oCAAAA,GACEH,EAAAA;AAIiB,EAAA,IAAAI,EAAAA;AAAA,EAAA,IAAAf,EAAA,CAAA,CAAA,KAAAc,wCAAAd,CAAAA,QAAAE,SAAAA,EAAA;AAEkBa,IAAAA,EAAAA,GAAA;AAAA,MAAA5B,KAAAA,EAC5Be,SAAAA;AAAAA,MAASd,kBAAAA,EACI0B;AAAAA,KAAoC;AACzDd,IAAAA,CAAAA,MAAAc,oCAAAA;AAAAd,IAAAA,CAAAA,MAAAE,SAAAA;AAAAF,IAAAA,CAAAA,MAAAe,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAf,EAAA,CAAA,CAAA;AAAA;AAAA,EAAA,OAHMd,8BAA8B6B,EAGpC,CAAA;AAAC;;;;"}
|
|
@@ -3,7 +3,7 @@ import { useQueryClient } from '@tanstack/react-query';
|
|
|
3
3
|
import { waitForTransactionReceipt } from '@wagmi/core';
|
|
4
4
|
import { useConfig, useWaitForTransactionReceipt } from 'wagmi';
|
|
5
5
|
import { waitForTransactionReceiptQueryKey } from 'wagmi/query';
|
|
6
|
-
import { useLogger } from '../../../
|
|
6
|
+
import { useLogger } from '../../../core/logger.js';
|
|
7
7
|
|
|
8
8
|
function useAwaitTx(t0) {
|
|
9
9
|
const $ = distExports.c(9);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAwaitTx.js","sources":["../../../../src/hooks/txs/queries/useAwaitTx.ts"],"sourcesContent":["import type { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport type { ReplacementReturnType, TransactionReceipt } from \"viem\";\nimport { waitForTransactionReceipt } from \"@wagmi/core\";\nimport {\n useConfig,\n useWaitForTransactionReceipt,\n type UseWaitForTransactionReceiptParameters,\n type UseWaitForTransactionReceiptReturnType,\n} from \"wagmi\";\nimport {\n waitForTransactionReceiptQueryKey,\n type WaitForTransactionReceiptData,\n} from \"wagmi/query\";\nimport { useLogger } from \"@/
|
|
1
|
+
{"version":3,"file":"useAwaitTx.js","sources":["../../../../src/hooks/txs/queries/useAwaitTx.ts"],"sourcesContent":["import type { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport type { ReplacementReturnType, TransactionReceipt } from \"viem\";\nimport { waitForTransactionReceipt } from \"@wagmi/core\";\nimport {\n useConfig,\n useWaitForTransactionReceipt,\n type UseWaitForTransactionReceiptParameters,\n type UseWaitForTransactionReceiptReturnType,\n} from \"wagmi\";\nimport {\n waitForTransactionReceiptQueryKey,\n type WaitForTransactionReceiptData,\n} from \"wagmi/query\";\nimport { useLogger } from \"@/core/logger\";\n\nexport type UseAwaitTxParameters<Select = DefaultTxReceiptSelect> = {\n chainId: SupportedChainId;\n confirmations?: number;\n hash?: `0x${string}`;\n query?: UseWaitForTransactionReceiptParameters<\n typeof wagmiConfig,\n SupportedChainId,\n Select\n >[\"query\"];\n};\n\ntype OnReplacedCb = (data: ReplacementReturnType) => void;\n\nexport type DefaultTxReceiptSelect = WaitForTransactionReceiptData<\n typeof wagmiConfig,\n SupportedChainId\n>;\n\nexport type UseAwaitTxReturnType<Select = DefaultTxReceiptSelect> =\n UseWaitForTransactionReceiptReturnType<\n typeof wagmiConfig,\n SupportedChainId,\n Select\n >;\n\nexport type TxReceiptFromWagmi = DefaultTxReceiptSelect;\n\nexport function useAwaitTx<Select = DefaultTxReceiptSelect>({\n chainId,\n confirmations,\n hash,\n query,\n}: UseAwaitTxParameters<Select>): UseAwaitTxReturnType<Select> {\n const logger = useLogger(\"AwaitTx\");\n const queryResult = useWaitForTransactionReceipt<\n typeof wagmiConfig,\n SupportedChainId,\n Select\n >({\n chainId,\n confirmations,\n hash,\n query,\n onReplaced: (data) => {\n // @TODO connect to some atom if needed to detect cancelled/sped-up txs,\n // but sped-up txs may be detected correct internally and re-awaited with a new hash,\n // need to test\n // https://viem.sh/docs/actions/public/waitForTransactionReceipt.html#json-rpc-methods\n logger.log(\"onReplaced:tx\", hash, data);\n },\n });\n\n return queryResult;\n}\n\ntype EnsureTxReceiptFn = (\n options: Required<Pick<UseAwaitTxParameters, \"hash\" | \"chainId\">> & {\n onReplaced?: OnReplacedCb;\n }\n) => Promise<TransactionReceipt>;\n\nexport function useEnsureTxReceipt(): EnsureTxReceiptFn {\n const queryClient = useQueryClient();\n const wagmiConfig = useConfig();\n\n const ensureTxReceipt: EnsureTxReceiptFn = async ({\n hash,\n chainId,\n onReplaced,\n }) => {\n const queryKey = waitForTransactionReceiptQueryKey({\n hash,\n chainId,\n });\n const receipt = await queryClient.ensureQueryData({\n queryKey,\n queryFn: () => {\n return waitForTransactionReceipt(wagmiConfig, {\n hash,\n chainId,\n onReplaced,\n });\n },\n });\n\n return receipt;\n };\n\n return ensureTxReceipt;\n}\n"],"names":["useAwaitTx","t0","$","_c","chainId","confirmations","hash","query","logger","useLogger","t1","data","log","t2","onReplaced","queryResult","useWaitForTransactionReceipt","useEnsureTxReceipt","queryClient","useQueryClient","wagmiConfig","useConfig","queryKey","waitForTransactionReceiptQueryKey","receipt","ensureQueryData","queryFn","waitForTransactionReceipt","ensureTxReceipt"],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { d as distExports } from '../_virtual/index.js';
|
|
|
2
2
|
import { swapModeAtom } from '../components/widget/SwapModeSwitcher/state/swapModeAtom.js';
|
|
3
3
|
import { deltaParamAtom } from '../components/widget/TradeParameters/state/deltaParamAtom.js';
|
|
4
4
|
import { deltaEnabledOnAPI } from '../lib/constants/delta.js';
|
|
5
|
-
import { useWidgetConfig } from '../
|
|
5
|
+
import { useWidgetConfig } from '../core/state/configAtom.js';
|
|
6
6
|
import { useAtomValue } from 'jotai';
|
|
7
7
|
import { useChainId } from 'wagmi';
|
|
8
8
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGlobalDeltaEnabled.js","sources":["../../src/hooks/useGlobalDeltaEnabled.ts"],"sourcesContent":["import { swapModeAtom } from \"@/components/widget/SwapModeSwitcher/state/swapModeAtom\";\nimport { deltaParamAtom } from \"@/components/widget/TradeParameters/state/deltaParamAtom\";\nimport { deltaEnabledOnAPI } from \"@/lib/constants/delta\";\nimport { useWidgetConfig } from \"@/
|
|
1
|
+
{"version":3,"file":"useGlobalDeltaEnabled.js","sources":["../../src/hooks/useGlobalDeltaEnabled.ts"],"sourcesContent":["import { swapModeAtom } from \"@/components/widget/SwapModeSwitcher/state/swapModeAtom\";\nimport { deltaParamAtom } from \"@/components/widget/TradeParameters/state/deltaParamAtom\";\nimport { deltaEnabledOnAPI } from \"@/lib/constants/delta\";\nimport { useWidgetConfig } from \"@/core/state/configAtom\";\nimport { useAtomValue } from \"jotai\";\nimport { useChainId } from \"wagmi\";\n\nexport const useGlobalDeltaEnabled = () => {\n const chainId = useChainId();\n const widgetConfig = useWidgetConfig();\n const deltaParam = useAtomValue(deltaParamAtom);\n const swapMode = useAtomValue(swapModeAtom);\n\n return {\n enabledInConfig: widgetConfig.enableDelta,\n enabledInSettings: deltaParam,\n enabledOnCurrentChain: deltaEnabledOnAPI[chainId],\n isDeltaMode: swapMode === \"delta\",\n };\n};\n"],"names":["useGlobalDeltaEnabled","$","_c","chainId","useChainId","widgetConfig","useWidgetConfig","deltaParam","useAtomValue","deltaParamAtom","swapMode","swapModeAtom","t0","deltaEnabledOnAPI","t1","t2","enableDelta","enabledInConfig","enabledInSettings","enabledOnCurrentChain","isDeltaMode"],"mappings":";;;;;;;;AAOO,MAAMA,wBAAwBA,MAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AACnC,EAAA,MAAAC,UAAgBC,UAAAA,EAAW;AAC3B,EAAA,MAAAC,eAAqBC,eAAAA,EAAgB;AACrC,EAAA,MAAAC,UAAAA,GAAmBC,aAAAC,cAA2B,CAAA;AAC9C,EAAA,MAAAC,QAAAA,GAAiBF,aAAAG,YAAyB,CAAA;AAKjB,EAAA,MAAAC,EAAAA,GAAAC,kBAAkBV,OAAO,CAAA;AACnC,EAAA,MAAAW,KAAAJ,QAAAA,KAAa,OAAA;AAAO,EAAA,IAAAK,EAAAA;AAAA,EAAA,IAAAd,EAAA,CAAA,CAAA,KAAAM,UAAAA,IAAAN,CAAAA,QAAAW,EAAAA,IAAAX,CAAAA,CAAA,CAAA,MAAAa,EAAAA,IAAAb,CAAAA,CAAA,CAAA,CAAA,KAAAI,aAAAW,WAAAA,EAAA;AAJ5BD,IAAAA,EAAAA,GAAA;AAAA,MAAAE,iBACYZ,YAAAA,CAAYW,WAAAA;AAAAA,MAAAE,iBAAAA,EACVX,UAAAA;AAAAA,MAAUY,qBAAAA,EACNP,EAAAA;AAAAA,MAA0BQ,WAAAA,EACpCN;AAAAA,KAAoB;AAClCb,IAAAA,CAAAA,MAAAM,UAAAA;AAAAN,IAAAA,CAAAA,MAAAW,EAAAA;AAAAX,IAAAA,CAAAA,MAAAa,EAAAA;AAAAb,IAAAA,CAAAA,CAAA,CAAA,IAAAI,YAAAA,CAAAW,WAAAA;AAAAf,IAAAA,CAAAA,MAAAc,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAd,EAAA,CAAA,CAAA;AAAA;AAAA,EAAA,OALMc,EAAAA;AAKN;;;;"}
|
package/dist/hooks/useSDK.js
CHANGED
|
@@ -2,7 +2,7 @@ import axios from 'axios';
|
|
|
2
2
|
import { useMemo } from 'react';
|
|
3
3
|
import { constructPartialSDK, constructAxiosFetcher, constructGetDeltaOrders, constructGetDeltaPrice, constructBuildDeltaOrder, constructBuildCrosschainOrderBridge, constructPostDeltaOrder, constructGetBridgeInfo, constructGetMulticallHandlers, constructIsTokenSupportedInDelta, constructViemContractCaller, constructSignDeltaOrder, constructGetRate, constructGetSpender, constructBuildTx } from '@velora-dex/sdk';
|
|
4
4
|
import { API_URL } from '../lib/constants/index.js';
|
|
5
|
-
import { useLogger } from '../
|
|
5
|
+
import { useLogger } from '../core/logger.js';
|
|
6
6
|
|
|
7
7
|
const fetcher = constructAxiosFetcher(axios);
|
|
8
8
|
function useMarketSwapSDK({
|
package/dist/hooks/useSDK.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSDK.js","sources":["../../src/hooks/useSDK.ts"],"sourcesContent":["import axios from \"axios\";\nimport { useMemo } from \"react\";\n\nimport {\n constructAxiosFetcher,\n constructPartialSDK,\n constructGetSpender,\n constructBuildTx,\n constructAllLimitOrdersHandlers,\n constructGetRate,\n constructGetDeltaPrice,\n constructGetDeltaOrders,\n constructBuildDeltaOrder,\n constructSignDeltaOrder,\n constructPostDeltaOrder,\n constructGetBridgeInfo,\n constructGetMulticallHandlers,\n constructIsTokenSupportedInDelta,\n constructBuildCrosschainOrderBridge,\n constructViemContractCaller,\n type LimitOrderHandlers,\n type GetRateFunctions,\n type APIVersion,\n type GetDeltaOrdersFunctions,\n type GetDeltaPriceFunctions,\n type PostDeltaOrderFunctions,\n type BuildDeltaOrderFunctions,\n type SignDeltaOrderFunctions,\n type GetBridgeInfoFunctions,\n type GetMulticallHandlersFunctions,\n type IsTokenSupportedInDeltaFunctions,\n type BuildCrosschainOrderBridgeFunctions,\n type BuildTxFunctions,\n type GetSpenderFunctions,\n type MinViemClient,\n} from \"@velora-dex/sdk\";\nimport type { Address, Hash } from \"viem\";\nimport type { Prettify } from \"ts-essentials\";\nimport { API_URL } from \"@/lib/constants\";\nimport { useLogger } from \"@/
|
|
1
|
+
{"version":3,"file":"useSDK.js","sources":["../../src/hooks/useSDK.ts"],"sourcesContent":["import axios from \"axios\";\nimport { useMemo } from \"react\";\n\nimport {\n constructAxiosFetcher,\n constructPartialSDK,\n constructGetSpender,\n constructBuildTx,\n constructAllLimitOrdersHandlers,\n constructGetRate,\n constructGetDeltaPrice,\n constructGetDeltaOrders,\n constructBuildDeltaOrder,\n constructSignDeltaOrder,\n constructPostDeltaOrder,\n constructGetBridgeInfo,\n constructGetMulticallHandlers,\n constructIsTokenSupportedInDelta,\n constructBuildCrosschainOrderBridge,\n constructViemContractCaller,\n type LimitOrderHandlers,\n type GetRateFunctions,\n type APIVersion,\n type GetDeltaOrdersFunctions,\n type GetDeltaPriceFunctions,\n type PostDeltaOrderFunctions,\n type BuildDeltaOrderFunctions,\n type SignDeltaOrderFunctions,\n type GetBridgeInfoFunctions,\n type GetMulticallHandlersFunctions,\n type IsTokenSupportedInDeltaFunctions,\n type BuildCrosschainOrderBridgeFunctions,\n type BuildTxFunctions,\n type GetSpenderFunctions,\n type MinViemClient,\n} from \"@velora-dex/sdk\";\nimport type { Address, Hash } from \"viem\";\nimport type { Prettify } from \"ts-essentials\";\nimport { API_URL } from \"@/lib/constants\";\nimport { useLogger } from \"@/core/logger\";\n\nconst fetcher = constructAxiosFetcher(axios);\n\ntype SDKCreateParams = {\n chainId: number;\n apiURL?: string;\n account?: Address;\n};\n\nexport type MarketSwapSDK = Prettify<\n GetSpenderFunctions & BuildTxFunctions & GetRateFunctions\n>;\n\ntype ConstructedSDKOutput<T> = {\n sdk: T;\n appVersion: APIVersion;\n chainId: number;\n apiURL: string;\n};\n\nexport function useMarketSwapSDK({\n chainId,\n apiURL = API_URL,\n}: SDKCreateParams): ConstructedSDKOutput<MarketSwapSDK> {\n \"use no memo\";\n\n const sdk = useMemo(() => {\n const SDKconfig = {\n apiURL,\n chainId,\n fetcher,\n };\n\n return constructPartialSDK(\n SDKconfig,\n constructGetRate,\n constructGetSpender,\n constructBuildTx\n );\n }, [apiURL, chainId]);\n\n return {\n appVersion: sdk.version,\n chainId: sdk.chainId,\n apiURL: sdk.apiURL,\n sdk,\n };\n}\ntype LimitOrdersSDKCreateParams = SDKCreateParams & {\n account?: Address;\n client?: MinViemClient;\n};\n\nexport type LimitOrdersSDK = Prettify<LimitOrderHandlers<Hash>>;\n// can paraswap.fillOrder from a taker address to simulate happy path\n// @TODO check that we always use correct SDK version\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams & {\n account?: undefined;\n client?: undefined;\n}): Record<keyof ConstructedSDKOutput<unknown>, undefined>; // keyof allows for autocomplete in destructuring\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams & {\n account: Address;\n client: MinViemClient;\n}): ConstructedSDKOutput<LimitOrdersSDK>;\nexport function useLimitOrdersSDK({\n chainId,\n apiURL,\n account,\n client,\n}: LimitOrdersSDKCreateParams):\n | ConstructedSDKOutput<LimitOrdersSDK>\n | Record<keyof ConstructedSDKOutput<unknown>, undefined>;\nexport function useLimitOrdersSDK({\n chainId,\n apiURL = API_URL,\n account,\n client,\n}: LimitOrdersSDKCreateParams):\n | ConstructedSDKOutput<LimitOrdersSDK>\n | Partial<Record<keyof ConstructedSDKOutput<unknown>, undefined>> {\n \"use no memo\";\n\n const sdk = useMemo(() => {\n if (!client || !account) return;\n\n const contractCaller = constructViemContractCaller(client, account);\n\n const SDKconfig = {\n apiURL,\n chainId,\n fetcher,\n contractCaller,\n };\n\n return constructPartialSDK(SDKconfig, constructAllLimitOrdersHandlers);\n }, [account, apiURL, client, chainId]);\n\n if (!sdk) return {};\n\n return {\n appVersion: sdk.version,\n chainId: sdk.chainId,\n apiURL: sdk.apiURL,\n sdk,\n };\n}\n\ntype ReadOnlyDeltaSDK = Prettify<\n GetDeltaOrdersFunctions &\n GetDeltaPriceFunctions &\n BuildDeltaOrderFunctions &\n BuildCrosschainOrderBridgeFunctions &\n PostDeltaOrderFunctions &\n GetBridgeInfoFunctions &\n GetMulticallHandlersFunctions &\n IsTokenSupportedInDeltaFunctions & { chainId: number }\n>;\n\nexport type DeltaSDK = Prettify<ReadOnlyDeltaSDK & SignDeltaOrderFunctions>;\n\ntype DeltaSDKCreateParams = SDKCreateParams & {\n client?: MinViemClient;\n};\n\nexport function useDeltaSDK({\n chainId,\n apiURL,\n account,\n client,\n}: DeltaSDKCreateParams & {\n account?: undefined;\n client?: undefined;\n}): ConstructedSDKOutput<ReadOnlyDeltaSDK>;\nexport function useDeltaSDK({\n chainId,\n apiURL,\n account,\n client,\n}: DeltaSDKCreateParams & {\n account: Address;\n client: MinViemClient;\n}): ConstructedSDKOutput<DeltaSDK>;\nexport function useDeltaSDK({\n chainId,\n apiURL,\n account,\n client,\n}: DeltaSDKCreateParams): ConstructedSDKOutput<DeltaSDK | ReadOnlyDeltaSDK>;\nexport function useDeltaSDK({\n chainId,\n apiURL = API_URL,\n account,\n client,\n}: DeltaSDKCreateParams): ConstructedSDKOutput<DeltaSDK | ReadOnlyDeltaSDK> {\n \"use no memo\";\n // react-compiler fails here and sdk is created anew\n\n const logger = useLogger(\"DeltaSDK\");\n\n const sdk = useMemo(() => {\n logger.log(\"init sdk\");\n const SDKconfig = {\n apiURL,\n chainId,\n fetcher,\n };\n\n if (!client || !account) {\n return constructPartialSDK(\n SDKconfig,\n constructGetDeltaOrders,\n constructGetDeltaPrice,\n constructBuildDeltaOrder,\n constructBuildCrosschainOrderBridge,\n constructPostDeltaOrder,\n constructGetBridgeInfo,\n constructGetMulticallHandlers,\n constructIsTokenSupportedInDelta\n );\n }\n\n const contractCaller = constructViemContractCaller(client, account);\n\n return constructPartialSDK(\n { ...SDKconfig, contractCaller },\n constructGetDeltaOrders,\n constructGetDeltaPrice,\n constructBuildDeltaOrder,\n constructBuildCrosschainOrderBridge,\n constructPostDeltaOrder,\n constructGetBridgeInfo,\n constructGetMulticallHandlers,\n constructIsTokenSupportedInDelta,\n constructSignDeltaOrder\n );\n }, [logger, apiURL, chainId, client, account]);\n\n return {\n appVersion: sdk.version,\n chainId: sdk.chainId,\n apiURL: sdk.apiURL,\n sdk,\n };\n}\n"],"names":["fetcher","constructAxiosFetcher","axios","useMarketSwapSDK","chainId","apiURL","API_URL","sdk","useMemo","SDKconfig","constructPartialSDK","constructGetRate","constructGetSpender","constructBuildTx","appVersion","version","useDeltaSDK","account","client","logger","useLogger","log","constructGetDeltaOrders","constructGetDeltaPrice","constructBuildDeltaOrder","constructBuildCrosschainOrderBridge","constructPostDeltaOrder","constructGetBridgeInfo","constructGetMulticallHandlers","constructIsTokenSupportedInDelta","contractCaller","constructViemContractCaller","constructSignDeltaOrder"],"mappings":";;;;;;AAyCA,MAAMA,OAAAA,GAAUC,sBAAsBC,KAAK,CAAA;AAmBpC,SAASC,gBAAAA,CAAiB;AAAA,EAC/BC,OAAAA;AAAAA,EACAC,MAAAA,GAASC;AACM,CAAA,EAAwC;AACvD,EAAA,aAAA;AAEA,EAAA,MAAMC,GAAAA,GAAMC,QAAQ,MAAM;AACxB,IAAA,MAAMC,SAAAA,GAAY;AAAA,MAChBJ,MAAAA;AAAAA,MACAD,OAAAA;AAAAA,MACAJ;AAAAA,KACF;AAEA,IAAA,OAAOU,mBAAAA,CACLD,SAAAA,EACAE,gBAAAA,EACAC,mBAAAA,EACAC,gBACF,CAAA;AAAA,GACF,EAAG,CAACR,MAAAA,EAAQD,OAAO,CAAC,CAAA;AAEpB,EAAA,OAAO;AAAA,IACLU,YAAYP,GAAAA,CAAIQ,OAAAA;AAAAA,IAChBX,SAASG,GAAAA,CAAIH,OAAAA;AAAAA,IACbC,QAAQE,GAAAA,CAAIF,MAAAA;AAAAA,IACZE;AAAAA,GACF;AACF;AA+GO,SAASS,WAAAA,CAAY;AAAA,EAC1BZ,OAAAA;AAAAA,EACAC,MAAAA,GAASC,OAAAA;AAAAA,EACTW,OAAAA;AAAAA,EACAC;AACoB,CAAA,EAAsD;AAC1E,EAAA,aAAA;AAGA,EAAA,MAAMC,MAAAA,GAASC,UAAU,UAAU,CAAA;AAEnC,EAAA,MAAMb,GAAAA,GAAMC,QAAQ,MAAM;AACxBW,IAAAA,MAAAA,CAAOE,IAAI,UAAU,CAAA;AACrB,IAAA,MAAMZ,SAAAA,GAAY;AAAA,MAChBJ,MAAAA;AAAAA,MACAD,OAAAA;AAAAA,MACAJ;AAAAA,KACF;AAEA,IAAA,IAAI,CAACkB,MAAAA,IAAU,CAACD,OAAAA,EAAS;AACvB,MAAA,OAAOP,mBAAAA,CACLD,WACAa,uBAAAA,EACAC,sBAAAA,EACAC,0BACAC,mCAAAA,EACAC,uBAAAA,EACAC,sBAAAA,EACAC,6BAAAA,EACAC,gCACF,CAAA;AAAA;AAGF,IAAA,MAAMC,cAAAA,GAAiBC,2BAAAA,CAA4Bb,MAAAA,EAAQD,OAAO,CAAA;AAElE,IAAA,OAAOP,mBAAAA,CACL;AAAA,MAAE,GAAGD,SAAAA;AAAAA,MAAWqB;AAAAA,KAAe,EAC/BR,yBACAC,sBAAAA,EACAC,wBAAAA,EACAC,qCACAC,uBAAAA,EACAC,sBAAAA,EACAC,6BAAAA,EACAC,gCAAAA,EACAG,uBACF,CAAA;AAAA,KACC,CAACb,MAAAA,EAAQd,QAAQD,OAAAA,EAASc,MAAAA,EAAQD,OAAO,CAAC,CAAA;AAE7C,EAAA,OAAO;AAAA,IACLH,YAAYP,GAAAA,CAAIQ,OAAAA;AAAAA,IAChBX,SAASG,GAAAA,CAAIH,OAAAA;AAAAA,IACbC,QAAQE,GAAAA,CAAIF,MAAAA;AAAAA,IACZE;AAAAA,GACF;AACF;;;;"}
|
|
@@ -2,7 +2,7 @@ import { d as distExports } from '../_virtual/index.js';
|
|
|
2
2
|
import { stablecoinDefaultSlippage } from '../components/widget/TradeParameters/state/constants.js';
|
|
3
3
|
import { slippageParamAtom } from '../components/widget/TradeParameters/state/slippageParamAtom.js';
|
|
4
4
|
import { useIsAddressStablecoin } from '../tokens/stabeCoins/hooks.js';
|
|
5
|
-
import { useWidgetTokens } from '../
|
|
5
|
+
import { useWidgetTokens } from '../core/inputs/state/selectedTokenAtom.js';
|
|
6
6
|
import { useAtomValue } from 'jotai';
|
|
7
7
|
import { useChainId } from 'wagmi';
|
|
8
8
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSlippage.js","sources":["../../src/hooks/useSlippage.ts"],"sourcesContent":["import { stablecoinDefaultSlippage } from \"@/components/widget/TradeParameters/state/constants\";\nimport { slippageParamAtom } from \"@/components/widget/TradeParameters/state/slippageParamAtom\";\nimport { useIsAddressStablecoin } from \"@/tokens/stabeCoins/hooks\";\nimport { useWidgetTokens } from \"@/
|
|
1
|
+
{"version":3,"file":"useSlippage.js","sources":["../../src/hooks/useSlippage.ts"],"sourcesContent":["import { stablecoinDefaultSlippage } from \"@/components/widget/TradeParameters/state/constants\";\nimport { slippageParamAtom } from \"@/components/widget/TradeParameters/state/slippageParamAtom\";\nimport { useIsAddressStablecoin } from \"@/tokens/stabeCoins/hooks\";\nimport { useWidgetTokens } from \"@/core/inputs/state/selectedTokenAtom\";\nimport { useAtomValue } from \"jotai\";\nimport { useChainId } from \"wagmi\";\n\nexport const useSlippage = () => {\n const slippageFromParams = useAtomValue(slippageParamAtom);\n const chainId = useChainId();\n const { tokenFrom, tokenTo } = useWidgetTokens();\n\n const tokensAreStablecoins = useIsAddressStablecoin(\n // overhead of this is minimal, don't memoize\n [tokenFrom?.address, tokenTo?.address], // undefined will result in false\n chainId\n );\n\n const resolvedSlippage = tokensAreStablecoins\n ? stablecoinDefaultSlippage // override slippage for stablecoins\n : slippageFromParams; // otherwise use user-defined slippage\n\n return { resolvedSlippage, slippageFromParams };\n};\n"],"names":["useSlippage","$","_c","slippageFromParams","useAtomValue","slippageParamAtom","chainId","useChainId","tokenFrom","tokenTo","useWidgetTokens","t0","address","t1","t2","tokensAreStablecoins","useIsAddressStablecoin","resolvedSlippage","stablecoinDefaultSlippage","t3"],"mappings":";;;;;;;;AAOO,MAAMA,cAAcA,MAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AACzB,EAAA,MAAAC,kBAAAA,GAA2BC,aAAAC,iBAA8B,CAAA;AACzD,EAAA,MAAAC,UAAgBC,UAAAA,EAAW;AAC3B,EAAA,MAAA;AAAA,IAAAC,SAAAA;AAAAA,IAAAC;AAAAA,MAA+BC,eAAAA,EAAgB;AAI5C,EAAA,MAAAC,KAAAH,SAAAA,EAASI,OAAAA;AAAW,EAAA,MAAAC,KAAAJ,OAAAA,EAAOG,OAAAA;AAAS,EAAA,IAAAE,EAAAA;AAAA,EAAA,IAAAb,EAAA,CAAA,CAAA,KAAAU,MAAAV,CAAAA,QAAAY,EAAAA,EAAA;AAArCC,IAAAA,EAAAA,GAAA,CAACH,IAAoBE,EAAgB,CAAA;AAACZ,IAAAA,CAAAA,MAAAU,EAAAA;AAAAV,IAAAA,CAAAA,MAAAY,EAAAA;AAAAZ,IAAAA,CAAAA,MAAAa,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAb,EAAA,CAAA,CAAA;AAAA;AAFxC,EAAA,MAAAc,oBAAAA,GAA6BC,sBAAAA,CAE3BF,EAAAA,EACAR,OACF,CAAA;AAEA,EAAA,MAAAW,gBAAAA,GAAyBF,uBAAoBG,yBAAAA,GAEzCf,kBAAAA;AAAmB,EAAA,IAAAgB,EAAAA;AAAA,EAAA,IAAAlB,EAAA,CAAA,CAAA,KAAAgB,oBAAAhB,CAAAA,QAAAE,kBAAAA,EAAA;AAEhBgB,IAAAA,EAAAA,GAAA;AAAA,MAAAF,gBAAAA;AAAAA,MAAAd;AAAAA,KAAA;AAAwCF,IAAAA,CAAAA,MAAAgB,gBAAAA;AAAAhB,IAAAA,CAAAA,MAAAE,kBAAAA;AAAAF,IAAAA,CAAAA,MAAAkB,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAlB,EAAA,CAAA,CAAA;AAAA;AAAA,EAAA,OAAxCkB,EAAAA;AAAwC;;;;"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { Widget } from './
|
|
2
|
-
export type { WidgetProps, WidgetConfig, WidgetTheme, EIP1193ProviderLax, } from './
|
|
1
|
+
export { Widget } from './core';
|
|
2
|
+
export type { WidgetProps, WidgetConfig, WidgetTheme, EIP1193ProviderLax, } from './core/types';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,YAAY,EACV,WAAW,EACX,YAAY,EACZ,WAAW,EACX,kBAAkB,GACnB,MAAM,cAAc,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { Widget } from './
|
|
1
|
+
export { Widget } from './core/index.js';
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
const MEDIUM_STALE_TIME_FOR_REACTIVENESS = 5e3;
|
|
1
2
|
const LONG_STALE_TIME_FOR_REACTIVENESS = 25e3;
|
|
2
3
|
const ONE_MINUTE_MS = 60 * 1e3;
|
|
3
4
|
|
|
4
|
-
export { LONG_STALE_TIME_FOR_REACTIVENESS, ONE_MINUTE_MS };
|
|
5
|
+
export { LONG_STALE_TIME_FOR_REACTIVENESS, MEDIUM_STALE_TIME_FOR_REACTIVENESS, ONE_MINUTE_MS };
|
|
5
6
|
//# sourceMappingURL=time.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"time.js","sources":["../../../src/lib/constants/time.ts"],"sourcesContent":["export const SMALL_STALE_TIME_FOR_REACTIVENESS = 500; // use mainly for requests with relatively big interval to guarantee reactiness for refetching\nexport const MEDIUM_STALE_TIME_FOR_REACTIVENESS = 5000; // mainly for LiquidityPools data\nexport const LONG_STALE_TIME_FOR_REACTIVENESS = 25000; // mainly for CoingeckoPrices used together with Balancer Liquidity Pools\n\nexport const ONE_MINUTE_MS = 60 * 1000;\n"],"names":["LONG_STALE_TIME_FOR_REACTIVENESS","ONE_MINUTE_MS"],"mappings":"
|
|
1
|
+
{"version":3,"file":"time.js","sources":["../../../src/lib/constants/time.ts"],"sourcesContent":["export const SMALL_STALE_TIME_FOR_REACTIVENESS = 500; // use mainly for requests with relatively big interval to guarantee reactiness for refetching\nexport const MEDIUM_STALE_TIME_FOR_REACTIVENESS = 5000; // mainly for LiquidityPools data\nexport const LONG_STALE_TIME_FOR_REACTIVENESS = 25000; // mainly for CoingeckoPrices used together with Balancer Liquidity Pools\n\nexport const ONE_MINUTE_MS = 60 * 1000;\n"],"names":["MEDIUM_STALE_TIME_FOR_REACTIVENESS","LONG_STALE_TIME_FOR_REACTIVENESS","ONE_MINUTE_MS"],"mappings":"AACO,MAAMA,kCAAAA,GAAqC;AAC3C,MAAMC,gCAAAA,GAAmC;AAEzC,MAAMC,gBAAgB,EAAA,GAAK;;;;"}
|
|
@@ -1153,7 +1153,7 @@ export declare const wagmiConfig: import('wagmi').Config<readonly [{
|
|
|
1153
1153
|
serializers: {
|
|
1154
1154
|
readonly transaction: typeof import('viem/chains').serializeTransactionOpStack;
|
|
1155
1155
|
};
|
|
1156
|
-
}], Record<
|
|
1156
|
+
}], Record<10 | 1 | 137 | 56 | 43114 | 42161 | 8453 | 100 | 146 | 130, import('viem').FallbackTransport<import('viem').Transport[]>>, readonly [CreateConnectorFn, CreateConnectorFn, CreateConnectorFn]>;
|
|
1157
1157
|
declare module "wagmi" {
|
|
1158
1158
|
interface Register {
|
|
1159
1159
|
config: typeof wagmiConfig;
|
|
@@ -1155,7 +1155,7 @@ export declare const chains: readonly [{
|
|
|
1155
1155
|
readonly transaction: typeof import('viem/chains').serializeTransactionOpStack;
|
|
1156
1156
|
};
|
|
1157
1157
|
}];
|
|
1158
|
-
export declare const supportedChainIds: (
|
|
1158
|
+
export declare const supportedChainIds: (10 | 1 | 137 | 56 | 43114 | 42161 | 8453 | 100 | 146 | 130)[];
|
|
1159
1159
|
export declare const chainConfigMap: Record<SupportedChainId, Chain & {
|
|
1160
1160
|
id: SupportedChainId;
|
|
1161
1161
|
}>;
|