viem 2.7.22 → 2.8.1

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 (476) hide show
  1. package/CHANGELOG.md +20 -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/watchBlockNumber.js +34 -26
  15. package/_cjs/actions/public/watchBlockNumber.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 +13 -11
  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/plumeTestnet.js +30 -0
  26. package/_cjs/chains/definitions/plumeTestnet.js.map +1 -0
  27. package/_cjs/chains/definitions/rss3.js +49 -0
  28. package/_cjs/chains/definitions/rss3.js.map +1 -0
  29. package/_cjs/chains/definitions/rss3Sepolia.js +50 -0
  30. package/_cjs/chains/definitions/rss3Sepolia.js.map +1 -0
  31. package/_cjs/chains/index.js +9 -3
  32. package/_cjs/chains/index.js.map +1 -1
  33. package/_cjs/chains/opStack/actions/estimateL1Fee.js +1 -10
  34. package/_cjs/chains/opStack/actions/estimateL1Fee.js.map +1 -1
  35. package/_cjs/chains/opStack/actions/estimateL1Gas.js +1 -10
  36. package/_cjs/chains/opStack/actions/estimateL1Gas.js.map +1 -1
  37. package/_cjs/chains/opStack/actions/finalizeWithdrawal.js +1 -1
  38. package/_cjs/chains/opStack/actions/finalizeWithdrawal.js.map +1 -1
  39. package/_cjs/chains/opStack/actions/proveWithdrawal.js +1 -1
  40. package/_cjs/chains/opStack/actions/proveWithdrawal.js.map +1 -1
  41. package/_cjs/chains/opStack/serializers.js +3 -3
  42. package/_cjs/chains/opStack/serializers.js.map +1 -1
  43. package/_cjs/chains/zksync/actions/sendTransaction.js.map +1 -1
  44. package/_cjs/chains/zksync/actions/signEip712Transaction.js.map +1 -1
  45. package/_cjs/chains/zksync/serializers.js +6 -6
  46. package/_cjs/chains/zksync/serializers.js.map +1 -1
  47. package/_cjs/clients/decorators/public.js.map +1 -1
  48. package/_cjs/clients/decorators/wallet.js.map +1 -1
  49. package/_cjs/constants/blob.js +11 -0
  50. package/_cjs/constants/blob.js.map +1 -0
  51. package/_cjs/constants/kzg.js +7 -0
  52. package/_cjs/constants/kzg.js.map +1 -0
  53. package/_cjs/errors/blob.js +63 -0
  54. package/_cjs/errors/blob.js.map +1 -0
  55. package/_cjs/errors/transaction.js +1 -0
  56. package/_cjs/errors/transaction.js.map +1 -1
  57. package/_cjs/errors/version.js +1 -1
  58. package/_cjs/errors/version.js.map +1 -1
  59. package/_cjs/index.js +22 -2
  60. package/_cjs/index.js.map +1 -1
  61. package/_cjs/node/index.js +3 -1
  62. package/_cjs/node/index.js.map +1 -1
  63. package/_cjs/node/trustedSetups.js +7 -0
  64. package/_cjs/node/trustedSetups.js.map +1 -0
  65. package/_cjs/types/eip4844.js +3 -0
  66. package/_cjs/types/eip4844.js.map +1 -0
  67. package/_cjs/types/kzg.js +3 -0
  68. package/_cjs/types/kzg.js.map +1 -0
  69. package/_cjs/utils/blob/blobsToCommitments.js +20 -0
  70. package/_cjs/utils/blob/blobsToCommitments.js.map +1 -0
  71. package/_cjs/utils/blob/blobsToProofs.js +26 -0
  72. package/_cjs/utils/blob/blobsToProofs.js.map +1 -0
  73. package/_cjs/utils/blob/commitmentToVersionedHash.js +14 -0
  74. package/_cjs/utils/blob/commitmentToVersionedHash.js.map +1 -0
  75. package/_cjs/utils/blob/commitmentsToVersionedHashes.js +19 -0
  76. package/_cjs/utils/blob/commitmentsToVersionedHashes.js.map +1 -0
  77. package/_cjs/utils/blob/fromBlobs.js +36 -0
  78. package/_cjs/utils/blob/fromBlobs.js.map +1 -0
  79. package/_cjs/utils/blob/sidecarsToVersionedHashes.js +19 -0
  80. package/_cjs/utils/blob/sidecarsToVersionedHashes.js.map +1 -0
  81. package/_cjs/utils/blob/toBlobSidecars.js +22 -0
  82. package/_cjs/utils/blob/toBlobSidecars.js.map +1 -0
  83. package/_cjs/utils/blob/toBlobs.js +48 -0
  84. package/_cjs/utils/blob/toBlobs.js.map +1 -0
  85. package/_cjs/utils/encoding/toRlp.js.map +1 -1
  86. package/_cjs/utils/formatters/transaction.js.map +1 -1
  87. package/_cjs/utils/formatters/transactionRequest.js +22 -25
  88. package/_cjs/utils/formatters/transactionRequest.js.map +1 -1
  89. package/_cjs/utils/kzg/defineKzg.js +11 -0
  90. package/_cjs/utils/kzg/defineKzg.js.map +1 -0
  91. package/_cjs/utils/kzg/setupKzg.js +17 -0
  92. package/_cjs/utils/kzg/setupKzg.js.map +1 -0
  93. package/_cjs/utils/signature/compactSignatureToSignature.js +3 -3
  94. package/_cjs/utils/signature/compactSignatureToSignature.js.map +1 -1
  95. package/_cjs/utils/signature/hexToSignature.js +6 -1
  96. package/_cjs/utils/signature/hexToSignature.js.map +1 -1
  97. package/_cjs/utils/signature/signatureToCompactSignature.js +3 -3
  98. package/_cjs/utils/signature/signatureToCompactSignature.js.map +1 -1
  99. package/_cjs/utils/signature/signatureToHex.js +9 -3
  100. package/_cjs/utils/signature/signatureToHex.js.map +1 -1
  101. package/_cjs/utils/transaction/assertTransaction.js +26 -1
  102. package/_cjs/utils/transaction/assertTransaction.js.map +1 -1
  103. package/_cjs/utils/transaction/getSerializedTransactionType.js +2 -0
  104. package/_cjs/utils/transaction/getSerializedTransactionType.js.map +1 -1
  105. package/_cjs/utils/transaction/getTransactionType.js +7 -1
  106. package/_cjs/utils/transaction/getTransactionType.js.map +1 -1
  107. package/_cjs/utils/transaction/parseTransaction.js +73 -0
  108. package/_cjs/utils/transaction/parseTransaction.js.map +1 -1
  109. package/_cjs/utils/transaction/serializeAccessList.js.map +1 -1
  110. package/_cjs/utils/transaction/serializeTransaction.js +84 -21
  111. package/_cjs/utils/transaction/serializeTransaction.js.map +1 -1
  112. package/_esm/accounts/utils/sign.js +1 -0
  113. package/_esm/accounts/utils/sign.js.map +1 -1
  114. package/_esm/accounts/utils/signTransaction.js +13 -2
  115. package/_esm/accounts/utils/signTransaction.js.map +1 -1
  116. package/_esm/actions/index.js +1 -0
  117. package/_esm/actions/index.js.map +1 -1
  118. package/_esm/actions/public/call.js +3 -1
  119. package/_esm/actions/public/call.js.map +1 -1
  120. package/_esm/actions/public/estimateGas.js +3 -1
  121. package/_esm/actions/public/estimateGas.js.map +1 -1
  122. package/_esm/actions/public/getBlobBaseFee.js +27 -0
  123. package/_esm/actions/public/getBlobBaseFee.js.map +1 -0
  124. package/_esm/actions/public/watchBlockNumber.js +34 -26
  125. package/_esm/actions/public/watchBlockNumber.js.map +1 -1
  126. package/_esm/actions/wallet/prepareTransactionRequest.js +12 -2
  127. package/_esm/actions/wallet/prepareTransactionRequest.js.map +1 -1
  128. package/_esm/actions/wallet/sendRawTransaction.js.map +1 -1
  129. package/_esm/actions/wallet/sendTransaction.js +13 -11
  130. package/_esm/actions/wallet/sendTransaction.js.map +1 -1
  131. package/_esm/actions/wallet/signTransaction.js +6 -5
  132. package/_esm/actions/wallet/signTransaction.js.map +1 -1
  133. package/_esm/chains/celo/serializers.js +10 -17
  134. package/_esm/chains/celo/serializers.js.map +1 -1
  135. package/_esm/chains/definitions/plumeTestnet.js +27 -0
  136. package/_esm/chains/definitions/plumeTestnet.js.map +1 -0
  137. package/_esm/chains/definitions/rss3.js +46 -0
  138. package/_esm/chains/definitions/rss3.js.map +1 -0
  139. package/_esm/chains/definitions/rss3Sepolia.js +47 -0
  140. package/_esm/chains/definitions/rss3Sepolia.js.map +1 -0
  141. package/_esm/chains/index.js +3 -0
  142. package/_esm/chains/index.js.map +1 -1
  143. package/_esm/chains/opStack/actions/estimateL1Fee.js +1 -10
  144. package/_esm/chains/opStack/actions/estimateL1Fee.js.map +1 -1
  145. package/_esm/chains/opStack/actions/estimateL1Gas.js +1 -10
  146. package/_esm/chains/opStack/actions/estimateL1Gas.js.map +1 -1
  147. package/_esm/chains/opStack/actions/finalizeWithdrawal.js +1 -1
  148. package/_esm/chains/opStack/actions/finalizeWithdrawal.js.map +1 -1
  149. package/_esm/chains/opStack/actions/proveWithdrawal.js +1 -1
  150. package/_esm/chains/opStack/actions/proveWithdrawal.js.map +1 -1
  151. package/_esm/chains/opStack/serializers.js +2 -2
  152. package/_esm/chains/opStack/serializers.js.map +1 -1
  153. package/_esm/chains/zksync/actions/sendTransaction.js.map +1 -1
  154. package/_esm/chains/zksync/actions/signEip712Transaction.js.map +1 -1
  155. package/_esm/chains/zksync/serializers.js +6 -6
  156. package/_esm/chains/zksync/serializers.js.map +1 -1
  157. package/_esm/clients/decorators/public.js.map +1 -1
  158. package/_esm/clients/decorators/wallet.js.map +1 -1
  159. package/_esm/constants/blob.js +16 -0
  160. package/_esm/constants/blob.js.map +1 -0
  161. package/_esm/constants/kzg.js +7 -0
  162. package/_esm/constants/kzg.js.map +1 -0
  163. package/_esm/errors/blob.js +56 -0
  164. package/_esm/errors/blob.js.map +1 -0
  165. package/_esm/errors/transaction.js +1 -0
  166. package/_esm/errors/transaction.js.map +1 -1
  167. package/_esm/errors/version.js +1 -1
  168. package/_esm/errors/version.js.map +1 -1
  169. package/_esm/index.js +10 -0
  170. package/_esm/index.js.map +1 -1
  171. package/_esm/node/index.js +1 -0
  172. package/_esm/node/index.js.map +1 -1
  173. package/_esm/node/trustedSetups.js +4 -0
  174. package/_esm/node/trustedSetups.js.map +1 -0
  175. package/_esm/types/eip4844.js +2 -0
  176. package/_esm/types/eip4844.js.map +1 -0
  177. package/_esm/types/kzg.js +2 -0
  178. package/_esm/types/kzg.js.map +1 -0
  179. package/_esm/utils/blob/blobsToCommitments.js +28 -0
  180. package/_esm/utils/blob/blobsToCommitments.js.map +1 -0
  181. package/_esm/utils/blob/blobsToProofs.js +38 -0
  182. package/_esm/utils/blob/blobsToProofs.js.map +1 -0
  183. package/_esm/utils/blob/commitmentToVersionedHash.js +27 -0
  184. package/_esm/utils/blob/commitmentToVersionedHash.js.map +1 -0
  185. package/_esm/utils/blob/commitmentsToVersionedHashes.js +32 -0
  186. package/_esm/utils/blob/commitmentsToVersionedHashes.js.map +1 -0
  187. package/_esm/utils/blob/fromBlobs.js +33 -0
  188. package/_esm/utils/blob/fromBlobs.js.map +1 -0
  189. package/_esm/utils/blob/sidecarsToVersionedHashes.js +26 -0
  190. package/_esm/utils/blob/sidecarsToVersionedHashes.js.map +1 -0
  191. package/_esm/utils/blob/toBlobSidecars.js +45 -0
  192. package/_esm/utils/blob/toBlobSidecars.js.map +1 -0
  193. package/_esm/utils/blob/toBlobs.js +58 -0
  194. package/_esm/utils/blob/toBlobs.js.map +1 -0
  195. package/_esm/utils/encoding/toRlp.js.map +1 -1
  196. package/_esm/utils/formatters/transaction.js.map +1 -1
  197. package/_esm/utils/formatters/transactionRequest.js +23 -26
  198. package/_esm/utils/formatters/transactionRequest.js.map +1 -1
  199. package/_esm/utils/kzg/defineKzg.js +21 -0
  200. package/_esm/utils/kzg/defineKzg.js.map +1 -0
  201. package/_esm/utils/kzg/setupKzg.js +25 -0
  202. package/_esm/utils/kzg/setupKzg.js.map +1 -0
  203. package/_esm/utils/signature/compactSignatureToSignature.js +3 -3
  204. package/_esm/utils/signature/compactSignatureToSignature.js.map +1 -1
  205. package/_esm/utils/signature/hexToSignature.js +6 -1
  206. package/_esm/utils/signature/hexToSignature.js.map +1 -1
  207. package/_esm/utils/signature/signatureToCompactSignature.js +4 -4
  208. package/_esm/utils/signature/signatureToCompactSignature.js.map +1 -1
  209. package/_esm/utils/signature/signatureToHex.js +11 -4
  210. package/_esm/utils/signature/signatureToHex.js.map +1 -1
  211. package/_esm/utils/transaction/assertTransaction.js +24 -0
  212. package/_esm/utils/transaction/assertTransaction.js.map +1 -1
  213. package/_esm/utils/transaction/getSerializedTransactionType.js +2 -0
  214. package/_esm/utils/transaction/getSerializedTransactionType.js.map +1 -1
  215. package/_esm/utils/transaction/getTransactionType.js +7 -1
  216. package/_esm/utils/transaction/getTransactionType.js.map +1 -1
  217. package/_esm/utils/transaction/parseTransaction.js +74 -1
  218. package/_esm/utils/transaction/parseTransaction.js.map +1 -1
  219. package/_esm/utils/transaction/serializeAccessList.js.map +1 -1
  220. package/_esm/utils/transaction/serializeTransaction.js +85 -22
  221. package/_esm/utils/transaction/serializeTransaction.js.map +1 -1
  222. package/_types/accounts/types.d.ts +3 -3
  223. package/_types/accounts/types.d.ts.map +1 -1
  224. package/_types/accounts/utils/sign.d.ts.map +1 -1
  225. package/_types/accounts/utils/signTransaction.d.ts +5 -5
  226. package/_types/accounts/utils/signTransaction.d.ts.map +1 -1
  227. package/_types/actions/index.d.ts +1 -0
  228. package/_types/actions/index.d.ts.map +1 -1
  229. package/_types/actions/public/call.d.ts.map +1 -1
  230. package/_types/actions/public/estimateGas.d.ts.map +1 -1
  231. package/_types/actions/public/getBlobBaseFee.d.ts +30 -0
  232. package/_types/actions/public/getBlobBaseFee.d.ts.map +1 -0
  233. package/_types/actions/public/watchBlockNumber.d.ts.map +1 -1
  234. package/_types/actions/wallet/prepareTransactionRequest.d.ts +27 -8
  235. package/_types/actions/wallet/prepareTransactionRequest.d.ts.map +1 -1
  236. package/_types/actions/wallet/sendRawTransaction.d.ts +3 -5
  237. package/_types/actions/wallet/sendRawTransaction.d.ts.map +1 -1
  238. package/_types/actions/wallet/sendTransaction.d.ts +4 -2
  239. package/_types/actions/wallet/sendTransaction.d.ts.map +1 -1
  240. package/_types/actions/wallet/signTransaction.d.ts +5 -2
  241. package/_types/actions/wallet/signTransaction.d.ts.map +1 -1
  242. package/_types/chains/celo/chainConfig.d.ts +1282 -376
  243. package/_types/chains/celo/chainConfig.d.ts.map +1 -1
  244. package/_types/chains/celo/formatters.d.ts +1282 -376
  245. package/_types/chains/celo/formatters.d.ts.map +1 -1
  246. package/_types/chains/celo/serializers.d.ts +3 -4
  247. package/_types/chains/celo/serializers.d.ts.map +1 -1
  248. package/_types/chains/celo/types.d.ts +3 -8
  249. package/_types/chains/celo/types.d.ts.map +1 -1
  250. package/_types/chains/definitions/ancient8.d.ts +452 -188
  251. package/_types/chains/definitions/ancient8.d.ts.map +1 -1
  252. package/_types/chains/definitions/ancient8Sepolia.d.ts +452 -188
  253. package/_types/chains/definitions/ancient8Sepolia.d.ts.map +1 -1
  254. package/_types/chains/definitions/base.d.ts +452 -188
  255. package/_types/chains/definitions/base.d.ts.map +1 -1
  256. package/_types/chains/definitions/baseGoerli.d.ts +452 -188
  257. package/_types/chains/definitions/baseGoerli.d.ts.map +1 -1
  258. package/_types/chains/definitions/baseSepolia.d.ts +452 -188
  259. package/_types/chains/definitions/baseSepolia.d.ts.map +1 -1
  260. package/_types/chains/definitions/celo.d.ts +1282 -376
  261. package/_types/chains/definitions/celo.d.ts.map +1 -1
  262. package/_types/chains/definitions/celoAlfajores.d.ts +1282 -376
  263. package/_types/chains/definitions/celoAlfajores.d.ts.map +1 -1
  264. package/_types/chains/definitions/fraxtal.d.ts +452 -188
  265. package/_types/chains/definitions/fraxtal.d.ts.map +1 -1
  266. package/_types/chains/definitions/fraxtalTestnet.d.ts +452 -188
  267. package/_types/chains/definitions/fraxtalTestnet.d.ts.map +1 -1
  268. package/_types/chains/definitions/liskSepolia.d.ts +452 -188
  269. package/_types/chains/definitions/liskSepolia.d.ts.map +1 -1
  270. package/_types/chains/definitions/optimism.d.ts +452 -188
  271. package/_types/chains/definitions/optimism.d.ts.map +1 -1
  272. package/_types/chains/definitions/optimismGoerli.d.ts +452 -188
  273. package/_types/chains/definitions/optimismGoerli.d.ts.map +1 -1
  274. package/_types/chains/definitions/optimismSepolia.d.ts +452 -188
  275. package/_types/chains/definitions/optimismSepolia.d.ts.map +1 -1
  276. package/_types/chains/definitions/pgn.d.ts +451 -187
  277. package/_types/chains/definitions/pgn.d.ts.map +1 -1
  278. package/_types/chains/definitions/pgnTestnet.d.ts +451 -187
  279. package/_types/chains/definitions/pgnTestnet.d.ts.map +1 -1
  280. package/_types/chains/definitions/plumeTestnet.d.ts +37 -0
  281. package/_types/chains/definitions/plumeTestnet.d.ts.map +1 -0
  282. package/_types/chains/definitions/rss3.d.ts +1080 -0
  283. package/_types/chains/definitions/rss3.d.ts.map +1 -0
  284. package/_types/chains/definitions/rss3Sepolia.d.ts +1080 -0
  285. package/_types/chains/definitions/rss3Sepolia.d.ts.map +1 -0
  286. package/_types/chains/definitions/zkSync.d.ts +692 -32
  287. package/_types/chains/definitions/zkSync.d.ts.map +1 -1
  288. package/_types/chains/definitions/zkSyncSepoliaTestnet.d.ts +692 -32
  289. package/_types/chains/definitions/zkSyncSepoliaTestnet.d.ts.map +1 -1
  290. package/_types/chains/definitions/zkSyncTestnet.d.ts +692 -32
  291. package/_types/chains/definitions/zkSyncTestnet.d.ts.map +1 -1
  292. package/_types/chains/definitions/zora.d.ts +452 -188
  293. package/_types/chains/definitions/zora.d.ts.map +1 -1
  294. package/_types/chains/definitions/zoraSepolia.d.ts +452 -188
  295. package/_types/chains/definitions/zoraSepolia.d.ts.map +1 -1
  296. package/_types/chains/definitions/zoraTestnet.d.ts +452 -188
  297. package/_types/chains/definitions/zoraTestnet.d.ts.map +1 -1
  298. package/_types/chains/index.d.ts +4 -1
  299. package/_types/chains/index.d.ts.map +1 -1
  300. package/_types/chains/opStack/actions/estimateL1Fee.d.ts.map +1 -1
  301. package/_types/chains/opStack/actions/estimateL1Gas.d.ts.map +1 -1
  302. package/_types/chains/opStack/actions/finalizeWithdrawal.d.ts.map +1 -1
  303. package/_types/chains/opStack/actions/proveWithdrawal.d.ts.map +1 -1
  304. package/_types/chains/opStack/chainConfig.d.ts +452 -188
  305. package/_types/chains/opStack/chainConfig.d.ts.map +1 -1
  306. package/_types/chains/opStack/formatters.d.ts +451 -187
  307. package/_types/chains/opStack/formatters.d.ts.map +1 -1
  308. package/_types/chains/opStack/serializers.d.ts +4 -3
  309. package/_types/chains/opStack/serializers.d.ts.map +1 -1
  310. package/_types/chains/opStack/types/transaction.d.ts +4 -8
  311. package/_types/chains/opStack/types/transaction.d.ts.map +1 -1
  312. package/_types/chains/zksync/actions/sendTransaction.d.ts.map +1 -1
  313. package/_types/chains/zksync/chainConfig.d.ts +692 -32
  314. package/_types/chains/zksync/chainConfig.d.ts.map +1 -1
  315. package/_types/chains/zksync/formatters.d.ts +692 -32
  316. package/_types/chains/zksync/formatters.d.ts.map +1 -1
  317. package/_types/chains/zksync/serializers.d.ts +3 -3
  318. package/_types/chains/zksync/serializers.d.ts.map +1 -1
  319. package/_types/chains/zksync/types/chain.d.ts +2 -2
  320. package/_types/chains/zksync/types/chain.d.ts.map +1 -1
  321. package/_types/chains/zksync/types/eip712.d.ts +2 -2
  322. package/_types/chains/zksync/types/eip712.d.ts.map +1 -1
  323. package/_types/clients/decorators/public.d.ts +2 -2
  324. package/_types/clients/decorators/public.d.ts.map +1 -1
  325. package/_types/clients/decorators/wallet.d.ts +4 -4
  326. package/_types/clients/decorators/wallet.d.ts.map +1 -1
  327. package/_types/constants/blob.d.ts +11 -0
  328. package/_types/constants/blob.d.ts.map +1 -0
  329. package/_types/constants/kzg.d.ts +6 -0
  330. package/_types/constants/kzg.d.ts.map +1 -0
  331. package/_types/errors/blob.d.ts +40 -0
  332. package/_types/errors/blob.d.ts.map +1 -0
  333. package/_types/errors/transaction.d.ts.map +1 -1
  334. package/_types/errors/version.d.ts +1 -1
  335. package/_types/errors/version.d.ts.map +1 -1
  336. package/_types/index.d.ts +11 -0
  337. package/_types/index.d.ts.map +1 -1
  338. package/_types/node/index.d.ts +1 -0
  339. package/_types/node/index.d.ts.map +1 -1
  340. package/_types/node/trustedSetups.d.ts +3 -0
  341. package/_types/node/trustedSetups.d.ts.map +1 -0
  342. package/_types/types/account.d.ts +3 -3
  343. package/_types/types/account.d.ts.map +1 -1
  344. package/_types/types/chain.d.ts +2 -2
  345. package/_types/types/chain.d.ts.map +1 -1
  346. package/_types/types/eip1193.d.ts +3 -3
  347. package/_types/types/eip1193.d.ts.map +1 -1
  348. package/_types/types/eip4844.d.ts +11 -0
  349. package/_types/types/eip4844.d.ts.map +1 -0
  350. package/_types/types/fee.d.ts +2 -2
  351. package/_types/types/fee.d.ts.map +1 -1
  352. package/_types/types/kzg.d.ts +24 -0
  353. package/_types/types/kzg.d.ts.map +1 -0
  354. package/_types/types/misc.d.ts +15 -1
  355. package/_types/types/misc.d.ts.map +1 -1
  356. package/_types/types/rpc.d.ts +4 -4
  357. package/_types/types/rpc.d.ts.map +1 -1
  358. package/_types/types/transaction.d.ts +44 -9
  359. package/_types/types/transaction.d.ts.map +1 -1
  360. package/_types/types/utils.d.ts +38 -2
  361. package/_types/types/utils.d.ts.map +1 -1
  362. package/_types/utils/blob/blobsToCommitments.d.ts +31 -0
  363. package/_types/utils/blob/blobsToCommitments.d.ts.map +1 -0
  364. package/_types/utils/blob/blobsToProofs.d.ts +37 -0
  365. package/_types/utils/blob/blobsToProofs.d.ts.map +1 -0
  366. package/_types/utils/blob/commitmentToVersionedHash.d.ts +35 -0
  367. package/_types/utils/blob/commitmentToVersionedHash.d.ts.map +1 -0
  368. package/_types/utils/blob/commitmentsToVersionedHashes.d.ts +34 -0
  369. package/_types/utils/blob/commitmentsToVersionedHashes.d.ts.map +1 -0
  370. package/_types/utils/blob/fromBlobs.d.ts +16 -0
  371. package/_types/utils/blob/fromBlobs.d.ts.map +1 -0
  372. package/_types/utils/blob/sidecarsToVersionedHashes.d.ts +29 -0
  373. package/_types/utils/blob/sidecarsToVersionedHashes.d.ts.map +1 -0
  374. package/_types/utils/blob/toBlobSidecars.d.ts +57 -0
  375. package/_types/utils/blob/toBlobSidecars.d.ts.map +1 -0
  376. package/_types/utils/blob/toBlobs.d.ts +28 -0
  377. package/_types/utils/blob/toBlobs.d.ts.map +1 -0
  378. package/_types/utils/encoding/toRlp.d.ts +1 -1
  379. package/_types/utils/encoding/toRlp.d.ts.map +1 -1
  380. package/_types/utils/formatters/transaction.d.ts +25 -25
  381. package/_types/utils/formatters/transaction.d.ts.map +1 -1
  382. package/_types/utils/formatters/transactionRequest.d.ts +227 -3
  383. package/_types/utils/formatters/transactionRequest.d.ts.map +1 -1
  384. package/_types/utils/kzg/defineKzg.d.ts +21 -0
  385. package/_types/utils/kzg/defineKzg.d.ts.map +1 -0
  386. package/_types/utils/kzg/setupKzg.d.ts +21 -0
  387. package/_types/utils/kzg/setupKzg.d.ts.map +1 -0
  388. package/_types/utils/signature/hexToSignature.d.ts.map +1 -1
  389. package/_types/utils/signature/signatureToCompactSignature.d.ts +1 -1
  390. package/_types/utils/signature/signatureToHex.d.ts +2 -2
  391. package/_types/utils/signature/signatureToHex.d.ts.map +1 -1
  392. package/_types/utils/transaction/assertTransaction.d.ts +4 -1
  393. package/_types/utils/transaction/assertTransaction.d.ts.map +1 -1
  394. package/_types/utils/transaction/getSerializedTransactionType.d.ts +5 -3
  395. package/_types/utils/transaction/getSerializedTransactionType.d.ts.map +1 -1
  396. package/_types/utils/transaction/getTransactionType.d.ts +34 -3
  397. package/_types/utils/transaction/getTransactionType.d.ts.map +1 -1
  398. package/_types/utils/transaction/parseTransaction.d.ts +7 -5
  399. package/_types/utils/transaction/parseTransaction.d.ts.map +1 -1
  400. package/_types/utils/transaction/serializeTransaction.d.ts +13 -6
  401. package/_types/utils/transaction/serializeTransaction.d.ts.map +1 -1
  402. package/accounts/types.ts +9 -5
  403. package/accounts/utils/sign.ts +1 -0
  404. package/accounts/utils/signTransaction.ts +37 -22
  405. package/actions/index.ts +5 -0
  406. package/actions/public/call.ts +4 -0
  407. package/actions/public/estimateGas.ts +4 -0
  408. package/actions/public/getBlobBaseFee.ts +42 -0
  409. package/actions/public/watchBlockNumber.ts +33 -23
  410. package/actions/wallet/prepareTransactionRequest.ts +134 -61
  411. package/actions/wallet/sendRawTransaction.ts +3 -5
  412. package/actions/wallet/sendTransaction.ts +41 -31
  413. package/actions/wallet/signTransaction.ts +34 -18
  414. package/chains/celo/serializers.ts +12 -25
  415. package/chains/celo/types.ts +5 -10
  416. package/chains/definitions/plumeTestnet.ts +28 -0
  417. package/chains/definitions/rss3.ts +47 -0
  418. package/chains/definitions/rss3Sepolia.ts +48 -0
  419. package/chains/index.ts +3 -1
  420. package/chains/opStack/actions/estimateL1Fee.ts +12 -16
  421. package/chains/opStack/actions/estimateL1Gas.ts +12 -16
  422. package/chains/opStack/actions/finalizeWithdrawal.ts +3 -2
  423. package/chains/opStack/actions/proveWithdrawal.ts +3 -2
  424. package/chains/opStack/serializers.ts +5 -5
  425. package/chains/opStack/types/transaction.ts +9 -11
  426. package/chains/zksync/actions/sendTransaction.ts +2 -1
  427. package/chains/zksync/actions/signEip712Transaction.ts +2 -2
  428. package/chains/zksync/serializers.ts +14 -10
  429. package/chains/zksync/types/chain.ts +4 -7
  430. package/chains/zksync/types/eip712.ts +2 -2
  431. package/clients/decorators/public.ts +8 -4
  432. package/clients/decorators/wallet.ts +14 -6
  433. package/constants/blob.ts +21 -0
  434. package/constants/kzg.ts +9 -0
  435. package/errors/blob.ts +67 -0
  436. package/errors/transaction.ts +1 -0
  437. package/errors/version.ts +1 -1
  438. package/index.ts +64 -0
  439. package/node/index.ts +2 -0
  440. package/node/trustedSetups.ts +11 -0
  441. package/package.json +1 -1
  442. package/trusted-setups/mainnet.json +8265 -0
  443. package/trusted-setups/minimal.json +8265 -0
  444. package/types/account.ts +3 -3
  445. package/types/chain.ts +3 -1
  446. package/types/eip1193.ts +3 -3
  447. package/types/eip4844.ts +12 -0
  448. package/types/fee.ts +3 -2
  449. package/types/kzg.ts +32 -0
  450. package/types/misc.ts +20 -1
  451. package/types/rpc.ts +11 -6
  452. package/types/transaction.ts +75 -17
  453. package/types/utils.ts +49 -1
  454. package/utils/blob/blobsToCommitments.ts +69 -0
  455. package/utils/blob/blobsToProofs.ts +93 -0
  456. package/utils/blob/commitmentToVersionedHash.ts +62 -0
  457. package/utils/blob/commitmentsToVersionedHashes.ts +71 -0
  458. package/utils/blob/fromBlobs.ts +73 -0
  459. package/utils/blob/sidecarsToVersionedHashes.ts +66 -0
  460. package/utils/blob/toBlobSidecars.ts +109 -0
  461. package/utils/blob/toBlobs.ts +113 -0
  462. package/utils/encoding/toRlp.ts +2 -2
  463. package/utils/formatters/transaction.ts +3 -2
  464. package/utils/formatters/transactionRequest.ts +28 -35
  465. package/utils/kzg/defineKzg.ts +30 -0
  466. package/utils/kzg/setupKzg.ts +38 -0
  467. package/utils/signature/compactSignatureToSignature.ts +3 -3
  468. package/utils/signature/hexToSignature.ts +6 -1
  469. package/utils/signature/signatureToCompactSignature.ts +4 -4
  470. package/utils/signature/signatureToHex.ts +9 -4
  471. package/utils/transaction/assertTransaction.ts +41 -0
  472. package/utils/transaction/getSerializedTransactionType.ts +34 -11
  473. package/utils/transaction/getTransactionType.ts +109 -26
  474. package/utils/transaction/parseTransaction.ts +128 -8
  475. package/utils/transaction/serializeAccessList.ts +1 -1
  476. package/utils/transaction/serializeTransaction.ts +172 -39
@@ -28,12 +28,25 @@ import {
28
28
  Eip1559FeesNotSupportedError,
29
29
  MaxFeePerGasTooLowError,
30
30
  } from '../../errors/fee.js'
31
- import type { Block } from '../../index.js'
31
+ import type { Block, GetTransactionType } from '../../index.js'
32
32
  import type { DeriveAccount, GetAccountParameter } from '../../types/account.js'
33
33
  import type { Chain, DeriveChain } from '../../types/chain.js'
34
34
  import type { GetChainParameter } from '../../types/chain.js'
35
- import type { TransactionSerializable } from '../../types/transaction.js'
36
- import type { UnionOmit, UnionRequiredBy } from '../../types/utils.js'
35
+ import type { GetTransactionRequestKzgParameter } from '../../types/kzg.js'
36
+ import type {
37
+ TransactionRequest,
38
+ TransactionRequestEIP1559,
39
+ TransactionRequestEIP2930,
40
+ TransactionRequestEIP4844,
41
+ TransactionRequestLegacy,
42
+ TransactionSerializable,
43
+ } from '../../types/transaction.js'
44
+ import type {
45
+ IsNever,
46
+ Prettify,
47
+ UnionOmit,
48
+ UnionRequiredBy,
49
+ } from '../../types/utils.js'
37
50
  import type { FormattedTransactionRequest } from '../../utils/formatters/transactionRequest.js'
38
51
  import { getAction } from '../../utils/getAction.js'
39
52
  import type {
@@ -42,60 +55,117 @@ import type {
42
55
  } from '../../utils/transaction/assertRequest.js'
43
56
  import { assertRequest } from '../../utils/transaction/assertRequest.js'
44
57
  import { getTransactionType } from '../../utils/transaction/getTransactionType.js'
58
+ import { getChainId } from '../public/getChainId.js'
45
59
 
46
60
  export type PrepareTransactionRequestParameterType =
61
+ | 'chainId'
47
62
  | 'fees'
48
63
  | 'gas'
49
64
  | 'nonce'
50
65
  | 'type'
51
66
  type ParameterTypeToParameters<
52
- TParameterType extends PrepareTransactionRequestParameterType,
53
- > = TParameterType extends 'fees'
67
+ parameterType extends PrepareTransactionRequestParameterType,
68
+ > = parameterType extends 'fees'
54
69
  ? 'maxFeePerGas' | 'maxPriorityFeePerGas' | 'gasPrice'
55
- : TParameterType
70
+ : parameterType
71
+
72
+ export type PrepareTransactionRequestRequest<
73
+ chain extends Chain | undefined = Chain | undefined,
74
+ chainOverride extends Chain | undefined = Chain | undefined,
75
+ ///
76
+ _derivedChain extends Chain | undefined = DeriveChain<chain, chainOverride>,
77
+ > = UnionOmit<FormattedTransactionRequest<_derivedChain>, 'from'> &
78
+ GetTransactionRequestKzgParameter & {
79
+ parameters?: PrepareTransactionRequestParameterType[]
80
+ }
56
81
 
57
82
  export type PrepareTransactionRequestParameters<
58
- TChain extends Chain | undefined = Chain | undefined,
59
- TAccount extends Account | undefined = Account | undefined,
60
- TChainOverride extends Chain | undefined = Chain | undefined,
61
- TAccountOverride extends Account | Address | undefined =
83
+ chain extends Chain | undefined = Chain | undefined,
84
+ account extends Account | undefined = Account | undefined,
85
+ chainOverride extends Chain | undefined = Chain | undefined,
86
+ accountOverride extends Account | Address | undefined =
87
+ | Account
88
+ | Address
89
+ | undefined,
90
+ request extends PrepareTransactionRequestRequest<
91
+ chain,
92
+ chainOverride
93
+ > = PrepareTransactionRequestRequest<chain, chainOverride>,
94
+ > = request &
95
+ GetAccountParameter<account, accountOverride, false> &
96
+ GetChainParameter<chain, chainOverride> &
97
+ GetTransactionRequestKzgParameter<request> & { chainId?: number }
98
+
99
+ export type PrepareTransactionRequestReturnType_<
100
+ chain extends Chain | undefined = Chain | undefined,
101
+ account extends Account | undefined = Account | undefined,
102
+ chainOverride extends Chain | undefined = Chain | undefined,
103
+ accountOverride extends Account | Address | undefined =
62
104
  | Account
63
105
  | Address
64
106
  | undefined,
65
- TParameterType extends
66
- PrepareTransactionRequestParameterType = PrepareTransactionRequestParameterType,
67
107
  ///
68
- derivedChain extends Chain | undefined = DeriveChain<TChain, TChainOverride>,
69
- > = UnionOmit<FormattedTransactionRequest<derivedChain>, 'from'> &
70
- GetAccountParameter<TAccount, TAccountOverride, false> &
71
- GetChainParameter<TChain, TChainOverride> & {
72
- parameters?: TParameterType[]
73
- }
108
+ _derivedAccount extends Account | Address | undefined = DeriveAccount<
109
+ account,
110
+ accountOverride
111
+ >,
112
+ _derivedChain extends Chain | undefined = DeriveChain<chain, chainOverride>,
113
+ > = UnionOmit<FormattedTransactionRequest<_derivedChain>, 'from'> &
114
+ GetChainParameter<chain, chainOverride> &
115
+ (_derivedAccount extends Account
116
+ ? { account: _derivedAccount; from: Address }
117
+ : { account?: undefined; from?: undefined })
74
118
 
75
119
  export type PrepareTransactionRequestReturnType<
76
- TChain extends Chain | undefined = Chain | undefined,
77
- TAccount extends Account | undefined = Account | undefined,
78
- TChainOverride extends Chain | undefined = Chain | undefined,
79
- TAccountOverride extends Account | Address | undefined =
120
+ chain extends Chain | undefined = Chain | undefined,
121
+ account extends Account | undefined = Account | undefined,
122
+ chainOverride extends Chain | undefined = Chain | undefined,
123
+ accountOverride extends Account | Address | undefined =
80
124
  | Account
81
125
  | Address
82
126
  | undefined,
83
- TParameterType extends
84
- PrepareTransactionRequestParameterType = PrepareTransactionRequestParameterType,
127
+ request extends PrepareTransactionRequestRequest<
128
+ chain,
129
+ chainOverride
130
+ > = PrepareTransactionRequestRequest<chain, chainOverride>,
85
131
  ///
86
- derivedAccount extends Account | Address | undefined = DeriveAccount<
87
- TAccount,
88
- TAccountOverride
132
+ _derivedAccount extends Account | Address | undefined = DeriveAccount<
133
+ account,
134
+ accountOverride
89
135
  >,
90
- derivedChain extends Chain | undefined = DeriveChain<TChain, TChainOverride>,
91
- > = UnionRequiredBy<
92
- UnionOmit<FormattedTransactionRequest<derivedChain>, 'from'>,
93
- ParameterTypeToParameters<TParameterType>
94
- > &
95
- GetChainParameter<TChain, TChainOverride> &
96
- (derivedAccount extends Account
97
- ? { account: derivedAccount; from: Address }
98
- : { account?: undefined; from?: undefined })
136
+ _derivedChain extends Chain | undefined = DeriveChain<chain, chainOverride>,
137
+ _transactionType = request['type'] extends string
138
+ ? request['type']
139
+ : GetTransactionType<request> extends 'legacy'
140
+ ? unknown
141
+ : GetTransactionType<request>,
142
+ _transactionRequest extends TransactionRequest =
143
+ | (_transactionType extends 'legacy' ? TransactionRequestLegacy : never)
144
+ | (_transactionType extends 'eip1559' ? TransactionRequestEIP1559 : never)
145
+ | (_transactionType extends 'eip2930' ? TransactionRequestEIP2930 : never)
146
+ | (_transactionType extends 'eip4844' ? TransactionRequestEIP4844 : never),
147
+ > = Prettify<
148
+ UnionRequiredBy<
149
+ Extract<
150
+ UnionOmit<FormattedTransactionRequest<_derivedChain>, 'from'> &
151
+ (_derivedChain extends Chain
152
+ ? { chain: _derivedChain }
153
+ : { chain?: undefined }) &
154
+ (_derivedAccount extends Account
155
+ ? { account: _derivedAccount; from: Address }
156
+ : { account?: undefined; from?: undefined }),
157
+ IsNever<_transactionRequest> extends true
158
+ ? unknown
159
+ : Partial<_transactionRequest>
160
+ > & { chainId?: number },
161
+ ParameterTypeToParameters<
162
+ request['parameters'] extends PrepareTransactionRequestParameterType[]
163
+ ? request['parameters'][number]
164
+ : PrepareTransactionRequestParameterType
165
+ >
166
+ > &
167
+ (unknown extends request['kzg'] ? {} : Pick<request, 'kzg'>)
168
+ >
99
169
 
100
170
  export type PrepareTransactionRequestErrorType =
101
171
  | AccountNotFoundErrorType
@@ -147,35 +217,36 @@ export type PrepareTransactionRequestErrorType =
147
217
  * })
148
218
  */
149
219
  export async function prepareTransactionRequest<
150
- TChain extends Chain | undefined,
151
- TAccount extends Account | undefined,
152
- TParameterType extends PrepareTransactionRequestParameterType,
153
- TAccountOverride extends Account | Address | undefined = undefined,
154
- TChainOverride extends Chain | undefined = undefined,
220
+ chain extends Chain | undefined,
221
+ account extends Account | undefined,
222
+ const request extends PrepareTransactionRequestRequest<chain, chainOverride>,
223
+ accountOverride extends Account | Address | undefined = undefined,
224
+ chainOverride extends Chain | undefined = undefined,
155
225
  >(
156
- client: Client<Transport, TChain, TAccount>,
226
+ client: Client<Transport, chain, account>,
157
227
  args: PrepareTransactionRequestParameters<
158
- TChain,
159
- TAccount,
160
- TChainOverride,
161
- TAccountOverride,
162
- TParameterType
228
+ chain,
229
+ account,
230
+ chainOverride,
231
+ accountOverride,
232
+ request
163
233
  >,
164
234
  ): Promise<
165
235
  PrepareTransactionRequestReturnType<
166
- TChain,
167
- TAccount,
168
- TChainOverride,
169
- TAccountOverride,
170
- TParameterType
236
+ chain,
237
+ account,
238
+ chainOverride,
239
+ accountOverride,
240
+ request
171
241
  >
172
242
  > {
173
243
  const {
174
244
  account: account_ = client.account,
175
245
  chain,
246
+ chainId,
176
247
  gas,
177
248
  nonce,
178
- parameters = ['fees', 'gas', 'nonce', 'type'],
249
+ parameters = ['chainId', 'fees', 'gas', 'nonce', 'type'],
179
250
  type,
180
251
  } = args
181
252
  const account = account_ ? parseAccount(account_) : undefined
@@ -188,6 +259,12 @@ export async function prepareTransactionRequest<
188
259
 
189
260
  const request = { ...args, ...(account ? { from: account?.address } : {}) }
190
261
 
262
+ if (parameters.includes('chainId')) {
263
+ if (chain) request.chainId = chain.id
264
+ else if (typeof chainId !== 'undefined') request.chainId = chainId
265
+ else request.chainId = await getAction(client, getChainId, 'getChainId')({})
266
+ }
267
+
191
268
  if (parameters.includes('nonce') && typeof nonce === 'undefined' && account)
192
269
  request.nonce = await getAction(
193
270
  client,
@@ -214,7 +291,9 @@ export async function prepareTransactionRequest<
214
291
  }
215
292
 
216
293
  if (parameters.includes('fees')) {
217
- if (request.type === 'eip1559') {
294
+ // TODO(4844): derive blob base fees once https://github.com/ethereum/execution-apis/pull/486 is merged.
295
+
296
+ if (request.type === 'eip1559' || request.type === 'eip4844') {
218
297
  // EIP-1559 fees
219
298
  const { maxFeePerGas, maxPriorityFeePerGas } =
220
299
  await internal_estimateFeesPerGas(client, {
@@ -271,11 +350,5 @@ export async function prepareTransactionRequest<
271
350
 
272
351
  delete request.parameters
273
352
 
274
- return request as unknown as PrepareTransactionRequestReturnType<
275
- TChain,
276
- TAccount,
277
- TChainOverride,
278
- TAccountOverride,
279
- TParameterType
280
- >
353
+ return request as any
281
354
  }
@@ -3,14 +3,12 @@ import type { Transport } from '../../clients/transports/createTransport.js'
3
3
  import type { ErrorType } from '../../errors/utils.js'
4
4
  import type { Chain } from '../../types/chain.js'
5
5
  import type { Hash } from '../../types/misc.js'
6
- import type { TransactionSerialized } from '../../types/transaction.js'
6
+ import type { TransactionSerializedGeneric } from '../../types/transaction.js'
7
7
  import type { RequestErrorType } from '../../utils/buildRequest.js'
8
8
 
9
9
  export type SendRawTransactionParameters = {
10
- /**
11
- * The signed serialized tranasction.
12
- */
13
- serializedTransaction: TransactionSerialized
10
+ /** The signed serialized tranasction. */
11
+ serializedTransaction: TransactionSerializedGeneric
14
12
  }
15
13
 
16
14
  export type SendRawTransactionReturnType = Hash
@@ -12,11 +12,9 @@ import type { ErrorType } from '../../errors/utils.js'
12
12
  import type { GetAccountParameter } from '../../types/account.js'
13
13
  import type { Chain, DeriveChain } from '../../types/chain.js'
14
14
  import type { GetChainParameter } from '../../types/chain.js'
15
+ import type { GetTransactionRequestKzgParameter } from '../../types/kzg.js'
15
16
  import type { Hash } from '../../types/misc.js'
16
- import type {
17
- TransactionRequest,
18
- TransactionSerializable,
19
- } from '../../types/transaction.js'
17
+ import type { TransactionRequest } from '../../types/transaction.js'
20
18
  import type { UnionOmit } from '../../types/utils.js'
21
19
  import type { RequestErrorType } from '../../utils/buildRequest.js'
22
20
  import {
@@ -48,15 +46,26 @@ import {
48
46
  sendRawTransaction,
49
47
  } from './sendRawTransaction.js'
50
48
 
51
- export type SendTransactionParameters<
52
- TChain extends Chain | undefined = Chain | undefined,
53
- TAccount extends Account | undefined = Account | undefined,
54
- TChainOverride extends Chain | undefined = Chain | undefined,
49
+ export type SendTransactionRequest<
50
+ chain extends Chain | undefined = Chain | undefined,
51
+ chainOverride extends Chain | undefined = Chain | undefined,
55
52
  ///
56
- derivedChain extends Chain | undefined = DeriveChain<TChain, TChainOverride>,
57
- > = UnionOmit<FormattedTransactionRequest<derivedChain>, 'from'> &
58
- GetAccountParameter<TAccount> &
59
- GetChainParameter<TChain, TChainOverride>
53
+ _derivedChain extends Chain | undefined = DeriveChain<chain, chainOverride>,
54
+ > = UnionOmit<FormattedTransactionRequest<_derivedChain>, 'from'> &
55
+ GetTransactionRequestKzgParameter
56
+
57
+ export type SendTransactionParameters<
58
+ chain extends Chain | undefined = Chain | undefined,
59
+ account extends Account | undefined = Account | undefined,
60
+ chainOverride extends Chain | undefined = Chain | undefined,
61
+ request extends SendTransactionRequest<
62
+ chain,
63
+ chainOverride
64
+ > = SendTransactionRequest<chain, chainOverride>,
65
+ > = request &
66
+ GetAccountParameter<account> &
67
+ GetChainParameter<chain, chainOverride> &
68
+ GetTransactionRequestKzgParameter<request>
60
69
 
61
70
  export type SendTransactionReturnType = Hash
62
71
 
@@ -119,27 +128,30 @@ export type SendTransactionErrorType =
119
128
  * })
120
129
  */
121
130
  export async function sendTransaction<
122
- TChain extends Chain | undefined,
123
- TAccount extends Account | undefined,
124
- TChainOverride extends Chain | undefined = undefined,
131
+ chain extends Chain | undefined,
132
+ account extends Account | undefined,
133
+ const request extends SendTransactionRequest<chain, chainOverride>,
134
+ chainOverride extends Chain | undefined = undefined,
125
135
  >(
126
- client: Client<Transport, TChain, TAccount>,
127
- args: SendTransactionParameters<TChain, TAccount, TChainOverride>,
136
+ client: Client<Transport, chain, account>,
137
+ parameters: SendTransactionParameters<chain, account, chainOverride, request>,
128
138
  ): Promise<SendTransactionReturnType> {
129
139
  const {
130
140
  account: account_ = client.account,
131
141
  chain = client.chain,
132
142
  accessList,
143
+ blobs,
133
144
  data,
134
145
  gas,
135
146
  gasPrice,
147
+ maxFeePerBlobGas,
136
148
  maxFeePerGas,
137
149
  maxPriorityFeePerGas,
138
150
  nonce,
139
151
  to,
140
152
  value,
141
153
  ...rest
142
- } = args
154
+ } = parameters
143
155
 
144
156
  if (!account_)
145
157
  throw new AccountNotFoundError({
@@ -148,7 +160,7 @@ export async function sendTransaction<
148
160
  const account = parseAccount(account_)
149
161
 
150
162
  try {
151
- assertRequest(args as AssertRequestParameters)
163
+ assertRequest(parameters as AssertRequestParameters)
152
164
 
153
165
  let chainId: number | undefined
154
166
  if (chain !== null) {
@@ -168,10 +180,13 @@ export async function sendTransaction<
168
180
  )({
169
181
  account,
170
182
  accessList,
183
+ blobs,
171
184
  chain,
185
+ chainId,
172
186
  data,
173
187
  gas,
174
188
  gasPrice,
189
+ maxFeePerBlobGas,
175
190
  maxFeePerGas,
176
191
  maxPriorityFeePerGas,
177
192
  nonce,
@@ -180,17 +195,10 @@ export async function sendTransaction<
180
195
  ...rest,
181
196
  } as any)
182
197
 
183
- if (!chainId)
184
- chainId = await getAction(client, getChainId, 'getChainId')({})
185
-
186
198
  const serializer = chain?.serializers?.transaction
187
- const serializedTransaction = (await account.signTransaction(
188
- {
189
- ...request,
190
- chainId,
191
- } as TransactionSerializable,
192
- { serializer },
193
- )) as Hash
199
+ const serializedTransaction = (await account.signTransaction(request, {
200
+ serializer,
201
+ })) as Hash
194
202
  return await getAction(
195
203
  client,
196
204
  sendRawTransaction,
@@ -207,10 +215,12 @@ export async function sendTransaction<
207
215
  // Pick out extra data that might exist on the chain's transaction request type.
208
216
  ...extract(rest, { format: chainFormat }),
209
217
  accessList,
218
+ blobs,
210
219
  data,
211
220
  from: account.address,
212
221
  gas,
213
222
  gasPrice,
223
+ maxFeePerBlobGas,
214
224
  maxFeePerGas,
215
225
  maxPriorityFeePerGas,
216
226
  nonce,
@@ -226,9 +236,9 @@ export async function sendTransaction<
226
236
  )
227
237
  } catch (err) {
228
238
  throw getTransactionError(err as BaseError, {
229
- ...args,
239
+ ...parameters,
230
240
  account,
231
- chain: args.chain || undefined,
241
+ chain: parameters.chain || undefined,
232
242
  })
233
243
  }
234
244
  }
@@ -14,6 +14,7 @@ import type {
14
14
  DeriveChain,
15
15
  GetChainParameter,
16
16
  } from '../../types/chain.js'
17
+ import type { GetTransactionRequestKzgParameter } from '../../types/kzg.js'
17
18
  import { type RpcTransactionRequest } from '../../types/rpc.js'
18
19
  import type {
19
20
  TransactionRequest,
@@ -26,28 +27,38 @@ import {
26
27
  type AssertCurrentChainErrorType,
27
28
  assertCurrentChain,
28
29
  } from '../../utils/chain/assertCurrentChain.js'
30
+ import { numberToHex } from '../../utils/encoding/toHex.js'
29
31
  import type { NumberToHexErrorType } from '../../utils/encoding/toHex.js'
30
32
  import {
31
33
  type FormattedTransactionRequest,
32
34
  formatTransactionRequest,
33
35
  } from '../../utils/formatters/transactionRequest.js'
34
36
  import { getAction } from '../../utils/getAction.js'
35
- import { numberToHex } from '../../utils/index.js'
36
37
  import {
37
38
  type AssertRequestErrorType,
38
39
  assertRequest,
39
40
  } from '../../utils/transaction/assertRequest.js'
40
41
  import { type GetChainIdErrorType, getChainId } from '../public/getChainId.js'
41
42
 
42
- export type SignTransactionParameters<
43
- TChain extends Chain | undefined = Chain | undefined,
44
- TAccount extends Account | undefined = Account | undefined,
45
- TChainOverride extends Chain | undefined = Chain | undefined,
43
+ type SignTransactionRequest<
44
+ chain extends Chain | undefined = Chain | undefined,
45
+ chainOverride extends Chain | undefined = Chain | undefined,
46
46
  ///
47
- derivedChain extends Chain | undefined = DeriveChain<TChain, TChainOverride>,
48
- > = UnionOmit<FormattedTransactionRequest<derivedChain>, 'from'> &
49
- GetAccountParameter<TAccount> &
50
- GetChainParameter<TChain, TChainOverride>
47
+ _derivedChain extends Chain | undefined = DeriveChain<chain, chainOverride>,
48
+ > = UnionOmit<FormattedTransactionRequest<_derivedChain>, 'from'>
49
+
50
+ export type SignTransactionParameters<
51
+ chain extends Chain | undefined,
52
+ account extends Account | undefined,
53
+ chainOverride extends Chain | undefined = Chain | undefined,
54
+ request extends SignTransactionRequest<
55
+ chain,
56
+ chainOverride
57
+ > = SignTransactionRequest<chain, chainOverride>,
58
+ > = request &
59
+ GetAccountParameter<account> &
60
+ GetChainParameter<chain, chainOverride> &
61
+ GetTransactionRequestKzgParameter<request>
51
62
 
52
63
  export type SignTransactionReturnType = TransactionSerialized
53
64
 
@@ -105,18 +116,22 @@ export type SignTransactionErrorType =
105
116
  * })
106
117
  */
107
118
  export async function signTransaction<
108
- TChain extends Chain | undefined,
109
- TAccount extends Account | undefined,
110
- TChainOverride extends Chain | undefined = undefined,
119
+ chain extends Chain | undefined,
120
+ account extends Account | undefined,
121
+ chainOverride extends Chain | undefined = undefined,
122
+ const request extends SignTransactionRequest<
123
+ chain,
124
+ chainOverride
125
+ > = SignTransactionRequest<chain, chainOverride>,
111
126
  >(
112
- client: Client<Transport, TChain, TAccount>,
113
- args: SignTransactionParameters<TChain, TAccount, TChainOverride>,
127
+ client: Client<Transport, chain, account>,
128
+ parameters: SignTransactionParameters<chain, account, chainOverride, request>,
114
129
  ): Promise<SignTransactionReturnType> {
115
130
  const {
116
131
  account: account_ = client.account,
117
132
  chain = client.chain,
118
133
  ...transaction
119
- } = args
134
+ } = parameters
120
135
 
121
136
  if (!account_)
122
137
  throw new AccountNotFoundError({
@@ -126,7 +141,7 @@ export async function signTransaction<
126
141
 
127
142
  assertRequest({
128
143
  account,
129
- ...args,
144
+ ...parameters,
130
145
  })
131
146
 
132
147
  const chainId = await getAction(client, getChainId, 'getChainId')({})
@@ -140,14 +155,15 @@ export async function signTransaction<
140
155
  const format =
141
156
  formatters?.transactionRequest?.format || formatTransactionRequest
142
157
 
143
- if (account.type === 'local')
158
+ if (account.type === 'local') {
144
159
  return account.signTransaction(
145
160
  {
146
161
  ...transaction,
147
162
  chainId,
148
- } as unknown as TransactionSerializable,
163
+ } as TransactionSerializable,
149
164
  { serializer: client.chain?.serializers?.transaction },
150
165
  ) as Promise<SignTransactionReturnType>
166
+ }
151
167
 
152
168
  return await client.request(
153
169
  {
@@ -4,16 +4,14 @@ import { InvalidChainIdError } from '../../errors/chain.js'
4
4
  import { FeeCapTooHighError, TipAboveFeeCapError } from '../../errors/node.js'
5
5
  import type { ChainSerializers } from '../../types/chain.js'
6
6
  import type { Signature } from '../../types/misc.js'
7
- import type { TransactionSerializable } from '../../types/transaction.js'
8
7
  import { isAddress } from '../../utils/address/isAddress.js'
9
8
  import { concatHex } from '../../utils/data/concat.js'
10
- import { trim } from '../../utils/data/trim.js'
11
9
  import { toHex } from '../../utils/encoding/toHex.js'
12
10
  import { toRlp } from '../../utils/encoding/toRlp.js'
13
11
  import { serializeAccessList } from '../../utils/transaction/serializeAccessList.js'
14
12
  import {
15
- type SerializeTransactionFn,
16
13
  serializeTransaction as serializeTransaction_,
14
+ toYParitySignatureArray,
17
15
  } from '../../utils/transaction/serializeTransaction.js'
18
16
  import type {
19
17
  CeloTransactionSerializable,
@@ -24,12 +22,15 @@ import type {
24
22
  } from './types.js'
25
23
  import { isCIP42, isCIP64, isEmpty, isPresent } from './utils.js'
26
24
 
27
- export const serializeTransaction: SerializeTransactionFn<
28
- CeloTransactionSerializable | TransactionSerializable
29
- > = (tx, signature) => {
30
- if (isCIP64(tx)) return serializeTransactionCIP64(tx, signature)
31
- if (isCIP42(tx)) return serializeTransactionCIP42(tx, signature)
32
- return serializeTransaction_(tx as TransactionSerializable, signature)
25
+ export function serializeTransaction(
26
+ transaction: CeloTransactionSerializable,
27
+ signature?: Signature,
28
+ ) {
29
+ if (isCIP64(transaction))
30
+ return serializeTransactionCIP64(transaction, signature)
31
+ if (isCIP42(transaction))
32
+ return serializeTransactionCIP42(transaction, signature)
33
+ return serializeTransaction_(transaction, signature)
33
34
  }
34
35
 
35
36
  export const serializers = {
@@ -78,16 +79,9 @@ function serializeTransactionCIP42(
78
79
  value ? toHex(value) : '0x',
79
80
  data ?? '0x',
80
81
  serializeAccessList(accessList),
82
+ ...toYParitySignatureArray(transaction, signature),
81
83
  ]
82
84
 
83
- if (signature) {
84
- serializedTransaction.push(
85
- signature.v === 27n ? '0x' : toHex(1), // yParity
86
- trim(signature.r),
87
- trim(signature.s),
88
- )
89
- }
90
-
91
85
  return concatHex([
92
86
  '0x7c',
93
87
  toRlp(serializedTransaction),
@@ -123,16 +117,9 @@ function serializeTransactionCIP64(
123
117
  data ?? '0x',
124
118
  serializeAccessList(accessList),
125
119
  feeCurrency!,
120
+ ...toYParitySignatureArray(transaction, signature),
126
121
  ]
127
122
 
128
- if (signature) {
129
- serializedTransaction.push(
130
- signature.v === 27n ? '0x' : toHex(1), // yParity
131
- trim(signature.r),
132
- trim(signature.s),
133
- )
134
- }
135
-
136
123
  return concatHex([
137
124
  '0x7b',
138
125
  toRlp(serializedTransaction),
@@ -21,7 +21,7 @@ import type {
21
21
  TransactionSerializableBase,
22
22
  TransactionSerialized,
23
23
  } from '../../types/transaction.js'
24
- import type { NeverBy } from '../../types/utils.js'
24
+ import type { NeverBy, OneOf } from '../../types/utils.js'
25
25
 
26
26
  type CeloBlockExclude =
27
27
  | 'difficulty'
@@ -89,13 +89,14 @@ export type CeloTransactionRequest =
89
89
  | TransactionRequestCIP42
90
90
  | TransactionRequestCIP64
91
91
 
92
- export type CeloTransactionSerializable =
92
+ export type CeloTransactionSerializable = OneOf<
93
+ | TransactionSerializable
93
94
  | TransactionSerializableCIP42
94
95
  | TransactionSerializableCIP64
95
- | CeloTransactionSerializableBase
96
+ >
96
97
 
97
98
  export type CeloTransactionSerialized<
98
- TType extends CeloTransactionType = 'legacy',
99
+ TType extends CeloTransactionType = CeloTransactionType,
99
100
  > =
100
101
  | TransactionSerialized<TType>
101
102
  | TransactionSerializedCIP42
@@ -240,11 +241,5 @@ export type TransactionSerializableCIP64<
240
241
  type?: 'cip64'
241
242
  }
242
243
 
243
- export type CeloTransactionSerializableBase = TransactionSerializable & {
244
- feeCurrency?: undefined
245
- gatewayFee?: undefined
246
- gatewayFeeRecipient?: undefined
247
- }
248
-
249
244
  export type TransactionSerializedCIP42 = `0x7c${string}`
250
245
  export type TransactionSerializedCIP64 = `0x7b${string}`