viem 2.7.20 → 2.8.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 (826) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/_cjs/accounts/utils/sign.js +1 -0
  3. package/_cjs/accounts/utils/sign.js.map +1 -1
  4. package/_cjs/accounts/utils/signTransaction.js +11 -2
  5. package/_cjs/accounts/utils/signTransaction.js.map +1 -1
  6. package/_cjs/actions/index.js +4 -2
  7. package/_cjs/actions/index.js.map +1 -1
  8. package/_cjs/actions/public/call.js +3 -1
  9. package/_cjs/actions/public/call.js.map +1 -1
  10. package/_cjs/actions/public/estimateGas.js +3 -1
  11. package/_cjs/actions/public/estimateGas.js.map +1 -1
  12. package/_cjs/actions/public/getBlobBaseFee.js +11 -0
  13. package/_cjs/actions/public/getBlobBaseFee.js.map +1 -0
  14. package/_cjs/actions/public/multicall.js +1 -1
  15. package/_cjs/actions/public/multicall.js.map +1 -1
  16. package/_cjs/actions/wallet/prepareTransactionRequest.js +11 -2
  17. package/_cjs/actions/wallet/prepareTransactionRequest.js.map +1 -1
  18. package/_cjs/actions/wallet/sendRawTransaction.js.map +1 -1
  19. package/_cjs/actions/wallet/sendTransaction.js +7 -8
  20. package/_cjs/actions/wallet/sendTransaction.js.map +1 -1
  21. package/_cjs/actions/wallet/signTransaction.js +7 -6
  22. package/_cjs/actions/wallet/signTransaction.js.map +1 -1
  23. package/_cjs/chains/celo/serializers.js +10 -15
  24. package/_cjs/chains/celo/serializers.js.map +1 -1
  25. package/_cjs/chains/definitions/ancient8Sepolia.js +1 -1
  26. package/_cjs/chains/definitions/ancient8Sepolia.js.map +1 -1
  27. package/_cjs/chains/definitions/anvil.js +1 -1
  28. package/_cjs/chains/definitions/anvil.js.map +1 -1
  29. package/_cjs/chains/definitions/arbitrum.js +1 -1
  30. package/_cjs/chains/definitions/arbitrum.js.map +1 -1
  31. package/_cjs/chains/definitions/arbitrumGoerli.js +1 -1
  32. package/_cjs/chains/definitions/arbitrumGoerli.js.map +1 -1
  33. package/_cjs/chains/definitions/arbitrumNova.js +1 -1
  34. package/_cjs/chains/definitions/arbitrumNova.js.map +1 -1
  35. package/_cjs/chains/definitions/arbitrumSepolia.js +1 -1
  36. package/_cjs/chains/definitions/arbitrumSepolia.js.map +1 -1
  37. package/_cjs/chains/definitions/astarZkEVM.js +1 -1
  38. package/_cjs/chains/definitions/astarZkEVM.js.map +1 -1
  39. package/_cjs/chains/definitions/astarZkatana.js +1 -1
  40. package/_cjs/chains/definitions/astarZkatana.js.map +1 -1
  41. package/_cjs/chains/definitions/astarZkyoto.js +1 -1
  42. package/_cjs/chains/definitions/astarZkyoto.js.map +1 -1
  43. package/_cjs/chains/definitions/avalanche.js +1 -1
  44. package/_cjs/chains/definitions/avalanche.js.map +1 -1
  45. package/_cjs/chains/definitions/avalancheFuji.js +1 -1
  46. package/_cjs/chains/definitions/avalancheFuji.js.map +1 -1
  47. package/_cjs/chains/definitions/baseSepolia.js +1 -1
  48. package/_cjs/chains/definitions/baseSepolia.js.map +1 -1
  49. package/_cjs/chains/definitions/blastSepolia.js +2 -2
  50. package/_cjs/chains/definitions/blastSepolia.js.map +1 -1
  51. package/_cjs/chains/definitions/canto.js +1 -1
  52. package/_cjs/chains/definitions/canto.js.map +1 -1
  53. package/_cjs/chains/definitions/celo.js +1 -1
  54. package/_cjs/chains/definitions/celo.js.map +1 -1
  55. package/_cjs/chains/definitions/celoAlfajores.js +1 -1
  56. package/_cjs/chains/definitions/celoAlfajores.js.map +1 -1
  57. package/_cjs/chains/definitions/chiliz.js +1 -1
  58. package/_cjs/chains/definitions/chiliz.js.map +1 -1
  59. package/_cjs/chains/definitions/confluxESpace.js +1 -1
  60. package/_cjs/chains/definitions/confluxESpace.js.map +1 -1
  61. package/_cjs/chains/definitions/coreDao.js +1 -1
  62. package/_cjs/chains/definitions/coreDao.js.map +1 -1
  63. package/_cjs/chains/definitions/crossbell.js +2 -2
  64. package/_cjs/chains/definitions/crossbell.js.map +1 -1
  65. package/_cjs/chains/definitions/dfk.js +1 -1
  66. package/_cjs/chains/definitions/dfk.js.map +1 -1
  67. package/_cjs/chains/definitions/dogechain.js +1 -1
  68. package/_cjs/chains/definitions/dogechain.js.map +1 -1
  69. package/_cjs/chains/definitions/eon.js +1 -1
  70. package/_cjs/chains/definitions/eon.js.map +1 -1
  71. package/_cjs/chains/definitions/evmos.js +1 -1
  72. package/_cjs/chains/definitions/evmos.js.map +1 -1
  73. package/_cjs/chains/definitions/evmosTestnet.js +1 -1
  74. package/_cjs/chains/definitions/evmosTestnet.js.map +1 -1
  75. package/_cjs/chains/definitions/fantomSonicTestnet.js +1 -1
  76. package/_cjs/chains/definitions/fantomSonicTestnet.js.map +1 -1
  77. package/_cjs/chains/definitions/fantomTestnet.js +1 -1
  78. package/_cjs/chains/definitions/fantomTestnet.js.map +1 -1
  79. package/_cjs/chains/definitions/filecoinCalibration.js +1 -1
  80. package/_cjs/chains/definitions/filecoinCalibration.js.map +1 -1
  81. package/_cjs/chains/definitions/filecoinHyperspace.js +1 -1
  82. package/_cjs/chains/definitions/filecoinHyperspace.js.map +1 -1
  83. package/_cjs/chains/definitions/foundry.js +1 -1
  84. package/_cjs/chains/definitions/foundry.js.map +1 -1
  85. package/_cjs/chains/definitions/gnosisChiado.js +1 -1
  86. package/_cjs/chains/definitions/gnosisChiado.js.map +1 -1
  87. package/_cjs/chains/definitions/gobi.js +1 -1
  88. package/_cjs/chains/definitions/gobi.js.map +1 -1
  89. package/_cjs/chains/definitions/goerli.js +1 -1
  90. package/_cjs/chains/definitions/goerli.js.map +1 -1
  91. package/_cjs/chains/definitions/hardhat.js +1 -1
  92. package/_cjs/chains/definitions/hardhat.js.map +1 -1
  93. package/_cjs/chains/definitions/harmonyOne.js +1 -1
  94. package/_cjs/chains/definitions/harmonyOne.js.map +1 -1
  95. package/_cjs/chains/definitions/iotex.js +1 -1
  96. package/_cjs/chains/definitions/iotex.js.map +1 -1
  97. package/_cjs/chains/definitions/iotexTestnet.js +1 -1
  98. package/_cjs/chains/definitions/iotexTestnet.js.map +1 -1
  99. package/_cjs/chains/definitions/klaytn.js +1 -1
  100. package/_cjs/chains/definitions/klaytn.js.map +1 -1
  101. package/_cjs/chains/definitions/klaytnBaobab.js +1 -1
  102. package/_cjs/chains/definitions/klaytnBaobab.js.map +1 -1
  103. package/_cjs/chains/definitions/lightlinkPegasus.js +1 -1
  104. package/_cjs/chains/definitions/lightlinkPegasus.js.map +1 -1
  105. package/_cjs/chains/definitions/lightlinkPhoenix.js +1 -1
  106. package/_cjs/chains/definitions/lightlinkPhoenix.js.map +1 -1
  107. package/_cjs/chains/definitions/linea.js +1 -1
  108. package/_cjs/chains/definitions/linea.js.map +1 -1
  109. package/_cjs/chains/definitions/lineaTestnet.js +1 -1
  110. package/_cjs/chains/definitions/lineaTestnet.js.map +1 -1
  111. package/_cjs/chains/definitions/liskSepolia.js +1 -1
  112. package/_cjs/chains/definitions/liskSepolia.js.map +1 -1
  113. package/_cjs/chains/definitions/localhost.js +1 -1
  114. package/_cjs/chains/definitions/localhost.js.map +1 -1
  115. package/_cjs/chains/definitions/mainnet.js +2 -2
  116. package/_cjs/chains/definitions/mainnet.js.map +1 -1
  117. package/_cjs/chains/definitions/mantaTestnet.js +1 -1
  118. package/_cjs/chains/definitions/mantaTestnet.js.map +1 -1
  119. package/_cjs/chains/definitions/metachainIstanbul.js +1 -1
  120. package/_cjs/chains/definitions/metachainIstanbul.js.map +1 -1
  121. package/_cjs/chains/definitions/metis.js +1 -1
  122. package/_cjs/chains/definitions/metis.js.map +1 -1
  123. package/_cjs/chains/definitions/neonDevnet.js +1 -1
  124. package/_cjs/chains/definitions/neonDevnet.js.map +1 -1
  125. package/_cjs/chains/definitions/neonMainnet.js +1 -1
  126. package/_cjs/chains/definitions/neonMainnet.js.map +1 -1
  127. package/_cjs/chains/definitions/optimismSepolia.js +1 -1
  128. package/_cjs/chains/definitions/optimismSepolia.js.map +1 -1
  129. package/_cjs/chains/definitions/palm.js +1 -1
  130. package/_cjs/chains/definitions/palm.js.map +1 -1
  131. package/_cjs/chains/definitions/palmTestnet.js +1 -1
  132. package/_cjs/chains/definitions/palmTestnet.js.map +1 -1
  133. package/_cjs/chains/definitions/pgnTestnet.js +1 -1
  134. package/_cjs/chains/definitions/pgnTestnet.js.map +1 -1
  135. package/_cjs/chains/definitions/plumeTestnet.js +30 -0
  136. package/_cjs/chains/definitions/plumeTestnet.js.map +1 -0
  137. package/_cjs/chains/definitions/polygonAmoy.js +1 -1
  138. package/_cjs/chains/definitions/polygonAmoy.js.map +1 -1
  139. package/_cjs/chains/definitions/polygonMumbai.js +1 -1
  140. package/_cjs/chains/definitions/polygonMumbai.js.map +1 -1
  141. package/_cjs/chains/definitions/scroll.js +1 -1
  142. package/_cjs/chains/definitions/scroll.js.map +1 -1
  143. package/_cjs/chains/definitions/scrollSepolia.js +1 -1
  144. package/_cjs/chains/definitions/scrollSepolia.js.map +1 -1
  145. package/_cjs/chains/definitions/scrollTestnet.js +1 -1
  146. package/_cjs/chains/definitions/scrollTestnet.js.map +1 -1
  147. package/_cjs/chains/definitions/sepolia.js +2 -2
  148. package/_cjs/chains/definitions/sepolia.js.map +1 -1
  149. package/_cjs/chains/definitions/skale/brawl.js +1 -1
  150. package/_cjs/chains/definitions/skale/brawl.js.map +1 -1
  151. package/_cjs/chains/definitions/skale/calypso.js +1 -1
  152. package/_cjs/chains/definitions/skale/calypso.js.map +1 -1
  153. package/_cjs/chains/definitions/skale/calypsoTestnet.js +2 -2
  154. package/_cjs/chains/definitions/skale/calypsoTestnet.js.map +1 -1
  155. package/_cjs/chains/definitions/skale/cryptoBlades.js +1 -1
  156. package/_cjs/chains/definitions/skale/cryptoBlades.js.map +1 -1
  157. package/_cjs/chains/definitions/skale/cryptoColosseum.js +1 -1
  158. package/_cjs/chains/definitions/skale/cryptoColosseum.js.map +1 -1
  159. package/_cjs/chains/definitions/skale/europa.js +1 -1
  160. package/_cjs/chains/definitions/skale/europa.js.map +1 -1
  161. package/_cjs/chains/definitions/skale/europaTestnet.js +2 -2
  162. package/_cjs/chains/definitions/skale/europaTestnet.js.map +1 -1
  163. package/_cjs/chains/definitions/skale/exorde.js +1 -1
  164. package/_cjs/chains/definitions/skale/exorde.js.map +1 -1
  165. package/_cjs/chains/definitions/skale/humanProtocol.js +1 -1
  166. package/_cjs/chains/definitions/skale/humanProtocol.js.map +1 -1
  167. package/_cjs/chains/definitions/skale/nebula.js +1 -1
  168. package/_cjs/chains/definitions/skale/nebula.js.map +1 -1
  169. package/_cjs/chains/definitions/skale/nebulaTestnet.js +2 -2
  170. package/_cjs/chains/definitions/skale/nebulaTestnet.js.map +1 -1
  171. package/_cjs/chains/definitions/skale/razor.js +1 -1
  172. package/_cjs/chains/definitions/skale/razor.js.map +1 -1
  173. package/_cjs/chains/definitions/skale/titan.js +1 -1
  174. package/_cjs/chains/definitions/skale/titan.js.map +1 -1
  175. package/_cjs/chains/definitions/skale/titanTestnet.js +2 -2
  176. package/_cjs/chains/definitions/skale/titanTestnet.js.map +1 -1
  177. package/_cjs/chains/definitions/spicy.js +1 -1
  178. package/_cjs/chains/definitions/spicy.js.map +1 -1
  179. package/_cjs/chains/definitions/zhejiang.js +1 -1
  180. package/_cjs/chains/definitions/zhejiang.js.map +1 -1
  181. package/_cjs/chains/definitions/zoraSepolia.js +1 -1
  182. package/_cjs/chains/definitions/zoraSepolia.js.map +1 -1
  183. package/_cjs/chains/index.js +5 -3
  184. package/_cjs/chains/index.js.map +1 -1
  185. package/_cjs/chains/opStack/actions/buildProveWithdrawal.js +22 -2
  186. package/_cjs/chains/opStack/actions/buildProveWithdrawal.js.map +1 -1
  187. package/_cjs/chains/opStack/actions/estimateL1Fee.js +2 -18
  188. package/_cjs/chains/opStack/actions/estimateL1Fee.js.map +1 -1
  189. package/_cjs/chains/opStack/actions/estimateL1Gas.js +2 -18
  190. package/_cjs/chains/opStack/actions/estimateL1Gas.js.map +1 -1
  191. package/_cjs/chains/opStack/actions/finalizeWithdrawal.js +1 -1
  192. package/_cjs/chains/opStack/actions/finalizeWithdrawal.js.map +1 -1
  193. package/_cjs/chains/opStack/actions/proveWithdrawal.js +1 -1
  194. package/_cjs/chains/opStack/actions/proveWithdrawal.js.map +1 -1
  195. package/_cjs/chains/opStack/serializers.js +3 -3
  196. package/_cjs/chains/opStack/serializers.js.map +1 -1
  197. package/_cjs/chains/zksync/actions/sendTransaction.js.map +1 -1
  198. package/_cjs/chains/zksync/actions/signEip712Transaction.js.map +1 -1
  199. package/_cjs/chains/zksync/serializers.js +6 -6
  200. package/_cjs/chains/zksync/serializers.js.map +1 -1
  201. package/_cjs/clients/createClient.js +1 -1
  202. package/_cjs/clients/createClient.js.map +1 -1
  203. package/_cjs/clients/decorators/public.js.map +1 -1
  204. package/_cjs/clients/decorators/wallet.js.map +1 -1
  205. package/_cjs/clients/transports/fallback.js +2 -2
  206. package/_cjs/clients/transports/fallback.js.map +1 -1
  207. package/_cjs/clients/transports/http.js +1 -1
  208. package/_cjs/clients/transports/http.js.map +1 -1
  209. package/_cjs/clients/transports/ipc.js +1 -1
  210. package/_cjs/clients/transports/ipc.js.map +1 -1
  211. package/_cjs/clients/transports/webSocket.js +1 -1
  212. package/_cjs/clients/transports/webSocket.js.map +1 -1
  213. package/_cjs/constants/blob.js +11 -0
  214. package/_cjs/constants/blob.js.map +1 -0
  215. package/_cjs/constants/kzg.js +7 -0
  216. package/_cjs/constants/kzg.js.map +1 -0
  217. package/_cjs/errors/blob.js +63 -0
  218. package/_cjs/errors/blob.js.map +1 -0
  219. package/_cjs/errors/transaction.js +1 -0
  220. package/_cjs/errors/transaction.js.map +1 -1
  221. package/_cjs/errors/version.js +1 -1
  222. package/_cjs/errors/version.js.map +1 -1
  223. package/_cjs/index.js +22 -2
  224. package/_cjs/index.js.map +1 -1
  225. package/_cjs/node/index.js +3 -1
  226. package/_cjs/node/index.js.map +1 -1
  227. package/_cjs/node/trustedSetups.js +7 -0
  228. package/_cjs/node/trustedSetups.js.map +1 -0
  229. package/_cjs/types/eip4844.js +3 -0
  230. package/_cjs/types/eip4844.js.map +1 -0
  231. package/_cjs/types/kzg.js +3 -0
  232. package/_cjs/types/kzg.js.map +1 -0
  233. package/_cjs/utils/abi/encodeAbiParameters.js +1 -1
  234. package/_cjs/utils/abi/encodeAbiParameters.js.map +1 -1
  235. package/_cjs/utils/blob/blobsToCommitments.js +20 -0
  236. package/_cjs/utils/blob/blobsToCommitments.js.map +1 -0
  237. package/_cjs/utils/blob/blobsToProofs.js +26 -0
  238. package/_cjs/utils/blob/blobsToProofs.js.map +1 -0
  239. package/_cjs/utils/blob/commitmentToVersionedHash.js +14 -0
  240. package/_cjs/utils/blob/commitmentToVersionedHash.js.map +1 -0
  241. package/_cjs/utils/blob/commitmentsToVersionedHashes.js +19 -0
  242. package/_cjs/utils/blob/commitmentsToVersionedHashes.js.map +1 -0
  243. package/_cjs/utils/blob/fromBlobs.js +36 -0
  244. package/_cjs/utils/blob/fromBlobs.js.map +1 -0
  245. package/_cjs/utils/blob/sidecarsToVersionedHashes.js +19 -0
  246. package/_cjs/utils/blob/sidecarsToVersionedHashes.js.map +1 -0
  247. package/_cjs/utils/blob/toBlobSidecars.js +22 -0
  248. package/_cjs/utils/blob/toBlobSidecars.js.map +1 -0
  249. package/_cjs/utils/blob/toBlobs.js +48 -0
  250. package/_cjs/utils/blob/toBlobs.js.map +1 -0
  251. package/_cjs/utils/cursor.js +1 -1
  252. package/_cjs/utils/cursor.js.map +1 -1
  253. package/_cjs/utils/encoding/toRlp.js.map +1 -1
  254. package/_cjs/utils/formatters/transaction.js.map +1 -1
  255. package/_cjs/utils/formatters/transactionRequest.js +22 -25
  256. package/_cjs/utils/formatters/transactionRequest.js.map +1 -1
  257. package/_cjs/utils/kzg/defineKzg.js +11 -0
  258. package/_cjs/utils/kzg/defineKzg.js.map +1 -0
  259. package/_cjs/utils/kzg/setupKzg.js +17 -0
  260. package/_cjs/utils/kzg/setupKzg.js.map +1 -0
  261. package/_cjs/utils/rpc/compat.js +1 -1
  262. package/_cjs/utils/rpc/compat.js.map +1 -1
  263. package/_cjs/utils/rpc/http.js +1 -1
  264. package/_cjs/utils/rpc/http.js.map +1 -1
  265. package/_cjs/utils/rpc/socket.js +1 -1
  266. package/_cjs/utils/rpc/socket.js.map +1 -1
  267. package/_cjs/utils/signature/compactSignatureToSignature.js +3 -3
  268. package/_cjs/utils/signature/compactSignatureToSignature.js.map +1 -1
  269. package/_cjs/utils/signature/hexToSignature.js +6 -1
  270. package/_cjs/utils/signature/hexToSignature.js.map +1 -1
  271. package/_cjs/utils/signature/signatureToCompactSignature.js +3 -3
  272. package/_cjs/utils/signature/signatureToCompactSignature.js.map +1 -1
  273. package/_cjs/utils/signature/signatureToHex.js +9 -3
  274. package/_cjs/utils/signature/signatureToHex.js.map +1 -1
  275. package/_cjs/utils/transaction/assertTransaction.js +26 -1
  276. package/_cjs/utils/transaction/assertTransaction.js.map +1 -1
  277. package/_cjs/utils/transaction/getSerializedTransactionType.js +2 -0
  278. package/_cjs/utils/transaction/getSerializedTransactionType.js.map +1 -1
  279. package/_cjs/utils/transaction/getTransactionType.js +7 -1
  280. package/_cjs/utils/transaction/getTransactionType.js.map +1 -1
  281. package/_cjs/utils/transaction/parseTransaction.js +73 -0
  282. package/_cjs/utils/transaction/parseTransaction.js.map +1 -1
  283. package/_cjs/utils/transaction/serializeAccessList.js.map +1 -1
  284. package/_cjs/utils/transaction/serializeTransaction.js +84 -21
  285. package/_cjs/utils/transaction/serializeTransaction.js.map +1 -1
  286. package/_esm/accounts/utils/sign.js +1 -0
  287. package/_esm/accounts/utils/sign.js.map +1 -1
  288. package/_esm/accounts/utils/signTransaction.js +13 -2
  289. package/_esm/accounts/utils/signTransaction.js.map +1 -1
  290. package/_esm/actions/index.js +1 -0
  291. package/_esm/actions/index.js.map +1 -1
  292. package/_esm/actions/public/call.js +3 -1
  293. package/_esm/actions/public/call.js.map +1 -1
  294. package/_esm/actions/public/estimateGas.js +3 -1
  295. package/_esm/actions/public/estimateGas.js.map +1 -1
  296. package/_esm/actions/public/getBlobBaseFee.js +27 -0
  297. package/_esm/actions/public/getBlobBaseFee.js.map +1 -0
  298. package/_esm/actions/public/multicall.js +1 -1
  299. package/_esm/actions/public/multicall.js.map +1 -1
  300. package/_esm/actions/wallet/prepareTransactionRequest.js +12 -2
  301. package/_esm/actions/wallet/prepareTransactionRequest.js.map +1 -1
  302. package/_esm/actions/wallet/sendRawTransaction.js.map +1 -1
  303. package/_esm/actions/wallet/sendTransaction.js +7 -8
  304. package/_esm/actions/wallet/sendTransaction.js.map +1 -1
  305. package/_esm/actions/wallet/signTransaction.js +6 -5
  306. package/_esm/actions/wallet/signTransaction.js.map +1 -1
  307. package/_esm/chains/celo/serializers.js +10 -17
  308. package/_esm/chains/celo/serializers.js.map +1 -1
  309. package/_esm/chains/definitions/ancient8Sepolia.js +1 -1
  310. package/_esm/chains/definitions/ancient8Sepolia.js.map +1 -1
  311. package/_esm/chains/definitions/anvil.js +1 -1
  312. package/_esm/chains/definitions/anvil.js.map +1 -1
  313. package/_esm/chains/definitions/arbitrum.js +1 -1
  314. package/_esm/chains/definitions/arbitrum.js.map +1 -1
  315. package/_esm/chains/definitions/arbitrumGoerli.js +1 -1
  316. package/_esm/chains/definitions/arbitrumGoerli.js.map +1 -1
  317. package/_esm/chains/definitions/arbitrumNova.js +1 -1
  318. package/_esm/chains/definitions/arbitrumNova.js.map +1 -1
  319. package/_esm/chains/definitions/arbitrumSepolia.js +1 -1
  320. package/_esm/chains/definitions/arbitrumSepolia.js.map +1 -1
  321. package/_esm/chains/definitions/astarZkEVM.js +1 -1
  322. package/_esm/chains/definitions/astarZkEVM.js.map +1 -1
  323. package/_esm/chains/definitions/astarZkatana.js +1 -1
  324. package/_esm/chains/definitions/astarZkatana.js.map +1 -1
  325. package/_esm/chains/definitions/astarZkyoto.js +1 -1
  326. package/_esm/chains/definitions/astarZkyoto.js.map +1 -1
  327. package/_esm/chains/definitions/avalanche.js +1 -1
  328. package/_esm/chains/definitions/avalanche.js.map +1 -1
  329. package/_esm/chains/definitions/avalancheFuji.js +1 -1
  330. package/_esm/chains/definitions/avalancheFuji.js.map +1 -1
  331. package/_esm/chains/definitions/baseSepolia.js +1 -1
  332. package/_esm/chains/definitions/baseSepolia.js.map +1 -1
  333. package/_esm/chains/definitions/blastSepolia.js +2 -2
  334. package/_esm/chains/definitions/blastSepolia.js.map +1 -1
  335. package/_esm/chains/definitions/canto.js +1 -1
  336. package/_esm/chains/definitions/canto.js.map +1 -1
  337. package/_esm/chains/definitions/celo.js +1 -1
  338. package/_esm/chains/definitions/celo.js.map +1 -1
  339. package/_esm/chains/definitions/celoAlfajores.js +1 -1
  340. package/_esm/chains/definitions/celoAlfajores.js.map +1 -1
  341. package/_esm/chains/definitions/chiliz.js +1 -1
  342. package/_esm/chains/definitions/chiliz.js.map +1 -1
  343. package/_esm/chains/definitions/confluxESpace.js +1 -1
  344. package/_esm/chains/definitions/confluxESpace.js.map +1 -1
  345. package/_esm/chains/definitions/coreDao.js +1 -1
  346. package/_esm/chains/definitions/coreDao.js.map +1 -1
  347. package/_esm/chains/definitions/crossbell.js +2 -2
  348. package/_esm/chains/definitions/crossbell.js.map +1 -1
  349. package/_esm/chains/definitions/dfk.js +1 -1
  350. package/_esm/chains/definitions/dfk.js.map +1 -1
  351. package/_esm/chains/definitions/dogechain.js +1 -1
  352. package/_esm/chains/definitions/dogechain.js.map +1 -1
  353. package/_esm/chains/definitions/eon.js +1 -1
  354. package/_esm/chains/definitions/eon.js.map +1 -1
  355. package/_esm/chains/definitions/evmos.js +1 -1
  356. package/_esm/chains/definitions/evmos.js.map +1 -1
  357. package/_esm/chains/definitions/evmosTestnet.js +1 -1
  358. package/_esm/chains/definitions/evmosTestnet.js.map +1 -1
  359. package/_esm/chains/definitions/fantomSonicTestnet.js +1 -1
  360. package/_esm/chains/definitions/fantomSonicTestnet.js.map +1 -1
  361. package/_esm/chains/definitions/fantomTestnet.js +1 -1
  362. package/_esm/chains/definitions/fantomTestnet.js.map +1 -1
  363. package/_esm/chains/definitions/filecoinCalibration.js +1 -1
  364. package/_esm/chains/definitions/filecoinCalibration.js.map +1 -1
  365. package/_esm/chains/definitions/filecoinHyperspace.js +1 -1
  366. package/_esm/chains/definitions/filecoinHyperspace.js.map +1 -1
  367. package/_esm/chains/definitions/foundry.js +1 -1
  368. package/_esm/chains/definitions/foundry.js.map +1 -1
  369. package/_esm/chains/definitions/gnosisChiado.js +1 -1
  370. package/_esm/chains/definitions/gnosisChiado.js.map +1 -1
  371. package/_esm/chains/definitions/gobi.js +1 -1
  372. package/_esm/chains/definitions/gobi.js.map +1 -1
  373. package/_esm/chains/definitions/goerli.js +1 -1
  374. package/_esm/chains/definitions/goerli.js.map +1 -1
  375. package/_esm/chains/definitions/hardhat.js +1 -1
  376. package/_esm/chains/definitions/hardhat.js.map +1 -1
  377. package/_esm/chains/definitions/harmonyOne.js +1 -1
  378. package/_esm/chains/definitions/harmonyOne.js.map +1 -1
  379. package/_esm/chains/definitions/iotex.js +1 -1
  380. package/_esm/chains/definitions/iotex.js.map +1 -1
  381. package/_esm/chains/definitions/iotexTestnet.js +1 -1
  382. package/_esm/chains/definitions/iotexTestnet.js.map +1 -1
  383. package/_esm/chains/definitions/klaytn.js +1 -1
  384. package/_esm/chains/definitions/klaytn.js.map +1 -1
  385. package/_esm/chains/definitions/klaytnBaobab.js +1 -1
  386. package/_esm/chains/definitions/klaytnBaobab.js.map +1 -1
  387. package/_esm/chains/definitions/lightlinkPegasus.js +1 -1
  388. package/_esm/chains/definitions/lightlinkPegasus.js.map +1 -1
  389. package/_esm/chains/definitions/lightlinkPhoenix.js +1 -1
  390. package/_esm/chains/definitions/lightlinkPhoenix.js.map +1 -1
  391. package/_esm/chains/definitions/linea.js +1 -1
  392. package/_esm/chains/definitions/linea.js.map +1 -1
  393. package/_esm/chains/definitions/lineaTestnet.js +1 -1
  394. package/_esm/chains/definitions/lineaTestnet.js.map +1 -1
  395. package/_esm/chains/definitions/liskSepolia.js +1 -1
  396. package/_esm/chains/definitions/liskSepolia.js.map +1 -1
  397. package/_esm/chains/definitions/localhost.js +1 -1
  398. package/_esm/chains/definitions/localhost.js.map +1 -1
  399. package/_esm/chains/definitions/mainnet.js +2 -2
  400. package/_esm/chains/definitions/mainnet.js.map +1 -1
  401. package/_esm/chains/definitions/mantaTestnet.js +1 -1
  402. package/_esm/chains/definitions/mantaTestnet.js.map +1 -1
  403. package/_esm/chains/definitions/metachainIstanbul.js +1 -1
  404. package/_esm/chains/definitions/metachainIstanbul.js.map +1 -1
  405. package/_esm/chains/definitions/metis.js +1 -1
  406. package/_esm/chains/definitions/metis.js.map +1 -1
  407. package/_esm/chains/definitions/neonDevnet.js +1 -1
  408. package/_esm/chains/definitions/neonDevnet.js.map +1 -1
  409. package/_esm/chains/definitions/neonMainnet.js +1 -1
  410. package/_esm/chains/definitions/neonMainnet.js.map +1 -1
  411. package/_esm/chains/definitions/optimismSepolia.js +1 -1
  412. package/_esm/chains/definitions/optimismSepolia.js.map +1 -1
  413. package/_esm/chains/definitions/palm.js +1 -1
  414. package/_esm/chains/definitions/palm.js.map +1 -1
  415. package/_esm/chains/definitions/palmTestnet.js +1 -1
  416. package/_esm/chains/definitions/palmTestnet.js.map +1 -1
  417. package/_esm/chains/definitions/pgnTestnet.js +1 -1
  418. package/_esm/chains/definitions/pgnTestnet.js.map +1 -1
  419. package/_esm/chains/definitions/plumeTestnet.js +27 -0
  420. package/_esm/chains/definitions/plumeTestnet.js.map +1 -0
  421. package/_esm/chains/definitions/polygonAmoy.js +1 -1
  422. package/_esm/chains/definitions/polygonAmoy.js.map +1 -1
  423. package/_esm/chains/definitions/polygonMumbai.js +1 -1
  424. package/_esm/chains/definitions/polygonMumbai.js.map +1 -1
  425. package/_esm/chains/definitions/scroll.js +1 -1
  426. package/_esm/chains/definitions/scroll.js.map +1 -1
  427. package/_esm/chains/definitions/scrollSepolia.js +1 -1
  428. package/_esm/chains/definitions/scrollSepolia.js.map +1 -1
  429. package/_esm/chains/definitions/scrollTestnet.js +1 -1
  430. package/_esm/chains/definitions/scrollTestnet.js.map +1 -1
  431. package/_esm/chains/definitions/sepolia.js +2 -2
  432. package/_esm/chains/definitions/sepolia.js.map +1 -1
  433. package/_esm/chains/definitions/skale/brawl.js +1 -1
  434. package/_esm/chains/definitions/skale/brawl.js.map +1 -1
  435. package/_esm/chains/definitions/skale/calypso.js +1 -1
  436. package/_esm/chains/definitions/skale/calypso.js.map +1 -1
  437. package/_esm/chains/definitions/skale/calypsoTestnet.js +2 -2
  438. package/_esm/chains/definitions/skale/calypsoTestnet.js.map +1 -1
  439. package/_esm/chains/definitions/skale/cryptoBlades.js +1 -1
  440. package/_esm/chains/definitions/skale/cryptoBlades.js.map +1 -1
  441. package/_esm/chains/definitions/skale/cryptoColosseum.js +1 -1
  442. package/_esm/chains/definitions/skale/cryptoColosseum.js.map +1 -1
  443. package/_esm/chains/definitions/skale/europa.js +1 -1
  444. package/_esm/chains/definitions/skale/europa.js.map +1 -1
  445. package/_esm/chains/definitions/skale/europaTestnet.js +2 -2
  446. package/_esm/chains/definitions/skale/europaTestnet.js.map +1 -1
  447. package/_esm/chains/definitions/skale/exorde.js +1 -1
  448. package/_esm/chains/definitions/skale/exorde.js.map +1 -1
  449. package/_esm/chains/definitions/skale/humanProtocol.js +1 -1
  450. package/_esm/chains/definitions/skale/humanProtocol.js.map +1 -1
  451. package/_esm/chains/definitions/skale/nebula.js +1 -1
  452. package/_esm/chains/definitions/skale/nebula.js.map +1 -1
  453. package/_esm/chains/definitions/skale/nebulaTestnet.js +2 -2
  454. package/_esm/chains/definitions/skale/nebulaTestnet.js.map +1 -1
  455. package/_esm/chains/definitions/skale/razor.js +1 -1
  456. package/_esm/chains/definitions/skale/razor.js.map +1 -1
  457. package/_esm/chains/definitions/skale/titan.js +1 -1
  458. package/_esm/chains/definitions/skale/titan.js.map +1 -1
  459. package/_esm/chains/definitions/skale/titanTestnet.js +2 -2
  460. package/_esm/chains/definitions/skale/titanTestnet.js.map +1 -1
  461. package/_esm/chains/definitions/spicy.js +1 -1
  462. package/_esm/chains/definitions/spicy.js.map +1 -1
  463. package/_esm/chains/definitions/zhejiang.js +1 -1
  464. package/_esm/chains/definitions/zhejiang.js.map +1 -1
  465. package/_esm/chains/definitions/zoraSepolia.js +1 -1
  466. package/_esm/chains/definitions/zoraSepolia.js.map +1 -1
  467. package/_esm/chains/index.js +1 -0
  468. package/_esm/chains/index.js.map +1 -1
  469. package/_esm/chains/opStack/actions/buildProveWithdrawal.js +29 -1
  470. package/_esm/chains/opStack/actions/buildProveWithdrawal.js.map +1 -1
  471. package/_esm/chains/opStack/actions/estimateL1Fee.js +2 -18
  472. package/_esm/chains/opStack/actions/estimateL1Fee.js.map +1 -1
  473. package/_esm/chains/opStack/actions/estimateL1Gas.js +2 -18
  474. package/_esm/chains/opStack/actions/estimateL1Gas.js.map +1 -1
  475. package/_esm/chains/opStack/actions/finalizeWithdrawal.js +1 -1
  476. package/_esm/chains/opStack/actions/finalizeWithdrawal.js.map +1 -1
  477. package/_esm/chains/opStack/actions/proveWithdrawal.js +1 -1
  478. package/_esm/chains/opStack/actions/proveWithdrawal.js.map +1 -1
  479. package/_esm/chains/opStack/serializers.js +2 -2
  480. package/_esm/chains/opStack/serializers.js.map +1 -1
  481. package/_esm/chains/zksync/actions/sendTransaction.js.map +1 -1
  482. package/_esm/chains/zksync/actions/signEip712Transaction.js.map +1 -1
  483. package/_esm/chains/zksync/serializers.js +6 -6
  484. package/_esm/chains/zksync/serializers.js.map +1 -1
  485. package/_esm/clients/createClient.js +1 -1
  486. package/_esm/clients/createClient.js.map +1 -1
  487. package/_esm/clients/decorators/public.js.map +1 -1
  488. package/_esm/clients/decorators/wallet.js.map +1 -1
  489. package/_esm/clients/transports/fallback.js +2 -2
  490. package/_esm/clients/transports/fallback.js.map +1 -1
  491. package/_esm/clients/transports/http.js +1 -1
  492. package/_esm/clients/transports/http.js.map +1 -1
  493. package/_esm/clients/transports/ipc.js +1 -1
  494. package/_esm/clients/transports/ipc.js.map +1 -1
  495. package/_esm/clients/transports/webSocket.js +1 -1
  496. package/_esm/clients/transports/webSocket.js.map +1 -1
  497. package/_esm/constants/blob.js +16 -0
  498. package/_esm/constants/blob.js.map +1 -0
  499. package/_esm/constants/kzg.js +7 -0
  500. package/_esm/constants/kzg.js.map +1 -0
  501. package/_esm/errors/blob.js +56 -0
  502. package/_esm/errors/blob.js.map +1 -0
  503. package/_esm/errors/transaction.js +1 -0
  504. package/_esm/errors/transaction.js.map +1 -1
  505. package/_esm/errors/version.js +1 -1
  506. package/_esm/errors/version.js.map +1 -1
  507. package/_esm/index.js +10 -0
  508. package/_esm/index.js.map +1 -1
  509. package/_esm/node/index.js +1 -0
  510. package/_esm/node/index.js.map +1 -1
  511. package/_esm/node/trustedSetups.js +4 -0
  512. package/_esm/node/trustedSetups.js.map +1 -0
  513. package/_esm/types/eip4844.js +2 -0
  514. package/_esm/types/eip4844.js.map +1 -0
  515. package/_esm/types/kzg.js +2 -0
  516. package/_esm/types/kzg.js.map +1 -0
  517. package/_esm/utils/abi/encodeAbiParameters.js +1 -1
  518. package/_esm/utils/abi/encodeAbiParameters.js.map +1 -1
  519. package/_esm/utils/blob/blobsToCommitments.js +28 -0
  520. package/_esm/utils/blob/blobsToCommitments.js.map +1 -0
  521. package/_esm/utils/blob/blobsToProofs.js +38 -0
  522. package/_esm/utils/blob/blobsToProofs.js.map +1 -0
  523. package/_esm/utils/blob/commitmentToVersionedHash.js +27 -0
  524. package/_esm/utils/blob/commitmentToVersionedHash.js.map +1 -0
  525. package/_esm/utils/blob/commitmentsToVersionedHashes.js +32 -0
  526. package/_esm/utils/blob/commitmentsToVersionedHashes.js.map +1 -0
  527. package/_esm/utils/blob/fromBlobs.js +33 -0
  528. package/_esm/utils/blob/fromBlobs.js.map +1 -0
  529. package/_esm/utils/blob/sidecarsToVersionedHashes.js +26 -0
  530. package/_esm/utils/blob/sidecarsToVersionedHashes.js.map +1 -0
  531. package/_esm/utils/blob/toBlobSidecars.js +45 -0
  532. package/_esm/utils/blob/toBlobSidecars.js.map +1 -0
  533. package/_esm/utils/blob/toBlobs.js +58 -0
  534. package/_esm/utils/blob/toBlobs.js.map +1 -0
  535. package/_esm/utils/cursor.js +1 -1
  536. package/_esm/utils/cursor.js.map +1 -1
  537. package/_esm/utils/encoding/toRlp.js.map +1 -1
  538. package/_esm/utils/formatters/transaction.js.map +1 -1
  539. package/_esm/utils/formatters/transactionRequest.js +23 -26
  540. package/_esm/utils/formatters/transactionRequest.js.map +1 -1
  541. package/_esm/utils/kzg/defineKzg.js +21 -0
  542. package/_esm/utils/kzg/defineKzg.js.map +1 -0
  543. package/_esm/utils/kzg/setupKzg.js +25 -0
  544. package/_esm/utils/kzg/setupKzg.js.map +1 -0
  545. package/_esm/utils/rpc/compat.js +1 -1
  546. package/_esm/utils/rpc/compat.js.map +1 -1
  547. package/_esm/utils/rpc/http.js +1 -1
  548. package/_esm/utils/rpc/http.js.map +1 -1
  549. package/_esm/utils/rpc/socket.js +1 -1
  550. package/_esm/utils/rpc/socket.js.map +1 -1
  551. package/_esm/utils/signature/compactSignatureToSignature.js +3 -3
  552. package/_esm/utils/signature/compactSignatureToSignature.js.map +1 -1
  553. package/_esm/utils/signature/hexToSignature.js +6 -1
  554. package/_esm/utils/signature/hexToSignature.js.map +1 -1
  555. package/_esm/utils/signature/signatureToCompactSignature.js +4 -4
  556. package/_esm/utils/signature/signatureToCompactSignature.js.map +1 -1
  557. package/_esm/utils/signature/signatureToHex.js +11 -4
  558. package/_esm/utils/signature/signatureToHex.js.map +1 -1
  559. package/_esm/utils/transaction/assertTransaction.js +24 -0
  560. package/_esm/utils/transaction/assertTransaction.js.map +1 -1
  561. package/_esm/utils/transaction/getSerializedTransactionType.js +2 -0
  562. package/_esm/utils/transaction/getSerializedTransactionType.js.map +1 -1
  563. package/_esm/utils/transaction/getTransactionType.js +7 -1
  564. package/_esm/utils/transaction/getTransactionType.js.map +1 -1
  565. package/_esm/utils/transaction/parseTransaction.js +74 -1
  566. package/_esm/utils/transaction/parseTransaction.js.map +1 -1
  567. package/_esm/utils/transaction/serializeAccessList.js.map +1 -1
  568. package/_esm/utils/transaction/serializeTransaction.js +85 -22
  569. package/_esm/utils/transaction/serializeTransaction.js.map +1 -1
  570. package/_types/accounts/types.d.ts +3 -3
  571. package/_types/accounts/types.d.ts.map +1 -1
  572. package/_types/accounts/utils/sign.d.ts.map +1 -1
  573. package/_types/accounts/utils/signTransaction.d.ts +5 -5
  574. package/_types/accounts/utils/signTransaction.d.ts.map +1 -1
  575. package/_types/actions/index.d.ts +1 -0
  576. package/_types/actions/index.d.ts.map +1 -1
  577. package/_types/actions/public/call.d.ts.map +1 -1
  578. package/_types/actions/public/estimateGas.d.ts.map +1 -1
  579. package/_types/actions/public/getBlobBaseFee.d.ts +30 -0
  580. package/_types/actions/public/getBlobBaseFee.d.ts.map +1 -0
  581. package/_types/actions/wallet/prepareTransactionRequest.d.ts +27 -8
  582. package/_types/actions/wallet/prepareTransactionRequest.d.ts.map +1 -1
  583. package/_types/actions/wallet/sendRawTransaction.d.ts +3 -5
  584. package/_types/actions/wallet/sendRawTransaction.d.ts.map +1 -1
  585. package/_types/actions/wallet/sendTransaction.d.ts +4 -2
  586. package/_types/actions/wallet/sendTransaction.d.ts.map +1 -1
  587. package/_types/actions/wallet/signTransaction.d.ts +5 -2
  588. package/_types/actions/wallet/signTransaction.d.ts.map +1 -1
  589. package/_types/chains/celo/chainConfig.d.ts +1282 -376
  590. package/_types/chains/celo/chainConfig.d.ts.map +1 -1
  591. package/_types/chains/celo/formatters.d.ts +1282 -376
  592. package/_types/chains/celo/formatters.d.ts.map +1 -1
  593. package/_types/chains/celo/serializers.d.ts +3 -4
  594. package/_types/chains/celo/serializers.d.ts.map +1 -1
  595. package/_types/chains/celo/types.d.ts +3 -8
  596. package/_types/chains/celo/types.d.ts.map +1 -1
  597. package/_types/chains/definitions/ancient8.d.ts +452 -188
  598. package/_types/chains/definitions/ancient8.d.ts.map +1 -1
  599. package/_types/chains/definitions/ancient8Sepolia.d.ts +452 -188
  600. package/_types/chains/definitions/ancient8Sepolia.d.ts.map +1 -1
  601. package/_types/chains/definitions/base.d.ts +452 -188
  602. package/_types/chains/definitions/base.d.ts.map +1 -1
  603. package/_types/chains/definitions/baseGoerli.d.ts +452 -188
  604. package/_types/chains/definitions/baseGoerli.d.ts.map +1 -1
  605. package/_types/chains/definitions/baseSepolia.d.ts +452 -188
  606. package/_types/chains/definitions/baseSepolia.d.ts.map +1 -1
  607. package/_types/chains/definitions/celo.d.ts +1282 -376
  608. package/_types/chains/definitions/celo.d.ts.map +1 -1
  609. package/_types/chains/definitions/celoAlfajores.d.ts +1282 -376
  610. package/_types/chains/definitions/celoAlfajores.d.ts.map +1 -1
  611. package/_types/chains/definitions/fraxtal.d.ts +452 -188
  612. package/_types/chains/definitions/fraxtal.d.ts.map +1 -1
  613. package/_types/chains/definitions/fraxtalTestnet.d.ts +452 -188
  614. package/_types/chains/definitions/fraxtalTestnet.d.ts.map +1 -1
  615. package/_types/chains/definitions/liskSepolia.d.ts +452 -188
  616. package/_types/chains/definitions/liskSepolia.d.ts.map +1 -1
  617. package/_types/chains/definitions/optimism.d.ts +452 -188
  618. package/_types/chains/definitions/optimism.d.ts.map +1 -1
  619. package/_types/chains/definitions/optimismGoerli.d.ts +452 -188
  620. package/_types/chains/definitions/optimismGoerli.d.ts.map +1 -1
  621. package/_types/chains/definitions/optimismSepolia.d.ts +452 -188
  622. package/_types/chains/definitions/optimismSepolia.d.ts.map +1 -1
  623. package/_types/chains/definitions/pgn.d.ts +451 -187
  624. package/_types/chains/definitions/pgn.d.ts.map +1 -1
  625. package/_types/chains/definitions/pgnTestnet.d.ts +451 -187
  626. package/_types/chains/definitions/pgnTestnet.d.ts.map +1 -1
  627. package/_types/chains/definitions/plumeTestnet.d.ts +37 -0
  628. package/_types/chains/definitions/plumeTestnet.d.ts.map +1 -0
  629. package/_types/chains/definitions/zkSync.d.ts +692 -32
  630. package/_types/chains/definitions/zkSync.d.ts.map +1 -1
  631. package/_types/chains/definitions/zkSyncSepoliaTestnet.d.ts +692 -32
  632. package/_types/chains/definitions/zkSyncSepoliaTestnet.d.ts.map +1 -1
  633. package/_types/chains/definitions/zkSyncTestnet.d.ts +692 -32
  634. package/_types/chains/definitions/zkSyncTestnet.d.ts.map +1 -1
  635. package/_types/chains/definitions/zora.d.ts +452 -188
  636. package/_types/chains/definitions/zora.d.ts.map +1 -1
  637. package/_types/chains/definitions/zoraSepolia.d.ts +452 -188
  638. package/_types/chains/definitions/zoraSepolia.d.ts.map +1 -1
  639. package/_types/chains/definitions/zoraTestnet.d.ts +452 -188
  640. package/_types/chains/definitions/zoraTestnet.d.ts.map +1 -1
  641. package/_types/chains/index.d.ts +2 -1
  642. package/_types/chains/index.d.ts.map +1 -1
  643. package/_types/chains/opStack/actions/buildProveWithdrawal.d.ts +2 -0
  644. package/_types/chains/opStack/actions/buildProveWithdrawal.d.ts.map +1 -1
  645. package/_types/chains/opStack/actions/estimateL1Fee.d.ts.map +1 -1
  646. package/_types/chains/opStack/actions/estimateL1Gas.d.ts.map +1 -1
  647. package/_types/chains/opStack/actions/finalizeWithdrawal.d.ts.map +1 -1
  648. package/_types/chains/opStack/actions/proveWithdrawal.d.ts.map +1 -1
  649. package/_types/chains/opStack/chainConfig.d.ts +452 -188
  650. package/_types/chains/opStack/chainConfig.d.ts.map +1 -1
  651. package/_types/chains/opStack/decorators/publicL1.d.ts.map +1 -1
  652. package/_types/chains/opStack/decorators/publicL2.d.ts.map +1 -1
  653. package/_types/chains/opStack/decorators/walletL1.d.ts.map +1 -1
  654. package/_types/chains/opStack/decorators/walletL2.d.ts.map +1 -1
  655. package/_types/chains/opStack/formatters.d.ts +451 -187
  656. package/_types/chains/opStack/formatters.d.ts.map +1 -1
  657. package/_types/chains/opStack/serializers.d.ts +4 -3
  658. package/_types/chains/opStack/serializers.d.ts.map +1 -1
  659. package/_types/chains/opStack/types/transaction.d.ts +4 -8
  660. package/_types/chains/opStack/types/transaction.d.ts.map +1 -1
  661. package/_types/chains/zksync/actions/sendTransaction.d.ts.map +1 -1
  662. package/_types/chains/zksync/chainConfig.d.ts +692 -32
  663. package/_types/chains/zksync/chainConfig.d.ts.map +1 -1
  664. package/_types/chains/zksync/decorators/eip712.d.ts.map +1 -1
  665. package/_types/chains/zksync/formatters.d.ts +692 -32
  666. package/_types/chains/zksync/formatters.d.ts.map +1 -1
  667. package/_types/chains/zksync/serializers.d.ts +3 -3
  668. package/_types/chains/zksync/serializers.d.ts.map +1 -1
  669. package/_types/chains/zksync/types/chain.d.ts +2 -2
  670. package/_types/chains/zksync/types/chain.d.ts.map +1 -1
  671. package/_types/chains/zksync/types/eip712.d.ts +2 -2
  672. package/_types/chains/zksync/types/eip712.d.ts.map +1 -1
  673. package/_types/clients/decorators/public.d.ts +2 -2
  674. package/_types/clients/decorators/public.d.ts.map +1 -1
  675. package/_types/clients/decorators/wallet.d.ts +4 -4
  676. package/_types/clients/decorators/wallet.d.ts.map +1 -1
  677. package/_types/constants/blob.d.ts +11 -0
  678. package/_types/constants/blob.d.ts.map +1 -0
  679. package/_types/constants/kzg.d.ts +6 -0
  680. package/_types/constants/kzg.d.ts.map +1 -0
  681. package/_types/errors/blob.d.ts +40 -0
  682. package/_types/errors/blob.d.ts.map +1 -0
  683. package/_types/errors/transaction.d.ts.map +1 -1
  684. package/_types/errors/version.d.ts +1 -1
  685. package/_types/errors/version.d.ts.map +1 -1
  686. package/_types/index.d.ts +11 -0
  687. package/_types/index.d.ts.map +1 -1
  688. package/_types/node/index.d.ts +1 -0
  689. package/_types/node/index.d.ts.map +1 -1
  690. package/_types/node/trustedSetups.d.ts +3 -0
  691. package/_types/node/trustedSetups.d.ts.map +1 -0
  692. package/_types/types/account.d.ts +3 -3
  693. package/_types/types/account.d.ts.map +1 -1
  694. package/_types/types/chain.d.ts +2 -2
  695. package/_types/types/chain.d.ts.map +1 -1
  696. package/_types/types/eip1193.d.ts +3 -3
  697. package/_types/types/eip1193.d.ts.map +1 -1
  698. package/_types/types/eip4844.d.ts +11 -0
  699. package/_types/types/eip4844.d.ts.map +1 -0
  700. package/_types/types/fee.d.ts +2 -2
  701. package/_types/types/fee.d.ts.map +1 -1
  702. package/_types/types/kzg.d.ts +24 -0
  703. package/_types/types/kzg.d.ts.map +1 -0
  704. package/_types/types/misc.d.ts +15 -1
  705. package/_types/types/misc.d.ts.map +1 -1
  706. package/_types/types/rpc.d.ts +4 -4
  707. package/_types/types/rpc.d.ts.map +1 -1
  708. package/_types/types/transaction.d.ts +44 -9
  709. package/_types/types/transaction.d.ts.map +1 -1
  710. package/_types/types/utils.d.ts +38 -2
  711. package/_types/types/utils.d.ts.map +1 -1
  712. package/_types/utils/blob/blobsToCommitments.d.ts +31 -0
  713. package/_types/utils/blob/blobsToCommitments.d.ts.map +1 -0
  714. package/_types/utils/blob/blobsToProofs.d.ts +37 -0
  715. package/_types/utils/blob/blobsToProofs.d.ts.map +1 -0
  716. package/_types/utils/blob/commitmentToVersionedHash.d.ts +35 -0
  717. package/_types/utils/blob/commitmentToVersionedHash.d.ts.map +1 -0
  718. package/_types/utils/blob/commitmentsToVersionedHashes.d.ts +34 -0
  719. package/_types/utils/blob/commitmentsToVersionedHashes.d.ts.map +1 -0
  720. package/_types/utils/blob/fromBlobs.d.ts +16 -0
  721. package/_types/utils/blob/fromBlobs.d.ts.map +1 -0
  722. package/_types/utils/blob/sidecarsToVersionedHashes.d.ts +29 -0
  723. package/_types/utils/blob/sidecarsToVersionedHashes.d.ts.map +1 -0
  724. package/_types/utils/blob/toBlobSidecars.d.ts +57 -0
  725. package/_types/utils/blob/toBlobSidecars.d.ts.map +1 -0
  726. package/_types/utils/blob/toBlobs.d.ts +28 -0
  727. package/_types/utils/blob/toBlobs.d.ts.map +1 -0
  728. package/_types/utils/encoding/toRlp.d.ts +1 -1
  729. package/_types/utils/encoding/toRlp.d.ts.map +1 -1
  730. package/_types/utils/formatters/formatter.d.ts.map +1 -1
  731. package/_types/utils/formatters/transaction.d.ts +25 -25
  732. package/_types/utils/formatters/transaction.d.ts.map +1 -1
  733. package/_types/utils/formatters/transactionRequest.d.ts +227 -3
  734. package/_types/utils/formatters/transactionRequest.d.ts.map +1 -1
  735. package/_types/utils/kzg/defineKzg.d.ts +21 -0
  736. package/_types/utils/kzg/defineKzg.d.ts.map +1 -0
  737. package/_types/utils/kzg/setupKzg.d.ts +21 -0
  738. package/_types/utils/kzg/setupKzg.d.ts.map +1 -0
  739. package/_types/utils/signature/hexToSignature.d.ts.map +1 -1
  740. package/_types/utils/signature/signatureToCompactSignature.d.ts +1 -1
  741. package/_types/utils/signature/signatureToHex.d.ts +2 -2
  742. package/_types/utils/signature/signatureToHex.d.ts.map +1 -1
  743. package/_types/utils/transaction/assertTransaction.d.ts +4 -1
  744. package/_types/utils/transaction/assertTransaction.d.ts.map +1 -1
  745. package/_types/utils/transaction/getSerializedTransactionType.d.ts +5 -3
  746. package/_types/utils/transaction/getSerializedTransactionType.d.ts.map +1 -1
  747. package/_types/utils/transaction/getTransactionType.d.ts +34 -3
  748. package/_types/utils/transaction/getTransactionType.d.ts.map +1 -1
  749. package/_types/utils/transaction/parseTransaction.d.ts +7 -5
  750. package/_types/utils/transaction/parseTransaction.d.ts.map +1 -1
  751. package/_types/utils/transaction/serializeTransaction.d.ts +13 -6
  752. package/_types/utils/transaction/serializeTransaction.d.ts.map +1 -1
  753. package/accounts/types.ts +9 -5
  754. package/accounts/utils/sign.ts +1 -0
  755. package/accounts/utils/signTransaction.ts +37 -22
  756. package/actions/index.ts +5 -0
  757. package/actions/public/call.ts +4 -0
  758. package/actions/public/estimateGas.ts +4 -0
  759. package/actions/public/getBlobBaseFee.ts +42 -0
  760. package/actions/wallet/prepareTransactionRequest.ts +134 -61
  761. package/actions/wallet/sendRawTransaction.ts +3 -5
  762. package/actions/wallet/sendTransaction.ts +32 -21
  763. package/actions/wallet/signTransaction.ts +34 -18
  764. package/chains/celo/serializers.ts +12 -25
  765. package/chains/celo/types.ts +5 -10
  766. package/chains/definitions/plumeTestnet.ts +28 -0
  767. package/chains/index.ts +1 -1
  768. package/chains/opStack/actions/buildProveWithdrawal.ts +31 -1
  769. package/chains/opStack/actions/estimateL1Fee.ts +15 -31
  770. package/chains/opStack/actions/estimateL1Gas.ts +15 -31
  771. package/chains/opStack/actions/finalizeWithdrawal.ts +3 -2
  772. package/chains/opStack/actions/proveWithdrawal.ts +3 -2
  773. package/chains/opStack/serializers.ts +5 -5
  774. package/chains/opStack/types/transaction.ts +9 -11
  775. package/chains/zksync/actions/sendTransaction.ts +2 -1
  776. package/chains/zksync/actions/signEip712Transaction.ts +2 -2
  777. package/chains/zksync/serializers.ts +14 -10
  778. package/chains/zksync/types/chain.ts +4 -7
  779. package/chains/zksync/types/eip712.ts +2 -2
  780. package/clients/decorators/public.ts +8 -4
  781. package/clients/decorators/wallet.ts +14 -6
  782. package/constants/blob.ts +21 -0
  783. package/constants/kzg.ts +9 -0
  784. package/errors/blob.ts +67 -0
  785. package/errors/transaction.ts +1 -0
  786. package/errors/version.ts +1 -1
  787. package/index.ts +64 -0
  788. package/node/index.ts +2 -0
  789. package/node/trustedSetups.ts +11 -0
  790. package/package.json +1 -1
  791. package/trusted-setups/mainnet.json +8265 -0
  792. package/trusted-setups/minimal.json +8265 -0
  793. package/types/account.ts +3 -3
  794. package/types/chain.ts +3 -1
  795. package/types/eip1193.ts +3 -3
  796. package/types/eip4844.ts +12 -0
  797. package/types/fee.ts +3 -2
  798. package/types/kzg.ts +32 -0
  799. package/types/misc.ts +20 -1
  800. package/types/rpc.ts +11 -6
  801. package/types/transaction.ts +75 -17
  802. package/types/utils.ts +49 -1
  803. package/utils/abi/encodeAbiParameters.ts +2 -2
  804. package/utils/blob/blobsToCommitments.ts +69 -0
  805. package/utils/blob/blobsToProofs.ts +93 -0
  806. package/utils/blob/commitmentToVersionedHash.ts +62 -0
  807. package/utils/blob/commitmentsToVersionedHashes.ts +71 -0
  808. package/utils/blob/fromBlobs.ts +73 -0
  809. package/utils/blob/sidecarsToVersionedHashes.ts +66 -0
  810. package/utils/blob/toBlobSidecars.ts +109 -0
  811. package/utils/blob/toBlobs.ts +113 -0
  812. package/utils/encoding/toRlp.ts +2 -2
  813. package/utils/formatters/transaction.ts +3 -2
  814. package/utils/formatters/transactionRequest.ts +28 -35
  815. package/utils/kzg/defineKzg.ts +30 -0
  816. package/utils/kzg/setupKzg.ts +38 -0
  817. package/utils/signature/compactSignatureToSignature.ts +3 -3
  818. package/utils/signature/hexToSignature.ts +6 -1
  819. package/utils/signature/signatureToCompactSignature.ts +4 -4
  820. package/utils/signature/signatureToHex.ts +9 -4
  821. package/utils/transaction/assertTransaction.ts +41 -0
  822. package/utils/transaction/getSerializedTransactionType.ts +34 -11
  823. package/utils/transaction/getTransactionType.ts +109 -26
  824. package/utils/transaction/parseTransaction.ts +128 -8
  825. package/utils/transaction/serializeAccessList.ts +1 -1
  826. package/utils/transaction/serializeTransaction.ts +172 -39
@@ -6,7 +6,7 @@ import {
6
6
  type HexToBigIntErrorType,
7
7
  hexToBigInt,
8
8
  } from '../../utils/encoding/fromHex.js'
9
- import { type ToHexErrorType, toHex } from '../../utils/encoding/toHex.js'
9
+ import { type ToHexErrorType } from '../../utils/encoding/toHex.js'
10
10
 
11
11
  export type SignatureToHexErrorType =
12
12
  | HexToBigIntErrorType
@@ -23,13 +23,18 @@ export type SignatureToHexErrorType =
23
23
  * signatureToHex({
24
24
  * r: '0x6e100a352ec6ad1b70802290e18aeed190704973570f3b8ed42cb9808e2ea6bf',
25
25
  * s: '0x4a90a229a244495b41890987806fcbd2d5d23fc0dbe5f5256c2613c039d76db8',
26
- * v: 28n
26
+ * yParity: 1
27
27
  * })
28
28
  * // "0x6e100a352ec6ad1b70802290e18aeed190704973570f3b8ed42cb9808e2ea6bf4a90a229a244495b41890987806fcbd2d5d23fc0dbe5f5256c2613c039d76db81c"
29
29
  */
30
- export function signatureToHex({ r, s, v }: Signature): Hex {
30
+ export function signatureToHex({ r, s, v, yParity }: Signature): Hex {
31
+ const vHex = (() => {
32
+ if (v === 27n || yParity === 0) return '1b'
33
+ if (v === 28n || yParity === 1) return '1c'
34
+ throw new Error('Invalid v value')
35
+ })()
31
36
  return `0x${new secp256k1.Signature(
32
37
  hexToBigInt(r),
33
38
  hexToBigInt(s),
34
- ).toCompactHex()}${toHex(v).slice(2)}`
39
+ ).toCompactHex()}${vHex}`
35
40
  }
@@ -1,8 +1,17 @@
1
+ import { versionedHashVersionKzg } from '../../constants/kzg.js'
1
2
  import {
2
3
  InvalidAddressError,
3
4
  type InvalidAddressErrorType,
4
5
  } from '../../errors/address.js'
5
6
  import { BaseError, type BaseErrorType } from '../../errors/base.js'
7
+ import {
8
+ EmptyBlobError,
9
+ type EmptyBlobErrorType,
10
+ InvalidVersionedHashSizeError,
11
+ type InvalidVersionedHashSizeErrorType,
12
+ InvalidVersionedHashVersionError,
13
+ type InvalidVersionedHashVersionErrorType,
14
+ } from '../../errors/blob.js'
6
15
  import {
7
16
  InvalidChainIdError,
8
17
  type InvalidChainIdErrorType,
@@ -17,9 +26,41 @@ import type { ErrorType } from '../../errors/utils.js'
17
26
  import type {
18
27
  TransactionSerializableEIP1559,
19
28
  TransactionSerializableEIP2930,
29
+ TransactionSerializableEIP4844,
20
30
  TransactionSerializableLegacy,
21
31
  } from '../../types/transaction.js'
22
32
  import { type IsAddressErrorType, isAddress } from '../address/isAddress.js'
33
+ import { size } from '../data/size.js'
34
+ import { slice } from '../data/slice.js'
35
+ import { hexToNumber } from '../encoding/fromHex.js'
36
+
37
+ export type AssertTransactionEIP4844ErrorType =
38
+ | AssertTransactionEIP1559ErrorType
39
+ | EmptyBlobErrorType
40
+ | InvalidVersionedHashSizeErrorType
41
+ | InvalidVersionedHashVersionErrorType
42
+ | ErrorType
43
+
44
+ export function assertTransactionEIP4844(
45
+ transaction: TransactionSerializableEIP4844,
46
+ ) {
47
+ const { blobVersionedHashes } = transaction
48
+ if (blobVersionedHashes) {
49
+ if (blobVersionedHashes.length === 0) throw new EmptyBlobError()
50
+ for (const hash of blobVersionedHashes) {
51
+ const size_ = size(hash)
52
+ const version = hexToNumber(slice(hash, 0, 1))
53
+ if (size_ !== 32)
54
+ throw new InvalidVersionedHashSizeError({ hash, size: size_ })
55
+ if (version !== versionedHashVersionKzg)
56
+ throw new InvalidVersionedHashVersionError({
57
+ hash,
58
+ version,
59
+ })
60
+ }
61
+ }
62
+ assertTransactionEIP1559(transaction as {} as TransactionSerializableEIP1559)
63
+ }
23
64
 
24
65
  export type AssertTransactionEIP1559ErrorType =
25
66
  | BaseErrorType
@@ -3,21 +3,41 @@ import {
3
3
  type InvalidSerializedTransactionTypeErrorType,
4
4
  } from '../../errors/transaction.js'
5
5
  import type { ErrorType } from '../../errors/utils.js'
6
+ import type { Hex } from '../../index.js'
6
7
  import type {
7
8
  TransactionSerialized,
8
9
  TransactionSerializedEIP1559,
9
10
  TransactionSerializedEIP2930,
11
+ TransactionSerializedEIP4844,
12
+ TransactionSerializedGeneric,
13
+ TransactionSerializedLegacy,
14
+ TransactionType,
10
15
  } from '../../types/transaction.js'
16
+ import type { IsNarrowable, IsNever } from '../../types/utils.js'
11
17
  import { type SliceHexErrorType, sliceHex } from '../data/slice.js'
12
18
  import { type HexToNumberErrorType, hexToNumber } from '../encoding/fromHex.js'
13
19
 
14
20
  export type GetSerializedTransactionType<
15
- TTransactionSerialized extends TransactionSerialized = TransactionSerialized,
16
- > = TTransactionSerialized extends TransactionSerializedEIP1559
17
- ? 'eip1559'
18
- : TTransactionSerialized extends TransactionSerializedEIP2930
19
- ? 'eip2930'
21
+ serializedTransaction extends
22
+ TransactionSerializedGeneric = TransactionSerialized,
23
+ result =
24
+ | (serializedTransaction extends TransactionSerializedEIP1559
25
+ ? 'eip1559'
26
+ : never)
27
+ | (serializedTransaction extends TransactionSerializedEIP2930
28
+ ? 'eip2930'
29
+ : never)
30
+ | (serializedTransaction extends TransactionSerializedEIP4844
31
+ ? 'eip4844'
32
+ : never)
33
+ | (serializedTransaction extends TransactionSerializedLegacy
34
+ ? 'legacy'
35
+ : never),
36
+ > = IsNarrowable<serializedTransaction, Hex> extends true
37
+ ? IsNever<result> extends false
38
+ ? result
20
39
  : 'legacy'
40
+ : TransactionType
21
41
 
22
42
  export type GetSerializedTransactionTypeErrorType =
23
43
  | HexToNumberErrorType
@@ -26,20 +46,23 @@ export type GetSerializedTransactionTypeErrorType =
26
46
  | ErrorType
27
47
 
28
48
  export function getSerializedTransactionType<
29
- TSerialized extends TransactionSerialized,
49
+ const serializedTransaction extends TransactionSerializedGeneric,
30
50
  >(
31
- serializedTransaction: TSerialized,
32
- ): GetSerializedTransactionType<TSerialized> {
51
+ serializedTransaction: serializedTransaction,
52
+ ): GetSerializedTransactionType<serializedTransaction> {
33
53
  const serializedType = sliceHex(serializedTransaction, 0, 1)
34
54
 
55
+ if (serializedType === '0x03')
56
+ return 'eip4844' as GetSerializedTransactionType<serializedTransaction>
57
+
35
58
  if (serializedType === '0x02')
36
- return 'eip1559' as GetSerializedTransactionType<TSerialized>
59
+ return 'eip1559' as GetSerializedTransactionType<serializedTransaction>
37
60
 
38
61
  if (serializedType === '0x01')
39
- return 'eip2930' as GetSerializedTransactionType<TSerialized>
62
+ return 'eip2930' as GetSerializedTransactionType<serializedTransaction>
40
63
 
41
64
  if (serializedType !== '0x' && hexToNumber(serializedType) >= 0xc0)
42
- return 'legacy' as GetSerializedTransactionType<TSerialized>
65
+ return 'legacy' as GetSerializedTransactionType<serializedTransaction>
43
66
 
44
67
  throw new InvalidSerializedTransactionTypeError({ serializedType })
45
68
  }
@@ -4,52 +4,135 @@ import {
4
4
  } from '../../errors/transaction.js'
5
5
  import type { ErrorType } from '../../errors/utils.js'
6
6
  import type {
7
- TransactionSerializable,
7
+ FeeValuesEIP1559,
8
+ FeeValuesEIP4844,
9
+ FeeValuesLegacy,
10
+ } from '../../index.js'
11
+ import type {
12
+ TransactionRequest,
13
+ TransactionRequestEIP1559,
14
+ TransactionRequestEIP2930,
15
+ TransactionRequestEIP4844,
16
+ TransactionRequestLegacy,
8
17
  TransactionSerializableEIP1559,
9
18
  TransactionSerializableEIP2930,
19
+ TransactionSerializableEIP4844,
10
20
  TransactionSerializableGeneric,
11
21
  TransactionSerializableLegacy,
12
22
  } from '../../types/transaction.js'
23
+ import type { Assign, IsNever, OneOf, Opaque } from '../../types/utils.js'
24
+
25
+ type BaseProperties = {
26
+ accessList?: undefined
27
+ blobs?: undefined
28
+ blobVersionedHashes?: undefined
29
+ gasPrice?: undefined
30
+ maxFeePerBlobGas?: undefined
31
+ maxFeePerGas?: undefined
32
+ maxPriorityFeePerGas?: undefined
33
+ sidecars?: undefined
34
+ }
35
+
36
+ type LegacyProperties = Assign<BaseProperties, FeeValuesLegacy>
37
+ type EIP1559Properties = Assign<
38
+ BaseProperties,
39
+ OneOf<
40
+ | {
41
+ maxFeePerGas: FeeValuesEIP1559['maxFeePerGas']
42
+ }
43
+ | {
44
+ maxPriorityFeePerGas: FeeValuesEIP1559['maxPriorityFeePerGas']
45
+ },
46
+ FeeValuesEIP1559
47
+ > & {
48
+ accessList?: TransactionSerializableEIP2930['accessList']
49
+ }
50
+ >
51
+ type EIP2930Properties = Assign<
52
+ BaseProperties,
53
+ Partial<FeeValuesLegacy> & {
54
+ accessList: TransactionSerializableEIP2930['accessList']
55
+ }
56
+ >
57
+ type EIP4844Properties = Assign<
58
+ BaseProperties,
59
+ Partial<FeeValuesEIP4844> &
60
+ OneOf<
61
+ | {
62
+ blobs: TransactionSerializableEIP4844['blobs']
63
+ }
64
+ | {
65
+ blobVersionedHashes: TransactionSerializableEIP4844['blobVersionedHashes']
66
+ }
67
+ | {
68
+ sidecars: TransactionSerializableEIP4844['sidecars']
69
+ },
70
+ TransactionSerializableEIP4844
71
+ >
72
+ >
13
73
 
14
74
  export type GetTransactionType<
15
- TTransactionSerializable extends
16
- TransactionSerializable = TransactionSerializable,
17
- > =
18
- | (TTransactionSerializable extends TransactionSerializableLegacy
19
- ? 'legacy'
20
- : never)
21
- | (TTransactionSerializable extends TransactionSerializableEIP1559
22
- ? 'eip1559'
23
- : never)
24
- | (TTransactionSerializable extends TransactionSerializableEIP2930
25
- ? 'eip2930'
26
- : never)
27
- | (TTransactionSerializable extends TransactionSerializableGeneric
28
- ? TTransactionSerializable['type']
29
- : never)
75
+ transaction extends OneOf<
76
+ TransactionSerializableGeneric | TransactionRequest
77
+ > = TransactionSerializableGeneric,
78
+ result =
79
+ | (transaction extends
80
+ | Opaque<TransactionSerializableLegacy, transaction>
81
+ | Opaque<TransactionRequestLegacy, transaction>
82
+ | LegacyProperties
83
+ ? 'legacy'
84
+ : never)
85
+ | (transaction extends
86
+ | Opaque<TransactionSerializableEIP1559, transaction>
87
+ | Opaque<TransactionRequestEIP1559, transaction>
88
+ | EIP1559Properties
89
+ ? 'eip1559'
90
+ : never)
91
+ | (transaction extends
92
+ | Opaque<TransactionSerializableEIP2930, transaction>
93
+ | Opaque<TransactionRequestEIP2930, transaction>
94
+ | EIP2930Properties
95
+ ? 'eip2930'
96
+ : never)
97
+ | (transaction extends
98
+ | Opaque<TransactionSerializableEIP4844, transaction>
99
+ | Opaque<TransactionRequestEIP4844, transaction>
100
+ | EIP4844Properties
101
+ ? 'eip4844'
102
+ : never)
103
+ | (transaction['type'] extends string ? transaction['type'] : never),
104
+ > = IsNever<result> extends false ? result : string
30
105
 
31
106
  export type GetTransationTypeErrorType =
32
107
  | InvalidSerializableTransactionErrorType
33
108
  | ErrorType
34
109
 
35
110
  export function getTransactionType<
36
- TTransactionSerializable extends TransactionSerializable,
37
- >(
38
- transaction: TTransactionSerializable,
39
- ): GetTransactionType<TTransactionSerializable> {
111
+ const transaction extends OneOf<
112
+ TransactionSerializableGeneric | TransactionRequest
113
+ >,
114
+ >(transaction: transaction): GetTransactionType<transaction> {
40
115
  if (transaction.type)
41
- return transaction.type as GetTransactionType<TTransactionSerializable>
116
+ return transaction.type as GetTransactionType<transaction>
117
+
118
+ if (
119
+ typeof transaction.blobs !== 'undefined' ||
120
+ typeof transaction.blobVersionedHashes !== 'undefined' ||
121
+ typeof transaction.maxFeePerBlobGas !== 'undefined' ||
122
+ typeof transaction.sidecars !== 'undefined'
123
+ )
124
+ return 'eip4844' as any
42
125
 
43
126
  if (
44
127
  typeof transaction.maxFeePerGas !== 'undefined' ||
45
128
  typeof transaction.maxPriorityFeePerGas !== 'undefined'
46
- )
47
- return 'eip1559' as GetTransactionType<TTransactionSerializable>
129
+ ) {
130
+ return 'eip1559' as any
131
+ }
48
132
 
49
133
  if (typeof transaction.gasPrice !== 'undefined') {
50
- if (typeof transaction.accessList !== 'undefined')
51
- return 'eip2930' as GetTransactionType<TTransactionSerializable>
52
- return 'legacy' as GetTransactionType<TTransactionSerializable>
134
+ if (typeof transaction.accessList !== 'undefined') return 'eip2930' as any
135
+ return 'legacy' as any
53
136
  }
54
137
 
55
138
  throw new InvalidSerializableTransactionError({ transaction })
@@ -14,15 +14,21 @@ import type {
14
14
  AccessList,
15
15
  TransactionRequestEIP2930,
16
16
  TransactionRequestLegacy,
17
+ TransactionSerializable,
17
18
  TransactionSerializableEIP1559,
18
19
  TransactionSerializableEIP2930,
20
+ TransactionSerializableEIP4844,
19
21
  TransactionSerializableLegacy,
20
22
  TransactionSerialized,
21
23
  TransactionSerializedEIP1559,
22
24
  TransactionSerializedEIP2930,
25
+ TransactionSerializedEIP4844,
26
+ TransactionSerializedGeneric,
23
27
  TransactionType,
24
28
  } from '../../types/transaction.js'
29
+ import type { IsNarrowable } from '../../types/utils.js'
25
30
  import { type IsAddressErrorType, isAddress } from '../address/isAddress.js'
31
+ import { toBlobSidecars } from '../blob/toBlobSidecars.js'
26
32
  import { type IsHexErrorType, isHex } from '../data/isHex.js'
27
33
  import { type PadHexErrorType, padHex } from '../data/pad.js'
28
34
  import { trim } from '../data/trim.js'
@@ -39,9 +45,11 @@ import { isHash } from '../hash/isHash.js'
39
45
  import {
40
46
  type AssertTransactionEIP1559ErrorType,
41
47
  type AssertTransactionEIP2930ErrorType,
48
+ type AssertTransactionEIP4844ErrorType,
42
49
  type AssertTransactionLegacyErrorType,
43
50
  assertTransactionEIP1559,
44
51
  assertTransactionEIP2930,
52
+ assertTransactionEIP4844,
45
53
  assertTransactionLegacy,
46
54
  } from './assertTransaction.js'
47
55
  import {
@@ -51,22 +59,26 @@ import {
51
59
  } from './getSerializedTransactionType.js'
52
60
 
53
61
  export type ParseTransactionReturnType<
54
- TSerialized extends TransactionSerialized = TransactionSerialized,
62
+ TSerialized extends TransactionSerializedGeneric = TransactionSerialized,
55
63
  TType extends TransactionType = GetSerializedTransactionType<TSerialized>,
56
- > =
57
- | (TType extends 'eip1559' ? TransactionSerializableEIP1559 : never)
58
- | (TType extends 'eip2930' ? TransactionSerializableEIP2930 : never)
59
- | (TType extends 'legacy' ? TransactionSerializableLegacy : never)
64
+ > = IsNarrowable<TSerialized, Hex> extends true
65
+ ?
66
+ | (TType extends 'eip1559' ? TransactionSerializableEIP1559 : never)
67
+ | (TType extends 'eip2930' ? TransactionSerializableEIP2930 : never)
68
+ | (TType extends 'eip4844' ? TransactionSerializableEIP4844 : never)
69
+ | (TType extends 'legacy' ? TransactionSerializableLegacy : never)
70
+ : TransactionSerializable
60
71
 
61
72
  export type ParseTransactionErrorType =
62
73
  | GetSerializedTransactionTypeErrorType
63
74
  | ParseTransactionEIP1559ErrorType
64
75
  | ParseTransactionEIP2930ErrorType
76
+ | ParseTransactionEIP4844ErrorType
65
77
  | ParseTransactionLegacyErrorType
66
78
 
67
- export function parseTransaction<TSerialized extends TransactionSerialized>(
68
- serializedTransaction: TSerialized,
69
- ): ParseTransactionReturnType<TSerialized> {
79
+ export function parseTransaction<
80
+ const TSerialized extends TransactionSerializedGeneric,
81
+ >(serializedTransaction: TSerialized): ParseTransactionReturnType<TSerialized> {
70
82
  const type = getSerializedTransactionType(serializedTransaction)
71
83
 
72
84
  if (type === 'eip1559')
@@ -79,11 +91,118 @@ export function parseTransaction<TSerialized extends TransactionSerialized>(
79
91
  serializedTransaction as TransactionSerializedEIP2930,
80
92
  ) as ParseTransactionReturnType<TSerialized>
81
93
 
94
+ if (type === 'eip4844')
95
+ return parseTransactionEIP4844(
96
+ serializedTransaction as TransactionSerializedEIP4844,
97
+ ) as ParseTransactionReturnType<TSerialized>
98
+
82
99
  return parseTransactionLegacy(
83
100
  serializedTransaction,
84
101
  ) as ParseTransactionReturnType<TSerialized>
85
102
  }
86
103
 
104
+ type ParseTransactionEIP4844ErrorType =
105
+ | AssertTransactionEIP4844ErrorType
106
+ | ToTransactionArrayErrorType
107
+ | HexToBigIntErrorType
108
+ | HexToNumberErrorType
109
+ | InvalidLegacyVErrorType
110
+ | InvalidSerializedTransactionErrorType
111
+ | IsHexErrorType
112
+ | ParseEIP155SignatureErrorType
113
+ | ErrorType
114
+
115
+ function parseTransactionEIP4844(
116
+ serializedTransaction: TransactionSerializedEIP4844,
117
+ ): TransactionSerializableEIP4844 {
118
+ const transactionOrWrapperArray = toTransactionArray(serializedTransaction)
119
+
120
+ const hasNetworkWrapper = transactionOrWrapperArray.length === 4
121
+
122
+ const transactionArray = hasNetworkWrapper
123
+ ? transactionOrWrapperArray[0]
124
+ : transactionOrWrapperArray
125
+ const wrapperArray = hasNetworkWrapper
126
+ ? transactionOrWrapperArray.slice(1)
127
+ : []
128
+
129
+ const [
130
+ chainId,
131
+ nonce,
132
+ maxPriorityFeePerGas,
133
+ maxFeePerGas,
134
+ gas,
135
+ to,
136
+ value,
137
+ data,
138
+ accessList,
139
+ maxFeePerBlobGas,
140
+ blobVersionedHashes,
141
+ v,
142
+ r,
143
+ s,
144
+ ] = transactionArray
145
+ const [blobs, commitments, proofs] = wrapperArray
146
+
147
+ if (!(transactionArray.length === 11 || transactionArray.length === 14))
148
+ throw new InvalidSerializedTransactionError({
149
+ attributes: {
150
+ chainId,
151
+ nonce,
152
+ maxPriorityFeePerGas,
153
+ maxFeePerGas,
154
+ gas,
155
+ to,
156
+ value,
157
+ data,
158
+ accessList,
159
+ ...(transactionArray.length > 9
160
+ ? {
161
+ v,
162
+ r,
163
+ s,
164
+ }
165
+ : {}),
166
+ },
167
+ serializedTransaction,
168
+ type: 'eip4844',
169
+ })
170
+
171
+ const transaction = {
172
+ blobVersionedHashes: blobVersionedHashes as Hex[],
173
+ chainId: hexToNumber(chainId as Hex),
174
+ type: 'eip4844',
175
+ } as TransactionSerializableEIP4844
176
+ if (isHex(to) && to !== '0x') transaction.to = to
177
+ if (isHex(gas) && gas !== '0x') transaction.gas = hexToBigInt(gas)
178
+ if (isHex(data) && data !== '0x') transaction.data = data
179
+ if (isHex(nonce) && nonce !== '0x') transaction.nonce = hexToNumber(nonce)
180
+ if (isHex(value) && value !== '0x') transaction.value = hexToBigInt(value)
181
+ if (isHex(maxFeePerBlobGas) && maxFeePerBlobGas !== '0x')
182
+ transaction.maxFeePerBlobGas = hexToBigInt(maxFeePerBlobGas)
183
+ if (isHex(maxFeePerGas) && maxFeePerGas !== '0x')
184
+ transaction.maxFeePerGas = hexToBigInt(maxFeePerGas)
185
+ if (isHex(maxPriorityFeePerGas) && maxPriorityFeePerGas !== '0x')
186
+ transaction.maxPriorityFeePerGas = hexToBigInt(maxPriorityFeePerGas)
187
+ if (accessList.length !== 0 && accessList !== '0x')
188
+ transaction.accessList = parseAccessList(accessList as RecursiveArray<Hex>)
189
+ if (blobs && commitments && proofs)
190
+ transaction.sidecars = toBlobSidecars({
191
+ blobs: blobs as Hex[],
192
+ commitments: commitments as Hex[],
193
+ proofs: proofs as Hex[],
194
+ })
195
+
196
+ assertTransactionEIP4844(transaction)
197
+
198
+ const signature =
199
+ transactionArray.length === 14
200
+ ? parseEIP155Signature(transactionArray as RecursiveArray<Hex>)
201
+ : undefined
202
+
203
+ return { ...signature, ...transaction }
204
+ }
205
+
87
206
  type ParseTransactionEIP1559ErrorType =
88
207
  | AssertTransactionEIP1559ErrorType
89
208
  | ToTransactionArrayErrorType
@@ -303,6 +422,7 @@ function parseTransactionLegacy(
303
422
  if (chainId > 0) transaction.chainId = chainId
304
423
  else if (v !== 27n && v !== 28n) throw new InvalidLegacyVError({ v })
305
424
 
425
+ delete transaction.yParity
306
426
  transaction.v = v
307
427
  transaction.s = s as Hex
308
428
  transaction.r = r as Hex
@@ -32,7 +32,7 @@ export function serializeAccessList(
32
32
  ): RecursiveArray<Hex> {
33
33
  if (!accessList || accessList.length === 0) return []
34
34
 
35
- const serializedAccessList: RecursiveArray<Hex> = []
35
+ const serializedAccessList = []
36
36
  for (let i = 0; i < accessList.length; i++) {
37
37
  const { address, storageKeys } = accessList[i]
38
38