@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":"domainSeparator.js","names":["Address","Hex","domainSeparator","toHex","PermitSupportResult","getDomainSeparatorVersionChain","name","version","chainId","verifyingContract","domain","getDomainSeparatorChain","getDomainSeparatorVersionSalt","salt","ComputeDomainSeparatorParams","Pick","computeDomainSeparator","BigInt","GuessDomainVersionParams","GuessDomainVersionResult","guessDomainParams","standardDomainSeparator","toLowerCase","size","domainSeparatorWithSalt","domainSeparatorWithoutVersion","domainSeparatorV2","domainSeparatorWithSaltV2"],"sources":["../../../../src/hooks/permit/utils/domainSeparator.ts"],"sourcesContent":["import { type Address, type Hex, domainSeparator, toHex } from \"viem\";\nimport type { PermitSupportResult } from \"./detect\";\n\nexport function getDomainSeparatorVersionChain({\n name,\n version,\n chainId,\n verifyingContract,\n}: {\n name: string;\n version: string;\n chainId: bigint;\n verifyingContract: Address;\n}): Hex {\n /**\n * Internally does\n const EIP712_DOMAIN_TYPEHASH = keccak256(\n toBytes(\"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\")\n );\n\n const nameHash = keccak256(toBytes(name));\n const versionHash = keccak256(toBytes(version));\n\n const encoded = encodeAbiParameters(\n [\n { type: 'bytes32', name: 'typeHash' },\n { type: 'bytes32', name: 'nameHash' },\n { type: 'bytes32', name: 'versionHash' },\n { type: 'uint256', name: 'chainId' },\n { type: 'address', name: 'verifyingContract' },\n ],\n [EIP712_DOMAIN_TYPEHASH, nameHash, versionHash, chainId, verifyingContract]\n );\n\n return keccak256(encoded);\n */\n return domainSeparator({\n domain: {\n name,\n version,\n chainId,\n verifyingContract,\n },\n });\n}\n\nexport function getDomainSeparatorChain({\n name,\n chainId,\n verifyingContract,\n}: {\n name: string;\n chainId: bigint;\n verifyingContract: Address;\n}): Hex {\n return domainSeparator({\n domain: {\n name,\n chainId,\n verifyingContract,\n },\n });\n}\n\nexport function getDomainSeparatorVersionSalt({\n name,\n version,\n salt,\n verifyingContract,\n}: {\n name: string;\n version: string;\n salt: Hex;\n verifyingContract: Address;\n}): Hex {\n return domainSeparator({\n domain: {\n name,\n version,\n verifyingContract,\n salt,\n },\n });\n}\n\ntype ComputeDomainSeparatorParams = {\n salt?: Hex; // used as salt (ex. USDC.e on Polygon)\n domain: Pick<\n PermitSupportResult[\"domain\"],\n \"name\" | \"version\" | \"verifyingContract\"\n >;\n chainId: number;\n};\n\nfunction computeDomainSeparator({\n salt,\n domain,\n chainId,\n}: ComputeDomainSeparatorParams): Hex {\n if (salt) {\n /** with salt (ex. USDC.e on Polygon)\n * DOMAIN_SEPARATOR = keccak256(\n abi.encode(\n EIP712_DOMAIN_TYPEHASH,\n keccak256(bytes(name)),\n keccak256(bytes(version)),\n address(this),\n bytes32(chainId) // salt\n )\n );\n }\n */\n\n const domainSeparator = getDomainSeparatorVersionSalt({\n name: domain.name,\n version: domain.version || \"1\", // salt is used together with version\n salt,\n verifyingContract: domain.verifyingContract,\n });\n\n return domainSeparator;\n }\n\n if (domain.version) {\n /** standard domainSeparator, with version and chainId\n * DOMAIN_SEPARATOR = keccak256(abi.encode(\n keccak256(\"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\"),\n keccak256(bytes(name)),\n keccak256(bytes(version)),\n chainId, // uint256\n address(this)\n ));\n */\n const domainSeparator = getDomainSeparatorVersionChain({\n name: domain.name,\n version: domain.version, // salt is used together with version\n chainId: BigInt(chainId),\n verifyingContract: domain.verifyingContract,\n });\n\n return domainSeparator;\n }\n\n /** without version\n * DOMAIN_SEPARATOR = keccak256(abi.encode(\n keccak256(\"EIP712Domain(string name,uint256 chainId,address verifyingContract)\"),\n keccak256(bytes(name)),\n chainId, // uint256\n address(this)\n ));\n */\n\n const domainSeparator = getDomainSeparatorChain({\n name: domain.name,\n chainId: BigInt(chainId),\n verifyingContract: domain.verifyingContract,\n });\n\n return domainSeparator;\n}\n\ntype GuessDomainVersionParams = {\n domain: Pick<\n PermitSupportResult[\"domain\"],\n \"name\" | \"verifyingContract\" | \"version\"\n >;\n chainId: number;\n domainSeparator: string;\n};\n\ntype GuessDomainVersionResult =\n | {\n version: string;\n chainId?: never;\n salt?: never;\n }\n | { chainId: number; version?: never; salt?: never }\n | {\n version: string;\n chainId: number;\n salt?: never;\n }\n | {\n version: string;\n salt: Hex;\n chainId?: never;\n };\n\nexport function guessDomainParams({\n domain,\n chainId,\n domainSeparator,\n}: GuessDomainVersionParams): GuessDomainVersionResult {\n // version was read from the contract, so it's included for certain\n if (domain.version) {\n const standardDomainSeparator = computeDomainSeparator({\n domain: {\n name: domain.name,\n version: domain.version, // maybe version=1, very often\n verifyingContract: domain.verifyingContract,\n },\n chainId,\n });\n\n if (\n standardDomainSeparator.toLowerCase() === domainSeparator.toLowerCase()\n ) {\n return {\n version: domain.version,\n chainId,\n };\n }\n\n // left-padded to bytes32\n const salt = toHex(chainId, { size: 32 }); // chainId used as salt (ex. USDC.e on Polygon)\n\n const domainSeparatorWithSalt = computeDomainSeparator({\n domain: {\n name: domain.name,\n version: domain.version,\n verifyingContract: domain.verifyingContract,\n },\n salt,\n chainId,\n });\n\n if (\n domainSeparatorWithSalt.toLowerCase() === domainSeparator.toLowerCase()\n ) {\n return {\n version: domain.version,\n salt,\n };\n }\n\n // even rarer domainSeparator, can't really guess params\n return { chainId, version: domain.version };\n }\n\n const standardDomainSeparator = computeDomainSeparator({\n domain: {\n name: domain.name,\n version: \"1\", // maybe version=1, very often\n verifyingContract: domain.verifyingContract,\n },\n chainId,\n });\n\n if (standardDomainSeparator.toLowerCase() === domainSeparator.toLowerCase()) {\n return {\n version: \"1\",\n chainId,\n };\n }\n\n const domainSeparatorWithoutVersion = computeDomainSeparator({\n // maybe without version, often for older tokens\n domain: { name: domain.name, verifyingContract: domain.verifyingContract },\n chainId,\n });\n\n if (\n domainSeparatorWithoutVersion.toLowerCase() ===\n domainSeparator.toLowerCase()\n ) {\n return {\n chainId,\n };\n }\n\n const salt = toHex(chainId, { size: 32 }); // chainId used as salt (ex. USDC.e on Polygon)\n\n const domainSeparatorWithSalt = computeDomainSeparator({\n domain: {\n name: domain.name,\n version: \"1\",\n verifyingContract: domain.verifyingContract,\n },\n salt,\n chainId,\n });\n\n if (domainSeparatorWithSalt.toLowerCase() === domainSeparator.toLowerCase()) {\n return {\n version: \"1\",\n salt,\n };\n }\n\n const domainSeparatorV2 = computeDomainSeparator({\n domain: {\n name: domain.name,\n version: \"2\", // maybe version=2, often on newer tokens,\n // but usually exposed publicly, together with eip712Domain\n verifyingContract: domain.verifyingContract,\n },\n chainId,\n });\n\n if (domainSeparatorV2.toLowerCase() === domainSeparator.toLowerCase()) {\n return {\n version: \"2\",\n chainId,\n };\n }\n\n const domainSeparatorWithSaltV2 = computeDomainSeparator({\n domain: {\n name: domain.name,\n version: \"2\",\n verifyingContract: domain.verifyingContract,\n },\n salt, // version=2, but with salt\n chainId,\n });\n\n if (\n domainSeparatorWithSaltV2.toLowerCase() === domainSeparator.toLowerCase()\n ) {\n return {\n version: \"2\",\n salt,\n };\n }\n\n // even rarer domainSeparator, can't really guess params\n return { chainId };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"domainSeparator.js","names":["Address","Hex","domainSeparator","toHex","PermitSupportResult","getDomainSeparatorVersionChain","name","version","chainId","verifyingContract","domain","getDomainSeparatorChain","getDomainSeparatorVersionSalt","salt","ComputeDomainSeparatorParams","Pick","computeDomainSeparator","BigInt","GuessDomainVersionParams","GuessDomainVersionResult","guessDomainParams","standardDomainSeparator","toLowerCase","size","domainSeparatorWithSalt","domainSeparatorWithoutVersion","domainSeparatorV2","domainSeparatorWithSaltV2"],"sources":["../../../../src/hooks/permit/utils/domainSeparator.ts"],"sourcesContent":["import { type Address, type Hex, domainSeparator, toHex } from \"viem\";\nimport type { PermitSupportResult } from \"./detect\";\n\nexport function getDomainSeparatorVersionChain({\n name,\n version,\n chainId,\n verifyingContract,\n}: {\n name: string;\n version: string;\n chainId: bigint;\n verifyingContract: Address;\n}): Hex {\n /**\n * Internally does\n const EIP712_DOMAIN_TYPEHASH = keccak256(\n toBytes(\"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\")\n );\n\n const nameHash = keccak256(toBytes(name));\n const versionHash = keccak256(toBytes(version));\n\n const encoded = encodeAbiParameters(\n [\n { type: 'bytes32', name: 'typeHash' },\n { type: 'bytes32', name: 'nameHash' },\n { type: 'bytes32', name: 'versionHash' },\n { type: 'uint256', name: 'chainId' },\n { type: 'address', name: 'verifyingContract' },\n ],\n [EIP712_DOMAIN_TYPEHASH, nameHash, versionHash, chainId, verifyingContract]\n );\n\n return keccak256(encoded);\n */\n return domainSeparator({\n domain: {\n name,\n version,\n chainId,\n verifyingContract,\n },\n });\n}\n\nexport function getDomainSeparatorChain({\n name,\n chainId,\n verifyingContract,\n}: {\n name: string;\n chainId: bigint;\n verifyingContract: Address;\n}): Hex {\n return domainSeparator({\n domain: {\n name,\n chainId,\n verifyingContract,\n },\n });\n}\n\nexport function getDomainSeparatorVersionSalt({\n name,\n version,\n salt,\n verifyingContract,\n}: {\n name: string;\n version: string;\n salt: Hex;\n verifyingContract: Address;\n}): Hex {\n return domainSeparator({\n domain: {\n name,\n version,\n verifyingContract,\n salt,\n },\n });\n}\n\ntype ComputeDomainSeparatorParams = {\n salt?: Hex; // used as salt (ex. USDC.e on Polygon)\n domain: Pick<\n PermitSupportResult[\"domain\"],\n \"name\" | \"version\" | \"verifyingContract\"\n >;\n chainId: number;\n};\n\nfunction computeDomainSeparator({\n salt,\n domain,\n chainId,\n}: ComputeDomainSeparatorParams): Hex {\n if (salt) {\n /** with salt (ex. USDC.e on Polygon)\n * DOMAIN_SEPARATOR = keccak256(\n abi.encode(\n EIP712_DOMAIN_TYPEHASH,\n keccak256(bytes(name)),\n keccak256(bytes(version)),\n address(this),\n bytes32(chainId) // salt\n )\n );\n }\n */\n\n const domainSeparator = getDomainSeparatorVersionSalt({\n name: domain.name,\n version: domain.version || \"1\", // salt is used together with version\n salt,\n verifyingContract: domain.verifyingContract,\n });\n\n return domainSeparator;\n }\n\n if (domain.version) {\n /** standard domainSeparator, with version and chainId\n * DOMAIN_SEPARATOR = keccak256(abi.encode(\n keccak256(\"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\"),\n keccak256(bytes(name)),\n keccak256(bytes(version)),\n chainId, // uint256\n address(this)\n ));\n */\n const domainSeparator = getDomainSeparatorVersionChain({\n name: domain.name,\n version: domain.version, // salt is used together with version\n chainId: BigInt(chainId),\n verifyingContract: domain.verifyingContract,\n });\n\n return domainSeparator;\n }\n\n /** without version\n * DOMAIN_SEPARATOR = keccak256(abi.encode(\n keccak256(\"EIP712Domain(string name,uint256 chainId,address verifyingContract)\"),\n keccak256(bytes(name)),\n chainId, // uint256\n address(this)\n ));\n */\n\n const domainSeparator = getDomainSeparatorChain({\n name: domain.name,\n chainId: BigInt(chainId),\n verifyingContract: domain.verifyingContract,\n });\n\n return domainSeparator;\n}\n\ntype GuessDomainVersionParams = {\n domain: Pick<\n PermitSupportResult[\"domain\"],\n \"name\" | \"verifyingContract\" | \"version\"\n >;\n chainId: number;\n domainSeparator: string;\n};\n\ntype GuessDomainVersionResult =\n | {\n version: string;\n chainId?: never;\n salt?: never;\n }\n | { chainId: number; version?: never; salt?: never }\n | {\n version: string;\n chainId: number;\n salt?: never;\n }\n | {\n version: string;\n salt: Hex;\n chainId?: never;\n };\n\nexport function guessDomainParams({\n domain,\n chainId,\n domainSeparator,\n}: GuessDomainVersionParams): GuessDomainVersionResult {\n // version was read from the contract, so it's included for certain\n if (domain.version) {\n const standardDomainSeparator = computeDomainSeparator({\n domain: {\n name: domain.name,\n version: domain.version, // maybe version=1, very often\n verifyingContract: domain.verifyingContract,\n },\n chainId,\n });\n\n if (\n standardDomainSeparator.toLowerCase() === domainSeparator.toLowerCase()\n ) {\n return {\n version: domain.version,\n chainId,\n };\n }\n\n // left-padded to bytes32\n const salt = toHex(chainId, { size: 32 }); // chainId used as salt (ex. USDC.e on Polygon)\n\n const domainSeparatorWithSalt = computeDomainSeparator({\n domain: {\n name: domain.name,\n version: domain.version,\n verifyingContract: domain.verifyingContract,\n },\n salt,\n chainId,\n });\n\n if (\n domainSeparatorWithSalt.toLowerCase() === domainSeparator.toLowerCase()\n ) {\n return {\n version: domain.version,\n salt,\n };\n }\n\n // even rarer domainSeparator, can't really guess params\n return { chainId, version: domain.version };\n }\n\n const standardDomainSeparator = computeDomainSeparator({\n domain: {\n name: domain.name,\n version: \"1\", // maybe version=1, very often\n verifyingContract: domain.verifyingContract,\n },\n chainId,\n });\n\n if (standardDomainSeparator.toLowerCase() === domainSeparator.toLowerCase()) {\n return {\n version: \"1\",\n chainId,\n };\n }\n\n const domainSeparatorWithoutVersion = computeDomainSeparator({\n // maybe without version, often for older tokens\n domain: { name: domain.name, verifyingContract: domain.verifyingContract },\n chainId,\n });\n\n if (\n domainSeparatorWithoutVersion.toLowerCase() ===\n domainSeparator.toLowerCase()\n ) {\n return {\n chainId,\n };\n }\n\n const salt = toHex(chainId, { size: 32 }); // chainId used as salt (ex. USDC.e on Polygon)\n\n const domainSeparatorWithSalt = computeDomainSeparator({\n domain: {\n name: domain.name,\n version: \"1\",\n verifyingContract: domain.verifyingContract,\n },\n salt,\n chainId,\n });\n\n if (domainSeparatorWithSalt.toLowerCase() === domainSeparator.toLowerCase()) {\n return {\n version: \"1\",\n salt,\n };\n }\n\n const domainSeparatorV2 = computeDomainSeparator({\n domain: {\n name: domain.name,\n version: \"2\", // maybe version=2, often on newer tokens,\n // but usually exposed publicly, together with eip712Domain\n verifyingContract: domain.verifyingContract,\n },\n chainId,\n });\n\n if (domainSeparatorV2.toLowerCase() === domainSeparator.toLowerCase()) {\n return {\n version: \"2\",\n chainId,\n };\n }\n\n const domainSeparatorWithSaltV2 = computeDomainSeparator({\n domain: {\n name: domain.name,\n version: \"2\",\n verifyingContract: domain.verifyingContract,\n },\n salt, // version=2, but with salt\n chainId,\n });\n\n if (\n domainSeparatorWithSaltV2.toLowerCase() === domainSeparator.toLowerCase()\n ) {\n return {\n version: \"2\",\n salt,\n };\n }\n\n // even rarer domainSeparator, can't really guess params\n return { chainId };\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"encodeArgs.js","names":["encodeAbiParameters","parseSignature","concatHex","toHex","Address","Hash","DAI_PERMIT_ABI","EIP_2612_PERMIT_ABI","PERMIT2_ABI","DaiPermitInput","Permit1Input","Permit2Input","EncodePermitMethodArgsInputEIP2612","Pick","signature","EncodePermitMethodArgsInputDAI","EIP_2612_PERMIT_PARAMETERS","find","abiItem","name","inputs","DAI_PERMIT_PARAMETERS","encodePermit1MethodArgs","input","r","s","v","type","owner","spender","value","deadline","Number","holder","nonce","expiry","allowed","EncodePermitMethodArgsInputPermit2TransferFrom","variant","PERMIT2_TRANSFER_FROM_PARAMETERS","encodePermit2TransferFromMethodArgs","permitted","token","amount","expiration","to","requestedAmount","const","encodePermit2TransferFromSigDataForDelta","sigData","nonceHex","size"],"sources":["../../../../src/hooks/permit/utils/encodeArgs.ts"],"sourcesContent":["import {\n encodeAbiParameters,\n parseSignature,\n concatHex,\n toHex,\n type Address,\n type Hash,\n} from \"viem\";\nimport { DAI_PERMIT_ABI, EIP_2612_PERMIT_ABI, PERMIT2_ABI } from \"./abi\";\nimport type { DaiPermitInput, Permit1Input, Permit2Input } from \"./construct\";\n\ntype EncodePermitMethodArgsInputEIP2612 = Pick<\n Permit1Input,\n \"owner\" | \"spender\" | \"value\" | \"nonce\" | \"deadline\" | \"type\"\n> & {\n signature: Hash;\n};\n\ntype EncodePermitMethodArgsInputDAI = Pick<\n DaiPermitInput,\n \"holder\" | \"spender\" | \"nonce\" | \"expiry\" | \"allowed\" | \"type\"\n> & {\n signature: Hash;\n};\n\nconst EIP_2612_PERMIT_PARAMETERS = EIP_2612_PERMIT_ABI.find(\n (abiItem) => abiItem.name === \"permit\"\n)!.inputs;\nconst DAI_PERMIT_PARAMETERS = DAI_PERMIT_ABI.find(\n (abiItem) => abiItem.name === \"permit\"\n)!.inputs;\n\nexport function encodePermit1MethodArgs(\n input: EncodePermitMethodArgsInputEIP2612 | EncodePermitMethodArgsInputDAI\n): Hash {\n // this is unusable with Multisig Smart Wallets, because signature is non-standard length and it can'be parsed\n // @TODO implement bundle txs (Approve + Swap) for Multisig Smart Wallets (and in general wallets that support bundle txs)\n const { r, s, v } = parseSignature(input.signature);\n if (input.type === \"permit1\") {\n return encodeAbiParameters(EIP_2612_PERMIT_PARAMETERS, [\n input.owner,\n input.spender,\n input.value,\n input.deadline,\n Number(v),\n r,\n s,\n ]);\n }\n return encodeAbiParameters(DAI_PERMIT_PARAMETERS, [\n input.holder,\n input.spender,\n input.nonce,\n input.expiry,\n input.allowed,\n Number(v),\n r,\n s,\n ]);\n}\n\n/// Permit2 TransferFrom /////\n\ntype EncodePermitMethodArgsInputPermit2TransferFrom = Pick<\n Permit2Input,\n \"token\" | \"spender\" | \"nonce\" | \"amount\" | \"expiration\" | \"chainId\"\n> & {\n variant: \"transferFrom\";\n signature: Hash;\n owner: Address;\n};\n\nconst PERMIT2_TRANSFER_FROM_PARAMETERS = PERMIT2_ABI.find(\n (abiItem) => abiItem.name === \"permitTransferFrom\"\n)!.inputs;\n\nexport function encodePermit2TransferFromMethodArgs(\n input: EncodePermitMethodArgsInputPermit2TransferFrom\n): Hash {\n return encodeAbiParameters(PERMIT2_TRANSFER_FROM_PARAMETERS, [\n {\n permitted: {\n token: input.token,\n amount: input.amount,\n },\n nonce: input.nonce,\n deadline: input.expiration,\n },\n {\n to: input.spender,\n requestedAmount: input.amount,\n },\n input.owner,\n input.signature,\n // this could work with Multisig signature, because it's bytes without fixed length in ABI,\n // but the Contract only supports compact signature for Permit2 TransferFrom,\n // and compactSignature is made from full-length signature through parsing and serializing.\n // Multisig signature is non-standard length and it can't be parsed\n ] as const);\n}\n\n/**\n * Builds the 96‑byte payload required by Permit2’s `permitTransferFrom`\n * Delta contract (bytes32 nonce · bytes64 signature).\n *\n * @param sigData.nonce – numeric nonce as a bigint\n * @param sigData.signature – compact 64‑byte (compact) signature (0x…128 hex digits)\n * @returns 0x‑prefixed hex string, length = 2 + 96 × 2 = 194 chars\n */\nexport function encodePermit2TransferFromSigDataForDelta(sigData: {\n nonce: bigint;\n signature: Hash;\n}): Hash {\n // In the Delta Contract, specifically for Permit2 transferFrom, we have signature consisting of\n // bytes32(permit2nonce) + bytes64(signature) = bytes96 Permit2 Transfer format\n\n // 1. Convert nonce → BigInt → 32‑byte left‑padded hex (0x…64 hex digits)\n const nonceHex = toHex(sigData.nonce, { size: 32 });\n\n // 2. Join the fixed‑width pieces → bytes96\n return concatHex([nonceHex, sigData.signature]);\n // currently doesn't work with Multisig signature, because of the Delta Contract implementation\n}\n"],"mappings":";;;AAyBA,IAAMgB,IAA6BT,EAAoBU,MACpDC,MAAYA,EAAQC,SAAS,SAC/B,CAAEC,QACGC,IAAwBf,EAAeW,MAC1CC,MAAYA,EAAQC,SAAS,SAC/B,CAAEC;AAEH,SAAgBE,EACdC,GACM;CAGN,IAAM,EAAEC,MAAGC,MAAGC,SAAMzB,EAAesB,EAAMT,UAAU;AAYnD,QAXIS,EAAMI,SAAS,YACV3B,EAAoBgB,GAA4B;EACrDO,EAAMK;EACNL,EAAMM;EACNN,EAAMO;EACNP,EAAMQ;EACNC,OAAON,EAAE;EACTF;EACAC;EACD,CAAC,GAEGzB,EAAoBqB,GAAuB;EAChDE,EAAMU;EACNV,EAAMM;EACNN,EAAMW;EACNX,EAAMY;EACNZ,EAAMa;EACNJ,OAAON,EAAE;EACTF;EACAC;EACD,CAAC;;AAcJ,IAAMc,IAAmC/B,EAAYS,MAClDC,MAAYA,EAAQC,SAAS,qBAC/B,CAAEC;AAEH,SAAgBoB,EACdjB,GACM;AACN,QAAOvB,EAAoBuC,GAAkC;EAC3D;GACEE,WAAW;IACTC,OAAOnB,EAAMmB;IACbC,QAAQpB,EAAMoB;IACf;GACDT,OAAOX,EAAMW;GACbH,UAAUR,EAAMqB;GACjB;EACD;GACEC,IAAItB,EAAMM;GACViB,iBAAiBvB,EAAMoB;GACxB;EACDpB,EAAMK;EACNL,EAAMT;EAKP,CAAU;;AAWb,SAAgBkC,EAAyCC,GAGhD;AAQP,QAAO/C,EAAU,CAHAC,EAAM8C,EAAQf,OAAO,EAAEiB,MAAM,IAAI,CAAC,EAGvBF,EAAQnC,UAAU,CAAC"}
1
+ {"version":3,"file":"encodeArgs.js","names":["encodeAbiParameters","parseSignature","concatHex","toHex","Address","Hash","DAI_PERMIT_ABI","EIP_2612_PERMIT_ABI","PERMIT2_ABI","DaiPermitInput","Permit1Input","Permit2Input","EncodePermitMethodArgsInputEIP2612","Pick","signature","EncodePermitMethodArgsInputDAI","EIP_2612_PERMIT_PARAMETERS","find","abiItem","name","inputs","DAI_PERMIT_PARAMETERS","encodePermit1MethodArgs","input","r","s","v","type","owner","spender","value","deadline","Number","holder","nonce","expiry","allowed","EncodePermitMethodArgsInputPermit2TransferFrom","variant","PERMIT2_TRANSFER_FROM_PARAMETERS","encodePermit2TransferFromMethodArgs","permitted","token","amount","expiration","to","requestedAmount","const","encodePermit2TransferFromSigDataForDelta","sigData","nonceHex","size"],"sources":["../../../../src/hooks/permit/utils/encodeArgs.ts"],"sourcesContent":["import {\n encodeAbiParameters,\n parseSignature,\n concatHex,\n toHex,\n type Address,\n type Hash,\n} from \"viem\";\nimport { DAI_PERMIT_ABI, EIP_2612_PERMIT_ABI, PERMIT2_ABI } from \"./abi\";\nimport type { DaiPermitInput, Permit1Input, Permit2Input } from \"./construct\";\n\ntype EncodePermitMethodArgsInputEIP2612 = Pick<\n Permit1Input,\n \"owner\" | \"spender\" | \"value\" | \"nonce\" | \"deadline\" | \"type\"\n> & {\n signature: Hash;\n};\n\ntype EncodePermitMethodArgsInputDAI = Pick<\n DaiPermitInput,\n \"holder\" | \"spender\" | \"nonce\" | \"expiry\" | \"allowed\" | \"type\"\n> & {\n signature: Hash;\n};\n\nconst EIP_2612_PERMIT_PARAMETERS = EIP_2612_PERMIT_ABI.find(\n (abiItem) => abiItem.name === \"permit\"\n)!.inputs;\nconst DAI_PERMIT_PARAMETERS = DAI_PERMIT_ABI.find(\n (abiItem) => abiItem.name === \"permit\"\n)!.inputs;\n\nexport function encodePermit1MethodArgs(\n input: EncodePermitMethodArgsInputEIP2612 | EncodePermitMethodArgsInputDAI\n): Hash {\n // this is unusable with Multisig Smart Wallets, because signature is non-standard length and it can'be parsed\n // @TODO implement bundle txs (Approve + Swap) for Multisig Smart Wallets (and in general wallets that support bundle txs)\n const { r, s, v } = parseSignature(input.signature);\n if (input.type === \"permit1\") {\n return encodeAbiParameters(EIP_2612_PERMIT_PARAMETERS, [\n input.owner,\n input.spender,\n input.value,\n input.deadline,\n Number(v),\n r,\n s,\n ]);\n }\n return encodeAbiParameters(DAI_PERMIT_PARAMETERS, [\n input.holder,\n input.spender,\n input.nonce,\n input.expiry,\n input.allowed,\n Number(v),\n r,\n s,\n ]);\n}\n\n/// Permit2 TransferFrom /////\n\ntype EncodePermitMethodArgsInputPermit2TransferFrom = Pick<\n Permit2Input,\n \"token\" | \"spender\" | \"nonce\" | \"amount\" | \"expiration\" | \"chainId\"\n> & {\n variant: \"transferFrom\";\n signature: Hash;\n owner: Address;\n};\n\nconst PERMIT2_TRANSFER_FROM_PARAMETERS = PERMIT2_ABI.find(\n (abiItem) => abiItem.name === \"permitTransferFrom\"\n)!.inputs;\n\nexport function encodePermit2TransferFromMethodArgs(\n input: EncodePermitMethodArgsInputPermit2TransferFrom\n): Hash {\n return encodeAbiParameters(PERMIT2_TRANSFER_FROM_PARAMETERS, [\n {\n permitted: {\n token: input.token,\n amount: input.amount,\n },\n nonce: input.nonce,\n deadline: input.expiration,\n },\n {\n to: input.spender,\n requestedAmount: input.amount,\n },\n input.owner,\n input.signature,\n // this could work with Multisig signature, because it's bytes without fixed length in ABI,\n // but the Contract only supports compact signature for Permit2 TransferFrom,\n // and compactSignature is made from full-length signature through parsing and serializing.\n // Multisig signature is non-standard length and it can't be parsed\n ] as const);\n}\n\n/**\n * Builds the 96‑byte payload required by Permit2’s `permitTransferFrom`\n * Delta contract (bytes32 nonce · bytes64 signature).\n *\n * @param sigData.nonce – numeric nonce as a bigint\n * @param sigData.signature – compact 64‑byte (compact) signature (0x…128 hex digits)\n * @returns 0x‑prefixed hex string, length = 2 + 96 × 2 = 194 chars\n */\nexport function encodePermit2TransferFromSigDataForDelta(sigData: {\n nonce: bigint;\n signature: Hash;\n}): Hash {\n // In the Delta Contract, specifically for Permit2 transferFrom, we have signature consisting of\n // bytes32(permit2nonce) + bytes64(signature) = bytes96 Permit2 Transfer format\n\n // 1. Convert nonce → BigInt → 32‑byte left‑padded hex (0x…64 hex digits)\n const nonceHex = toHex(sigData.nonce, { size: 32 });\n\n // 2. Join the fixed‑width pieces → bytes96\n return concatHex([nonceHex, sigData.signature]);\n // currently doesn't work with Multisig signature, because of the Delta Contract implementation\n}\n"],"mappings":";;;AAyBA,IAAMgB,IAA6BT,EAAoBU,MACpDC,MAAYA,EAAQC,SAAS,SAC/B,CAAEC,QACGC,IAAwBf,EAAeW,MAC1CC,MAAYA,EAAQC,SAAS,SAC/B,CAAEC;AAEH,SAAgBE,EACdC,GACM;CAGN,IAAM,EAAEC,MAAGC,MAAGC,SAAMzB,EAAesB,EAAMT,UAAU;CAYnD,OAXIS,EAAMI,SAAS,YACV3B,EAAoBgB,GAA4B;EACrDO,EAAMK;EACNL,EAAMM;EACNN,EAAMO;EACNP,EAAMQ;EACNC,OAAON,EAAE;EACTF;EACAC;EACD,CAAC,GAEGzB,EAAoBqB,GAAuB;EAChDE,EAAMU;EACNV,EAAMM;EACNN,EAAMW;EACNX,EAAMY;EACNZ,EAAMa;EACNJ,OAAON,EAAE;EACTF;EACAC;EACD,CAAC;;AAcJ,IAAMc,IAAmC/B,EAAYS,MAClDC,MAAYA,EAAQC,SAAS,qBAC/B,CAAEC;AAEH,SAAgBoB,EACdjB,GACM;CACN,OAAOvB,EAAoBuC,GAAkC;EAC3D;GACEE,WAAW;IACTC,OAAOnB,EAAMmB;IACbC,QAAQpB,EAAMoB;IACf;GACDT,OAAOX,EAAMW;GACbH,UAAUR,EAAMqB;GACjB;EACD;GACEC,IAAItB,EAAMM;GACViB,iBAAiBvB,EAAMoB;GACxB;EACDpB,EAAMK;EACNL,EAAMT;EAKP,CAAU;;AAWb,SAAgBkC,EAAyCC,GAGhD;CAQP,OAAO/C,EAAU,CAHAC,EAAM8C,EAAQf,OAAO,EAAEiB,MAAM,IAAI,CAGhCD,EAAUD,EAAQnC,UAAU,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"trySignPermit1.js","names":["Config","readContracts","Hex","Address","parseEther","parseSignature","generatePrivateKey","privateKeyToAccount","NotDetectedPermitSupport","PermitSupportResult","constructPermitTypedData","ERC_20_NONCES_ABI","DAI_PERMIT_ABI","EIP_2612_PERMIT_ABI","NonceMethod","SupportedChainId","TrySignPermitParams","config","permitInfo","tokenAddress","spenderAddress","amount","chainId","TrySignPermitSuccess","success","error","nonceBefore","nonceAfter","nonceMethod","TrySignPermitFailure","TrySignPermitResult","randomAcc","randomAccAddress","address","RANDOM_SPENDER_ADDRESS","trySignPermit1","Promise","type","deadline","BigInt","Math","floor","Date","now","readNonce","ownerAddress","permitTypedData","holder","spender","nonce","expiry","allowed","owner","value","primaryType","signature","signTypedData","domain","types","message","v","r","s","undefined","vNumber","Number","permitCallData","createPermitCallData","permitType","multicallContracts","abi","functionName","args","const","multicallResult","allowFailure","contracts","nonceBeforeResult","permitResult","nonceAfterResult","status","nonceBeforeMulticall","result","nonceAfterMulticall","nonceIncreased","Error","ReadNonceParams","contractCalls","results","validNonceIndex","findIndex"],"sources":["../../../../src/hooks/permit/utils/trySignPermit1.ts"],"sourcesContent":["import { type Config, readContracts } from \"@wagmi/core\";\nimport { type Hex, type Address, parseEther, parseSignature } from \"viem\";\nimport { generatePrivateKey, privateKeyToAccount } from \"viem/accounts\";\nimport {\n type NotDetectedPermitSupport,\n type PermitSupportResult,\n} from \"./detect\";\nimport { constructPermitTypedData } from \"./construct\";\nimport { ERC_20_NONCES_ABI } from \"./constants\";\nimport { DAI_PERMIT_ABI, EIP_2612_PERMIT_ABI } from \"./abi\";\nimport type { NonceMethod } from \"../hooks/permit1/usePermit1Nonce\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\n\nexport type TrySignPermitParams = {\n config: Config;\n permitInfo: PermitSupportResult | NotDetectedPermitSupport;\n tokenAddress: Address;\n spenderAddress?: Address;\n amount?: bigint;\n chainId: SupportedChainId;\n};\n\nexport type TrySignPermitSuccess = {\n tokenAddress: Address;\n chainId: SupportedChainId;\n permitInfo: PermitSupportResult;\n success: true;\n error: null;\n nonceBefore: bigint;\n nonceAfter: bigint;\n nonceMethod: NonceMethod;\n};\n\nexport type TrySignPermitFailure = {\n tokenAddress: Address;\n chainId: SupportedChainId;\n permitInfo: PermitSupportResult | NotDetectedPermitSupport;\n success: false;\n error: string;\n};\n\nexport type TrySignPermitResult = TrySignPermitSuccess | TrySignPermitFailure;\n\n// Create a random wallet for testing,\n// wallet starts with nonce=0 everywhere\nconst randomAcc = privateKeyToAccount(generatePrivateKey());\nconst randomAccAddress = randomAcc.address;\n\n// not ZERO_ADDRESS to avoid possible !=address(0) checks\nconst RANDOM_SPENDER_ADDRESS = \"0x0000000000000000000000000000000000000123\";\n\n/**\n * Ultimate check if signing a permit will succeed with detected permitInfo\n * Tests permit functionality by:\n * 1. Creating a random wallet\n * 2. Reading the wallet's nonce\n * 3. Signing permit data with the wallet\n * 4. Making a multicall with: [read nonce, permit(), read nonce]\n * 5. Verifying the nonce increased (indicating permit was processed)\n */\nexport async function trySignPermit1({\n config,\n chainId,\n permitInfo,\n tokenAddress,\n spenderAddress = RANDOM_SPENDER_ADDRESS,\n amount = parseEther(\"1\"),\n}: TrySignPermitParams): Promise<TrySignPermitResult> {\n if (permitInfo.type === \"NOT_DETECTED\") {\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: false,\n error: \"Permit not detected\",\n };\n }\n\n try {\n // Create a deadline 1 hour from now\n const deadline = BigInt(Math.floor(Date.now() / 1000) + 3600);\n\n // Read nonce before permit\n const nonceBefore = await readNonce({\n config,\n tokenAddress,\n ownerAddress: randomAccAddress,\n chainId,\n });\n\n if (nonceBefore === null) {\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: false,\n error: \"Failed to read nonce\",\n };\n }\n\n // Construct permit typed data\n const permitTypedData =\n permitInfo.type === \"dai\"\n ? constructPermitTypedData({\n type: \"dai\",\n permitInfo,\n holder: randomAccAddress,\n spender: spenderAddress,\n nonce: nonceBefore.nonce,\n expiry: deadline,\n allowed: true,\n })\n : constructPermitTypedData({\n type: \"permit1\",\n permitInfo,\n owner: randomAccAddress,\n spender: spenderAddress,\n value: amount,\n nonce: nonceBefore.nonce,\n deadline,\n });\n\n // Only support EIP-2612 and DAI permit types\n if (\n permitTypedData.primaryType !== \"Permit\" ||\n !(\"domain\" in permitTypedData && \"message\" in permitTypedData)\n ) {\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: false,\n error:\n \"Unsupported permit type for trySignPermit (only EIP-2612 and DAI supported)\",\n };\n }\n\n // Sign the permit data using the account's signTypedData method\n const signature = await randomAcc.signTypedData({\n domain: permitTypedData.domain,\n types: permitTypedData.types,\n primaryType: permitTypedData.primaryType,\n message: permitTypedData.message,\n });\n\n // Split signature into v, r, s\n const { v, r, s } = parseSignature(signature);\n\n // Ensure v is defined and convert to number for permit calls\n if (v === undefined) {\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: false,\n error: \"Failed to parse signature - v component is undefined\",\n };\n }\n\n // Convert v to number for permit calls\n const vNumber = Number(v);\n\n // Create permit call data\n let permitCallData: unknown[];\n if (permitInfo.type === \"dai\") {\n permitCallData = createPermitCallData({\n permitType: \"dai\",\n owner: randomAccAddress,\n spender: spenderAddress,\n value: amount,\n nonce: nonceBefore.nonce,\n deadline,\n v: vNumber,\n r,\n s,\n });\n } else {\n permitCallData = createPermitCallData({\n permitType: \"eip2612\",\n owner: randomAccAddress,\n spender: spenderAddress,\n value: amount,\n nonce: nonceBefore.nonce,\n deadline,\n v: vNumber,\n r,\n s,\n });\n }\n\n // Create multicall with: [read nonce, permit(), read nonce]\n const multicallContracts = [\n // 1. Read nonce before permit\n {\n chainId,\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: nonceBefore.nonceMethod,\n args: [randomAccAddress],\n },\n // 2. Call permit function\n {\n chainId,\n address: tokenAddress,\n abi: permitInfo.type === \"dai\" ? DAI_PERMIT_ABI : EIP_2612_PERMIT_ABI,\n functionName: \"permit\",\n args: permitCallData as\n | [Address, Address, bigint, bigint, boolean, number, Hex, Hex]\n | [Address, Address, bigint, bigint, number, Hex, Hex],\n },\n // 3. Read nonce after permit\n {\n chainId,\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: nonceBefore.nonceMethod,\n args: [randomAccAddress],\n },\n ] as const;\n\n // Execute the multicall\n const multicallResult = await readContracts(config, {\n allowFailure: true,\n contracts: multicallContracts,\n });\n\n // Extract results\n const [nonceBeforeResult, permitResult, nonceAfterResult] = multicallResult;\n\n // Check if all results exist\n if (!nonceBeforeResult || !permitResult || !nonceAfterResult) {\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: false,\n error: \"Multicall returned incomplete results\",\n };\n }\n\n // Check if permit call succeeded\n if (permitResult.status === \"failure\") {\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: false,\n error: `Permit call failed: ${permitResult.error?.message || \"Unknown error\"}`,\n };\n }\n\n // Check if we can read nonces\n if (\n nonceBeforeResult.status === \"failure\" ||\n nonceAfterResult.status === \"failure\"\n ) {\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: false,\n error: \"Failed to read nonces in multicall\",\n };\n }\n\n const nonceBeforeMulticall = nonceBeforeResult.result as bigint;\n const nonceAfterMulticall = nonceAfterResult.result as bigint;\n\n // Verify nonce increased (indicating permit was processed)\n const nonceIncreased = nonceAfterMulticall > nonceBeforeMulticall;\n\n if (!nonceIncreased) {\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: false,\n error: \"Permit simulation failed - nonce did not increase\",\n };\n }\n\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: true,\n nonceBefore: nonceBeforeMulticall,\n nonceAfter: nonceAfterMulticall,\n nonceMethod: nonceBefore.nonceMethod,\n error: null,\n };\n } catch (error) {\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: false,\n error: error instanceof Error ? error.message : \"Unknown error occurred\",\n };\n }\n}\n\ntype ReadNonceParams = {\n config: Config;\n tokenAddress: Address;\n ownerAddress: Address;\n chainId: SupportedChainId;\n};\n\n/**\n * Reads the nonce for a given address and token\n */\nasync function readNonce({\n config,\n tokenAddress,\n ownerAddress,\n chainId,\n}: ReadNonceParams): Promise<{\n nonce: bigint;\n nonceMethod: NonceMethod;\n} | null> {\n const contractCalls = [\n {\n chainId,\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: \"nonces\",\n args: [ownerAddress],\n },\n {\n chainId,\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: \"_nonces\",\n args: [ownerAddress],\n },\n {\n chainId,\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: \"nonce\",\n args: [ownerAddress],\n },\n {\n chainId,\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: \"getNonce\",\n args: [ownerAddress],\n },\n ] as const;\n\n const results = await readContracts(config, {\n allowFailure: true,\n contracts: contractCalls,\n });\n\n const validNonceIndex = results.findIndex(\n (result) => result.status === \"success\"\n );\n\n if (validNonceIndex === -1) {\n return null;\n }\n\n const nonce = results[validNonceIndex]?.result as bigint;\n const nonceMethod = contractCalls[validNonceIndex]\n ?.functionName as NonceMethod;\n\n return { nonce, nonceMethod };\n}\n\n/**\n * Creates the call data for permit function based on permit type\n */\nfunction createPermitCallData({\n permitType,\n owner,\n spender,\n value,\n nonce,\n deadline,\n v,\n r,\n s,\n}: {\n permitType: \"eip2612\" | \"dai\";\n owner: Address;\n spender: Address;\n value: bigint;\n nonce: bigint;\n deadline: bigint;\n v: number;\n r: Hex;\n s: Hex;\n}): unknown[] {\n if (permitType === \"dai\") {\n // DAI permit: (holder, spender, nonce, expiry, allowed, v, r, s)\n return [owner, spender, nonce, deadline, true, v, r, s];\n } else {\n // EIP2612 permit: (owner, spender, value, deadline, v, r, s)\n return [owner, spender, value, deadline, v, r, s];\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"trySignPermit1.js","names":["Config","readContracts","Hex","Address","parseEther","parseSignature","generatePrivateKey","privateKeyToAccount","NotDetectedPermitSupport","PermitSupportResult","constructPermitTypedData","ERC_20_NONCES_ABI","DAI_PERMIT_ABI","EIP_2612_PERMIT_ABI","NonceMethod","SupportedChainId","TrySignPermitParams","config","permitInfo","tokenAddress","spenderAddress","amount","chainId","TrySignPermitSuccess","success","error","nonceBefore","nonceAfter","nonceMethod","TrySignPermitFailure","TrySignPermitResult","randomAcc","randomAccAddress","address","RANDOM_SPENDER_ADDRESS","trySignPermit1","Promise","type","deadline","BigInt","Math","floor","Date","now","readNonce","ownerAddress","permitTypedData","holder","spender","nonce","expiry","allowed","owner","value","primaryType","signature","signTypedData","domain","types","message","v","r","s","undefined","vNumber","Number","permitCallData","createPermitCallData","permitType","multicallContracts","abi","functionName","args","const","multicallResult","allowFailure","contracts","nonceBeforeResult","permitResult","nonceAfterResult","status","nonceBeforeMulticall","result","nonceAfterMulticall","nonceIncreased","Error","ReadNonceParams","contractCalls","results","validNonceIndex","findIndex"],"sources":["../../../../src/hooks/permit/utils/trySignPermit1.ts"],"sourcesContent":["import { type Config, readContracts } from \"@wagmi/core\";\nimport { type Hex, type Address, parseEther, parseSignature } from \"viem\";\nimport { generatePrivateKey, privateKeyToAccount } from \"viem/accounts\";\nimport {\n type NotDetectedPermitSupport,\n type PermitSupportResult,\n} from \"./detect\";\nimport { constructPermitTypedData } from \"./construct\";\nimport { ERC_20_NONCES_ABI } from \"./constants\";\nimport { DAI_PERMIT_ABI, EIP_2612_PERMIT_ABI } from \"./abi\";\nimport type { NonceMethod } from \"../hooks/permit1/usePermit1Nonce\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\n\nexport type TrySignPermitParams = {\n config: Config;\n permitInfo: PermitSupportResult | NotDetectedPermitSupport;\n tokenAddress: Address;\n spenderAddress?: Address;\n amount?: bigint;\n chainId: SupportedChainId;\n};\n\nexport type TrySignPermitSuccess = {\n tokenAddress: Address;\n chainId: SupportedChainId;\n permitInfo: PermitSupportResult;\n success: true;\n error: null;\n nonceBefore: bigint;\n nonceAfter: bigint;\n nonceMethod: NonceMethod;\n};\n\nexport type TrySignPermitFailure = {\n tokenAddress: Address;\n chainId: SupportedChainId;\n permitInfo: PermitSupportResult | NotDetectedPermitSupport;\n success: false;\n error: string;\n};\n\nexport type TrySignPermitResult = TrySignPermitSuccess | TrySignPermitFailure;\n\n// Create a random wallet for testing,\n// wallet starts with nonce=0 everywhere\nconst randomAcc = privateKeyToAccount(generatePrivateKey());\nconst randomAccAddress = randomAcc.address;\n\n// not ZERO_ADDRESS to avoid possible !=address(0) checks\nconst RANDOM_SPENDER_ADDRESS = \"0x0000000000000000000000000000000000000123\";\n\n/**\n * Ultimate check if signing a permit will succeed with detected permitInfo\n * Tests permit functionality by:\n * 1. Creating a random wallet\n * 2. Reading the wallet's nonce\n * 3. Signing permit data with the wallet\n * 4. Making a multicall with: [read nonce, permit(), read nonce]\n * 5. Verifying the nonce increased (indicating permit was processed)\n */\nexport async function trySignPermit1({\n config,\n chainId,\n permitInfo,\n tokenAddress,\n spenderAddress = RANDOM_SPENDER_ADDRESS,\n amount = parseEther(\"1\"),\n}: TrySignPermitParams): Promise<TrySignPermitResult> {\n if (permitInfo.type === \"NOT_DETECTED\") {\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: false,\n error: \"Permit not detected\",\n };\n }\n\n try {\n // Create a deadline 1 hour from now\n const deadline = BigInt(Math.floor(Date.now() / 1000) + 3600);\n\n // Read nonce before permit\n const nonceBefore = await readNonce({\n config,\n tokenAddress,\n ownerAddress: randomAccAddress,\n chainId,\n });\n\n if (nonceBefore === null) {\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: false,\n error: \"Failed to read nonce\",\n };\n }\n\n // Construct permit typed data\n const permitTypedData =\n permitInfo.type === \"dai\"\n ? constructPermitTypedData({\n type: \"dai\",\n permitInfo,\n holder: randomAccAddress,\n spender: spenderAddress,\n nonce: nonceBefore.nonce,\n expiry: deadline,\n allowed: true,\n })\n : constructPermitTypedData({\n type: \"permit1\",\n permitInfo,\n owner: randomAccAddress,\n spender: spenderAddress,\n value: amount,\n nonce: nonceBefore.nonce,\n deadline,\n });\n\n // Only support EIP-2612 and DAI permit types\n if (\n permitTypedData.primaryType !== \"Permit\" ||\n !(\"domain\" in permitTypedData && \"message\" in permitTypedData)\n ) {\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: false,\n error:\n \"Unsupported permit type for trySignPermit (only EIP-2612 and DAI supported)\",\n };\n }\n\n // Sign the permit data using the account's signTypedData method\n const signature = await randomAcc.signTypedData({\n domain: permitTypedData.domain,\n types: permitTypedData.types,\n primaryType: permitTypedData.primaryType,\n message: permitTypedData.message,\n });\n\n // Split signature into v, r, s\n const { v, r, s } = parseSignature(signature);\n\n // Ensure v is defined and convert to number for permit calls\n if (v === undefined) {\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: false,\n error: \"Failed to parse signature - v component is undefined\",\n };\n }\n\n // Convert v to number for permit calls\n const vNumber = Number(v);\n\n // Create permit call data\n let permitCallData: unknown[];\n if (permitInfo.type === \"dai\") {\n permitCallData = createPermitCallData({\n permitType: \"dai\",\n owner: randomAccAddress,\n spender: spenderAddress,\n value: amount,\n nonce: nonceBefore.nonce,\n deadline,\n v: vNumber,\n r,\n s,\n });\n } else {\n permitCallData = createPermitCallData({\n permitType: \"eip2612\",\n owner: randomAccAddress,\n spender: spenderAddress,\n value: amount,\n nonce: nonceBefore.nonce,\n deadline,\n v: vNumber,\n r,\n s,\n });\n }\n\n // Create multicall with: [read nonce, permit(), read nonce]\n const multicallContracts = [\n // 1. Read nonce before permit\n {\n chainId,\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: nonceBefore.nonceMethod,\n args: [randomAccAddress],\n },\n // 2. Call permit function\n {\n chainId,\n address: tokenAddress,\n abi: permitInfo.type === \"dai\" ? DAI_PERMIT_ABI : EIP_2612_PERMIT_ABI,\n functionName: \"permit\",\n args: permitCallData as\n | [Address, Address, bigint, bigint, boolean, number, Hex, Hex]\n | [Address, Address, bigint, bigint, number, Hex, Hex],\n },\n // 3. Read nonce after permit\n {\n chainId,\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: nonceBefore.nonceMethod,\n args: [randomAccAddress],\n },\n ] as const;\n\n // Execute the multicall\n const multicallResult = await readContracts(config, {\n allowFailure: true,\n contracts: multicallContracts,\n });\n\n // Extract results\n const [nonceBeforeResult, permitResult, nonceAfterResult] = multicallResult;\n\n // Check if all results exist\n if (!nonceBeforeResult || !permitResult || !nonceAfterResult) {\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: false,\n error: \"Multicall returned incomplete results\",\n };\n }\n\n // Check if permit call succeeded\n if (permitResult.status === \"failure\") {\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: false,\n error: `Permit call failed: ${permitResult.error?.message || \"Unknown error\"}`,\n };\n }\n\n // Check if we can read nonces\n if (\n nonceBeforeResult.status === \"failure\" ||\n nonceAfterResult.status === \"failure\"\n ) {\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: false,\n error: \"Failed to read nonces in multicall\",\n };\n }\n\n const nonceBeforeMulticall = nonceBeforeResult.result as bigint;\n const nonceAfterMulticall = nonceAfterResult.result as bigint;\n\n // Verify nonce increased (indicating permit was processed)\n const nonceIncreased = nonceAfterMulticall > nonceBeforeMulticall;\n\n if (!nonceIncreased) {\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: false,\n error: \"Permit simulation failed - nonce did not increase\",\n };\n }\n\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: true,\n nonceBefore: nonceBeforeMulticall,\n nonceAfter: nonceAfterMulticall,\n nonceMethod: nonceBefore.nonceMethod,\n error: null,\n };\n } catch (error) {\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: false,\n error: error instanceof Error ? error.message : \"Unknown error occurred\",\n };\n }\n}\n\ntype ReadNonceParams = {\n config: Config;\n tokenAddress: Address;\n ownerAddress: Address;\n chainId: SupportedChainId;\n};\n\n/**\n * Reads the nonce for a given address and token\n */\nasync function readNonce({\n config,\n tokenAddress,\n ownerAddress,\n chainId,\n}: ReadNonceParams): Promise<{\n nonce: bigint;\n nonceMethod: NonceMethod;\n} | null> {\n const contractCalls = [\n {\n chainId,\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: \"nonces\",\n args: [ownerAddress],\n },\n {\n chainId,\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: \"_nonces\",\n args: [ownerAddress],\n },\n {\n chainId,\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: \"nonce\",\n args: [ownerAddress],\n },\n {\n chainId,\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: \"getNonce\",\n args: [ownerAddress],\n },\n ] as const;\n\n const results = await readContracts(config, {\n allowFailure: true,\n contracts: contractCalls,\n });\n\n const validNonceIndex = results.findIndex(\n (result) => result.status === \"success\"\n );\n\n if (validNonceIndex === -1) {\n return null;\n }\n\n const nonce = results[validNonceIndex]?.result as bigint;\n const nonceMethod = contractCalls[validNonceIndex]\n ?.functionName as NonceMethod;\n\n return { nonce, nonceMethod };\n}\n\n/**\n * Creates the call data for permit function based on permit type\n */\nfunction createPermitCallData({\n permitType,\n owner,\n spender,\n value,\n nonce,\n deadline,\n v,\n r,\n s,\n}: {\n permitType: \"eip2612\" | \"dai\";\n owner: Address;\n spender: Address;\n value: bigint;\n nonce: bigint;\n deadline: bigint;\n v: number;\n r: Hex;\n s: Hex;\n}): unknown[] {\n if (permitType === \"dai\") {\n // DAI permit: (holder, spender, nonce, expiry, allowed, v, r, s)\n return [owner, spender, nonce, deadline, true, v, r, s];\n } else {\n // EIP2612 permit: (owner, spender, value, deadline, v, r, s)\n return [owner, spender, value, deadline, v, r, s];\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","names":["Address","Hex","PermitSupportResult","EIP712DomainTuple","fields","name","version","chainId","verifyingContract","salt","extensions","getDomainFromEIP712Domain","eip712Domain","length","buildBasicDomain","Number","fieldNames","const","domain","i","field","entries"],"sources":["../../../../src/hooks/permit/utils/utils.ts"],"sourcesContent":["import type { Address, Hex } from \"viem\";\nimport type { PermitSupportResult } from \"./detect\";\n// Based on https://eips.ethereum.org/EIPS/eip-5267#javascript\n\ntype EIP712DomainTuple = {\n fields: Hex;\n name: string;\n version: string;\n chainId: bigint;\n verifyingContract: Address;\n salt: Hex;\n extensions: readonly bigint[];\n};\n\n/** Retrieves the EIP-712 domain of a contract using EIP-5267 without extensions. */\nexport function getDomainFromEIP712Domain(\n eip712Domain: EIP712DomainTuple\n): PermitSupportResult[\"domain\"] | null {\n const {\n fields,\n name,\n version,\n chainId,\n verifyingContract,\n salt,\n extensions,\n } = eip712Domain;\n\n if (extensions.length > 0) {\n // throw Error(\"Extensions not implemented\");\n return null;\n }\n\n return buildBasicDomain(\n Number(fields),\n name,\n version,\n chainId,\n verifyingContract,\n salt\n );\n}\n\nconst fieldNames = [\n \"name\",\n \"version\",\n \"chainId\",\n \"verifyingContract\",\n \"salt\",\n] as const;\n\n/** Builds a domain object without extensions based on the return values of `eip712Domain()`. */\nfunction buildBasicDomain(\n fields: number,\n name: string,\n version: string,\n chainId: bigint,\n verifyingContract: Address,\n salt: Hex\n): PermitSupportResult[\"domain\"] {\n const domain = {\n name,\n version,\n chainId: Number(chainId),\n verifyingContract,\n salt,\n };\n\n for (const [i, field] of fieldNames.entries()) {\n if (!(fields & (1 << i))) {\n delete domain[field];\n }\n }\n\n return domain;\n}\n"],"mappings":";AAeA,SAAgBW,EACdC,GACsC;CACtC,IAAM,EACJR,WACAC,SACAC,YACAC,YACAC,sBACAC,SACAC,kBACEE;AAOJ,QALIF,EAAWG,SAAS,IAEf,OAGFC,EACLC,OAAOX,EAAO,EACdC,GACAC,GACAC,GACAC,GACAC,EACD;;AAGH,IAAMO,IAAa;CACjB;CACA;CACA;CACA;CACA;CACD;AAGD,SAASF,EACPV,GACAC,GACAC,GACAC,GACAC,GACAC,GAC+B;CAC/B,IAAMS,IAAS;EACbb;EACAC;EACAC,SAASQ,OAAOR,EAAQ;EACxBC;EACAC;EACD;AAED,MAAK,IAAM,CAACU,GAAGC,MAAUJ,EAAWK,SAAS,CAC3C,CAAMjB,IAAU,KAAKe,KACnB,OAAOD,EAAOE;AAIlB,QAAOF"}
1
+ {"version":3,"file":"utils.js","names":["Address","Hex","PermitSupportResult","EIP712DomainTuple","fields","name","version","chainId","verifyingContract","salt","extensions","getDomainFromEIP712Domain","eip712Domain","length","buildBasicDomain","Number","fieldNames","const","domain","i","field","entries"],"sources":["../../../../src/hooks/permit/utils/utils.ts"],"sourcesContent":["import type { Address, Hex } from \"viem\";\nimport type { PermitSupportResult } from \"./detect\";\n// Based on https://eips.ethereum.org/EIPS/eip-5267#javascript\n\ntype EIP712DomainTuple = {\n fields: Hex;\n name: string;\n version: string;\n chainId: bigint;\n verifyingContract: Address;\n salt: Hex;\n extensions: readonly bigint[];\n};\n\n/** Retrieves the EIP-712 domain of a contract using EIP-5267 without extensions. */\nexport function getDomainFromEIP712Domain(\n eip712Domain: EIP712DomainTuple\n): PermitSupportResult[\"domain\"] | null {\n const {\n fields,\n name,\n version,\n chainId,\n verifyingContract,\n salt,\n extensions,\n } = eip712Domain;\n\n if (extensions.length > 0) {\n // throw Error(\"Extensions not implemented\");\n return null;\n }\n\n return buildBasicDomain(\n Number(fields),\n name,\n version,\n chainId,\n verifyingContract,\n salt\n );\n}\n\nconst fieldNames = [\n \"name\",\n \"version\",\n \"chainId\",\n \"verifyingContract\",\n \"salt\",\n] as const;\n\n/** Builds a domain object without extensions based on the return values of `eip712Domain()`. */\nfunction buildBasicDomain(\n fields: number,\n name: string,\n version: string,\n chainId: bigint,\n verifyingContract: Address,\n salt: Hex\n): PermitSupportResult[\"domain\"] {\n const domain = {\n name,\n version,\n chainId: Number(chainId),\n verifyingContract,\n salt,\n };\n\n for (const [i, field] of fieldNames.entries()) {\n if (!(fields & (1 << i))) {\n delete domain[field];\n }\n }\n\n return domain;\n}\n"],"mappings":";AAeA,SAAgBW,EACdC,GACsC;CACtC,IAAM,EACJR,WACAC,SACAC,YACAC,YACAC,sBACAC,SACAC,kBACEE;CAOJ,OALIF,EAAWG,SAAS,IAEf,OAGFC,EACLC,OAAOX,EAAO,EACdC,GACAC,GACAC,GACAC,GACAC,EACD;;AAGH,IAAMO,IAAa;CACjB;CACA;CACA;CACA;CACA;CACD;AAGD,SAASF,EACPV,GACAC,GACAC,GACAC,GACAC,GACAC,GAC+B;CAC/B,IAAMS,IAAS;EACbb;EACAC;EACAC,SAASQ,OAAOR,EAAQ;EACxBC;EACAC;EACD;CAED,KAAK,IAAM,CAACU,GAAGC,MAAUJ,EAAWK,SAAS,EAC3C,AAAMjB,IAAU,KAAKe,KACnB,OAAOD,EAAOE;CAIlB,OAAOF"}
@@ -1 +1 @@
1
- {"version":3,"file":"useGetContracts.js","names":["UseQueryResult","useChainId","AdaptersContractsResult","useGetContractsQuery","useGetContracts","$","_c","chainId","t0","result"],"sources":["../../../src/hooks/sdk/useGetContracts.ts"],"sourcesContent":["import { type UseQueryResult } from \"@tanstack/react-query\";\n\nimport { useChainId } from \"wagmi\";\nimport type { AdaptersContractsResult } from \"./types\";\nimport { useGetContractsQuery } from \"../swap/prices/market/queries/useSpenderAndContracts\";\n\nexport const useGetContracts = (): UseQueryResult<\n AdaptersContractsResult,\n Error\n> => {\n const chainId = useChainId();\n\n const result = useGetContractsQuery({ chainId });\n\n return result;\n};\n"],"mappings":";;;;;AAMA,IAAaI,UAAkB;CAAA,IAAAC,IAAAC,EAAA,EAAA,EAI7BC,IAAgBN,GAAY,EAACO;AAEoB,QAFpBH,EAAA,OAAAE,IAEkBC,IAAAH,EAAA,MAAXG,IAAA,EAAAD,YAAW,EAAAF,EAAA,KAAAE,GAAAF,EAAA,KAAAG,IAAhCL,EAAqBK,EAAY"}
1
+ {"version":3,"file":"useGetContracts.js","names":["UseQueryResult","useChainId","AdaptersContractsResult","useGetContractsQuery","useGetContracts","$","_c","chainId","t0","result"],"sources":["../../../src/hooks/sdk/useGetContracts.ts"],"sourcesContent":["import { type UseQueryResult } from \"@tanstack/react-query\";\n\nimport { useChainId } from \"wagmi\";\nimport type { AdaptersContractsResult } from \"./types\";\nimport { useGetContractsQuery } from \"../swap/prices/market/queries/useSpenderAndContracts\";\n\nexport const useGetContracts = (): UseQueryResult<\n AdaptersContractsResult,\n Error\n> => {\n const chainId = useChainId();\n\n const result = useGetContractsQuery({ chainId });\n\n return result;\n};\n"],"mappings":";;;;;AAMA,IAAaI,UAAkB;CAAA,IAAAC,IAAAC,EAAA,EAAA,EAI7BC,IAAgBN,GAAY,EAACO;CAEoB,OAFpBH,EAAA,OAAAE,IAEkBC,IAAAH,EAAA,MAAXG,IAAA,EAAAD,YAAW,EAAAF,EAAA,KAAAE,GAAAF,EAAA,KAAAG,IAAhCL,EAAqBK,EAE7BC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useSpender.js","names":["SpenderContractType","useGetContracts","useSpender","contractType","$","_c","data","isLoading","isError","error","spender","undefined","t0"],"sources":["../../../src/hooks/sdk/useSpender.ts"],"sourcesContent":["import type { SpenderContractType } from \"./types\";\nimport { useGetContracts } from \"./useGetContracts\";\n\nexport const useSpender = (contractType?: SpenderContractType) => {\n const { data, isLoading, isError, error } = useGetContracts();\n const spender = data && contractType ? data[contractType] : undefined;\n\n return {\n spender,\n isError,\n isLoading,\n error,\n };\n};\n"],"mappings":";;;AAGA,IAAaE,KAAaC,MAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,EACxB,EAAAC,SAAAC,cAAAC,YAAAC,aAA4CR,GAAiB,EAC7DS,IAAgBJ,KAAAH,IAAuBG,EAAKH,KAA5BQ,KAAAA,GAAsDC;AAOrE,QAPqER,EAAA,OAAAK,KAAAL,EAAA,OAAAI,KAAAJ,EAAA,OAAAG,KAAAH,EAAA,OAAAM,KAE/DE,IAAA;EAAAF;EAAAF;EAAAD;EAAAE;EAKN,EAAAL,EAAA,KAAAK,GAAAL,EAAA,KAAAI,GAAAJ,EAAA,KAAAG,GAAAH,EAAA,KAAAM,GAAAN,EAAA,KAAAQ,KAAAA,IAAAR,EAAA,IALMQ"}
1
+ {"version":3,"file":"useSpender.js","names":["SpenderContractType","useGetContracts","useSpender","contractType","$","_c","data","isLoading","isError","error","spender","undefined","t0"],"sources":["../../../src/hooks/sdk/useSpender.ts"],"sourcesContent":["import type { SpenderContractType } from \"./types\";\nimport { useGetContracts } from \"./useGetContracts\";\n\nexport const useSpender = (contractType?: SpenderContractType) => {\n const { data, isLoading, isError, error } = useGetContracts();\n const spender = data && contractType ? data[contractType] : undefined;\n\n return {\n spender,\n isError,\n isLoading,\n error,\n };\n};\n"],"mappings":";;;AAGA,IAAaE,KAAaC,MAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,EACxB,EAAAC,SAAAC,cAAAC,YAAAC,aAA4CR,GAAiB,EAC7DS,IAAgBJ,KAAAH,IAAuBG,EAAKH,KAA5BQ,KAAAA,GAAsDC;CAOrE,OAPqER,EAAA,OAAAK,KAAAL,EAAA,OAAAI,KAAAJ,EAAA,OAAAG,KAAAH,EAAA,OAAAM,KAE/DE,IAAA;EAAAF;EAAAF;EAAAD;EAAAE;EAKN,EAAAL,EAAA,KAAAK,GAAAL,EAAA,KAAAI,GAAAJ,EAAA,KAAAG,GAAAH,EAAA,KAAAM,GAAAN,EAAA,KAAAQ,KAAAA,IAAAR,EAAA,IALMQ"}
@@ -1 +1 @@
1
- {"version":3,"file":"useSelectedBridgePrice.js","names":["useAtomValue","BridgePrice","protocolNameAtom","DeltaOrBridgePrice","extractSelectedBridgePrice","isBridgePrice","bridgePreferenceAtom","useSelectedBridgePrice","t0","$","_c","price","protocolName","bridgePreference","t1"],"sources":["../../../../../../src/hooks/swap/prices/delta/bridge/useSelectedBridgePrice.ts"],"sourcesContent":["import { useAtomValue } from \"@/core/store\";\nimport type { BridgePrice } from \"@velora-dex/sdk\";\nimport { protocolNameAtom } from \"@/components/widget/TradeParameters/state/bridgePreferences/protocolNameAtom\";\nimport type { DeltaOrBridgePrice } from \"../../types\";\nimport { extractSelectedBridgePrice } from \"./utils\";\nimport { isBridgePrice } from \"../queries/useDeltaPriceQuery\";\nimport { bridgePreferenceAtom } from \"@/components/widget/TradeParameters/state/bridgePreferences/bridgePreferenceAtom\";\n\nexport function useSelectedBridgePrice({\n price,\n}: {\n price?: DeltaOrBridgePrice;\n}): BridgePrice | undefined {\n const protocolName = useAtomValue(protocolNameAtom);\n const bridgePreference = useAtomValue(bridgePreferenceAtom);\n\n // no price available\n if (!price || !isBridgePrice(price)) return;\n\n return extractSelectedBridgePrice({\n price,\n protocolName,\n bridgePreference,\n });\n}\n"],"mappings":";;;;;;;AAQA,SAAOO,EAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,EAAgC,EAAAC,aAAAH,GAKrCI,IAAqBZ,EAAaE,EAAiB,EACnDW,IAAyBb,EAAaM,EAAqB;AAG3D,KAAI,CAACK,KAAD,CAAWN,EAAcM,EAAM,CAAA;CAAS,IAAAG;AAM1C,QAN0CL,EAAA,OAAAI,KAAAJ,EAAA,OAAAE,KAAAF,EAAA,OAAAG,KAErCE,IAAAV,EAA2B;EAAAO;EAAAC;EAAAC;EAIjC,CAAC,EAAAJ,EAAA,KAAAI,GAAAJ,EAAA,KAAAE,GAAAF,EAAA,KAAAG,GAAAH,EAAA,KAAAK,KAAAA,IAAAL,EAAA,IAJKK"}
1
+ {"version":3,"file":"useSelectedBridgePrice.js","names":["useAtomValue","BridgePrice","protocolNameAtom","DeltaOrBridgePrice","extractSelectedBridgePrice","isBridgePrice","bridgePreferenceAtom","useSelectedBridgePrice","t0","$","_c","price","protocolName","bridgePreference","t1"],"sources":["../../../../../../src/hooks/swap/prices/delta/bridge/useSelectedBridgePrice.ts"],"sourcesContent":["import { useAtomValue } from \"@/core/store\";\nimport type { BridgePrice } from \"@velora-dex/sdk\";\nimport { protocolNameAtom } from \"@/components/widget/TradeParameters/state/bridgePreferences/protocolNameAtom\";\nimport type { DeltaOrBridgePrice } from \"../../types\";\nimport { extractSelectedBridgePrice } from \"./utils\";\nimport { isBridgePrice } from \"../queries/useDeltaPriceQuery\";\nimport { bridgePreferenceAtom } from \"@/components/widget/TradeParameters/state/bridgePreferences/bridgePreferenceAtom\";\n\nexport function useSelectedBridgePrice({\n price,\n}: {\n price?: DeltaOrBridgePrice;\n}): BridgePrice | undefined {\n const protocolName = useAtomValue(protocolNameAtom);\n const bridgePreference = useAtomValue(bridgePreferenceAtom);\n\n // no price available\n if (!price || !isBridgePrice(price)) return;\n\n return extractSelectedBridgePrice({\n price,\n protocolName,\n bridgePreference,\n });\n}\n"],"mappings":";;;;;;;AAQA,SAAOO,EAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,EAAgC,EAAAC,aAAAH,GAKrCI,IAAqBZ,EAAaE,EAAiB,EACnDW,IAAyBb,EAAaM,EAAqB;CAG3D,IAAI,CAACK,KAAD,CAAWN,EAAcM,EAAM,EAAA;CAAS,IAAAG;CAM1C,OAN0CL,EAAA,OAAAI,KAAAJ,EAAA,OAAAE,KAAAF,EAAA,OAAAG,KAErCE,IAAAV,EAA2B;EAAAO;EAAAC;EAAAC;EAIjC,CAAC,EAAAJ,EAAA,KAAAI,GAAAJ,EAAA,KAAAE,GAAAF,EAAA,KAAAG,GAAAH,EAAA,KAAAK,KAAAA,IAAAL,EAAA,IAJKK"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","names":["axios","BridgedDepositResponse","GetSuggestedFeesResponse","QueryMeta","BridgePrice","AvailableBridge","BridgePreference","GetBridgedDepositStatusInput","depositId","originChainId","ACROSS_API","getBridgedDepositStatus","Promise","data","get","isBridgedDepositExecuted","deposit","BridgedDepositResponseSuccess","status","fillTx","BridgedDepositResponseFailure","isBridgedDepositFailed","isBridgedDepositRefunded","depositRefundTxHash","GetSuggestedFeesInput","destinationChainId","inputToken","outputToken","amount","recipient","message","relayer","timestamp","getSuggestedFees","params","signal","AbortSignal","RefetchMetaWithTiming","startedQueryAt","isMetaWithTimeStart","meta","extractSelectedBridgePrice","price","protocolName","bridgePreference","loweredProtocolName","toLowerCase","pickBridgePriceByPreference","bridgeInfo","selectedAmongAvailable","availableBridges","find","bridge","combinePriceWithAvailableBridge","fastest","bestReturn","availableBridge","srcToken","partner","partnerFee","hmac"],"sources":["../../../../../../src/hooks/swap/prices/delta/bridge/utils.ts"],"sourcesContent":["import axios from \"axios\";\nimport type { BridgedDepositResponse, GetSuggestedFeesResponse } from \"./types\";\nimport type { QueryMeta } from \"@tanstack/react-query\";\nimport type { BridgePrice, AvailableBridge } from \"@velora-dex/sdk\";\nimport type { BridgePreference } from \"@/components/widget/TradeParameters/state/bridgePreferences/types\";\n\nexport type GetBridgedDepositStatusInput = {\n depositId: string;\n originChainId: number;\n};\n\nconst ACROSS_API = \"https://app.across.to/api\";\n\nexport async function getBridgedDepositStatus({\n depositId,\n originChainId,\n}: GetBridgedDepositStatusInput): Promise<BridgedDepositResponse> {\n // non-existing depositId will throw with 404\n const { data } = await axios.get<BridgedDepositResponse>(\n `${ACROSS_API}/deposit/status?depositId=${depositId}&originChainId=${originChainId}`\n );\n return data;\n}\n\nexport function isBridgedDepositExecuted(\n deposit: BridgedDepositResponse\n): deposit is BridgedDepositResponseSuccess {\n return deposit.status === \"filled\" && !!deposit.fillTx;\n}\n\nexport type BridgedDepositResponseSuccess = BridgedDepositResponse & {\n status: \"filled\";\n fillTx: string;\n};\n\nexport type BridgedDepositResponseFailure = BridgedDepositResponse & {\n status: \"refunded\" | \"expired\";\n fillTx: null;\n};\n\nexport function isBridgedDepositFailed(\n deposit: BridgedDepositResponse\n): deposit is BridgedDepositResponseFailure {\n return deposit.status === \"refunded\" || deposit.status === \"expired\";\n}\n\nexport function isBridgedDepositRefunded(\n deposit: BridgedDepositResponse\n): deposit is BridgedDepositResponse & {\n status: \"refunded\";\n fillTx: null;\n depositRefundTxHash: string;\n} {\n return deposit.status === \"refunded\" && !!deposit.depositRefundTxHash;\n}\n\n// ------------------- Suggested Fees -------------------\n\nexport type GetSuggestedFeesInput = {\n originChainId: number;\n destinationChainId: number;\n inputToken: string;\n outputToken: string;\n amount: string;\n recipient?: string;\n message?: string;\n relayer?: string;\n timestamp?: number;\n};\n\nexport async function getSuggestedFees(\n params: GetSuggestedFeesInput,\n signal?: AbortSignal\n): Promise<GetSuggestedFeesResponse> {\n const { data } = await axios.get<GetSuggestedFeesResponse>(\n `${ACROSS_API}/suggested-fees`,\n {\n params,\n signal,\n }\n );\n return data;\n}\n\n// ------------------- Generic Utils -------------------\n\nexport type RefetchMetaWithTiming = { startedQueryAt: number };\nexport function isMetaWithTimeStart(\n meta: QueryMeta\n): meta is RefetchMetaWithTiming {\n return \"startedQueryAt\" in meta && typeof meta[\"startedQueryAt\"] === \"number\";\n}\n\nexport function extractSelectedBridgePrice({\n price,\n protocolName,\n bridgePreference,\n}: {\n price: BridgePrice;\n protocolName?: string;\n bridgePreference: BridgePreference;\n}) {\n const loweredProtocolName = protocolName?.toLowerCase();\n // no protocol selected\n if (!loweredProtocolName)\n return pickBridgePriceByPreference(price, bridgePreference);\n\n // selected protocol is from the top-level bridge price\n if (loweredProtocolName === price.bridgeInfo.protocolName.toLowerCase())\n return price;\n\n const selectedAmongAvailable = price.availableBridges.find(\n (bridge) =>\n bridge.bridgeInfo.protocolName.toLowerCase() === loweredProtocolName\n );\n\n // selected protocol is found among available bridges\n if (selectedAmongAvailable)\n return combinePriceWithAvailableBridge(price, selectedAmongAvailable);\n\n // fallback to top-level bridge price\n return price;\n}\n\nfunction pickBridgePriceByPreference(\n price: BridgePrice,\n bridgePreference: BridgePreference\n): BridgePrice {\n // top-level price matches preference\n if (\n bridgePreference === \"auto\" ||\n (bridgePreference === \"fastest\" && price.bridgeInfo.fastest) ||\n (bridgePreference === \"bestReturn\" && price.bridgeInfo.bestReturn)\n )\n return price;\n\n // look for matching available bridge\n const availableBridge = price.availableBridges.find((availableBridge) => {\n if (bridgePreference === \"fastest\")\n return availableBridge.bridgeInfo.fastest;\n if (bridgePreference === \"bestReturn\")\n return availableBridge.bridgeInfo.bestReturn;\n return false;\n });\n\n if (availableBridge)\n return combinePriceWithAvailableBridge(price, availableBridge);\n\n // fallback to top-level price\n return price;\n}\n\nfunction combinePriceWithAvailableBridge(\n price: BridgePrice,\n availableBridge: AvailableBridge\n): BridgePrice {\n return {\n srcToken: price.srcToken,\n partner: price.partner,\n partnerFee: price.partnerFee,\n hmac: price.hmac,\n availableBridges: price.availableBridges,\n ...availableBridge,\n };\n}\n"],"mappings":";;AA6FA,SAAgByC,EAA2B,EACzCC,UACAC,iBACAC,uBAKC;CACD,IAAMC,IAAsBF,GAAcG,aAAa;AAEvD,KAAI,CAACD,EACH,QAAOE,EAA4BL,GAAOE,EAAiB;AAG7D,KAAIC,MAAwBH,EAAMM,WAAWL,aAAaG,aAAa,CACrE,QAAOJ;CAET,IAAMO,IAAyBP,EAAMQ,iBAAiBC,MACnDC,MACCA,EAAOJ,WAAWL,aAAaG,aAAa,KAAKD,EACpD;AAOD,QAJII,IACKI,EAAgCX,GAAOO,EAAuB,GAGhEP;;AAGT,SAASK,EACPL,GACAE,GACa;AAEb,KACEA,MAAqB,UACpBA,MAAqB,aAAaF,EAAMM,WAAWM,WACnDV,MAAqB,gBAAgBF,EAAMM,WAAWO,WAEvD,QAAOb;CAGT,IAAMc,IAAkBd,EAAMQ,iBAAiBC,MAAMK,MAC/CZ,MAAqB,YAChBY,EAAgBR,WAAWM,UAChCV,MAAqB,eAChBY,EAAgBR,WAAWO,aAC7B,GACP;AAMF,QAJIC,IACKH,EAAgCX,GAAOc,EAAgB,GAGzDd;;AAGT,SAASW,EACPX,GACAc,GACa;AACb,QAAO;EACLC,UAAUf,EAAMe;EAChBC,SAAShB,EAAMgB;EACfC,YAAYjB,EAAMiB;EAClBC,MAAMlB,EAAMkB;EACZV,kBAAkBR,EAAMQ;EACxB,GAAGM;EACJ"}
1
+ {"version":3,"file":"utils.js","names":["axios","BridgedDepositResponse","GetSuggestedFeesResponse","QueryMeta","BridgePrice","AvailableBridge","BridgePreference","GetBridgedDepositStatusInput","depositId","originChainId","ACROSS_API","getBridgedDepositStatus","Promise","data","get","isBridgedDepositExecuted","deposit","BridgedDepositResponseSuccess","status","fillTx","BridgedDepositResponseFailure","isBridgedDepositFailed","isBridgedDepositRefunded","depositRefundTxHash","GetSuggestedFeesInput","destinationChainId","inputToken","outputToken","amount","recipient","message","relayer","timestamp","getSuggestedFees","params","signal","AbortSignal","RefetchMetaWithTiming","startedQueryAt","isMetaWithTimeStart","meta","extractSelectedBridgePrice","price","protocolName","bridgePreference","loweredProtocolName","toLowerCase","pickBridgePriceByPreference","bridgeInfo","selectedAmongAvailable","availableBridges","find","bridge","combinePriceWithAvailableBridge","fastest","bestReturn","availableBridge","srcToken","partner","partnerFee","hmac"],"sources":["../../../../../../src/hooks/swap/prices/delta/bridge/utils.ts"],"sourcesContent":["import axios from \"axios\";\nimport type { BridgedDepositResponse, GetSuggestedFeesResponse } from \"./types\";\nimport type { QueryMeta } from \"@tanstack/react-query\";\nimport type { BridgePrice, AvailableBridge } from \"@velora-dex/sdk\";\nimport type { BridgePreference } from \"@/components/widget/TradeParameters/state/bridgePreferences/types\";\n\nexport type GetBridgedDepositStatusInput = {\n depositId: string;\n originChainId: number;\n};\n\nconst ACROSS_API = \"https://app.across.to/api\";\n\nexport async function getBridgedDepositStatus({\n depositId,\n originChainId,\n}: GetBridgedDepositStatusInput): Promise<BridgedDepositResponse> {\n // non-existing depositId will throw with 404\n const { data } = await axios.get<BridgedDepositResponse>(\n `${ACROSS_API}/deposit/status?depositId=${depositId}&originChainId=${originChainId}`\n );\n return data;\n}\n\nexport function isBridgedDepositExecuted(\n deposit: BridgedDepositResponse\n): deposit is BridgedDepositResponseSuccess {\n return deposit.status === \"filled\" && !!deposit.fillTx;\n}\n\nexport type BridgedDepositResponseSuccess = BridgedDepositResponse & {\n status: \"filled\";\n fillTx: string;\n};\n\nexport type BridgedDepositResponseFailure = BridgedDepositResponse & {\n status: \"refunded\" | \"expired\";\n fillTx: null;\n};\n\nexport function isBridgedDepositFailed(\n deposit: BridgedDepositResponse\n): deposit is BridgedDepositResponseFailure {\n return deposit.status === \"refunded\" || deposit.status === \"expired\";\n}\n\nexport function isBridgedDepositRefunded(\n deposit: BridgedDepositResponse\n): deposit is BridgedDepositResponse & {\n status: \"refunded\";\n fillTx: null;\n depositRefundTxHash: string;\n} {\n return deposit.status === \"refunded\" && !!deposit.depositRefundTxHash;\n}\n\n// ------------------- Suggested Fees -------------------\n\nexport type GetSuggestedFeesInput = {\n originChainId: number;\n destinationChainId: number;\n inputToken: string;\n outputToken: string;\n amount: string;\n recipient?: string;\n message?: string;\n relayer?: string;\n timestamp?: number;\n};\n\nexport async function getSuggestedFees(\n params: GetSuggestedFeesInput,\n signal?: AbortSignal\n): Promise<GetSuggestedFeesResponse> {\n const { data } = await axios.get<GetSuggestedFeesResponse>(\n `${ACROSS_API}/suggested-fees`,\n {\n params,\n signal,\n }\n );\n return data;\n}\n\n// ------------------- Generic Utils -------------------\n\nexport type RefetchMetaWithTiming = { startedQueryAt: number };\nexport function isMetaWithTimeStart(\n meta: QueryMeta\n): meta is RefetchMetaWithTiming {\n return \"startedQueryAt\" in meta && typeof meta[\"startedQueryAt\"] === \"number\";\n}\n\nexport function extractSelectedBridgePrice({\n price,\n protocolName,\n bridgePreference,\n}: {\n price: BridgePrice;\n protocolName?: string;\n bridgePreference: BridgePreference;\n}) {\n const loweredProtocolName = protocolName?.toLowerCase();\n // no protocol selected\n if (!loweredProtocolName)\n return pickBridgePriceByPreference(price, bridgePreference);\n\n // selected protocol is from the top-level bridge price\n if (loweredProtocolName === price.bridgeInfo.protocolName.toLowerCase())\n return price;\n\n const selectedAmongAvailable = price.availableBridges.find(\n (bridge) =>\n bridge.bridgeInfo.protocolName.toLowerCase() === loweredProtocolName\n );\n\n // selected protocol is found among available bridges\n if (selectedAmongAvailable)\n return combinePriceWithAvailableBridge(price, selectedAmongAvailable);\n\n // fallback to top-level bridge price\n return price;\n}\n\nfunction pickBridgePriceByPreference(\n price: BridgePrice,\n bridgePreference: BridgePreference\n): BridgePrice {\n // top-level price matches preference\n if (\n bridgePreference === \"auto\" ||\n (bridgePreference === \"fastest\" && price.bridgeInfo.fastest) ||\n (bridgePreference === \"bestReturn\" && price.bridgeInfo.bestReturn)\n )\n return price;\n\n // look for matching available bridge\n const availableBridge = price.availableBridges.find((availableBridge) => {\n if (bridgePreference === \"fastest\")\n return availableBridge.bridgeInfo.fastest;\n if (bridgePreference === \"bestReturn\")\n return availableBridge.bridgeInfo.bestReturn;\n return false;\n });\n\n if (availableBridge)\n return combinePriceWithAvailableBridge(price, availableBridge);\n\n // fallback to top-level price\n return price;\n}\n\nfunction combinePriceWithAvailableBridge(\n price: BridgePrice,\n availableBridge: AvailableBridge\n): BridgePrice {\n return {\n srcToken: price.srcToken,\n partner: price.partner,\n partnerFee: price.partnerFee,\n hmac: price.hmac,\n availableBridges: price.availableBridges,\n ...availableBridge,\n };\n}\n"],"mappings":";;AA6FA,SAAgByC,EAA2B,EACzCC,UACAC,iBACAC,uBAKC;CACD,IAAMC,IAAsBF,GAAcG,aAAa;CAEvD,IAAI,CAACD,GACH,OAAOE,EAA4BL,GAAOE,EAAiB;CAG7D,IAAIC,MAAwBH,EAAMM,WAAWL,aAAaG,aAAa,EACrE,OAAOJ;CAET,IAAMO,IAAyBP,EAAMQ,iBAAiBC,MACnDC,MACCA,EAAOJ,WAAWL,aAAaG,aAAa,KAAKD,EACpD;CAOD,OAJII,IACKI,EAAgCX,GAAOO,EAAuB,GAGhEP;;AAGT,SAASK,EACPL,GACAE,GACa;CAEb,IACEA,MAAqB,UACpBA,MAAqB,aAAaF,EAAMM,WAAWM,WACnDV,MAAqB,gBAAgBF,EAAMM,WAAWO,YAEvD,OAAOb;CAGT,IAAMc,IAAkBd,EAAMQ,iBAAiBC,MAAMK,MAC/CZ,MAAqB,YAChBY,EAAgBR,WAAWM,UAChCV,MAAqB,eAChBY,EAAgBR,WAAWO,aAC7B,GACP;CAMF,OAJIC,IACKH,EAAgCX,GAAOc,EAAgB,GAGzDd;;AAGT,SAASW,EACPX,GACAc,GACa;CACb,OAAO;EACLC,UAAUf,EAAMe;EAChBC,SAAShB,EAAMgB;EACfC,YAAYjB,EAAMiB;EAClBC,MAAMlB,EAAMkB;EACZV,kBAAkBR,EAAMQ;EACxB,GAAGM;EACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"useCreatePreSignableTwapOrder.js","names":["useCalldataSDK","useMutation","UseMutationOptions","UseMutationResult","MinViemClient","assert","Hex","PreSignTwapOrderToPost","CreateAndSubmitTwapOrderInput","buildPreSignTwapOrderPayload","CreatePreSignableTwapOrderReturn","orderToPost","preSignCalldata","CreatePreSignableTwapOrderInput","CreatePreSignableTwapOrderMutationOptions","Omit","Error","CreateDeltaOrderMutInput","mutationOptions","chainId","client","useCreatePreSignableTwapOrder","t0","$","_c","t1","sdk","t2","Symbol","for","t3","t4","orderInput","referrerAddress","signal","type","degenMode","throwIfAborted","setTWAPDeltaOrderPreSignature","orderHash","mutationKey","mutationFn"],"sources":["../../../../../../../src/hooks/swap/prices/delta/mutations/twap/useCreatePreSignableTwapOrder.ts"],"sourcesContent":["import { useCalldataSDK } from \"@/hooks/useSDK\";\nimport {\n useMutation,\n type UseMutationOptions,\n type UseMutationResult,\n} from \"@tanstack/react-query\";\nimport type { MinViemClient } from \"@velora-dex/sdk\";\nimport { assert } from \"ts-essentials\";\nimport type { Hex } from \"viem\";\nimport type { PreSignTwapOrderToPost } from \"../types\";\nimport type { CreateAndSubmitTwapOrderInput } from \"./useCreateTwapOrder\";\nimport { buildPreSignTwapOrderPayload } from \"../utils\";\n\ntype CreatePreSignableTwapOrderReturn = {\n orderToPost: PreSignTwapOrderToPost;\n preSignCalldata: Hex;\n};\n\ntype CreatePreSignableTwapOrderInput = CreateAndSubmitTwapOrderInput;\n\ntype CreatePreSignableTwapOrderMutationOptions = Omit<\n UseMutationOptions<\n CreatePreSignableTwapOrderReturn,\n Error,\n CreatePreSignableTwapOrderInput,\n void\n >,\n \"mutationFn\"\n>;\n\ntype CreateDeltaOrderMutInput = {\n mutationOptions?: CreatePreSignableTwapOrderMutationOptions;\n chainId: number;\n client?: MinViemClient;\n};\n\nexport function useCreatePreSignableTwapOrder({\n mutationOptions,\n chainId,\n client,\n}: CreateDeltaOrderMutInput): UseMutationResult<\n CreatePreSignableTwapOrderReturn,\n Error,\n CreatePreSignableTwapOrderInput,\n void\n> {\n const { sdk } = useCalldataSDK({ chainId, client });\n\n return useMutation<\n CreatePreSignableTwapOrderReturn,\n Error,\n CreatePreSignableTwapOrderInput,\n void\n >({\n mutationKey: [\"createPreSignableTwapOrder\"],\n mutationFn: async ({\n orderInput,\n referrerAddress,\n signal,\n type,\n degenMode,\n }) => {\n // if aborted by this point, throw an error\n signal?.throwIfAborted();\n\n assert(sdk, \"sdk is not available\");\n // Note: This mutation requires the SDK to be initialized with viem client\n // to access setDeltaOrderPreSignature functionality and create calldata\n\n const orderToPost = await buildPreSignTwapOrderPayload({\n sdk,\n orderInput,\n chainId,\n referrerAddress,\n type,\n degenMode,\n });\n\n // if aborted by this point, throw an error\n signal?.throwIfAborted();\n\n // Step 4: Gather calldata to make a setPreSignature request\n const preSignCalldata = await sdk.setTWAPDeltaOrderPreSignature(\n orderToPost.orderHash\n );\n\n return { orderToPost, preSignCalldata };\n },\n ...mutationOptions,\n });\n}\n"],"mappings":";;;;;;AAoCA,SAAOqB,EAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,GAAA,EAAuC,EAAAN,oBAAAC,YAAAC,cAAAE,GAInBG;AAAA,CAAAF,EAAA,OAAAJ,KAAAI,EAAA,OAAAH,KAMMK,IAAA;EAAAN;EAAAC;EAAmB,EAAAG,EAAA,KAAAJ,GAAAI,EAAA,KAAAH,GAAAG,EAAA,KAAAE,KAAAA,IAAAF,EAAA;CAAlD,IAAA,EAAAG,WAAgB1B,EAAeyB,EAAoB,EAACE;AAAA,CAAAJ,EAAA,OAAAK,OAAAC,IAAA,4BAAA,IAQrCF,IAAA,CAAC,6BAA6B,EAAAJ,EAAA,KAAAI,KAAAA,IAAAJ,EAAA;CAAA,IAAAO;AAAA,CAAAP,EAAA,OAAAJ,KAAAI,EAAA,OAAAG,KAC/BI,IAAA,OAAAC,MAAA;EAAO,IAAA,EAAAC,eAAAC,oBAAAC,WAAAC,SAAAC,iBAAAL;AAUjB1B,EAFA6B,GAAMG,gBAAkB,EAExBhC,EAAOqB,GAAK,uBAAuB;EAInC,IAAAf,IAAoB,MAAMF,EAA6B;GAAAiB;GAAAM;GAAAb;GAAAc;GAAAE;GAAAC;GAOtD,CAAC;AAQA,SALFF,GAAMG,gBAAkB,EAOjB;GAAA1B;GAAAC,iBAJiB,MAAMc,EAAGY,8BAC/B3B,EAAW4B,UACZ;GAEsC;IACxChB,EAAA,KAAAJ,GAAAI,EAAA,KAAAG,GAAAH,EAAA,KAAAO,KAAAA,IAAAP,EAAA;CAAA,IAAAQ;AAEF,QAFER,EAAA,OAAAL,KAAAK,EAAA,OAAAO,KAlCDC,IAAA;EAAAS,aACab;EAA8Bc,YAC/BX;EAgCX,GACEZ;EACJ,EAAAK,EAAA,KAAAL,GAAAK,EAAA,KAAAO,GAAAP,EAAA,KAAAQ,KAAAA,IAAAR,EAAA,IAzCMtB,EAKL8B,EAoCA"}
1
+ {"version":3,"file":"useCreatePreSignableTwapOrder.js","names":["useCalldataSDK","useMutation","UseMutationOptions","UseMutationResult","MinViemClient","assert","Hex","PreSignTwapOrderToPost","CreateAndSubmitTwapOrderInput","buildPreSignTwapOrderPayload","CreatePreSignableTwapOrderReturn","orderToPost","preSignCalldata","CreatePreSignableTwapOrderInput","CreatePreSignableTwapOrderMutationOptions","Omit","Error","CreateDeltaOrderMutInput","mutationOptions","chainId","client","useCreatePreSignableTwapOrder","t0","$","_c","t1","sdk","t2","Symbol","for","t3","t4","orderInput","referrerAddress","signal","type","degenMode","throwIfAborted","setTWAPDeltaOrderPreSignature","orderHash","mutationKey","mutationFn"],"sources":["../../../../../../../src/hooks/swap/prices/delta/mutations/twap/useCreatePreSignableTwapOrder.ts"],"sourcesContent":["import { useCalldataSDK } from \"@/hooks/useSDK\";\nimport {\n useMutation,\n type UseMutationOptions,\n type UseMutationResult,\n} from \"@tanstack/react-query\";\nimport type { MinViemClient } from \"@velora-dex/sdk\";\nimport { assert } from \"ts-essentials\";\nimport type { Hex } from \"viem\";\nimport type { PreSignTwapOrderToPost } from \"../types\";\nimport type { CreateAndSubmitTwapOrderInput } from \"./useCreateTwapOrder\";\nimport { buildPreSignTwapOrderPayload } from \"../utils\";\n\ntype CreatePreSignableTwapOrderReturn = {\n orderToPost: PreSignTwapOrderToPost;\n preSignCalldata: Hex;\n};\n\ntype CreatePreSignableTwapOrderInput = CreateAndSubmitTwapOrderInput;\n\ntype CreatePreSignableTwapOrderMutationOptions = Omit<\n UseMutationOptions<\n CreatePreSignableTwapOrderReturn,\n Error,\n CreatePreSignableTwapOrderInput,\n void\n >,\n \"mutationFn\"\n>;\n\ntype CreateDeltaOrderMutInput = {\n mutationOptions?: CreatePreSignableTwapOrderMutationOptions;\n chainId: number;\n client?: MinViemClient;\n};\n\nexport function useCreatePreSignableTwapOrder({\n mutationOptions,\n chainId,\n client,\n}: CreateDeltaOrderMutInput): UseMutationResult<\n CreatePreSignableTwapOrderReturn,\n Error,\n CreatePreSignableTwapOrderInput,\n void\n> {\n const { sdk } = useCalldataSDK({ chainId, client });\n\n return useMutation<\n CreatePreSignableTwapOrderReturn,\n Error,\n CreatePreSignableTwapOrderInput,\n void\n >({\n mutationKey: [\"createPreSignableTwapOrder\"],\n mutationFn: async ({\n orderInput,\n referrerAddress,\n signal,\n type,\n degenMode,\n }) => {\n // if aborted by this point, throw an error\n signal?.throwIfAborted();\n\n assert(sdk, \"sdk is not available\");\n // Note: This mutation requires the SDK to be initialized with viem client\n // to access setDeltaOrderPreSignature functionality and create calldata\n\n const orderToPost = await buildPreSignTwapOrderPayload({\n sdk,\n orderInput,\n chainId,\n referrerAddress,\n type,\n degenMode,\n });\n\n // if aborted by this point, throw an error\n signal?.throwIfAborted();\n\n // Step 4: Gather calldata to make a setPreSignature request\n const preSignCalldata = await sdk.setTWAPDeltaOrderPreSignature(\n orderToPost.orderHash\n );\n\n return { orderToPost, preSignCalldata };\n },\n ...mutationOptions,\n });\n}\n"],"mappings":";;;;;;AAoCA,SAAOqB,EAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,GAAA,EAAuC,EAAAN,oBAAAC,YAAAC,cAAAE,GAInBG;CAAA,AAAAF,EAAA,OAAAJ,KAAAI,EAAA,OAAAH,KAMMK,IAAA;EAAAN;EAAAC;EAAmB,EAAAG,EAAA,KAAAJ,GAAAI,EAAA,KAAAH,GAAAG,EAAA,KAAAE,KAAAA,IAAAF,EAAA;CAAlD,IAAA,EAAAG,WAAgB1B,EAAeyB,EAAoB,EAACE;CAAA,AAAAJ,EAAA,OAAAK,OAAAC,IAAA,4BAAA,IAQrCF,IAAA,CAAC,6BAA6B,EAAAJ,EAAA,KAAAI,KAAAA,IAAAJ,EAAA;CAAA,IAAAO;CAAA,AAAAP,EAAA,OAAAJ,KAAAI,EAAA,OAAAG,KAC/BI,IAAA,OAAAC,MAAA;EAAO,IAAA,EAAAC,eAAAC,oBAAAC,WAAAC,SAAAC,iBAAAL;EAUjB1B,AAFA6B,GAAMG,gBAAkB,EAExBhC,EAAOqB,GAAK,uBAAuB;EAInC,IAAAf,IAAoB,MAAMF,EAA6B;GAAAiB;GAAAM;GAAAb;GAAAc;GAAAE;GAAAC;GAOtD,CAAC;EAQA,OALFF,GAAMG,gBAAkB,EAOjB;GAAA1B;GAAAC,iBAAAA,MAJuBc,EAAGY,8BAC/B3B,EAAW4B,UACZ;GAEsC;IACxChB,EAAA,KAAAJ,GAAAI,EAAA,KAAAG,GAAAH,EAAA,KAAAO,KAAAA,IAAAP,EAAA;CAAA,IAAAQ;CAEF,OAFER,EAAA,OAAAL,KAAAK,EAAA,OAAAO,KAlCDC,IAAA;EAAAS,aACab;EAA8Bc,YAC/BX;EAgCX,GACEZ;EACJ,EAAAK,EAAA,KAAAL,GAAAK,EAAA,KAAAO,GAAAP,EAAA,KAAAQ,KAAAA,IAAAR,EAAA,IAzCMtB,EAKL8B,EAoCA"}
@@ -1 +1 @@
1
- {"version":3,"file":"useCreateTwapOrder.js","names":["useDeltaSDK","useMutation","useQueryClient","UseMutationOptions","BuildTWAPDeltaOrderParams","MinViemClient","assert","Address","deltaOrdersQueryKey","deltaLimitOrderRequiredBalanceQueryKey","SupportedChainId","DeltaAuctionWithTwapOrder","usePostTwapOrder","CreateAndSubmitTwapOrderParams","CreateAndSubmitTwapOrderReturn","CreateAndSubmitTwapOrderInput","orderInput","referrerAddress","signal","AbortSignal","type","degenMode","CreateAndSubmitTwapOrderMutationOptions","Omit","Error","CreateAndSubmitTwapOrderMutInput","mutationOptions","chainId","account","client","CreateAndSubmitTwapOrderResult","mutate","variables","mutateAsync","Promise","reset","order","isPostingOrder","isCreatingOrder","isOrderSent","isPending","isError","isSuccess","error","useCreateAndSubmitTwapOrder","t0","$","_c","t1","sdk","queryClient","t2","postOrderMut","t3","Symbol","for","t4","t5","throwIfAborted","signableTypedData","buildTWAPDeltaOrder","signature","signTWAPDeltaOrder","orderFromAPI","onChainOrderType","data","partner","onMutationResult","context","invalidateQueries","queryKey","userAddress","user","exact","tokenAddress","srcToken","onSuccess","t6","mutationKey","mutationFn","createOrderMut","t7"],"sources":["../../../../../../../src/hooks/swap/prices/delta/mutations/twap/useCreateTwapOrder.ts"],"sourcesContent":["import { useDeltaSDK } from \"@/hooks/useSDK\";\nimport {\n useMutation,\n useQueryClient,\n type UseMutationOptions,\n} from \"@tanstack/react-query\";\nimport type { BuildTWAPDeltaOrderParams, MinViemClient } from \"@velora-dex/sdk\";\nimport { assert } from \"ts-essentials\";\nimport type { Address } from \"viem\";\nimport { deltaOrdersQueryKey } from \"../../queries/useDeltaOrders\";\nimport { deltaLimitOrderRequiredBalanceQueryKey } from \"../../queries/useDeltaLimitOrderRequiredBalance\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport type { DeltaAuctionWithTwapOrder } from \"../../orders/types\";\nimport { usePostTwapOrder } from \"./usePostTwapOrder\";\n\ntype CreateAndSubmitTwapOrderParams = BuildTWAPDeltaOrderParams;\ntype CreateAndSubmitTwapOrderReturn = DeltaAuctionWithTwapOrder;\n\nexport type CreateAndSubmitTwapOrderInput = {\n orderInput: CreateAndSubmitTwapOrderParams;\n referrerAddress?: string;\n signal?: AbortSignal; // since we have separate actions, we can abort in-between\n // type=LIMIT for TWAP is currently not supported on the API\n type?: \"MARKET\" /*| \"LIMIT\"*/; // defaults to MARKET in SDK\n degenMode?: boolean;\n};\n\ntype CreateAndSubmitTwapOrderMutationOptions = Omit<\n UseMutationOptions<\n CreateAndSubmitTwapOrderReturn,\n Error,\n CreateAndSubmitTwapOrderInput,\n void\n >,\n \"mutationFn\"\n>;\n\ntype CreateAndSubmitTwapOrderMutInput = {\n mutationOptions?: CreateAndSubmitTwapOrderMutationOptions;\n chainId: SupportedChainId;\n account?: Address;\n client?: MinViemClient;\n};\n\ntype CreateAndSubmitTwapOrderResult = {\n mutate: (variables: CreateAndSubmitTwapOrderInput) => void;\n mutateAsync: (\n variables: CreateAndSubmitTwapOrderInput\n ) => Promise<DeltaAuctionWithTwapOrder>;\n reset: () => void;\n order?: DeltaAuctionWithTwapOrder;\n isPostingOrder: boolean;\n isCreatingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n};\n\nexport function useCreateAndSubmitTwapOrder({\n mutationOptions,\n chainId,\n account,\n client,\n}: CreateAndSubmitTwapOrderMutInput): CreateAndSubmitTwapOrderResult {\n const { sdk } = useDeltaSDK({ chainId, account, client });\n const queryClient = useQueryClient();\n\n const postOrderMut = usePostTwapOrder({ chainId, account, client });\n\n const createOrderMut = useMutation<\n CreateAndSubmitTwapOrderReturn,\n Error,\n CreateAndSubmitTwapOrderInput,\n void\n >({\n mutationKey: [\"createAndSubmitTwapOrder\"],\n mutationFn: async ({\n orderInput,\n referrerAddress,\n signal,\n type,\n degenMode,\n }) => {\n // if aborted by this point, throw an error\n signal?.throwIfAborted();\n\n assert(\n \"signTWAPDeltaOrder\" in sdk,\n \"signTWAPDeltaOrder is not available on this SDK\"\n );\n // Note: This mutation requires the SDK to be initialized with account and client\n\n // Step 1: Build the Twap order\n const signableTypedData = await sdk.buildTWAPDeltaOrder(orderInput);\n\n // if aborted by this point, throw an error\n signal?.throwIfAborted();\n\n // Step 2: Sign the Twap order (only available on full DeltaSDK, not ReadOnlyDeltaSDK)\n const signature = await sdk.signTWAPDeltaOrder(signableTypedData);\n\n // if aborted by this point, throw an error\n signal?.throwIfAborted();\n\n // Step 3: Submit the Twap order to the API\n const orderFromAPI = await postOrderMut.mutateAsync({\n onChainOrderType: orderInput.onChainOrderType,\n signature,\n order: signableTypedData.data,\n partner: orderInput.partner,\n referrerAddress,\n type,\n degenMode,\n });\n\n return orderFromAPI;\n },\n ...mutationOptions,\n onSuccess: (order, variables, onMutationResult, context) => {\n queryClient.invalidateQueries({\n queryKey: deltaOrdersQueryKey({\n userAddress: order.user,\n }),\n exact: false,\n });\n queryClient.invalidateQueries({\n queryKey: deltaLimitOrderRequiredBalanceQueryKey({\n chainId,\n account,\n tokenAddress: order.order.srcToken,\n }),\n });\n\n mutationOptions?.onSuccess?.(order, variables, onMutationResult, context);\n },\n });\n\n return {\n mutate: createOrderMut.mutate,\n mutateAsync: createOrderMut.mutateAsync,\n reset: createOrderMut.reset,\n\n order: createOrderMut.data,\n isPostingOrder: postOrderMut.isPending,\n isCreatingOrder: createOrderMut.isPending,\n isOrderSent: createOrderMut.isSuccess,\n\n isPending: createOrderMut.isPending,\n isError: createOrderMut.isError,\n isSuccess: createOrderMut.isSuccess,\n error: createOrderMut.error,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"useCreateTwapOrder.js","names":["useDeltaSDK","useMutation","useQueryClient","UseMutationOptions","BuildTWAPDeltaOrderParams","MinViemClient","assert","Address","deltaOrdersQueryKey","deltaLimitOrderRequiredBalanceQueryKey","SupportedChainId","DeltaAuctionWithTwapOrder","usePostTwapOrder","CreateAndSubmitTwapOrderParams","CreateAndSubmitTwapOrderReturn","CreateAndSubmitTwapOrderInput","orderInput","referrerAddress","signal","AbortSignal","type","degenMode","CreateAndSubmitTwapOrderMutationOptions","Omit","Error","CreateAndSubmitTwapOrderMutInput","mutationOptions","chainId","account","client","CreateAndSubmitTwapOrderResult","mutate","variables","mutateAsync","Promise","reset","order","isPostingOrder","isCreatingOrder","isOrderSent","isPending","isError","isSuccess","error","useCreateAndSubmitTwapOrder","t0","$","_c","t1","sdk","queryClient","t2","postOrderMut","t3","Symbol","for","t4","t5","throwIfAborted","signableTypedData","buildTWAPDeltaOrder","signature","signTWAPDeltaOrder","orderFromAPI","onChainOrderType","data","partner","onMutationResult","context","invalidateQueries","queryKey","userAddress","user","exact","tokenAddress","srcToken","onSuccess","t6","mutationKey","mutationFn","createOrderMut","t7"],"sources":["../../../../../../../src/hooks/swap/prices/delta/mutations/twap/useCreateTwapOrder.ts"],"sourcesContent":["import { useDeltaSDK } from \"@/hooks/useSDK\";\nimport {\n useMutation,\n useQueryClient,\n type UseMutationOptions,\n} from \"@tanstack/react-query\";\nimport type { BuildTWAPDeltaOrderParams, MinViemClient } from \"@velora-dex/sdk\";\nimport { assert } from \"ts-essentials\";\nimport type { Address } from \"viem\";\nimport { deltaOrdersQueryKey } from \"../../queries/useDeltaOrders\";\nimport { deltaLimitOrderRequiredBalanceQueryKey } from \"../../queries/useDeltaLimitOrderRequiredBalance\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport type { DeltaAuctionWithTwapOrder } from \"../../orders/types\";\nimport { usePostTwapOrder } from \"./usePostTwapOrder\";\n\ntype CreateAndSubmitTwapOrderParams = BuildTWAPDeltaOrderParams;\ntype CreateAndSubmitTwapOrderReturn = DeltaAuctionWithTwapOrder;\n\nexport type CreateAndSubmitTwapOrderInput = {\n orderInput: CreateAndSubmitTwapOrderParams;\n referrerAddress?: string;\n signal?: AbortSignal; // since we have separate actions, we can abort in-between\n // type=LIMIT for TWAP is currently not supported on the API\n type?: \"MARKET\" /*| \"LIMIT\"*/; // defaults to MARKET in SDK\n degenMode?: boolean;\n};\n\ntype CreateAndSubmitTwapOrderMutationOptions = Omit<\n UseMutationOptions<\n CreateAndSubmitTwapOrderReturn,\n Error,\n CreateAndSubmitTwapOrderInput,\n void\n >,\n \"mutationFn\"\n>;\n\ntype CreateAndSubmitTwapOrderMutInput = {\n mutationOptions?: CreateAndSubmitTwapOrderMutationOptions;\n chainId: SupportedChainId;\n account?: Address;\n client?: MinViemClient;\n};\n\ntype CreateAndSubmitTwapOrderResult = {\n mutate: (variables: CreateAndSubmitTwapOrderInput) => void;\n mutateAsync: (\n variables: CreateAndSubmitTwapOrderInput\n ) => Promise<DeltaAuctionWithTwapOrder>;\n reset: () => void;\n order?: DeltaAuctionWithTwapOrder;\n isPostingOrder: boolean;\n isCreatingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n};\n\nexport function useCreateAndSubmitTwapOrder({\n mutationOptions,\n chainId,\n account,\n client,\n}: CreateAndSubmitTwapOrderMutInput): CreateAndSubmitTwapOrderResult {\n const { sdk } = useDeltaSDK({ chainId, account, client });\n const queryClient = useQueryClient();\n\n const postOrderMut = usePostTwapOrder({ chainId, account, client });\n\n const createOrderMut = useMutation<\n CreateAndSubmitTwapOrderReturn,\n Error,\n CreateAndSubmitTwapOrderInput,\n void\n >({\n mutationKey: [\"createAndSubmitTwapOrder\"],\n mutationFn: async ({\n orderInput,\n referrerAddress,\n signal,\n type,\n degenMode,\n }) => {\n // if aborted by this point, throw an error\n signal?.throwIfAborted();\n\n assert(\n \"signTWAPDeltaOrder\" in sdk,\n \"signTWAPDeltaOrder is not available on this SDK\"\n );\n // Note: This mutation requires the SDK to be initialized with account and client\n\n // Step 1: Build the Twap order\n const signableTypedData = await sdk.buildTWAPDeltaOrder(orderInput);\n\n // if aborted by this point, throw an error\n signal?.throwIfAborted();\n\n // Step 2: Sign the Twap order (only available on full DeltaSDK, not ReadOnlyDeltaSDK)\n const signature = await sdk.signTWAPDeltaOrder(signableTypedData);\n\n // if aborted by this point, throw an error\n signal?.throwIfAborted();\n\n // Step 3: Submit the Twap order to the API\n const orderFromAPI = await postOrderMut.mutateAsync({\n onChainOrderType: orderInput.onChainOrderType,\n signature,\n order: signableTypedData.data,\n partner: orderInput.partner,\n referrerAddress,\n type,\n degenMode,\n });\n\n return orderFromAPI;\n },\n ...mutationOptions,\n onSuccess: (order, variables, onMutationResult, context) => {\n queryClient.invalidateQueries({\n queryKey: deltaOrdersQueryKey({\n userAddress: order.user,\n }),\n exact: false,\n });\n queryClient.invalidateQueries({\n queryKey: deltaLimitOrderRequiredBalanceQueryKey({\n chainId,\n account,\n tokenAddress: order.order.srcToken,\n }),\n });\n\n mutationOptions?.onSuccess?.(order, variables, onMutationResult, context);\n },\n });\n\n return {\n mutate: createOrderMut.mutate,\n mutateAsync: createOrderMut.mutateAsync,\n reset: createOrderMut.reset,\n\n order: createOrderMut.data,\n isPostingOrder: postOrderMut.isPending,\n isCreatingOrder: createOrderMut.isPending,\n isOrderSent: createOrderMut.isSuccess,\n\n isPending: createOrderMut.isPending,\n isError: createOrderMut.isError,\n isSuccess: createOrderMut.isSuccess,\n error: createOrderMut.error,\n };\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useDepositAndSubmitTwapOrder.js","names":["Address","TransactionReceipt","deltaOrdersQueryKey","SupportedChainId","LoggerInstance","MinViemClient","usePostTwapOrder","useQueryClient","CreateAndSubmitTwapOrderInput","TxSentObject","useAwaitTx","useEnsureTxReceipt","useTwapOrderToPost","useSendDepositPreSignDeltaOrderTx","PreSignTwapOrderToPost","DeltaAuctionWithTwapOrder","depositAndSubmitOrderFactory","TwapOrderDepositResult","depositPrep","order","isCreatingOrder","isOrderHashReady","isPending","isError","isSuccess","error","Error","depositTx","txHash","receipt","isConfirmingTX","isConfirmingTxError","isTxSent","isTxPending","isTxMined","isTxAwaitingError","postingOrder","isPostingOrder","isOrderSent","UseDepositAndSubmitTwapOrderInput","chainId","account","logger","viemClient","UseDepositAndSubmitTwapOrderResult","twapOrderDeposit","depositAndSubmitTwapOrder","DepositAndSubmitTwapOrderFunc","reset","useDepositAndSubmitTwapOrder","t0","$","_c","queryClient","t1","client","twapOrderToPostMut","t2","data","t3","sendDepositTxMut","t4","hash","awaitDepositTx","t5","isLoading","t6","t7","t8","t9","log","invalidateQueries","queryKey","userAddress","user","exact","t10","t11","onSuccess","onError","t12","mutationOptions","postOrderMut","t13","twapOrderPosting","t14","t15","t16","t17","t18","ensureTxReceipt","t19","mutateAsync","createOrderToPost","sendDepositPreSignTx","postOrder","t20","t21","DepositAndSubmitTwapOrderInput","createOrderInput","depositAmount","onTxSent","txSent","input","Promise"],"sources":["../../../../../../../src/hooks/swap/prices/delta/mutations/twap/useDepositAndSubmitTwapOrder.ts"],"sourcesContent":["import { type Address, type TransactionReceipt } from \"viem\";\nimport { deltaOrdersQueryKey } from \"../../queries/useDeltaOrders\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport type { LoggerInstance } from \"@/lib/utils/logger\";\nimport type { MinViemClient } from \"@velora-dex/sdk\";\nimport { usePostTwapOrder } from \"./usePostTwapOrder\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport type { CreateAndSubmitTwapOrderInput } from \"./useCreateTwapOrder\";\nimport type { TxSentObject } from \"@/lib/utils/transactionHandlers\";\nimport { useAwaitTx, useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport { useTwapOrderToPost } from \"./useTwapOrderToPost\";\nimport { useSendDepositPreSignDeltaOrderTx } from \"../useSendDepositPreSignDeltaOrderTx\";\nimport type { PreSignTwapOrderToPost } from \"../types\";\nimport type { DeltaAuctionWithTwapOrder } from \"../../orders/types\";\nimport { depositAndSubmitOrderFactory } from \"../../../../tradeFlow/common/factory/depositAndSubmitOrderFactory\";\n\nexport type TwapOrderDepositResult = {\n depositPrep: {\n order?: PreSignTwapOrderToPost;\n isCreatingOrder: boolean;\n isOrderHashReady: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n depositTx: {\n txHash?: Address;\n receipt?: TransactionReceipt;\n isConfirmingTX: boolean;\n isConfirmingTxError: boolean;\n isTxSent: boolean;\n isTxPending: boolean;\n isTxMined: boolean;\n isTxAwaitingError: boolean;\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n };\n postingOrder: {\n order?: DeltaAuctionWithTwapOrder;\n isPostingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n order?: DeltaAuctionWithTwapOrder;\n isCreatingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n};\n\ntype UseDepositAndSubmitTwapOrderInput = {\n chainId: SupportedChainId;\n account?: Address;\n logger: LoggerInstance;\n viemClient?: MinViemClient;\n};\n\ntype UseDepositAndSubmitTwapOrderResult = {\n twapOrderDeposit: TwapOrderDepositResult;\n depositAndSubmitTwapOrder: DepositAndSubmitTwapOrderFunc;\n reset: () => void;\n};\n\nexport function useDepositAndSubmitTwapOrder({\n chainId,\n account,\n logger,\n viemClient,\n}: UseDepositAndSubmitTwapOrderInput): UseDepositAndSubmitTwapOrderResult {\n const queryClient = useQueryClient();\n\n const twapOrderToPostMut = useTwapOrderToPost({\n chainId,\n client: viemClient,\n });\n\n const depositPrep: TwapOrderDepositResult[\"depositPrep\"] = {\n isCreatingOrder: twapOrderToPostMut.isPending,\n isOrderHashReady: twapOrderToPostMut.isSuccess,\n order: twapOrderToPostMut.data,\n isPending: twapOrderToPostMut.isPending,\n isError: twapOrderToPostMut.isError,\n isSuccess: twapOrderToPostMut.isSuccess,\n error: twapOrderToPostMut.error,\n };\n\n /* 1. submit depositNativeAndPreSign tx */\n const sendDepositTxMut = useSendDepositPreSignDeltaOrderTx({\n chainId,\n client: viemClient,\n });\n\n /* 2. await depositNativeAndPreSign tx */\n const awaitDepositTx = useAwaitTx({\n hash: sendDepositTxMut.data,\n chainId,\n });\n\n const depositTx = {\n txHash: sendDepositTxMut.data,\n receipt: awaitDepositTx.data,\n /* tx sending */\n isConfirmingTX: sendDepositTxMut.isPending,\n isConfirmingTxError: sendDepositTxMut.isError,\n isTxSent: sendDepositTxMut.isSuccess,\n /* tx awaiting */\n isTxPending: awaitDepositTx.isLoading,\n isTxMined: awaitDepositTx.isSuccess,\n isTxAwaitingError: awaitDepositTx.isError,\n /* combined */\n isPending: sendDepositTxMut.isPending || awaitDepositTx.isLoading,\n isSuccess: awaitDepositTx.isSuccess, // final success\n isError: sendDepositTxMut.isError || awaitDepositTx.isError,\n error: sendDepositTxMut.error || awaitDepositTx.error,\n };\n\n /* 3. post Pre-signed Order */\n\n const postOrderMut = usePostTwapOrder({\n chainId,\n account,\n client: viemClient,\n mutationOptions: {\n onSuccess: (order) => {\n logger.log(\"[DepositAndSubmit] Create Twap Order success\", order);\n queryClient.invalidateQueries({\n queryKey: deltaOrdersQueryKey({\n userAddress: order.user,\n }),\n exact: false,\n });\n },\n onError: (error) => {\n logger.error(\"[DepositAndSubmit] Create Twap Order error\", error);\n },\n },\n });\n\n const twapOrderPosting: TwapOrderDepositResult[\"postingOrder\"] = {\n order: postOrderMut.data,\n isPostingOrder: postOrderMut.isPending,\n isOrderSent: postOrderMut.isSuccess,\n isPending: postOrderMut.isPending,\n isError: postOrderMut.isError,\n isSuccess: postOrderMut.isSuccess,\n error: postOrderMut.error,\n };\n\n const twapOrderDeposit: TwapOrderDepositResult = {\n order: postOrderMut.data,\n depositPrep: depositPrep,\n depositTx,\n postingOrder: twapOrderPosting,\n isCreatingOrder:\n depositPrep.isCreatingOrder ||\n depositTx.isPending ||\n twapOrderPosting.isPostingOrder,\n isOrderSent: twapOrderPosting.isOrderSent,\n isPending:\n depositPrep.isPending ||\n depositTx.isPending ||\n twapOrderPosting.isPending,\n isError:\n depositPrep.isError || depositTx.isError || twapOrderPosting.isError,\n isSuccess: twapOrderPosting.isSuccess,\n error: depositPrep.error || depositTx.error || twapOrderPosting.error,\n };\n\n const ensureTxReceipt = useEnsureTxReceipt();\n\n const depositAndSubmitTwapOrder = depositAndSubmitOrderFactory({\n createOrderToPost: twapOrderToPostMut.mutateAsync,\n sendDepositPreSignTx: sendDepositTxMut.mutateAsync,\n postOrder: postOrderMut.mutateAsync,\n ensureTxReceipt,\n logger,\n chainId,\n });\n\n const reset = () => {\n twapOrderToPostMut.reset();\n sendDepositTxMut.reset();\n postOrderMut.reset();\n };\n\n return {\n twapOrderDeposit,\n depositAndSubmitTwapOrder,\n reset,\n };\n}\n\ntype DepositAndSubmitTwapOrderInput = {\n createOrderInput: CreateAndSubmitTwapOrderInput;\n depositAmount: string;\n onTxSent?: (txSent: TxSentObject) => void;\n};\n\ntype DepositAndSubmitTwapOrderFunc = (\n input: DepositAndSubmitTwapOrderInput\n) => Promise<DeltaAuctionWithTwapOrder>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"useDepositAndSubmitTwapOrder.js","names":["Address","TransactionReceipt","deltaOrdersQueryKey","SupportedChainId","LoggerInstance","MinViemClient","usePostTwapOrder","useQueryClient","CreateAndSubmitTwapOrderInput","TxSentObject","useAwaitTx","useEnsureTxReceipt","useTwapOrderToPost","useSendDepositPreSignDeltaOrderTx","PreSignTwapOrderToPost","DeltaAuctionWithTwapOrder","depositAndSubmitOrderFactory","TwapOrderDepositResult","depositPrep","order","isCreatingOrder","isOrderHashReady","isPending","isError","isSuccess","error","Error","depositTx","txHash","receipt","isConfirmingTX","isConfirmingTxError","isTxSent","isTxPending","isTxMined","isTxAwaitingError","postingOrder","isPostingOrder","isOrderSent","UseDepositAndSubmitTwapOrderInput","chainId","account","logger","viemClient","UseDepositAndSubmitTwapOrderResult","twapOrderDeposit","depositAndSubmitTwapOrder","DepositAndSubmitTwapOrderFunc","reset","useDepositAndSubmitTwapOrder","t0","$","_c","queryClient","t1","client","twapOrderToPostMut","t2","data","t3","sendDepositTxMut","t4","hash","awaitDepositTx","t5","isLoading","t6","t7","t8","t9","log","invalidateQueries","queryKey","userAddress","user","exact","t10","t11","onSuccess","onError","t12","mutationOptions","postOrderMut","t13","twapOrderPosting","t14","t15","t16","t17","t18","ensureTxReceipt","t19","mutateAsync","createOrderToPost","sendDepositPreSignTx","postOrder","t20","t21","DepositAndSubmitTwapOrderInput","createOrderInput","depositAmount","onTxSent","txSent","input","Promise"],"sources":["../../../../../../../src/hooks/swap/prices/delta/mutations/twap/useDepositAndSubmitTwapOrder.ts"],"sourcesContent":["import { type Address, type TransactionReceipt } from \"viem\";\nimport { deltaOrdersQueryKey } from \"../../queries/useDeltaOrders\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport type { LoggerInstance } from \"@/lib/utils/logger\";\nimport type { MinViemClient } from \"@velora-dex/sdk\";\nimport { usePostTwapOrder } from \"./usePostTwapOrder\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport type { CreateAndSubmitTwapOrderInput } from \"./useCreateTwapOrder\";\nimport type { TxSentObject } from \"@/lib/utils/transactionHandlers\";\nimport { useAwaitTx, useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport { useTwapOrderToPost } from \"./useTwapOrderToPost\";\nimport { useSendDepositPreSignDeltaOrderTx } from \"../useSendDepositPreSignDeltaOrderTx\";\nimport type { PreSignTwapOrderToPost } from \"../types\";\nimport type { DeltaAuctionWithTwapOrder } from \"../../orders/types\";\nimport { depositAndSubmitOrderFactory } from \"../../../../tradeFlow/common/factory/depositAndSubmitOrderFactory\";\n\nexport type TwapOrderDepositResult = {\n depositPrep: {\n order?: PreSignTwapOrderToPost;\n isCreatingOrder: boolean;\n isOrderHashReady: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n depositTx: {\n txHash?: Address;\n receipt?: TransactionReceipt;\n isConfirmingTX: boolean;\n isConfirmingTxError: boolean;\n isTxSent: boolean;\n isTxPending: boolean;\n isTxMined: boolean;\n isTxAwaitingError: boolean;\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n };\n postingOrder: {\n order?: DeltaAuctionWithTwapOrder;\n isPostingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n order?: DeltaAuctionWithTwapOrder;\n isCreatingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n};\n\ntype UseDepositAndSubmitTwapOrderInput = {\n chainId: SupportedChainId;\n account?: Address;\n logger: LoggerInstance;\n viemClient?: MinViemClient;\n};\n\ntype UseDepositAndSubmitTwapOrderResult = {\n twapOrderDeposit: TwapOrderDepositResult;\n depositAndSubmitTwapOrder: DepositAndSubmitTwapOrderFunc;\n reset: () => void;\n};\n\nexport function useDepositAndSubmitTwapOrder({\n chainId,\n account,\n logger,\n viemClient,\n}: UseDepositAndSubmitTwapOrderInput): UseDepositAndSubmitTwapOrderResult {\n const queryClient = useQueryClient();\n\n const twapOrderToPostMut = useTwapOrderToPost({\n chainId,\n client: viemClient,\n });\n\n const depositPrep: TwapOrderDepositResult[\"depositPrep\"] = {\n isCreatingOrder: twapOrderToPostMut.isPending,\n isOrderHashReady: twapOrderToPostMut.isSuccess,\n order: twapOrderToPostMut.data,\n isPending: twapOrderToPostMut.isPending,\n isError: twapOrderToPostMut.isError,\n isSuccess: twapOrderToPostMut.isSuccess,\n error: twapOrderToPostMut.error,\n };\n\n /* 1. submit depositNativeAndPreSign tx */\n const sendDepositTxMut = useSendDepositPreSignDeltaOrderTx({\n chainId,\n client: viemClient,\n });\n\n /* 2. await depositNativeAndPreSign tx */\n const awaitDepositTx = useAwaitTx({\n hash: sendDepositTxMut.data,\n chainId,\n });\n\n const depositTx = {\n txHash: sendDepositTxMut.data,\n receipt: awaitDepositTx.data,\n /* tx sending */\n isConfirmingTX: sendDepositTxMut.isPending,\n isConfirmingTxError: sendDepositTxMut.isError,\n isTxSent: sendDepositTxMut.isSuccess,\n /* tx awaiting */\n isTxPending: awaitDepositTx.isLoading,\n isTxMined: awaitDepositTx.isSuccess,\n isTxAwaitingError: awaitDepositTx.isError,\n /* combined */\n isPending: sendDepositTxMut.isPending || awaitDepositTx.isLoading,\n isSuccess: awaitDepositTx.isSuccess, // final success\n isError: sendDepositTxMut.isError || awaitDepositTx.isError,\n error: sendDepositTxMut.error || awaitDepositTx.error,\n };\n\n /* 3. post Pre-signed Order */\n\n const postOrderMut = usePostTwapOrder({\n chainId,\n account,\n client: viemClient,\n mutationOptions: {\n onSuccess: (order) => {\n logger.log(\"[DepositAndSubmit] Create Twap Order success\", order);\n queryClient.invalidateQueries({\n queryKey: deltaOrdersQueryKey({\n userAddress: order.user,\n }),\n exact: false,\n });\n },\n onError: (error) => {\n logger.error(\"[DepositAndSubmit] Create Twap Order error\", error);\n },\n },\n });\n\n const twapOrderPosting: TwapOrderDepositResult[\"postingOrder\"] = {\n order: postOrderMut.data,\n isPostingOrder: postOrderMut.isPending,\n isOrderSent: postOrderMut.isSuccess,\n isPending: postOrderMut.isPending,\n isError: postOrderMut.isError,\n isSuccess: postOrderMut.isSuccess,\n error: postOrderMut.error,\n };\n\n const twapOrderDeposit: TwapOrderDepositResult = {\n order: postOrderMut.data,\n depositPrep: depositPrep,\n depositTx,\n postingOrder: twapOrderPosting,\n isCreatingOrder:\n depositPrep.isCreatingOrder ||\n depositTx.isPending ||\n twapOrderPosting.isPostingOrder,\n isOrderSent: twapOrderPosting.isOrderSent,\n isPending:\n depositPrep.isPending ||\n depositTx.isPending ||\n twapOrderPosting.isPending,\n isError:\n depositPrep.isError || depositTx.isError || twapOrderPosting.isError,\n isSuccess: twapOrderPosting.isSuccess,\n error: depositPrep.error || depositTx.error || twapOrderPosting.error,\n };\n\n const ensureTxReceipt = useEnsureTxReceipt();\n\n const depositAndSubmitTwapOrder = depositAndSubmitOrderFactory({\n createOrderToPost: twapOrderToPostMut.mutateAsync,\n sendDepositPreSignTx: sendDepositTxMut.mutateAsync,\n postOrder: postOrderMut.mutateAsync,\n ensureTxReceipt,\n logger,\n chainId,\n });\n\n const reset = () => {\n twapOrderToPostMut.reset();\n sendDepositTxMut.reset();\n postOrderMut.reset();\n };\n\n return {\n twapOrderDeposit,\n depositAndSubmitTwapOrder,\n reset,\n };\n}\n\ntype DepositAndSubmitTwapOrderInput = {\n createOrderInput: CreateAndSubmitTwapOrderInput;\n depositAmount: string;\n onTxSent?: (txSent: TxSentObject) => void;\n};\n\ntype DepositAndSubmitTwapOrderFunc = (\n input: DepositAndSubmitTwapOrderInput\n) => Promise<DeltaAuctionWithTwapOrder>;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"usePostTwapOrder.js","names":["useDeltaSDK","useMutation","UseMutationOptions","UseMutationResult","MinViemClient","PostTWAPDeltaOrderParams","Address","defaultPostRetry","defaultPostRetryDelay","DeltaAuctionWithTwapOrder","PostTwapOrderInput","PostTwapOrderMutationOptions","Omit","Error","PostTwapOrderMutInput","mutationOptions","chainId","account","client","usePostTwapOrder","t0","$","_c","t1","sdk","t2","Symbol","for","t3","t4","onChainOrderType","signature","order","partner","referrerAddress","type","includeAgents","excludeAgents","degenMode","orderFromAPI","postTWAPDeltaOrder","mutationKey","mutationFn","retry","retryDelay"],"sources":["../../../../../../../src/hooks/swap/prices/delta/mutations/twap/usePostTwapOrder.ts"],"sourcesContent":["import { useDeltaSDK } from \"@/hooks/useSDK\";\nimport {\n useMutation,\n type UseMutationOptions,\n type UseMutationResult,\n} from \"@tanstack/react-query\";\nimport type { MinViemClient, PostTWAPDeltaOrderParams } from \"@velora-dex/sdk\";\nimport type { Address } from \"viem\";\nimport { defaultPostRetry, defaultPostRetryDelay } from \"../utils\";\nimport type { DeltaAuctionWithTwapOrder } from \"../../orders/types\";\n\nexport type PostTwapOrderInput = PostTWAPDeltaOrderParams;\n\ntype PostTwapOrderMutationOptions = Omit<\n UseMutationOptions<\n DeltaAuctionWithTwapOrder,\n Error,\n PostTwapOrderInput,\n void\n >,\n \"mutationFn\"\n>;\n\ntype PostTwapOrderMutInput = {\n mutationOptions?: PostTwapOrderMutationOptions;\n chainId: number;\n account?: Address;\n client?: MinViemClient;\n};\n\nexport function usePostTwapOrder({\n mutationOptions,\n chainId,\n account,\n client,\n}: PostTwapOrderMutInput): UseMutationResult<\n DeltaAuctionWithTwapOrder,\n Error,\n PostTwapOrderInput,\n void\n> {\n const { sdk } = useDeltaSDK({ chainId, account, client });\n\n return useMutation<\n DeltaAuctionWithTwapOrder,\n Error,\n PostTwapOrderInput,\n void\n >({\n mutationKey: [\"postTwapOrder\"],\n mutationFn: async ({\n onChainOrderType,\n signature,\n order,\n partner,\n referrerAddress,\n type,\n includeAgents,\n excludeAgents,\n degenMode,\n }) => {\n const orderFromAPI = await sdk.postTWAPDeltaOrder({\n onChainOrderType,\n signature,\n order,\n partner,\n referrerAddress,\n type,\n includeAgents,\n excludeAgents,\n degenMode,\n });\n\n return orderFromAPI;\n },\n retry: defaultPostRetry,\n retryDelay: defaultPostRetryDelay,\n // allow to override retry and retryDelay via mutationOptions\n ...mutationOptions,\n });\n}\n"],"mappings":";;;;;AA8BA,SAAOmB,EAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,GAAA,EAA0B,EAAAP,oBAAAC,YAAAC,YAAAC,cAAAE,GAKTG;AAAA,CAAAF,EAAA,OAAAJ,KAAAI,EAAA,OAAAL,KAAAK,EAAA,OAAAH,KAMMK,IAAA;EAAAP;EAAAC;EAAAC;EAA4B,EAAAG,EAAA,KAAAJ,GAAAI,EAAA,KAAAL,GAAAK,EAAA,KAAAH,GAAAG,EAAA,KAAAE,KAAAA,IAAAF,EAAA;CAAxD,IAAA,EAAAG,WAAgBxB,EAAYuB,EAA6B,EAACE;AAAA,CAAAJ,EAAA,OAAAK,OAAAC,IAAA,4BAAA,IAQ3CF,IAAA,CAAC,gBAAgB,EAAAJ,EAAA,KAAAI,KAAAA,IAAAJ,EAAA;CAAA,IAAAO;AAAA,CAAAP,EAAA,OAAAG,IAyB7BI,IAAAP,EAAA,MAxBWO,IAAA,OAAAC,MAAA;EAAO,IAAA,EAAAC,qBAAAC,cAAAC,UAAAC,YAAAC,oBAAAC,SAAAC,kBAAAC,kBAAAC,iBAAAT;AAqBd,SAVkB,MAAML,EAAGgB,mBAAoB;GAAAV;GAAAC;GAAAC;GAAAC;GAAAC;GAAAC;GAAAC;GAAAC;GAAAC;GAUjD,CAAC;IAGHjB,EAAA,KAAAG,GAAAH,EAAA,KAAAO;CAAA,IAAAC;AAKF,QALER,EAAA,OAAAN,KAAAM,EAAA,OAAAO,KA1BDC,IAAA;EAAAY,aACahB;EAAiBiB,YAClBd;EAwBXe,OACMpC;EAAgBqC,YACXpC;EAAqB,GAE9BO;EACJ,EAAAM,EAAA,KAAAN,GAAAM,EAAA,KAAAO,GAAAP,EAAA,KAAAQ,KAAAA,IAAAR,EAAA,IApCMpB,EAKL4B,EA+BA"}
1
+ {"version":3,"file":"usePostTwapOrder.js","names":["useDeltaSDK","useMutation","UseMutationOptions","UseMutationResult","MinViemClient","PostTWAPDeltaOrderParams","Address","defaultPostRetry","defaultPostRetryDelay","DeltaAuctionWithTwapOrder","PostTwapOrderInput","PostTwapOrderMutationOptions","Omit","Error","PostTwapOrderMutInput","mutationOptions","chainId","account","client","usePostTwapOrder","t0","$","_c","t1","sdk","t2","Symbol","for","t3","t4","onChainOrderType","signature","order","partner","referrerAddress","type","includeAgents","excludeAgents","degenMode","orderFromAPI","postTWAPDeltaOrder","mutationKey","mutationFn","retry","retryDelay"],"sources":["../../../../../../../src/hooks/swap/prices/delta/mutations/twap/usePostTwapOrder.ts"],"sourcesContent":["import { useDeltaSDK } from \"@/hooks/useSDK\";\nimport {\n useMutation,\n type UseMutationOptions,\n type UseMutationResult,\n} from \"@tanstack/react-query\";\nimport type { MinViemClient, PostTWAPDeltaOrderParams } from \"@velora-dex/sdk\";\nimport type { Address } from \"viem\";\nimport { defaultPostRetry, defaultPostRetryDelay } from \"../utils\";\nimport type { DeltaAuctionWithTwapOrder } from \"../../orders/types\";\n\nexport type PostTwapOrderInput = PostTWAPDeltaOrderParams;\n\ntype PostTwapOrderMutationOptions = Omit<\n UseMutationOptions<\n DeltaAuctionWithTwapOrder,\n Error,\n PostTwapOrderInput,\n void\n >,\n \"mutationFn\"\n>;\n\ntype PostTwapOrderMutInput = {\n mutationOptions?: PostTwapOrderMutationOptions;\n chainId: number;\n account?: Address;\n client?: MinViemClient;\n};\n\nexport function usePostTwapOrder({\n mutationOptions,\n chainId,\n account,\n client,\n}: PostTwapOrderMutInput): UseMutationResult<\n DeltaAuctionWithTwapOrder,\n Error,\n PostTwapOrderInput,\n void\n> {\n const { sdk } = useDeltaSDK({ chainId, account, client });\n\n return useMutation<\n DeltaAuctionWithTwapOrder,\n Error,\n PostTwapOrderInput,\n void\n >({\n mutationKey: [\"postTwapOrder\"],\n mutationFn: async ({\n onChainOrderType,\n signature,\n order,\n partner,\n referrerAddress,\n type,\n includeAgents,\n excludeAgents,\n degenMode,\n }) => {\n const orderFromAPI = await sdk.postTWAPDeltaOrder({\n onChainOrderType,\n signature,\n order,\n partner,\n referrerAddress,\n type,\n includeAgents,\n excludeAgents,\n degenMode,\n });\n\n return orderFromAPI;\n },\n retry: defaultPostRetry,\n retryDelay: defaultPostRetryDelay,\n // allow to override retry and retryDelay via mutationOptions\n ...mutationOptions,\n });\n}\n"],"mappings":";;;;;AA8BA,SAAOmB,EAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,GAAA,EAA0B,EAAAP,oBAAAC,YAAAC,YAAAC,cAAAE,GAKTG;CAAA,AAAAF,EAAA,OAAAJ,KAAAI,EAAA,OAAAL,KAAAK,EAAA,OAAAH,KAMMK,IAAA;EAAAP;EAAAC;EAAAC;EAA4B,EAAAG,EAAA,KAAAJ,GAAAI,EAAA,KAAAL,GAAAK,EAAA,KAAAH,GAAAG,EAAA,KAAAE,KAAAA,IAAAF,EAAA;CAAxD,IAAA,EAAAG,WAAgBxB,EAAYuB,EAA6B,EAACE;CAAA,AAAAJ,EAAA,OAAAK,OAAAC,IAAA,4BAAA,IAQ3CF,IAAA,CAAC,gBAAgB,EAAAJ,EAAA,KAAAI,KAAAA,IAAAJ,EAAA;CAAA,IAAAO;CAAA,AAAAP,EAAA,OAAAG,IAyB7BI,IAAAP,EAAA,MAxBWO,IAAA,OAAAC,MAAA;EAAO,IAAA,EAAAC,qBAAAC,cAAAC,UAAAC,YAAAC,oBAAAC,SAAAC,kBAAAC,kBAAAC,iBAAAT;EAqBd,OAEIU,MAZoBf,EAAGgB,mBAAoB;GAAAV;GAAAC;GAAAC;GAAAC;GAAAC;GAAAC;GAAAC;GAAAC;GAAAC;GAUjD,CAAC;IAGHjB,EAAA,KAAAG,GAAAH,EAAA,KAAAO;CAAA,IAAAC;CAKF,OALER,EAAA,OAAAN,KAAAM,EAAA,OAAAO,KA1BDC,IAAA;EAAAY,aACahB;EAAiBiB,YAClBd;EAwBXe,OACMpC;EAAgBqC,YACXpC;EAAqB,GAE9BO;EACJ,EAAAM,EAAA,KAAAN,GAAAM,EAAA,KAAAO,GAAAP,EAAA,KAAAQ,KAAAA,IAAAR,EAAA,IApCMpB,EAKL4B,EA+BA"}
@@ -1 +1 @@
1
- {"version":3,"file":"usePreSignAndSubmitTwapOrder.js","names":["PreSignTwapOrderToPost","useBatchWithApproveTxs","useSendBatchTx","useAwaitCalls","useEnsureCallsStatus","Address","deltaOrdersQueryKey","SupportedChainId","LoggerInstance","MinViemClient","useConnectedSafe","useCanBatchTxs","useQueryClient","CreateAndSubmitTwapOrderInput","CallsSentObject","ApprovalFlowResult","BatchTxStepResult","useEnsureContractsQuery","DeltaAuctionWithTwapOrder","preSignAndSubmitOrderFactory","AddTxWithApprovals","useCreatePreSignableTwapOrder","usePostTwapOrder","TwapOrderPreSignResult","canPreSignBatch","preSignPrep","order","isCreatingOrder","isOrderHashReady","isPending","isError","isSuccess","error","Error","preSignBatch","postingOrder","isPostingOrder","isOrderSent","UsePreSignAndSubmitTwapOrderInput","chainId","account","logger","viemClient","UsePreSignAndSubmitTwapOrderResult","twapOrderPreSign","canBatchTxs","isConnectedToSafe","preSignAndSubmitTwapOrder","PreSignAndSubmitTwapOrderFunc","reset","usePreSignAndSubmitTwapOrder","t0","$","_c","queryClient","forCurrentChain","t1","client","createPreSignableOrderMut","t2","data","orderToPost","t3","preSignPreparations","addTxWithApprovals","t4","onSuccess","log","onError","batchTxMut","t5","id","t6","batchTxMined","lastCallsReceipt","receipts","length","t7","t8","transactionHash","t9","isLoading","t10","t11","t12","callsId","txHash","receipt","isConfirmingCalls","isConfirmingCallsError","isCallsSent","isCallsPending","isCallsMined","isCallsAwaitingError","deltaPreSignBatch","t13","invalidateQueries","queryKey","userAddress","user","exact","t14","error_0","t15","t16","mutationOptions","postOrderMut","t17","twapOrderPosting","t18","t19","t20","t21","t22","t23","ensureCallsStatus","t24","ensureContractsLoaded","t25","t26","sendCalls","mutateAsync","createPreSignableOrder","postOrder","preSignAndSubmitOrder","t27","t28","PreSignAndSubmitTwapOrderInput","createOrderInput","approval","Pick","onTxSent","txSent","input","Promise"],"sources":["../../../../../../../src/hooks/swap/prices/delta/mutations/twap/usePreSignAndSubmitTwapOrder.ts"],"sourcesContent":["import type { PreSignTwapOrderToPost } from \"../types\";\nimport { useBatchWithApproveTxs } from \"@/hooks/batch/useBatchWithApproveTxs\";\nimport { useSendBatchTx } from \"@/hooks/batch/useSendBatchTx\";\nimport {\n useAwaitCalls,\n useEnsureCallsStatus,\n} from \"@/hooks/batch/useAwaitCalls\";\nimport type { Address } from \"viem\";\nimport { deltaOrdersQueryKey } from \"../../queries/useDeltaOrders\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport type { LoggerInstance } from \"@/lib/utils/logger\";\nimport type { MinViemClient } from \"@velora-dex/sdk\";\nimport { useConnectedSafe } from \"@/hooks/connectors/useIsConnectedSafe\";\nimport { useCanBatchTxs } from \"@/hooks/batch/useCanBatchTxs\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport type { CreateAndSubmitTwapOrderInput } from \"./useCreateTwapOrder\";\nimport type { CallsSentObject } from \"@/lib/utils/transactionHandlers\";\nimport type {\n ApprovalFlowResult,\n BatchTxStepResult,\n} from \"../../../../tradeFlow/common/types\";\nimport { useEnsureContractsQuery } from \"../../../market/queries/useSpenderAndContracts\";\nimport type { DeltaAuctionWithTwapOrder } from \"../../orders/types\";\nimport {\n preSignAndSubmitOrderFactory,\n type AddTxWithApprovals,\n} from \"../../../../tradeFlow/common/factory/preSignAndSubmitOrderFactory\";\nimport { useCreatePreSignableTwapOrder } from \"./useCreatePreSignableTwapOrder\";\nimport { usePostTwapOrder } from \"./usePostTwapOrder\";\n\nexport type TwapOrderPreSignResult = {\n canPreSignBatch: boolean;\n preSignPrep: {\n order?: PreSignTwapOrderToPost;\n isCreatingOrder: boolean;\n isOrderHashReady: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n preSignBatch: BatchTxStepResult;\n postingOrder: {\n order?: DeltaAuctionWithTwapOrder;\n isPostingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n order?: DeltaAuctionWithTwapOrder;\n isCreatingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n};\n\ntype UsePreSignAndSubmitTwapOrderInput = {\n chainId: SupportedChainId;\n account?: Address;\n logger: LoggerInstance;\n viemClient?: MinViemClient;\n};\n\ntype UsePreSignAndSubmitTwapOrderResult = {\n twapOrderPreSign: TwapOrderPreSignResult;\n canBatchTxs?: boolean;\n isConnectedToSafe: boolean;\n preSignAndSubmitTwapOrder: PreSignAndSubmitTwapOrderFunc;\n reset: () => void;\n};\n\nexport function usePreSignAndSubmitTwapOrder({\n chainId,\n account,\n logger,\n viemClient,\n}: UsePreSignAndSubmitTwapOrderInput): UsePreSignAndSubmitTwapOrderResult {\n const queryClient = useQueryClient();\n\n const { forCurrentChain: canBatchTxs } = useCanBatchTxs();\n const isConnectedToSafe = useConnectedSafe();\n\n /* 1. submit Batch tx (Approve + Delta pre-sign) */\n\n const createPreSignableOrderMut = useCreatePreSignableTwapOrder({\n chainId,\n client: viemClient,\n });\n\n const preSignPreparations: TwapOrderPreSignResult[\"preSignPrep\"] = {\n isCreatingOrder: createPreSignableOrderMut.isPending,\n isOrderHashReady: createPreSignableOrderMut.isSuccess,\n order: createPreSignableOrderMut.data?.orderToPost,\n isPending: createPreSignableOrderMut.isPending,\n isError: createPreSignableOrderMut.isError,\n isSuccess: createPreSignableOrderMut.isSuccess,\n error: createPreSignableOrderMut.error,\n };\n\n const { addTxWithApprovals } = useBatchWithApproveTxs();\n\n const batchTxMut = useSendBatchTx({\n onSuccess: () => {\n logger.log(\"Batch tx success\");\n },\n onError: (error) => {\n logger.error(\"Batch tx error\", error);\n },\n });\n\n /* 2. await Batch tx */\n const batchTxMined = useAwaitCalls({\n id: batchTxMut.data?.id,\n });\n\n // for a successful SendCalls execution there will either be one receipt only,\n // or several receipts with the last one for the last tx from the batch\n const lastCallsReceipt =\n batchTxMined.data?.receipts?.[batchTxMined.data.receipts.length - 1];\n\n const deltaPreSignBatch: BatchTxStepResult = {\n canBatchTxs,\n callsId: batchTxMut.data?.id,\n txHash: lastCallsReceipt?.transactionHash,\n receipt: lastCallsReceipt,\n /* calls sending */\n isConfirmingCalls: batchTxMut.isPending,\n isConfirmingCallsError: batchTxMut.isError,\n isCallsSent: batchTxMut.isSuccess,\n /* calls awaiting */\n isCallsPending: batchTxMined.isLoading,\n isCallsMined: batchTxMined.isSuccess,\n isCallsAwaitingError: batchTxMined.isError,\n /* combined */\n isPending: batchTxMut.isPending || batchTxMined.isLoading,\n isSuccess: batchTxMined.isSuccess,\n isError: batchTxMut.isError || batchTxMined.isError,\n error: batchTxMut.error || batchTxMined.error,\n };\n\n /* 3. post Pre-signed Order */\n\n const postOrderMut = usePostTwapOrder({\n chainId,\n account,\n client: viemClient,\n mutationOptions: {\n onSuccess: (order) => {\n logger.log(\"Create Twap Order success\", order);\n queryClient.invalidateQueries({\n queryKey: deltaOrdersQueryKey({\n userAddress: order.user,\n }),\n exact: false,\n });\n },\n onError: (error) => {\n logger.error(\"Create Twap Order error\", error);\n },\n },\n });\n\n const twapOrderPosting: TwapOrderPreSignResult[\"postingOrder\"] = {\n order: postOrderMut.data,\n isPostingOrder: postOrderMut.isPending,\n isOrderSent: postOrderMut.isSuccess,\n isPending: postOrderMut.isPending,\n isError: postOrderMut.isError,\n isSuccess: postOrderMut.isSuccess,\n error: postOrderMut.error,\n };\n\n const twapOrderPreSign: TwapOrderPreSignResult = {\n canPreSignBatch: !!canBatchTxs,\n order: postOrderMut.data,\n preSignPrep: preSignPreparations,\n preSignBatch: deltaPreSignBatch,\n postingOrder: twapOrderPosting,\n isCreatingOrder:\n preSignPreparations.isCreatingOrder ||\n deltaPreSignBatch.isPending ||\n twapOrderPosting.isPostingOrder,\n isOrderSent: twapOrderPosting.isOrderSent,\n isPending:\n preSignPreparations.isPending ||\n deltaPreSignBatch.isPending ||\n twapOrderPosting.isPending,\n isError:\n preSignPreparations.isError ||\n deltaPreSignBatch.isError ||\n twapOrderPosting.isError,\n isSuccess: twapOrderPosting.isSuccess,\n error:\n preSignPreparations.error ||\n deltaPreSignBatch.error ||\n twapOrderPosting.error,\n };\n\n const ensureCallsStatus = useEnsureCallsStatus();\n const { ensureContractsLoaded } = useEnsureContractsQuery({ chainId });\n\n const preSignAndSubmitOrder = preSignAndSubmitOrderFactory({\n createPreSignableOrder: createPreSignableOrderMut.mutateAsync,\n postOrder: postOrderMut.mutateAsync,\n addTxWithApprovals: addTxWithApprovals as AddTxWithApprovals,\n sendCalls: batchTxMut.sendCalls,\n ensureCallsStatus,\n ensureContractsLoaded,\n logger,\n chainId,\n account,\n });\n\n const reset = () => {\n createPreSignableOrderMut.reset();\n batchTxMut.reset();\n postOrderMut.reset();\n };\n\n return {\n twapOrderPreSign,\n canBatchTxs,\n isConnectedToSafe,\n preSignAndSubmitTwapOrder: preSignAndSubmitOrder,\n reset,\n };\n}\n\nexport type PreSignAndSubmitTwapOrderInput = {\n createOrderInput: CreateAndSubmitTwapOrderInput;\n approval: Pick<\n ApprovalFlowResult,\n \"spender\" | \"allowanceToSet\" | \"token\" | \"chainId\"\n >;\n onTxSent?: (txSent: CallsSentObject) => void;\n};\n\ntype PreSignAndSubmitTwapOrderFunc = (\n input: PreSignAndSubmitTwapOrderInput\n) => Promise<DeltaAuctionWithTwapOrder>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"usePreSignAndSubmitTwapOrder.js","names":["PreSignTwapOrderToPost","useBatchWithApproveTxs","useSendBatchTx","useAwaitCalls","useEnsureCallsStatus","Address","deltaOrdersQueryKey","SupportedChainId","LoggerInstance","MinViemClient","useConnectedSafe","useCanBatchTxs","useQueryClient","CreateAndSubmitTwapOrderInput","CallsSentObject","ApprovalFlowResult","BatchTxStepResult","useEnsureContractsQuery","DeltaAuctionWithTwapOrder","preSignAndSubmitOrderFactory","AddTxWithApprovals","useCreatePreSignableTwapOrder","usePostTwapOrder","TwapOrderPreSignResult","canPreSignBatch","preSignPrep","order","isCreatingOrder","isOrderHashReady","isPending","isError","isSuccess","error","Error","preSignBatch","postingOrder","isPostingOrder","isOrderSent","UsePreSignAndSubmitTwapOrderInput","chainId","account","logger","viemClient","UsePreSignAndSubmitTwapOrderResult","twapOrderPreSign","canBatchTxs","isConnectedToSafe","preSignAndSubmitTwapOrder","PreSignAndSubmitTwapOrderFunc","reset","usePreSignAndSubmitTwapOrder","t0","$","_c","queryClient","forCurrentChain","t1","client","createPreSignableOrderMut","t2","data","orderToPost","t3","preSignPreparations","addTxWithApprovals","t4","onSuccess","log","onError","batchTxMut","t5","id","t6","batchTxMined","lastCallsReceipt","receipts","length","t7","t8","transactionHash","t9","isLoading","t10","t11","t12","callsId","txHash","receipt","isConfirmingCalls","isConfirmingCallsError","isCallsSent","isCallsPending","isCallsMined","isCallsAwaitingError","deltaPreSignBatch","t13","invalidateQueries","queryKey","userAddress","user","exact","t14","error_0","t15","t16","mutationOptions","postOrderMut","t17","twapOrderPosting","t18","t19","t20","t21","t22","t23","ensureCallsStatus","t24","ensureContractsLoaded","t25","t26","sendCalls","mutateAsync","createPreSignableOrder","postOrder","preSignAndSubmitOrder","t27","t28","PreSignAndSubmitTwapOrderInput","createOrderInput","approval","Pick","onTxSent","txSent","input","Promise"],"sources":["../../../../../../../src/hooks/swap/prices/delta/mutations/twap/usePreSignAndSubmitTwapOrder.ts"],"sourcesContent":["import type { PreSignTwapOrderToPost } from \"../types\";\nimport { useBatchWithApproveTxs } from \"@/hooks/batch/useBatchWithApproveTxs\";\nimport { useSendBatchTx } from \"@/hooks/batch/useSendBatchTx\";\nimport {\n useAwaitCalls,\n useEnsureCallsStatus,\n} from \"@/hooks/batch/useAwaitCalls\";\nimport type { Address } from \"viem\";\nimport { deltaOrdersQueryKey } from \"../../queries/useDeltaOrders\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport type { LoggerInstance } from \"@/lib/utils/logger\";\nimport type { MinViemClient } from \"@velora-dex/sdk\";\nimport { useConnectedSafe } from \"@/hooks/connectors/useIsConnectedSafe\";\nimport { useCanBatchTxs } from \"@/hooks/batch/useCanBatchTxs\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport type { CreateAndSubmitTwapOrderInput } from \"./useCreateTwapOrder\";\nimport type { CallsSentObject } from \"@/lib/utils/transactionHandlers\";\nimport type {\n ApprovalFlowResult,\n BatchTxStepResult,\n} from \"../../../../tradeFlow/common/types\";\nimport { useEnsureContractsQuery } from \"../../../market/queries/useSpenderAndContracts\";\nimport type { DeltaAuctionWithTwapOrder } from \"../../orders/types\";\nimport {\n preSignAndSubmitOrderFactory,\n type AddTxWithApprovals,\n} from \"../../../../tradeFlow/common/factory/preSignAndSubmitOrderFactory\";\nimport { useCreatePreSignableTwapOrder } from \"./useCreatePreSignableTwapOrder\";\nimport { usePostTwapOrder } from \"./usePostTwapOrder\";\n\nexport type TwapOrderPreSignResult = {\n canPreSignBatch: boolean;\n preSignPrep: {\n order?: PreSignTwapOrderToPost;\n isCreatingOrder: boolean;\n isOrderHashReady: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n preSignBatch: BatchTxStepResult;\n postingOrder: {\n order?: DeltaAuctionWithTwapOrder;\n isPostingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n order?: DeltaAuctionWithTwapOrder;\n isCreatingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n};\n\ntype UsePreSignAndSubmitTwapOrderInput = {\n chainId: SupportedChainId;\n account?: Address;\n logger: LoggerInstance;\n viemClient?: MinViemClient;\n};\n\ntype UsePreSignAndSubmitTwapOrderResult = {\n twapOrderPreSign: TwapOrderPreSignResult;\n canBatchTxs?: boolean;\n isConnectedToSafe: boolean;\n preSignAndSubmitTwapOrder: PreSignAndSubmitTwapOrderFunc;\n reset: () => void;\n};\n\nexport function usePreSignAndSubmitTwapOrder({\n chainId,\n account,\n logger,\n viemClient,\n}: UsePreSignAndSubmitTwapOrderInput): UsePreSignAndSubmitTwapOrderResult {\n const queryClient = useQueryClient();\n\n const { forCurrentChain: canBatchTxs } = useCanBatchTxs();\n const isConnectedToSafe = useConnectedSafe();\n\n /* 1. submit Batch tx (Approve + Delta pre-sign) */\n\n const createPreSignableOrderMut = useCreatePreSignableTwapOrder({\n chainId,\n client: viemClient,\n });\n\n const preSignPreparations: TwapOrderPreSignResult[\"preSignPrep\"] = {\n isCreatingOrder: createPreSignableOrderMut.isPending,\n isOrderHashReady: createPreSignableOrderMut.isSuccess,\n order: createPreSignableOrderMut.data?.orderToPost,\n isPending: createPreSignableOrderMut.isPending,\n isError: createPreSignableOrderMut.isError,\n isSuccess: createPreSignableOrderMut.isSuccess,\n error: createPreSignableOrderMut.error,\n };\n\n const { addTxWithApprovals } = useBatchWithApproveTxs();\n\n const batchTxMut = useSendBatchTx({\n onSuccess: () => {\n logger.log(\"Batch tx success\");\n },\n onError: (error) => {\n logger.error(\"Batch tx error\", error);\n },\n });\n\n /* 2. await Batch tx */\n const batchTxMined = useAwaitCalls({\n id: batchTxMut.data?.id,\n });\n\n // for a successful SendCalls execution there will either be one receipt only,\n // or several receipts with the last one for the last tx from the batch\n const lastCallsReceipt =\n batchTxMined.data?.receipts?.[batchTxMined.data.receipts.length - 1];\n\n const deltaPreSignBatch: BatchTxStepResult = {\n canBatchTxs,\n callsId: batchTxMut.data?.id,\n txHash: lastCallsReceipt?.transactionHash,\n receipt: lastCallsReceipt,\n /* calls sending */\n isConfirmingCalls: batchTxMut.isPending,\n isConfirmingCallsError: batchTxMut.isError,\n isCallsSent: batchTxMut.isSuccess,\n /* calls awaiting */\n isCallsPending: batchTxMined.isLoading,\n isCallsMined: batchTxMined.isSuccess,\n isCallsAwaitingError: batchTxMined.isError,\n /* combined */\n isPending: batchTxMut.isPending || batchTxMined.isLoading,\n isSuccess: batchTxMined.isSuccess,\n isError: batchTxMut.isError || batchTxMined.isError,\n error: batchTxMut.error || batchTxMined.error,\n };\n\n /* 3. post Pre-signed Order */\n\n const postOrderMut = usePostTwapOrder({\n chainId,\n account,\n client: viemClient,\n mutationOptions: {\n onSuccess: (order) => {\n logger.log(\"Create Twap Order success\", order);\n queryClient.invalidateQueries({\n queryKey: deltaOrdersQueryKey({\n userAddress: order.user,\n }),\n exact: false,\n });\n },\n onError: (error) => {\n logger.error(\"Create Twap Order error\", error);\n },\n },\n });\n\n const twapOrderPosting: TwapOrderPreSignResult[\"postingOrder\"] = {\n order: postOrderMut.data,\n isPostingOrder: postOrderMut.isPending,\n isOrderSent: postOrderMut.isSuccess,\n isPending: postOrderMut.isPending,\n isError: postOrderMut.isError,\n isSuccess: postOrderMut.isSuccess,\n error: postOrderMut.error,\n };\n\n const twapOrderPreSign: TwapOrderPreSignResult = {\n canPreSignBatch: !!canBatchTxs,\n order: postOrderMut.data,\n preSignPrep: preSignPreparations,\n preSignBatch: deltaPreSignBatch,\n postingOrder: twapOrderPosting,\n isCreatingOrder:\n preSignPreparations.isCreatingOrder ||\n deltaPreSignBatch.isPending ||\n twapOrderPosting.isPostingOrder,\n isOrderSent: twapOrderPosting.isOrderSent,\n isPending:\n preSignPreparations.isPending ||\n deltaPreSignBatch.isPending ||\n twapOrderPosting.isPending,\n isError:\n preSignPreparations.isError ||\n deltaPreSignBatch.isError ||\n twapOrderPosting.isError,\n isSuccess: twapOrderPosting.isSuccess,\n error:\n preSignPreparations.error ||\n deltaPreSignBatch.error ||\n twapOrderPosting.error,\n };\n\n const ensureCallsStatus = useEnsureCallsStatus();\n const { ensureContractsLoaded } = useEnsureContractsQuery({ chainId });\n\n const preSignAndSubmitOrder = preSignAndSubmitOrderFactory({\n createPreSignableOrder: createPreSignableOrderMut.mutateAsync,\n postOrder: postOrderMut.mutateAsync,\n addTxWithApprovals: addTxWithApprovals as AddTxWithApprovals,\n sendCalls: batchTxMut.sendCalls,\n ensureCallsStatus,\n ensureContractsLoaded,\n logger,\n chainId,\n account,\n });\n\n const reset = () => {\n createPreSignableOrderMut.reset();\n batchTxMut.reset();\n postOrderMut.reset();\n };\n\n return {\n twapOrderPreSign,\n canBatchTxs,\n isConnectedToSafe,\n preSignAndSubmitTwapOrder: preSignAndSubmitOrder,\n reset,\n };\n}\n\nexport type PreSignAndSubmitTwapOrderInput = {\n createOrderInput: CreateAndSubmitTwapOrderInput;\n approval: Pick<\n ApprovalFlowResult,\n \"spender\" | \"allowanceToSet\" | \"token\" | \"chainId\"\n >;\n onTxSent?: (txSent: CallsSentObject) => void;\n};\n\ntype PreSignAndSubmitTwapOrderFunc = (\n input: PreSignAndSubmitTwapOrderInput\n) => Promise<DeltaAuctionWithTwapOrder>;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useTwapOrderToPost.js","names":["useDeltaSDK","UseMutationOptions","UseMutationResult","useMutation","useAccount","assert","MinViemClient","PreSignTwapOrderToPost","CreateAndSubmitTwapOrderInput","buildPreSignTwapOrderPayload","TwapOrderToPostResult","TwapOrderToPostInput","UseTwapOrderToPostInput","mutationOptions","Omit","Error","chainId","client","useTwapOrderToPost","t0","$","_c","address","t1","account","sdk","t2","Symbol","for","t3","t4","orderInput","referrerAddress","signal","type","degenMode","throwIfAborted","orderToPost","mutationKey","mutationFn"],"sources":["../../../../../../../src/hooks/swap/prices/delta/mutations/twap/useTwapOrderToPost.ts"],"sourcesContent":["import { useDeltaSDK } from \"@/hooks/useSDK\";\nimport {\n type UseMutationOptions,\n type UseMutationResult,\n useMutation,\n} from \"@tanstack/react-query\";\nimport { useAccount } from \"wagmi\";\nimport { assert } from \"ts-essentials\";\nimport type { MinViemClient } from \"@velora-dex/sdk\";\nimport type { PreSignTwapOrderToPost } from \"../types\";\nimport type { CreateAndSubmitTwapOrderInput } from \"./useCreateTwapOrder\";\nimport { buildPreSignTwapOrderPayload } from \"../utils\";\n\ntype TwapOrderToPostResult = PreSignTwapOrderToPost;\ntype TwapOrderToPostInput = CreateAndSubmitTwapOrderInput;\n\ntype UseTwapOrderToPostInput = {\n mutationOptions?: Omit<\n UseMutationOptions<\n TwapOrderToPostResult,\n Error,\n TwapOrderToPostInput,\n void\n >,\n \"mutationFn\"\n >;\n chainId: number;\n client?: MinViemClient;\n};\n\n/** \n Creates the payload to post a TWAP Order with 0x signature.\n Primary for depositAndPreSign mutation.\n*/\nexport function useTwapOrderToPost({\n mutationOptions,\n chainId,\n client,\n}: UseTwapOrderToPostInput): UseMutationResult<\n TwapOrderToPostResult,\n Error,\n TwapOrderToPostInput,\n void\n> {\n const { address } = useAccount();\n const { sdk } = useDeltaSDK({ chainId, client, account: address });\n\n return useMutation<TwapOrderToPostResult, Error, TwapOrderToPostInput, void>({\n mutationKey: [\"twapOrderToPost\"],\n mutationFn: async ({\n orderInput,\n referrerAddress,\n signal,\n type,\n degenMode,\n }) => {\n // if aborted by this point, throw an error\n signal?.throwIfAborted();\n\n assert(\n \"hashTWAPDeltaOrderTypedData\" in sdk,\n \"sdk.hashTWAPDeltaOrderTypedData is not available\"\n );\n\n const orderToPost = await buildPreSignTwapOrderPayload({\n sdk,\n orderInput,\n chainId,\n referrerAddress,\n type,\n degenMode,\n });\n\n return orderToPost;\n },\n ...mutationOptions,\n });\n}\n"],"mappings":";;;;;;;AAkCA,SAAOkB,EAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,GAAA,EAA4B,EAAAR,oBAAAG,YAAAC,cAAAE,GAUjC,EAAAG,eAAoBlB,GAAY,EAACmB;AAAA,CAAAH,EAAA,OAAAE,KAAAF,EAAA,OAAAJ,KAAAI,EAAA,OAAAH,KACLM,IAAA;EAAAP;EAAAC;EAAAO,SAA4BF;EAAS,EAAAF,EAAA,KAAAE,GAAAF,EAAA,KAAAJ,GAAAI,EAAA,KAAAH,GAAAG,EAAA,KAAAG,KAAAA,IAAAH,EAAA;CAAjE,IAAA,EAAAK,WAAgBzB,EAAYuB,EAAsC,EAACG;AAAA,CAAAN,EAAA,OAAAO,OAAAC,IAAA,4BAAA,IAGpDF,IAAA,CAAC,kBAAkB,EAAAN,EAAA,KAAAM,KAAAA,IAAAN,EAAA;CAAA,IAAAS;AAAA,CAAAT,EAAA,OAAAJ,KAAAI,EAAA,OAAAK,KACpBI,IAAA,OAAAC,MAAA;EAAO,IAAA,EAAAC,eAAAC,oBAAAC,WAAAC,SAAAC,iBAAAL;AAsBd,SAdHG,GAAMG,gBAAkB,EAExB/B,EACE,iCAAiCoB,GACjC,mDACD,EAEmB,MAAMhB,EAA6B;GAAAgB;GAAAM;GAAAf;GAAAgB;GAAAE;GAAAC;GAOtD,CAAC;IAGHf,EAAA,KAAAJ,GAAAI,EAAA,KAAAK,GAAAL,EAAA,KAAAS,KAAAA,IAAAT,EAAA;CAAA,IAAAU;AAEF,QAFEV,EAAA,OAAAP,KAAAO,EAAA,OAAAS,KA3B0EC,IAAA;EAAAQ,aAC9DZ;EAAmBa,YACpBV;EAyBX,GACEhB;EACJ,EAAAO,EAAA,KAAAP,GAAAO,EAAA,KAAAS,GAAAT,EAAA,MAAAU,KAAAA,IAAAV,EAAA,KA7BMjB,EAAsE2B,EA6B3E"}
1
+ {"version":3,"file":"useTwapOrderToPost.js","names":["useDeltaSDK","UseMutationOptions","UseMutationResult","useMutation","useAccount","assert","MinViemClient","PreSignTwapOrderToPost","CreateAndSubmitTwapOrderInput","buildPreSignTwapOrderPayload","TwapOrderToPostResult","TwapOrderToPostInput","UseTwapOrderToPostInput","mutationOptions","Omit","Error","chainId","client","useTwapOrderToPost","t0","$","_c","address","t1","account","sdk","t2","Symbol","for","t3","t4","orderInput","referrerAddress","signal","type","degenMode","throwIfAborted","orderToPost","mutationKey","mutationFn"],"sources":["../../../../../../../src/hooks/swap/prices/delta/mutations/twap/useTwapOrderToPost.ts"],"sourcesContent":["import { useDeltaSDK } from \"@/hooks/useSDK\";\nimport {\n type UseMutationOptions,\n type UseMutationResult,\n useMutation,\n} from \"@tanstack/react-query\";\nimport { useAccount } from \"wagmi\";\nimport { assert } from \"ts-essentials\";\nimport type { MinViemClient } from \"@velora-dex/sdk\";\nimport type { PreSignTwapOrderToPost } from \"../types\";\nimport type { CreateAndSubmitTwapOrderInput } from \"./useCreateTwapOrder\";\nimport { buildPreSignTwapOrderPayload } from \"../utils\";\n\ntype TwapOrderToPostResult = PreSignTwapOrderToPost;\ntype TwapOrderToPostInput = CreateAndSubmitTwapOrderInput;\n\ntype UseTwapOrderToPostInput = {\n mutationOptions?: Omit<\n UseMutationOptions<\n TwapOrderToPostResult,\n Error,\n TwapOrderToPostInput,\n void\n >,\n \"mutationFn\"\n >;\n chainId: number;\n client?: MinViemClient;\n};\n\n/** \n Creates the payload to post a TWAP Order with 0x signature.\n Primary for depositAndPreSign mutation.\n*/\nexport function useTwapOrderToPost({\n mutationOptions,\n chainId,\n client,\n}: UseTwapOrderToPostInput): UseMutationResult<\n TwapOrderToPostResult,\n Error,\n TwapOrderToPostInput,\n void\n> {\n const { address } = useAccount();\n const { sdk } = useDeltaSDK({ chainId, client, account: address });\n\n return useMutation<TwapOrderToPostResult, Error, TwapOrderToPostInput, void>({\n mutationKey: [\"twapOrderToPost\"],\n mutationFn: async ({\n orderInput,\n referrerAddress,\n signal,\n type,\n degenMode,\n }) => {\n // if aborted by this point, throw an error\n signal?.throwIfAborted();\n\n assert(\n \"hashTWAPDeltaOrderTypedData\" in sdk,\n \"sdk.hashTWAPDeltaOrderTypedData is not available\"\n );\n\n const orderToPost = await buildPreSignTwapOrderPayload({\n sdk,\n orderInput,\n chainId,\n referrerAddress,\n type,\n degenMode,\n });\n\n return orderToPost;\n },\n ...mutationOptions,\n });\n}\n"],"mappings":";;;;;;;AAkCA,SAAOkB,EAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,GAAA,EAA4B,EAAAR,oBAAAG,YAAAC,cAAAE,GAUjC,EAAAG,eAAoBlB,GAAY,EAACmB;CAAA,AAAAH,EAAA,OAAAE,KAAAF,EAAA,OAAAJ,KAAAI,EAAA,OAAAH,KACLM,IAAA;EAAAP;EAAAC;EAAAO,SAA4BF;EAAS,EAAAF,EAAA,KAAAE,GAAAF,EAAA,KAAAJ,GAAAI,EAAA,KAAAH,GAAAG,EAAA,KAAAG,KAAAA,IAAAH,EAAA;CAAjE,IAAA,EAAAK,WAAgBzB,EAAYuB,EAAsC,EAACG;CAAA,AAAAN,EAAA,OAAAO,OAAAC,IAAA,4BAAA,IAGpDF,IAAA,CAAC,kBAAkB,EAAAN,EAAA,KAAAM,KAAAA,IAAAN,EAAA;CAAA,IAAAS;CAAA,AAAAT,EAAA,OAAAJ,KAAAI,EAAA,OAAAK,KACpBI,IAAA,OAAAC,MAAA;EAAO,IAAA,EAAAC,eAAAC,oBAAAC,WAAAC,SAAAC,iBAAAL;EAsBd,OAdHG,GAAMG,gBAAkB,EAExB/B,EACE,iCAAiCoB,GACjC,mDACD,EAWMY,MATmB5B,EAA6B;GAAAgB;GAAAM;GAAAf;GAAAgB;GAAAE;GAAAC;GAOtD,CAAC;IAGHf,EAAA,KAAAJ,GAAAI,EAAA,KAAAK,GAAAL,EAAA,KAAAS,KAAAA,IAAAT,EAAA;CAAA,IAAAU;CAEF,OAFEV,EAAA,OAAAP,KAAAO,EAAA,OAAAS,KA3B0EC,IAAA;EAAAQ,aAC9DZ;EAAmBa,YACpBV;EAyBX,GACEhB;EACJ,EAAAO,EAAA,KAAAP,GAAAO,EAAA,KAAAS,GAAAT,EAAA,MAAAU,KAAAA,IAAAV,EAAA,KA7BMjB,EAAsE2B,EA6B3E"}