viem 2.37.10 → 2.37.12

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 (229) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/_cjs/accounts/utils/signTransaction.js +2 -2
  3. package/_cjs/accounts/utils/signTransaction.js.map +1 -1
  4. package/_cjs/actions/public/call.js +1 -1
  5. package/_cjs/actions/public/call.js.map +1 -1
  6. package/_cjs/actions/public/createAccessList.js +1 -1
  7. package/_cjs/actions/public/createAccessList.js.map +1 -1
  8. package/_cjs/actions/public/estimateGas.js +1 -1
  9. package/_cjs/actions/public/estimateGas.js.map +1 -1
  10. package/_cjs/actions/public/getBlock.js +1 -1
  11. package/_cjs/actions/public/getBlock.js.map +1 -1
  12. package/_cjs/actions/public/getTransaction.js +1 -1
  13. package/_cjs/actions/public/getTransaction.js.map +1 -1
  14. package/_cjs/actions/public/getTransactionReceipt.js +1 -1
  15. package/_cjs/actions/public/getTransactionReceipt.js.map +1 -1
  16. package/_cjs/actions/test/sendUnsignedTransaction.js +1 -1
  17. package/_cjs/actions/test/sendUnsignedTransaction.js.map +1 -1
  18. package/_cjs/actions/wallet/sendTransaction.js +1 -1
  19. package/_cjs/actions/wallet/sendTransaction.js.map +1 -1
  20. package/_cjs/actions/wallet/signTransaction.js +1 -1
  21. package/_cjs/actions/wallet/signTransaction.js.map +1 -1
  22. package/_cjs/errors/version.js +1 -1
  23. package/_cjs/linea/actions/estimateGas.js +1 -1
  24. package/_cjs/linea/actions/estimateGas.js.map +1 -1
  25. package/_cjs/utils/formatters/block.js +1 -1
  26. package/_cjs/utils/formatters/block.js.map +1 -1
  27. package/_cjs/utils/formatters/formatter.js +3 -3
  28. package/_cjs/utils/formatters/formatter.js.map +1 -1
  29. package/_cjs/utils/formatters/transaction.js +1 -1
  30. package/_cjs/utils/formatters/transaction.js.map +1 -1
  31. package/_cjs/utils/formatters/transactionReceipt.js +1 -1
  32. package/_cjs/utils/formatters/transactionReceipt.js.map +1 -1
  33. package/_cjs/utils/formatters/transactionRequest.js +1 -1
  34. package/_cjs/utils/formatters/transactionRequest.js.map +1 -1
  35. package/_cjs/utils/transaction/parseTransaction.js +1 -2
  36. package/_cjs/utils/transaction/parseTransaction.js.map +1 -1
  37. package/_cjs/utils/transaction/serializeTransaction.js.map +1 -1
  38. package/_cjs/zksync/actions/estimateFee.js +1 -1
  39. package/_cjs/zksync/actions/estimateFee.js.map +1 -1
  40. package/_cjs/zksync/actions/estimateGasL1ToL2.js +1 -1
  41. package/_cjs/zksync/actions/estimateGasL1ToL2.js.map +1 -1
  42. package/_esm/accounts/utils/signTransaction.js +2 -2
  43. package/_esm/accounts/utils/signTransaction.js.map +1 -1
  44. package/_esm/actions/public/call.js +1 -1
  45. package/_esm/actions/public/call.js.map +1 -1
  46. package/_esm/actions/public/createAccessList.js +1 -1
  47. package/_esm/actions/public/createAccessList.js.map +1 -1
  48. package/_esm/actions/public/estimateGas.js +1 -1
  49. package/_esm/actions/public/estimateGas.js.map +1 -1
  50. package/_esm/actions/public/getBlock.js +1 -1
  51. package/_esm/actions/public/getBlock.js.map +1 -1
  52. package/_esm/actions/public/getTransaction.js +1 -1
  53. package/_esm/actions/public/getTransaction.js.map +1 -1
  54. package/_esm/actions/public/getTransactionReceipt.js +1 -1
  55. package/_esm/actions/public/getTransactionReceipt.js.map +1 -1
  56. package/_esm/actions/test/sendUnsignedTransaction.js +1 -1
  57. package/_esm/actions/test/sendUnsignedTransaction.js.map +1 -1
  58. package/_esm/actions/wallet/sendTransaction.js +1 -1
  59. package/_esm/actions/wallet/sendTransaction.js.map +1 -1
  60. package/_esm/actions/wallet/signTransaction.js +1 -1
  61. package/_esm/actions/wallet/signTransaction.js.map +1 -1
  62. package/_esm/errors/version.js +1 -1
  63. package/_esm/linea/actions/estimateGas.js +1 -1
  64. package/_esm/linea/actions/estimateGas.js.map +1 -1
  65. package/_esm/utils/formatters/block.js +1 -1
  66. package/_esm/utils/formatters/block.js.map +1 -1
  67. package/_esm/utils/formatters/formatter.js +3 -3
  68. package/_esm/utils/formatters/formatter.js.map +1 -1
  69. package/_esm/utils/formatters/transaction.js +1 -1
  70. package/_esm/utils/formatters/transaction.js.map +1 -1
  71. package/_esm/utils/formatters/transactionReceipt.js +1 -1
  72. package/_esm/utils/formatters/transactionReceipt.js.map +1 -1
  73. package/_esm/utils/formatters/transactionRequest.js +1 -1
  74. package/_esm/utils/formatters/transactionRequest.js.map +1 -1
  75. package/_esm/utils/transaction/parseTransaction.js +1 -2
  76. package/_esm/utils/transaction/parseTransaction.js.map +1 -1
  77. package/_esm/utils/transaction/serializeTransaction.js.map +1 -1
  78. package/_esm/zksync/actions/estimateFee.js +1 -1
  79. package/_esm/zksync/actions/estimateFee.js.map +1 -1
  80. package/_esm/zksync/actions/estimateGasL1ToL2.js +1 -1
  81. package/_esm/zksync/actions/estimateGasL1ToL2.js.map +1 -1
  82. package/_types/actions/public/call.d.ts.map +1 -1
  83. package/_types/actions/public/createAccessList.d.ts.map +1 -1
  84. package/_types/actions/public/estimateGas.d.ts.map +1 -1
  85. package/_types/actions/public/getTransactionReceipt.d.ts.map +1 -1
  86. package/_types/actions/test/sendUnsignedTransaction.d.ts.map +1 -1
  87. package/_types/actions/wallet/sendTransaction.d.ts.map +1 -1
  88. package/_types/actions/wallet/signTransaction.d.ts.map +1 -1
  89. package/_types/celo/chainConfig.d.ts +52 -14
  90. package/_types/celo/chainConfig.d.ts.map +1 -1
  91. package/_types/celo/formatters.d.ts +26 -7
  92. package/_types/celo/formatters.d.ts.map +1 -1
  93. package/_types/chains/definitions/abstract.d.ts +26 -7
  94. package/_types/chains/definitions/abstract.d.ts.map +1 -1
  95. package/_types/chains/definitions/abstractTestnet.d.ts +26 -7
  96. package/_types/chains/definitions/abstractTestnet.d.ts.map +1 -1
  97. package/_types/chains/definitions/ancient8.d.ts +3 -3
  98. package/_types/chains/definitions/ancient8Sepolia.d.ts +3 -3
  99. package/_types/chains/definitions/base.d.ts +6 -6
  100. package/_types/chains/definitions/baseGoerli.d.ts +3 -3
  101. package/_types/chains/definitions/baseSepolia.d.ts +6 -6
  102. package/_types/chains/definitions/blast.d.ts +3 -3
  103. package/_types/chains/definitions/bob.d.ts +3 -3
  104. package/_types/chains/definitions/bobSepolia.d.ts +3 -3
  105. package/_types/chains/definitions/celo.d.ts +52 -14
  106. package/_types/chains/definitions/celo.d.ts.map +1 -1
  107. package/_types/chains/definitions/celoAlfajores.d.ts +52 -14
  108. package/_types/chains/definitions/celoAlfajores.d.ts.map +1 -1
  109. package/_types/chains/definitions/celoSepolia.d.ts +52 -14
  110. package/_types/chains/definitions/celoSepolia.d.ts.map +1 -1
  111. package/_types/chains/definitions/dchain.d.ts +3 -3
  112. package/_types/chains/definitions/dchainTestnet.d.ts +3 -3
  113. package/_types/chains/definitions/elysiumTestnet.d.ts +3 -3
  114. package/_types/chains/definitions/fraxtal.d.ts +3 -3
  115. package/_types/chains/definitions/fraxtalTestnet.d.ts +3 -3
  116. package/_types/chains/definitions/funkiMainnet.d.ts +3 -3
  117. package/_types/chains/definitions/funkiSepolia.d.ts +3 -3
  118. package/_types/chains/definitions/garnet.d.ts +3 -3
  119. package/_types/chains/definitions/giwaSepolia.d.ts +3 -3
  120. package/_types/chains/definitions/ink.d.ts +3 -3
  121. package/_types/chains/definitions/inkSepolia.d.ts +3 -3
  122. package/_types/chains/definitions/lisk.d.ts +3 -3
  123. package/_types/chains/definitions/liskSepolia.d.ts +3 -3
  124. package/_types/chains/definitions/metalL2.d.ts +3 -3
  125. package/_types/chains/definitions/mode.d.ts +3 -3
  126. package/_types/chains/definitions/modeTestnet.d.ts +3 -3
  127. package/_types/chains/definitions/optimism.d.ts +3 -3
  128. package/_types/chains/definitions/optimismGoerli.d.ts +3 -3
  129. package/_types/chains/definitions/optimismSepolia.d.ts +3 -3
  130. package/_types/chains/definitions/pgn.d.ts +3 -3
  131. package/_types/chains/definitions/pgnTestnet.d.ts +3 -3
  132. package/_types/chains/definitions/playfiAlbireo.d.ts +26 -7
  133. package/_types/chains/definitions/playfiAlbireo.d.ts.map +1 -1
  134. package/_types/chains/definitions/pyrope.d.ts +3 -3
  135. package/_types/chains/definitions/redstone.d.ts +3 -3
  136. package/_types/chains/definitions/rss3.d.ts +3 -3
  137. package/_types/chains/definitions/rss3Sepolia.d.ts +3 -3
  138. package/_types/chains/definitions/shape.d.ts +3 -3
  139. package/_types/chains/definitions/shapeSepolia.d.ts +3 -3
  140. package/_types/chains/definitions/snax.d.ts +3 -3
  141. package/_types/chains/definitions/snaxTestnet.d.ts +3 -3
  142. package/_types/chains/definitions/soneium.d.ts +3 -3
  143. package/_types/chains/definitions/soneiumMinato.d.ts +3 -3
  144. package/_types/chains/definitions/sophon.d.ts +26 -7
  145. package/_types/chains/definitions/sophon.d.ts.map +1 -1
  146. package/_types/chains/definitions/sophonTestnet.d.ts +26 -7
  147. package/_types/chains/definitions/sophonTestnet.d.ts.map +1 -1
  148. package/_types/chains/definitions/superseed.d.ts +3 -3
  149. package/_types/chains/definitions/superseedSepolia.d.ts +3 -3
  150. package/_types/chains/definitions/swellchain.d.ts +3 -3
  151. package/_types/chains/definitions/swellchainTestnet.d.ts +3 -3
  152. package/_types/chains/definitions/treasure.d.ts +26 -7
  153. package/_types/chains/definitions/treasure.d.ts.map +1 -1
  154. package/_types/chains/definitions/treasureTopaz.d.ts +26 -7
  155. package/_types/chains/definitions/treasureTopaz.d.ts.map +1 -1
  156. package/_types/chains/definitions/unichain.d.ts +3 -3
  157. package/_types/chains/definitions/unichainSepolia.d.ts +3 -3
  158. package/_types/chains/definitions/worldchain.d.ts +3 -3
  159. package/_types/chains/definitions/worldchainSepolia.d.ts +3 -3
  160. package/_types/chains/definitions/zircuit.d.ts +3 -3
  161. package/_types/chains/definitions/zircuitGarfieldTestnet.d.ts +3 -3
  162. package/_types/chains/definitions/zircuitTestnet.d.ts +3 -3
  163. package/_types/chains/definitions/zksync.d.ts +26 -7
  164. package/_types/chains/definitions/zksync.d.ts.map +1 -1
  165. package/_types/chains/definitions/zksyncInMemoryNode.d.ts +26 -7
  166. package/_types/chains/definitions/zksyncInMemoryNode.d.ts.map +1 -1
  167. package/_types/chains/definitions/zksyncLocalCustomHyperchain.d.ts +26 -7
  168. package/_types/chains/definitions/zksyncLocalCustomHyperchain.d.ts.map +1 -1
  169. package/_types/chains/definitions/zksyncLocalHyperchain.d.ts +26 -7
  170. package/_types/chains/definitions/zksyncLocalHyperchain.d.ts.map +1 -1
  171. package/_types/chains/definitions/zksyncLocalNode.d.ts +26 -7
  172. package/_types/chains/definitions/zksyncLocalNode.d.ts.map +1 -1
  173. package/_types/chains/definitions/zksyncSepoliaTestnet.d.ts +26 -7
  174. package/_types/chains/definitions/zksyncSepoliaTestnet.d.ts.map +1 -1
  175. package/_types/chains/definitions/zora.d.ts +3 -3
  176. package/_types/chains/definitions/zoraSepolia.d.ts +3 -3
  177. package/_types/chains/definitions/zoraTestnet.d.ts +3 -3
  178. package/_types/errors/version.d.ts +1 -1
  179. package/_types/linea/actions/estimateGas.d.ts.map +1 -1
  180. package/_types/op-stack/chainConfig.d.ts +3 -3
  181. package/_types/op-stack/formatters.d.ts +3 -3
  182. package/_types/types/chain.d.ts +1 -1
  183. package/_types/types/chain.d.ts.map +1 -1
  184. package/_types/types/transaction.d.ts +9 -6
  185. package/_types/types/transaction.d.ts.map +1 -1
  186. package/_types/utils/formatters/block.d.ts +3 -3
  187. package/_types/utils/formatters/block.d.ts.map +1 -1
  188. package/_types/utils/formatters/formatter.d.ts +3 -3
  189. package/_types/utils/formatters/formatter.d.ts.map +1 -1
  190. package/_types/utils/formatters/transaction.d.ts +4 -4
  191. package/_types/utils/formatters/transaction.d.ts.map +1 -1
  192. package/_types/utils/formatters/transactionReceipt.d.ts +3 -3
  193. package/_types/utils/formatters/transactionReceipt.d.ts.map +1 -1
  194. package/_types/utils/formatters/transactionRequest.d.ts +4 -4
  195. package/_types/utils/formatters/transactionRequest.d.ts.map +1 -1
  196. package/_types/utils/transaction/parseTransaction.d.ts +1 -1
  197. package/_types/utils/transaction/parseTransaction.d.ts.map +1 -1
  198. package/_types/utils/transaction/serializeTransaction.d.ts +2 -2
  199. package/_types/utils/transaction/serializeTransaction.d.ts.map +1 -1
  200. package/_types/zksync/actions/estimateFee.d.ts.map +1 -1
  201. package/_types/zksync/actions/estimateGasL1ToL2.d.ts.map +1 -1
  202. package/_types/zksync/chainConfig.d.ts +26 -7
  203. package/_types/zksync/chainConfig.d.ts.map +1 -1
  204. package/_types/zksync/formatters.d.ts +26 -7
  205. package/_types/zksync/formatters.d.ts.map +1 -1
  206. package/accounts/utils/signTransaction.ts +5 -5
  207. package/actions/public/call.ts +20 -17
  208. package/actions/public/createAccessList.ts +17 -14
  209. package/actions/public/estimateGas.ts +21 -18
  210. package/actions/public/getBlock.ts +1 -1
  211. package/actions/public/getTransaction.ts +1 -1
  212. package/actions/public/getTransactionReceipt.ts +4 -1
  213. package/actions/test/sendUnsignedTransaction.ts +17 -14
  214. package/actions/wallet/sendTransaction.ts +22 -19
  215. package/actions/wallet/signTransaction.ts +4 -1
  216. package/errors/version.ts +1 -1
  217. package/linea/actions/estimateGas.ts +17 -14
  218. package/package.json +1 -1
  219. package/types/chain.ts +1 -1
  220. package/types/transaction.ts +18 -8
  221. package/utils/formatters/block.ts +4 -1
  222. package/utils/formatters/formatter.ts +8 -5
  223. package/utils/formatters/transaction.ts +4 -1
  224. package/utils/formatters/transactionReceipt.ts +1 -0
  225. package/utils/formatters/transactionRequest.ts +1 -0
  226. package/utils/transaction/parseTransaction.ts +4 -2
  227. package/utils/transaction/serializeTransaction.ts +9 -4
  228. package/zksync/actions/estimateFee.ts +7 -4
  229. package/zksync/actions/estimateGasL1ToL2.ts +7 -4
@@ -128,5 +128,5 @@ export async function getBlock<
128
128
  if (!block) throw new BlockNotFoundError({ blockHash, blockNumber })
129
129
 
130
130
  const format = client.chain?.formatters?.block?.format || formatBlock
131
- return format(block)
131
+ return format(block, 'getBlock')
132
132
  }
@@ -148,5 +148,5 @@ export async function getTransaction<
148
148
 
149
149
  const format =
150
150
  client.chain?.formatters?.transaction?.format || formatTransaction
151
- return format(transaction)
151
+ return format(transaction, 'getTransaction')
152
152
  }
@@ -68,5 +68,8 @@ export async function getTransactionReceipt<chain extends Chain | undefined>(
68
68
  const format =
69
69
  client.chain?.formatters?.transactionReceipt?.format ||
70
70
  formatTransactionReceipt
71
- return format(receipt) as GetTransactionReceiptReturnType<chain>
71
+ return format(
72
+ receipt,
73
+ 'getTransactionReceipt',
74
+ ) as GetTransactionReceiptReturnType<chain>
72
75
  }
@@ -72,20 +72,23 @@ export async function sendUnsignedTransaction<
72
72
  const chainFormat = client.chain?.formatters?.transactionRequest?.format
73
73
  const format = chainFormat || formatTransactionRequest
74
74
 
75
- const request = format({
76
- // Pick out extra data that might exist on the chain's transaction request type.
77
- ...extract(rest, { format: chainFormat }),
78
- accessList,
79
- data,
80
- from,
81
- gas,
82
- gasPrice,
83
- maxFeePerGas,
84
- maxPriorityFeePerGas,
85
- nonce,
86
- to,
87
- value,
88
- } as TransactionRequest)
75
+ const request = format(
76
+ {
77
+ // Pick out extra data that might exist on the chain's transaction request type.
78
+ ...extract(rest, { format: chainFormat }),
79
+ accessList,
80
+ data,
81
+ from,
82
+ gas,
83
+ gasPrice,
84
+ maxFeePerGas,
85
+ maxPriorityFeePerGas,
86
+ nonce,
87
+ to,
88
+ value,
89
+ } as TransactionRequest,
90
+ 'sendUnsignedTransaction',
91
+ )
89
92
  const hash = await client.request({
90
93
  method: 'eth_sendUnsignedTransaction',
91
94
  params: [request],
@@ -219,25 +219,28 @@ export async function sendTransaction<
219
219
  const chainFormat = client.chain?.formatters?.transactionRequest?.format
220
220
  const format = chainFormat || formatTransactionRequest
221
221
 
222
- const request = format({
223
- // Pick out extra data that might exist on the chain's transaction request type.
224
- ...extract(rest, { format: chainFormat }),
225
- accessList,
226
- authorizationList,
227
- blobs,
228
- chainId,
229
- data,
230
- from: account?.address,
231
- gas,
232
- gasPrice,
233
- maxFeePerBlobGas,
234
- maxFeePerGas,
235
- maxPriorityFeePerGas,
236
- nonce,
237
- to,
238
- type,
239
- value,
240
- } as TransactionRequest)
222
+ const request = format(
223
+ {
224
+ // Pick out extra data that might exist on the chain's transaction request type.
225
+ ...extract(rest, { format: chainFormat }),
226
+ accessList,
227
+ authorizationList,
228
+ blobs,
229
+ chainId,
230
+ data,
231
+ from: account?.address,
232
+ gas,
233
+ gasPrice,
234
+ maxFeePerBlobGas,
235
+ maxFeePerGas,
236
+ maxPriorityFeePerGas,
237
+ nonce,
238
+ to,
239
+ type,
240
+ value,
241
+ } as TransactionRequest,
242
+ 'sendTransaction',
243
+ )
241
244
 
242
245
  const isWalletNamespaceSupported = supportsWalletNamespace.get(client.uid)
243
246
  const method = isWalletNamespaceSupported
@@ -172,7 +172,10 @@ export async function signTransaction<
172
172
  method: 'eth_signTransaction',
173
173
  params: [
174
174
  {
175
- ...format(transaction as unknown as TransactionRequest),
175
+ ...format(
176
+ transaction as unknown as TransactionRequest,
177
+ 'signTransaction',
178
+ ),
176
179
  chainId: numberToHex(chainId),
177
180
  from: account.address,
178
181
  } as unknown as RpcTransactionRequest,
package/errors/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = '2.37.10'
1
+ export const version = '2.37.12'
@@ -89,20 +89,23 @@ export async function estimateGas<
89
89
  const chainFormat = client.chain?.formatters?.transactionRequest?.format
90
90
  const format = chainFormat || formatTransactionRequest
91
91
 
92
- const request = format({
93
- // Pick out extra data that might exist on the chain's transaction request type.
94
- ...extract(rest, { format: chainFormat }),
95
- from: account?.address,
96
- accessList,
97
- data,
98
- gas,
99
- gasPrice,
100
- maxFeePerGas,
101
- maxPriorityFeePerGas,
102
- nonce,
103
- to,
104
- value,
105
- } as TransactionRequest)
92
+ const request = format(
93
+ {
94
+ // Pick out extra data that might exist on the chain's transaction request type.
95
+ ...extract(rest, { format: chainFormat }),
96
+ from: account?.address,
97
+ accessList,
98
+ data,
99
+ gas,
100
+ gasPrice,
101
+ maxFeePerGas,
102
+ maxPriorityFeePerGas,
103
+ nonce,
104
+ to,
105
+ value,
106
+ } as TransactionRequest,
107
+ 'estimateGas',
108
+ )
106
109
 
107
110
  type LineaEstimateGasSchema = Filter<
108
111
  LineaRpcSchema,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "viem",
3
3
  "description": "TypeScript Interface for Ethereum",
4
- "version": "2.37.10",
4
+ "version": "2.37.12",
5
5
  "main": "./_cjs/index.js",
6
6
  "module": "./_esm/index.js",
7
7
  "types": "./_types/index.d.ts",
package/types/chain.ts CHANGED
@@ -185,7 +185,7 @@ export type ChainFormatters = {
185
185
  }
186
186
 
187
187
  export type ChainFormatter<type extends string = string> = {
188
- format: (args: any) => any
188
+ format: (args: any, action?: string | undefined) => any
189
189
  type: type
190
190
  }
191
191
 
@@ -259,14 +259,20 @@ export type TransactionRequestEIP4844<
259
259
  index = number,
260
260
  type = 'eip4844',
261
261
  > = RequiredBy<TransactionRequestBase<quantity, index, type>, 'to'> &
262
- RequiredBy<ExactPartial<FeeValuesEIP4844<quantity>>, 'maxFeePerBlobGas'> & {
262
+ ExactPartial<FeeValuesEIP4844<quantity>> & {
263
263
  accessList?: AccessList | undefined
264
- /** The blobs associated with this transaction. */
265
- blobs: readonly Hex[] | readonly ByteArray[]
266
- blobVersionedHashes?: readonly Hex[] | undefined
267
- kzg?: Kzg | undefined
268
264
  sidecars?: readonly BlobSidecar<Hex>[] | undefined
269
- }
265
+ } & OneOf<
266
+ | {
267
+ blobs?: readonly Hex[] | readonly ByteArray[] | undefined
268
+ blobVersionedHashes: readonly Hex[]
269
+ }
270
+ | {
271
+ blobs: readonly Hex[] | readonly ByteArray[]
272
+ blobVersionedHashes?: readonly Hex[] | undefined
273
+ kzg?: Kzg | undefined
274
+ }
275
+ >
270
276
 
271
277
  export type TransactionRequestEIP7702<
272
278
  quantity = bigint,
@@ -360,11 +366,15 @@ export type TransactionSerializableEIP1559<
360
366
  export type TransactionSerializableEIP4844<
361
367
  quantity = bigint,
362
368
  index = number,
363
- > = TransactionSerializableBase<quantity, index> &
369
+ nullableSidecars extends boolean = boolean,
370
+ > = RequiredBy<TransactionSerializableBase<quantity, index>, 'to'> &
364
371
  ExactPartial<FeeValuesEIP4844<quantity>> & {
365
372
  accessList?: AccessList | undefined
366
373
  chainId: number
367
- sidecars?: readonly BlobSidecar<Hex>[] | false | undefined
374
+ sidecars?:
375
+ | readonly BlobSidecar<Hex>[]
376
+ | (nullableSidecars extends true ? false : never)
377
+ | undefined
368
378
  type?: 'eip4844' | undefined
369
379
  yParity?: number | undefined
370
380
  } & OneOf<
@@ -40,7 +40,10 @@ export type FormattedBlock<
40
40
 
41
41
  export type FormatBlockErrorType = ErrorType
42
42
 
43
- export function formatBlock(block: ExactPartial<RpcBlock>) {
43
+ export function formatBlock(
44
+ block: ExactPartial<RpcBlock>,
45
+ _?: string | undefined,
46
+ ) {
44
47
  const transactions = (block.transactions ?? []).map((transaction) => {
45
48
  if (typeof transaction === 'string') return transaction
46
49
  return formatTransaction(transaction)
@@ -5,7 +5,7 @@ export type DefineFormatterErrorType = ErrorType
5
5
 
6
6
  export function defineFormatter<type extends string, parameters, returnType>(
7
7
  type: type,
8
- format: (_: parameters) => returnType,
8
+ format: (args: parameters, action?: string | undefined) => returnType,
9
9
  ) {
10
10
  return <
11
11
  parametersOverride,
@@ -16,12 +16,15 @@ export function defineFormatter<type extends string, parameters, returnType>(
16
16
  format: overrides,
17
17
  }: {
18
18
  exclude?: exclude | undefined
19
- format: (_: parametersOverride) => returnTypeOverride
19
+ format: (
20
+ args: parametersOverride,
21
+ action?: string | undefined,
22
+ ) => returnTypeOverride
20
23
  }) => {
21
24
  return {
22
25
  exclude,
23
- format: (args: parametersOverride) => {
24
- const formatted = format(args as any)
26
+ format: (args: parametersOverride, action?: string | undefined) => {
27
+ const formatted = format(args as any, action)
25
28
  if (exclude) {
26
29
  for (const key of exclude) {
27
30
  delete (formatted as any)[key]
@@ -29,7 +32,7 @@ export function defineFormatter<type extends string, parameters, returnType>(
29
32
  }
30
33
  return {
31
34
  ...formatted,
32
- ...overrides(args),
35
+ ...overrides(args, action),
33
36
  } as Prettify<returnTypeOverride> & {
34
37
  [_key in exclude[number]]: never
35
38
  }
@@ -45,7 +45,10 @@ export const transactionType = {
45
45
 
46
46
  export type FormatTransactionErrorType = ErrorType
47
47
 
48
- export function formatTransaction(transaction: ExactPartial<RpcTransaction>) {
48
+ export function formatTransaction(
49
+ transaction: ExactPartial<RpcTransaction>,
50
+ _?: string | undefined,
51
+ ) {
49
52
  const transaction_ = {
50
53
  ...transaction,
51
54
  blockHash: transaction.blockHash ? transaction.blockHash : null,
@@ -29,6 +29,7 @@ export type FormatTransactionReceiptErrorType = ErrorType
29
29
 
30
30
  export function formatTransactionReceipt(
31
31
  transactionReceipt: ExactPartial<RpcTransactionReceipt>,
32
+ _?: string | undefined,
32
33
  ) {
33
34
  const receipt = {
34
35
  ...transactionReceipt,
@@ -34,6 +34,7 @@ export type FormatTransactionRequestErrorType = ErrorType
34
34
 
35
35
  export function formatTransactionRequest(
36
36
  request: ExactPartial<TransactionRequest>,
37
+ _?: string | undefined,
37
38
  ) {
38
39
  const rpcRequest = {} as RpcTransactionRequest
39
40
 
@@ -73,7 +73,9 @@ export type ParseTransactionReturnType<
73
73
  ?
74
74
  | (type extends 'eip1559' ? TransactionSerializableEIP1559 : never)
75
75
  | (type extends 'eip2930' ? TransactionSerializableEIP2930 : never)
76
- | (type extends 'eip4844' ? TransactionSerializableEIP4844 : never)
76
+ | (type extends 'eip4844'
77
+ ? TransactionSerializableEIP4844<bigint, number, false>
78
+ : never)
77
79
  | (type extends 'eip7702' ? TransactionSerializableEIP7702 : never)
78
80
  | (type extends 'legacy' ? TransactionSerializableLegacy : never)
79
81
  : TransactionSerializable
@@ -276,9 +278,9 @@ function parseTransactionEIP4844(
276
278
  const transaction = {
277
279
  blobVersionedHashes: blobVersionedHashes as Hex[],
278
280
  chainId: hexToNumber(chainId as Hex),
281
+ to,
279
282
  type: 'eip4844',
280
283
  } as TransactionSerializableEIP4844
281
- if (isHex(to) && to !== '0x') transaction.to = to
282
284
  if (isHex(gas) && gas !== '0x') transaction.gas = hexToBigInt(gas)
283
285
  if (isHex(data) && data !== '0x') transaction.data = data
284
286
  if (isHex(nonce)) transaction.nonce = nonce === '0x' ? 0 : hexToNumber(nonce)
@@ -25,7 +25,7 @@ import type {
25
25
  TransactionSerializedLegacy,
26
26
  TransactionType,
27
27
  } from '../../types/transaction.js'
28
- import type { OneOf } from '../../types/utils.js'
28
+ import type { MaybePromise, OneOf } from '../../types/utils.js'
29
29
  import {
30
30
  type SerializeAuthorizationListErrorType,
31
31
  serializeAuthorizationList,
@@ -87,9 +87,14 @@ export type SerializeTransactionFn<
87
87
  transaction extends TransactionSerializableGeneric = TransactionSerializable,
88
88
  ///
89
89
  _transactionType extends TransactionType = never,
90
- > = typeof serializeTransaction<
91
- OneOf<TransactionSerializable | transaction>,
92
- _transactionType
90
+ > = (
91
+ transaction: OneOf<TransactionSerializable | transaction>,
92
+ signature?: Signature | undefined,
93
+ ) => MaybePromise<
94
+ SerializedTransactionReturnType<
95
+ OneOf<TransactionSerializable | transaction>,
96
+ _transactionType
97
+ >
93
98
  >
94
99
 
95
100
  export type SerializeTransactionErrorType =
@@ -27,10 +27,13 @@ export async function estimateFee<
27
27
  const account = account_ ? parseAccount(account_) : client.account
28
28
 
29
29
  const formatters = client.chain?.formatters
30
- const formatted = formatters?.transactionRequest?.format({
31
- ...request,
32
- from: account?.address,
33
- })
30
+ const formatted = formatters?.transactionRequest?.format(
31
+ {
32
+ ...request,
33
+ from: account?.address,
34
+ },
35
+ 'estimateFee',
36
+ )
34
37
 
35
38
  const result = await client.request({
36
39
  method: 'zks_estimateFee',
@@ -24,10 +24,13 @@ export async function estimateGasL1ToL2<
24
24
  const account = account_ ? parseAccount(account_) : client.account
25
25
 
26
26
  const formatters = client.chain?.formatters
27
- const formatted = formatters?.transactionRequest?.format({
28
- ...request,
29
- from: account?.address,
30
- })
27
+ const formatted = formatters?.transactionRequest?.format(
28
+ {
29
+ ...request,
30
+ from: account?.address,
31
+ },
32
+ 'estimateGasL1ToL2',
33
+ )
31
34
 
32
35
  const result = await client.request({
33
36
  method: 'zks_estimateGasL1ToL2',