@velora-dex/widget 0.1.0-rc.1 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/receipt.svg.js +12 -0
- package/dist/assets/receipt.svg.js.map +1 -0
- package/dist/assets/vlr.svg.js +4 -0
- package/dist/assets/vlr.svg.js.map +1 -0
- package/dist/components/ui/accordion.js +23 -15
- package/dist/components/ui/accordion.js.map +1 -1
- package/dist/components/ui/drawer.js +1 -1
- package/dist/components/ui/drawer.js.map +1 -1
- package/dist/components/web3/ConnectWallets/index.js +20 -6
- package/dist/components/web3/ConnectWallets/index.js.map +1 -1
- package/dist/components/web3/ConnectWallets/walletIcons.d.ts +6 -1
- package/dist/components/web3/ConnectWallets/walletIcons.d.ts.map +1 -1
- package/dist/components/web3/ConnectWallets/walletIcons.js +45 -29
- package/dist/components/web3/ConnectWallets/walletIcons.js.map +1 -1
- package/dist/components/widget/AppHeader/Activities/Activities.d.ts +7 -0
- package/dist/components/widget/AppHeader/Activities/Activities.d.ts.map +1 -0
- package/dist/components/widget/AppHeader/Activities/Activities.js +132 -0
- package/dist/components/widget/AppHeader/Activities/Activities.js.map +1 -0
- package/dist/components/widget/AppHeader/Activities/ActivityItems.d.ts +13 -0
- package/dist/components/widget/AppHeader/Activities/ActivityItems.d.ts.map +1 -0
- package/dist/components/widget/AppHeader/Activities/ActivityItems.js +324 -0
- package/dist/components/widget/AppHeader/Activities/ActivityItems.js.map +1 -0
- package/dist/components/widget/AppHeader/Activities/Drawers.d.ts +32 -0
- package/dist/components/widget/AppHeader/Activities/Drawers.d.ts.map +1 -0
- package/dist/components/widget/AppHeader/Activities/Drawers.js +317 -0
- package/dist/components/widget/AppHeader/Activities/Drawers.js.map +1 -0
- package/dist/components/widget/AppHeader/Activities/assets/eye-crossed.svg.js +12 -0
- package/dist/components/widget/AppHeader/Activities/assets/eye-crossed.svg.js.map +1 -0
- package/dist/components/widget/AppHeader/Activities/assets/eye.svg.js +12 -0
- package/dist/components/widget/AppHeader/Activities/assets/eye.svg.js.map +1 -0
- package/dist/components/widget/AppHeader/Activities/hooks.d.ts +33 -0
- package/dist/components/widget/AppHeader/Activities/hooks.d.ts.map +1 -0
- package/dist/components/widget/AppHeader/Activities/hooks.js +731 -0
- package/dist/components/widget/AppHeader/Activities/hooks.js.map +1 -0
- package/dist/components/widget/AppHeader/Activities/utils.d.ts +21 -0
- package/dist/components/widget/AppHeader/Activities/utils.d.ts.map +1 -0
- package/dist/components/widget/AppHeader/Activities/utils.js +70 -0
- package/dist/components/widget/AppHeader/Activities/utils.js.map +1 -0
- package/dist/components/widget/AppHeader/ActivityButton.d.ts +2 -1
- package/dist/components/widget/AppHeader/ActivityButton.d.ts.map +1 -1
- package/dist/components/widget/AppHeader/ActivityButton.js +171 -22
- package/dist/components/widget/AppHeader/ActivityButton.js.map +1 -1
- package/dist/components/widget/AppHeader/AppHeader.d.ts.map +1 -1
- package/dist/components/widget/AppHeader/AppHeader.js +56 -40
- package/dist/components/widget/AppHeader/AppHeader.js.map +1 -1
- package/dist/components/widget/AppHeader/OtcOrdersDrawerButton.d.ts +2 -0
- package/dist/components/widget/AppHeader/OtcOrdersDrawerButton.d.ts.map +1 -0
- package/dist/components/widget/AppHeader/TradeModeSwitcher.d.ts +2 -0
- package/dist/components/widget/AppHeader/TradeModeSwitcher.d.ts.map +1 -0
- package/dist/components/widget/AppHeader/TradeModeSwitcher.js +71 -0
- package/dist/components/widget/AppHeader/TradeModeSwitcher.js.map +1 -0
- package/dist/components/widget/AppHeader/state/showMoreAtom.d.ts +24 -0
- package/dist/components/widget/AppHeader/state/showMoreAtom.d.ts.map +1 -0
- package/dist/components/widget/AppHeader/state/showMoreAtom.js +20 -0
- package/dist/components/widget/AppHeader/state/showMoreAtom.js.map +1 -0
- package/dist/components/widget/Details/DetailWithValueList.d.ts.map +1 -1
- package/dist/components/widget/Details/DetailWithValueList.js +38 -28
- package/dist/components/widget/Details/DetailWithValueList.js.map +1 -1
- package/dist/components/widget/Details/DetailWithValueListExpandable.d.ts.map +1 -1
- package/dist/components/widget/Details/DetailWithValueListExpandable.js +39 -32
- package/dist/components/widget/Details/DetailWithValueListExpandable.js.map +1 -1
- package/dist/components/widget/Details/types.d.ts +3 -2
- package/dist/components/widget/Details/types.d.ts.map +1 -1
- package/dist/components/widget/DexesList/DexItem.d.ts +3 -0
- package/dist/components/widget/DexesList/DexItem.d.ts.map +1 -0
- package/dist/components/widget/DexesList/DexItem.js +366 -0
- package/dist/components/widget/DexesList/DexItem.js.map +1 -0
- package/dist/components/widget/DexesList/DexesList.d.ts +10 -0
- package/dist/components/widget/DexesList/DexesList.d.ts.map +1 -0
- package/dist/components/widget/DexesList/DexesList.js +71 -0
- package/dist/components/widget/DexesList/DexesList.js.map +1 -0
- package/dist/components/widget/DexesList/assets/exchanges/biswap.png.js +4 -0
- package/dist/components/widget/DexesList/assets/exchanges/biswap.png.js.map +1 -0
- package/dist/components/widget/DexesList/assets/exchanges/cheeseswap.png.js +4 -0
- package/dist/components/widget/DexesList/assets/exchanges/cheeseswap.png.js.map +1 -0
- package/dist/components/widget/DexesList/assets/exchanges/complusswap.png.js +4 -0
- package/dist/components/widget/DexesList/assets/exchanges/complusswap.png.js.map +1 -0
- package/dist/components/widget/DexesList/assets/exchanges/hashflow.png.js +4 -0
- package/dist/components/widget/DexesList/assets/exchanges/hashflow.png.js.map +1 -0
- package/dist/components/widget/DexesList/assets/exchanges/icons.json.d.ts +82 -0
- package/dist/components/widget/DexesList/assets/exchanges/icons.json.js +159 -0
- package/dist/components/widget/DexesList/assets/exchanges/icons.json.js.map +1 -0
- package/dist/components/widget/DexesList/assets/exchanges/quickswap.png.js +4 -0
- package/dist/components/widget/DexesList/assets/exchanges/quickswap.png.js.map +1 -0
- package/dist/components/widget/DexesList/assets/exchanges/shibaswap.png.js +4 -0
- package/dist/components/widget/DexesList/assets/exchanges/shibaswap.png.js.map +1 -0
- package/dist/components/widget/DexesList/assets/exchanges/uniswap.svg.js +4 -0
- package/dist/components/widget/DexesList/assets/exchanges/uniswap.svg.js.map +1 -0
- package/dist/components/widget/DexesList/assets/exchanges/velora-dark.svg.js +4 -0
- package/dist/components/widget/DexesList/assets/exchanges/velora-dark.svg.js.map +1 -0
- package/dist/components/widget/DexesList/assets/exchanges/velora-light.svg.js +4 -0
- package/dist/components/widget/DexesList/assets/exchanges/velora-light.svg.js.map +1 -0
- package/dist/components/widget/DexesList/assets/gas.svg.js +12 -0
- package/dist/components/widget/DexesList/assets/gas.svg.js.map +1 -0
- package/dist/components/widget/DexesList/assets/unknown-dex.svg.js +4 -0
- package/dist/components/widget/DexesList/assets/unknown-dex.svg.js.map +1 -0
- package/dist/components/widget/DexesList/constants.d.ts +2 -0
- package/dist/components/widget/DexesList/constants.d.ts.map +1 -0
- package/dist/components/widget/DexesList/constants.js +4 -0
- package/dist/components/widget/DexesList/constants.js.map +1 -0
- package/dist/components/widget/DexesList/getDexProps.d.ts +11 -0
- package/dist/components/widget/DexesList/getDexProps.d.ts.map +1 -0
- package/dist/components/widget/DexesList/getDexProps.js +94 -0
- package/dist/components/widget/DexesList/getDexProps.js.map +1 -0
- package/dist/components/widget/DexesList/types.d.ts +15 -0
- package/dist/components/widget/DexesList/types.d.ts.map +1 -0
- package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressDialog.d.ts +3 -2
- package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressDialog.d.ts.map +1 -1
- package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressDialog.js +168 -134
- package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressDialog.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.d.ts +5 -2
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.d.ts.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js +192 -142
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.js +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/RegularTokenList.d.ts +5 -4
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/RegularTokenList.d.ts.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/RegularTokenList.js +23 -16
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/RegularTokenList.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/index.d.ts +2 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/index.d.ts.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/index.js +25 -18
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/index.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListBody.d.ts +3 -3
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListBody.d.ts.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListBody.js +15 -44
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListBody.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListRow.d.ts +13 -0
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListRow.d.ts.map +1 -0
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListRow.js +231 -0
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListRow.js.map +1 -0
- package/dist/components/widget/Dialog/dialogByType.d.ts +0 -1
- package/dist/components/widget/Dialog/dialogByType.d.ts.map +1 -1
- package/dist/components/widget/Dialog/dialogByType.js +0 -2
- package/dist/components/widget/Dialog/dialogByType.js.map +1 -1
- package/dist/components/widget/Dialog/state/dialogAtom.d.ts +1 -3
- package/dist/components/widget/Dialog/state/dialogAtom.d.ts.map +1 -1
- package/dist/components/widget/Dialog/state/dialogAtom.js +24 -45
- package/dist/components/widget/Dialog/state/dialogAtom.js.map +1 -1
- package/dist/components/widget/Drawer/index.d.ts +6 -1
- package/dist/components/widget/Drawer/index.d.ts.map +1 -1
- package/dist/components/widget/Drawer/index.js +89 -58
- package/dist/components/widget/Drawer/index.js.map +1 -1
- package/dist/components/widget/Drawer/state/useDrawerControls.d.ts +4 -2
- package/dist/components/widget/Drawer/state/useDrawerControls.d.ts.map +1 -1
- package/dist/components/widget/Drawer/state/useDrawerControls.js +16 -14
- package/dist/components/widget/Drawer/state/useDrawerControls.js.map +1 -1
- package/dist/components/widget/ImportToken/ImportToken.d.ts +7 -0
- package/dist/components/widget/ImportToken/ImportToken.d.ts.map +1 -0
- package/dist/components/widget/ImportToken/ImportToken.js +119 -0
- package/dist/components/widget/ImportToken/ImportToken.js.map +1 -0
- package/dist/components/widget/ImportToken/types.d.ts +11 -0
- package/dist/components/widget/ImportToken/types.d.ts.map +1 -0
- package/dist/components/widget/ImportToken/useImportTokenDrawer.d.ts +8 -0
- package/dist/components/widget/ImportToken/useImportTokenDrawer.d.ts.map +1 -0
- package/dist/components/widget/ImportToken/useImportTokenDrawer.js +89 -0
- package/dist/components/widget/ImportToken/useImportTokenDrawer.js.map +1 -0
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/Controls.d.ts +10 -0
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/Controls.d.ts.map +1 -0
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/Controls.js +160 -0
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/Controls.js.map +1 -0
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/LimitOrderDetails.d.ts +7 -0
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/LimitOrderDetails.d.ts.map +1 -0
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/LimitOrderDetails.js +96 -0
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/LimitOrderDetails.js.map +1 -0
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/utils.d.ts +18 -0
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/utils.d.ts.map +1 -0
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/utils.js +98 -0
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/utils.js.map +1 -0
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderListItem.d.ts +20 -0
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderListItem.d.ts.map +1 -0
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderListItem.js +480 -0
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderListItem.js.map +1 -0
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderTabs.d.ts +7 -0
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderTabs.d.ts.map +1 -0
- package/dist/components/widget/LimitOrdersDrawer/LimitOrdersList.d.ts +7 -0
- package/dist/components/widget/LimitOrdersDrawer/LimitOrdersList.d.ts.map +1 -0
- package/dist/components/widget/LimitOrdersDrawer/constants.d.ts +8 -0
- package/dist/components/widget/LimitOrdersDrawer/constants.d.ts.map +1 -0
- package/dist/components/widget/LimitOrdersDrawer/constants.js +11 -0
- package/dist/components/widget/LimitOrdersDrawer/constants.js.map +1 -0
- package/dist/components/widget/LimitOrdersDrawer/types.d.ts +20 -0
- package/dist/components/widget/LimitOrdersDrawer/types.d.ts.map +1 -0
- package/dist/components/widget/LimitOrdersDrawer/utils.d.ts +6 -0
- package/dist/components/widget/LimitOrdersDrawer/utils.d.ts.map +1 -0
- package/dist/components/widget/LimitOrdersDrawer/utils.js +66 -0
- package/dist/components/widget/LimitOrdersDrawer/utils.js.map +1 -0
- package/dist/components/widget/LimitPriceInput/index.d.ts +3 -0
- package/dist/components/widget/LimitPriceInput/index.d.ts.map +1 -0
- package/dist/components/widget/LimitPriceInput/index.js +321 -0
- package/dist/components/widget/LimitPriceInput/index.js.map +1 -0
- package/dist/components/widget/LimitPriceInput/types.d.ts +17 -0
- package/dist/components/widget/LimitPriceInput/types.d.ts.map +1 -0
- package/dist/components/widget/NetworkIcon/NetworkIconSquare.d.ts +1 -2
- package/dist/components/widget/NetworkIcon/NetworkIconSquare.d.ts.map +1 -1
- package/dist/components/widget/NetworkIcon/NetworkIconSquare.js +11 -14
- package/dist/components/widget/NetworkIcon/NetworkIconSquare.js.map +1 -1
- package/dist/components/widget/NetworkSwitcher/CompactNetworkSwitcher.d.ts.map +1 -1
- package/dist/components/widget/NetworkSwitcher/CompactNetworkSwitcher.js +16 -14
- package/dist/components/widget/NetworkSwitcher/CompactNetworkSwitcher.js.map +1 -1
- package/dist/components/widget/NetworkSwitcher/NetworkSwitcherDropdown.d.ts.map +1 -1
- package/dist/components/widget/NetworkSwitcher/NetworkSwitcherDropdown.js +81 -43
- package/dist/components/widget/NetworkSwitcher/NetworkSwitcherDropdown.js.map +1 -1
- package/dist/components/widget/NetworkSwitcher/types.d.ts +2 -2
- package/dist/components/widget/NetworkSwitcher/types.d.ts.map +1 -1
- package/dist/components/widget/NetworkWithIcon/NetworkIconWithChevron.d.ts +1 -0
- package/dist/components/widget/NetworkWithIcon/NetworkIconWithChevron.d.ts.map +1 -1
- package/dist/components/widget/NetworkWithIcon/NetworkIconWithChevron.js +101 -28
- package/dist/components/widget/NetworkWithIcon/NetworkIconWithChevron.js.map +1 -1
- package/dist/components/widget/NetworkWithIcon/NetworkWithIcon.d.ts +1 -0
- package/dist/components/widget/NetworkWithIcon/NetworkWithIcon.d.ts.map +1 -1
- package/dist/components/widget/NetworkWithIcon/NetworkWithIcon.js +67 -22
- package/dist/components/widget/NetworkWithIcon/NetworkWithIcon.js.map +1 -1
- package/dist/components/widget/NetworkWithIcon/types.d.ts +1 -2
- package/dist/components/widget/NetworkWithIcon/types.d.ts.map +1 -1
- package/dist/components/widget/OrderExpiryInput/index.d.ts +6 -0
- package/dist/components/widget/OrderExpiryInput/index.d.ts.map +1 -0
- package/dist/components/widget/OrderExpiryInput/index.js +222 -0
- package/dist/components/widget/OrderExpiryInput/index.js.map +1 -0
- package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/Controls.d.ts +10 -0
- package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/Controls.d.ts.map +1 -0
- package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/Controls.js +149 -0
- package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/Controls.js.map +1 -0
- package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/OtcOrderDetails.d.ts +7 -0
- package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/OtcOrderDetails.d.ts.map +1 -0
- package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/OtcOrderDetails.js +101 -0
- package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/OtcOrderDetails.js.map +1 -0
- package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/utils.d.ts +5 -0
- package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/utils.d.ts.map +1 -0
- package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/utils.js +18 -0
- package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/utils.js.map +1 -0
- package/dist/components/widget/OtcOrdersDrawer/OtcOrderListItem.d.ts +8 -0
- package/dist/components/widget/OtcOrdersDrawer/OtcOrderListItem.d.ts.map +1 -0
- package/dist/components/widget/OtcOrdersDrawer/OtcOrderListItem.js +182 -0
- package/dist/components/widget/OtcOrdersDrawer/OtcOrderListItem.js.map +1 -0
- package/dist/components/widget/OtcOrdersDrawer/OtcOrderTabs.d.ts +7 -0
- package/dist/components/widget/OtcOrdersDrawer/OtcOrderTabs.d.ts.map +1 -0
- package/dist/components/widget/OtcOrdersDrawer/OtcOrdersList.d.ts +12 -0
- package/dist/components/widget/OtcOrdersDrawer/OtcOrdersList.d.ts.map +1 -0
- package/dist/components/widget/OtcOrdersDrawer/constants.d.ts +6 -0
- package/dist/components/widget/OtcOrdersDrawer/constants.d.ts.map +1 -0
- package/dist/components/widget/OtcOrdersDrawer/constants.js +9 -0
- package/dist/components/widget/OtcOrdersDrawer/constants.js.map +1 -0
- package/dist/components/widget/OtcOrdersDrawer/types.d.ts +15 -0
- package/dist/components/widget/OtcOrdersDrawer/types.d.ts.map +1 -0
- package/dist/components/widget/OtcOrdersDrawer/utils.d.ts +18 -0
- package/dist/components/widget/OtcOrdersDrawer/utils.d.ts.map +1 -0
- package/dist/components/widget/OtcOrdersDrawer/utils.js +85 -0
- package/dist/components/widget/OtcOrdersDrawer/utils.js.map +1 -0
- package/dist/components/widget/PayReceiveInfo/PayReceiveInfo.d.ts +3 -0
- package/dist/components/widget/PayReceiveInfo/PayReceiveInfo.d.ts.map +1 -0
- package/dist/components/widget/PayReceiveInfo/PayReceiveInfo.js +150 -0
- package/dist/components/widget/PayReceiveInfo/PayReceiveInfo.js.map +1 -0
- package/dist/components/widget/PayReceiveInfo/types.d.ts +12 -0
- package/dist/components/widget/PayReceiveInfo/types.d.ts.map +1 -0
- package/dist/components/widget/ReceiverAddress/ReceiverAddress.d.ts +1 -1
- package/dist/components/widget/ReceiverAddress/ReceiverAddress.d.ts.map +1 -1
- package/dist/components/widget/ReceiverAddress/ReceiverAddress.js +61 -49
- package/dist/components/widget/ReceiverAddress/ReceiverAddress.js.map +1 -1
- package/dist/components/widget/ReceiverAddress/state/receiverAddressAtom.d.ts +3 -6
- package/dist/components/widget/ReceiverAddress/state/receiverAddressAtom.d.ts.map +1 -1
- package/dist/components/widget/ReceiverAddress/state/receiverAddressAtom.js +3 -3
- package/dist/components/widget/ReceiverAddress/state/receiverAddressAtom.js.map +1 -1
- package/dist/components/widget/ReceiverAddress/state/subscriptions.d.ts.map +1 -1
- package/dist/components/widget/ReceiverAddress/state/subscriptions.js +8 -2
- package/dist/components/widget/ReceiverAddress/state/subscriptions.js.map +1 -1
- package/dist/components/widget/ReceiverAddress/state/types.d.ts +7 -0
- package/dist/components/widget/ReceiverAddress/state/types.d.ts.map +1 -0
- package/dist/components/widget/ReceiverAddress/types.d.ts +4 -1
- package/dist/components/widget/ReceiverAddress/types.d.ts.map +1 -1
- package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcControls.d.ts +11 -0
- package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcControls.d.ts.map +1 -0
- package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcControls.js +75 -0
- package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcControls.js.map +1 -0
- package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcReviewAndConfirm.d.ts +7 -0
- package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcReviewAndConfirm.d.ts.map +1 -0
- package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcReviewAndConfirm.js +202 -0
- package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcReviewAndConfirm.js.map +1 -0
- package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/utils.d.ts +25 -0
- package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/utils.d.ts.map +1 -0
- package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/utils.js +114 -0
- package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/utils.js.map +1 -0
- package/dist/components/widget/SelectToken/SelectTokenButton.d.ts +2 -0
- package/dist/components/widget/SelectToken/SelectTokenButton.d.ts.map +1 -1
- package/dist/components/widget/SelectToken/SelectTokenButton.js +135 -88
- package/dist/components/widget/SelectToken/SelectTokenButton.js.map +1 -1
- package/dist/components/widget/SelectToken/types.d.ts +1 -0
- package/dist/components/widget/SelectToken/types.d.ts.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/SwapModeSwitcherExpandable.d.ts.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/SwapModeSwitcherExpandable.js +130 -59
- package/dist/components/widget/SwapModeSwitcher/SwapModeSwitcherExpandable.js.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/state/swapModeActionsAtom.js +2 -2
- package/dist/components/widget/SwapModeSwitcher/state/swapModeActionsAtom.js.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.d.ts +2 -2
- package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.d.ts.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js +7 -2
- package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js.map +1 -1
- package/dist/components/widget/Tabs/Tabs.d.ts +13 -0
- package/dist/components/widget/Tabs/Tabs.d.ts.map +1 -0
- package/dist/components/widget/Tabs/Tabs.js +103 -0
- package/dist/components/widget/Tabs/Tabs.js.map +1 -0
- package/dist/components/widget/TokenBadge/TokenBadge.d.ts.map +1 -1
- package/dist/components/widget/TokenBadge/TokenBadge.js +81 -56
- package/dist/components/widget/TokenBadge/TokenBadge.js.map +1 -1
- package/dist/components/widget/TokenBadge/types.d.ts +1 -0
- package/dist/components/widget/TokenBadge/types.d.ts.map +1 -1
- package/dist/components/widget/TokenInput/EmptyInput.d.ts +1 -1
- package/dist/components/widget/TokenInput/EmptyInput.d.ts.map +1 -1
- package/dist/components/widget/TokenInput/EmptyInput.js +38 -16
- package/dist/components/widget/TokenInput/EmptyInput.js.map +1 -1
- package/dist/components/widget/TokenInput/index.d.ts.map +1 -1
- package/dist/components/widget/TokenInput/index.js +125 -118
- package/dist/components/widget/TokenInput/index.js.map +1 -1
- package/dist/components/widget/TokenInput/types.d.ts +3 -1
- package/dist/components/widget/TokenInput/types.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.d.ts +4 -2
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js +12 -10
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/FillOtcOrderTradeOverview.d.ts +8 -0
- package/dist/components/widget/TradeOverview/FillOtcOrderTradeOverview.d.ts.map +1 -0
- package/dist/components/widget/TradeOverview/FillOtcOrderTradeOverview.js +51 -0
- package/dist/components/widget/TradeOverview/FillOtcOrderTradeOverview.js.map +1 -0
- package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.d.ts +8 -0
- package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.d.ts.map +1 -0
- package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.js +55 -0
- package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.js.map +1 -0
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.d.ts +3 -2
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.js +12 -10
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.d.ts +8 -0
- package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.d.ts.map +1 -0
- package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.js +55 -0
- package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.js.map +1 -0
- package/dist/components/widget/TradeOverview/Step/types.d.ts +1 -1
- package/dist/components/widget/TradeOverview/Step/types.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteFooter.d.ts +2 -1
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteFooter.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteFooter.js +45 -18
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteFooter.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteHeader.d.ts +0 -2
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteHeader.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteHeader.js +115 -30
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteHeader.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/constants.d.ts +3 -0
- package/dist/components/widget/TradeOverview/TradeComplete/constants.d.ts.map +1 -0
- package/dist/components/widget/TradeOverview/TradeComplete/constants.js +10 -0
- package/dist/components/widget/TradeOverview/TradeComplete/constants.js.map +1 -0
- package/dist/components/widget/TradeOverview/TradeComplete/useTradeCompleteDetails.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/useTradeCompleteDetails.js +10 -5
- package/dist/components/widget/TradeOverview/TradeComplete/useTradeCompleteDetails.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/utils.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/utils.js +84 -0
- package/dist/components/widget/TradeOverview/TradeComplete/utils.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeDetailsDisplay.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeDetailsDisplay.js +3 -0
- package/dist/components/widget/TradeOverview/TradeDetailsDisplay.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/index.d.ts +3 -1
- package/dist/components/widget/TradeOverview/TradeError/index.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/index.js +16 -14
- package/dist/components/widget/TradeOverview/TradeError/index.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/utils.d.ts +2 -1
- package/dist/components/widget/TradeOverview/TradeError/utils.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/utils.js +8 -3
- package/dist/components/widget/TradeOverview/TradeError/utils.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverview.d.ts +10 -4
- package/dist/components/widget/TradeOverview/TradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverview.js +135 -108
- package/dist/components/widget/TradeOverview/TradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverviewFooter.d.ts +4 -4
- package/dist/components/widget/TradeOverview/TradeOverviewFooter.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverviewFooter.js +23 -23
- package/dist/components/widget/TradeOverview/TradeOverviewFooter.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverviewHeader.d.ts +1 -1
- package/dist/components/widget/TradeOverview/TradeOverviewHeader.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverviewHeader.js +9 -28
- package/dist/components/widget/TradeOverview/TradeOverviewHeader.js.map +1 -1
- package/dist/components/widget/TradeOverview/steps.d.ts +85 -0
- package/dist/components/widget/TradeOverview/steps.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/steps.js +58 -1
- package/dist/components/widget/TradeOverview/steps.js.map +1 -1
- package/dist/components/widget/TradeOverview/tradeFlowContext.d.ts +6 -6
- package/dist/components/widget/TradeOverview/tradeFlowContext.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/tradeFlowContext.js.map +1 -1
- package/dist/components/widget/TradeParameters/DeltaParameter.d.ts +6 -1
- package/dist/components/widget/TradeParameters/DeltaParameter.d.ts.map +1 -1
- package/dist/components/widget/TradeParameters/DeltaParameter.js +39 -40
- package/dist/components/widget/TradeParameters/DeltaParameter.js.map +1 -1
- package/dist/components/widget/TradeParameters/EIP1559Parameter.d.ts +6 -1
- package/dist/components/widget/TradeParameters/EIP1559Parameter.d.ts.map +1 -1
- package/dist/components/widget/TradeParameters/EIP1559Parameter.js +34 -33
- package/dist/components/widget/TradeParameters/EIP1559Parameter.js.map +1 -1
- package/dist/components/widget/TradeParameters/SlippageParameter/CustomSlippageInput.d.ts.map +1 -1
- package/dist/components/widget/TradeParameters/SlippageParameter/CustomSlippageInput.js +15 -5
- package/dist/components/widget/TradeParameters/SlippageParameter/CustomSlippageInput.js.map +1 -1
- package/dist/components/widget/TradeParameters/SlippageParameter/SlippageParameter.d.ts +5 -3
- package/dist/components/widget/TradeParameters/SlippageParameter/SlippageParameter.d.ts.map +1 -1
- package/dist/components/widget/TradeParameters/SlippageParameter/SlippageParameter.js +21 -21
- package/dist/components/widget/TradeParameters/SlippageParameter/SlippageParameter.js.map +1 -1
- package/dist/components/widget/TradeParameters/SlippageParameter/hooks/types.d.ts +2 -0
- package/dist/components/widget/TradeParameters/SlippageParameter/hooks/types.d.ts.map +1 -1
- package/dist/components/widget/TradeParameters/SlippageParameter/hooks/useCustomSlippageProps.d.ts +1 -1
- package/dist/components/widget/TradeParameters/SlippageParameter/hooks/useCustomSlippageProps.d.ts.map +1 -1
- package/dist/components/widget/TradeParameters/SlippageParameter/hooks/useCustomSlippageProps.js +49 -53
- package/dist/components/widget/TradeParameters/SlippageParameter/hooks/useCustomSlippageProps.js.map +1 -1
- package/dist/components/widget/TradeParameters/TradeParameters.d.ts +5 -4
- package/dist/components/widget/TradeParameters/TradeParameters.d.ts.map +1 -1
- package/dist/components/widget/TradeParameters/TradeParameters.js +83 -50
- package/dist/components/widget/TradeParameters/TradeParameters.js.map +1 -1
- package/dist/components/widget/TradeParameters/TransactionSpeedParameter.d.ts +7 -1
- package/dist/components/widget/TradeParameters/TransactionSpeedParameter.d.ts.map +1 -1
- package/dist/components/widget/TradeParameters/TransactionSpeedParameter.js +110 -82
- package/dist/components/widget/TradeParameters/TransactionSpeedParameter.js.map +1 -1
- package/dist/components/widget/TradeParameters/state/deltaParamAtom.d.ts +1 -1
- package/dist/components/widget/TradeParameters/state/deltaParamAtom.d.ts.map +1 -1
- package/dist/components/widget/TradeParameters/state/deltaParamAtom.js +4 -4
- package/dist/components/widget/TradeParameters/state/deltaParamAtom.js.map +1 -1
- package/dist/components/widget/TradeParameters/useTempTradeParameters.d.ts +15 -0
- package/dist/components/widget/TradeParameters/useTempTradeParameters.d.ts.map +1 -0
- package/dist/components/widget/TradeParameters/useTempTradeParameters.js +155 -0
- package/dist/components/widget/TradeParameters/useTempTradeParameters.js.map +1 -0
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.d.ts +7 -0
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.d.ts.map +1 -0
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.js +61 -0
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.js.map +1 -0
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/TransactionDetails.d.ts +6 -0
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/TransactionDetails.d.ts.map +1 -0
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/TransactionDetails.js +82 -0
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/TransactionDetails.js.map +1 -0
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/utils.d.ts +15 -0
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/utils.d.ts.map +1 -0
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/utils.js +88 -0
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/utils.js.map +1 -0
- package/dist/components/widget/TransactionDetails/TransactionListItem.d.ts +13 -0
- package/dist/components/widget/TransactionDetails/TransactionListItem.d.ts.map +1 -0
- package/dist/components/widget/TransactionDetails/TransactionListItem.js +368 -0
- package/dist/components/widget/TransactionDetails/TransactionListItem.js.map +1 -0
- package/dist/components/widget/TransactionDetails/types.d.ts +13 -0
- package/dist/components/widget/TransactionDetails/types.d.ts.map +1 -0
- package/dist/components/widget/TransactionDetails/utils.d.ts +16 -0
- package/dist/components/widget/TransactionDetails/utils.d.ts.map +1 -0
- package/dist/components/widget/TransactionDetails/utils.js +79 -0
- package/dist/components/widget/TransactionDetails/utils.js.map +1 -0
- package/dist/components/widget/Warning/InsufficientBalanceMessage.d.ts.map +1 -1
- package/dist/components/widget/Warning/InsufficientBalanceMessage.js +3 -2
- package/dist/components/widget/Warning/InsufficientBalanceMessage.js.map +1 -1
- package/dist/components/widget/Warning/Warning.d.ts +4 -1
- package/dist/components/widget/Warning/Warning.d.ts.map +1 -1
- package/dist/components/widget/Warning/Warning.js +47 -2
- package/dist/components/widget/Warning/Warning.js.map +1 -1
- package/dist/components/widget/Warning/types.d.ts +2 -2
- package/dist/components/widget/Warning/types.d.ts.map +1 -1
- package/dist/components/widget/WrapEth/WrapEthContent.d.ts +4 -2
- package/dist/components/widget/WrapEth/WrapEthContent.d.ts.map +1 -1
- package/dist/components/widget/WrapEth/WrapEthContent.js +63 -59
- package/dist/components/widget/WrapEth/WrapEthContent.js.map +1 -1
- package/dist/components/widget/WrapEth/WrapEthDrawerButton.d.ts.map +1 -1
- package/dist/components/widget/WrapEth/WrapEthDrawerButton.js +97 -41
- package/dist/components/widget/WrapEth/WrapEthDrawerButton.js.map +1 -1
- package/dist/components/widget/WrapEth/hooks/types.d.ts +4 -0
- package/dist/components/widget/WrapEth/hooks/types.d.ts.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useSubmitDepositTxMutation.d.ts +3 -1
- package/dist/components/widget/WrapEth/hooks/useSubmitDepositTxMutation.d.ts.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useSubmitDepositTxMutation.js +91 -88
- package/dist/components/widget/WrapEth/hooks/useSubmitDepositTxMutation.js.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.d.ts +2 -0
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.d.ts.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js +233 -16
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js.map +1 -1
- package/dist/configurator/Configurator.d.ts.map +1 -1
- package/dist/core/ConnectWalletDrawerButton.d.ts.map +1 -1
- package/dist/core/ConnectWalletDrawerButton.js +39 -29
- package/dist/core/ConnectWalletDrawerButton.js.map +1 -1
- package/dist/core/LimitOrderButton.d.ts +2 -0
- package/dist/core/LimitOrderButton.d.ts.map +1 -0
- package/dist/core/LimitOrderButton.js +158 -0
- package/dist/core/LimitOrderButton.js.map +1 -0
- package/dist/core/LimitOrderDetails.d.ts +2 -0
- package/dist/core/LimitOrderDetails.d.ts.map +1 -0
- package/dist/core/LimitOrderDetails.js +24 -0
- package/dist/core/LimitOrderDetails.js.map +1 -0
- package/dist/core/OtcOrderButton.d.ts +2 -0
- package/dist/core/OtcOrderButton.d.ts.map +1 -0
- package/dist/core/OtcOrderButton.js +158 -0
- package/dist/core/OtcOrderButton.js.map +1 -0
- package/dist/core/OtcOrderDetails.d.ts +2 -0
- package/dist/core/OtcOrderDetails.d.ts.map +1 -0
- package/dist/core/OtcOrderDetails.js +24 -0
- package/dist/core/OtcOrderDetails.js.map +1 -0
- package/dist/core/TradeFlowButton.d.ts +17 -6
- package/dist/core/TradeFlowButton.d.ts.map +1 -1
- package/dist/core/TradeFlowButton.js +796 -128
- package/dist/core/TradeFlowButton.js.map +1 -1
- package/dist/core/Updaters.d.ts.map +1 -1
- package/dist/core/Updaters.js +11 -1
- package/dist/core/Updaters.js.map +1 -1
- package/dist/core/Warnings.d.ts +2 -0
- package/dist/core/Warnings.d.ts.map +1 -0
- package/dist/core/Warnings.js +45 -0
- package/dist/core/Warnings.js.map +1 -0
- package/dist/core/across/utils.d.ts +5 -3
- package/dist/core/across/utils.d.ts.map +1 -1
- package/dist/core/across/utils.js +3 -4
- package/dist/core/across/utils.js.map +1 -1
- package/dist/core/button/hooks/useWidgetButtonExtraProps.d.ts +11 -2
- package/dist/core/button/hooks/useWidgetButtonExtraProps.d.ts.map +1 -1
- package/dist/core/button/hooks/useWidgetButtonExtraProps.js +171 -21
- package/dist/core/button/hooks/useWidgetButtonExtraProps.js.map +1 -1
- package/dist/core/constants.d.ts +2 -0
- package/dist/core/constants.d.ts.map +1 -1
- package/dist/core/constants.js +3 -1
- package/dist/core/constants.js.map +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +462 -120
- package/dist/core/index.js.map +1 -1
- package/dist/core/inputs/hooks/types.d.ts +1 -1
- package/dist/core/inputs/hooks/types.d.ts.map +1 -1
- package/dist/core/inputs/hooks/useTokenFromInputProps.d.ts.map +1 -1
- package/dist/core/inputs/hooks/useTokenFromInputProps.js +235 -168
- package/dist/core/inputs/hooks/useTokenFromInputProps.js.map +1 -1
- package/dist/core/inputs/hooks/useTokenSwitcherProps.d.ts +1 -1
- package/dist/core/inputs/hooks/useTokenSwitcherProps.d.ts.map +1 -1
- package/dist/core/inputs/hooks/useTokenSwitcherProps.js +6 -6
- package/dist/core/inputs/hooks/useTokenSwitcherProps.js.map +1 -1
- package/dist/core/inputs/hooks/useTokenToInputProps.d.ts.map +1 -1
- package/dist/core/inputs/hooks/useTokenToInputProps.js +311 -192
- package/dist/core/inputs/hooks/useTokenToInputProps.js.map +1 -1
- package/dist/core/inputs/state/common.d.ts +26 -0
- package/dist/core/inputs/state/common.d.ts.map +1 -0
- package/dist/core/inputs/state/common.js +91 -0
- package/dist/core/inputs/state/common.js.map +1 -0
- package/dist/core/inputs/state/inputAmountAtom.d.ts.map +1 -1
- package/dist/core/inputs/state/inputAmountAtom.js +3 -3
- package/dist/core/inputs/state/inputAmountAtom.js.map +1 -1
- package/dist/core/inputs/state/selectedTokenActionsAtom.d.ts +4 -4
- package/dist/core/inputs/state/selectedTokenActionsAtom.d.ts.map +1 -1
- package/dist/core/inputs/state/selectedTokenActionsAtom.js +88 -41
- package/dist/core/inputs/state/selectedTokenActionsAtom.js.map +1 -1
- package/dist/core/inputs/state/selectedTokenAtom.d.ts +4 -8
- package/dist/core/inputs/state/selectedTokenAtom.d.ts.map +1 -1
- package/dist/core/inputs/state/selectedTokenAtom.js +8 -27
- package/dist/core/inputs/state/selectedTokenAtom.js.map +1 -1
- package/dist/core/inputs/state/setTokenByAddressAtom.d.ts +20 -0
- package/dist/core/inputs/state/setTokenByAddressAtom.d.ts.map +1 -0
- package/dist/core/inputs/state/setTokenByAddressAtom.js +241 -0
- package/dist/core/inputs/state/setTokenByAddressAtom.js.map +1 -0
- package/dist/core/inputs/state/store.d.ts +1 -5
- package/dist/core/inputs/state/store.d.ts.map +1 -1
- package/dist/core/inputs/state/subscriptions.d.ts +1 -1
- package/dist/core/inputs/state/subscriptions.d.ts.map +1 -1
- package/dist/core/inputs/state/subscriptions.js +10 -9
- package/dist/core/inputs/state/subscriptions.js.map +1 -1
- package/dist/core/limit/state/constants.d.ts +33 -0
- package/dist/core/limit/state/constants.d.ts.map +1 -0
- package/dist/core/limit/state/constants.js +26 -0
- package/dist/core/limit/state/constants.js.map +1 -0
- package/dist/core/limit/state/currentLimitInputAtom.d.ts +4 -0
- package/dist/core/limit/state/currentLimitInputAtom.d.ts.map +1 -0
- package/dist/core/limit/state/currentLimitInputAtom.js +6 -0
- package/dist/core/limit/state/currentLimitInputAtom.js.map +1 -0
- package/dist/core/limit/state/deadlineAtom.d.ts +12 -0
- package/dist/core/limit/state/deadlineAtom.d.ts.map +1 -0
- package/dist/core/limit/state/deadlineAtom.js +18 -0
- package/dist/core/limit/state/deadlineAtom.js.map +1 -0
- package/dist/core/limit/state/isLimitPriceLockedAtom.d.ts +4 -0
- package/dist/core/limit/state/isLimitPriceLockedAtom.d.ts.map +1 -0
- package/dist/core/limit/state/isLimitPriceLockedAtom.js +6 -0
- package/dist/core/limit/state/isLimitPriceLockedAtom.js.map +1 -0
- package/dist/core/limit/state/isLimitPriceReversedAtom.d.ts +4 -0
- package/dist/core/limit/state/isLimitPriceReversedAtom.d.ts.map +1 -0
- package/dist/core/limit/state/isLimitPriceReversedAtom.js +6 -0
- package/dist/core/limit/state/isLimitPriceReversedAtom.js.map +1 -0
- package/dist/core/limit/state/limitInputActionsAtom.d.ts +26 -0
- package/dist/core/limit/state/limitInputActionsAtom.d.ts.map +1 -0
- package/dist/core/limit/state/limitInputActionsAtom.js +74 -0
- package/dist/core/limit/state/limitInputActionsAtom.js.map +1 -0
- package/dist/core/limit/state/limitInputAmountAtom.d.ts +14 -0
- package/dist/core/limit/state/limitInputAmountAtom.d.ts.map +1 -0
- package/dist/core/limit/state/limitInputAmountAtom.js +29 -0
- package/dist/core/limit/state/limitInputAmountAtom.js.map +1 -0
- package/dist/core/limit/state/selectedTokenActionsAtom.d.ts +11 -0
- package/dist/core/limit/state/selectedTokenActionsAtom.d.ts.map +1 -0
- package/dist/core/limit/state/selectedTokenActionsAtom.js +69 -0
- package/dist/core/limit/state/selectedTokenActionsAtom.js.map +1 -0
- package/dist/core/limit/state/selectedTokenAtom.d.ts +12 -0
- package/dist/core/limit/state/selectedTokenAtom.d.ts.map +1 -0
- package/dist/core/limit/state/selectedTokenAtom.js +23 -0
- package/dist/core/limit/state/selectedTokenAtom.js.map +1 -0
- package/dist/core/limit/state/utils.d.ts +8 -0
- package/dist/core/limit/state/utils.d.ts.map +1 -0
- package/dist/core/limit/state/utils.js +66 -0
- package/dist/core/limit/state/utils.js.map +1 -0
- package/dist/core/limit/types.d.ts +12 -0
- package/dist/core/limit/types.d.ts.map +1 -0
- package/dist/core/limit/useLimitDetailsListProps.d.ts +3 -0
- package/dist/core/limit/useLimitDetailsListProps.d.ts.map +1 -0
- package/dist/core/limit/useLimitDetailsListProps.js +69 -0
- package/dist/core/limit/useLimitDetailsListProps.js.map +1 -0
- package/dist/core/limit/useLimitNotSupported.d.ts +3 -0
- package/dist/core/limit/useLimitNotSupported.d.ts.map +1 -0
- package/dist/core/limit/useLimitNotSupported.js +13 -0
- package/dist/core/limit/useLimitNotSupported.js.map +1 -0
- package/dist/core/limit/useLimitPriceDifference.d.ts +3 -0
- package/dist/core/limit/useLimitPriceDifference.d.ts.map +1 -0
- package/dist/core/limit/useLimitPriceDifference.js +52 -0
- package/dist/core/limit/useLimitPriceDifference.js.map +1 -0
- package/dist/core/limit/useLimitPriceInputProps.d.ts +3 -0
- package/dist/core/limit/useLimitPriceInputProps.d.ts.map +1 -0
- package/dist/core/limit/useLimitPriceInputProps.js +138 -0
- package/dist/core/limit/useLimitPriceInputProps.js.map +1 -0
- package/dist/core/limit/useLimitRate.d.ts +3 -0
- package/dist/core/limit/useLimitRate.d.ts.map +1 -0
- package/dist/core/limit/useLimitRate.js +155 -0
- package/dist/core/limit/useLimitRate.js.map +1 -0
- package/dist/core/limit/useLimitTokenFromInputProps.d.ts +4 -0
- package/dist/core/limit/useLimitTokenFromInputProps.d.ts.map +1 -0
- package/dist/core/limit/useLimitTokenFromInputProps.js +412 -0
- package/dist/core/limit/useLimitTokenFromInputProps.js.map +1 -0
- package/dist/core/limit/useLimitTokenSwitcherProps.d.ts +3 -0
- package/dist/core/limit/useLimitTokenSwitcherProps.d.ts.map +1 -0
- package/dist/core/limit/useLimitTokenSwitcherProps.js +52 -0
- package/dist/core/limit/useLimitTokenSwitcherProps.js.map +1 -0
- package/dist/core/limit/useLimitTokenToInputProps.d.ts +3 -0
- package/dist/core/limit/useLimitTokenToInputProps.d.ts.map +1 -0
- package/dist/core/limit/useLimitTokenToInputProps.js +164 -0
- package/dist/core/limit/useLimitTokenToInputProps.js.map +1 -0
- package/dist/core/logger.d.ts.map +1 -1
- package/dist/core/logger.js +18 -7
- package/dist/core/logger.js.map +1 -1
- package/dist/core/otc/state/currentOtcInputAtom.d.ts +4 -0
- package/dist/core/otc/state/currentOtcInputAtom.d.ts.map +1 -0
- package/dist/core/otc/state/currentOtcInputAtom.js +6 -0
- package/dist/core/otc/state/currentOtcInputAtom.js.map +1 -0
- package/dist/core/otc/state/deadlineAtom.d.ts +7 -0
- package/dist/core/otc/state/deadlineAtom.d.ts.map +1 -0
- package/dist/core/otc/state/deadlineAtom.js +19 -0
- package/dist/core/otc/state/deadlineAtom.js.map +1 -0
- package/dist/core/otc/state/isOtcPriceLockedAtom.d.ts +4 -0
- package/dist/core/otc/state/isOtcPriceLockedAtom.d.ts.map +1 -0
- package/dist/core/otc/state/isOtcPriceLockedAtom.js +6 -0
- package/dist/core/otc/state/isOtcPriceLockedAtom.js.map +1 -0
- package/dist/core/otc/state/isOtcPriceReversedAtom.d.ts +4 -0
- package/dist/core/otc/state/isOtcPriceReversedAtom.d.ts.map +1 -0
- package/dist/core/otc/state/isOtcPriceReversedAtom.js +6 -0
- package/dist/core/otc/state/isOtcPriceReversedAtom.js.map +1 -0
- package/dist/core/otc/state/otcInputActionsAtom.d.ts +26 -0
- package/dist/core/otc/state/otcInputActionsAtom.d.ts.map +1 -0
- package/dist/core/otc/state/otcInputActionsAtom.js +74 -0
- package/dist/core/otc/state/otcInputActionsAtom.js.map +1 -0
- package/dist/core/otc/state/otcInputAmountAtom.d.ts +14 -0
- package/dist/core/otc/state/otcInputAmountAtom.d.ts.map +1 -0
- package/dist/core/otc/state/otcInputAmountAtom.js +29 -0
- package/dist/core/otc/state/otcInputAmountAtom.js.map +1 -0
- package/dist/core/otc/state/receiverAddressAtom.d.ts +7 -0
- package/dist/core/otc/state/receiverAddressAtom.d.ts.map +1 -0
- package/dist/core/otc/state/receiverAddressAtom.js +39 -0
- package/dist/core/otc/state/receiverAddressAtom.js.map +1 -0
- package/dist/core/otc/state/selectedTokenActionsAtom.d.ts +11 -0
- package/dist/core/otc/state/selectedTokenActionsAtom.d.ts.map +1 -0
- package/dist/core/otc/state/selectedTokenActionsAtom.js +81 -0
- package/dist/core/otc/state/selectedTokenActionsAtom.js.map +1 -0
- package/dist/core/otc/state/selectedTokenAtom.d.ts +12 -0
- package/dist/core/otc/state/selectedTokenAtom.d.ts.map +1 -0
- package/dist/core/otc/state/selectedTokenAtom.js +23 -0
- package/dist/core/otc/state/selectedTokenAtom.js.map +1 -0
- package/dist/core/otc/useOtcDetailsListProps.d.ts +3 -0
- package/dist/core/otc/useOtcDetailsListProps.d.ts.map +1 -0
- package/dist/core/otc/useOtcDetailsListProps.js +69 -0
- package/dist/core/otc/useOtcDetailsListProps.js.map +1 -0
- package/dist/core/otc/useOtcNotSupported.d.ts +3 -0
- package/dist/core/otc/useOtcNotSupported.d.ts.map +1 -0
- package/dist/core/otc/useOtcNotSupported.js +13 -0
- package/dist/core/otc/useOtcNotSupported.js.map +1 -0
- package/dist/core/otc/useOtcPriceDifference.d.ts +3 -0
- package/dist/core/otc/useOtcPriceDifference.d.ts.map +1 -0
- package/dist/core/otc/useOtcPriceDifference.js +52 -0
- package/dist/core/otc/useOtcPriceDifference.js.map +1 -0
- package/dist/core/otc/useOtcPriceInputProps.d.ts +3 -0
- package/dist/core/otc/useOtcPriceInputProps.d.ts.map +1 -0
- package/dist/core/otc/useOtcPriceInputProps.js +138 -0
- package/dist/core/otc/useOtcPriceInputProps.js.map +1 -0
- package/dist/core/otc/useOtcTokenFromInputProps.d.ts +4 -0
- package/dist/core/otc/useOtcTokenFromInputProps.d.ts.map +1 -0
- package/dist/core/otc/useOtcTokenFromInputProps.js +412 -0
- package/dist/core/otc/useOtcTokenFromInputProps.js.map +1 -0
- package/dist/core/otc/useOtcTokenSwitcherProps.d.ts +3 -0
- package/dist/core/otc/useOtcTokenSwitcherProps.d.ts.map +1 -0
- package/dist/core/otc/useOtcTokenSwitcherProps.js +52 -0
- package/dist/core/otc/useOtcTokenSwitcherProps.js.map +1 -0
- package/dist/core/otc/useOtcTokenToInputProps.d.ts +3 -0
- package/dist/core/otc/useOtcTokenToInputProps.d.ts.map +1 -0
- package/dist/core/otc/useOtcTokenToInputProps.js +164 -0
- package/dist/core/otc/useOtcTokenToInputProps.js.map +1 -0
- package/dist/core/state/chainToAtom.d.ts +2 -2
- package/dist/core/state/chainToAtom.d.ts.map +1 -1
- package/dist/core/state/chainToAtom.js +13 -11
- package/dist/core/state/chainToAtom.js.map +1 -1
- package/dist/core/state/configActionsAtom.d.ts.map +1 -1
- package/dist/core/state/configActionsAtom.js +3 -3
- package/dist/core/state/configActionsAtom.js.map +1 -1
- package/dist/core/state/configAtom.d.ts +4 -1
- package/dist/core/state/configAtom.d.ts.map +1 -1
- package/dist/core/state/configAtom.js +2 -1
- package/dist/core/state/configAtom.js.map +1 -1
- package/dist/core/state/isCrosschainAtom.d.ts.map +1 -1
- package/dist/core/state/isCrosschainAtom.js +3 -3
- package/dist/core/state/isCrosschainAtom.js.map +1 -1
- package/dist/core/state/tradeModeAtom.d.ts +6 -0
- package/dist/core/state/tradeModeAtom.d.ts.map +1 -0
- package/dist/core/state/tradeModeAtom.js +9 -0
- package/dist/core/state/tradeModeAtom.js.map +1 -0
- package/dist/core/state/widgetEventsAtom.d.ts +7 -0
- package/dist/core/state/widgetEventsAtom.d.ts.map +1 -0
- package/dist/core/state/widgetEventsAtom.js +221 -0
- package/dist/core/state/widgetEventsAtom.js.map +1 -0
- package/dist/core/subscriptions.d.ts.map +1 -1
- package/dist/core/subscriptions.js +2 -0
- package/dist/core/subscriptions.js.map +1 -1
- package/dist/core/swapDetails/fees.d.ts.map +1 -1
- package/dist/core/swapDetails/fees.js +5 -2
- package/dist/core/swapDetails/fees.js.map +1 -1
- package/dist/core/swapDetails/useSwapDetailsListProps.js +3 -3
- package/dist/core/swapDetails/useSwapDetailsListProps.js.map +1 -1
- package/dist/core/types.d.ts +6 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/events/effects/formInput.d.ts +10 -0
- package/dist/events/effects/formInput.d.ts.map +1 -0
- package/dist/events/effects/formInput.js +55 -0
- package/dist/events/effects/formInput.js.map +1 -0
- package/dist/events/effects/price.d.ts +4 -0
- package/dist/events/effects/price.d.ts.map +1 -0
- package/dist/events/effects/price.js +52 -0
- package/dist/events/effects/price.js.map +1 -0
- package/dist/events/effects/swapMode.d.ts +2 -0
- package/dist/events/effects/swapMode.d.ts.map +1 -0
- package/dist/events/effects/swapMode.js +47 -0
- package/dist/events/effects/swapMode.js.map +1 -0
- package/dist/events/getters/limit.d.ts +6 -0
- package/dist/events/getters/limit.d.ts.map +1 -0
- package/dist/events/getters/limit.js +38 -0
- package/dist/events/getters/limit.js.map +1 -0
- package/dist/events/getters/otc.d.ts +6 -0
- package/dist/events/getters/otc.d.ts.map +1 -0
- package/dist/events/getters/otc.js +39 -0
- package/dist/events/getters/otc.js.map +1 -0
- package/dist/events/getters/settings.d.ts +4 -0
- package/dist/events/getters/settings.d.ts.map +1 -0
- package/dist/events/getters/settings.js +20 -0
- package/dist/events/getters/settings.js.map +1 -0
- package/dist/events/getters/swap.d.ts +6 -0
- package/dist/events/getters/swap.d.ts.map +1 -0
- package/dist/events/getters/swap.js +58 -0
- package/dist/events/getters/swap.js.map +1 -0
- package/dist/events/getters/widgetState.d.ts +4 -0
- package/dist/events/getters/widgetState.d.ts.map +1 -0
- package/dist/events/getters/widgetState.js +22 -0
- package/dist/events/getters/widgetState.js.map +1 -0
- package/dist/events/hooks/useActivateEffects.d.ts +2 -0
- package/dist/events/hooks/useActivateEffects.d.ts.map +1 -0
- package/dist/events/hooks/useActivateEffects.js +11 -0
- package/dist/events/hooks/useActivateEffects.js.map +1 -0
- package/dist/events/hooks/useOnWalletConnect.d.ts +2 -0
- package/dist/events/hooks/useOnWalletConnect.d.ts.map +1 -0
- package/dist/events/hooks/useOnWalletConnect.js +50 -0
- package/dist/events/hooks/useOnWalletConnect.js.map +1 -0
- package/dist/events/types/approve.d.ts +46 -0
- package/dist/events/types/approve.d.ts.map +1 -0
- package/dist/events/types/cancel.d.ts +38 -0
- package/dist/events/types/cancel.d.ts.map +1 -0
- package/dist/events/types/common.d.ts +62 -0
- package/dist/events/types/common.d.ts.map +1 -0
- package/dist/events/types/connectWallet.d.ts +18 -0
- package/dist/events/types/connectWallet.d.ts.map +1 -0
- package/dist/events/types/fill.d.ts +37 -0
- package/dist/events/types/fill.d.ts.map +1 -0
- package/dist/events/types/formInput.d.ts +25 -0
- package/dist/events/types/formInput.d.ts.map +1 -0
- package/dist/events/types/index.d.ts +38 -0
- package/dist/events/types/index.d.ts.map +1 -0
- package/dist/events/types/limit.d.ts +26 -0
- package/dist/events/types/limit.d.ts.map +1 -0
- package/dist/events/types/otc.d.ts +26 -0
- package/dist/events/types/otc.d.ts.map +1 -0
- package/dist/events/types/priceChange.d.ts +19 -0
- package/dist/events/types/priceChange.d.ts.map +1 -0
- package/dist/events/types/settings.d.ts +14 -0
- package/dist/events/types/settings.d.ts.map +1 -0
- package/dist/events/types/swap.d.ts +51 -0
- package/dist/events/types/swap.d.ts.map +1 -0
- package/dist/events/types/wrapETH.d.ts +27 -0
- package/dist/events/types/wrapETH.d.ts.map +1 -0
- package/dist/hooks/batch/useAwaitCalls.d.ts +29 -0
- package/dist/hooks/batch/useAwaitCalls.d.ts.map +1 -0
- package/dist/hooks/batch/useAwaitCalls.js +55 -0
- package/dist/hooks/batch/useAwaitCalls.js.map +1 -0
- package/dist/hooks/batch/useBatchWithApproveTxs.d.ts +41 -0
- package/dist/hooks/batch/useBatchWithApproveTxs.d.ts.map +1 -0
- package/dist/hooks/batch/useBatchWithApproveTxs.js +95 -0
- package/dist/hooks/batch/useBatchWithApproveTxs.js.map +1 -0
- package/dist/hooks/batch/useCanBatchTxs.d.ts +12 -0
- package/dist/hooks/batch/useCanBatchTxs.d.ts.map +1 -0
- package/dist/hooks/batch/useCanBatchTxs.js +72 -0
- package/dist/hooks/batch/useCanBatchTxs.js.map +1 -0
- package/dist/hooks/batch/useSendBatchTx.d.ts +25 -0
- package/dist/hooks/batch/useSendBatchTx.d.ts.map +1 -0
- package/dist/hooks/batch/useSendBatchTx.js +90 -0
- package/dist/hooks/batch/useSendBatchTx.js.map +1 -0
- package/dist/hooks/batch/useShouldBatchTxs.d.ts +18 -0
- package/dist/hooks/batch/useShouldBatchTxs.d.ts.map +1 -0
- package/dist/hooks/connectors/useIsConnectedSafe.d.ts +3 -0
- package/dist/hooks/connectors/useIsConnectedSafe.d.ts.map +1 -0
- package/dist/hooks/connectors/useIsConnectedSafe.js +26 -0
- package/dist/hooks/connectors/useIsConnectedSafe.js.map +1 -0
- package/dist/hooks/connectors/useIsGnosisSafeConnector.d.ts +4 -0
- package/dist/hooks/connectors/useIsGnosisSafeConnector.d.ts.map +1 -0
- package/dist/hooks/connectors/useIsGnosisSafeConnector.js +29 -0
- package/dist/hooks/connectors/useIsGnosisSafeConnector.js.map +1 -0
- package/dist/hooks/connectors/useIsSafeThroughWalletConnect.d.ts +4 -0
- package/dist/hooks/connectors/useIsSafeThroughWalletConnect.d.ts.map +1 -0
- package/dist/hooks/connectors/useIsSafeThroughWalletConnect.js +44 -0
- package/dist/hooks/connectors/useIsSafeThroughWalletConnect.js.map +1 -0
- package/dist/hooks/gas/utils.js +1 -1
- package/dist/hooks/otc/mutations/useCancelLimitOrder.d.ts +45 -0
- package/dist/hooks/otc/mutations/useCancelLimitOrder.d.ts.map +1 -0
- package/dist/hooks/otc/mutations/useCancelLimitOrder.js +258 -0
- package/dist/hooks/otc/mutations/useCancelLimitOrder.js.map +1 -0
- package/dist/hooks/otc/mutations/useCreateLimitOrder.d.ts +22 -0
- package/dist/hooks/otc/mutations/useCreateLimitOrder.d.ts.map +1 -0
- package/dist/hooks/otc/mutations/useCreateLimitOrder.js +109 -0
- package/dist/hooks/otc/mutations/useCreateLimitOrder.js.map +1 -0
- package/dist/hooks/otc/mutations/useFillOrder.d.ts +36 -0
- package/dist/hooks/otc/mutations/useFillOrder.d.ts.map +1 -0
- package/dist/hooks/otc/mutations/useFillOrder.js +111 -0
- package/dist/hooks/otc/mutations/useFillOrder.js.map +1 -0
- package/dist/hooks/otc/mutations/utils.d.ts +4 -0
- package/dist/hooks/otc/mutations/utils.d.ts.map +1 -0
- package/dist/hooks/otc/mutations/utils.js +8 -0
- package/dist/hooks/otc/mutations/utils.js.map +1 -0
- package/dist/hooks/otc/queries/useLimitOrderRequiredBalance.d.ts +24 -0
- package/dist/hooks/otc/queries/useLimitOrderRequiredBalance.d.ts.map +1 -0
- package/dist/hooks/otc/queries/useLimitOrderRequiredBalance.js +127 -0
- package/dist/hooks/otc/queries/useLimitOrderRequiredBalance.js.map +1 -0
- package/dist/hooks/otc/queries/useLimitOrders.d.ts +43 -0
- package/dist/hooks/otc/queries/useLimitOrders.d.ts.map +1 -0
- package/dist/hooks/otc/queries/useLimitOrders.js +211 -0
- package/dist/hooks/otc/queries/useLimitOrders.js.map +1 -0
- package/dist/hooks/otc/queries/utils.d.ts +8 -0
- package/dist/hooks/otc/queries/utils.d.ts.map +1 -0
- package/dist/hooks/otc/queries/utils.js +9 -0
- package/dist/hooks/otc/queries/utils.js.map +1 -0
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.d.ts +74 -0
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.d.ts.map +1 -0
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js +426 -0
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js.map +1 -0
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderStep.d.ts +17 -0
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderStep.d.ts.map +1 -0
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderStep.js +127 -0
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderStep.js.map +1 -0
- package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.d.ts +66 -0
- package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.d.ts.map +1 -0
- package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.js +317 -0
- package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.js.map +1 -0
- package/dist/hooks/otc/tradeFlow/useOtcOrderStep.d.ts +20 -0
- package/dist/hooks/otc/tradeFlow/useOtcOrderStep.d.ts.map +1 -0
- package/dist/hooks/otc/tradeFlow/useOtcOrderStep.js +140 -0
- package/dist/hooks/otc/tradeFlow/useOtcOrderStep.js.map +1 -0
- package/dist/hooks/permit/hooks/permit1/useGetPermitInfo.d.ts +4 -4
- package/dist/hooks/permit/hooks/permit1/useGetPermitInfo.d.ts.map +1 -1
- package/dist/hooks/permit/hooks/permit1/useGetPermitInfo.js.map +1 -1
- package/dist/hooks/permit/hooks/permit1/useTokenFromPermit1Nonce.js +2 -2
- package/dist/hooks/permit/hooks/permit1/useTokenFromPermit1Nonce.js.map +1 -1
- package/dist/hooks/permit/hooks/permit1/useTokenFromPermitInfo.js +2 -2
- package/dist/hooks/permit/hooks/permit1/useTokenFromPermitInfo.js.map +1 -1
- package/dist/hooks/permit/hooks/permit1/useTryToSignPermit1.js +52 -34
- package/dist/hooks/permit/hooks/permit1/useTryToSignPermit1.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 +2 -2
- package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2TransferFromNonce.js.map +1 -1
- package/dist/hooks/permit/utils/detect.d.ts +2 -2
- package/dist/hooks/permit/utils/detect.d.ts.map +1 -1
- package/dist/hooks/permit/utils/detect.js.map +1 -1
- package/dist/hooks/permit/utils/encodeArgs.js +1 -1
- package/dist/hooks/sdk/types.d.ts +4 -10
- package/dist/hooks/sdk/types.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/bridge/const.d.ts +8 -0
- package/dist/hooks/swap/prices/delta/bridge/const.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/bridge/const.js +13 -0
- package/dist/hooks/swap/prices/delta/bridge/const.js.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/useCancelLimitDeltaOrders.d.ts +27 -0
- package/dist/hooks/swap/prices/delta/mutations/useCancelLimitDeltaOrders.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/useCancelLimitDeltaOrders.js +178 -0
- package/dist/hooks/swap/prices/delta/mutations/useCancelLimitDeltaOrders.js.map +1 -0
- package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.d.ts +1 -0
- package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.js +4 -2
- package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/orders/types.d.ts +2 -3
- package/dist/hooks/swap/prices/delta/orders/types.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/orders/utils.d.ts +7 -6
- package/dist/hooks/swap/prices/delta/orders/utils.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/orders/utils.js +4 -1
- package/dist/hooks/swap/prices/delta/orders/utils.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.d.ts +24 -0
- package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.js +127 -0
- package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.js.map +1 -0
- package/dist/hooks/swap/prices/delta/queries/useDeltaOrders.d.ts +12 -6
- package/dist/hooks/swap/prices/delta/queries/useDeltaOrders.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaOrders.js +117 -0
- package/dist/hooks/swap/prices/delta/queries/useDeltaOrders.js.map +1 -0
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts +7 -3
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js +24 -3
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.d.ts +7 -4
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.d.ts.map +1 -1
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js +17 -3
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js.map +1 -1
- package/dist/hooks/swap/prices/market/queries/useSpenderAndContracts.d.ts +2 -2
- package/dist/hooks/swap/prices/market/queries/useSpenderAndContracts.d.ts.map +1 -1
- package/dist/hooks/swap/prices/market/queries/useSpenderAndContracts.js.map +1 -1
- package/dist/hooks/swap/prices/usePricesParams.d.ts +3 -3
- package/dist/hooks/swap/prices/usePricesParams.d.ts.map +1 -1
- package/dist/hooks/swap/prices/usePricesParams.js +31 -23
- package/dist/hooks/swap/prices/usePricesParams.js.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.d.ts +4 -0
- package/dist/hooks/swap/prices/useSwapPrices.d.ts.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.js +26 -8
- package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
- package/dist/hooks/swap/prices/useTokenInputsFromPrice.js +1 -1
- package/dist/hooks/swap/prices/useTokenInputsFromPrice.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/types.d.ts +27 -4
- package/dist/hooks/swap/tradeFlow/common/types.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.d.ts +7 -2
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js +85 -44
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermitEvents.d.ts +66 -0
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermitEvents.d.ts.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermitEvents.js +224 -0
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermitEvents.js.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.d.ts +3 -2
- package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.js +151 -129
- package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/utils.d.ts +4 -0
- package/dist/hooks/swap/tradeFlow/common/utils.d.ts.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/utils.js +6 -0
- package/dist/hooks/swap/tradeFlow/common/utils.js.map +1 -0
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts +5 -2
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +140 -47
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.d.ts +2 -1
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js +22 -20
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts +77 -0
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts.map +1 -0
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js +338 -0
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js.map +1 -0
- package/dist/hooks/swap/tradeFlow/useLimitOrderStep.d.ts +21 -0
- package/dist/hooks/swap/tradeFlow/useLimitOrderStep.d.ts.map +1 -0
- package/dist/hooks/swap/tradeFlow/useLimitOrderStep.js +148 -0
- package/dist/hooks/swap/tradeFlow/useLimitOrderStep.js.map +1 -0
- package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts +22 -3
- package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.js +289 -57
- package/dist/hooks/swap/tradeFlow/useMarketFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.d.ts +2 -1
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js +26 -24
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js.map +1 -1
- package/dist/hooks/tokens/allowance/types.d.ts +5 -3
- package/dist/hooks/tokens/allowance/types.d.ts.map +1 -1
- package/dist/hooks/tokens/allowance/useGenericTokenAllowance.d.ts +1 -1
- package/dist/hooks/tokens/allowance/useGenericTokenAllowance.d.ts.map +1 -1
- package/dist/hooks/tokens/allowance/useGenericTokenAllowance.js +3 -0
- package/dist/hooks/tokens/allowance/useGenericTokenAllowance.js.map +1 -1
- package/dist/hooks/tokens/balances/useAttachTokenBalanceMultichain.d.ts +7 -2
- package/dist/hooks/tokens/balances/useAttachTokenBalanceMultichain.d.ts.map +1 -1
- package/dist/hooks/tokens/balances/useAttachTokenBalanceMultichain.js +3 -1
- package/dist/hooks/tokens/balances/useAttachTokenBalanceMultichain.js.map +1 -1
- package/dist/hooks/tokens/balances/useIsInsufficientTokenBalance.d.ts +2 -1
- package/dist/hooks/tokens/balances/useIsInsufficientTokenBalance.d.ts.map +1 -1
- package/dist/hooks/tokens/balances/useIsInsufficientTokenBalance.js +7 -6
- package/dist/hooks/tokens/balances/useIsInsufficientTokenBalance.js.map +1 -1
- package/dist/hooks/tokens/balances/useIsLimitOrderInsufficientBalance.d.ts +24 -0
- package/dist/hooks/tokens/balances/useIsLimitOrderInsufficientBalance.d.ts.map +1 -0
- package/dist/hooks/tokens/balances/useIsLimitOrderInsufficientBalance.js +192 -0
- package/dist/hooks/tokens/balances/useIsLimitOrderInsufficientBalance.js.map +1 -0
- package/dist/hooks/tokens/balances/useSelectedTokenBalances.d.ts +2 -1
- package/dist/hooks/tokens/balances/useSelectedTokenBalances.d.ts.map +1 -1
- package/dist/hooks/tokens/balances/useSelectedTokenBalances.js +3 -3
- package/dist/hooks/tokens/balances/useSelectedTokenBalances.js.map +1 -1
- package/dist/hooks/tokens/balances/useTokenBalance.d.ts +0 -5
- package/dist/hooks/tokens/balances/useTokenBalance.d.ts.map +1 -1
- package/dist/hooks/tokens/balances/useTokenBalance.js +0 -2
- package/dist/hooks/tokens/balances/useTokenBalance.js.map +1 -1
- package/dist/hooks/tokens/data/useCombineTokensWithFetched.d.ts +8 -0
- package/dist/hooks/tokens/data/useCombineTokensWithFetched.d.ts.map +1 -0
- package/dist/hooks/tokens/data/useCombineTokensWithFetched.js +121 -0
- package/dist/hooks/tokens/data/useCombineTokensWithFetched.js.map +1 -0
- package/dist/hooks/tokens/data/useFetchTokens.d.ts +12 -0
- package/dist/hooks/tokens/data/useFetchTokens.d.ts.map +1 -0
- package/dist/hooks/tokens/data/useFetchTokens.js +42 -0
- package/dist/hooks/tokens/data/useFetchTokens.js.map +1 -0
- package/dist/hooks/tokens/data/useMultichainTokensData.d.ts +25 -0
- package/dist/hooks/tokens/data/useMultichainTokensData.d.ts.map +1 -0
- package/dist/hooks/tokens/data/useMultichainTokensData.js +169 -0
- package/dist/hooks/tokens/data/useMultichainTokensData.js.map +1 -0
- package/dist/hooks/tokens/prices/useTokenPrices.d.ts +1 -0
- package/dist/hooks/tokens/prices/useTokenPrices.d.ts.map +1 -1
- package/dist/hooks/tokens/prices/useTokenPrices.js +9 -2
- package/dist/hooks/tokens/prices/useTokenPrices.js.map +1 -1
- package/dist/hooks/tokens/types.d.ts +6 -0
- package/dist/hooks/tokens/types.d.ts.map +1 -0
- package/dist/hooks/tokens/{useTokenLists.d.ts → useAllTokensWithFilter.d.ts} +4 -3
- package/dist/hooks/tokens/useAllTokensWithFilter.d.ts.map +1 -0
- package/dist/hooks/tokens/{useTokenLists.js → useAllTokensWithFilter.js} +28 -24
- package/dist/hooks/tokens/useAllTokensWithFilter.js.map +1 -0
- package/dist/hooks/tokens/useNativeToken.d.ts.map +1 -1
- package/dist/hooks/tokens/useNativeToken.js +1 -31
- package/dist/hooks/tokens/useNativeToken.js.map +1 -1
- package/dist/hooks/tokens/useTokenTaxFee.js +36 -23
- package/dist/hooks/tokens/useTokenTaxFee.js.map +1 -1
- package/dist/hooks/tokens/useTokensByAddress.d.ts +3 -0
- package/dist/hooks/tokens/useTokensByAddress.d.ts.map +1 -1
- package/dist/hooks/tokens/useTokensByAddress.js +21 -13
- package/dist/hooks/tokens/useTokensByAddress.js.map +1 -1
- package/dist/hooks/txs/queries/useAwaitTx.d.ts +5 -10
- package/dist/hooks/txs/queries/useAwaitTx.d.ts.map +1 -1
- package/dist/hooks/txs/queries/useAwaitTx.js +8 -25
- package/dist/hooks/txs/queries/useAwaitTx.js.map +1 -1
- package/dist/hooks/txs/queries/useTxHistory.d.ts +23 -0
- package/dist/hooks/txs/queries/useTxHistory.d.ts.map +1 -0
- package/dist/hooks/txs/queries/useTxHistory.js +124 -0
- package/dist/hooks/txs/queries/useTxHistory.js.map +1 -0
- package/dist/hooks/txs/queries/utils.d.ts +4 -0
- package/dist/hooks/txs/queries/utils.d.ts.map +1 -1
- package/dist/hooks/txs/queries/utils.js +9 -1
- package/dist/hooks/txs/queries/utils.js.map +1 -1
- package/dist/hooks/usePartner.d.ts +2 -0
- package/dist/hooks/usePartner.d.ts.map +1 -0
- package/dist/hooks/usePartner.js +11 -0
- package/dist/hooks/usePartner.js.map +1 -0
- package/dist/hooks/useSDK.d.ts +8 -7
- package/dist/hooks/useSDK.d.ts.map +1 -1
- package/dist/hooks/useSDK.js +86 -4
- package/dist/hooks/useSDK.js.map +1 -1
- package/dist/hooks/useSlippage.d.ts +2 -1
- package/dist/hooks/useSlippage.d.ts.map +1 -1
- package/dist/hooks/useSlippage.js +3 -3
- package/dist/hooks/useSlippage.js.map +1 -1
- package/dist/lib/constants/delta.d.ts +1 -0
- package/dist/lib/constants/delta.d.ts.map +1 -1
- package/dist/lib/constants/delta.js +5 -4
- package/dist/lib/constants/delta.js.map +1 -1
- package/dist/lib/constants/index.d.ts +5 -0
- package/dist/lib/constants/index.d.ts.map +1 -1
- package/dist/lib/constants/index.js +7 -1
- package/dist/lib/constants/index.js.map +1 -1
- package/dist/lib/constants/otc.d.ts +3 -0
- package/dist/lib/constants/otc.d.ts.map +1 -0
- package/dist/lib/constants/otc.js +6 -0
- package/dist/lib/constants/otc.js.map +1 -0
- package/dist/lib/queryClient.d.ts.map +1 -1
- package/dist/lib/queryClient.js +23 -4
- package/dist/lib/queryClient.js.map +1 -1
- package/dist/lib/utils/approval.d.ts +43 -0
- package/dist/lib/utils/approval.d.ts.map +1 -0
- package/dist/lib/utils/approval.js +118 -0
- package/dist/lib/utils/approval.js.map +1 -0
- package/dist/lib/utils/delta.d.ts +14 -4
- package/dist/lib/utils/delta.d.ts.map +1 -1
- package/dist/lib/utils/delta.js +28 -1
- package/dist/lib/utils/delta.js.map +1 -1
- package/dist/lib/utils/explorer.d.ts +2 -0
- package/dist/lib/utils/explorer.d.ts.map +1 -1
- package/dist/lib/utils/explorer.js +12 -1
- package/dist/lib/utils/explorer.js.map +1 -1
- package/dist/lib/utils/formatPercent.d.ts +4 -0
- package/dist/lib/utils/formatPercent.d.ts.map +1 -0
- package/dist/lib/utils/formatPercent.js +10 -0
- package/dist/lib/utils/formatPercent.js.map +1 -0
- package/dist/lib/utils/index.d.ts +8 -1
- package/dist/lib/utils/index.d.ts.map +1 -1
- package/dist/lib/utils/index.js +11 -1
- package/dist/lib/utils/index.js.map +1 -1
- package/dist/lib/utils/metabase.d.ts +33 -0
- package/dist/lib/utils/metabase.d.ts.map +1 -0
- package/dist/lib/utils/metabase.js +27 -0
- package/dist/lib/utils/metabase.js.map +1 -0
- package/dist/lib/utils/price.d.ts +1 -0
- package/dist/lib/utils/price.d.ts.map +1 -1
- package/dist/lib/utils/price.js +8 -3
- package/dist/lib/utils/price.js.map +1 -1
- package/dist/lib/utils/priceImpact.d.ts.map +1 -1
- package/dist/lib/utils/priceImpact.js +2 -1
- package/dist/lib/utils/priceImpact.js.map +1 -1
- package/dist/lib/utils/savedAmountUSD.d.ts +3 -0
- package/dist/lib/utils/savedAmountUSD.d.ts.map +1 -0
- package/dist/lib/utils/savedAmountUSD.js +57 -0
- package/dist/lib/utils/savedAmountUSD.js.map +1 -0
- package/dist/lib/utils/time.d.ts +3 -0
- package/dist/lib/utils/time.d.ts.map +1 -0
- package/dist/lib/utils/time.js +12 -0
- package/dist/lib/utils/time.js.map +1 -0
- package/dist/lib/utils/toasts.d.ts +7 -8
- package/dist/lib/utils/toasts.d.ts.map +1 -1
- package/dist/lib/utils/toasts.js +27 -15
- package/dist/lib/utils/toasts.js.map +1 -1
- package/dist/lib/utils/transactionHandlers.d.ts +11 -0
- package/dist/lib/utils/transactionHandlers.d.ts.map +1 -0
- package/dist/lib/utils/transactionHandlers.js +17 -0
- package/dist/lib/utils/transactionHandlers.js.map +1 -0
- package/dist/lib/utils/tuple.d.ts +11 -0
- package/dist/lib/utils/tuple.d.ts.map +1 -0
- package/dist/lib/utils/tuple.js +11 -0
- package/dist/lib/utils/tuple.js.map +1 -0
- package/dist/lib/web3/wagmi/config.js +6 -6
- package/dist/lib/web3/wagmi/config.js.map +1 -1
- package/dist/lib/web3/wagmi/external.d.ts +4 -0
- package/dist/lib/web3/wagmi/external.d.ts.map +1 -0
- package/dist/lib/web3/wagmi/external.js +8 -0
- package/dist/lib/web3/wagmi/external.js.map +1 -0
- package/dist/lib/web3/wagmi/transports.js +1 -1
- package/dist/lib/web3/wagmi/transports.js.map +1 -1
- package/dist/lib/web3/wagmi/utils.d.ts +1 -0
- package/dist/lib/web3/wagmi/utils.d.ts.map +1 -1
- package/dist/lib/web3/wagmi/utils.js +1 -0
- package/dist/lib/web3/wagmi/utils.js.map +1 -1
- package/dist/styles.css +274 -14
- package/dist/tokens/blacklist.d.ts.map +1 -1
- package/dist/tokens/blacklist.js +3 -1
- package/dist/tokens/blacklist.js.map +1 -1
- package/dist/tokens/constants.d.ts +4 -1
- package/dist/tokens/constants.d.ts.map +1 -1
- package/dist/tokens/constants.js +7 -1
- package/dist/tokens/constants.js.map +1 -1
- package/dist/tokens/constructor.d.ts +14 -1
- package/dist/tokens/constructor.d.ts.map +1 -1
- package/dist/tokens/constructor.js +48 -1
- package/dist/tokens/constructor.js.map +1 -1
- package/dist/tokens/defaultTokens.d.ts +2 -1
- package/dist/tokens/defaultTokens.d.ts.map +1 -1
- package/dist/tokens/defaultTokens.js +9 -2
- package/dist/tokens/defaultTokens.js.map +1 -1
- package/dist/tokens/hooks.d.ts +7 -3
- package/dist/tokens/hooks.d.ts.map +1 -1
- package/dist/tokens/hooks.js +15 -5
- package/dist/tokens/hooks.js.map +1 -1
- package/dist/tokens/lists/lists.json.d.ts +44 -23
- package/dist/tokens/lists/lists.json.js +1 -354
- package/dist/tokens/lists/lists.json.js.map +1 -1
- package/dist/tokens/state/addImportedTokenAtom.d.ts +21 -0
- package/dist/tokens/state/addImportedTokenAtom.d.ts.map +1 -0
- package/dist/tokens/state/addImportedTokenAtom.js +91 -0
- package/dist/tokens/state/addImportedTokenAtom.js.map +1 -0
- package/dist/tokens/state/allTokensByChainAtom.d.ts +4 -0
- package/dist/tokens/state/allTokensByChainAtom.d.ts.map +1 -0
- package/dist/tokens/state/allTokensByChainAtom.js +52 -0
- package/dist/tokens/state/allTokensByChainAtom.js.map +1 -0
- package/dist/tokens/state/fromListsAtom.d.ts +16 -0
- package/dist/tokens/state/fromListsAtom.d.ts.map +1 -0
- package/dist/tokens/state/{tokensAtom.js → fromListsAtom.js} +8 -2
- package/dist/tokens/state/fromListsAtom.js.map +1 -0
- package/dist/tokens/state/importedTokensAtom.d.ts +6 -0
- package/dist/tokens/state/importedTokensAtom.d.ts.map +1 -0
- package/dist/tokens/state/importedTokensAtom.js +8 -0
- package/dist/tokens/state/importedTokensAtom.js.map +1 -0
- package/dist/tokens/state/types.d.ts +3 -2
- package/dist/tokens/state/types.d.ts.map +1 -1
- package/dist/tokens/utils/brand.d.ts +4 -0
- package/dist/tokens/utils/brand.d.ts.map +1 -0
- package/dist/tokens/utils/brand.js +9 -0
- package/dist/tokens/utils/brand.js.map +1 -0
- package/dist/tokens/utils/transferAmountsFromReceipt.d.ts +16 -5
- package/dist/tokens/utils/transferAmountsFromReceipt.d.ts.map +1 -1
- package/dist/tokens/utils/transferAmountsFromReceipt.js +108 -36
- package/dist/tokens/utils/transferAmountsFromReceipt.js.map +1 -1
- package/dist/transactions/logger.d.ts +2 -0
- package/dist/transactions/logger.d.ts.map +1 -0
- package/dist/transactions/logger.js +6 -0
- package/dist/transactions/logger.js.map +1 -0
- package/dist/transactions/queries/ensureCallsStatus.d.ts +13 -0
- package/dist/transactions/queries/ensureCallsStatus.d.ts.map +1 -0
- package/dist/transactions/queries/ensureCallsStatus.js +32 -0
- package/dist/transactions/queries/ensureCallsStatus.js.map +1 -0
- package/dist/transactions/queries/ensureTxReceipt.d.ts +16 -0
- package/dist/transactions/queries/ensureTxReceipt.d.ts.map +1 -0
- package/dist/transactions/queries/ensureTxReceipt.js +35 -0
- package/dist/transactions/queries/ensureTxReceipt.js.map +1 -0
- package/dist/transactions/state/effects/finalize.d.ts +7 -0
- package/dist/transactions/state/effects/finalize.d.ts.map +1 -0
- package/dist/transactions/state/effects/finalize.js +28 -0
- package/dist/transactions/state/effects/finalize.js.map +1 -0
- package/dist/transactions/state/hooks/useActivateEffects.d.ts +2 -0
- package/dist/transactions/state/hooks/useActivateEffects.d.ts.map +1 -0
- package/dist/transactions/state/hooks/useActivateEffects.js +10 -0
- package/dist/transactions/state/hooks/useActivateEffects.js.map +1 -0
- package/dist/transactions/state/hooks/useTransactions.d.ts +3 -0
- package/dist/transactions/state/hooks/useTransactions.d.ts.map +1 -0
- package/dist/transactions/state/hooks/useTransactions.js +12 -0
- package/dist/transactions/state/hooks/useTransactions.js.map +1 -0
- package/dist/transactions/state/transactionsActionAtom.d.ts +12 -0
- package/dist/transactions/state/transactionsActionAtom.d.ts.map +1 -0
- package/dist/transactions/state/transactionsActionAtom.js +122 -0
- package/dist/transactions/state/transactionsActionAtom.js.map +1 -0
- package/dist/transactions/state/transactionsAtom.d.ts +14 -0
- package/dist/transactions/state/transactionsAtom.d.ts.map +1 -0
- package/dist/transactions/state/transactionsAtom.js +54 -0
- package/dist/transactions/state/transactionsAtom.js.map +1 -0
- package/dist/transactions/status.d.ts +5 -0
- package/dist/transactions/status.d.ts.map +1 -0
- package/dist/transactions/status.js +7 -0
- package/dist/transactions/status.js.map +1 -0
- package/dist/transactions/types.d.ts +71 -0
- package/dist/transactions/types.d.ts.map +1 -0
- package/dist/transactions/utils.d.ts +11 -0
- package/dist/transactions/utils.d.ts.map +1 -0
- package/dist/transactions/utils.js +26 -0
- package/dist/transactions/utils.js.map +1 -0
- package/package.json +9 -5
- package/dist/components/ui/badge.js +0 -71
- package/dist/components/ui/badge.js.map +0 -1
- package/dist/components/widget/TradeParameters/state/resetParamsAtom.js +0 -16
- package/dist/components/widget/TradeParameters/state/resetParamsAtom.js.map +0 -1
- package/dist/core/inputs/hooks/useWidgetButtonProps.d.ts +0 -5
- package/dist/core/inputs/hooks/useWidgetButtonProps.d.ts.map +0 -1
- package/dist/crosschain_token_list.json +0 -3230
- package/dist/hooks/swap/prices/delta/queries/useBuildCrosschainOrderBridge.d.ts +0 -19
- package/dist/hooks/swap/prices/delta/queries/useBuildCrosschainOrderBridge.d.ts.map +0 -1
- package/dist/hooks/swap/prices/delta/queries/useMulticallHandlers.d.ts +0 -16
- package/dist/hooks/swap/prices/delta/queries/useMulticallHandlers.d.ts.map +0 -1
- package/dist/hooks/tokens/useTokenLists.d.ts.map +0 -1
- package/dist/hooks/tokens/useTokenLists.js.map +0 -1
- package/dist/tokens/state/tokensAtom.d.ts +0 -12
- package/dist/tokens/state/tokensAtom.d.ts.map +0 -1
- package/dist/tokens/state/tokensAtom.js.map +0 -1
|
@@ -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 { 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 { useConstructGasParams } from \"./common/useConstructGasParams\";\nimport {\n useMarketPriceQueryForPrice,\n useSubscribeToMarketPrice,\n} from \"../prices/market/queries/useMarketPriceQuery\";\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 receiverAddress?: 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 /* 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 { approval, signPermit, approveTxMut, signPermitMut } =\n useApproveOrPermit({\n srcToken: marketPrice?.srcToken,\n // if we already approved some amount, save it in approval and signPermit objects\n srcAmount: marketPrice?.srcAmount,\n spenderContractType: \"AugustusSwapper\",\n // marketPrice is the preferred source of truth\n swapSide: marketPrice?.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 const usingPriceRef = useRef<OptimalRate | null>(null);\n\n const cancelFlow = () => {\n currentAbortControllerRef.current?.abort(new UserCancelledError());\n currentAbortControllerRef.current = null;\n\n usingPriceRef.current = null;\n };\n\n const receiverAddress = useReceiverAddressValue();\n\n const { markNonceAsUsed, clearNonce } = useMarkPermit1Or2NonceAsUsed({\n chainId,\n });\n\n const { constructGasParams } = useConstructGasParams();\n\n const partner = useWidgetConfig().partner;\n\n const getQueryForPrice = useMarketPriceQueryForPrice();\n const subscribeToPrice = useSubscribeToMarketPrice();\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 // no sense in starting flow without a price,\n // which may be unavailable only if we are retrying and deltaPrice response now returns an error.\n // Otherwise this flow will be stopped by disabling Swap button in the first place\n assert(marketPrice, \"Market price is not available\");\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 // marketPrice here is the starting price, available before async code and waiting\n let freshPrice = marketPrice;\n let unsubscribeFromPrice: (() => void) | undefined;\n // this also resets previous usingPriceRef\n usingPriceRef.current = freshPrice;\n\n try {\n // need allowance\n if (approval.needsApproval && allowanceToSet) {\n // queryKey used to fetch the current price,\n // it will be used for the subsequent price refetches as long as price params not changed\n const queryKey = getQueryForPrice({\n chainId,\n price: freshPrice,\n })?.queryKey;\n\n // should always be available\n if (queryKey) {\n // freeze allowanceToSet\n const approvedAmount = allowanceToSet;\n\n // subscribe to price updates to keep track of new prices for the same price params,\n // independently of the hook itself\n unsubscribeFromPrice = subscribeToPrice({\n queryKey,\n onData: (newPrice) => {\n if (signal.aborted) {\n // just in case unsubscribe in finally is not yet called\n // for the queued update with the price from an already cancelled flow\n unsubscribeFromPrice?.();\n unsubscribeFromPrice = undefined;\n return;\n }\n\n // slightly higher amount if BUY with slippage\n const amountsAfterSlippage = applySlippage(\n {\n srcAmount: newPrice.srcAmount,\n destAmount: newPrice.destAmount,\n },\n resolvedSlippage,\n newPrice.side\n );\n\n // if new price fits into allowance, update it\n if (approvedAmount >= BigInt(amountsAfterSlippage.srcAmount)) {\n logger.log(\"~ fresh price ~\", newPrice);\n freshPrice = newPrice;\n usingPriceRef.current = freshPrice;\n }\n },\n });\n }\n\n if (!signPermit.isPermitSupported || !signPermit.isPermitReadyToSign) {\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 // 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 approvedAmount, we will only get new prices that satisfy the allowance\n const marketPriceToUse = freshPrice;\n usingPriceRef.current = marketPriceToUse;\n // no longer need updates, unsubscribe\n unsubscribeFromPrice?.();\n unsubscribeFromPrice = undefined;\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 // 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 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 receiverAddress,\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 } finally {\n // always unsubscribe if subscribed previously\n unsubscribeFromPrice?.();\n }\n };\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\");\n },\n });\n\n const runMarketSwapFlow = marketSwapMut.mutateAsync;\n\n const reset = () => {\n usingPriceRef.current = null;\n\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 = usingPriceRef.current || 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","marketPrice","logger","useLogger","chainId","useChainId","resolvedSlippage","useSlippage","swapSide","useSwapSide","approval","signPermit","approveTxMut","signPermitMut","useApproveOrPermit","srcToken","srcAmount","spenderContractType","side","buildTxMut","useBuildTx","mutationOptions","onSuccess","log","onError","error","buildTxParams","isPending","isError","isSuccess","sendSwapTxMut","useSendMarketSwapTx","swapTxMined","useAwaitTx","hash","txHash","swap","receipt","data","isConfirmingTX","isConfirmingTxError","isTxSent","isTxPending","isLoading","isTxMined","isTxAwaitingError","address","account","useAccount","ensureTxReceipt","useEnsureTxReceipt","currentAbortControllerRef","useRef","usingPriceRef","cancelFlow","current","abort","UserCancelledError","receiverAddress","useReceiverAddressValue","markNonceAsUsed","clearNonce","useMarkPermit1Or2NonceAsUsed","constructGasParams","useConstructGasParams","partner","useWidgetConfig","getQueryForPrice","useMarketPriceQueryForPrice","subscribeToPrice","useSubscribeToMarketPrice","submitSwapTx","onTxSent","reset","assert","abortController","AbortController","signal","signedPermitResult","approveTxHash","approveTxReceipt","allowanceToSet","freshPrice","unsubscribeFromPrice","needsApproval","queryKey","price","approvedAmount","onData","newPrice","aborted","undefined","amountsAfterSlippage","applySlippage","destAmount","BigInt","isPermitSupported","isPermitReadyToSign","approveAsync","allowanceData","throwIfAborted","approveTxReceiptPromise","onReplaced","actionType","receiptPromise","signPermitAsync","value","marketPriceToUse","gasParams","txParams","mutateAsync","swapTxInput","userAddress","receiver","destToken","srcDecimals","destDecimals","permit","permitEncodedArgs","priceRoute","swapTxOptions","swapTxHash","sendTransactionAsync","signedPermitData","swapTxReceiptPromise","swapTxReceipt","tradeFlowType","approve","marketSwapMut","useMutation","mutationFn","mutationKey","onSettled","runMarketSwapFlow","retryFlow","options","usedPrice","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, Hex, 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 { UserCancelledError } from \"./common/errors\";\nimport { useSwapReceiverAddressValue } from \"@/components/widget/ReceiverAddress/state/receiverAddressAtom\";\nimport type {\n CallsSentObject,\n TxSentObject,\n} from \"@/lib/utils/transactionHandlers\";\nimport { useSwapSide } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport { useApproveOrPermit } from \"./common/useApproveOrPermit\";\nimport {\n useMarkPermit1Or2NonceAsUsed,\n type SignedPermitResult,\n} from \"./common/useSignPermit1Or2\";\nimport { useLogger } from \"@/core/logger\";\nimport { useConstructGasParams } from \"./common/useConstructGasParams\";\nimport {\n useMarketPriceQueryForPrice,\n useSubscribeToMarketPrice,\n} from \"../prices/market/queries/useMarketPriceQuery\";\nimport { usePartner } from \"@/hooks/usePartner\";\n\nconst marketSwapFlowType = \"marketSwap\";\nimport { useSendBatchTx } from \"@/hooks/batch/useSendBatchTx\";\nimport { useCanBatchTxs } from \"@/hooks/batch/useCanBatchTxs\";\nimport {\n useAwaitCalls,\n useEnsureCallsStatus,\n} from \"@/hooks/batch/useAwaitCalls\";\nimport { type CallsReceipt } from \"@/hooks/batch/useAwaitCalls\";\nimport { useBatchWithApproveTxs } from \"@/hooks/batch/useBatchWithApproveTxs\";\nimport { useWidgetEvents } from \"@/core/state/widgetEventsAtom\";\n\nexport type UseMarketFlowInput = {\n marketPrice?: OptimalRate;\n};\n\nexport type SubmitSwapResult = {\n tradeFlowType: typeof marketSwapFlowType;\n approve: SubmitTxResult;\n swap: SubmitTxResult;\n marketPrice: OptimalRate;\n account: Address;\n receiverAddress?: Address;\n};\n\ntype OnTxSent = (txSent: TxSentObject | CallsSentObject) => 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 tradeFlowType: typeof marketSwapFlowType;\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 swapBatch: {\n canBatchTxs?: boolean;\n callsId?: string;\n txHash?: Hash;\n receipt?: CallsReceipt;\n isConfirmingCalls: boolean;\n isConfirmingCallsError: boolean;\n isCallsSent: boolean;\n isCallsPending: boolean;\n isCallsMined: boolean;\n isCallsAwaitingError: 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(\"swap\");\n const swapSide = useSwapSide();\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 {\n approval,\n signPermit,\n approveTxMut,\n signPermitMut,\n events: approveOrPermitEvents,\n } = useApproveOrPermit({\n srcToken: marketPrice?.srcToken,\n // if we already approved some amount, save it in approval and signPermit objects\n srcAmount: marketPrice?.srcAmount,\n spenderContractType: \"AugustusSwapper\",\n // marketPrice is the preferred source of truth\n swapSide: marketPrice?.side ?? swapSide,\n tradeMode: \"swap\",\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 /* 5.1. submit standalone 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 /* 5.2. submit Batch tx */\n const { forCurrentChain: canBatchTxs } = useCanBatchTxs();\n const { addTxWithApprovals } = useBatchWithApproveTxs();\n\n const batchTxMut = useSendBatchTx({\n onSuccess: () => {\n logger.log(\"Batch tx success\");\n },\n onError: (error) => {\n logger.error(\"Batch tx error\", error);\n },\n });\n\n /* 6. await Swap tx */\n\n /* 6.1. await standalone Swap tx */\n const swapTxMined = useAwaitTx({\n hash: sendSwapTxMut.txHash,\n chainId,\n });\n\n /* 6.2. await Batch tx */\n const batchTxMined = useAwaitCalls({\n id: batchTxMut.data?.id,\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 // for a successful SendCalls execution there will either be one receipt only,\n // or several receipts with the last one for the last tx from the batch\n const lastCallsReceipt =\n batchTxMined.data?.receipts?.[batchTxMined.data.receipts.length - 1];\n\n const swapBatch: UseMarketFlowResult[\"swapBatch\"] = {\n canBatchTxs,\n callsId: batchTxMut.data?.id,\n txHash: lastCallsReceipt?.transactionHash,\n receipt: lastCallsReceipt,\n /* calls sending */\n isConfirmingCalls: batchTxMut.isPending,\n isConfirmingCallsError: batchTxMut.isError,\n isCallsSent: batchTxMut.isSuccess,\n /* calls awaiting */\n isCallsPending: batchTxMined.isLoading,\n isCallsMined: batchTxMined.isSuccess,\n isCallsAwaitingError: batchTxMined.isError,\n /* combined */\n isPending: batchTxMut.isPending || batchTxMined.isLoading,\n isSuccess: batchTxMined.isSuccess,\n isError: batchTxMut.isError || batchTxMined.isError,\n error: batchTxMut.error || batchTxMined.error,\n };\n\n const { address: account } = useAccount();\n\n const ensureTxReceipt = useEnsureTxReceipt();\n const ensureCallsStatus = useEnsureCallsStatus();\n\n // allows to abort (cancel) currently running flow,\n const currentAbortControllerRef = useRef<AbortController | null>(null);\n const usingPriceRef = useRef<OptimalRate | null>(null);\n\n const cancelFlow = () => {\n currentAbortControllerRef.current?.abort(new UserCancelledError());\n currentAbortControllerRef.current = null;\n\n usingPriceRef.current = null;\n };\n\n const receiverAddress = useSwapReceiverAddressValue();\n\n const { markNonceAsUsed, clearNonce } = useMarkPermit1Or2NonceAsUsed({\n chainId,\n });\n\n const { constructGasParams } = useConstructGasParams();\n\n const partner = usePartner();\n\n const getQueryForPrice = useMarketPriceQueryForPrice();\n const subscribeToPrice = useSubscribeToMarketPrice();\n\n const { onSwap } = useWidgetEvents();\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 batchTxMut.reset();\n\n // no sense in starting flow without a price,\n // which may be unavailable only if we are retrying and deltaPrice response now returns an error.\n // Otherwise this flow will be stopped by disabling Swap button in the first place\n assert(marketPrice, \"Market price is not available\");\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 // marketPrice here is the starting price, available before async code and waiting\n let freshPrice = marketPrice;\n let unsubscribeFromPrice: (() => void) | undefined;\n // this also resets previous usingPriceRef\n usingPriceRef.current = freshPrice;\n\n const shouldBatchTxs =\n canBatchTxs && approval.needsApproval && !!allowanceToSet;\n\n try {\n // need allowance\n if (!shouldBatchTxs && approval.needsApproval && allowanceToSet) {\n // queryKey used to fetch the current price,\n // it will be used for the subsequent price refetches as long as price params not changed\n const queryKey = getQueryForPrice({\n chainId,\n price: freshPrice,\n })?.queryKey;\n\n // should always be available\n if (queryKey) {\n // freeze allowanceToSet\n const approvedAmount = allowanceToSet;\n\n // subscribe to price updates to keep track of new prices for the same price params,\n // independently of the hook itself\n unsubscribeFromPrice = subscribeToPrice({\n queryKey,\n onData: (newPrice) => {\n if (signal.aborted) {\n // just in case unsubscribe in finally is not yet called\n // for the queued update with the price from an already cancelled flow\n unsubscribeFromPrice?.();\n unsubscribeFromPrice = undefined;\n return;\n }\n\n // slightly higher amount if BUY with slippage\n const amountsAfterSlippage = applySlippage(\n {\n srcAmount: newPrice.srcAmount,\n destAmount: newPrice.destAmount,\n },\n resolvedSlippage,\n newPrice.side\n );\n\n // if new price fits into allowance, update it\n if (approvedAmount >= BigInt(amountsAfterSlippage.srcAmount)) {\n logger.log(\"~ fresh price ~\", newPrice);\n freshPrice = newPrice;\n usingPriceRef.current = freshPrice;\n }\n },\n });\n }\n\n const tryPermit =\n signPermit.isPermitSupported && signPermit.isPermitReadyToSign;\n try {\n if (!tryPermit) {\n approveOrPermitEvents.onApproveTx.request({ 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 approveOrPermitEvents.onApproveTx.sent({\n allowanceToSet,\n txHash: approveTxHash,\n });\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n const approveTxReceiptPromise = ensureTxReceipt({\n hash: approveTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\"onReplaced:approveTx\", approveTxHash, data);\n },\n });\n\n if (onTxSent) {\n onTxSent({\n chainId,\n action: \"approve\",\n transactionHash: approveTxHash,\n receiptPromise: approveTxReceiptPromise,\n transactionSpecificData: {\n action: \"approve\",\n approvedAmount: allowanceToSet,\n tokenAddress: approval.token as Address,\n spenderAddress: approval.spender as Address,\n },\n });\n }\n\n approveTxReceipt = await approveTxReceiptPromise;\n\n approveOrPermitEvents.onApproveTx.confirmed({\n allowanceToSet,\n txHash: approveTxHash,\n txReceipt: approveTxReceipt,\n });\n\n logger.log(\"~ approveTx ~ receipt:\", approveTxReceipt);\n // @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 approveOrPermitEvents.onSignPermit.request({ allowanceToSet });\n\n // sign Permit\n signedPermitResult = await signPermitMut.signPermitAsync({\n value: allowanceToSet,\n });\n\n approveOrPermitEvents.onSignPermit.confirmed({\n allowanceToSet,\n permit: signedPermitResult?.permitEncodedArgs,\n });\n }\n } catch (error) {\n if (!tryPermit) {\n approveOrPermitEvents.onApproveTx.failed({\n allowanceToSet,\n error: error as Error,\n txHash: approveTxHash, // won't necessarily be available\n });\n } else {\n approveOrPermitEvents.onSignPermit.failed({\n allowanceToSet,\n error: error as Error,\n });\n }\n throw error;\n }\n }\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n assert(account, \"Account is not connected\");\n // as long as we had set approvedAmount, we will only get new prices that satisfy the allowance\n const marketPriceToUse = freshPrice;\n usingPriceRef.current = marketPriceToUse;\n // no longer need updates, unsubscribe\n unsubscribeFromPrice?.();\n unsubscribeFromPrice = undefined;\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 // 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 // gas estimate will break if only swapn tx is estimated, but approve ts is not considerewd in a batch\n ignoreGasEstimate: shouldBatchTxs,\n // for Batch-capable wallets batch Approve+Swap tx have to ignore all checks\n ignoreAllowance: shouldBatchTxs,\n // onlyParams: true,\n ...gasParams,\n },\n });\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n let swapTxHash: Hash | undefined;\n let swapCallsId: string | undefined;\n\n onSwap?.({\n event: {\n name: \"Swap:request\",\n params: {\n swapMode: \"market\",\n price: marketPriceToUse,\n },\n },\n });\n\n if (shouldBatchTxs) {\n const { calls } = await addTxWithApprovals({\n txsParams: [\n {\n to: txParams.to as Address,\n account: txParams.from as Address,\n data: txParams.data as Hex,\n value: BigInt(txParams.value),\n chainId: txParams.chainId,\n },\n ],\n approveProps: [\n {\n spender: approval.spender,\n allowanceToSet: approval.allowanceToSet,\n token: approval.token,\n chainId: approval.chainId,\n },\n ],\n });\n\n const sendCallsResult = await batchTxMut.sendCalls({\n txsParams: calls,\n });\n swapCallsId = sendCallsResult.id;\n onSwap?.({\n event: {\n name: \"Swap:sent\",\n params: {\n swapMode: \"market\",\n price: marketPriceToUse,\n callsId: swapCallsId,\n },\n },\n });\n } else {\n swapTxHash = await sendSwapTxMut.sendTransactionAsync(txParams);\n onSwap?.({\n event: {\n name: \"Swap:sent\",\n params: {\n swapMode: \"market\",\n price: marketPriceToUse,\n txHash: swapTxHash,\n },\n },\n });\n }\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 let swapCallsReceipt: CallsReceipt | undefined;\n let swapTxReceipt: TransactionReceipt | undefined;\n\n if (swapCallsId) {\n const sendCallsReceiptPromise = ensureCallsStatus({\n id: swapCallsId,\n }).then((status) => status.receipts?.[status.receipts.length - 1]);\n\n logger.log(\"~ swapTx ~ awaiting calls id :\", swapCallsId);\n\n if (onTxSent) {\n onTxSent({\n chainId,\n action: \"swap\",\n callsId: swapCallsId,\n receiptPromise: sendCallsReceiptPromise,\n transactionSpecificData: {\n action: \"swap\",\n source: \"local\",\n srcTokenAddress: marketPriceToUse.srcToken as Address,\n destTokenAddress: marketPriceToUse.destToken as Address,\n srcAmount: amountsAfterSlippage.srcAmount,\n destAmount: amountsAfterSlippage.destAmount,\n srcAmountUSD: marketPriceToUse.srcUSD,\n destAmountUSD: marketPriceToUse.destUSD,\n gasCost: marketPriceToUse.gasCost,\n },\n });\n }\n\n swapCallsReceipt = await sendCallsReceiptPromise;\n\n if (swapCallsReceipt) {\n onSwap?.({\n event: {\n name: \"Swap:confirmed\",\n params: {\n swapMode: \"market\",\n price: marketPriceToUse,\n callsReceipt: swapCallsReceipt,\n callsId: swapCallsId,\n },\n },\n });\n }\n } else if (swapTxHash) {\n const swapTxReceiptPromise = ensureTxReceipt({\n hash: swapTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\"onReplaced:swapTx\", swapTxHash, data);\n },\n });\n\n logger.log(\"~ swapTx ~ awaiting tx hash :\", swapTxHash);\n\n if (onTxSent) {\n onTxSent({\n chainId,\n action: \"swap\",\n transactionHash: swapTxHash,\n receiptPromise: swapTxReceiptPromise,\n transactionSpecificData: {\n action: \"swap\",\n source: \"local\",\n srcTokenAddress: marketPriceToUse.srcToken as Address,\n destTokenAddress: marketPriceToUse.destToken as Address,\n srcAmount: amountsAfterSlippage.srcAmount,\n destAmount: amountsAfterSlippage.destAmount,\n srcAmountUSD: marketPriceToUse.srcUSD,\n destAmountUSD: marketPriceToUse.destUSD,\n gasCost: marketPriceToUse.gasCost,\n gasCostUSD: marketPriceToUse.gasCostUSD,\n },\n });\n }\n\n swapTxReceipt = await swapTxReceiptPromise;\n\n if (swapTxReceipt) {\n onSwap?.({\n event: {\n name: \"Swap:confirmed\",\n params: {\n swapMode: \"market\",\n price: marketPriceToUse,\n txReceipt: swapTxReceipt,\n txHash: swapTxHash,\n },\n },\n });\n }\n }\n\n logger.log(\"~ swapTx ~ receipt:\", swapCallsReceipt || 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 return {\n tradeFlowType: marketSwapFlowType,\n approve: {\n txHash: approveTxHash,\n receipt: approveTxReceipt,\n },\n swap: {\n callsId: swapCallsId,\n txHash: swapTxHash,\n receipt: swapTxReceipt,\n callsReceipt: swapCallsReceipt,\n },\n marketPrice: marketPriceToUse,\n // @TODO add whatever else may be relevant\n account,\n receiverAddress,\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 onSwap?.({\n event: {\n name: \"Swap:failed\",\n params: {\n swapMode: \"market\",\n error: error as Error,\n },\n },\n });\n throw error;\n } finally {\n // always unsubscribe if subscribed previously\n unsubscribeFromPrice?.();\n }\n };\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\");\n },\n });\n\n const runMarketSwapFlow = marketSwapMut.mutateAsync;\n\n const reset = () => {\n usingPriceRef.current = null;\n\n approveTxMut.reset();\n signPermitMut.reset();\n buildTxMut.reset();\n sendSwapTxMut.reset();\n batchTxMut.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 = usingPriceRef.current || marketPrice;\n\n /* 7. return result */\n return {\n tradeFlowType: marketSwapFlowType,\n chainId,\n runMarketSwapFlow,\n reset,\n cancelFlow,\n retryFlow,\n approval,\n signPermit,\n buildTxParams,\n swap,\n swapBatch,\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":["marketSwapFlowType","MARKET_SWAP_MUTATION_KEY","useMarketFlow","marketPrice","logger","useLogger","chainId","useChainId","resolvedSlippage","useSlippage","swapSide","useSwapSide","approval","signPermit","approveTxMut","signPermitMut","events","approveOrPermitEvents","useApproveOrPermit","srcToken","srcAmount","spenderContractType","side","tradeMode","buildTxMut","useBuildTx","mutationOptions","onSuccess","log","onError","error","buildTxParams","isPending","isError","isSuccess","sendSwapTxMut","useSendMarketSwapTx","forCurrentChain","canBatchTxs","useCanBatchTxs","addTxWithApprovals","useBatchWithApproveTxs","batchTxMut","useSendBatchTx","swapTxMined","useAwaitTx","hash","txHash","batchTxMined","useAwaitCalls","id","data","swap","receipt","isConfirmingTX","isConfirmingTxError","isTxSent","isTxPending","isLoading","isTxMined","isTxAwaitingError","lastCallsReceipt","receipts","length","swapBatch","callsId","transactionHash","isConfirmingCalls","isConfirmingCallsError","isCallsSent","isCallsPending","isCallsMined","isCallsAwaitingError","address","account","useAccount","ensureTxReceipt","useEnsureTxReceipt","ensureCallsStatus","useEnsureCallsStatus","currentAbortControllerRef","useRef","usingPriceRef","cancelFlow","current","abort","UserCancelledError","receiverAddress","useSwapReceiverAddressValue","markNonceAsUsed","clearNonce","useMarkPermit1Or2NonceAsUsed","constructGasParams","useConstructGasParams","partner","usePartner","getQueryForPrice","useMarketPriceQueryForPrice","subscribeToPrice","useSubscribeToMarketPrice","onSwap","useWidgetEvents","submitSwapTx","onTxSent","reset","assert","abortController","AbortController","signal","signedPermitResult","approveTxHash","approveTxReceipt","allowanceToSet","freshPrice","unsubscribeFromPrice","shouldBatchTxs","needsApproval","queryKey","price","approvedAmount","onData","newPrice","aborted","undefined","amountsAfterSlippage","applySlippage","destAmount","BigInt","tryPermit","isPermitSupported","isPermitReadyToSign","onApproveTx","request","approveAsync","allowanceData","sent","throwIfAborted","approveTxReceiptPromise","onReplaced","action","receiptPromise","transactionSpecificData","tokenAddress","token","spenderAddress","spender","confirmed","txReceipt","onSignPermit","signPermitAsync","value","permit","permitEncodedArgs","failed","marketPriceToUse","gasParams","txParams","mutateAsync","swapTxInput","userAddress","receiver","destToken","srcDecimals","destDecimals","priceRoute","swapTxOptions","ignoreGasEstimate","ignoreAllowance","swapTxHash","swapCallsId","event","name","params","swapMode","calls","txsParams","to","from","approveProps","sendCallsResult","sendCalls","sendTransactionAsync","signedPermitData","swapCallsReceipt","swapTxReceipt","sendCallsReceiptPromise","then","status","source","srcTokenAddress","destTokenAddress","srcAmountUSD","srcUSD","destAmountUSD","destUSD","gasCost","callsReceipt","swapTxReceiptPromise","gasCostUSD","tradeFlowType","approve","marketSwapMut","useMutation","mutationFn","mutationKey","onSettled","runMarketSwapFlow","retryFlow","options","usedPrice","result"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAsCA,MAAMA,kBAAAA,GAAqB,YAAA;AAsF3B,MAAMC,wBAAAA,GAA2B,mBAAA;AAE1B,SAASC,aAAAA,CAAc;AAAA,EAC5BC;AACkB,CAAA,EAAwB;AAC1C,EAAA,MAAMC,MAAAA,GAASC,UAAU,YAAY,CAAA;AACrC,EAAA,MAAMC,UAAUC,UAAAA,EAAW;AAC3B,EAAA,MAAM;AAAA,IAAEC;AAAAA,GAAiB,GAAIC,YAAY,MAAM,CAAA;AAC/C,EAAA,MAAMC,WAAWC,WAAAA,EAAY;AAU7B,EAAA,MAAM;AAAA,IACJC,QAAAA;AAAAA,IACAC,UAAAA;AAAAA,IACAC,YAAAA;AAAAA,IACAC,aAAAA;AAAAA,IACAC,MAAAA,EAAQC;AAAAA,MACNC,kBAAAA,CAAmB;AAAA,IACrBC,UAAUhB,WAAAA,EAAagB,QAAAA;AAAAA;AAAAA,IAEvBC,WAAWjB,WAAAA,EAAaiB,SAAAA;AAAAA,IACxBC,mBAAAA,EAAqB,iBAAA;AAAA;AAAA,IAErBX,QAAAA,EAAUP,aAAamB,IAAAA,IAAQZ,QAAAA;AAAAA,IAC/Ba,SAAAA,EAAW;AAAA,GACZ,CAAA;AAGD,EAAA,MAAMC,aAAaC,UAAAA,CAAW;AAAA,IAC5BnB,OAAAA;AAAAA,IACAoB,eAAAA,EAAiB;AAAA,MACfC,WAAWA,MAAM;AACfvB,QAAAA,MAAAA,CAAOwB,IAAI,kBAAkB,CAAA;AAAA,MAC/B,CAAA;AAAA,MACAC,SAAUC,CAAAA,KAAAA,KAAU;AAClB1B,QAAAA,MAAAA,CAAO0B,KAAAA,CAAM,kBAAkBA,KAAK,CAAA;AAAA,MACtC;AAAA;AACF,GACD,CAAA;AAED,EAAA,MAAMC,aAAAA,GAAsD;AAAA,IAC1DC,WAAWR,UAAAA,CAAWQ,SAAAA;AAAAA,IACtBC,SAAST,UAAAA,CAAWS,OAAAA;AAAAA,IACpBC,WAAWV,UAAAA,CAAWU,SAAAA;AAAAA,IACtBJ,OAAON,UAAAA,CAAWM;AAAAA,GACpB;AAMA,EAAA,MAAMK,gBAAgBC,mBAAAA,CAAoB;AAAA,IACxCT,WAAWA,MAAM;AACfvB,MAAAA,MAAAA,CAAOwB,IAAI,iBAAiB,CAAA;AAAA,IAC9B,CAAA;AAAA,IACAC,SAAUC,CAAAA,OAAAA,KAAU;AAClB1B,MAAAA,MAAAA,CAAO0B,KAAAA,CAAM,iBAAiBA,OAAK,CAAA;AAAA,IACrC;AAAA,GACD,CAAA;AAGD,EAAA,MAAM;AAAA,IAAEO,eAAAA,EAAiBC;AAAAA,MAAgBC,cAAAA,EAAe;AACxD,EAAA,MAAM;AAAA,IAAEC;AAAAA,MAAuBC,sBAAAA,EAAuB;AAEtD,EAAA,MAAMC,aAAaC,cAAAA,CAAe;AAAA,IAChChB,WAAWA,MAAM;AACfvB,MAAAA,MAAAA,CAAOwB,IAAI,kBAAkB,CAAA;AAAA,IAC/B,CAAA;AAAA,IACAC,SAAUC,CAAAA,OAAAA,KAAU;AAClB1B,MAAAA,MAAAA,CAAO0B,KAAAA,CAAM,kBAAkBA,OAAK,CAAA;AAAA,IACtC;AAAA,GACD,CAAA;AAKD,EAAA,MAAMc,cAAcC,UAAAA,CAAW;AAAA,IAC7BC,MAAMX,aAAAA,CAAcY,MAAAA;AAAAA,IACpBzC;AAAAA,GACD,CAAA;AAGD,EAAA,MAAM0C,eAAeC,aAAAA,CAAc;AAAA,IACjCC,EAAAA,EAAIR,WAAWS,IAAAA,EAAMD;AAAAA,GACtB,CAAA;AAED,EAAA,MAAME,IAAAA,GAAoC;AAAA,IACxCL,QAAQZ,aAAAA,CAAcY,MAAAA;AAAAA,IACtBM,SAAST,WAAAA,CAAYO,IAAAA;AAAAA;AAAAA,IAErBG,gBAAgBnB,aAAAA,CAAcH,SAAAA;AAAAA,IAC9BuB,qBAAqBpB,aAAAA,CAAcF,OAAAA;AAAAA,IACnCuB,UAAUrB,aAAAA,CAAcD,SAAAA;AAAAA;AAAAA,IAExBuB,aAAab,WAAAA,CAAYc,SAAAA;AAAAA,IACzBC,WAAWf,WAAAA,CAAYV,SAAAA;AAAAA,IACvB0B,mBAAmBhB,WAAAA,CAAYX,OAAAA;AAAAA;AAAAA,IAE/BD,SAAAA,EAAWG,aAAAA,CAAcH,SAAAA,IAAaY,WAAAA,CAAYc,SAAAA;AAAAA,IAClDxB,WAAWU,WAAAA,CAAYV,SAAAA;AAAAA;AAAAA,IACvBD,OAAAA,EAASE,aAAAA,CAAcF,OAAAA,IAAWW,WAAAA,CAAYX,OAAAA;AAAAA,IAC9CH,KAAAA,EAAOK,aAAAA,CAAcL,KAAAA,IAASc,WAAAA,CAAYd;AAAAA,GAC5C;AAIA,EAAA,MAAM+B,gBAAAA,GACJb,aAAaG,IAAAA,EAAMW,QAAAA,GAAWd,aAAaG,IAAAA,CAAKW,QAAAA,CAASC,SAAS,CAAC,CAAA;AAErE,EAAA,MAAMC,SAAAA,GAA8C;AAAA,IAClD1B,WAAAA;AAAAA,IACA2B,OAAAA,EAASvB,WAAWS,IAAAA,EAAMD,EAAAA;AAAAA,IAC1BH,QAAQc,gBAAAA,EAAkBK,eAAAA;AAAAA,IAC1Bb,OAAAA,EAASQ,gBAAAA;AAAAA;AAAAA,IAETM,mBAAmBzB,UAAAA,CAAWV,SAAAA;AAAAA,IAC9BoC,wBAAwB1B,UAAAA,CAAWT,OAAAA;AAAAA,IACnCoC,aAAa3B,UAAAA,CAAWR,SAAAA;AAAAA;AAAAA,IAExBoC,gBAAgBtB,YAAAA,CAAaU,SAAAA;AAAAA,IAC7Ba,cAAcvB,YAAAA,CAAad,SAAAA;AAAAA,IAC3BsC,sBAAsBxB,YAAAA,CAAaf,OAAAA;AAAAA;AAAAA,IAEnCD,SAAAA,EAAWU,UAAAA,CAAWV,SAAAA,IAAagB,YAAAA,CAAaU,SAAAA;AAAAA,IAChDxB,WAAWc,YAAAA,CAAad,SAAAA;AAAAA,IACxBD,OAAAA,EAASS,UAAAA,CAAWT,OAAAA,IAAWe,YAAAA,CAAaf,OAAAA;AAAAA,IAC5CH,KAAAA,EAAOY,UAAAA,CAAWZ,KAAAA,IAASkB,YAAAA,CAAalB;AAAAA,GAC1C;AAEA,EAAA,MAAM;AAAA,IAAE2C,OAAAA,EAASC;AAAAA,MAAYC,UAAAA,EAAW;AAExC,EAAA,MAAMC,kBAAkBC,kBAAAA,EAAmB;AAC3C,EAAA,MAAMC,oBAAoBC,oBAAAA,EAAqB;AAG/C,EAAA,MAAMC,yBAAAA,GAA4BC,OAA+B,IAAI,CAAA;AACrE,EAAA,MAAMC,aAAAA,GAAgBD,OAA2B,IAAI,CAAA;AAErD,EAAA,MAAME,aAAaA,MAAM;AACvBH,IAAAA,yBAAAA,CAA0BI,OAAAA,EAASC,KAAAA,CAAM,IAAIC,kBAAAA,EAAoB,CAAA;AACjEN,IAAAA,yBAAAA,CAA0BI,OAAAA,GAAU,IAAA;AAEpCF,IAAAA,aAAAA,CAAcE,OAAAA,GAAU,IAAA;AAAA,EAC1B,CAAA;AAEA,EAAA,MAAMG,kBAAkBC,2BAAAA,EAA4B;AAEpD,EAAA,MAAM;AAAA,IAAEC,eAAAA;AAAAA,IAAiBC;AAAAA,MAAeC,4BAAAA,CAA6B;AAAA,IACnErF;AAAAA,GACD,CAAA;AAED,EAAA,MAAM;AAAA,IAAEsF;AAAAA,MAAuBC,qBAAAA,EAAsB;AAErD,EAAA,MAAMC,UAAUC,UAAAA,EAAW;AAE3B,EAAA,MAAMC,mBAAmBC,2BAAAA,EAA4B;AACrD,EAAA,MAAMC,mBAAmBC,yBAAAA,EAA0B;AAEnD,EAAA,MAAM;AAAA,IAAEC;AAAAA,MAAWC,eAAAA,EAAgB;AAEnC,EAAA,MAAMC,eAAyD,OAAO;AAAA,IACpEC;AAAAA,GACF,GAAI,EAAC,KAAM;AAGTzF,IAAAA,YAAAA,CAAa0F,KAAAA,EAAM;AACnBzF,IAAAA,aAAAA,CAAcyF,KAAAA,EAAM;AACpBhF,IAAAA,UAAAA,CAAWgF,KAAAA,EAAM;AACjBrE,IAAAA,aAAAA,CAAcqE,KAAAA,EAAM;AACpB9D,IAAAA,UAAAA,CAAW8D,KAAAA,EAAM;AAKjBC,IAAAA,MAAAA,CAAOtG,aAAa,+BAA+B,CAAA;AAEnD,IAAA,MAAMuG,eAAAA,GAAkB,IAAIC,eAAAA,EAAgB;AAC5C3B,IAAAA,yBAAAA,CAA0BI,OAAAA,GAAUsB,eAAAA;AAEpC,IAAA,MAAME,SAASF,eAAAA,CAAgBE,MAAAA;AAE/B,IAAA,IAAIC,kBAAAA;AAEJ,IAAA,IAAIC,aAAAA;AACJ,IAAA,IAAIC,gBAAAA;AAGJ,IAAA,MAAMC,iBAAiBpG,QAAAA,CAASoG,cAAAA;AAIhC,IAAA,IAAIC,UAAAA,GAAa9G,WAAAA;AACjB,IAAA,IAAI+G,oBAAAA;AAEJhC,IAAAA,aAAAA,CAAcE,OAAAA,GAAU6B,UAAAA;AAExB,IAAA,MAAME,cAAAA,GACJ7E,WAAAA,IAAe1B,QAAAA,CAASwG,aAAAA,IAAiB,CAAC,CAACJ,cAAAA;AAE7C,IAAA,IAAI;AAEF,MAAA,IAAI,CAACG,cAAAA,IAAkBvG,QAAAA,CAASwG,aAAAA,IAAiBJ,cAAAA,EAAgB;AAG/D,QAAA,MAAMK,WAAWrB,gBAAAA,CAAiB;AAAA,UAChC1F,OAAAA;AAAAA,UACAgH,KAAAA,EAAOL;AAAAA,SACR,CAAA,EAAGI,QAAAA;AAGJ,QAAA,IAAIA,QAAAA,EAAU;AAEZ,UAAA,MAAME,cAAAA,GAAiBP,cAAAA;AAIvBE,UAAAA,oBAAAA,GAAuBhB,gBAAAA,CAAiB;AAAA,YACtCmB,QAAAA;AAAAA,YACAG,QAASC,CAAAA,QAAAA,KAAa;AACpB,cAAA,IAAIb,OAAOc,OAAAA,EAAS;AAGlBR,gBAAAA,oBAAAA,IAAuB;AACvBA,gBAAAA,oBAAAA,GAAuBS,KAAAA,CAAAA;AACvB,gBAAA;AAAA,cACF;AAGA,cAAA,MAAMC,uBAAuBC,aAAAA,CAC3B;AAAA,gBACEzG,WAAWqG,QAAAA,CAASrG,SAAAA;AAAAA,gBACpB0G,YAAYL,QAAAA,CAASK;AAAAA,eACvB,EACAtH,gBAAAA,EACAiH,QAAAA,CAASnG,IACX,CAAA;AAGA,cAAA,IAAIiG,cAAAA,IAAkBQ,MAAAA,CAAOH,oBAAAA,CAAqBxG,SAAS,CAAA,EAAG;AAC5DhB,gBAAAA,MAAAA,CAAOwB,GAAAA,CAAI,mBAAmB6F,QAAQ,CAAA;AACtCR,gBAAAA,UAAAA,GAAaQ,QAAAA;AACbvC,gBAAAA,aAAAA,CAAcE,OAAAA,GAAU6B,UAAAA;AAAAA,cAC1B;AAAA,YACF;AAAA,WACD,CAAA;AAAA,QACH;AAEA,QAAA,MAAMe,SAAAA,GACJnH,UAAAA,CAAWoH,iBAAAA,IAAqBpH,UAAAA,CAAWqH,mBAAAA;AAC7C,QAAA,IAAI;AACF,UAAA,IAAI,CAACF,SAAAA,EAAW;AACd/G,YAAAA,qBAAAA,CAAsBkH,YAAYC,OAAAA,CAAQ;AAAA,cAAEpB;AAAAA,aAAgB,CAAA;AAI5DF,YAAAA,aAAAA,GAAgB,MAAMhG,aAAauH,YAAAA,CAAa;AAAA,cAC9CC,aAAAA,EAAe;AAAA,gBACbtB;AAAAA;AACF,aACD,CAAA;AAED/F,YAAAA,qBAAAA,CAAsBkH,YAAYI,IAAAA,CAAK;AAAA,cACrCvB,cAAAA;AAAAA,cACAjE,MAAAA,EAAQ+D;AAAAA,aACT,CAAA;AAGDF,YAAAA,MAAAA,CAAO4B,cAAAA,EAAe;AAEtB,YAAA,MAAMC,0BAA0B7D,eAAAA,CAAgB;AAAA,cAC9C9B,IAAAA,EAAMgE,aAAAA;AAAAA,cACNxG,OAAAA;AAAAA,cACAoI,YAAavF,CAAAA,IAAAA,KAAS;AACpB/C,gBAAAA,MAAAA,CAAOwB,GAAAA,CAAI,sBAAA,EAAwBkF,aAAAA,EAAe3D,IAAI,CAAA;AAAA,cACxD;AAAA,aACD,CAAA;AAED,YAAA,IAAIoD,QAAAA,EAAU;AACZA,cAAAA,QAAAA,CAAS;AAAA,gBACPjG,OAAAA;AAAAA,gBACAqI,MAAAA,EAAQ,SAAA;AAAA,gBACRzE,eAAAA,EAAiB4C,aAAAA;AAAAA,gBACjB8B,cAAAA,EAAgBH,uBAAAA;AAAAA,gBAChBI,uBAAAA,EAAyB;AAAA,kBACvBF,MAAAA,EAAQ,SAAA;AAAA,kBACRpB,cAAAA,EAAgBP,cAAAA;AAAAA,kBAChB8B,cAAclI,QAAAA,CAASmI,KAAAA;AAAAA,kBACvBC,gBAAgBpI,QAAAA,CAASqI;AAAAA;AAC3B,eACD,CAAA;AAAA,YACH;AAEAlC,YAAAA,gBAAAA,GAAmB,MAAM0B,uBAAAA;AAEzBxH,YAAAA,qBAAAA,CAAsBkH,YAAYe,SAAAA,CAAU;AAAA,cAC1ClC,cAAAA;AAAAA,cACAjE,MAAAA,EAAQ+D,aAAAA;AAAAA,cACRqC,SAAAA,EAAWpC;AAAAA,aACZ,CAAA;AAED3G,YAAAA,MAAAA,CAAOwB,GAAAA,CAAI,0BAA0BmF,gBAAgB,CAAA;AAAA,UAGvD,CAAA,MAAO;AACL9F,YAAAA,qBAAAA,CAAsBmI,aAAahB,OAAAA,CAAQ;AAAA,cAAEpB;AAAAA,aAAgB,CAAA;AAG7DH,YAAAA,kBAAAA,GAAqB,MAAM9F,cAAcsI,eAAAA,CAAgB;AAAA,cACvDC,KAAAA,EAAOtC;AAAAA,aACR,CAAA;AAED/F,YAAAA,qBAAAA,CAAsBmI,aAAaF,SAAAA,CAAU;AAAA,cAC3ClC,cAAAA;AAAAA,cACAuC,QAAQ1C,kBAAAA,EAAoB2C;AAAAA,aAC7B,CAAA;AAAA,UACH;AAAA,QACF,SAAS1H,OAAAA,EAAO;AACd,UAAA,IAAI,CAACkG,SAAAA,EAAW;AACd/G,YAAAA,qBAAAA,CAAsBkH,YAAYsB,MAAAA,CAAO;AAAA,cACvCzC,cAAAA;AAAAA,cACAlF,KAAAA,EAAOA,OAAAA;AAAAA,cACPiB,MAAAA,EAAQ+D;AAAAA;AAAAA,aACT,CAAA;AAAA,UACH,CAAA,MAAO;AACL7F,YAAAA,qBAAAA,CAAsBmI,aAAaK,MAAAA,CAAO;AAAA,cACxCzC,cAAAA;AAAAA,cACAlF,KAAAA,EAAOA;AAAAA,aACR,CAAA;AAAA,UACH;AACA,UAAA,MAAMA,OAAAA;AAAAA,QACR;AAAA,MACF;AAGA8E,MAAAA,MAAAA,CAAO4B,cAAAA,EAAe;AAEtB/B,MAAAA,MAAAA,CAAO/B,SAAS,0BAA0B,CAAA;AAE1C,MAAA,MAAMgF,gBAAAA,GAAmBzC,UAAAA;AACzB/B,MAAAA,aAAAA,CAAcE,OAAAA,GAAUsE,gBAAAA;AAExBxC,MAAAA,oBAAAA,IAAuB;AACvBA,MAAAA,oBAAAA,GAAuBS,KAAAA,CAAAA;AAEvBlB,MAAAA,MAAAA,CAAOiD,kBAAkB,+BAA+B,CAAA;AAExD,MAAA,MAAM9B,yBAAuBC,aAAAA,CAC3B;AAAA,QACEzG,WAAWsI,gBAAAA,CAAiBtI,SAAAA;AAAAA,QAC5B0G,YAAY4B,gBAAAA,CAAiB5B;AAAAA,OAC/B,EACAtH,gBAAAA,EACAkJ,gBAAAA,CAAiBpI,IACnB,CAAA;AAGA,MAAA,MAAMqI,YAAY/D,kBAAAA,EAAmB;AAErC,MAAA,MAAMgE,QAAAA,GAAW,MAAMpI,UAAAA,CAAWqI,WAAAA,CAAY;AAAA,QAC5CC,WAAAA,EAAa;AAAA,UACXC,WAAAA,EAAarF,OAAAA;AAAAA,UACbsF,QAAAA,EAAUzE,eAAAA;AAAAA,UACVpE,UAAUuI,gBAAAA,CAAiBvI,QAAAA;AAAAA,UAC3B8I,WAAWP,gBAAAA,CAAiBO,SAAAA;AAAAA,UAC5BC,aAAaR,gBAAAA,CAAiBQ,WAAAA;AAAAA,UAC9BC,cAAcT,gBAAAA,CAAiBS,YAAAA;AAAAA,UAE/BrE,OAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,UAMAyD,QAAQ1C,kBAAAA,EAAoB2C,iBAAAA;AAAAA;AAAAA,UAE5BY,UAAAA,EAAYV,gBAAAA;AAAAA,UACZ,GAAG9B;AAAAA,SACL;AAAA,QAEAyC,aAAAA,EAAe;AAAA;AAAA;AAAA,UAGbC,iBAAAA,EAAmBnD,cAAAA;AAAAA;AAAAA,UAEnBoD,eAAAA,EAAiBpD,cAAAA;AAAAA;AAAAA,UAEjB,GAAGwC;AAAAA;AACL,OACD,CAAA;AAGD/C,MAAAA,MAAAA,CAAO4B,cAAAA,EAAe;AAEtB,MAAA,IAAIgC,UAAAA;AACJ,MAAA,IAAIC,WAAAA;AAEJrE,MAAAA,MAAAA,GAAS;AAAA,QACPsE,KAAAA,EAAO;AAAA,UACLC,IAAAA,EAAM,cAAA;AAAA,UACNC,MAAAA,EAAQ;AAAA,YACNC,QAAAA,EAAU,QAAA;AAAA,YACVvD,KAAAA,EAAOoC;AAAAA;AACT;AACF,OACD,CAAA;AAED,MAAA,IAAIvC,cAAAA,EAAgB;AAClB,QAAA,MAAM;AAAA,UAAE2D;AAAAA,SAAM,GAAI,MAAMtI,kBAAAA,CAAmB;AAAA,UACzCuI,WAAW,CACT;AAAA,YACEC,IAAIpB,QAAAA,CAASoB,EAAAA;AAAAA,YACbtG,SAASkF,QAAAA,CAASqB,IAAAA;AAAAA,YAClB9H,MAAMyG,QAAAA,CAASzG,IAAAA;AAAAA,YACfmG,KAAAA,EAAOvB,MAAAA,CAAO6B,QAAAA,CAASN,KAAK,CAAA;AAAA,YAC5BhJ,SAASsJ,QAAAA,CAAStJ;AAAAA,WACnB,CAAA;AAAA,UAEH4K,cAAc,CACZ;AAAA,YACEjC,SAASrI,QAAAA,CAASqI,OAAAA;AAAAA,YAClBjC,gBAAgBpG,QAAAA,CAASoG,cAAAA;AAAAA,YACzB+B,OAAOnI,QAAAA,CAASmI,KAAAA;AAAAA,YAChBzI,SAASM,QAAAA,CAASN;AAAAA,WACnB;AAAA,SAEJ,CAAA;AAED,QAAA,MAAM6K,eAAAA,GAAkB,MAAMzI,UAAAA,CAAW0I,SAAAA,CAAU;AAAA,UACjDL,SAAAA,EAAWD;AAAAA,SACZ,CAAA;AACDL,QAAAA,WAAAA,GAAcU,eAAAA,CAAgBjI,EAAAA;AAC9BkD,QAAAA,MAAAA,GAAS;AAAA,UACPsE,KAAAA,EAAO;AAAA,YACLC,IAAAA,EAAM,WAAA;AAAA,YACNC,MAAAA,EAAQ;AAAA,cACNC,QAAAA,EAAU,QAAA;AAAA,cACVvD,KAAAA,EAAOoC,gBAAAA;AAAAA,cACPzF,OAAAA,EAASwG;AAAAA;AACX;AACF,SACD,CAAA;AAAA,MACH,CAAA,MAAO;AACLD,QAAAA,UAAAA,GAAa,MAAMrI,aAAAA,CAAckJ,oBAAAA,CAAqBzB,QAAQ,CAAA;AAC9DxD,QAAAA,MAAAA,GAAS;AAAA,UACPsE,KAAAA,EAAO;AAAA,YACLC,IAAAA,EAAM,WAAA;AAAA,YACNC,MAAAA,EAAQ;AAAA,cACNC,QAAAA,EAAU,QAAA;AAAA,cACVvD,KAAAA,EAAOoC,gBAAAA;AAAAA,cACP3G,MAAAA,EAAQyH;AAAAA;AACV;AACF,SACD,CAAA;AAAA,MACH;AAMA,MAAA,IAAI3D,kBAAAA,EAAoB;AACtBpB,QAAAA,eAAAA,CAAgBoB,mBAAmByE,gBAAgB,CAAA;AAAA,MACrD;AAEA,MAAA,IAAIC,gBAAAA;AACJ,MAAA,IAAIC,aAAAA;AAEJ,MAAA,IAAIf,WAAAA,EAAa;AACf,QAAA,MAAMgB,0BAA0B3G,iBAAAA,CAAkB;AAAA,UAChD5B,EAAAA,EAAIuH;AAAAA,SACL,CAAA,CAAEiB,IAAAA,CAAMC,CAAAA,MAAAA,KAAWA,MAAAA,CAAO7H,WAAW6H,MAAAA,CAAO7H,QAAAA,CAASC,MAAAA,GAAS,CAAC,CAAC,CAAA;AAEjE3D,QAAAA,MAAAA,CAAOwB,GAAAA,CAAI,kCAAkC6I,WAAW,CAAA;AAExD,QAAA,IAAIlE,QAAAA,EAAU;AACZA,UAAAA,QAAAA,CAAS;AAAA,YACPjG,OAAAA;AAAAA,YACAqI,MAAAA,EAAQ,MAAA;AAAA,YACR1E,OAAAA,EAASwG,WAAAA;AAAAA,YACT7B,cAAAA,EAAgB6C,uBAAAA;AAAAA,YAChB5C,uBAAAA,EAAyB;AAAA,cACvBF,MAAAA,EAAQ,MAAA;AAAA,cACRiD,MAAAA,EAAQ,OAAA;AAAA,cACRC,iBAAiBnC,gBAAAA,CAAiBvI,QAAAA;AAAAA,cAClC2K,kBAAkBpC,gBAAAA,CAAiBO,SAAAA;AAAAA,cACnC7I,WAAWwG,sBAAAA,CAAqBxG,SAAAA;AAAAA,cAChC0G,YAAYF,sBAAAA,CAAqBE,UAAAA;AAAAA,cACjCiE,cAAcrC,gBAAAA,CAAiBsC,MAAAA;AAAAA,cAC/BC,eAAevC,gBAAAA,CAAiBwC,OAAAA;AAAAA,cAChCC,SAASzC,gBAAAA,CAAiByC;AAAAA;AAC5B,WACD,CAAA;AAAA,QACH;AAEAZ,QAAAA,gBAAAA,GAAmB,MAAME,uBAAAA;AAEzB,QAAA,IAAIF,gBAAAA,EAAkB;AACpBnF,UAAAA,MAAAA,GAAS;AAAA,YACPsE,KAAAA,EAAO;AAAA,cACLC,IAAAA,EAAM,gBAAA;AAAA,cACNC,MAAAA,EAAQ;AAAA,gBACNC,QAAAA,EAAU,QAAA;AAAA,gBACVvD,KAAAA,EAAOoC,gBAAAA;AAAAA,gBACP0C,YAAAA,EAAcb,gBAAAA;AAAAA,gBACdtH,OAAAA,EAASwG;AAAAA;AACX;AACF,WACD,CAAA;AAAA,QACH;AAAA,MACF,WAAWD,UAAAA,EAAY;AACrB,QAAA,MAAM6B,uBAAuBzH,eAAAA,CAAgB;AAAA,UAC3C9B,IAAAA,EAAM0H,UAAAA;AAAAA,UACNlK,OAAAA;AAAAA,UACAoI,YAAavF,CAAAA,MAAAA,KAAS;AACpB/C,YAAAA,MAAAA,CAAOwB,GAAAA,CAAI,mBAAA,EAAqB4I,UAAAA,EAAYrH,MAAI,CAAA;AAAA,UAClD;AAAA,SACD,CAAA;AAED/C,QAAAA,MAAAA,CAAOwB,GAAAA,CAAI,iCAAiC4I,UAAU,CAAA;AAEtD,QAAA,IAAIjE,QAAAA,EAAU;AACZA,UAAAA,QAAAA,CAAS;AAAA,YACPjG,OAAAA;AAAAA,YACAqI,MAAAA,EAAQ,MAAA;AAAA,YACRzE,eAAAA,EAAiBsG,UAAAA;AAAAA,YACjB5B,cAAAA,EAAgByD,oBAAAA;AAAAA,YAChBxD,uBAAAA,EAAyB;AAAA,cACvBF,MAAAA,EAAQ,MAAA;AAAA,cACRiD,MAAAA,EAAQ,OAAA;AAAA,cACRC,iBAAiBnC,gBAAAA,CAAiBvI,QAAAA;AAAAA,cAClC2K,kBAAkBpC,gBAAAA,CAAiBO,SAAAA;AAAAA,cACnC7I,WAAWwG,sBAAAA,CAAqBxG,SAAAA;AAAAA,cAChC0G,YAAYF,sBAAAA,CAAqBE,UAAAA;AAAAA,cACjCiE,cAAcrC,gBAAAA,CAAiBsC,MAAAA;AAAAA,cAC/BC,eAAevC,gBAAAA,CAAiBwC,OAAAA;AAAAA,cAChCC,SAASzC,gBAAAA,CAAiByC,OAAAA;AAAAA,cAC1BG,YAAY5C,gBAAAA,CAAiB4C;AAAAA;AAC/B,WACD,CAAA;AAAA,QACH;AAEAd,QAAAA,aAAAA,GAAgB,MAAMa,oBAAAA;AAEtB,QAAA,IAAIb,aAAAA,EAAe;AACjBpF,UAAAA,MAAAA,GAAS;AAAA,YACPsE,KAAAA,EAAO;AAAA,cACLC,IAAAA,EAAM,gBAAA;AAAA,cACNC,MAAAA,EAAQ;AAAA,gBACNC,QAAAA,EAAU,QAAA;AAAA,gBACVvD,KAAAA,EAAOoC,gBAAAA;AAAAA,gBACPP,SAAAA,EAAWqC,aAAAA;AAAAA,gBACXzI,MAAAA,EAAQyH;AAAAA;AACV;AACF,WACD,CAAA;AAAA,QACH;AAAA,MACF;AAEApK,MAAAA,MAAAA,CAAOwB,GAAAA,CAAI,qBAAA,EAAuB2J,gBAAAA,IAAoBC,aAAa,CAAA;AAInE,MAAA,OAAO;AAAA,QACLe,aAAAA,EAAevM,kBAAAA;AAAAA,QACfwM,OAAAA,EAAS;AAAA,UACPzJ,MAAAA,EAAQ+D,aAAAA;AAAAA,UACRzD,OAAAA,EAAS0D;AAAAA,SACX;AAAA,QACA3D,IAAAA,EAAM;AAAA,UACJa,OAAAA,EAASwG,WAAAA;AAAAA,UACT1H,MAAAA,EAAQyH,UAAAA;AAAAA,UACRnH,OAAAA,EAASmI,aAAAA;AAAAA,UACTY,YAAAA,EAAcb;AAAAA,SAChB;AAAA,QACApL,WAAAA,EAAauJ,gBAAAA;AAAAA;AAAAA,QAEbhF,OAAAA;AAAAA,QACAa;AAAAA,OACF;AAAA,IACF,SAASzD,OAAAA,EAAO;AAGd,MAAA,IAAI+E,kBAAAA,EAAoB;AACtBnB,QAAAA,UAAAA,CAAWmB,mBAAmByE,gBAAgB,CAAA;AAAA,MAChD;AACAlF,MAAAA,MAAAA,GAAS;AAAA,QACPsE,KAAAA,EAAO;AAAA,UACLC,IAAAA,EAAM,aAAA;AAAA,UACNC,MAAAA,EAAQ;AAAA,YACNC,QAAAA,EAAU,QAAA;AAAA,YACV/I,KAAAA,EAAOA;AAAAA;AACT;AACF,OACD,CAAA;AACD,MAAA,MAAMA,OAAAA;AAAAA,IACR,CAAA,SAAC;AAECoF,MAAAA,oBAAAA,IAAuB;AAAA,IACzB;AAAA,EACF,CAAA;AAEA,EAAA,MAAMuF,gBAAgBC,WAAAA,CAAY;AAAA,IAChCC,UAAAA,EAAYrG,YAAAA;AAAAA,IACZsG,WAAAA,EAAa,CAAC3M,wBAAwB,CAAA;AAAA,IACtC0B,WAAYwB,CAAAA,MAAAA,KAAS;AACnB/C,MAAAA,MAAAA,CAAOwB,GAAAA,CAAI,mBAAmBuB,MAAI,CAAA;AAAA,IACpC,CAAA;AAAA,IACAtB,SAAUC,CAAAA,OAAAA,KAAU;AAClB1B,MAAAA,MAAAA,CAAO0B,KAAAA,CAAM,iBAAiBA,OAAK,CAAA;AAAA,IACrC,CAAA;AAAA,IACA+K,WAAWA,MAAM;AACfzM,MAAAA,MAAAA,CAAOwB,IAAI,iBAAiB,CAAA;AAAA,IAC9B;AAAA,GACD,CAAA;AAED,EAAA,MAAMkL,oBAAoBL,aAAAA,CAAc5C,WAAAA;AAExC,EAAA,MAAMrD,QAAQA,MAAM;AAClBtB,IAAAA,aAAAA,CAAcE,OAAAA,GAAU,IAAA;AAExBtE,IAAAA,YAAAA,CAAa0F,KAAAA,EAAM;AACnBzF,IAAAA,aAAAA,CAAcyF,KAAAA,EAAM;AACpBhF,IAAAA,UAAAA,CAAWgF,KAAAA,EAAM;AACjBrE,IAAAA,aAAAA,CAAcqE,KAAAA,EAAM;AACpB9D,IAAAA,UAAAA,CAAW8D,KAAAA,EAAM;AACjBiG,IAAAA,aAAAA,CAAcjG,KAAAA,EAAM;AAAA,EACtB,CAAA;AAEA,EAAA,MAAMuG,SAAAA,GAAYA,CAACC,OAAAA,KAA0D;AAC3ExG,IAAAA,KAAAA,EAAM;AACN,IAAA,OAAOsG,kBAAkBE,OAAO,CAAA;AAAA,EAClC,CAAA;AAGA,EAAA,MAAMC,SAAAA,GAAY/H,cAAcE,OAAAA,IAAWjF,WAAAA;AAG3C,EAAA,OAAO;AAAA,IACLoM,aAAAA,EAAevM,kBAAAA;AAAAA,IACfM,OAAAA;AAAAA,IACAwM,iBAAAA;AAAAA,IACAtG,KAAAA;AAAAA,IACArB,UAAAA;AAAAA,IACA4H,SAAAA;AAAAA,IACAnM,QAAAA;AAAAA,IACAC,UAAAA;AAAAA,IACAkB,aAAAA;AAAAA,IACAqB,IAAAA;AAAAA,IACAY,SAAAA;AAAAA;AAAAA,IAEAhC,WAAWyK,aAAAA,CAAczK,SAAAA;AAAAA,IACzBE,WAAWuK,aAAAA,CAAcvK,SAAAA;AAAAA,IACzBD,SAASwK,aAAAA,CAAcxK,OAAAA;AAAAA,IACvBH,OAAO2K,aAAAA,CAAc3K,KAAAA;AAAAA,IACrBoL,QAAQT,aAAAA,CAActJ,IAAAA;AAAAA,IACtB8J;AAAAA,GACF;AACF;;;;"}
|
|
@@ -5,13 +5,14 @@ type UseMarketSwapStepResult = {
|
|
|
5
5
|
reset: UseMarketFlowResult["reset"];
|
|
6
6
|
cancelFlow: UseMarketFlowResult["cancelFlow"];
|
|
7
7
|
retryFlow: UseMarketFlowResult["retryFlow"];
|
|
8
|
-
|
|
8
|
+
isFlowCancellable: boolean;
|
|
9
9
|
step?: MarketSwapStep;
|
|
10
10
|
explorerLink?: string;
|
|
11
11
|
error: Error | null;
|
|
12
12
|
erroredStep?: MarketSwapStepKey;
|
|
13
13
|
result?: SubmitSwapResult;
|
|
14
14
|
usedPrice: UseMarketFlowResult["usedPrice"];
|
|
15
|
+
tradeFlowType: UseMarketFlowResult["tradeFlowType"];
|
|
15
16
|
};
|
|
16
17
|
export declare function useMarketSwapStep(options: UseMarketFlowInput): UseMarketSwapStepResult;
|
|
17
18
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMarketSwapStep.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useMarketSwapStep.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EAClB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACtB,MAAM,iBAAiB,CAAC;AAKzB,KAAK,uBAAuB,GAAG;IAC7B,eAAe,EAAE,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;IAE1D,KAAK,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACpC,UAAU,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAC9C,SAAS,EAAE,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC5C,
|
|
1
|
+
{"version":3,"file":"useMarketSwapStep.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useMarketSwapStep.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EAClB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACtB,MAAM,iBAAiB,CAAC;AAKzB,KAAK,uBAAuB,GAAG;IAC7B,eAAe,EAAE,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;IAE1D,KAAK,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACpC,UAAU,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAC9C,SAAS,EAAE,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC5C,iBAAiB,EAAE,OAAO,CAAC;IAC3B,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,SAAS,EAAE,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC5C,aAAa,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACrD,CAAC;AAEF,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,kBAAkB,GAC1B,uBAAuB,CAoIzB"}
|
|
@@ -5,7 +5,7 @@ import { useLogger } from '../../../core/logger.js';
|
|
|
5
5
|
import { isUserCancelledError } from './common/errors.js';
|
|
6
6
|
|
|
7
7
|
function useMarketSwapStep(options) {
|
|
8
|
-
const $ = distExports.c(
|
|
8
|
+
const $ = distExports.c(20);
|
|
9
9
|
const logger = useLogger("MarketSwapStep");
|
|
10
10
|
const marketFlow = useMarketFlow(options);
|
|
11
11
|
const startMarketSwap = marketFlow.runMarketSwapFlow;
|
|
@@ -13,12 +13,12 @@ function useMarketSwapStep(options) {
|
|
|
13
13
|
const cancelFlow = marketFlow.cancelFlow;
|
|
14
14
|
const retryFlow = marketFlow.retryFlow;
|
|
15
15
|
let explorerLink;
|
|
16
|
-
let
|
|
16
|
+
let isFlowCancellable;
|
|
17
17
|
let step;
|
|
18
18
|
if ($[0] !== logger.once || $[1] !== marketFlow) {
|
|
19
19
|
const permitSigningHappeningOrNeverHappened = marketFlow.signPermit.isPending || !marketFlow.signPermit.isPermitSigned;
|
|
20
20
|
const approvalHappeningOrNeverHappened = marketFlow.approval.isPending || !marketFlow.approval.isSuccess;
|
|
21
|
-
const willUsePermit = marketFlow.approval.needsApproval && marketFlow.signPermit.isPermitSupported && marketFlow.signPermit.isPermitReadyToSign;
|
|
21
|
+
const willUsePermit = marketFlow.approval.needsApproval && marketFlow.signPermit.isPermitSupported && marketFlow.signPermit.isPermitReadyToSign && !marketFlow.swapBatch.canBatchTxs;
|
|
22
22
|
const permitOrApprovalHappeningOrNeverHappened = willUsePermit ? permitSigningHappeningOrNeverHappened : approvalHappeningOrNeverHappened;
|
|
23
23
|
if (marketFlow.approval.needsApproval && permitOrApprovalHappeningOrNeverHappened) {
|
|
24
24
|
step = {
|
|
@@ -26,14 +26,14 @@ function useMarketSwapStep(options) {
|
|
|
26
26
|
subStep: "approval-signature"
|
|
27
27
|
};
|
|
28
28
|
} else {
|
|
29
|
-
if (marketFlow.buildTxParams.isPending || marketFlow.swap.isConfirmingTX) {
|
|
29
|
+
if (marketFlow.buildTxParams.isPending || marketFlow.swap.isConfirmingTX || marketFlow.swapBatch.isConfirmingCalls) {
|
|
30
30
|
const permitOrApprovalHappened = !!(marketFlow.approval.txHash || marketFlow.signPermit.signature);
|
|
31
31
|
step = {
|
|
32
32
|
key: "signature",
|
|
33
33
|
subStep: permitOrApprovalHappened ? "order-signature" : "standalone-order-signature"
|
|
34
34
|
};
|
|
35
35
|
} else {
|
|
36
|
-
if (marketFlow.swap.isTxPending) {
|
|
36
|
+
if (marketFlow.swap.isTxPending || marketFlow.swapBatch.isCallsPending) {
|
|
37
37
|
step = {
|
|
38
38
|
key: "swap-tx-execution"
|
|
39
39
|
};
|
|
@@ -49,26 +49,26 @@ function useMarketSwapStep(options) {
|
|
|
49
49
|
}
|
|
50
50
|
const approvalIsStarted = step?.key === "signature" && step.subStep === "approval-signature" && marketFlow.approval.isTxPending;
|
|
51
51
|
const inSwapTxConfirmation = step?.key === "signature" && (step.subStep === "order-signature" || step.subStep === "standalone-order-signature");
|
|
52
|
-
const notYetSwapTxSent = step?.key === "swap-tx-execution" && !marketFlow.swap.isTxSent;
|
|
53
|
-
|
|
54
|
-
const txHash = marketFlow.swap.txHash;
|
|
52
|
+
const notYetSwapTxSent = step?.key === "swap-tx-execution" && !marketFlow.swap.isTxSent && !marketFlow.swapBatch.isCallsSent;
|
|
53
|
+
isFlowCancellable = approvalIsStarted || inSwapTxConfirmation || notYetSwapTxSent;
|
|
54
|
+
const txHash = marketFlow.swapBatch.txHash || marketFlow.swap.txHash;
|
|
55
55
|
explorerLink = txHash ? constructTxLinkForChain({
|
|
56
56
|
chainId: marketFlow.chainId,
|
|
57
57
|
txHash
|
|
58
58
|
}) : void 0;
|
|
59
59
|
logger.once.log("step", step, marketFlow, {
|
|
60
|
-
|
|
60
|
+
isFlowCancellable,
|
|
61
61
|
explorerLink,
|
|
62
62
|
txHash
|
|
63
63
|
});
|
|
64
64
|
$[0] = logger.once;
|
|
65
65
|
$[1] = marketFlow;
|
|
66
66
|
$[2] = explorerLink;
|
|
67
|
-
$[3] =
|
|
67
|
+
$[3] = isFlowCancellable;
|
|
68
68
|
$[4] = step;
|
|
69
69
|
} else {
|
|
70
70
|
explorerLink = $[2];
|
|
71
|
-
|
|
71
|
+
isFlowCancellable = $[3];
|
|
72
72
|
step = $[4];
|
|
73
73
|
}
|
|
74
74
|
let t0;
|
|
@@ -82,43 +82,45 @@ function useMarketSwapStep(options) {
|
|
|
82
82
|
const error = t0;
|
|
83
83
|
let erroredStep;
|
|
84
84
|
if (marketFlow.isError) {
|
|
85
|
-
if (marketFlow.approval.isError || marketFlow.signPermit.isError || marketFlow.buildTxParams.isError || marketFlow.swap.isConfirmingTxError) {
|
|
85
|
+
if (marketFlow.approval.isError || marketFlow.signPermit.isError || marketFlow.buildTxParams.isError || marketFlow.swap.isConfirmingTxError || marketFlow.swapBatch.isConfirmingCallsError) {
|
|
86
86
|
erroredStep = "signature";
|
|
87
87
|
} else {
|
|
88
|
-
if (marketFlow.swap.isTxAwaitingError) {
|
|
88
|
+
if (marketFlow.swap.isTxAwaitingError || marketFlow.swapBatch.isCallsAwaitingError) {
|
|
89
89
|
erroredStep = "swap-tx-execution";
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
93
|
let t1;
|
|
94
|
-
if ($[7] !== cancelFlow || $[8] !== error || $[9] !== erroredStep || $[10] !== explorerLink || $[11] !==
|
|
94
|
+
if ($[7] !== cancelFlow || $[8] !== error || $[9] !== erroredStep || $[10] !== explorerLink || $[11] !== isFlowCancellable || $[12] !== marketFlow.result || $[13] !== marketFlow.tradeFlowType || $[14] !== marketFlow.usedPrice || $[15] !== reset || $[16] !== retryFlow || $[17] !== startMarketSwap || $[18] !== step) {
|
|
95
95
|
t1 = {
|
|
96
96
|
startMarketSwap,
|
|
97
97
|
reset,
|
|
98
98
|
cancelFlow,
|
|
99
99
|
retryFlow,
|
|
100
|
-
|
|
100
|
+
isFlowCancellable,
|
|
101
101
|
step,
|
|
102
102
|
explorerLink,
|
|
103
103
|
error,
|
|
104
104
|
erroredStep,
|
|
105
105
|
result: marketFlow.result,
|
|
106
|
-
usedPrice: marketFlow.usedPrice
|
|
106
|
+
usedPrice: marketFlow.usedPrice,
|
|
107
|
+
tradeFlowType: marketFlow.tradeFlowType
|
|
107
108
|
};
|
|
108
109
|
$[7] = cancelFlow;
|
|
109
110
|
$[8] = error;
|
|
110
111
|
$[9] = erroredStep;
|
|
111
112
|
$[10] = explorerLink;
|
|
112
|
-
$[11] =
|
|
113
|
+
$[11] = isFlowCancellable;
|
|
113
114
|
$[12] = marketFlow.result;
|
|
114
|
-
$[13] = marketFlow.
|
|
115
|
-
$[14] =
|
|
116
|
-
$[15] =
|
|
117
|
-
$[16] =
|
|
118
|
-
$[17] =
|
|
119
|
-
$[18] =
|
|
115
|
+
$[13] = marketFlow.tradeFlowType;
|
|
116
|
+
$[14] = marketFlow.usedPrice;
|
|
117
|
+
$[15] = reset;
|
|
118
|
+
$[16] = retryFlow;
|
|
119
|
+
$[17] = startMarketSwap;
|
|
120
|
+
$[18] = step;
|
|
121
|
+
$[19] = t1;
|
|
120
122
|
} else {
|
|
121
|
-
t1 = $[
|
|
123
|
+
t1 = $[19];
|
|
122
124
|
}
|
|
123
125
|
return t1;
|
|
124
126
|
}
|
|
@@ -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 \"@/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":";;;;;;AA6BO,SAAAA,kBAAAC,OAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAGL,EAAA,MAAAC,MAAAA,GAAeC,UAAU,gBAAgB,CAAA;AACzC,EAAA,MAAAC,UAAAA,GAAmBC,cAAcN,OAAO,CAAA;AAExC,EAAA,MAAAO,kBAAwBF,UAAAA,CAAUG,iBAAAA;AAClC,EAAA,MAAAC,QAAcJ,UAAAA,CAAUI,KAAAA;AACxB,EAAA,MAAAC,aAAmBL,UAAAA,CAAUK,UAAAA;AAC7B,EAAA,MAAAC,YAAkBN,UAAAA,CAAUM,SAAAA;AAAW,EAAA,IAAAC,YAAAA;AAAA,EAAA,IAAAC,aAAAA;AAAA,EAAA,IAAAC,IAAAA;AAAA,EAAA,IAAAb,CAAAA,QAAAE,MAAAA,CAAAY,QAAAd,CAAAA,QAAAI,UAAAA,EAAA;AAIvC,IAAA,MAAAW,wCAGEX,UAAAA,CAAUY,UAAAA,CAAAC,SAAAA,IAAA,CAA0Bb,WAAUY,UAAAA,CAAAE,cAAAA;AAEhD,IAAA,MAAAC,mCAGEf,UAAAA,CAAUgB,QAAAA,CAAAH,SAAAA,IAAA,CAAwBb,WAAUgB,QAAAA,CAAAC,SAAAA;AAE9C,IAAA,MAAAC,aAAAA,GACElB,WAAUgB,QAAAA,CAAAG,aAAAA,IACVnB,WAAUY,UAAAA,CAAAQ,iBAAAA,IACVpB,WAAUY,UAAAA,CAAAS,mBAAAA;AAEZ,IAAA,MAAAC,wCAAAA,GAAiDJ,gBAC7CP,qCAAAA,GACAI,gCAAAA;AAAiC,IAAA,IAGnCf,UAAAA,CAAUgB,QAAAA,CAAAG,aAAAA,IACVG,wCAAAA,EAAwC;AAExCb,MAAAA,IAAAA,GAAAA;AAAAA,QAAAA,GAAAA,EAAcA,WAAAA;AAAAA,QAAWA,OAAAA,EAAWA;AAAAA,OAAoBA;AAAAA,IAApD,CAAA,MAAA;AAAA,MAAA,IAEJT,UAAAA,CAAUuB,aAAAA,CAAAV,SAAAA,IACVb,UAAAA,CAAUwB,KAAAC,cAAAA,EAAoB;AAE9B,QAAA,MAAAC,2BAAA,CAAA,EACE1B,WAAUgB,QAAAA,CAAAW,MAAAA,IAAoB3B,WAAUY,UAAAA,CAAAgB,SAAAA,CAAAA;AAG1CnB,QAAAA,IAAAA,GAAAA;AAAAA,UAAAA,GAAAA,EACOA,WAAAA;AAAAA,UAAWA,OAAAA,EACPiB,2BACL,iBAAA,GACA;AAAA,SAA4B;AAAA,MAJ9B,CAAA,MAAA;AAAA,QAAA,IAMK1B,UAAAA,CAAUwB,KAAAK,WAAAA,EAAA;AACnBpB,UAAAA,IAAAA,GAAAA;AAAAA,YAAAA,GAAAA,EAAcA;AAAAA,WAAmBA;AAAAA,QAA7B,CAAA,MAAA;AAAA,UAAA,IACKT,WAAUa,SAAAA,EAAA;AAGnBJ,YAAAA,IAAAA,GAAAA;AAAAA,cAAAA,GAAAA,EAAcA,WAAAA;AAAAA,cAAWA,OAAAA,EAAWA;AAAAA,aAA4BA;AAAAA,UAA5D;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAGN,IAAA,MAAAqB,iBAAAA,GACErB,MAAIsB,GAAAA,KAAU,WAAA,IACdtB,KAAIuB,OAAAA,KAAa,oBAAA,IACjBhC,WAAUgB,QAAAA,CAAAa,WAAAA;AAEZ,IAAA,MAAAI,oBAAAA,GACExB,MAAIsB,GAAAA,KAAU,WAAA,KACbtB,KAAIuB,OAAAA,KAAa,iBAAA,IAChBvB,KAAIuB,OAAAA,KAAa,4BAAA,CAAA;AAErB,IAAA,MAAAE,mBACEzB,IAAAA,EAAIsB,GAAAA,KAAU,mBAAA,IAAmB,CAAK/B,WAAUwB,IAAAA,CAAAW,QAAAA;AAIlD3B,IAAAA,aAAAA,GACEsB,qBAAqBG,oBAAAA,IAAwBC,gBAAAA;AAE/C,IAAA,MAAAP,MAAAA,GAAe3B,WAAUwB,IAAAA,CAAAG,MAAAA;AACzBpB,IAAAA,YAAAA,GAAqBoB,SACjBS,uBAAAA,CAAA;AAAA,MAAAC,SAAmCrC,UAAAA,CAAUqC,OAAAA;AAAAA,MAAAV;AAAAA,KAAkB,CAAA,GAACW,MAAAA;AAGpExC,IAAAA,MAAAA,CAAMY,IAAAA,CAAA6B,GAAAA,CAAU,MAAA,EAAQ9B,IAAAA,EAAMT,UAAAA,EAAU;AAAA,MAAAQ,aAAAA;AAAAA,MAAAD,YAAAA;AAAAA,MAAAoB;AAAAA,KAIvC,CAAA;AAAC/B,IAAAA,CAAAA,CAAA,CAAA,IAAAE,MAAAA,CAAAY,IAAAA;AAAAd,IAAAA,CAAAA,MAAAI,UAAAA;AAAAJ,IAAAA,CAAAA,MAAAW,YAAAA;AAAAX,IAAAA,CAAAA,MAAAY,aAAAA;AAAAZ,IAAAA,CAAAA,MAAAa,IAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAF,IAAAA,YAAAA,GAAAX,EAAA,CAAA,CAAA;AAAAY,IAAAA,aAAAA,GAAAZ,EAAA,CAAA,CAAA;AAAAa,IAAAA,IAAAA,GAAAb,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAA4C,EAAAA;AAAA,EAAA,IAAA5C,CAAAA,CAAA,CAAA,CAAA,KAAAI,UAAAA,CAAAyC,KAAAA,EAAA;AAGYD,IAAAA,EAAAA,GAAAE,oBAAAA,CAAqB1C,UAAAA,CAAUyC,KAAM,CAAA,GAAC,OAEhDzC,UAAAA,CAAUyC,KAAAA;AAAM7C,IAAAA,CAAAA,CAAA,CAAA,IAAAI,UAAAA,CAAAyC,KAAAA;AAAA7C,IAAAA,CAAAA,MAAA4C,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAA5C,EAAA,CAAA,CAAA;AAAA,EAAA;AAFpB,EAAA,MAAA6C,KAAAA,GAAcD,EAAAA;AAIVG,EAAAA,IAAAA,WAAAA;AAA0C,EAAA,IAE1C3C,WAAU4C,OAAAA,EAAA;AAAA,IAAA,IAEV5C,UAAAA,CAAUgB,QAAAA,CAAA4B,OAAAA,IACV5C,UAAAA,CAAUY,UAAAA,CAAAgC,OAAAA,IACV5C,UAAAA,CAAUuB,aAAAA,CAAAqB,OAAAA,IACV5C,UAAAA,CAAUwB,IAAAA,CAAAqB,mBAAAA,EAAyB;AAEnCF,MAAAA,WAAAA,GAAcA,WAAAA;AAAAA,IAAH,CAAA,MAAA;AAAA,MAAA,IACF3C,UAAAA,CAAUwB,KAAAsB,iBAAAA,EAAA;AACnBH,QAAAA,WAAAA,GAAcA,mBAAAA;AAAAA,MAAH;AAAA,IAAA;AAAA,EAAA;AAAA,EAAA,IAAAI,EAAAA;AAAA,EAAA,IAAAnD,CAAAA,QAAAS,UAAAA,IAAAT,EAAA,CAAA,CAAA,KAAA6C,SAAA7C,CAAAA,CAAA,CAAA,MAAA+C,WAAAA,IAAA/C,CAAAA,SAAAW,YAAAA,IAAAX,EAAA,EAAA,CAAA,KAAAY,iBAAAZ,CAAAA,CAAA,EAAA,MAAAI,UAAAA,CAAAgD,MAAAA,IAAApD,EAAA,EAAA,CAAA,KAAAI,WAAAiD,SAAAA,IAAArD,CAAAA,CAAA,EAAA,CAAA,KAAAQ,KAAAA,IAAAR,EAAA,EAAA,CAAA,KAAAU,aAAAV,CAAAA,SAAAM,eAAAA,IAAAN,CAAAA,CAAA,EAAA,CAAA,KAAAa,IAAAA,EAAA;AAIRsC,IAAAA,EAAAA,GAAA;AAAA,MAAA7C,eAAAA;AAAAA,MAAAE,KAAAA;AAAAA,MAAAC,UAAAA;AAAAA,MAAAC,SAAAA;AAAAA,MAAAE,aAAAA;AAAAA,MAAAC,IAAAA;AAAAA,MAAAF,YAAAA;AAAAA,MAAAkC,KAAAA;AAAAA,MAAAE,WAAAA;AAAAA,MAAAK,QAUGhD,UAAAA,CAAUgD,MAAAA;AAAAA,MAAAC,WACPjD,UAAAA,CAAUiD;AAAAA,KAAA;AACtBrD,IAAAA,CAAAA,MAAAS,UAAAA;AAAAT,IAAAA,CAAAA,MAAA6C,KAAAA;AAAA7C,IAAAA,CAAAA,MAAA+C,WAAAA;AAAA/C,IAAAA,CAAAA,OAAAW,YAAAA;AAAAX,IAAAA,CAAAA,OAAAY,aAAAA;AAAAZ,IAAAA,CAAAA,CAAA,EAAA,IAAAI,UAAAA,CAAAgD,MAAAA;AAAApD,IAAAA,CAAAA,CAAA,EAAA,IAAAI,UAAAA,CAAAiD,SAAAA;AAAArD,IAAAA,CAAAA,OAAAQ,KAAAA;AAAAR,IAAAA,CAAAA,OAAAU,SAAAA;AAAAV,IAAAA,CAAAA,OAAAM,eAAAA;AAAAN,IAAAA,CAAAA,OAAAa,IAAAA;AAAAb,IAAAA,CAAAA,OAAAmD,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAnD,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAZMmD,EAAAA;AAYN;;;;"}
|
|
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 isFlowCancellable: boolean;\n step?: MarketSwapStep;\n explorerLink?: string;\n error: Error | null;\n erroredStep?: MarketSwapStepKey;\n result?: SubmitSwapResult;\n usedPrice: UseMarketFlowResult[\"usedPrice\"];\n tradeFlowType: UseMarketFlowResult[\"tradeFlowType\"];\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 !marketFlow.swapBatch.canBatchTxs;\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 marketFlow.swapBatch.isConfirmingCalls\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 (\n marketFlow.swap.isTxPending ||\n marketFlow.swapBatch.isCallsPending\n ) {\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\" &&\n !marketFlow.swap.isTxSent &&\n !marketFlow.swapBatch.isCallsSent;\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 isFlowCancellable =\n approvalIsStarted || inSwapTxConfirmation || notYetSwapTxSent;\n\n // either of the txHashes will be available\n const txHash = marketFlow.swapBatch.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 isFlowCancellable,\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 marketFlow.swapBatch.isConfirmingCallsError\n ) {\n erroredStep = \"signature\";\n } else if (\n marketFlow.swap.isTxAwaitingError ||\n marketFlow.swapBatch.isCallsAwaitingError\n ) {\n erroredStep = \"swap-tx-execution\";\n }\n }\n\n return {\n startMarketSwap,\n reset,\n cancelFlow,\n retryFlow,\n isFlowCancellable,\n step,\n explorerLink,\n error,\n erroredStep,\n result: marketFlow.result,\n usedPrice: marketFlow.usedPrice,\n tradeFlowType: marketFlow.tradeFlowType,\n };\n}\n"],"names":["useMarketSwapStep","options","$","_c","logger","useLogger","marketFlow","useMarketFlow","startMarketSwap","runMarketSwapFlow","reset","cancelFlow","retryFlow","explorerLink","isFlowCancellable","step","once","permitSigningHappeningOrNeverHappened","signPermit","isPending","isPermitSigned","approvalHappeningOrNeverHappened","approval","isSuccess","willUsePermit","needsApproval","isPermitSupported","isPermitReadyToSign","swapBatch","canBatchTxs","permitOrApprovalHappeningOrNeverHappened","buildTxParams","swap","isConfirmingTX","isConfirmingCalls","permitOrApprovalHappened","txHash","signature","isTxPending","isCallsPending","approvalIsStarted","key","subStep","inSwapTxConfirmation","notYetSwapTxSent","isTxSent","isCallsSent","constructTxLinkForChain","chainId","undefined","log","t0","error","isUserCancelledError","erroredStep","isError","isConfirmingTxError","isConfirmingCallsError","isTxAwaitingError","isCallsAwaitingError","t1","result","tradeFlowType","usedPrice"],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { SpenderContractType } from '../../sdk/types';
|
|
2
2
|
import { SupportedChainId } from '../../../lib/web3/wagmi/types';
|
|
3
|
-
import { Token } from '
|
|
3
|
+
import { Token } from '../../../tokens/state/types';
|
|
4
4
|
import { Address } from 'viem';
|
|
5
5
|
export type UseGenericTokenAllowanceInput = {
|
|
6
|
-
token?: Pick<Token, "address" | "decimals">;
|
|
6
|
+
token?: Pick<Token, "address" | "decimals" | "network">;
|
|
7
7
|
spenderContractType?: SpenderContractType;
|
|
8
8
|
amountToApproveInWei?: string | bigint;
|
|
9
9
|
};
|
|
@@ -15,10 +15,12 @@ export type AllowanceData = {
|
|
|
15
15
|
allowanceToSetHumanReadable?: string;
|
|
16
16
|
differenceLeftToApprove?: bigint;
|
|
17
17
|
differenceLeftToApproveHumanReadable?: string;
|
|
18
|
-
spender?: string;
|
|
19
18
|
};
|
|
20
19
|
export type GenericTokenAllowance = {
|
|
20
|
+
chainId?: SupportedChainId;
|
|
21
21
|
isLoadingPrerequisites: boolean;
|
|
22
|
+
token?: Address;
|
|
23
|
+
spender?: Address;
|
|
22
24
|
} & AllowanceData;
|
|
23
25
|
export type UseTokenAllowanceInput = {
|
|
24
26
|
tokenAddress?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/hooks/tokens/allowance/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/hooks/tokens/allowance/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpC,MAAM,MAAM,6BAA6B,GAAG;IAC1C,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC,CAAC;IACxD,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,oBAAoB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,aAAa,EAAE,OAAO,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,oCAAoC,CAAC,EAAE,MAAM,CAAC;CAC/C,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,sBAAsB,EAAE,OAAO,CAAC;IAChC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GAAG,aAAa,CAAC;AAElB,MAAM,MAAM,sBAAsB,GAAG;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC"}
|
|
@@ -9,7 +9,7 @@ type UseGenericTokenAllowanceMinInput = {
|
|
|
9
9
|
amountToApproveInWei?: string | bigint;
|
|
10
10
|
chainId?: SupportedChainId;
|
|
11
11
|
};
|
|
12
|
-
type GenericTokenAllowanceMin = Pick<GenericTokenAllowance, "isLoadingPrerequisites" | "allowance" | "needsApproval" | "enoughAllowance" | "allowanceToSet" | "spender"> & {
|
|
12
|
+
type GenericTokenAllowanceMin = Pick<GenericTokenAllowance, "isLoadingPrerequisites" | "allowance" | "needsApproval" | "enoughAllowance" | "allowanceToSet" | "spender" | "token"> & {
|
|
13
13
|
queryKey: QueryKey;
|
|
14
14
|
};
|
|
15
15
|
export declare const useGenericTokenAllowanceMin: ({ tokenAddress, amountToApproveInWei, spenderContractType, chainId, }?: UseGenericTokenAllowanceMinInput) => GenericTokenAllowanceMin;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGenericTokenAllowance.d.ts","sourceRoot":"","sources":["../../../../src/hooks/tokens/allowance/useGenericTokenAllowance.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAEV,qBAAqB,EACrB,6BAA6B,EAC9B,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,eAAO,MAAM,wBAAwB,GAAI,wDAItC,6BAAkC,KAAG,
|
|
1
|
+
{"version":3,"file":"useGenericTokenAllowance.d.ts","sourceRoot":"","sources":["../../../../src/hooks/tokens/allowance/useGenericTokenAllowance.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAEV,qBAAqB,EACrB,6BAA6B,EAC9B,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,eAAO,MAAM,wBAAwB,GAAI,wDAItC,6BAAkC,KAAG,qBAuCvC,CAAC;AAEF,KAAK,gCAAgC,GAAG;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,oBAAoB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvC,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B,CAAC;AAEF,KAAK,wBAAwB,GAAG,IAAI,CAClC,qBAAqB,EACnB,wBAAwB,GACxB,WAAW,GACX,eAAe,GACf,iBAAiB,GACjB,gBAAgB,GAChB,SAAS,GACT,OAAO,CACV,GAAG;IAAE,QAAQ,EAAE,QAAQ,CAAA;CAAE,CAAC;AAG3B,eAAO,MAAM,2BAA2B,GAAI,wEAKzC,gCAAqC,KAAG,wBA+D1C,CAAC"}
|
|
@@ -42,6 +42,8 @@ const useGenericTokenAllowance = ({
|
|
|
42
42
|
}, [allowance, amountToApproveInWei, isConnected, token]);
|
|
43
43
|
const isLoadingPrerequisites = isConnected && (isLoadingSpender || isLoadingAllowance);
|
|
44
44
|
return {
|
|
45
|
+
token: token?.address,
|
|
46
|
+
chainId: token?.network,
|
|
45
47
|
allowance,
|
|
46
48
|
isLoadingPrerequisites,
|
|
47
49
|
spender,
|
|
@@ -103,6 +105,7 @@ const useGenericTokenAllowanceMin = ({
|
|
|
103
105
|
allowance,
|
|
104
106
|
isLoadingPrerequisites,
|
|
105
107
|
spender,
|
|
108
|
+
token: tokenAddress,
|
|
106
109
|
...allowanceOnChain,
|
|
107
110
|
queryKey
|
|
108
111
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGenericTokenAllowance.js","sources":["../../../../src/hooks/tokens/allowance/useGenericTokenAllowance.ts"],"sourcesContent":["import { useTokenAllowance } from \"./useTokenAllowance\";\nimport { formatUnits } from \"viem\";\nimport { useSpender } from \"@/hooks/sdk/useSpender\";\n\nimport { useAccount } from \"wagmi\";\nimport { toDecimal } from \"@/lib/utils/toDecimal\";\nimport { useMemo } from \"react\";\nimport { isETH } from \"@/tokens/utils/eth\";\nimport type {\n AllowanceData,\n GenericTokenAllowance,\n UseGenericTokenAllowanceInput,\n} from \"./types\";\nimport type { SpenderContractType } from \"@/hooks/sdk/types\";\nimport type { QueryKey } from \"@tanstack/react-query\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\n\nexport const useGenericTokenAllowance = ({\n token,\n amountToApproveInWei = 0n,\n spenderContractType,\n}: UseGenericTokenAllowanceInput = {}): GenericTokenAllowance => {\n const { isConnected } = useAccount();\n\n const { spender, isLoading: isLoadingSpender } =\n useSpender(spenderContractType);\n\n const { data: allowance, isLoading: isLoadingAllowance } = useTokenAllowance({\n tokenAddress: token?.address,\n spender,\n });\n\n const allowanceOnChain = useMemo(() => {\n const tokenDoesntRequireAllowance = !token || isETH(token) || !isConnected;\n\n if (tokenDoesntRequireAllowance) {\n return {\n needsApproval: false,\n enoughAllowance: true,\n };\n }\n\n return calcAllowanceData({\n allowance: allowance || 0n,\n amountToApproveInWei: BigInt(amountToApproveInWei), // ok to cast wei\n tokenDecimals: token?.decimals,\n });\n }, [allowance, amountToApproveInWei, isConnected, token]);\n\n const isLoadingPrerequisites =\n isConnected && (isLoadingSpender || isLoadingAllowance);\n\n return {\n allowance,\n isLoadingPrerequisites,\n spender,\n ...allowanceOnChain,\n };\n};\n\ntype UseGenericTokenAllowanceMinInput = {\n tokenAddress?: string;\n spenderContractType?: SpenderContractType;\n amountToApproveInWei?: string | bigint;\n chainId?: SupportedChainId;\n};\n\ntype GenericTokenAllowanceMin = Pick<\n GenericTokenAllowance,\n | \"isLoadingPrerequisites\"\n | \"allowance\"\n | \"needsApproval\"\n | \"enoughAllowance\"\n | \"allowanceToSet\"\n | \"spender\"\n> & { queryKey: QueryKey };\n\n// exclusively deals with wei\nexport const useGenericTokenAllowanceMin = ({\n tokenAddress,\n amountToApproveInWei = 0n,\n spenderContractType,\n chainId,\n}: UseGenericTokenAllowanceMinInput = {}): GenericTokenAllowanceMin => {\n const { isConnected } = useAccount();\n\n const { spender, isLoading: isLoadingSpender } =\n useSpender(spenderContractType);\n\n const {\n data: allowance,\n isLoading: isLoadingAllowance,\n queryKey,\n } = useTokenAllowance({\n tokenAddress,\n spender,\n chainId,\n });\n\n const allowanceOnChain = useMemo(() => {\n const tokenDoesntRequireAllowance =\n !tokenAddress || isETH({ address: tokenAddress }) || !isConnected;\n\n if (tokenDoesntRequireAllowance) {\n return {\n needsApproval: false,\n enoughAllowance: true,\n };\n }\n\n const amountToApproveInWeiBigInt = BigInt(amountToApproveInWei);\n\n const enoughAllowance =\n !!allowance && allowance >= amountToApproveInWeiBigInt;\n const needsApproval = !enoughAllowance;\n\n if (!needsApproval) {\n return {\n needsApproval: false,\n enoughAllowance,\n };\n }\n\n const differenceLeftToApprove =\n amountToApproveInWeiBigInt - (allowance || 0n);\n\n return {\n needsApproval,\n enoughAllowance,\n allowance,\n allowanceToSet: amountToApproveInWeiBigInt,\n differenceLeftToApprove,\n };\n }, [allowance, amountToApproveInWei, isConnected, tokenAddress]);\n\n const isLoadingPrerequisites =\n isConnected && (isLoadingSpender || isLoadingAllowance);\n\n return {\n allowance,\n isLoadingPrerequisites,\n spender,\n ...allowanceOnChain,\n queryKey,\n };\n};\n\nfunction calcAllowanceData({\n allowance,\n amountToApproveInWei,\n tokenDecimals,\n}: {\n allowance: bigint;\n amountToApproveInWei: bigint;\n tokenDecimals: number;\n}): AllowanceData {\n const enoughAllowance = allowance >= amountToApproveInWei;\n\n const needsApproval = !enoughAllowance;\n\n if (!needsApproval) {\n return {\n needsApproval: false,\n enoughAllowance,\n };\n }\n\n const differenceLeftToApprove = amountToApproveInWei - allowance;\n\n const amountToApproveUnits = formatUnits(amountToApproveInWei, tokenDecimals);\n const allowanceToSetHumanReadable = toDecimal(Number(amountToApproveUnits));\n\n const differenceLeftToApproveUnits = formatUnits(\n differenceLeftToApprove,\n tokenDecimals\n );\n const differenceLeftToApproveHumanReadable = toDecimal(\n Number(differenceLeftToApproveUnits)\n );\n\n return {\n needsApproval,\n enoughAllowance,\n allowance,\n allowanceToSet: amountToApproveInWei,\n allowanceToSetHumanReadable,\n differenceLeftToApprove,\n differenceLeftToApproveHumanReadable,\n };\n}\n"],"names":["useGenericTokenAllowance","token","amountToApproveInWei","spenderContractType","isConnected","useAccount","spender","isLoading","isLoadingSpender","useSpender","data","allowance","isLoadingAllowance","useTokenAllowance","tokenAddress","address","allowanceOnChain","useMemo","tokenDoesntRequireAllowance","isETH","needsApproval","enoughAllowance","calcAllowanceData","BigInt","tokenDecimals","decimals","isLoadingPrerequisites","
|
|
1
|
+
{"version":3,"file":"useGenericTokenAllowance.js","sources":["../../../../src/hooks/tokens/allowance/useGenericTokenAllowance.ts"],"sourcesContent":["import { useTokenAllowance } from \"./useTokenAllowance\";\nimport { formatUnits, type Address } from \"viem\";\nimport { useSpender } from \"@/hooks/sdk/useSpender\";\n\nimport { useAccount } from \"wagmi\";\nimport { toDecimal } from \"@/lib/utils/toDecimal\";\nimport { useMemo } from \"react\";\nimport { isETH } from \"@/tokens/utils/eth\";\nimport type {\n AllowanceData,\n GenericTokenAllowance,\n UseGenericTokenAllowanceInput,\n} from \"./types\";\nimport type { SpenderContractType } from \"@/hooks/sdk/types\";\nimport type { QueryKey } from \"@tanstack/react-query\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\n\nexport const useGenericTokenAllowance = ({\n token,\n amountToApproveInWei = 0n,\n spenderContractType,\n}: UseGenericTokenAllowanceInput = {}): GenericTokenAllowance => {\n const { isConnected } = useAccount();\n\n const { spender, isLoading: isLoadingSpender } =\n useSpender(spenderContractType);\n\n const { data: allowance, isLoading: isLoadingAllowance } = useTokenAllowance({\n tokenAddress: token?.address,\n spender,\n });\n\n const allowanceOnChain = useMemo(() => {\n const tokenDoesntRequireAllowance = !token || isETH(token) || !isConnected;\n\n if (tokenDoesntRequireAllowance) {\n return {\n needsApproval: false,\n enoughAllowance: true,\n };\n }\n\n return calcAllowanceData({\n allowance: allowance || 0n,\n amountToApproveInWei: BigInt(amountToApproveInWei), // ok to cast wei\n tokenDecimals: token?.decimals,\n });\n }, [allowance, amountToApproveInWei, isConnected, token]);\n\n const isLoadingPrerequisites =\n isConnected && (isLoadingSpender || isLoadingAllowance);\n\n return {\n token: token?.address as Address | undefined,\n chainId: token?.network,\n allowance,\n isLoadingPrerequisites,\n spender: spender as Address | undefined,\n ...allowanceOnChain,\n };\n};\n\ntype UseGenericTokenAllowanceMinInput = {\n tokenAddress?: string;\n spenderContractType?: SpenderContractType;\n amountToApproveInWei?: string | bigint;\n chainId?: SupportedChainId;\n};\n\ntype GenericTokenAllowanceMin = Pick<\n GenericTokenAllowance,\n | \"isLoadingPrerequisites\"\n | \"allowance\"\n | \"needsApproval\"\n | \"enoughAllowance\"\n | \"allowanceToSet\"\n | \"spender\"\n | \"token\"\n> & { queryKey: QueryKey };\n\n// exclusively deals with wei\nexport const useGenericTokenAllowanceMin = ({\n tokenAddress,\n amountToApproveInWei = 0n,\n spenderContractType,\n chainId,\n}: UseGenericTokenAllowanceMinInput = {}): GenericTokenAllowanceMin => {\n const { isConnected } = useAccount();\n\n const { spender, isLoading: isLoadingSpender } =\n useSpender(spenderContractType);\n\n const {\n data: allowance,\n isLoading: isLoadingAllowance,\n queryKey,\n } = useTokenAllowance({\n tokenAddress,\n spender,\n chainId,\n });\n\n const allowanceOnChain = useMemo(() => {\n const tokenDoesntRequireAllowance =\n !tokenAddress || isETH({ address: tokenAddress }) || !isConnected;\n\n if (tokenDoesntRequireAllowance) {\n return {\n needsApproval: false,\n enoughAllowance: true,\n };\n }\n\n const amountToApproveInWeiBigInt = BigInt(amountToApproveInWei);\n\n const enoughAllowance =\n !!allowance && allowance >= amountToApproveInWeiBigInt;\n const needsApproval = !enoughAllowance;\n\n if (!needsApproval) {\n return {\n needsApproval: false,\n enoughAllowance,\n };\n }\n\n const differenceLeftToApprove =\n amountToApproveInWeiBigInt - (allowance || 0n);\n\n return {\n needsApproval,\n enoughAllowance,\n allowance,\n allowanceToSet: amountToApproveInWeiBigInt,\n differenceLeftToApprove,\n };\n }, [allowance, amountToApproveInWei, isConnected, tokenAddress]);\n\n const isLoadingPrerequisites =\n isConnected && (isLoadingSpender || isLoadingAllowance);\n\n return {\n allowance,\n isLoadingPrerequisites,\n spender: spender as Address | undefined,\n token: tokenAddress as Address | undefined,\n ...allowanceOnChain,\n queryKey,\n };\n};\n\nfunction calcAllowanceData({\n allowance,\n amountToApproveInWei,\n tokenDecimals,\n}: {\n allowance: bigint;\n amountToApproveInWei: bigint;\n tokenDecimals: number;\n}): AllowanceData {\n const enoughAllowance = allowance >= amountToApproveInWei;\n\n const needsApproval = !enoughAllowance;\n\n if (!needsApproval) {\n return {\n needsApproval: false,\n enoughAllowance,\n };\n }\n\n const differenceLeftToApprove = amountToApproveInWei - allowance;\n\n const amountToApproveUnits = formatUnits(amountToApproveInWei, tokenDecimals);\n const allowanceToSetHumanReadable = toDecimal(Number(amountToApproveUnits));\n\n const differenceLeftToApproveUnits = formatUnits(\n differenceLeftToApprove,\n tokenDecimals\n );\n const differenceLeftToApproveHumanReadable = toDecimal(\n Number(differenceLeftToApproveUnits)\n );\n\n return {\n needsApproval,\n enoughAllowance,\n allowance,\n allowanceToSet: amountToApproveInWei,\n allowanceToSetHumanReadable,\n differenceLeftToApprove,\n differenceLeftToApproveHumanReadable,\n };\n}\n"],"names":["useGenericTokenAllowance","token","amountToApproveInWei","spenderContractType","isConnected","useAccount","spender","isLoading","isLoadingSpender","useSpender","data","allowance","isLoadingAllowance","useTokenAllowance","tokenAddress","address","allowanceOnChain","useMemo","tokenDoesntRequireAllowance","isETH","needsApproval","enoughAllowance","calcAllowanceData","BigInt","tokenDecimals","decimals","isLoadingPrerequisites","chainId","network","useGenericTokenAllowanceMin","queryKey","amountToApproveInWeiBigInt","differenceLeftToApprove","allowanceToSet","amountToApproveUnits","formatUnits","allowanceToSetHumanReadable","toDecimal","Number","differenceLeftToApproveUnits","differenceLeftToApproveHumanReadable"],"mappings":";;;;;;;;AAiBO,MAAMA,2BAA2BA,CAAC;AAAA,EACvCC,KAAAA;AAAAA,EACAC,oBAAAA,GAAuB,EAAA;AAAA,EACvBC;AAC6B,CAAA,GAAI,EAAC,KAA6B;AAC/D,EAAA,MAAM;AAAA,IAAEC;AAAAA,MAAgBC,UAAAA,EAAW;AAEnC,EAAA,MAAM;AAAA,IAAEC,OAAAA;AAAAA,IAASC,SAAAA,EAAWC;AAAAA,GAAiB,GAC3CC,WAAWN,mBAAmB,CAAA;AAEhC,EAAA,MAAM;AAAA,IAAEO,IAAAA,EAAMC,SAAAA;AAAAA,IAAWJ,SAAAA,EAAWK;AAAAA,MAAuBC,iBAAAA,CAAkB;AAAA,IAC3EC,cAAcb,KAAAA,EAAOc,OAAAA;AAAAA,IACrBT;AAAAA,GACD,CAAA;AAED,EAAA,MAAMU,gBAAAA,GAAmBC,QAAQ,MAAM;AACrC,IAAA,MAAMC,8BAA8B,CAACjB,KAAAA,IAASkB,KAAAA,CAAMlB,KAAK,KAAK,CAACG,WAAAA;AAE/D,IAAA,IAAIc,2BAAAA,EAA6B;AAC/B,MAAA,OAAO;AAAA,QACLE,aAAAA,EAAe,KAAA;AAAA,QACfC,eAAAA,EAAiB;AAAA,OACnB;AAAA,IACF;AAEA,IAAA,OAAOC,iBAAAA,CAAkB;AAAA,MACvBX,WAAWA,SAAAA,IAAa,EAAA;AAAA,MACxBT,oBAAAA,EAAsBqB,OAAOrB,oBAAoB,CAAA;AAAA;AAAA,MACjDsB,eAAevB,KAAAA,EAAOwB;AAAAA,KACvB,CAAA;AAAA,EACH,GAAG,CAACd,SAAAA,EAAWT,oBAAAA,EAAsBE,WAAAA,EAAaH,KAAK,CAAC,CAAA;AAExD,EAAA,MAAMyB,sBAAAA,GACJtB,gBAAgBI,gBAAAA,IAAoBI,kBAAAA,CAAAA;AAEtC,EAAA,OAAO;AAAA,IACLX,OAAOA,KAAAA,EAAOc,OAAAA;AAAAA,IACdY,SAAS1B,KAAAA,EAAO2B,OAAAA;AAAAA,IAChBjB,SAAAA;AAAAA,IACAe,sBAAAA;AAAAA,IACApB,OAAAA;AAAAA,IACA,GAAGU;AAAAA,GACL;AACF;AAqBO,MAAMa,8BAA8BA,CAAC;AAAA,EAC1Cf,YAAAA;AAAAA,EACAZ,oBAAAA,GAAuB,EAAA;AAAA,EACvBC,mBAAAA;AAAAA,EACAwB;AACgC,CAAA,GAAI,EAAC,KAAgC;AACrE,EAAA,MAAM;AAAA,IAAEvB;AAAAA,MAAgBC,UAAAA,EAAW;AAEnC,EAAA,MAAM;AAAA,IAAEC,OAAAA;AAAAA,IAASC,SAAAA,EAAWC;AAAAA,GAAiB,GAC3CC,WAAWN,mBAAmB,CAAA;AAEhC,EAAA,MAAM;AAAA,IACJO,IAAAA,EAAMC,SAAAA;AAAAA,IACNJ,SAAAA,EAAWK,kBAAAA;AAAAA,IACXkB;AAAAA,MACEjB,iBAAAA,CAAkB;AAAA,IACpBC,YAAAA;AAAAA,IACAR,OAAAA;AAAAA,IACAqB;AAAAA,GACD,CAAA;AAED,EAAA,MAAMX,gBAAAA,GAAmBC,QAAQ,MAAM;AACrC,IAAA,MAAMC,2BAAAA,GACJ,CAACJ,YAAAA,IAAgBK,KAAAA,CAAM;AAAA,MAAEJ,OAAAA,EAASD;AAAAA,KAAc,KAAK,CAACV,WAAAA;AAExD,IAAA,IAAIc,2BAAAA,EAA6B;AAC/B,MAAA,OAAO;AAAA,QACLE,aAAAA,EAAe,KAAA;AAAA,QACfC,eAAAA,EAAiB;AAAA,OACnB;AAAA,IACF;AAEA,IAAA,MAAMU,0BAAAA,GAA6BR,OAAOrB,oBAAoB,CAAA;AAE9D,IAAA,MAAMmB,eAAAA,GACJ,CAAC,CAACV,SAAAA,IAAaA,SAAAA,IAAaoB,0BAAAA;AAC9B,IAAA,MAAMX,gBAAgB,CAACC,eAAAA;AAEvB,IAAA,IAAI,CAACD,aAAAA,EAAe;AAClB,MAAA,OAAO;AAAA,QACLA,aAAAA,EAAe,KAAA;AAAA,QACfC;AAAAA,OACF;AAAA,IACF;AAEA,IAAA,MAAMW,uBAAAA,GACJD,8BAA8BpB,SAAAA,IAAa,EAAA,CAAA;AAE7C,IAAA,OAAO;AAAA,MACLS,aAAAA;AAAAA,MACAC,eAAAA;AAAAA,MACAV,SAAAA;AAAAA,MACAsB,cAAAA,EAAgBF,0BAAAA;AAAAA,MAChBC;AAAAA,KACF;AAAA,EACF,GAAG,CAACrB,SAAAA,EAAWT,oBAAAA,EAAsBE,WAAAA,EAAaU,YAAY,CAAC,CAAA;AAE/D,EAAA,MAAMY,sBAAAA,GACJtB,gBAAgBI,gBAAAA,IAAoBI,kBAAAA,CAAAA;AAEtC,EAAA,OAAO;AAAA,IACLD,SAAAA;AAAAA,IACAe,sBAAAA;AAAAA,IACApB,OAAAA;AAAAA,IACAL,KAAAA,EAAOa,YAAAA;AAAAA,IACP,GAAGE,gBAAAA;AAAAA,IACHc;AAAAA,GACF;AACF;AAEA,SAASR,iBAAAA,CAAkB;AAAA,EACzBX,SAAAA;AAAAA,EACAT,oBAAAA;AAAAA,EACAsB;AAKF,CAAA,EAAkB;AAChB,EAAA,MAAMH,kBAAkBV,SAAAA,IAAaT,oBAAAA;AAErC,EAAA,MAAMkB,gBAAgB,CAACC,eAAAA;AAEvB,EAAA,IAAI,CAACD,aAAAA,EAAe;AAClB,IAAA,OAAO;AAAA,MACLA,aAAAA,EAAe,KAAA;AAAA,MACfC;AAAAA,KACF;AAAA,EACF;AAEA,EAAA,MAAMW,0BAA0B9B,oBAAAA,GAAuBS,SAAAA;AAEvD,EAAA,MAAMuB,oBAAAA,GAAuBC,WAAAA,CAAYjC,oBAAAA,EAAsBsB,aAAa,CAAA;AAC5E,EAAA,MAAMY,2BAAAA,GAA8BC,SAAAA,CAAUC,MAAAA,CAAOJ,oBAAoB,CAAC,CAAA;AAE1E,EAAA,MAAMK,4BAAAA,GAA+BJ,WAAAA,CACnCH,uBAAAA,EACAR,aACF,CAAA;AACA,EAAA,MAAMgB,oCAAAA,GAAuCH,SAAAA,CAC3CC,MAAAA,CAAOC,4BAA4B,CACrC,CAAA;AAEA,EAAA,OAAO;AAAA,IACLnB,aAAAA;AAAAA,IACAC,eAAAA;AAAAA,IACAV,SAAAA;AAAAA,IACAsB,cAAAA,EAAgB/B,oBAAAA;AAAAA,IAChBkC,2BAAAA;AAAAA,IACAJ,uBAAAA;AAAAA,IACAQ;AAAAA,GACF;AACF;;;;"}
|
|
@@ -1,9 +1,14 @@
|
|
|
1
|
-
import { Token
|
|
1
|
+
import { Token } from '../../../tokens/state/types';
|
|
2
2
|
import { SupportedChainId } from '../../../lib/web3/wagmi/types';
|
|
3
|
+
type AddTokenBalanceToToken = <T extends Pick<Token, "address" | "network" | "decimals">>(token: T) => T & {
|
|
4
|
+
balance?: string;
|
|
5
|
+
usdBalance?: number;
|
|
6
|
+
};
|
|
3
7
|
/**
|
|
4
8
|
This hook will fetch the balances and return a function that will add a balance to the token if available.
|
|
5
9
|
*/
|
|
6
10
|
export declare const useAttachTokenBalanceMultichain: ({ addressesMap, }: {
|
|
7
11
|
addressesMap: Partial<Record<SupportedChainId, string[]>>;
|
|
8
|
-
}) =>
|
|
12
|
+
}) => AddTokenBalanceToToken;
|
|
13
|
+
export {};
|
|
9
14
|
//# sourceMappingURL=useAttachTokenBalanceMultichain.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAttachTokenBalanceMultichain.d.ts","sourceRoot":"","sources":["../../../../src/hooks/tokens/balances/useAttachTokenBalanceMultichain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"useAttachTokenBalanceMultichain.d.ts","sourceRoot":"","sources":["../../../../src/hooks/tokens/balances/useAttachTokenBalanceMultichain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAIlD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAU/D,KAAK,sBAAsB,GAAG,CAC5B,CAAC,SAAS,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC,EAEzD,KAAK,EAAE,CAAC,KACL,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnD;;GAEG;AACH,eAAO,MAAM,+BAA+B,GAAI,mBAE7C;IACD,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;CAC3D,KAAG,sBAsDH,CAAC"}
|
|
@@ -6,6 +6,7 @@ import { useMultiChainTokenPrices } from '../prices/useMultichainTokenPrices.js'
|
|
|
6
6
|
import { isSupportedChainId } from '../../../lib/web3/wagmi/utils.js';
|
|
7
7
|
import { useAccount } from 'wagmi';
|
|
8
8
|
import { useSelectedTokenBalances } from './useSelectedTokenBalances.js';
|
|
9
|
+
import { useTradeMode } from '../../../core/state/tradeModeAtom.js';
|
|
9
10
|
|
|
10
11
|
const useAttachTokenBalanceMultichain = (t0) => {
|
|
11
12
|
const $ = distExports.c(9);
|
|
@@ -15,6 +16,7 @@ const useAttachTokenBalanceMultichain = (t0) => {
|
|
|
15
16
|
const {
|
|
16
17
|
address: account
|
|
17
18
|
} = useAccount();
|
|
19
|
+
const tradeMode = useTradeMode();
|
|
18
20
|
let t1;
|
|
19
21
|
if ($[0] !== addressesMap) {
|
|
20
22
|
t1 = {
|
|
@@ -26,7 +28,7 @@ const useAttachTokenBalanceMultichain = (t0) => {
|
|
|
26
28
|
t1 = $[1];
|
|
27
29
|
}
|
|
28
30
|
const multiChainTokenBalances = useMultiChainTokenBalances(t1);
|
|
29
|
-
const selectedTokenBalances = useSelectedTokenBalances();
|
|
31
|
+
const selectedTokenBalances = useSelectedTokenBalances(tradeMode);
|
|
30
32
|
let t2;
|
|
31
33
|
let t3;
|
|
32
34
|
if ($[2] !== addressesMap) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAttachTokenBalanceMultichain.js","sources":["../../../../src/hooks/tokens/balances/useAttachTokenBalanceMultichain.ts"],"sourcesContent":["import type { Token
|
|
1
|
+
{"version":3,"file":"useAttachTokenBalanceMultichain.js","sources":["../../../../src/hooks/tokens/balances/useAttachTokenBalanceMultichain.ts"],"sourcesContent":["import type { Token } from \"@/tokens/state/types\";\n\nimport { useCallback, useMemo } from \"react\";\n\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { formatUnits, isAddress } from \"viem\";\nimport { useMultiChainTokenBalances } from \"./useMultichainTokenBalances\";\nimport { useMultiChainTokenPrices } from \"../prices/useMultichainTokenPrices\";\nimport { isSupportedChainId } from \"@/lib/web3/wagmi/utils\";\n\nimport { useAccount } from \"wagmi\";\nimport { useSelectedTokenBalances } from \"./useSelectedTokenBalances\";\nimport { useTradeMode } from \"@/core/state/tradeModeAtom\";\n\ntype AddTokenBalanceToToken = <\n T extends Pick<Token, \"address\" | \"network\" | \"decimals\">,\n>(\n token: T\n) => T & { balance?: string; usdBalance?: number };\n\n/**\n This hook will fetch the balances and return a function that will add a balance to the token if available.\n */\nexport const useAttachTokenBalanceMultichain = ({\n addressesMap,\n}: {\n addressesMap: Partial<Record<SupportedChainId, string[]>>;\n}): AddTokenBalanceToToken => {\n const { address: account } = useAccount();\n const tradeMode = useTradeMode();\n\n const multiChainTokenBalances = useMultiChainTokenBalances({\n addressesMap,\n });\n const selectedTokenBalances = useSelectedTokenBalances(tradeMode);\n\n const chainIds = useMemo(\n () => Object.keys(addressesMap).map(Number).filter(isSupportedChainId),\n [addressesMap]\n );\n\n const multiChainTokenPrices = useMultiChainTokenPrices(chainIds);\n\n return useCallback<AddTokenBalanceToToken>(\n (token) => {\n if (!account) return token;\n\n const loweredAddress = token.address.toLowerCase();\n\n if (!isAddress(loweredAddress)) return token;\n\n const balance =\n // selected token balances have priority,\n // because only these balances are invalidated after each transaction/order,\n // and have the most frequent refetch interval\n selectedTokenBalances[token.network]?.[loweredAddress] ??\n // otherwise grab the balance from the multichain balances query\n multiChainTokenBalances[token.network]?.[loweredAddress]?.result;\n\n if (balance === undefined) return token;\n\n const tokenPrice =\n multiChainTokenPrices[token.network]?.[loweredAddress]?.price;\n\n const usdBalance = tokenPrice\n ? +formatUnits(BigInt(balance), token.decimals) * tokenPrice\n : undefined;\n\n return {\n ...token,\n balance: balance.toString(),\n usdBalance,\n };\n },\n [\n account,\n multiChainTokenBalances,\n multiChainTokenPrices,\n selectedTokenBalances,\n ]\n );\n};\n"],"names":["useAttachTokenBalanceMultichain","t0","$","_c","addressesMap","address","account","useAccount","tradeMode","useTradeMode","t1","multiChainTokenBalances","useMultiChainTokenBalances","selectedTokenBalances","useSelectedTokenBalances","t2","t3","Object","keys","map","Number","filter","isSupportedChainId","chainIds","multiChainTokenPrices","useMultiChainTokenPrices","t4","token","loweredAddress","toLowerCase","isAddress","balance","network","result","undefined","tokenPrice","price","usdBalance","formatUnits","BigInt","decimals","toString"],"mappings":"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"}
|