viem 2.36.1 → 2.37.0

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 (381) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/_cjs/actions/public/verifyHash.js +154 -38
  3. package/_cjs/actions/public/verifyHash.js.map +1 -1
  4. package/_cjs/chains/definitions/abstract.js +1 -1
  5. package/_cjs/chains/definitions/abstract.js.map +1 -1
  6. package/_cjs/chains/definitions/abstractTestnet.js +1 -1
  7. package/_cjs/chains/definitions/abstractTestnet.js.map +1 -1
  8. package/_cjs/chains/definitions/zksync.js +1 -1
  9. package/_cjs/chains/definitions/zksync.js.map +1 -1
  10. package/_cjs/chains/definitions/zksyncSepoliaTestnet.js +1 -1
  11. package/_cjs/chains/definitions/zksyncSepoliaTestnet.js.map +1 -1
  12. package/_cjs/constants/abis.js +3 -3
  13. package/_cjs/constants/abis.js.map +1 -1
  14. package/_cjs/constants/contracts.js +2 -2
  15. package/_cjs/constants/contracts.js.map +1 -1
  16. package/_cjs/errors/version.js +1 -1
  17. package/_cjs/index.js +19 -11
  18. package/_cjs/index.js.map +1 -1
  19. package/_cjs/utils/index.js +8 -2
  20. package/_cjs/utils/index.js.map +1 -1
  21. package/_cjs/utils/signature/isErc8010Signature.js +8 -0
  22. package/_cjs/utils/signature/isErc8010Signature.js.map +1 -0
  23. package/_cjs/utils/signature/parseErc8010Signature.js +24 -0
  24. package/_cjs/utils/signature/parseErc8010Signature.js.map +1 -0
  25. package/_cjs/utils/signature/serializeErc8010Signature.js +25 -0
  26. package/_cjs/utils/signature/serializeErc8010Signature.js.map +1 -0
  27. package/_esm/actions/public/verifyHash.js +172 -51
  28. package/_esm/actions/public/verifyHash.js.map +1 -1
  29. package/_esm/chains/definitions/abstract.js +1 -1
  30. package/_esm/chains/definitions/abstract.js.map +1 -1
  31. package/_esm/chains/definitions/abstractTestnet.js +1 -1
  32. package/_esm/chains/definitions/abstractTestnet.js.map +1 -1
  33. package/_esm/chains/definitions/zksync.js +1 -1
  34. package/_esm/chains/definitions/zksync.js.map +1 -1
  35. package/_esm/chains/definitions/zksyncSepoliaTestnet.js +1 -1
  36. package/_esm/chains/definitions/zksyncSepoliaTestnet.js.map +1 -1
  37. package/_esm/constants/abis.js +2 -2
  38. package/_esm/constants/abis.js.map +1 -1
  39. package/_esm/constants/contracts.js +1 -1
  40. package/_esm/constants/contracts.js.map +1 -1
  41. package/_esm/errors/version.js +1 -1
  42. package/_esm/index.js +9 -2
  43. package/_esm/index.js.map +1 -1
  44. package/_esm/utils/index.js +3 -0
  45. package/_esm/utils/index.js.map +1 -1
  46. package/_esm/utils/signature/isErc8010Signature.js +6 -0
  47. package/_esm/utils/signature/isErc8010Signature.js.map +1 -0
  48. package/_esm/utils/signature/parseErc8010Signature.js +28 -0
  49. package/_esm/utils/signature/parseErc8010Signature.js.map +1 -0
  50. package/_esm/utils/signature/serializeErc8010Signature.js +28 -0
  51. package/_esm/utils/signature/serializeErc8010Signature.js.map +1 -0
  52. package/_types/actions/public/verifyHash.d.ts +56 -2
  53. package/_types/actions/public/verifyHash.d.ts.map +1 -1
  54. package/_types/chains/definitions/0g.d.ts +1 -1
  55. package/_types/chains/definitions/5ireChain.d.ts +1 -1
  56. package/_types/chains/definitions/abey.d.ts +1 -1
  57. package/_types/chains/definitions/abstract.d.ts +1 -1
  58. package/_types/chains/definitions/abstractTestnet.d.ts +1 -1
  59. package/_types/chains/definitions/acala.d.ts +1 -1
  60. package/_types/chains/definitions/acria.d.ts +1 -1
  61. package/_types/chains/definitions/adf.d.ts +1 -1
  62. package/_types/chains/definitions/agungTestnet.d.ts +1 -1
  63. package/_types/chains/definitions/aioz.d.ts +1 -1
  64. package/_types/chains/definitions/alienX.d.ts +1 -1
  65. package/_types/chains/definitions/alienXHalTestnet.d.ts +1 -1
  66. package/_types/chains/definitions/anvil.d.ts +1 -1
  67. package/_types/chains/definitions/arenaz.d.ts +1 -1
  68. package/_types/chains/definitions/areonNetworkTestnet.d.ts +1 -1
  69. package/_types/chains/definitions/auroraTestnet.d.ts +1 -1
  70. package/_types/chains/definitions/auroria.d.ts +1 -1
  71. package/_types/chains/definitions/autheoTestnet.d.ts +1 -1
  72. package/_types/chains/definitions/bahamut.d.ts +1 -1
  73. package/_types/chains/definitions/basecampTestnet.d.ts +1 -1
  74. package/_types/chains/definitions/bearNetworkChainMainnet.d.ts +1 -1
  75. package/_types/chains/definitions/bearNetworkChainTestnet.d.ts +1 -1
  76. package/_types/chains/definitions/bevmMainnet.d.ts +1 -1
  77. package/_types/chains/definitions/bifrost.d.ts +1 -1
  78. package/_types/chains/definitions/birdlayer.d.ts +1 -1
  79. package/_types/chains/definitions/bitTorrentTestnet.d.ts +1 -1
  80. package/_types/chains/definitions/bitkub.d.ts +1 -1
  81. package/_types/chains/definitions/bitkubTestnet.d.ts +1 -1
  82. package/_types/chains/definitions/bitrock.d.ts +1 -1
  83. package/_types/chains/definitions/bobaSepolia.d.ts +1 -1
  84. package/_types/chains/definitions/boolBetaMainnet.d.ts +1 -1
  85. package/_types/chains/definitions/botanixTestnet.d.ts +1 -1
  86. package/_types/chains/definitions/bounceBit.d.ts +1 -1
  87. package/_types/chains/definitions/bounceBitTestnet.d.ts +1 -1
  88. package/_types/chains/definitions/bronos.d.ts +1 -1
  89. package/_types/chains/definitions/bronosTestnet.d.ts +1 -1
  90. package/_types/chains/definitions/bscGreenfield.d.ts +1 -1
  91. package/_types/chains/definitions/bsquared.d.ts +1 -1
  92. package/_types/chains/definitions/bsquaredTestnet.d.ts +1 -1
  93. package/_types/chains/definitions/btr.d.ts +1 -1
  94. package/_types/chains/definitions/btrTestnet.d.ts +1 -1
  95. package/_types/chains/definitions/bxn.d.ts +1 -1
  96. package/_types/chains/definitions/bxnTestnet.d.ts +1 -1
  97. package/_types/chains/definitions/cannon.d.ts +1 -1
  98. package/_types/chains/definitions/chang.d.ts +1 -1
  99. package/_types/chains/definitions/chips.d.ts +1 -1
  100. package/_types/chains/definitions/citreaTestnet.d.ts +1 -1
  101. package/_types/chains/definitions/classic.d.ts +1 -1
  102. package/_types/chains/definitions/coinbit.d.ts +1 -1
  103. package/_types/chains/definitions/coinex.d.ts +1 -1
  104. package/_types/chains/definitions/creditCoin3Mainnet.d.ts +1 -1
  105. package/_types/chains/definitions/creditCoin3Testnet.d.ts +1 -1
  106. package/_types/chains/definitions/cronoszkEVMTestnet.d.ts +1 -1
  107. package/_types/chains/definitions/crossfi.d.ts +1 -1
  108. package/_types/chains/definitions/curtis.d.ts +1 -1
  109. package/_types/chains/definitions/dailyNetwork.d.ts +1 -1
  110. package/_types/chains/definitions/dailyNetworkTestnet.d.ts +1 -1
  111. package/_types/chains/definitions/dbkchain.d.ts +1 -1
  112. package/_types/chains/definitions/degen.d.ts +1 -1
  113. package/_types/chains/definitions/diode.d.ts +1 -1
  114. package/_types/chains/definitions/disChain.d.ts +1 -1
  115. package/_types/chains/definitions/dodochainTestnet.d.ts +1 -1
  116. package/_types/chains/definitions/dreyerxMainnet.d.ts +1 -1
  117. package/_types/chains/definitions/dreyerxTestnet.d.ts +1 -1
  118. package/_types/chains/definitions/dymension.d.ts +1 -1
  119. package/_types/chains/definitions/edexa.d.ts +1 -1
  120. package/_types/chains/definitions/edexaTestnet.d.ts +1 -1
  121. package/_types/chains/definitions/edgeless.d.ts +1 -1
  122. package/_types/chains/definitions/edgelessTestnet.d.ts +1 -1
  123. package/_types/chains/definitions/edgewareTestnet.d.ts +1 -1
  124. package/_types/chains/definitions/eduChain.d.ts +1 -1
  125. package/_types/chains/definitions/ekta.d.ts +1 -1
  126. package/_types/chains/definitions/ektaTestnet.d.ts +1 -1
  127. package/_types/chains/definitions/elastos.d.ts +1 -1
  128. package/_types/chains/definitions/elastosTestnet.d.ts +1 -1
  129. package/_types/chains/definitions/electroneum.d.ts +1 -1
  130. package/_types/chains/definitions/electroneumTestnet.d.ts +1 -1
  131. package/_types/chains/definitions/energy.d.ts +1 -1
  132. package/_types/chains/definitions/enuls.d.ts +1 -1
  133. package/_types/chains/definitions/etherlinkTestnet.d.ts +1 -1
  134. package/_types/chains/definitions/etp.d.ts +1 -1
  135. package/_types/chains/definitions/evmos.d.ts +1 -1
  136. package/_types/chains/definitions/evmosTestnet.d.ts +1 -1
  137. package/_types/chains/definitions/exSat.d.ts +1 -1
  138. package/_types/chains/definitions/exSatTestnet.d.ts +1 -1
  139. package/_types/chains/definitions/excelonMainnet.d.ts +1 -1
  140. package/_types/chains/definitions/expanse.d.ts +1 -1
  141. package/_types/chains/definitions/fantomSonicTestnet.d.ts +1 -1
  142. package/_types/chains/definitions/fibo.d.ts +1 -1
  143. package/_types/chains/definitions/filecoinCalibration.d.ts +1 -1
  144. package/_types/chains/definitions/filecoinHyperspace.d.ts +1 -1
  145. package/_types/chains/definitions/flareTestnet.d.ts +1 -1
  146. package/_types/chains/definitions/fluentTestnet.d.ts +1 -1
  147. package/_types/chains/definitions/forta.d.ts +1 -1
  148. package/_types/chains/definitions/foundry.d.ts +1 -1
  149. package/_types/chains/definitions/fuseSparknet.d.ts +1 -1
  150. package/_types/chains/definitions/genesys.d.ts +1 -1
  151. package/_types/chains/definitions/glideL1Protocol.d.ts +1 -1
  152. package/_types/chains/definitions/glideL2Protocol.d.ts +1 -1
  153. package/_types/chains/definitions/goChain.d.ts +1 -1
  154. package/_types/chains/definitions/graphite.d.ts +1 -1
  155. package/_types/chains/definitions/graphiteTestnet.d.ts +1 -1
  156. package/_types/chains/definitions/guruTestnet.d.ts +1 -1
  157. package/_types/chains/definitions/ham.d.ts +1 -1
  158. package/_types/chains/definitions/haqqMainnet.d.ts +1 -1
  159. package/_types/chains/definitions/haqqTestedge2.d.ts +1 -1
  160. package/_types/chains/definitions/hardhat.d.ts +1 -1
  161. package/_types/chains/definitions/hashkeyChainTestnet.d.ts +1 -1
  162. package/_types/chains/definitions/haustTestnet.d.ts +1 -1
  163. package/_types/chains/definitions/hedera.d.ts +1 -1
  164. package/_types/chains/definitions/hederaPreviewnet.d.ts +1 -1
  165. package/_types/chains/definitions/hederaTestnet.d.ts +1 -1
  166. package/_types/chains/definitions/hela.d.ts +1 -1
  167. package/_types/chains/definitions/hemi.d.ts +1 -1
  168. package/_types/chains/definitions/hemiSepolia.d.ts +1 -1
  169. package/_types/chains/definitions/hpb.d.ts +1 -1
  170. package/_types/chains/definitions/huddle01Mainnet.d.ts +1 -1
  171. package/_types/chains/definitions/huddle01Testnet.d.ts +1 -1
  172. package/_types/chains/definitions/humanity.d.ts +1 -1
  173. package/_types/chains/definitions/humanityTestnet.d.ts +1 -1
  174. package/_types/chains/definitions/hychain.d.ts +1 -1
  175. package/_types/chains/definitions/hychainTestnet.d.ts +1 -1
  176. package/_types/chains/definitions/hyperliquidEvmTestnet.d.ts +1 -1
  177. package/_types/chains/definitions/iSunCoin.d.ts +1 -1
  178. package/_types/chains/definitions/idchain.d.ts +1 -1
  179. package/_types/chains/definitions/iotaTestnet.d.ts +1 -1
  180. package/_types/chains/definitions/jocMainnet.d.ts +1 -1
  181. package/_types/chains/definitions/jocTestnet.d.ts +1 -1
  182. package/_types/chains/definitions/juneo.d.ts +1 -1
  183. package/_types/chains/definitions/juneoBCH1Chain.d.ts +1 -1
  184. package/_types/chains/definitions/juneoDAI1Chain.d.ts +1 -1
  185. package/_types/chains/definitions/juneoDOGE1Chain.d.ts +1 -1
  186. package/_types/chains/definitions/juneoEUR1Chain.d.ts +1 -1
  187. package/_types/chains/definitions/juneoGLD1Chain.d.ts +1 -1
  188. package/_types/chains/definitions/juneoLINK1Chain.d.ts +1 -1
  189. package/_types/chains/definitions/juneoLTC1Chain.d.ts +1 -1
  190. package/_types/chains/definitions/juneoSGD1Chain.d.ts +1 -1
  191. package/_types/chains/definitions/juneoSocotraTestnet.d.ts +1 -1
  192. package/_types/chains/definitions/juneoUSD1Chain.d.ts +1 -1
  193. package/_types/chains/definitions/juneoUSDT1Chain.d.ts +1 -1
  194. package/_types/chains/definitions/juneomBTC1Chain.d.ts +1 -1
  195. package/_types/chains/definitions/kakarotSepolia.d.ts +1 -1
  196. package/_types/chains/definitions/kakarotStarknetSepolia.d.ts +1 -1
  197. package/_types/chains/definitions/kardiaChain.d.ts +1 -1
  198. package/_types/chains/definitions/karura.d.ts +1 -1
  199. package/_types/chains/definitions/katana.d.ts +1 -1
  200. package/_types/chains/definitions/kinto.d.ts +1 -1
  201. package/_types/chains/definitions/l3x.d.ts +1 -1
  202. package/_types/chains/definitions/l3xTestnet.d.ts +1 -1
  203. package/_types/chains/definitions/lavita.d.ts +1 -1
  204. package/_types/chains/definitions/lens.d.ts +1 -1
  205. package/_types/chains/definitions/lensTestnet.d.ts +1 -1
  206. package/_types/chains/definitions/lestnet.d.ts +1 -1
  207. package/_types/chains/definitions/localhost.d.ts +1 -1
  208. package/_types/chains/definitions/loop.d.ts +1 -1
  209. package/_types/chains/definitions/lumoz.d.ts +1 -1
  210. package/_types/chains/definitions/lumozTestnet.d.ts +1 -1
  211. package/_types/chains/definitions/lycan.d.ts +1 -1
  212. package/_types/chains/definitions/mandala.d.ts +1 -1
  213. package/_types/chains/definitions/mantraDuKongEVMTestnet.d.ts +1 -1
  214. package/_types/chains/definitions/mapProtocol.d.ts +1 -1
  215. package/_types/chains/definitions/matchain.d.ts +1 -1
  216. package/_types/chains/definitions/matchainTestnet.d.ts +1 -1
  217. package/_types/chains/definitions/mchVerse.d.ts +1 -1
  218. package/_types/chains/definitions/mekong.d.ts +1 -1
  219. package/_types/chains/definitions/memecore.d.ts +1 -1
  220. package/_types/chains/definitions/memecoreFormicariumTestnet.d.ts +1 -1
  221. package/_types/chains/definitions/merlin.d.ts +1 -1
  222. package/_types/chains/definitions/merlinErigonTestnet.d.ts +1 -1
  223. package/_types/chains/definitions/metadium.d.ts +1 -1
  224. package/_types/chains/definitions/meter.d.ts +1 -1
  225. package/_types/chains/definitions/meterTestnet.d.ts +1 -1
  226. package/_types/chains/definitions/mint.d.ts +1 -1
  227. package/_types/chains/definitions/mintSepoliaTestnet.d.ts +1 -1
  228. package/_types/chains/definitions/mitosisTestnet.d.ts +1 -1
  229. package/_types/chains/definitions/moonbeamDev.d.ts +1 -1
  230. package/_types/chains/definitions/morphHolesky.d.ts +1 -1
  231. package/_types/chains/definitions/morphSepolia.d.ts +1 -1
  232. package/_types/chains/definitions/nahmii.d.ts +1 -1
  233. package/_types/chains/definitions/nautilus.d.ts +1 -1
  234. package/_types/chains/definitions/near.d.ts +1 -1
  235. package/_types/chains/definitions/nearTestnet.d.ts +1 -1
  236. package/_types/chains/definitions/neoxMainnet.d.ts +1 -1
  237. package/_types/chains/definitions/neoxT4.d.ts +1 -1
  238. package/_types/chains/definitions/newton.d.ts +1 -1
  239. package/_types/chains/definitions/oasisTestnet.d.ts +1 -1
  240. package/_types/chains/definitions/oasys.d.ts +1 -1
  241. package/_types/chains/definitions/odysseyTestnet.d.ts +1 -1
  242. package/_types/chains/definitions/omax.d.ts +1 -1
  243. package/_types/chains/definitions/omni.d.ts +1 -1
  244. package/_types/chains/definitions/omniOmega.d.ts +1 -1
  245. package/_types/chains/definitions/oneWorld.d.ts +1 -1
  246. package/_types/chains/definitions/oortmainnetDev.d.ts +1 -1
  247. package/_types/chains/definitions/openledger.d.ts +1 -1
  248. package/_types/chains/definitions/optopia.d.ts +1 -1
  249. package/_types/chains/definitions/optopiaTestnet.d.ts +1 -1
  250. package/_types/chains/definitions/orderly.d.ts +1 -1
  251. package/_types/chains/definitions/orderlySepolia.d.ts +1 -1
  252. package/_types/chains/definitions/plasmaTestnet.d.ts +1 -1
  253. package/_types/chains/definitions/premiumBlock.d.ts +1 -1
  254. package/_types/chains/definitions/pumpfiTestnet.d.ts +1 -1
  255. package/_types/chains/definitions/qMainnet.d.ts +1 -1
  256. package/_types/chains/definitions/qTestnet.d.ts +1 -1
  257. package/_types/chains/definitions/redbellyMainnet.d.ts +1 -1
  258. package/_types/chains/definitions/redbellyTestnet.d.ts +1 -1
  259. package/_types/chains/definitions/reddioSepolia.d.ts +1 -1
  260. package/_types/chains/definitions/rei.d.ts +1 -1
  261. package/_types/chains/definitions/reyaNetwork.d.ts +1 -1
  262. package/_types/chains/definitions/rivalz.d.ts +1 -1
  263. package/_types/chains/definitions/saakuru.d.ts +1 -1
  264. package/_types/chains/definitions/sapphireTestnet.d.ts +1 -1
  265. package/_types/chains/definitions/satoshivm.d.ts +1 -1
  266. package/_types/chains/definitions/satoshivmTestnet.d.ts +1 -1
  267. package/_types/chains/definitions/seiDevnet.d.ts +1 -1
  268. package/_types/chains/definitions/seismicDevnet.d.ts +1 -1
  269. package/_types/chains/definitions/shardeum.d.ts +1 -1
  270. package/_types/chains/definitions/shardeumSphinx.d.ts +1 -1
  271. package/_types/chains/definitions/shiden.d.ts +1 -1
  272. package/_types/chains/definitions/shimmer.d.ts +1 -1
  273. package/_types/chains/definitions/shimmerTestnet.d.ts +1 -1
  274. package/_types/chains/definitions/sidra.d.ts +1 -1
  275. package/_types/chains/definitions/silicon.d.ts +1 -1
  276. package/_types/chains/definitions/siliconSepolia.d.ts +1 -1
  277. package/_types/chains/definitions/sixProtocol.d.ts +1 -1
  278. package/_types/chains/definitions/sketchpad.d.ts +1 -1
  279. package/_types/chains/definitions/songbirdTestnet.d.ts +1 -1
  280. package/_types/chains/definitions/sonicTestnet.d.ts +1 -1
  281. package/_types/chains/definitions/sovaSepolia.d.ts +1 -1
  282. package/_types/chains/definitions/spicy.d.ts +1 -1
  283. package/_types/chains/definitions/step.d.ts +1 -1
  284. package/_types/chains/definitions/storyOdyssey.d.ts +1 -1
  285. package/_types/chains/definitions/storyTestnet.d.ts +1 -1
  286. package/_types/chains/definitions/stratis.d.ts +1 -1
  287. package/_types/chains/definitions/superlumio.d.ts +1 -1
  288. package/_types/chains/definitions/swan.d.ts +1 -1
  289. package/_types/chains/definitions/swanProximaTestnet.d.ts +1 -1
  290. package/_types/chains/definitions/swanSaturnTestnet.d.ts +1 -1
  291. package/_types/chains/definitions/swissdlt.d.ts +1 -1
  292. package/_types/chains/definitions/taikoKatla.d.ts +1 -1
  293. package/_types/chains/definitions/taikoTestnetSepolia.d.ts +1 -1
  294. package/_types/chains/definitions/taraxa.d.ts +1 -1
  295. package/_types/chains/definitions/taraxaTestnet.d.ts +1 -1
  296. package/_types/chains/definitions/telcoinTestnet.d.ts +1 -1
  297. package/_types/chains/definitions/telosTestnet.d.ts +1 -1
  298. package/_types/chains/definitions/tenet.d.ts +1 -1
  299. package/_types/chains/definitions/ternoa.d.ts +1 -1
  300. package/_types/chains/definitions/that.d.ts +1 -1
  301. package/_types/chains/definitions/theta.d.ts +1 -1
  302. package/_types/chains/definitions/thetaTestnet.d.ts +1 -1
  303. package/_types/chains/definitions/thunderTestnet.d.ts +1 -1
  304. package/_types/chains/definitions/tiktrixTestnet.d.ts +1 -1
  305. package/_types/chains/definitions/tomb.d.ts +1 -1
  306. package/_types/chains/definitions/tron.d.ts +1 -1
  307. package/_types/chains/definitions/tronShasta.d.ts +1 -1
  308. package/_types/chains/definitions/ubiq.d.ts +1 -1
  309. package/_types/chains/definitions/ultra.d.ts +1 -1
  310. package/_types/chains/definitions/ultraTestnet.d.ts +1 -1
  311. package/_types/chains/definitions/ultron.d.ts +1 -1
  312. package/_types/chains/definitions/ultronTestnet.d.ts +1 -1
  313. package/_types/chains/definitions/unique.d.ts +1 -1
  314. package/_types/chains/definitions/uniqueOpal.d.ts +1 -1
  315. package/_types/chains/definitions/uniqueQuartz.d.ts +1 -1
  316. package/_types/chains/definitions/vanar.d.ts +1 -1
  317. package/_types/chains/definitions/vechain.d.ts +1 -1
  318. package/_types/chains/definitions/viction.d.ts +1 -1
  319. package/_types/chains/definitions/vision.d.ts +1 -1
  320. package/_types/chains/definitions/visionTestnet.d.ts +1 -1
  321. package/_types/chains/definitions/weavevmAlphanet.d.ts +1 -1
  322. package/_types/chains/definitions/wemix.d.ts +1 -1
  323. package/_types/chains/definitions/wemixTestnet.d.ts +1 -1
  324. package/_types/chains/definitions/westendAssetHub.d.ts +1 -1
  325. package/_types/chains/definitions/whitechainTestnet.d.ts +1 -1
  326. package/_types/chains/definitions/wmcTestnet.d.ts +1 -1
  327. package/_types/chains/definitions/worldLand.d.ts +1 -1
  328. package/_types/chains/definitions/xaiTestnet.d.ts +1 -1
  329. package/_types/chains/definitions/xphereMainnet.d.ts +1 -1
  330. package/_types/chains/definitions/xphereTestnet.d.ts +1 -1
  331. package/_types/chains/definitions/xrOne.d.ts +1 -1
  332. package/_types/chains/definitions/xrSepolia.d.ts +1 -1
  333. package/_types/chains/definitions/yooldoVerse.d.ts +1 -1
  334. package/_types/chains/definitions/yooldoVerseTestnet.d.ts +1 -1
  335. package/_types/chains/definitions/zeniq.d.ts +1 -1
  336. package/_types/chains/definitions/zeroNetwork.d.ts +1 -1
  337. package/_types/chains/definitions/zhejiang.d.ts +1 -1
  338. package/_types/chains/definitions/zilliqa.d.ts +1 -1
  339. package/_types/chains/definitions/zilliqaTestnet.d.ts +1 -1
  340. package/_types/chains/definitions/zkFairTestnet.d.ts +1 -1
  341. package/_types/chains/definitions/zkLinkNova.d.ts +1 -1
  342. package/_types/chains/definitions/zkLinkNovaSepoliaTestnet.d.ts +1 -1
  343. package/_types/chains/definitions/zksync.d.ts +1 -1
  344. package/_types/chains/definitions/zksyncInMemoryNode.d.ts +1 -1
  345. package/_types/chains/definitions/zksyncLocalCustomHyperchain.d.ts +1 -1
  346. package/_types/chains/definitions/zksyncLocalHyperchain.d.ts +1 -1
  347. package/_types/chains/definitions/zksyncLocalHyperchainL1.d.ts +1 -1
  348. package/_types/chains/definitions/zksyncLocalNode.d.ts +1 -1
  349. package/_types/chains/definitions/zksyncSepoliaTestnet.d.ts +1 -1
  350. package/_types/constants/abis.d.ts +2 -2
  351. package/_types/constants/abis.d.ts.map +1 -1
  352. package/_types/constants/contracts.d.ts +1 -1
  353. package/_types/constants/contracts.d.ts.map +1 -1
  354. package/_types/errors/version.d.ts +1 -1
  355. package/_types/index.d.ts +9 -2
  356. package/_types/index.d.ts.map +1 -1
  357. package/_types/types/chain.d.ts +1 -1
  358. package/_types/types/chain.d.ts.map +1 -1
  359. package/_types/utils/index.d.ts +3 -0
  360. package/_types/utils/index.d.ts.map +1 -1
  361. package/_types/utils/signature/isErc8010Signature.d.ts +8 -0
  362. package/_types/utils/signature/isErc8010Signature.d.ts.map +1 -0
  363. package/_types/utils/signature/parseErc8010Signature.d.ts +30 -0
  364. package/_types/utils/signature/parseErc8010Signature.d.ts.map +1 -0
  365. package/_types/utils/signature/serializeErc8010Signature.d.ts +27 -0
  366. package/_types/utils/signature/serializeErc8010Signature.d.ts.map +1 -0
  367. package/actions/public/verifyHash.ts +304 -61
  368. package/chains/definitions/abstract.ts +1 -1
  369. package/chains/definitions/abstractTestnet.ts +1 -1
  370. package/chains/definitions/zksync.ts +1 -1
  371. package/chains/definitions/zksyncSepoliaTestnet.ts +1 -1
  372. package/constants/abis.ts +2 -2
  373. package/constants/contracts.ts +1 -1
  374. package/errors/version.ts +1 -1
  375. package/index.ts +24 -2
  376. package/package.json +2 -2
  377. package/types/chain.ts +1 -1
  378. package/utils/index.ts +18 -0
  379. package/utils/signature/isErc8010Signature.ts +14 -0
  380. package/utils/signature/parseErc8010Signature.ts +67 -0
  381. package/utils/signature/serializeErc8010Signature.ts +53 -0
@@ -0,0 +1,67 @@
1
+ import type { Address } from 'abitype'
2
+ import * as SignatureErc8010 from 'ox/erc8010/SignatureErc8010'
3
+ import type { ErrorType } from '../../errors/utils.js'
4
+ import type { SignedAuthorization } from '../../types/authorization.js'
5
+ import type { Hex } from '../../types/misc.js'
6
+ import type { OneOf, Prettify } from '../../types/utils.js'
7
+ import { numberToHex } from '../encoding/toHex.js'
8
+ import {
9
+ type IsErc8010SignatureErrorType,
10
+ isErc8010Signature,
11
+ } from './isErc8010Signature.js'
12
+
13
+ export type ParseErc8010SignatureParameters = Hex
14
+
15
+ export type ParseErc8010SignatureReturnType = Prettify<
16
+ OneOf<
17
+ | {
18
+ /** Address of the initializer. */
19
+ address?: Address | undefined
20
+ /** Authorization signed by the delegatee. */
21
+ authorization: SignedAuthorization
22
+ /** Data to initialize the delegation. */
23
+ data?: Hex | undefined
24
+ /** The original signature. */
25
+ signature: Hex
26
+ }
27
+ | {
28
+ /** The original signature. */
29
+ signature: Hex
30
+ }
31
+ >
32
+ >
33
+
34
+ export type ParseErc8010SignatureErrorType =
35
+ | IsErc8010SignatureErrorType
36
+ | ErrorType
37
+
38
+ /**
39
+ * @description Parses a hex-formatted ERC-8010 flavoured signature.
40
+ * If the signature is not in ERC-8010 format, then the underlying (original) signature is returned.
41
+ *
42
+ * @param signature ERC-8010 signature in hex format.
43
+ * @returns The parsed ERC-8010 signature.
44
+ */
45
+ export function parseErc8010Signature(
46
+ signature: ParseErc8010SignatureParameters,
47
+ ): ParseErc8010SignatureReturnType {
48
+ if (!isErc8010Signature(signature)) return { signature }
49
+
50
+ const {
51
+ authorization: authorization_ox,
52
+ to,
53
+ ...rest
54
+ } = SignatureErc8010.unwrap(signature)
55
+ return {
56
+ authorization: {
57
+ address: authorization_ox.address,
58
+ chainId: authorization_ox.chainId,
59
+ nonce: Number(authorization_ox.nonce),
60
+ r: numberToHex(authorization_ox.r, { size: 32 }),
61
+ s: numberToHex(authorization_ox.s, { size: 32 }),
62
+ yParity: authorization_ox.yParity,
63
+ },
64
+ ...(to ? { address: to } : {}),
65
+ ...rest,
66
+ }
67
+ }
@@ -0,0 +1,53 @@
1
+ import type { Address } from 'abitype'
2
+ import * as SignatureErc8010 from 'ox/erc8010/SignatureErc8010'
3
+ import type { ErrorType } from '../../errors/utils.js'
4
+ import type { SignedAuthorization } from '../../types/authorization.js'
5
+ import type { ByteArray, Hex } from '../../types/misc.js'
6
+ import { hexToBytes } from '../encoding/toBytes.js'
7
+
8
+ type To = 'bytes' | 'hex'
9
+
10
+ export type SerializeErc8010SignatureParameters<to extends To = 'hex'> = {
11
+ /** Address of the initializer. */
12
+ address?: Address | undefined
13
+ /** Authorization signed by the delegatee. */
14
+ authorization: SignedAuthorization
15
+ /** Data to initialize the delegation. */
16
+ data?: Hex | undefined
17
+ /** The original signature. */
18
+ signature: Hex
19
+ to?: to | To | undefined
20
+ }
21
+
22
+ export type SerializeErc8010SignatureReturnType<to extends To = 'hex'> =
23
+ | (to extends 'hex' ? Hex : never)
24
+ | (to extends 'bytes' ? ByteArray : never)
25
+
26
+ export type SerializeErc8010SignatureErrorType = ErrorType
27
+
28
+ /**
29
+ * @description Serializes a ERC-8010 flavoured signature into hex format.
30
+ *
31
+ * @param signature ERC-8010 signature in object format.
32
+ * @returns ERC-8010 signature in hex format.
33
+ */
34
+ export function serializeErc8010Signature<to extends To = 'hex'>(
35
+ parameters: SerializeErc8010SignatureParameters<to>,
36
+ ): SerializeErc8010SignatureReturnType<to> {
37
+ const { address, data, signature, to = 'hex' } = parameters
38
+ const signature_ = SignatureErc8010.wrap({
39
+ authorization: {
40
+ address: parameters.authorization.address,
41
+ chainId: parameters.authorization.chainId,
42
+ nonce: BigInt(parameters.authorization.nonce),
43
+ r: BigInt(parameters.authorization.r),
44
+ s: BigInt(parameters.authorization.s),
45
+ yParity: parameters.authorization.yParity!,
46
+ },
47
+ data,
48
+ signature,
49
+ to: address,
50
+ })
51
+ if (to === 'hex') return signature_ as SerializeErc8010SignatureReturnType<to>
52
+ return hexToBytes(signature_) as SerializeErc8010SignatureReturnType<to>
53
+ }