@velora-dex/widget 0.8.1 → 0.8.2

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.
Files changed (575) hide show
  1. package/dist/components/SearchInput/SearchInput.js.map +1 -1
  2. package/dist/components/ui/accordion.js.map +1 -1
  3. package/dist/components/ui/button.js.map +1 -1
  4. package/dist/components/ui/card.js.map +1 -1
  5. package/dist/components/ui/drawer.js.map +1 -1
  6. package/dist/components/ui/dropdown-menu.js.map +1 -1
  7. package/dist/components/ui/input.js.map +1 -1
  8. package/dist/components/ui/progress.js.map +1 -1
  9. package/dist/components/ui/skeleton.js.map +1 -1
  10. package/dist/components/ui/sonner.js.map +1 -1
  11. package/dist/components/ui/switch.js.map +1 -1
  12. package/dist/components/ui/tooltip.js.map +1 -1
  13. package/dist/components/web3/AccountButton.js.map +1 -1
  14. package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.js.map +1 -1
  15. package/dist/components/web3/ConnectExternalProvider/metamaskProviderWrapper.js.map +1 -1
  16. package/dist/components/web3/ConnectExternalProvider/safeProviderWrapper.js.map +1 -1
  17. package/dist/components/web3/ConnectExternalProvider/utils.js.map +1 -1
  18. package/dist/components/web3/ConnectWallets/WalletConnectButtons.js.map +1 -1
  19. package/dist/components/web3/ConnectWallets/index.js +1 -1
  20. package/dist/components/web3/ConnectWallets/index.js.map +1 -1
  21. package/dist/components/web3/ConnectWallets/privy/button.js.map +1 -1
  22. package/dist/components/web3/ConnectWallets/privy/connectRunner.js.map +1 -1
  23. package/dist/components/web3/ConnectWallets/privy/iframe.js.map +1 -1
  24. package/dist/components/web3/ConnectWallets/privy/provider.js.map +1 -1
  25. package/dist/components/web3/ConnectWallets/walletFlags.js.map +1 -1
  26. package/dist/components/web3/ConnectWallets/walletIcons.js.map +1 -1
  27. package/dist/components/web3/ConnectedWallet/ConnectedWallet.js.map +1 -1
  28. package/dist/components/web3/providers.js.map +1 -1
  29. package/dist/components/widget/AppHeader/Activities/Activities.js.map +1 -1
  30. package/dist/components/widget/AppHeader/Activities/ActivitiesScreen.js.map +1 -1
  31. package/dist/components/widget/AppHeader/Activities/ActivityItems.js.map +1 -1
  32. package/dist/components/widget/AppHeader/Activities/Drawers.js.map +1 -1
  33. package/dist/components/widget/AppHeader/Activities/hooks.js.map +1 -1
  34. package/dist/components/widget/AppHeader/Activities/utils.js.map +1 -1
  35. package/dist/components/widget/AppHeader/ActivityButton.js.map +1 -1
  36. package/dist/components/widget/AppHeader/AppHeader.js.map +1 -1
  37. package/dist/components/widget/AppHeader/TradeModeSwitcher.js.map +1 -1
  38. package/dist/components/widget/AppHeader/state/showMoreAtom.js.map +1 -1
  39. package/dist/components/widget/BridgeList/BridgeListItem.js.map +1 -1
  40. package/dist/components/widget/BridgeList/BridgeProtocolsList.js.map +1 -1
  41. package/dist/components/widget/BridgeList/BridgesList.js.map +1 -1
  42. package/dist/components/widget/BridgeList/hooks.js.map +1 -1
  43. package/dist/components/widget/BridgePreferences/BridgePreferences.js.map +1 -1
  44. package/dist/components/widget/BridgeSelectorExpandable/BridgeSelectorExpandable.js.map +1 -1
  45. package/dist/components/widget/Button/CancelButton/CancelButton.js.map +1 -1
  46. package/dist/components/widget/Button/CancelButton/CancelButtonWithDrawer.js.map +1 -1
  47. package/dist/components/widget/Button/DismissButton.js.map +1 -1
  48. package/dist/components/widget/Button/RefreshButton.js.map +1 -1
  49. package/dist/components/widget/CompareQuotes/CompareQuotes.js.map +1 -1
  50. package/dist/components/widget/Details/DetailWithTooltip.js.map +1 -1
  51. package/dist/components/widget/Details/DetailWithValueList.js.map +1 -1
  52. package/dist/components/widget/Details/DetailWithValueListExpandable.js.map +1 -1
  53. package/dist/components/widget/Details/SwapDetailsExpandable.js.map +1 -1
  54. package/dist/components/widget/DexesList/DexItem.js.map +1 -1
  55. package/dist/components/widget/DexesList/DexesList.js.map +1 -1
  56. package/dist/components/widget/DexesList/getDexProps.js.map +1 -1
  57. package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressDialog.js.map +1 -1
  58. package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressInput.js.map +1 -1
  59. package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js.map +1 -1
  60. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.js.map +1 -1
  61. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/RegularTokenList.js.map +1 -1
  62. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/index.js.map +1 -1
  63. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListBody.js.map +1 -1
  64. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListRow.js.map +1 -1
  65. package/dist/components/widget/Dialog/SelectTokenDialog/TokenSearch.js.map +1 -1
  66. package/dist/components/widget/Drawer/Overlay.js.map +1 -1
  67. package/dist/components/widget/Drawer/index.js.map +1 -1
  68. package/dist/components/widget/Drawer/state/useDrawerControls.js.map +1 -1
  69. package/dist/components/widget/Duration/Duration.js.map +1 -1
  70. package/dist/components/widget/Duration/utils.js.map +1 -1
  71. package/dist/components/widget/EnabledExchanges/EnabledExchanges.js.map +1 -1
  72. package/dist/components/widget/EnabledExchanges/EnabledExchangesList.js.map +1 -1
  73. package/dist/components/widget/EnabledList/EnabledList.js.map +1 -1
  74. package/dist/components/widget/FetchingQuotes/FetchingQuotes.js.map +1 -1
  75. package/dist/components/widget/Icon/CheckIcon.js.map +1 -1
  76. package/dist/components/widget/Icon/ChevronIcon.js.map +1 -1
  77. package/dist/components/widget/Icon/DeltaIcon.js.map +1 -1
  78. package/dist/components/widget/Icon/EllipseIcon.js.map +1 -1
  79. package/dist/components/widget/Icon/InfoIcon.js.map +1 -1
  80. package/dist/components/widget/Icon/MarketIcon.js.map +1 -1
  81. package/dist/components/widget/Icon/SliderIcon.js.map +1 -1
  82. package/dist/components/widget/ImportToken/ImportToken.js.map +1 -1
  83. package/dist/components/widget/ImportToken/useImportTokenDrawer.js.map +1 -1
  84. package/dist/components/widget/LimitOrderItem/LimitOrderDetails/Controls.js.map +1 -1
  85. package/dist/components/widget/LimitOrderItem/LimitOrderDetails/LimitOrderDetails.js.map +1 -1
  86. package/dist/components/widget/LimitOrderItem/LimitOrderDetails/utils.js.map +1 -1
  87. package/dist/components/widget/LimitOrderItem/LimitOrderListItem.js +5 -8
  88. package/dist/components/widget/LimitOrderItem/LimitOrderListItem.js.map +1 -1
  89. package/dist/components/widget/LimitOrderItem/constants.js.map +1 -1
  90. package/dist/components/widget/LimitOrderItem/utils.js.map +1 -1
  91. package/dist/components/widget/LimitPriceInput/index.js +6 -6
  92. package/dist/components/widget/LimitPriceInput/index.js.map +1 -1
  93. package/dist/components/widget/Line/Line.js.map +1 -1
  94. package/dist/components/widget/ListItem/ListItemWithSwitch.js.map +1 -1
  95. package/dist/components/widget/NetworkIcon/NetworkIconSquare.js.map +1 -1
  96. package/dist/components/widget/NetworkSwitcher/CompactNetworkSwitcher.js.map +1 -1
  97. package/dist/components/widget/NetworkSwitcher/NetworkSwitcherDropdown.js.map +1 -1
  98. package/dist/components/widget/NetworkSwitcher/NetworkSwitcherList.js.map +1 -1
  99. package/dist/components/widget/NetworkSwitcher/common/AllNetworksItem.js.map +1 -1
  100. package/dist/components/widget/NetworkSwitcher/common/NetworkItem.js.map +1 -1
  101. package/dist/components/widget/NetworkSwitcher/utils/items.js.map +1 -1
  102. package/dist/components/widget/NetworkWithIcon/NetworkIconWithChevron.js.map +1 -1
  103. package/dist/components/widget/NetworkWithIcon/NetworkWithIcon.js.map +1 -1
  104. package/dist/components/widget/NumberInput/NumberInput.js.map +1 -1
  105. package/dist/components/widget/OrderExpiryInput/index.js.map +1 -1
  106. package/dist/components/widget/OtcOrderItem/OtcOrderDetails/Controls.js.map +1 -1
  107. package/dist/components/widget/OtcOrderItem/OtcOrderDetails/OtcOrderDetails.js.map +1 -1
  108. package/dist/components/widget/OtcOrderItem/OtcOrderDetails/utils.js.map +1 -1
  109. package/dist/components/widget/OtcOrderItem/OtcOrderListItem.js +5 -8
  110. package/dist/components/widget/OtcOrderItem/OtcOrderListItem.js.map +1 -1
  111. package/dist/components/widget/OtcOrderItem/constants.js.map +1 -1
  112. package/dist/components/widget/OtcOrderItem/utils.js.map +1 -1
  113. package/dist/components/widget/PayReceiveInfo/PayReceiveInfo.js.map +1 -1
  114. package/dist/components/widget/PoweredBy/PoweredBy.js.map +1 -1
  115. package/dist/components/widget/ReceiverAddress/ReceiverAddress.js.map +1 -1
  116. package/dist/components/widget/ReceiverAddress/state/receiverAddressAtom.js.map +1 -1
  117. package/dist/components/widget/ReceiverAddress/state/subscriptions.js.map +1 -1
  118. package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcControls.js.map +1 -1
  119. package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcReviewAndConfirm.js.map +1 -1
  120. package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/utils.js.map +1 -1
  121. package/dist/components/widget/RowVirtualizer/RowVirtualizerFixed.js.map +1 -1
  122. package/dist/components/widget/Screen/GenericScreen.js.map +1 -1
  123. package/dist/components/widget/Screen/ScreenContainer.js.map +1 -1
  124. package/dist/components/widget/SelectToken/SelectTokenButton.js.map +1 -1
  125. package/dist/components/widget/SettingsButton/SettingsButton.js.map +1 -1
  126. package/dist/components/widget/SwapModeSwitcher/SwapModeSwitcherExpandable.js.map +1 -1
  127. package/dist/components/widget/SwapModeSwitcher/state/swapModeActionsAtom.js.map +1 -1
  128. package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js.map +1 -1
  129. package/dist/components/widget/SwapRate/SwapRate.js.map +1 -1
  130. package/dist/components/widget/SwapRate/SwapRateWithTooltip.js.map +1 -1
  131. package/dist/components/widget/SwapRate/utils.js.map +1 -1
  132. package/dist/components/widget/SwapRateWithPriceImpactRow/SwapRateWithPriceImpactRow.js.map +1 -1
  133. package/dist/components/widget/Tabs/Tabs.js.map +1 -1
  134. package/dist/components/widget/Toasts/CustomToast.js.map +1 -1
  135. package/dist/components/widget/TokenBadge/TokenBadge.js.map +1 -1
  136. package/dist/components/widget/TokenBadge/TokenLink.js.map +1 -1
  137. package/dist/components/widget/TokenInput/InputContainer.js.map +1 -1
  138. package/dist/components/widget/TokenInput/InputField.js.map +1 -1
  139. package/dist/components/widget/TokenInput/InputFooter.js.map +1 -1
  140. package/dist/components/widget/TokenInput/InputHeader.js.map +1 -1
  141. package/dist/components/widget/TokenInput/common/Balance.js.map +1 -1
  142. package/dist/components/widget/TokenInput/common/MaxButtons.js.map +1 -1
  143. package/dist/components/widget/TokenInput/index.js.map +1 -1
  144. package/dist/components/widget/TokenSwitcher/TokenSwitcher.js.map +1 -1
  145. package/dist/components/widget/TradeOverview/CancelButtonWithDrawer.js.map +1 -1
  146. package/dist/components/widget/TradeOverview/CancelOrder/ConfirmCancel.js.map +1 -1
  147. package/dist/components/widget/TradeOverview/CancelOrder/utils.js.map +1 -1
  148. package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js.map +1 -1
  149. package/dist/components/widget/TradeOverview/FillOtcOrderTradeOverview.js.map +1 -1
  150. package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.js.map +1 -1
  151. package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.js.map +1 -1
  152. package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.js.map +1 -1
  153. package/dist/components/widget/TradeOverview/Step/Step.js.map +1 -1
  154. package/dist/components/widget/TradeOverview/Step/utils.js.map +1 -1
  155. package/dist/components/widget/TradeOverview/Stepper.js.map +1 -1
  156. package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteFooter.js.map +1 -1
  157. package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteHeader.js.map +1 -1
  158. package/dist/components/widget/TradeOverview/TradeComplete/TradeCompletedDetails.js.map +1 -1
  159. package/dist/components/widget/TradeOverview/TradeComplete/index.js.map +1 -1
  160. package/dist/components/widget/TradeOverview/TradeComplete/useTradeCompleteDetails.js.map +1 -1
  161. package/dist/components/widget/TradeOverview/TradeComplete/utils.js.map +1 -1
  162. package/dist/components/widget/TradeOverview/TradeDetails.js.map +1 -1
  163. package/dist/components/widget/TradeOverview/TradeDetailsDisplay.js.map +1 -1
  164. package/dist/components/widget/TradeOverview/TradeError/TradeErrorDetails.js.map +1 -1
  165. package/dist/components/widget/TradeOverview/TradeError/TradeErrorFooter.js.map +1 -1
  166. package/dist/components/widget/TradeOverview/TradeError/index.js.map +1 -1
  167. package/dist/components/widget/TradeOverview/TradeError/utils.js.map +1 -1
  168. package/dist/components/widget/TradeOverview/TradeOverview.js.map +1 -1
  169. package/dist/components/widget/TradeOverview/TradeOverviewFooter.js.map +1 -1
  170. package/dist/components/widget/TradeOverview/TradeOverviewHeader.js.map +1 -1
  171. package/dist/components/widget/TradeOverview/TradeOverviewScreen.js.map +1 -1
  172. package/dist/components/widget/TradeOverview/TwapOrderTradeOverview.js.map +1 -1
  173. package/dist/components/widget/TradeOverview/VerticalDash.js.map +1 -1
  174. package/dist/components/widget/TradeOverview/tradeFlowContext.js.map +1 -1
  175. package/dist/components/widget/TradeOverview/utils/isNonFlowStep.js.map +1 -1
  176. package/dist/components/widget/TradeOverview/utils/preWrap.js.map +1 -1
  177. package/dist/components/widget/TradeOverview/utils/useSwapAmountsWithSlippage.js.map +1 -1
  178. package/dist/components/widget/TradeParameters/BridgePreferenceParameters/BridgePreferenceParameters.js.map +1 -1
  179. package/dist/components/widget/TradeParameters/BridgePreferenceParameters/useDraftBridgePreferencesState.js.map +1 -1
  180. package/dist/components/widget/TradeParameters/DegenModeConfirmation.js.map +1 -1
  181. package/dist/components/widget/TradeParameters/DegenModeParameter.js.map +1 -1
  182. package/dist/components/widget/TradeParameters/DeltaParameter.js.map +1 -1
  183. package/dist/components/widget/TradeParameters/EIP1559Parameter.js.map +1 -1
  184. package/dist/components/widget/TradeParameters/EnabledExchangesParameters/EnabledExchangesParameters.js.map +1 -1
  185. package/dist/components/widget/TradeParameters/EnabledExchangesParameters/useDraftEnabledExchangesState.js.map +1 -1
  186. package/dist/components/widget/TradeParameters/SlippageParameter/CustomSlippageInput.js.map +1 -1
  187. package/dist/components/widget/TradeParameters/SlippageParameter/EditSlippage.js.map +1 -1
  188. package/dist/components/widget/TradeParameters/SlippageParameter/SlippageParameter.js.map +1 -1
  189. package/dist/components/widget/TradeParameters/SlippageParameter/hooks/useCustomSlippageProps.js.map +1 -1
  190. package/dist/components/widget/TradeParameters/TradeParameters.js.map +1 -1
  191. package/dist/components/widget/TradeParameters/TransactionSpeedParameter.js.map +1 -1
  192. package/dist/components/widget/TradeParameters/hooks/useIsNotDefaultAnyParameter.js.map +1 -1
  193. package/dist/components/widget/TradeParameters/state/bridgePreferences/bridgePreferenceAtom.js.map +1 -1
  194. package/dist/components/widget/TradeParameters/state/bridgePreferences/disabledBridgesAtom.js.map +1 -1
  195. package/dist/components/widget/TradeParameters/state/bridgePreferences/excludeBridgesAtom.js.map +1 -1
  196. package/dist/components/widget/TradeParameters/state/bridgePreferences/protocolNameAtom.js.map +1 -1
  197. package/dist/components/widget/TradeParameters/state/bridgePreferences/resetDraftsAtom.js.map +1 -1
  198. package/dist/components/widget/TradeParameters/state/bridgePreferences/useBridgePreferences.js.map +1 -1
  199. package/dist/components/widget/TradeParameters/state/deltaParamActionsAtom.js.map +1 -1
  200. package/dist/components/widget/TradeParameters/state/enabledExchanges/disabledDexesAtomFamily.js.map +1 -1
  201. package/dist/components/widget/TradeParameters/state/enabledExchanges/useDisabledDexes.js.map +1 -1
  202. package/dist/components/widget/TradeParameters/state/slippageParamAtom.js.map +1 -1
  203. package/dist/components/widget/TradeParameters/state/tradePreferencesAtom.js.map +1 -1
  204. package/dist/components/widget/TradeParameters/useTempTradeParameters.js.map +1 -1
  205. package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.js.map +1 -1
  206. package/dist/components/widget/TransactionDetails/LimitOrderDetails/TransactionDetails.js.map +1 -1
  207. package/dist/components/widget/TransactionDetails/LimitOrderDetails/utils.js.map +1 -1
  208. package/dist/components/widget/TransactionDetails/TransactionListItem.js.map +1 -1
  209. package/dist/components/widget/TransactionDetails/utils.js.map +1 -1
  210. package/dist/components/widget/Twap/CustomDurationDrawer.js.map +1 -1
  211. package/dist/components/widget/Twap/OrderDuration.js.map +1 -1
  212. package/dist/components/widget/Twap/OrderSplit.js.map +1 -1
  213. package/dist/components/widget/Twap/RateProtection.js.map +1 -1
  214. package/dist/components/widget/Twap/TwapDetailWithTooltip.js.map +1 -1
  215. package/dist/components/widget/Warning/InsufficientBalanceMessage.js.map +1 -1
  216. package/dist/components/widget/Warning/Warning.js.map +1 -1
  217. package/dist/components/widget/Warning/WarningMessage.js.map +1 -1
  218. package/dist/components/widget/WrapEth/WrapEthContent.js.map +1 -1
  219. package/dist/components/widget/WrapEth/WrapEthDrawerButton.js.map +1 -1
  220. package/dist/components/widget/WrapEth/hooks/useSubmitDepositTxMutation.js.map +1 -1
  221. package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js.map +1 -1
  222. package/dist/components/widget/YouGet/YouGet.js.map +1 -1
  223. package/dist/core/ConnectWalletDrawerButton.js.map +1 -1
  224. package/dist/core/LimitOrderButton.js.map +1 -1
  225. package/dist/core/LimitOrderDetails.js.map +1 -1
  226. package/dist/core/OtcOrderButton.js.map +1 -1
  227. package/dist/core/OtcOrderDetails.js.map +1 -1
  228. package/dist/core/Toaster.js.map +1 -1
  229. package/dist/core/TradeFlowScreenButton.js.map +1 -1
  230. package/dist/core/TwapDetails.js.map +1 -1
  231. package/dist/core/Updaters.js.map +1 -1
  232. package/dist/core/Warnings.js.map +1 -1
  233. package/dist/core/across/isCrosschainPossible.js.map +1 -1
  234. package/dist/core/across/utils.js.map +1 -1
  235. package/dist/core/button/hooks/useWidgetButtonExtraProps.js.map +1 -1
  236. package/dist/core/index.js.map +1 -1
  237. package/dist/core/inputs/hooks/useMaxButtonProps.js.map +1 -1
  238. package/dist/core/inputs/hooks/useTokenFromInputProps.js.map +1 -1
  239. package/dist/core/inputs/hooks/useTokenSwitcherProps.js.map +1 -1
  240. package/dist/core/inputs/hooks/useTokenToInputProps.js.map +1 -1
  241. package/dist/core/inputs/hooks/useWarningMessage.js.map +1 -1
  242. package/dist/core/inputs/hooks/utils.js.map +1 -1
  243. package/dist/core/inputs/state/common.js.map +1 -1
  244. package/dist/core/inputs/state/inputAmountAtom.js.map +1 -1
  245. package/dist/core/inputs/state/selectedTokenActionsAtom.js.map +1 -1
  246. package/dist/core/inputs/state/selectedTokenAtom.js.map +1 -1
  247. package/dist/core/inputs/state/setTokenByAddressAtom.js.map +1 -1
  248. package/dist/core/inputs/state/subscriptions.js.map +1 -1
  249. package/dist/core/limit/state/deadlineAtom.js.map +1 -1
  250. package/dist/core/limit/state/isCrosschainAtom.js.map +1 -1
  251. package/dist/core/limit/state/limitInputActionsAtom.js.map +1 -1
  252. package/dist/core/limit/state/limitInputAmountAtom.js.map +1 -1
  253. package/dist/core/limit/state/receiverAddressAtom.js.map +1 -1
  254. package/dist/core/limit/state/selectedTokenActionsAtom.js.map +1 -1
  255. package/dist/core/limit/state/selectedTokenAtom.js.map +1 -1
  256. package/dist/core/limit/state/utils.js.map +1 -1
  257. package/dist/core/limit/useLimitDetailsListProps.js.map +1 -1
  258. package/dist/core/limit/useLimitNotSupported.js.map +1 -1
  259. package/dist/core/limit/useLimitPriceDifference.js.map +1 -1
  260. package/dist/core/limit/useLimitPriceInputProps.js.map +1 -1
  261. package/dist/core/limit/useLimitRate.js.map +1 -1
  262. package/dist/core/limit/useLimitTokenFromInputProps.js.map +1 -1
  263. package/dist/core/limit/useLimitTokenSwitcherProps.js.map +1 -1
  264. package/dist/core/limit/useLimitTokenToInputProps.js.map +1 -1
  265. package/dist/core/logger.js.map +1 -1
  266. package/dist/core/otc/state/deadlineAtom.js.map +1 -1
  267. package/dist/core/otc/state/otcInputActionsAtom.js.map +1 -1
  268. package/dist/core/otc/state/otcInputAmountAtom.js.map +1 -1
  269. package/dist/core/otc/state/receiverAddressAtom.js.map +1 -1
  270. package/dist/core/otc/state/selectedTokenActionsAtom.js.map +1 -1
  271. package/dist/core/otc/state/selectedTokenAtom.js.map +1 -1
  272. package/dist/core/otc/useOtcDetailsListProps.js.map +1 -1
  273. package/dist/core/otc/useOtcNotSupported.js.map +1 -1
  274. package/dist/core/otc/useOtcPriceDifference.js.map +1 -1
  275. package/dist/core/otc/useOtcPriceInputProps.js.map +1 -1
  276. package/dist/core/otc/useOtcTokenFromInputProps.js.map +1 -1
  277. package/dist/core/otc/useOtcTokenSwitcherProps.js.map +1 -1
  278. package/dist/core/otc/useOtcTokenToInputProps.js.map +1 -1
  279. package/dist/core/screen/hooks/useInitialValue.js.map +1 -1
  280. package/dist/core/screen/hooks/useOnClickOutside.js.map +1 -1
  281. package/dist/core/screen/hooks/useResizeObserver.js.map +1 -1
  282. package/dist/core/screen/hooks/useRunOnMount.js.map +1 -1
  283. package/dist/core/screen/state/hooks/useScreen.js.map +1 -1
  284. package/dist/core/screen/state/hooks/useScreenValue.js.map +1 -1
  285. package/dist/core/screen/state/hooks/useSetScreen.js.map +1 -1
  286. package/dist/core/screen/state/screenAtom.js.map +1 -1
  287. package/dist/core/state/apiConfigAtom.js.map +1 -1
  288. package/dist/core/state/chainToAtom.js.map +1 -1
  289. package/dist/core/state/configActionsAtom.js.map +1 -1
  290. package/dist/core/state/configEffectAtom.js.map +1 -1
  291. package/dist/core/state/containerAtom.js.map +1 -1
  292. package/dist/core/state/enabledChainsAtom.js.map +1 -1
  293. package/dist/core/state/enabledTradeModesAtom.js.map +1 -1
  294. package/dist/core/state/externalProviderAtom.js.map +1 -1
  295. package/dist/core/state/getSelectableDestChains.js.map +1 -1
  296. package/dist/core/state/isCrosschainAtom.js.map +1 -1
  297. package/dist/core/state/tradeModeAtom.js.map +1 -1
  298. package/dist/core/state/validatedPartnerConfigAtom.js.map +1 -1
  299. package/dist/core/state/validatedReferrerConfigAtom.js.map +1 -1
  300. package/dist/core/state/widgetEventsAtom.js.map +1 -1
  301. package/dist/core/subscriptions.js.map +1 -1
  302. package/dist/core/swapDetails/fees.js.map +1 -1
  303. package/dist/core/swapDetails/maxToPay.js.map +1 -1
  304. package/dist/core/swapDetails/orderRouting.js.map +1 -1
  305. package/dist/core/swapDetails/priceImpact.js.map +1 -1
  306. package/dist/core/swapDetails/useSwapDetailsListProps.js.map +1 -1
  307. package/dist/core/swapDetails/youGet.js.map +1 -1
  308. package/dist/core/twap/state/isCrosschainAtom.js.map +1 -1
  309. package/dist/core/twap/state/selectedTokenActionsAtom.js.map +1 -1
  310. package/dist/core/twap/state/twapInputAmountAtom.js.map +1 -1
  311. package/dist/core/twap/state/twapParamsAtom.js.map +1 -1
  312. package/dist/core/twap/state/twapSideAtom.js.map +1 -1
  313. package/dist/core/twap/twapDetails/minimumReceiveable.js.map +1 -1
  314. package/dist/core/twap/useTwapDetailsListProps.js.map +1 -1
  315. package/dist/core/twap/useTwapTokenFromInputProps.js.map +1 -1
  316. package/dist/core/twap/useTwapTokenSwitcherProps.js.map +1 -1
  317. package/dist/core/twap/useTwapTokenToInputProps.js.map +1 -1
  318. package/dist/events/effects/formInput.js.map +1 -1
  319. package/dist/events/effects/price.js.map +1 -1
  320. package/dist/events/effects/swapMode.js.map +1 -1
  321. package/dist/events/getters/limit.js.map +1 -1
  322. package/dist/events/getters/otc.js.map +1 -1
  323. package/dist/events/getters/settings.js.map +1 -1
  324. package/dist/events/getters/swap.js.map +1 -1
  325. package/dist/events/getters/twap.js.map +1 -1
  326. package/dist/events/getters/widgetState.js.map +1 -1
  327. package/dist/events/hooks/useActivateEffects.js.map +1 -1
  328. package/dist/events/hooks/useOnPriceUpdates.js.map +1 -1
  329. package/dist/events/hooks/useOnWalletConnect.js.map +1 -1
  330. package/dist/external/.pnpm/vaul@1.1.2_patch_hash_07b36ba5def3805dde9d543a880ba9e4caf55e5eb58e544faaa2c186846bf3c1__6feb48fe37bd41e9af5c8e81d5a6f4e1/external/vaul/dist/index.js.map +1 -1
  331. package/dist/hooks/batch/useAwaitCalls.js.map +1 -1
  332. package/dist/hooks/batch/useBatchWithApproveTxs.js.map +1 -1
  333. package/dist/hooks/batch/useCanBatchTxs.js.map +1 -1
  334. package/dist/hooks/batch/useSendBatchTx.js.map +1 -1
  335. package/dist/hooks/connectors/useIsConnectedSafe.js.map +1 -1
  336. package/dist/hooks/connectors/useIsGnosisSafeConnector.js.map +1 -1
  337. package/dist/hooks/connectors/useIsSafeThroughWalletConnect.js.map +1 -1
  338. package/dist/hooks/gas/useGasPrices.js.map +1 -1
  339. package/dist/hooks/gas/utils.js.map +1 -1
  340. package/dist/hooks/getCode/query.js.map +1 -1
  341. package/dist/hooks/getCode/useIsAccountContract.js.map +1 -1
  342. package/dist/hooks/getCode/useIsContractAtAddress.js.map +1 -1
  343. package/dist/hooks/otc/mutations/useCancelLimitOrder.js.map +1 -1
  344. package/dist/hooks/otc/mutations/useCreateLimitOrder.js.map +1 -1
  345. package/dist/hooks/otc/mutations/useFillOrder.js.map +1 -1
  346. package/dist/hooks/otc/mutations/utils.js.map +1 -1
  347. package/dist/hooks/otc/queries/useLimitOrderRequiredBalance.js.map +1 -1
  348. package/dist/hooks/otc/queries/useLimitOrders.js.map +1 -1
  349. package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js.map +1 -1
  350. package/dist/hooks/otc/tradeFlow/useFillOtcOrderStep.js.map +1 -1
  351. package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.js.map +1 -1
  352. package/dist/hooks/otc/tradeFlow/useOtcOrderStep.js.map +1 -1
  353. package/dist/hooks/permit/hooks/common/useSignArbitraryTypedData.js.map +1 -1
  354. package/dist/hooks/permit/hooks/common/useSignPermit.js.map +1 -1
  355. package/dist/hooks/permit/hooks/common/useWalletSupportsPermit.js.map +1 -1
  356. package/dist/hooks/permit/hooks/permit1/useGetPermitInfo.js.map +1 -1
  357. package/dist/hooks/permit/hooks/permit1/useGetSafePermitInfo.js.map +1 -1
  358. package/dist/hooks/permit/hooks/permit1/usePermit1Nonce.js.map +1 -1
  359. package/dist/hooks/permit/hooks/permit1/useSignTokenPermit1.js.map +1 -1
  360. package/dist/hooks/permit/hooks/permit1/useTokenFromPermit1Nonce.js.map +1 -1
  361. package/dist/hooks/permit/hooks/permit1/useTokenFromPermitInfo.js.map +1 -1
  362. package/dist/hooks/permit/hooks/permit1/useTryToSignPermit1.js.map +1 -1
  363. package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.js.map +1 -1
  364. package/dist/hooks/permit/hooks/permit2/usePermit2TransferFromNonce.js.map +1 -1
  365. package/dist/hooks/permit/hooks/permit2/useSignTokenPermit2TransferFrom.js.map +1 -1
  366. package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2Allowance.js.map +1 -1
  367. package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2TransferFromNonce.js.map +1 -1
  368. package/dist/hooks/permit/utils/constants.js.map +1 -1
  369. package/dist/hooks/permit/utils/construct.js.map +1 -1
  370. package/dist/hooks/permit/utils/deadlines.js.map +1 -1
  371. package/dist/hooks/permit/utils/detect.js.map +1 -1
  372. package/dist/hooks/permit/utils/domainSeparator.js.map +1 -1
  373. package/dist/hooks/permit/utils/encodeArgs.js.map +1 -1
  374. package/dist/hooks/permit/utils/trySignPermit1.js.map +1 -1
  375. package/dist/hooks/permit/utils/utils.js.map +1 -1
  376. package/dist/hooks/sdk/useGetContracts.js.map +1 -1
  377. package/dist/hooks/sdk/useSpender.js.map +1 -1
  378. package/dist/hooks/swap/prices/delta/bridge/useSelectedBridgePrice.js.map +1 -1
  379. package/dist/hooks/swap/prices/delta/bridge/utils.js.map +1 -1
  380. package/dist/hooks/swap/prices/delta/mutations/twap/useCreatePreSignableTwapOrder.js.map +1 -1
  381. package/dist/hooks/swap/prices/delta/mutations/twap/useCreateTwapOrder.js.map +1 -1
  382. package/dist/hooks/swap/prices/delta/mutations/twap/useDepositAndSubmitTwapOrder.js.map +1 -1
  383. package/dist/hooks/swap/prices/delta/mutations/twap/usePostTwapOrder.js.map +1 -1
  384. package/dist/hooks/swap/prices/delta/mutations/twap/usePreSignAndSubmitTwapOrder.js.map +1 -1
  385. package/dist/hooks/swap/prices/delta/mutations/twap/useTwapOrderToPost.js.map +1 -1
  386. package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrders.js.map +1 -1
  387. package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrdersEvents.js.map +1 -1
  388. package/dist/hooks/swap/prices/delta/mutations/useCancelOrWithdrawAndCancelDeltaOrder.js.map +1 -1
  389. package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.js.map +1 -1
  390. package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.js.map +1 -1
  391. package/dist/hooks/swap/prices/delta/mutations/useDeltaOrderToPost.js.map +1 -1
  392. package/dist/hooks/swap/prices/delta/mutations/useIsDeltaOrderCancellable.js.map +1 -1
  393. package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.js.map +1 -1
  394. package/dist/hooks/swap/prices/delta/mutations/useSendDepositPreSignDeltaOrderTx.js.map +1 -1
  395. package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.js.map +1 -1
  396. package/dist/hooks/swap/prices/delta/mutations/utils.js.map +1 -1
  397. package/dist/hooks/swap/prices/delta/orders/unposted/effect.js.map +1 -1
  398. package/dist/hooks/swap/prices/delta/orders/unposted/index.js.map +1 -1
  399. package/dist/hooks/swap/prices/delta/orders/unposted/storage.js.map +1 -1
  400. package/dist/hooks/swap/prices/delta/orders/unposted/utils.d.ts +8 -11
  401. package/dist/hooks/swap/prices/delta/orders/unposted/utils.d.ts.map +1 -1
  402. package/dist/hooks/swap/prices/delta/orders/unposted/utils.js.map +1 -1
  403. package/dist/hooks/swap/prices/delta/orders/utils.js.map +1 -1
  404. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/bridgeInfosLoadedAtom.js.map +1 -1
  405. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/common.js.map +1 -1
  406. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/getBridgeInfoQueryData.js.map +1 -1
  407. package/dist/hooks/swap/prices/delta/queries/bridgeInfo/useBridgeInfo.js.map +1 -1
  408. package/dist/hooks/swap/prices/delta/queries/bridgeProtocols/useBridgeProtocols.js.map +1 -1
  409. package/dist/hooks/swap/prices/delta/queries/errors.js.map +1 -1
  410. package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.js.map +1 -1
  411. package/dist/hooks/swap/prices/delta/queries/useDeltaOrderPreConditions.js.map +1 -1
  412. package/dist/hooks/swap/prices/delta/queries/useDeltaOrders.js.map +1 -1
  413. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts +1 -1
  414. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
  415. package/dist/hooks/swap/prices/delta/queries/useIsTokenSupportedInDelta.js.map +1 -1
  416. package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js.map +1 -1
  417. package/dist/hooks/swap/prices/factory.js.map +1 -1
  418. package/dist/hooks/swap/prices/market/mutations/useBuildTx.js.map +1 -1
  419. package/dist/hooks/swap/prices/market/mutations/useSendMarketSwapTx.js.map +1 -1
  420. package/dist/hooks/swap/prices/market/queries/dexesList/useDexesList.js.map +1 -1
  421. package/dist/hooks/swap/prices/market/queries/errors.js.map +1 -1
  422. package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js.map +1 -1
  423. package/dist/hooks/swap/prices/market/queries/useSpenderAndContracts.js.map +1 -1
  424. package/dist/hooks/swap/prices/usePricesParams.js.map +1 -1
  425. package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
  426. package/dist/hooks/swap/prices/useTokenInputsFromPrice.js.map +1 -1
  427. package/dist/hooks/swap/prices/useTokenInputsFromTwapPrice.js.map +1 -1
  428. package/dist/hooks/swap/prices/useTwapPrices.js.map +1 -1
  429. package/dist/hooks/swap/tradeFlow/common/errors.js.map +1 -1
  430. package/dist/hooks/swap/tradeFlow/common/factory/depositAndSubmitOrderFactory.js.map +1 -1
  431. package/dist/hooks/swap/tradeFlow/common/factory/preSignAndSubmitOrderFactory.js.map +1 -1
  432. package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js.map +1 -1
  433. package/dist/hooks/swap/tradeFlow/common/useApproveOrPermitEvents.js.map +1 -1
  434. package/dist/hooks/swap/tradeFlow/common/useBatchWrapAndApprove.js.map +1 -1
  435. package/dist/hooks/swap/tradeFlow/common/useConstructGasParams.js.map +1 -1
  436. package/dist/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.js.map +1 -1
  437. package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.js.map +1 -1
  438. package/dist/hooks/swap/tradeFlow/common/useRequiredAllowanceForOrders.js.map +1 -1
  439. package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.js.map +1 -1
  440. package/dist/hooks/swap/tradeFlow/common/utils.js.map +1 -1
  441. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
  442. package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js.map +1 -1
  443. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js.map +1 -1
  444. package/dist/hooks/swap/tradeFlow/useLimitOrderStep.js.map +1 -1
  445. package/dist/hooks/swap/tradeFlow/useMarketFlow.js.map +1 -1
  446. package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js.map +1 -1
  447. package/dist/hooks/swap/tradeFlow/useTwapFlow.js.map +1 -1
  448. package/dist/hooks/swap/tradeFlow/useTwapSwapStep.js.map +1 -1
  449. package/dist/hooks/tokens/allowance/useGenericTokenAllowance.js.map +1 -1
  450. package/dist/hooks/tokens/allowance/useTokenAllowance.js.map +1 -1
  451. package/dist/hooks/tokens/allowance/utils.js.map +1 -1
  452. package/dist/hooks/tokens/balances/queries.js.map +1 -1
  453. package/dist/hooks/tokens/balances/useAttachTokenBalanceMultichain.js.map +1 -1
  454. package/dist/hooks/tokens/balances/useInvalidateTokenData.js.map +1 -1
  455. package/dist/hooks/tokens/balances/useIsInsufficientTokenBalance.js.map +1 -1
  456. package/dist/hooks/tokens/balances/useIsLimitOrderInsufficientBalance.js.map +1 -1
  457. package/dist/hooks/tokens/balances/useMultichainTokenBalances.js.map +1 -1
  458. package/dist/hooks/tokens/balances/useSelectedTokenBalances.js.map +1 -1
  459. package/dist/hooks/tokens/balances/useTokenBalance.js.map +1 -1
  460. package/dist/hooks/tokens/data/useCombineTokensWithFetched.js.map +1 -1
  461. package/dist/hooks/tokens/data/useFetchTokens.js.map +1 -1
  462. package/dist/hooks/tokens/data/useMultichainTokensData.js.map +1 -1
  463. package/dist/hooks/tokens/prices/queries.js.map +1 -1
  464. package/dist/hooks/tokens/prices/useMultichainTokenPrices.js.map +1 -1
  465. package/dist/hooks/tokens/prices/useTokenPrices.js.map +1 -1
  466. package/dist/hooks/tokens/useAllTokensWithFilter.js.map +1 -1
  467. package/dist/hooks/tokens/useNativeToken.js.map +1 -1
  468. package/dist/hooks/tokens/useTokenTaxFee.js.map +1 -1
  469. package/dist/hooks/tokens/useTokensByAddress.js.map +1 -1
  470. package/dist/hooks/tokens/useTokensFromAcross.js.map +1 -1
  471. package/dist/hooks/txs/mutations/useApprove.js.map +1 -1
  472. package/dist/hooks/txs/mutations/useDepositWeth.js.map +1 -1
  473. package/dist/hooks/txs/mutations/useReplaceTx.js.map +1 -1
  474. package/dist/hooks/txs/mutations/useSendTx.js.map +1 -1
  475. package/dist/hooks/txs/queries/useAccountNonce.js.map +1 -1
  476. package/dist/hooks/txs/queries/useAwaitTx.js.map +1 -1
  477. package/dist/hooks/txs/queries/useTxFees.js.map +1 -1
  478. package/dist/hooks/txs/queries/useTxHistory.js.map +1 -1
  479. package/dist/hooks/txs/queries/useTxResponse.js.map +1 -1
  480. package/dist/hooks/txs/queries/useWalletCanReplaceTx.js.map +1 -1
  481. package/dist/hooks/txs/queries/utils.js.map +1 -1
  482. package/dist/hooks/useAvailableCrosses.js.map +1 -1
  483. package/dist/hooks/useBreakpoints.js.map +1 -1
  484. package/dist/hooks/useBridgeInfo.js.map +1 -1
  485. package/dist/hooks/useBridgeProtocols.js.map +1 -1
  486. package/dist/hooks/useCachedQueryError.js.map +1 -1
  487. package/dist/hooks/useChainMatches.js.map +1 -1
  488. package/dist/hooks/useClickOutside.js.map +1 -1
  489. package/dist/hooks/useCurrentChain.js.map +1 -1
  490. package/dist/hooks/useDebouncedInputState.js.map +1 -1
  491. package/dist/hooks/useEIP1559Enabled.js.map +1 -1
  492. package/dist/hooks/useGlobalDeltaEnabled.js.map +1 -1
  493. package/dist/hooks/useIsCrosschainPossible.js.map +1 -1
  494. package/dist/hooks/useMinViemClient.js.map +1 -1
  495. package/dist/hooks/useSDK.js.map +1 -1
  496. package/dist/hooks/useSelectableDestChains.js.map +1 -1
  497. package/dist/hooks/useSlippage.js.map +1 -1
  498. package/dist/hooks/useSwitchChainWithGuard.js.map +1 -1
  499. package/dist/lib/constants/urls.js.map +1 -1
  500. package/dist/lib/ipfs.js.map +1 -1
  501. package/dist/lib/queryClient.js.map +1 -1
  502. package/dist/lib/tradeMode.js.map +1 -1
  503. package/dist/lib/utils/approval.js.map +1 -1
  504. package/dist/lib/utils/atomWithCompare.js.map +1 -1
  505. package/dist/lib/utils/copyToClipboard.js.map +1 -1
  506. package/dist/lib/utils/delta.js.map +1 -1
  507. package/dist/lib/utils/dexes.js.map +1 -1
  508. package/dist/lib/utils/explorer.js.map +1 -1
  509. package/dist/lib/utils/fee.js.map +1 -1
  510. package/dist/lib/utils/formatFiatPrice.js.map +1 -1
  511. package/dist/lib/utils/formatPercent.js.map +1 -1
  512. package/dist/lib/utils/formatTokenBalance.js.map +1 -1
  513. package/dist/lib/utils/index.js.map +1 -1
  514. package/dist/lib/utils/logger.js.map +1 -1
  515. package/dist/lib/utils/metabase.js.map +1 -1
  516. package/dist/lib/utils/mobile.js.map +1 -1
  517. package/dist/lib/utils/price.js.map +1 -1
  518. package/dist/lib/utils/priceImpact.js.map +1 -1
  519. package/dist/lib/utils/providerErrors.js.map +1 -1
  520. package/dist/lib/utils/rate.js.map +1 -1
  521. package/dist/lib/utils/removeZeroDecimals.js.map +1 -1
  522. package/dist/lib/utils/savedAmountUSD.js.map +1 -1
  523. package/dist/lib/utils/scaleFactor.js.map +1 -1
  524. package/dist/lib/utils/slippage.js.map +1 -1
  525. package/dist/lib/utils/time.js.map +1 -1
  526. package/dist/lib/utils/toDecimal.js.map +1 -1
  527. package/dist/lib/utils/toasts.js.map +1 -1
  528. package/dist/lib/utils/tradeFlow.js.map +1 -1
  529. package/dist/lib/utils/transactionHandlers.js.map +1 -1
  530. package/dist/lib/utils/tuple.js.map +1 -1
  531. package/dist/lib/utils/twap.js.map +1 -1
  532. package/dist/lib/utils/useDateNow.js.map +1 -1
  533. package/dist/lib/web3/wagmi/config.js.map +1 -1
  534. package/dist/lib/web3/wagmi/external.js.map +1 -1
  535. package/dist/lib/web3/wagmi/isInsideSafeIframe.js.map +1 -1
  536. package/dist/lib/web3/wagmi/switchChain.js.map +1 -1
  537. package/dist/lib/web3/wagmi/utils.js.map +1 -1
  538. package/dist/tokens/blacklist.js.map +1 -1
  539. package/dist/tokens/constructor.js.map +1 -1
  540. package/dist/tokens/defaultTokens.js.map +1 -1
  541. package/dist/tokens/hooks.js.map +1 -1
  542. package/dist/tokens/lists/constants.js.map +1 -1
  543. package/dist/tokens/lists/download.js.map +1 -1
  544. package/dist/tokens/lists/state/effects.js.map +1 -1
  545. package/dist/tokens/lists/state/tokenListsActionsAtom.js.map +1 -1
  546. package/dist/tokens/lists/state/tokenListsStateAtom.js.map +1 -1
  547. package/dist/tokens/overrides.js.map +1 -1
  548. package/dist/tokens/queries.js.map +1 -1
  549. package/dist/tokens/stabeCoins/hooks.js.map +1 -1
  550. package/dist/tokens/stabeCoins/index.js.map +1 -1
  551. package/dist/tokens/state/addImportedTokenAtom.js.map +1 -1
  552. package/dist/tokens/state/allTokensByChainAtom.js.map +1 -1
  553. package/dist/tokens/state/constructTokens.js.map +1 -1
  554. package/dist/tokens/state/fromListsAtom.js.map +1 -1
  555. package/dist/tokens/utils/areTokensSame.js.map +1 -1
  556. package/dist/tokens/utils/brand.js.map +1 -1
  557. package/dist/tokens/utils/eth.js.map +1 -1
  558. package/dist/tokens/utils/filtering.js.map +1 -1
  559. package/dist/tokens/utils/sets.js.map +1 -1
  560. package/dist/tokens/utils/sorting.js.map +1 -1
  561. package/dist/tokens/utils/transferAmountsFromReceipt.js.map +1 -1
  562. package/dist/transactions/hash.js.map +1 -1
  563. package/dist/transactions/queries/ensureCallsStatus.js.map +1 -1
  564. package/dist/transactions/queries/ensureEstimateFeesPerGas.js.map +1 -1
  565. package/dist/transactions/queries/ensureTxReceipt.js.map +1 -1
  566. package/dist/transactions/queries/ensureTxResponse.js.map +1 -1
  567. package/dist/transactions/state/effects/finalize.js.map +1 -1
  568. package/dist/transactions/state/hooks/useActivateEffects.js.map +1 -1
  569. package/dist/transactions/state/hooks/useMarkTxAsDropped.js.map +1 -1
  570. package/dist/transactions/state/hooks/useTransactions.js.map +1 -1
  571. package/dist/transactions/state/transactionsActionAtom.js.map +1 -1
  572. package/dist/transactions/state/transactionsAtom.js.map +1 -1
  573. package/dist/transactions/status.js.map +1 -1
  574. package/dist/transactions/utils.js.map +1 -1
  575. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"widgetEventsAtom.js","names":["atom","useAtomValue","useSetAtom","WidgetEventCallbacks","WidgetEventCallbacksMin","useLayoutEffect","getWidgetState","assert","TokenFormState","Callbacks","Required","widgetEventsAtom","get","set","callbacks","onSwap","payload","widgetState","swapFormState","formState","swap","isFullTokenFormState","Input","Parameters","NonNullable","payloadWithState","event","params","state","onTwapOrder","twapFormState","twap","onLimitOrder","limitOrderFormState","limit","onOTCOrder","otcOrderFormState","otc","onAllowToken","onWrapETH","onSettingsChange","onConnectWallet","_onConnectWalletClick","onConnectWalletClick","undefined","onCancelOrder","onCancelTx","onFillOTCOrder","onFormInputChange","_onPriceChange","onPriceChange","useWidgetEvents","useWidgetEventsSetter","$","_c","setWidgetEvents","t0","t1","t2","t3","t4","t5","t6","t7","t8","t9","t10","t11","t12","t13","t14","t15","T","tokenTo","receiverAddress","destChainId","connectedAccount"],"sources":["../../../src/core/state/widgetEventsAtom.ts"],"sourcesContent":["import { atom } from \"jotai\";\nimport { useAtomValue, useSetAtom } from \"@/core/store\";\nimport type {\n WidgetEventCallbacks,\n WidgetEventCallbacksMin,\n} from \"@/events/types\";\nimport { useLayoutEffect } from \"react\";\nimport { getWidgetState } from \"@/events/getters/widgetState\";\nimport { assert } from \"ts-essentials\";\nimport type { TokenFormState } from \"@/events/types/common\";\n\ntype Callbacks = Required<WidgetEventCallbacksMin>;\n\nexport const widgetEventsAtom = atom<\n WidgetEventCallbacksMin,\n [WidgetEventCallbacks],\n void\n>({}, (get, set, callbacks) => {\n const onSwap: Callbacks[\"onSwap\"] = (payload) => {\n if (!callbacks.onSwap) return;\n const widgetState = getWidgetState(get);\n\n const swapFormState = widgetState.formState.swap;\n assert(\n isFullTokenFormState(swapFormState),\n \"Swap form state is required to perform swap\"\n );\n\n type Input = Parameters<NonNullable<WidgetEventCallbacks[\"onSwap\"]>>[0];\n\n // attaching extra parameters to the event payload\n const payloadWithState = {\n event: {\n ...payload.event,\n params: {\n ...payload.event.params,\n ...swapFormState,\n },\n },\n state: widgetState,\n } as Input;\n\n callbacks.onSwap(payloadWithState);\n };\n\n const onTwapOrder: Callbacks[\"onTwapOrder\"] = (payload) => {\n if (!callbacks.onTwapOrder) return;\n const widgetState = getWidgetState(get);\n\n const twapFormState = widgetState.formState.twap;\n assert(\n isFullTokenFormState(twapFormState),\n \"Twap form state is required to perform twap order\"\n );\n\n type Input = Parameters<\n NonNullable<WidgetEventCallbacks[\"onTwapOrder\"]>\n >[0];\n\n const payloadWithState = {\n event: {\n ...payload.event,\n params: {\n ...payload.event.params,\n ...twapFormState,\n },\n },\n state: widgetState,\n } as Input;\n\n callbacks.onTwapOrder(payloadWithState);\n };\n\n const onLimitOrder: Callbacks[\"onLimitOrder\"] = (payload) => {\n if (!callbacks.onLimitOrder) return;\n const widgetState = getWidgetState(get);\n const limitOrderFormState = widgetState.formState.limit;\n assert(\n isFullTokenFormState(limitOrderFormState),\n \"Limit order form state is required to create a limit order\"\n );\n\n type Input = Parameters<\n NonNullable<WidgetEventCallbacks[\"onLimitOrder\"]>\n >[0];\n\n const payloadWithState = {\n event: {\n ...payload.event,\n params: {\n ...payload.event.params,\n ...limitOrderFormState,\n },\n },\n state: widgetState,\n } as Input;\n callbacks.onLimitOrder(payloadWithState);\n };\n\n const onOTCOrder: Callbacks[\"onOTCOrder\"] = (payload) => {\n if (!callbacks.onOTCOrder) return;\n const widgetState = getWidgetState(get);\n const otcOrderFormState = widgetState.formState.otc;\n assert(\n isFullTokenFormState(otcOrderFormState),\n \"OTC order form state is required to create an OTC order\"\n );\n type Input = Parameters<NonNullable<WidgetEventCallbacks[\"onOTCOrder\"]>>[0];\n const payloadWithState = {\n event: {\n ...payload.event,\n params: {\n ...payload.event.params,\n ...otcOrderFormState,\n },\n },\n state: widgetState,\n } as Input;\n callbacks.onOTCOrder(payloadWithState);\n };\n\n const onAllowToken: Callbacks[\"onAllowToken\"] = (payload) => {\n if (!callbacks.onAllowToken) return;\n const widgetState = getWidgetState(get);\n\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n\n callbacks.onAllowToken(payloadWithState);\n };\n\n const onWrapETH: Callbacks[\"onWrapETH\"] = (payload) => {\n if (!callbacks.onWrapETH) return;\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n callbacks.onWrapETH(payloadWithState);\n };\n\n const onSettingsChange: Callbacks[\"onSettingsChange\"] = (payload) => {\n if (!callbacks.onSettingsChange) return;\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n callbacks.onSettingsChange(payloadWithState);\n };\n\n const onConnectWallet: Callbacks[\"onConnectWallet\"] = (payload) => {\n if (!callbacks.onConnectWallet) return;\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n callbacks.onConnectWallet(payloadWithState);\n };\n\n const _onConnectWalletClick = callbacks.onConnectWalletClick;\n const onConnectWalletClick: WidgetEventCallbacksMin[\"onConnectWalletClick\"] =\n _onConnectWalletClick\n ? (payload) => {\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n _onConnectWalletClick(payloadWithState);\n }\n : undefined;\n\n const onCancelOrder: Callbacks[\"onCancelOrder\"] = (payload) => {\n if (!callbacks.onCancelOrder) return;\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n callbacks.onCancelOrder(payloadWithState);\n };\n\n const onCancelTx: Callbacks[\"onCancelTx\"] = (payload) => {\n if (!callbacks.onCancelTx) return;\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n callbacks.onCancelTx(payloadWithState);\n };\n\n const onFillOTCOrder: Callbacks[\"onFillOTCOrder\"] = (payload) => {\n if (!callbacks.onFillOTCOrder) return;\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n callbacks.onFillOTCOrder(payloadWithState);\n };\n\n const onFormInputChange: Callbacks[\"onFormInputChange\"] = (payload) => {\n if (!callbacks.onFormInputChange) return;\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n callbacks.onFormInputChange(payloadWithState);\n };\n\n const _onPriceChange = callbacks.onPriceChange;\n const onPriceChange: WidgetEventCallbacksMin[\"onPriceChange\"] = _onPriceChange\n ? (payload) => {\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n _onPriceChange(payloadWithState);\n }\n : undefined;\n\n set(widgetEventsAtom, {\n onSwap,\n onTwapOrder,\n onLimitOrder,\n onOTCOrder,\n onAllowToken,\n onWrapETH,\n onSettingsChange,\n onConnectWallet,\n onConnectWalletClick,\n onCancelOrder,\n onCancelTx,\n onFillOTCOrder,\n onFormInputChange,\n onPriceChange,\n });\n});\n\nexport const useWidgetEvents = (): WidgetEventCallbacksMin => {\n return useAtomValue(widgetEventsAtom);\n};\n\nexport const useWidgetEventsSetter = (callbacks?: WidgetEventCallbacks) => {\n const setWidgetEvents = useSetAtom(widgetEventsAtom);\n\n useLayoutEffect(() => {\n setWidgetEvents({\n onConnectWallet: callbacks?.onConnectWallet,\n onConnectWalletClick: callbacks?.onConnectWalletClick,\n onAllowToken: callbacks?.onAllowToken,\n onSwap: callbacks?.onSwap,\n onTwapOrder: callbacks?.onTwapOrder,\n onOTCOrder: callbacks?.onOTCOrder,\n onLimitOrder: callbacks?.onLimitOrder,\n onWrapETH: callbacks?.onWrapETH,\n onSettingsChange: callbacks?.onSettingsChange,\n onCancelOrder: callbacks?.onCancelOrder,\n onCancelTx: callbacks?.onCancelTx,\n onFillOTCOrder: callbacks?.onFillOTCOrder,\n onFormInputChange: callbacks?.onFormInputChange,\n onPriceChange: callbacks?.onPriceChange,\n });\n }, [\n callbacks?.onConnectWallet,\n callbacks?.onConnectWalletClick,\n callbacks?.onAllowToken,\n callbacks?.onSwap,\n callbacks?.onTwapOrder,\n callbacks?.onOTCOrder,\n callbacks?.onLimitOrder,\n callbacks?.onWrapETH,\n callbacks?.onSettingsChange,\n callbacks?.onCancelOrder,\n callbacks?.onCancelTx,\n callbacks?.onFillOTCOrder,\n callbacks?.onFormInputChange,\n callbacks?.onPriceChange,\n setWidgetEvents,\n ]);\n};\n\nfunction isFullTokenFormState<T extends TokenFormState>(\n state: T\n): state is Required<T> {\n return !!(\n state.tokenTo &&\n state.receiverAddress &&\n state.destChainId &&\n state.connectedAccount\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"widgetEventsAtom.js","names":["atom","useAtomValue","useSetAtom","WidgetEventCallbacks","WidgetEventCallbacksMin","useLayoutEffect","getWidgetState","assert","TokenFormState","Callbacks","Required","widgetEventsAtom","get","set","callbacks","onSwap","payload","widgetState","swapFormState","formState","swap","isFullTokenFormState","Input","Parameters","NonNullable","payloadWithState","event","params","state","onTwapOrder","twapFormState","twap","onLimitOrder","limitOrderFormState","limit","onOTCOrder","otcOrderFormState","otc","onAllowToken","onWrapETH","onSettingsChange","onConnectWallet","_onConnectWalletClick","onConnectWalletClick","undefined","onCancelOrder","onCancelTx","onFillOTCOrder","onFormInputChange","_onPriceChange","onPriceChange","useWidgetEvents","useWidgetEventsSetter","$","_c","setWidgetEvents","t0","t1","t2","t3","t4","t5","t6","t7","t8","t9","t10","t11","t12","t13","t14","t15","T","tokenTo","receiverAddress","destChainId","connectedAccount"],"sources":["../../../src/core/state/widgetEventsAtom.ts"],"sourcesContent":["import { atom } from \"jotai\";\nimport { useAtomValue, useSetAtom } from \"@/core/store\";\nimport type {\n WidgetEventCallbacks,\n WidgetEventCallbacksMin,\n} from \"@/events/types\";\nimport { useLayoutEffect } from \"react\";\nimport { getWidgetState } from \"@/events/getters/widgetState\";\nimport { assert } from \"ts-essentials\";\nimport type { TokenFormState } from \"@/events/types/common\";\n\ntype Callbacks = Required<WidgetEventCallbacksMin>;\n\nexport const widgetEventsAtom = atom<\n WidgetEventCallbacksMin,\n [WidgetEventCallbacks],\n void\n>({}, (get, set, callbacks) => {\n const onSwap: Callbacks[\"onSwap\"] = (payload) => {\n if (!callbacks.onSwap) return;\n const widgetState = getWidgetState(get);\n\n const swapFormState = widgetState.formState.swap;\n assert(\n isFullTokenFormState(swapFormState),\n \"Swap form state is required to perform swap\"\n );\n\n type Input = Parameters<NonNullable<WidgetEventCallbacks[\"onSwap\"]>>[0];\n\n // attaching extra parameters to the event payload\n const payloadWithState = {\n event: {\n ...payload.event,\n params: {\n ...payload.event.params,\n ...swapFormState,\n },\n },\n state: widgetState,\n } as Input;\n\n callbacks.onSwap(payloadWithState);\n };\n\n const onTwapOrder: Callbacks[\"onTwapOrder\"] = (payload) => {\n if (!callbacks.onTwapOrder) return;\n const widgetState = getWidgetState(get);\n\n const twapFormState = widgetState.formState.twap;\n assert(\n isFullTokenFormState(twapFormState),\n \"Twap form state is required to perform twap order\"\n );\n\n type Input = Parameters<\n NonNullable<WidgetEventCallbacks[\"onTwapOrder\"]>\n >[0];\n\n const payloadWithState = {\n event: {\n ...payload.event,\n params: {\n ...payload.event.params,\n ...twapFormState,\n },\n },\n state: widgetState,\n } as Input;\n\n callbacks.onTwapOrder(payloadWithState);\n };\n\n const onLimitOrder: Callbacks[\"onLimitOrder\"] = (payload) => {\n if (!callbacks.onLimitOrder) return;\n const widgetState = getWidgetState(get);\n const limitOrderFormState = widgetState.formState.limit;\n assert(\n isFullTokenFormState(limitOrderFormState),\n \"Limit order form state is required to create a limit order\"\n );\n\n type Input = Parameters<\n NonNullable<WidgetEventCallbacks[\"onLimitOrder\"]>\n >[0];\n\n const payloadWithState = {\n event: {\n ...payload.event,\n params: {\n ...payload.event.params,\n ...limitOrderFormState,\n },\n },\n state: widgetState,\n } as Input;\n callbacks.onLimitOrder(payloadWithState);\n };\n\n const onOTCOrder: Callbacks[\"onOTCOrder\"] = (payload) => {\n if (!callbacks.onOTCOrder) return;\n const widgetState = getWidgetState(get);\n const otcOrderFormState = widgetState.formState.otc;\n assert(\n isFullTokenFormState(otcOrderFormState),\n \"OTC order form state is required to create an OTC order\"\n );\n type Input = Parameters<NonNullable<WidgetEventCallbacks[\"onOTCOrder\"]>>[0];\n const payloadWithState = {\n event: {\n ...payload.event,\n params: {\n ...payload.event.params,\n ...otcOrderFormState,\n },\n },\n state: widgetState,\n } as Input;\n callbacks.onOTCOrder(payloadWithState);\n };\n\n const onAllowToken: Callbacks[\"onAllowToken\"] = (payload) => {\n if (!callbacks.onAllowToken) return;\n const widgetState = getWidgetState(get);\n\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n\n callbacks.onAllowToken(payloadWithState);\n };\n\n const onWrapETH: Callbacks[\"onWrapETH\"] = (payload) => {\n if (!callbacks.onWrapETH) return;\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n callbacks.onWrapETH(payloadWithState);\n };\n\n const onSettingsChange: Callbacks[\"onSettingsChange\"] = (payload) => {\n if (!callbacks.onSettingsChange) return;\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n callbacks.onSettingsChange(payloadWithState);\n };\n\n const onConnectWallet: Callbacks[\"onConnectWallet\"] = (payload) => {\n if (!callbacks.onConnectWallet) return;\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n callbacks.onConnectWallet(payloadWithState);\n };\n\n const _onConnectWalletClick = callbacks.onConnectWalletClick;\n const onConnectWalletClick: WidgetEventCallbacksMin[\"onConnectWalletClick\"] =\n _onConnectWalletClick\n ? (payload) => {\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n _onConnectWalletClick(payloadWithState);\n }\n : undefined;\n\n const onCancelOrder: Callbacks[\"onCancelOrder\"] = (payload) => {\n if (!callbacks.onCancelOrder) return;\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n callbacks.onCancelOrder(payloadWithState);\n };\n\n const onCancelTx: Callbacks[\"onCancelTx\"] = (payload) => {\n if (!callbacks.onCancelTx) return;\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n callbacks.onCancelTx(payloadWithState);\n };\n\n const onFillOTCOrder: Callbacks[\"onFillOTCOrder\"] = (payload) => {\n if (!callbacks.onFillOTCOrder) return;\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n callbacks.onFillOTCOrder(payloadWithState);\n };\n\n const onFormInputChange: Callbacks[\"onFormInputChange\"] = (payload) => {\n if (!callbacks.onFormInputChange) return;\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n callbacks.onFormInputChange(payloadWithState);\n };\n\n const _onPriceChange = callbacks.onPriceChange;\n const onPriceChange: WidgetEventCallbacksMin[\"onPriceChange\"] = _onPriceChange\n ? (payload) => {\n const widgetState = getWidgetState(get);\n const payloadWithState = {\n event: payload.event,\n state: widgetState,\n };\n _onPriceChange(payloadWithState);\n }\n : undefined;\n\n set(widgetEventsAtom, {\n onSwap,\n onTwapOrder,\n onLimitOrder,\n onOTCOrder,\n onAllowToken,\n onWrapETH,\n onSettingsChange,\n onConnectWallet,\n onConnectWalletClick,\n onCancelOrder,\n onCancelTx,\n onFillOTCOrder,\n onFormInputChange,\n onPriceChange,\n });\n});\n\nexport const useWidgetEvents = (): WidgetEventCallbacksMin => {\n return useAtomValue(widgetEventsAtom);\n};\n\nexport const useWidgetEventsSetter = (callbacks?: WidgetEventCallbacks) => {\n const setWidgetEvents = useSetAtom(widgetEventsAtom);\n\n useLayoutEffect(() => {\n setWidgetEvents({\n onConnectWallet: callbacks?.onConnectWallet,\n onConnectWalletClick: callbacks?.onConnectWalletClick,\n onAllowToken: callbacks?.onAllowToken,\n onSwap: callbacks?.onSwap,\n onTwapOrder: callbacks?.onTwapOrder,\n onOTCOrder: callbacks?.onOTCOrder,\n onLimitOrder: callbacks?.onLimitOrder,\n onWrapETH: callbacks?.onWrapETH,\n onSettingsChange: callbacks?.onSettingsChange,\n onCancelOrder: callbacks?.onCancelOrder,\n onCancelTx: callbacks?.onCancelTx,\n onFillOTCOrder: callbacks?.onFillOTCOrder,\n onFormInputChange: callbacks?.onFormInputChange,\n onPriceChange: callbacks?.onPriceChange,\n });\n }, [\n callbacks?.onConnectWallet,\n callbacks?.onConnectWalletClick,\n callbacks?.onAllowToken,\n callbacks?.onSwap,\n callbacks?.onTwapOrder,\n callbacks?.onOTCOrder,\n callbacks?.onLimitOrder,\n callbacks?.onWrapETH,\n callbacks?.onSettingsChange,\n callbacks?.onCancelOrder,\n callbacks?.onCancelTx,\n callbacks?.onFillOTCOrder,\n callbacks?.onFormInputChange,\n callbacks?.onPriceChange,\n setWidgetEvents,\n ]);\n};\n\nfunction isFullTokenFormState<T extends TokenFormState>(\n state: T\n): state is Required<T> {\n return !!(\n state.tokenTo &&\n state.receiverAddress &&\n state.destChainId &&\n state.connectedAccount\n );\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"subscriptions.js","names":["subscribeToWalletChainIdChanges","subscribeToAccountChanges","subscribeToPriceOnSwapModeChange","runSubscriptions"],"sources":["../../src/core/subscriptions.ts"],"sourcesContent":["import { subscribeToWalletChainIdChanges } from \"./inputs/state/subscriptions\";\nimport { subscribeToAccountChanges } from \"@/components/widget/ReceiverAddress/state/subscriptions\";\nimport { subscribeToPriceOnSwapModeChange } from \"@/events/effects/swapMode\";\n\nexport function runSubscriptions() {\n subscribeToWalletChainIdChanges();\n subscribeToAccountChanges();\n subscribeToPriceOnSwapModeChange();\n}\n"],"mappings":";;;;AAIA,SAAgBG,IAAmB;AAGjCD,CAFAF,GAAiC,EACjCC,GAA2B,EAC3BC,GAAkC"}
1
+ {"version":3,"file":"subscriptions.js","names":["subscribeToWalletChainIdChanges","subscribeToAccountChanges","subscribeToPriceOnSwapModeChange","runSubscriptions"],"sources":["../../src/core/subscriptions.ts"],"sourcesContent":["import { subscribeToWalletChainIdChanges } from \"./inputs/state/subscriptions\";\nimport { subscribeToAccountChanges } from \"@/components/widget/ReceiverAddress/state/subscriptions\";\nimport { subscribeToPriceOnSwapModeChange } from \"@/events/effects/swapMode\";\n\nexport function runSubscriptions() {\n subscribeToWalletChainIdChanges();\n subscribeToAccountChanges();\n subscribeToPriceOnSwapModeChange();\n}\n"],"mappings":";;;;AAIA,SAAgBG,IAAmB;CAGjCD,AAFAF,GAAiC,EACjCC,GAA2B,EAC3BC,GAAkC"}
@@ -1 +1 @@
1
- {"version":3,"file":"fees.js","names":["DetailWithValue","SwapMode","formatFiatPrice","calculateFeeUSD","DeltaOrMarketPrice","isDeltaPrice","constructSwapFeesDetail","price","isLoading","partnerFee","destUSD","receivedDestUSD","partnerFeeUSD","formattedFee","toNumber","title","value","tooltip","toFixed","constructNetworkFeesDetail","swapMode","React","ReactNode","gasCostUSD","undefined","formattedPrice","Number"],"sources":["../../../src/core/swapDetails/fees.tsx"],"sourcesContent":["import type { DetailWithValue } from \"@/components/widget/Details/types\";\nimport type { SwapMode } from \"@/components/widget/SwapModeSwitcher/state/types\";\nimport { formatFiatPrice } from \"@/lib/utils/formatFiatPrice\";\nimport { calculateFeeUSD } from \"@/lib/utils/fee\";\nimport type { DeltaOrMarketPrice } from \"@/hooks/swap/prices/types\";\nimport { isDeltaPrice } from \"@/hooks/swap/prices/delta/queries/useDeltaPriceQuery\";\n\nexport function constructSwapFeesDetail({\n price,\n isLoading,\n}: {\n price?: DeltaOrMarketPrice;\n isLoading: boolean;\n}): DetailWithValue | undefined {\n // quit early if there are no fees or destUSD in price,\n // because we cannot calculate the fee\n if (!price || price.partnerFee === 0) return;\n\n const destUSD = isDeltaPrice(price) ? price.receivedDestUSD : price.destUSD;\n if (!destUSD) return;\n\n const partnerFeeUSD = calculateFeeUSD(price.partnerFee, destUSD);\n const formattedFee = partnerFeeUSD\n ? formatFiatPrice(partnerFeeUSD.toNumber())\n : null;\n\n return {\n title: \"Swap Fees\",\n value: formattedFee === \"$0.00\" ? \"<$0.01\" : formattedFee,\n isLoading,\n tooltip: `Swap fees are set to ${price.partnerFee.toFixed(2)}% for this trade`,\n };\n}\n\nexport function constructNetworkFeesDetail({\n price,\n swapMode,\n isLoading,\n}: {\n price?: DeltaOrMarketPrice;\n swapMode: SwapMode;\n isLoading: boolean;\n}): DetailWithValue {\n let value: React.ReactNode = null;\n\n if (swapMode === \"delta\") {\n value = <div className=\"text-[#A5D712]\">Gasless</div>;\n } else if (price?.gasCostUSD !== undefined) {\n const formattedPrice = formatFiatPrice(Number(price.gasCostUSD));\n value = formattedPrice === \"$0.00\" ? \"<$0.01\" : formattedPrice;\n }\n\n return {\n title: \"Network Fees\",\n value,\n isLoading,\n tooltip:\n \"Those fees are paid to validators, Velora and its partners don't control this fee\",\n };\n}\n"],"mappings":";;;;;AAOA,SAAgBM,EAAwB,EACtCC,UACAC,gBAI8B;AAG9B,KAAI,CAACD,KAASA,EAAME,eAAe,EAAG;CAEtC,IAAMC,IAAUL,EAAaE,EAAM,GAAGA,EAAMI,kBAAkBJ,EAAMG;AACpE,KAAI,CAACA,EAAS;CAEd,IAAME,IAAgBT,EAAgBI,EAAME,YAAYC,EAAQ,EAC1DG,IAAeD,IACjBV,EAAgBU,EAAcE,UAAU,CAAC,GACzC;AAEJ,QAAO;EACLC,OAAO;EACPC,OAAOH,MAAiB,UAAU,WAAWA;EAC7CL;EACAS,SAAS,wBAAwBV,EAAME,WAAWS,QAAQ,EAAE,CAAA;EAC7D;;AAGH,SAAgBC,EAA2B,EACzCZ,UACAa,aACAZ,gBAKkB;CAClB,IAAIQ,IAAyB;AAE7B,KAAII,MAAa,QACfJ,KAAQ,kBAAC,OAAD;EAAK,WAAU;YAAiB;EAAa,CAAA;UAC5CT,GAAOgB,eAAeC,KAAAA,GAAW;EAC1C,IAAMC,IAAiBvB,EAAgBwB,OAAOnB,EAAMgB,WAAW,CAAC;AAChEP,MAAQS,MAAmB,UAAU,WAAWA;;AAGlD,QAAO;EACLV,OAAO;EACPC;EACAR;EACAS,SACE;EACH"}
1
+ {"version":3,"file":"fees.js","names":["DetailWithValue","SwapMode","formatFiatPrice","calculateFeeUSD","DeltaOrMarketPrice","isDeltaPrice","constructSwapFeesDetail","price","isLoading","partnerFee","destUSD","receivedDestUSD","partnerFeeUSD","formattedFee","toNumber","title","value","tooltip","toFixed","constructNetworkFeesDetail","swapMode","React","ReactNode","gasCostUSD","undefined","formattedPrice","Number"],"sources":["../../../src/core/swapDetails/fees.tsx"],"sourcesContent":["import type { DetailWithValue } from \"@/components/widget/Details/types\";\nimport type { SwapMode } from \"@/components/widget/SwapModeSwitcher/state/types\";\nimport { formatFiatPrice } from \"@/lib/utils/formatFiatPrice\";\nimport { calculateFeeUSD } from \"@/lib/utils/fee\";\nimport type { DeltaOrMarketPrice } from \"@/hooks/swap/prices/types\";\nimport { isDeltaPrice } from \"@/hooks/swap/prices/delta/queries/useDeltaPriceQuery\";\n\nexport function constructSwapFeesDetail({\n price,\n isLoading,\n}: {\n price?: DeltaOrMarketPrice;\n isLoading: boolean;\n}): DetailWithValue | undefined {\n // quit early if there are no fees or destUSD in price,\n // because we cannot calculate the fee\n if (!price || price.partnerFee === 0) return;\n\n const destUSD = isDeltaPrice(price) ? price.receivedDestUSD : price.destUSD;\n if (!destUSD) return;\n\n const partnerFeeUSD = calculateFeeUSD(price.partnerFee, destUSD);\n const formattedFee = partnerFeeUSD\n ? formatFiatPrice(partnerFeeUSD.toNumber())\n : null;\n\n return {\n title: \"Swap Fees\",\n value: formattedFee === \"$0.00\" ? \"<$0.01\" : formattedFee,\n isLoading,\n tooltip: `Swap fees are set to ${price.partnerFee.toFixed(2)}% for this trade`,\n };\n}\n\nexport function constructNetworkFeesDetail({\n price,\n swapMode,\n isLoading,\n}: {\n price?: DeltaOrMarketPrice;\n swapMode: SwapMode;\n isLoading: boolean;\n}): DetailWithValue {\n let value: React.ReactNode = null;\n\n if (swapMode === \"delta\") {\n value = <div className=\"text-[#A5D712]\">Gasless</div>;\n } else if (price?.gasCostUSD !== undefined) {\n const formattedPrice = formatFiatPrice(Number(price.gasCostUSD));\n value = formattedPrice === \"$0.00\" ? \"<$0.01\" : formattedPrice;\n }\n\n return {\n title: \"Network Fees\",\n value,\n isLoading,\n tooltip:\n \"Those fees are paid to validators, Velora and its partners don't control this fee\",\n };\n}\n"],"mappings":";;;;;AAOA,SAAgBM,EAAwB,EACtCC,UACAC,gBAI8B;CAG9B,IAAI,CAACD,KAASA,EAAME,eAAe,GAAG;CAEtC,IAAMC,IAAUL,EAAaE,EAAM,GAAGA,EAAMI,kBAAkBJ,EAAMG;CACpE,IAAI,CAACA,GAAS;CAEd,IAAME,IAAgBT,EAAgBI,EAAME,YAAYC,EAAQ,EAC1DG,IAAeD,IACjBV,EAAgBU,EAAcE,UAAU,CAAC,GACzC;CAEJ,OAAO;EACLC,OAAO;EACPC,OAAOH,MAAiB,UAAU,WAAWA;EAC7CL;EACAS,SAAS,wBAAwBV,EAAME,WAAWS,QAAQ,EAAE,CAAA;EAC7D;;AAGH,SAAgBC,EAA2B,EACzCZ,UACAa,aACAZ,gBAKkB;CAClB,IAAIQ,IAAyB;CAE7B,IAAII,MAAa,SACfJ,IAAQ,kBAAC,OAAD;EAAK,WAAU;YAAiB;EAAa,CAAA;MAChD,IAAIT,GAAOgB,eAAeC,KAAAA,GAAW;EAC1C,IAAMC,IAAiBvB,EAAgBwB,OAAOnB,EAAMgB,WAAW,CAAC;EAChEP,IAAQS,MAAmB,UAAU,WAAWA;;CAGlD,OAAO;EACLV,OAAO;EACPC;EACAR;EACAS,SACE;EACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"maxToPay.js","names":["DetailWithValue","DeltaOrMarketPrice","amountAfterSlippage","toDecimalTrimmed","Token","formatUnits","tooltip","constructMaxToPayDetail","price","slippagePercent","isLoading","tokenFrom","swapSide","title","value","maxSrcAmount","srcAmount","toFixed","maxSrcAmountUnit","BigInt","decimals","formattedMaxSrcAmount","symbol"],"sources":["../../../src/core/swapDetails/maxToPay.tsx"],"sourcesContent":["import type { DetailWithValue } from \"@/components/widget/Details/types\";\nimport type { DeltaOrMarketPrice } from \"@/hooks/swap/prices/types\";\nimport { amountAfterSlippage } from \"@/lib/utils/slippage\";\nimport { toDecimalTrimmed } from \"@/lib/utils/toDecimal\";\nimport type { Token } from \"@/tokens/state/types\";\n\nimport { formatUnits } from \"viem\";\n\nconst tooltip =\n \"Maximum amount of token to pay to get the receiving amount while accounting for potential slippage.\";\n\nexport function constructMaxToPayDetail({\n price,\n slippagePercent,\n isLoading,\n tokenFrom,\n swapSide,\n}: {\n price?: DeltaOrMarketPrice;\n slippagePercent: number;\n isLoading: boolean;\n tokenFrom?: Token;\n swapSide: \"SELL\" | \"BUY\";\n}): DetailWithValue | undefined {\n // in case of SELL you pay exactly srcAmount\n if (swapSide === \"SELL\") return;\n\n const title = \"Maximum to Pay\";\n\n if (!price || !tokenFrom) {\n return {\n title,\n value: null,\n isLoading,\n tooltip,\n };\n }\n\n const maxSrcAmount = amountAfterSlippage(\n // amount after fee\n price.srcAmount,\n // +slippage=maxAmount to pay\n slippagePercent,\n \"BUY\"\n ).toFixed(0);\n const maxSrcAmountUnit = formatUnits(\n BigInt(maxSrcAmount),\n tokenFrom.decimals\n );\n const formattedMaxSrcAmount = toDecimalTrimmed(maxSrcAmountUnit);\n\n return {\n title,\n value: `${formattedMaxSrcAmount} ${tokenFrom.symbol}`,\n isLoading,\n tooltip,\n };\n}\n"],"mappings":";;;;AAQA,IAAMM,IACJ;AAEF,SAAgBC,EAAwB,EACtCC,UACAC,oBACAC,cACAC,cACAC,eAO8B;AAE9B,KAAIA,MAAa,OAAQ;CAEzB,IAAMC,IAAQ;AAEd,KAAI,CAACL,KAAS,CAACG,EACb,QAAO;EACLE;EACAC,OAAO;EACPJ;EACAJ;EACD;CAGH,IAAMS,IAAeb,EAEnBM,EAAMQ,WAENP,GACA,MACD,CAACQ,QAAQ,EAAE;AAOZ,QAAO;EACLJ;EACAC,OAAO,GAJqBX,EAJLE,EACvBc,OAAOJ,EAAa,EACpBJ,EAAUS,SACX,CAC+D,CAI/B,GAAIT,EAAUW;EAC7CZ;EACAJ;EACD"}
1
+ {"version":3,"file":"maxToPay.js","names":["DetailWithValue","DeltaOrMarketPrice","amountAfterSlippage","toDecimalTrimmed","Token","formatUnits","tooltip","constructMaxToPayDetail","price","slippagePercent","isLoading","tokenFrom","swapSide","title","value","maxSrcAmount","srcAmount","toFixed","maxSrcAmountUnit","BigInt","decimals","formattedMaxSrcAmount","symbol"],"sources":["../../../src/core/swapDetails/maxToPay.tsx"],"sourcesContent":["import type { DetailWithValue } from \"@/components/widget/Details/types\";\nimport type { DeltaOrMarketPrice } from \"@/hooks/swap/prices/types\";\nimport { amountAfterSlippage } from \"@/lib/utils/slippage\";\nimport { toDecimalTrimmed } from \"@/lib/utils/toDecimal\";\nimport type { Token } from \"@/tokens/state/types\";\n\nimport { formatUnits } from \"viem\";\n\nconst tooltip =\n \"Maximum amount of token to pay to get the receiving amount while accounting for potential slippage.\";\n\nexport function constructMaxToPayDetail({\n price,\n slippagePercent,\n isLoading,\n tokenFrom,\n swapSide,\n}: {\n price?: DeltaOrMarketPrice;\n slippagePercent: number;\n isLoading: boolean;\n tokenFrom?: Token;\n swapSide: \"SELL\" | \"BUY\";\n}): DetailWithValue | undefined {\n // in case of SELL you pay exactly srcAmount\n if (swapSide === \"SELL\") return;\n\n const title = \"Maximum to Pay\";\n\n if (!price || !tokenFrom) {\n return {\n title,\n value: null,\n isLoading,\n tooltip,\n };\n }\n\n const maxSrcAmount = amountAfterSlippage(\n // amount after fee\n price.srcAmount,\n // +slippage=maxAmount to pay\n slippagePercent,\n \"BUY\"\n ).toFixed(0);\n const maxSrcAmountUnit = formatUnits(\n BigInt(maxSrcAmount),\n tokenFrom.decimals\n );\n const formattedMaxSrcAmount = toDecimalTrimmed(maxSrcAmountUnit);\n\n return {\n title,\n value: `${formattedMaxSrcAmount} ${tokenFrom.symbol}`,\n isLoading,\n tooltip,\n };\n}\n"],"mappings":";;;;AAQA,IAAMM,IACJ;AAEF,SAAgBC,EAAwB,EACtCC,UACAC,oBACAC,cACAC,cACAC,eAO8B;CAE9B,IAAIA,MAAa,QAAQ;CAEzB,IAAMC,IAAQ;CAEd,IAAI,CAACL,KAAS,CAACG,GACb,OAAO;EACLE;EACAC,OAAO;EACPJ;EACAJ;EACD;CAGH,IAAMS,IAAeb,EAEnBM,EAAMQ,WAENP,GACA,MACD,CAACQ,QAAQ,EAAE;CAOZ,OAAO;EACLJ;EACAC,OAAO,GAJqBX,EAJLE,EACvBc,OAAOJ,EAAa,EACpBJ,EAAUS,SAEmCF,CAInCG,CAAqB,GAAIV,EAAUW;EAC7CZ;EACAJ;EACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"orderRouting.js","names":["DetailWithValue","DeltaIcon","SwapMode","isSimplePath","isMultiSwap","isMegaSwap","OptimalRate","JSX","tooltip","constructOrderRoutingDetail","swapMode","isLoading","bestRoutes","title","routing","Element","value","length","swapExchanges","swaps","swapExchange","exchange"],"sources":["../../../src/core/swapDetails/orderRouting.tsx"],"sourcesContent":["import type { DetailWithValue } from \"@/components/widget/Details/types\";\nimport { DeltaIcon } from \"@/components/widget/Icon/DeltaIcon\";\nimport type { SwapMode } from \"@/components/widget/SwapModeSwitcher/state/types\";\nimport { isSimplePath, isMultiSwap, isMegaSwap } from \"@/lib/utils/dexes\";\nimport type { OptimalRate } from \"@velora-dex/sdk\";\nimport type { JSX } from \"react\";\n\nconst tooltip =\n \"Velora routes and splits your order across many exchanges to achieve the best available rate.\";\n\nexport function constructOrderRoutingDetail({\n swapMode,\n isLoading,\n bestRoutes,\n}: {\n swapMode: SwapMode;\n isLoading: boolean;\n bestRoutes?: OptimalRate[\"bestRoute\"];\n}): DetailWithValue {\n const title = \"Order Routing\";\n let routing: string | JSX.Element | null = null;\n\n if (swapMode === \"delta\") {\n return {\n title,\n value: (\n <div className=\"flex items-center gap-1\">\n <DeltaIcon /> Delta\n </div>\n ),\n isLoading: false, // Delta mode does not have routing\n tooltip,\n };\n }\n\n if (!bestRoutes || bestRoutes.length === 0) {\n return { title, value: null, isLoading, tooltip };\n }\n\n if (isSimplePath(bestRoutes)) {\n const [{ swapExchanges }] = bestRoutes[0].swaps;\n\n if (swapExchanges.length > 1) {\n routing = \"Multi. Exchanges\";\n } else {\n const swapExchange = swapExchanges[0];\n\n if (swapExchange) {\n routing = (\n <div className=\"max-w-[200px] whitespace-nowrap overflow-hidden text-ellipsis\">\n 100% {swapExchange.exchange}\n </div>\n );\n }\n }\n } else if (isMultiSwap(bestRoutes)) {\n routing = \"MultiSwap\";\n } else if (isMegaSwap(bestRoutes)) {\n routing = \"MegaSwap\";\n }\n\n return { title: \"Order Routing\", value: routing, isLoading, tooltip };\n}\n"],"mappings":";;;;AAOA,IAAMQ,IACJ;AAEF,SAAgBC,EAA4B,EAC1CC,aACAC,cACAC,iBAKkB;CAClB,IAAMC,IAAQ,iBACVC,IAAuC;AAE3C,KAAIJ,MAAa,QACf,QAAO;EACLG;EACAG,OACE,kBAAC,OAAD;GAAK,WAAU;aAAf,CACE,kBAAC,GAAD,EAAa,CAAA,EAAA,SAEhB;;EACDL,WAAW;EACXH;EACD;AAGH,KAAI,CAACI,KAAcA,EAAWK,WAAW,EACvC,QAAO;EAAEJ;EAAOG,OAAO;EAAML;EAAWH;EAAS;AAGnD,KAAIL,EAAaS,EAAW,EAAE;EAC5B,IAAM,CAAC,EAAEM,sBAAmBN,EAAW,GAAGO;AAE1C,MAAID,EAAcD,SAAS,EACzBH,KAAU;OACL;GACL,IAAMM,IAAeF,EAAc;AAEnC,GAAIE,MACFN,IACE,kBAAC,OAAD;IAAK,WAAU;cAAf,CAA8E,SACtEM,EAAaC,SAEtB;;;QAGIjB,EAAYQ,EAAW,GAChCE,IAAU,cACDT,EAAWO,EAAW,KAC/BE,IAAU;AAGZ,QAAO;EAAED,OAAO;EAAiBG,OAAOF;EAASH;EAAWH;EAAS"}
1
+ {"version":3,"file":"orderRouting.js","names":["DetailWithValue","DeltaIcon","SwapMode","isSimplePath","isMultiSwap","isMegaSwap","OptimalRate","JSX","tooltip","constructOrderRoutingDetail","swapMode","isLoading","bestRoutes","title","routing","Element","value","length","swapExchanges","swaps","swapExchange","exchange"],"sources":["../../../src/core/swapDetails/orderRouting.tsx"],"sourcesContent":["import type { DetailWithValue } from \"@/components/widget/Details/types\";\nimport { DeltaIcon } from \"@/components/widget/Icon/DeltaIcon\";\nimport type { SwapMode } from \"@/components/widget/SwapModeSwitcher/state/types\";\nimport { isSimplePath, isMultiSwap, isMegaSwap } from \"@/lib/utils/dexes\";\nimport type { OptimalRate } from \"@velora-dex/sdk\";\nimport type { JSX } from \"react\";\n\nconst tooltip =\n \"Velora routes and splits your order across many exchanges to achieve the best available rate.\";\n\nexport function constructOrderRoutingDetail({\n swapMode,\n isLoading,\n bestRoutes,\n}: {\n swapMode: SwapMode;\n isLoading: boolean;\n bestRoutes?: OptimalRate[\"bestRoute\"];\n}): DetailWithValue {\n const title = \"Order Routing\";\n let routing: string | JSX.Element | null = null;\n\n if (swapMode === \"delta\") {\n return {\n title,\n value: (\n <div className=\"flex items-center gap-1\">\n <DeltaIcon /> Delta\n </div>\n ),\n isLoading: false, // Delta mode does not have routing\n tooltip,\n };\n }\n\n if (!bestRoutes || bestRoutes.length === 0) {\n return { title, value: null, isLoading, tooltip };\n }\n\n if (isSimplePath(bestRoutes)) {\n const [{ swapExchanges }] = bestRoutes[0].swaps;\n\n if (swapExchanges.length > 1) {\n routing = \"Multi. Exchanges\";\n } else {\n const swapExchange = swapExchanges[0];\n\n if (swapExchange) {\n routing = (\n <div className=\"max-w-[200px] whitespace-nowrap overflow-hidden text-ellipsis\">\n 100% {swapExchange.exchange}\n </div>\n );\n }\n }\n } else if (isMultiSwap(bestRoutes)) {\n routing = \"MultiSwap\";\n } else if (isMegaSwap(bestRoutes)) {\n routing = \"MegaSwap\";\n }\n\n return { title: \"Order Routing\", value: routing, isLoading, tooltip };\n}\n"],"mappings":";;;;AAOA,IAAMQ,IACJ;AAEF,SAAgBC,EAA4B,EAC1CC,aACAC,cACAC,iBAKkB;CAClB,IAAMC,IAAQ,iBACVC,IAAuC;CAE3C,IAAIJ,MAAa,SACf,OAAO;EACLG;EACAG,OACE,kBAAC,OAAD;GAAK,WAAU;aAAf,CACE,kBAAC,GAAD,EAAa,CAAA,EAAA,SAEhB;;EACDL,WAAW;EACXH;EACD;CAGH,IAAI,CAACI,KAAcA,EAAWK,WAAW,GACvC,OAAO;EAAEJ;EAAOG,OAAO;EAAML;EAAWH;EAAS;CAGnD,IAAIL,EAAaS,EAAW,EAAE;EAC5B,IAAM,CAAC,EAAEM,sBAAmBN,EAAW,GAAGO;EAE1C,IAAID,EAAcD,SAAS,GACzBH,IAAU;OACL;GACL,IAAMM,IAAeF,EAAc;GAEnC,AAAIE,MACFN,IACE,kBAAC,OAAD;IAAK,WAAU;cAAf,CAA8E,SACtEM,EAAaC,SAEtB;;;QAGA,AAAIjB,EAAYQ,EAAW,GAChCE,IAAU,cACDT,EAAWO,EAAW,KAC/BE,IAAU;CAGZ,OAAO;EAAED,OAAO;EAAiBG,OAAOF;EAASH;EAAWH;EAAS"}
@@ -1 +1 @@
1
- {"version":3,"file":"priceImpact.js","names":["cn","formatPriceImpactPercent","PriceImpactResult","TriangleAlert","PriceImpactDetail","tooltip","constructPriceImpactDetail","priceImpactResult","isLoading","title","priceImpact","isHighImpact","isMediumImpact","isUnavailable","priceImpactPercent","undefined","value","classes"],"sources":["../../../src/core/swapDetails/priceImpact.tsx"],"sourcesContent":["import { cn } from \"@/lib/utils\";\nimport {\n formatPriceImpactPercent,\n type PriceImpactResult,\n} from \"@/lib/utils/priceImpact\";\nimport { TriangleAlert } from \"lucide-react\";\nimport type { PriceImpactDetail } from \"./types\";\n\nconst tooltip =\n \"The expected influence of the trade over the current market fiat price of the chosen pair of tokens.\";\n\nexport function constructPriceImpactDetail({\n priceImpactResult,\n isLoading,\n}: {\n priceImpactResult: PriceImpactResult;\n isLoading: boolean;\n}): PriceImpactDetail {\n const title = \"Price Impact\";\n\n const { priceImpact, isHighImpact, isMediumImpact, isUnavailable } =\n priceImpactResult;\n\n const priceImpactPercent =\n isUnavailable || priceImpact === undefined\n ? \"Not Available\"\n : formatPriceImpactPercent(priceImpact);\n\n return {\n title,\n value: isHighImpact ? (\n <div className=\"flex items-center gap-1\">\n <TriangleAlert size={14} /> {priceImpactPercent}\n </div>\n ) : (\n priceImpactPercent\n ),\n classes: {\n value: cn({\n \"text-secondary-orange-peel-1 dark:text-secondary-orange-peel-1\":\n isMediumImpact,\n \"text-secondary-radical-red-1 dark:text-secondary-radical-red-1\":\n isUnavailable || isHighImpact,\n }),\n },\n isLoading,\n tooltip,\n isHighImpact,\n isMediumImpact,\n isUnavailable,\n };\n}\n"],"mappings":";;;;;AAQA,IAAMK,IACJ;AAEF,SAAgBC,EAA2B,EACzCC,sBACAC,gBAIoB;CACpB,IAEM,EAAEE,gBAAaC,iBAAcC,mBAAgBC,qBACjDN,GAEIO,IACJD,KAAiBH,MAAgBK,KAAAA,IAC7B,kBACAd,EAAyBS,EAAY;AAE3C,QAAO;EACLD;EACAO,OAAOL,IACL,kBAAC,OAAD;GAAK,WAAU;aAAf;IACE,kBAAC,GAAD,EAAe,MAAM,IAAM,CAAA;;IAAEG;IACzB;OAENA;EAEFG,SAAS,EACPD,OAAOhB,EAAG;GACR,kEACEY;GACF,kEACEC,KAAiBF;GACpB,CAAA,EACF;EACDH;EACAH;EACAM;EACAC;EACAC;EACD"}
1
+ {"version":3,"file":"priceImpact.js","names":["cn","formatPriceImpactPercent","PriceImpactResult","TriangleAlert","PriceImpactDetail","tooltip","constructPriceImpactDetail","priceImpactResult","isLoading","title","priceImpact","isHighImpact","isMediumImpact","isUnavailable","priceImpactPercent","undefined","value","classes"],"sources":["../../../src/core/swapDetails/priceImpact.tsx"],"sourcesContent":["import { cn } from \"@/lib/utils\";\nimport {\n formatPriceImpactPercent,\n type PriceImpactResult,\n} from \"@/lib/utils/priceImpact\";\nimport { TriangleAlert } from \"lucide-react\";\nimport type { PriceImpactDetail } from \"./types\";\n\nconst tooltip =\n \"The expected influence of the trade over the current market fiat price of the chosen pair of tokens.\";\n\nexport function constructPriceImpactDetail({\n priceImpactResult,\n isLoading,\n}: {\n priceImpactResult: PriceImpactResult;\n isLoading: boolean;\n}): PriceImpactDetail {\n const title = \"Price Impact\";\n\n const { priceImpact, isHighImpact, isMediumImpact, isUnavailable } =\n priceImpactResult;\n\n const priceImpactPercent =\n isUnavailable || priceImpact === undefined\n ? \"Not Available\"\n : formatPriceImpactPercent(priceImpact);\n\n return {\n title,\n value: isHighImpact ? (\n <div className=\"flex items-center gap-1\">\n <TriangleAlert size={14} /> {priceImpactPercent}\n </div>\n ) : (\n priceImpactPercent\n ),\n classes: {\n value: cn({\n \"text-secondary-orange-peel-1 dark:text-secondary-orange-peel-1\":\n isMediumImpact,\n \"text-secondary-radical-red-1 dark:text-secondary-radical-red-1\":\n isUnavailable || isHighImpact,\n }),\n },\n isLoading,\n tooltip,\n isHighImpact,\n isMediumImpact,\n isUnavailable,\n };\n}\n"],"mappings":";;;;;AAQA,IAAMK,IACJ;AAEF,SAAgBC,EAA2B,EACzCC,sBACAC,gBAIoB;CACpB,IAEM,EAAEE,gBAAaC,iBAAcC,mBAAgBC,qBACjDN,GAEIO,IACJD,KAAiBH,MAAgBK,KAAAA,IAC7B,kBACAd,EAAyBS,EAAY;CAE3C,OAAO;EACLD;EACAO,OAAOL,IACL,kBAAC,OAAD;GAAK,WAAU;aAAf;IACE,kBAAC,GAAD,EAAe,MAAM,IAAM,CAAA;;IAAEG;IACzB;OAENA;EAEFG,SAAS,EACPD,OAAOhB,EAAG;GACR,kEACEY;GACF,kEACEC,KAAiBF;GACpB,CAAA,EACF;EACDH;EACAH;EACAM;EACAC;EACAC;EACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"useSwapDetailsListProps.js","names":["DetailWithValue","DetailWithValueListExpandableProps","useCurrentSwapPrice","useWidgetTokens","useAtomValue","payInputAmountWeiAtom","receiveInputAmountWeiAtom","constructOrderRoutingDetail","constructPriceImpactDetail","constructSwapFeesDetail","constructNetworkFeesDetail","useSwapSide","isTruthy","constructYouGetDetail","useSlippage","constructMaxToPayDetail","SwapRateWithPriceImpactRow","useSwapDetailsListProps","$","_c","tokenFrom","tokenTo","srcAmountWei","destAmountWei","t0","Symbol","for","enabled","isLoading","price","priceMode","getPriceImpact","refetch","isFetching","resolvedSlippage","swapSide","priceImpactDetail","t1","orderRoutingDetail","bestRoutes","bestRoute","undefined","swapMode","priceImpactResult","swapFeesDetail","networkFeesDetail","minMaxDetail","slippagePercent","filter","details","isBuy","t2","srcToken","destToken","reverse","t3","onClick","cancelRefetch","animate","t4","t5","root","trigger","t6","classes"],"sources":["../../../src/core/swapDetails/useSwapDetailsListProps.tsx"],"sourcesContent":["import type {\n DetailWithValue,\n DetailWithValueListExpandableProps,\n} from \"@/components/widget/Details/types\";\nimport { useCurrentSwapPrice } from \"@/hooks/swap/prices/useSwapPrices\";\nimport { useWidgetTokens } from \"../inputs/state/common\";\nimport { useAtomValue } from \"@/core/store\";\nimport {\n payInputAmountWeiAtom,\n receiveInputAmountWeiAtom,\n} from \"../inputs/state/inputAmountAtom\";\n\nimport { constructOrderRoutingDetail } from \"./orderRouting\";\nimport { constructPriceImpactDetail } from \"./priceImpact\";\nimport { constructSwapFeesDetail, constructNetworkFeesDetail } from \"./fees\";\nimport { useSwapSide } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport { isTruthy } from \"@/lib/utils\";\nimport { constructYouGetDetail } from \"./youGet\";\nimport { useSlippage } from \"@/hooks/useSlippage\";\n\nimport { constructMaxToPayDetail } from \"./maxToPay\";\nimport { SwapRateWithPriceImpactRow } from \"@/components/widget/SwapRateWithPriceImpactRow/SwapRateWithPriceImpactRow\";\n\nexport const useSwapDetailsListProps =\n (): DetailWithValueListExpandableProps => {\n const { tokenFrom, tokenTo } = useWidgetTokens(\"swap\");\n\n const srcAmountWei = useAtomValue(payInputAmountWeiAtom);\n const destAmountWei = useAtomValue(receiveInputAmountWeiAtom);\n\n const { isLoading, price, priceMode, getPriceImpact, refetch, isFetching } =\n useCurrentSwapPrice({ enabled: false });\n\n const { resolvedSlippage } = useSlippage(\"swap\");\n const swapSide = useSwapSide();\n\n const orderRoutingDetail = constructOrderRoutingDetail({\n bestRoutes: price && \"bestRoute\" in price ? price.bestRoute : undefined,\n swapMode: priceMode,\n isLoading,\n });\n\n const priceImpactDetail = constructPriceImpactDetail({\n priceImpactResult: getPriceImpact(),\n isLoading,\n });\n\n const swapFeesDetail = constructSwapFeesDetail({\n price,\n isLoading,\n });\n\n const networkFeesDetail = constructNetworkFeesDetail({\n price,\n swapMode: priceMode,\n isLoading,\n });\n\n const minMaxDetail =\n swapSide === \"SELL\"\n ? // minimum received when SELLing\n constructYouGetDetail({\n price,\n isLoading,\n slippagePercent: resolvedSlippage,\n tokenTo,\n swapSide,\n })\n : // maximum to pay when BUYing\n constructMaxToPayDetail({\n price,\n isLoading,\n slippagePercent: resolvedSlippage,\n tokenFrom,\n swapSide,\n });\n\n const details: DetailWithValue[] = [\n orderRoutingDetail,\n priceImpactDetail,\n swapFeesDetail,\n minMaxDetail,\n networkFeesDetail,\n ].filter(isTruthy);\n\n const isBuy = swapSide === \"BUY\";\n\n return {\n trigger: (\n <SwapRateWithPriceImpactRow\n swapRateProps={{\n srcToken: tokenFrom,\n destToken: tokenTo,\n srcAmountWei,\n destAmountWei,\n isLoading,\n reverse: isBuy,\n }}\n priceImpactDetail={priceImpactDetail}\n refreshButtonProps={\n price\n ? {\n onClick: () => refetch({ cancelRefetch: false }),\n animate: isFetching,\n }\n : undefined\n }\n />\n ),\n details,\n classes: {\n root: \"mt-4 items-center\",\n trigger: \"items-center\",\n },\n };\n };\n"],"mappings":"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"}
1
+ {"version":3,"file":"useSwapDetailsListProps.js","names":["DetailWithValue","DetailWithValueListExpandableProps","useCurrentSwapPrice","useWidgetTokens","useAtomValue","payInputAmountWeiAtom","receiveInputAmountWeiAtom","constructOrderRoutingDetail","constructPriceImpactDetail","constructSwapFeesDetail","constructNetworkFeesDetail","useSwapSide","isTruthy","constructYouGetDetail","useSlippage","constructMaxToPayDetail","SwapRateWithPriceImpactRow","useSwapDetailsListProps","$","_c","tokenFrom","tokenTo","srcAmountWei","destAmountWei","t0","Symbol","for","enabled","isLoading","price","priceMode","getPriceImpact","refetch","isFetching","resolvedSlippage","swapSide","priceImpactDetail","t1","orderRoutingDetail","bestRoutes","bestRoute","undefined","swapMode","priceImpactResult","swapFeesDetail","networkFeesDetail","minMaxDetail","slippagePercent","filter","details","isBuy","t2","srcToken","destToken","reverse","t3","onClick","cancelRefetch","animate","t4","t5","root","trigger","t6","classes"],"sources":["../../../src/core/swapDetails/useSwapDetailsListProps.tsx"],"sourcesContent":["import type {\n DetailWithValue,\n DetailWithValueListExpandableProps,\n} from \"@/components/widget/Details/types\";\nimport { useCurrentSwapPrice } from \"@/hooks/swap/prices/useSwapPrices\";\nimport { useWidgetTokens } from \"../inputs/state/common\";\nimport { useAtomValue } from \"@/core/store\";\nimport {\n payInputAmountWeiAtom,\n receiveInputAmountWeiAtom,\n} from \"../inputs/state/inputAmountAtom\";\n\nimport { constructOrderRoutingDetail } from \"./orderRouting\";\nimport { constructPriceImpactDetail } from \"./priceImpact\";\nimport { constructSwapFeesDetail, constructNetworkFeesDetail } from \"./fees\";\nimport { useSwapSide } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport { isTruthy } from \"@/lib/utils\";\nimport { constructYouGetDetail } from \"./youGet\";\nimport { useSlippage } from \"@/hooks/useSlippage\";\n\nimport { constructMaxToPayDetail } from \"./maxToPay\";\nimport { SwapRateWithPriceImpactRow } from \"@/components/widget/SwapRateWithPriceImpactRow/SwapRateWithPriceImpactRow\";\n\nexport const useSwapDetailsListProps =\n (): DetailWithValueListExpandableProps => {\n const { tokenFrom, tokenTo } = useWidgetTokens(\"swap\");\n\n const srcAmountWei = useAtomValue(payInputAmountWeiAtom);\n const destAmountWei = useAtomValue(receiveInputAmountWeiAtom);\n\n const { isLoading, price, priceMode, getPriceImpact, refetch, isFetching } =\n useCurrentSwapPrice({ enabled: false });\n\n const { resolvedSlippage } = useSlippage(\"swap\");\n const swapSide = useSwapSide();\n\n const orderRoutingDetail = constructOrderRoutingDetail({\n bestRoutes: price && \"bestRoute\" in price ? price.bestRoute : undefined,\n swapMode: priceMode,\n isLoading,\n });\n\n const priceImpactDetail = constructPriceImpactDetail({\n priceImpactResult: getPriceImpact(),\n isLoading,\n });\n\n const swapFeesDetail = constructSwapFeesDetail({\n price,\n isLoading,\n });\n\n const networkFeesDetail = constructNetworkFeesDetail({\n price,\n swapMode: priceMode,\n isLoading,\n });\n\n const minMaxDetail =\n swapSide === \"SELL\"\n ? // minimum received when SELLing\n constructYouGetDetail({\n price,\n isLoading,\n slippagePercent: resolvedSlippage,\n tokenTo,\n swapSide,\n })\n : // maximum to pay when BUYing\n constructMaxToPayDetail({\n price,\n isLoading,\n slippagePercent: resolvedSlippage,\n tokenFrom,\n swapSide,\n });\n\n const details: DetailWithValue[] = [\n orderRoutingDetail,\n priceImpactDetail,\n swapFeesDetail,\n minMaxDetail,\n networkFeesDetail,\n ].filter(isTruthy);\n\n const isBuy = swapSide === \"BUY\";\n\n return {\n trigger: (\n <SwapRateWithPriceImpactRow\n swapRateProps={{\n srcToken: tokenFrom,\n destToken: tokenTo,\n srcAmountWei,\n destAmountWei,\n isLoading,\n reverse: isBuy,\n }}\n priceImpactDetail={priceImpactDetail}\n refreshButtonProps={\n price\n ? {\n onClick: () => refetch({ cancelRefetch: false }),\n animate: isFetching,\n }\n : undefined\n }\n />\n ),\n details,\n classes: {\n root: \"mt-4 items-center\",\n trigger: \"items-center\",\n },\n };\n };\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"youGet.js","names":["DetailWithValue","DeltaOrMarketPrice","getDestAmountAfterFeeAndSlippage","toDecimalTrimmed","Token","formatUnits","tooltip","constructYouGetDetail","price","slippagePercent","isLoading","tokenTo","swapSide","title","value","minDestAmount","minDestAmountUnit","BigInt","decimals","formattedMinDestAmountUnit","symbol"],"sources":["../../../src/core/swapDetails/youGet.tsx"],"sourcesContent":["import type { DetailWithValue } from \"@/components/widget/Details/types\";\nimport type { DeltaOrMarketPrice } from \"@/hooks/swap/prices/types\";\nimport { getDestAmountAfterFeeAndSlippage } from \"@/lib/utils/price\";\nimport { toDecimalTrimmed } from \"@/lib/utils/toDecimal\";\nimport type { Token } from \"@/tokens/state/types\";\n\nimport { formatUnits } from \"viem\";\n\nconst tooltip =\n \"The minimum amount of token to receive, otherwise the transaction will revert.\";\n\nexport function constructYouGetDetail({\n price,\n slippagePercent,\n isLoading,\n tokenTo,\n swapSide,\n}: {\n price?: DeltaOrMarketPrice;\n slippagePercent: number;\n isLoading: boolean;\n tokenTo?: Token;\n swapSide: \"SELL\" | \"BUY\";\n}): DetailWithValue | undefined {\n // in case of BUY youGet= exactly destAmount\n if (swapSide === \"BUY\") return;\n\n const title = \"You Get (at least)\";\n\n if (!price || !tokenTo) {\n return {\n title,\n value: null,\n isLoading,\n tooltip,\n };\n }\n\n const minDestAmount = getDestAmountAfterFeeAndSlippage({\n price,\n slippagePercent,\n });\n\n const minDestAmountUnit = formatUnits(\n BigInt(minDestAmount),\n tokenTo.decimals\n );\n\n const formattedMinDestAmountUnit = toDecimalTrimmed(minDestAmountUnit);\n\n return {\n title,\n value: `${formattedMinDestAmountUnit} ${tokenTo.symbol}`,\n isLoading,\n tooltip,\n };\n}\n"],"mappings":";;;;AAQA,IAAMM,IACJ;AAEF,SAAgBC,EAAsB,EACpCC,UACAC,oBACAC,cACAC,YACAC,eAO8B;AAE9B,KAAIA,MAAa,MAAO;CAExB,IAAMC,IAAQ;AAEd,KAAI,CAACL,KAAS,CAACG,EACb,QAAO;EACLE;EACAC,OAAO;EACPJ;EACAJ;EACD;CAGH,IAAMS,IAAgBb,EAAiC;EACrDM;EACAC;EACD,CAAC;AASF,QAAO;EACLI;EACAC,OAAO,GAJ0BX,EALTE,EACxBY,OAAOF,EAAc,EACrBJ,EAAQO,SACT,CAEqE,CAIhC,GAAIP,EAAQS;EAChDV;EACAJ;EACD"}
1
+ {"version":3,"file":"youGet.js","names":["DetailWithValue","DeltaOrMarketPrice","getDestAmountAfterFeeAndSlippage","toDecimalTrimmed","Token","formatUnits","tooltip","constructYouGetDetail","price","slippagePercent","isLoading","tokenTo","swapSide","title","value","minDestAmount","minDestAmountUnit","BigInt","decimals","formattedMinDestAmountUnit","symbol"],"sources":["../../../src/core/swapDetails/youGet.tsx"],"sourcesContent":["import type { DetailWithValue } from \"@/components/widget/Details/types\";\nimport type { DeltaOrMarketPrice } from \"@/hooks/swap/prices/types\";\nimport { getDestAmountAfterFeeAndSlippage } from \"@/lib/utils/price\";\nimport { toDecimalTrimmed } from \"@/lib/utils/toDecimal\";\nimport type { Token } from \"@/tokens/state/types\";\n\nimport { formatUnits } from \"viem\";\n\nconst tooltip =\n \"The minimum amount of token to receive, otherwise the transaction will revert.\";\n\nexport function constructYouGetDetail({\n price,\n slippagePercent,\n isLoading,\n tokenTo,\n swapSide,\n}: {\n price?: DeltaOrMarketPrice;\n slippagePercent: number;\n isLoading: boolean;\n tokenTo?: Token;\n swapSide: \"SELL\" | \"BUY\";\n}): DetailWithValue | undefined {\n // in case of BUY youGet= exactly destAmount\n if (swapSide === \"BUY\") return;\n\n const title = \"You Get (at least)\";\n\n if (!price || !tokenTo) {\n return {\n title,\n value: null,\n isLoading,\n tooltip,\n };\n }\n\n const minDestAmount = getDestAmountAfterFeeAndSlippage({\n price,\n slippagePercent,\n });\n\n const minDestAmountUnit = formatUnits(\n BigInt(minDestAmount),\n tokenTo.decimals\n );\n\n const formattedMinDestAmountUnit = toDecimalTrimmed(minDestAmountUnit);\n\n return {\n title,\n value: `${formattedMinDestAmountUnit} ${tokenTo.symbol}`,\n isLoading,\n tooltip,\n };\n}\n"],"mappings":";;;;AAQA,IAAMM,IACJ;AAEF,SAAgBC,EAAsB,EACpCC,UACAC,oBACAC,cACAC,YACAC,eAO8B;CAE9B,IAAIA,MAAa,OAAO;CAExB,IAAMC,IAAQ;CAEd,IAAI,CAACL,KAAS,CAACG,GACb,OAAO;EACLE;EACAC,OAAO;EACPJ;EACAJ;EACD;CAGH,IAAMS,IAAgBb,EAAiC;EACrDM;EACAC;EACD,CAAC;CASF,OAAO;EACLI;EACAC,OAAO,GAJ0BX,EALTE,EACxBY,OAAOF,EAAc,EACrBJ,EAAQO,SAG0CF,CAIxCG,CAA0B,GAAIR,EAAQS;EAChDV;EACAJ;EACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"isCrosschainAtom.js","names":["atom","useAtomValue","twapTokenFromAtom","twapTokenToAtom","isTwapCrossChainAtom","get","tokenFrom","tokenTo","network","useIsTwapCrossChain"],"sources":["../../../../src/core/twap/state/isCrosschainAtom.ts"],"sourcesContent":["import { atom } from \"jotai\";\nimport { useAtomValue } from \"@/core/store\";\nimport { twapTokenFromAtom, twapTokenToAtom } from \"./twapTokenAtoms\";\n\nexport const isTwapCrossChainAtom = atom((get) => {\n const tokenFrom = get(twapTokenFromAtom);\n const tokenTo = get(twapTokenToAtom);\n\n if (!tokenTo) return false;\n\n return tokenFrom.network !== tokenTo.network;\n});\n\nexport const useIsTwapCrossChain = () => {\n return useAtomValue(isTwapCrossChainAtom);\n};\n"],"mappings":";;;;AAIA,IAAaI,IAAuBJ,GAAMK,MAAQ;CAChD,IAAMC,IAAYD,EAAIH,EAAkB,EAClCK,IAAUF,EAAIF,EAAgB;AAIpC,QAFKI,IAEED,EAAUE,YAAYD,EAAQC,UAFhB;EAGrB,EAEWC,UACJR,EAAaG,EAAqB"}
1
+ {"version":3,"file":"isCrosschainAtom.js","names":["atom","useAtomValue","twapTokenFromAtom","twapTokenToAtom","isTwapCrossChainAtom","get","tokenFrom","tokenTo","network","useIsTwapCrossChain"],"sources":["../../../../src/core/twap/state/isCrosschainAtom.ts"],"sourcesContent":["import { atom } from \"jotai\";\nimport { useAtomValue } from \"@/core/store\";\nimport { twapTokenFromAtom, twapTokenToAtom } from \"./twapTokenAtoms\";\n\nexport const isTwapCrossChainAtom = atom((get) => {\n const tokenFrom = get(twapTokenFromAtom);\n const tokenTo = get(twapTokenToAtom);\n\n if (!tokenTo) return false;\n\n return tokenFrom.network !== tokenTo.network;\n});\n\nexport const useIsTwapCrossChain = () => {\n return useAtomValue(isTwapCrossChainAtom);\n};\n"],"mappings":";;;;AAIA,IAAaI,IAAuBJ,GAAMK,MAAQ;CAChD,IAAMC,IAAYD,EAAIH,EAAkB,EAClCK,IAAUF,EAAIF,EAAgB;CAIpC,OAFKI,IAEED,EAAUE,YAAYD,EAAQC,UAFhB;EAGrB,EAEWC,UACJR,EAAaG,EAAqB"}
@@ -1 +1 @@
1
- {"version":3,"file":"selectedTokenActionsAtom.js","names":["pickDefaultTokenPair","areTokensSame","atom","twapTokenFromAtom","twapTokenToAtom","Token","wagmiConfig","switchChain","isCrosschainPossible","findFirstTokenFromAcross","isTokenFromAcross","allTokensByChainAtom","getSelectableDestChains","enabledSrcChainsAtom","jotaiStore","SupportedChainId","switchTwapTokensAtom","get","set","tokenTo","enabledSrcChains","includes","network","tokenFrom","initChainFrom","selectTwapTokenToAtom","currentTokenFrom","chainId","selectTwapTokenFromAtom","newTokenFrom","initTokenFrom","state","crosschainPossible","chainIdFrom","chainIdTo","mode","isTokenToFromAcross","token","fromChainId","toChainId","maybeAcrossToken","listByChainId","defaultTokenFrom","defaultTokenTo","newTokenTo","selectableDestChains","initTokenTo","defaultToken","wasCrosschain","needResetTokenFrom","firstPossibleSrcChain","srcChain","syncTwapTokensAfterChainSwitch","undefined"],"sources":["../../../../src/core/twap/state/selectedTokenActionsAtom.ts"],"sourcesContent":["import { pickDefaultTokenPair } from \"@/tokens/defaultTokens\";\nimport { areTokensSame } from \"@/tokens/utils/areTokensSame\";\nimport { atom } from \"jotai\";\nimport { twapTokenFromAtom, twapTokenToAtom } from \"./twapTokenAtoms\";\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/isCrosschainPossible\";\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\";\nimport { jotaiStore } from \"@/core/store\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\n\nexport const switchTwapTokensAtom = atom(null, async (get, set) => {\n const tokenTo = get(twapTokenToAtom);\n\n if (!tokenTo) return;\n\n const enabledSrcChains = get(enabledSrcChainsAtom);\n if (!enabledSrcChains.includes(tokenTo.network)) return;\n\n const tokenFrom = get(twapTokenFromAtom);\n const initChainFrom = tokenFrom.network;\n\n // set tokenFrom as is\n set(twapTokenFromAtom, tokenTo);\n // set tokenTo, including running all crosschain logic inside\n set(selectTwapTokenToAtom, tokenFrom);\n\n const currentTokenFrom = get(twapTokenFromAtom);\n\n // switch a token from a different chain?\n if (currentTokenFrom.network !== initChainFrom) {\n switchChain({\n chainId: currentTokenFrom.network,\n });\n }\n});\n\nexport const selectTwapTokenFromAtom = atom(\n null,\n async (get, set, newTokenFrom: Token) => {\n let tokenFrom = get(twapTokenFromAtom);\n let tokenTo = get(twapTokenToAtom);\n const initTokenFrom = tokenFrom;\n\n // set the tokenFrom\n set(twapTokenFromAtom, newTokenFrom);\n tokenFrom = newTokenFrom;\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: \"twap\",\n });\n\n if (crosschainPossible) {\n const isTokenToFromAcross = isTokenFromAcross({\n token: tokenTo,\n fromChainId: tokenFrom.network,\n toChainId: tokenTo.network,\n mode: \"twap\",\n });\n\n if (!isTokenToFromAcross) {\n const maybeAcrossToken = findFirstTokenFromAcross({\n fromChainId: tokenFrom.network,\n toChainId: tokenTo.network,\n listByChainId: get(allTokensByChainAtom).listByChainId,\n mode: \"twap\",\n });\n\n set(twapTokenToAtom, maybeAcrossToken);\n }\n } else {\n if (tokenFrom.network !== tokenTo.network) {\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n tokenFrom.network,\n \"twap\"\n );\n\n tokenTo = areTokensSame(tokenFrom, defaultTokenTo)\n ? defaultTokenFrom\n : defaultTokenTo;\n set(twapTokenToAtom, tokenTo);\n } else {\n if (areTokensSame(tokenFrom, tokenTo)) {\n tokenTo = initTokenFrom;\n set(twapTokenToAtom, tokenTo);\n }\n }\n }\n }\n);\n\nexport const selectTwapTokenToAtom = atom(\n null,\n async (get, set, newTokenTo: Token) => {\n let tokenFrom = get(twapTokenFromAtom);\n\n // @TODO reenable TWAP crosschain when ready on the API\n if (newTokenTo.network !== tokenFrom.network) {\n return;\n }\n\n const selectableDestChains = getSelectableDestChains(get, {\n fromChainId: tokenFrom.network,\n mode: \"twap\",\n });\n if (!selectableDestChains.includes(newTokenTo.network)) return;\n\n let tokenTo = get(twapTokenToAtom);\n const initTokenTo = tokenTo;\n\n set(twapTokenToAtom, newTokenTo);\n tokenTo = newTokenTo;\n\n if (areTokensSame(tokenTo, tokenFrom)) {\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n tokenTo.network,\n \"twap\"\n );\n\n const defaultToken = areTokensSame(tokenFrom, defaultTokenFrom)\n ? defaultTokenTo\n : defaultTokenFrom;\n\n const wasCrosschain =\n initTokenTo && tokenFrom.network !== initTokenTo.network;\n\n const newTokenFrom = wasCrosschain\n ? defaultToken\n : (initTokenTo ?? defaultToken);\n\n set(twapTokenFromAtom, newTokenFrom);\n tokenFrom = newTokenFrom;\n }\n\n let needResetTokenFrom = false;\n\n const crosschainPossible = isCrosschainPossible({\n get,\n chainIdFrom: tokenFrom.network,\n chainIdTo: tokenTo.network,\n mode: \"twap\",\n });\n\n if (crosschainPossible) {\n const isTokenToFromAcross = isTokenFromAcross({\n token: tokenTo,\n fromChainId: tokenFrom.network,\n toChainId: tokenTo.network,\n mode: \"twap\",\n });\n\n if (!isTokenToFromAcross) {\n needResetTokenFrom = true;\n }\n }\n\n if (tokenFrom.network !== tokenTo.network && !crosschainPossible) {\n needResetTokenFrom = true;\n }\n const enabledSrcChains = get(enabledSrcChainsAtom);\n\n if (needResetTokenFrom) {\n let firstPossibleSrcChain = tokenTo.network;\n if (!enabledSrcChains.includes(tokenTo.network)) {\n for (const srcChain of enabledSrcChains) {\n const crosschainPossible = isCrosschainPossible({\n get,\n chainIdFrom: srcChain,\n chainIdTo: tokenTo.network,\n mode: \"twap\",\n });\n if (crosschainPossible) {\n firstPossibleSrcChain = srcChain;\n break;\n }\n }\n }\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n firstPossibleSrcChain,\n \"twap\"\n );\n const newTokenFrom = areTokensSame(tokenTo, defaultTokenFrom)\n ? defaultTokenTo\n : defaultTokenFrom;\n\n set(twapTokenFromAtom, newTokenFrom);\n tokenFrom = newTokenFrom;\n }\n\n // ended up changing tokenFrom network?\n if (tokenFrom.network !== wagmiConfig.state.chainId) {\n switchChain({\n chainId: tokenFrom.network,\n });\n }\n }\n);\n\nexport const syncTwapTokensAfterChainSwitch = (chainId: SupportedChainId) => {\n const enabledSrcChains = jotaiStore.get(enabledSrcChainsAtom);\n if (!enabledSrcChains.includes(chainId)) return;\n\n let tokenFrom = jotaiStore.get(twapTokenFromAtom);\n\n // chains are the same? do nothing\n if (tokenFrom.network === chainId) return;\n\n // get default tokens for the new chain\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n chainId,\n \"twap\"\n );\n\n // update tokenFrom\n jotaiStore.set(twapTokenFromAtom, defaultTokenFrom);\n tokenFrom = defaultTokenFrom;\n\n let tokenTo = jotaiStore.get(twapTokenToAtom);\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: \"twap\",\n });\n\n if (crosschainPossible) {\n const isTokenToFromAcross = isTokenFromAcross({\n token: tokenTo,\n fromChainId: chainId,\n toChainId: tokenTo.network,\n mode: \"twap\",\n });\n\n if (!isTokenToFromAcross) {\n const maybeAcrossToken = findFirstTokenFromAcross({\n fromChainId: chainId,\n toChainId: tokenTo.network,\n listByChainId: jotaiStore.get(allTokensByChainAtom).listByChainId,\n mode: \"twap\",\n });\n\n tokenTo = maybeAcrossToken;\n jotaiStore.set(twapTokenToAtom, tokenTo);\n }\n } else {\n const selectableDestChains = getSelectableDestChains(jotaiStore.get, {\n fromChainId: tokenFrom.network,\n mode: \"twap\",\n });\n if (selectableDestChains.includes(chainId)) {\n tokenTo = defaultTokenTo;\n jotaiStore.set(twapTokenToAtom, tokenTo);\n } else {\n tokenTo = undefined;\n jotaiStore.set(twapTokenToAtom, tokenTo);\n }\n }\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"selectedTokenActionsAtom.js","names":["pickDefaultTokenPair","areTokensSame","atom","twapTokenFromAtom","twapTokenToAtom","Token","wagmiConfig","switchChain","isCrosschainPossible","findFirstTokenFromAcross","isTokenFromAcross","allTokensByChainAtom","getSelectableDestChains","enabledSrcChainsAtom","jotaiStore","SupportedChainId","switchTwapTokensAtom","get","set","tokenTo","enabledSrcChains","includes","network","tokenFrom","initChainFrom","selectTwapTokenToAtom","currentTokenFrom","chainId","selectTwapTokenFromAtom","newTokenFrom","initTokenFrom","state","crosschainPossible","chainIdFrom","chainIdTo","mode","isTokenToFromAcross","token","fromChainId","toChainId","maybeAcrossToken","listByChainId","defaultTokenFrom","defaultTokenTo","newTokenTo","selectableDestChains","initTokenTo","defaultToken","wasCrosschain","needResetTokenFrom","firstPossibleSrcChain","srcChain","syncTwapTokensAfterChainSwitch","undefined"],"sources":["../../../../src/core/twap/state/selectedTokenActionsAtom.ts"],"sourcesContent":["import { pickDefaultTokenPair } from \"@/tokens/defaultTokens\";\nimport { areTokensSame } from \"@/tokens/utils/areTokensSame\";\nimport { atom } from \"jotai\";\nimport { twapTokenFromAtom, twapTokenToAtom } from \"./twapTokenAtoms\";\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/isCrosschainPossible\";\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\";\nimport { jotaiStore } from \"@/core/store\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\n\nexport const switchTwapTokensAtom = atom(null, async (get, set) => {\n const tokenTo = get(twapTokenToAtom);\n\n if (!tokenTo) return;\n\n const enabledSrcChains = get(enabledSrcChainsAtom);\n if (!enabledSrcChains.includes(tokenTo.network)) return;\n\n const tokenFrom = get(twapTokenFromAtom);\n const initChainFrom = tokenFrom.network;\n\n // set tokenFrom as is\n set(twapTokenFromAtom, tokenTo);\n // set tokenTo, including running all crosschain logic inside\n set(selectTwapTokenToAtom, tokenFrom);\n\n const currentTokenFrom = get(twapTokenFromAtom);\n\n // switch a token from a different chain?\n if (currentTokenFrom.network !== initChainFrom) {\n switchChain({\n chainId: currentTokenFrom.network,\n });\n }\n});\n\nexport const selectTwapTokenFromAtom = atom(\n null,\n async (get, set, newTokenFrom: Token) => {\n let tokenFrom = get(twapTokenFromAtom);\n let tokenTo = get(twapTokenToAtom);\n const initTokenFrom = tokenFrom;\n\n // set the tokenFrom\n set(twapTokenFromAtom, newTokenFrom);\n tokenFrom = newTokenFrom;\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: \"twap\",\n });\n\n if (crosschainPossible) {\n const isTokenToFromAcross = isTokenFromAcross({\n token: tokenTo,\n fromChainId: tokenFrom.network,\n toChainId: tokenTo.network,\n mode: \"twap\",\n });\n\n if (!isTokenToFromAcross) {\n const maybeAcrossToken = findFirstTokenFromAcross({\n fromChainId: tokenFrom.network,\n toChainId: tokenTo.network,\n listByChainId: get(allTokensByChainAtom).listByChainId,\n mode: \"twap\",\n });\n\n set(twapTokenToAtom, maybeAcrossToken);\n }\n } else {\n if (tokenFrom.network !== tokenTo.network) {\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n tokenFrom.network,\n \"twap\"\n );\n\n tokenTo = areTokensSame(tokenFrom, defaultTokenTo)\n ? defaultTokenFrom\n : defaultTokenTo;\n set(twapTokenToAtom, tokenTo);\n } else {\n if (areTokensSame(tokenFrom, tokenTo)) {\n tokenTo = initTokenFrom;\n set(twapTokenToAtom, tokenTo);\n }\n }\n }\n }\n);\n\nexport const selectTwapTokenToAtom = atom(\n null,\n async (get, set, newTokenTo: Token) => {\n let tokenFrom = get(twapTokenFromAtom);\n\n // @TODO reenable TWAP crosschain when ready on the API\n if (newTokenTo.network !== tokenFrom.network) {\n return;\n }\n\n const selectableDestChains = getSelectableDestChains(get, {\n fromChainId: tokenFrom.network,\n mode: \"twap\",\n });\n if (!selectableDestChains.includes(newTokenTo.network)) return;\n\n let tokenTo = get(twapTokenToAtom);\n const initTokenTo = tokenTo;\n\n set(twapTokenToAtom, newTokenTo);\n tokenTo = newTokenTo;\n\n if (areTokensSame(tokenTo, tokenFrom)) {\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n tokenTo.network,\n \"twap\"\n );\n\n const defaultToken = areTokensSame(tokenFrom, defaultTokenFrom)\n ? defaultTokenTo\n : defaultTokenFrom;\n\n const wasCrosschain =\n initTokenTo && tokenFrom.network !== initTokenTo.network;\n\n const newTokenFrom = wasCrosschain\n ? defaultToken\n : (initTokenTo ?? defaultToken);\n\n set(twapTokenFromAtom, newTokenFrom);\n tokenFrom = newTokenFrom;\n }\n\n let needResetTokenFrom = false;\n\n const crosschainPossible = isCrosschainPossible({\n get,\n chainIdFrom: tokenFrom.network,\n chainIdTo: tokenTo.network,\n mode: \"twap\",\n });\n\n if (crosschainPossible) {\n const isTokenToFromAcross = isTokenFromAcross({\n token: tokenTo,\n fromChainId: tokenFrom.network,\n toChainId: tokenTo.network,\n mode: \"twap\",\n });\n\n if (!isTokenToFromAcross) {\n needResetTokenFrom = true;\n }\n }\n\n if (tokenFrom.network !== tokenTo.network && !crosschainPossible) {\n needResetTokenFrom = true;\n }\n const enabledSrcChains = get(enabledSrcChainsAtom);\n\n if (needResetTokenFrom) {\n let firstPossibleSrcChain = tokenTo.network;\n if (!enabledSrcChains.includes(tokenTo.network)) {\n for (const srcChain of enabledSrcChains) {\n const crosschainPossible = isCrosschainPossible({\n get,\n chainIdFrom: srcChain,\n chainIdTo: tokenTo.network,\n mode: \"twap\",\n });\n if (crosschainPossible) {\n firstPossibleSrcChain = srcChain;\n break;\n }\n }\n }\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n firstPossibleSrcChain,\n \"twap\"\n );\n const newTokenFrom = areTokensSame(tokenTo, defaultTokenFrom)\n ? defaultTokenTo\n : defaultTokenFrom;\n\n set(twapTokenFromAtom, newTokenFrom);\n tokenFrom = newTokenFrom;\n }\n\n // ended up changing tokenFrom network?\n if (tokenFrom.network !== wagmiConfig.state.chainId) {\n switchChain({\n chainId: tokenFrom.network,\n });\n }\n }\n);\n\nexport const syncTwapTokensAfterChainSwitch = (chainId: SupportedChainId) => {\n const enabledSrcChains = jotaiStore.get(enabledSrcChainsAtom);\n if (!enabledSrcChains.includes(chainId)) return;\n\n let tokenFrom = jotaiStore.get(twapTokenFromAtom);\n\n // chains are the same? do nothing\n if (tokenFrom.network === chainId) return;\n\n // get default tokens for the new chain\n const [defaultTokenFrom, defaultTokenTo] = pickDefaultTokenPair(\n chainId,\n \"twap\"\n );\n\n // update tokenFrom\n jotaiStore.set(twapTokenFromAtom, defaultTokenFrom);\n tokenFrom = defaultTokenFrom;\n\n let tokenTo = jotaiStore.get(twapTokenToAtom);\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: \"twap\",\n });\n\n if (crosschainPossible) {\n const isTokenToFromAcross = isTokenFromAcross({\n token: tokenTo,\n fromChainId: chainId,\n toChainId: tokenTo.network,\n mode: \"twap\",\n });\n\n if (!isTokenToFromAcross) {\n const maybeAcrossToken = findFirstTokenFromAcross({\n fromChainId: chainId,\n toChainId: tokenTo.network,\n listByChainId: jotaiStore.get(allTokensByChainAtom).listByChainId,\n mode: \"twap\",\n });\n\n tokenTo = maybeAcrossToken;\n jotaiStore.set(twapTokenToAtom, tokenTo);\n }\n } else {\n const selectableDestChains = getSelectableDestChains(jotaiStore.get, {\n fromChainId: tokenFrom.network,\n mode: \"twap\",\n });\n if (selectableDestChains.includes(chainId)) {\n tokenTo = defaultTokenTo;\n jotaiStore.set(twapTokenToAtom, tokenTo);\n } else {\n tokenTo = undefined;\n jotaiStore.set(twapTokenToAtom, tokenTo);\n }\n }\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"twapInputAmountAtom.js","names":[],"sources":["../../../../src/core/twap/state/twapInputAmountAtom.ts"],"sourcesContent":["import { atom } from \"jotai\";\nimport { parseUnits } from \"viem\";\nimport { twapTokenFromAtom, twapTokenToAtom } from \"./twapTokenAtoms\";\n\nexport const twapPayInputAmountAtom = atom(\"0\");\n\nexport const twapReceiveInputAmountAtom = atom(\"0\");\n\nexport const twapPayInputAmountWeiAtom = atom((get) => {\n const tokenFrom = get(twapTokenFromAtom);\n const payInputAmount = get(twapPayInputAmountAtom);\n return parseUnits(payInputAmount, tokenFrom.decimals).toString();\n});\n\nexport const twapReceiveInputAmountWeiAtom = atom((get) => {\n const tokenTo = get(twapTokenToAtom);\n if (tokenTo) {\n const receiveInputAmount = get(twapReceiveInputAmountAtom);\n return parseUnits(receiveInputAmount, tokenTo.decimals).toString();\n }\n});\n"],"mappings":";;;;AAIA,IAAa,IAAyB,EAAK,IAAI,EAElC,IAA6B,EAAK,IAAI,EAEtC,IAA4B,GAAM,MAAQ;CACrD,IAAM,IAAY,EAAI,EAAkB;AAExC,QAAO,EADgB,EAAI,EAAuB,EAChB,EAAU,SAAS,CAAC,UAAU;EAChE,EAEW,IAAgC,GAAM,MAAQ;CACzD,IAAM,IAAU,EAAI,EAAgB;AACpC,KAAI,EAEF,QAAO,EADoB,EAAI,EAA2B,EACpB,EAAQ,SAAS,CAAC,UAAU;EAEpE"}
1
+ {"version":3,"file":"twapInputAmountAtom.js","names":[],"sources":["../../../../src/core/twap/state/twapInputAmountAtom.ts"],"sourcesContent":["import { atom } from \"jotai\";\nimport { parseUnits } from \"viem\";\nimport { twapTokenFromAtom, twapTokenToAtom } from \"./twapTokenAtoms\";\n\nexport const twapPayInputAmountAtom = atom(\"0\");\n\nexport const twapReceiveInputAmountAtom = atom(\"0\");\n\nexport const twapPayInputAmountWeiAtom = atom((get) => {\n const tokenFrom = get(twapTokenFromAtom);\n const payInputAmount = get(twapPayInputAmountAtom);\n return parseUnits(payInputAmount, tokenFrom.decimals).toString();\n});\n\nexport const twapReceiveInputAmountWeiAtom = atom((get) => {\n const tokenTo = get(twapTokenToAtom);\n if (tokenTo) {\n const receiveInputAmount = get(twapReceiveInputAmountAtom);\n return parseUnits(receiveInputAmount, tokenTo.decimals).toString();\n }\n});\n"],"mappings":";;;;AAIA,IAAa,IAAyB,EAAK,IAAI,EAElC,IAA6B,EAAK,IAAI,EAEtC,IAA4B,GAAM,MAAQ;CACrD,IAAM,IAAY,EAAI,EAAkB;CAExC,OAAO,EADgB,EAAI,EACT,EAAgB,EAAU,SAAS,CAAC,UAAU;EAChE,EAEW,IAAgC,GAAM,MAAQ;CACzD,IAAM,IAAU,EAAI,EAAgB;CACpC,IAAI,GAEF,OAAO,EADoB,EAAI,EACb,EAAoB,EAAQ,SAAS,CAAC,UAAU;EAEpE"}
@@ -1 +1 @@
1
- {"version":3,"file":"twapParamsAtom.js","names":["atom","useAtomValue","getNumberWithinRange","DEFAULT_TWAP_DURATION","DEFAULT_TWAP_SLIPPAGE","DEFAULT_TWAP_SPLIT","TWAP_SLIPPAGE_MAX","TWAP_SLIPPAGE_MIN","TWAP_SPLIT_MAX","TWAP_SPLIT_MIN","TWAP_CUSTOM_DURATION_MIN_MINUTES","TWAP_MIN_SLICE_INTERVAL_S","produceTwapDeadlines","twapDurationAtom","value","_","set","newDuration","clampedDuration","Math","max","useTwapDuration","userTwapSplitAtom","twapSplitAtom","get","useTwapSplit","userTwapSlippageAtom","twapSlippageAtom","useTwapSlippage","twapDeadlinesAtom","durationMin","numSlices","useTwapSliceTooShort","sliceIntervalSec"],"sources":["../../../../src/core/twap/state/twapParamsAtom.ts"],"sourcesContent":["import { atom } from \"jotai\";\nimport { useAtomValue } from \"@/core/store\";\nimport { getNumberWithinRange } from \"@/lib/utils\";\nimport {\n DEFAULT_TWAP_DURATION,\n DEFAULT_TWAP_SLIPPAGE,\n DEFAULT_TWAP_SPLIT,\n TWAP_SLIPPAGE_MAX,\n TWAP_SLIPPAGE_MIN,\n TWAP_SPLIT_MAX,\n TWAP_SPLIT_MIN,\n TWAP_CUSTOM_DURATION_MIN_MINUTES,\n TWAP_MIN_SLICE_INTERVAL_S,\n} from \"./constants\";\nimport { produceTwapDeadlines } from \"@/lib/utils/twap\";\n\nexport const twapDurationAtom = atom(\n DEFAULT_TWAP_DURATION.value,\n (_, set, newDuration: number) => {\n const clampedDuration = Math.max(\n newDuration,\n TWAP_CUSTOM_DURATION_MIN_MINUTES\n );\n set(twapDurationAtom, clampedDuration);\n }\n);\n\nexport const useTwapDuration = () => useAtomValue(twapDurationAtom);\n\n// atom to track the user input, which can be out of range\nexport const userTwapSplitAtom = atom(DEFAULT_TWAP_SPLIT);\n\n// derived atom to ensure the actual split used in the order is always within range\nexport const twapSplitAtom = atom((get) =>\n getNumberWithinRange(get(userTwapSplitAtom), TWAP_SPLIT_MIN, TWAP_SPLIT_MAX)\n);\n\nexport const useTwapSplit = () => useAtomValue(twapSplitAtom);\n\n// atom to track the user input, which can be out of range\nexport const userTwapSlippageAtom = atom(DEFAULT_TWAP_SLIPPAGE);\n\n// derived atom to ensure the actual slippage used in the order is always within range\nexport const twapSlippageAtom = atom((get) =>\n getNumberWithinRange(\n get(userTwapSlippageAtom),\n TWAP_SLIPPAGE_MIN,\n TWAP_SLIPPAGE_MAX\n )\n);\n\nexport const useTwapSlippage = () => useAtomValue(twapSlippageAtom);\n\n/**\n * Derived atom that caches TWAP deadlines (orderDeadline, orderInterval).\n * Recomputes only when twapDurationAtom or twapSplitAtom changes,\n * keeping orderDeadline stable across unrelated form changes (token, amount, side, etc.).\n */\nexport const twapDeadlinesAtom = atom((get) => {\n const durationMin = get(twapDurationAtom);\n const numSlices = get(twapSplitAtom);\n return produceTwapDeadlines({ durationMin, numSlices });\n});\n\nexport const useTwapSliceTooShort = () => {\n const durationMin = useTwapDuration();\n const numSlices = useTwapSplit();\n const sliceIntervalSec = (durationMin * 60) / numSlices;\n return sliceIntervalSec < TWAP_MIN_SLICE_INTERVAL_S;\n};\n"],"mappings":";;;;;;AAgBA,IAAaa,IAAmBb,EAC9BG,EAAsBW,QACrBC,GAAGC,GAAKC,MAAwB;AAK/BD,GAAIH,GAJoBM,KAAKC,IAC3BH,GAAAA,GAED,CACqC;EAEzC,EAEYI,UAAwBpB,EAAaY,EAAiB,EAGtDS,IAAoBtB,EAAAA,EAAwB,EAG5CuB,IAAgBvB,GAAMwB,MACjCtB,EAAqBsB,EAAIF,EAAkB,EAAA,GAAA,IAC7C,CAAC,EAEYG,UAAqBxB,EAAasB,EAAc,EAGhDG,IAAuB1B,EAAAA,EAA2B,EAGlD2B,IAAmB3B,GAAMwB,MACpCtB,EACEsB,EAAIE,EAAqB,EACzBnB,GAAAA,GAGJ,CAAC,EAEYqB,UAAwB3B,EAAa0B,EAAiB,EAOtDE,IAAoB7B,GAAMwB,MAG9BZ,EAAqB;CAAEkB,aAFVN,EAAIX,EAAiB;CAEEkB,WADzBP,EAAID,EAAc;CACkB,CAAC,CACvD,EAEWS,UAAuB;CAClC,IAAAF,IAAoBT,GAAiB,EACrCU,IAAkBN,GAAc;AACwB,QAA9BK,IAAc,KAAMC,IAAAA"}
1
+ {"version":3,"file":"twapParamsAtom.js","names":["atom","useAtomValue","getNumberWithinRange","DEFAULT_TWAP_DURATION","DEFAULT_TWAP_SLIPPAGE","DEFAULT_TWAP_SPLIT","TWAP_SLIPPAGE_MAX","TWAP_SLIPPAGE_MIN","TWAP_SPLIT_MAX","TWAP_SPLIT_MIN","TWAP_CUSTOM_DURATION_MIN_MINUTES","TWAP_MIN_SLICE_INTERVAL_S","produceTwapDeadlines","twapDurationAtom","value","_","set","newDuration","clampedDuration","Math","max","useTwapDuration","userTwapSplitAtom","twapSplitAtom","get","useTwapSplit","userTwapSlippageAtom","twapSlippageAtom","useTwapSlippage","twapDeadlinesAtom","durationMin","numSlices","useTwapSliceTooShort","sliceIntervalSec"],"sources":["../../../../src/core/twap/state/twapParamsAtom.ts"],"sourcesContent":["import { atom } from \"jotai\";\nimport { useAtomValue } from \"@/core/store\";\nimport { getNumberWithinRange } from \"@/lib/utils\";\nimport {\n DEFAULT_TWAP_DURATION,\n DEFAULT_TWAP_SLIPPAGE,\n DEFAULT_TWAP_SPLIT,\n TWAP_SLIPPAGE_MAX,\n TWAP_SLIPPAGE_MIN,\n TWAP_SPLIT_MAX,\n TWAP_SPLIT_MIN,\n TWAP_CUSTOM_DURATION_MIN_MINUTES,\n TWAP_MIN_SLICE_INTERVAL_S,\n} from \"./constants\";\nimport { produceTwapDeadlines } from \"@/lib/utils/twap\";\n\nexport const twapDurationAtom = atom(\n DEFAULT_TWAP_DURATION.value,\n (_, set, newDuration: number) => {\n const clampedDuration = Math.max(\n newDuration,\n TWAP_CUSTOM_DURATION_MIN_MINUTES\n );\n set(twapDurationAtom, clampedDuration);\n }\n);\n\nexport const useTwapDuration = () => useAtomValue(twapDurationAtom);\n\n// atom to track the user input, which can be out of range\nexport const userTwapSplitAtom = atom(DEFAULT_TWAP_SPLIT);\n\n// derived atom to ensure the actual split used in the order is always within range\nexport const twapSplitAtom = atom((get) =>\n getNumberWithinRange(get(userTwapSplitAtom), TWAP_SPLIT_MIN, TWAP_SPLIT_MAX)\n);\n\nexport const useTwapSplit = () => useAtomValue(twapSplitAtom);\n\n// atom to track the user input, which can be out of range\nexport const userTwapSlippageAtom = atom(DEFAULT_TWAP_SLIPPAGE);\n\n// derived atom to ensure the actual slippage used in the order is always within range\nexport const twapSlippageAtom = atom((get) =>\n getNumberWithinRange(\n get(userTwapSlippageAtom),\n TWAP_SLIPPAGE_MIN,\n TWAP_SLIPPAGE_MAX\n )\n);\n\nexport const useTwapSlippage = () => useAtomValue(twapSlippageAtom);\n\n/**\n * Derived atom that caches TWAP deadlines (orderDeadline, orderInterval).\n * Recomputes only when twapDurationAtom or twapSplitAtom changes,\n * keeping orderDeadline stable across unrelated form changes (token, amount, side, etc.).\n */\nexport const twapDeadlinesAtom = atom((get) => {\n const durationMin = get(twapDurationAtom);\n const numSlices = get(twapSplitAtom);\n return produceTwapDeadlines({ durationMin, numSlices });\n});\n\nexport const useTwapSliceTooShort = () => {\n const durationMin = useTwapDuration();\n const numSlices = useTwapSplit();\n const sliceIntervalSec = (durationMin * 60) / numSlices;\n return sliceIntervalSec < TWAP_MIN_SLICE_INTERVAL_S;\n};\n"],"mappings":";;;;;;AAgBA,IAAaa,IAAmBb,EAC9BG,EAAsBW,QACrBC,GAAGC,GAAKC,MAAwB;CAK/BD,EAAIH,GAJoBM,KAAKC,IAC3BH,GAAAA,GAGoBC,CAAgB;EAEzC,EAEYG,UAAwBpB,EAAaY,EAAiB,EAGtDS,IAAoBtB,EAAAA,EAAwB,EAG5CuB,IAAgBvB,GAAMwB,MACjCtB,EAAqBsB,EAAIF,EAAkB,EAAA,GAAA,IAC7C,CAAC,EAEYG,UAAqBxB,EAAasB,EAAc,EAGhDG,IAAuB1B,EAAAA,EAA2B,EAGlD2B,IAAmB3B,GAAMwB,MACpCtB,EACEsB,EAAIE,EAAqB,EACzBnB,GAAAA,GAGJ,CAAC,EAEYqB,UAAwB3B,EAAa0B,EAAiB,EAOtDE,IAAoB7B,GAAMwB,MAG9BZ,EAAqB;CAAEkB,aAFVN,EAAIX,EAEMiB;CAAaC,WADzBP,EAAID,EACqBQ;CAAW,CAAC,CACvD,EAEWC,UAAuB;CAClC,IAAAF,IAAoBT,GAAiB,EACrCU,IAAkBN,GAAc;CACwB,OAA9BK,IAAc,KAAMC,IAAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"twapSideAtom.js","names":["twapTokenToAtom","currentTwapInputAtom","SwapSideUnion","atom","useAtomValue","isTwapCrossChainAtom","twapSideAtom","get","tokenTo","isCrosschain","currentTwapInput","useTwapSide"],"sources":["../../../../src/core/twap/state/twapSideAtom.ts"],"sourcesContent":["import { twapTokenToAtom } from \"./twapTokenAtoms\";\nimport { currentTwapInputAtom } from \"./currentTwapInputAtom\";\nimport type { SwapSideUnion } from \"@velora-dex/sdk\";\nimport { atom } from \"jotai\";\nimport { useAtomValue } from \"@/core/store\";\nimport { isTwapCrossChainAtom } from \"./isCrosschainAtom\";\n\nexport const twapSideAtom = atom<SwapSideUnion>((get) => {\n const tokenTo = get(twapTokenToAtom);\n\n const isCrosschain = get(isTwapCrossChainAtom);\n\n if (isCrosschain) {\n // @TODO revert this change when Crosschain BUY is supported for TWAP\n return \"SELL\";\n }\n\n if (!tokenTo) {\n return \"SELL\";\n }\n\n const currentTwapInput = get(currentTwapInputAtom);\n\n return currentTwapInput === \"from\" ? \"SELL\" : \"BUY\";\n});\n\nexport const useTwapSide = () => {\n return useAtomValue(twapSideAtom);\n};\n"],"mappings":";;;;;;AAOA,IAAaM,IAAeH,GAAqBI,MAAQ;CACvD,IAAMC,IAAUD,EAAIP,EAAgB;AAepC,QAbqBO,EAAIF,EAAqB,IAO1C,CAACG,KAIoBD,EAAIN,EAAqB,KAEtB,SALnB,SAKqC;EAC9C,EAEWU,UACJP,EAAaE,EAAa"}
1
+ {"version":3,"file":"twapSideAtom.js","names":["twapTokenToAtom","currentTwapInputAtom","SwapSideUnion","atom","useAtomValue","isTwapCrossChainAtom","twapSideAtom","get","tokenTo","isCrosschain","currentTwapInput","useTwapSide"],"sources":["../../../../src/core/twap/state/twapSideAtom.ts"],"sourcesContent":["import { twapTokenToAtom } from \"./twapTokenAtoms\";\nimport { currentTwapInputAtom } from \"./currentTwapInputAtom\";\nimport type { SwapSideUnion } from \"@velora-dex/sdk\";\nimport { atom } from \"jotai\";\nimport { useAtomValue } from \"@/core/store\";\nimport { isTwapCrossChainAtom } from \"./isCrosschainAtom\";\n\nexport const twapSideAtom = atom<SwapSideUnion>((get) => {\n const tokenTo = get(twapTokenToAtom);\n\n const isCrosschain = get(isTwapCrossChainAtom);\n\n if (isCrosschain) {\n // @TODO revert this change when Crosschain BUY is supported for TWAP\n return \"SELL\";\n }\n\n if (!tokenTo) {\n return \"SELL\";\n }\n\n const currentTwapInput = get(currentTwapInputAtom);\n\n return currentTwapInput === \"from\" ? \"SELL\" : \"BUY\";\n});\n\nexport const useTwapSide = () => {\n return useAtomValue(twapSideAtom);\n};\n"],"mappings":";;;;;;AAOA,IAAaM,IAAeH,GAAqBI,MAAQ;CACvD,IAAMC,IAAUD,EAAIP,EAAgB;CAepC,OAbqBO,EAAIF,EAErBI,IAKA,CAACD,KAIoBD,EAAIN,EAEtBS,KAAqB,SALnB,SAKqC;EAC9C,EAEWC,UACJP,EAAaE,EAAa"}
@@ -1 +1 @@
1
- {"version":3,"file":"minimumReceiveable.js","names":["DetailWithValue","DeltaOrBridgePrice","getDestAmountAfterFeeAndSlippage","toDecimalTrimmed","getTotalTwapAmount","Token","formatUnits","tooltip","constructMinReceivedForTwapDetail","price","slippagePercent","numSlices","isLoading","tokenTo","swapSide","title","value","minDestAmount","minDestAmountTotal","chunkWei","minDestAmountUnit","BigInt","decimals","formattedMinDestAmountUnit","symbol"],"sources":["../../../../src/core/twap/twapDetails/minimumReceiveable.ts"],"sourcesContent":["import type { DetailWithValue } from \"@/components/widget/Details/types\";\nimport type { DeltaOrBridgePrice } from \"@/hooks/swap/prices/types\";\nimport { getDestAmountAfterFeeAndSlippage } from \"@/lib/utils/price\";\nimport { toDecimalTrimmed } from \"@/lib/utils/toDecimal\";\nimport { getTotalTwapAmount } from \"@/lib/utils/twap\";\nimport type { Token } from \"@/tokens/state/types\";\n\nimport { formatUnits } from \"viem\";\n\nconst tooltip = \"The minimum amount of token to receive after slippage.\";\n\nexport function constructMinReceivedForTwapDetail({\n price,\n slippagePercent,\n numSlices,\n isLoading,\n tokenTo,\n swapSide,\n}: {\n price?: DeltaOrBridgePrice;\n slippagePercent: number;\n numSlices: number;\n isLoading: boolean;\n tokenTo?: Token;\n swapSide?: \"SELL\" | \"BUY\";\n}): DetailWithValue | undefined {\n // in case of BUY minReceived= exactly destAmount*numSlices\n if (swapSide === \"BUY\") return;\n\n const title = \"Minimum Receivable\";\n\n if (!price || !tokenTo) {\n return {\n title,\n value: null,\n isLoading,\n tooltip,\n };\n }\n\n const minDestAmount = getDestAmountAfterFeeAndSlippage({\n price,\n slippagePercent,\n });\n\n // minDestAmount*numSlices\n const minDestAmountTotal = getTotalTwapAmount({\n chunkWei: minDestAmount,\n numSlices,\n });\n\n const minDestAmountUnit = formatUnits(\n BigInt(minDestAmountTotal),\n tokenTo.decimals\n );\n\n const formattedMinDestAmountUnit = toDecimalTrimmed(minDestAmountUnit);\n\n return {\n title,\n value: `${formattedMinDestAmountUnit} ${tokenTo.symbol}`,\n isLoading,\n tooltip,\n };\n}\n"],"mappings":";;;;;AASA,IAAMO,IAAU;AAEhB,SAAgBC,EAAkC,EAChDC,UACAC,oBACAC,cACAC,cACAC,YACAC,eAQ8B;AAE9B,KAAIA,MAAa,MAAO;CAExB,IAAMC,IAAQ;AAEd,KAAI,CAACN,KAAS,CAACI,EACb,QAAO;EACLE;EACAC,OAAO;EACPJ;EACAL;EACD;CASH,IAAMW,IAAqBd,EAAmB;EAC5Ce,UAPoBjB,EAAiC;GACrDO;GACAC;GACD,CAAC;EAKAC;EACD,CAAC;AASF,QAAO;EACLI;EACAC,OAAO,GAJ0Bb,EALTG,EACxBe,OAAOH,EAAmB,EAC1BL,EAAQS,SACT,CAEqE,CAIhC,GAAIT,EAAQW;EAChDZ;EACAL;EACD"}
1
+ {"version":3,"file":"minimumReceiveable.js","names":["DetailWithValue","DeltaOrBridgePrice","getDestAmountAfterFeeAndSlippage","toDecimalTrimmed","getTotalTwapAmount","Token","formatUnits","tooltip","constructMinReceivedForTwapDetail","price","slippagePercent","numSlices","isLoading","tokenTo","swapSide","title","value","minDestAmount","minDestAmountTotal","chunkWei","minDestAmountUnit","BigInt","decimals","formattedMinDestAmountUnit","symbol"],"sources":["../../../../src/core/twap/twapDetails/minimumReceiveable.ts"],"sourcesContent":["import type { DetailWithValue } from \"@/components/widget/Details/types\";\nimport type { DeltaOrBridgePrice } from \"@/hooks/swap/prices/types\";\nimport { getDestAmountAfterFeeAndSlippage } from \"@/lib/utils/price\";\nimport { toDecimalTrimmed } from \"@/lib/utils/toDecimal\";\nimport { getTotalTwapAmount } from \"@/lib/utils/twap\";\nimport type { Token } from \"@/tokens/state/types\";\n\nimport { formatUnits } from \"viem\";\n\nconst tooltip = \"The minimum amount of token to receive after slippage.\";\n\nexport function constructMinReceivedForTwapDetail({\n price,\n slippagePercent,\n numSlices,\n isLoading,\n tokenTo,\n swapSide,\n}: {\n price?: DeltaOrBridgePrice;\n slippagePercent: number;\n numSlices: number;\n isLoading: boolean;\n tokenTo?: Token;\n swapSide?: \"SELL\" | \"BUY\";\n}): DetailWithValue | undefined {\n // in case of BUY minReceived= exactly destAmount*numSlices\n if (swapSide === \"BUY\") return;\n\n const title = \"Minimum Receivable\";\n\n if (!price || !tokenTo) {\n return {\n title,\n value: null,\n isLoading,\n tooltip,\n };\n }\n\n const minDestAmount = getDestAmountAfterFeeAndSlippage({\n price,\n slippagePercent,\n });\n\n // minDestAmount*numSlices\n const minDestAmountTotal = getTotalTwapAmount({\n chunkWei: minDestAmount,\n numSlices,\n });\n\n const minDestAmountUnit = formatUnits(\n BigInt(minDestAmountTotal),\n tokenTo.decimals\n );\n\n const formattedMinDestAmountUnit = toDecimalTrimmed(minDestAmountUnit);\n\n return {\n title,\n value: `${formattedMinDestAmountUnit} ${tokenTo.symbol}`,\n isLoading,\n tooltip,\n };\n}\n"],"mappings":";;;;;AASA,IAAMO,IAAU;AAEhB,SAAgBC,EAAkC,EAChDC,UACAC,oBACAC,cACAC,cACAC,YACAC,eAQ8B;CAE9B,IAAIA,MAAa,OAAO;CAExB,IAAMC,IAAQ;CAEd,IAAI,CAACN,KAAS,CAACI,GACb,OAAO;EACLE;EACAC,OAAO;EACPJ;EACAL;EACD;CASH,IAAMW,IAAqBd,EAAmB;EAC5Ce,UAPoBjB,EAAiC;GACrDO;GACAC;GACD,CAIWO;EACVN;EACD,CAAC;CASF,OAAO;EACLI;EACAC,OAAO,GAJ0Bb,EALTG,EACxBe,OAAOH,EAAmB,EAC1BL,EAAQS,SAG0CF,CAIxCG,CAA0B,GAAIV,EAAQW;EAChDZ;EACAL;EACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"useTwapDetailsListProps.js","names":["DetailWithValue","DetailWithValueListExpandableProps","useWidgetTokens","useAtomValue","twapPayInputAmountWeiAtom","twapReceiveInputAmountWeiAtom","twapDurationAtom","twapSlippageAtom","TWAP_DURATION_OPTIONS","DeltaIcon","useTwapPrices","constructMinReceivedForTwapDetail","isTruthy","constructPriceImpactDetail","SwapRateWithPriceImpactRow","Duration","useTwapDetailsListProps","$","_c","tokenFrom","tokenTo","isLoading","side","price","numSlices","getPriceImpact","refetch","isFetching","srcAmountWei","destAmountWei","duration","slippage","undefined","isBuy","priceImpactDetail","t0","durationLabel","find","o","value","label","priceImpactResult","minReceivableDetail","slippagePercent","swapSide","t1","Symbol","for","title","filter","details","srcToken","destToken","reverse","t2","onClick","cancelRefetch","animate","t3","t4","root","t5","trigger","classes"],"sources":["../../../src/core/twap/useTwapDetailsListProps.tsx"],"sourcesContent":["import type {\n DetailWithValue,\n DetailWithValueListExpandableProps,\n} from \"@/components/widget/Details/types\";\nimport { useWidgetTokens } from \"../inputs/state/common\";\nimport { useAtomValue } from \"@/core/store\";\nimport {\n twapPayInputAmountWeiAtom,\n twapReceiveInputAmountWeiAtom,\n} from \"./state/twapInputAmountAtom\";\nimport { twapDurationAtom } from \"./state/twapParamsAtom\";\nimport { twapSlippageAtom } from \"./state/twapParamsAtom\";\nimport { TWAP_DURATION_OPTIONS } from \"./state/constants\";\nimport { DeltaIcon } from \"@/components/widget/Icon/DeltaIcon\";\nimport { useTwapPrices } from \"@/hooks/swap/prices/useTwapPrices\";\nimport { constructMinReceivedForTwapDetail } from \"./twapDetails/minimumReceiveable\";\nimport { isTruthy } from \"@/lib/utils\";\nimport { constructPriceImpactDetail } from \"../swapDetails/priceImpact\";\nimport { SwapRateWithPriceImpactRow } from \"@/components/widget/SwapRateWithPriceImpactRow/SwapRateWithPriceImpactRow\";\nimport { Duration } from \"@/components/widget/Duration/Duration\";\n\nexport const useTwapDetailsListProps =\n (): DetailWithValueListExpandableProps | null => {\n const { tokenFrom, tokenTo } = useWidgetTokens(\"twap\");\n const {\n isLoading,\n side,\n price,\n numSlices,\n getPriceImpact,\n refetch,\n isFetching,\n } = useTwapPrices();\n\n const srcAmountWei = useAtomValue(twapPayInputAmountWeiAtom);\n const destAmountWei = useAtomValue(twapReceiveInputAmountWeiAtom);\n\n const duration = useAtomValue(twapDurationAtom);\n const slippage = useAtomValue(twapSlippageAtom);\n\n if (\n !tokenTo ||\n destAmountWei === undefined ||\n !srcAmountWei ||\n srcAmountWei === \"0\"\n ) {\n return null;\n }\n\n const isBuy = side === \"BUY\";\n\n const durationLabel = TWAP_DURATION_OPTIONS.find(\n (o) => o.value === duration\n )?.label ?? <Duration timeMs={duration * 60 * 1000} />;\n\n const priceImpactDetail = constructPriceImpactDetail({\n priceImpactResult: getPriceImpact(),\n isLoading,\n });\n\n const minReceivableDetail = constructMinReceivedForTwapDetail({\n price,\n isLoading,\n numSlices,\n tokenTo,\n slippagePercent: slippage,\n swapSide: side,\n });\n\n const details: DetailWithValue[] = [\n {\n title: \"Order Routing\",\n value: (\n <div className=\"flex items-center gap-1\">\n <DeltaIcon /> Delta\n </div>\n ),\n },\n priceImpactDetail,\n {\n title: \"Slippage Tolerance\",\n value: `${slippage}%`,\n },\n {\n title: \"Order Duration\",\n value: durationLabel,\n },\n minReceivableDetail,\n ].filter(isTruthy);\n\n return {\n details,\n trigger: (\n <SwapRateWithPriceImpactRow\n swapRateProps={{\n srcToken: tokenFrom,\n destToken: tokenTo,\n srcAmountWei,\n destAmountWei,\n isLoading,\n reverse: isBuy,\n // comment prefix out so the whole row doesn't wrap whith refresh button\n // prefix: \"Market Rate:\",\n }}\n priceImpactDetail={priceImpactDetail}\n refreshButtonProps={\n price\n ? {\n onClick: () => refetch({ cancelRefetch: false }),\n animate: isFetching,\n }\n : undefined\n }\n />\n ),\n classes: {\n root: \"mt-4\",\n },\n };\n };\n"],"mappings":";;;;;;;;;;;;;;;AAqBA,IAAagB,UACX;CAAA,IAAAC,IAAAC,EAAA,GAAA,EACE,EAAAC,cAAAC,eAA+BlB,EAAgB,OAAO,EACtD,EAAAmB,cAAAC,SAAAC,UAAAC,cAAAC,mBAAAC,YAAAC,kBAQIjB,GAAe,EAEnBkB,IAAqBzB,EAAaC,EAA0B,EAC5DyB,IAAsB1B,EAAaE,EAA8B,EAEjEyB,IAAiB3B,EAAaG,EAAiB,EAC/CyB,IAAiB5B,EAAaI,EAAiB;AAE/C,KACE,CAACa,KACDS,MAAkBG,KAAAA,KADlB,CAECJ,KACDA,MAAiB,IAAG,QAEb;CAGT,IAAAK,IAAcX,MAAS,OAAMY,GAAAC;AAAA,KAAAlB,EAAA,OAAAa,KAAAb,EAAA,OAAAQ,KAAAR,EAAA,OAAAI,KAAAJ,EAAA,OAAAO,KAAAP,EAAA,OAAAM,KAAAN,EAAA,OAAAK,KAAAL,EAAA,OAAAc,KAAAd,EAAA,OAAAG,GAAA;EAE7B,IAAAgB,IAAsB5B,EAAqB6B,MACzCC,MAAOA,EAACC,UAAWT,EACb,EAAAU,SAAI,kBAAC,GAAD,EAAkB,QAAAV,IAAW,KAAK,KAAQ,CAAA;AAEtDI,MAA0BrB,EAA2B;GAAA4B,mBAChChB,GAAgB;GAAAJ;GAEpC,CAAC;EAEF,IAAAqB,IAA4B/B,EAAkC;GAAAY;GAAAF;GAAAG;GAAAJ;GAAAuB,iBAK3CZ;GAAQa,UACftB;GACX,CAAC,EAACuB;AAqBe5B,EArBfA,EAAA,QAAA6B,OAAAC,IAAA,4BAAA,IAMGF,IAAA,kBAAA,OAAA;GAAe,WAAA;aAAf,CACE,kBAAC,GAAD,EAAa,CAAA,EAAA,SACT;MAAA5B,EAAA,MAAA4B,KAAAA,IAAA5B,EAAA,KANuBkB,IAAA;GACjC;IAAAa,OACS;IAAeT,OAEpBM;IAIH;GACDX;GACA;IAAAc,OACS;IAAoBT,OACpB,GAAGR,EAAQ;IACnB;GACD;IAAAiB,OACS;IAAgBT,OAChBH;IACR;GACDM;GACD,CAAAO,OAAQrC,EAAS,EAAAK,EAAA,KAAAa,GAAAb,EAAA,KAAAQ,GAAAR,EAAA,KAAAI,GAAAJ,EAAA,KAAAO,GAAAP,EAAA,KAAAM,GAAAN,EAAA,KAAAK,GAAAL,EAAA,KAAAc,GAAAd,EAAA,KAAAG,GAAAH,EAAA,KAAAiB,GAAAjB,EAAA,KAAAkB;OAAAA,CAAAD,IAAAjB,EAAA,IAAAkB,IAAAlB,EAAA;CAnBlB,IAAAiC,IAAmCf,GAmBhBU;AAAA,CAAA5B,EAAA,QAAAY,KAAAZ,EAAA,QAAAgB,KAAAhB,EAAA,QAAAI,KAAAJ,EAAA,QAAAW,KAAAX,EAAA,QAAAE,KAAAF,EAAA,QAAAG,KAMEyB,IAAA;EAAAM,UACHhC;EAASiC,WACRhC;EAAOQ;EAAAC;EAAAR;EAAAgC,SAITpB;EAGV,EAAAhB,EAAA,MAAAY,GAAAZ,EAAA,MAAAgB,GAAAhB,EAAA,MAAAI,GAAAJ,EAAA,MAAAW,GAAAX,EAAA,MAAAE,GAAAF,EAAA,MAAAG,GAAAH,EAAA,MAAA4B,KAAAA,IAAA5B,EAAA;CAAA,IAAAqC;AAAA,CAAArC,EAAA,QAAAU,KAAAV,EAAA,QAAAM,KAAAN,EAAA,QAAAS,KAGC4B,IAAA/B,IAAA;EAAAgC,eAEqB7B,EAAQ,EAAA8B,eAAiB,IAAO,CAAC;EAAAC,SACvC9B;EAEF,GALbK,KAAAA,GAKaf,EAAA,MAAAU,GAAAV,EAAA,MAAAM,GAAAN,EAAA,MAAAS,GAAAT,EAAA,MAAAqC,KAAAA,IAAArC,EAAA;CAAA,IAAAyC;AAAA,CAAAzC,EAAA,QAAAiB,KAAAjB,EAAA,QAAA4B,KAAA5B,EAAA,QAAAqC,KAlBjBI,IAAA,kBAAC,GAAD;EACiB,eAAAb;EAUIX;EAEjB,oBAAAoB;EAOF,CAAA,EAAArC,EAAA,MAAAiB,GAAAjB,EAAA,MAAA4B,GAAA5B,EAAA,MAAAqC,GAAArC,EAAA,MAAAyC,KAAAA,IAAAzC,EAAA;CAAA,IAAA0C;AAAA,CAAA1C,EAAA,QAAA6B,OAAAC,IAAA,4BAAA,IAEKY,IAAA,EAAAC,MACD,QACP,EAAA3C,EAAA,MAAA0C,KAAAA,IAAA1C,EAAA;CAAA,IAAA4C;AACF,QADE5C,EAAA,QAAAiC,KAAAjC,EAAA,QAAAyC,KA3BIG,IAAA;EAAAX;EAAAY,SAGHJ;EAoBEK,SAEKJ;EAGV,EAAA1C,EAAA,MAAAiC,GAAAjC,EAAA,MAAAyC,GAAAzC,EAAA,MAAA4C,KAAAA,IAAA5C,EAAA,KA5BM4C"}
1
+ {"version":3,"file":"useTwapDetailsListProps.js","names":["DetailWithValue","DetailWithValueListExpandableProps","useWidgetTokens","useAtomValue","twapPayInputAmountWeiAtom","twapReceiveInputAmountWeiAtom","twapDurationAtom","twapSlippageAtom","TWAP_DURATION_OPTIONS","DeltaIcon","useTwapPrices","constructMinReceivedForTwapDetail","isTruthy","constructPriceImpactDetail","SwapRateWithPriceImpactRow","Duration","useTwapDetailsListProps","$","_c","tokenFrom","tokenTo","isLoading","side","price","numSlices","getPriceImpact","refetch","isFetching","srcAmountWei","destAmountWei","duration","slippage","undefined","isBuy","priceImpactDetail","t0","durationLabel","find","o","value","label","priceImpactResult","minReceivableDetail","slippagePercent","swapSide","t1","Symbol","for","title","filter","details","srcToken","destToken","reverse","t2","onClick","cancelRefetch","animate","t3","t4","root","t5","trigger","classes"],"sources":["../../../src/core/twap/useTwapDetailsListProps.tsx"],"sourcesContent":["import type {\n DetailWithValue,\n DetailWithValueListExpandableProps,\n} from \"@/components/widget/Details/types\";\nimport { useWidgetTokens } from \"../inputs/state/common\";\nimport { useAtomValue } from \"@/core/store\";\nimport {\n twapPayInputAmountWeiAtom,\n twapReceiveInputAmountWeiAtom,\n} from \"./state/twapInputAmountAtom\";\nimport { twapDurationAtom } from \"./state/twapParamsAtom\";\nimport { twapSlippageAtom } from \"./state/twapParamsAtom\";\nimport { TWAP_DURATION_OPTIONS } from \"./state/constants\";\nimport { DeltaIcon } from \"@/components/widget/Icon/DeltaIcon\";\nimport { useTwapPrices } from \"@/hooks/swap/prices/useTwapPrices\";\nimport { constructMinReceivedForTwapDetail } from \"./twapDetails/minimumReceiveable\";\nimport { isTruthy } from \"@/lib/utils\";\nimport { constructPriceImpactDetail } from \"../swapDetails/priceImpact\";\nimport { SwapRateWithPriceImpactRow } from \"@/components/widget/SwapRateWithPriceImpactRow/SwapRateWithPriceImpactRow\";\nimport { Duration } from \"@/components/widget/Duration/Duration\";\n\nexport const useTwapDetailsListProps =\n (): DetailWithValueListExpandableProps | null => {\n const { tokenFrom, tokenTo } = useWidgetTokens(\"twap\");\n const {\n isLoading,\n side,\n price,\n numSlices,\n getPriceImpact,\n refetch,\n isFetching,\n } = useTwapPrices();\n\n const srcAmountWei = useAtomValue(twapPayInputAmountWeiAtom);\n const destAmountWei = useAtomValue(twapReceiveInputAmountWeiAtom);\n\n const duration = useAtomValue(twapDurationAtom);\n const slippage = useAtomValue(twapSlippageAtom);\n\n if (\n !tokenTo ||\n destAmountWei === undefined ||\n !srcAmountWei ||\n srcAmountWei === \"0\"\n ) {\n return null;\n }\n\n const isBuy = side === \"BUY\";\n\n const durationLabel = TWAP_DURATION_OPTIONS.find(\n (o) => o.value === duration\n )?.label ?? <Duration timeMs={duration * 60 * 1000} />;\n\n const priceImpactDetail = constructPriceImpactDetail({\n priceImpactResult: getPriceImpact(),\n isLoading,\n });\n\n const minReceivableDetail = constructMinReceivedForTwapDetail({\n price,\n isLoading,\n numSlices,\n tokenTo,\n slippagePercent: slippage,\n swapSide: side,\n });\n\n const details: DetailWithValue[] = [\n {\n title: \"Order Routing\",\n value: (\n <div className=\"flex items-center gap-1\">\n <DeltaIcon /> Delta\n </div>\n ),\n },\n priceImpactDetail,\n {\n title: \"Slippage Tolerance\",\n value: `${slippage}%`,\n },\n {\n title: \"Order Duration\",\n value: durationLabel,\n },\n minReceivableDetail,\n ].filter(isTruthy);\n\n return {\n details,\n trigger: (\n <SwapRateWithPriceImpactRow\n swapRateProps={{\n srcToken: tokenFrom,\n destToken: tokenTo,\n srcAmountWei,\n destAmountWei,\n isLoading,\n reverse: isBuy,\n // comment prefix out so the whole row doesn't wrap whith refresh button\n // prefix: \"Market Rate:\",\n }}\n priceImpactDetail={priceImpactDetail}\n refreshButtonProps={\n price\n ? {\n onClick: () => refetch({ cancelRefetch: false }),\n animate: isFetching,\n }\n : undefined\n }\n />\n ),\n classes: {\n root: \"mt-4\",\n },\n };\n };\n"],"mappings":";;;;;;;;;;;;;;;AAqBA,IAAagB,UACX;CAAA,IAAAC,IAAAC,EAAA,GAAA,EACE,EAAAC,cAAAC,eAA+BlB,EAAgB,OAAO,EACtD,EAAAmB,cAAAC,SAAAC,UAAAC,cAAAC,mBAAAC,YAAAC,kBAQIjB,GAAe,EAEnBkB,IAAqBzB,EAAaC,EAA0B,EAC5DyB,IAAsB1B,EAAaE,EAA8B,EAEjEyB,IAAiB3B,EAAaG,EAAiB,EAC/CyB,IAAiB5B,EAAaI,EAAiB;CAE/C,IACE,CAACa,KACDS,MAAkBG,KAAAA,KADlB,CAECJ,KACDA,MAAiB,KAAG,OAEb;CAGT,IAAAK,IAAcX,MAAS,OAAMY,GAAAC;CAAA,IAAAlB,EAAA,OAAAa,KAAAb,EAAA,OAAAQ,KAAAR,EAAA,OAAAI,KAAAJ,EAAA,OAAAO,KAAAP,EAAA,OAAAM,KAAAN,EAAA,OAAAK,KAAAL,EAAA,OAAAc,KAAAd,EAAA,OAAAG,GAAA;EAE7B,IAAAgB,IAAsB5B,EAAqB6B,MACzCC,MAAOA,EAACC,UAAWT,EACb,EAAAU,SAAI,kBAAC,GAAD,EAAkB,QAAAV,IAAW,KAAK,KAAQ,CAAA;EAEtDI,IAA0BrB,EAA2B;GAAA4B,mBAChChB,GAAgB;GAAAJ;GAEpC,CAAC;EAEF,IAAAqB,IAA4B/B,EAAkC;GAAAY;GAAAF;GAAAG;GAAAJ;GAAAuB,iBAK3CZ;GAAQa,UACftB;GACX,CAAC,EAACuB;EAqBe5B,AArBfA,EAAA,QAAA6B,OAAAC,IAAA,4BAAA,IAMGF,IAAA,kBAAA,OAAA;GAAe,WAAA;aAAf,CACE,kBAAC,GAAD,EAAa,CAAA,EAAA,SACT;MAAA5B,EAAA,MAAA4B,KAAAA,IAAA5B,EAAA,KANuBkB,IAAA;GACjC;IAAAa,OACS;IAAeT,OAEpBM;IAIH;GACDX;GACA;IAAAc,OACS;IAAoBT,OACpB,GAAGR,EAAQ;IACnB;GACD;IAAAiB,OACS;IAAgBT,OAChBH;IACR;GACDM;GACD,CAAAO,OAAQrC,EAAS,EAAAK,EAAA,KAAAa,GAAAb,EAAA,KAAAQ,GAAAR,EAAA,KAAAI,GAAAJ,EAAA,KAAAO,GAAAP,EAAA,KAAAM,GAAAN,EAAA,KAAAK,GAAAL,EAAA,KAAAc,GAAAd,EAAA,KAAAG,GAAAH,EAAA,KAAAiB,GAAAjB,EAAA,KAAAkB;QAAAA,AAAAD,IAAAjB,EAAA,IAAAkB,IAAAlB,EAAA;CAnBlB,IAAAiC,IAAmCf,GAmBhBU;CAAA,AAAA5B,EAAA,QAAAY,KAAAZ,EAAA,QAAAgB,KAAAhB,EAAA,QAAAI,KAAAJ,EAAA,QAAAW,KAAAX,EAAA,QAAAE,KAAAF,EAAA,QAAAG,KAMEyB,IAAA;EAAAM,UACHhC;EAASiC,WACRhC;EAAOQ;EAAAC;EAAAR;EAAAgC,SAITpB;EAGV,EAAAhB,EAAA,MAAAY,GAAAZ,EAAA,MAAAgB,GAAAhB,EAAA,MAAAI,GAAAJ,EAAA,MAAAW,GAAAX,EAAA,MAAAE,GAAAF,EAAA,MAAAG,GAAAH,EAAA,MAAA4B,KAAAA,IAAA5B,EAAA;CAAA,IAAAqC;CAAA,AAAArC,EAAA,QAAAU,KAAAV,EAAA,QAAAM,KAAAN,EAAA,QAAAS,KAGC4B,IAAA/B,IAAA;EAAAgC,eAEqB7B,EAAQ,EAAA8B,eAAiB,IAAO,CAAC;EAAAC,SACvC9B;EAEF,GALbK,KAAAA,GAKaf,EAAA,MAAAU,GAAAV,EAAA,MAAAM,GAAAN,EAAA,MAAAS,GAAAT,EAAA,MAAAqC,KAAAA,IAAArC,EAAA;CAAA,IAAAyC;CAAA,AAAAzC,EAAA,QAAAiB,KAAAjB,EAAA,QAAA4B,KAAA5B,EAAA,QAAAqC,KAlBjBI,IAAA,kBAAC,GAAD;EACiB,eAAAb;EAUIX;EAEjB,oBAAAoB;EAOF,CAAA,EAAArC,EAAA,MAAAiB,GAAAjB,EAAA,MAAA4B,GAAA5B,EAAA,MAAAqC,GAAArC,EAAA,MAAAyC,KAAAA,IAAAzC,EAAA;CAAA,IAAA0C;CAAA,AAAA1C,EAAA,QAAA6B,OAAAC,IAAA,4BAAA,IAEKY,IAAA,EAAAC,MACD,QACP,EAAA3C,EAAA,MAAA0C,KAAAA,IAAA1C,EAAA;CAAA,IAAA4C;CACF,OADE5C,EAAA,QAAAiC,KAAAjC,EAAA,QAAAyC,KA3BIG,IAAA;EAAAX;EAAAY,SAGHJ;EAoBEK,SAEKJ;EAGV,EAAA1C,EAAA,MAAAiC,GAAAjC,EAAA,MAAAyC,GAAAzC,EAAA,MAAA4C,KAAAA,IAAA5C,EAAA,KA5BM4C"}
@@ -1 +1 @@
1
- {"version":3,"file":"useTwapTokenFromInputProps.js","names":["TokenInputProps","useAtomValue","useSetAtom","TokenInputExtraProps","useLogger","twapPayInputAmountAtom","twapPayInputAmountWeiAtom","useChainId","useTokenBalance","LONG_STALE_TIME_FOR_REACTIVENESS","MEDIUM_STALE_TIME_FOR_REACTIVENESS","toDecimalTrimmed","DEPOSIT_NATIVE_AND_PRE_SIGN_GAS_LIMIT","selectTwapTokenFromAtom","useTwapTokenFrom","useEnabledSrcChainsWithDelta","switchChain","useMaxButtonPropsBase","currentTwapInputAtom","useTwapSide","formatUnits","useDeltaLimitOrderRequiredBalance","useDeltaOrderRequiredAllowance","Token","useGenericTokenAllowance","useIsInsufficientBalanceToFillOrder","formatTokenAmount","getInsufficientBalanceToFillOrderMessage","SpenderContractType","UseTwapTokenFromInputInput","override","amountWei","isPriceLoading","useTwapTokenFromAmountProps","t0","$","_c","logger","tokenFrom","rawAmount","setAmountValue","tokenBalanceUnit","useTokenFromBalanceUnit","t1","BigInt","decimals","amount","t2","values","log","value","t3","token","onAmountChange","UseTokenConditionalPropsInput","spenderContractType","useTokenConditionalProps","address","tokenAddress","enabled","combinedAllowance","srcCombinedAllowance","amountToApproveInWei","tokenAllowance","t4","Symbol","for","staleTime","t5","query","data","t6","toLowerCase","requiredBalanceToFillWei","t7","payAmountWei","isInsufficientBalance","isInsufficientBalanceToFill","requiredBalanceToFillUnit","t10","t11","t8","t9","requiredBalanceToFillFormatted","undefined","t12","needsApproval","lockIcon","shouldDisplay","messageOverride","t13","tokenBadgePropsOverride","insufficientBalanceMessageProps","useMaxButtonProps","setPayInputAmount","setCurrentInput","balanceUnit","onClick","gasLimit","refetchInterval","queryOptions","useExtraProps","appChainId","enabledChainsWithDelta","side","isLoading","root","length","classes","networks","selectedNetwork","allOption","onSelect","_temp","disabled","networkSwitcherProps","tokenType","const","onFocus","label","useTwapTokenFromInputProps","input","amountProps","extraProps","maxButtonProps","payInputAmountWei","tokenConditionalProps","setTokenFrom","onTokenSelect","chainId"],"sources":["../../../src/core/twap/useTwapTokenFromInputProps.tsx"],"sourcesContent":["import type { TokenInputProps } from \"@/components/widget/TokenInput/types\";\nimport { useAtomValue, useSetAtom } from \"@/core/store\";\nimport type { TokenInputExtraProps } from \"../inputs/hooks/types\";\nimport { useLogger } from \"../logger\";\nimport {\n twapPayInputAmountAtom,\n twapPayInputAmountWeiAtom,\n} from \"./state/twapInputAmountAtom\";\nimport { useChainId } from \"wagmi\";\nimport { useTokenBalance } from \"@/hooks/tokens/balances/useTokenBalance\";\nimport {\n LONG_STALE_TIME_FOR_REACTIVENESS,\n MEDIUM_STALE_TIME_FOR_REACTIVENESS,\n} from \"@/lib/constants/time\";\nimport { toDecimalTrimmed } from \"@/lib/utils/toDecimal\";\nimport { DEPOSIT_NATIVE_AND_PRE_SIGN_GAS_LIMIT } from \"@/lib/constants\";\nimport { selectTwapTokenFromAtom } from \"./state/selectedTokenActionsAtom\";\nimport { useTwapTokenFrom } from \"./state/twapTokenAtoms\";\nimport { useEnabledSrcChainsWithDelta } from \"../state/enabledChainsAtom\";\nimport { switchChain } from \"@/lib/web3/wagmi/switchChain\";\nimport { useMaxButtonPropsBase } from \"../inputs/hooks/useMaxButtonProps\";\nimport { currentTwapInputAtom } from \"./state/currentTwapInputAtom\";\nimport { useTwapSide } from \"./state/twapSideAtom\";\nimport { formatUnits } from \"viem\";\nimport {\n useDeltaLimitOrderRequiredBalance,\n useDeltaOrderRequiredAllowance,\n} from \"@/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { useGenericTokenAllowance } from \"@/hooks/tokens/allowance/useGenericTokenAllowance\";\nimport { useIsInsufficientBalanceToFillOrder } from \"@/hooks/tokens/balances/useIsLimitOrderInsufficientBalance\";\nimport { formatTokenAmount } from \"@/lib/utils/formatTokenBalance\";\nimport { getInsufficientBalanceToFillOrderMessage } from \"@/lib/utils/delta\";\nimport type { SpenderContractType } from \"@/hooks/sdk/types\";\n\nexport type UseTwapTokenFromInputInput = {\n override?: { amountWei?: string };\n isPriceLoading?: boolean;\n};\n\nconst useTwapTokenFromAmountProps = ({\n override,\n}: UseTwapTokenFromInputInput) => {\n const logger = useLogger(\"Twap::TokenFrom::AmountProps\");\n const tokenFrom = useTwapTokenFrom();\n\n const rawAmount = useAtomValue(twapPayInputAmountAtom);\n const setAmountValue = useSetAtom(twapPayInputAmountAtom);\n\n const tokenBalanceUnit = useTokenFromBalanceUnit();\n\n // BUY mode: override from price\n const amount = override?.amountWei\n ? formatUnits(BigInt(override.amountWei), tokenFrom.decimals)\n : rawAmount;\n\n return {\n amount,\n tokenBalanceUnit,\n token: tokenFrom,\n onAmountChange: (values: { value: string }) => {\n logger.log(\"onAmountChange::values\", values);\n setAmountValue(values.value);\n },\n };\n};\n\ntype UseTokenConditionalPropsInput = {\n amountWei: string;\n tokenFrom: Token;\n spenderContractType: SpenderContractType;\n};\n\nconst useTokenConditionalProps = ({\n amountWei,\n tokenFrom,\n spenderContractType,\n}: UseTokenConditionalPropsInput): Required<\n Pick<\n TokenInputProps,\n \"insufficientBalanceMessageProps\" | \"tokenBadgePropsOverride\"\n >\n> => {\n // amount required to cover allowance of current Orders + amount for the new Order\n const { combinedAllowance: srcCombinedAllowance } =\n useDeltaOrderRequiredAllowance({\n tokenAddress: tokenFrom.address,\n amount: amountWei,\n enabled: spenderContractType === \"ParaswapDelta\",\n });\n\n const tokenAllowance = useGenericTokenAllowance({\n token: tokenFrom,\n spenderContractType: spenderContractType,\n amountToApproveInWei: srcCombinedAllowance,\n });\n\n const { data } = useDeltaLimitOrderRequiredBalance({\n tokenAddress: tokenFrom.address,\n query: { staleTime: LONG_STALE_TIME_FOR_REACTIVENESS },\n });\n\n const requiredBalanceToFillWei = data?.[tokenFrom.address.toLowerCase()];\n\n const {\n isInsufficientBalance,\n isInsufficientBalanceToFill,\n requiredBalanceToFillUnit,\n } = useIsInsufficientBalanceToFillOrder({\n tokenFrom,\n payAmountWei: amountWei,\n requiredBalanceToFillWei,\n });\n\n const requiredBalanceToFillFormatted =\n isInsufficientBalanceToFill && requiredBalanceToFillUnit\n ? formatTokenAmount(requiredBalanceToFillUnit)\n : undefined;\n\n return {\n tokenBadgePropsOverride: {\n lockIcon:\n !isInsufficientBalance &&\n !isInsufficientBalanceToFill &&\n tokenAllowance.needsApproval,\n },\n insufficientBalanceMessageProps: {\n token: tokenFrom,\n shouldDisplay: isInsufficientBalance || isInsufficientBalanceToFill,\n messageOverride: requiredBalanceToFillFormatted\n ? getInsufficientBalanceToFillOrderMessage(\n tokenFrom,\n requiredBalanceToFillFormatted\n )\n : undefined,\n },\n };\n};\n\nconst useMaxButtonProps = () => {\n const tokenFrom = useTwapTokenFrom();\n const gasLimit = DEPOSIT_NATIVE_AND_PRE_SIGN_GAS_LIMIT;\n const setPayInputAmount = useSetAtom(twapPayInputAmountAtom);\n const setCurrentInput = useSetAtom(currentTwapInputAtom);\n\n const onClick = (balanceUnit: string) => {\n setCurrentInput(\"from\");\n setPayInputAmount(balanceUnit);\n };\n\n return useMaxButtonPropsBase({ tokenFrom, gasLimit, onClick });\n};\n\nconst useTokenFromBalanceUnit = () => {\n const tokenFrom = useTwapTokenFrom();\n\n const { balanceUnit } = useTokenBalance({\n token: tokenFrom,\n queryOptions: { refetchInterval: MEDIUM_STALE_TIME_FOR_REACTIVENESS },\n });\n\n return toDecimalTrimmed(balanceUnit);\n};\n\nconst useExtraProps = ({\n isPriceLoading,\n}: {\n isPriceLoading?: boolean;\n} = {}): TokenInputExtraProps => {\n const appChainId = useChainId();\n const enabledChainsWithDelta = useEnabledSrcChainsWithDelta();\n const setCurrentInput = useSetAtom(currentTwapInputAtom);\n\n const side = useTwapSide();\n\n // BUYing and price is loading = tokenFrom input will receive srcAmount\n const isLoading = isPriceLoading && side === \"BUY\";\n\n return {\n networkSwitcherProps: {\n classes: {\n root: \"pointer-events-auto\",\n },\n networks: enabledChainsWithDelta,\n selectedNetwork: appChainId,\n allOption: false,\n onSelect: (chainId) => chainId !== \"all\" && switchChain({ chainId }),\n disabled: enabledChainsWithDelta.length <= 1,\n },\n tokenType: \"from\" as const,\n onFocus: () => setCurrentInput(\"from\"),\n label: (\n <>\n <span>Pay</span> <span className=\"text-contrast-5\">on</span>\n </>\n ),\n isLoading,\n };\n};\n\nexport const useTwapTokenFromInputProps = (\n input: UseTwapTokenFromInputInput = {}\n): TokenInputProps => {\n const amountProps = useTwapTokenFromAmountProps(input);\n const extraProps = useExtraProps({ isPriceLoading: input.isPriceLoading });\n const maxButtonProps = useMaxButtonProps();\n\n const payInputAmountWei = useAtomValue(twapPayInputAmountWeiAtom);\n\n const tokenConditionalProps = useTokenConditionalProps({\n amountWei: payInputAmountWei,\n tokenFrom: amountProps.token,\n spenderContractType: \"ParaswapDelta\",\n });\n\n const setTokenFrom = useSetAtom(selectTwapTokenFromAtom);\n\n return {\n ...amountProps,\n ...extraProps,\n ...maxButtonProps,\n ...tokenConditionalProps,\n onTokenSelect: setTokenFrom,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"useTwapTokenFromInputProps.js","names":["TokenInputProps","useAtomValue","useSetAtom","TokenInputExtraProps","useLogger","twapPayInputAmountAtom","twapPayInputAmountWeiAtom","useChainId","useTokenBalance","LONG_STALE_TIME_FOR_REACTIVENESS","MEDIUM_STALE_TIME_FOR_REACTIVENESS","toDecimalTrimmed","DEPOSIT_NATIVE_AND_PRE_SIGN_GAS_LIMIT","selectTwapTokenFromAtom","useTwapTokenFrom","useEnabledSrcChainsWithDelta","switchChain","useMaxButtonPropsBase","currentTwapInputAtom","useTwapSide","formatUnits","useDeltaLimitOrderRequiredBalance","useDeltaOrderRequiredAllowance","Token","useGenericTokenAllowance","useIsInsufficientBalanceToFillOrder","formatTokenAmount","getInsufficientBalanceToFillOrderMessage","SpenderContractType","UseTwapTokenFromInputInput","override","amountWei","isPriceLoading","useTwapTokenFromAmountProps","t0","$","_c","logger","tokenFrom","rawAmount","setAmountValue","tokenBalanceUnit","useTokenFromBalanceUnit","t1","BigInt","decimals","amount","t2","values","log","value","t3","token","onAmountChange","UseTokenConditionalPropsInput","spenderContractType","useTokenConditionalProps","address","tokenAddress","enabled","combinedAllowance","srcCombinedAllowance","amountToApproveInWei","tokenAllowance","t4","Symbol","for","staleTime","t5","query","data","t6","toLowerCase","requiredBalanceToFillWei","t7","payAmountWei","isInsufficientBalance","isInsufficientBalanceToFill","requiredBalanceToFillUnit","t10","t11","t8","t9","requiredBalanceToFillFormatted","undefined","t12","needsApproval","lockIcon","shouldDisplay","messageOverride","t13","tokenBadgePropsOverride","insufficientBalanceMessageProps","useMaxButtonProps","setPayInputAmount","setCurrentInput","balanceUnit","onClick","gasLimit","refetchInterval","queryOptions","useExtraProps","appChainId","enabledChainsWithDelta","side","isLoading","root","length","classes","networks","selectedNetwork","allOption","onSelect","_temp","disabled","networkSwitcherProps","tokenType","const","onFocus","label","useTwapTokenFromInputProps","input","amountProps","extraProps","maxButtonProps","payInputAmountWei","tokenConditionalProps","setTokenFrom","onTokenSelect","chainId"],"sources":["../../../src/core/twap/useTwapTokenFromInputProps.tsx"],"sourcesContent":["import type { TokenInputProps } from \"@/components/widget/TokenInput/types\";\nimport { useAtomValue, useSetAtom } from \"@/core/store\";\nimport type { TokenInputExtraProps } from \"../inputs/hooks/types\";\nimport { useLogger } from \"../logger\";\nimport {\n twapPayInputAmountAtom,\n twapPayInputAmountWeiAtom,\n} from \"./state/twapInputAmountAtom\";\nimport { useChainId } from \"wagmi\";\nimport { useTokenBalance } from \"@/hooks/tokens/balances/useTokenBalance\";\nimport {\n LONG_STALE_TIME_FOR_REACTIVENESS,\n MEDIUM_STALE_TIME_FOR_REACTIVENESS,\n} from \"@/lib/constants/time\";\nimport { toDecimalTrimmed } from \"@/lib/utils/toDecimal\";\nimport { DEPOSIT_NATIVE_AND_PRE_SIGN_GAS_LIMIT } from \"@/lib/constants\";\nimport { selectTwapTokenFromAtom } from \"./state/selectedTokenActionsAtom\";\nimport { useTwapTokenFrom } from \"./state/twapTokenAtoms\";\nimport { useEnabledSrcChainsWithDelta } from \"../state/enabledChainsAtom\";\nimport { switchChain } from \"@/lib/web3/wagmi/switchChain\";\nimport { useMaxButtonPropsBase } from \"../inputs/hooks/useMaxButtonProps\";\nimport { currentTwapInputAtom } from \"./state/currentTwapInputAtom\";\nimport { useTwapSide } from \"./state/twapSideAtom\";\nimport { formatUnits } from \"viem\";\nimport {\n useDeltaLimitOrderRequiredBalance,\n useDeltaOrderRequiredAllowance,\n} from \"@/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { useGenericTokenAllowance } from \"@/hooks/tokens/allowance/useGenericTokenAllowance\";\nimport { useIsInsufficientBalanceToFillOrder } from \"@/hooks/tokens/balances/useIsLimitOrderInsufficientBalance\";\nimport { formatTokenAmount } from \"@/lib/utils/formatTokenBalance\";\nimport { getInsufficientBalanceToFillOrderMessage } from \"@/lib/utils/delta\";\nimport type { SpenderContractType } from \"@/hooks/sdk/types\";\n\nexport type UseTwapTokenFromInputInput = {\n override?: { amountWei?: string };\n isPriceLoading?: boolean;\n};\n\nconst useTwapTokenFromAmountProps = ({\n override,\n}: UseTwapTokenFromInputInput) => {\n const logger = useLogger(\"Twap::TokenFrom::AmountProps\");\n const tokenFrom = useTwapTokenFrom();\n\n const rawAmount = useAtomValue(twapPayInputAmountAtom);\n const setAmountValue = useSetAtom(twapPayInputAmountAtom);\n\n const tokenBalanceUnit = useTokenFromBalanceUnit();\n\n // BUY mode: override from price\n const amount = override?.amountWei\n ? formatUnits(BigInt(override.amountWei), tokenFrom.decimals)\n : rawAmount;\n\n return {\n amount,\n tokenBalanceUnit,\n token: tokenFrom,\n onAmountChange: (values: { value: string }) => {\n logger.log(\"onAmountChange::values\", values);\n setAmountValue(values.value);\n },\n };\n};\n\ntype UseTokenConditionalPropsInput = {\n amountWei: string;\n tokenFrom: Token;\n spenderContractType: SpenderContractType;\n};\n\nconst useTokenConditionalProps = ({\n amountWei,\n tokenFrom,\n spenderContractType,\n}: UseTokenConditionalPropsInput): Required<\n Pick<\n TokenInputProps,\n \"insufficientBalanceMessageProps\" | \"tokenBadgePropsOverride\"\n >\n> => {\n // amount required to cover allowance of current Orders + amount for the new Order\n const { combinedAllowance: srcCombinedAllowance } =\n useDeltaOrderRequiredAllowance({\n tokenAddress: tokenFrom.address,\n amount: amountWei,\n enabled: spenderContractType === \"ParaswapDelta\",\n });\n\n const tokenAllowance = useGenericTokenAllowance({\n token: tokenFrom,\n spenderContractType: spenderContractType,\n amountToApproveInWei: srcCombinedAllowance,\n });\n\n const { data } = useDeltaLimitOrderRequiredBalance({\n tokenAddress: tokenFrom.address,\n query: { staleTime: LONG_STALE_TIME_FOR_REACTIVENESS },\n });\n\n const requiredBalanceToFillWei = data?.[tokenFrom.address.toLowerCase()];\n\n const {\n isInsufficientBalance,\n isInsufficientBalanceToFill,\n requiredBalanceToFillUnit,\n } = useIsInsufficientBalanceToFillOrder({\n tokenFrom,\n payAmountWei: amountWei,\n requiredBalanceToFillWei,\n });\n\n const requiredBalanceToFillFormatted =\n isInsufficientBalanceToFill && requiredBalanceToFillUnit\n ? formatTokenAmount(requiredBalanceToFillUnit)\n : undefined;\n\n return {\n tokenBadgePropsOverride: {\n lockIcon:\n !isInsufficientBalance &&\n !isInsufficientBalanceToFill &&\n tokenAllowance.needsApproval,\n },\n insufficientBalanceMessageProps: {\n token: tokenFrom,\n shouldDisplay: isInsufficientBalance || isInsufficientBalanceToFill,\n messageOverride: requiredBalanceToFillFormatted\n ? getInsufficientBalanceToFillOrderMessage(\n tokenFrom,\n requiredBalanceToFillFormatted\n )\n : undefined,\n },\n };\n};\n\nconst useMaxButtonProps = () => {\n const tokenFrom = useTwapTokenFrom();\n const gasLimit = DEPOSIT_NATIVE_AND_PRE_SIGN_GAS_LIMIT;\n const setPayInputAmount = useSetAtom(twapPayInputAmountAtom);\n const setCurrentInput = useSetAtom(currentTwapInputAtom);\n\n const onClick = (balanceUnit: string) => {\n setCurrentInput(\"from\");\n setPayInputAmount(balanceUnit);\n };\n\n return useMaxButtonPropsBase({ tokenFrom, gasLimit, onClick });\n};\n\nconst useTokenFromBalanceUnit = () => {\n const tokenFrom = useTwapTokenFrom();\n\n const { balanceUnit } = useTokenBalance({\n token: tokenFrom,\n queryOptions: { refetchInterval: MEDIUM_STALE_TIME_FOR_REACTIVENESS },\n });\n\n return toDecimalTrimmed(balanceUnit);\n};\n\nconst useExtraProps = ({\n isPriceLoading,\n}: {\n isPriceLoading?: boolean;\n} = {}): TokenInputExtraProps => {\n const appChainId = useChainId();\n const enabledChainsWithDelta = useEnabledSrcChainsWithDelta();\n const setCurrentInput = useSetAtom(currentTwapInputAtom);\n\n const side = useTwapSide();\n\n // BUYing and price is loading = tokenFrom input will receive srcAmount\n const isLoading = isPriceLoading && side === \"BUY\";\n\n return {\n networkSwitcherProps: {\n classes: {\n root: \"pointer-events-auto\",\n },\n networks: enabledChainsWithDelta,\n selectedNetwork: appChainId,\n allOption: false,\n onSelect: (chainId) => chainId !== \"all\" && switchChain({ chainId }),\n disabled: enabledChainsWithDelta.length <= 1,\n },\n tokenType: \"from\" as const,\n onFocus: () => setCurrentInput(\"from\"),\n label: (\n <>\n <span>Pay</span> <span className=\"text-contrast-5\">on</span>\n </>\n ),\n isLoading,\n };\n};\n\nexport const useTwapTokenFromInputProps = (\n input: UseTwapTokenFromInputInput = {}\n): TokenInputProps => {\n const amountProps = useTwapTokenFromAmountProps(input);\n const extraProps = useExtraProps({ isPriceLoading: input.isPriceLoading });\n const maxButtonProps = useMaxButtonProps();\n\n const payInputAmountWei = useAtomValue(twapPayInputAmountWeiAtom);\n\n const tokenConditionalProps = useTokenConditionalProps({\n amountWei: payInputAmountWei,\n tokenFrom: amountProps.token,\n spenderContractType: \"ParaswapDelta\",\n });\n\n const setTokenFrom = useSetAtom(selectTwapTokenFromAtom);\n\n return {\n ...amountProps,\n ...extraProps,\n ...maxButtonProps,\n ...tokenConditionalProps,\n onTokenSelect: setTokenFrom,\n };\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useTwapTokenSwitcherProps.js","names":["TokenSwitcherProps","useSetAtom","switchTwapTokensAtom","useTwapTokenTo","useEnabledSrcChains","useTwapTokenSwitcherProps","$","_c","tokenTo","enabledSrcChains","switchTokens","t0","includes","network","t1","enableSwitchTokens","onSwitchTokens"],"sources":["../../../src/core/twap/useTwapTokenSwitcherProps.ts"],"sourcesContent":["import type { TokenSwitcherProps } from \"@/components/widget/TokenSwitcher/types\";\nimport { useSetAtom } from \"@/core/store\";\nimport { switchTwapTokensAtom } from \"./state/selectedTokenActionsAtom\";\nimport { useTwapTokenTo } from \"./state/twapTokenAtoms\";\nimport { useEnabledSrcChains } from \"../state/enabledChainsAtom\";\n\nexport const useTwapTokenSwitcherProps = (): TokenSwitcherProps => {\n const tokenTo = useTwapTokenTo();\n const enabledSrcChains = useEnabledSrcChains();\n const switchTokens = useSetAtom(switchTwapTokensAtom);\n\n return {\n enableSwitchTokens: !!tokenTo && enabledSrcChains.includes(tokenTo.network),\n onSwitchTokens: switchTokens,\n };\n};\n"],"mappings":";;;;;;AAMA,IAAaK,UAA4B;CAAA,IAAAC,IAAAC,EAAA,EAAA,EACvCC,IAAgBL,GAAgB,EAChCM,IAAyBL,GAAqB,EAC9CM,IAAqBT,EAAWC,EAAqB,EAACS;AAAA,CAAAL,EAAA,OAAAG,KAAAH,EAAA,OAAAE,KAGhCG,IAAA,CAAC,CAACH,KAAWC,EAAgBG,SAAUJ,EAAOK,QAAS,EAAAP,EAAA,KAAAG,GAAAH,EAAA,KAAAE,GAAAF,EAAA,KAAAK,KAAAA,IAAAL,EAAA;CAAA,IAAAQ;AAE5E,QAF4ER,EAAA,OAAAI,KAAAJ,EAAA,OAAAK,KADtEG,IAAA;EAAAC,oBACeJ;EAAuDK,gBAC3DN;EACjB,EAAAJ,EAAA,KAAAI,GAAAJ,EAAA,KAAAK,GAAAL,EAAA,KAAAQ,KAAAA,IAAAR,EAAA,IAHMQ"}
1
+ {"version":3,"file":"useTwapTokenSwitcherProps.js","names":["TokenSwitcherProps","useSetAtom","switchTwapTokensAtom","useTwapTokenTo","useEnabledSrcChains","useTwapTokenSwitcherProps","$","_c","tokenTo","enabledSrcChains","switchTokens","t0","includes","network","t1","enableSwitchTokens","onSwitchTokens"],"sources":["../../../src/core/twap/useTwapTokenSwitcherProps.ts"],"sourcesContent":["import type { TokenSwitcherProps } from \"@/components/widget/TokenSwitcher/types\";\nimport { useSetAtom } from \"@/core/store\";\nimport { switchTwapTokensAtom } from \"./state/selectedTokenActionsAtom\";\nimport { useTwapTokenTo } from \"./state/twapTokenAtoms\";\nimport { useEnabledSrcChains } from \"../state/enabledChainsAtom\";\n\nexport const useTwapTokenSwitcherProps = (): TokenSwitcherProps => {\n const tokenTo = useTwapTokenTo();\n const enabledSrcChains = useEnabledSrcChains();\n const switchTokens = useSetAtom(switchTwapTokensAtom);\n\n return {\n enableSwitchTokens: !!tokenTo && enabledSrcChains.includes(tokenTo.network),\n onSwitchTokens: switchTokens,\n };\n};\n"],"mappings":";;;;;;AAMA,IAAaK,UAA4B;CAAA,IAAAC,IAAAC,EAAA,EAAA,EACvCC,IAAgBL,GAAgB,EAChCM,IAAyBL,GAAqB,EAC9CM,IAAqBT,EAAWC,EAAqB,EAACS;CAAA,AAAAL,EAAA,OAAAG,KAAAH,EAAA,OAAAE,KAGhCG,IAAA,CAAC,CAACH,KAAWC,EAAgBG,SAAUJ,EAAOK,QAAS,EAAAP,EAAA,KAAAG,GAAAH,EAAA,KAAAE,GAAAF,EAAA,KAAAK,KAAAA,IAAAL,EAAA;CAAA,IAAAQ;CAE5E,OAF4ER,EAAA,OAAAI,KAAAJ,EAAA,OAAAK,KADtEG,IAAA;EAAAC,oBACeJ;EAAuDK,gBAC3DN;EACjB,EAAAJ,EAAA,KAAAI,GAAAJ,EAAA,KAAAK,GAAAL,EAAA,KAAAQ,KAAAA,IAAAR,EAAA,IAHMQ"}
@@ -1 +1 @@
1
- {"version":3,"file":"useTwapTokenToInputProps.js","names":["TokenInputProps","useAtomValue","useSetAtom","useAtom","twapReceiveInputAmountAtom","useLogger","OnValueChange","TokenInputExtraProps","useTokenBalance","MEDIUM_STALE_TIME_FOR_REACTIVENESS","toDecimalTrimmed","selectTwapTokenToAtom","useTwapTokenTo","useChainId","useSelectableDestChains","SupportedChainId","twapChainToAtom","currentTwapInputAtom","useTwapSide","useIsTwapCrossChain","FetchingQuotes","formatUnits","useWarningMessage","UseTwapTokenToInputInput","override","amountWei","isPriceLoading","priceError","Error","useTokenToBalanceUnit","$","_c","tokenTo","t0","Symbol","for","refetchInterval","t1","token","queryOptions","balanceUnit","t2","useExtraProps","undefined","appChainId","chainTo","setChainTo","fromChainId","mode","selectableChains","showNetworkSwitcher","t3","networks","selectedNetwork","allOption","onSelect","chainId","disabled","networkSwitcherProps","currentInput","setCurrentInput","side","isSell","isLoading","isCrosschain","showFetchingQuotes","t4","t5","t6","t7","t8","length","t9","t10","t11","tokenType","const","onFocus","label","bottomElement","readOnly","useTokenToAmountProps","logger","rawAmount","setReceiveAmount","BigInt","decimals","amount","values","log","value","onAmountChange","setTokenTo","onTokenSelect","useTwapTokenToInputProps","input","extraAmountProps","extraProps","tokenBalanceUnit","priceMode","tradeMode","warningMessage"],"sources":["../../../src/core/twap/useTwapTokenToInputProps.tsx"],"sourcesContent":["import type { TokenInputProps } from \"@/components/widget/TokenInput/types\";\nimport { useAtomValue, useSetAtom, useAtom } from \"@/core/store\";\nimport { twapReceiveInputAmountAtom } from \"./state/twapInputAmountAtom\";\nimport { useLogger } from \"../logger\";\nimport type { OnValueChange } from \"react-number-format\";\nimport type { TokenInputExtraProps } from \"../inputs/hooks/types\";\nimport { useTokenBalance } from \"@/hooks/tokens/balances/useTokenBalance\";\nimport { MEDIUM_STALE_TIME_FOR_REACTIVENESS } from \"@/lib/constants/time\";\nimport { toDecimalTrimmed } from \"@/lib/utils/toDecimal\";\nimport { selectTwapTokenToAtom } from \"./state/selectedTokenActionsAtom\";\nimport { useTwapTokenTo } from \"./state/twapTokenAtoms\";\nimport { useChainId } from \"wagmi\";\nimport { useSelectableDestChains } from \"@/hooks/useSelectableDestChains\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { twapChainToAtom } from \"../state/chainToAtom\";\nimport { currentTwapInputAtom } from \"./state/currentTwapInputAtom\";\nimport { useTwapSide } from \"./state/twapSideAtom\";\nimport { useIsTwapCrossChain } from \"./state/isCrosschainAtom\";\nimport { FetchingQuotes } from \"@/components/widget/FetchingQuotes/FetchingQuotes\";\nimport { formatUnits } from \"viem\";\nimport { useWarningMessage } from \"../inputs/hooks/useWarningMessage\";\n\nexport type UseTwapTokenToInputInput = {\n override?: { amountWei?: string };\n isPriceLoading?: boolean;\n priceError?: Error | null;\n};\n\nconst useTokenToBalanceUnit = () => {\n const tokenTo = useTwapTokenTo();\n\n const { balanceUnit } = useTokenBalance({\n token: tokenTo,\n queryOptions: { refetchInterval: MEDIUM_STALE_TIME_FOR_REACTIVENESS },\n });\n\n return toDecimalTrimmed(balanceUnit);\n};\n\nconst useExtraProps = ({\n isPriceLoading,\n}: {\n isPriceLoading?: boolean;\n} = {}): TokenInputExtraProps => {\n const appChainId = useChainId();\n\n const [chainTo, setChainTo] = useAtom(twapChainToAtom);\n\n const { selectableChains } = useSelectableDestChains({\n fromChainId: appChainId,\n mode: \"twap\",\n });\n\n const showNetworkSwitcher = chainTo !== undefined;\n\n const networkSwitcherProps = showNetworkSwitcher\n ? {\n // @TODO reenable TWAP crosschain when ready on the API\n // networks: selectableChains,\n // selectedNetwork: chainTo,\n networks: [appChainId],\n selectedNetwork: appChainId,\n allOption: false,\n onSelect: (chainId: SupportedChainId | \"all\") =>\n chainId !== \"all\" && setChainTo(chainId),\n // @TODO reenable TWAP crosschain when ready on the API\n // disabled: selectableChains.length <= 1,\n disabled: true,\n }\n : undefined;\n\n const [currentInput, setCurrentInput] = useAtom(currentTwapInputAtom);\n\n const side = useTwapSide();\n const isSell = side === \"SELL\";\n\n // SELLing and price is loading = tokenTo input will receive destAmount\n const isLoading = isPriceLoading && isSell;\n\n const isCrosschain = useIsTwapCrossChain();\n const showFetchingQuotes = isCrosschain && isPriceLoading;\n\n return {\n networkSwitcherProps,\n tokenType: \"to\" as const,\n onFocus: () => setCurrentInput(\"to\"),\n label: (\n <>\n <span>Receive (estimated)</span>{\" \"}\n {showNetworkSwitcher && <span className=\"text-contrast-5\">on</span>}\n </>\n ),\n isLoading,\n disabled: selectableChains.length === 0,\n bottomElement: showFetchingQuotes ? <FetchingQuotes /> : undefined,\n readOnly: isCrosschain && currentInput === \"to\", // @TODO revert this change when Crosschain BUY is supported for TWAP\n };\n};\n\nconst useTokenToAmountProps = ({\n override,\n}: UseTwapTokenToInputInput): Pick<\n TokenInputProps,\n \"amount\" | \"token\" | \"onAmountChange\" | \"onTokenSelect\"\n> => {\n const logger = useLogger(\"Twap::TokenTo::AmountProps\");\n const tokenTo = useTwapTokenTo();\n\n const rawAmount = useAtomValue(twapReceiveInputAmountAtom);\n const setReceiveAmount = useSetAtom(twapReceiveInputAmountAtom);\n\n // SELL mode: override from price\n const amount =\n override?.amountWei && tokenTo\n ? formatUnits(BigInt(override.amountWei), tokenTo.decimals)\n : rawAmount;\n\n const onAmountChange: OnValueChange = (values) => {\n logger.log(\"onAmountChange::values\", values);\n setReceiveAmount(values.value);\n };\n\n const setTokenTo = useSetAtom(selectTwapTokenToAtom);\n\n return {\n amount,\n token: tokenTo,\n onAmountChange,\n onTokenSelect: setTokenTo,\n };\n};\n\nexport const useTwapTokenToInputProps = (\n input: UseTwapTokenToInputInput = {}\n): TokenInputProps => {\n const extraAmountProps = useTokenToAmountProps({ override: input.override });\n const extraProps = useExtraProps({ isPriceLoading: input.isPriceLoading });\n const tokenBalanceUnit = useTokenToBalanceUnit();\n const warningMessage = useWarningMessage({\n priceMode: \"delta\",\n priceError: input.priceError,\n mode: \"twap\",\n tradeMode: \"twap\",\n });\n\n return {\n ...extraProps,\n ...extraAmountProps,\n tokenBalanceUnit,\n warningMessage,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"useTwapTokenToInputProps.js","names":["TokenInputProps","useAtomValue","useSetAtom","useAtom","twapReceiveInputAmountAtom","useLogger","OnValueChange","TokenInputExtraProps","useTokenBalance","MEDIUM_STALE_TIME_FOR_REACTIVENESS","toDecimalTrimmed","selectTwapTokenToAtom","useTwapTokenTo","useChainId","useSelectableDestChains","SupportedChainId","twapChainToAtom","currentTwapInputAtom","useTwapSide","useIsTwapCrossChain","FetchingQuotes","formatUnits","useWarningMessage","UseTwapTokenToInputInput","override","amountWei","isPriceLoading","priceError","Error","useTokenToBalanceUnit","$","_c","tokenTo","t0","Symbol","for","refetchInterval","t1","token","queryOptions","balanceUnit","t2","useExtraProps","undefined","appChainId","chainTo","setChainTo","fromChainId","mode","selectableChains","showNetworkSwitcher","t3","networks","selectedNetwork","allOption","onSelect","chainId","disabled","networkSwitcherProps","currentInput","setCurrentInput","side","isSell","isLoading","isCrosschain","showFetchingQuotes","t4","t5","t6","t7","t8","length","t9","t10","t11","tokenType","const","onFocus","label","bottomElement","readOnly","useTokenToAmountProps","logger","rawAmount","setReceiveAmount","BigInt","decimals","amount","values","log","value","onAmountChange","setTokenTo","onTokenSelect","useTwapTokenToInputProps","input","extraAmountProps","extraProps","tokenBalanceUnit","priceMode","tradeMode","warningMessage"],"sources":["../../../src/core/twap/useTwapTokenToInputProps.tsx"],"sourcesContent":["import type { TokenInputProps } from \"@/components/widget/TokenInput/types\";\nimport { useAtomValue, useSetAtom, useAtom } from \"@/core/store\";\nimport { twapReceiveInputAmountAtom } from \"./state/twapInputAmountAtom\";\nimport { useLogger } from \"../logger\";\nimport type { OnValueChange } from \"react-number-format\";\nimport type { TokenInputExtraProps } from \"../inputs/hooks/types\";\nimport { useTokenBalance } from \"@/hooks/tokens/balances/useTokenBalance\";\nimport { MEDIUM_STALE_TIME_FOR_REACTIVENESS } from \"@/lib/constants/time\";\nimport { toDecimalTrimmed } from \"@/lib/utils/toDecimal\";\nimport { selectTwapTokenToAtom } from \"./state/selectedTokenActionsAtom\";\nimport { useTwapTokenTo } from \"./state/twapTokenAtoms\";\nimport { useChainId } from \"wagmi\";\nimport { useSelectableDestChains } from \"@/hooks/useSelectableDestChains\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { twapChainToAtom } from \"../state/chainToAtom\";\nimport { currentTwapInputAtom } from \"./state/currentTwapInputAtom\";\nimport { useTwapSide } from \"./state/twapSideAtom\";\nimport { useIsTwapCrossChain } from \"./state/isCrosschainAtom\";\nimport { FetchingQuotes } from \"@/components/widget/FetchingQuotes/FetchingQuotes\";\nimport { formatUnits } from \"viem\";\nimport { useWarningMessage } from \"../inputs/hooks/useWarningMessage\";\n\nexport type UseTwapTokenToInputInput = {\n override?: { amountWei?: string };\n isPriceLoading?: boolean;\n priceError?: Error | null;\n};\n\nconst useTokenToBalanceUnit = () => {\n const tokenTo = useTwapTokenTo();\n\n const { balanceUnit } = useTokenBalance({\n token: tokenTo,\n queryOptions: { refetchInterval: MEDIUM_STALE_TIME_FOR_REACTIVENESS },\n });\n\n return toDecimalTrimmed(balanceUnit);\n};\n\nconst useExtraProps = ({\n isPriceLoading,\n}: {\n isPriceLoading?: boolean;\n} = {}): TokenInputExtraProps => {\n const appChainId = useChainId();\n\n const [chainTo, setChainTo] = useAtom(twapChainToAtom);\n\n const { selectableChains } = useSelectableDestChains({\n fromChainId: appChainId,\n mode: \"twap\",\n });\n\n const showNetworkSwitcher = chainTo !== undefined;\n\n const networkSwitcherProps = showNetworkSwitcher\n ? {\n // @TODO reenable TWAP crosschain when ready on the API\n // networks: selectableChains,\n // selectedNetwork: chainTo,\n networks: [appChainId],\n selectedNetwork: appChainId,\n allOption: false,\n onSelect: (chainId: SupportedChainId | \"all\") =>\n chainId !== \"all\" && setChainTo(chainId),\n // @TODO reenable TWAP crosschain when ready on the API\n // disabled: selectableChains.length <= 1,\n disabled: true,\n }\n : undefined;\n\n const [currentInput, setCurrentInput] = useAtom(currentTwapInputAtom);\n\n const side = useTwapSide();\n const isSell = side === \"SELL\";\n\n // SELLing and price is loading = tokenTo input will receive destAmount\n const isLoading = isPriceLoading && isSell;\n\n const isCrosschain = useIsTwapCrossChain();\n const showFetchingQuotes = isCrosschain && isPriceLoading;\n\n return {\n networkSwitcherProps,\n tokenType: \"to\" as const,\n onFocus: () => setCurrentInput(\"to\"),\n label: (\n <>\n <span>Receive (estimated)</span>{\" \"}\n {showNetworkSwitcher && <span className=\"text-contrast-5\">on</span>}\n </>\n ),\n isLoading,\n disabled: selectableChains.length === 0,\n bottomElement: showFetchingQuotes ? <FetchingQuotes /> : undefined,\n readOnly: isCrosschain && currentInput === \"to\", // @TODO revert this change when Crosschain BUY is supported for TWAP\n };\n};\n\nconst useTokenToAmountProps = ({\n override,\n}: UseTwapTokenToInputInput): Pick<\n TokenInputProps,\n \"amount\" | \"token\" | \"onAmountChange\" | \"onTokenSelect\"\n> => {\n const logger = useLogger(\"Twap::TokenTo::AmountProps\");\n const tokenTo = useTwapTokenTo();\n\n const rawAmount = useAtomValue(twapReceiveInputAmountAtom);\n const setReceiveAmount = useSetAtom(twapReceiveInputAmountAtom);\n\n // SELL mode: override from price\n const amount =\n override?.amountWei && tokenTo\n ? formatUnits(BigInt(override.amountWei), tokenTo.decimals)\n : rawAmount;\n\n const onAmountChange: OnValueChange = (values) => {\n logger.log(\"onAmountChange::values\", values);\n setReceiveAmount(values.value);\n };\n\n const setTokenTo = useSetAtom(selectTwapTokenToAtom);\n\n return {\n amount,\n token: tokenTo,\n onAmountChange,\n onTokenSelect: setTokenTo,\n };\n};\n\nexport const useTwapTokenToInputProps = (\n input: UseTwapTokenToInputInput = {}\n): TokenInputProps => {\n const extraAmountProps = useTokenToAmountProps({ override: input.override });\n const extraProps = useExtraProps({ isPriceLoading: input.isPriceLoading });\n const tokenBalanceUnit = useTokenToBalanceUnit();\n const warningMessage = useWarningMessage({\n priceMode: \"delta\",\n priceError: input.priceError,\n mode: \"twap\",\n tradeMode: \"twap\",\n });\n\n return {\n ...extraProps,\n ...extraAmountProps,\n tokenBalanceUnit,\n warningMessage,\n };\n};\n"],"mappings":"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"}