viem 2.5.0 → 2.6.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 (593) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/_cjs/accounts/utils/sign.js.map +1 -1
  3. package/_cjs/chains/definitions/berachainTestnet.js +24 -0
  4. package/_cjs/chains/definitions/berachainTestnet.js.map +1 -0
  5. package/_cjs/chains/definitions/kcc.js +33 -0
  6. package/_cjs/chains/definitions/kcc.js.map +1 -0
  7. package/_cjs/chains/definitions/zkSync.js +3 -2
  8. package/_cjs/chains/definitions/zkSync.js.map +1 -1
  9. package/_cjs/chains/index.js +8 -4
  10. package/_cjs/chains/index.js.map +1 -1
  11. package/_cjs/chains/zksync/actions/sendEip712Transaction.js +52 -0
  12. package/_cjs/chains/zksync/actions/sendEip712Transaction.js.map +1 -0
  13. package/_cjs/chains/zksync/actions/sendTransaction.js +13 -0
  14. package/_cjs/chains/zksync/actions/sendTransaction.js.map +1 -0
  15. package/_cjs/chains/zksync/actions/signEip712Transaction.js +52 -0
  16. package/_cjs/chains/zksync/actions/signEip712Transaction.js.map +1 -0
  17. package/_cjs/chains/zksync/actions/signTransaction.js +13 -0
  18. package/_cjs/chains/zksync/actions/signTransaction.js.map +1 -0
  19. package/_cjs/chains/zksync/chainConfig.js +4 -0
  20. package/_cjs/chains/zksync/chainConfig.js.map +1 -1
  21. package/_cjs/chains/zksync/chains.js +10 -0
  22. package/_cjs/chains/zksync/chains.js.map +1 -0
  23. package/_cjs/chains/zksync/decorators/eip712.js +17 -0
  24. package/_cjs/chains/zksync/decorators/eip712.js.map +1 -0
  25. package/_cjs/chains/zksync/errors/transaction.js +23 -0
  26. package/_cjs/chains/zksync/errors/transaction.js.map +1 -0
  27. package/_cjs/chains/zksync/formatters.js +2 -2
  28. package/_cjs/chains/zksync/formatters.js.map +1 -1
  29. package/_cjs/chains/zksync/index.js +15 -1
  30. package/_cjs/chains/zksync/index.js.map +1 -1
  31. package/_cjs/chains/zksync/serializers.js +6 -35
  32. package/_cjs/chains/zksync/serializers.js.map +1 -1
  33. package/_cjs/chains/zksync/{types.js → types/block.js} +1 -1
  34. package/_cjs/chains/zksync/types/block.js.map +1 -0
  35. package/_cjs/chains/zksync/types/chain.js +3 -0
  36. package/_cjs/chains/zksync/types/chain.js.map +1 -0
  37. package/_cjs/chains/zksync/types/eip712.js +3 -0
  38. package/_cjs/chains/zksync/types/eip712.js.map +1 -0
  39. package/_cjs/chains/zksync/types/fee.js +3 -0
  40. package/_cjs/chains/zksync/types/fee.js.map +1 -0
  41. package/_cjs/chains/zksync/types/log.js +3 -0
  42. package/_cjs/chains/zksync/types/log.js.map +1 -0
  43. package/_cjs/chains/zksync/types/transaction.js +3 -0
  44. package/_cjs/chains/zksync/types/transaction.js.map +1 -0
  45. package/_cjs/chains/zksync/utils/assertEip712Request.js +13 -0
  46. package/_cjs/chains/zksync/utils/assertEip712Request.js.map +1 -0
  47. package/_cjs/chains/zksync/utils/assertEip712Transaction.js +30 -0
  48. package/_cjs/chains/zksync/utils/assertEip712Transaction.js.map +1 -0
  49. package/_cjs/chains/zksync/utils/getEip712Domain.js +54 -0
  50. package/_cjs/chains/zksync/utils/getEip712Domain.js.map +1 -0
  51. package/_cjs/chains/zksync/utils/isEip712Transaction.js +17 -0
  52. package/_cjs/chains/zksync/utils/isEip712Transaction.js.map +1 -0
  53. package/_cjs/errors/chain.js +3 -1
  54. package/_cjs/errors/chain.js.map +1 -1
  55. package/_cjs/errors/version.js +1 -1
  56. package/_esm/accounts/utils/sign.js +1 -0
  57. package/_esm/accounts/utils/sign.js.map +1 -1
  58. package/_esm/chains/definitions/berachainTestnet.js +21 -0
  59. package/_esm/chains/definitions/berachainTestnet.js.map +1 -0
  60. package/_esm/chains/definitions/kcc.js +30 -0
  61. package/_esm/chains/definitions/kcc.js.map +1 -0
  62. package/_esm/chains/definitions/zkSync.js +3 -2
  63. package/_esm/chains/definitions/zkSync.js.map +1 -1
  64. package/_esm/chains/index.js +2 -0
  65. package/_esm/chains/index.js.map +1 -1
  66. package/_esm/chains/zksync/actions/sendEip712Transaction.js +91 -0
  67. package/_esm/chains/zksync/actions/sendEip712Transaction.js.map +1 -0
  68. package/_esm/chains/zksync/actions/sendTransaction.js +54 -0
  69. package/_esm/chains/zksync/actions/sendTransaction.js.map +1 -0
  70. package/_esm/chains/zksync/actions/signEip712Transaction.js +86 -0
  71. package/_esm/chains/zksync/actions/signEip712Transaction.js.map +1 -0
  72. package/_esm/chains/zksync/actions/signTransaction.js +49 -0
  73. package/_esm/chains/zksync/actions/signTransaction.js.map +1 -0
  74. package/_esm/chains/zksync/chainConfig.js +4 -0
  75. package/_esm/chains/zksync/chainConfig.js.map +1 -1
  76. package/_esm/chains/zksync/chains.js +4 -0
  77. package/_esm/chains/zksync/chains.js.map +1 -0
  78. package/_esm/chains/zksync/decorators/eip712.js +13 -0
  79. package/_esm/chains/zksync/decorators/eip712.js.map +1 -0
  80. package/_esm/chains/zksync/errors/transaction.js +19 -0
  81. package/_esm/chains/zksync/errors/transaction.js.map +1 -0
  82. package/_esm/chains/zksync/formatters.js +2 -2
  83. package/_esm/chains/zksync/formatters.js.map +1 -1
  84. package/_esm/chains/zksync/index.js +6 -0
  85. package/_esm/chains/zksync/index.js.map +1 -1
  86. package/_esm/chains/zksync/serializers.js +5 -35
  87. package/_esm/chains/zksync/serializers.js.map +1 -1
  88. package/_esm/chains/zksync/types/block.js +2 -0
  89. package/_esm/chains/zksync/types/block.js.map +1 -0
  90. package/_esm/chains/zksync/types/chain.js +2 -0
  91. package/_esm/chains/zksync/types/chain.js.map +1 -0
  92. package/_esm/chains/zksync/types/eip712.js +2 -0
  93. package/_esm/chains/zksync/types/eip712.js.map +1 -0
  94. package/_esm/chains/zksync/types/fee.js +2 -0
  95. package/_esm/chains/zksync/types/fee.js.map +1 -0
  96. package/_esm/chains/zksync/types/log.js +2 -0
  97. package/_esm/chains/zksync/types/log.js.map +1 -0
  98. package/_esm/chains/zksync/types/transaction.js +2 -0
  99. package/_esm/chains/zksync/types/transaction.js.map +1 -0
  100. package/_esm/chains/zksync/utils/assertEip712Request.js +9 -0
  101. package/_esm/chains/zksync/utils/assertEip712Request.js.map +1 -0
  102. package/_esm/chains/zksync/utils/assertEip712Transaction.js +26 -0
  103. package/_esm/chains/zksync/utils/assertEip712Transaction.js.map +1 -0
  104. package/_esm/chains/zksync/utils/getEip712Domain.js +52 -0
  105. package/_esm/chains/zksync/utils/getEip712Domain.js.map +1 -0
  106. package/_esm/chains/zksync/utils/isEip712Transaction.js +13 -0
  107. package/_esm/chains/zksync/utils/isEip712Transaction.js.map +1 -0
  108. package/_esm/errors/chain.js +3 -1
  109. package/_esm/errors/chain.js.map +1 -1
  110. package/_esm/errors/version.js +1 -1
  111. package/_types/accounts/utils/sign.d.ts.map +1 -1
  112. package/_types/chains/definitions/acala.d.ts +1 -0
  113. package/_types/chains/definitions/acala.d.ts.map +1 -1
  114. package/_types/chains/definitions/arbitrum.d.ts +1 -0
  115. package/_types/chains/definitions/arbitrum.d.ts.map +1 -1
  116. package/_types/chains/definitions/arbitrumGoerli.d.ts +1 -0
  117. package/_types/chains/definitions/arbitrumGoerli.d.ts.map +1 -1
  118. package/_types/chains/definitions/arbitrumNova.d.ts +1 -0
  119. package/_types/chains/definitions/arbitrumNova.d.ts.map +1 -1
  120. package/_types/chains/definitions/arbitrumSepolia.d.ts +1 -0
  121. package/_types/chains/definitions/arbitrumSepolia.d.ts.map +1 -1
  122. package/_types/chains/definitions/astar.d.ts +1 -0
  123. package/_types/chains/definitions/astar.d.ts.map +1 -1
  124. package/_types/chains/definitions/astarZkatana.d.ts +1 -0
  125. package/_types/chains/definitions/astarZkatana.d.ts.map +1 -1
  126. package/_types/chains/definitions/aurora.d.ts +1 -0
  127. package/_types/chains/definitions/aurora.d.ts.map +1 -1
  128. package/_types/chains/definitions/auroraTestnet.d.ts +1 -0
  129. package/_types/chains/definitions/auroraTestnet.d.ts.map +1 -1
  130. package/_types/chains/definitions/avalanche.d.ts +1 -0
  131. package/_types/chains/definitions/avalanche.d.ts.map +1 -1
  132. package/_types/chains/definitions/avalancheFuji.d.ts +1 -0
  133. package/_types/chains/definitions/avalancheFuji.d.ts.map +1 -1
  134. package/_types/chains/definitions/bahamut.d.ts +1 -0
  135. package/_types/chains/definitions/bahamut.d.ts.map +1 -1
  136. package/_types/chains/definitions/base.d.ts +2 -0
  137. package/_types/chains/definitions/base.d.ts.map +1 -1
  138. package/_types/chains/definitions/baseGoerli.d.ts +2 -0
  139. package/_types/chains/definitions/baseGoerli.d.ts.map +1 -1
  140. package/_types/chains/definitions/baseSepolia.d.ts +2 -0
  141. package/_types/chains/definitions/baseSepolia.d.ts.map +1 -1
  142. package/_types/chains/definitions/bearNetworkChainMainnet.d.ts +1 -0
  143. package/_types/chains/definitions/bearNetworkChainMainnet.d.ts.map +1 -1
  144. package/_types/chains/definitions/bearNetworkChainTestnet.d.ts +1 -0
  145. package/_types/chains/definitions/bearNetworkChainTestnet.d.ts.map +1 -1
  146. package/_types/chains/definitions/berachainTestnet.d.ts +35 -0
  147. package/_types/chains/definitions/berachainTestnet.d.ts.map +1 -0
  148. package/_types/chains/definitions/bitTorrent.d.ts +1 -0
  149. package/_types/chains/definitions/bitTorrent.d.ts.map +1 -1
  150. package/_types/chains/definitions/bitTorrentTestnet.d.ts +1 -0
  151. package/_types/chains/definitions/bitTorrentTestnet.d.ts.map +1 -1
  152. package/_types/chains/definitions/blastSepolia.d.ts +1 -0
  153. package/_types/chains/definitions/blastSepolia.d.ts.map +1 -1
  154. package/_types/chains/definitions/boba.d.ts +1 -0
  155. package/_types/chains/definitions/boba.d.ts.map +1 -1
  156. package/_types/chains/definitions/bronos.d.ts +1 -0
  157. package/_types/chains/definitions/bronos.d.ts.map +1 -1
  158. package/_types/chains/definitions/bronosTestnet.d.ts +1 -0
  159. package/_types/chains/definitions/bronosTestnet.d.ts.map +1 -1
  160. package/_types/chains/definitions/bsc.d.ts +1 -0
  161. package/_types/chains/definitions/bsc.d.ts.map +1 -1
  162. package/_types/chains/definitions/bscTestnet.d.ts +1 -0
  163. package/_types/chains/definitions/bscTestnet.d.ts.map +1 -1
  164. package/_types/chains/definitions/bxn.d.ts +1 -0
  165. package/_types/chains/definitions/bxn.d.ts.map +1 -1
  166. package/_types/chains/definitions/bxnTestnet.d.ts +1 -0
  167. package/_types/chains/definitions/bxnTestnet.d.ts.map +1 -1
  168. package/_types/chains/definitions/canto.d.ts +1 -0
  169. package/_types/chains/definitions/canto.d.ts.map +1 -1
  170. package/_types/chains/definitions/celo.d.ts +1 -0
  171. package/_types/chains/definitions/celo.d.ts.map +1 -1
  172. package/_types/chains/definitions/celoAlfajores.d.ts +1 -0
  173. package/_types/chains/definitions/celoAlfajores.d.ts.map +1 -1
  174. package/_types/chains/definitions/chiliz.d.ts +1 -0
  175. package/_types/chains/definitions/chiliz.d.ts.map +1 -1
  176. package/_types/chains/definitions/classic.d.ts +1 -0
  177. package/_types/chains/definitions/classic.d.ts.map +1 -1
  178. package/_types/chains/definitions/confluxESpace.d.ts +1 -0
  179. package/_types/chains/definitions/confluxESpace.d.ts.map +1 -1
  180. package/_types/chains/definitions/confluxESpaceTestnet.d.ts +1 -0
  181. package/_types/chains/definitions/confluxESpaceTestnet.d.ts.map +1 -1
  182. package/_types/chains/definitions/coreDao.d.ts +1 -0
  183. package/_types/chains/definitions/coreDao.d.ts.map +1 -1
  184. package/_types/chains/definitions/cronos.d.ts +1 -0
  185. package/_types/chains/definitions/cronos.d.ts.map +1 -1
  186. package/_types/chains/definitions/cronosTestnet.d.ts +1 -0
  187. package/_types/chains/definitions/cronosTestnet.d.ts.map +1 -1
  188. package/_types/chains/definitions/crossbell.d.ts +1 -0
  189. package/_types/chains/definitions/crossbell.d.ts.map +1 -1
  190. package/_types/chains/definitions/defichainEvm.d.ts +1 -0
  191. package/_types/chains/definitions/defichainEvm.d.ts.map +1 -1
  192. package/_types/chains/definitions/defichainEvmTestnet.d.ts +1 -0
  193. package/_types/chains/definitions/defichainEvmTestnet.d.ts.map +1 -1
  194. package/_types/chains/definitions/dfk.d.ts +1 -0
  195. package/_types/chains/definitions/dfk.d.ts.map +1 -1
  196. package/_types/chains/definitions/dogechain.d.ts +1 -0
  197. package/_types/chains/definitions/dogechain.d.ts.map +1 -1
  198. package/_types/chains/definitions/edgeware.d.ts +1 -0
  199. package/_types/chains/definitions/edgeware.d.ts.map +1 -1
  200. package/_types/chains/definitions/edgewareTestnet.d.ts +1 -0
  201. package/_types/chains/definitions/edgewareTestnet.d.ts.map +1 -1
  202. package/_types/chains/definitions/ekta.d.ts +1 -0
  203. package/_types/chains/definitions/ekta.d.ts.map +1 -1
  204. package/_types/chains/definitions/ektaTestnet.d.ts +1 -0
  205. package/_types/chains/definitions/ektaTestnet.d.ts.map +1 -1
  206. package/_types/chains/definitions/eon.d.ts +1 -0
  207. package/_types/chains/definitions/eon.d.ts.map +1 -1
  208. package/_types/chains/definitions/eos.d.ts +1 -0
  209. package/_types/chains/definitions/eos.d.ts.map +1 -1
  210. package/_types/chains/definitions/eosTestnet.d.ts +1 -0
  211. package/_types/chains/definitions/eosTestnet.d.ts.map +1 -1
  212. package/_types/chains/definitions/evmos.d.ts +1 -0
  213. package/_types/chains/definitions/evmos.d.ts.map +1 -1
  214. package/_types/chains/definitions/evmosTestnet.d.ts +1 -0
  215. package/_types/chains/definitions/evmosTestnet.d.ts.map +1 -1
  216. package/_types/chains/definitions/fantom.d.ts +1 -0
  217. package/_types/chains/definitions/fantom.d.ts.map +1 -1
  218. package/_types/chains/definitions/fantomSonicTestnet.d.ts +1 -0
  219. package/_types/chains/definitions/fantomSonicTestnet.d.ts.map +1 -1
  220. package/_types/chains/definitions/fantomTestnet.d.ts +1 -0
  221. package/_types/chains/definitions/fantomTestnet.d.ts.map +1 -1
  222. package/_types/chains/definitions/fibo.d.ts +1 -0
  223. package/_types/chains/definitions/fibo.d.ts.map +1 -1
  224. package/_types/chains/definitions/filecoin.d.ts +1 -0
  225. package/_types/chains/definitions/filecoin.d.ts.map +1 -1
  226. package/_types/chains/definitions/filecoinCalibration.d.ts +1 -0
  227. package/_types/chains/definitions/filecoinCalibration.d.ts.map +1 -1
  228. package/_types/chains/definitions/filecoinHyperspace.d.ts +1 -0
  229. package/_types/chains/definitions/filecoinHyperspace.d.ts.map +1 -1
  230. package/_types/chains/definitions/flare.d.ts +1 -0
  231. package/_types/chains/definitions/flare.d.ts.map +1 -1
  232. package/_types/chains/definitions/flareTestnet.d.ts +1 -0
  233. package/_types/chains/definitions/flareTestnet.d.ts.map +1 -1
  234. package/_types/chains/definitions/foundry.d.ts +1 -0
  235. package/_types/chains/definitions/foundry.d.ts.map +1 -1
  236. package/_types/chains/definitions/fuse.d.ts +1 -0
  237. package/_types/chains/definitions/fuse.d.ts.map +1 -1
  238. package/_types/chains/definitions/fuseSparknet.d.ts +1 -0
  239. package/_types/chains/definitions/fuseSparknet.d.ts.map +1 -1
  240. package/_types/chains/definitions/gnosis.d.ts +1 -0
  241. package/_types/chains/definitions/gnosis.d.ts.map +1 -1
  242. package/_types/chains/definitions/gnosisChiado.d.ts +1 -0
  243. package/_types/chains/definitions/gnosisChiado.d.ts.map +1 -1
  244. package/_types/chains/definitions/gobi.d.ts +1 -0
  245. package/_types/chains/definitions/gobi.d.ts.map +1 -1
  246. package/_types/chains/definitions/goerli.d.ts +1 -0
  247. package/_types/chains/definitions/goerli.d.ts.map +1 -1
  248. package/_types/chains/definitions/haqqMainnet.d.ts +1 -0
  249. package/_types/chains/definitions/haqqMainnet.d.ts.map +1 -1
  250. package/_types/chains/definitions/haqqTestedge2.d.ts +1 -0
  251. package/_types/chains/definitions/haqqTestedge2.d.ts.map +1 -1
  252. package/_types/chains/definitions/hardhat.d.ts +1 -0
  253. package/_types/chains/definitions/hardhat.d.ts.map +1 -1
  254. package/_types/chains/definitions/harmonyOne.d.ts +1 -0
  255. package/_types/chains/definitions/harmonyOne.d.ts.map +1 -1
  256. package/_types/chains/definitions/holesky.d.ts +1 -0
  257. package/_types/chains/definitions/holesky.d.ts.map +1 -1
  258. package/_types/chains/definitions/iotex.d.ts +1 -0
  259. package/_types/chains/definitions/iotex.d.ts.map +1 -1
  260. package/_types/chains/definitions/iotexTestnet.d.ts +1 -0
  261. package/_types/chains/definitions/iotexTestnet.d.ts.map +1 -1
  262. package/_types/chains/definitions/jbc.d.ts +1 -0
  263. package/_types/chains/definitions/jbc.d.ts.map +1 -1
  264. package/_types/chains/definitions/karura.d.ts +1 -0
  265. package/_types/chains/definitions/karura.d.ts.map +1 -1
  266. package/_types/chains/definitions/kava.d.ts +1 -0
  267. package/_types/chains/definitions/kava.d.ts.map +1 -1
  268. package/_types/chains/definitions/kavaTestnet.d.ts +1 -0
  269. package/_types/chains/definitions/kavaTestnet.d.ts.map +1 -1
  270. package/_types/chains/definitions/kcc.d.ts +37 -0
  271. package/_types/chains/definitions/kcc.d.ts.map +1 -0
  272. package/_types/chains/definitions/klaytn.d.ts +1 -0
  273. package/_types/chains/definitions/klaytn.d.ts.map +1 -1
  274. package/_types/chains/definitions/klaytnBaobab.d.ts +1 -0
  275. package/_types/chains/definitions/klaytnBaobab.d.ts.map +1 -1
  276. package/_types/chains/definitions/kroma.d.ts +1 -0
  277. package/_types/chains/definitions/kroma.d.ts.map +1 -1
  278. package/_types/chains/definitions/kromaSepolia.d.ts +1 -0
  279. package/_types/chains/definitions/kromaSepolia.d.ts.map +1 -1
  280. package/_types/chains/definitions/lightlinkPegasus.d.ts +1 -0
  281. package/_types/chains/definitions/lightlinkPegasus.d.ts.map +1 -1
  282. package/_types/chains/definitions/lightlinkPhoenix.d.ts +1 -0
  283. package/_types/chains/definitions/lightlinkPhoenix.d.ts.map +1 -1
  284. package/_types/chains/definitions/linea.d.ts +1 -0
  285. package/_types/chains/definitions/linea.d.ts.map +1 -1
  286. package/_types/chains/definitions/lineaTestnet.d.ts +1 -0
  287. package/_types/chains/definitions/lineaTestnet.d.ts.map +1 -1
  288. package/_types/chains/definitions/localhost.d.ts +1 -0
  289. package/_types/chains/definitions/localhost.d.ts.map +1 -1
  290. package/_types/chains/definitions/lukso.d.ts +1 -0
  291. package/_types/chains/definitions/lukso.d.ts.map +1 -1
  292. package/_types/chains/definitions/mainnet.d.ts +1 -0
  293. package/_types/chains/definitions/mainnet.d.ts.map +1 -1
  294. package/_types/chains/definitions/mandala.d.ts +1 -0
  295. package/_types/chains/definitions/mandala.d.ts.map +1 -1
  296. package/_types/chains/definitions/manta.d.ts +1 -0
  297. package/_types/chains/definitions/manta.d.ts.map +1 -1
  298. package/_types/chains/definitions/mantaTestnet.d.ts +1 -0
  299. package/_types/chains/definitions/mantaTestnet.d.ts.map +1 -1
  300. package/_types/chains/definitions/mantle.d.ts +1 -0
  301. package/_types/chains/definitions/mantle.d.ts.map +1 -1
  302. package/_types/chains/definitions/mantleTestnet.d.ts +1 -0
  303. package/_types/chains/definitions/mantleTestnet.d.ts.map +1 -1
  304. package/_types/chains/definitions/metachain.d.ts +1 -0
  305. package/_types/chains/definitions/metachain.d.ts.map +1 -1
  306. package/_types/chains/definitions/meter.d.ts +1 -0
  307. package/_types/chains/definitions/meter.d.ts.map +1 -1
  308. package/_types/chains/definitions/meterTestnet.d.ts +1 -0
  309. package/_types/chains/definitions/meterTestnet.d.ts.map +1 -1
  310. package/_types/chains/definitions/metis.d.ts +1 -0
  311. package/_types/chains/definitions/metis.d.ts.map +1 -1
  312. package/_types/chains/definitions/metisGoerli.d.ts +1 -0
  313. package/_types/chains/definitions/metisGoerli.d.ts.map +1 -1
  314. package/_types/chains/definitions/mev.d.ts +1 -0
  315. package/_types/chains/definitions/mev.d.ts.map +1 -1
  316. package/_types/chains/definitions/mevTestnet.d.ts +1 -0
  317. package/_types/chains/definitions/mevTestnet.d.ts.map +1 -1
  318. package/_types/chains/definitions/modeTestnet.d.ts +1 -0
  319. package/_types/chains/definitions/modeTestnet.d.ts.map +1 -1
  320. package/_types/chains/definitions/moonbaseAlpha.d.ts +1 -0
  321. package/_types/chains/definitions/moonbaseAlpha.d.ts.map +1 -1
  322. package/_types/chains/definitions/moonbeam.d.ts +1 -0
  323. package/_types/chains/definitions/moonbeam.d.ts.map +1 -1
  324. package/_types/chains/definitions/moonbeamDev.d.ts +1 -0
  325. package/_types/chains/definitions/moonbeamDev.d.ts.map +1 -1
  326. package/_types/chains/definitions/moonriver.d.ts +1 -0
  327. package/_types/chains/definitions/moonriver.d.ts.map +1 -1
  328. package/_types/chains/definitions/neonDevnet.d.ts +1 -0
  329. package/_types/chains/definitions/neonDevnet.d.ts.map +1 -1
  330. package/_types/chains/definitions/neonMainnet.d.ts +1 -0
  331. package/_types/chains/definitions/neonMainnet.d.ts.map +1 -1
  332. package/_types/chains/definitions/nexi.d.ts +1 -0
  333. package/_types/chains/definitions/nexi.d.ts.map +1 -1
  334. package/_types/chains/definitions/nexilix.d.ts +1 -0
  335. package/_types/chains/definitions/nexilix.d.ts.map +1 -1
  336. package/_types/chains/definitions/oasisTestnet.d.ts +1 -0
  337. package/_types/chains/definitions/oasisTestnet.d.ts.map +1 -1
  338. package/_types/chains/definitions/oasys.d.ts +1 -0
  339. package/_types/chains/definitions/oasys.d.ts.map +1 -1
  340. package/_types/chains/definitions/okc.d.ts +1 -0
  341. package/_types/chains/definitions/okc.d.ts.map +1 -1
  342. package/_types/chains/definitions/opBNB.d.ts +1 -0
  343. package/_types/chains/definitions/opBNB.d.ts.map +1 -1
  344. package/_types/chains/definitions/opBNBTestnet.d.ts +1 -0
  345. package/_types/chains/definitions/opBNBTestnet.d.ts.map +1 -1
  346. package/_types/chains/definitions/optimism.d.ts +2 -0
  347. package/_types/chains/definitions/optimism.d.ts.map +1 -1
  348. package/_types/chains/definitions/optimismGoerli.d.ts +2 -0
  349. package/_types/chains/definitions/optimismGoerli.d.ts.map +1 -1
  350. package/_types/chains/definitions/optimismSepolia.d.ts +2 -0
  351. package/_types/chains/definitions/optimismSepolia.d.ts.map +1 -1
  352. package/_types/chains/definitions/palm.d.ts +1 -0
  353. package/_types/chains/definitions/palm.d.ts.map +1 -1
  354. package/_types/chains/definitions/palmTestnet.d.ts +1 -0
  355. package/_types/chains/definitions/palmTestnet.d.ts.map +1 -1
  356. package/_types/chains/definitions/pgn.d.ts +2 -0
  357. package/_types/chains/definitions/pgn.d.ts.map +1 -1
  358. package/_types/chains/definitions/pgnTestnet.d.ts +2 -0
  359. package/_types/chains/definitions/pgnTestnet.d.ts.map +1 -1
  360. package/_types/chains/definitions/plinga.d.ts +1 -0
  361. package/_types/chains/definitions/plinga.d.ts.map +1 -1
  362. package/_types/chains/definitions/polygon.d.ts +1 -0
  363. package/_types/chains/definitions/polygon.d.ts.map +1 -1
  364. package/_types/chains/definitions/polygonMumbai.d.ts +1 -0
  365. package/_types/chains/definitions/polygonMumbai.d.ts.map +1 -1
  366. package/_types/chains/definitions/polygonZkEvm.d.ts +1 -0
  367. package/_types/chains/definitions/polygonZkEvm.d.ts.map +1 -1
  368. package/_types/chains/definitions/polygonZkEvmTestnet.d.ts +1 -0
  369. package/_types/chains/definitions/polygonZkEvmTestnet.d.ts.map +1 -1
  370. package/_types/chains/definitions/pulsechain.d.ts +1 -0
  371. package/_types/chains/definitions/pulsechain.d.ts.map +1 -1
  372. package/_types/chains/definitions/pulsechainV4.d.ts +1 -0
  373. package/_types/chains/definitions/pulsechainV4.d.ts.map +1 -1
  374. package/_types/chains/definitions/qMainnet.d.ts +1 -0
  375. package/_types/chains/definitions/qMainnet.d.ts.map +1 -1
  376. package/_types/chains/definitions/qTestnet.d.ts +1 -0
  377. package/_types/chains/definitions/qTestnet.d.ts.map +1 -1
  378. package/_types/chains/definitions/rollux.d.ts +1 -0
  379. package/_types/chains/definitions/rollux.d.ts.map +1 -1
  380. package/_types/chains/definitions/rolluxTestnet.d.ts +1 -0
  381. package/_types/chains/definitions/rolluxTestnet.d.ts.map +1 -1
  382. package/_types/chains/definitions/ronin.d.ts +1 -0
  383. package/_types/chains/definitions/ronin.d.ts.map +1 -1
  384. package/_types/chains/definitions/rootstock.d.ts +1 -0
  385. package/_types/chains/definitions/rootstock.d.ts.map +1 -1
  386. package/_types/chains/definitions/saigon.d.ts +1 -0
  387. package/_types/chains/definitions/saigon.d.ts.map +1 -1
  388. package/_types/chains/definitions/sapphire.d.ts +1 -0
  389. package/_types/chains/definitions/sapphire.d.ts.map +1 -1
  390. package/_types/chains/definitions/sapphireTestnet.d.ts +1 -0
  391. package/_types/chains/definitions/sapphireTestnet.d.ts.map +1 -1
  392. package/_types/chains/definitions/scroll.d.ts +1 -0
  393. package/_types/chains/definitions/scroll.d.ts.map +1 -1
  394. package/_types/chains/definitions/scrollSepolia.d.ts +1 -0
  395. package/_types/chains/definitions/scrollSepolia.d.ts.map +1 -1
  396. package/_types/chains/definitions/scrollTestnet.d.ts +1 -0
  397. package/_types/chains/definitions/scrollTestnet.d.ts.map +1 -1
  398. package/_types/chains/definitions/sepolia.d.ts +1 -0
  399. package/_types/chains/definitions/sepolia.d.ts.map +1 -1
  400. package/_types/chains/definitions/shardeumSphinx.d.ts +1 -0
  401. package/_types/chains/definitions/shardeumSphinx.d.ts.map +1 -1
  402. package/_types/chains/definitions/shibarium.d.ts +1 -0
  403. package/_types/chains/definitions/shibarium.d.ts.map +1 -1
  404. package/_types/chains/definitions/shimmer.d.ts +1 -0
  405. package/_types/chains/definitions/shimmer.d.ts.map +1 -1
  406. package/_types/chains/definitions/shimmerTestnet.d.ts +1 -0
  407. package/_types/chains/definitions/shimmerTestnet.d.ts.map +1 -1
  408. package/_types/chains/definitions/skale/brawl.d.ts +1 -0
  409. package/_types/chains/definitions/skale/brawl.d.ts.map +1 -1
  410. package/_types/chains/definitions/skale/calypso.d.ts +1 -0
  411. package/_types/chains/definitions/skale/calypso.d.ts.map +1 -1
  412. package/_types/chains/definitions/skale/calypsoTestnet.d.ts +1 -0
  413. package/_types/chains/definitions/skale/calypsoTestnet.d.ts.map +1 -1
  414. package/_types/chains/definitions/skale/chaosTestnet.d.ts +1 -0
  415. package/_types/chains/definitions/skale/chaosTestnet.d.ts.map +1 -1
  416. package/_types/chains/definitions/skale/cryptoBlades.d.ts +1 -0
  417. package/_types/chains/definitions/skale/cryptoBlades.d.ts.map +1 -1
  418. package/_types/chains/definitions/skale/cryptoColosseum.d.ts +1 -0
  419. package/_types/chains/definitions/skale/cryptoColosseum.d.ts.map +1 -1
  420. package/_types/chains/definitions/skale/europa.d.ts +1 -0
  421. package/_types/chains/definitions/skale/europa.d.ts.map +1 -1
  422. package/_types/chains/definitions/skale/europaTestnet.d.ts +1 -0
  423. package/_types/chains/definitions/skale/europaTestnet.d.ts.map +1 -1
  424. package/_types/chains/definitions/skale/exorde.d.ts +1 -0
  425. package/_types/chains/definitions/skale/exorde.d.ts.map +1 -1
  426. package/_types/chains/definitions/skale/humanProtocol.d.ts +1 -0
  427. package/_types/chains/definitions/skale/humanProtocol.d.ts.map +1 -1
  428. package/_types/chains/definitions/skale/nebula.d.ts +1 -0
  429. package/_types/chains/definitions/skale/nebula.d.ts.map +1 -1
  430. package/_types/chains/definitions/skale/nebulaTestnet.d.ts +1 -0
  431. package/_types/chains/definitions/skale/nebulaTestnet.d.ts.map +1 -1
  432. package/_types/chains/definitions/skale/razor.d.ts +1 -0
  433. package/_types/chains/definitions/skale/razor.d.ts.map +1 -1
  434. package/_types/chains/definitions/skale/titan.d.ts +1 -0
  435. package/_types/chains/definitions/skale/titan.d.ts.map +1 -1
  436. package/_types/chains/definitions/skale/titanTestnet.d.ts +1 -0
  437. package/_types/chains/definitions/skale/titanTestnet.d.ts.map +1 -1
  438. package/_types/chains/definitions/songbird.d.ts +1 -0
  439. package/_types/chains/definitions/songbird.d.ts.map +1 -1
  440. package/_types/chains/definitions/songbirdTestnet.d.ts +1 -0
  441. package/_types/chains/definitions/songbirdTestnet.d.ts.map +1 -1
  442. package/_types/chains/definitions/spicy.d.ts +1 -0
  443. package/_types/chains/definitions/spicy.d.ts.map +1 -1
  444. package/_types/chains/definitions/syscoin.d.ts +1 -0
  445. package/_types/chains/definitions/syscoin.d.ts.map +1 -1
  446. package/_types/chains/definitions/syscoinTestnet.d.ts +1 -0
  447. package/_types/chains/definitions/syscoinTestnet.d.ts.map +1 -1
  448. package/_types/chains/definitions/taikoJolnir.d.ts +1 -0
  449. package/_types/chains/definitions/taikoJolnir.d.ts.map +1 -1
  450. package/_types/chains/definitions/taikoKatla.d.ts +1 -0
  451. package/_types/chains/definitions/taikoKatla.d.ts.map +1 -1
  452. package/_types/chains/definitions/taikoTestnetSepolia.d.ts +1 -0
  453. package/_types/chains/definitions/taikoTestnetSepolia.d.ts.map +1 -1
  454. package/_types/chains/definitions/taraxa.d.ts +1 -0
  455. package/_types/chains/definitions/taraxa.d.ts.map +1 -1
  456. package/_types/chains/definitions/taraxaTestnet.d.ts +1 -0
  457. package/_types/chains/definitions/taraxaTestnet.d.ts.map +1 -1
  458. package/_types/chains/definitions/telos.d.ts +1 -0
  459. package/_types/chains/definitions/telos.d.ts.map +1 -1
  460. package/_types/chains/definitions/telosTestnet.d.ts +1 -0
  461. package/_types/chains/definitions/telosTestnet.d.ts.map +1 -1
  462. package/_types/chains/definitions/tenet.d.ts +1 -0
  463. package/_types/chains/definitions/tenet.d.ts.map +1 -1
  464. package/_types/chains/definitions/thunderTestnet.d.ts +1 -0
  465. package/_types/chains/definitions/thunderTestnet.d.ts.map +1 -1
  466. package/_types/chains/definitions/vechain.d.ts +1 -0
  467. package/_types/chains/definitions/vechain.d.ts.map +1 -1
  468. package/_types/chains/definitions/wanchain.d.ts +1 -0
  469. package/_types/chains/definitions/wanchain.d.ts.map +1 -1
  470. package/_types/chains/definitions/wanchainTestnet.d.ts +1 -0
  471. package/_types/chains/definitions/wanchainTestnet.d.ts.map +1 -1
  472. package/_types/chains/definitions/wemix.d.ts +1 -0
  473. package/_types/chains/definitions/wemix.d.ts.map +1 -1
  474. package/_types/chains/definitions/wemixTestnet.d.ts +1 -0
  475. package/_types/chains/definitions/wemixTestnet.d.ts.map +1 -1
  476. package/_types/chains/definitions/xdc.d.ts +1 -0
  477. package/_types/chains/definitions/xdc.d.ts.map +1 -1
  478. package/_types/chains/definitions/xdcTestnet.d.ts +1 -0
  479. package/_types/chains/definitions/xdcTestnet.d.ts.map +1 -1
  480. package/_types/chains/definitions/zetachainAthensTestnet.d.ts +1 -0
  481. package/_types/chains/definitions/zetachainAthensTestnet.d.ts.map +1 -1
  482. package/_types/chains/definitions/zhejiang.d.ts +1 -0
  483. package/_types/chains/definitions/zhejiang.d.ts.map +1 -1
  484. package/_types/chains/definitions/zilliqa.d.ts +1 -0
  485. package/_types/chains/definitions/zilliqa.d.ts.map +1 -1
  486. package/_types/chains/definitions/zilliqaTestnet.d.ts +1 -0
  487. package/_types/chains/definitions/zilliqaTestnet.d.ts.map +1 -1
  488. package/_types/chains/definitions/zkFair.d.ts +1 -0
  489. package/_types/chains/definitions/zkFair.d.ts.map +1 -1
  490. package/_types/chains/definitions/zkFairTestnet.d.ts +1 -0
  491. package/_types/chains/definitions/zkFairTestnet.d.ts.map +1 -1
  492. package/_types/chains/definitions/zkSync.d.ts +23 -18
  493. package/_types/chains/definitions/zkSync.d.ts.map +1 -1
  494. package/_types/chains/definitions/zkSyncSepoliaTestnet.d.ts +20 -16
  495. package/_types/chains/definitions/zkSyncSepoliaTestnet.d.ts.map +1 -1
  496. package/_types/chains/definitions/zkSyncTestnet.d.ts +20 -16
  497. package/_types/chains/definitions/zkSyncTestnet.d.ts.map +1 -1
  498. package/_types/chains/definitions/zora.d.ts +2 -0
  499. package/_types/chains/definitions/zora.d.ts.map +1 -1
  500. package/_types/chains/definitions/zoraSepolia.d.ts +2 -0
  501. package/_types/chains/definitions/zoraSepolia.d.ts.map +1 -1
  502. package/_types/chains/definitions/zoraTestnet.d.ts +2 -0
  503. package/_types/chains/definitions/zoraTestnet.d.ts.map +1 -1
  504. package/_types/chains/index.d.ts +2 -0
  505. package/_types/chains/index.d.ts.map +1 -1
  506. package/_types/chains/opStack/chainConfig.d.ts +1 -0
  507. package/_types/chains/opStack/chainConfig.d.ts.map +1 -1
  508. package/_types/chains/opStack/formatters.d.ts +1 -0
  509. package/_types/chains/opStack/formatters.d.ts.map +1 -1
  510. package/_types/chains/zksync/actions/sendEip712Transaction.d.ts +50 -0
  511. package/_types/chains/zksync/actions/sendEip712Transaction.d.ts.map +1 -0
  512. package/_types/chains/zksync/actions/sendTransaction.d.ts +54 -0
  513. package/_types/chains/zksync/actions/sendTransaction.d.ts.map +1 -0
  514. package/_types/chains/zksync/actions/signEip712Transaction.d.ts +54 -0
  515. package/_types/chains/zksync/actions/signEip712Transaction.d.ts.map +1 -0
  516. package/_types/chains/zksync/actions/signTransaction.d.ts +56 -0
  517. package/_types/chains/zksync/actions/signTransaction.d.ts.map +1 -0
  518. package/_types/chains/zksync/chainConfig.d.ts +20 -16
  519. package/_types/chains/zksync/chainConfig.d.ts.map +1 -1
  520. package/_types/chains/zksync/chains.d.ts +4 -0
  521. package/_types/chains/zksync/chains.d.ts.map +1 -0
  522. package/_types/chains/zksync/decorators/eip712.d.ts +151 -0
  523. package/_types/chains/zksync/decorators/eip712.d.ts.map +1 -0
  524. package/_types/chains/zksync/errors/transaction.d.ts +9 -0
  525. package/_types/chains/zksync/errors/transaction.d.ts.map +1 -0
  526. package/_types/chains/zksync/formatters.d.ts +12 -9
  527. package/_types/chains/zksync/formatters.d.ts.map +1 -1
  528. package/_types/chains/zksync/index.d.ts +12 -1
  529. package/_types/chains/zksync/index.d.ts.map +1 -1
  530. package/_types/chains/zksync/serializers.d.ts +1 -2
  531. package/_types/chains/zksync/serializers.d.ts.map +1 -1
  532. package/_types/chains/zksync/types/block.d.ts +15 -0
  533. package/_types/chains/zksync/types/block.d.ts.map +1 -0
  534. package/_types/chains/zksync/types/chain.d.ts +9 -0
  535. package/_types/chains/zksync/types/chain.d.ts.map +1 -0
  536. package/_types/chains/zksync/types/eip712.d.ts +27 -0
  537. package/_types/chains/zksync/types/eip712.d.ts.map +1 -0
  538. package/_types/chains/zksync/types/fee.d.ts +6 -0
  539. package/_types/chains/zksync/types/fee.d.ts.map +1 -0
  540. package/_types/chains/zksync/types/log.d.ts +41 -0
  541. package/_types/chains/zksync/types/log.d.ts.map +1 -0
  542. package/_types/chains/zksync/{types.d.ts → types/transaction.d.ts} +35 -71
  543. package/_types/chains/zksync/types/transaction.d.ts.map +1 -0
  544. package/_types/chains/zksync/utils/assertEip712Request.d.ts +8 -0
  545. package/_types/chains/zksync/utils/assertEip712Request.d.ts.map +1 -0
  546. package/_types/chains/zksync/utils/assertEip712Transaction.d.ts +3 -0
  547. package/_types/chains/zksync/utils/assertEip712Transaction.d.ts.map +1 -0
  548. package/_types/chains/zksync/utils/getEip712Domain.d.ts +4 -0
  549. package/_types/chains/zksync/utils/getEip712Domain.d.ts.map +1 -0
  550. package/_types/chains/zksync/utils/isEip712Transaction.d.ts +3 -0
  551. package/_types/chains/zksync/utils/isEip712Transaction.d.ts.map +1 -0
  552. package/_types/errors/chain.d.ts +1 -1
  553. package/_types/errors/chain.d.ts.map +1 -1
  554. package/_types/errors/version.d.ts +1 -1
  555. package/_types/types/chain.d.ts +3 -1
  556. package/_types/types/chain.d.ts.map +1 -1
  557. package/_types/types/transaction.d.ts +2 -0
  558. package/_types/types/transaction.d.ts.map +1 -1
  559. package/accounts/utils/sign.ts +2 -0
  560. package/chains/definitions/berachainTestnet.ts +21 -0
  561. package/chains/definitions/kcc.ts +30 -0
  562. package/chains/definitions/zkSync.ts +3 -2
  563. package/chains/index.ts +2 -0
  564. package/chains/zksync/actions/sendEip712Transaction.ts +129 -0
  565. package/chains/zksync/actions/sendTransaction.ts +78 -0
  566. package/chains/zksync/actions/signEip712Transaction.ts +150 -0
  567. package/chains/zksync/actions/signTransaction.ts +95 -0
  568. package/chains/zksync/chainConfig.ts +4 -0
  569. package/chains/zksync/chains.ts +3 -0
  570. package/chains/zksync/decorators/eip712.ts +186 -0
  571. package/chains/zksync/errors/transaction.ts +21 -0
  572. package/chains/zksync/formatters.ts +6 -5
  573. package/chains/zksync/index.ts +51 -4
  574. package/chains/zksync/serializers.ts +6 -50
  575. package/chains/zksync/types/block.ts +34 -0
  576. package/chains/zksync/types/chain.ts +28 -0
  577. package/chains/zksync/types/eip712.ts +31 -0
  578. package/chains/zksync/types/fee.ts +5 -0
  579. package/chains/zksync/types/log.ts +57 -0
  580. package/chains/zksync/{types.ts → types/transaction.ts} +50 -122
  581. package/chains/zksync/utils/assertEip712Request.ts +18 -0
  582. package/chains/zksync/utils/assertEip712Transaction.ts +35 -0
  583. package/chains/zksync/utils/getEip712Domain.ts +83 -0
  584. package/chains/zksync/utils/isEip712Transaction.ts +17 -0
  585. package/errors/chain.ts +6 -2
  586. package/errors/version.ts +1 -1
  587. package/package.json +1 -1
  588. package/types/chain.ts +5 -0
  589. package/types/transaction.ts +2 -0
  590. package/_cjs/chains/zksync/types.js.map +0 -1
  591. package/_esm/chains/zksync/types.js +0 -2
  592. package/_esm/chains/zksync/types.js.map +0 -1
  593. package/_types/chains/zksync/types.d.ts.map +0 -1
@@ -0,0 +1,150 @@
1
+ import type { Account } from '../../../accounts/types.js'
2
+ import { parseAccount } from '../../../accounts/utils/parseAccount.js'
3
+ import { getChainId } from '../../../actions/public/getChainId.js'
4
+ import type {
5
+ SignTransactionErrorType,
6
+ SignTransactionReturnType,
7
+ } from '../../../actions/wallet/signTransaction.js'
8
+ import { signTypedData } from '../../../actions/wallet/signTypedData.js'
9
+ import type { Client } from '../../../clients/createClient.js'
10
+ import type { Transport } from '../../../clients/transports/createTransport.js'
11
+ import { AccountNotFoundError } from '../../../errors/account.js'
12
+ import { BaseError } from '../../../errors/base.js'
13
+ import type { GetAccountParameter } from '../../../types/account.js'
14
+ import type {
15
+ ExtractChainFormatterParameters,
16
+ GetChainParameter,
17
+ } from '../../../types/chain.js'
18
+ import type { UnionOmit } from '../../../types/utils.js'
19
+ import { assertCurrentChain } from '../../../utils/chain/assertCurrentChain.js'
20
+ import { getAction } from '../../../utils/getAction.js'
21
+ import type { ChainEIP712 } from '../types/chain.js'
22
+ import type { TransactionRequestEIP712 } from '../types/transaction.js'
23
+ import {
24
+ type AssertEip712RequestParameters,
25
+ assertEip712Request,
26
+ } from '../utils/assertEip712Request.js'
27
+
28
+ type FormattedTransactionRequest<
29
+ TChain extends ChainEIP712 | undefined = ChainEIP712 | undefined,
30
+ > = ExtractChainFormatterParameters<
31
+ TChain,
32
+ 'transactionRequest',
33
+ TransactionRequestEIP712
34
+ >
35
+
36
+ export type SignEip712TransactionParameters<
37
+ TChain extends ChainEIP712 | undefined = ChainEIP712 | undefined,
38
+ TAccount extends Account | undefined = Account | undefined,
39
+ TChainOverride extends ChainEIP712 | undefined = ChainEIP712 | undefined,
40
+ > = UnionOmit<
41
+ FormattedTransactionRequest<
42
+ TChainOverride extends ChainEIP712 ? TChainOverride : TChain
43
+ >,
44
+ 'from'
45
+ > &
46
+ GetAccountParameter<TAccount> &
47
+ GetChainParameter<TChain, TChainOverride>
48
+
49
+ export type SignEip712TransactionReturnType = SignTransactionReturnType
50
+
51
+ export type SignEip712TransactionErrorType = SignTransactionErrorType
52
+
53
+ /**
54
+ * Signs an EIP712 transaction.
55
+ *
56
+ * @param args - {@link SignTransactionParameters}
57
+ * @returns The signed serialized tranasction. {@link SignTransactionReturnType}
58
+ *
59
+ * @example
60
+ * import { createWalletClient, custom } from 'viem'
61
+ * import { zkSync } from 'viem/chains'
62
+ * import { signEip712Transaction } from 'viem/zksync'
63
+ *
64
+ * const client = createWalletClient({
65
+ * chain: zkSync,
66
+ * transport: custom(window.ethereum),
67
+ * })
68
+ * const signature = await signEip712Transaction(client, {
69
+ * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
70
+ * to: '0x0000000000000000000000000000000000000000',
71
+ * value: 1n,
72
+ * })
73
+ *
74
+ * @example
75
+ * // Account Hoisting
76
+ * import { createWalletClient, http } from 'viem'
77
+ * import { privateKeyToAccount } from 'viem/accounts'
78
+ * import { zkSync } from 'viem/chains'
79
+ * import { signEip712Transaction } from 'viem/zksync'
80
+ *
81
+ * const client = createWalletClient({
82
+ * account: privateKeyToAccount('0x…'),
83
+ * chain: zkSync,
84
+ * transport: custom(window.ethereum),
85
+ * })
86
+ * const signature = await signEip712Transaction(client, {
87
+ * to: '0x0000000000000000000000000000000000000000',
88
+ * value: 1n,
89
+ * })
90
+ */
91
+ export async function signEip712Transaction<
92
+ TChain extends ChainEIP712 | undefined,
93
+ TAccount extends Account | undefined,
94
+ TChainOverride extends ChainEIP712 | undefined,
95
+ >(
96
+ client: Client<Transport, TChain, TAccount>,
97
+ args: SignEip712TransactionParameters<TChain, TAccount, TChainOverride>,
98
+ ): Promise<SignEip712TransactionReturnType> {
99
+ const {
100
+ account: account_ = client.account,
101
+ chain = client.chain,
102
+ ...transaction
103
+ } = args
104
+
105
+ if (!account_)
106
+ throw new AccountNotFoundError({
107
+ docsPath: '/docs/actions/wallet/signTransaction',
108
+ })
109
+ const account = parseAccount(account_)
110
+
111
+ assertEip712Request({
112
+ account,
113
+ chain,
114
+ ...(args as AssertEip712RequestParameters),
115
+ })
116
+
117
+ if (!chain?.custom?.getEip712Domain)
118
+ throw new BaseError('`getEip712Domain` not found on chain.')
119
+ if (!chain?.serializers?.transaction)
120
+ throw new BaseError('transaction serializer not found on chain.')
121
+
122
+ const chainId = await getAction(client, getChainId, 'getChainId')({})
123
+ if (chain !== null)
124
+ assertCurrentChain({
125
+ currentChainId: chainId,
126
+ chain: chain,
127
+ })
128
+
129
+ const eip712Domain = chain?.custom.getEip712Domain({
130
+ ...transaction,
131
+ chainId,
132
+ from: account.address,
133
+ type: 'eip712',
134
+ })
135
+
136
+ const customSignature = await signTypedData(client, {
137
+ ...eip712Domain,
138
+ account,
139
+ })
140
+
141
+ return chain?.serializers?.transaction(
142
+ {
143
+ chainId,
144
+ ...transaction,
145
+ customSignature,
146
+ type: 'eip712',
147
+ },
148
+ { r: '0x0', s: '0x0', v: 0n },
149
+ )
150
+ }
@@ -0,0 +1,95 @@
1
+ import type { Account } from '../../../accounts/types.js'
2
+ import { signTransaction as signTransaction_ } from '../../../actions/wallet/signTransaction.js'
3
+ import type {
4
+ SignTransactionErrorType as SignTransactionErrorType_,
5
+ SignTransactionReturnType as SignTransactionReturnType_,
6
+ } from '../../../actions/wallet/signTransaction.js'
7
+ import type { Client } from '../../../clients/createClient.js'
8
+ import type { Transport } from '../../../clients/transports/createTransport.js'
9
+ import type { GetAccountParameter } from '../../../types/account.js'
10
+ import type {
11
+ ExtractChainFormatterParameters,
12
+ GetChainParameter,
13
+ } from '../../../types/chain.js'
14
+ import type { UnionOmit } from '../../../types/utils.js'
15
+ import type { ChainEIP712 } from '../types/chain.js'
16
+ import type { TransactionRequestEIP712 } from '../types/transaction.js'
17
+ import { isEIP712Transaction } from '../utils/isEip712Transaction.js'
18
+ import { signEip712Transaction } from './signEip712Transaction.js'
19
+
20
+ type FormattedTransactionRequest<
21
+ TChain extends ChainEIP712 | undefined = ChainEIP712 | undefined,
22
+ > = ExtractChainFormatterParameters<
23
+ TChain,
24
+ 'transactionRequest',
25
+ TransactionRequestEIP712
26
+ >
27
+
28
+ export type SignTransactionParameters<
29
+ TChain extends ChainEIP712 | undefined = ChainEIP712 | undefined,
30
+ TAccount extends Account | undefined = Account | undefined,
31
+ TChainOverride extends ChainEIP712 | undefined = ChainEIP712 | undefined,
32
+ > = UnionOmit<
33
+ FormattedTransactionRequest<
34
+ TChainOverride extends ChainEIP712 ? TChainOverride : TChain
35
+ >,
36
+ 'from'
37
+ > &
38
+ GetAccountParameter<TAccount> &
39
+ GetChainParameter<TChain, TChainOverride>
40
+
41
+ export type SignTransactionReturnType = SignTransactionReturnType_
42
+
43
+ export type SignTransactionErrorType = SignTransactionErrorType_
44
+
45
+ /**
46
+ * Signs a transaction.
47
+ *
48
+ * - Docs: https://viem.sh/docs/zksync/actions/signTransaction
49
+ *
50
+ * @param args - {@link SignTransactionParameters}
51
+ * @returns The signed serialized tranasction. {@link SignTransactionReturnType}
52
+ *
53
+ * @example
54
+ * import { createWalletClient, custom } from 'viem'
55
+ * import { zkSync } from 'viem/chains'
56
+ * import { signTransaction } from 'viem/zksync'
57
+ *
58
+ * const client = createWalletClient({
59
+ * chain: zkSync,
60
+ * transport: custom(window.ethereum),
61
+ * })
62
+ * const signature = await signTransaction(client, {
63
+ * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
64
+ * to: '0x0000000000000000000000000000000000000000',
65
+ * value: 1n,
66
+ * })
67
+ *
68
+ * @example
69
+ * // Account Hoisting
70
+ * import { createWalletClient, http } from 'viem'
71
+ * import { privateKeyToAccount } from 'viem/accounts'
72
+ * import { zkSync } from 'viem/chains'
73
+ * import { signTransaction } from 'viem/zksync'
74
+ *
75
+ * const client = createWalletClient({
76
+ * account: privateKeyToAccount('0x…'),
77
+ * chain: zkSync,
78
+ * transport: custom(window.ethereum),
79
+ * })
80
+ * const signature = await signTransaction(client, {
81
+ * to: '0x0000000000000000000000000000000000000000',
82
+ * value: 1n,
83
+ * })
84
+ */
85
+ export async function signTransaction<
86
+ TChain extends ChainEIP712 | undefined,
87
+ TAccount extends Account | undefined,
88
+ TChainOverride extends ChainEIP712 | undefined,
89
+ >(
90
+ client: Client<Transport, TChain, TAccount>,
91
+ args: SignTransactionParameters<TChain, TAccount, TChainOverride>,
92
+ ): Promise<SignTransactionReturnType> {
93
+ if (isEIP712Transaction(args)) return signEip712Transaction(client, args)
94
+ return await signTransaction_(client, args as any)
95
+ }
@@ -1,7 +1,11 @@
1
1
  import { formatters } from './formatters.js'
2
2
  import { serializers } from './serializers.js'
3
+ import { getEip712Domain } from './utils/getEip712Domain.js'
3
4
 
4
5
  export const chainConfig = {
5
6
  formatters,
6
7
  serializers,
8
+ custom: {
9
+ getEip712Domain,
10
+ },
7
11
  } as const
@@ -0,0 +1,3 @@
1
+ export { zkSync } from '../definitions/zkSync.js'
2
+ export { zkSyncTestnet } from '../definitions/zkSyncTestnet.js'
3
+ export { zkSyncSepoliaTestnet } from '../definitions/zkSyncSepoliaTestnet.js'
@@ -0,0 +1,186 @@
1
+ import { writeContract } from '../../../actions/wallet/writeContract.js'
2
+ import type { Client } from '../../../clients/createClient.js'
3
+ import type { WalletActions } from '../../../clients/decorators/wallet.js'
4
+ import type { Transport } from '../../../clients/transports/createTransport.js'
5
+ import type { Account } from '../../../types/account.js'
6
+ import {
7
+ type SendTransactionParameters,
8
+ type SendTransactionReturnType,
9
+ sendTransaction,
10
+ } from '../actions/sendTransaction.js'
11
+ import {
12
+ type SignTransactionParameters,
13
+ type SignTransactionReturnType,
14
+ signTransaction,
15
+ } from '../actions/signTransaction.js'
16
+ import type { ChainEIP712 } from '../types/chain.js'
17
+
18
+ export type Eip712WalletActions<
19
+ chain extends ChainEIP712 | undefined = ChainEIP712 | undefined,
20
+ account extends Account | undefined = Account | undefined,
21
+ > = {
22
+ /**
23
+ * Creates, signs, and sends a new transaction to the network.
24
+ *
25
+ * - Docs: https://viem.sh/docs/zksync/actions/sendTransaction
26
+ * - JSON-RPC Methods:
27
+ * - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)
28
+ * - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)
29
+ *
30
+ * @param client - Client to use
31
+ * @param parameters - {@link SendTransactionParameters}
32
+ * @returns The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}
33
+ *
34
+ * @example
35
+ * import { createWalletClient, custom } from 'viem'
36
+ * import { zkSync } from 'viem/chains'
37
+ * import { eip712WalletActions } from 'viem/zksync'
38
+ *
39
+ * const client = createWalletClient({
40
+ * chain: zkSync,
41
+ * transport: custom(window.ethereum),
42
+ * }).extend(eip712WalletActions())
43
+ * const hash = await client.sendTransaction({
44
+ * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
45
+ * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
46
+ * value: 1000000000000000000n,
47
+ * })
48
+ *
49
+ * @example
50
+ * // Account Hoisting
51
+ * import { createWalletClient, http } from 'viem'
52
+ * import { privateKeyToAccount } from 'viem/accounts'
53
+ * import { zkSync } from 'viem/chains'
54
+ * import { eip712WalletActions } from 'viem/zksync'
55
+ *
56
+ * const client = createWalletClient({
57
+ * account: privateKeyToAccount('0x…'),
58
+ * chain: zkSync,
59
+ * transport: http(),
60
+ * }).extend(eip712WalletActions())
61
+ * const hash = await client.sendTransaction({
62
+ * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
63
+ * value: 1000000000000000000n,
64
+ * })
65
+ */
66
+ sendTransaction: <chainOverride extends ChainEIP712 | undefined = undefined>(
67
+ args: SendTransactionParameters<chain, account, chainOverride>,
68
+ ) => Promise<SendTransactionReturnType>
69
+ /**
70
+ * Signs a transaction.
71
+ *
72
+ * - Docs: https://viem.sh/docs/actions/wallet/signTransaction
73
+ * - JSON-RPC Methods:
74
+ * - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)
75
+ * - Local Accounts: Signs locally. No JSON-RPC request.
76
+ *
77
+ * @param args - {@link SignTransactionParameters}
78
+ * @returns The signed serialized tranasction. {@link SignTransactionReturnType}
79
+ *
80
+ * @example
81
+ * import { createWalletClient, custom } from 'viem'
82
+ * import { zkSync } from 'viem/chains'
83
+ * import { eip712WalletActions } from 'viem/zksync'
84
+ *
85
+ * const client = createWalletClient({
86
+ * chain: zkSync,
87
+ * transport: custom(window.ethereum),
88
+ * }).extend(eip712WalletActions())
89
+ * const signature = await client.signTransaction({
90
+ * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
91
+ * to: '0x0000000000000000000000000000000000000000',
92
+ * value: 1n,
93
+ * })
94
+ *
95
+ * @example
96
+ * // Account Hoisting
97
+ * import { createWalletClient, http } from 'viem'
98
+ * import { privateKeyToAccount } from 'viem/accounts'
99
+ * import { zkSync } from 'viem/chains'
100
+ * import { eip712WalletActions } from 'viem/zksync'
101
+ *
102
+ * const client = createWalletClient({
103
+ * account: privateKeyToAccount('0x…'),
104
+ * chain: zkSync,
105
+ * transport: custom(window.ethereum),
106
+ * }).extend(eip712WalletActions())
107
+ * const signature = await client.signTransaction({
108
+ * to: '0x0000000000000000000000000000000000000000',
109
+ * value: 1n,
110
+ * })
111
+ */
112
+ signTransaction: <chainOverride extends ChainEIP712 | undefined = undefined>(
113
+ args: SignTransactionParameters<chain, account, chainOverride>,
114
+ ) => Promise<SignTransactionReturnType>
115
+ /**
116
+ * Executes a write function on a contract.
117
+ *
118
+ * - Docs: https://viem.sh/docs/contract/writeContract
119
+ * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts/writing-to-contracts
120
+ *
121
+ * A "write" function on a Solidity contract modifies the state of the blockchain. These types of functions require gas to be executed, and hence a [Transaction](https://viem.sh/docs/glossary/terms) is needed to be broadcast in order to change the state.
122
+ *
123
+ * Internally, uses a [Wallet Client](https://viem.sh/docs/clients/wallet) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).
124
+ *
125
+ * __Warning: The `write` internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to [simulate the contract write with `contract.simulate`](https://viem.sh/docs/contract/writeContract#usage) before you execute it.__
126
+ *
127
+ * @param client - Client to use
128
+ * @param parameters - {@link WriteContractParameters}
129
+ * @returns A [Transaction Hash](https://viem.sh/docs/glossary/terms#hash). {@link WriteContractReturnType}
130
+ *
131
+ * @example
132
+ * import { createWalletClient, custom, parseAbi } from 'viem'
133
+ * import { zkSync } from 'viem/chains'
134
+ * import { eip712WalletActions } from 'viem/zksync'
135
+ *
136
+ * const client = createWalletClient({
137
+ * chain: zkSync,
138
+ * transport: custom(window.ethereum),
139
+ * }).extend(eip712WalletActions())
140
+ * const hash = await client.writeContract({
141
+ * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
142
+ * abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),
143
+ * functionName: 'mint',
144
+ * args: [69420],
145
+ * })
146
+ *
147
+ * @example
148
+ * // With Validation
149
+ * import { createWalletClient, http, parseAbi } from 'viem'
150
+ * import { zkSync } from 'viem/chains'
151
+ * import { eip712WalletActions } from 'viem/zksync'
152
+ *
153
+ * const client = createWalletClient({
154
+ * chain: zkSync,
155
+ * transport: http(),
156
+ * }).extend(eip712WalletActions())
157
+ * const { request } = await client.simulateContract({
158
+ * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
159
+ * abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),
160
+ * functionName: 'mint',
161
+ * args: [69420],
162
+ * }
163
+ * const hash = await client.writeContract(request)
164
+ */
165
+ writeContract: WalletActions<chain, account>['writeContract']
166
+ }
167
+
168
+ export function eip712WalletActions() {
169
+ return <
170
+ transport extends Transport,
171
+ chain extends ChainEIP712 | undefined = ChainEIP712 | undefined,
172
+ account extends Account | undefined = Account | undefined,
173
+ >(
174
+ client: Client<transport, chain, account>,
175
+ ): Eip712WalletActions<chain, account> => ({
176
+ sendTransaction: (args) => sendTransaction(client, args),
177
+ signTransaction: (args) => signTransaction(client, args),
178
+ writeContract: (args) =>
179
+ writeContract(
180
+ Object.assign(client, {
181
+ sendTransaction: (args: any) => sendTransaction(client, args),
182
+ }),
183
+ args,
184
+ ),
185
+ })
186
+ }
@@ -0,0 +1,21 @@
1
+ import { BaseError } from '../../../errors/base.js'
2
+
3
+ export type InvalidEip712TransactionErrorType =
4
+ InvalidEip712TransactionError & {
5
+ name: 'InvalidEip712TransactionError'
6
+ }
7
+ export class InvalidEip712TransactionError extends BaseError {
8
+ override name = 'InvalidEip712TransactionError'
9
+
10
+ constructor() {
11
+ super(
12
+ [
13
+ 'Transaction is not an EIP712 transaction.',
14
+ '',
15
+ 'Transaction must:',
16
+ ' - include `type: "eip712"`',
17
+ ' - include one of the following: `customSignature`, `paymaster`, `paymasterInput`, `gasPerPubdata`, `factoryDeps`',
18
+ ].join('\n'),
19
+ )
20
+ }
21
+ }
@@ -10,16 +10,17 @@ import { defineTransactionReceipt } from '../../utils/formatters/transactionRece
10
10
  import { defineTransactionRequest } from '../../utils/formatters/transactionRequest.js'
11
11
  import type {
12
12
  ZkSyncBlockOverrides,
13
- ZkSyncL2ToL1Log,
14
- ZkSyncLog,
15
13
  ZkSyncRpcBlockOverrides,
14
+ } from './types/block.js'
15
+ import type { ZkSyncL2ToL1Log, ZkSyncLog } from './types/log.js'
16
+ import type {
16
17
  ZkSyncRpcTransaction,
17
18
  ZkSyncRpcTransactionReceiptOverrides,
18
19
  ZkSyncRpcTransactionRequest,
19
20
  ZkSyncTransaction,
20
21
  ZkSyncTransactionReceipt,
21
22
  ZkSyncTransactionRequest,
22
- } from './types.js'
23
+ } from './types/transaction.js'
23
24
 
24
25
  export const formatters = {
25
26
  block: /*#__PURE__*/ defineBlock({
@@ -32,7 +33,7 @@ export const formatters = {
32
33
  } {
33
34
  const transactions = args.transactions?.map((transaction) => {
34
35
  if (typeof transaction === 'string') return transaction
35
- const formatted = formatters.transaction.format(
36
+ const formatted = formatters.transaction?.format(
36
37
  transaction as ZkSyncRpcTransaction,
37
38
  ) as ZkSyncTransaction
38
39
  if (formatted.typeHex === '0x71') formatted.type = 'eip712'
@@ -140,7 +141,7 @@ export const formatters = {
140
141
  }
141
142
  : {}),
142
143
  },
143
- type: args.type === 'eip712' ? '0x71' : '0xff',
144
+ type: '0x71',
144
145
  } as ZkSyncRpcTransactionRequest
145
146
  return {} as ZkSyncRpcTransactionRequest
146
147
  },
@@ -1,18 +1,65 @@
1
+ export {
2
+ type SendTransactionErrorType,
3
+ type SendTransactionParameters,
4
+ type SendTransactionReturnType,
5
+ sendTransaction,
6
+ } from './actions/sendTransaction.js'
7
+ export {
8
+ type SendEip712TransactionErrorType,
9
+ type SendEip712TransactionParameters,
10
+ type SendEip712TransactionReturnType,
11
+ sendEip712Transaction,
12
+ } from './actions/sendEip712Transaction.js'
13
+ export {
14
+ type SignEip712TransactionErrorType,
15
+ type SignEip712TransactionParameters,
16
+ type SignEip712TransactionReturnType,
17
+ signEip712Transaction,
18
+ } from './actions/signEip712Transaction.js'
19
+ export {
20
+ type SignTransactionErrorType,
21
+ type SignTransactionParameters,
22
+ type SignTransactionReturnType,
23
+ signTransaction,
24
+ } from './actions/signTransaction.js'
25
+
26
+ export {
27
+ zkSync,
28
+ zkSyncTestnet,
29
+ zkSyncSepoliaTestnet,
30
+ } from './chains.js'
31
+
1
32
  export { chainConfig } from './chainConfig.js'
2
33
 
34
+ export {
35
+ eip712WalletActions,
36
+ type Eip712WalletActions,
37
+ } from './decorators/eip712.js'
38
+
3
39
  export { serializeTransaction } from './serializers.js'
4
40
 
5
41
  export type {
6
42
  ZkSyncBlock,
7
43
  ZkSyncBlockOverrides,
44
+ ZkSyncRpcBlock,
45
+ ZkSyncRpcBlockOverrides,
46
+ } from './types/block.js'
47
+ export type { ChainEIP712 } from './types/chain.js'
48
+ export type {
49
+ EIP712Domain,
50
+ EIP712DomainFn,
8
51
  ZkSyncEip712Meta,
9
- ZkSyncFeeValues,
52
+ } from './types/eip712.js'
53
+ export type { ZkSyncFeeValues } from './types/fee.js'
54
+ export type {
10
55
  ZkSyncL2ToL1Log,
11
56
  ZkSyncLog,
12
- ZkSyncRpcBlock,
13
- ZkSyncRpcBlockOverrides,
14
57
  ZkSyncRpcL2ToL1Log,
15
58
  ZkSyncRpcLog,
59
+ } from './types/log.js'
60
+ export type {
61
+ TransactionRequestEIP712,
62
+ ZkSyncEIP712TransactionSignable,
16
63
  ZkSyncRpcTransaction,
17
64
  ZkSyncRpcTransactionEIP712,
18
65
  ZkSyncRpcTransactionPriority,
@@ -30,4 +77,4 @@ export type {
30
77
  ZkSyncTransactionSerialized,
31
78
  ZkSyncTransactionSerializedEIP712,
32
79
  ZkSyncTransactionType,
33
- } from './types.js'
80
+ } from './types/transaction.js'
@@ -1,9 +1,5 @@
1
- import { InvalidAddressError } from '../../errors/address.js'
2
- import { BaseError } from '../../errors/base.js'
3
- import { InvalidChainIdError } from '../../errors/chain.js'
4
1
  import type { ChainSerializers } from '../../types/chain.js'
5
2
  import type { TransactionSerializable } from '../../types/transaction.js'
6
- import { isAddress } from '../../utils/address/isAddress.js'
7
3
  import { concatHex } from '../../utils/data/concat.js'
8
4
  import { toHex } from '../../utils/encoding/toHex.js'
9
5
  import { toRlp } from '../../utils/encoding/toRlp.js'
@@ -15,12 +11,14 @@ import type {
15
11
  ZkSyncTransactionSerializable,
16
12
  ZkSyncTransactionSerializableEIP712,
17
13
  ZkSyncTransactionSerializedEIP712,
18
- } from './types.js'
14
+ } from './types/transaction.js'
15
+ import { assertEip712Transaction } from './utils/assertEip712Transaction.js'
16
+ import { isEIP712Transaction } from './utils/isEip712Transaction.js'
19
17
 
20
18
  export const serializeTransaction: SerializeTransactionFn<
21
19
  ZkSyncTransactionSerializable
22
20
  > = (tx, signature) => {
23
- if (isEIP712(tx))
21
+ if (isEIP712Transaction(tx))
24
22
  return serializeTransactionEIP712(tx as ZkSyncTransactionSerializableEIP712)
25
23
  return serializeTransaction_(tx as TransactionSerializable, signature)
26
24
  }
@@ -29,9 +27,6 @@ export const serializers = {
29
27
  transaction: serializeTransaction,
30
28
  } as const satisfies ChainSerializers
31
29
 
32
- //////////////////////////////////////////////////////////////////////////////
33
- // Serializers
34
-
35
30
  export type SerializeTransactionEIP712ReturnType =
36
31
  ZkSyncTransactionSerializedEIP712
37
32
 
@@ -55,7 +50,7 @@ function serializeTransactionEIP712(
55
50
  data,
56
51
  } = transaction
57
52
 
58
- assertTransactionEIP712(transaction)
53
+ assertEip712Transaction(transaction)
59
54
 
60
55
  const serializedTransaction = [
61
56
  nonce ? toHex(nonce) : '0x',
@@ -64,7 +59,7 @@ function serializeTransactionEIP712(
64
59
  gas ? toHex(gas) : '0x',
65
60
  to ?? '0x',
66
61
  value ? toHex(value) : '0x',
67
- data ?? '0x',
62
+ data ?? '0x0',
68
63
  toHex(chainId),
69
64
  toHex(''),
70
65
  toHex(''),
@@ -81,42 +76,3 @@ function serializeTransactionEIP712(
81
76
  toRlp(serializedTransaction),
82
77
  ]) as SerializeTransactionEIP712ReturnType
83
78
  }
84
-
85
- //////////////////////////////////////////////////////////////////////////////
86
- // Utilities
87
-
88
- function isEIP712(transaction: ZkSyncTransactionSerializable) {
89
- if (
90
- 'customSignature' in transaction ||
91
- 'paymaster' in transaction ||
92
- 'paymasterInput' in transaction ||
93
- 'gasPerPubdata' in transaction ||
94
- 'factoryDeps' in transaction
95
- )
96
- return true
97
- return false
98
- }
99
-
100
- export function assertTransactionEIP712(
101
- transaction: ZkSyncTransactionSerializableEIP712,
102
- ) {
103
- const { chainId, to, from, paymaster, paymasterInput } = transaction
104
- if (chainId <= 0) throw new InvalidChainIdError({ chainId })
105
-
106
- if (to && !isAddress(to)) throw new InvalidAddressError({ address: to })
107
- if (from && !isAddress(from)) throw new InvalidAddressError({ address: from })
108
- if (paymaster && !isAddress(paymaster))
109
- throw new InvalidAddressError({ address: paymaster })
110
-
111
- if (paymaster && !paymasterInput) {
112
- throw new BaseError(
113
- '`paymasterInput` must be provided when `paymaster` is defined',
114
- )
115
- }
116
-
117
- if (!paymaster && paymasterInput) {
118
- throw new BaseError(
119
- '`paymaster` must be provided when `paymasterInput` is defined',
120
- )
121
- }
122
- }