@velora-dex/widget 0.0.12 → 0.0.13

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 (275) 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.css +317 -5
  254. package/dist/tokens/defaultTokens.js.map +1 -1
  255. package/dist/widget/Updaters.d.ts.map +1 -1
  256. package/dist/widget/Updaters.js +4 -0
  257. package/dist/widget/Updaters.js.map +1 -1
  258. package/dist/widget/button/hooks/useWidgetButtonExtraProps.d.ts +9 -0
  259. package/dist/widget/button/hooks/useWidgetButtonExtraProps.d.ts.map +1 -0
  260. package/dist/widget/button/hooks/useWidgetButtonExtraProps.js +81 -0
  261. package/dist/widget/button/hooks/useWidgetButtonExtraProps.js.map +1 -0
  262. package/dist/widget/index.d.ts.map +1 -1
  263. package/dist/widget/index.js +302 -259
  264. package/dist/widget/index.js.map +1 -1
  265. package/dist/widget/inputs/hooks/types.d.ts +4 -0
  266. package/dist/widget/inputs/hooks/types.d.ts.map +1 -0
  267. package/dist/widget/inputs/hooks/useTokenFromInputProps.d.ts +3 -1
  268. package/dist/widget/inputs/hooks/useTokenFromInputProps.d.ts.map +1 -1
  269. package/dist/widget/inputs/hooks/useTokenFromInputProps.js +160 -99
  270. package/dist/widget/inputs/hooks/useTokenFromInputProps.js.map +1 -1
  271. package/dist/widget/inputs/hooks/useTokenToInputProps.d.ts +2 -1
  272. package/dist/widget/inputs/hooks/useTokenToInputProps.d.ts.map +1 -1
  273. package/dist/widget/inputs/hooks/useTokenToInputProps.js +136 -105
  274. package/dist/widget/inputs/hooks/useTokenToInputProps.js.map +1 -1
  275. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trySignPermit1.d.ts","sourceRoot":"","sources":["../../../../src/hooks/permit/utils/trySignPermit1.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAiB,MAAM,aAAa,CAAC;AACzD,OAAO,EAAY,KAAK,OAAO,EAA8B,MAAM,MAAM,CAAC;AAE1E,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACzB,MAAM,UAAU,CAAC;AAIlB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,mBAAmB,GAAG,wBAAwB,CAAC;IAC3D,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,UAAU,EAAE,mBAAmB,CAAC;IAChC,OAAO,EAAE,IAAI,CAAC;IACd,KAAK,EAAE,IAAI,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,UAAU,EAAE,mBAAmB,GAAG,wBAAwB,CAAC;IAC3D,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,oBAAoB,GAAG,oBAAoB,CAAC;AAU9E;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAAC,EACnC,MAAM,EACN,OAAO,EACP,UAAU,EACV,YAAY,EACZ,cAAuC,EACvC,MAAwB,GACzB,EAAE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAyOpD"}
@@ -0,0 +1,283 @@
1
+ import { readContracts } from '@wagmi/core';
2
+ import { parseEther, parseSignature } from 'viem';
3
+ import { privateKeyToAccount, generatePrivateKey } from 'viem/accounts';
4
+ import { constructPermitTypedData } from './construct.js';
5
+ import { ERC_20_NONCES_ABI } from './constants.js';
6
+ import { DAI_PERMIT_ABI, EIP_2612_PERMIT_ABI } from './abi.js';
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
+ const randomAcc = privateKeyToAccount(generatePrivateKey());
19
+ const randomAccAddress = randomAcc.address;
20
+ const RANDOM_SPENDER_ADDRESS = "0x0000000000000000000000000000000000000123";
21
+ async function trySignPermit1({
22
+ config,
23
+ chainId,
24
+ permitInfo,
25
+ tokenAddress,
26
+ spenderAddress = RANDOM_SPENDER_ADDRESS,
27
+ amount = parseEther("1")
28
+ }) {
29
+ if (permitInfo.type === "NOT_DETECTED") {
30
+ return {
31
+ tokenAddress,
32
+ chainId,
33
+ permitInfo,
34
+ success: false,
35
+ error: "Permit not detected"
36
+ };
37
+ }
38
+ try {
39
+ const deadline = BigInt(Math.floor(Date.now() / 1e3) + 3600);
40
+ const nonceBefore = await readNonce({
41
+ config,
42
+ tokenAddress,
43
+ ownerAddress: randomAccAddress,
44
+ chainId
45
+ });
46
+ if (nonceBefore === null) {
47
+ return {
48
+ tokenAddress,
49
+ chainId,
50
+ permitInfo,
51
+ success: false,
52
+ error: "Failed to read nonce"
53
+ };
54
+ }
55
+ const permitTypedData = permitInfo.type === "dai" ? constructPermitTypedData({
56
+ type: "dai",
57
+ permitInfo,
58
+ holder: randomAccAddress,
59
+ spender: spenderAddress,
60
+ nonce: nonceBefore.nonce,
61
+ expiry: deadline,
62
+ allowed: true
63
+ }) : constructPermitTypedData({
64
+ type: "permit1",
65
+ permitInfo,
66
+ owner: randomAccAddress,
67
+ spender: spenderAddress,
68
+ value: amount,
69
+ nonce: nonceBefore.nonce,
70
+ deadline
71
+ });
72
+ if (permitTypedData.primaryType !== "Permit" || !("domain" in permitTypedData && "message" in permitTypedData)) {
73
+ return {
74
+ tokenAddress,
75
+ chainId,
76
+ permitInfo,
77
+ success: false,
78
+ error: "Unsupported permit type for trySignPermit (only EIP-2612 and DAI supported)"
79
+ };
80
+ }
81
+ const signature = await randomAcc.signTypedData({
82
+ domain: permitTypedData.domain,
83
+ types: permitTypedData.types,
84
+ primaryType: permitTypedData.primaryType,
85
+ message: permitTypedData.message
86
+ });
87
+ const {
88
+ v,
89
+ r,
90
+ s
91
+ } = parseSignature(signature);
92
+ if (v === void 0) {
93
+ return {
94
+ tokenAddress,
95
+ chainId,
96
+ permitInfo,
97
+ success: false,
98
+ error: "Failed to parse signature - v component is undefined"
99
+ };
100
+ }
101
+ const vNumber = Number(v);
102
+ let permitCallData;
103
+ if (permitInfo.type === "dai") {
104
+ permitCallData = createPermitCallData({
105
+ permitType: "dai",
106
+ owner: randomAccAddress,
107
+ spender: spenderAddress,
108
+ value: amount,
109
+ nonce: nonceBefore.nonce,
110
+ deadline,
111
+ v: vNumber,
112
+ r,
113
+ s
114
+ });
115
+ } else {
116
+ permitCallData = createPermitCallData({
117
+ permitType: "eip2612",
118
+ owner: randomAccAddress,
119
+ spender: spenderAddress,
120
+ value: amount,
121
+ nonce: nonceBefore.nonce,
122
+ deadline,
123
+ v: vNumber,
124
+ r,
125
+ s
126
+ });
127
+ }
128
+ const multicallContracts = [
129
+ // 1. Read nonce before permit
130
+ {
131
+ chainId,
132
+ address: tokenAddress,
133
+ abi: ERC_20_NONCES_ABI,
134
+ functionName: nonceBefore.nonceMethod,
135
+ args: [randomAccAddress]
136
+ },
137
+ // 2. Call permit function
138
+ {
139
+ chainId,
140
+ address: tokenAddress,
141
+ abi: permitInfo.type === "dai" ? DAI_PERMIT_ABI : EIP_2612_PERMIT_ABI,
142
+ functionName: "permit",
143
+ args: permitCallData
144
+ },
145
+ // 3. Read nonce after permit
146
+ {
147
+ chainId,
148
+ address: tokenAddress,
149
+ abi: ERC_20_NONCES_ABI,
150
+ functionName: nonceBefore.nonceMethod,
151
+ args: [randomAccAddress]
152
+ }
153
+ ];
154
+ const multicallResult = await readContracts(config, {
155
+ allowFailure: true,
156
+ contracts: multicallContracts
157
+ });
158
+ const [nonceBeforeResult, permitResult, nonceAfterResult] = multicallResult;
159
+ if (!nonceBeforeResult || !permitResult || !nonceAfterResult) {
160
+ return {
161
+ tokenAddress,
162
+ chainId,
163
+ permitInfo,
164
+ success: false,
165
+ error: "Multicall returned incomplete results"
166
+ };
167
+ }
168
+ if (permitResult.status === "failure") {
169
+ return {
170
+ tokenAddress,
171
+ chainId,
172
+ permitInfo,
173
+ success: false,
174
+ error: `Permit call failed: ${permitResult.error?.message || "Unknown error"}`
175
+ };
176
+ }
177
+ if (nonceBeforeResult.status === "failure" || nonceAfterResult.status === "failure") {
178
+ return {
179
+ tokenAddress,
180
+ chainId,
181
+ permitInfo,
182
+ success: false,
183
+ error: "Failed to read nonces in multicall"
184
+ };
185
+ }
186
+ const nonceBeforeMulticall = nonceBeforeResult.result;
187
+ const nonceAfterMulticall = nonceAfterResult.result;
188
+ const nonceIncreased = nonceAfterMulticall > nonceBeforeMulticall;
189
+ if (!nonceIncreased) {
190
+ return {
191
+ tokenAddress,
192
+ chainId,
193
+ permitInfo,
194
+ success: false,
195
+ error: "Permit simulation failed - nonce did not increase"
196
+ };
197
+ }
198
+ return {
199
+ tokenAddress,
200
+ chainId,
201
+ permitInfo,
202
+ success: true,
203
+ nonceBefore: nonceBeforeMulticall,
204
+ nonceAfter: nonceAfterMulticall,
205
+ nonceMethod: nonceBefore.nonceMethod,
206
+ error: null
207
+ };
208
+ } catch (error) {
209
+ return {
210
+ tokenAddress,
211
+ chainId,
212
+ permitInfo,
213
+ success: false,
214
+ error: error instanceof Error ? error.message : "Unknown error occurred"
215
+ };
216
+ }
217
+ }
218
+ async function readNonce({
219
+ config,
220
+ tokenAddress,
221
+ ownerAddress,
222
+ chainId
223
+ }) {
224
+ const contractCalls = [{
225
+ chainId,
226
+ address: tokenAddress,
227
+ abi: ERC_20_NONCES_ABI,
228
+ functionName: "nonces",
229
+ args: [ownerAddress]
230
+ }, {
231
+ chainId,
232
+ address: tokenAddress,
233
+ abi: ERC_20_NONCES_ABI,
234
+ functionName: "_nonces",
235
+ args: [ownerAddress]
236
+ }, {
237
+ chainId,
238
+ address: tokenAddress,
239
+ abi: ERC_20_NONCES_ABI,
240
+ functionName: "nonce",
241
+ args: [ownerAddress]
242
+ }, {
243
+ chainId,
244
+ address: tokenAddress,
245
+ abi: ERC_20_NONCES_ABI,
246
+ functionName: "getNonce",
247
+ args: [ownerAddress]
248
+ }];
249
+ const results = await readContracts(config, {
250
+ allowFailure: true,
251
+ contracts: contractCalls
252
+ });
253
+ const validNonceIndex = results.findIndex((result) => result.status === "success");
254
+ if (validNonceIndex === -1) {
255
+ return null;
256
+ }
257
+ const nonce = results[validNonceIndex]?.result;
258
+ const nonceMethod = contractCalls[validNonceIndex]?.functionName;
259
+ return {
260
+ nonce,
261
+ nonceMethod
262
+ };
263
+ }
264
+ function createPermitCallData({
265
+ permitType,
266
+ owner,
267
+ spender,
268
+ value,
269
+ nonce,
270
+ deadline,
271
+ v,
272
+ r,
273
+ s
274
+ }) {
275
+ if (permitType === "dai") {
276
+ return [owner, spender, nonce, deadline, true, v, r, s];
277
+ } else {
278
+ return [owner, spender, value, deadline, v, r, s];
279
+ }
280
+ }
281
+
282
+ export { trySignPermit1 };
283
+ //# sourceMappingURL=trySignPermit1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trySignPermit1.js","sources":["../../../../src/hooks/permit/utils/trySignPermit1.ts"],"sourcesContent":["import { type Config, readContracts } from \"@wagmi/core\";\nimport { type Hex, type Address, parseEther, parseSignature } from \"viem\";\nimport { generatePrivateKey, privateKeyToAccount } from \"viem/accounts\";\nimport {\n type NotDetectedPermitSupport,\n type PermitSupportResult,\n} from \"./detect\";\nimport { constructPermitTypedData } from \"./construct\";\nimport { ERC_20_NONCES_ABI } from \"./constants\";\nimport { DAI_PERMIT_ABI, EIP_2612_PERMIT_ABI } from \"./abi\";\nimport type { NonceMethod } from \"../hooks/usePermit1Nonce\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\n\nexport type TrySignPermitParams = {\n config: Config;\n permitInfo: PermitSupportResult | NotDetectedPermitSupport;\n tokenAddress: Address;\n spenderAddress?: Address;\n amount?: bigint;\n chainId: SupportedChainId;\n};\n\nexport type TrySignPermitSuccess = {\n tokenAddress: Address;\n chainId: SupportedChainId;\n permitInfo: PermitSupportResult;\n success: true;\n error: null;\n nonceBefore: bigint;\n nonceAfter: bigint;\n nonceMethod: NonceMethod;\n};\n\nexport type TrySignPermitFailure = {\n tokenAddress: Address;\n chainId: SupportedChainId;\n permitInfo: PermitSupportResult | NotDetectedPermitSupport;\n success: false;\n error: string;\n};\n\nexport type TrySignPermitResult = TrySignPermitSuccess | TrySignPermitFailure;\n\n// Create a random wallet for testing,\n// wallet starts with nonce=0 everywhere\nconst randomAcc = privateKeyToAccount(generatePrivateKey());\nconst randomAccAddress = randomAcc.address;\n\n// not ZERO_ADDRESS to avoid possible !=address(0) checks\nconst RANDOM_SPENDER_ADDRESS = \"0x0000000000000000000000000000000000000123\";\n\n/**\n * Ultimate check if signing a permit will succeed with detected permitInfo\n * Tests permit functionality by:\n * 1. Creating a random wallet\n * 2. Reading the wallet's nonce\n * 3. Signing permit data with the wallet\n * 4. Making a multicall with: [read nonce, permit(), read nonce]\n * 5. Verifying the nonce increased (indicating permit was processed)\n */\nexport async function trySignPermit1({\n config,\n chainId,\n permitInfo,\n tokenAddress,\n spenderAddress = RANDOM_SPENDER_ADDRESS,\n amount = parseEther(\"1\"),\n}: TrySignPermitParams): Promise<TrySignPermitResult> {\n if (permitInfo.type === \"NOT_DETECTED\") {\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: false,\n error: \"Permit not detected\",\n };\n }\n\n try {\n // Create a deadline 1 hour from now\n const deadline = BigInt(Math.floor(Date.now() / 1000) + 3600);\n\n // Read nonce before permit\n const nonceBefore = await readNonce({\n config,\n tokenAddress,\n ownerAddress: randomAccAddress,\n chainId,\n });\n\n if (nonceBefore === null) {\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: false,\n error: \"Failed to read nonce\",\n };\n }\n\n // Construct permit typed data\n const permitTypedData =\n permitInfo.type === \"dai\"\n ? constructPermitTypedData({\n type: \"dai\",\n permitInfo,\n holder: randomAccAddress,\n spender: spenderAddress,\n nonce: nonceBefore.nonce,\n expiry: deadline,\n allowed: true,\n })\n : constructPermitTypedData({\n type: \"permit1\",\n permitInfo,\n owner: randomAccAddress,\n spender: spenderAddress,\n value: amount,\n nonce: nonceBefore.nonce,\n deadline,\n });\n\n // Only support EIP-2612 and DAI permit types\n if (\n permitTypedData.primaryType !== \"Permit\" ||\n !(\"domain\" in permitTypedData && \"message\" in permitTypedData)\n ) {\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: false,\n error:\n \"Unsupported permit type for trySignPermit (only EIP-2612 and DAI supported)\",\n };\n }\n\n // Sign the permit data using the account's signTypedData method\n const signature = await randomAcc.signTypedData({\n domain: permitTypedData.domain,\n types: permitTypedData.types,\n primaryType: permitTypedData.primaryType,\n message: permitTypedData.message,\n });\n\n // Split signature into v, r, s\n const { v, r, s } = parseSignature(signature);\n\n // Ensure v is defined and convert to number for permit calls\n if (v === undefined) {\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: false,\n error: \"Failed to parse signature - v component is undefined\",\n };\n }\n\n // Convert v to number for permit calls\n const vNumber = Number(v);\n\n // Create permit call data\n let permitCallData: unknown[];\n if (permitInfo.type === \"dai\") {\n permitCallData = createPermitCallData({\n permitType: \"dai\",\n owner: randomAccAddress,\n spender: spenderAddress,\n value: amount,\n nonce: nonceBefore.nonce,\n deadline,\n v: vNumber,\n r,\n s,\n });\n } else {\n permitCallData = createPermitCallData({\n permitType: \"eip2612\",\n owner: randomAccAddress,\n spender: spenderAddress,\n value: amount,\n nonce: nonceBefore.nonce,\n deadline,\n v: vNumber,\n r,\n s,\n });\n }\n\n // Create multicall with: [read nonce, permit(), read nonce]\n const multicallContracts = [\n // 1. Read nonce before permit\n {\n chainId,\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: nonceBefore.nonceMethod,\n args: [randomAccAddress],\n },\n // 2. Call permit function\n {\n chainId,\n address: tokenAddress,\n abi: permitInfo.type === \"dai\" ? DAI_PERMIT_ABI : EIP_2612_PERMIT_ABI,\n functionName: \"permit\",\n args: permitCallData as\n | [Address, Address, bigint, bigint, boolean, number, Hex, Hex]\n | [Address, Address, bigint, bigint, number, Hex, Hex],\n },\n // 3. Read nonce after permit\n {\n chainId,\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: nonceBefore.nonceMethod,\n args: [randomAccAddress],\n },\n ] as const;\n\n // Execute the multicall\n const multicallResult = await readContracts(config, {\n allowFailure: true,\n contracts: multicallContracts,\n });\n\n // Extract results\n const [nonceBeforeResult, permitResult, nonceAfterResult] = multicallResult;\n\n // Check if all results exist\n if (!nonceBeforeResult || !permitResult || !nonceAfterResult) {\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: false,\n error: \"Multicall returned incomplete results\",\n };\n }\n\n // Check if permit call succeeded\n if (permitResult.status === \"failure\") {\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: false,\n error: `Permit call failed: ${permitResult.error?.message || \"Unknown error\"}`,\n };\n }\n\n // Check if we can read nonces\n if (\n nonceBeforeResult.status === \"failure\" ||\n nonceAfterResult.status === \"failure\"\n ) {\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: false,\n error: \"Failed to read nonces in multicall\",\n };\n }\n\n const nonceBeforeMulticall = nonceBeforeResult.result as bigint;\n const nonceAfterMulticall = nonceAfterResult.result as bigint;\n\n // Verify nonce increased (indicating permit was processed)\n const nonceIncreased = nonceAfterMulticall > nonceBeforeMulticall;\n\n if (!nonceIncreased) {\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: false,\n error: \"Permit simulation failed - nonce did not increase\",\n };\n }\n\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: true,\n nonceBefore: nonceBeforeMulticall,\n nonceAfter: nonceAfterMulticall,\n nonceMethod: nonceBefore.nonceMethod,\n error: null,\n };\n } catch (error) {\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: false,\n error: error instanceof Error ? error.message : \"Unknown error occurred\",\n };\n }\n}\n\ntype ReadNonceParams = {\n config: Config;\n tokenAddress: Address;\n ownerAddress: Address;\n chainId: SupportedChainId;\n};\n\n/**\n * Reads the nonce for a given address and token\n */\nasync function readNonce({\n config,\n tokenAddress,\n ownerAddress,\n chainId,\n}: ReadNonceParams): Promise<{\n nonce: bigint;\n nonceMethod: NonceMethod;\n} | null> {\n const contractCalls = [\n {\n chainId,\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: \"nonces\",\n args: [ownerAddress],\n },\n {\n chainId,\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: \"_nonces\",\n args: [ownerAddress],\n },\n {\n chainId,\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: \"nonce\",\n args: [ownerAddress],\n },\n {\n chainId,\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: \"getNonce\",\n args: [ownerAddress],\n },\n ] as const;\n\n const results = await readContracts(config, {\n allowFailure: true,\n contracts: contractCalls,\n });\n\n const validNonceIndex = results.findIndex(\n (result) => result.status === \"success\"\n );\n\n if (validNonceIndex === -1) {\n return null;\n }\n\n const nonce = results[validNonceIndex]?.result as bigint;\n const nonceMethod = contractCalls[validNonceIndex]\n ?.functionName as NonceMethod;\n\n return { nonce, nonceMethod };\n}\n\n/**\n * Creates the call data for permit function based on permit type\n */\nfunction createPermitCallData({\n permitType,\n owner,\n spender,\n value,\n nonce,\n deadline,\n v,\n r,\n s,\n}: {\n permitType: \"eip2612\" | \"dai\";\n owner: Address;\n spender: Address;\n value: bigint;\n nonce: bigint;\n deadline: bigint;\n v: number;\n r: Hex;\n s: Hex;\n}): unknown[] {\n if (permitType === \"dai\") {\n // DAI permit: (holder, spender, nonce, expiry, allowed, v, r, s)\n return [owner, spender, nonce, deadline, true, v, r, s];\n } else {\n // EIP2612 permit: (owner, spender, value, deadline, v, r, s)\n return [owner, spender, value, deadline, v, r, s];\n }\n}\n"],"names":["randomAcc","privateKeyToAccount","generatePrivateKey","randomAccAddress","address","RANDOM_SPENDER_ADDRESS","trySignPermit1","config","chainId","permitInfo","tokenAddress","spenderAddress","amount","parseEther","type","success","error","deadline","BigInt","Math","floor","Date","now","nonceBefore","readNonce","ownerAddress","permitTypedData","constructPermitTypedData","holder","spender","nonce","expiry","allowed","owner","value","primaryType","signature","signTypedData","domain","types","message","v","r","s","parseSignature","undefined","vNumber","Number","permitCallData","createPermitCallData","permitType","multicallContracts","abi","ERC_20_NONCES_ABI","functionName","nonceMethod","args","DAI_PERMIT_ABI","EIP_2612_PERMIT_ABI","multicallResult","readContracts","allowFailure","contracts","nonceBeforeResult","permitResult","nonceAfterResult","status","nonceBeforeMulticall","result","nonceAfterMulticall","nonceIncreased","nonceAfter","Error","contractCalls","results","validNonceIndex","findIndex"],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ import { Prettify } from 'ts-essentials';
2
+ export interface EIP712TypedData {
3
+ types: EIP712Types & {
4
+ EIP712Domain: EIP712Parameter[];
5
+ };
6
+ domain: EIP712Object;
7
+ message: EIP712Object;
8
+ primaryType: string;
9
+ }
10
+ export interface EIP712Types {
11
+ [key: string]: EIP712Parameter[];
12
+ }
13
+ export interface EIP712Parameter {
14
+ name: string;
15
+ type: string;
16
+ }
17
+ export declare type EIP712ObjectValue = string | number | boolean | EIP712Object;
18
+ export interface EIP712Object {
19
+ [key: string]: EIP712ObjectValue;
20
+ }
21
+ export interface MessageTypes {
22
+ [additionalProperties: string]: MessageTypeProperty[];
23
+ EIP712Domain: MessageTypeProperty[];
24
+ }
25
+ export interface MessageTypeProperty {
26
+ name: string;
27
+ type: string;
28
+ }
29
+ export interface PermitRecoveryParams {
30
+ chainId: number;
31
+ tokenName: string;
32
+ tokenAddress: string;
33
+ callData: string;
34
+ version?: string;
35
+ }
36
+ export interface SyncPermitRecoveryParams extends PermitRecoveryParams {
37
+ nonce: number;
38
+ isDomainWithoutVersion?: boolean;
39
+ isSaltInsteadOfChainId?: boolean;
40
+ }
41
+ export interface PermitTypedDataParamsModel {
42
+ chainId: number;
43
+ tokenName: string;
44
+ tokenAddress: string;
45
+ params: EIP712Object;
46
+ isDomainWithoutVersion?: boolean;
47
+ isSaltInsteadOfChainId?: boolean;
48
+ version?: string;
49
+ permitModelFields?: EIP712Parameter[];
50
+ }
51
+ export interface PermitParams extends EIP712Object {
52
+ owner: string;
53
+ spender: string;
54
+ value: string;
55
+ nonce: number;
56
+ deadline: number;
57
+ }
58
+ export interface DaiPermitParams extends EIP712Object {
59
+ holder: string;
60
+ spender: string;
61
+ nonce: number;
62
+ expiry: number;
63
+ allowed: boolean;
64
+ }
65
+ export type MapTuple<T extends readonly unknown[], K extends keyof T[number]> = {
66
+ [I in keyof T]: T[I] extends {
67
+ [P in K]?: infer V;
68
+ } ? T[I] extends {
69
+ [P in K]: infer V;
70
+ } ? V : V | undefined : undefined;
71
+ };
72
+ export type PickTupleValue<T extends readonly unknown[], K extends keyof T[number], Extra = unknown> = {
73
+ [I in keyof T]: Prettify<{
74
+ [P in K]: T[I][P];
75
+ } & Extra>;
76
+ };
77
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/hooks/permit/utils/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { Address, Hex } from 'viem';
2
+ import { PermitSupportResult } from './detect';
3
+ type EIP712DomainTuple = {
4
+ fields: Hex;
5
+ name: string;
6
+ version: string;
7
+ chainId: bigint;
8
+ verifyingContract: Address;
9
+ salt: Hex;
10
+ extensions: readonly bigint[];
11
+ };
12
+ /** Retrieves the EIP-712 domain of a contract using EIP-5267 without extensions. */
13
+ export declare function getDomainFromEIP712Domain(eip712Domain: EIP712DomainTuple): PermitSupportResult["domain"] | null;
14
+ export {};
15
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/hooks/permit/utils/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AACzC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAGpD,KAAK,iBAAiB,GAAG;IACvB,MAAM,EAAE,GAAG,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,IAAI,EAAE,GAAG,CAAC;IACV,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/B,CAAC;AAEF,oFAAoF;AACpF,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,iBAAiB,GAC9B,mBAAmB,CAAC,QAAQ,CAAC,GAAG,IAAI,CAwBtC"}
@@ -0,0 +1,44 @@
1
+ globalThis.jotaiAtomCache = globalThis.jotaiAtomCache || {
2
+ cache: /* @__PURE__ */ new Map(),
3
+ get(name, inst) {
4
+ if (this.cache.has(name)) {
5
+ return this.cache.get(name);
6
+ }
7
+ this.cache.set(name, inst);
8
+ return inst;
9
+ }
10
+ };
11
+ function getDomainFromEIP712Domain(eip712Domain) {
12
+ const {
13
+ fields,
14
+ name,
15
+ version,
16
+ chainId,
17
+ verifyingContract,
18
+ salt,
19
+ extensions
20
+ } = eip712Domain;
21
+ if (extensions.length > 0) {
22
+ return null;
23
+ }
24
+ return buildBasicDomain(Number(fields), name, version, chainId, verifyingContract, salt);
25
+ }
26
+ const fieldNames = ["name", "version", "chainId", "verifyingContract", "salt"];
27
+ function buildBasicDomain(fields, name, version, chainId, verifyingContract, salt) {
28
+ const domain = {
29
+ name,
30
+ version,
31
+ chainId: Number(chainId),
32
+ verifyingContract,
33
+ salt
34
+ };
35
+ for (const [i, field] of fieldNames.entries()) {
36
+ if (!(fields & 1 << i)) {
37
+ delete domain[field];
38
+ }
39
+ }
40
+ return domain;
41
+ }
42
+
43
+ export { getDomainFromEIP712Domain };
44
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sources":["../../../../src/hooks/permit/utils/utils.ts"],"sourcesContent":["import type { Address, Hex } from \"viem\";\nimport type { PermitSupportResult } from \"./detect\";\n// Based on https://eips.ethereum.org/EIPS/eip-5267#javascript\n\ntype EIP712DomainTuple = {\n fields: Hex;\n name: string;\n version: string;\n chainId: bigint;\n verifyingContract: Address;\n salt: Hex;\n extensions: readonly bigint[];\n};\n\n/** Retrieves the EIP-712 domain of a contract using EIP-5267 without extensions. */\nexport function getDomainFromEIP712Domain(\n eip712Domain: EIP712DomainTuple\n): PermitSupportResult[\"domain\"] | null {\n const {\n fields,\n name,\n version,\n chainId,\n verifyingContract,\n salt,\n extensions,\n } = eip712Domain;\n\n if (extensions.length > 0) {\n // throw Error(\"Extensions not implemented\");\n return null;\n }\n\n return buildBasicDomain(\n Number(fields),\n name,\n version,\n chainId,\n verifyingContract,\n salt\n );\n}\n\nconst fieldNames = [\n \"name\",\n \"version\",\n \"chainId\",\n \"verifyingContract\",\n \"salt\",\n] as const;\n\n/** Builds a domain object without extensions based on the return values of `eip712Domain()`. */\nfunction buildBasicDomain(\n fields: number,\n name: string,\n version: string,\n chainId: bigint,\n verifyingContract: Address,\n salt: Hex\n): PermitSupportResult[\"domain\"] {\n const domain = {\n name,\n version,\n chainId: Number(chainId),\n verifyingContract,\n salt,\n };\n\n for (const [i, field] of fieldNames.entries()) {\n if (!(fields & (1 << i))) {\n delete domain[field];\n }\n }\n\n return domain;\n}\n"],"names":["getDomainFromEIP712Domain","eip712Domain","fields","name","version","chainId","verifyingContract","salt","extensions","length","buildBasicDomain","Number","fieldNames","domain","i","field","entries"],"mappings":";;;;;;;;;;AAeO,SAASA,0BACdC,YAAAA,EACsC;AACtC,EAAA,MAAM;AAAA,IACJC,MAAAA;AAAAA,IACAC,IAAAA;AAAAA,IACAC,OAAAA;AAAAA,IACAC,OAAAA;AAAAA,IACAC,iBAAAA;AAAAA,IACAC,IAAAA;AAAAA,IACAC;AAAAA,GACF,GAAIP,YAAAA;AAEJ,EAAA,IAAIO,UAAAA,CAAWC,SAAS,CAAA,EAAG;AAEzB,IAAA,OAAO,IAAA;AAAA;AAGT,EAAA,OAAOC,gBAAAA,CACLC,OAAOT,MAAM,CAAA,EACbC,MACAC,OAAAA,EACAC,OAAAA,EACAC,mBACAC,IACF,CAAA;AACF;AAEA,MAAMK,aAAa,CACjB,MAAA,EACA,SAAA,EACA,SAAA,EACA,qBACA,MAAM,CAAA;AAIR,SAASF,iBACPR,MAAAA,EACAC,IAAAA,EACAC,OAAAA,EACAC,OAAAA,EACAC,mBACAC,IAAAA,EAC+B;AAC/B,EAAA,MAAMM,MAAAA,GAAS;AAAA,IACbV,IAAAA;AAAAA,IACAC,OAAAA;AAAAA,IACAC,OAAAA,EAASM,OAAON,OAAO,CAAA;AAAA,IACvBC,iBAAAA;AAAAA,IACAC;AAAAA,GACF;AAEA,EAAA,KAAA,MAAW,CAACO,CAAAA,EAAGC,KAAK,CAAA,IAAKH,UAAAA,CAAWI,SAAQ,EAAG;AAC7C,IAAA,IAAI,EAAEd,MAAAA,GAAU,CAAA,IAAKY,CAAAA,CAAAA,EAAK;AACxB,MAAA,OAAOD,OAAOE,KAAK,CAAA;AAAA;AACrB;AAGF,EAAA,OAAOF,MAAAA;AACT;;;;"}
@@ -79,7 +79,7 @@ function useDeltaPriceQuery(t0) {
79
79
  });
80
80
  }
81
81
  function isPriceParamsValid(priceParams) {
82
- return !!priceParams.destToken && !!priceParams.destDecimals;
82
+ return !!priceParams.destToken && !!priceParams.destDecimals && Number(priceParams.amount) > 0;
83
83
  }
84
84
 
85
85
  export { useDeltaPriceQuery };
@@ -1 +1 @@
1
- {"version":3,"file":"useDeltaPriceQuery.js","sources":["../../../../../../src/hooks/swap/prices/delta/queries/useDeltaPriceQuery.ts"],"sourcesContent":["import { useDeltaSDK } from \"@/hooks/useSDK\";\nimport {\n useQuery,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport { useDebouncedValue } from \"@tanstack/react-pacer/debouncer\";\nimport type {\n DeltaPrice,\n BridgePrice,\n DeltaPriceParams as DParams,\n} from \"@velora-dex/sdk\";\nimport { assert, type MarkOptional } from \"ts-essentials\";\n\n// overload is easier with input.destChainId\ntype RequiredDeltaPriceParams = Omit<DParams, \"destChainId\">;\ntype DeltaPriceParams = MarkOptional<\n RequiredDeltaPriceParams,\n \"destToken\" | \"destDecimals\" // destToken is not available in SwapForm initially\n>;\n\ntype DeltaQueryParams<TData = DeltaPrice | BridgePrice> = Omit<\n UseQueryOptions<DeltaPrice | BridgePrice, Error, TData, DeltaPriceQueryKey>,\n \"queryKey\" | \"queryFn\"\n>;\ntype DeltaQueryResult<TData = DeltaPrice> = UseQueryResult<TData, Error>;\n\ntype DeltaPriceQueryInput<TData = DeltaPrice> = {\n priceParams: DeltaPriceParams;\n query?: DeltaQueryParams<TData>;\n chainId: number;\n timeout?: number;\n};\n\ntype DeltaPriceQueryKey = [\n base: \"swap/prices/delta\",\n chainId: number,\n priceParams: DeltaPriceParams & {\n destChainId?: number;\n },\n];\n\n/**\n * 1. With destChainId: number -> returns BridgePrice\n * 2. With destChainId?: undefined -> returns DeltaPrice\n * 3. With destChainId?: number -> returns DeltaPrice | BridgePrice\n */\nexport function useDeltaPriceQuery<TData = BridgePrice>({\n priceParams,\n query,\n chainId,\n timeout,\n}: DeltaPriceQueryInput<TData> & {\n destChainId: number;\n}): DeltaQueryResult<TData>;\nexport function useDeltaPriceQuery<TData = DeltaPrice>({\n priceParams,\n query,\n chainId,\n timeout,\n}: DeltaPriceQueryInput<TData> & {\n destChainId?: undefined;\n}): DeltaQueryResult<TData>;\nexport function useDeltaPriceQuery<TData = DeltaPrice | BridgePrice>({\n priceParams,\n query,\n chainId,\n timeout,\n}: DeltaPriceQueryInput<TData> & {\n destChainId?: number;\n}): DeltaQueryResult<TData>;\nexport function useDeltaPriceQuery<TData = DeltaPrice | BridgePrice>({\n priceParams: _priceParams,\n query,\n chainId,\n timeout,\n destChainId,\n}: DeltaPriceQueryInput<TData> & {\n destChainId?: number;\n}): DeltaQueryResult<TData> {\n const { sdk } = useDeltaSDK({ chainId });\n\n const priceParams: DeltaPriceParams & { destChainId?: number } = {\n ..._priceParams,\n destChainId,\n };\n\n const queryEnabled = query?.enabled ?? true;\n\n // amount tends to change fast during input\n const [debouncedAmount] = useDebouncedValue(priceParams.amount, {\n wait: 500,\n });\n\n // avoid passing unnecessary params to url?search and queryKey\n const sanitizedPriceParams: DeltaPriceParams & { destChainId?: number } = {\n srcToken: priceParams.srcToken,\n destToken: priceParams.destToken,\n amount: debouncedAmount,\n srcDecimals: priceParams.srcDecimals,\n destDecimals: priceParams.destDecimals,\n userAddress: priceParams.userAddress,\n partner: priceParams.partner,\n destChainId: priceParams.destChainId,\n };\n\n return useQuery<DeltaPrice | BridgePrice, Error, TData, DeltaPriceQueryKey>({\n queryKey: [\"swap/prices/delta\", chainId, sanitizedPriceParams],\n queryFn: ({ signal }) => {\n assert(isPriceParamsValid(sanitizedPriceParams), \"destToken is required\");\n const price = sdk.getDeltaPrice(sanitizedPriceParams, {\n signal,\n timeout,\n });\n return price;\n },\n ...query,\n enabled: queryEnabled && isPriceParamsValid(sanitizedPriceParams),\n });\n}\n\nfunction isPriceParamsValid(\n priceParams: DeltaPriceParams\n): priceParams is RequiredDeltaPriceParams {\n return !!priceParams.destToken && !!priceParams.destDecimals;\n}\n"],"names":["useDeltaPriceQuery","t0","$","_c","priceParams","_priceParams","query","chainId","timeout","destChainId","t1","sdk","useDeltaSDK","queryEnabled","enabled","t2","Symbol","for","wait","debouncedAmount","useDebouncedValue","amount","sanitizedPriceParams","srcToken","destToken","srcDecimals","destDecimals","userAddress","partner","useQuery","queryKey","queryFn","t3","signal","assert","isPriceParamsValid","price","getDeltaPrice"],"mappings":";;;;;;;;;;;;;;;;AAuEO,SAAAA,mBAAAC,EAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAA8D,EAAA,MAAA;AAAA,IAAAC,WAAAA,EAAAC,YAAAA;AAAAA,IAAAC,KAAAA;AAAAA,IAAAC,OAAAA;AAAAA,IAAAC,OAAAA;AAAAA,IAAAC;AAAAA,GAAA,GAAAR,EAAAA;AAQpE,EAAA,IAAAS,EAAAA;AAAA,EAAA,IAAAR,CAAAA,QAAAK,OAAAA,EAAA;AAC6BG,IAAAA,EAAAA,GAAA;AAAA,MAAAH;AAAAA,KAAA;AAAWL,IAAAA,CAAAA,MAAAK,OAAAA;AAAAL,IAAAA,CAAAA,MAAAQ,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAR,EAAA,CAAA,CAAA;AAAA;AAAvC,EAAA,MAAA;AAAA,IAAAS;AAAAA,GAAA,GAAgBC,YAAYF,EAAW,CAAA;AAEvC,EAAA,MAAAN,WAAAA,GAAA;AAAA,IAAA,GACKC,YAAAA;AAAAA,IAAYI;AAAAA,GAAA;AAIjB,EAAA,MAAAI,YAAAA,GAAqBP,OAAKQ,OAAAA,IAAA,IAAA;AAAkB,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAb,EAAA,CAAA,CAAA,KAAAc,MAAAA,CAAAC,GAAAA,CAAA,2BAAA,CAAA,EAAA;AAGoBF,IAAAA,EAAAA,GAAA;AAAA,MAAAG,IAAAA,EAAA;AAAA,KAAA;AAE/DhB,IAAAA,CAAAA,MAAAa,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAb,EAAA,CAAA,CAAA;AAAA;AAFD,EAAA,MAAA,CAAAiB,eAAA,CAAA,GAA0BC,iBAAAA,CAAkBhB,WAAAA,CAAWiB,QAASN,EAE/D,CAAA;AAGD,EAAA,MAAAO,oBAAAA,GAAA;AAAA,IAAAC,UACYnB,WAAAA,CAAWmB,QAAAA;AAAAA,IAAAC,WACVpB,WAAAA,CAAWoB,SAAAA;AAAAA,IAAAH,MAAAA,EACdF,eAAAA;AAAAA,IAAeM,aACVrB,WAAAA,CAAWqB,WAAAA;AAAAA,IAAAC,cACVtB,WAAAA,CAAWsB,YAAAA;AAAAA,IAAAC,aACZvB,WAAAA,CAAWuB,WAAAA;AAAAA,IAAAC,SACfxB,WAAAA,CAAWwB,OAAAA;AAAAA,IAAAnB,aACPL,WAAAA,CAAWK;AAAAA,GAAA;AACxB,EAAA,OAEKoB,QAAAA,CAAA;AAAA,IAAAC,QAAAA,EAAA,CACM,mBAAA,EAAqBvB,OAAAA,EAASe,oBAAoB,CAAA;AAAA,IAAAS,SAAAC,CAAAA,EAAAA,KAAA;AACnD,MAAA,MAAA;AAAA,QAAAC;AAAAA,OAAA,GAAAD,EAAAA;AACRE,MAAAA,MAAAA,CAAOC,kBAAAA,CAAmBb,oBAAoB,CAAA,EAAG,uBAAuB,CAAA;AACxE,MAAA,MAAAc,KAAAA,GAAczB,GAAAA,CAAG0B,aAAAA,CAAef,oBAAAA,EAAoB;AAAA,QAAAW,MAAAA;AAAAA,QAAAzB;AAAAA,OAGnD,CAAA;AAAE,MAAA,OACI4B,KAAAA;AAAAA,KAAK;AAAA,IAAA,GAEX9B,KAAAA;AAAAA,IAAKQ,OAAAA,EACCD,YAAAA,IAAgBsB,kBAAAA,CAAmBb,oBAAoB;AAAA,GACjE,CAAA;AAAC;AAGJ,SAASa,mBACP/B,WAAAA,EACyC;AACzC,EAAA,OAAO,CAAC,CAACA,WAAAA,CAAYoB,SAAAA,IAAa,CAAC,CAACpB,WAAAA,CAAYsB,YAAAA;AAClD;;;;"}
1
+ {"version":3,"file":"useDeltaPriceQuery.js","sources":["../../../../../../src/hooks/swap/prices/delta/queries/useDeltaPriceQuery.ts"],"sourcesContent":["import { useDeltaSDK } from \"@/hooks/useSDK\";\nimport {\n useQuery,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport { useDebouncedValue } from \"@tanstack/react-pacer/debouncer\";\nimport type {\n DeltaPrice,\n BridgePrice,\n DeltaPriceParams as DParams,\n} from \"@velora-dex/sdk\";\nimport { assert, type MarkOptional } from \"ts-essentials\";\n\n// overload is easier with input.destChainId\ntype RequiredDeltaPriceParams = Omit<DParams, \"destChainId\">;\ntype DeltaPriceParams = MarkOptional<\n RequiredDeltaPriceParams,\n \"destToken\" | \"destDecimals\" // destToken is not available in SwapForm initially\n>;\n\ntype DeltaQueryParams<TData = DeltaPrice | BridgePrice> = Omit<\n UseQueryOptions<DeltaPrice | BridgePrice, Error, TData, DeltaPriceQueryKey>,\n \"queryKey\" | \"queryFn\"\n>;\ntype DeltaQueryResult<TData = DeltaPrice> = UseQueryResult<TData, Error>;\n\ntype DeltaPriceQueryInput<TData = DeltaPrice> = {\n priceParams: DeltaPriceParams;\n query?: DeltaQueryParams<TData>;\n chainId: number;\n timeout?: number;\n};\n\ntype DeltaPriceQueryKey = [\n base: \"swap/prices/delta\",\n chainId: number,\n priceParams: DeltaPriceParams & {\n destChainId?: number;\n },\n];\n\n/**\n * 1. With destChainId: number -> returns BridgePrice\n * 2. With destChainId?: undefined -> returns DeltaPrice\n * 3. With destChainId?: number -> returns DeltaPrice | BridgePrice\n */\nexport function useDeltaPriceQuery<TData = BridgePrice>({\n priceParams,\n query,\n chainId,\n timeout,\n}: DeltaPriceQueryInput<TData> & {\n destChainId: number;\n}): DeltaQueryResult<TData>;\nexport function useDeltaPriceQuery<TData = DeltaPrice>({\n priceParams,\n query,\n chainId,\n timeout,\n}: DeltaPriceQueryInput<TData> & {\n destChainId?: undefined;\n}): DeltaQueryResult<TData>;\nexport function useDeltaPriceQuery<TData = DeltaPrice | BridgePrice>({\n priceParams,\n query,\n chainId,\n timeout,\n}: DeltaPriceQueryInput<TData> & {\n destChainId?: number;\n}): DeltaQueryResult<TData>;\nexport function useDeltaPriceQuery<TData = DeltaPrice | BridgePrice>({\n priceParams: _priceParams,\n query,\n chainId,\n timeout,\n destChainId,\n}: DeltaPriceQueryInput<TData> & {\n destChainId?: number;\n}): DeltaQueryResult<TData> {\n const { sdk } = useDeltaSDK({ chainId });\n\n const priceParams: DeltaPriceParams & { destChainId?: number } = {\n ..._priceParams,\n destChainId,\n };\n\n const queryEnabled = query?.enabled ?? true;\n\n // amount tends to change fast during input\n const [debouncedAmount] = useDebouncedValue(priceParams.amount, {\n wait: 500,\n });\n\n // avoid passing unnecessary params to url?search and queryKey\n const sanitizedPriceParams: DeltaPriceParams & { destChainId?: number } = {\n srcToken: priceParams.srcToken,\n destToken: priceParams.destToken,\n amount: debouncedAmount,\n srcDecimals: priceParams.srcDecimals,\n destDecimals: priceParams.destDecimals,\n userAddress: priceParams.userAddress,\n partner: priceParams.partner,\n destChainId: priceParams.destChainId,\n };\n\n return useQuery<DeltaPrice | BridgePrice, Error, TData, DeltaPriceQueryKey>({\n queryKey: [\"swap/prices/delta\", chainId, sanitizedPriceParams],\n queryFn: ({ signal }) => {\n assert(isPriceParamsValid(sanitizedPriceParams), \"destToken is required\");\n const price = sdk.getDeltaPrice(sanitizedPriceParams, {\n signal,\n timeout,\n });\n return price;\n },\n ...query,\n enabled: queryEnabled && isPriceParamsValid(sanitizedPriceParams),\n });\n}\n\nfunction isPriceParamsValid(\n priceParams: DeltaPriceParams\n): priceParams is RequiredDeltaPriceParams {\n return (\n !!priceParams.destToken &&\n !!priceParams.destDecimals &&\n Number(priceParams.amount) > 0\n );\n}\n"],"names":["useDeltaPriceQuery","t0","$","_c","priceParams","_priceParams","query","chainId","timeout","destChainId","t1","sdk","useDeltaSDK","queryEnabled","enabled","t2","Symbol","for","wait","debouncedAmount","useDebouncedValue","amount","sanitizedPriceParams","srcToken","destToken","srcDecimals","destDecimals","userAddress","partner","useQuery","queryKey","queryFn","t3","signal","assert","isPriceParamsValid","price","getDeltaPrice","Number"],"mappings":";;;;;;;;;;;;;;;;AAuEO,SAAAA,mBAAAC,EAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAA8D,EAAA,MAAA;AAAA,IAAAC,WAAAA,EAAAC,YAAAA;AAAAA,IAAAC,KAAAA;AAAAA,IAAAC,OAAAA;AAAAA,IAAAC,OAAAA;AAAAA,IAAAC;AAAAA,GAAA,GAAAR,EAAAA;AAQpE,EAAA,IAAAS,EAAAA;AAAA,EAAA,IAAAR,CAAAA,QAAAK,OAAAA,EAAA;AAC6BG,IAAAA,EAAAA,GAAA;AAAA,MAAAH;AAAAA,KAAA;AAAWL,IAAAA,CAAAA,MAAAK,OAAAA;AAAAL,IAAAA,CAAAA,MAAAQ,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAR,EAAA,CAAA,CAAA;AAAA;AAAvC,EAAA,MAAA;AAAA,IAAAS;AAAAA,GAAA,GAAgBC,YAAYF,EAAW,CAAA;AAEvC,EAAA,MAAAN,WAAAA,GAAA;AAAA,IAAA,GACKC,YAAAA;AAAAA,IAAYI;AAAAA,GAAA;AAIjB,EAAA,MAAAI,YAAAA,GAAqBP,OAAKQ,OAAAA,IAAA,IAAA;AAAkB,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAb,EAAA,CAAA,CAAA,KAAAc,MAAAA,CAAAC,GAAAA,CAAA,2BAAA,CAAA,EAAA;AAGoBF,IAAAA,EAAAA,GAAA;AAAA,MAAAG,IAAAA,EAAA;AAAA,KAAA;AAE/DhB,IAAAA,CAAAA,MAAAa,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAb,EAAA,CAAA,CAAA;AAAA;AAFD,EAAA,MAAA,CAAAiB,eAAA,CAAA,GAA0BC,iBAAAA,CAAkBhB,WAAAA,CAAWiB,QAASN,EAE/D,CAAA;AAGD,EAAA,MAAAO,oBAAAA,GAAA;AAAA,IAAAC,UACYnB,WAAAA,CAAWmB,QAAAA;AAAAA,IAAAC,WACVpB,WAAAA,CAAWoB,SAAAA;AAAAA,IAAAH,MAAAA,EACdF,eAAAA;AAAAA,IAAeM,aACVrB,WAAAA,CAAWqB,WAAAA;AAAAA,IAAAC,cACVtB,WAAAA,CAAWsB,YAAAA;AAAAA,IAAAC,aACZvB,WAAAA,CAAWuB,WAAAA;AAAAA,IAAAC,SACfxB,WAAAA,CAAWwB,OAAAA;AAAAA,IAAAnB,aACPL,WAAAA,CAAWK;AAAAA,GAAA;AACxB,EAAA,OAEKoB,QAAAA,CAAA;AAAA,IAAAC,QAAAA,EAAA,CACM,mBAAA,EAAqBvB,OAAAA,EAASe,oBAAoB,CAAA;AAAA,IAAAS,SAAAC,CAAAA,EAAAA,KAAA;AACnD,MAAA,MAAA;AAAA,QAAAC;AAAAA,OAAA,GAAAD,EAAAA;AACRE,MAAAA,MAAAA,CAAOC,kBAAAA,CAAmBb,oBAAoB,CAAA,EAAG,uBAAuB,CAAA;AACxE,MAAA,MAAAc,KAAAA,GAAczB,GAAAA,CAAG0B,aAAAA,CAAef,oBAAAA,EAAoB;AAAA,QAAAW,MAAAA;AAAAA,QAAAzB;AAAAA,OAGnD,CAAA;AAAE,MAAA,OACI4B,KAAAA;AAAAA,KAAK;AAAA,IAAA,GAEX9B,KAAAA;AAAAA,IAAKQ,OAAAA,EACCD,YAAAA,IAAgBsB,kBAAAA,CAAmBb,oBAAoB;AAAA,GACjE,CAAA;AAAC;AAGJ,SAASa,mBACP/B,WAAAA,EACyC;AACzC,EAAA,OACE,CAAC,CAACA,WAAAA,CAAYoB,SAAAA,IACd,CAAC,CAACpB,WAAAA,CAAYsB,YAAAA,IACdY,MAAAA,CAAOlC,WAAAA,CAAYiB,MAAM,CAAA,GAAI,CAAA;AAEjC;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { UseQueryOptions, UseQueryResult } from '@tanstack/react-query';
2
- type IsTokenSupportedInDeltaParams = string;
2
+ type IsTokenSupportedInDeltaParams = string | undefined;
3
3
  type IsTokenSupportedInDeltaReturn = boolean;
4
4
  type IsTokenSupportedInDeltaQueryParams<TData = IsTokenSupportedInDeltaReturn> = Omit<UseQueryOptions<IsTokenSupportedInDeltaReturn, Error, TData, IsTokenSupportedInDeltaQueryKey>, "queryKey" | "queryFn">;
5
5
  type IsTokenSupportedInDeltaQueryResult<TData = IsTokenSupportedInDeltaReturn> = UseQueryResult<TData, Error>;
@@ -1 +1 @@
1
- {"version":3,"file":"useIsTokenSupportedInDelta.d.ts","sourceRoot":"","sources":["../../../../../../src/hooks/swap/prices/delta/queries/useIsTokenSupportedInDelta.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAE/B,KAAK,6BAA6B,GAAG,MAAM,CAAC;AAC5C,KAAK,6BAA6B,GAAG,OAAO,CAAC;AAE7C,KAAK,kCAAkC,CAAC,KAAK,GAAG,6BAA6B,IAC3E,IAAI,CACF,eAAe,CACb,6BAA6B,EAC7B,KAAK,EACL,KAAK,EACL,+BAA+B,CAChC,EACD,UAAU,GAAG,SAAS,CACvB,CAAC;AACJ,KAAK,kCAAkC,CAAC,KAAK,GAAG,6BAA6B,IAC3E,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAE/B,KAAK,iCAAiC,CAAC,KAAK,GAAG,6BAA6B,IAC1E;IACE,KAAK,EAAE,6BAA6B,CAAC;IACrC,KAAK,CAAC,EAAE,kCAAkC,CAAC,KAAK,CAAC,CAAC;IAClD,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEJ,KAAK,+BAA+B,GAAG;IACrC,IAAI,EAAE,+BAA+B;IACrC,OAAO,EAAE,MAAM;IACf,KAAK,EAAE,6BAA6B;CACrC,CAAC;AAEF,wBAAgB,+BAA+B,CAC7C,KAAK,GAAG,6BAA6B,EACrC,EACA,KAAK,EACL,KAAK,EACL,OAAO,GACR,EAAE,iCAAiC,CAAC,KAAK,CAAC,GAAG,kCAAkC,CAAC,KAAK,CAAC,CAoBtF"}
1
+ {"version":3,"file":"useIsTokenSupportedInDelta.d.ts","sourceRoot":"","sources":["../../../../../../src/hooks/swap/prices/delta/queries/useIsTokenSupportedInDelta.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAG/B,KAAK,6BAA6B,GAAG,MAAM,GAAG,SAAS,CAAC;AACxD,KAAK,6BAA6B,GAAG,OAAO,CAAC;AAE7C,KAAK,kCAAkC,CAAC,KAAK,GAAG,6BAA6B,IAC3E,IAAI,CACF,eAAe,CACb,6BAA6B,EAC7B,KAAK,EACL,KAAK,EACL,+BAA+B,CAChC,EACD,UAAU,GAAG,SAAS,CACvB,CAAC;AACJ,KAAK,kCAAkC,CAAC,KAAK,GAAG,6BAA6B,IAC3E,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAE/B,KAAK,iCAAiC,CAAC,KAAK,GAAG,6BAA6B,IAC1E;IACE,KAAK,EAAE,6BAA6B,CAAC;IACrC,KAAK,CAAC,EAAE,kCAAkC,CAAC,KAAK,CAAC,CAAC;IAClD,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEJ,KAAK,+BAA+B,GAAG;IACrC,IAAI,EAAE,+BAA+B;IACrC,OAAO,EAAE,MAAM;IACf,KAAK,EAAE,6BAA6B;CACrC,CAAC;AAEF,wBAAgB,+BAA+B,CAC7C,KAAK,GAAG,6BAA6B,EACrC,EACA,KAAK,EACL,KAAK,EACL,OAAO,GACR,EAAE,iCAAiC,CAAC,KAAK,CAAC,GAAG,kCAAkC,CAAC,KAAK,CAAC,CAqBtF"}
@@ -0,0 +1,94 @@
1
+ import { d as distExports } from '../../../../../_virtual/index.js';
2
+ import { useDeltaSDK } from '../../../../useSDK.js';
3
+ import { useQuery } from '@tanstack/react-query';
4
+ import { assert } from 'ts-essentials';
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
+ function useIsTokenSupportedInDeltaQuery(t0) {
17
+ const $ = distExports.c(15);
18
+ const {
19
+ token,
20
+ query,
21
+ chainId
22
+ } = t0;
23
+ let t1;
24
+ if ($[0] !== chainId) {
25
+ t1 = {
26
+ chainId
27
+ };
28
+ $[0] = chainId;
29
+ $[1] = t1;
30
+ } else {
31
+ t1 = $[1];
32
+ }
33
+ const {
34
+ sdk
35
+ } = useDeltaSDK(t1);
36
+ let t2;
37
+ if ($[2] !== token) {
38
+ t2 = token?.toLowerCase();
39
+ $[2] = token;
40
+ $[3] = t2;
41
+ } else {
42
+ t2 = $[3];
43
+ }
44
+ let t3;
45
+ if ($[4] !== chainId || $[5] !== t2) {
46
+ t3 = ["swap/delta/is-token-supported", chainId, t2];
47
+ $[4] = chainId;
48
+ $[5] = t2;
49
+ $[6] = t3;
50
+ } else {
51
+ t3 = $[6];
52
+ }
53
+ let t4;
54
+ if ($[7] !== sdk || $[8] !== token) {
55
+ t4 = (t52) => {
56
+ const {
57
+ signal
58
+ } = t52;
59
+ assert(token, "token is required");
60
+ const isSupported = sdk.isTokenSupportedInDelta(token, {
61
+ signal
62
+ });
63
+ return isSupported;
64
+ };
65
+ $[7] = sdk;
66
+ $[8] = token;
67
+ $[9] = t4;
68
+ } else {
69
+ t4 = $[9];
70
+ }
71
+ const t5 = !!token && (query?.enabled ?? true);
72
+ let t6;
73
+ if ($[10] !== query || $[11] !== t3 || $[12] !== t4 || $[13] !== t5) {
74
+ t6 = {
75
+ queryKey: t3,
76
+ queryFn: t4,
77
+ staleTime: Infinity,
78
+ gcTime: Infinity,
79
+ ...query,
80
+ enabled: t5
81
+ };
82
+ $[10] = query;
83
+ $[11] = t3;
84
+ $[12] = t4;
85
+ $[13] = t5;
86
+ $[14] = t6;
87
+ } else {
88
+ t6 = $[14];
89
+ }
90
+ return useQuery(t6);
91
+ }
92
+
93
+ export { useIsTokenSupportedInDeltaQuery };
94
+ //# sourceMappingURL=useIsTokenSupportedInDelta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useIsTokenSupportedInDelta.js","sources":["../../../../../../src/hooks/swap/prices/delta/queries/useIsTokenSupportedInDelta.ts"],"sourcesContent":["import { useDeltaSDK } from \"@/hooks/useSDK\";\nimport {\n useQuery,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport { assert } from \"ts-essentials\";\n\ntype IsTokenSupportedInDeltaParams = string | undefined; // token address\ntype IsTokenSupportedInDeltaReturn = boolean;\n\ntype IsTokenSupportedInDeltaQueryParams<TData = IsTokenSupportedInDeltaReturn> =\n Omit<\n UseQueryOptions<\n IsTokenSupportedInDeltaReturn,\n Error,\n TData,\n IsTokenSupportedInDeltaQueryKey\n >,\n \"queryKey\" | \"queryFn\"\n >;\ntype IsTokenSupportedInDeltaQueryResult<TData = IsTokenSupportedInDeltaReturn> =\n UseQueryResult<TData, Error>;\n\ntype IsTokenSupportedInDeltaQueryInput<TData = IsTokenSupportedInDeltaReturn> =\n {\n token: IsTokenSupportedInDeltaParams;\n query?: IsTokenSupportedInDeltaQueryParams<TData>;\n chainId: number;\n };\n\ntype IsTokenSupportedInDeltaQueryKey = [\n base: \"swap/delta/is-token-supported\",\n chainId: number,\n token: IsTokenSupportedInDeltaParams,\n];\n\nexport function useIsTokenSupportedInDeltaQuery<\n TData = IsTokenSupportedInDeltaReturn,\n>({\n token,\n query,\n chainId,\n}: IsTokenSupportedInDeltaQueryInput<TData>): IsTokenSupportedInDeltaQueryResult<TData> {\n const { sdk } = useDeltaSDK({ chainId });\n\n return useQuery<\n IsTokenSupportedInDeltaReturn,\n Error,\n TData,\n IsTokenSupportedInDeltaQueryKey\n >({\n queryKey: [\"swap/delta/is-token-supported\", chainId, token?.toLowerCase()],\n queryFn: ({ signal }) => {\n assert(token, \"token is required\");\n const isSupported = sdk.isTokenSupportedInDelta(token, { signal });\n return isSupported;\n },\n // never changes during App session\n staleTime: Infinity,\n gcTime: Infinity,\n ...query,\n enabled: !!token && (query?.enabled ?? true),\n });\n}\n"],"names":["useIsTokenSupportedInDeltaQuery","t0","$","_c","token","query","chainId","t1","sdk","useDeltaSDK","t2","toLowerCase","t3","t4","t5","signal","assert","isSupported","isTokenSupportedInDelta","enabled","t6","queryKey","queryFn","staleTime","Infinity","gcTime","useQuery"],"mappings":"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"}