@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":"constants.js","sources":["../../../../src/hooks/permit/utils/constants.ts"],"sourcesContent":["import type { Address } from \"viem\";\n\nexport const EIP_2612_PERMIT_SELECTOR = \"0xd505accf\";\nexport const DAI_PERMIT_SELECTOR = \"0x8fcbaf0c\";\n\nexport const EIP712_DOMAIN_TYPEHASH_WITHOUT_VERSION =\n \"0x8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866\";\n\nexport const DOMAIN_HASHES_WITHOUT_VERSION: Address[] = [\n /** @signature 'EIP712Domain(string name,uint chainId,address verifyingContract)' */\n \"0x797cfab58fcb15f590eb8e4252d5c228ff88f94f907e119e80c4393a946e8f35\",\n /** @signature 'EIP712Domain(string name,uint256 chainId,address verifyingContract)' */\n EIP712_DOMAIN_TYPEHASH_WITHOUT_VERSION, // Uniswap's UNI\n];\n\n/**\n * @signature EIP712Domain(string name,string version,address verifyingContract,bytes32 salt)\n * */\nexport const DOMAIN_HASH_WITH_SALT_AND_WITHOUT_CHAIN_ID = // USDC.e uses this\n \"0x36c25de3e541d5d970f66e4210d728721220fff5c077cc6cd008b3a0c62adab7\";\n\n/**\n * @signature Permit(address holder,address spender,uint256 nonce,uint256 expiry,bool allowed)\n * */\nexport const DAI_LIKE_PERMIT_TYPEHASH =\n \"0xea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb\";\n\n/**\n * @signature Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)\n * */\nexport const EIP2612_PERMIT_TYPEHASH =\n \"0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9\";\n\n/**\n * @example `${tokenAddress}:${chainId}.toLowerCase()`\n * @warning Only toLowerCase string\n * */\nexport const TOKEN_ADDRESSES_WITH_SALT = [\n // this is our USDC.e that gives us so much trouble\n \"0x2791bca1f2de4661ed88a30c99a7a9449aa84174:137\", // USDC Proxy Polygon\n \"0x8f3cf7ad23cd3cadbd9735aff958023239c6a063:137\", // DAI Proxy Polygon\n] as const;\n\nexport const ERC_20_NONCES_ABI = [\n {\n constant: true,\n inputs: [\n {\n name: \"\",\n type: \"address\",\n },\n ],\n name: \"nonces\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n name: \"\",\n type: \"address\",\n },\n ],\n name: \"_nonces\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n name: \"\",\n type: \"address\",\n },\n ],\n name: \"nonce\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n name: \"\",\n type: \"address\",\n },\n ],\n name: \"getNonce\", // dai polygon\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n] as const;\n\nexport const DOMAIN_TYPEHASH_ABI = [\n {\n constant: true,\n inputs: [],\n name: \"DOMAIN_TYPEHASH\",\n outputs: [\n {\n internalType: \"bytes32\",\n name: \"\",\n type: \"bytes32\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n] as const;\n\nexport const PERMIT_TYPEHASH_ABI = [\n {\n constant: true,\n inputs: [],\n name: \"PERMIT_TYPEHASH\",\n outputs: [\n {\n internalType: \"bytes32\",\n name: \"\",\n type: \"bytes32\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n] as const;\n\nexport const VERSIONS_ABI = [\n {\n constant: true,\n inputs: [],\n name: \"version\",\n outputs: [\n {\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"ERC712_VERSION\",\n outputs: [\n {\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"EIP712_VERSION\", // in USDC.e\n outputs: [\n {\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n] as const;\n\nexport const EIP712_DOMAIN_ABI = [\n {\n name: \"eip712Domain\",\n type: \"function\",\n stateMutability: \"view\",\n inputs: [],\n outputs: [\n {\n type: \"bytes1\",\n name: \"fields\",\n },\n {\n type: \"string\",\n name: \"name\",\n },\n {\n type: \"string\",\n name: \"version\",\n },\n {\n type: \"uint256\",\n name: \"chainId\",\n },\n {\n type: \"address\",\n name: \"verifyingContract\",\n },\n {\n type: \"bytes32\",\n name: \"salt\",\n },\n {\n type: \"uint256[]\",\n name: \"extensions\",\n },\n ],\n },\n] as const;\n\nexport const DOMAIN_ABIS = {\n versionAndChain: [\n // Lido stETH on mainnet\n {\n name: \"eip712Domain\",\n type: \"function\",\n stateMutability: \"view\",\n inputs: [],\n outputs: [\n {\n type: \"string\",\n name: \"name\",\n },\n {\n type: \"string\",\n name: \"version\",\n },\n {\n type: \"uint256\",\n name: \"chainId\",\n },\n {\n type: \"address\",\n name: \"verifyingContract\",\n },\n ],\n },\n ],\n versionAndSalt: [\n {\n name: \"eip712Domain\",\n type: \"function\",\n stateMutability: \"view\",\n inputs: [],\n outputs: [\n {\n type: \"string\",\n name: \"name\",\n },\n {\n type: \"string\",\n name: \"version\",\n },\n {\n type: \"address\",\n name: \"verifyingContract\",\n },\n {\n type: \"bytes32\",\n name: \"salt\",\n },\n ],\n },\n ],\n withoutVersion: [\n {\n name: \"eip712Domain\",\n type: \"function\",\n stateMutability: \"view\",\n inputs: [],\n outputs: [\n {\n type: \"string\",\n name: \"name\",\n },\n {\n type: \"uint256\",\n name: \"chainId\",\n },\n {\n type: \"address\",\n name: \"verifyingContract\",\n },\n ],\n },\n ],\n} as const;\n"],"names":["EIP712_DOMAIN_TYPEHASH_WITHOUT_VERSION","DOMAIN_HASHES_WITHOUT_VERSION","DAI_LIKE_PERMIT_TYPEHASH","EIP2612_PERMIT_TYPEHASH","ERC_20_NONCES_ABI","constant","inputs","name","type","outputs","payable","stateMutability","DOMAIN_TYPEHASH_ABI","internalType","PERMIT_TYPEHASH_ABI","VERSIONS_ABI","EIP712_DOMAIN_ABI","DOMAIN_ABIS","versionAndChain","versionAndSalt","withoutVersion"],"mappings":"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"}
@@ -0,0 +1,161 @@
1
+ import { PermitSupportDAI, PermitSupportEIP2612 } from './detect';
2
+ import { Address, Hex } from 'viem';
3
+ declare const PERMIT2_ADDRESS: "0x000000000022D473030F116dDEE9F6B43aC78BA3";
4
+ declare const PERMIT2_DOMAIN_NAME: "Permit2";
5
+ declare const PERMIT2_TRANSFER_FROM_TYPES: {
6
+ readonly PermitTransferFrom: readonly [{
7
+ readonly name: "permitted";
8
+ readonly type: "TokenPermissions";
9
+ }, {
10
+ readonly name: "spender";
11
+ readonly type: "address";
12
+ }, {
13
+ readonly name: "nonce";
14
+ readonly type: "uint256";
15
+ }, {
16
+ readonly name: "deadline";
17
+ readonly type: "uint256";
18
+ }];
19
+ readonly TokenPermissions: readonly [{
20
+ readonly name: "token";
21
+ readonly type: "address";
22
+ }, {
23
+ readonly name: "amount";
24
+ readonly type: "uint256";
25
+ }];
26
+ };
27
+ declare const PERMIT2_PERMIT_SINGLE_TYPES: {
28
+ readonly PermitSingle: readonly [{
29
+ readonly name: "details";
30
+ readonly type: "PermitDetails";
31
+ }, {
32
+ readonly name: "spender";
33
+ readonly type: "address";
34
+ }, {
35
+ readonly name: "sigDeadline";
36
+ readonly type: "uint256";
37
+ }];
38
+ readonly PermitDetails: readonly [{
39
+ readonly name: "token";
40
+ readonly type: "address";
41
+ }, {
42
+ readonly name: "amount";
43
+ readonly type: "uint160";
44
+ }, {
45
+ readonly name: "expiration";
46
+ readonly type: "uint48";
47
+ }, {
48
+ readonly name: "nonce";
49
+ readonly type: "uint48";
50
+ }];
51
+ };
52
+ export interface Permit1PermitInput {
53
+ type: "permit1";
54
+ permitInfo: PermitSupportEIP2612;
55
+ owner: Address;
56
+ spender: Address;
57
+ value: bigint;
58
+ nonce: bigint;
59
+ deadline: bigint;
60
+ }
61
+ export interface DaiPermitInput {
62
+ type: "dai";
63
+ permitInfo: PermitSupportDAI;
64
+ holder: Address;
65
+ spender: Address;
66
+ nonce: bigint;
67
+ expiry: bigint;
68
+ allowed: boolean;
69
+ }
70
+ export interface Permit2Input {
71
+ type: "permit2";
72
+ variant: "single" | "transferFrom";
73
+ permitInfo?: undefined;
74
+ token: Address;
75
+ spender: Address;
76
+ nonce: bigint;
77
+ amount: bigint;
78
+ expiration: bigint;
79
+ chainId: number;
80
+ }
81
+ export type PermitTypedDataInput = Permit1PermitInput | DaiPermitInput | Permit2Input;
82
+ interface EIP712Type {
83
+ name: string;
84
+ type: string;
85
+ }
86
+ interface EIP712Domain {
87
+ name: string;
88
+ version?: string;
89
+ chainId?: number;
90
+ verifyingContract: Address;
91
+ salt?: Hex;
92
+ }
93
+ interface Permit2TypedDataSingle {
94
+ types: typeof PERMIT2_PERMIT_SINGLE_TYPES & {};
95
+ primaryType: "PermitSingle";
96
+ domain: {
97
+ name: typeof PERMIT2_DOMAIN_NAME;
98
+ chainId?: number;
99
+ verifyingContract: typeof PERMIT2_ADDRESS;
100
+ };
101
+ message: {
102
+ details: {
103
+ token: Address;
104
+ amount: bigint;
105
+ nonce: bigint;
106
+ expiration: bigint;
107
+ };
108
+ spender: Address;
109
+ sigDeadline: bigint;
110
+ };
111
+ }
112
+ interface Permit2TypedDataTransferFrom {
113
+ types: typeof PERMIT2_TRANSFER_FROM_TYPES & {};
114
+ primaryType: "PermitTransferFrom";
115
+ domain: {
116
+ name: typeof PERMIT2_DOMAIN_NAME;
117
+ chainId?: number;
118
+ verifyingContract: typeof PERMIT2_ADDRESS;
119
+ };
120
+ message: {
121
+ permitted: {
122
+ token: Address;
123
+ amount: bigint;
124
+ };
125
+ spender: Address;
126
+ nonce: bigint;
127
+ deadline: bigint;
128
+ };
129
+ }
130
+ interface Permit1PermitTypedData {
131
+ types: {
132
+ Permit: EIP712Type[];
133
+ };
134
+ primaryType: "Permit";
135
+ domain: EIP712Domain;
136
+ message: {
137
+ owner: Address;
138
+ spender: Address;
139
+ value: bigint;
140
+ nonce: bigint;
141
+ deadline: bigint;
142
+ };
143
+ }
144
+ interface DaiPermitTypedData {
145
+ types: {
146
+ Permit: EIP712Type[];
147
+ };
148
+ primaryType: "Permit";
149
+ domain: EIP712Domain;
150
+ message: {
151
+ holder: Address;
152
+ spender: Address;
153
+ nonce: bigint;
154
+ expiry: bigint;
155
+ allowed: boolean;
156
+ };
157
+ }
158
+ export type PermitTypedDataReturn = Permit2TypedDataSingle | Permit2TypedDataTransferFrom | Permit1PermitTypedData | DaiPermitTypedData;
159
+ export declare function constructPermitTypedData(input: PermitTypedDataInput): PermitTypedDataReturn;
160
+ export {};
161
+ //# sourceMappingURL=construct.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"construct.d.ts","sourceRoot":"","sources":["../../../../src/hooks/permit/utils/construct.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,227 @@
1
+ import '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
+ const PERMIT2_ADDRESS = "0x000000000022D473030F116dDEE9F6B43aC78BA3";
14
+ const PERMIT2_DOMAIN_NAME = "Permit2";
15
+ const PERMIT2_TOKEN_PERMISSIONS = [{
16
+ name: "token",
17
+ type: "address"
18
+ }, {
19
+ name: "amount",
20
+ type: "uint256"
21
+ }];
22
+ const PERMIT2_TRANSFER_FROM_TYPES = {
23
+ PermitTransferFrom: [{
24
+ name: "permitted",
25
+ type: "TokenPermissions"
26
+ }, {
27
+ name: "spender",
28
+ type: "address"
29
+ }, {
30
+ name: "nonce",
31
+ type: "uint256"
32
+ }, {
33
+ name: "deadline",
34
+ type: "uint256"
35
+ }],
36
+ TokenPermissions: PERMIT2_TOKEN_PERMISSIONS
37
+ };
38
+ const PERMIT2_PERMIT_DETAILS = [{
39
+ name: "token",
40
+ type: "address"
41
+ }, {
42
+ name: "amount",
43
+ type: "uint160"
44
+ }, {
45
+ name: "expiration",
46
+ type: "uint48"
47
+ }, {
48
+ name: "nonce",
49
+ type: "uint48"
50
+ }];
51
+ const PERMIT2_PERMIT_SINGLE_TYPES = {
52
+ PermitSingle: [{
53
+ name: "details",
54
+ type: "PermitDetails"
55
+ }, {
56
+ name: "spender",
57
+ type: "address"
58
+ }, {
59
+ name: "sigDeadline",
60
+ type: "uint256"
61
+ }],
62
+ PermitDetails: PERMIT2_PERMIT_DETAILS
63
+ };
64
+ function constructPermitTypedData(input) {
65
+ if (input.type === "permit2") {
66
+ const {
67
+ token,
68
+ spender,
69
+ nonce,
70
+ amount,
71
+ expiration,
72
+ variant,
73
+ chainId
74
+ } = input;
75
+ if (variant === "single") {
76
+ return {
77
+ types: {
78
+ ...PERMIT2_PERMIT_SINGLE_TYPES
79
+ // EIP712Domain: [
80
+ // { name: "name", type: "string" },
81
+ // { name: "chainId", type: "uint256" },
82
+ // { name: "verifyingContract", type: "address" },
83
+ // ],
84
+ },
85
+ primaryType: "PermitSingle",
86
+ domain: {
87
+ name: PERMIT2_DOMAIN_NAME,
88
+ chainId,
89
+ verifyingContract: PERMIT2_ADDRESS
90
+ // Uniswap Permit2
91
+ },
92
+ message: {
93
+ details: {
94
+ token,
95
+ amount,
96
+ nonce,
97
+ expiration
98
+ },
99
+ spender,
100
+ sigDeadline: expiration
101
+ }
102
+ };
103
+ }
104
+ if (variant === "transferFrom") {
105
+ return {
106
+ types: {
107
+ ...PERMIT2_TRANSFER_FROM_TYPES
108
+ // EIP712Domain: [
109
+ // { name: "name", type: "string" },
110
+ // { name: "chainId", type: "uint256" },
111
+ // { name: "verifyingContract", type: "address" },
112
+ // ],
113
+ },
114
+ primaryType: "PermitTransferFrom",
115
+ domain: {
116
+ name: PERMIT2_DOMAIN_NAME,
117
+ chainId,
118
+ verifyingContract: PERMIT2_ADDRESS
119
+ // Uniswap Permit2
120
+ },
121
+ message: {
122
+ permitted: {
123
+ token,
124
+ amount
125
+ },
126
+ spender,
127
+ nonce,
128
+ deadline: expiration
129
+ }
130
+ };
131
+ }
132
+ }
133
+ if (input.type === "permit1") {
134
+ const {
135
+ owner,
136
+ spender,
137
+ value,
138
+ nonce,
139
+ deadline,
140
+ permitInfo
141
+ } = input;
142
+ return {
143
+ types: {
144
+ // EIP712Domain: [
145
+ // { name: "name", type: "string" },
146
+ // { name: "version", type: "string" },
147
+ // { name: "chainId", type: "uint256" },
148
+ // { name: "verifyingContract", type: "address" },
149
+ // ],
150
+ Permit: [{
151
+ name: "owner",
152
+ type: "address"
153
+ }, {
154
+ name: "spender",
155
+ type: "address"
156
+ }, {
157
+ name: "value",
158
+ type: "uint256"
159
+ }, {
160
+ name: "nonce",
161
+ type: "uint256"
162
+ }, {
163
+ name: "deadline",
164
+ type: "uint256"
165
+ }]
166
+ },
167
+ primaryType: "Permit",
168
+ domain: permitInfo.domain,
169
+ message: {
170
+ owner,
171
+ spender,
172
+ value,
173
+ nonce,
174
+ deadline
175
+ }
176
+ };
177
+ }
178
+ if (input.type === "dai") {
179
+ const {
180
+ holder,
181
+ spender,
182
+ nonce,
183
+ expiry,
184
+ allowed,
185
+ permitInfo
186
+ } = input;
187
+ return {
188
+ types: {
189
+ // EIP712Domain: [
190
+ // { name: "name", type: "string" },
191
+ // { name: "version", type: "string" },
192
+ // { name: "chainId", type: "uint256" },
193
+ // { name: "verifyingContract", type: "address" },
194
+ // ],
195
+ Permit: [{
196
+ name: "holder",
197
+ type: "address"
198
+ }, {
199
+ name: "spender",
200
+ type: "address"
201
+ }, {
202
+ name: "nonce",
203
+ type: "uint256"
204
+ }, {
205
+ name: "expiry",
206
+ type: "uint256"
207
+ }, {
208
+ name: "allowed",
209
+ type: "bool"
210
+ }]
211
+ },
212
+ primaryType: "Permit",
213
+ domain: permitInfo.domain,
214
+ message: {
215
+ holder,
216
+ spender,
217
+ nonce,
218
+ expiry,
219
+ allowed
220
+ }
221
+ };
222
+ }
223
+ throw new Error(`Unsupported permit input type`);
224
+ }
225
+
226
+ export { constructPermitTypedData };
227
+ //# sourceMappingURL=construct.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"construct.js","sources":["../../../../src/hooks/permit/utils/construct.ts"],"sourcesContent":["import { type PermitSupportDAI, type PermitSupportEIP2612 } from \"./detect\";\nimport { type Address, type Hex } from \"viem\";\n\nconst PERMIT2_ADDRESS = \"0x000000000022D473030F116dDEE9F6B43aC78BA3\" as const;\nconst PERMIT2_DOMAIN_NAME = \"Permit2\" as const;\n\nconst PERMIT2_TOKEN_PERMISSIONS = [\n { name: \"token\", type: \"address\" },\n { name: \"amount\", type: \"uint256\" },\n] as const;\n\nconst PERMIT2_TRANSFER_FROM_TYPES = {\n PermitTransferFrom: [\n { name: \"permitted\", type: \"TokenPermissions\" },\n { name: \"spender\", type: \"address\" },\n { name: \"nonce\", type: \"uint256\" },\n { name: \"deadline\", type: \"uint256\" },\n ],\n TokenPermissions: PERMIT2_TOKEN_PERMISSIONS,\n} as const;\n\nconst PERMIT2_PERMIT_DETAILS = [\n { name: \"token\", type: \"address\" },\n { name: \"amount\", type: \"uint160\" },\n { name: \"expiration\", type: \"uint48\" },\n { name: \"nonce\", type: \"uint48\" },\n] as const;\n\nconst PERMIT2_PERMIT_SINGLE_TYPES = {\n PermitSingle: [\n { name: \"details\", type: \"PermitDetails\" },\n { name: \"spender\", type: \"address\" },\n { name: \"sigDeadline\", type: \"uint256\" },\n ],\n PermitDetails: PERMIT2_PERMIT_DETAILS,\n} as const;\n\nexport interface Permit1PermitInput {\n type: \"permit1\";\n permitInfo: PermitSupportEIP2612;\n owner: Address;\n spender: Address;\n value: bigint;\n nonce: bigint;\n deadline: bigint;\n}\n\nexport interface DaiPermitInput {\n type: \"dai\";\n permitInfo: PermitSupportDAI;\n holder: Address;\n spender: Address;\n nonce: bigint;\n expiry: bigint;\n allowed: boolean;\n}\n\nexport interface Permit2Input {\n type: \"permit2\";\n variant: \"single\" | \"transferFrom\";\n permitInfo?: undefined;\n token: Address;\n spender: Address;\n nonce: bigint;\n amount: bigint;\n expiration: bigint;\n chainId: number;\n}\n\nexport type PermitTypedDataInput =\n | Permit1PermitInput\n | DaiPermitInput\n | Permit2Input;\n\n// EIP-712 Type Definitions\ninterface EIP712Type {\n name: string;\n type: string;\n}\n\ninterface EIP712Domain {\n name: string;\n version?: string;\n chainId?: number;\n verifyingContract: Address;\n salt?: Hex;\n}\n\n// Return type for Permit2\ninterface Permit2TypedDataSingle {\n types: typeof PERMIT2_PERMIT_SINGLE_TYPES & {\n // EIP712Domain: EIP712Type[];\n };\n primaryType: \"PermitSingle\";\n domain: {\n name: typeof PERMIT2_DOMAIN_NAME;\n chainId?: number;\n verifyingContract: typeof PERMIT2_ADDRESS;\n };\n message: {\n details: {\n token: Address;\n amount: bigint;\n nonce: bigint;\n expiration: bigint;\n };\n spender: Address;\n sigDeadline: bigint;\n };\n}\ninterface Permit2TypedDataTransferFrom {\n types: typeof PERMIT2_TRANSFER_FROM_TYPES & {\n // EIP712Domain: EIP712Type[];\n };\n primaryType: \"PermitTransferFrom\";\n domain: {\n name: typeof PERMIT2_DOMAIN_NAME;\n chainId?: number;\n verifyingContract: typeof PERMIT2_ADDRESS;\n };\n message: {\n permitted: {\n token: Address;\n amount: bigint;\n };\n spender: Address;\n nonce: bigint;\n deadline: bigint;\n };\n}\n\n// Return type for Permit1 Permit\ninterface Permit1PermitTypedData {\n types: {\n // EIP712Domain: EIP712Type[];\n Permit: EIP712Type[];\n };\n primaryType: \"Permit\";\n domain: EIP712Domain;\n message: {\n owner: Address;\n spender: Address;\n value: bigint;\n nonce: bigint;\n deadline: bigint;\n };\n}\n\n// Return type for DAI Permit\ninterface DaiPermitTypedData {\n types: {\n // EIP712Domain: EIP712Type[];\n Permit: EIP712Type[];\n };\n primaryType: \"Permit\";\n domain: EIP712Domain;\n message: {\n holder: Address;\n spender: Address;\n nonce: bigint;\n expiry: bigint;\n allowed: boolean;\n };\n}\n\n// Union type for all possible return types\nexport type PermitTypedDataReturn =\n | Permit2TypedDataSingle\n | Permit2TypedDataTransferFrom\n | Permit1PermitTypedData\n | DaiPermitTypedData;\n\nexport function constructPermitTypedData(\n input: PermitTypedDataInput\n): PermitTypedDataReturn {\n if (input.type === \"permit2\") {\n const { token, spender, nonce, amount, expiration, variant, chainId } =\n input;\n\n if (variant === \"single\") {\n return {\n types: {\n ...PERMIT2_PERMIT_SINGLE_TYPES,\n // EIP712Domain: [\n // { name: \"name\", type: \"string\" },\n // { name: \"chainId\", type: \"uint256\" },\n // { name: \"verifyingContract\", type: \"address\" },\n // ],\n },\n primaryType: \"PermitSingle\",\n domain: {\n name: PERMIT2_DOMAIN_NAME,\n chainId,\n verifyingContract: PERMIT2_ADDRESS, // Uniswap Permit2\n },\n message: {\n details: { token, amount, nonce, expiration },\n spender,\n sigDeadline: expiration,\n },\n };\n }\n\n if (variant === \"transferFrom\") {\n return {\n types: {\n ...PERMIT2_TRANSFER_FROM_TYPES,\n // EIP712Domain: [\n // { name: \"name\", type: \"string\" },\n // { name: \"chainId\", type: \"uint256\" },\n // { name: \"verifyingContract\", type: \"address\" },\n // ],\n },\n primaryType: \"PermitTransferFrom\",\n domain: {\n name: PERMIT2_DOMAIN_NAME,\n chainId,\n verifyingContract: PERMIT2_ADDRESS, // Uniswap Permit2\n },\n message: {\n permitted: {\n token,\n amount,\n },\n spender,\n nonce,\n deadline: expiration,\n },\n };\n }\n }\n\n if (input.type === \"permit1\") {\n const { owner, spender, value, nonce, deadline, permitInfo } = input;\n return {\n types: {\n // EIP712Domain: [\n // { name: \"name\", type: \"string\" },\n // { name: \"version\", type: \"string\" },\n // { name: \"chainId\", type: \"uint256\" },\n // { name: \"verifyingContract\", type: \"address\" },\n // ],\n Permit: [\n { name: \"owner\", type: \"address\" },\n { name: \"spender\", type: \"address\" },\n { name: \"value\", type: \"uint256\" },\n { name: \"nonce\", type: \"uint256\" },\n { name: \"deadline\", type: \"uint256\" },\n ],\n },\n primaryType: \"Permit\",\n domain: permitInfo.domain,\n message: { owner, spender, value, nonce, deadline },\n };\n }\n\n if (input.type === \"dai\") {\n const { holder, spender, nonce, expiry, allowed, permitInfo } = input;\n\n return {\n types: {\n // EIP712Domain: [\n // { name: \"name\", type: \"string\" },\n // { name: \"version\", type: \"string\" },\n // { name: \"chainId\", type: \"uint256\" },\n // { name: \"verifyingContract\", type: \"address\" },\n // ],\n Permit: [\n { name: \"holder\", type: \"address\" },\n { name: \"spender\", type: \"address\" },\n { name: \"nonce\", type: \"uint256\" },\n { name: \"expiry\", type: \"uint256\" },\n { name: \"allowed\", type: \"bool\" },\n ],\n },\n primaryType: \"Permit\",\n domain: permitInfo.domain,\n message: { holder, spender, nonce, expiry, allowed },\n };\n }\n\n throw new Error(`Unsupported permit input type`);\n}\n\n// Example usage:\n// constructPermitTypedData({ type: 'permit1', variant: 'transfer', permitInfo, to, value, nonce, deadline });\n"],"names":["PERMIT2_ADDRESS","PERMIT2_DOMAIN_NAME","PERMIT2_TOKEN_PERMISSIONS","name","type","PERMIT2_TRANSFER_FROM_TYPES","PermitTransferFrom","TokenPermissions","PERMIT2_PERMIT_DETAILS","PERMIT2_PERMIT_SINGLE_TYPES","PermitSingle","PermitDetails","constructPermitTypedData","input","token","spender","nonce","amount","expiration","variant","chainId","types","primaryType","domain","verifyingContract","message","details","sigDeadline","permitted","deadline","owner","value","permitInfo","Permit","holder","expiry","allowed","Error"],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import { Address, Hex } from 'viem';
2
+ import { Config } from '@wagmi/core';
3
+ export type PermitType = "eip2612" | "dai";
4
+ export type PermitSupportDAI = PermitSupportResultBase & {
5
+ type: "dai";
6
+ };
7
+ export type PermitSupportEIP2612 = PermitSupportResultBase & {
8
+ type: "eip2612";
9
+ };
10
+ type PermitSupportResultBase = {
11
+ type: PermitType;
12
+ domain: {
13
+ name: string;
14
+ version?: string;
15
+ chainId?: number;
16
+ verifyingContract: Address;
17
+ salt?: Hex;
18
+ };
19
+ domainSeparator?: string;
20
+ };
21
+ export type PermitSupportResult = PermitSupportDAI | PermitSupportEIP2612;
22
+ export type NotDetectedPermitSupport = {
23
+ type: "NOT_DETECTED";
24
+ domain: null;
25
+ };
26
+ export declare const EIP_2612_PERMIT_SELECTOR = "0xd505accf";
27
+ export declare const DAI_PERMIT_SELECTOR = "0x8fcbaf0c";
28
+ export type DetectPermitSupportParams = {
29
+ config: Config;
30
+ tokenAddress: Address;
31
+ chainId: number;
32
+ };
33
+ export declare function detectPermitSupportType({ config, tokenAddress, chainId, }: DetectPermitSupportParams): Promise<PermitSupportResult | NotDetectedPermitSupport>;
34
+ export {};
35
+ //# sourceMappingURL=detect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../../../src/hooks/permit/utils/detect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,GAAG,EAAa,MAAM,MAAM,CAAC;AACzD,OAAO,EAAE,KAAK,MAAM,EAA8B,MAAM,aAAa,CAAC;AAiBtE,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,KAAK,CAAC;AAE3C,MAAM,MAAM,gBAAgB,GAAG,uBAAuB,GAAG;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,CAAC;AACzE,MAAM,MAAM,oBAAoB,GAAG,uBAAuB,GAAG;IAC3D,IAAI,EAAE,SAAS,CAAC;CACjB,CAAC;AAEF,KAAK,uBAAuB,GAAG;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,iBAAiB,EAAE,OAAO,CAAC;QAC3B,IAAI,CAAC,EAAE,GAAG,CAAC;KACZ,CAAC;IACF,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,GAAG,oBAAoB,CAAC;AAE1E,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,cAAc,CAAC;IACrB,MAAM,EAAE,IAAI,CAAC;CACd,CAAC;AAuCF,eAAO,MAAM,wBAAwB,eAAe,CAAC;AACrD,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAEhD,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAsB,uBAAuB,CAAC,EAC5C,MAAM,EACN,YAAY,EACZ,OAAO,GACR,EAAE,yBAAyB,GAAG,OAAO,CACpC,mBAAmB,GAAG,wBAAwB,CAC/C,CA6RA"}