@velora-dex/widget 0.0.12 → 0.0.14

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 (278) hide show
  1. package/dist/components/ui/drawer.d.ts +1 -1
  2. package/dist/components/ui/drawer.d.ts.map +1 -1
  3. package/dist/components/ui/drawer.js +1 -1
  4. package/dist/components/ui/drawer.js.map +1 -1
  5. package/dist/components/ui/dropdown-menu.js +25 -19
  6. package/dist/components/ui/dropdown-menu.js.map +1 -1
  7. package/dist/components/ui/vaul/browser.d.ts +8 -0
  8. package/dist/components/ui/vaul/browser.d.ts.map +1 -0
  9. package/dist/components/ui/vaul/browser.js +37 -0
  10. package/dist/components/ui/vaul/browser.js.map +1 -0
  11. package/dist/components/ui/vaul/constants.d.ts +12 -0
  12. package/dist/components/ui/vaul/constants.d.ts.map +1 -0
  13. package/dist/components/ui/vaul/constants.js +24 -0
  14. package/dist/components/ui/vaul/constants.js.map +1 -0
  15. package/dist/components/ui/vaul/context.d.ts +38 -0
  16. package/dist/components/ui/vaul/context.d.ts.map +1 -0
  17. package/dist/components/ui/vaul/context.js +72 -0
  18. package/dist/components/ui/vaul/context.js.map +1 -0
  19. package/dist/components/ui/vaul/helpers.d.ts +17 -0
  20. package/dist/components/ui/vaul/helpers.d.ts.map +1 -0
  21. package/dist/components/ui/vaul/helpers.js +87 -0
  22. package/dist/components/ui/vaul/helpers.js.map +1 -0
  23. package/dist/components/ui/vaul/index.d.ts +140 -0
  24. package/dist/components/ui/vaul/index.d.ts.map +1 -0
  25. package/dist/components/ui/vaul/index.js +807 -0
  26. package/dist/components/ui/vaul/index.js.map +1 -0
  27. package/dist/components/ui/vaul/types.d.ts +7 -0
  28. package/dist/components/ui/vaul/types.d.ts.map +1 -0
  29. package/dist/components/ui/vaul/use-composed-refs.d.ts +14 -0
  30. package/dist/components/ui/vaul/use-composed-refs.d.ts.map +1 -0
  31. package/dist/components/ui/vaul/use-composed-refs.js +28 -0
  32. package/dist/components/ui/vaul/use-composed-refs.js.map +1 -0
  33. package/dist/components/ui/vaul/use-controllable-state.d.ts +9 -0
  34. package/dist/components/ui/vaul/use-controllable-state.d.ts.map +1 -0
  35. package/dist/components/ui/vaul/use-controllable-state.js +134 -0
  36. package/dist/components/ui/vaul/use-controllable-state.js.map +1 -0
  37. package/dist/components/ui/vaul/use-position-fixed.d.ts +19 -0
  38. package/dist/components/ui/vaul/use-position-fixed.d.ts.map +1 -0
  39. package/dist/components/ui/vaul/use-position-fixed.js +109 -0
  40. package/dist/components/ui/vaul/use-position-fixed.js.map +1 -0
  41. package/dist/components/ui/vaul/use-prevent-scroll.d.ts +18 -0
  42. package/dist/components/ui/vaul/use-prevent-scroll.d.ts.map +1 -0
  43. package/dist/components/ui/vaul/use-prevent-scroll.js +182 -0
  44. package/dist/components/ui/vaul/use-prevent-scroll.js.map +1 -0
  45. package/dist/components/ui/vaul/use-scale-background.d.ts +2 -0
  46. package/dist/components/ui/vaul/use-scale-background.d.ts.map +1 -0
  47. package/dist/components/ui/vaul/use-scale-background.js +68 -0
  48. package/dist/components/ui/vaul/use-scale-background.js.map +1 -0
  49. package/dist/components/ui/vaul/use-snap-points.d.ts +32 -0
  50. package/dist/components/ui/vaul/use-snap-points.d.ts.map +1 -0
  51. package/dist/components/ui/vaul/use-snap-points.js +222 -0
  52. package/dist/components/ui/vaul/use-snap-points.js.map +1 -0
  53. package/dist/components/web3/AccountButton.d.ts.map +1 -1
  54. package/dist/components/web3/AccountButton.js +26 -30
  55. package/dist/components/web3/AccountButton.js.map +1 -1
  56. package/dist/components/web3/ConnectWallets/index.d.ts.map +1 -1
  57. package/dist/components/web3/ConnectWallets/index.js +12 -64
  58. package/dist/components/web3/ConnectWallets/index.js.map +1 -1
  59. package/dist/components/widget/AppHeader/ActivityButton.d.ts +2 -0
  60. package/dist/components/widget/AppHeader/ActivityButton.d.ts.map +1 -0
  61. package/dist/components/widget/AppHeader/ActivityButton.js +46 -0
  62. package/dist/components/widget/AppHeader/ActivityButton.js.map +1 -0
  63. package/dist/components/widget/AppHeader/AppHeader.d.ts.map +1 -1
  64. package/dist/components/widget/AppHeader/AppHeader.js +35 -29
  65. package/dist/components/widget/AppHeader/AppHeader.js.map +1 -1
  66. package/dist/components/widget/Drawer/index.d.ts +1 -1
  67. package/dist/components/widget/Drawer/index.d.ts.map +1 -1
  68. package/dist/components/widget/Drawer/index.js +37 -30
  69. package/dist/components/widget/Drawer/index.js.map +1 -1
  70. package/dist/components/widget/Informative/Informative.d.ts +7 -0
  71. package/dist/components/widget/Informative/Informative.d.ts.map +1 -0
  72. package/dist/components/widget/Informative/Informative.js +33 -0
  73. package/dist/components/widget/Informative/Informative.js.map +1 -0
  74. package/dist/components/widget/PoweredBy/PoweredBy.d.ts +2 -0
  75. package/dist/components/widget/PoweredBy/PoweredBy.d.ts.map +1 -0
  76. package/dist/components/widget/PoweredBy/PoweredBy.js +31 -0
  77. package/dist/components/widget/PoweredBy/PoweredBy.js.map +1 -0
  78. package/dist/components/widget/PoweredBy/assets/velora.svg.js +12 -0
  79. package/dist/components/widget/PoweredBy/assets/velora.svg.js.map +1 -0
  80. package/dist/components/widget/ReceiverAddress/ReceiverAddress.js +35 -39
  81. package/dist/components/widget/ReceiverAddress/ReceiverAddress.js.map +1 -1
  82. package/dist/components/widget/ReceiverAddress/state/receiverAddressAtom.js +1 -1
  83. package/dist/components/widget/SelectToken/SelectTokenButton.js +55 -65
  84. package/dist/components/widget/SelectToken/SelectTokenButton.js.map +1 -1
  85. package/dist/components/widget/SwapModeSwitcher/state/swapModeActionsAtom.d.ts.map +1 -1
  86. package/dist/components/widget/SwapModeSwitcher/state/swapModeActionsAtom.js +1 -0
  87. package/dist/components/widget/SwapModeSwitcher/state/swapModeActionsAtom.js.map +1 -1
  88. package/dist/components/widget/TokenInput/index.d.ts.map +1 -1
  89. package/dist/components/widget/TokenInput/index.js +133 -103
  90. package/dist/components/widget/TokenInput/index.js.map +1 -1
  91. package/dist/components/widget/TokenInput/types.d.ts +4 -2
  92. package/dist/components/widget/TokenInput/types.d.ts.map +1 -1
  93. package/dist/components/widget/TradeOverview/Stepper.d.ts.map +1 -1
  94. package/dist/components/widget/TradeOverview/Stepper.js +38 -3
  95. package/dist/components/widget/TradeOverview/Stepper.js.map +1 -1
  96. package/dist/components/widget/WrapEth/WrapEthDrawerButton.d.ts +2 -1
  97. package/dist/components/widget/WrapEth/WrapEthDrawerButton.d.ts.map +1 -1
  98. package/dist/components/widget/WrapEth/WrapEthDrawerButton.js +30 -29
  99. package/dist/components/widget/WrapEth/WrapEthDrawerButton.js.map +1 -1
  100. package/dist/hooks/gas/config.d.ts +6 -0
  101. package/dist/hooks/gas/config.d.ts.map +1 -0
  102. package/dist/hooks/gas/config.js +53 -0
  103. package/dist/hooks/gas/config.js.map +1 -0
  104. package/dist/hooks/gas/types.d.ts +43 -0
  105. package/dist/hooks/gas/types.d.ts.map +1 -0
  106. package/dist/hooks/gas/useGasPrices.d.ts +7 -0
  107. package/dist/hooks/gas/useGasPrices.d.ts.map +1 -0
  108. package/dist/hooks/gas/useGasPrices.js +118 -0
  109. package/dist/hooks/gas/useGasPrices.js.map +1 -0
  110. package/dist/hooks/gas/utils.d.ts +8 -0
  111. package/dist/hooks/gas/utils.d.ts.map +1 -0
  112. package/dist/hooks/gas/utils.js +21 -0
  113. package/dist/hooks/gas/utils.js.map +1 -0
  114. package/dist/hooks/getCode/useIsAccountContract.d.ts +2 -0
  115. package/dist/hooks/getCode/useIsAccountContract.d.ts.map +1 -0
  116. package/dist/hooks/getCode/useIsAccountContract.js +34 -0
  117. package/dist/hooks/getCode/useIsAccountContract.js.map +1 -0
  118. package/dist/hooks/permit/hooks/useGetPermitInfo.d.ts +27 -0
  119. package/dist/hooks/permit/hooks/useGetPermitInfo.d.ts.map +1 -0
  120. package/dist/hooks/permit/hooks/useGetPermitInfo.js +98 -0
  121. package/dist/hooks/permit/hooks/useGetPermitInfo.js.map +1 -0
  122. package/dist/hooks/permit/hooks/useGetSafePermitInfo.d.ts +31 -0
  123. package/dist/hooks/permit/hooks/useGetSafePermitInfo.d.ts.map +1 -0
  124. package/dist/hooks/permit/hooks/useGetSafePermitInfo.js +129 -0
  125. package/dist/hooks/permit/hooks/useGetSafePermitInfo.js.map +1 -0
  126. package/dist/hooks/permit/hooks/usePermit1Nonce.d.ts +38 -0
  127. package/dist/hooks/permit/hooks/usePermit1Nonce.d.ts.map +1 -0
  128. package/dist/hooks/permit/hooks/usePermit1Nonce.js +153 -0
  129. package/dist/hooks/permit/hooks/usePermit1Nonce.js.map +1 -0
  130. package/dist/hooks/permit/hooks/useSignArbitraryTypedData.d.ts +18 -0
  131. package/dist/hooks/permit/hooks/useSignArbitraryTypedData.d.ts.map +1 -0
  132. package/dist/hooks/permit/hooks/useSignArbitraryTypedData.js +109 -0
  133. package/dist/hooks/permit/hooks/useSignArbitraryTypedData.js.map +1 -0
  134. package/dist/hooks/permit/hooks/useSignPermit.d.ts +13 -0
  135. package/dist/hooks/permit/hooks/useSignPermit.d.ts.map +1 -0
  136. package/dist/hooks/permit/hooks/useSignPermit.js +103 -0
  137. package/dist/hooks/permit/hooks/useSignPermit.js.map +1 -0
  138. package/dist/hooks/permit/hooks/useSignTokenFromPermit1.d.ts +50 -0
  139. package/dist/hooks/permit/hooks/useSignTokenFromPermit1.d.ts.map +1 -0
  140. package/dist/hooks/permit/hooks/useSignTokenFromPermit1.js +338 -0
  141. package/dist/hooks/permit/hooks/useSignTokenFromPermit1.js.map +1 -0
  142. package/dist/hooks/permit/hooks/useTokenFromPermit1Nonce.d.ts +10 -0
  143. package/dist/hooks/permit/hooks/useTokenFromPermit1Nonce.d.ts.map +1 -0
  144. package/dist/hooks/permit/hooks/useTokenFromPermit1Nonce.js +69 -0
  145. package/dist/hooks/permit/hooks/useTokenFromPermit1Nonce.js.map +1 -0
  146. package/dist/hooks/permit/hooks/useTokenFromPermitInfo.d.ts +10 -0
  147. package/dist/hooks/permit/hooks/useTokenFromPermitInfo.d.ts.map +1 -0
  148. package/dist/hooks/permit/hooks/useTokenFromPermitInfo.js +63 -0
  149. package/dist/hooks/permit/hooks/useTokenFromPermitInfo.js.map +1 -0
  150. package/dist/hooks/permit/hooks/useTryToSignPermit1.d.ts +16 -0
  151. package/dist/hooks/permit/hooks/useTryToSignPermit1.d.ts.map +1 -0
  152. package/dist/hooks/permit/hooks/useTryToSignPermit1.js +94 -0
  153. package/dist/hooks/permit/hooks/useTryToSignPermit1.js.map +1 -0
  154. package/dist/hooks/permit/utils/abi.d.ts +219 -0
  155. package/dist/hooks/permit/utils/abi.d.ts.map +1 -0
  156. package/dist/hooks/permit/utils/abi.js +204 -0
  157. package/dist/hooks/permit/utils/abi.js.map +1 -0
  158. package/dist/hooks/permit/utils/constants.d.ts +224 -0
  159. package/dist/hooks/permit/utils/constants.d.ts.map +1 -0
  160. package/dist/hooks/permit/utils/constants.js +229 -0
  161. package/dist/hooks/permit/utils/constants.js.map +1 -0
  162. package/dist/hooks/permit/utils/construct.d.ts +161 -0
  163. package/dist/hooks/permit/utils/construct.d.ts.map +1 -0
  164. package/dist/hooks/permit/utils/construct.js +227 -0
  165. package/dist/hooks/permit/utils/construct.js.map +1 -0
  166. package/dist/hooks/permit/utils/detect.d.ts +35 -0
  167. package/dist/hooks/permit/utils/detect.d.ts.map +1 -0
  168. package/dist/hooks/permit/utils/detect.js +241 -0
  169. package/dist/hooks/permit/utils/detect.js.map +1 -0
  170. package/dist/hooks/permit/utils/domainSeparator.d.ts +44 -0
  171. package/dist/hooks/permit/utils/domainSeparator.d.ts.map +1 -0
  172. package/dist/hooks/permit/utils/domainSeparator.js +216 -0
  173. package/dist/hooks/permit/utils/domainSeparator.js.map +1 -0
  174. package/dist/hooks/permit/utils/encodeArgs.d.ts +11 -0
  175. package/dist/hooks/permit/utils/encodeArgs.d.ts.map +1 -0
  176. package/dist/hooks/permit/utils/encodeArgs.js +29 -0
  177. package/dist/hooks/permit/utils/encodeArgs.js.map +1 -0
  178. package/dist/hooks/permit/utils/trySignPermit1.d.ts +42 -0
  179. package/dist/hooks/permit/utils/trySignPermit1.d.ts.map +1 -0
  180. package/dist/hooks/permit/utils/trySignPermit1.js +283 -0
  181. package/dist/hooks/permit/utils/trySignPermit1.js.map +1 -0
  182. package/dist/hooks/permit/utils/types.d.ts +77 -0
  183. package/dist/hooks/permit/utils/types.d.ts.map +1 -0
  184. package/dist/hooks/permit/utils/utils.d.ts +15 -0
  185. package/dist/hooks/permit/utils/utils.d.ts.map +1 -0
  186. package/dist/hooks/permit/utils/utils.js +44 -0
  187. package/dist/hooks/permit/utils/utils.js.map +1 -0
  188. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js +1 -1
  189. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
  190. package/dist/hooks/swap/prices/delta/queries/useIsTokenSupportedInDelta.d.ts +1 -1
  191. package/dist/hooks/swap/prices/delta/queries/useIsTokenSupportedInDelta.d.ts.map +1 -1
  192. package/dist/hooks/swap/prices/delta/queries/useIsTokenSupportedInDelta.js +94 -0
  193. package/dist/hooks/swap/prices/delta/queries/useIsTokenSupportedInDelta.js.map +1 -0
  194. package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js +1 -1
  195. package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js.map +1 -1
  196. package/dist/hooks/swap/prices/useSwapPrices.d.ts +3 -0
  197. package/dist/hooks/swap/prices/useSwapPrices.d.ts.map +1 -1
  198. package/dist/hooks/swap/prices/useSwapPrices.js +43 -29
  199. package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
  200. package/dist/hooks/swap/prices/useTokenInputsFromPrice.d.ts +2 -10
  201. package/dist/hooks/swap/prices/useTokenInputsFromPrice.d.ts.map +1 -1
  202. package/dist/hooks/swap/prices/useTokenInputsFromPrice.js +10 -10
  203. package/dist/hooks/swap/prices/useTokenInputsFromPrice.js.map +1 -1
  204. package/dist/hooks/swap/tradeFlow/common/types.d.ts +15 -0
  205. package/dist/hooks/swap/tradeFlow/common/types.d.ts.map +1 -1
  206. package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts +2 -1
  207. package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
  208. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +433 -268
  209. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
  210. package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.d.ts.map +1 -1
  211. package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js +4 -1
  212. package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js.map +1 -1
  213. package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts +2 -1
  214. package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts.map +1 -1
  215. package/dist/hooks/swap/tradeFlow/useMarketFlow.js +411 -245
  216. package/dist/hooks/swap/tradeFlow/useMarketFlow.js.map +1 -1
  217. package/dist/hooks/swap/tradeFlow/useMarketSwapStep.d.ts.map +1 -1
  218. package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js +4 -1
  219. package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js.map +1 -1
  220. package/dist/hooks/tokens/allowance/types.d.ts +2 -0
  221. package/dist/hooks/tokens/allowance/types.d.ts.map +1 -1
  222. package/dist/hooks/tokens/allowance/useGenericTokenAllowance.d.ts +3 -1
  223. package/dist/hooks/tokens/allowance/useGenericTokenAllowance.d.ts.map +1 -1
  224. package/dist/hooks/tokens/allowance/useGenericTokenAllowance.js +4 -2
  225. package/dist/hooks/tokens/allowance/useGenericTokenAllowance.js.map +1 -1
  226. package/dist/hooks/tokens/allowance/useTokenAllowance.d.ts +1 -1
  227. package/dist/hooks/tokens/allowance/useTokenAllowance.d.ts.map +1 -1
  228. package/dist/hooks/tokens/allowance/useTokenAllowance.js +11 -8
  229. package/dist/hooks/tokens/allowance/useTokenAllowance.js.map +1 -1
  230. package/dist/hooks/tokens/balances/useInvalidateTokenData.d.ts +1 -0
  231. package/dist/hooks/tokens/balances/useInvalidateTokenData.d.ts.map +1 -1
  232. package/dist/hooks/tokens/balances/useInvalidateTokenData.js +32 -5
  233. package/dist/hooks/tokens/balances/useInvalidateTokenData.js.map +1 -1
  234. package/dist/hooks/txs/mutations/useSendTx.d.ts.map +1 -1
  235. package/dist/hooks/txs/mutations/useSendTx.js +48 -44
  236. package/dist/hooks/txs/mutations/useSendTx.js.map +1 -1
  237. package/dist/hooks/useIsCrosschainPossible.d.ts +12 -0
  238. package/dist/hooks/useIsCrosschainPossible.d.ts.map +1 -0
  239. package/dist/hooks/useIsCrosschainPossible.js +68 -0
  240. package/dist/hooks/useIsCrosschainPossible.js.map +1 -0
  241. package/dist/index.d.ts +0 -1
  242. package/dist/index.d.ts.map +1 -1
  243. package/dist/index.js +0 -1
  244. package/dist/index.js.map +1 -1
  245. package/dist/lib/utils/delta.d.ts +13 -0
  246. package/dist/lib/utils/delta.d.ts.map +1 -0
  247. package/dist/lib/utils/delta.js +35 -0
  248. package/dist/lib/utils/delta.js.map +1 -0
  249. package/dist/lib/utils/explorer.d.ts +2 -0
  250. package/dist/lib/utils/explorer.d.ts.map +1 -1
  251. package/dist/lib/utils/explorer.js +15 -1
  252. package/dist/lib/utils/explorer.js.map +1 -1
  253. package/dist/styles/global.css.js +4 -0
  254. package/dist/styles/global.css.js.map +1 -0
  255. package/dist/styles.css +194 -3411
  256. package/dist/test/Configurator.d.ts.map +1 -1
  257. package/dist/tokens/defaultTokens.js.map +1 -1
  258. package/dist/widget/Updaters.d.ts.map +1 -1
  259. package/dist/widget/Updaters.js +4 -0
  260. package/dist/widget/Updaters.js.map +1 -1
  261. package/dist/widget/button/hooks/useWidgetButtonExtraProps.d.ts +9 -0
  262. package/dist/widget/button/hooks/useWidgetButtonExtraProps.d.ts.map +1 -0
  263. package/dist/widget/button/hooks/useWidgetButtonExtraProps.js +81 -0
  264. package/dist/widget/button/hooks/useWidgetButtonExtraProps.js.map +1 -0
  265. package/dist/widget/index.d.ts.map +1 -1
  266. package/dist/widget/index.js +303 -259
  267. package/dist/widget/index.js.map +1 -1
  268. package/dist/widget/inputs/hooks/types.d.ts +4 -0
  269. package/dist/widget/inputs/hooks/types.d.ts.map +1 -0
  270. package/dist/widget/inputs/hooks/useTokenFromInputProps.d.ts +3 -1
  271. package/dist/widget/inputs/hooks/useTokenFromInputProps.d.ts.map +1 -1
  272. package/dist/widget/inputs/hooks/useTokenFromInputProps.js +160 -99
  273. package/dist/widget/inputs/hooks/useTokenFromInputProps.js.map +1 -1
  274. package/dist/widget/inputs/hooks/useTokenToInputProps.d.ts +2 -1
  275. package/dist/widget/inputs/hooks/useTokenToInputProps.d.ts.map +1 -1
  276. package/dist/widget/inputs/hooks/useTokenToInputProps.js +136 -105
  277. package/dist/widget/inputs/hooks/useTokenToInputProps.js.map +1 -1
  278. package/package.json +1 -1
@@ -0,0 +1,8 @@
1
+ import { GasPricesAPIResponse, LegacyGasPricesResponse } from './types';
2
+ export declare function isLegacyPriceResponse(legacy: boolean, response: GasPricesAPIResponse): response is LegacyGasPricesResponse;
3
+ /** * Converts a wei string value to gwei. Useful for gas that comes from API
4
+ * @param wei - The wei value to convert.
5
+ * @returns The converted value in gwei as a number.
6
+ */
7
+ export declare function weiToGwei(wei: string): number;
8
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/hooks/gas/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAE7E,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,oBAAoB,GAC7B,QAAQ,IAAI,uBAAuB,CAErC;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE7C"}
@@ -0,0 +1,21 @@
1
+ import { formatGwei } from 'viem';
2
+
3
+ globalThis.jotaiAtomCache = globalThis.jotaiAtomCache || {
4
+ cache: /* @__PURE__ */ new Map(),
5
+ get(name, inst) {
6
+ if (this.cache.has(name)) {
7
+ return this.cache.get(name);
8
+ }
9
+ this.cache.set(name, inst);
10
+ return inst;
11
+ }
12
+ };
13
+ function isLegacyPriceResponse(legacy, response) {
14
+ return legacy && typeof response.safeLow === "string";
15
+ }
16
+ function weiToGwei(wei) {
17
+ return Number(formatGwei(BigInt(wei)));
18
+ }
19
+
20
+ export { isLegacyPriceResponse, weiToGwei };
21
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sources":["../../../src/hooks/gas/utils.ts"],"sourcesContent":["import { formatGwei } from \"viem\";\nimport type { GasPricesAPIResponse, LegacyGasPricesResponse } from \"./types\";\n\nexport function isLegacyPriceResponse(\n legacy: boolean,\n response: GasPricesAPIResponse\n): response is LegacyGasPricesResponse {\n return legacy && typeof response.safeLow === \"string\";\n}\n\n/** * Converts a wei string value to gwei. Useful for gas that comes from API\n * @param wei - The wei value to convert.\n * @returns The converted value in gwei as a number.\n */\nexport function weiToGwei(wei: string): number {\n return Number(formatGwei(BigInt(wei)));\n}\n"],"names":["isLegacyPriceResponse","legacy","response","safeLow","weiToGwei","wei","Number","formatGwei","BigInt"],"mappings":";;;;;;;;;;;;AAGO,SAASA,qBAAAA,CACdC,QACAC,QAAAA,EACqC;AACrC,EAAA,OAAOD,MAAAA,IAAU,OAAOC,QAAAA,CAASC,OAAAA,KAAY,QAAA;AAC/C;AAMO,SAASC,UAAUC,GAAAA,EAAqB;AAC7C,EAAA,OAAOC,MAAAA,CAAOC,UAAAA,CAAWC,MAAAA,CAAOH,GAAG,CAAC,CAAC,CAAA;AACvC;;;;"}
@@ -0,0 +1,2 @@
1
+ export declare const useIsAccountContract: () => import('@tanstack/react-query').UseQueryResult<import('./types').GetIsContractAtAddressResult, Error>;
2
+ //# sourceMappingURL=useIsAccountContract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useIsAccountContract.d.ts","sourceRoot":"","sources":["../../../src/hooks/getCode/useIsAccountContract.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,oBAAoB,6GAIhC,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { d as distExports } from '../../_virtual/index.js';
2
+ import { useAccount } from 'wagmi';
3
+ import { useIsContractAtAddress } from './useIsContractAtAddress.js';
4
+
5
+ globalThis.jotaiAtomCache = globalThis.jotaiAtomCache || {
6
+ cache: /* @__PURE__ */ new Map(),
7
+ get(name, inst) {
8
+ if (this.cache.has(name)) {
9
+ return this.cache.get(name);
10
+ }
11
+ this.cache.set(name, inst);
12
+ return inst;
13
+ }
14
+ };
15
+ const useIsAccountContract = () => {
16
+ const $ = distExports.c(2);
17
+ const {
18
+ address
19
+ } = useAccount();
20
+ let t0;
21
+ if ($[0] !== address) {
22
+ t0 = {
23
+ address
24
+ };
25
+ $[0] = address;
26
+ $[1] = t0;
27
+ } else {
28
+ t0 = $[1];
29
+ }
30
+ return useIsContractAtAddress(t0);
31
+ };
32
+
33
+ export { useIsAccountContract };
34
+ //# sourceMappingURL=useIsAccountContract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useIsAccountContract.js","sources":["../../../src/hooks/getCode/useIsAccountContract.ts"],"sourcesContent":["import { useAccount } from \"wagmi\";\nimport { useIsContractAtAddress } from \"./useIsContractAtAddress\";\n\nexport const useIsAccountContract = () => {\n const { address } = useAccount();\n\n return useIsContractAtAddress({ address });\n};\n"],"names":["useIsAccountContract","$","_c","address","useAccount","t0","useIsContractAtAddress"],"mappings":";;;;;;;;;;;;;;AAGO,MAAMA,uBAAuBA,MAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAClC,EAAA,MAAA;AAAA,IAAAC;AAAAA,MAAoBC,UAAAA,EAAW;AAAE,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAJ,CAAAA,QAAAE,OAAAA,EAAA;AAEHE,IAAAA,EAAAA,GAAA;AAAA,MAAAF;AAAAA,KAAA;AAAWF,IAAAA,CAAAA,MAAAE,OAAAA;AAAAF,IAAAA,CAAAA,MAAAI,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAJ,EAAA,CAAA,CAAA;AAAA;AAAA,EAAA,OAAlCK,uBAAuBD,EAAW,CAAA;AAAC;;;;"}
@@ -0,0 +1,27 @@
1
+ import { SupportedChainId } from '../../../lib/web3/wagmi/types';
2
+ import { Address } from 'viem';
3
+ import { UseQueryOptions, UseQueryResult } from '@tanstack/react-query';
4
+ import { NotDetectedPermitSupport, PermitSupportResult } from '../utils/detect';
5
+ type GetPermitInfoQueryKey = readonly [
6
+ "permitInfo",
7
+ Address?,
8
+ SupportedChainId?
9
+ ];
10
+ type PermitInfo = PermitSupportResult & {
11
+ tokenAddress: Address;
12
+ chainId: SupportedChainId;
13
+ };
14
+ type NotDetectedPermitInfo = NotDetectedPermitSupport & {
15
+ tokenAddress: Address;
16
+ chainId: SupportedChainId;
17
+ };
18
+ type PermitInfoResult = PermitInfo | NotDetectedPermitInfo;
19
+ export type UseGetPermitInfoParameters<Select = PermitInfoResult> = {
20
+ tokenAddress?: Address;
21
+ chainId?: SupportedChainId;
22
+ query?: Omit<UseQueryOptions<PermitInfoResult, Error, Select, GetPermitInfoQueryKey>, "queryKey" | "queryFn">;
23
+ };
24
+ export type UseGetPermitInfoReturnType<Select = PermitInfoResult> = UseQueryResult<Select, Error>;
25
+ export declare function useGetPermitInfo<Select = PermitInfoResult>({ tokenAddress, chainId, query, }: UseGetPermitInfoParameters<Select>): UseGetPermitInfoReturnType<Select>;
26
+ export {};
27
+ //# sourceMappingURL=useGetPermitInfo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGetPermitInfo.d.ts","sourceRoot":"","sources":["../../../../src/hooks/permit/hooks/useGetPermitInfo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEL,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACzB,MAAM,iBAAiB,CAAC;AAKzB,KAAK,qBAAqB,GAAG,SAAS;IACpC,YAAY;IACZ,OAAO,CAAC;IACR,gBAAgB,CAAC;CAClB,CAAC;AAEF,KAAK,UAAU,GAAG,mBAAmB,GAAG;IACtC,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF,KAAK,qBAAqB,GAAG,wBAAwB,GAAG;IACtD,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF,KAAK,gBAAgB,GAAG,UAAU,GAAG,qBAAqB,CAAC;AAE3D,MAAM,MAAM,0BAA0B,CAAC,MAAM,GAAG,gBAAgB,IAAI;IAClE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,KAAK,CAAC,EAAE,IAAI,CACV,eAAe,CAAC,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,qBAAqB,CAAC,EACvE,UAAU,GAAG,SAAS,CACvB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,0BAA0B,CAAC,MAAM,GAAG,gBAAgB,IAC9D,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAEhC,wBAAgB,gBAAgB,CAAC,MAAM,GAAG,gBAAgB,EAAE,EAC1D,YAAY,EACZ,OAAO,EACP,KAAK,GACN,EAAE,0BAA0B,CAAC,MAAM,CAAC,GAAG,0BAA0B,CAAC,MAAM,CAAC,CA+CzE"}
@@ -0,0 +1,98 @@
1
+ import { d as distExports } from '../../../_virtual/index.js';
2
+ import { useQuery } from '@tanstack/react-query';
3
+ import { detectPermitSupportType } from '../utils/detect.js';
4
+ import { useConfig } from 'wagmi';
5
+ import { constructAddressLinkForChain } from '../../../lib/utils/explorer.js';
6
+ import { assert } from 'ts-essentials';
7
+
8
+ globalThis.jotaiAtomCache = globalThis.jotaiAtomCache || {
9
+ cache: /* @__PURE__ */ new Map(),
10
+ get(name, inst) {
11
+ if (this.cache.has(name)) {
12
+ return this.cache.get(name);
13
+ }
14
+ this.cache.set(name, inst);
15
+ return inst;
16
+ }
17
+ };
18
+ function useGetPermitInfo(t0) {
19
+ const $ = distExports.c(14);
20
+ const {
21
+ tokenAddress,
22
+ chainId,
23
+ query
24
+ } = t0;
25
+ const config = useConfig();
26
+ const queryEnabled = query?.enabled ?? true;
27
+ let t1;
28
+ if ($[0] !== tokenAddress) {
29
+ t1 = tokenAddress?.toLowerCase();
30
+ $[0] = tokenAddress;
31
+ $[1] = t1;
32
+ } else {
33
+ t1 = $[1];
34
+ }
35
+ const t2 = t1;
36
+ let t3;
37
+ if ($[2] !== chainId || $[3] !== t2) {
38
+ t3 = ["permitInfo", t2, chainId];
39
+ $[2] = chainId;
40
+ $[3] = t2;
41
+ $[4] = t3;
42
+ } else {
43
+ t3 = $[4];
44
+ }
45
+ let t4;
46
+ if ($[5] !== chainId || $[6] !== config || $[7] !== tokenAddress) {
47
+ t4 = async () => {
48
+ assert(tokenAddress, "tokenAddress is required");
49
+ assert(chainId, "chainId is required");
50
+ const permitSupport = await detectPermitSupportType({
51
+ config,
52
+ tokenAddress,
53
+ chainId
54
+ });
55
+ const result = {
56
+ ...permitSupport,
57
+ tokenAddress,
58
+ chainId
59
+ };
60
+ console.log("PERMIT1::permitInfo result", result);
61
+ console.log("PERMIT1::check Token at explorer", constructAddressLinkForChain({
62
+ chainId,
63
+ address: tokenAddress
64
+ }) + "#writeContract");
65
+ return result;
66
+ };
67
+ $[5] = chainId;
68
+ $[6] = config;
69
+ $[7] = tokenAddress;
70
+ $[8] = t4;
71
+ } else {
72
+ t4 = $[8];
73
+ }
74
+ const t5 = queryEnabled && !!tokenAddress && !!chainId;
75
+ let t6;
76
+ if ($[9] !== query || $[10] !== t3 || $[11] !== t4 || $[12] !== t5) {
77
+ t6 = {
78
+ queryKey: t3,
79
+ queryFn: t4,
80
+ staleTime: Infinity,
81
+ gcTime: Infinity,
82
+ ...query,
83
+ enabled: t5
84
+ };
85
+ $[9] = query;
86
+ $[10] = t3;
87
+ $[11] = t4;
88
+ $[12] = t5;
89
+ $[13] = t6;
90
+ } else {
91
+ t6 = $[13];
92
+ }
93
+ const queryResult = useQuery(t6);
94
+ return queryResult;
95
+ }
96
+
97
+ export { useGetPermitInfo };
98
+ //# sourceMappingURL=useGetPermitInfo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGetPermitInfo.js","sources":["../../../../src/hooks/permit/hooks/useGetPermitInfo.ts"],"sourcesContent":["import type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport type { Address } from \"viem\";\nimport {\n useQuery,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport {\n detectPermitSupportType,\n type NotDetectedPermitSupport,\n type PermitSupportResult,\n} from \"../utils/detect\";\nimport { useConfig } from \"wagmi\";\nimport { constructAddressLinkForChain } from \"@/lib/utils/explorer\";\nimport { assert } from \"ts-essentials\";\n\ntype GetPermitInfoQueryKey = readonly [\n \"permitInfo\",\n Address?,\n SupportedChainId?,\n];\n\ntype PermitInfo = PermitSupportResult & {\n tokenAddress: Address;\n chainId: SupportedChainId;\n};\n\ntype NotDetectedPermitInfo = NotDetectedPermitSupport & {\n tokenAddress: Address;\n chainId: SupportedChainId;\n};\n\ntype PermitInfoResult = PermitInfo | NotDetectedPermitInfo;\n\nexport type UseGetPermitInfoParameters<Select = PermitInfoResult> = {\n tokenAddress?: Address;\n chainId?: SupportedChainId;\n query?: Omit<\n UseQueryOptions<PermitInfoResult, Error, Select, GetPermitInfoQueryKey>,\n \"queryKey\" | \"queryFn\"\n >;\n};\n\nexport type UseGetPermitInfoReturnType<Select = PermitInfoResult> =\n UseQueryResult<Select, Error>;\n\nexport function useGetPermitInfo<Select = PermitInfoResult>({\n tokenAddress,\n chainId,\n query,\n}: UseGetPermitInfoParameters<Select>): UseGetPermitInfoReturnType<Select> {\n const config = useConfig();\n\n const queryEnabled = query?.enabled ?? true;\n\n const queryResult = useQuery<\n PermitInfoResult,\n Error,\n Select,\n GetPermitInfoQueryKey\n >({\n queryKey: [\"permitInfo\", tokenAddress?.toLowerCase() as Address, chainId],\n queryFn: async () => {\n assert(tokenAddress, \"tokenAddress is required\");\n assert(chainId, \"chainId is required\");\n\n const permitSupport = await detectPermitSupportType({\n config,\n tokenAddress,\n chainId,\n });\n\n const result = {\n ...permitSupport,\n tokenAddress,\n chainId,\n };\n\n console.log(\"PERMIT1::permitInfo result\", result);\n console.log(\n \"PERMIT1::check Token at explorer\",\n constructAddressLinkForChain({\n chainId,\n address: tokenAddress,\n }) + \"#writeContract\"\n );\n\n return result;\n },\n // Token Permit support won't change during App runtime\n staleTime: Infinity,\n gcTime: Infinity,\n ...query,\n enabled: queryEnabled && !!tokenAddress && !!chainId,\n });\n\n return queryResult;\n}\n"],"names":["useGetPermitInfo","t0","$","_c","tokenAddress","chainId","query","config","useConfig","queryEnabled","enabled","t1","toLowerCase","t2","t3","t4","assert","permitSupport","detectPermitSupportType","result","console","log","constructAddressLinkForChain","address","t5","t6","queryKey","queryFn","staleTime","Infinity","gcTime","queryResult","useQuery"],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import { Address } from 'viem';
2
+ import { SupportedChainId } from '../../../lib/web3/wagmi/types';
3
+ import { TrySignPermitFailure, TrySignPermitSuccess } from '../utils/trySignPermit1';
4
+ import { PermitSupportResult } from '../utils/detect';
5
+ import { Prettify } from 'ts-essentials';
6
+ type UseGetSafePermitInfoParameters = {
7
+ tokenAddress?: Address;
8
+ chainId?: SupportedChainId;
9
+ enabled?: boolean;
10
+ };
11
+ type UseGetSafePermitInfoSuccess = {
12
+ testPermitResult?: TrySignPermitSuccess;
13
+ safePermitInfo?: PermitSupportResult;
14
+ };
15
+ type UseGetSafePermitInfoFailure = {
16
+ testPermitResult?: TrySignPermitFailure;
17
+ safePermitInfo?: undefined;
18
+ };
19
+ export type UseGetSafePermitInfoResult = Prettify<(UseGetSafePermitInfoSuccess | UseGetSafePermitInfoFailure) & {
20
+ isLoading: boolean;
21
+ isError: boolean;
22
+ error: Error | null;
23
+ isSuccess: boolean;
24
+ }>;
25
+ /**
26
+ * Prefer this hook for getting permitInfo
27
+ * as it employs more checks
28
+ */
29
+ export declare function useGetSafePermitInfo({ tokenAddress, chainId, enabled, }: UseGetSafePermitInfoParameters): UseGetSafePermitInfoResult;
30
+ export {};
31
+ //# sourceMappingURL=useGetSafePermitInfo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGetSafePermitInfo.d.ts","sourceRoot":"","sources":["../../../../src/hooks/permit/hooks/useGetSafePermitInfo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAGpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EACV,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,KAAK,8BAA8B,GAAG;IACpC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,KAAK,2BAA2B,GAAG;IACjC,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;IACxC,cAAc,CAAC,EAAE,mBAAmB,CAAC;CACtC,CAAC;AAEF,KAAK,2BAA2B,GAAG;IACjC,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;IACxC,cAAc,CAAC,EAAE,SAAS,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,QAAQ,CAC/C,CAAC,2BAA2B,GAAG,2BAA2B,CAAC,GAAG;IAC5D,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;CACpB,CACF,CAAC;AAEF;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,YAAY,EACZ,OAAO,EACP,OAAc,GACf,EAAE,8BAA8B,GAAG,0BAA0B,CAiD7D"}
@@ -0,0 +1,129 @@
1
+ import { d as distExports } from '../../../_virtual/index.js';
2
+ import { useGetPermitInfo } from './useGetPermitInfo.js';
3
+ import { useTryToSignPermit1 } from './useTryToSignPermit1.js';
4
+
5
+ globalThis.jotaiAtomCache = globalThis.jotaiAtomCache || {
6
+ cache: /* @__PURE__ */ new Map(),
7
+ get(name, inst) {
8
+ if (this.cache.has(name)) {
9
+ return this.cache.get(name);
10
+ }
11
+ this.cache.set(name, inst);
12
+ return inst;
13
+ }
14
+ };
15
+ function useGetSafePermitInfo(t0) {
16
+ const $ = distExports.c(26);
17
+ const {
18
+ tokenAddress,
19
+ chainId,
20
+ enabled: t1
21
+ } = t0;
22
+ const enabled = t1 === void 0 ? true : t1;
23
+ let t2;
24
+ if ($[0] !== enabled) {
25
+ t2 = {
26
+ enabled
27
+ };
28
+ $[0] = enabled;
29
+ $[1] = t2;
30
+ } else {
31
+ t2 = $[1];
32
+ }
33
+ let t3;
34
+ if ($[2] !== chainId || $[3] !== t2 || $[4] !== tokenAddress) {
35
+ t3 = {
36
+ tokenAddress,
37
+ chainId,
38
+ query: t2
39
+ };
40
+ $[2] = chainId;
41
+ $[3] = t2;
42
+ $[4] = tokenAddress;
43
+ $[5] = t3;
44
+ } else {
45
+ t3 = $[5];
46
+ }
47
+ const permitInfoQuery = useGetPermitInfo(t3);
48
+ const t4 = permitInfoQuery.data?.type !== "NOT_DETECTED" ? permitInfoQuery.data : void 0;
49
+ const t5 = permitInfoQuery.data?.tokenAddress;
50
+ const t6 = permitInfoQuery.data?.chainId;
51
+ let t7;
52
+ if ($[6] !== enabled) {
53
+ t7 = {
54
+ enabled
55
+ };
56
+ $[6] = enabled;
57
+ $[7] = t7;
58
+ } else {
59
+ t7 = $[7];
60
+ }
61
+ let t8;
62
+ if ($[8] !== t4 || $[9] !== t5 || $[10] !== t6 || $[11] !== t7) {
63
+ t8 = {
64
+ permitInfo: t4,
65
+ tokenAddress: t5,
66
+ chainId: t6,
67
+ query: t7
68
+ };
69
+ $[8] = t4;
70
+ $[9] = t5;
71
+ $[10] = t6;
72
+ $[11] = t7;
73
+ $[12] = t8;
74
+ } else {
75
+ t8 = $[12];
76
+ }
77
+ const trySignPermitQuery = useTryToSignPermit1(t8);
78
+ const testPermitResult = trySignPermitQuery.data;
79
+ const safePermitInfo = testPermitResult?.success ? testPermitResult.permitInfo : void 0;
80
+ const isLoading = permitInfoQuery.isLoading || trySignPermitQuery.isLoading;
81
+ const isError = permitInfoQuery.isError || trySignPermitQuery.isError;
82
+ const error = permitInfoQuery.error || trySignPermitQuery.error;
83
+ const isSuccess = permitInfoQuery.isSuccess || trySignPermitQuery.isSuccess;
84
+ if (testPermitResult?.success) {
85
+ let t92;
86
+ if ($[13] !== error || $[14] !== isError || $[15] !== isLoading || $[16] !== isSuccess || $[17] !== safePermitInfo || $[18] !== testPermitResult) {
87
+ t92 = {
88
+ testPermitResult,
89
+ safePermitInfo,
90
+ isLoading,
91
+ isError,
92
+ error,
93
+ isSuccess
94
+ };
95
+ $[13] = error;
96
+ $[14] = isError;
97
+ $[15] = isLoading;
98
+ $[16] = isSuccess;
99
+ $[17] = safePermitInfo;
100
+ $[18] = testPermitResult;
101
+ $[19] = t92;
102
+ } else {
103
+ t92 = $[19];
104
+ }
105
+ return t92;
106
+ }
107
+ let t9;
108
+ if ($[20] !== error || $[21] !== isError || $[22] !== isLoading || $[23] !== isSuccess || $[24] !== testPermitResult) {
109
+ t9 = {
110
+ testPermitResult,
111
+ isLoading,
112
+ isError,
113
+ error,
114
+ isSuccess
115
+ };
116
+ $[20] = error;
117
+ $[21] = isError;
118
+ $[22] = isLoading;
119
+ $[23] = isSuccess;
120
+ $[24] = testPermitResult;
121
+ $[25] = t9;
122
+ } else {
123
+ t9 = $[25];
124
+ }
125
+ return t9;
126
+ }
127
+
128
+ export { useGetSafePermitInfo };
129
+ //# sourceMappingURL=useGetSafePermitInfo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGetSafePermitInfo.js","sources":["../../../../src/hooks/permit/hooks/useGetSafePermitInfo.ts"],"sourcesContent":["import type { Address } from \"viem\";\nimport { useGetPermitInfo } from \"./useGetPermitInfo\";\nimport { useTryToSignPermit1 } from \"./useTryToSignPermit1\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport type {\n TrySignPermitFailure,\n TrySignPermitSuccess,\n} from \"../utils/trySignPermit1\";\nimport type { PermitSupportResult } from \"../utils/detect\";\nimport type { Prettify } from \"ts-essentials\";\n\ntype UseGetSafePermitInfoParameters = {\n tokenAddress?: Address;\n chainId?: SupportedChainId;\n enabled?: boolean;\n};\n\ntype UseGetSafePermitInfoSuccess = {\n testPermitResult?: TrySignPermitSuccess;\n safePermitInfo?: PermitSupportResult;\n};\n\ntype UseGetSafePermitInfoFailure = {\n testPermitResult?: TrySignPermitFailure;\n safePermitInfo?: undefined;\n};\n\nexport type UseGetSafePermitInfoResult = Prettify<\n (UseGetSafePermitInfoSuccess | UseGetSafePermitInfoFailure) & {\n isLoading: boolean;\n isError: boolean;\n error: Error | null;\n isSuccess: boolean;\n }\n>;\n\n/**\n * Prefer this hook for getting permitInfo\n * as it employs more checks\n */\nexport function useGetSafePermitInfo({\n tokenAddress,\n chainId,\n enabled = true, // enabled: false to get cached results\n}: UseGetSafePermitInfoParameters): UseGetSafePermitInfoResult {\n const permitInfoQuery = useGetPermitInfo({\n tokenAddress,\n chainId,\n query: {\n enabled,\n },\n });\n\n const trySignPermitQuery = useTryToSignPermit1({\n permitInfo:\n permitInfoQuery.data?.type !== \"NOT_DETECTED\"\n ? permitInfoQuery.data\n : undefined,\n tokenAddress: permitInfoQuery.data?.tokenAddress,\n chainId: permitInfoQuery.data?.chainId,\n query: {\n enabled,\n },\n });\n\n const testPermitResult = trySignPermitQuery.data;\n\n const safePermitInfo = testPermitResult?.success\n ? testPermitResult.permitInfo\n : undefined;\n const isLoading = permitInfoQuery.isLoading || trySignPermitQuery.isLoading;\n const isError = permitInfoQuery.isError || trySignPermitQuery.isError;\n const error = permitInfoQuery.error || trySignPermitQuery.error;\n const isSuccess = permitInfoQuery.isSuccess || trySignPermitQuery.isSuccess;\n\n if (testPermitResult?.success) {\n return {\n testPermitResult,\n safePermitInfo, // when present, Token can use some kind of Permit1\n isLoading,\n isError,\n error,\n isSuccess,\n };\n }\n\n return {\n testPermitResult,\n isLoading,\n isError,\n error,\n isSuccess,\n };\n}\n"],"names":["useGetSafePermitInfo","t0","$","_c","tokenAddress","chainId","enabled","t1","undefined","t2","t3","query","permitInfoQuery","useGetPermitInfo","t4","data","type","t5","t6","t7","t8","permitInfo","trySignPermitQuery","useTryToSignPermit1","testPermitResult","safePermitInfo","success","isLoading","isError","error","isSuccess","t9"],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import { ERC_20_NONCES_ABI } from '../utils/constants';
2
+ import { SupportedChainId } from '../../../lib/web3/wagmi/types';
3
+ import { Token } from '../../../tokens/state/types';
4
+ import { QueryObserverResult, RefetchOptions } from '@tanstack/react-query';
5
+ import { Address } from 'viem';
6
+ interface UsePermitNonceParams {
7
+ token?: Address;
8
+ owner?: Address;
9
+ chainId?: SupportedChainId;
10
+ enabled?: boolean;
11
+ }
12
+ type SetNonceInput = {
13
+ token: Pick<Token, "address" | "network">;
14
+ owner: Address;
15
+ usedNonce?: bigint;
16
+ };
17
+ type UseMarkNonceAsUsedResult = {
18
+ markNonceAsUsed: (input: SetNonceInput) => void;
19
+ clearNonce: (input: Pick<SetNonceInput, "token" | "owner">) => void;
20
+ };
21
+ export declare function useMarkNonceAsUsed(): UseMarkNonceAsUsedResult;
22
+ export type NonceMethod = (typeof ERC_20_NONCES_ABI)[number]["name"];
23
+ type PermitNonceResult = {
24
+ nonceMethod: NonceMethod;
25
+ nonceToUse: bigint;
26
+ };
27
+ export type UsePermitNonceResult = {
28
+ nonceToUse?: PermitNonceResult["nonceToUse"] | null;
29
+ nonceMethod?: PermitNonceResult["nonceMethod"] | null;
30
+ isLoading: boolean;
31
+ isError: boolean;
32
+ isSuccess: boolean;
33
+ error: Error | null;
34
+ refetch: (options?: RefetchOptions) => Promise<QueryObserverResult<PermitNonceResult | null, Error>>;
35
+ };
36
+ export declare function usePermit1Nonce({ token, owner, chainId, enabled, }: UsePermitNonceParams): UsePermitNonceResult;
37
+ export {};
38
+ //# sourceMappingURL=usePermit1Nonce.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePermit1Nonce.d.ts","sourceRoot":"","sources":["../../../../src/hooks/permit/hooks/usePermit1Nonce.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EACV,mBAAmB,EACnB,cAAc,EACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAIpC,UAAU,oBAAoB;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAKD,KAAK,aAAa,GAAG;IACnB,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC,CAAC;IAC1C,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,wBAAwB,GAAG;IAE9B,eAAe,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAEhD,UAAU,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC;CACrE,CAAC;AAEF,wBAAgB,kBAAkB,IAAI,wBAAwB,CA4C7D;AAcD,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;AAErE,KAAK,iBAAiB,GAAG;IACvB,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAEjC,UAAU,CAAC,EAAE,iBAAiB,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;IACpD,WAAW,CAAC,EAAE,iBAAiB,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;IACtD,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,CACP,OAAO,CAAC,EAAE,cAAc,KACrB,OAAO,CAAC,mBAAmB,CAAC,iBAAiB,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;CACpE,CAAC;AAEF,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,KAAK,EACL,OAAO,EACP,OAAc,GACf,EAAE,oBAAoB,GAAG,oBAAoB,CA6F7C"}
@@ -0,0 +1,153 @@
1
+ import { useReadContracts } from 'wagmi';
2
+ import { ERC_20_NONCES_ABI } from '../utils/constants.js';
3
+ import { useAtomValue, atom, useSetAtom } from 'jotai';
4
+ import { useMemo } from 'react';
5
+
6
+ globalThis.jotaiAtomCache = globalThis.jotaiAtomCache || {
7
+ cache: /* @__PURE__ */ new Map(),
8
+ get(name, inst) {
9
+ if (this.cache.has(name)) {
10
+ return this.cache.get(name);
11
+ }
12
+ this.cache.set(name, inst);
13
+ return inst;
14
+ }
15
+ };
16
+ const NoncesAtom = globalThis.jotaiAtomCache.get("/Users/andriishymkiv/work/velora/widget/packages/ui/src/hooks/permit/hooks/usePermit1Nonce.ts/NoncesAtom", atom({}));
17
+ NoncesAtom.debugLabel = "NoncesAtom";
18
+ function useMarkNonceAsUsed() {
19
+ const setNonces = useSetAtom(NoncesAtom);
20
+ const markNonceAsUsed = ({
21
+ token,
22
+ owner,
23
+ usedNonce
24
+ }) => {
25
+ setNonces((prev) => {
26
+ const key = getNonceKey({
27
+ token: token.address,
28
+ owner,
29
+ chainId: token.network
30
+ });
31
+ const prevNonce = usedNonce ?? prev[key] ?? 0n;
32
+ return {
33
+ ...prev,
34
+ [key]: prevNonce + 1n
35
+ };
36
+ });
37
+ };
38
+ const clearNonce = ({
39
+ token: token_0,
40
+ owner: owner_0
41
+ }) => {
42
+ setNonces((prev_0) => {
43
+ const key_0 = getNonceKey({
44
+ token: token_0.address,
45
+ owner: owner_0,
46
+ chainId: token_0.network
47
+ });
48
+ if (prev_0[key_0] === void 0) return prev_0;
49
+ const {
50
+ [key_0]: _,
51
+ ...withoutKey
52
+ } = prev_0;
53
+ return withoutKey;
54
+ });
55
+ };
56
+ return {
57
+ markNonceAsUsed,
58
+ clearNonce
59
+ };
60
+ }
61
+ function getNonceKey({
62
+ token,
63
+ owner,
64
+ chainId
65
+ }) {
66
+ return `${chainId}:${token.toLowerCase()}:${owner.toLowerCase()}`;
67
+ }
68
+ function usePermit1Nonce({
69
+ token,
70
+ owner,
71
+ chainId,
72
+ enabled = true
73
+ }) {
74
+ const key = token && owner && chainId ? getNonceKey({
75
+ token,
76
+ owner,
77
+ chainId
78
+ }) : null;
79
+ const noncesMap = useAtomValue(NoncesAtom);
80
+ const {
81
+ contractCalls: contractCalls_0,
82
+ select: select_0
83
+ } = useMemo(() => {
84
+ const select = (data) => {
85
+ const successIndex = data.findIndex((d) => d.status === "success");
86
+ if (successIndex === -1) return null;
87
+ const method = contractCalls[successIndex]?.functionName;
88
+ const result = data[successIndex]?.result;
89
+ if (!method || result === void 0) return null;
90
+ const lastUnusedNonce = key ? noncesMap[key] ?? 0n : 0n;
91
+ const nonce = result > lastUnusedNonce ? result : lastUnusedNonce;
92
+ return {
93
+ nonceMethod: method,
94
+ nonceToUse: nonce
95
+ };
96
+ };
97
+ const ZERO_ADDRESS = "0x0000000000000000000000000000000000000000";
98
+ const tokenAddress = token?.toLowerCase() ?? ZERO_ADDRESS;
99
+ const ownerAddress = owner?.toLowerCase() ?? ZERO_ADDRESS;
100
+ const contractCalls = [{
101
+ address: tokenAddress,
102
+ abi: ERC_20_NONCES_ABI,
103
+ functionName: "nonces",
104
+ args: [ownerAddress]
105
+ }, {
106
+ address: tokenAddress,
107
+ abi: ERC_20_NONCES_ABI,
108
+ functionName: "_nonces",
109
+ args: [ownerAddress]
110
+ }, {
111
+ address: tokenAddress,
112
+ abi: ERC_20_NONCES_ABI,
113
+ functionName: "nonce",
114
+ args: [ownerAddress]
115
+ }, {
116
+ address: tokenAddress,
117
+ abi: ERC_20_NONCES_ABI,
118
+ functionName: "getNonce",
119
+ args: [ownerAddress]
120
+ }];
121
+ return {
122
+ contractCalls,
123
+ select
124
+ };
125
+ }, [noncesMap, key, owner, token]);
126
+ const {
127
+ data: nonceResult,
128
+ isLoading,
129
+ isError,
130
+ isSuccess,
131
+ error,
132
+ refetch
133
+ } = useReadContracts({
134
+ allowFailure: true,
135
+ contracts: contractCalls_0,
136
+ query: {
137
+ enabled: enabled && !!(token && owner && chainId),
138
+ select: select_0
139
+ }
140
+ });
141
+ return {
142
+ nonceToUse: nonceResult === null ? null : nonceResult?.nonceToUse,
143
+ nonceMethod: nonceResult === null ? null : nonceResult?.nonceMethod,
144
+ isLoading,
145
+ isError,
146
+ isSuccess,
147
+ error,
148
+ refetch
149
+ };
150
+ }
151
+
152
+ export { useMarkNonceAsUsed, usePermit1Nonce };
153
+ //# sourceMappingURL=usePermit1Nonce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePermit1Nonce.js","sources":["../../../../src/hooks/permit/hooks/usePermit1Nonce.ts"],"sourcesContent":["import { useReadContracts } from \"wagmi\";\nimport { ERC_20_NONCES_ABI } from \"../utils/constants\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { atom, useAtomValue, useSetAtom } from \"jotai\";\nimport type { Token } from \"@/tokens/state/types\";\nimport type {\n QueryObserverResult,\n RefetchOptions,\n} from \"@tanstack/react-query\";\nimport type { Address } from \"viem\";\nimport { useMemo } from \"react\";\nimport type { ReadContractsData } from \"wagmi/query\";\n\ninterface UsePermitNonceParams {\n token?: Address;\n owner?: Address;\n chainId?: SupportedChainId;\n enabled?: boolean;\n}\n\n// chainId:token:owner => unused nonce (next to be used, starting with 0)\nconst NoncesAtom = atom<Record<TokenNonceKey, bigint>>({});\n\ntype SetNonceInput = {\n token: Pick<Token, \"address\" | \"network\">;\n owner: Address;\n usedNonce?: bigint;\n};\n\ntype UseMarkNonceAsUsedResult = {\n // mark as minimum nonce to use for next Permit, after sending Order or tx out\n markNonceAsUsed: (input: SetNonceInput) => void;\n // clear saved minimum nonce to rely on fetched nonce, if Order or tx failed\n clearNonce: (input: Pick<SetNonceInput, \"token\" | \"owner\">) => void;\n};\n\nexport function useMarkNonceAsUsed(): UseMarkNonceAsUsedResult {\n const setNonces = useSetAtom(NoncesAtom);\n\n const markNonceAsUsed: UseMarkNonceAsUsedResult[\"markNonceAsUsed\"] = ({\n token,\n owner,\n usedNonce,\n }) => {\n setNonces((prev) => {\n const key = getNonceKey({\n token: token.address as Address,\n owner,\n chainId: token.network,\n });\n const prevNonce = usedNonce ?? prev[key] ?? 0n;\n return {\n ...prev,\n [key]: prevNonce + 1n,\n };\n });\n };\n\n const clearNonce: UseMarkNonceAsUsedResult[\"clearNonce\"] = ({\n token,\n owner,\n }) => {\n setNonces((prev) => {\n const key = getNonceKey({\n token: token.address as Address,\n owner,\n chainId: token.network,\n });\n\n if (prev[key] === undefined) return prev;\n\n const { [key]: _, ...withoutKey } = prev;\n return withoutKey;\n });\n };\n\n return {\n markNonceAsUsed,\n clearNonce,\n };\n}\n\ntype GetNonceInput = {\n token: Address;\n owner: Address;\n chainId: SupportedChainId;\n};\n\ntype TokenNonceKey = `${number}:${Address}:${Address}`;\n\nfunction getNonceKey({ token, owner, chainId }: GetNonceInput): TokenNonceKey {\n return `${chainId}:${token.toLowerCase() as Address}:${owner.toLowerCase() as Address}` as const;\n}\n\nexport type NonceMethod = (typeof ERC_20_NONCES_ABI)[number][\"name\"];\n\ntype PermitNonceResult = {\n nonceMethod: NonceMethod;\n nonceToUse: bigint;\n};\n\nexport type UsePermitNonceResult = {\n // null when no nonce support detected\n nonceToUse?: PermitNonceResult[\"nonceToUse\"] | null;\n nonceMethod?: PermitNonceResult[\"nonceMethod\"] | null;\n isLoading: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n refetch: (\n options?: RefetchOptions\n ) => Promise<QueryObserverResult<PermitNonceResult | null, Error>>;\n};\n\nexport function usePermit1Nonce({\n token,\n owner,\n chainId,\n enabled = true,\n}: UsePermitNonceParams): UsePermitNonceResult {\n const key =\n token && owner && chainId ? getNonceKey({ token, owner, chainId }) : null;\n\n const noncesMap = useAtomValue(NoncesAtom);\n\n // explicitly memoize select\n const { contractCalls, select } = useMemo(() => {\n const select = (\n data: ReadContractsData<typeof contractCalls, true>\n ): PermitNonceResult | null => {\n const successIndex = data.findIndex((d) => d.status === \"success\");\n // no method successfully returned anything\n if (successIndex === -1) return null;\n const method = contractCalls[successIndex]?.functionName;\n const result = data[successIndex]?.result;\n\n // the vars will always be non-null at this point\n if (!method || result === undefined) return null;\n\n const lastUnusedNonce = key ? (noncesMap[key] ?? 0n) : 0n;\n const nonce = result > lastUnusedNonce ? result : lastUnusedNonce;\n\n return {\n nonceMethod: method,\n nonceToUse: nonce,\n };\n };\n\n const ZERO_ADDRESS = \"0x0000000000000000000000000000000000000000\";\n // for the case where the token or owner is not set, to match the types,\n // readContracts isn't run anyway because of enabled=false\n const tokenAddress = (token?.toLowerCase() as Address) ?? ZERO_ADDRESS;\n const ownerAddress = (owner?.toLowerCase() as Address) ?? ZERO_ADDRESS;\n\n const contractCalls = [\n {\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: \"nonces\",\n args: [ownerAddress],\n },\n {\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: \"_nonces\",\n args: [ownerAddress],\n },\n {\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: \"nonce\",\n args: [ownerAddress],\n },\n {\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: \"getNonce\",\n args: [ownerAddress],\n },\n ] as const;\n\n return {\n contractCalls,\n select,\n };\n }, [noncesMap, key, owner, token]);\n\n const {\n data: nonceResult,\n isLoading,\n isError,\n isSuccess,\n error,\n refetch,\n } = useReadContracts({\n allowFailure: true,\n contracts: contractCalls,\n query: {\n enabled: enabled && !!(token && owner && chainId),\n select,\n },\n });\n\n return {\n nonceToUse: nonceResult === null ? null : nonceResult?.nonceToUse,\n nonceMethod: nonceResult === null ? null : nonceResult?.nonceMethod,\n isLoading,\n isError,\n isSuccess,\n error,\n refetch,\n };\n}\n"],"names":["NoncesAtom","globalThis","jotaiAtomCache","get","atom","debugLabel","useMarkNonceAsUsed","setNonces","useSetAtom","markNonceAsUsed","token","owner","usedNonce","prev","key","getNonceKey","address","chainId","network","prevNonce","clearNonce","undefined","_","withoutKey","toLowerCase","usePermit1Nonce","enabled","noncesMap","useAtomValue","contractCalls","select","useMemo","data","successIndex","findIndex","d","status","method","functionName","result","lastUnusedNonce","nonce","nonceMethod","nonceToUse","ZERO_ADDRESS","tokenAddress","ownerAddress","abi","ERC_20_NONCES_ABI","args","nonceResult","isLoading","isError","isSuccess","error","refetch","useReadContracts","allowFailure","contracts","query"],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { Hash } from 'viem';
2
+ import { SignTypedDataVariables } from 'wagmi/query';
3
+ export type UseSignedArbitraryTypedDataInput = {
4
+ onSuccess?: (signature: Hash) => void;
5
+ onError?: (error: Error) => void;
6
+ };
7
+ export type UseSignedArbitraryTypedDataReturn = {
8
+ signTypedData: (typedData: SignTypedDataVariables) => void;
9
+ signTypedDataAsync: (typedData: SignTypedDataVariables) => Promise<Hash>;
10
+ isPending: boolean;
11
+ isSuccess: boolean;
12
+ isError: boolean;
13
+ error: Error | null;
14
+ signature?: Hash;
15
+ reset: () => void;
16
+ };
17
+ export declare const useSignArbitraryTypedData: ({ onSuccess, onError, }?: UseSignedArbitraryTypedDataInput) => UseSignedArbitraryTypedDataReturn;
18
+ //# sourceMappingURL=useSignArbitraryTypedData.d.ts.map