viem 2.36.0 → 2.36.1-jxom-erc8010-20250901014739

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 (434) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/_cjs/actions/public/verifyHash.js +148 -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/creditCoin3Mainnet.js +2 -2
  9. package/_cjs/chains/definitions/creditCoin3Mainnet.js.map +1 -1
  10. package/_cjs/chains/definitions/creditCoin3Testnet.js +2 -2
  11. package/_cjs/chains/definitions/creditCoin3Testnet.js.map +1 -1
  12. package/_cjs/chains/definitions/crossfi.js +24 -0
  13. package/_cjs/chains/definitions/crossfi.js.map +1 -0
  14. package/_cjs/chains/definitions/openledger.js +20 -0
  15. package/_cjs/chains/definitions/openledger.js.map +1 -0
  16. package/_cjs/chains/definitions/unichain.js +1 -0
  17. package/_cjs/chains/definitions/unichain.js.map +1 -1
  18. package/_cjs/chains/definitions/unichainSepolia.js +1 -0
  19. package/_cjs/chains/definitions/unichainSepolia.js.map +1 -1
  20. package/_cjs/chains/definitions/zksync.js +1 -1
  21. package/_cjs/chains/definitions/zksync.js.map +1 -1
  22. package/_cjs/chains/definitions/zksyncSepoliaTestnet.js +1 -1
  23. package/_cjs/chains/definitions/zksyncSepoliaTestnet.js.map +1 -1
  24. package/_cjs/chains/index.js +15 -11
  25. package/_cjs/chains/index.js.map +1 -1
  26. package/_cjs/constants/abis.js +3 -3
  27. package/_cjs/constants/abis.js.map +1 -1
  28. package/_cjs/constants/contracts.js +2 -2
  29. package/_cjs/constants/contracts.js.map +1 -1
  30. package/_cjs/errors/version.js +1 -1
  31. package/_cjs/errors/version.js.map +1 -1
  32. package/_cjs/index.js +19 -11
  33. package/_cjs/index.js.map +1 -1
  34. package/_cjs/utils/index.js +8 -2
  35. package/_cjs/utils/index.js.map +1 -1
  36. package/_cjs/utils/rpc/http.js +2 -2
  37. package/_cjs/utils/rpc/http.js.map +1 -1
  38. package/_cjs/utils/signature/isErc8010Signature.js +8 -0
  39. package/_cjs/utils/signature/isErc8010Signature.js.map +1 -0
  40. package/_cjs/utils/signature/parseErc8010Signature.js +24 -0
  41. package/_cjs/utils/signature/parseErc8010Signature.js.map +1 -0
  42. package/_cjs/utils/signature/serializeErc8010Signature.js +25 -0
  43. package/_cjs/utils/signature/serializeErc8010Signature.js.map +1 -0
  44. package/_esm/actions/public/verifyHash.js +166 -51
  45. package/_esm/actions/public/verifyHash.js.map +1 -1
  46. package/_esm/chains/definitions/abstract.js +1 -1
  47. package/_esm/chains/definitions/abstract.js.map +1 -1
  48. package/_esm/chains/definitions/abstractTestnet.js +1 -1
  49. package/_esm/chains/definitions/abstractTestnet.js.map +1 -1
  50. package/_esm/chains/definitions/creditCoin3Mainnet.js +2 -2
  51. package/_esm/chains/definitions/creditCoin3Mainnet.js.map +1 -1
  52. package/_esm/chains/definitions/creditCoin3Testnet.js +2 -2
  53. package/_esm/chains/definitions/creditCoin3Testnet.js.map +1 -1
  54. package/_esm/chains/definitions/crossfi.js +21 -0
  55. package/_esm/chains/definitions/crossfi.js.map +1 -0
  56. package/_esm/chains/definitions/openledger.js +17 -0
  57. package/_esm/chains/definitions/openledger.js.map +1 -0
  58. package/_esm/chains/definitions/unichain.js +1 -0
  59. package/_esm/chains/definitions/unichain.js.map +1 -1
  60. package/_esm/chains/definitions/unichainSepolia.js +1 -0
  61. package/_esm/chains/definitions/unichainSepolia.js.map +1 -1
  62. package/_esm/chains/definitions/zksync.js +1 -1
  63. package/_esm/chains/definitions/zksync.js.map +1 -1
  64. package/_esm/chains/definitions/zksyncSepoliaTestnet.js +1 -1
  65. package/_esm/chains/definitions/zksyncSepoliaTestnet.js.map +1 -1
  66. package/_esm/chains/index.js +2 -0
  67. package/_esm/chains/index.js.map +1 -1
  68. package/_esm/constants/abis.js +2 -2
  69. package/_esm/constants/abis.js.map +1 -1
  70. package/_esm/constants/contracts.js +1 -1
  71. package/_esm/constants/contracts.js.map +1 -1
  72. package/_esm/errors/version.js +1 -1
  73. package/_esm/errors/version.js.map +1 -1
  74. package/_esm/index.js +9 -2
  75. package/_esm/index.js.map +1 -1
  76. package/_esm/utils/index.js +3 -0
  77. package/_esm/utils/index.js.map +1 -1
  78. package/_esm/utils/rpc/http.js +2 -2
  79. package/_esm/utils/rpc/http.js.map +1 -1
  80. package/_esm/utils/signature/isErc8010Signature.js +6 -0
  81. package/_esm/utils/signature/isErc8010Signature.js.map +1 -0
  82. package/_esm/utils/signature/parseErc8010Signature.js +28 -0
  83. package/_esm/utils/signature/parseErc8010Signature.js.map +1 -0
  84. package/_esm/utils/signature/serializeErc8010Signature.js +28 -0
  85. package/_esm/utils/signature/serializeErc8010Signature.js.map +1 -0
  86. package/_types/actions/public/verifyHash.d.ts +56 -2
  87. package/_types/actions/public/verifyHash.d.ts.map +1 -1
  88. package/_types/chains/definitions/0g.d.ts +1 -1
  89. package/_types/chains/definitions/5ireChain.d.ts +1 -1
  90. package/_types/chains/definitions/abey.d.ts +1 -1
  91. package/_types/chains/definitions/abstract.d.ts +1 -1
  92. package/_types/chains/definitions/abstractTestnet.d.ts +1 -1
  93. package/_types/chains/definitions/acala.d.ts +1 -1
  94. package/_types/chains/definitions/acria.d.ts +1 -1
  95. package/_types/chains/definitions/adf.d.ts +1 -1
  96. package/_types/chains/definitions/agungTestnet.d.ts +1 -1
  97. package/_types/chains/definitions/aioz.d.ts +1 -1
  98. package/_types/chains/definitions/alienX.d.ts +1 -1
  99. package/_types/chains/definitions/alienXHalTestnet.d.ts +1 -1
  100. package/_types/chains/definitions/anvil.d.ts +1 -1
  101. package/_types/chains/definitions/arenaz.d.ts +1 -1
  102. package/_types/chains/definitions/areonNetworkTestnet.d.ts +1 -1
  103. package/_types/chains/definitions/auroraTestnet.d.ts +1 -1
  104. package/_types/chains/definitions/auroria.d.ts +1 -1
  105. package/_types/chains/definitions/autheoTestnet.d.ts +1 -1
  106. package/_types/chains/definitions/bahamut.d.ts +1 -1
  107. package/_types/chains/definitions/basecampTestnet.d.ts +1 -1
  108. package/_types/chains/definitions/bearNetworkChainMainnet.d.ts +1 -1
  109. package/_types/chains/definitions/bearNetworkChainTestnet.d.ts +1 -1
  110. package/_types/chains/definitions/bevmMainnet.d.ts +1 -1
  111. package/_types/chains/definitions/bifrost.d.ts +1 -1
  112. package/_types/chains/definitions/birdlayer.d.ts +1 -1
  113. package/_types/chains/definitions/bitTorrentTestnet.d.ts +1 -1
  114. package/_types/chains/definitions/bitkub.d.ts +1 -1
  115. package/_types/chains/definitions/bitkubTestnet.d.ts +1 -1
  116. package/_types/chains/definitions/bitrock.d.ts +1 -1
  117. package/_types/chains/definitions/bobaSepolia.d.ts +1 -1
  118. package/_types/chains/definitions/boolBetaMainnet.d.ts +1 -1
  119. package/_types/chains/definitions/botanixTestnet.d.ts +1 -1
  120. package/_types/chains/definitions/bounceBit.d.ts +1 -1
  121. package/_types/chains/definitions/bounceBitTestnet.d.ts +1 -1
  122. package/_types/chains/definitions/bronos.d.ts +1 -1
  123. package/_types/chains/definitions/bronosTestnet.d.ts +1 -1
  124. package/_types/chains/definitions/bscGreenfield.d.ts +1 -1
  125. package/_types/chains/definitions/bsquared.d.ts +1 -1
  126. package/_types/chains/definitions/bsquaredTestnet.d.ts +1 -1
  127. package/_types/chains/definitions/btr.d.ts +1 -1
  128. package/_types/chains/definitions/btrTestnet.d.ts +1 -1
  129. package/_types/chains/definitions/bxn.d.ts +1 -1
  130. package/_types/chains/definitions/bxnTestnet.d.ts +1 -1
  131. package/_types/chains/definitions/cannon.d.ts +1 -1
  132. package/_types/chains/definitions/chang.d.ts +1 -1
  133. package/_types/chains/definitions/chips.d.ts +1 -1
  134. package/_types/chains/definitions/citreaTestnet.d.ts +1 -1
  135. package/_types/chains/definitions/classic.d.ts +1 -1
  136. package/_types/chains/definitions/coinbit.d.ts +1 -1
  137. package/_types/chains/definitions/coinex.d.ts +1 -1
  138. package/_types/chains/definitions/creditCoin3Mainnet.d.ts +3 -3
  139. package/_types/chains/definitions/creditCoin3Testnet.d.ts +4 -4
  140. package/_types/chains/definitions/cronoszkEVMTestnet.d.ts +1 -1
  141. package/_types/chains/definitions/crossfi.d.ts +39 -0
  142. package/_types/chains/definitions/crossfi.d.ts.map +1 -0
  143. package/_types/chains/definitions/curtis.d.ts +1 -1
  144. package/_types/chains/definitions/dailyNetwork.d.ts +1 -1
  145. package/_types/chains/definitions/dailyNetworkTestnet.d.ts +1 -1
  146. package/_types/chains/definitions/dbkchain.d.ts +1 -1
  147. package/_types/chains/definitions/degen.d.ts +1 -1
  148. package/_types/chains/definitions/diode.d.ts +1 -1
  149. package/_types/chains/definitions/disChain.d.ts +1 -1
  150. package/_types/chains/definitions/dodochainTestnet.d.ts +1 -1
  151. package/_types/chains/definitions/dreyerxMainnet.d.ts +1 -1
  152. package/_types/chains/definitions/dreyerxTestnet.d.ts +1 -1
  153. package/_types/chains/definitions/dymension.d.ts +1 -1
  154. package/_types/chains/definitions/edexa.d.ts +1 -1
  155. package/_types/chains/definitions/edexaTestnet.d.ts +1 -1
  156. package/_types/chains/definitions/edgeless.d.ts +1 -1
  157. package/_types/chains/definitions/edgelessTestnet.d.ts +1 -1
  158. package/_types/chains/definitions/edgewareTestnet.d.ts +1 -1
  159. package/_types/chains/definitions/eduChain.d.ts +1 -1
  160. package/_types/chains/definitions/ekta.d.ts +1 -1
  161. package/_types/chains/definitions/ektaTestnet.d.ts +1 -1
  162. package/_types/chains/definitions/elastos.d.ts +1 -1
  163. package/_types/chains/definitions/elastosTestnet.d.ts +1 -1
  164. package/_types/chains/definitions/electroneum.d.ts +1 -1
  165. package/_types/chains/definitions/electroneumTestnet.d.ts +1 -1
  166. package/_types/chains/definitions/energy.d.ts +1 -1
  167. package/_types/chains/definitions/enuls.d.ts +1 -1
  168. package/_types/chains/definitions/etherlinkTestnet.d.ts +1 -1
  169. package/_types/chains/definitions/etp.d.ts +1 -1
  170. package/_types/chains/definitions/evmos.d.ts +1 -1
  171. package/_types/chains/definitions/evmosTestnet.d.ts +1 -1
  172. package/_types/chains/definitions/exSat.d.ts +1 -1
  173. package/_types/chains/definitions/exSatTestnet.d.ts +1 -1
  174. package/_types/chains/definitions/excelonMainnet.d.ts +1 -1
  175. package/_types/chains/definitions/expanse.d.ts +1 -1
  176. package/_types/chains/definitions/fantomSonicTestnet.d.ts +1 -1
  177. package/_types/chains/definitions/fibo.d.ts +1 -1
  178. package/_types/chains/definitions/filecoinCalibration.d.ts +1 -1
  179. package/_types/chains/definitions/filecoinHyperspace.d.ts +1 -1
  180. package/_types/chains/definitions/flareTestnet.d.ts +1 -1
  181. package/_types/chains/definitions/fluentTestnet.d.ts +1 -1
  182. package/_types/chains/definitions/forta.d.ts +1 -1
  183. package/_types/chains/definitions/foundry.d.ts +1 -1
  184. package/_types/chains/definitions/fuseSparknet.d.ts +1 -1
  185. package/_types/chains/definitions/genesys.d.ts +1 -1
  186. package/_types/chains/definitions/glideL1Protocol.d.ts +1 -1
  187. package/_types/chains/definitions/glideL2Protocol.d.ts +1 -1
  188. package/_types/chains/definitions/goChain.d.ts +1 -1
  189. package/_types/chains/definitions/graphite.d.ts +1 -1
  190. package/_types/chains/definitions/graphiteTestnet.d.ts +1 -1
  191. package/_types/chains/definitions/guruTestnet.d.ts +1 -1
  192. package/_types/chains/definitions/ham.d.ts +1 -1
  193. package/_types/chains/definitions/haqqMainnet.d.ts +1 -1
  194. package/_types/chains/definitions/haqqTestedge2.d.ts +1 -1
  195. package/_types/chains/definitions/hardhat.d.ts +1 -1
  196. package/_types/chains/definitions/hashkeyChainTestnet.d.ts +1 -1
  197. package/_types/chains/definitions/haustTestnet.d.ts +1 -1
  198. package/_types/chains/definitions/hedera.d.ts +1 -1
  199. package/_types/chains/definitions/hederaPreviewnet.d.ts +1 -1
  200. package/_types/chains/definitions/hederaTestnet.d.ts +1 -1
  201. package/_types/chains/definitions/hela.d.ts +1 -1
  202. package/_types/chains/definitions/hemi.d.ts +1 -1
  203. package/_types/chains/definitions/hemiSepolia.d.ts +1 -1
  204. package/_types/chains/definitions/hpb.d.ts +1 -1
  205. package/_types/chains/definitions/huddle01Mainnet.d.ts +1 -1
  206. package/_types/chains/definitions/huddle01Testnet.d.ts +1 -1
  207. package/_types/chains/definitions/humanity.d.ts +1 -1
  208. package/_types/chains/definitions/humanityTestnet.d.ts +1 -1
  209. package/_types/chains/definitions/hychain.d.ts +1 -1
  210. package/_types/chains/definitions/hychainTestnet.d.ts +1 -1
  211. package/_types/chains/definitions/hyperliquidEvmTestnet.d.ts +1 -1
  212. package/_types/chains/definitions/iSunCoin.d.ts +1 -1
  213. package/_types/chains/definitions/idchain.d.ts +1 -1
  214. package/_types/chains/definitions/iotaTestnet.d.ts +1 -1
  215. package/_types/chains/definitions/jocMainnet.d.ts +1 -1
  216. package/_types/chains/definitions/jocTestnet.d.ts +1 -1
  217. package/_types/chains/definitions/juneo.d.ts +1 -1
  218. package/_types/chains/definitions/juneoBCH1Chain.d.ts +1 -1
  219. package/_types/chains/definitions/juneoDAI1Chain.d.ts +1 -1
  220. package/_types/chains/definitions/juneoDOGE1Chain.d.ts +1 -1
  221. package/_types/chains/definitions/juneoEUR1Chain.d.ts +1 -1
  222. package/_types/chains/definitions/juneoGLD1Chain.d.ts +1 -1
  223. package/_types/chains/definitions/juneoLINK1Chain.d.ts +1 -1
  224. package/_types/chains/definitions/juneoLTC1Chain.d.ts +1 -1
  225. package/_types/chains/definitions/juneoSGD1Chain.d.ts +1 -1
  226. package/_types/chains/definitions/juneoSocotraTestnet.d.ts +1 -1
  227. package/_types/chains/definitions/juneoUSD1Chain.d.ts +1 -1
  228. package/_types/chains/definitions/juneoUSDT1Chain.d.ts +1 -1
  229. package/_types/chains/definitions/juneomBTC1Chain.d.ts +1 -1
  230. package/_types/chains/definitions/kakarotSepolia.d.ts +1 -1
  231. package/_types/chains/definitions/kakarotStarknetSepolia.d.ts +1 -1
  232. package/_types/chains/definitions/kardiaChain.d.ts +1 -1
  233. package/_types/chains/definitions/karura.d.ts +1 -1
  234. package/_types/chains/definitions/katana.d.ts +1 -1
  235. package/_types/chains/definitions/kinto.d.ts +1 -1
  236. package/_types/chains/definitions/l3x.d.ts +1 -1
  237. package/_types/chains/definitions/l3xTestnet.d.ts +1 -1
  238. package/_types/chains/definitions/lavita.d.ts +1 -1
  239. package/_types/chains/definitions/lens.d.ts +1 -1
  240. package/_types/chains/definitions/lensTestnet.d.ts +1 -1
  241. package/_types/chains/definitions/lestnet.d.ts +1 -1
  242. package/_types/chains/definitions/localhost.d.ts +1 -1
  243. package/_types/chains/definitions/loop.d.ts +1 -1
  244. package/_types/chains/definitions/lumoz.d.ts +1 -1
  245. package/_types/chains/definitions/lumozTestnet.d.ts +1 -1
  246. package/_types/chains/definitions/lycan.d.ts +1 -1
  247. package/_types/chains/definitions/mandala.d.ts +1 -1
  248. package/_types/chains/definitions/mantraDuKongEVMTestnet.d.ts +1 -1
  249. package/_types/chains/definitions/mapProtocol.d.ts +1 -1
  250. package/_types/chains/definitions/matchain.d.ts +1 -1
  251. package/_types/chains/definitions/matchainTestnet.d.ts +1 -1
  252. package/_types/chains/definitions/mchVerse.d.ts +1 -1
  253. package/_types/chains/definitions/mekong.d.ts +1 -1
  254. package/_types/chains/definitions/memecore.d.ts +1 -1
  255. package/_types/chains/definitions/memecoreFormicariumTestnet.d.ts +1 -1
  256. package/_types/chains/definitions/merlin.d.ts +1 -1
  257. package/_types/chains/definitions/merlinErigonTestnet.d.ts +1 -1
  258. package/_types/chains/definitions/metadium.d.ts +1 -1
  259. package/_types/chains/definitions/meter.d.ts +1 -1
  260. package/_types/chains/definitions/meterTestnet.d.ts +1 -1
  261. package/_types/chains/definitions/mint.d.ts +1 -1
  262. package/_types/chains/definitions/mintSepoliaTestnet.d.ts +1 -1
  263. package/_types/chains/definitions/mitosisTestnet.d.ts +1 -1
  264. package/_types/chains/definitions/moonbeamDev.d.ts +1 -1
  265. package/_types/chains/definitions/morphHolesky.d.ts +1 -1
  266. package/_types/chains/definitions/morphSepolia.d.ts +1 -1
  267. package/_types/chains/definitions/nahmii.d.ts +1 -1
  268. package/_types/chains/definitions/nautilus.d.ts +1 -1
  269. package/_types/chains/definitions/near.d.ts +1 -1
  270. package/_types/chains/definitions/nearTestnet.d.ts +1 -1
  271. package/_types/chains/definitions/neoxMainnet.d.ts +1 -1
  272. package/_types/chains/definitions/neoxT4.d.ts +1 -1
  273. package/_types/chains/definitions/newton.d.ts +1 -1
  274. package/_types/chains/definitions/oasisTestnet.d.ts +1 -1
  275. package/_types/chains/definitions/oasys.d.ts +1 -1
  276. package/_types/chains/definitions/odysseyTestnet.d.ts +1 -1
  277. package/_types/chains/definitions/omax.d.ts +1 -1
  278. package/_types/chains/definitions/omni.d.ts +1 -1
  279. package/_types/chains/definitions/omniOmega.d.ts +1 -1
  280. package/_types/chains/definitions/oneWorld.d.ts +1 -1
  281. package/_types/chains/definitions/oortmainnetDev.d.ts +1 -1
  282. package/_types/chains/definitions/openledger.d.ts +39 -0
  283. package/_types/chains/definitions/openledger.d.ts.map +1 -0
  284. package/_types/chains/definitions/optopia.d.ts +1 -1
  285. package/_types/chains/definitions/optopiaTestnet.d.ts +1 -1
  286. package/_types/chains/definitions/orderly.d.ts +1 -1
  287. package/_types/chains/definitions/orderlySepolia.d.ts +1 -1
  288. package/_types/chains/definitions/plasmaTestnet.d.ts +1 -1
  289. package/_types/chains/definitions/premiumBlock.d.ts +1 -1
  290. package/_types/chains/definitions/pumpfiTestnet.d.ts +1 -1
  291. package/_types/chains/definitions/qMainnet.d.ts +1 -1
  292. package/_types/chains/definitions/qTestnet.d.ts +1 -1
  293. package/_types/chains/definitions/redbellyMainnet.d.ts +1 -1
  294. package/_types/chains/definitions/redbellyTestnet.d.ts +1 -1
  295. package/_types/chains/definitions/reddioSepolia.d.ts +1 -1
  296. package/_types/chains/definitions/rei.d.ts +1 -1
  297. package/_types/chains/definitions/reyaNetwork.d.ts +1 -1
  298. package/_types/chains/definitions/rivalz.d.ts +1 -1
  299. package/_types/chains/definitions/saakuru.d.ts +1 -1
  300. package/_types/chains/definitions/sapphireTestnet.d.ts +1 -1
  301. package/_types/chains/definitions/satoshivm.d.ts +1 -1
  302. package/_types/chains/definitions/satoshivmTestnet.d.ts +1 -1
  303. package/_types/chains/definitions/seiDevnet.d.ts +1 -1
  304. package/_types/chains/definitions/seismicDevnet.d.ts +1 -1
  305. package/_types/chains/definitions/shardeum.d.ts +1 -1
  306. package/_types/chains/definitions/shardeumSphinx.d.ts +1 -1
  307. package/_types/chains/definitions/shiden.d.ts +1 -1
  308. package/_types/chains/definitions/shimmer.d.ts +1 -1
  309. package/_types/chains/definitions/shimmerTestnet.d.ts +1 -1
  310. package/_types/chains/definitions/sidra.d.ts +1 -1
  311. package/_types/chains/definitions/silicon.d.ts +1 -1
  312. package/_types/chains/definitions/siliconSepolia.d.ts +1 -1
  313. package/_types/chains/definitions/sixProtocol.d.ts +1 -1
  314. package/_types/chains/definitions/sketchpad.d.ts +1 -1
  315. package/_types/chains/definitions/songbirdTestnet.d.ts +1 -1
  316. package/_types/chains/definitions/sonicTestnet.d.ts +1 -1
  317. package/_types/chains/definitions/sovaSepolia.d.ts +1 -1
  318. package/_types/chains/definitions/spicy.d.ts +1 -1
  319. package/_types/chains/definitions/step.d.ts +1 -1
  320. package/_types/chains/definitions/storyOdyssey.d.ts +1 -1
  321. package/_types/chains/definitions/storyTestnet.d.ts +1 -1
  322. package/_types/chains/definitions/stratis.d.ts +1 -1
  323. package/_types/chains/definitions/superlumio.d.ts +1 -1
  324. package/_types/chains/definitions/swan.d.ts +1 -1
  325. package/_types/chains/definitions/swanProximaTestnet.d.ts +1 -1
  326. package/_types/chains/definitions/swanSaturnTestnet.d.ts +1 -1
  327. package/_types/chains/definitions/swissdlt.d.ts +1 -1
  328. package/_types/chains/definitions/taikoKatla.d.ts +1 -1
  329. package/_types/chains/definitions/taikoTestnetSepolia.d.ts +1 -1
  330. package/_types/chains/definitions/taraxa.d.ts +1 -1
  331. package/_types/chains/definitions/taraxaTestnet.d.ts +1 -1
  332. package/_types/chains/definitions/telcoinTestnet.d.ts +1 -1
  333. package/_types/chains/definitions/telosTestnet.d.ts +1 -1
  334. package/_types/chains/definitions/tenet.d.ts +1 -1
  335. package/_types/chains/definitions/ternoa.d.ts +1 -1
  336. package/_types/chains/definitions/that.d.ts +1 -1
  337. package/_types/chains/definitions/theta.d.ts +1 -1
  338. package/_types/chains/definitions/thetaTestnet.d.ts +1 -1
  339. package/_types/chains/definitions/thunderTestnet.d.ts +1 -1
  340. package/_types/chains/definitions/tiktrixTestnet.d.ts +1 -1
  341. package/_types/chains/definitions/tomb.d.ts +1 -1
  342. package/_types/chains/definitions/tron.d.ts +1 -1
  343. package/_types/chains/definitions/tronShasta.d.ts +1 -1
  344. package/_types/chains/definitions/ubiq.d.ts +1 -1
  345. package/_types/chains/definitions/ultra.d.ts +1 -1
  346. package/_types/chains/definitions/ultraTestnet.d.ts +1 -1
  347. package/_types/chains/definitions/ultron.d.ts +1 -1
  348. package/_types/chains/definitions/ultronTestnet.d.ts +1 -1
  349. package/_types/chains/definitions/unichain.d.ts +1 -1
  350. package/_types/chains/definitions/unichain.d.ts.map +1 -1
  351. package/_types/chains/definitions/unichainSepolia.d.ts +1 -1
  352. package/_types/chains/definitions/unichainSepolia.d.ts.map +1 -1
  353. package/_types/chains/definitions/unique.d.ts +1 -1
  354. package/_types/chains/definitions/uniqueOpal.d.ts +1 -1
  355. package/_types/chains/definitions/uniqueQuartz.d.ts +1 -1
  356. package/_types/chains/definitions/vanar.d.ts +1 -1
  357. package/_types/chains/definitions/vechain.d.ts +1 -1
  358. package/_types/chains/definitions/viction.d.ts +1 -1
  359. package/_types/chains/definitions/vision.d.ts +1 -1
  360. package/_types/chains/definitions/visionTestnet.d.ts +1 -1
  361. package/_types/chains/definitions/weavevmAlphanet.d.ts +1 -1
  362. package/_types/chains/definitions/wemix.d.ts +1 -1
  363. package/_types/chains/definitions/wemixTestnet.d.ts +1 -1
  364. package/_types/chains/definitions/westendAssetHub.d.ts +1 -1
  365. package/_types/chains/definitions/whitechainTestnet.d.ts +1 -1
  366. package/_types/chains/definitions/wmcTestnet.d.ts +1 -1
  367. package/_types/chains/definitions/worldLand.d.ts +1 -1
  368. package/_types/chains/definitions/xaiTestnet.d.ts +1 -1
  369. package/_types/chains/definitions/xphereMainnet.d.ts +1 -1
  370. package/_types/chains/definitions/xphereTestnet.d.ts +1 -1
  371. package/_types/chains/definitions/xrOne.d.ts +1 -1
  372. package/_types/chains/definitions/xrSepolia.d.ts +1 -1
  373. package/_types/chains/definitions/yooldoVerse.d.ts +1 -1
  374. package/_types/chains/definitions/yooldoVerseTestnet.d.ts +1 -1
  375. package/_types/chains/definitions/zeniq.d.ts +1 -1
  376. package/_types/chains/definitions/zeroNetwork.d.ts +1 -1
  377. package/_types/chains/definitions/zhejiang.d.ts +1 -1
  378. package/_types/chains/definitions/zilliqa.d.ts +1 -1
  379. package/_types/chains/definitions/zilliqaTestnet.d.ts +1 -1
  380. package/_types/chains/definitions/zkFairTestnet.d.ts +1 -1
  381. package/_types/chains/definitions/zkLinkNova.d.ts +1 -1
  382. package/_types/chains/definitions/zkLinkNovaSepoliaTestnet.d.ts +1 -1
  383. package/_types/chains/definitions/zksync.d.ts +1 -1
  384. package/_types/chains/definitions/zksyncInMemoryNode.d.ts +1 -1
  385. package/_types/chains/definitions/zksyncLocalCustomHyperchain.d.ts +1 -1
  386. package/_types/chains/definitions/zksyncLocalHyperchain.d.ts +1 -1
  387. package/_types/chains/definitions/zksyncLocalHyperchainL1.d.ts +1 -1
  388. package/_types/chains/definitions/zksyncLocalNode.d.ts +1 -1
  389. package/_types/chains/definitions/zksyncSepoliaTestnet.d.ts +1 -1
  390. package/_types/chains/index.d.ts +2 -0
  391. package/_types/chains/index.d.ts.map +1 -1
  392. package/_types/constants/abis.d.ts +2 -2
  393. package/_types/constants/abis.d.ts.map +1 -1
  394. package/_types/constants/contracts.d.ts +1 -1
  395. package/_types/constants/contracts.d.ts.map +1 -1
  396. package/_types/errors/version.d.ts +1 -1
  397. package/_types/errors/version.d.ts.map +1 -1
  398. package/_types/index.d.ts +9 -2
  399. package/_types/index.d.ts.map +1 -1
  400. package/_types/types/chain.d.ts +1 -1
  401. package/_types/types/chain.d.ts.map +1 -1
  402. package/_types/utils/index.d.ts +3 -0
  403. package/_types/utils/index.d.ts.map +1 -1
  404. package/_types/utils/rpc/http.d.ts +4 -0
  405. package/_types/utils/rpc/http.d.ts.map +1 -1
  406. package/_types/utils/signature/isErc8010Signature.d.ts +8 -0
  407. package/_types/utils/signature/isErc8010Signature.d.ts.map +1 -0
  408. package/_types/utils/signature/parseErc8010Signature.d.ts +30 -0
  409. package/_types/utils/signature/parseErc8010Signature.d.ts.map +1 -0
  410. package/_types/utils/signature/serializeErc8010Signature.d.ts +27 -0
  411. package/_types/utils/signature/serializeErc8010Signature.d.ts.map +1 -0
  412. package/actions/public/verifyHash.ts +297 -61
  413. package/chains/definitions/abstract.ts +1 -1
  414. package/chains/definitions/abstractTestnet.ts +1 -1
  415. package/chains/definitions/creditCoin3Mainnet.ts +2 -2
  416. package/chains/definitions/creditCoin3Testnet.ts +2 -2
  417. package/chains/definitions/crossfi.ts +21 -0
  418. package/chains/definitions/openledger.ts +17 -0
  419. package/chains/definitions/unichain.ts +1 -0
  420. package/chains/definitions/unichainSepolia.ts +1 -0
  421. package/chains/definitions/zksync.ts +1 -1
  422. package/chains/definitions/zksyncSepoliaTestnet.ts +1 -1
  423. package/chains/index.ts +2 -0
  424. package/constants/abis.ts +2 -2
  425. package/constants/contracts.ts +1 -1
  426. package/errors/version.ts +1 -1
  427. package/index.ts +24 -2
  428. package/package.json +3 -3
  429. package/types/chain.ts +1 -1
  430. package/utils/index.ts +18 -0
  431. package/utils/rpc/http.ts +8 -1
  432. package/utils/signature/isErc8010Signature.ts +14 -0
  433. package/utils/signature/parseErc8010Signature.ts +67 -0
  434. package/utils/signature/serializeErc8010Signature.ts +53 -0
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "viem",
3
3
  "description": "TypeScript Interface for Ethereum",
4
- "version": "2.36.0",
4
+ "version": "2.36.1-jxom-erc8010-20250901014739",
5
5
  "main": "./_cjs/index.js",
6
6
  "module": "./_esm/index.js",
7
7
  "types": "./_types/index.d.ts",
@@ -195,13 +195,13 @@
195
195
  }
196
196
  },
197
197
  "dependencies": {
198
- "@noble/curves": "1.9.6",
198
+ "@noble/curves": "1.9.1",
199
199
  "@noble/hashes": "1.8.0",
200
200
  "@scure/bip32": "1.7.0",
201
201
  "@scure/bip39": "1.6.0",
202
202
  "abitype": "1.0.8",
203
203
  "isows": "1.0.7",
204
- "ox": "0.9.1",
204
+ "ox": "0.9.3",
205
205
  "ws": "8.18.3"
206
206
  },
207
207
  "license": "MIT",
package/types/chain.ts CHANGED
@@ -42,7 +42,7 @@ export type Chain<
42
42
  ensRegistry?: ChainContract | undefined
43
43
  ensUniversalResolver?: ChainContract | undefined
44
44
  multicall3?: ChainContract | undefined
45
- universalSignatureVerifier?: ChainContract | undefined
45
+ erc6492Verifier?: ChainContract | undefined
46
46
  }
47
47
  >
48
48
  | undefined
package/utils/index.ts CHANGED
@@ -441,12 +441,24 @@ export {
441
441
  type IsErc6492SignatureReturnType,
442
442
  isErc6492Signature,
443
443
  } from './signature/isErc6492Signature.js'
444
+ export {
445
+ type IsErc8010SignatureErrorType,
446
+ type IsErc8010SignatureParameters,
447
+ type IsErc8010SignatureReturnType,
448
+ isErc8010Signature,
449
+ } from './signature/isErc8010Signature.js'
444
450
  export {
445
451
  type ParseErc6492SignatureErrorType,
446
452
  type ParseErc6492SignatureParameters,
447
453
  type ParseErc6492SignatureReturnType,
448
454
  parseErc6492Signature,
449
455
  } from './signature/parseErc6492Signature.js'
456
+ export {
457
+ type ParseErc8010SignatureErrorType,
458
+ type ParseErc8010SignatureParameters,
459
+ type ParseErc8010SignatureReturnType,
460
+ parseErc8010Signature,
461
+ } from './signature/parseErc8010Signature.js'
450
462
  export {
451
463
  type RecoverAddressErrorType,
452
464
  type RecoverAddressParameters,
@@ -477,6 +489,12 @@ export {
477
489
  type SerializeErc6492SignatureReturnType,
478
490
  serializeErc6492Signature,
479
491
  } from './signature/serializeErc6492Signature.js'
492
+ export {
493
+ type SerializeErc8010SignatureErrorType,
494
+ type SerializeErc8010SignatureParameters,
495
+ type SerializeErc8010SignatureReturnType,
496
+ serializeErc8010Signature,
497
+ } from './signature/serializeErc8010Signature.js'
480
498
  export {
481
499
  type VerifyHashErrorType,
482
500
  type VerifyHashParameters,
package/utils/rpc/http.ts CHANGED
@@ -15,6 +15,10 @@ import { stringify } from '../stringify.js'
15
15
  import { idCache } from './id.js'
16
16
 
17
17
  export type HttpRpcClientOptions = {
18
+ /** Override for the fetch function used to make requests. */
19
+ fetchFn?:
20
+ | ((input: string | URL | Request, init?: RequestInit) => Promise<Response>)
21
+ | undefined
18
22
  /** Request configuration to pass to `fetch`. */
19
23
  fetchOptions?: Omit<RequestInit, 'body'> | undefined
20
24
  /** A callback to handle the request. */
@@ -37,6 +41,8 @@ export type HttpRequestParameters<
37
41
  > = {
38
42
  /** The RPC request body. */
39
43
  body: body
44
+ /** Override for the fetch function used to make requests. */
45
+ fetchFn?: HttpRpcClientOptions['fetchFn'] | undefined
40
46
  /** Request configuration to pass to `fetch`. */
41
47
  fetchOptions?: HttpRpcClientOptions['fetchOptions'] | undefined
42
48
  /** A callback to handle the response. */
@@ -78,6 +84,7 @@ export function getHttpRpcClient(
78
84
  async request(params) {
79
85
  const {
80
86
  body,
87
+ fetchFn = options.fetchFn ?? fetch,
81
88
  onRequest = options.onRequest,
82
89
  onResponse = options.onResponse,
83
90
  timeout = options.timeout ?? 10_000,
@@ -117,7 +124,7 @@ export function getHttpRpcClient(
117
124
  }
118
125
  const request = new Request(url, init)
119
126
  const args = (await onRequest?.(request, init)) ?? { ...init, url }
120
- const response = await fetch(args.url ?? url, args)
127
+ const response = await fetchFn(args.url ?? url, args)
121
128
  return response
122
129
  },
123
130
  {
@@ -0,0 +1,14 @@
1
+ import * as SignatureErc8010 from 'ox/erc8010/SignatureErc8010'
2
+ import type { ErrorType } from '../../errors/utils.js'
3
+ import type { Hex } from '../../types/misc.js'
4
+
5
+ export type IsErc8010SignatureParameters = Hex
6
+ export type IsErc8010SignatureReturnType = boolean
7
+ export type IsErc8010SignatureErrorType = ErrorType
8
+
9
+ /** Whether or not the signature is an ERC-8010 formatted signature. */
10
+ export function isErc8010Signature(
11
+ signature: IsErc8010SignatureParameters,
12
+ ): IsErc8010SignatureReturnType {
13
+ return SignatureErc8010.validate(signature)
14
+ }
@@ -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
+ }