@velora-dex/widget 0.1.3 → 0.2.1

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 (483) hide show
  1. package/dist/_virtual/index.js +1 -1
  2. package/dist/components/ui/accordion.d.ts +3 -1
  3. package/dist/components/ui/accordion.d.ts.map +1 -1
  4. package/dist/components/ui/accordion.js +42 -27
  5. package/dist/components/ui/accordion.js.map +1 -1
  6. package/dist/components/ui/button.js.map +1 -1
  7. package/dist/components/ui/dialog.js.map +1 -1
  8. package/dist/components/ui/dropdown-menu.js.map +1 -1
  9. package/dist/components/ui/progress.js.map +1 -1
  10. package/dist/components/ui/sonner.js.map +1 -1
  11. package/dist/components/ui/tooltip.js.map +1 -1
  12. package/dist/components/web3/AccountButton.d.ts.map +1 -1
  13. package/dist/components/web3/AccountButton.js +24 -27
  14. package/dist/components/web3/AccountButton.js.map +1 -1
  15. package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.js.map +1 -1
  16. package/dist/components/web3/ConnectWallets/WalletConnectButtons.js.map +1 -1
  17. package/dist/components/web3/ConnectWallets/index.js +43 -35
  18. package/dist/components/web3/ConnectWallets/index.js.map +1 -1
  19. package/dist/components/web3/ConnectWallets/privy/button.js.map +1 -1
  20. package/dist/components/web3/ConnectWallets/privy/iframe.js.map +1 -1
  21. package/dist/components/web3/ConnectWallets/walletIcons.js.map +1 -1
  22. package/dist/components/web3/ConnectedWallet/ConnectedWallet.d.ts.map +1 -1
  23. package/dist/components/web3/ConnectedWallet/ConnectedWallet.js +103 -133
  24. package/dist/components/web3/ConnectedWallet/ConnectedWallet.js.map +1 -1
  25. package/dist/components/widget/AppHeader/Activities/Activities.js +4 -12
  26. package/dist/components/widget/AppHeader/Activities/Activities.js.map +1 -1
  27. package/dist/components/widget/AppHeader/Activities/ActivityItems.js.map +1 -1
  28. package/dist/components/widget/AppHeader/Activities/Drawers.js.map +1 -1
  29. package/dist/components/widget/AppHeader/Activities/hooks.js.map +1 -1
  30. package/dist/components/widget/AppHeader/ActivityButton.js.map +1 -1
  31. package/dist/components/widget/AppHeader/AppHeader.d.ts.map +1 -1
  32. package/dist/components/widget/AppHeader/AppHeader.js +39 -33
  33. package/dist/components/widget/AppHeader/AppHeader.js.map +1 -1
  34. package/dist/components/widget/AppHeader/TradeModeSwitcher.js.map +1 -1
  35. package/dist/components/widget/Details/DetailWithValueList.js.map +1 -1
  36. package/dist/components/widget/Details/DetailWithValueListExpandable.js.map +1 -1
  37. package/dist/components/widget/DexesList/DexItem.js.map +1 -1
  38. package/dist/components/widget/DexesList/DexesList.js +3 -14
  39. package/dist/components/widget/DexesList/DexesList.js.map +1 -1
  40. package/dist/components/widget/Dialog/DialogRoot.js.map +1 -1
  41. package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressDialog.js +131 -115
  42. package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressDialog.js.map +1 -1
  43. package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressInput.js.map +1 -1
  44. package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js +4 -12
  45. package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js.map +1 -1
  46. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.js.map +1 -1
  47. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/RegularTokenList.js.map +1 -1
  48. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/index.js.map +1 -1
  49. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListRow.js.map +1 -1
  50. package/dist/components/widget/Dialog/SelectTokenDialog/TokenSearch.js.map +1 -1
  51. package/dist/components/widget/Dialog/state/dialogAtom.js +24 -26
  52. package/dist/components/widget/Dialog/state/dialogAtom.js.map +1 -1
  53. package/dist/components/widget/Drawer/Overlay.js.map +1 -1
  54. package/dist/components/widget/Drawer/index.d.ts.map +1 -1
  55. package/dist/components/widget/Drawer/index.js +119 -54
  56. package/dist/components/widget/Drawer/index.js.map +1 -1
  57. package/dist/components/widget/Drawer/state/useDrawerControls.js.map +1 -1
  58. package/dist/components/widget/ImportToken/ImportToken.js.map +1 -1
  59. package/dist/components/widget/ImportToken/useImportTokenDrawer.js.map +1 -1
  60. package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/Controls.js.map +1 -1
  61. package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/LimitOrderDetails.js.map +1 -1
  62. package/dist/components/widget/LimitOrdersDrawer/LimitOrderListItem.js +84 -66
  63. package/dist/components/widget/LimitOrdersDrawer/LimitOrderListItem.js.map +1 -1
  64. package/dist/components/widget/LimitPriceInput/index.js.map +1 -1
  65. package/dist/components/widget/Line/Line.js.map +1 -1
  66. package/dist/components/widget/NetworkIcon/NetworkIconSquare.js.map +1 -1
  67. package/dist/components/widget/NetworkSwitcher/CompactNetworkSwitcher.js.map +1 -1
  68. package/dist/components/widget/NetworkSwitcher/NetworkSwitcherDropdown.js +28 -30
  69. package/dist/components/widget/NetworkSwitcher/NetworkSwitcherDropdown.js.map +1 -1
  70. package/dist/components/widget/NetworkWithIcon/NetworkIconWithChevron.js.map +1 -1
  71. package/dist/components/widget/NetworkWithIcon/NetworkWithIcon.js.map +1 -1
  72. package/dist/components/widget/OrderExpiryInput/index.js.map +1 -1
  73. package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/Controls.js.map +1 -1
  74. package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/OtcOrderDetails.js.map +1 -1
  75. package/dist/components/widget/OtcOrdersDrawer/OtcOrderListItem.js.map +1 -1
  76. package/dist/components/widget/PayReceiveInfo/PayReceiveInfo.js.map +1 -1
  77. package/dist/components/widget/ReceiverAddress/ReceiverAddress.js.map +1 -1
  78. package/dist/components/widget/ReceiverAddress/state/receiverAddressAtom.js.map +1 -1
  79. package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcControls.js.map +1 -1
  80. package/dist/components/widget/ReviewAndConfirm/FillOtcReviewAndConfirm/FillOtcReviewAndConfirm.js.map +1 -1
  81. package/dist/components/widget/SelectToken/SelectTokenButton.d.ts.map +1 -1
  82. package/dist/components/widget/SelectToken/SelectTokenButton.js +51 -51
  83. package/dist/components/widget/SelectToken/SelectTokenButton.js.map +1 -1
  84. package/dist/components/widget/SelectToken/types.d.ts +1 -1
  85. package/dist/components/widget/SelectToken/types.d.ts.map +1 -1
  86. package/dist/components/widget/SwapModeSwitcher/SwapModeSwitcherExpandable.js.map +1 -1
  87. package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js.map +1 -1
  88. package/dist/components/widget/SwapRate/SwapRate.js +75 -43
  89. package/dist/components/widget/SwapRate/SwapRate.js.map +1 -1
  90. package/dist/components/widget/Tabs/Tabs.js.map +1 -1
  91. package/dist/components/widget/Toasts/CustomToast.js.map +1 -1
  92. package/dist/components/widget/TokenBadge/TokenBadge.js.map +1 -1
  93. package/dist/components/widget/TokenInput/index.d.ts.map +1 -1
  94. package/dist/components/widget/TokenInput/index.js +107 -148
  95. package/dist/components/widget/TokenInput/index.js.map +1 -1
  96. package/dist/components/widget/TokenSwitcher/TokenSwitcher.js.map +1 -1
  97. package/dist/components/widget/TradeOverview/Step/Step.js.map +1 -1
  98. package/dist/components/widget/TradeOverview/Stepper.js +23 -38
  99. package/dist/components/widget/TradeOverview/Stepper.js.map +1 -1
  100. package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteFooter.js.map +1 -1
  101. package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteHeader.js +36 -27
  102. package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteHeader.js.map +1 -1
  103. package/dist/components/widget/TradeOverview/TradeComplete/useTradeCompleteDetails.js +79 -36
  104. package/dist/components/widget/TradeOverview/TradeComplete/useTradeCompleteDetails.js.map +1 -1
  105. package/dist/components/widget/TradeOverview/TradeDetailsDisplay.js.map +1 -1
  106. package/dist/components/widget/TradeOverview/TradeOverview.d.ts +3 -0
  107. package/dist/components/widget/TradeOverview/TradeOverview.d.ts.map +1 -1
  108. package/dist/components/widget/TradeOverview/TradeOverview.js.map +1 -1
  109. package/dist/components/widget/TradeOverview/TradeOverviewFooter.js.map +1 -1
  110. package/dist/components/widget/TradeOverview/tradeFlowContext.js.map +1 -1
  111. package/dist/components/widget/TradeParameters/SlippageParameter/SlippageParameter.js.map +1 -1
  112. package/dist/components/widget/TradeParameters/SlippageParameter/hooks/useCustomSlippageProps.js.map +1 -1
  113. package/dist/components/widget/TradeParameters/TradeParameters.js.map +1 -1
  114. package/dist/components/widget/TradeParameters/TransactionSpeedParameter.js.map +1 -1
  115. package/dist/components/widget/TradeParameters/hooks/useIsNotDefaultAnyParameter.js.map +1 -1
  116. package/dist/components/widget/TradeParameters/state/gasPresetParamAtom.js.map +1 -1
  117. package/dist/components/widget/TradeParameters/useTempTradeParameters.js.map +1 -1
  118. package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.js.map +1 -1
  119. package/dist/components/widget/TransactionDetails/LimitOrderDetails/TransactionDetails.js.map +1 -1
  120. package/dist/components/widget/TransactionDetails/TransactionListItem.js +57 -38
  121. package/dist/components/widget/TransactionDetails/TransactionListItem.js.map +1 -1
  122. package/dist/components/widget/Warning/InsufficientBalanceMessage.js.map +1 -1
  123. package/dist/components/widget/Warning/Warning.js.map +1 -1
  124. package/dist/components/widget/Warning/WarningMessage.js.map +1 -1
  125. package/dist/components/widget/WrapEth/WrapEthContent.js.map +1 -1
  126. package/dist/components/widget/WrapEth/WrapEthDrawerButton.d.ts.map +1 -1
  127. package/dist/components/widget/WrapEth/WrapEthDrawerButton.js +72 -90
  128. package/dist/components/widget/WrapEth/WrapEthDrawerButton.js.map +1 -1
  129. package/dist/components/widget/WrapEth/hooks/useWrapEthProps.d.ts.map +1 -1
  130. package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js +141 -84
  131. package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js.map +1 -1
  132. package/dist/components/widget/YouGet/YouGet.js.map +1 -1
  133. package/dist/configurator/Configurator.d.ts.map +1 -1
  134. package/dist/configurator/components/AllowNoUsdPricesSwitcher.d.ts +5 -0
  135. package/dist/configurator/components/AllowNoUsdPricesSwitcher.d.ts.map +1 -0
  136. package/dist/configurator/components/CrossChainSwitcher.d.ts +5 -0
  137. package/dist/configurator/components/CrossChainSwitcher.d.ts.map +1 -0
  138. package/dist/configurator/components/DeltaSwitcher.d.ts +5 -0
  139. package/dist/configurator/components/DeltaSwitcher.d.ts.map +1 -0
  140. package/dist/configurator/components/DevTools.d.ts +7 -0
  141. package/dist/configurator/components/DevTools.d.ts.map +1 -0
  142. package/dist/configurator/components/EnabledChainsSelector.d.ts +8 -0
  143. package/dist/configurator/components/EnabledChainsSelector.d.ts.map +1 -0
  144. package/dist/configurator/components/FormPropsInputs.d.ts +6 -0
  145. package/dist/configurator/components/FormPropsInputs.d.ts.map +1 -0
  146. package/dist/configurator/components/PanelHeader.d.ts +6 -0
  147. package/dist/configurator/components/PanelHeader.d.ts.map +1 -0
  148. package/dist/configurator/components/PartnerInput.d.ts +5 -0
  149. package/dist/configurator/components/PartnerInput.d.ts.map +1 -0
  150. package/dist/configurator/components/PrivyInputs.d.ts +7 -0
  151. package/dist/configurator/components/PrivyInputs.d.ts.map +1 -0
  152. package/dist/configurator/components/ThemeSwitcher.d.ts +6 -0
  153. package/dist/configurator/components/ThemeSwitcher.d.ts.map +1 -0
  154. package/dist/configurator/components/TokenListsInput.d.ts +5 -0
  155. package/dist/configurator/components/TokenListsInput.d.ts.map +1 -0
  156. package/dist/configurator/components/TradeModesSelector.d.ts +7 -0
  157. package/dist/configurator/components/TradeModesSelector.d.ts.map +1 -0
  158. package/dist/configurator/components/WidgetModeSwitcher.d.ts +5 -0
  159. package/dist/configurator/components/WidgetModeSwitcher.d.ts.map +1 -0
  160. package/dist/configurator/components/common/DetailWithTooltip.d.ts +3 -0
  161. package/dist/configurator/components/common/DetailWithTooltip.d.ts.map +1 -0
  162. package/dist/configurator/components/common/Input.d.ts +8 -0
  163. package/dist/configurator/components/common/Input.d.ts.map +1 -0
  164. package/dist/configurator/components/common/Switch.d.ts +12 -0
  165. package/dist/configurator/components/common/Switch.d.ts.map +1 -0
  166. package/dist/configurator/state/themeAtom.d.ts +3 -0
  167. package/dist/configurator/state/themeAtom.d.ts.map +1 -0
  168. package/dist/core/ConnectWalletDrawerButton.d.ts.map +1 -1
  169. package/dist/core/ConnectWalletDrawerButton.js +73 -64
  170. package/dist/core/ConnectWalletDrawerButton.js.map +1 -1
  171. package/dist/core/LimitOrderButton.js.map +1 -1
  172. package/dist/core/LimitOrderDetails.js.map +1 -1
  173. package/dist/core/OtcOrderButton.d.ts.map +1 -1
  174. package/dist/core/OtcOrderButton.js +4 -1
  175. package/dist/core/OtcOrderButton.js.map +1 -1
  176. package/dist/core/OtcOrderDetails.js.map +1 -1
  177. package/dist/core/Toaster.js.map +1 -1
  178. package/dist/core/TradeFlowButton.d.ts.map +1 -1
  179. package/dist/core/TradeFlowButton.js +414 -621
  180. package/dist/core/TradeFlowButton.js.map +1 -1
  181. package/dist/core/Updaters.js.map +1 -1
  182. package/dist/core/Warnings.js.map +1 -1
  183. package/dist/core/button/hooks/useWidgetButtonExtraProps.d.ts +1 -0
  184. package/dist/core/button/hooks/useWidgetButtonExtraProps.d.ts.map +1 -1
  185. package/dist/core/button/hooks/useWidgetButtonExtraProps.js +85 -49
  186. package/dist/core/button/hooks/useWidgetButtonExtraProps.js.map +1 -1
  187. package/dist/core/index.d.ts.map +1 -1
  188. package/dist/core/index.js +98 -90
  189. package/dist/core/index.js.map +1 -1
  190. package/dist/core/inputs/hooks/useTokenFromInputProps.d.ts.map +1 -1
  191. package/dist/core/inputs/hooks/useTokenFromInputProps.js +83 -54
  192. package/dist/core/inputs/hooks/useTokenFromInputProps.js.map +1 -1
  193. package/dist/core/inputs/hooks/useTokenSwitcherProps.js.map +1 -1
  194. package/dist/core/inputs/hooks/useTokenToInputProps.js +20 -28
  195. package/dist/core/inputs/hooks/useTokenToInputProps.js.map +1 -1
  196. package/dist/core/inputs/state/common.d.ts +2 -2
  197. package/dist/core/inputs/state/common.js.map +1 -1
  198. package/dist/core/inputs/state/selectedTokenAtom.js.map +1 -1
  199. package/dist/core/inputs/state/setTokenByAddressAtom.d.ts +1 -14
  200. package/dist/core/inputs/state/setTokenByAddressAtom.d.ts.map +1 -1
  201. package/dist/core/inputs/state/setTokenByAddressAtom.js.map +1 -1
  202. package/dist/core/inputs/state/types.d.ts +15 -0
  203. package/dist/core/inputs/state/types.d.ts.map +1 -0
  204. package/dist/core/limit/state/deadlineAtom.js.map +1 -1
  205. package/dist/core/limit/state/selectedTokenAtom.js.map +1 -1
  206. package/dist/core/limit/useLimitDetailsListProps.js.map +1 -1
  207. package/dist/core/limit/useLimitNotSupported.js +12 -1
  208. package/dist/core/limit/useLimitNotSupported.js.map +1 -1
  209. package/dist/core/limit/useLimitPriceDifference.js.map +1 -1
  210. package/dist/core/limit/useLimitPriceInputProps.js.map +1 -1
  211. package/dist/core/limit/useLimitRate.js.map +1 -1
  212. package/dist/core/limit/useLimitTokenFromInputProps.d.ts.map +1 -1
  213. package/dist/core/limit/useLimitTokenFromInputProps.js +69 -52
  214. package/dist/core/limit/useLimitTokenFromInputProps.js.map +1 -1
  215. package/dist/core/limit/useLimitTokenSwitcherProps.js.map +1 -1
  216. package/dist/core/limit/useLimitTokenToInputProps.js.map +1 -1
  217. package/dist/core/logger.js +12 -14
  218. package/dist/core/logger.js.map +1 -1
  219. package/dist/core/otc/state/deadlineAtom.js.map +1 -1
  220. package/dist/core/otc/state/receiverAddressAtom.js.map +1 -1
  221. package/dist/core/otc/state/selectedTokenAtom.js.map +1 -1
  222. package/dist/core/otc/useOtcDetailsListProps.js.map +1 -1
  223. package/dist/core/otc/useOtcNotSupported.js +12 -1
  224. package/dist/core/otc/useOtcNotSupported.js.map +1 -1
  225. package/dist/core/otc/useOtcPriceDifference.js.map +1 -1
  226. package/dist/core/otc/useOtcPriceInputProps.js.map +1 -1
  227. package/dist/core/otc/useOtcTokenFromInputProps.d.ts.map +1 -1
  228. package/dist/core/otc/useOtcTokenFromInputProps.js +69 -52
  229. package/dist/core/otc/useOtcTokenFromInputProps.js.map +1 -1
  230. package/dist/core/otc/useOtcTokenSwitcherProps.js.map +1 -1
  231. package/dist/core/otc/useOtcTokenToInputProps.js.map +1 -1
  232. package/dist/core/state/chainToAtom.js.map +1 -1
  233. package/dist/core/state/configActionsAtom.d.ts.map +1 -1
  234. package/dist/core/state/configActionsAtom.js +3 -1
  235. package/dist/core/state/configActionsAtom.js.map +1 -1
  236. package/dist/core/state/configAtom.d.ts +5 -3
  237. package/dist/core/state/configAtom.d.ts.map +1 -1
  238. package/dist/core/state/configAtom.js +5 -9
  239. package/dist/core/state/configAtom.js.map +1 -1
  240. package/dist/core/state/configEffectAtom.js.map +1 -1
  241. package/dist/core/state/containerAtom.js.map +1 -1
  242. package/dist/core/state/enabledChainsAtom.js.map +1 -1
  243. package/dist/core/state/externalProviderAtom.js.map +1 -1
  244. package/dist/core/state/isCrosschainAtom.js.map +1 -1
  245. package/dist/core/state/tradeModeAtom.js.map +1 -1
  246. package/dist/core/state/widgetEventsAtom.d.ts.map +1 -1
  247. package/dist/core/state/widgetEventsAtom.js +55 -41
  248. package/dist/core/state/widgetEventsAtom.js.map +1 -1
  249. package/dist/core/swapDetails/useSwapDetailsListProps.js +34 -36
  250. package/dist/core/swapDetails/useSwapDetailsListProps.js.map +1 -1
  251. package/dist/core/types.d.ts +4 -1
  252. package/dist/core/types.d.ts.map +1 -1
  253. package/dist/events/getters/limit.d.ts.map +1 -1
  254. package/dist/events/getters/limit.js +3 -2
  255. package/dist/events/getters/limit.js.map +1 -1
  256. package/dist/events/getters/otc.d.ts.map +1 -1
  257. package/dist/events/getters/otc.js +3 -2
  258. package/dist/events/getters/otc.js.map +1 -1
  259. package/dist/events/getters/swap.d.ts.map +1 -1
  260. package/dist/events/getters/swap.js +3 -2
  261. package/dist/events/getters/swap.js.map +1 -1
  262. package/dist/events/hooks/useActivateEffects.js.map +1 -1
  263. package/dist/events/hooks/useOnWalletConnect.d.ts.map +1 -1
  264. package/dist/events/hooks/useOnWalletConnect.js +2 -0
  265. package/dist/events/hooks/useOnWalletConnect.js.map +1 -1
  266. package/dist/events/types/approve.d.ts +22 -6
  267. package/dist/events/types/approve.d.ts.map +1 -1
  268. package/dist/events/types/common.d.ts +3 -2
  269. package/dist/events/types/common.d.ts.map +1 -1
  270. package/dist/events/types/connectWallet.d.ts +2 -0
  271. package/dist/events/types/connectWallet.d.ts.map +1 -1
  272. package/dist/events/types/index.d.ts +5 -2
  273. package/dist/events/types/index.d.ts.map +1 -1
  274. package/dist/external/.pnpm/react-compiler-runtime@1.0.0_react@19.1.1/external/react-compiler-runtime/dist/index.js.map +1 -0
  275. package/dist/hooks/batch/useAwaitCalls.d.ts.map +1 -1
  276. package/dist/hooks/batch/useAwaitCalls.js +20 -16
  277. package/dist/hooks/batch/useAwaitCalls.js.map +1 -1
  278. package/dist/hooks/batch/useCanBatchTxs.js.map +1 -1
  279. package/dist/hooks/batch/useSendBatchTx.js.map +1 -1
  280. package/dist/hooks/connectors/useIsConnectedSafe.js +10 -18
  281. package/dist/hooks/connectors/useIsConnectedSafe.js.map +1 -1
  282. package/dist/hooks/connectors/useIsGnosisSafeConnector.js.map +1 -1
  283. package/dist/hooks/connectors/useIsSafeThroughWalletConnect.js +4 -15
  284. package/dist/hooks/connectors/useIsSafeThroughWalletConnect.js.map +1 -1
  285. package/dist/hooks/gas/useGasPrices.js.map +1 -1
  286. package/dist/hooks/getCode/useIsAccountContract.js.map +1 -1
  287. package/dist/hooks/getCode/useIsContractAtAddress.js +30 -46
  288. package/dist/hooks/getCode/useIsContractAtAddress.js.map +1 -1
  289. package/dist/hooks/otc/mutations/useCancelLimitOrder.d.ts.map +1 -1
  290. package/dist/hooks/otc/mutations/useCancelLimitOrder.js +21 -12
  291. package/dist/hooks/otc/mutations/useCancelLimitOrder.js.map +1 -1
  292. package/dist/hooks/otc/mutations/useCreateLimitOrder.d.ts.map +1 -1
  293. package/dist/hooks/otc/mutations/useCreateLimitOrder.js +22 -12
  294. package/dist/hooks/otc/mutations/useCreateLimitOrder.js.map +1 -1
  295. package/dist/hooks/otc/mutations/useFillOrder.d.ts.map +1 -1
  296. package/dist/hooks/otc/mutations/useFillOrder.js +10 -32
  297. package/dist/hooks/otc/mutations/useFillOrder.js.map +1 -1
  298. package/dist/hooks/otc/queries/useLimitOrderRequiredBalance.d.ts +22 -3
  299. package/dist/hooks/otc/queries/useLimitOrderRequiredBalance.d.ts.map +1 -1
  300. package/dist/hooks/otc/queries/useLimitOrderRequiredBalance.js +39 -2
  301. package/dist/hooks/otc/queries/useLimitOrderRequiredBalance.js.map +1 -1
  302. package/dist/hooks/otc/queries/useLimitOrders.js.map +1 -1
  303. package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.d.ts.map +1 -1
  304. package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js +2 -3
  305. package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js.map +1 -1
  306. package/dist/hooks/otc/tradeFlow/useFillOtcOrderStep.js.map +1 -1
  307. package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.d.ts +7 -4
  308. package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.d.ts.map +1 -1
  309. package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.js +46 -4
  310. package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.js.map +1 -1
  311. package/dist/hooks/otc/tradeFlow/useOtcOrderStep.d.ts.map +1 -1
  312. package/dist/hooks/otc/tradeFlow/useOtcOrderStep.js +38 -36
  313. package/dist/hooks/otc/tradeFlow/useOtcOrderStep.js.map +1 -1
  314. package/dist/hooks/permit/hooks/common/useSignArbitraryTypedData.js.map +1 -1
  315. package/dist/hooks/permit/hooks/common/useSignPermit.js.map +1 -1
  316. package/dist/hooks/permit/hooks/common/useWalletSupportsPermit.js.map +1 -1
  317. package/dist/hooks/permit/hooks/permit1/useGetPermitInfo.js.map +1 -1
  318. package/dist/hooks/permit/hooks/permit1/useGetSafePermitInfo.js.map +1 -1
  319. package/dist/hooks/permit/hooks/permit1/useSignTokenPermit1.js.map +1 -1
  320. package/dist/hooks/permit/hooks/permit1/useTokenFromPermit1Nonce.js.map +1 -1
  321. package/dist/hooks/permit/hooks/permit1/useTokenFromPermitInfo.js.map +1 -1
  322. package/dist/hooks/permit/hooks/permit1/useTryToSignPermit1.js.map +1 -1
  323. package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.js +39 -31
  324. package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.js.map +1 -1
  325. package/dist/hooks/permit/hooks/permit2/useSignTokenPermit2TransferFrom.js +7 -15
  326. package/dist/hooks/permit/hooks/permit2/useSignTokenPermit2TransferFrom.js.map +1 -1
  327. package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2TransferFromNonce.js.map +1 -1
  328. package/dist/hooks/sdk/useGetContracts.js.map +1 -1
  329. package/dist/hooks/sdk/useSpender.js.map +1 -1
  330. package/dist/hooks/swap/prices/delta/mutations/useCancelLimitDeltaOrders.d.ts +2 -1
  331. package/dist/hooks/swap/prices/delta/mutations/useCancelLimitDeltaOrders.d.ts.map +1 -1
  332. package/dist/hooks/swap/prices/delta/mutations/useCancelLimitDeltaOrders.js +23 -13
  333. package/dist/hooks/swap/prices/delta/mutations/useCancelLimitDeltaOrders.js.map +1 -1
  334. package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.d.ts +3 -2
  335. package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.d.ts.map +1 -1
  336. package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.js +41 -10
  337. package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.js.map +1 -1
  338. package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.d.ts +25 -0
  339. package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.d.ts.map +1 -0
  340. package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.js +88 -0
  341. package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.js.map +1 -0
  342. package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.d.ts +16 -0
  343. package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.d.ts.map +1 -0
  344. package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.js +83 -0
  345. package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.js.map +1 -0
  346. package/dist/hooks/swap/prices/delta/orders/utils.d.ts.map +1 -1
  347. package/dist/hooks/swap/prices/delta/orders/utils.js +3 -2
  348. package/dist/hooks/swap/prices/delta/orders/utils.js.map +1 -1
  349. package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.js.map +1 -1
  350. package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.d.ts +22 -3
  351. package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.d.ts.map +1 -1
  352. package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.js +39 -2
  353. package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.js.map +1 -1
  354. package/dist/hooks/swap/prices/delta/queries/useDeltaOrders.js.map +1 -1
  355. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
  356. package/dist/hooks/swap/prices/delta/queries/useIsTokenSupportedInDelta.js.map +1 -1
  357. package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js.map +1 -1
  358. package/dist/hooks/swap/prices/market/mutations/useBuildTx.js.map +1 -1
  359. package/dist/hooks/swap/prices/market/mutations/useSendMarketSwapTx.js.map +1 -1
  360. package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js.map +1 -1
  361. package/dist/hooks/swap/prices/market/queries/useSpenderAndContracts.d.ts +9 -0
  362. package/dist/hooks/swap/prices/market/queries/useSpenderAndContracts.d.ts.map +1 -1
  363. package/dist/hooks/swap/prices/market/queries/useSpenderAndContracts.js +49 -2
  364. package/dist/hooks/swap/prices/market/queries/useSpenderAndContracts.js.map +1 -1
  365. package/dist/hooks/swap/prices/usePricesParams.js.map +1 -1
  366. package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
  367. package/dist/hooks/swap/prices/useTokenInputsFromPrice.js.map +1 -1
  368. package/dist/hooks/swap/tradeFlow/common/types.d.ts +17 -0
  369. package/dist/hooks/swap/tradeFlow/common/types.d.ts.map +1 -1
  370. package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.d.ts +3 -1
  371. package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.d.ts.map +1 -1
  372. package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js +164 -140
  373. package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js.map +1 -1
  374. package/dist/hooks/swap/tradeFlow/common/useApproveOrPermitEvents.js.map +1 -1
  375. package/dist/hooks/swap/tradeFlow/common/useBatchWrapAndApprove.d.ts +46 -0
  376. package/dist/hooks/swap/tradeFlow/common/useBatchWrapAndApprove.d.ts.map +1 -0
  377. package/dist/hooks/swap/tradeFlow/common/useBatchWrapAndApprove.js +328 -0
  378. package/dist/hooks/swap/tradeFlow/common/useBatchWrapAndApprove.js.map +1 -0
  379. package/dist/hooks/swap/tradeFlow/common/useConstructGasParams.d.ts.map +1 -1
  380. package/dist/hooks/swap/tradeFlow/common/useConstructGasParams.js +16 -14
  381. package/dist/hooks/swap/tradeFlow/common/useConstructGasParams.js.map +1 -1
  382. package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.d.ts +74 -0
  383. package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.d.ts.map +1 -0
  384. package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.js +274 -0
  385. package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.js.map +1 -0
  386. package/dist/hooks/swap/tradeFlow/common/useRequiredAllowanceForOrders.d.ts +15 -0
  387. package/dist/hooks/swap/tradeFlow/common/useRequiredAllowanceForOrders.d.ts.map +1 -0
  388. package/dist/hooks/swap/tradeFlow/common/useRequiredAllowanceForOrders.js +88 -0
  389. package/dist/hooks/swap/tradeFlow/common/useRequiredAllowanceForOrders.js.map +1 -0
  390. package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.js.map +1 -1
  391. package/dist/hooks/swap/tradeFlow/common/utils.d.ts +1 -0
  392. package/dist/hooks/swap/tradeFlow/common/utils.d.ts.map +1 -1
  393. package/dist/hooks/swap/tradeFlow/common/utils.js +16 -1
  394. package/dist/hooks/swap/tradeFlow/common/utils.js.map +1 -1
  395. package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts +28 -23
  396. package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
  397. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +59 -17
  398. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
  399. package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js.map +1 -1
  400. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts +4 -3
  401. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts.map +1 -1
  402. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js +61 -15
  403. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js.map +1 -1
  404. package/dist/hooks/swap/tradeFlow/useLimitOrderStep.js.map +1 -1
  405. package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts +2 -18
  406. package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts.map +1 -1
  407. package/dist/hooks/swap/tradeFlow/useMarketFlow.js.map +1 -1
  408. package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js.map +1 -1
  409. package/dist/hooks/tokens/allowance/useTokenAllowance.js +25 -15
  410. package/dist/hooks/tokens/allowance/useTokenAllowance.js.map +1 -1
  411. package/dist/hooks/tokens/balances/useAttachTokenBalanceMultichain.js +8 -10
  412. package/dist/hooks/tokens/balances/useAttachTokenBalanceMultichain.js.map +1 -1
  413. package/dist/hooks/tokens/balances/useIsInsufficientTokenBalance.js.map +1 -1
  414. package/dist/hooks/tokens/balances/useIsLimitOrderInsufficientBalance.js.map +1 -1
  415. package/dist/hooks/tokens/balances/useMultichainTokenBalances.js +20 -37
  416. package/dist/hooks/tokens/balances/useMultichainTokenBalances.js.map +1 -1
  417. package/dist/hooks/tokens/balances/useTokenBalance.js.map +1 -1
  418. package/dist/hooks/tokens/data/useCombineTokensWithFetched.js +11 -19
  419. package/dist/hooks/tokens/data/useCombineTokensWithFetched.js.map +1 -1
  420. package/dist/hooks/tokens/data/useFetchTokens.js.map +1 -1
  421. package/dist/hooks/tokens/data/useMultichainTokensData.js.map +1 -1
  422. package/dist/hooks/tokens/prices/useMultichainTokenPrices.js +21 -25
  423. package/dist/hooks/tokens/prices/useMultichainTokenPrices.js.map +1 -1
  424. package/dist/hooks/tokens/prices/useTokenPrices.js.map +1 -1
  425. package/dist/hooks/tokens/useAllTokensWithFilter.js +121 -49
  426. package/dist/hooks/tokens/useAllTokensWithFilter.js.map +1 -1
  427. package/dist/hooks/tokens/useNativeToken.js +1 -1
  428. package/dist/hooks/tokens/useNativeToken.js.map +1 -1
  429. package/dist/hooks/tokens/useTokenTaxFee.js.map +1 -1
  430. package/dist/hooks/tokens/useTokensByAddress.js.map +1 -1
  431. package/dist/hooks/tokens/useTokensFromAcross.js.map +1 -1
  432. package/dist/hooks/txs/mutations/useApprove.js.map +1 -1
  433. package/dist/hooks/txs/mutations/useDepositWeth.js.map +1 -1
  434. package/dist/hooks/txs/mutations/useSendTx.js.map +1 -1
  435. package/dist/hooks/txs/queries/useAwaitTx.js.map +1 -1
  436. package/dist/hooks/txs/queries/useTxHistory.js.map +1 -1
  437. package/dist/hooks/useAvailableCrosses.js.map +1 -1
  438. package/dist/hooks/useBridgeInfo.js.map +1 -1
  439. package/dist/hooks/useCurrentChain.js.map +1 -1
  440. package/dist/hooks/useDebouncedInputState.js.map +1 -1
  441. package/dist/hooks/useEIP1559Enabled.js.map +1 -1
  442. package/dist/hooks/useGlobalDeltaEnabled.js.map +1 -1
  443. package/dist/hooks/useIsCrosschainPossible.js.map +1 -1
  444. package/dist/hooks/useMinViemClient.js.map +1 -1
  445. package/dist/hooks/useSDK.d.ts +3 -2
  446. package/dist/hooks/useSDK.d.ts.map +1 -1
  447. package/dist/hooks/useSDK.js +37 -8
  448. package/dist/hooks/useSDK.js.map +1 -1
  449. package/dist/hooks/useSelectableDestChains.js.map +1 -1
  450. package/dist/hooks/useSlippage.js.map +1 -1
  451. package/dist/index.d.ts +5 -1
  452. package/dist/index.d.ts.map +1 -1
  453. package/dist/lib/utils/approval.js.map +1 -1
  454. package/dist/lib/utils/theme.d.ts +2 -0
  455. package/dist/lib/utils/theme.d.ts.map +1 -0
  456. package/dist/lib/utils/theme.js +10 -0
  457. package/dist/lib/utils/theme.js.map +1 -0
  458. package/dist/lib/utils/tradeFlow.d.ts +3 -0
  459. package/dist/lib/utils/tradeFlow.d.ts.map +1 -0
  460. package/dist/lib/utils/tradeFlow.js +12 -0
  461. package/dist/lib/utils/tradeFlow.js.map +1 -0
  462. package/dist/lib/web3/wagmi/isInsideSafeIframe.js.map +1 -1
  463. package/dist/styles.css +89 -44
  464. package/dist/tokens/hooks.js.map +1 -1
  465. package/dist/tokens/lists/state/effects.js.map +1 -1
  466. package/dist/tokens/queries.js +6 -10
  467. package/dist/tokens/queries.js.map +1 -1
  468. package/dist/tokens/stabeCoins/hooks.js +3 -5
  469. package/dist/tokens/stabeCoins/hooks.js.map +1 -1
  470. package/dist/tokens/utils/transferAmountsFromReceipt.js.map +1 -1
  471. package/dist/transactions/queries/ensureCallsStatus.d.ts +1 -0
  472. package/dist/transactions/queries/ensureCallsStatus.d.ts.map +1 -1
  473. package/dist/transactions/queries/ensureCallsStatus.js +7 -5
  474. package/dist/transactions/queries/ensureCallsStatus.js.map +1 -1
  475. package/dist/transactions/state/hooks/useActivateEffects.js.map +1 -1
  476. package/dist/transactions/state/hooks/useTransactions.js.map +1 -1
  477. package/dist/transactions/types.d.ts +21 -1
  478. package/dist/transactions/types.d.ts.map +1 -1
  479. package/package.json +2 -2
  480. package/dist/components/widget/TokenInput/EmptyInput.js +0 -58
  481. package/dist/components/widget/TokenInput/EmptyInput.js.map +0 -1
  482. package/dist/external/.pnpm/react-compiler-runtime@19.1.0-rc.2_react@19.1.1/external/react-compiler-runtime/dist/index.js.map +0 -1
  483. /package/dist/external/.pnpm/{react-compiler-runtime@19.1.0-rc.2_react@19.1.1 → react-compiler-runtime@1.0.0_react@19.1.1}/external/react-compiler-runtime/dist/index.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"transferAmountsFromReceipt.js","sources":["../../../src/tokens/utils/transferAmountsFromReceipt.ts"],"sourcesContent":["import {\n type Address,\n type TransactionReceipt,\n type Client,\n decodeEventLog,\n erc20Abi,\n type Hex,\n type Hash,\n} from \"viem\";\nimport {\n getBalance,\n getGasPrice,\n getTransaction,\n getTransactionReceipt,\n} from \"viem/actions\";\nimport type { Token } from \"../state/types\";\nimport { ETH_ADDRESS_LOWERCASE } from \"../constants\";\nimport { gatherObjectsByProp } from \"@/lib/utils\";\nimport { useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { useClient } from \"wagmi\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useCallback } from \"react\";\nimport { assert, type MarkOptional } from \"ts-essentials\";\nimport { isETH } from \"./eth\";\nimport { createLogger } from \"@/lib/utils/logger\";\nimport { isFilledArray } from \"@/lib/utils/tuple\";\n\ntype MinRequiredReceiptLog = {\n address: Address;\n topics: Hex[];\n data: Hex;\n};\n\ntype ERC20TransferAmountsFromReceiptInput = {\n receipt: {\n logs: MinRequiredReceiptLog[];\n };\n tokens: Pick<Token, \"address\">[];\n senderAddress: Address;\n receiverAddress: Address;\n};\n\ntype TransferAmountsFromReceiptInput = ERC20TransferAmountsFromReceiptInput & {\n receipt: MarkOptional<\n Pick<\n TransactionReceipt,\n | \"blockNumber\"\n | \"gasUsed\"\n | \"effectiveGasPrice\"\n | \"from\"\n | \"transactionHash\"\n >,\n \"effectiveGasPrice\" | \"from\"\n >;\n};\n\nexport type TokenTransfers = {\n token: Address;\n sentAmount: bigint;\n receivedAmount: bigint;\n};\n\ntype TransferAmountsFromReceiptResult = Record<Address, TokenTransfers>;\n\n// ERC20 Transfer event signature: Transfer(address,address,uint256)\nconst TRANSFER_EVENT_SIGNATURE =\n \"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef\";\n\n// give TransactionReceipt and tokens finds all transfers of Tokens to receiverAddress and returns amounts\nexport function getERC20TransferAmountsFromReceipt({\n receipt,\n tokens,\n senderAddress,\n receiverAddress,\n}: ERC20TransferAmountsFromReceiptInput): TransferAmountsFromReceiptResult {\n // Initialize result mapping with one entry per token\n const result: Record<Address, TokenTransfers> = gatherObjectsByProp(\n tokens,\n (token) => token.address.toLowerCase(),\n (token) => ({\n token: token.address as Address,\n sentAmount: 0n,\n receivedAmount: 0n,\n })\n );\n\n // Create a map for quick token lookup\n const tokensSet = new Set(tokens.map((token) => token.address.toLowerCase()));\n\n const fromAddressLowercase = senderAddress.toLowerCase();\n const toAddressLowercase = receiverAddress.toLowerCase();\n\n // Parse all logs in the transaction receipt\n for (const log of receipt.logs) {\n const logAddressLowercase = log.address.toLowerCase() as Address;\n // Check if this is a Transfer event from one of our tokens\n if (\n isFilledArray(log.topics) &&\n log.topics[0] === TRANSFER_EVENT_SIGNATURE &&\n tokensSet.has(logAddressLowercase)\n ) {\n try {\n // Parse the Transfer event parameters\n // topics[0] = event signature\n // topics[1] = from address (padded to 32 bytes)\n // topics[2] = to address (padded to 32 bytes)\n // data = value (uint256)\n\n const decoded = decodeEventLog({\n abi: erc20Abi,\n data: log.data,\n topics: log.topics,\n eventName: \"Transfer\",\n });\n\n const { from: fromAddress, to: toAddress, value } = decoded.args;\n\n const tokenTransfer = result[logAddressLowercase];\n if (!tokenTransfer) {\n continue;\n }\n\n // Check if the transfer is from sender to someone else\n if (fromAddress.toLowerCase() === fromAddressLowercase) {\n tokenTransfer.sentAmount += value;\n }\n // Check if the transfer is to receiver from someone else\n if (toAddress.toLowerCase() === toAddressLowercase) {\n tokenTransfer.receivedAmount += value;\n }\n } catch (_error) {\n // If parsing fails, skip this log\n continue;\n }\n }\n }\n\n return result;\n}\n\ntype NativeTokenTransferInput = {\n receipt: MarkOptional<\n Pick<\n TransactionReceipt,\n | \"blockNumber\"\n | \"gasUsed\"\n | \"effectiveGasPrice\"\n | \"from\"\n | \"transactionHash\"\n >,\n \"effectiveGasPrice\" | \"from\"\n >;\n senderAddress: Address;\n receiverAddress: Address;\n client: Client;\n};\n\n// when no gasPrice was fetched across several methods\nconst REASONABLE_GAS_PRICE = 2700000000n;\n\nexport async function getNativeTokenTransfer({\n receipt,\n senderAddress,\n receiverAddress,\n client,\n}: NativeTokenTransferInput): Promise<TokenTransfers> {\n const beforeBlockNumber = receipt.blockNumber - 1n;\n const afterBlockNumber = receipt.blockNumber;\n\n /*\n if the transaction was the only one transaction involving the sender and receiver\n in the block it was mined, and if the transaction was a SwapTransaction only,\n not some bulk transaction or a flashbot transaction, then we can consider\n that the ETH balances difference matches the ETH Swap amount.\n */\n\n const senderPromises = [\n // Get balances before the transaction\n getBalance(client, {\n address: senderAddress,\n blockNumber: beforeBlockNumber,\n }),\n // Get balances after the transaction\n getBalance(client, {\n address: senderAddress,\n blockNumber: afterBlockNumber,\n }),\n ] as const;\n\n const senderIsReceiver =\n senderAddress.toLowerCase() === receiverAddress.toLowerCase();\n\n const receiverPromises = senderIsReceiver\n ? // reuse sender promises if sender is receiver\n senderPromises\n : ([\n // Get balances before the transaction\n getBalance(client, {\n address: receiverAddress,\n blockNumber: beforeBlockNumber,\n }),\n // Get balances after the transaction\n getBalance(client, {\n address: receiverAddress,\n blockNumber: afterBlockNumber,\n }),\n ] as const);\n\n const [\n senderBalanceBefore,\n senderBalanceAfter,\n receiverBalanceBefore,\n receiverBalanceAfter,\n ] = await Promise.all([...senderPromises, ...receiverPromises]);\n\n // Calculate the differences\n let sentAmount = senderBalanceBefore - senderBalanceAfter; // difference in balances = sent ETH + paid gas\n let receivedAmount = receiverBalanceAfter - receiverBalanceBefore;\n\n let gasPrice = receipt.effectiveGasPrice;\n let from = receipt.from;\n if (!gasPrice) {\n // SendCalls receipt does not include some fields,\n // try to fetch them from the transaction hash\n const minTxData = await getMinTxDataFromHash({\n hash: receipt.transactionHash,\n client,\n });\n gasPrice = minTxData.gasPrice;\n from = minTxData.from;\n }\n\n if (!gasPrice) {\n gasPrice = REASONABLE_GAS_PRICE;\n }\n\n if (!from) {\n from = client.account?.address || senderAddress;\n }\n\n const gasCost = receipt.gasUsed * gasPrice;\n\n // if sender is the transaction sender (it may not be if a Relayer was involved)\n if (senderAddress.toLowerCase() === from.toLowerCase()) {\n // Adjust sentAmount for gas:\n // Subtract gas cost from sentAmount to get actual ETH sent (excluding gas fees)\n sentAmount -= gasCost;\n }\n\n // if sender is receiver, then need to adjust receivedAmount for gas\n if (senderAddress.toLowerCase() === receiverAddress.toLowerCase()) {\n receivedAmount += gasCost; // gas was paid out of the receivedAmount, so make this the amount before gas paid\n }\n\n return {\n token: ETH_ADDRESS_LOWERCASE, // Native token address\n sentAmount: sentAmount > 0n ? sentAmount : 0n,\n receivedAmount: receivedAmount > 0n ? receivedAmount : 0n,\n };\n}\n\ntype TokenTransfersFromReceiptInput = TransferAmountsFromReceiptInput & {\n client: Client;\n};\n\nexport async function getTokenTransfersFromReceipt({\n receipt,\n tokens,\n senderAddress,\n receiverAddress,\n client,\n}: TokenTransfersFromReceiptInput): Promise<TransferAmountsFromReceiptResult> {\n const tokensWithoutNative = tokens.filter((token) => !isETH(token));\n\n const tokenTransfers = getERC20TransferAmountsFromReceipt({\n receipt,\n tokens: tokensWithoutNative,\n senderAddress,\n receiverAddress,\n });\n\n // there was a native Token in the list\n if (tokensWithoutNative.length < tokens.length) {\n const nativeTokenTransfer = await getNativeTokenTransfer({\n receipt,\n senderAddress,\n receiverAddress,\n client,\n });\n\n tokenTransfers[ETH_ADDRESS_LOWERCASE] = nativeTokenTransfer;\n }\n\n return tokenTransfers;\n}\n\ntype TokenTransfersFromReceiptWithLimitsInput = {\n detectedTokenTransfers: Record<Address, TokenTransfers>;\n expectedTokenTransfers: Record<Address, TokenTransfers>;\n};\n\n// Helper function to validate an amount against expected value with tolerance\nfunction validateAmount({\n calculatedAmount,\n expectedAmount,\n tolerancePercent = 15, // max slippage %\n}: {\n calculatedAmount: bigint;\n expectedAmount: bigint;\n tolerancePercent?: number;\n}): bigint {\n if (expectedAmount === 0n) {\n // If expected is 0, use expected\n return expectedAmount;\n }\n\n // Check if calculated is within tolerance of expected\n const tolerance = (expectedAmount * BigInt(tolerancePercent)) / 100n;\n const minExpected = expectedAmount - tolerance;\n const maxExpected = expectedAmount + tolerance;\n\n if (calculatedAmount >= minExpected && calculatedAmount <= maxExpected) {\n return calculatedAmount;\n } else {\n return expectedAmount;\n }\n}\n\nconst logger1 = createLogger(\"Swap:amounts:Expected\");\nconst logger2 = createLogger(\"Swap:amounts:Detected\");\n\nexport function getTokenTransfersFromReceiptWithLimits({\n detectedTokenTransfers,\n expectedTokenTransfers,\n}: TokenTransfersFromReceiptWithLimitsInput): TransferAmountsFromReceiptResult {\n // Validate and adjust amounts based on expected values\n const validatedTokenTransfers: Record<Address, TokenTransfers> = {};\n\n logger1.once.log(\"Expected token transfers\", expectedTokenTransfers);\n logger2.once.log(\"Detected token transfers\", detectedTokenTransfers);\n\n for (const [tokenAddress, calculatedTransfer] of Object.entries(\n detectedTokenTransfers\n )) {\n const expectedTransfer = expectedTokenTransfers[tokenAddress as Address];\n\n if (!expectedTransfer) {\n // No expected value, use calculated\n validatedTokenTransfers[tokenAddress as Address] = calculatedTransfer;\n continue;\n }\n\n const validatedTransfer: TokenTransfers = {\n token: calculatedTransfer.token,\n sentAmount: validateAmount({\n calculatedAmount: calculatedTransfer.sentAmount,\n expectedAmount: expectedTransfer.sentAmount,\n }),\n receivedAmount: validateAmount({\n calculatedAmount: calculatedTransfer.receivedAmount,\n expectedAmount: expectedTransfer.receivedAmount,\n }),\n };\n\n validatedTokenTransfers[tokenAddress as Address] = validatedTransfer;\n }\n\n return validatedTokenTransfers;\n}\n\ntype UseTokenTransfersFromReceiptInput = TransferAmountsFromReceiptInput & {\n receipt: Pick<TransactionReceipt, \"transactionHash\">;\n chainId: SupportedChainId;\n expectedTokenTransfers: Record<Address, TokenTransfers>;\n};\n\n/**\n * @param expectedTokenTransfers - expected token transfers, if provided, will be used to validate the detected token transfers\n * @param chainId - chain id\n * @param receipt - transaction receipt\n * @param tokens - tokens\n * @param senderAddress - sender address\n * @param receiverAddress - receiver address\n * @returns - token transfers from receipt validated against expected token transfers\n * @note - ETH transfers are a best guess, and may not be accurate (falls back to expected token transfers)\n */\nexport function useTokenTransfersFromReceipt({\n receipt,\n tokens,\n senderAddress,\n receiverAddress,\n expectedTokenTransfers,\n chainId,\n}: MarkOptional<\n UseTokenTransfersFromReceiptInput,\n \"receipt\" | \"senderAddress\" | \"receiverAddress\" | \"expectedTokenTransfers\"\n>): UseQueryResult<TransferAmountsFromReceiptResult, Error> {\n const client = useClient({ chainId });\n\n const select = useCallback(\n (data: TransferAmountsFromReceiptResult) => {\n if (!expectedTokenTransfers) {\n return data;\n }\n\n return getTokenTransfersFromReceiptWithLimits({\n detectedTokenTransfers: data,\n expectedTokenTransfers,\n });\n },\n [expectedTokenTransfers]\n );\n\n return useQuery({\n queryKey: [\n \"token-transfers-from-receipt\",\n receipt?.transactionHash,\n receipt?.logs.length,\n senderAddress?.toLowerCase(),\n receiverAddress?.toLowerCase(),\n ],\n queryFn: async () => {\n assert(receipt, \"Receipt is required\");\n assert(senderAddress, \"Sender address is required\");\n assert(receiverAddress, \"Receiver address is required\");\n\n return getTokenTransfersFromReceipt({\n receipt,\n tokens,\n senderAddress,\n receiverAddress,\n client,\n });\n },\n select,\n enabled:\n !!receipt &&\n receipt.logs.length > 0 &&\n tokens.length > 0 &&\n !!senderAddress &&\n !!receiverAddress,\n });\n}\n\ntype MinTxData = {\n from?: Address;\n gasPrice?: bigint;\n};\n\ntype GetMinTxDataFromHashInput = {\n hash: Hash;\n client: Client;\n};\n\nasync function getMinTxDataFromHash({\n hash,\n client,\n}: GetMinTxDataFromHashInput): Promise<MinTxData> {\n let gasPrice: bigint | undefined = undefined;\n let from: Address | undefined;\n try {\n // likely this will return the correct receipt for the hash,\n // but in case of different RPC providers between the Wallet (which performed sendCalls),\n // and the RPC of the Client, the receipt may not be found\n const receipt = await getTransactionReceipt(client, {\n hash,\n });\n from = receipt.from;\n gasPrice = receipt.effectiveGasPrice;\n } catch {\n // can be TransactionReceiptNotFoundError\n }\n\n if (!gasPrice) {\n try {\n // very unlikely that even the transaction will not be found, but still possible\n const tx = await getTransaction(client, {\n hash,\n });\n from = tx.from;\n gasPrice = tx.gasPrice;\n } catch {\n // can be TransactionNotFoundError\n }\n }\n\n if (!gasPrice) {\n try {\n // just in case this may error\n gasPrice = await getGasPrice(client);\n } catch {\n // can be RequestError\n }\n }\n\n if (!from) {\n from = client.account?.address;\n }\n\n return {\n from,\n gasPrice,\n };\n}\n"],"names":["TRANSFER_EVENT_SIGNATURE","getERC20TransferAmountsFromReceipt","receipt","tokens","senderAddress","receiverAddress","result","gatherObjectsByProp","token","address","toLowerCase","sentAmount","receivedAmount","tokensSet","Set","map","fromAddressLowercase","toAddressLowercase","log","logs","logAddressLowercase","isFilledArray","topics","has","decoded","decodeEventLog","abi","erc20Abi","data","eventName","from","fromAddress","to","toAddress","value","args","tokenTransfer","_error","REASONABLE_GAS_PRICE","getNativeTokenTransfer","client","beforeBlockNumber","blockNumber","afterBlockNumber","senderPromises","getBalance","senderIsReceiver","receiverPromises","senderBalanceBefore","senderBalanceAfter","receiverBalanceBefore","receiverBalanceAfter","Promise","all","gasPrice","effectiveGasPrice","minTxData","getMinTxDataFromHash","hash","transactionHash","account","gasCost","gasUsed","ETH_ADDRESS_LOWERCASE","getTokenTransfersFromReceipt","tokensWithoutNative","filter","isETH","tokenTransfers","length","nativeTokenTransfer","validateAmount","calculatedAmount","expectedAmount","tolerancePercent","tolerance","BigInt","minExpected","maxExpected","logger1","createLogger","logger2","getTokenTransfersFromReceiptWithLimits","detectedTokenTransfers","expectedTokenTransfers","validatedTokenTransfers","once","tokenAddress","calculatedTransfer","Object","entries","expectedTransfer","validatedTransfer","useTokenTransfersFromReceipt","t0","$","_c","chainId","t1","useClient","t2","select","t3","t4","t5","t6","t7","t8","assert","t9","t10","queryKey","queryFn","enabled","useQuery","undefined","getTransactionReceipt","tx","getTransaction","getGasPrice"],"mappings":"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"}
1
+ {"version":3,"file":"transferAmountsFromReceipt.js","sources":["../../../src/tokens/utils/transferAmountsFromReceipt.ts"],"sourcesContent":["import {\n type Address,\n type TransactionReceipt,\n type Client,\n decodeEventLog,\n erc20Abi,\n type Hex,\n type Hash,\n} from \"viem\";\nimport {\n getBalance,\n getGasPrice,\n getTransaction,\n getTransactionReceipt,\n} from \"viem/actions\";\nimport type { Token } from \"../state/types\";\nimport { ETH_ADDRESS_LOWERCASE } from \"../constants\";\nimport { gatherObjectsByProp } from \"@/lib/utils\";\nimport { useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { useClient } from \"wagmi\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useCallback } from \"react\";\nimport { assert, type MarkOptional } from \"ts-essentials\";\nimport { isETH } from \"./eth\";\nimport { createLogger } from \"@/lib/utils/logger\";\nimport { isFilledArray } from \"@/lib/utils/tuple\";\n\ntype MinRequiredReceiptLog = {\n address: Address;\n topics: Hex[];\n data: Hex;\n};\n\ntype ERC20TransferAmountsFromReceiptInput = {\n receipt: {\n logs: MinRequiredReceiptLog[];\n };\n tokens: Pick<Token, \"address\">[];\n senderAddress: Address;\n receiverAddress: Address;\n};\n\ntype TransferAmountsFromReceiptInput = ERC20TransferAmountsFromReceiptInput & {\n receipt: MarkOptional<\n Pick<\n TransactionReceipt,\n | \"blockNumber\"\n | \"gasUsed\"\n | \"effectiveGasPrice\"\n | \"from\"\n | \"transactionHash\"\n >,\n \"effectiveGasPrice\" | \"from\"\n >;\n};\n\nexport type TokenTransfers = {\n token: Address;\n sentAmount: bigint;\n receivedAmount: bigint;\n};\n\ntype TransferAmountsFromReceiptResult = Record<Address, TokenTransfers>;\n\n// ERC20 Transfer event signature: Transfer(address,address,uint256)\nconst TRANSFER_EVENT_SIGNATURE =\n \"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef\";\n\n// give TransactionReceipt and tokens finds all transfers of Tokens to receiverAddress and returns amounts\nexport function getERC20TransferAmountsFromReceipt({\n receipt,\n tokens,\n senderAddress,\n receiverAddress,\n}: ERC20TransferAmountsFromReceiptInput): TransferAmountsFromReceiptResult {\n // Initialize result mapping with one entry per token\n const result: Record<Address, TokenTransfers> = gatherObjectsByProp(\n tokens,\n (token) => token.address.toLowerCase(),\n (token) => ({\n token: token.address as Address,\n sentAmount: 0n,\n receivedAmount: 0n,\n })\n );\n\n // Create a map for quick token lookup\n const tokensSet = new Set(tokens.map((token) => token.address.toLowerCase()));\n\n const fromAddressLowercase = senderAddress.toLowerCase();\n const toAddressLowercase = receiverAddress.toLowerCase();\n\n // Parse all logs in the transaction receipt\n for (const log of receipt.logs) {\n const logAddressLowercase = log.address.toLowerCase() as Address;\n // Check if this is a Transfer event from one of our tokens\n if (\n isFilledArray(log.topics) &&\n log.topics[0] === TRANSFER_EVENT_SIGNATURE &&\n tokensSet.has(logAddressLowercase)\n ) {\n try {\n // Parse the Transfer event parameters\n // topics[0] = event signature\n // topics[1] = from address (padded to 32 bytes)\n // topics[2] = to address (padded to 32 bytes)\n // data = value (uint256)\n\n const decoded = decodeEventLog({\n abi: erc20Abi,\n data: log.data,\n topics: log.topics,\n eventName: \"Transfer\",\n });\n\n const { from: fromAddress, to: toAddress, value } = decoded.args;\n\n const tokenTransfer = result[logAddressLowercase];\n if (!tokenTransfer) {\n continue;\n }\n\n // Check if the transfer is from sender to someone else\n if (fromAddress.toLowerCase() === fromAddressLowercase) {\n tokenTransfer.sentAmount += value;\n }\n // Check if the transfer is to receiver from someone else\n if (toAddress.toLowerCase() === toAddressLowercase) {\n tokenTransfer.receivedAmount += value;\n }\n } catch (_error) {\n // If parsing fails, skip this log\n continue;\n }\n }\n }\n\n return result;\n}\n\ntype NativeTokenTransferInput = {\n receipt: MarkOptional<\n Pick<\n TransactionReceipt,\n | \"blockNumber\"\n | \"gasUsed\"\n | \"effectiveGasPrice\"\n | \"from\"\n | \"transactionHash\"\n >,\n \"effectiveGasPrice\" | \"from\"\n >;\n senderAddress: Address;\n receiverAddress: Address;\n client: Client;\n};\n\n// when no gasPrice was fetched across several methods\nconst REASONABLE_GAS_PRICE = 2700000000n;\n\nexport async function getNativeTokenTransfer({\n receipt,\n senderAddress,\n receiverAddress,\n client,\n}: NativeTokenTransferInput): Promise<TokenTransfers> {\n const beforeBlockNumber = receipt.blockNumber - 1n;\n const afterBlockNumber = receipt.blockNumber;\n\n /*\n if the transaction was the only one transaction involving the sender and receiver\n in the block it was mined, and if the transaction was a SwapTransaction only,\n not some bulk transaction or a flashbot transaction, then we can consider\n that the ETH balances difference matches the ETH Swap amount.\n */\n\n const senderPromises = [\n // Get balances before the transaction\n getBalance(client, {\n address: senderAddress,\n blockNumber: beforeBlockNumber,\n }),\n // Get balances after the transaction\n getBalance(client, {\n address: senderAddress,\n blockNumber: afterBlockNumber,\n }),\n ] as const;\n\n const senderIsReceiver =\n senderAddress.toLowerCase() === receiverAddress.toLowerCase();\n\n const receiverPromises = senderIsReceiver\n ? // reuse sender promises if sender is receiver\n senderPromises\n : ([\n // Get balances before the transaction\n getBalance(client, {\n address: receiverAddress,\n blockNumber: beforeBlockNumber,\n }),\n // Get balances after the transaction\n getBalance(client, {\n address: receiverAddress,\n blockNumber: afterBlockNumber,\n }),\n ] as const);\n\n const [\n senderBalanceBefore,\n senderBalanceAfter,\n receiverBalanceBefore,\n receiverBalanceAfter,\n ] = await Promise.all([...senderPromises, ...receiverPromises]);\n\n // Calculate the differences\n let sentAmount = senderBalanceBefore - senderBalanceAfter; // difference in balances = sent ETH + paid gas\n let receivedAmount = receiverBalanceAfter - receiverBalanceBefore;\n\n let gasPrice = receipt.effectiveGasPrice;\n let from = receipt.from;\n if (!gasPrice) {\n // SendCalls receipt does not include some fields,\n // try to fetch them from the transaction hash\n const minTxData = await getMinTxDataFromHash({\n hash: receipt.transactionHash,\n client,\n });\n gasPrice = minTxData.gasPrice;\n from = minTxData.from;\n }\n\n if (!gasPrice) {\n gasPrice = REASONABLE_GAS_PRICE;\n }\n\n if (!from) {\n from = client.account?.address || senderAddress;\n }\n\n const gasCost = receipt.gasUsed * gasPrice;\n\n // if sender is the transaction sender (it may not be if a Relayer was involved)\n if (senderAddress.toLowerCase() === from.toLowerCase()) {\n // Adjust sentAmount for gas:\n // Subtract gas cost from sentAmount to get actual ETH sent (excluding gas fees)\n sentAmount -= gasCost;\n }\n\n // if sender is receiver, then need to adjust receivedAmount for gas\n if (senderAddress.toLowerCase() === receiverAddress.toLowerCase()) {\n receivedAmount += gasCost; // gas was paid out of the receivedAmount, so make this the amount before gas paid\n }\n\n return {\n token: ETH_ADDRESS_LOWERCASE, // Native token address\n sentAmount: sentAmount > 0n ? sentAmount : 0n,\n receivedAmount: receivedAmount > 0n ? receivedAmount : 0n,\n };\n}\n\ntype TokenTransfersFromReceiptInput = TransferAmountsFromReceiptInput & {\n client: Client;\n};\n\nexport async function getTokenTransfersFromReceipt({\n receipt,\n tokens,\n senderAddress,\n receiverAddress,\n client,\n}: TokenTransfersFromReceiptInput): Promise<TransferAmountsFromReceiptResult> {\n const tokensWithoutNative = tokens.filter((token) => !isETH(token));\n\n const tokenTransfers = getERC20TransferAmountsFromReceipt({\n receipt,\n tokens: tokensWithoutNative,\n senderAddress,\n receiverAddress,\n });\n\n // there was a native Token in the list\n if (tokensWithoutNative.length < tokens.length) {\n const nativeTokenTransfer = await getNativeTokenTransfer({\n receipt,\n senderAddress,\n receiverAddress,\n client,\n });\n\n tokenTransfers[ETH_ADDRESS_LOWERCASE] = nativeTokenTransfer;\n }\n\n return tokenTransfers;\n}\n\ntype TokenTransfersFromReceiptWithLimitsInput = {\n detectedTokenTransfers: Record<Address, TokenTransfers>;\n expectedTokenTransfers: Record<Address, TokenTransfers>;\n};\n\n// Helper function to validate an amount against expected value with tolerance\nfunction validateAmount({\n calculatedAmount,\n expectedAmount,\n tolerancePercent = 15, // max slippage %\n}: {\n calculatedAmount: bigint;\n expectedAmount: bigint;\n tolerancePercent?: number;\n}): bigint {\n if (expectedAmount === 0n) {\n // If expected is 0, use expected\n return expectedAmount;\n }\n\n // Check if calculated is within tolerance of expected\n const tolerance = (expectedAmount * BigInt(tolerancePercent)) / 100n;\n const minExpected = expectedAmount - tolerance;\n const maxExpected = expectedAmount + tolerance;\n\n if (calculatedAmount >= minExpected && calculatedAmount <= maxExpected) {\n return calculatedAmount;\n } else {\n return expectedAmount;\n }\n}\n\nconst logger1 = createLogger(\"Swap:amounts:Expected\");\nconst logger2 = createLogger(\"Swap:amounts:Detected\");\n\nexport function getTokenTransfersFromReceiptWithLimits({\n detectedTokenTransfers,\n expectedTokenTransfers,\n}: TokenTransfersFromReceiptWithLimitsInput): TransferAmountsFromReceiptResult {\n // Validate and adjust amounts based on expected values\n const validatedTokenTransfers: Record<Address, TokenTransfers> = {};\n\n logger1.once.log(\"Expected token transfers\", expectedTokenTransfers);\n logger2.once.log(\"Detected token transfers\", detectedTokenTransfers);\n\n for (const [tokenAddress, calculatedTransfer] of Object.entries(\n detectedTokenTransfers\n )) {\n const expectedTransfer = expectedTokenTransfers[tokenAddress as Address];\n\n if (!expectedTransfer) {\n // No expected value, use calculated\n validatedTokenTransfers[tokenAddress as Address] = calculatedTransfer;\n continue;\n }\n\n const validatedTransfer: TokenTransfers = {\n token: calculatedTransfer.token,\n sentAmount: validateAmount({\n calculatedAmount: calculatedTransfer.sentAmount,\n expectedAmount: expectedTransfer.sentAmount,\n }),\n receivedAmount: validateAmount({\n calculatedAmount: calculatedTransfer.receivedAmount,\n expectedAmount: expectedTransfer.receivedAmount,\n }),\n };\n\n validatedTokenTransfers[tokenAddress as Address] = validatedTransfer;\n }\n\n return validatedTokenTransfers;\n}\n\ntype UseTokenTransfersFromReceiptInput = TransferAmountsFromReceiptInput & {\n receipt: Pick<TransactionReceipt, \"transactionHash\">;\n chainId: SupportedChainId;\n expectedTokenTransfers: Record<Address, TokenTransfers>;\n};\n\n/**\n * @param expectedTokenTransfers - expected token transfers, if provided, will be used to validate the detected token transfers\n * @param chainId - chain id\n * @param receipt - transaction receipt\n * @param tokens - tokens\n * @param senderAddress - sender address\n * @param receiverAddress - receiver address\n * @returns - token transfers from receipt validated against expected token transfers\n * @note - ETH transfers are a best guess, and may not be accurate (falls back to expected token transfers)\n */\nexport function useTokenTransfersFromReceipt({\n receipt,\n tokens,\n senderAddress,\n receiverAddress,\n expectedTokenTransfers,\n chainId,\n}: MarkOptional<\n UseTokenTransfersFromReceiptInput,\n \"receipt\" | \"senderAddress\" | \"receiverAddress\" | \"expectedTokenTransfers\"\n>): UseQueryResult<TransferAmountsFromReceiptResult, Error> {\n const client = useClient({ chainId });\n\n const select = useCallback(\n (data: TransferAmountsFromReceiptResult) => {\n if (!expectedTokenTransfers) {\n return data;\n }\n\n return getTokenTransfersFromReceiptWithLimits({\n detectedTokenTransfers: data,\n expectedTokenTransfers,\n });\n },\n [expectedTokenTransfers]\n );\n\n return useQuery({\n queryKey: [\n \"token-transfers-from-receipt\",\n receipt?.transactionHash,\n receipt?.logs.length,\n senderAddress?.toLowerCase(),\n receiverAddress?.toLowerCase(),\n ],\n queryFn: async () => {\n assert(receipt, \"Receipt is required\");\n assert(senderAddress, \"Sender address is required\");\n assert(receiverAddress, \"Receiver address is required\");\n\n return getTokenTransfersFromReceipt({\n receipt,\n tokens,\n senderAddress,\n receiverAddress,\n client,\n });\n },\n select,\n enabled:\n !!receipt &&\n receipt.logs.length > 0 &&\n tokens.length > 0 &&\n !!senderAddress &&\n !!receiverAddress,\n });\n}\n\ntype MinTxData = {\n from?: Address;\n gasPrice?: bigint;\n};\n\ntype GetMinTxDataFromHashInput = {\n hash: Hash;\n client: Client;\n};\n\nasync function getMinTxDataFromHash({\n hash,\n client,\n}: GetMinTxDataFromHashInput): Promise<MinTxData> {\n let gasPrice: bigint | undefined = undefined;\n let from: Address | undefined;\n try {\n // likely this will return the correct receipt for the hash,\n // but in case of different RPC providers between the Wallet (which performed sendCalls),\n // and the RPC of the Client, the receipt may not be found\n const receipt = await getTransactionReceipt(client, {\n hash,\n });\n from = receipt.from;\n gasPrice = receipt.effectiveGasPrice;\n } catch {\n // can be TransactionReceiptNotFoundError\n }\n\n if (!gasPrice) {\n try {\n // very unlikely that even the transaction will not be found, but still possible\n const tx = await getTransaction(client, {\n hash,\n });\n from = tx.from;\n gasPrice = tx.gasPrice;\n } catch {\n // can be TransactionNotFoundError\n }\n }\n\n if (!gasPrice) {\n try {\n // just in case this may error\n gasPrice = await getGasPrice(client);\n } catch {\n // can be RequestError\n }\n }\n\n if (!from) {\n from = client.account?.address;\n }\n\n return {\n from,\n gasPrice,\n };\n}\n"],"names":["TRANSFER_EVENT_SIGNATURE","getERC20TransferAmountsFromReceipt","receipt","tokens","senderAddress","receiverAddress","result","gatherObjectsByProp","token","address","toLowerCase","sentAmount","receivedAmount","tokensSet","Set","map","fromAddressLowercase","toAddressLowercase","log","logs","logAddressLowercase","isFilledArray","topics","has","decoded","decodeEventLog","abi","erc20Abi","data","eventName","from","fromAddress","to","toAddress","value","args","tokenTransfer","_error","REASONABLE_GAS_PRICE","getNativeTokenTransfer","client","beforeBlockNumber","blockNumber","afterBlockNumber","senderPromises","getBalance","senderIsReceiver","receiverPromises","senderBalanceBefore","senderBalanceAfter","receiverBalanceBefore","receiverBalanceAfter","Promise","all","gasPrice","effectiveGasPrice","minTxData","getMinTxDataFromHash","hash","transactionHash","account","gasCost","gasUsed","ETH_ADDRESS_LOWERCASE","getTokenTransfersFromReceipt","tokensWithoutNative","filter","isETH","tokenTransfers","length","nativeTokenTransfer","validateAmount","calculatedAmount","expectedAmount","tolerancePercent","tolerance","BigInt","minExpected","maxExpected","logger1","createLogger","logger2","getTokenTransfersFromReceiptWithLimits","detectedTokenTransfers","expectedTokenTransfers","validatedTokenTransfers","once","tokenAddress","calculatedTransfer","Object","entries","expectedTransfer","validatedTransfer","useTokenTransfersFromReceipt","t0","$","_c","chainId","t1","useClient","t2","select","t3","t4","t5","t6","t7","t8","assert","t9","t10","queryKey","queryFn","enabled","useQuery","undefined","getTransactionReceipt","tx","getTransaction","getGasPrice"],"mappings":"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"}
@@ -7,6 +7,7 @@ export type EnsureCallsStatusFn = (options: {
7
7
  type EnsureCallsStatusFactory = (params?: {
8
8
  queryClient?: QueryClient;
9
9
  wagmiConfig?: Config;
10
+ isSafe?: boolean;
10
11
  }) => EnsureCallsStatusFn;
11
12
  export declare const ensureCallsStatusFactory: EnsureCallsStatusFactory;
12
13
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"ensureCallsStatus.d.ts","sourceRoot":"","sources":["../../../src/transactions/queries/ensureCallsStatus.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAsB,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAE9D,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,EAAE;IAC1C,EAAE,EAAE,MAAM,CAAC;CACZ,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC;AAEtC,KAAK,wBAAwB,GAAG,CAAC,MAAM,CAAC,EAAE;IACxC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,KAAK,mBAAmB,CAAC;AAE1B,eAAO,MAAM,wBAAwB,EAAE,wBAmBpC,CAAC"}
1
+ {"version":3,"file":"ensureCallsStatus.d.ts","sourceRoot":"","sources":["../../../src/transactions/queries/ensureCallsStatus.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAsB,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAE9D,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,EAAE;IAC1C,EAAE,EAAE,MAAM,CAAC;CACZ,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC;AAEtC,KAAK,wBAAwB,GAAG,CAAC,MAAM,CAAC,EAAE;IACxC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,KAAK,mBAAmB,CAAC;AAE1B,eAAO,MAAM,wBAAwB,EAAE,wBAwBpC,CAAC"}
@@ -1,4 +1,3 @@
1
- import { connectedSafe } from '../../hooks/connectors/useIsConnectedSafe.js';
2
1
  import { SAFE_CALLS_WAIT_TIMEOUT } from '../../lib/constants/index.js';
3
2
  import { queryClient } from '../../lib/queryClient.js';
4
3
  import { wagmiConfig } from '../../lib/web3/wagmi/config.js';
@@ -7,21 +6,24 @@ import { waitForCallsStatusQueryKey } from 'wagmi/query';
7
6
 
8
7
  const ensureCallsStatusFactory = ({
9
8
  queryClient: queryClient$1 = queryClient,
10
- wagmiConfig: wagmiConfig$1 = wagmiConfig
9
+ wagmiConfig: wagmiConfig$1 = wagmiConfig,
10
+ isSafe = false
11
11
  } = {}) => async ({
12
12
  id
13
13
  }) => {
14
+ const timeout = isSafe ? SAFE_CALLS_WAIT_TIMEOUT : void 0;
14
15
  const queryKey = waitForCallsStatusQueryKey({
15
- id
16
+ id,
17
+ timeout
18
+ // important to include timeout into queryKey to match useAwaitCalls queryKey
16
19
  });
17
20
  const status = await queryClient$1.ensureQueryData({
18
21
  queryKey,
19
22
  queryFn: async () => {
20
- const isSafe = await connectedSafe();
21
23
  return waitForCallsStatus(wagmiConfig$1, {
22
24
  id,
23
25
  throwOnFailure: true,
24
- timeout: isSafe ? SAFE_CALLS_WAIT_TIMEOUT : void 0
26
+ timeout
25
27
  });
26
28
  }
27
29
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ensureCallsStatus.js","sources":["../../../src/transactions/queries/ensureCallsStatus.ts"],"sourcesContent":["import { connectedSafe } from \"@/hooks/connectors/useIsConnectedSafe\";\nimport { SAFE_CALLS_WAIT_TIMEOUT } from \"@/lib/constants\";\nimport { queryClient as _queryClient } from \"@/lib/queryClient\";\nimport { wagmiConfig as _wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport type { QueryClient } from \"@tanstack/react-query\";\nimport { waitForCallsStatus, type Config } from \"@wagmi/core\";\n\nimport {\n waitForCallsStatusQueryKey,\n type WaitForCallsStatusData,\n} from \"wagmi/query\";\n\nexport type EnsureCallsStatusFn = (options: {\n id: string;\n}) => Promise<WaitForCallsStatusData>;\n\ntype EnsureCallsStatusFactory = (params?: {\n queryClient?: QueryClient;\n wagmiConfig?: Config;\n}) => EnsureCallsStatusFn;\n\nexport const ensureCallsStatusFactory: EnsureCallsStatusFactory =\n ({ queryClient = _queryClient, wagmiConfig = _wagmiConfig } = {}) =>\n async ({ id }) => {\n const queryKey = waitForCallsStatusQueryKey({\n id,\n });\n const status = await queryClient.ensureQueryData({\n queryKey,\n queryFn: async () => {\n const isSafe = await connectedSafe();\n return waitForCallsStatus(wagmiConfig, {\n id,\n throwOnFailure: true,\n timeout: isSafe ? SAFE_CALLS_WAIT_TIMEOUT : undefined,\n });\n },\n });\n\n return status;\n };\n"],"names":["ensureCallsStatusFactory","queryClient","_queryClient","wagmiConfig","_wagmiConfig","id","queryKey","waitForCallsStatusQueryKey","status","ensureQueryData","queryFn","isSafe","connectedSafe","waitForCallsStatus","throwOnFailure","timeout","SAFE_CALLS_WAIT_TIMEOUT","undefined"],"mappings":";;;;;;;AAqBO,MAAMA,2BACXA,CAAC;AAAA,eAAEC,aAAAA,GAAcC,WAAAA;AAAAA,eAAcC,aAAAA,GAAcC;AAAa,CAAA,GAAI,OAC9D,OAAO;AAAA,EAAEC;AAAG,CAAA,KAAM;AAChB,EAAA,MAAMC,WAAWC,0BAAAA,CAA2B;AAAA,IAC1CF;AAAAA,GACD,CAAA;AACD,EAAA,MAAMG,MAAAA,GAAS,MAAMP,aAAAA,CAAYQ,eAAAA,CAAgB;AAAA,IAC/CH,QAAAA;AAAAA,IACAI,SAAS,YAAY;AACnB,MAAA,MAAMC,MAAAA,GAAS,MAAMC,aAAAA,EAAc;AACnC,MAAA,OAAOC,mBAAmBV,aAAAA,EAAa;AAAA,QACrCE,EAAAA;AAAAA,QACAS,cAAAA,EAAgB,IAAA;AAAA,QAChBC,OAAAA,EAASJ,SAASK,uBAAAA,GAA0BC;AAAAA,OAC7C,CAAA;AAAA,IACH;AAAA,GACD,CAAA;AAED,EAAA,OAAOT,MAAAA;AACT;;;;"}
1
+ {"version":3,"file":"ensureCallsStatus.js","sources":["../../../src/transactions/queries/ensureCallsStatus.ts"],"sourcesContent":["import { SAFE_CALLS_WAIT_TIMEOUT } from \"@/lib/constants\";\nimport { queryClient as _queryClient } from \"@/lib/queryClient\";\nimport { wagmiConfig as _wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport type { QueryClient } from \"@tanstack/react-query\";\nimport { waitForCallsStatus, type Config } from \"@wagmi/core\";\n\nimport {\n waitForCallsStatusQueryKey,\n type WaitForCallsStatusData,\n} from \"wagmi/query\";\n\nexport type EnsureCallsStatusFn = (options: {\n id: string;\n}) => Promise<WaitForCallsStatusData>;\n\ntype EnsureCallsStatusFactory = (params?: {\n queryClient?: QueryClient;\n wagmiConfig?: Config;\n isSafe?: boolean;\n}) => EnsureCallsStatusFn;\n\nexport const ensureCallsStatusFactory: EnsureCallsStatusFactory =\n ({\n queryClient = _queryClient,\n wagmiConfig = _wagmiConfig,\n isSafe = false,\n } = {}) =>\n async ({ id }) => {\n const timeout = isSafe ? SAFE_CALLS_WAIT_TIMEOUT : undefined;\n const queryKey = waitForCallsStatusQueryKey({\n id,\n timeout, // important to include timeout into queryKey to match useAwaitCalls queryKey\n });\n const status = await queryClient.ensureQueryData({\n queryKey,\n queryFn: async () => {\n return waitForCallsStatus(wagmiConfig, {\n id,\n throwOnFailure: true,\n timeout,\n });\n },\n });\n\n return status;\n };\n"],"names":["ensureCallsStatusFactory","queryClient","_queryClient","wagmiConfig","_wagmiConfig","isSafe","id","timeout","SAFE_CALLS_WAIT_TIMEOUT","undefined","queryKey","waitForCallsStatusQueryKey","status","ensureQueryData","queryFn","waitForCallsStatus","throwOnFailure"],"mappings":";;;;;;AAqBO,MAAMA,2BACXA,CAAC;AAAA,eACCC,aAAAA,GAAcC,WAAAA;AAAAA,eACdC,aAAAA,GAAcC,WAAAA;AAAAA,EACdC,MAAAA,GAAS;AACX,CAAA,GAAI,OACJ,OAAO;AAAA,EAAEC;AAAG,CAAA,KAAM;AAChB,EAAA,MAAMC,OAAAA,GAAUF,SAASG,uBAAAA,GAA0BC,MAAAA;AACnD,EAAA,MAAMC,WAAWC,0BAAAA,CAA2B;AAAA,IAC1CL,EAAAA;AAAAA,IACAC;AAAAA;AAAAA,GACD,CAAA;AACD,EAAA,MAAMK,MAAAA,GAAS,MAAMX,aAAAA,CAAYY,eAAAA,CAAgB;AAAA,IAC/CH,QAAAA;AAAAA,IACAI,SAAS,YAAY;AACnB,MAAA,OAAOC,mBAAmBZ,aAAAA,EAAa;AAAA,QACrCG,EAAAA;AAAAA,QACAU,cAAAA,EAAgB,IAAA;AAAA,QAChBT;AAAAA,OACD,CAAA;AAAA,IACH;AAAA,GACD,CAAA;AAED,EAAA,OAAOK,MAAAA;AACT;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useActivateEffects.js","sources":["../../../../src/transactions/state/hooks/useActivateEffects.ts"],"sourcesContent":["import { useAtom } from \"jotai\";\nimport {\n finalizeBatchTxsEffect,\n finalizeStandoloneTxsEffect,\n} from \"@/transactions/state/effects/finalize\";\n\nexport function useActivateEffects() {\n // atomEffects must be rendered for subscriptions to activate\n useAtom(finalizeStandoloneTxsEffect);\n useAtom(finalizeBatchTxsEffect);\n}\n"],"names":["useActivateEffects","useAtom","finalizeStandoloneTxsEffect","finalizeBatchTxsEffect"],"mappings":";;;AAMO,SAAAA,kBAAAA,GAAA;AAELC,EAAAA,OAAAA,CAAAC,2BAAmC,CAAA;AACnCD,EAAAA,OAAAA,CAAAE,sBAA8B,CAAA;AAAC;;;;"}
1
+ {"version":3,"file":"useActivateEffects.js","sources":["../../../../src/transactions/state/hooks/useActivateEffects.ts"],"sourcesContent":["import { useAtom } from \"jotai\";\nimport {\n finalizeBatchTxsEffect,\n finalizeStandoloneTxsEffect,\n} from \"@/transactions/state/effects/finalize\";\n\nexport function useActivateEffects() {\n // atomEffects must be rendered for subscriptions to activate\n useAtom(finalizeStandoloneTxsEffect);\n useAtom(finalizeBatchTxsEffect);\n}\n"],"names":["useActivateEffects","useAtom","finalizeStandoloneTxsEffect","finalizeBatchTxsEffect"],"mappings":";;;AAMO,SAAAA,kBAAAA,GAAA;AAELC,EAAAA,OAAAA,CAAQC,2BAA2B,CAAA;AACnCD,EAAAA,OAAAA,CAAQE,sBAAsB,CAAA;AAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useTransactions.js","sources":["../../../../src/transactions/state/hooks/useTransactions.ts"],"sourcesContent":["import { useAtomValue } from \"jotai\";\nimport {\n userPendingTransactionsAtom,\n userSwapTransactionsAtom,\n} from \"../transactionsAtom\";\nimport { useAllEnabledChains } from \"@/core/state/enabledChainsAtom\";\n\nexport const useUserPendingTransactions = () =>\n useAtomValue(userPendingTransactionsAtom);\nexport const useUserSwapTransactions = () =>\n useAtomValue(userSwapTransactionsAtom);\n\nexport const useUserSwapTransactionsOnEnabledChains = () => {\n const enabledChains = useAllEnabledChains();\n const swapTransactions = useUserSwapTransactions();\n return swapTransactions.filter(({ chainId }) =>\n enabledChains.includes(chainId)\n );\n};\nexport const useUserPendingTransactionsOnEnabledChains = () => {\n const enabledChains = useAllEnabledChains();\n const pendingTransactions = useUserPendingTransactions();\n return pendingTransactions.filter(({ chainId }) =>\n enabledChains.includes(chainId)\n );\n};\n"],"names":["useUserPendingTransactions","useAtomValue","userPendingTransactionsAtom","useUserSwapTransactions","userSwapTransactionsAtom","useUserSwapTransactionsOnEnabledChains","$","_c","enabledChains","useAllEnabledChains","swapTransactions","t0","t1","t2","chainId","includes","filter","useUserPendingTransactionsOnEnabledChains","pendingTransactions"],"mappings":";;;;;AAOO,MAAMA,6BAA6BA,MAAA;AAAA,EAAA,OACxCC,aAAAC,2BAAwC,CAAA;AAAC;AACpC,MAAMC,0BAA0BA,MAAA;AAAA,EAAA,OACrCF,aAAAG,wBAAqC,CAAA;AAAC;AAEjC,MAAMC,yCAAyCA,MAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AACpD,EAAA,MAAAC,gBAAsBC,mBAAAA,EAAoB;AAC1C,EAAA,MAAAC,mBAAyBP,uBAAAA,EAAwB;AAAE,EAAA,IAAAQ,EAAAA;AAAA,EAAA,IAAAL,EAAA,CAAA,CAAA,KAAAE,iBAAAF,CAAAA,QAAAI,gBAAAA,EAAA;AAAA,IAAA,IAAAE,EAAAA;AAAA,IAAA,IAAAN,CAAAA,QAAAE,aAAAA,EAAA;AACpBI,MAAAA,EAAAA,GAAAC,CAAAA,EAAAA,KAAA;AAAC,QAAA,MAAA;AAAA,UAAAC;AAAAA,SAAA,GAAAD,EAAAA;AAAW,QAAA,OACzCL,aAAAA,CAAaO,SAAUD,OAAO,CAAA;AAAA,MAAC,CAAA;AAAAR,MAAAA,CAAAA,MAAAE,aAAAA;AAAAF,MAAAA,CAAAA,MAAAM,EAAAA;AAAAA,IAAA,CAAA,MAAA;AAAAA,MAAAA,EAAAA,GAAAN,EAAA,CAAA,CAAA;AAAA,IAAA;AAD1BK,IAAAA,EAAAA,GAAAD,gBAAAA,CAAgBM,OAAQJ,EAE/B,CAAA;AAACN,IAAAA,CAAAA,MAAAE,aAAAA;AAAAF,IAAAA,CAAAA,MAAAI,gBAAAA;AAAAJ,IAAAA,CAAAA,MAAAK,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAL,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAFMK,EAAAA;AAEN;AAEI,MAAMM,4CAA4CA,MAAA;AAAA,EAAA,MAAAX,CAAAA,GAAAC,cAAA,CAAA,CAAA;AACvD,EAAA,MAAAC,gBAAsBC,mBAAAA,EAAoB;AAC1C,EAAA,MAAAS,sBAA4BlB,0BAAAA,EAA2B;AAAE,EAAA,IAAAW,EAAAA;AAAA,EAAA,IAAAL,EAAA,CAAA,CAAA,KAAAE,iBAAAF,CAAAA,QAAAY,mBAAAA,EAAA;AAAA,IAAA,IAAAN,EAAAA;AAAA,IAAA,IAAAN,CAAAA,QAAAE,aAAAA,EAAA;AACvBI,MAAAA,EAAAA,GAAAC,CAAAA,EAAAA,KAAA;AAAC,QAAA,MAAA;AAAA,UAAAC;AAAAA,SAAA,GAAAD,EAAAA;AAAW,QAAA,OAC5CL,aAAAA,CAAaO,SAAUD,OAAO,CAAA;AAAA,MAAC,CAAA;AAAAR,MAAAA,CAAAA,MAAAE,aAAAA;AAAAF,MAAAA,CAAAA,MAAAM,EAAAA;AAAAA,IAAA,CAAA,MAAA;AAAAA,MAAAA,EAAAA,GAAAN,EAAA,CAAA,CAAA;AAAA,IAAA;AAD1BK,IAAAA,EAAAA,GAAAO,mBAAAA,CAAmBF,OAAQJ,EAElC,CAAA;AAACN,IAAAA,CAAAA,MAAAE,aAAAA;AAAAF,IAAAA,CAAAA,MAAAY,mBAAAA;AAAAZ,IAAAA,CAAAA,MAAAK,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAL,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAFMK,EAAAA;AAEN;;;;"}
1
+ {"version":3,"file":"useTransactions.js","sources":["../../../../src/transactions/state/hooks/useTransactions.ts"],"sourcesContent":["import { useAtomValue } from \"jotai\";\nimport {\n userPendingTransactionsAtom,\n userSwapTransactionsAtom,\n} from \"../transactionsAtom\";\nimport { useAllEnabledChains } from \"@/core/state/enabledChainsAtom\";\n\nexport const useUserPendingTransactions = () =>\n useAtomValue(userPendingTransactionsAtom);\nexport const useUserSwapTransactions = () =>\n useAtomValue(userSwapTransactionsAtom);\n\nexport const useUserSwapTransactionsOnEnabledChains = () => {\n const enabledChains = useAllEnabledChains();\n const swapTransactions = useUserSwapTransactions();\n return swapTransactions.filter(({ chainId }) =>\n enabledChains.includes(chainId)\n );\n};\nexport const useUserPendingTransactionsOnEnabledChains = () => {\n const enabledChains = useAllEnabledChains();\n const pendingTransactions = useUserPendingTransactions();\n return pendingTransactions.filter(({ chainId }) =>\n enabledChains.includes(chainId)\n );\n};\n"],"names":["useUserPendingTransactions","useAtomValue","userPendingTransactionsAtom","useUserSwapTransactions","userSwapTransactionsAtom","useUserSwapTransactionsOnEnabledChains","$","_c","enabledChains","useAllEnabledChains","swapTransactions","t0","t1","t2","chainId","includes","filter","useUserPendingTransactionsOnEnabledChains","pendingTransactions"],"mappings":";;;;;AAOO,MAAMA,6BAA6BA,MAAA;AAAA,EAAA,OACxCC,aAAaC,2BAA2B,CAAA;AAAC;AACpC,MAAMC,0BAA0BA,MAAA;AAAA,EAAA,OACrCF,aAAaG,wBAAwB,CAAA;AAAC;AAEjC,MAAMC,yCAAyCA,MAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AACpD,EAAA,MAAAC,gBAAsBC,mBAAAA,EAAoB;AAC1C,EAAA,MAAAC,mBAAyBP,uBAAAA,EAAwB;AAAE,EAAA,IAAAQ,EAAAA;AAAA,EAAA,IAAAL,EAAA,CAAA,CAAA,KAAAE,iBAAAF,CAAAA,QAAAI,gBAAAA,EAAA;AAAA,IAAA,IAAAE,EAAAA;AAAA,IAAA,IAAAN,CAAAA,QAAAE,aAAAA,EAAA;AACpBI,MAAAA,EAAAA,GAAAC,CAAAA,EAAAA,KAAA;AAAC,QAAA,MAAA;AAAA,UAAAC;AAAAA,SAAA,GAAAD,EAAAA;AAAW,QAAA,OACzCL,aAAAA,CAAaO,SAAUD,OAAO,CAAA;AAAA,MAAC,CAAA;AAAAR,MAAAA,CAAAA,MAAAE,aAAAA;AAAAF,MAAAA,CAAAA,MAAAM,EAAAA;AAAAA,IAAA,CAAA,MAAA;AAAAA,MAAAA,EAAAA,GAAAN,EAAA,CAAA,CAAA;AAAA,IAAA;AAD1BK,IAAAA,EAAAA,GAAAD,gBAAAA,CAAgBM,OAAQJ,EAE/B,CAAA;AAACN,IAAAA,CAAAA,MAAAE,aAAAA;AAAAF,IAAAA,CAAAA,MAAAI,gBAAAA;AAAAJ,IAAAA,CAAAA,MAAAK,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAL,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAFMK,EAAAA;AAEN;AAEI,MAAMM,4CAA4CA,MAAA;AAAA,EAAA,MAAAX,CAAAA,GAAAC,cAAA,CAAA,CAAA;AACvD,EAAA,MAAAC,gBAAsBC,mBAAAA,EAAoB;AAC1C,EAAA,MAAAS,sBAA4BlB,0BAAAA,EAA2B;AAAE,EAAA,IAAAW,EAAAA;AAAA,EAAA,IAAAL,EAAA,CAAA,CAAA,KAAAE,iBAAAF,CAAAA,QAAAY,mBAAAA,EAAA;AAAA,IAAA,IAAAN,EAAAA;AAAA,IAAA,IAAAN,CAAAA,QAAAE,aAAAA,EAAA;AACvBI,MAAAA,EAAAA,GAAAC,CAAAA,EAAAA,KAAA;AAAC,QAAA,MAAA;AAAA,UAAAC;AAAAA,SAAA,GAAAD,EAAAA;AAAW,QAAA,OAC5CL,aAAAA,CAAaO,SAAUD,OAAO,CAAA;AAAA,MAAC,CAAA;AAAAR,MAAAA,CAAAA,MAAAE,aAAAA;AAAAF,MAAAA,CAAAA,MAAAM,EAAAA;AAAAA,IAAA,CAAA,MAAA;AAAAA,MAAAA,EAAAA,GAAAN,EAAA,CAAA,CAAA;AAAA,IAAA;AAD1BK,IAAAA,EAAAA,GAAAO,mBAAAA,CAAmBF,OAAQJ,EAElC,CAAA;AAACN,IAAAA,CAAAA,MAAAE,aAAAA;AAAAF,IAAAA,CAAAA,MAAAY,mBAAAA;AAAAZ,IAAAA,CAAAA,MAAAK,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAL,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAFMK,EAAAA;AAEN;;;;"}
@@ -1,6 +1,7 @@
1
1
  import { CallsReceipt } from '../hooks/batch/useAwaitCalls';
2
2
  import { SupportedChainId } from '../lib/web3/wagmi/types';
3
3
  import { OrderData } from '@velora-dex/sdk';
4
+ import { DeltaOrderToPost } from '@velora-dex/sdk/dist/methods/delta/postDeltaOrder';
4
5
  import { Address, Hash, Prettify, TransactionReceipt } from 'viem';
5
6
  export type TransactionCommonData = {
6
7
  chainId: SupportedChainId;
@@ -42,6 +43,25 @@ export type TransactionItemApprove = TransactionItemBase & {
42
43
  spenderAddress: Address;
43
44
  };
44
45
  };
46
+ export type TransactionItemWrapAndApprove = BatchTransactionItemData & {
47
+ action: "wrapAndApproveBatch";
48
+ transactionSpecificData: {
49
+ action: "wrapAndApproveBatch";
50
+ wrappedAmount: bigint;
51
+ approval: {
52
+ allowanceToSet: bigint;
53
+ spender: Address;
54
+ token: Address;
55
+ };
56
+ };
57
+ };
58
+ export type TransactionItemPreSignDeltaOrder = TransactionItemBase & {
59
+ action: "preSignDeltaOrder";
60
+ transactionSpecificData: {
61
+ action: "preSignDeltaOrder";
62
+ order: DeltaOrderToPost;
63
+ };
64
+ };
45
65
  export type TransactionItemWrapEth = TransactionItemBase & {
46
66
  action: "wrapETH";
47
67
  transactionSpecificData: {
@@ -63,7 +83,7 @@ export type TransactionItemCancelOtcOrder = TransactionItemBase & {
63
83
  cancelledOrder: OrderData;
64
84
  };
65
85
  };
66
- export type TransactionItem = TransactionItemSwap | TransactionItemApprove | TransactionItemWrapEth | TransactionItemFillOtcOrder | TransactionItemCancelOtcOrder;
86
+ export type TransactionItem = TransactionItemSwap | TransactionItemApprove | TransactionItemWrapAndApprove | TransactionItemWrapEth | TransactionItemFillOtcOrder | TransactionItemCancelOtcOrder | TransactionItemPreSignDeltaOrder;
67
87
  export type MinTransactionItem = TransactionWithoutMeta<TransactionItem>;
68
88
  export type StandaloneTransactionItem = Prettify<Extract<TransactionItem, StandaloneTransactionItemData>>;
69
89
  export type BatchTransactionItem = Prettify<Extract<TransactionItem, BatchTransactionItemData>>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/transactions/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/transactions/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@velora-dex/widget",
3
- "version": "0.1.3",
3
+ "version": "0.2.1",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "files": [
@@ -74,7 +74,7 @@
74
74
  "@tanstack/react-query-devtools": "^5.84.1",
75
75
  "@tanstack/react-virtual": "^3.13.12",
76
76
  "@uniswap/token-lists": "1.0.0-beta.34",
77
- "@velora-dex/sdk": "^9.1.0",
77
+ "@velora-dex/sdk": "9.2.0",
78
78
  "@wagmi/core": "^2.18.1",
79
79
  "axios": "^1.11.0",
80
80
  "big.js": "^7.0.1",
@@ -1,58 +0,0 @@
1
- import { jsx, jsxs } from 'react/jsx-runtime';
2
- import { d as distExports } from '../../../_virtual/index.js';
3
- import { EmptySelectTokenButton } from '../SelectToken/SelectTokenButton.js';
4
- import { cn } from '../../../lib/utils/index.js';
5
-
6
- const EmptyInput = (t0) => {
7
- const $ = distExports.c(11);
8
- const {
9
- tokenType,
10
- drawerContainer,
11
- onTokenSelect,
12
- classes,
13
- disabled
14
- } = t0;
15
- const t1 = classes?.root;
16
- let t2;
17
- if ($[0] !== t1) {
18
- t2 = cn("flex items-center gap-2 justify-between p-4 border-1 rounded-[12px] border-transparent focus-within:border-primary-azul-1 bg-contrast-8 dark:bg-contrast-2", t1);
19
- $[0] = t1;
20
- $[1] = t2;
21
- } else {
22
- t2 = $[1];
23
- }
24
- let t3;
25
- if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
26
- t3 = /* @__PURE__ */ jsx("div", { className: "text-contrast-3 dark:text-contrast-6 text-sm", children: "Receive" });
27
- $[2] = t3;
28
- } else {
29
- t3 = $[2];
30
- }
31
- let t4;
32
- if ($[3] !== disabled || $[4] !== drawerContainer || $[5] !== onTokenSelect || $[6] !== tokenType) {
33
- t4 = /* @__PURE__ */ jsx(EmptySelectTokenButton, { tokenType, drawerContainer, onTokenSelect, disabled });
34
- $[3] = disabled;
35
- $[4] = drawerContainer;
36
- $[5] = onTokenSelect;
37
- $[6] = tokenType;
38
- $[7] = t4;
39
- } else {
40
- t4 = $[7];
41
- }
42
- let t5;
43
- if ($[8] !== t2 || $[9] !== t4) {
44
- t5 = /* @__PURE__ */ jsxs("div", { className: t2, children: [
45
- t3,
46
- t4
47
- ] });
48
- $[8] = t2;
49
- $[9] = t4;
50
- $[10] = t5;
51
- } else {
52
- t5 = $[10];
53
- }
54
- return t5;
55
- };
56
-
57
- export { EmptyInput };
58
- //# sourceMappingURL=EmptyInput.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EmptyInput.js","sources":["../../../../src/components/widget/TokenInput/EmptyInput.tsx"],"sourcesContent":["import { EmptySelectTokenButton } from \"@/components/widget/SelectToken/SelectTokenButton\";\nimport type { TokenInputProps } from \"./types\";\nimport { cn } from \"@/lib/utils\";\n\nexport const EmptyInput: React.FC<\n Pick<\n TokenInputProps,\n \"tokenType\" | \"drawerContainer\" | \"onTokenSelect\" | \"classes\" | \"disabled\"\n >\n> = ({ tokenType, drawerContainer, onTokenSelect, classes, disabled }) => {\n return (\n <div\n className={cn(\n \"flex items-center gap-2 justify-between p-4 border-1 rounded-[12px] border-transparent focus-within:border-primary-azul-1 bg-contrast-8 dark:bg-contrast-2\",\n classes?.root\n )}\n >\n <div className=\"text-contrast-3 dark:text-contrast-6 text-sm\">\n Receive\n </div>\n <EmptySelectTokenButton\n tokenType={tokenType}\n drawerContainer={drawerContainer}\n onTokenSelect={onTokenSelect}\n disabled={disabled}\n />\n </div>\n );\n};\n"],"names":["EmptyInput","t0","$","_c","tokenType","drawerContainer","onTokenSelect","classes","disabled","t1","root","t2","cn","t3","Symbol","for","t4","t5"],"mappings":";;;;;AAIO,MAAMA,aAKTC,CAAAA,EAAAA,KAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAAC,EAAA,MAAA;AAAA,IAAAC,SAAAA;AAAAA,IAAAC,eAAAA;AAAAA,IAAAC,aAAAA;AAAAA,IAAAC,OAAAA;AAAAA,IAAAC;AAAAA,GAAA,GAAAP,EAAAA;AAKG,EAAA,MAAAQ,KAAAF,OAAAA,EAAOG,IAAAA;AAAM,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAT,CAAAA,QAAAO,EAAAA,EAAA;AAFJE,IAAAA,EAAAA,GAAAC,EAAAA,CACT,8JACAH,EACF,CAAA;AAACP,IAAAA,CAAAA,MAAAO,EAAAA;AAAAP,IAAAA,CAAAA,MAAAS,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAT,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAW,EAAAA;AAAA,EAAA,IAAAX,EAAA,CAAA,CAAA,KAAAY,MAAAA,CAAAC,GAAAA,CAAA,2BAAA,CAAA,EAAA;AAEDF,IAAAA,EAAAA,mBAAA,GAAA,CAAA,KAAA,EAAA,EAAe,SAAA,EAAA,8CAAA,EAA+C,QAAA,EAAA,SAAA,EAE9D,CAAA;AAAMX,IAAAA,CAAAA,MAAAW,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAX,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAc,EAAAA;AAAA,EAAA,IAAAd,CAAAA,CAAA,CAAA,CAAA,KAAAM,QAAAA,IAAAN,EAAA,CAAA,CAAA,KAAAG,eAAAA,IAAAH,CAAAA,CAAA,CAAA,CAAA,KAAAI,aAAAA,IAAAJ,CAAAA,QAAAE,SAAAA,EAAA;AACNY,IAAAA,EAAAA,mBAAA,GAAA,CAAC,sBAAA,EAAA,EACYZ,SAAAA,EACMC,eAAAA,EACFC,eACLE,QAAAA,EAAQ,CAAA;AAClBN,IAAAA,CAAAA,MAAAM,QAAAA;AAAAN,IAAAA,CAAAA,MAAAG,eAAAA;AAAAH,IAAAA,CAAAA,MAAAI,aAAAA;AAAAJ,IAAAA,CAAAA,MAAAE,SAAAA;AAAAF,IAAAA,CAAAA,MAAAc,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAd,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAe,EAAAA;AAAA,EAAA,IAAAf,EAAA,CAAA,CAAA,KAAAS,MAAAT,CAAAA,QAAAc,EAAAA,EAAA;AAdJC,IAAAA,EAAAA,mBAAA,IAAA,CAAA,KAAA,EAAA,EACa,SAAA,EAAAN,EAAAA,EAKXE,QAAAA,EAAAA;AAAAA,MAAAA,EAAAA;AAAAA,MAGAG;AAAAA,KAAAA,EAMF,CAAA;AAAMd,IAAAA,CAAAA,MAAAS,EAAAA;AAAAT,IAAAA,CAAAA,MAAAc,EAAAA;AAAAd,IAAAA,CAAAA,OAAAe,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAf,EAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAfNe,EAAAA;AAeM;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../../../../node_modules/.pnpm/react-compiler-runtime@19.1.0-rc.2_react@19.1.1/node_modules/react-compiler-runtime/dist/index.js"],"sourcesContent":["/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @lightSyntaxTransform\n * @noflow\n * @nolint\n * @preventMunge\n * @preserve-invariant-messages\n */\n\n\"use no memo\";\n\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n $dispatcherGuard: () => $dispatcherGuard,\n $makeReadOnly: () => $makeReadOnly,\n $reset: () => $reset,\n $structuralCheck: () => $structuralCheck,\n c: () => c,\n clearRenderCounterRegistry: () => clearRenderCounterRegistry,\n renderCounterRegistry: () => renderCounterRegistry,\n useRenderCounter: () => useRenderCounter\n});\nmodule.exports = __toCommonJS(index_exports);\nvar React = __toESM(require(\"react\"));\nvar { useRef, useEffect, isValidElement } = React;\nvar _a;\nvar ReactSecretInternals = (\n //@ts-ignore\n (_a = React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE) != null ? _a : React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED\n);\nvar $empty = Symbol.for(\"react.memo_cache_sentinel\");\nvar _a2;\nvar c = (\n // @ts-expect-error\n typeof ((_a2 = React.__COMPILER_RUNTIME) == null ? void 0 : _a2.c) === \"function\" ? (\n // @ts-expect-error\n React.__COMPILER_RUNTIME.c\n ) : function c2(size) {\n return React.useMemo(() => {\n const $ = new Array(size);\n for (let ii = 0; ii < size; ii++) {\n $[ii] = $empty;\n }\n $[$empty] = true;\n return $;\n }, []);\n }\n);\nvar LazyGuardDispatcher = {};\n[\n \"readContext\",\n \"useCallback\",\n \"useContext\",\n \"useEffect\",\n \"useImperativeHandle\",\n \"useInsertionEffect\",\n \"useLayoutEffect\",\n \"useMemo\",\n \"useReducer\",\n \"useRef\",\n \"useState\",\n \"useDebugValue\",\n \"useDeferredValue\",\n \"useTransition\",\n \"useMutableSource\",\n \"useSyncExternalStore\",\n \"useId\",\n \"unstable_isNewReconciler\",\n \"getCacheSignal\",\n \"getCacheForType\",\n \"useCacheRefresh\"\n].forEach((name) => {\n LazyGuardDispatcher[name] = () => {\n throw new Error(\n `[React] Unexpected React hook call (${name}) from a React compiled function. Check that all hooks are called directly and named according to convention ('use[A-Z]') `\n );\n };\n});\nvar originalDispatcher = null;\nLazyGuardDispatcher[\"useMemoCache\"] = (count) => {\n if (originalDispatcher == null) {\n throw new Error(\n \"React Compiler internal invariant violation: unexpected null dispatcher\"\n );\n } else {\n return originalDispatcher.useMemoCache(count);\n }\n};\nfunction setCurrent(newDispatcher) {\n ReactSecretInternals.ReactCurrentDispatcher.current = newDispatcher;\n return ReactSecretInternals.ReactCurrentDispatcher.current;\n}\nvar guardFrames = [];\nfunction $dispatcherGuard(kind) {\n const curr = ReactSecretInternals.ReactCurrentDispatcher.current;\n if (kind === 0 /* PushGuardContext */) {\n guardFrames.push(curr);\n if (guardFrames.length === 1) {\n originalDispatcher = curr;\n }\n if (curr === LazyGuardDispatcher) {\n throw new Error(\n `[React] Unexpected call to custom hook or component from a React compiled function. Check that (1) all hooks are called directly and named according to convention ('use[A-Z]') and (2) components are returned as JSX instead of being directly invoked.`\n );\n }\n setCurrent(LazyGuardDispatcher);\n } else if (kind === 1 /* PopGuardContext */) {\n const lastFrame = guardFrames.pop();\n if (lastFrame == null) {\n throw new Error(\n \"React Compiler internal error: unexpected null in guard stack\"\n );\n }\n if (guardFrames.length === 0) {\n originalDispatcher = null;\n }\n setCurrent(lastFrame);\n } else if (kind === 2 /* PushExpectHook */) {\n guardFrames.push(curr);\n setCurrent(originalDispatcher);\n } else if (kind === 3 /* PopExpectHook */) {\n const lastFrame = guardFrames.pop();\n if (lastFrame == null) {\n throw new Error(\n \"React Compiler internal error: unexpected null in guard stack\"\n );\n }\n setCurrent(lastFrame);\n } else {\n throw new Error(\"React Compiler internal error: unreachable block\" + kind);\n }\n}\nfunction $reset($) {\n for (let ii = 0; ii < $.length; ii++) {\n $[ii] = $empty;\n }\n}\nfunction $makeReadOnly() {\n throw new Error(\"TODO: implement $makeReadOnly in react-compiler-runtime\");\n}\nvar renderCounterRegistry = /* @__PURE__ */ new Map();\nfunction clearRenderCounterRegistry() {\n for (const counters of renderCounterRegistry.values()) {\n counters.forEach((counter) => {\n counter.count = 0;\n });\n }\n}\nfunction registerRenderCounter(name, val) {\n let counters = renderCounterRegistry.get(name);\n if (counters == null) {\n counters = /* @__PURE__ */ new Set();\n renderCounterRegistry.set(name, counters);\n }\n counters.add(val);\n}\nfunction removeRenderCounter(name, val) {\n const counters = renderCounterRegistry.get(name);\n if (counters == null) {\n return;\n }\n counters.delete(val);\n}\nfunction useRenderCounter(name) {\n const val = useRef(null);\n if (val.current != null) {\n val.current.count += 1;\n }\n useEffect(() => {\n if (val.current == null) {\n const counter = { count: 0 };\n registerRenderCounter(name, counter);\n val.current = counter;\n }\n return () => {\n if (val.current !== null) {\n removeRenderCounter(name, val.current);\n }\n };\n });\n}\nvar seenErrors = /* @__PURE__ */ new Set();\nfunction $structuralCheck(oldValue, newValue, variableName, fnName, kind, loc) {\n function error(l, r, path, depth) {\n const str = `${fnName}:${loc} [${kind}] ${variableName}${path} changed from ${l} to ${r} at depth ${depth}`;\n if (seenErrors.has(str)) {\n return;\n }\n seenErrors.add(str);\n console.error(str);\n }\n const depthLimit = 2;\n function recur(oldValue2, newValue2, path, depth) {\n if (depth > depthLimit) {\n return;\n } else if (oldValue2 === newValue2) {\n return;\n } else if (typeof oldValue2 !== typeof newValue2) {\n error(`type ${typeof oldValue2}`, `type ${typeof newValue2}`, path, depth);\n } else if (typeof oldValue2 === \"object\") {\n const oldArray = Array.isArray(oldValue2);\n const newArray = Array.isArray(newValue2);\n if (oldValue2 === null && newValue2 !== null) {\n error(\"null\", `type ${typeof newValue2}`, path, depth);\n } else if (newValue2 === null) {\n error(`type ${typeof oldValue2}`, \"null\", path, depth);\n } else if (oldValue2 instanceof Map) {\n if (!(newValue2 instanceof Map)) {\n error(`Map instance`, `other value`, path, depth);\n } else if (oldValue2.size !== newValue2.size) {\n error(\n `Map instance with size ${oldValue2.size}`,\n `Map instance with size ${newValue2.size}`,\n path,\n depth\n );\n } else {\n for (const [k, v] of oldValue2) {\n if (!newValue2.has(k)) {\n error(\n `Map instance with key ${k}`,\n `Map instance without key ${k}`,\n path,\n depth\n );\n } else {\n recur(v, newValue2.get(k), `${path}.get(${k})`, depth + 1);\n }\n }\n }\n } else if (newValue2 instanceof Map) {\n error(\"other value\", `Map instance`, path, depth);\n } else if (oldValue2 instanceof Set) {\n if (!(newValue2 instanceof Set)) {\n error(`Set instance`, `other value`, path, depth);\n } else if (oldValue2.size !== newValue2.size) {\n error(\n `Set instance with size ${oldValue2.size}`,\n `Set instance with size ${newValue2.size}`,\n path,\n depth\n );\n } else {\n for (const v of newValue2) {\n if (!oldValue2.has(v)) {\n error(\n `Set instance without element ${v}`,\n `Set instance with element ${v}`,\n path,\n depth\n );\n }\n }\n }\n } else if (newValue2 instanceof Set) {\n error(\"other value\", `Set instance`, path, depth);\n } else if (oldArray || newArray) {\n if (oldArray !== newArray) {\n error(\n `type ${oldArray ? \"array\" : \"object\"}`,\n `type ${newArray ? \"array\" : \"object\"}`,\n path,\n depth\n );\n } else if (oldValue2.length !== newValue2.length) {\n error(\n `array with length ${oldValue2.length}`,\n `array with length ${newValue2.length}`,\n path,\n depth\n );\n } else {\n for (let ii = 0; ii < oldValue2.length; ii++) {\n recur(oldValue2[ii], newValue2[ii], `${path}[${ii}]`, depth + 1);\n }\n }\n } else if (isValidElement(oldValue2) || isValidElement(newValue2)) {\n if (isValidElement(oldValue2) !== isValidElement(newValue2)) {\n error(\n `type ${isValidElement(oldValue2) ? \"React element\" : \"object\"}`,\n `type ${isValidElement(newValue2) ? \"React element\" : \"object\"}`,\n path,\n depth\n );\n } else if (oldValue2.type !== newValue2.type) {\n error(\n `React element of type ${oldValue2.type}`,\n `React element of type ${newValue2.type}`,\n path,\n depth\n );\n } else {\n recur(\n oldValue2.props,\n newValue2.props,\n `[props of ${path}]`,\n depth + 1\n );\n }\n } else {\n for (const key in newValue2) {\n if (!(key in oldValue2)) {\n error(\n `object without key ${key}`,\n `object with key ${key}`,\n path,\n depth\n );\n }\n }\n for (const key in oldValue2) {\n if (!(key in newValue2)) {\n error(\n `object with key ${key}`,\n `object without key ${key}`,\n path,\n depth\n );\n } else {\n recur(oldValue2[key], newValue2[key], `${path}.${key}`, depth + 1);\n }\n }\n }\n } else if (typeof oldValue2 === \"function\") {\n return;\n } else if (isNaN(oldValue2) || isNaN(newValue2)) {\n if (isNaN(oldValue2) !== isNaN(newValue2)) {\n error(\n `${isNaN(oldValue2) ? \"NaN\" : \"non-NaN value\"}`,\n `${isNaN(newValue2) ? \"NaN\" : \"non-NaN value\"}`,\n path,\n depth\n );\n }\n } else if (oldValue2 !== newValue2) {\n error(oldValue2, newValue2, path, depth);\n }\n }\n recur(oldValue, newValue, \"\", 0);\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n $dispatcherGuard,\n $makeReadOnly,\n $reset,\n $structuralCheck,\n c,\n clearRenderCounterRegistry,\n renderCounterRegistry,\n useRenderCounter\n});\n//# sourceMappingURL=index.js.map"],"names":["require$$0"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAeA,CAAA,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM;AAC5B,CAAA,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc;AACrC,CAAA,IAAI,gBAAgB,GAAG,MAAM,CAAC,wBAAwB;AACtD,CAAA,IAAI,iBAAiB,GAAG,MAAM,CAAC,mBAAmB;AAClD,CAAA,IAAI,YAAY,GAAG,MAAM,CAAC,cAAc;AACxC,CAAA,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc;AAClD,CAAA,IAAI,QAAQ,GAAG,CAAC,MAAM,EAAE,GAAG,KAAK;AAChC,GAAE,KAAK,IAAI,IAAI,IAAI,GAAG;AACtB,KAAI,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;CACjE,CAAC;CACD,IAAI,WAAW,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,KAAK;AAC9C,GAAE,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;AACtE,KAAI,KAAK,IAAI,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC;AAC3C,OAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,GAAG,KAAK,MAAM;AACvD,SAAQ,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,EAAE,IAAI,GAAG,gBAAgB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;AAC1H,GAAA;AACA,GAAE,OAAO,EAAE;CACX,CAAC;CACD,IAAI,OAAO,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,MAAM,MAAM,GAAG,GAAG,IAAI,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,WAAW;AAChH;AACA;AACA;AACA;GACgB,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,GAAG,MAAM;GAC/G;AACF,EAAC,CAAC;CACF,IAAI,YAAY,GAAG,CAAC,GAAG,KAAK,WAAW,CAAC,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC;;AAE1F;CACA,IAAI,aAAa,GAAG,EAAE;CACtB,QAAQ,CAAC,aAAa,EAAE;GACtB,gBAAgB,EAAE,MAAM,gBAAgB;GACxC,aAAa,EAAE,MAAM,aAAa;GAClC,MAAM,EAAE,MAAM,MAAM;GACpB,gBAAgB,EAAE,MAAM,gBAAgB;GACxC,CAAC,EAAE,MAAM,CAAC;GACV,0BAA0B,EAAE,MAAM,0BAA0B;GAC5D,qBAAqB,EAAE,MAAM,qBAAqB;GAClD,gBAAgB,EAAE,MAAM;AAC1B,EAAC,CAAC;AACF,CAAA,IAAc,GAAG,YAAY,CAAC,aAAa,CAAC;AAC5C,CAAA,IAAI,KAAK,GAAG,OAAO,CAACA,cAAgB,CAAC;CACrC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,KAAK;AACjD,CAAA,IAAI,EAAE;AACN,CAAA,IAAI,oBAAoB;AACxB;AACA,GAAE,CAAC,EAAE,GAAG,KAAK,CAAC,+DAA+D,KAAK,IAAI,GAAG,EAAE,GAAG,KAAK,CAAC;EACnG;AACD,CAAA,IAAI,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,2BAA2B,CAAC;AACpD,CAAA,IAAI,GAAG;AACP,CAAA,IAAI,CAAC;AACL;AACA,GAAE,QAAQ,CAAC,GAAG,GAAG,KAAK,CAAC,kBAAkB,KAAK,IAAI,GAAG,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,UAAU;AACnF;KACI,KAAK,CAAC,kBAAkB,CAAC;AAC7B,OAAM,SAAS,EAAE,CAAC,IAAI,EAAE;AACxB,KAAI,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM;AAC/B,OAAM,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC;AAC/B,OAAM,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE;AACxC,SAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM;AACtB,OAAA;AACA,OAAM,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI;AACtB,OAAM,OAAO,CAAC;KACd,CAAK,EAAE,EAAE,CAAC;AACV,GAAA;EACC;CACD,IAAI,mBAAmB,GAAG,EAAE;AAC5B,CAAA;AACA,GAAE,aAAa;AACf,GAAE,aAAa;AACf,GAAE,YAAY;AACd,GAAE,WAAW;AACb,GAAE,qBAAqB;AACvB,GAAE,oBAAoB;AACtB,GAAE,iBAAiB;AACnB,GAAE,SAAS;AACX,GAAE,YAAY;AACd,GAAE,QAAQ;AACV,GAAE,UAAU;AACZ,GAAE,eAAe;AACjB,GAAE,kBAAkB;AACpB,GAAE,eAAe;AACjB,GAAE,kBAAkB;AACpB,GAAE,sBAAsB;AACxB,GAAE,OAAO;AACT,GAAE,0BAA0B;AAC5B,GAAE,gBAAgB;AAClB,GAAE,iBAAiB;GACjB;AACF,EAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AACpB,GAAE,mBAAmB,CAAC,IAAI,CAAC,GAAG,MAAM;KAChC,MAAM,IAAI,KAAK;AACnB,OAAM,CAAC,oCAAoC,EAAE,IAAI,CAAC,0HAA0H;MACvK;GACL,CAAG;AACH,CAAA,CAAC,CAAC;CACF,IAAI,kBAAkB,GAAG,IAAI;AAC7B,CAAA,mBAAmB,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,KAAK;AACjD,GAAE,IAAI,kBAAkB,IAAI,IAAI,EAAE;KAC9B,MAAM,IAAI,KAAK;OACb;MACD;AACL,GAAA,CAAG,MAAM;AACT,KAAI,OAAO,kBAAkB,CAAC,YAAY,CAAC,KAAK,CAAC;AACjD,GAAA;CACA,CAAC;CACD,SAAS,UAAU,CAAC,aAAa,EAAE;AACnC,GAAE,oBAAoB,CAAC,sBAAsB,CAAC,OAAO,GAAG,aAAa;AACrE,GAAE,OAAO,oBAAoB,CAAC,sBAAsB,CAAC,OAAO;AAC5D,CAAA;CACA,IAAI,WAAW,GAAG,EAAE;CACpB,SAAS,gBAAgB,CAAC,IAAI,EAAE;AAChC,GAAE,MAAM,IAAI,GAAG,oBAAoB,CAAC,sBAAsB,CAAC,OAAO;AAClE,GAAE,IAAI,IAAI,KAAK,CAAC,yBAAyB;AACzC,KAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1B,KAAI,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;OAC5B,kBAAkB,GAAG,IAAI;AAC/B,KAAA;AACA,KAAI,IAAI,IAAI,KAAK,mBAAmB,EAAE;OAChC,MAAM,IAAI,KAAK;AACrB,SAAQ,CAAC,yPAAyP;QAC3P;AACP,KAAA;KACI,UAAU,CAAC,mBAAmB,CAAC;AACnC,GAAA,CAAG,MAAM,IAAI,IAAI,KAAK,CAAC,wBAAwB;AAC/C,KAAI,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;AACvC,KAAI,IAAI,SAAS,IAAI,IAAI,EAAE;OACrB,MAAM,IAAI,KAAK;SACb;QACD;AACP,KAAA;AACA,KAAI,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;OAC5B,kBAAkB,GAAG,IAAI;AAC/B,KAAA;KACI,UAAU,CAAC,SAAS,CAAC;AACzB,GAAA,CAAG,MAAM,IAAI,IAAI,KAAK,CAAC,uBAAuB;AAC9C,KAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;KACtB,UAAU,CAAC,kBAAkB,CAAC;AAClC,GAAA,CAAG,MAAM,IAAI,IAAI,KAAK,CAAC,sBAAsB;AAC7C,KAAI,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;AACvC,KAAI,IAAI,SAAS,IAAI,IAAI,EAAE;OACrB,MAAM,IAAI,KAAK;SACb;QACD;AACP,KAAA;KACI,UAAU,CAAC,SAAS,CAAC;AACzB,GAAA,CAAG,MAAM;AACT,KAAI,MAAM,IAAI,KAAK,CAAC,kDAAkD,GAAG,IAAI,CAAC;AAC9E,GAAA;AACA,CAAA;CACA,SAAS,MAAM,CAAC,CAAC,EAAE;AACnB,GAAE,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;AACxC,KAAI,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM;AAClB,GAAA;AACA,CAAA;AACA,CAAA,SAAS,aAAa,GAAG;AACzB,GAAE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC;AAC5E,CAAA;AACA,CAAA,IAAI,qBAAqB,mBAAmB,IAAI,GAAG,EAAE;AACrD,CAAA,SAAS,0BAA0B,GAAG;GACpC,KAAK,MAAM,QAAQ,IAAI,qBAAqB,CAAC,MAAM,EAAE,EAAE;AACzD,KAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK;AAClC,OAAM,OAAO,CAAC,KAAK,GAAG,CAAC;AACvB,KAAA,CAAK,CAAC;AACN,GAAA;AACA,CAAA;AACA,CAAA,SAAS,qBAAqB,CAAC,IAAI,EAAE,GAAG,EAAE;GACxC,IAAI,QAAQ,GAAG,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC;AAChD,GAAE,IAAI,QAAQ,IAAI,IAAI,EAAE;AACxB,KAAI,QAAQ,mBAAmB,IAAI,GAAG,EAAE;AACxC,KAAI,qBAAqB,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC;AAC7C,GAAA;AACA,GAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;AACnB,CAAA;AACA,CAAA,SAAS,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE;GACtC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC;AAClD,GAAE,IAAI,QAAQ,IAAI,IAAI,EAAE;KACpB;AACJ,GAAA;AACA,GAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC;AACtB,CAAA;CACA,SAAS,gBAAgB,CAAC,IAAI,EAAE;AAChC,GAAE,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC;AAC1B,GAAE,IAAI,GAAG,CAAC,OAAO,IAAI,IAAI,EAAE;AAC3B,KAAI,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;AAC1B,GAAA;GACE,SAAS,CAAC,MAAM;AAClB,KAAI,IAAI,GAAG,CAAC,OAAO,IAAI,IAAI,EAAE;AAC7B,OAAM,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE;AAClC,OAAM,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC;AAC1C,OAAM,GAAG,CAAC,OAAO,GAAG,OAAO;AAC3B,KAAA;AACA,KAAI,OAAO,MAAM;AACjB,OAAM,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,EAAE;AAChC,SAAQ,mBAAmB,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC;AAC9C,OAAA;KACA,CAAK;AACL,GAAA,CAAG,CAAC;AACJ,CAAA;AACA,CAAA,IAAI,UAAU,mBAAmB,IAAI,GAAG,EAAE;AAC1C,CAAA,SAAS,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE;GAC7E,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;AACpC,KAAI,MAAM,GAAG,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,YAAY,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AAC/G,KAAI,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;OACvB;AACN,KAAA;AACA,KAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;AACvB,KAAI,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;AACtB,GAAA;GACE,MAAM,UAAU,GAAG,CAAC;GACpB,SAAS,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE;AACpD,KAAI,IAAI,KAAK,GAAG,UAAU,EAAE;OACtB;AACN,KAAA,CAAK,MAAM,IAAI,SAAS,KAAK,SAAS,EAAE;OAClC;AACN,KAAA,CAAK,MAAM,IAAI,OAAO,SAAS,KAAK,OAAO,SAAS,EAAE;OAChD,KAAK,CAAC,CAAC,KAAK,EAAE,OAAO,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC;AAChF,KAAA,CAAK,MAAM,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;OACxC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;OACzC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;OACzC,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,IAAI,EAAE;AACpD,SAAQ,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC;AAC9D,OAAA,CAAO,MAAM,IAAI,SAAS,KAAK,IAAI,EAAE;AACrC,SAAQ,KAAK,CAAC,CAAC,KAAK,EAAE,OAAO,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC;AAC9D,OAAA,CAAO,MAAM,IAAI,SAAS,YAAY,GAAG,EAAE;AAC3C,SAAQ,IAAI,EAAE,SAAS,YAAY,GAAG,CAAC,EAAE;AACzC,WAAU,KAAK,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC;SAC3D,CAAS,MAAM,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,EAAE;AACtD,WAAU,KAAK;AACf,aAAY,CAAC,uBAAuB,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;AACtD,aAAY,CAAC,uBAAuB,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;AACtD,aAAY,IAAI;aACJ;YACD;AACX,SAAA,CAAS,MAAM;WACL,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,SAAS,EAAE;aAC9B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;AACnC,eAAc,KAAK;AACnB,iBAAgB,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC;AAC5C,iBAAgB,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAC;AAC/C,iBAAgB,IAAI;iBACJ;gBACD;AACf,aAAA,CAAa,MAAM;eACL,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;AACxE,aAAA;AACA,WAAA;AACA,SAAA;AACA,OAAA,CAAO,MAAM,IAAI,SAAS,YAAY,GAAG,EAAE;SACnC,KAAK,CAAC,aAAa,EAAE,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC;AACzD,OAAA,CAAO,MAAM,IAAI,SAAS,YAAY,GAAG,EAAE;AAC3C,SAAQ,IAAI,EAAE,SAAS,YAAY,GAAG,CAAC,EAAE;AACzC,WAAU,KAAK,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC;SAC3D,CAAS,MAAM,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,EAAE;AACtD,WAAU,KAAK;AACf,aAAY,CAAC,uBAAuB,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;AACtD,aAAY,CAAC,uBAAuB,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;AACtD,aAAY,IAAI;aACJ;YACD;AACX,SAAA,CAAS,MAAM;AACf,WAAU,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE;aACzB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;AACnC,eAAc,KAAK;AACnB,iBAAgB,CAAC,6BAA6B,EAAE,CAAC,CAAC,CAAC;AACnD,iBAAgB,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAC;AAChD,iBAAgB,IAAI;iBACJ;gBACD;AACf,aAAA;AACA,WAAA;AACA,SAAA;AACA,OAAA,CAAO,MAAM,IAAI,SAAS,YAAY,GAAG,EAAE;SACnC,KAAK,CAAC,aAAa,EAAE,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC;AACzD,OAAA,CAAO,MAAM,IAAI,QAAQ,IAAI,QAAQ,EAAE;AACvC,SAAQ,IAAI,QAAQ,KAAK,QAAQ,EAAE;AACnC,WAAU,KAAK;aACH,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAC;aACvC,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAC;AACnD,aAAY,IAAI;aACJ;YACD;SACX,CAAS,MAAM,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,EAAE;AAC1D,WAAU,KAAK;AACf,aAAY,CAAC,kBAAkB,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;AACnD,aAAY,CAAC,kBAAkB,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;AACnD,aAAY,IAAI;aACJ;YACD;AACX,SAAA,CAAS,MAAM;AACf,WAAU,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;aAC5C,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;AAC5E,WAAA;AACA,SAAA;OACA,CAAO,MAAM,IAAI,cAAc,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,SAAS,CAAC,EAAE;SACjE,IAAI,cAAc,CAAC,SAAS,CAAC,KAAK,cAAc,CAAC,SAAS,CAAC,EAAE;AACrE,WAAU,KAAK;AACf,aAAY,CAAC,KAAK,EAAE,cAAc,CAAC,SAAS,CAAC,GAAG,eAAe,GAAG,QAAQ,CAAC,CAAC;AAC5E,aAAY,CAAC,KAAK,EAAE,cAAc,CAAC,SAAS,CAAC,GAAG,eAAe,GAAG,QAAQ,CAAC,CAAC;AAC5E,aAAY,IAAI;aACJ;YACD;SACX,CAAS,MAAM,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,EAAE;AACtD,WAAU,KAAK;AACf,aAAY,CAAC,sBAAsB,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;AACrD,aAAY,CAAC,sBAAsB,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;AACrD,aAAY,IAAI;aACJ;YACD;AACX,SAAA,CAAS,MAAM;AACf,WAAU,KAAK;aACH,SAAS,CAAC,KAAK;aACf,SAAS,CAAC,KAAK;AAC3B,aAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;AAChC,aAAY,KAAK,GAAG;YACT;AACX,SAAA;AACA,OAAA,CAAO,MAAM;AACb,SAAQ,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE;AACrC,WAAU,IAAI,EAAE,GAAG,IAAI,SAAS,CAAC,EAAE;AACnC,aAAY,KAAK;AACjB,eAAc,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;AACzC,eAAc,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;AACtC,eAAc,IAAI;eACJ;cACD;AACb,WAAA;AACA,SAAA;AACA,SAAQ,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE;AACrC,WAAU,IAAI,EAAE,GAAG,IAAI,SAAS,CAAC,EAAE;AACnC,aAAY,KAAK;AACjB,eAAc,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;AACtC,eAAc,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;AACzC,eAAc,IAAI;eACJ;cACD;AACb,WAAA,CAAW,MAAM;aACL,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;AAC9E,WAAA;AACA,SAAA;AACA,OAAA;AACA,KAAA,CAAK,MAAM,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE;OAC1C;KACN,CAAK,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE;OAC/C,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC,EAAE;AACjD,SAAQ,KAAK;WACH,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,KAAK,GAAG,eAAe,CAAC,CAAC;WAC/C,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,KAAK,GAAG,eAAe,CAAC,CAAC;AACzD,WAAU,IAAI;WACJ;UACD;AACT,OAAA;AACA,KAAA,CAAK,MAAM,IAAI,SAAS,KAAK,SAAS,EAAE;OAClC,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC;AAC9C,KAAA;AACA,GAAA;GACE,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AAClC,CAAA;AAYA;;;;;;","x_google_ignoreList":[0]}