@velora-dex/widget 0.2.5-dev.1 → 0.2.5-dev.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/ui/input.js +1 -1
- package/dist/components/ui/input.js.map +1 -1
- package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.js.map +1 -1
- package/dist/components/web3/ConnectedWallet/ConnectedWallet.js +7 -7
- package/dist/components/web3/ConnectedWallet/ConnectedWallet.js.map +1 -1
- package/dist/components/widget/AppHeader/Activities/ActivitiesScreen.d.ts +2 -0
- package/dist/components/widget/AppHeader/Activities/ActivitiesScreen.d.ts.map +1 -0
- package/dist/components/widget/AppHeader/Activities/ActivitiesScreen.js +132 -0
- package/dist/components/widget/AppHeader/Activities/ActivitiesScreen.js.map +1 -0
- package/dist/components/widget/AppHeader/Activities/ActivityItems.js +2 -2
- package/dist/components/widget/AppHeader/Activities/ActivityItems.js.map +1 -1
- package/dist/components/widget/AppHeader/Activities/Drawers.d.ts +6 -21
- package/dist/components/widget/AppHeader/Activities/Drawers.d.ts.map +1 -1
- package/dist/components/widget/AppHeader/Activities/Drawers.js +61 -219
- package/dist/components/widget/AppHeader/Activities/Drawers.js.map +1 -1
- package/dist/components/widget/AppHeader/Activities/hooks.d.ts +7 -10
- package/dist/components/widget/AppHeader/Activities/hooks.d.ts.map +1 -1
- package/dist/components/widget/AppHeader/Activities/hooks.js +37 -75
- package/dist/components/widget/AppHeader/Activities/hooks.js.map +1 -1
- package/dist/components/widget/AppHeader/Activities/utils.d.ts +2 -2
- package/dist/components/widget/AppHeader/Activities/utils.d.ts.map +1 -1
- package/dist/components/widget/AppHeader/Activities/utils.js.map +1 -1
- package/dist/components/widget/AppHeader/ActivityButton.d.ts +0 -1
- package/dist/components/widget/AppHeader/ActivityButton.d.ts.map +1 -1
- package/dist/components/widget/AppHeader/ActivityButton.js +38 -160
- package/dist/components/widget/AppHeader/ActivityButton.js.map +1 -1
- package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressDialog.js +4 -14
- package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressDialog.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.d.ts +7 -2
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.d.ts.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js +174 -99
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.d.ts +3 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.d.ts.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.js +17 -14
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.js.map +1 -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 +3 -2
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/index.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListRow.d.ts.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListRow.js +17 -9
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListRow.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenSearch.js +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenSearch.js.map +1 -1
- package/dist/components/widget/Drawer/index.d.ts +3 -2
- package/dist/components/widget/Drawer/index.d.ts.map +1 -1
- package/dist/components/widget/Drawer/index.js +96 -80
- package/dist/components/widget/Drawer/index.js.map +1 -1
- package/dist/components/widget/Drawer/state/useDrawerControls.d.ts +2 -3
- package/dist/components/widget/Drawer/state/useDrawerControls.d.ts.map +1 -1
- package/dist/components/widget/Drawer/state/useDrawerControls.js +18 -19
- package/dist/components/widget/Drawer/state/useDrawerControls.js.map +1 -1
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/Controls.d.ts.map +1 -0
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/Controls.js.map +1 -0
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/LimitOrderDetails.d.ts.map +1 -0
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/LimitOrderDetails.js.map +1 -0
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/utils.d.ts.map +1 -0
- package/dist/components/widget/LimitOrderItem/LimitOrderDetails/utils.js.map +1 -0
- package/dist/components/widget/LimitOrderItem/LimitOrderListItem.d.ts.map +1 -0
- package/dist/components/widget/{LimitOrdersDrawer → LimitOrderItem}/LimitOrderListItem.js +1 -1
- package/dist/components/widget/LimitOrderItem/LimitOrderListItem.js.map +1 -0
- package/dist/components/widget/LimitOrderItem/constants.d.ts.map +1 -0
- package/dist/components/widget/LimitOrderItem/constants.js.map +1 -0
- package/dist/components/widget/LimitOrderItem/types.d.ts.map +1 -0
- package/dist/components/widget/LimitOrderItem/utils.d.ts.map +1 -0
- package/dist/components/widget/LimitOrderItem/utils.js.map +1 -0
- package/dist/components/widget/OrderExpiryInput/index.d.ts.map +1 -1
- package/dist/components/widget/OrderExpiryInput/index.js +76 -73
- package/dist/components/widget/OrderExpiryInput/index.js.map +1 -1
- package/dist/components/widget/OtcOrderItem/OtcOrderDetails/Controls.d.ts.map +1 -0
- package/dist/components/widget/OtcOrderItem/OtcOrderDetails/Controls.js.map +1 -0
- package/dist/components/widget/OtcOrderItem/OtcOrderDetails/OtcOrderDetails.d.ts.map +1 -0
- package/dist/components/widget/{OtcOrdersDrawer → OtcOrderItem}/OtcOrderDetails/OtcOrderDetails.js +1 -1
- package/dist/components/widget/OtcOrderItem/OtcOrderDetails/OtcOrderDetails.js.map +1 -0
- package/dist/components/widget/OtcOrderItem/OtcOrderDetails/utils.d.ts.map +1 -0
- package/dist/components/widget/OtcOrderItem/OtcOrderDetails/utils.js.map +1 -0
- package/dist/components/widget/OtcOrderItem/OtcOrderListItem.d.ts.map +1 -0
- package/dist/components/widget/{OtcOrdersDrawer → OtcOrderItem}/OtcOrderListItem.js +1 -1
- package/dist/components/widget/OtcOrderItem/OtcOrderListItem.js.map +1 -0
- package/dist/components/widget/OtcOrderItem/constants.d.ts.map +1 -0
- package/dist/components/widget/OtcOrderItem/constants.js.map +1 -0
- package/dist/components/widget/{OtcOrdersDrawer → OtcOrderItem}/types.d.ts +1 -1
- package/dist/components/widget/OtcOrderItem/types.d.ts.map +1 -0
- package/dist/components/widget/{OtcOrdersDrawer → OtcOrderItem}/utils.d.ts +0 -6
- package/dist/components/widget/OtcOrderItem/utils.d.ts.map +1 -0
- package/dist/components/widget/OtcOrderItem/utils.js.map +1 -0
- package/dist/components/widget/PoweredBy/PoweredBy.js +1 -1
- package/dist/components/widget/PoweredBy/PoweredBy.js.map +1 -1
- package/dist/components/widget/ReceiverAddress/state/receiverAddressAtom.js +1 -1
- package/dist/components/widget/ReceiverAddress/state/subscriptions.d.ts.map +1 -1
- package/dist/components/widget/ReceiverAddress/state/subscriptions.js +3 -0
- package/dist/components/widget/ReceiverAddress/state/subscriptions.js.map +1 -1
- package/dist/components/widget/ReceiverAddress/types.d.ts +2 -1
- package/dist/components/widget/ReceiverAddress/types.d.ts.map +1 -1
- package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcReviewAndConfirm.d.ts +2 -2
- package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcReviewAndConfirm.d.ts.map +1 -1
- package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcReviewAndConfirm.js.map +1 -1
- package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/utils.d.ts +1 -1
- package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/utils.d.ts.map +1 -1
- package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/utils.js +2 -2
- package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/utils.js.map +1 -1
- package/dist/components/widget/Screen/GenericScreen.d.ts +13 -0
- package/dist/components/widget/Screen/GenericScreen.d.ts.map +1 -0
- package/dist/components/widget/Screen/GenericScreen.js +67 -0
- package/dist/components/widget/Screen/GenericScreen.js.map +1 -0
- package/dist/components/widget/Screen/ScreenContainer.d.ts +7 -0
- package/dist/components/widget/Screen/ScreenContainer.d.ts.map +1 -0
- package/dist/components/widget/Screen/ScreenContainer.js +36 -0
- package/dist/components/widget/Screen/ScreenContainer.js.map +1 -0
- package/dist/components/widget/SelectToken/SelectTokenButton.d.ts.map +1 -1
- package/dist/components/widget/SelectToken/SelectTokenButton.js +109 -201
- package/dist/components/widget/SelectToken/SelectTokenButton.js.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/state/swapModeActionsAtom.d.ts.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/state/swapModeActionsAtom.js +5 -0
- package/dist/components/widget/SwapModeSwitcher/state/swapModeActionsAtom.js.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.d.ts +3 -2
- package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.d.ts.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js.map +1 -1
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.d.ts +10 -3
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js +138 -9
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/FillOtcOrderTradeOverview.d.ts +6 -0
- package/dist/components/widget/TradeOverview/FillOtcOrderTradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/FillOtcOrderTradeOverview.js +86 -1
- package/dist/components/widget/TradeOverview/FillOtcOrderTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.d.ts +8 -2
- package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.js +103 -1
- package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.d.ts +10 -3
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.js +152 -9
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.d.ts +8 -2
- package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.js +101 -1
- package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeDetails.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeDetails.js +105 -78
- package/dist/components/widget/TradeOverview/TradeDetails.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverview.d.ts +3 -1
- package/dist/components/widget/TradeOverview/TradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverview.js +26 -21
- package/dist/components/widget/TradeOverview/TradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverviewScreen.d.ts +30 -0
- package/dist/components/widget/TradeOverview/TradeOverviewScreen.d.ts.map +1 -0
- package/dist/components/widget/TradeOverview/TradeOverviewScreen.js +75 -0
- package/dist/components/widget/TradeOverview/TradeOverviewScreen.js.map +1 -0
- package/dist/components/widget/TradeOverview/tradeFlowContext.d.ts +1 -1
- 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/TradeOverview/utils/preWrap.d.ts +14 -0
- package/dist/components/widget/TradeOverview/utils/preWrap.d.ts.map +1 -0
- package/dist/components/widget/TradeOverview/utils/preWrap.js +37 -0
- package/dist/components/widget/TradeOverview/utils/preWrap.js.map +1 -0
- package/dist/components/widget/TransactionDetails/types.d.ts +1 -1
- package/dist/components/widget/TransactionDetails/types.d.ts.map +1 -1
- package/dist/configurator/Configurator.d.ts.map +1 -1
- package/dist/configurator/components/FormPropsInputs.d.ts.map +1 -1
- package/dist/configurator/components/common/ButtonGroup.d.ts +12 -0
- package/dist/configurator/components/common/ButtonGroup.d.ts.map +1 -0
- package/dist/core/LimitOrderButton.d.ts.map +1 -1
- package/dist/core/LimitOrderButton.js +58 -33
- package/dist/core/LimitOrderButton.js.map +1 -1
- package/dist/core/OtcOrderButton.d.ts.map +1 -1
- package/dist/core/OtcOrderButton.js +10 -14
- package/dist/core/OtcOrderButton.js.map +1 -1
- package/dist/core/TradeFlowScreenButton.d.ts +27 -0
- package/dist/core/TradeFlowScreenButton.d.ts.map +1 -0
- package/dist/core/TradeFlowScreenButton.js +206 -0
- package/dist/core/TradeFlowScreenButton.js.map +1 -0
- package/dist/core/Updaters.d.ts.map +1 -1
- package/dist/core/Updaters.js +22 -1
- package/dist/core/Updaters.js.map +1 -1
- package/dist/core/across/isCrosshcainPossible.d.ts +10 -0
- package/dist/core/across/isCrosshcainPossible.d.ts.map +1 -0
- package/dist/core/across/isCrosshcainPossible.js +41 -0
- package/dist/core/across/isCrosshcainPossible.js.map +1 -0
- package/dist/core/across/utils.d.ts +7 -3
- package/dist/core/across/utils.d.ts.map +1 -1
- package/dist/core/across/utils.js +10 -7
- package/dist/core/across/utils.js.map +1 -1
- package/dist/core/button/hooks/useWidgetButtonExtraProps.d.ts.map +1 -1
- package/dist/core/button/hooks/useWidgetButtonExtraProps.js +56 -33
- package/dist/core/button/hooks/useWidgetButtonExtraProps.js.map +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +253 -166
- package/dist/core/index.js.map +1 -1
- package/dist/core/inputs/hooks/useTokenToInputProps.d.ts.map +1 -1
- package/dist/core/inputs/hooks/useTokenToInputProps.js +76 -66
- package/dist/core/inputs/hooks/useTokenToInputProps.js.map +1 -1
- package/dist/core/inputs/state/common.d.ts +15 -3
- package/dist/core/inputs/state/common.d.ts.map +1 -1
- package/dist/core/inputs/state/common.js +51 -12
- package/dist/core/inputs/state/common.js.map +1 -1
- package/dist/core/inputs/state/inputAmountAtom.d.ts.map +1 -1
- package/dist/core/inputs/state/inputAmountAtom.js +1 -1
- package/dist/core/inputs/state/inputAmountAtom.js.map +1 -1
- package/dist/core/inputs/state/selectedTokenActionsAtom.d.ts.map +1 -1
- package/dist/core/inputs/state/selectedTokenActionsAtom.js +33 -44
- package/dist/core/inputs/state/selectedTokenActionsAtom.js.map +1 -1
- package/dist/core/inputs/state/setTokenByAddressAtom.d.ts +1 -1
- package/dist/core/inputs/state/setTokenByAddressAtom.d.ts.map +1 -1
- package/dist/core/inputs/state/setTokenByAddressAtom.js +85 -21
- package/dist/core/inputs/state/setTokenByAddressAtom.js.map +1 -1
- package/dist/core/inputs/state/types.d.ts +9 -1
- package/dist/core/inputs/state/types.d.ts.map +1 -1
- package/dist/core/limit/state/deadlineAtom.d.ts +10 -2
- package/dist/core/limit/state/deadlineAtom.d.ts.map +1 -1
- package/dist/core/limit/state/deadlineAtom.js +15 -8
- package/dist/core/limit/state/deadlineAtom.js.map +1 -1
- package/dist/core/limit/state/isCrosschainAtom.d.ts +3 -0
- package/dist/core/limit/state/isCrosschainAtom.d.ts.map +1 -0
- package/dist/core/limit/state/isCrosschainAtom.js +13 -0
- package/dist/core/limit/state/isCrosschainAtom.js.map +1 -0
- package/dist/core/limit/state/limitInputActionsAtom.d.ts +4 -1
- package/dist/core/limit/state/limitInputActionsAtom.d.ts.map +1 -1
- package/dist/core/limit/state/limitInputActionsAtom.js +6 -2
- package/dist/core/limit/state/limitInputActionsAtom.js.map +1 -1
- package/dist/core/limit/state/limitInputAmountAtom.d.ts.map +1 -1
- package/dist/core/limit/state/limitInputAmountAtom.js +2 -2
- package/dist/core/limit/state/limitInputAmountAtom.js.map +1 -1
- package/dist/core/limit/state/limitTokenAtoms.d.ts +10 -0
- package/dist/core/limit/state/limitTokenAtoms.d.ts.map +1 -0
- package/dist/core/limit/state/limitTokenAtoms.js +17 -0
- package/dist/core/limit/state/limitTokenAtoms.js.map +1 -0
- package/dist/core/limit/state/receiverAddressAtom.d.ts +7 -0
- package/dist/core/limit/state/receiverAddressAtom.d.ts.map +1 -0
- package/dist/core/limit/state/receiverAddressAtom.js +40 -0
- package/dist/core/limit/state/receiverAddressAtom.js.map +1 -0
- package/dist/core/limit/state/selectedTokenActionsAtom.d.ts.map +1 -1
- package/dist/core/limit/state/selectedTokenActionsAtom.js +94 -18
- package/dist/core/limit/state/selectedTokenActionsAtom.js.map +1 -1
- package/dist/core/limit/state/selectedTokenAtom.d.ts +0 -9
- package/dist/core/limit/state/selectedTokenAtom.d.ts.map +1 -1
- package/dist/core/limit/state/selectedTokenAtom.js +53 -21
- package/dist/core/limit/state/selectedTokenAtom.js.map +1 -1
- package/dist/core/limit/state/utils.d.ts +9 -1
- package/dist/core/limit/state/utils.d.ts.map +1 -1
- package/dist/core/limit/state/utils.js +44 -2
- package/dist/core/limit/state/utils.js.map +1 -1
- package/dist/core/limit/useLimitRate.d.ts +9 -0
- package/dist/core/limit/useLimitRate.d.ts.map +1 -1
- package/dist/core/limit/useLimitRate.js +145 -8
- package/dist/core/limit/useLimitRate.js.map +1 -1
- package/dist/core/limit/useLimitTokenFromInputProps.js +1 -1
- package/dist/core/limit/useLimitTokenFromInputProps.js.map +1 -1
- package/dist/core/limit/useLimitTokenSwitcherProps.js +1 -1
- package/dist/core/limit/useLimitTokenSwitcherProps.js.map +1 -1
- package/dist/core/limit/useLimitTokenToInputProps.d.ts.map +1 -1
- package/dist/core/limit/useLimitTokenToInputProps.js +132 -72
- package/dist/core/limit/useLimitTokenToInputProps.js.map +1 -1
- package/dist/core/otc/state/deadlineAtom.d.ts +8 -3
- package/dist/core/otc/state/deadlineAtom.d.ts.map +1 -1
- package/dist/core/otc/state/deadlineAtom.js +16 -10
- package/dist/core/otc/state/deadlineAtom.js.map +1 -1
- package/dist/core/otc/state/otcInputActionsAtom.d.ts +4 -1
- package/dist/core/otc/state/otcInputActionsAtom.d.ts.map +1 -1
- package/dist/core/otc/state/otcInputActionsAtom.js +6 -2
- package/dist/core/otc/state/otcInputActionsAtom.js.map +1 -1
- package/dist/core/otc/state/otcInputAmountAtom.d.ts.map +1 -1
- package/dist/core/otc/state/otcInputAmountAtom.js +1 -1
- package/dist/core/otc/state/otcInputAmountAtom.js.map +1 -1
- package/dist/core/otc/state/receiverAddressAtom.js +1 -1
- package/dist/core/screen/hooks/useOnClickOutside.d.ts +2 -0
- package/dist/core/screen/hooks/useOnClickOutside.d.ts.map +1 -0
- package/dist/core/screen/hooks/useOnClickOutside.js +30 -0
- package/dist/core/screen/hooks/useOnClickOutside.js.map +1 -0
- package/dist/core/screen/screenByType.d.ts +7 -0
- package/dist/core/screen/screenByType.d.ts.map +1 -0
- package/dist/core/screen/screenByType.js +13 -0
- package/dist/core/screen/screenByType.js.map +1 -0
- package/dist/core/screen/state/screenAtom.d.ts +20 -0
- package/dist/core/screen/state/screenAtom.d.ts.map +1 -0
- package/dist/core/screen/state/screenAtom.js +110 -0
- package/dist/core/screen/state/screenAtom.js.map +1 -0
- package/dist/core/state/chainToAtom.d.ts +2 -0
- package/dist/core/state/chainToAtom.d.ts.map +1 -1
- package/dist/core/state/chainToAtom.js +37 -7
- 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 -1
- package/dist/core/state/configActionsAtom.js.map +1 -1
- package/dist/core/state/configAtom.d.ts +4 -2
- package/dist/core/state/configAtom.d.ts.map +1 -1
- package/dist/core/state/configAtom.js +7 -3
- package/dist/core/state/configAtom.js.map +1 -1
- package/dist/core/state/configEffectAtom.d.ts +0 -3
- package/dist/core/state/configEffectAtom.d.ts.map +1 -1
- package/dist/core/state/configEffectAtom.js +49 -37
- package/dist/core/state/configEffectAtom.js.map +1 -1
- package/dist/core/state/enabledChainsAtom.d.ts +3 -0
- package/dist/core/state/enabledChainsAtom.d.ts.map +1 -1
- package/dist/core/state/enabledChainsAtom.js.map +1 -1
- package/dist/core/state/getSelectableDestChains.d.ts +8 -0
- package/dist/core/state/getSelectableDestChains.d.ts.map +1 -0
- package/dist/core/state/getSelectableDestChains.js +34 -0
- package/dist/core/state/getSelectableDestChains.js.map +1 -0
- package/dist/core/types.d.ts +6 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/events/getters/limit.d.ts.map +1 -1
- package/dist/events/getters/limit.js +5 -2
- package/dist/events/getters/limit.js.map +1 -1
- package/dist/events/hooks/useOnPriceUpdates.d.ts.map +1 -1
- package/dist/events/hooks/useOnPriceUpdates.js +37 -25
- package/dist/events/hooks/useOnPriceUpdates.js.map +1 -1
- package/dist/events/types/formInput.d.ts +1 -1
- package/dist/events/types/formInput.d.ts.map +1 -1
- package/dist/hooks/batch/useCanBatchTxs.d.ts.map +1 -1
- package/dist/hooks/batch/useCanBatchTxs.js +33 -29
- package/dist/hooks/batch/useCanBatchTxs.js.map +1 -1
- package/dist/hooks/gas/useGasPrices.d.ts.map +1 -1
- package/dist/hooks/gas/useGasPrices.js +15 -14
- package/dist/hooks/gas/useGasPrices.js.map +1 -1
- package/dist/hooks/otc/mutations/useFillOrder.js +6 -1
- package/dist/hooks/otc/mutations/useFillOrder.js.map +1 -1
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.d.ts +1 -1
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.d.ts.map +1 -1
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js +2 -1
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js.map +1 -1
- package/dist/hooks/permit/utils/encodeArgs.js +1 -1
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/bridgeInfosLoadedAtom.d.ts +2 -0
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/bridgeInfosLoadedAtom.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/bridgeInfosLoadedAtom.js +24 -0
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/bridgeInfosLoadedAtom.js.map +1 -0
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/common.d.ts +6 -0
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/common.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/common.js +9 -0
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/common.js.map +1 -0
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/getBridgeInfoQueryData.d.ts +4 -0
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/getBridgeInfoQueryData.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/getBridgeInfoQueryData.js +12 -0
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/getBridgeInfoQueryData.js.map +1 -0
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/types.d.ts +19 -0
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/types.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/useBridgeInfo.d.ts +4 -0
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/useBridgeInfo.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/useBridgeInfo.js +81 -0
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/useBridgeInfo.js.map +1 -0
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts +3 -0
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js +2 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js +1 -1
- package/dist/hooks/swap/prices/usePricesParams.d.ts.map +1 -1
- package/dist/hooks/swap/prices/usePricesParams.js +8 -12
- package/dist/hooks/swap/prices/usePricesParams.js.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.d.ts +4 -1
- package/dist/hooks/swap/prices/useSwapPrices.d.ts.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.js +63 -43
- package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts +2 -0
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js +54 -21
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js.map +1 -1
- package/dist/hooks/tokens/balances/useIsLimitOrderInsufficientBalance.js +1 -1
- package/dist/hooks/tokens/balances/useIsLimitOrderInsufficientBalance.js.map +1 -1
- package/dist/hooks/tokens/prices/queries.d.ts.map +1 -1
- package/dist/hooks/tokens/prices/queries.js +2 -2
- package/dist/hooks/tokens/prices/queries.js.map +1 -1
- package/dist/hooks/tokens/useAllTokensWithFilter.d.ts +3 -1
- package/dist/hooks/tokens/useAllTokensWithFilter.d.ts.map +1 -1
- package/dist/hooks/tokens/useAllTokensWithFilter.js +25 -22
- package/dist/hooks/tokens/useAllTokensWithFilter.js.map +1 -1
- package/dist/hooks/tokens/useTokenTaxFee.js +2 -2
- package/dist/hooks/tokens/useTokenTaxFee.js.map +1 -1
- package/dist/hooks/tokens/useTokensFromAcross.d.ts +3 -1
- package/dist/hooks/tokens/useTokensFromAcross.d.ts.map +1 -1
- package/dist/hooks/tokens/useTokensFromAcross.js +36 -25
- package/dist/hooks/tokens/useTokensFromAcross.js.map +1 -1
- package/dist/hooks/txs/queries/useTxHistory.d.ts.map +1 -1
- package/dist/hooks/txs/queries/useTxHistory.js +2 -2
- package/dist/hooks/txs/queries/useTxHistory.js.map +1 -1
- package/dist/hooks/useAvailableCrosses.d.ts +7 -2
- package/dist/hooks/useAvailableCrosses.d.ts.map +1 -1
- package/dist/hooks/useAvailableCrosses.js +39 -25
- package/dist/hooks/useAvailableCrosses.js.map +1 -1
- package/dist/hooks/useBridgeInfo.d.ts +4 -1
- package/dist/hooks/useBridgeInfo.d.ts.map +1 -1
- package/dist/hooks/useBridgeInfo.js +26 -11
- package/dist/hooks/useBridgeInfo.js.map +1 -1
- package/dist/hooks/useClickOutside.d.ts +4 -0
- package/dist/hooks/useClickOutside.d.ts.map +1 -0
- package/dist/hooks/useClickOutside.js +49 -0
- package/dist/hooks/useClickOutside.js.map +1 -0
- package/dist/hooks/useIsCrosschainPossible.d.ts +3 -1
- package/dist/hooks/useIsCrosschainPossible.d.ts.map +1 -1
- package/dist/hooks/useIsCrosschainPossible.js +33 -22
- package/dist/hooks/useIsCrosschainPossible.js.map +1 -1
- package/dist/hooks/useSDK.d.ts.map +1 -1
- package/dist/hooks/useSDK.js +11 -11
- package/dist/hooks/useSDK.js.map +1 -1
- package/dist/hooks/useSelectableDestChains.d.ts +5 -1
- package/dist/hooks/useSelectableDestChains.d.ts.map +1 -1
- package/dist/hooks/useSelectableDestChains.js +42 -36
- package/dist/hooks/useSelectableDestChains.js.map +1 -1
- package/dist/lib/constants/index.d.ts +0 -2
- package/dist/lib/constants/index.d.ts.map +1 -1
- package/dist/lib/constants/index.js +1 -4
- package/dist/lib/constants/index.js.map +1 -1
- package/dist/lib/constants/urls.d.ts +4 -0
- package/dist/lib/constants/urls.d.ts.map +1 -0
- package/dist/lib/constants/urls.js +30 -0
- package/dist/lib/constants/urls.js.map +1 -0
- package/dist/lib/utils/explorer.d.ts.map +1 -1
- package/dist/lib/utils/explorer.js +3 -3
- package/dist/lib/utils/explorer.js.map +1 -1
- package/dist/lib/utils/price.js +1 -1
- package/dist/styles.css +22 -22
- package/dist/tokens/utils/sorting.d.ts.map +1 -1
- package/dist/tokens/utils/sorting.js +3 -0
- package/dist/tokens/utils/sorting.js.map +1 -1
- package/dist/transactions/state/hooks/useTransactions.js +1 -1
- package/package.json +4 -4
- package/dist/components/ui/dialog.js +0 -261
- package/dist/components/ui/dialog.js.map +0 -1
- package/dist/components/widget/AppHeader/OtcOrdersDrawerButton.d.ts +0 -2
- package/dist/components/widget/AppHeader/OtcOrdersDrawerButton.d.ts.map +0 -1
- package/dist/components/widget/Dialog/ConnectWalletDialog/ConnectWalletDialog.js +0 -24
- package/dist/components/widget/Dialog/ConnectWalletDialog/ConnectWalletDialog.js.map +0 -1
- package/dist/components/widget/Dialog/DialogRoot.js +0 -47
- package/dist/components/widget/Dialog/DialogRoot.js.map +0 -1
- package/dist/components/widget/Dialog/dialogByType.js +0 -10
- package/dist/components/widget/Dialog/dialogByType.js.map +0 -1
- package/dist/components/widget/Dialog/state/dialogAtom.js +0 -86
- package/dist/components/widget/Dialog/state/dialogAtom.js.map +0 -1
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/Controls.d.ts.map +0 -1
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/Controls.js.map +0 -1
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/LimitOrderDetails.d.ts.map +0 -1
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/LimitOrderDetails.js.map +0 -1
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/utils.d.ts.map +0 -1
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/utils.js.map +0 -1
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderListItem.d.ts.map +0 -1
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderListItem.js.map +0 -1
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderTabs.d.ts +0 -7
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderTabs.d.ts.map +0 -1
- package/dist/components/widget/LimitOrdersDrawer/LimitOrdersList.d.ts +0 -7
- package/dist/components/widget/LimitOrdersDrawer/LimitOrdersList.d.ts.map +0 -1
- package/dist/components/widget/LimitOrdersDrawer/constants.d.ts.map +0 -1
- package/dist/components/widget/LimitOrdersDrawer/constants.js.map +0 -1
- package/dist/components/widget/LimitOrdersDrawer/types.d.ts.map +0 -1
- package/dist/components/widget/LimitOrdersDrawer/utils.d.ts.map +0 -1
- package/dist/components/widget/LimitOrdersDrawer/utils.js.map +0 -1
- package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/Controls.d.ts.map +0 -1
- package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/Controls.js.map +0 -1
- package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/OtcOrderDetails.d.ts.map +0 -1
- package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/OtcOrderDetails.js.map +0 -1
- package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/utils.d.ts.map +0 -1
- package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/utils.js.map +0 -1
- package/dist/components/widget/OtcOrdersDrawer/OtcOrderListItem.d.ts.map +0 -1
- package/dist/components/widget/OtcOrdersDrawer/OtcOrderListItem.js.map +0 -1
- package/dist/components/widget/OtcOrdersDrawer/OtcOrderTabs.d.ts +0 -7
- package/dist/components/widget/OtcOrdersDrawer/OtcOrderTabs.d.ts.map +0 -1
- package/dist/components/widget/OtcOrdersDrawer/OtcOrdersList.d.ts +0 -12
- package/dist/components/widget/OtcOrdersDrawer/OtcOrdersList.d.ts.map +0 -1
- package/dist/components/widget/OtcOrdersDrawer/constants.d.ts.map +0 -1
- package/dist/components/widget/OtcOrdersDrawer/constants.js.map +0 -1
- package/dist/components/widget/OtcOrdersDrawer/types.d.ts.map +0 -1
- package/dist/components/widget/OtcOrdersDrawer/utils.d.ts.map +0 -1
- package/dist/components/widget/OtcOrdersDrawer/utils.js.map +0 -1
- package/dist/core/TradeFlowButton.d.ts +0 -27
- package/dist/core/TradeFlowButton.d.ts.map +0 -1
- package/dist/core/TradeFlowButton.js +0 -963
- package/dist/core/TradeFlowButton.js.map +0 -1
- package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.d.ts +0 -15
- package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.d.ts.map +0 -1
- package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.js +0 -92
- package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.js.map +0 -1
- /package/dist/components/widget/{LimitOrdersDrawer → LimitOrderItem}/LimitOrderDetails/Controls.d.ts +0 -0
- /package/dist/components/widget/{LimitOrdersDrawer → LimitOrderItem}/LimitOrderDetails/Controls.js +0 -0
- /package/dist/components/widget/{LimitOrdersDrawer → LimitOrderItem}/LimitOrderDetails/LimitOrderDetails.d.ts +0 -0
- /package/dist/components/widget/{LimitOrdersDrawer → LimitOrderItem}/LimitOrderDetails/LimitOrderDetails.js +0 -0
- /package/dist/components/widget/{LimitOrdersDrawer → LimitOrderItem}/LimitOrderDetails/utils.d.ts +0 -0
- /package/dist/components/widget/{LimitOrdersDrawer → LimitOrderItem}/LimitOrderDetails/utils.js +0 -0
- /package/dist/components/widget/{LimitOrdersDrawer → LimitOrderItem}/LimitOrderListItem.d.ts +0 -0
- /package/dist/components/widget/{LimitOrdersDrawer → LimitOrderItem}/constants.d.ts +0 -0
- /package/dist/components/widget/{LimitOrdersDrawer → LimitOrderItem}/constants.js +0 -0
- /package/dist/components/widget/{LimitOrdersDrawer → LimitOrderItem}/types.d.ts +0 -0
- /package/dist/components/widget/{LimitOrdersDrawer → LimitOrderItem}/utils.d.ts +0 -0
- /package/dist/components/widget/{LimitOrdersDrawer → LimitOrderItem}/utils.js +0 -0
- /package/dist/components/widget/{OtcOrdersDrawer → OtcOrderItem}/OtcOrderDetails/Controls.d.ts +0 -0
- /package/dist/components/widget/{OtcOrdersDrawer → OtcOrderItem}/OtcOrderDetails/Controls.js +0 -0
- /package/dist/components/widget/{OtcOrdersDrawer → OtcOrderItem}/OtcOrderDetails/OtcOrderDetails.d.ts +0 -0
- /package/dist/components/widget/{OtcOrdersDrawer → OtcOrderItem}/OtcOrderDetails/utils.d.ts +0 -0
- /package/dist/components/widget/{OtcOrdersDrawer → OtcOrderItem}/OtcOrderDetails/utils.js +0 -0
- /package/dist/components/widget/{OtcOrdersDrawer → OtcOrderItem}/OtcOrderListItem.d.ts +0 -0
- /package/dist/components/widget/{OtcOrdersDrawer → OtcOrderItem}/constants.d.ts +0 -0
- /package/dist/components/widget/{OtcOrdersDrawer → OtcOrderItem}/constants.js +0 -0
- /package/dist/components/widget/{OtcOrdersDrawer → OtcOrderItem}/utils.js +0 -0
|
@@ -30,7 +30,7 @@ const setLimitPayAmountAtom = atom(null, (get, set, payAmount) => {
|
|
|
30
30
|
const newReceiveAmount = calculateReceiveAmount(payAmount, priceRates, isReversed);
|
|
31
31
|
set(setLimitReceiveAmountAtom, newReceiveAmount);
|
|
32
32
|
});
|
|
33
|
-
const
|
|
33
|
+
const setLimitPayAmountAtomFromProps = atom(null, (_, set, amount) => {
|
|
34
34
|
set(currentLimitInputAtom, "from");
|
|
35
35
|
set(setLimitPayAmountAtom, amount);
|
|
36
36
|
});
|
|
@@ -49,6 +49,10 @@ const setLimitReceiveAmountAtom = atom(null, (get, set, receiveAmount) => {
|
|
|
49
49
|
set(setLimitPriceRatesAtom, updatedRates, false);
|
|
50
50
|
}
|
|
51
51
|
});
|
|
52
|
+
const setLimitReceiveAmountAtomFromProps = atom(null, (_, set, amount) => {
|
|
53
|
+
set(currentLimitInputAtom, "to");
|
|
54
|
+
set(setLimitReceiveAmountAtom, amount);
|
|
55
|
+
});
|
|
52
56
|
const resetLimitPriceAtom = atom(null, (get, set, priceRates = zeroRates) => {
|
|
53
57
|
const isLocked = get(isLimitPriceLockedAtom);
|
|
54
58
|
if (isLocked) return;
|
|
@@ -70,5 +74,5 @@ const toggleLimitPriceReverseAtom = atom(null, (get, set) => {
|
|
|
70
74
|
set(isLimitPriceReversedAtom, !isReversed);
|
|
71
75
|
});
|
|
72
76
|
|
|
73
|
-
export { resetLimitPriceAtom,
|
|
77
|
+
export { resetLimitPriceAtom, setLimitPayAmountAtom, setLimitPayAmountAtomFromProps, setLimitPriceRatesAtom, setLimitReceiveAmountAtom, setLimitReceiveAmountAtomFromProps, toggleLimitPriceLockAtom, toggleLimitPriceReverseAtom, unlockLimitPriceAtom };
|
|
74
78
|
//# sourceMappingURL=limitInputActionsAtom.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"limitInputActionsAtom.js","sources":["../../../../src/core/limit/state/limitInputActionsAtom.ts"],"sourcesContent":["import { atom } from \"jotai\";\nimport {\n limitPayInputAmountAtom,\n limitReceiveInputAmountAtom,\n limitPriceRatesAtom,\n limitPriceAmountAtom,\n} from \"./limitInputAmountAtom\";\nimport { isLimitPriceLockedAtom } from \"./isLimitPriceLockedAtom\";\nimport Big from \"big.js\";\nimport { currentLimitInputAtom } from \"./currentLimitInputAtom\";\nimport { isLimitPriceReversedAtom } from \"./isLimitPriceReversedAtom\";\nimport {\n calculateReceiveAmount,\n calculatePayAmount,\n calculateRates,\n} from \"./utils\";\n\nimport { zeroRates } from \"./constants\";\nimport type { PriceRates } from \"../types\";\n\nexport const setLimitPriceRatesAtom = atom(\n null,\n (get, set, priceRates: PriceRates, recalculateReceive: boolean = true) => {\n const isLocked = get(isLimitPriceLockedAtom);\n // ignore updates if price is locked\n if (isLocked) return;\n\n set(limitPriceRatesAtom, priceRates);\n\n const payAmount = get(limitPayInputAmountAtom);\n const payGtZero = Big(payAmount || \"0\").gt(0);\n\n // ignore updates if pay amount is zero,\n // as it would lead to setLimitReceiveAmountAtom(0) anyway\n if (recalculateReceive && payGtZero) {\n const isReversed = get(isLimitPriceReversedAtom);\n const newReceiveAmount = calculateReceiveAmount(\n payAmount,\n priceRates,\n isReversed\n );\n set(setLimitReceiveAmountAtom, newReceiveAmount);\n }\n }\n);\n\nexport const setLimitPayAmountAtom = atom(\n null,\n (get, set, payAmount: string) => {\n set(limitPayInputAmountAtom, payAmount);\n\n // ignore updates that did not come from pay input\n if (get(currentLimitInputAtom) !== \"from\") return;\n\n const priceRates = get(limitPriceRatesAtom);\n const isReversed = get(isLimitPriceReversedAtom);\n\n const limitPriceAmount = get(limitPriceAmountAtom);\n const limitPriceGtZero = Big(limitPriceAmount || \"0\").gt(0);\n // ignore updates if limit price is zero,\n // as it would lead to setLimitReceiveAmountAtom(0) anyway\n if (!limitPriceGtZero) return;\n\n // update receive amount\n const newReceiveAmount = calculateReceiveAmount(\n payAmount,\n priceRates,\n isReversed\n );\n set(setLimitReceiveAmountAtom, newReceiveAmount);\n }\n);\n\nexport const
|
|
1
|
+
{"version":3,"file":"limitInputActionsAtom.js","sources":["../../../../src/core/limit/state/limitInputActionsAtom.ts"],"sourcesContent":["import { atom } from \"jotai\";\nimport {\n limitPayInputAmountAtom,\n limitReceiveInputAmountAtom,\n limitPriceRatesAtom,\n limitPriceAmountAtom,\n} from \"./limitInputAmountAtom\";\nimport { isLimitPriceLockedAtom } from \"./isLimitPriceLockedAtom\";\nimport Big from \"big.js\";\nimport { currentLimitInputAtom } from \"./currentLimitInputAtom\";\nimport { isLimitPriceReversedAtom } from \"./isLimitPriceReversedAtom\";\nimport {\n calculateReceiveAmount,\n calculatePayAmount,\n calculateRates,\n} from \"./utils\";\n\nimport { zeroRates } from \"./constants\";\nimport type { PriceRates } from \"../types\";\n\nexport const setLimitPriceRatesAtom = atom(\n null,\n (get, set, priceRates: PriceRates, recalculateReceive: boolean = true) => {\n const isLocked = get(isLimitPriceLockedAtom);\n // ignore updates if price is locked\n if (isLocked) return;\n\n set(limitPriceRatesAtom, priceRates);\n\n const payAmount = get(limitPayInputAmountAtom);\n const payGtZero = Big(payAmount || \"0\").gt(0);\n\n // ignore updates if pay amount is zero,\n // as it would lead to setLimitReceiveAmountAtom(0) anyway\n if (recalculateReceive && payGtZero) {\n const isReversed = get(isLimitPriceReversedAtom);\n const newReceiveAmount = calculateReceiveAmount(\n payAmount,\n priceRates,\n isReversed\n );\n set(setLimitReceiveAmountAtom, newReceiveAmount);\n }\n }\n);\n\nexport const setLimitPayAmountAtom = atom(\n null,\n (get, set, payAmount: string) => {\n set(limitPayInputAmountAtom, payAmount);\n\n // ignore updates that did not come from pay input\n if (get(currentLimitInputAtom) !== \"from\") return;\n\n const priceRates = get(limitPriceRatesAtom);\n const isReversed = get(isLimitPriceReversedAtom);\n\n const limitPriceAmount = get(limitPriceAmountAtom);\n const limitPriceGtZero = Big(limitPriceAmount || \"0\").gt(0);\n // ignore updates if limit price is zero,\n // as it would lead to setLimitReceiveAmountAtom(0) anyway\n if (!limitPriceGtZero) return;\n\n // update receive amount\n const newReceiveAmount = calculateReceiveAmount(\n payAmount,\n priceRates,\n isReversed\n );\n set(setLimitReceiveAmountAtom, newReceiveAmount);\n }\n);\n\nexport const setLimitPayAmountAtomFromProps = atom(\n null,\n (_, set, amount: string) => {\n set(currentLimitInputAtom, \"from\"); // unblock pay -> receive sync if it was previously blocked\n set(setLimitPayAmountAtom, amount);\n }\n);\n\nexport const setLimitReceiveAmountAtom = atom(\n null,\n (get, set, receiveAmount: string) => {\n set(limitReceiveInputAmountAtom, receiveAmount);\n\n // ignore updates that did not come from receive input\n if (get(currentLimitInputAtom) !== \"to\") return;\n\n const isLocked = get(isLimitPriceLockedAtom);\n const isReversed = get(isLimitPriceReversedAtom);\n\n if (isLocked) {\n // update pay amount if price is locked\n const priceRates = get(limitPriceRatesAtom);\n const newPayAmount = calculatePayAmount(\n receiveAmount,\n priceRates,\n isReversed\n );\n set(setLimitPayAmountAtom, newPayAmount);\n } else {\n // update limit price otherwise\n const payAmount = get(limitPayInputAmountAtom);\n const updatedRates = calculateRates(receiveAmount, payAmount);\n set(setLimitPriceRatesAtom, updatedRates, false);\n }\n }\n);\n\nexport const setLimitReceiveAmountAtomFromProps = atom(\n null,\n (_, set, amount: string) => {\n set(currentLimitInputAtom, \"to\"); // unblock receive -> pay sync if it was previously blocked\n set(setLimitReceiveAmountAtom, amount);\n }\n);\n\nexport const resetLimitPriceAtom = atom(\n null,\n (get, set, priceRates: PriceRates = zeroRates) => {\n const isLocked = get(isLimitPriceLockedAtom);\n if (isLocked) return;\n\n set(setLimitPriceRatesAtom, priceRates);\n\n const isReversed = get(isLimitPriceReversedAtom);\n const payAmount = get(limitPayInputAmountAtom);\n const newReceiveAmount = calculateReceiveAmount(\n payAmount,\n priceRates,\n isReversed\n );\n set(setLimitReceiveAmountAtom, newReceiveAmount);\n }\n);\n\nexport const unlockLimitPriceAtom = atom(null, (_, set) => {\n set(isLimitPriceLockedAtom, false);\n});\n\nexport const toggleLimitPriceLockAtom = atom(null, (get, set) => {\n const isLocked = get(isLimitPriceLockedAtom);\n set(isLimitPriceLockedAtom, !isLocked);\n});\n\nexport const toggleLimitPriceReverseAtom = atom(null, (get, set) => {\n const isReversed = get(isLimitPriceReversedAtom);\n set(isLimitPriceReversedAtom, !isReversed);\n});\n"],"names":["setLimitPriceRatesAtom","atom","get","set","priceRates","recalculateReceive","isLocked","isLimitPriceLockedAtom","limitPriceRatesAtom","payAmount","limitPayInputAmountAtom","payGtZero","Big","gt","isReversed","isLimitPriceReversedAtom","newReceiveAmount","calculateReceiveAmount","setLimitReceiveAmountAtom","setLimitPayAmountAtom","currentLimitInputAtom","limitPriceAmount","limitPriceAmountAtom","limitPriceGtZero","setLimitPayAmountAtomFromProps","_","amount","receiveAmount","limitReceiveInputAmountAtom","newPayAmount","calculatePayAmount","updatedRates","calculateRates","setLimitReceiveAmountAtomFromProps","resetLimitPriceAtom","zeroRates","unlockLimitPriceAtom","toggleLimitPriceLockAtom","toggleLimitPriceReverseAtom"],"mappings":";;;;;;;;;AAoBO,MAAMA,sBAAAA,GAAyBC,KACpC,IAAA,EACA,CAACC,KAAKC,GAAAA,EAAKC,UAAAA,EAAwBC,qBAA8B,IAAA,KAAS;AACxE,EAAA,MAAMC,QAAAA,GAAWJ,IAAIK,sBAAsB,CAAA;AAE3C,EAAA,IAAID,QAAAA,EAAU;AAEdH,EAAAA,GAAAA,CAAIK,qBAAqBJ,UAAU,CAAA;AAEnC,EAAA,MAAMK,SAAAA,GAAYP,IAAIQ,uBAAuB,CAAA;AAC7C,EAAA,MAAMC,YAAYC,GAAAA,CAAIH,SAAAA,IAAa,GAAG,CAAA,CAAEI,GAAG,CAAC,CAAA;AAI5C,EAAA,IAAIR,sBAAsBM,SAAAA,EAAW;AACnC,IAAA,MAAMG,UAAAA,GAAaZ,IAAIa,wBAAwB,CAAA;AAC/C,IAAA,MAAMC,gBAAAA,GAAmBC,sBAAAA,CACvBR,SAAAA,EACAL,UAAAA,EACAU,UACF,CAAA;AACAX,IAAAA,GAAAA,CAAIe,2BAA2BF,gBAAgB,CAAA;AAAA,EACjD;AACF,CACF;AAEO,MAAMG,wBAAwBlB,IAAAA,CACnC,IAAA,EACA,CAACC,GAAAA,EAAKC,KAAKM,SAAAA,KAAsB;AAC/BN,EAAAA,GAAAA,CAAIO,yBAAyBD,SAAS,CAAA;AAGtC,EAAA,IAAIP,GAAAA,CAAIkB,qBAAqB,CAAA,KAAM,MAAA,EAAQ;AAE3C,EAAA,MAAMhB,UAAAA,GAAaF,IAAIM,mBAAmB,CAAA;AAC1C,EAAA,MAAMM,UAAAA,GAAaZ,IAAIa,wBAAwB,CAAA;AAE/C,EAAA,MAAMM,gBAAAA,GAAmBnB,IAAIoB,oBAAoB,CAAA;AACjD,EAAA,MAAMC,mBAAmBX,GAAAA,CAAIS,gBAAAA,IAAoB,GAAG,CAAA,CAAER,GAAG,CAAC,CAAA;AAG1D,EAAA,IAAI,CAACU,gBAAAA,EAAkB;AAGvB,EAAA,MAAMP,gBAAAA,GAAmBC,sBAAAA,CACvBR,SAAAA,EACAL,UAAAA,EACAU,UACF,CAAA;AACAX,EAAAA,GAAAA,CAAIe,2BAA2BF,gBAAgB,CAAA;AACjD,CACF;AAEO,MAAMQ,iCAAiCvB,IAAAA,CAC5C,IAAA,EACA,CAACwB,CAAAA,EAAGtB,KAAKuB,MAAAA,KAAmB;AAC1BvB,EAAAA,GAAAA,CAAIiB,uBAAuB,MAAM,CAAA;AACjCjB,EAAAA,GAAAA,CAAIgB,uBAAuBO,MAAM,CAAA;AACnC,CACF;AAEO,MAAMR,4BAA4BjB,IAAAA,CACvC,IAAA,EACA,CAACC,GAAAA,EAAKC,KAAKwB,aAAAA,KAA0B;AACnCxB,EAAAA,GAAAA,CAAIyB,6BAA6BD,aAAa,CAAA;AAG9C,EAAA,IAAIzB,GAAAA,CAAIkB,qBAAqB,CAAA,KAAM,IAAA,EAAM;AAEzC,EAAA,MAAMd,QAAAA,GAAWJ,IAAIK,sBAAsB,CAAA;AAC3C,EAAA,MAAMO,UAAAA,GAAaZ,IAAIa,wBAAwB,CAAA;AAE/C,EAAA,IAAIT,QAAAA,EAAU;AAEZ,IAAA,MAAMF,UAAAA,GAAaF,IAAIM,mBAAmB,CAAA;AAC1C,IAAA,MAAMqB,YAAAA,GAAeC,kBAAAA,CACnBH,aAAAA,EACAvB,UAAAA,EACAU,UACF,CAAA;AACAX,IAAAA,GAAAA,CAAIgB,uBAAuBU,YAAY,CAAA;AAAA,EACzC,CAAA,MAAO;AAEL,IAAA,MAAMpB,SAAAA,GAAYP,IAAIQ,uBAAuB,CAAA;AAC7C,IAAA,MAAMqB,YAAAA,GAAeC,cAAAA,CAAeL,aAAAA,EAAelB,SAAS,CAAA;AAC5DN,IAAAA,GAAAA,CAAIH,sBAAAA,EAAwB+B,cAAc,KAAK,CAAA;AAAA,EACjD;AACF,CACF;AAEO,MAAME,qCAAqChC,IAAAA,CAChD,IAAA,EACA,CAACwB,CAAAA,EAAGtB,KAAKuB,MAAAA,KAAmB;AAC1BvB,EAAAA,GAAAA,CAAIiB,uBAAuB,IAAI,CAAA;AAC/BjB,EAAAA,GAAAA,CAAIe,2BAA2BQ,MAAM,CAAA;AACvC,CACF;AAEO,MAAMQ,sBAAsBjC,IAAAA,CACjC,IAAA,EACA,CAACC,GAAAA,EAAKC,GAAAA,EAAKC,aAAyB+B,SAAAA,KAAc;AAChD,EAAA,MAAM7B,QAAAA,GAAWJ,IAAIK,sBAAsB,CAAA;AAC3C,EAAA,IAAID,QAAAA,EAAU;AAEdH,EAAAA,GAAAA,CAAIH,wBAAwBI,UAAU,CAAA;AAEtC,EAAA,MAAMU,UAAAA,GAAaZ,IAAIa,wBAAwB,CAAA;AAC/C,EAAA,MAAMN,SAAAA,GAAYP,IAAIQ,uBAAuB,CAAA;AAC7C,EAAA,MAAMM,gBAAAA,GAAmBC,sBAAAA,CACvBR,SAAAA,EACAL,UAAAA,EACAU,UACF,CAAA;AACAX,EAAAA,GAAAA,CAAIe,2BAA2BF,gBAAgB,CAAA;AACjD,CACF;AAEO,MAAMoB,oBAAAA,GAAuBnC,IAAAA,CAAK,IAAA,EAAM,CAACwB,GAAGtB,GAAAA,KAAQ;AACzDA,EAAAA,GAAAA,CAAII,wBAAwB,KAAK,CAAA;AACnC,CAAC;AAEM,MAAM8B,wBAAAA,GAA2BpC,IAAAA,CAAK,IAAA,EAAM,CAACC,KAAKC,GAAAA,KAAQ;AAC/D,EAAA,MAAMG,QAAAA,GAAWJ,IAAIK,sBAAsB,CAAA;AAC3CJ,EAAAA,GAAAA,CAAII,sBAAAA,EAAwB,CAACD,QAAQ,CAAA;AACvC,CAAC;AAEM,MAAMgC,2BAAAA,GAA8BrC,IAAAA,CAAK,IAAA,EAAM,CAACC,KAAKC,GAAAA,KAAQ;AAClE,EAAA,MAAMW,UAAAA,GAAaZ,IAAIa,wBAAwB,CAAA;AAC/CZ,EAAAA,GAAAA,CAAIY,wBAAAA,EAA0B,CAACD,UAAU,CAAA;AAC3C,CAAC;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"limitInputAmountAtom.d.ts","sourceRoot":"","sources":["../../../../src/core/limit/state/limitInputAmountAtom.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAG3C,eAAO,MAAM,mBAAmB;;CAA8B,CAAC;AAE/D,eAAO,MAAM,oBAAoB,8BAI/B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;
|
|
1
|
+
{"version":3,"file":"limitInputAmountAtom.d.ts","sourceRoot":"","sources":["../../../../src/core/limit/state/limitInputAmountAtom.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAG3C,eAAO,MAAM,mBAAmB;;CAA8B,CAAC;AAE/D,eAAO,MAAM,oBAAoB,8BAI/B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;CAAc,CAAC;AAEnD,eAAO,MAAM,2BAA2B;;CAAY,CAAC;AAErD,eAAO,MAAM,0BAA0B,8BAKrC,CAAC;AAEH,eAAO,MAAM,8BAA8B,0CAOzC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { limitTokenFromAtom, limitTokenToAtom } from './
|
|
1
|
+
import { limitTokenFromAtom, limitTokenToAtom } from './limitTokenAtoms.js';
|
|
2
2
|
import { atom } from 'jotai';
|
|
3
3
|
import { parseUnits } from 'viem';
|
|
4
4
|
import { zeroRates } from './constants.js';
|
|
@@ -10,7 +10,7 @@ const limitPriceAmountAtom = atom((get) => {
|
|
|
10
10
|
const priceRates = get(limitPriceRatesAtom);
|
|
11
11
|
return isReversed ? priceRates.rateReversed : priceRates.rate;
|
|
12
12
|
});
|
|
13
|
-
const limitPayInputAmountAtom = atom("
|
|
13
|
+
const limitPayInputAmountAtom = atom("100");
|
|
14
14
|
const limitReceiveInputAmountAtom = atom("0");
|
|
15
15
|
const limitPayInputAmountWeiAtom = atom((get) => {
|
|
16
16
|
const tokenFrom = get(limitTokenFromAtom);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"limitInputAmountAtom.js","sources":["../../../../src/core/limit/state/limitInputAmountAtom.ts"],"sourcesContent":["import { limitTokenFromAtom, limitTokenToAtom } from \"./
|
|
1
|
+
{"version":3,"file":"limitInputAmountAtom.js","sources":["../../../../src/core/limit/state/limitInputAmountAtom.ts"],"sourcesContent":["import { limitTokenFromAtom, limitTokenToAtom } from \"./limitTokenAtoms\";\nimport { atom } from \"jotai\";\nimport { parseUnits } from \"viem\";\nimport { zeroRates } from \"./constants\";\nimport type { PriceRates } from \"../types\";\nimport { isLimitPriceReversedAtom } from \"./isLimitPriceReversedAtom\";\n\nexport const limitPriceRatesAtom = atom<PriceRates>(zeroRates);\n\nexport const limitPriceAmountAtom = atom((get) => {\n const isReversed = get(isLimitPriceReversedAtom);\n const priceRates = get(limitPriceRatesAtom);\n return isReversed ? priceRates.rateReversed : priceRates.rate;\n});\n\nexport const limitPayInputAmountAtom = atom(\"100\");\n\nexport const limitReceiveInputAmountAtom = atom(\"0\");\n\nexport const limitPayInputAmountWeiAtom = atom((get) => {\n // amountWei derived from limitPayInputAmountAtom\n const tokenFrom = get(limitTokenFromAtom);\n const payInputAmount = get(limitPayInputAmountAtom);\n return parseUnits(payInputAmount, tokenFrom.decimals).toString();\n});\n\nexport const limitReceiveInputAmountWeiAtom = atom((get) => {\n // amountWei derived from limitReceiveInputAmountAtom\n const tokenTo = get(limitTokenToAtom);\n if (tokenTo) {\n const receiveInputAmount = get(limitReceiveInputAmountAtom);\n return parseUnits(receiveInputAmount, tokenTo.decimals).toString();\n }\n});\n"],"names":["limitPriceRatesAtom","atom","zeroRates","limitPriceAmountAtom","get","isReversed","isLimitPriceReversedAtom","priceRates","rateReversed","rate","limitPayInputAmountAtom","limitReceiveInputAmountAtom","limitPayInputAmountWeiAtom","tokenFrom","limitTokenFromAtom","payInputAmount","parseUnits","decimals","toString","limitReceiveInputAmountWeiAtom","tokenTo","limitTokenToAtom","receiveInputAmount"],"mappings":";;;;;;AAOO,MAAMA,mBAAAA,GAAsBC,KAAiBC,SAAS;AAEtD,MAAMC,oBAAAA,GAAuBF,KAAMG,CAAAA,GAAAA,KAAQ;AAChD,EAAA,MAAMC,UAAAA,GAAaD,IAAIE,wBAAwB,CAAA;AAC/C,EAAA,MAAMC,UAAAA,GAAaH,IAAIJ,mBAAmB,CAAA;AAC1C,EAAA,OAAOK,UAAAA,GAAaE,UAAAA,CAAWC,YAAAA,GAAeD,UAAAA,CAAWE,IAAAA;AAC3D,CAAC;AAEM,MAAMC,uBAAAA,GAA0BT,KAAK,KAAK;AAE1C,MAAMU,2BAAAA,GAA8BV,KAAK,GAAG;AAE5C,MAAMW,0BAAAA,GAA6BX,KAAMG,CAAAA,GAAAA,KAAQ;AAEtD,EAAA,MAAMS,SAAAA,GAAYT,IAAIU,kBAAkB,CAAA;AACxC,EAAA,MAAMC,cAAAA,GAAiBX,IAAIM,uBAAuB,CAAA;AAClD,EAAA,OAAOM,UAAAA,CAAWD,cAAAA,EAAgBF,SAAAA,CAAUI,QAAQ,EAAEC,QAAAA,EAAS;AACjE,CAAC;AAEM,MAAMC,8BAAAA,GAAiClB,KAAMG,CAAAA,GAAAA,KAAQ;AAE1D,EAAA,MAAMgB,OAAAA,GAAUhB,IAAIiB,gBAAgB,CAAA;AACpC,EAAA,IAAID,OAAAA,EAAS;AACX,IAAA,MAAME,kBAAAA,GAAqBlB,IAAIO,2BAA2B,CAAA;AAC1D,IAAA,OAAOK,UAAAA,CAAWM,kBAAAA,EAAoBF,OAAAA,CAAQH,QAAQ,EAAEC,QAAAA,EAAS;AAAA,EACnE;AACF,CAAC;;;;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Token } from '../../../tokens/state/types';
|
|
2
|
+
export declare const limitTokenFromAtom: import('jotai').PrimitiveAtom<Token> & {
|
|
3
|
+
init: Token;
|
|
4
|
+
};
|
|
5
|
+
export declare const limitTokenToAtom: import('jotai').PrimitiveAtom<Token | undefined> & {
|
|
6
|
+
init: Token | undefined;
|
|
7
|
+
};
|
|
8
|
+
export declare const useLimitTokenFrom: () => Token;
|
|
9
|
+
export declare const useLimitTokenTo: () => Token | undefined;
|
|
10
|
+
//# sourceMappingURL=limitTokenAtoms.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"limitTokenAtoms.d.ts","sourceRoot":"","sources":["../../../../src/core/limit/state/limitTokenAtoms.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AASlD,eAAO,MAAM,kBAAkB;;CAAyB,CAAC;AACzD,eAAO,MAAM,gBAAgB;;CAAgB,CAAC;AAE9C,eAAO,MAAM,iBAAiB,aAAyC,CAAC;AACxE,eAAO,MAAM,eAAe,yBAAuC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { wagmiConfig } from '../../../lib/web3/wagmi/config.js';
|
|
2
|
+
import { pickDefaultTokenPair } from '../../../tokens/defaultTokens.js';
|
|
3
|
+
import { atom } from 'jotai';
|
|
4
|
+
import { useAtomValue } from '../../store.js';
|
|
5
|
+
|
|
6
|
+
const [defaultTokenFrom] = pickDefaultTokenPair(wagmiConfig.state.chainId, "limit");
|
|
7
|
+
const limitTokenFromAtom = atom(defaultTokenFrom);
|
|
8
|
+
const limitTokenToAtom = atom();
|
|
9
|
+
const useLimitTokenFrom = () => {
|
|
10
|
+
return useAtomValue(limitTokenFromAtom);
|
|
11
|
+
};
|
|
12
|
+
const useLimitTokenTo = () => {
|
|
13
|
+
return useAtomValue(limitTokenToAtom);
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export { limitTokenFromAtom, limitTokenToAtom, useLimitTokenFrom, useLimitTokenTo };
|
|
17
|
+
//# sourceMappingURL=limitTokenAtoms.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"limitTokenAtoms.js","sources":["../../../../src/core/limit/state/limitTokenAtoms.ts"],"sourcesContent":["import { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport { pickDefaultTokenPair } from \"@/tokens/defaultTokens\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { atom } from \"jotai\";\nimport { useAtomValue } from \"@/core/store\";\n\nconst [defaultTokenFrom] = pickDefaultTokenPair(\n wagmiConfig.state.chainId,\n \"limit\"\n);\n\nexport const limitTokenFromAtom = atom(defaultTokenFrom);\nexport const limitTokenToAtom = atom<Token>();\n\nexport const useLimitTokenFrom = () => useAtomValue(limitTokenFromAtom);\nexport const useLimitTokenTo = () => useAtomValue(limitTokenToAtom);\n"],"names":["defaultTokenFrom","pickDefaultTokenPair","wagmiConfig","state","chainId","limitTokenFromAtom","atom","limitTokenToAtom","useLimitTokenFrom","useAtomValue","useLimitTokenTo"],"mappings":";;;;;AAMA,MAAM,CAACA,gBAAgB,CAAA,GAAIC,qBACzBC,WAAAA,CAAYC,KAAAA,CAAMC,SAClB,OACF,CAAA;AAEO,MAAMC,kBAAAA,GAAqBC,KAAKN,gBAAgB;AAChD,MAAMO,mBAAmBD,IAAAA;AAEzB,MAAME,oBAAoBA,MAAA;AAAA,EAAA,OAAMC,aAAaJ,kBAAkB,CAAA;AAAC;AAChE,MAAMK,kBAAkBA,MAAA;AAAA,EAAA,OAAMD,aAAaF,gBAAgB,CAAA;AAAC;;;;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { UseReceiverAddressReturn } from '../../../components/widget/ReceiverAddress/state/types';
|
|
2
|
+
export declare const limitReceiverAddressAtom: import('jotai').PrimitiveAtom<`0x${string}` | undefined> & {
|
|
3
|
+
init: `0x${string}` | undefined;
|
|
4
|
+
};
|
|
5
|
+
export declare const useLimitReceiverAddress: () => UseReceiverAddressReturn;
|
|
6
|
+
export declare const useLimitReceiverAddressValue: () => `0x${string}` | undefined;
|
|
7
|
+
//# sourceMappingURL=receiverAddressAtom.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"receiverAddressAtom.d.ts","sourceRoot":"","sources":["../../../../src/core/limit/state/receiverAddressAtom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iDAAiD,CAAC;AAMhG,eAAO,MAAM,wBAAwB;;CAA8B,CAAC;AAEpE,eAAO,MAAM,uBAAuB,QAAO,wBAK1C,CAAC;AAEF,eAAO,MAAM,4BAA4B,iCAExC,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { d as distExports } from '../../../_virtual/index.js';
|
|
2
|
+
import { shortenAddress } from '../../../lib/utils/index.js';
|
|
3
|
+
import { atom } from 'jotai';
|
|
4
|
+
import { useAtomValue, useAtom } from '../../store.js';
|
|
5
|
+
|
|
6
|
+
const limitReceiverAddressAtom = atom();
|
|
7
|
+
const useLimitReceiverAddress = () => {
|
|
8
|
+
const $ = distExports.c(6);
|
|
9
|
+
const [address, setAddress] = useAtom(limitReceiverAddressAtom);
|
|
10
|
+
let t0;
|
|
11
|
+
if ($[0] !== address) {
|
|
12
|
+
t0 = address ? shortenAddress(address) : void 0;
|
|
13
|
+
$[0] = address;
|
|
14
|
+
$[1] = t0;
|
|
15
|
+
} else {
|
|
16
|
+
t0 = $[1];
|
|
17
|
+
}
|
|
18
|
+
const shortAddress = t0;
|
|
19
|
+
let t1;
|
|
20
|
+
if ($[2] !== address || $[3] !== setAddress || $[4] !== shortAddress) {
|
|
21
|
+
t1 = {
|
|
22
|
+
address,
|
|
23
|
+
setAddress,
|
|
24
|
+
shortAddress
|
|
25
|
+
};
|
|
26
|
+
$[2] = address;
|
|
27
|
+
$[3] = setAddress;
|
|
28
|
+
$[4] = shortAddress;
|
|
29
|
+
$[5] = t1;
|
|
30
|
+
} else {
|
|
31
|
+
t1 = $[5];
|
|
32
|
+
}
|
|
33
|
+
return t1;
|
|
34
|
+
};
|
|
35
|
+
const useLimitReceiverAddressValue = () => {
|
|
36
|
+
return useAtomValue(limitReceiverAddressAtom);
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
export { limitReceiverAddressAtom, useLimitReceiverAddress, useLimitReceiverAddressValue };
|
|
40
|
+
//# sourceMappingURL=receiverAddressAtom.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"receiverAddressAtom.js","sources":["../../../../src/core/limit/state/receiverAddressAtom.ts"],"sourcesContent":["import type { UseReceiverAddressReturn } from \"@/components/widget/ReceiverAddress/state/types\";\nimport { shortenAddress } from \"@/lib/utils\";\nimport { atom } from \"jotai\";\nimport { useAtom, useAtomValue } from \"@/core/store\";\nimport type { Address } from \"viem\";\n\nexport const limitReceiverAddressAtom = atom<Address | undefined>();\n\nexport const useLimitReceiverAddress = (): UseReceiverAddressReturn => {\n const [address, setAddress] = useAtom(limitReceiverAddressAtom);\n const shortAddress = address ? shortenAddress(address) : undefined;\n\n return { address, setAddress, shortAddress };\n};\n\nexport const useLimitReceiverAddressValue = () => {\n return useAtomValue(limitReceiverAddressAtom);\n};\n"],"names":["limitReceiverAddressAtom","atom","useLimitReceiverAddress","$","_c","address","setAddress","useAtom","t0","shortenAddress","undefined","shortAddress","t1","useLimitReceiverAddressValue","useAtomValue"],"mappings":";;;;;AAMO,MAAMA,2BAA2BC,IAAAA;AAEjC,MAAMC,0BAA0BA,MAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AACrC,EAAA,MAAA,CAAAC,OAAAA,EAAAC,UAAA,CAAA,GAA8BC,QAAQP,wBAAwB,CAAA;AAAE,EAAA,IAAAQ,EAAAA;AAAA,EAAA,IAAAL,CAAAA,QAAAE,OAAAA,EAAA;AAC3CG,IAAAA,EAAAA,GAAAH,OAAAA,GAAUI,cAAAA,CAAeJ,OAAmB,CAAA,GAA5CK,MAAAA;AAA6CP,IAAAA,CAAAA,MAAAE,OAAAA;AAAAF,IAAAA,CAAAA,MAAAK,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAL,EAAA,CAAA,CAAA;AAAA,EAAA;AAAlE,EAAA,MAAAQ,YAAAA,GAAqBH,EAAAA;AAA8C,EAAA,IAAAI,EAAAA;AAAA,EAAA,IAAAT,CAAAA,CAAA,CAAA,CAAA,KAAAE,OAAAA,IAAAF,CAAAA,QAAAG,UAAAA,IAAAH,CAAAA,CAAA,CAAA,CAAA,KAAAQ,YAAAA,EAAA;AAE5DC,IAAAA,EAAAA,GAAA;AAAA,MAAAP,OAAAA;AAAAA,MAAAC,UAAAA;AAAAA,MAAAK;AAAAA,KAAoC;AAACR,IAAAA,CAAAA,MAAAE,OAAAA;AAAAF,IAAAA,CAAAA,MAAAG,UAAAA;AAAAH,IAAAA,CAAAA,MAAAQ,YAAAA;AAAAR,IAAAA,CAAAA,MAAAS,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAT,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAArCS,EAAAA;AAAqC;AAGvC,MAAMC,+BAA+BA,MAAA;AAAA,EAAA,OACnCC,aAAad,wBAAwB,CAAA;AAAC;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectedTokenActionsAtom.d.ts","sourceRoot":"","sources":["../../../../src/core/limit/state/selectedTokenActionsAtom.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"selectedTokenActionsAtom.d.ts","sourceRoot":"","sources":["../../../../src/core/limit/state/selectedTokenActionsAtom.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAYlD,eAAO,MAAM,qBAAqB;;CAwBhC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;CA2EpC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;CAuGlC,CAAC"}
|
|
@@ -2,17 +2,29 @@ import { pickDefaultTokenPair } from '../../../tokens/defaultTokens.js';
|
|
|
2
2
|
import { areTokensSame } from '../../../tokens/utils/areTokensSame.js';
|
|
3
3
|
import { atom } from 'jotai';
|
|
4
4
|
import { unlockLimitPriceAtom } from './limitInputActionsAtom.js';
|
|
5
|
-
import { limitTokenFromAtom, limitTokenToAtom } from './
|
|
5
|
+
import { limitTokenFromAtom, limitTokenToAtom } from './limitTokenAtoms.js';
|
|
6
6
|
import { wagmiConfig } from '../../../lib/web3/wagmi/config.js';
|
|
7
7
|
import { switchChain } from '../../../lib/web3/wagmi/switchChain.js';
|
|
8
|
+
import { isCrosschainPossible } from '../../across/isCrosshcainPossible.js';
|
|
9
|
+
import { isTokenFromAcross, findFirstTokenFromAcross } from '../../across/utils.js';
|
|
10
|
+
import { allTokensByChainAtom } from '../../../tokens/state/allTokensByChainAtom.js';
|
|
11
|
+
import { getSelectableDestChains } from '../../state/getSelectableDestChains.js';
|
|
12
|
+
import { enabledSrcChainsAtom } from '../../state/enabledChainsAtom.js';
|
|
8
13
|
|
|
9
14
|
const switchLimitTokensAtom = atom(null, async (get, set) => {
|
|
10
15
|
const tokenTo = get(limitTokenToAtom);
|
|
11
16
|
if (!tokenTo) return;
|
|
12
17
|
const tokenFrom = get(limitTokenFromAtom);
|
|
18
|
+
const initChainFrom = tokenFrom.network;
|
|
13
19
|
set(limitTokenFromAtom, tokenTo);
|
|
14
|
-
set(
|
|
20
|
+
set(selectLimitTokenToAtom, tokenFrom);
|
|
15
21
|
set(unlockLimitPriceAtom);
|
|
22
|
+
const currentTokenFrom = get(limitTokenFromAtom);
|
|
23
|
+
if (currentTokenFrom.network !== initChainFrom) {
|
|
24
|
+
switchChain({
|
|
25
|
+
chainId: tokenTo.network
|
|
26
|
+
});
|
|
27
|
+
}
|
|
16
28
|
});
|
|
17
29
|
const selectLimitTokenFromAtom = atom(null, async (get, set, newTokenFrom) => {
|
|
18
30
|
let tokenFrom = get(limitTokenFromAtom);
|
|
@@ -20,16 +32,6 @@ const selectLimitTokenFromAtom = atom(null, async (get, set, newTokenFrom) => {
|
|
|
20
32
|
const initTokenFrom = tokenFrom;
|
|
21
33
|
set(limitTokenFromAtom, newTokenFrom);
|
|
22
34
|
tokenFrom = newTokenFrom;
|
|
23
|
-
if (tokenTo && areTokensSame(tokenFrom, tokenTo)) {
|
|
24
|
-
set(limitTokenToAtom, initTokenFrom);
|
|
25
|
-
tokenTo = initTokenFrom;
|
|
26
|
-
}
|
|
27
|
-
if (tokenTo && tokenTo.network !== tokenFrom.network) {
|
|
28
|
-
const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(tokenFrom.network, "limit");
|
|
29
|
-
const newTokenTo = areTokensSame(tokenFrom, defaultTokenTo) ? defaultTokenFrom : defaultTokenTo;
|
|
30
|
-
set(limitTokenToAtom, newTokenTo);
|
|
31
|
-
tokenTo = newTokenTo;
|
|
32
|
-
}
|
|
33
35
|
if (!areTokensSame(tokenFrom, initTokenFrom)) {
|
|
34
36
|
set(unlockLimitPriceAtom);
|
|
35
37
|
}
|
|
@@ -38,27 +40,101 @@ const selectLimitTokenFromAtom = atom(null, async (get, set, newTokenFrom) => {
|
|
|
38
40
|
chainId: tokenFrom.network
|
|
39
41
|
});
|
|
40
42
|
}
|
|
43
|
+
if (!tokenTo) return;
|
|
44
|
+
const crosschainPossible = isCrosschainPossible({
|
|
45
|
+
get,
|
|
46
|
+
chainIdFrom: tokenFrom.network,
|
|
47
|
+
chainIdTo: tokenTo.network,
|
|
48
|
+
mode: "limit"
|
|
49
|
+
});
|
|
50
|
+
if (crosschainPossible) {
|
|
51
|
+
const isTokenToFromAcross = isTokenFromAcross({
|
|
52
|
+
token: tokenTo,
|
|
53
|
+
fromChainId: tokenFrom.network,
|
|
54
|
+
toChainId: tokenTo.network,
|
|
55
|
+
mode: "limit"
|
|
56
|
+
});
|
|
57
|
+
if (!isTokenToFromAcross) {
|
|
58
|
+
const maybeAcrossToken = findFirstTokenFromAcross({
|
|
59
|
+
fromChainId: tokenFrom.network,
|
|
60
|
+
toChainId: tokenTo.network,
|
|
61
|
+
listByChainId: get(allTokensByChainAtom).listByChainId,
|
|
62
|
+
mode: "limit"
|
|
63
|
+
});
|
|
64
|
+
set(limitTokenToAtom, maybeAcrossToken);
|
|
65
|
+
}
|
|
66
|
+
} else {
|
|
67
|
+
if (tokenFrom.network !== tokenTo.network) {
|
|
68
|
+
const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(tokenFrom.network, "limit");
|
|
69
|
+
tokenTo = areTokensSame(tokenFrom, defaultTokenTo) ? defaultTokenFrom : defaultTokenTo;
|
|
70
|
+
set(limitTokenToAtom, tokenTo);
|
|
71
|
+
} else {
|
|
72
|
+
if (areTokensSame(tokenFrom, tokenTo)) {
|
|
73
|
+
set(limitTokenToAtom, initTokenFrom);
|
|
74
|
+
tokenTo = initTokenFrom;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
41
78
|
});
|
|
42
79
|
const selectLimitTokenToAtom = atom(null, async (get, set, newTokenTo) => {
|
|
43
80
|
let tokenFrom = get(limitTokenFromAtom);
|
|
81
|
+
const selectableDestChains = getSelectableDestChains(get, {
|
|
82
|
+
fromChainId: tokenFrom.network,
|
|
83
|
+
mode: "limit"
|
|
84
|
+
});
|
|
85
|
+
if (!selectableDestChains.includes(newTokenTo.network)) return;
|
|
44
86
|
let tokenTo = get(limitTokenToAtom);
|
|
45
87
|
const initTokenTo = tokenTo;
|
|
46
88
|
set(limitTokenToAtom, newTokenTo);
|
|
47
89
|
tokenTo = newTokenTo;
|
|
48
|
-
if (
|
|
49
|
-
|
|
50
|
-
|
|
90
|
+
if (areTokensSame(tokenTo, tokenFrom)) {
|
|
91
|
+
const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(tokenTo.network, "limit");
|
|
92
|
+
const defaultToken = areTokensSame(tokenFrom, defaultTokenFrom) ? defaultTokenTo : defaultTokenFrom;
|
|
93
|
+
const wasCrosschain = initTokenTo && tokenFrom.network !== initTokenTo.network;
|
|
94
|
+
const newTokenFrom = wasCrosschain ? (
|
|
95
|
+
// We cannot flip the tokens if switching from the crosschain, because if we do, we will end up with tokenFrom network different from app chainId.
|
|
96
|
+
// Switching app chainId when selecting tokenTo is not what we want, because we cannot dictate the main network when selecting tokenTo.
|
|
97
|
+
// Maybe user wants to trade singlechain but we are forcing crosschain.
|
|
98
|
+
defaultToken
|
|
99
|
+
) : (
|
|
100
|
+
// Otherwise, we can flip the tokens, or pick from defaults
|
|
101
|
+
initTokenTo ?? defaultToken
|
|
102
|
+
);
|
|
103
|
+
set(limitTokenFromAtom, newTokenFrom);
|
|
104
|
+
tokenFrom = newTokenFrom;
|
|
51
105
|
}
|
|
52
|
-
|
|
106
|
+
let needResetTokenFrom = false;
|
|
107
|
+
const crosschainPossible = isCrosschainPossible({
|
|
108
|
+
get,
|
|
109
|
+
chainIdFrom: tokenFrom.network,
|
|
110
|
+
chainIdTo: tokenTo.network,
|
|
111
|
+
mode: "limit"
|
|
112
|
+
});
|
|
113
|
+
if (crosschainPossible) {
|
|
114
|
+
const isTokenToFromAcross = isTokenFromAcross({
|
|
115
|
+
token: tokenTo,
|
|
116
|
+
fromChainId: tokenFrom.network,
|
|
117
|
+
toChainId: tokenTo.network,
|
|
118
|
+
mode: "limit"
|
|
119
|
+
});
|
|
120
|
+
if (!isTokenToFromAcross) {
|
|
121
|
+
needResetTokenFrom = true;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
if (tokenFrom.network !== tokenTo.network && !crosschainPossible) {
|
|
125
|
+
needResetTokenFrom = true;
|
|
126
|
+
}
|
|
127
|
+
const enabledSrcChains = get(enabledSrcChainsAtom);
|
|
128
|
+
if (needResetTokenFrom && enabledSrcChains.includes(tokenTo.network)) {
|
|
53
129
|
const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(tokenTo.network, "limit");
|
|
54
|
-
const newTokenFrom = areTokensSame(tokenTo,
|
|
130
|
+
const newTokenFrom = areTokensSame(tokenTo, defaultTokenFrom) ? defaultTokenTo : defaultTokenFrom;
|
|
55
131
|
set(limitTokenFromAtom, newTokenFrom);
|
|
56
132
|
tokenFrom = newTokenFrom;
|
|
57
133
|
}
|
|
58
134
|
if (tokenTo && initTokenTo && !areTokensSame(tokenTo, initTokenTo)) {
|
|
59
135
|
set(unlockLimitPriceAtom);
|
|
60
136
|
}
|
|
61
|
-
if (
|
|
137
|
+
if (tokenFrom.network !== wagmiConfig.state.chainId) {
|
|
62
138
|
switchChain({
|
|
63
139
|
chainId: tokenTo.network
|
|
64
140
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectedTokenActionsAtom.js","sources":["../../../../src/core/limit/state/selectedTokenActionsAtom.ts"],"sourcesContent":["import { pickDefaultTokenPair } from \"@/tokens/defaultTokens\";\nimport { areTokensSame } from \"@/tokens/utils/areTokensSame\";\nimport { atom } from \"jotai\";\nimport { unlockLimitPriceAtom } from \"./limitInputActionsAtom\";\nimport { limitTokenFromAtom, limitTokenToAtom } from \"./selectedTokenAtom\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport { switchChain } from \"@/lib/web3/wagmi/switchChain\";\n\nexport const switchLimitTokensAtom = atom(null, async (get, set) => {\n const tokenTo = get(limitTokenToAtom);\n\n if (!tokenTo) return;\n\n const tokenFrom = get(limitTokenFromAtom);\n\n // set tokenFrom\n set(limitTokenFromAtom, tokenTo);\n\n set(limitTokenToAtom, tokenFrom);\n\n set(unlockLimitPriceAtom);\n});\n\nexport const selectLimitTokenFromAtom = atom(\n null,\n async (get, set, newTokenFrom: Token) => {\n let tokenFrom = get(limitTokenFromAtom);\n let tokenTo = get(limitTokenToAtom);\n const initTokenFrom = tokenFrom;\n\n // then set the tokenFrom\n set(limitTokenFromAtom, newTokenFrom);\n tokenFrom = newTokenFrom;\n\n if (tokenTo && areTokensSame(tokenFrom, tokenTo)) {\n // ended up with the same tokens?\n set(limitTokenToAtom, initTokenFrom);\n // set tokenTo to previous tokenFrom\n tokenTo = initTokenFrom;\n }\n\n if (tokenTo && tokenTo.network !== tokenFrom.network) {\n // LOrders are single-chain only\n // @TODO change when implementing Crosschain Delta Limit Orders,\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n tokenFrom.network,\n \"limit\"\n );\n // so set tokenTo to one of the default tokens for tokenFrom.network chain\n const newTokenTo = areTokensSame(tokenFrom, defaultTokenTo)\n ? defaultTokenFrom\n : defaultTokenTo;\n set(limitTokenToAtom, newTokenTo);\n tokenTo = newTokenTo;\n }\n\n // do not unlock limit price if token has not actually changed\n if (!areTokensSame(tokenFrom, initTokenFrom)) {\n set(unlockLimitPriceAtom);\n }\n\n // selecting a token from a different chain?\n if (tokenFrom.network !== wagmiConfig.state.chainId) {\n switchChain({\n chainId: tokenFrom.network,\n });\n }\n }\n);\n\nexport const selectLimitTokenToAtom = atom(\n null,\n async (get, set, newTokenTo: Token) => {\n let tokenFrom = get(limitTokenFromAtom);\n let tokenTo = get(limitTokenToAtom);\n const initTokenTo = tokenTo;\n\n set(limitTokenToAtom, newTokenTo);\n tokenTo = newTokenTo;\n\n if (initTokenTo && areTokensSame(tokenFrom, tokenTo)) {\n // ended up with the same tokens?\n set(limitTokenFromAtom, initTokenTo);\n // set tokenFrom to previous tokenTo\n tokenFrom = initTokenTo;\n }\n\n if (tokenTo.network !== tokenFrom.network) {\n // LOrders are single-chain only\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n tokenTo.network,\n \"limit\"\n );\n // so set tokenFrom to one of the default tokens for tokenTo.network chain\n const newTokenFrom = areTokensSame(tokenTo, defaultTokenTo)\n ? defaultTokenFrom\n : defaultTokenTo;\n set(limitTokenFromAtom, newTokenFrom);\n tokenFrom = newTokenFrom;\n }\n\n // do not unlock limit price if token has not actually changed\n if (tokenTo && initTokenTo && !areTokensSame(tokenTo, initTokenTo)) {\n set(unlockLimitPriceAtom);\n }\n\n // selecting a token from a different chain?\n if (tokenTo.network !== wagmiConfig.state.chainId) {\n switchChain({\n chainId: tokenTo.network,\n });\n }\n }\n);\n"],"names":["switchLimitTokensAtom","atom","get","set","tokenTo","limitTokenToAtom","tokenFrom","limitTokenFromAtom","unlockLimitPriceAtom","selectLimitTokenFromAtom","newTokenFrom","initTokenFrom","areTokensSame","network","defaultTokenFrom","defaultTokenTo","pickDefaultTokenPair","newTokenTo","wagmiConfig","state","chainId","switchChain","selectLimitTokenToAtom","initTokenTo"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"selectedTokenActionsAtom.js","sources":["../../../../src/core/limit/state/selectedTokenActionsAtom.ts"],"sourcesContent":["import { pickDefaultTokenPair } from \"@/tokens/defaultTokens\";\nimport { areTokensSame } from \"@/tokens/utils/areTokensSame\";\nimport { atom } from \"jotai\";\nimport { unlockLimitPriceAtom } from \"./limitInputActionsAtom\";\nimport { limitTokenFromAtom, limitTokenToAtom } from \"./limitTokenAtoms\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport { switchChain } from \"@/lib/web3/wagmi/switchChain\";\nimport { isCrosschainPossible } from \"@/core/across/isCrosshcainPossible\";\nimport {\n findFirstTokenFromAcross,\n isTokenFromAcross,\n} from \"@/core/across/utils\";\nimport { allTokensByChainAtom } from \"@/tokens/state/allTokensByChainAtom\";\nimport { getSelectableDestChains } from \"@/core/state/getSelectableDestChains\";\nimport { enabledSrcChainsAtom } from \"@/core/state/enabledChainsAtom\";\n\nexport const switchLimitTokensAtom = atom(null, async (get, set) => {\n const tokenTo = get(limitTokenToAtom);\n\n if (!tokenTo) return;\n\n const tokenFrom = get(limitTokenFromAtom);\n const initChainFrom = tokenFrom.network;\n\n // set tokenFrom as is\n set(limitTokenFromAtom, tokenTo);\n // set tokenTo, including running all crosschain logic inside\n set(selectLimitTokenToAtom, tokenFrom);\n\n set(unlockLimitPriceAtom);\n\n const currentTokenFrom = get(limitTokenFromAtom);\n\n // switch a token from a different chain?\n if (currentTokenFrom.network !== initChainFrom) {\n // switch chain first\n switchChain({\n chainId: tokenTo.network,\n });\n }\n});\n\nexport const selectLimitTokenFromAtom = atom(\n null,\n async (get, set, newTokenFrom: Token) => {\n let tokenFrom = get(limitTokenFromAtom);\n let tokenTo = get(limitTokenToAtom);\n const initTokenFrom = tokenFrom;\n\n // then set the tokenFrom\n set(limitTokenFromAtom, newTokenFrom);\n tokenFrom = newTokenFrom;\n\n // do not unlock limit price if token has not actually changed\n if (!areTokensSame(tokenFrom, initTokenFrom)) {\n set(unlockLimitPriceAtom);\n }\n\n // selecting a token from a different chain?\n if (tokenFrom.network !== wagmiConfig.state.chainId) {\n switchChain({\n chainId: tokenFrom.network,\n });\n }\n\n if (!tokenTo) return;\n\n const crosschainPossible = isCrosschainPossible({\n get,\n chainIdFrom: tokenFrom.network,\n chainIdTo: tokenTo.network,\n mode: \"limit\",\n });\n\n if (crosschainPossible) {\n const isTokenToFromAcross = isTokenFromAcross({\n token: tokenTo,\n fromChainId: tokenFrom.network,\n toChainId: tokenTo.network,\n mode: \"limit\",\n });\n\n if (!isTokenToFromAcross) {\n // set the token from across as tokenTo,\n // or reset tokenTo if token not found\n const maybeAcrossToken = findFirstTokenFromAcross({\n fromChainId: tokenFrom.network,\n toChainId: tokenTo.network,\n listByChainId: get(allTokensByChainAtom).listByChainId,\n mode: \"limit\",\n });\n\n set(limitTokenToAtom, maybeAcrossToken);\n }\n } else {\n // cross-chain not possible between new chainFrom and chainTo,\n // so need to reset tokenTo to default\n if (tokenFrom.network !== tokenTo.network) {\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n tokenFrom.network,\n \"limit\"\n );\n\n tokenTo = areTokensSame(tokenFrom, defaultTokenTo)\n ? defaultTokenFrom\n : defaultTokenTo;\n set(limitTokenToAtom, tokenTo);\n } else {\n // or simply flip the tokens if they are from the same chain\n if (areTokensSame(tokenFrom, tokenTo)) {\n set(limitTokenToAtom, initTokenFrom);\n tokenTo = initTokenFrom;\n }\n // otherwise do nothing, tokenTo is already on the same chain and different from newTokenFrom\n }\n }\n }\n);\n\nexport const selectLimitTokenToAtom = atom(\n null,\n async (get, set, newTokenTo: Token) => {\n let tokenFrom = get(limitTokenFromAtom);\n\n const selectableDestChains = getSelectableDestChains(get, {\n fromChainId: tokenFrom.network,\n mode: \"limit\",\n });\n if (!selectableDestChains.includes(newTokenTo.network)) return;\n\n let tokenTo = get(limitTokenToAtom);\n const initTokenTo = tokenTo;\n\n set(limitTokenToAtom, newTokenTo);\n tokenTo = newTokenTo;\n\n if (areTokensSame(tokenTo, tokenFrom)) {\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n tokenTo.network,\n \"limit\"\n );\n\n const defaultToken = areTokensSame(tokenFrom, defaultTokenFrom)\n ? defaultTokenTo\n : defaultTokenFrom;\n\n // Will be true if crosschain tokens were selected\n const wasCrosschain =\n initTokenTo && tokenFrom.network !== initTokenTo.network;\n\n const newTokenFrom = wasCrosschain\n ? // We cannot flip the tokens if switching from the crosschain, because if we do, we will end up with tokenFrom network different from app chainId.\n // Switching app chainId when selecting tokenTo is not what we want, because we cannot dictate the main network when selecting tokenTo.\n // Maybe user wants to trade singlechain but we are forcing crosschain.\n defaultToken\n : // Otherwise, we can flip the tokens, or pick from defaults\n (initTokenTo ?? defaultToken);\n\n set(limitTokenFromAtom, newTokenFrom);\n tokenFrom = newTokenFrom;\n }\n\n // after switching we may have ended up with a crosschain pair,\n // but tokenTo may not be crossable depending on srcChainId;\n // this can easily happen if tokenTo was set from WidgetProps\n let needResetTokenFrom = false;\n\n const crosschainPossible = isCrosschainPossible({\n get,\n chainIdFrom: tokenFrom.network,\n chainIdTo: tokenTo.network,\n mode: \"limit\",\n });\n\n if (crosschainPossible) {\n const isTokenToFromAcross = isTokenFromAcross({\n token: tokenTo,\n fromChainId: tokenFrom.network,\n toChainId: tokenTo.network,\n mode: \"limit\",\n });\n\n if (!isTokenToFromAcross) {\n // tokenFrom -> tokenTo is crosschain, but tokenTo can't be destToken for that chain\n needResetTokenFrom = true;\n }\n }\n\n if (tokenFrom.network !== tokenTo.network && !crosschainPossible) {\n // tokenFrom -> tokenTo is crosschain, but delta is explicitly disabled,\n needResetTokenFrom = true;\n }\n\n const enabledSrcChains = get(enabledSrcChainsAtom);\n\n if (needResetTokenFrom && enabledSrcChains.includes(tokenTo.network)) {\n // set the tokenFrom to default token from tokenTo.network\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n tokenTo.network,\n \"limit\"\n );\n // make sure it's not the same as tokenTo\n const newTokenFrom = areTokensSame(tokenTo, defaultTokenFrom)\n ? defaultTokenTo\n : defaultTokenFrom;\n\n set(limitTokenFromAtom, newTokenFrom);\n tokenFrom = newTokenFrom;\n }\n\n // do not unlock limit price if token has not actually changed\n if (tokenTo && initTokenTo && !areTokensSame(tokenTo, initTokenTo)) {\n set(unlockLimitPriceAtom);\n }\n\n // ended up changing tokenFrom network?\n if (tokenFrom.network !== wagmiConfig.state.chainId) {\n switchChain({\n chainId: tokenTo.network,\n });\n }\n }\n);\n"],"names":["switchLimitTokensAtom","atom","get","set","tokenTo","limitTokenToAtom","tokenFrom","limitTokenFromAtom","initChainFrom","network","selectLimitTokenToAtom","unlockLimitPriceAtom","currentTokenFrom","switchChain","chainId","selectLimitTokenFromAtom","newTokenFrom","initTokenFrom","areTokensSame","wagmiConfig","state","crosschainPossible","isCrosschainPossible","chainIdFrom","chainIdTo","mode","isTokenToFromAcross","isTokenFromAcross","token","fromChainId","toChainId","maybeAcrossToken","findFirstTokenFromAcross","listByChainId","allTokensByChainAtom","defaultTokenFrom","defaultTokenTo","pickDefaultTokenPair","newTokenTo","selectableDestChains","getSelectableDestChains","includes","initTokenTo","defaultToken","wasCrosschain","needResetTokenFrom","enabledSrcChains","enabledSrcChainsAtom"],"mappings":"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"}
|
|
@@ -1,12 +1,3 @@
|
|
|
1
1
|
import { SupportedChainId } from '../../../lib/web3/wagmi/types';
|
|
2
|
-
import { Token } from '../../../tokens/state/types';
|
|
3
|
-
export declare const limitTokenFromAtom: import('jotai').PrimitiveAtom<Token> & {
|
|
4
|
-
init: Token;
|
|
5
|
-
};
|
|
6
|
-
export declare const limitTokenToAtom: import('jotai').PrimitiveAtom<Token | undefined> & {
|
|
7
|
-
init: Token | undefined;
|
|
8
|
-
};
|
|
9
|
-
export declare const useLimitTokenFrom: () => Token;
|
|
10
|
-
export declare const useLimitTokenTo: () => Token | undefined;
|
|
11
2
|
export declare const syncLimitTokensAfterChainSwitch: (chainId: SupportedChainId) => void;
|
|
12
3
|
//# sourceMappingURL=selectedTokenAtom.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectedTokenAtom.d.ts","sourceRoot":"","sources":["../../../../src/core/limit/state/selectedTokenAtom.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"selectedTokenAtom.d.ts","sourceRoot":"","sources":["../../../../src/core/limit/state/selectedTokenAtom.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAK/D,eAAO,MAAM,+BAA+B,GAAI,SAAS,gBAAgB,SAoExE,CAAC"}
|
|
@@ -1,27 +1,59 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { isCrosschainPossible } from '../../across/isCrosshcainPossible.js';
|
|
2
|
+
import { isTokenFromAcross, findFirstTokenFromAcross } from '../../across/utils.js';
|
|
3
|
+
import { jotaiStore } from '../../store.js';
|
|
4
|
+
import { getSelectableDestChains } from '../../state/getSelectableDestChains.js';
|
|
5
|
+
import { enabledSrcChainsAtom } from '../../state/enabledChainsAtom.js';
|
|
3
6
|
import { pickDefaultTokenPair } from '../../../tokens/defaultTokens.js';
|
|
4
|
-
import {
|
|
7
|
+
import { allTokensByChainAtom } from '../../../tokens/state/allTokensByChainAtom.js';
|
|
8
|
+
import { limitTokenFromAtom, limitTokenToAtom } from './limitTokenAtoms.js';
|
|
5
9
|
|
|
6
|
-
const [defaultTokenFrom] = pickDefaultTokenPair(wagmiConfig.state.chainId, "limit");
|
|
7
|
-
const limitTokenFromAtom = atom(defaultTokenFrom);
|
|
8
|
-
const limitTokenToAtom = atom();
|
|
9
|
-
const useLimitTokenFrom = () => {
|
|
10
|
-
return useAtomValue(limitTokenFromAtom);
|
|
11
|
-
};
|
|
12
|
-
const useLimitTokenTo = () => {
|
|
13
|
-
return useAtomValue(limitTokenToAtom);
|
|
14
|
-
};
|
|
15
10
|
const syncLimitTokensAfterChainSwitch = (chainId) => {
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
11
|
+
const enabledSrcChains = jotaiStore.get(enabledSrcChainsAtom);
|
|
12
|
+
if (!enabledSrcChains.includes(chainId)) return;
|
|
13
|
+
let tokenFrom = jotaiStore.get(limitTokenFromAtom);
|
|
14
|
+
if (tokenFrom.network === chainId) return;
|
|
15
|
+
const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(chainId, "limit");
|
|
16
|
+
jotaiStore.set(limitTokenFromAtom, defaultTokenFrom);
|
|
17
|
+
tokenFrom = defaultTokenFrom;
|
|
18
|
+
let tokenTo = jotaiStore.get(limitTokenToAtom);
|
|
19
|
+
if (!tokenTo) return;
|
|
20
|
+
const crosschainPossible = isCrosschainPossible({
|
|
21
|
+
get: jotaiStore.get,
|
|
22
|
+
chainIdFrom: chainId,
|
|
23
|
+
chainIdTo: tokenTo.network,
|
|
24
|
+
mode: "limit"
|
|
25
|
+
});
|
|
26
|
+
if (crosschainPossible) {
|
|
27
|
+
const isTokenToFromAcross = isTokenFromAcross({
|
|
28
|
+
token: tokenTo,
|
|
29
|
+
fromChainId: chainId,
|
|
30
|
+
toChainId: tokenTo.network,
|
|
31
|
+
mode: "limit"
|
|
32
|
+
});
|
|
33
|
+
if (!isTokenToFromAcross) {
|
|
34
|
+
const maybeAcrossToken = findFirstTokenFromAcross({
|
|
35
|
+
fromChainId: chainId,
|
|
36
|
+
toChainId: tokenTo.network,
|
|
37
|
+
listByChainId: jotaiStore.get(allTokensByChainAtom).listByChainId,
|
|
38
|
+
mode: "limit"
|
|
39
|
+
});
|
|
40
|
+
jotaiStore.set(limitTokenToAtom, maybeAcrossToken);
|
|
41
|
+
tokenTo = maybeAcrossToken;
|
|
42
|
+
}
|
|
43
|
+
} else {
|
|
44
|
+
const selectableDestChains = getSelectableDestChains(jotaiStore.get, {
|
|
45
|
+
fromChainId: tokenFrom.network,
|
|
46
|
+
mode: "limit"
|
|
47
|
+
});
|
|
48
|
+
if (selectableDestChains.includes(chainId)) {
|
|
49
|
+
jotaiStore.set(limitTokenToAtom, defaultTokenTo);
|
|
50
|
+
tokenTo = defaultTokenTo;
|
|
51
|
+
} else {
|
|
52
|
+
jotaiStore.set(limitTokenToAtom, void 0);
|
|
53
|
+
tokenTo = void 0;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
24
56
|
};
|
|
25
57
|
|
|
26
|
-
export {
|
|
58
|
+
export { syncLimitTokensAfterChainSwitch };
|
|
27
59
|
//# sourceMappingURL=selectedTokenAtom.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectedTokenAtom.js","sources":["../../../../src/core/limit/state/selectedTokenAtom.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"selectedTokenAtom.js","sources":["../../../../src/core/limit/state/selectedTokenAtom.ts"],"sourcesContent":["import { isCrosschainPossible } from \"@/core/across/isCrosshcainPossible\";\nimport {\n findFirstTokenFromAcross,\n isTokenFromAcross,\n} from \"@/core/across/utils\";\nimport { jotaiStore } from \"@/core/store\";\nimport { getSelectableDestChains } from \"@/core/state/getSelectableDestChains\";\nimport { enabledSrcChainsAtom } from \"@/core/state/enabledChainsAtom\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { pickDefaultTokenPair } from \"@/tokens/defaultTokens\";\nimport { allTokensByChainAtom } from \"@/tokens/state/allTokensByChainAtom\";\nimport { limitTokenFromAtom, limitTokenToAtom } from \"./limitTokenAtoms\";\n\nexport const syncLimitTokensAfterChainSwitch = (chainId: SupportedChainId) => {\n const enabledSrcChains = jotaiStore.get(enabledSrcChainsAtom);\n if (!enabledSrcChains.includes(chainId)) return;\n\n let tokenFrom = jotaiStore.get(limitTokenFromAtom);\n\n // chains are the same? do nothing\n if (tokenFrom.network === chainId) return;\n // token will already be set on new chain, the new token may have been the reason for switchChain\n\n // get default tokens for the new chain\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n chainId,\n \"limit\"\n );\n\n // update tokenFrom\n jotaiStore.set(limitTokenFromAtom, defaultTokenFrom);\n tokenFrom = defaultTokenFrom;\n\n let tokenTo = jotaiStore.get(limitTokenToAtom);\n\n // toChainId derives from tokenTo.network, if no tokenTo - do nothing\n if (!tokenTo) return;\n\n const crosschainPossible = isCrosschainPossible({\n get: jotaiStore.get,\n chainIdFrom: chainId,\n chainIdTo: tokenTo.network,\n mode: \"limit\",\n });\n\n if (crosschainPossible) {\n const isTokenToFromAcross = isTokenFromAcross({\n token: tokenTo,\n fromChainId: chainId,\n toChainId: tokenTo.network,\n mode: \"limit\",\n });\n\n if (!isTokenToFromAcross) {\n // set the token from across as tokenTo,\n // or reset tokenTo if token not found\n const maybeAcrossToken = findFirstTokenFromAcross({\n fromChainId: chainId,\n toChainId: tokenTo.network,\n listByChainId: jotaiStore.get(allTokensByChainAtom).listByChainId,\n mode: \"limit\",\n });\n\n jotaiStore.set(limitTokenToAtom, maybeAcrossToken);\n tokenTo = maybeAcrossToken;\n }\n } else {\n const selectableDestChains = getSelectableDestChains(jotaiStore.get, {\n fromChainId: tokenFrom.network,\n mode: \"limit\",\n });\n if (selectableDestChains.includes(chainId)) {\n // can do single-chain on the new chain, set defaults\n jotaiStore.set(limitTokenToAtom, defaultTokenTo);\n tokenTo = defaultTokenTo;\n } else {\n // avoid complexity and reset tokenTo\n jotaiStore.set(limitTokenToAtom, undefined);\n tokenTo = undefined;\n }\n }\n};\n"],"names":["syncLimitTokensAfterChainSwitch","chainId","enabledSrcChains","jotaiStore","get","enabledSrcChainsAtom","includes","tokenFrom","limitTokenFromAtom","network","defaultTokenFrom","defaultTokenTo","pickDefaultTokenPair","set","tokenTo","limitTokenToAtom","crosschainPossible","isCrosschainPossible","chainIdFrom","chainIdTo","mode","isTokenToFromAcross","isTokenFromAcross","token","fromChainId","toChainId","maybeAcrossToken","findFirstTokenFromAcross","listByChainId","allTokensByChainAtom","selectableDestChains","getSelectableDestChains","undefined"],"mappings":";;;;;;;;;AAaO,MAAMA,+BAAAA,GAAkCA,CAACC,OAAAA,KAA8B;AAC5E,EAAA,MAAMC,gBAAAA,GAAmBC,UAAAA,CAAWC,GAAAA,CAAIC,oBAAoB,CAAA;AAC5D,EAAA,IAAI,CAACH,gBAAAA,CAAiBI,QAAAA,CAASL,OAAO,CAAA,EAAG;AAEzC,EAAA,IAAIM,SAAAA,GAAYJ,UAAAA,CAAWC,GAAAA,CAAII,kBAAkB,CAAA;AAGjD,EAAA,IAAID,SAAAA,CAAUE,YAAYR,OAAAA,EAAS;AAInC,EAAA,MAAM,CAACS,gBAAAA,EAAkBC,cAAc,CAAA,GAAIC,oBAAAA,CACzCX,SACA,OACF,CAAA;AAGAE,EAAAA,UAAAA,CAAWU,GAAAA,CAAIL,oBAAoBE,gBAAgB,CAAA;AACnDH,EAAAA,SAAAA,GAAYG,gBAAAA;AAEZ,EAAA,IAAII,OAAAA,GAAUX,UAAAA,CAAWC,GAAAA,CAAIW,gBAAgB,CAAA;AAG7C,EAAA,IAAI,CAACD,OAAAA,EAAS;AAEd,EAAA,MAAME,qBAAqBC,oBAAAA,CAAqB;AAAA,IAC9Cb,KAAKD,UAAAA,CAAWC,GAAAA;AAAAA,IAChBc,WAAAA,EAAajB,OAAAA;AAAAA,IACbkB,WAAWL,OAAAA,CAAQL,OAAAA;AAAAA,IACnBW,IAAAA,EAAM;AAAA,GACP,CAAA;AAED,EAAA,IAAIJ,kBAAAA,EAAoB;AACtB,IAAA,MAAMK,sBAAsBC,iBAAAA,CAAkB;AAAA,MAC5CC,KAAAA,EAAOT,OAAAA;AAAAA,MACPU,WAAAA,EAAavB,OAAAA;AAAAA,MACbwB,WAAWX,OAAAA,CAAQL,OAAAA;AAAAA,MACnBW,IAAAA,EAAM;AAAA,KACP,CAAA;AAED,IAAA,IAAI,CAACC,mBAAAA,EAAqB;AAGxB,MAAA,MAAMK,mBAAmBC,wBAAAA,CAAyB;AAAA,QAChDH,WAAAA,EAAavB,OAAAA;AAAAA,QACbwB,WAAWX,OAAAA,CAAQL,OAAAA;AAAAA,QACnBmB,aAAAA,EAAezB,UAAAA,CAAWC,GAAAA,CAAIyB,oBAAoB,CAAA,CAAED,aAAAA;AAAAA,QACpDR,IAAAA,EAAM;AAAA,OACP,CAAA;AAEDjB,MAAAA,UAAAA,CAAWU,GAAAA,CAAIE,kBAAkBW,gBAAgB,CAAA;AACjDZ,MAAAA,OAAAA,GAAUY,gBAAAA;AAAAA,IACZ;AAAA,EACF,CAAA,MAAO;AACL,IAAA,MAAMI,oBAAAA,GAAuBC,uBAAAA,CAAwB5B,UAAAA,CAAWC,GAAAA,EAAK;AAAA,MACnEoB,aAAajB,SAAAA,CAAUE,OAAAA;AAAAA,MACvBW,IAAAA,EAAM;AAAA,KACP,CAAA;AACD,IAAA,IAAIU,oBAAAA,CAAqBxB,QAAAA,CAASL,OAAO,CAAA,EAAG;AAE1CE,MAAAA,UAAAA,CAAWU,GAAAA,CAAIE,kBAAkBJ,cAAc,CAAA;AAC/CG,MAAAA,OAAAA,GAAUH,cAAAA;AAAAA,IACZ,CAAA,MAAO;AAELR,MAAAA,UAAAA,CAAWU,GAAAA,CAAIE,kBAAkBiB,MAAS,CAAA;AAC1ClB,MAAAA,OAAAA,GAAUkB,MAAAA;AAAAA,IACZ;AAAA,EACF;AACF;;;;"}
|
|
@@ -1,6 +1,14 @@
|
|
|
1
|
-
import { TimeUnitObject } from './deadlineAtom';
|
|
1
|
+
import { TimeUnitObject, TimeUnitState } from './deadlineAtom';
|
|
2
2
|
import { PriceRates } from '../types';
|
|
3
3
|
export declare function timeUnitToSeconds(timeUnitObj: TimeUnitObject): number;
|
|
4
|
+
export declare function getTimeUnitState(timeUnitObj: TimeUnitObject | TimeUnitState): TimeUnitState;
|
|
5
|
+
export declare function getClosestTimeUnit(timestampS: number): {
|
|
6
|
+
readonly label: "never";
|
|
7
|
+
readonly value: 0;
|
|
8
|
+
} | {
|
|
9
|
+
label: "minutes" | "days" | "hours" | "months";
|
|
10
|
+
value: number;
|
|
11
|
+
};
|
|
4
12
|
export declare function calculateReceiveAmount(payAmount: string, priceRates: PriceRates, isReversed: boolean): string;
|
|
5
13
|
export declare function calculatePayAmount(receiveAmount: string, priceRates: PriceRates, isReversed: boolean): string;
|
|
6
14
|
export declare function calculateRates(receiveAmount: string, payAmount: string): PriceRates;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/core/limit/state/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/core/limit/state/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAG3C,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,cAAc,UAa5D;AAED,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,cAAc,GAAG,aAAa,GAC1C,aAAa,CAWf;AAeD,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM;;;;;;EAoBpD;AAED,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,OAAO,UAcpB;AAED,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,OAAO,UAcpB;AAED,wBAAgB,cAAc,CAC5B,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,GAChB,UAAU,CAYZ;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,OAAO,GAClB,UAAU,CAWZ"}
|