hardhat 2.19.5 → 2.20.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 (275) hide show
  1. package/builtin-tasks/node.js +3 -3
  2. package/builtin-tasks/node.js.map +1 -1
  3. package/internal/cli/analytics.d.ts.map +1 -1
  4. package/internal/cli/analytics.js +2 -1
  5. package/internal/cli/analytics.js.map +1 -1
  6. package/internal/cli/project-creation.d.ts +1 -1
  7. package/internal/cli/project-creation.js +1 -1
  8. package/internal/constants.d.ts.map +1 -1
  9. package/internal/constants.js +1 -0
  10. package/internal/constants.js.map +1 -1
  11. package/internal/core/config/config-resolution.d.ts.map +1 -1
  12. package/internal/core/config/config-resolution.js +8 -0
  13. package/internal/core/config/config-resolution.js.map +1 -1
  14. package/internal/core/config/config-validation.d.ts.map +1 -1
  15. package/internal/core/config/config-validation.js +10 -0
  16. package/internal/core/config/config-validation.js.map +1 -1
  17. package/internal/core/config/default-config.d.ts.map +1 -1
  18. package/internal/core/config/default-config.js +11 -0
  19. package/internal/core/config/default-config.js.map +1 -1
  20. package/internal/core/jsonrpc/types/base-types.d.ts +1 -1
  21. package/internal/core/jsonrpc/types/base-types.d.ts.map +1 -1
  22. package/internal/core/jsonrpc/types/base-types.js +7 -5
  23. package/internal/core/jsonrpc/types/base-types.js.map +1 -1
  24. package/internal/core/jsonrpc/types/input/callRequest.d.ts +2 -0
  25. package/internal/core/jsonrpc/types/input/callRequest.d.ts.map +1 -1
  26. package/internal/core/jsonrpc/types/input/callRequest.js +2 -0
  27. package/internal/core/jsonrpc/types/input/callRequest.js.map +1 -1
  28. package/internal/core/jsonrpc/types/input/transactionRequest.d.ts +4 -0
  29. package/internal/core/jsonrpc/types/input/transactionRequest.d.ts.map +1 -1
  30. package/internal/core/jsonrpc/types/input/transactionRequest.js +2 -0
  31. package/internal/core/jsonrpc/types/input/transactionRequest.js.map +1 -1
  32. package/internal/core/jsonrpc/types/output/block.d.ts +6 -0
  33. package/internal/core/jsonrpc/types/output/block.d.ts.map +1 -1
  34. package/internal/core/jsonrpc/types/output/block.js +3 -0
  35. package/internal/core/jsonrpc/types/output/block.js.map +1 -1
  36. package/internal/core/providers/accounts.d.ts.map +1 -1
  37. package/internal/core/providers/accounts.js +10 -10
  38. package/internal/core/providers/accounts.js.map +1 -1
  39. package/internal/core/providers/util.js +2 -2
  40. package/internal/core/providers/util.js.map +1 -1
  41. package/internal/hardhat-network/jsonrpc/client.d.ts +3 -3
  42. package/internal/hardhat-network/jsonrpc/client.d.ts.map +1 -1
  43. package/internal/hardhat-network/jsonrpc/client.js +9 -9
  44. package/internal/hardhat-network/jsonrpc/client.js.map +1 -1
  45. package/internal/hardhat-network/provider/BlockchainData.d.ts +5 -5
  46. package/internal/hardhat-network/provider/BlockchainData.d.ts.map +1 -1
  47. package/internal/hardhat-network/provider/BlockchainData.js +10 -10
  48. package/internal/hardhat-network/provider/BlockchainData.js.map +1 -1
  49. package/internal/hardhat-network/provider/HardhatBlockchain.d.ts +7 -0
  50. package/internal/hardhat-network/provider/HardhatBlockchain.d.ts.map +1 -1
  51. package/internal/hardhat-network/provider/HardhatBlockchain.js +14 -2
  52. package/internal/hardhat-network/provider/HardhatBlockchain.js.map +1 -1
  53. package/internal/hardhat-network/provider/TxPool.d.ts +2 -3
  54. package/internal/hardhat-network/provider/TxPool.d.ts.map +1 -1
  55. package/internal/hardhat-network/provider/TxPool.js +16 -16
  56. package/internal/hardhat-network/provider/TxPool.js.map +1 -1
  57. package/internal/hardhat-network/provider/ethereumjs-workarounds.js +1 -1
  58. package/internal/hardhat-network/provider/ethereumjs-workarounds.js.map +1 -1
  59. package/internal/hardhat-network/provider/filter.d.ts +5 -6
  60. package/internal/hardhat-network/provider/filter.d.ts.map +1 -1
  61. package/internal/hardhat-network/provider/filter.js +2 -2
  62. package/internal/hardhat-network/provider/filter.js.map +1 -1
  63. package/internal/hardhat-network/provider/fork/ForkBlockchain.d.ts +7 -0
  64. package/internal/hardhat-network/provider/fork/ForkBlockchain.d.ts.map +1 -1
  65. package/internal/hardhat-network/provider/fork/ForkBlockchain.js +21 -4
  66. package/internal/hardhat-network/provider/fork/ForkBlockchain.js.map +1 -1
  67. package/internal/hardhat-network/provider/fork/ForkStateManager.d.ts +16 -9
  68. package/internal/hardhat-network/provider/fork/ForkStateManager.d.ts.map +1 -1
  69. package/internal/hardhat-network/provider/fork/ForkStateManager.js +42 -25
  70. package/internal/hardhat-network/provider/fork/ForkStateManager.js.map +1 -1
  71. package/internal/hardhat-network/provider/fork/rpcToBlockData.d.ts.map +1 -1
  72. package/internal/hardhat-network/provider/fork/rpcToBlockData.js +3 -0
  73. package/internal/hardhat-network/provider/fork/rpcToBlockData.js.map +1 -1
  74. package/internal/hardhat-network/provider/fork/rpcToTxData.d.ts +2 -2
  75. package/internal/hardhat-network/provider/fork/rpcToTxData.d.ts.map +1 -1
  76. package/internal/hardhat-network/provider/modules/base.js +4 -4
  77. package/internal/hardhat-network/provider/modules/base.js.map +1 -1
  78. package/internal/hardhat-network/provider/modules/eth.d.ts.map +1 -1
  79. package/internal/hardhat-network/provider/modules/eth.js +16 -9
  80. package/internal/hardhat-network/provider/modules/eth.js.map +1 -1
  81. package/internal/hardhat-network/provider/modules/logger.d.ts +1 -1
  82. package/internal/hardhat-network/provider/modules/logger.d.ts.map +1 -1
  83. package/internal/hardhat-network/provider/modules/logger.js +17 -17
  84. package/internal/hardhat-network/provider/modules/logger.js.map +1 -1
  85. package/internal/hardhat-network/provider/node-types.d.ts +17 -13
  86. package/internal/hardhat-network/provider/node-types.d.ts.map +1 -1
  87. package/internal/hardhat-network/provider/node.d.ts +6 -2
  88. package/internal/hardhat-network/provider/node.d.ts.map +1 -1
  89. package/internal/hardhat-network/provider/node.js +148 -79
  90. package/internal/hardhat-network/provider/node.js.map +1 -1
  91. package/internal/hardhat-network/provider/output.d.ts +3 -0
  92. package/internal/hardhat-network/provider/output.d.ts.map +1 -1
  93. package/internal/hardhat-network/provider/output.js +23 -9
  94. package/internal/hardhat-network/provider/output.js.map +1 -1
  95. package/internal/hardhat-network/provider/return-data.d.ts +3 -4
  96. package/internal/hardhat-network/provider/return-data.d.ts.map +1 -1
  97. package/internal/hardhat-network/provider/return-data.js +4 -3
  98. package/internal/hardhat-network/provider/return-data.js.map +1 -1
  99. package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.d.ts +8 -10
  100. package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.d.ts.map +1 -1
  101. package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.js +9 -9
  102. package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.js.map +1 -1
  103. package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.d.ts +8 -10
  104. package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.d.ts.map +1 -1
  105. package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.js +9 -9
  106. package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.js.map +1 -1
  107. package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.d.ts +9 -10
  108. package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.d.ts.map +1 -1
  109. package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.js +6 -7
  110. package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.js.map +1 -1
  111. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.d.ts +5 -6
  112. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.d.ts.map +1 -1
  113. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.js +1 -1
  114. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.js.map +1 -1
  115. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.d.ts +4 -5
  116. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.d.ts.map +1 -1
  117. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.js +1 -1
  118. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.js.map +1 -1
  119. package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.d.ts +7 -8
  120. package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.d.ts.map +1 -1
  121. package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.js +2 -2
  122. package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.js.map +1 -1
  123. package/internal/hardhat-network/provider/transactions/ReadOnlyValidUnknownTypeTransaction.d.ts +7 -8
  124. package/internal/hardhat-network/provider/transactions/ReadOnlyValidUnknownTypeTransaction.d.ts.map +1 -1
  125. package/internal/hardhat-network/provider/transactions/ReadOnlyValidUnknownTypeTransaction.js +2 -2
  126. package/internal/hardhat-network/provider/transactions/ReadOnlyValidUnknownTypeTransaction.js.map +1 -1
  127. package/internal/hardhat-network/provider/types/HardhatBlockchainInterface.d.ts +4 -5
  128. package/internal/hardhat-network/provider/types/HardhatBlockchainInterface.d.ts.map +1 -1
  129. package/internal/hardhat-network/provider/utils/makeAccount.js +1 -1
  130. package/internal/hardhat-network/provider/utils/makeAccount.js.map +1 -1
  131. package/internal/hardhat-network/provider/utils/makeCommon.d.ts.map +1 -1
  132. package/internal/hardhat-network/provider/utils/makeCommon.js +5 -3
  133. package/internal/hardhat-network/provider/utils/makeCommon.js.map +1 -1
  134. package/internal/hardhat-network/provider/utils/makeFakeSignature.d.ts +2 -2
  135. package/internal/hardhat-network/provider/utils/makeFakeSignature.d.ts.map +1 -1
  136. package/internal/hardhat-network/provider/utils/makeFakeSignature.js +15 -1
  137. package/internal/hardhat-network/provider/utils/makeFakeSignature.js.map +1 -1
  138. package/internal/hardhat-network/provider/utils/makeStateTrie.js +2 -2
  139. package/internal/hardhat-network/provider/utils/makeStateTrie.js.map +1 -1
  140. package/internal/hardhat-network/provider/utils/putGenesisBlock.d.ts +1 -3
  141. package/internal/hardhat-network/provider/utils/putGenesisBlock.d.ts.map +1 -1
  142. package/internal/hardhat-network/provider/utils/putGenesisBlock.js +6 -2
  143. package/internal/hardhat-network/provider/utils/putGenesisBlock.js.map +1 -1
  144. package/internal/hardhat-network/provider/utils/random.d.ts +3 -3
  145. package/internal/hardhat-network/provider/utils/random.d.ts.map +1 -1
  146. package/internal/hardhat-network/provider/utils/random.js +2 -2
  147. package/internal/hardhat-network/provider/utils/random.js.map +1 -1
  148. package/internal/hardhat-network/stack-traces/consoleLogger.js +42 -44
  149. package/internal/hardhat-network/stack-traces/consoleLogger.js.map +1 -1
  150. package/internal/hardhat-network/stack-traces/constants.d.ts +1 -1
  151. package/internal/hardhat-network/stack-traces/constants.js +1 -1
  152. package/internal/hardhat-network/stack-traces/contracts-identifier.js +1 -1
  153. package/internal/hardhat-network/stack-traces/contracts-identifier.js.map +1 -1
  154. package/internal/hardhat-network/stack-traces/debug.js +12 -12
  155. package/internal/hardhat-network/stack-traces/debug.js.map +1 -1
  156. package/internal/hardhat-network/stack-traces/error-inferrer.d.ts.map +1 -1
  157. package/internal/hardhat-network/stack-traces/error-inferrer.js +5 -4
  158. package/internal/hardhat-network/stack-traces/error-inferrer.js.map +1 -1
  159. package/internal/hardhat-network/stack-traces/library-utils.d.ts +4 -4
  160. package/internal/hardhat-network/stack-traces/library-utils.d.ts.map +1 -1
  161. package/internal/hardhat-network/stack-traces/library-utils.js.map +1 -1
  162. package/internal/hardhat-network/stack-traces/message-trace.d.ts +8 -9
  163. package/internal/hardhat-network/stack-traces/message-trace.d.ts.map +1 -1
  164. package/internal/hardhat-network/stack-traces/model.d.ts +5 -5
  165. package/internal/hardhat-network/stack-traces/model.d.ts.map +1 -1
  166. package/internal/hardhat-network/stack-traces/model.js +5 -5
  167. package/internal/hardhat-network/stack-traces/model.js.map +1 -1
  168. package/internal/hardhat-network/stack-traces/solidity-errors.d.ts.map +1 -1
  169. package/internal/hardhat-network/stack-traces/solidity-errors.js +3 -3
  170. package/internal/hardhat-network/stack-traces/solidity-errors.js.map +1 -1
  171. package/internal/hardhat-network/stack-traces/solidity-stack-trace.d.ts +2 -3
  172. package/internal/hardhat-network/stack-traces/solidity-stack-trace.d.ts.map +1 -1
  173. package/internal/hardhat-network/stack-traces/solidityTracer.d.ts.map +1 -1
  174. package/internal/hardhat-network/stack-traces/solidityTracer.js +3 -2
  175. package/internal/hardhat-network/stack-traces/solidityTracer.js.map +1 -1
  176. package/internal/hardhat-network/stack-traces/vm-debug-tracer.d.ts.map +1 -1
  177. package/internal/hardhat-network/stack-traces/vm-debug-tracer.js +34 -28
  178. package/internal/hardhat-network/stack-traces/vm-debug-tracer.js.map +1 -1
  179. package/internal/hardhat-network/stack-traces/vm-tracer.d.ts +1 -2
  180. package/internal/hardhat-network/stack-traces/vm-tracer.d.ts.map +1 -1
  181. package/internal/hardhat-network/stack-traces/vm-tracer.js +9 -9
  182. package/internal/hardhat-network/stack-traces/vm-tracer.js.map +1 -1
  183. package/internal/solidity/compiler/downloader.d.ts.map +1 -1
  184. package/internal/solidity/compiler/downloader.js +2 -2
  185. package/internal/solidity/compiler/downloader.js.map +1 -1
  186. package/internal/solidity/compiler/solc-info.d.ts.map +1 -1
  187. package/internal/solidity/compiler/solc-info.js +1 -0
  188. package/internal/solidity/compiler/solc-info.js.map +1 -1
  189. package/internal/util/abi-helpers.d.ts +2 -3
  190. package/internal/util/abi-helpers.d.ts.map +1 -1
  191. package/internal/util/abi-helpers.js.map +1 -1
  192. package/internal/util/bigint.d.ts +1 -2
  193. package/internal/util/bigint.d.ts.map +1 -1
  194. package/internal/util/bigint.js +2 -2
  195. package/internal/util/bigint.js.map +1 -1
  196. package/internal/util/hardforks.d.ts +2 -1
  197. package/internal/util/hardforks.d.ts.map +1 -1
  198. package/internal/util/hardforks.js +2 -0
  199. package/internal/util/hardforks.js.map +1 -1
  200. package/internal/util/keccak.d.ts +1 -2
  201. package/internal/util/keccak.d.ts.map +1 -1
  202. package/internal/util/keccak.js +1 -1
  203. package/internal/util/keccak.js.map +1 -1
  204. package/package.json +12 -11
  205. package/sample-projects/javascript/contracts/Lock.sol +1 -1
  206. package/sample-projects/javascript/hardhat.config.js +1 -1
  207. package/sample-projects/javascript-esm/contracts/Lock.sol +1 -1
  208. package/sample-projects/javascript-esm/hardhat.config.cjs +1 -1
  209. package/sample-projects/typescript/contracts/Lock.sol +1 -1
  210. package/sample-projects/typescript/hardhat.config.ts +1 -1
  211. package/sample-projects/typescript-viem/contracts/Lock.sol +1 -1
  212. package/sample-projects/typescript-viem/hardhat.config.ts +1 -1
  213. package/src/builtin-tasks/node.ts +8 -4
  214. package/src/internal/cli/analytics.ts +4 -1
  215. package/src/internal/cli/project-creation.ts +1 -1
  216. package/src/internal/constants.ts +1 -0
  217. package/src/internal/core/config/config-resolution.ts +13 -0
  218. package/src/internal/core/config/config-validation.ts +19 -0
  219. package/src/internal/core/config/default-config.ts +11 -0
  220. package/src/internal/core/jsonrpc/types/base-types.ts +12 -7
  221. package/src/internal/core/jsonrpc/types/input/callRequest.ts +3 -0
  222. package/src/internal/core/jsonrpc/types/input/transactionRequest.ts +5 -1
  223. package/src/internal/core/jsonrpc/types/output/block.ts +3 -0
  224. package/src/internal/core/providers/accounts.ts +24 -13
  225. package/src/internal/core/providers/util.ts +2 -2
  226. package/src/internal/hardhat-network/jsonrpc/client.ts +7 -4
  227. package/src/internal/hardhat-network/provider/BlockchainData.ts +6 -6
  228. package/src/internal/hardhat-network/provider/HardhatBlockchain.ts +28 -3
  229. package/src/internal/hardhat-network/provider/TxPool.ts +19 -16
  230. package/src/internal/hardhat-network/provider/ethereumjs-workarounds.ts +4 -5
  231. package/src/internal/hardhat-network/provider/filter.ts +11 -8
  232. package/src/internal/hardhat-network/provider/fork/ForkBlockchain.ts +40 -7
  233. package/src/internal/hardhat-network/provider/fork/ForkStateManager.ts +79 -39
  234. package/src/internal/hardhat-network/provider/fork/rpcToBlockData.ts +3 -0
  235. package/src/internal/hardhat-network/provider/fork/rpcToTxData.ts +2 -2
  236. package/src/internal/hardhat-network/provider/modules/base.ts +5 -5
  237. package/src/internal/hardhat-network/provider/modules/eth.ts +40 -14
  238. package/src/internal/hardhat-network/provider/modules/logger.ts +17 -14
  239. package/src/internal/hardhat-network/provider/node-types.ts +19 -12
  240. package/src/internal/hardhat-network/provider/node.ts +210 -86
  241. package/src/internal/hardhat-network/provider/output.ts +35 -8
  242. package/src/internal/hardhat-network/provider/return-data.ts +6 -5
  243. package/src/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.ts +24 -25
  244. package/src/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.ts +24 -25
  245. package/src/internal/hardhat-network/provider/transactions/FakeSenderTransaction.ts +27 -16
  246. package/src/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.ts +7 -8
  247. package/src/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.ts +6 -5
  248. package/src/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.ts +15 -8
  249. package/src/internal/hardhat-network/provider/transactions/ReadOnlyValidUnknownTypeTransaction.ts +15 -8
  250. package/src/internal/hardhat-network/provider/types/HardhatBlockchainInterface.ts +4 -4
  251. package/src/internal/hardhat-network/provider/utils/makeAccount.ts +2 -2
  252. package/src/internal/hardhat-network/provider/utils/makeCommon.ts +9 -3
  253. package/src/internal/hardhat-network/provider/utils/makeFakeSignature.ts +21 -7
  254. package/src/internal/hardhat-network/provider/utils/makeStateTrie.ts +3 -3
  255. package/src/internal/hardhat-network/provider/utils/putGenesisBlock.ts +10 -5
  256. package/src/internal/hardhat-network/provider/utils/random.ts +5 -5
  257. package/src/internal/hardhat-network/stack-traces/consoleLogger.ts +13 -13
  258. package/src/internal/hardhat-network/stack-traces/constants.ts +1 -1
  259. package/src/internal/hardhat-network/stack-traces/contracts-identifier.ts +4 -4
  260. package/src/internal/hardhat-network/stack-traces/debug.ts +1 -1
  261. package/src/internal/hardhat-network/stack-traces/error-inferrer.ts +6 -5
  262. package/src/internal/hardhat-network/stack-traces/library-utils.ts +6 -6
  263. package/src/internal/hardhat-network/stack-traces/message-trace.ts +8 -8
  264. package/src/internal/hardhat-network/stack-traces/model.ts +5 -5
  265. package/src/internal/hardhat-network/stack-traces/solidity-errors.ts +4 -2
  266. package/src/internal/hardhat-network/stack-traces/solidity-stack-trace.ts +2 -2
  267. package/src/internal/hardhat-network/stack-traces/solidityTracer.ts +3 -2
  268. package/src/internal/hardhat-network/stack-traces/vm-debug-tracer.ts +49 -38
  269. package/src/internal/hardhat-network/stack-traces/vm-tracer.ts +15 -13
  270. package/src/internal/solidity/compiler/downloader.ts +3 -2
  271. package/src/internal/solidity/compiler/solc-info.ts +1 -0
  272. package/src/internal/util/abi-helpers.ts +2 -2
  273. package/src/internal/util/bigint.ts +4 -4
  274. package/src/internal/util/hardforks.ts +2 -0
  275. package/src/internal/util/keccak.ts +2 -2
@@ -1,7 +1,7 @@
1
1
  import { Block } from "@nomicfoundation/ethereumjs-block";
2
2
  import { Common } from "@nomicfoundation/ethereumjs-common";
3
3
  import { TypedTransaction } from "@nomicfoundation/ethereumjs-tx";
4
- import { bufferToHex } from "@nomicfoundation/ethereumjs-util";
4
+ import { bytesToHex as bufferToHex } from "@nomicfoundation/ethereumjs-util";
5
5
  import { RunBlockResult } from "@nomicfoundation/ethereumjs-vm";
6
6
 
7
7
  import * as BigIntUtils from "../../util/bigint";
@@ -42,6 +42,11 @@ export interface RpcBlockOutput {
42
42
  baseFeePerGas?: string;
43
43
  withdrawals?: RpcWithdrawalItem[];
44
44
  withdrawalsRoot?: string;
45
+
46
+ // Only present after Cancun hard-fork
47
+ parentBeaconBlockRoot?: string | null;
48
+ blobGasUsed?: string | null;
49
+ excessBlobGas?: string | null;
45
50
  }
46
51
 
47
52
  export type RpcTransactionOutput =
@@ -184,7 +189,7 @@ export function getRpcBlock(
184
189
  transactionsRoot: bufferToRpcData(block.header.transactionsTrie),
185
190
  stateRoot: bufferToRpcData(block.header.stateRoot),
186
191
  receiptsRoot: bufferToRpcData(block.header.receiptTrie),
187
- miner: bufferToRpcData(block.header.coinbase.toBuffer()),
192
+ miner: bufferToRpcData(block.header.coinbase.toBytes()),
188
193
  difficulty: numberToRpcQuantity(block.header.difficulty),
189
194
  totalDifficulty: numberToRpcQuantity(totalDifficulty),
190
195
  extraData: bufferToRpcData(block.header.extraData),
@@ -204,16 +209,38 @@ export function getRpcBlock(
204
209
  output.withdrawals = block.withdrawals?.map((withdrawal) => ({
205
210
  index: numberToRpcQuantity(withdrawal.index),
206
211
  validatorIndex: numberToRpcQuantity(withdrawal.validatorIndex),
207
- address: bufferToRpcData(withdrawal.address.toBuffer()),
212
+ address: bufferToRpcData(withdrawal.address.toBytes()),
208
213
  amount: numberToRpcQuantity(withdrawal.amount),
209
214
  }));
210
215
 
211
216
  output.withdrawalsRoot = bufferToRpcData(block.header.withdrawalsRoot);
212
217
  }
213
218
 
219
+ addCancunPropertiesIfPresent(output, block, pending);
220
+
214
221
  return output;
215
222
  }
216
223
 
224
+ function addCancunPropertiesIfPresent(
225
+ output: RpcBlockOutput,
226
+ block: Block,
227
+ pending: boolean
228
+ ) {
229
+ if (block.header.parentBeaconBlockRoot !== undefined) {
230
+ output.parentBeaconBlockRoot = pending
231
+ ? null
232
+ : bufferToRpcData(block.header.parentBeaconBlockRoot, 32);
233
+ }
234
+
235
+ if (block.header.blobGasUsed !== undefined) {
236
+ output.blobGasUsed = numberToRpcQuantity(block.header.blobGasUsed);
237
+ }
238
+
239
+ if (block.header.excessBlobGas !== undefined) {
240
+ output.excessBlobGas = numberToRpcQuantity(block.header.excessBlobGas);
241
+ }
242
+ }
243
+
217
244
  export function getRpcTransaction(
218
245
  tx: TypedTransaction,
219
246
  showTransactionType: boolean,
@@ -245,12 +272,12 @@ export function getRpcTransaction(
245
272
  blockHash: block === "pending" ? null : bufferToRpcData(block.hash()),
246
273
  blockNumber:
247
274
  block === "pending" ? null : numberToRpcQuantity(block.header.number),
248
- from: bufferToRpcData(tx.getSenderAddress().toBuffer()),
275
+ from: bufferToRpcData(tx.getSenderAddress().toBytes()),
249
276
  gas: numberToRpcQuantity(tx.gasLimit),
250
277
  hash: bufferToRpcData(tx.hash()),
251
278
  input: bufferToRpcData(tx.data),
252
279
  nonce: numberToRpcQuantity(tx.nonce),
253
- to: tx.to === undefined ? null : bufferToRpcData(tx.to.toBuffer()),
280
+ to: tx.to === undefined ? null : bufferToRpcData(tx.to.toBytes()),
254
281
  transactionIndex: index !== undefined ? numberToRpcQuantity(index) : null,
255
282
  value: numberToRpcQuantity(tx.value),
256
283
  v: numberToRpcQuantity(tx.v),
@@ -329,13 +356,13 @@ export function getRpcReceiptOutputsFromLocalBlockExecution(
329
356
  transactionIndex: numberToRpcQuantity(i),
330
357
  blockHash: bufferToRpcData(block.hash()),
331
358
  blockNumber: numberToRpcQuantity(block.header.number),
332
- from: bufferToRpcData(tx.getSenderAddress().toBuffer()),
333
- to: tx.to === undefined ? null : bufferToRpcData(tx.to.toBuffer()),
359
+ from: bufferToRpcData(tx.getSenderAddress().toBytes()),
360
+ to: tx.to === undefined ? null : bufferToRpcData(tx.to.toBytes()),
334
361
  cumulativeGasUsed: numberToRpcQuantity(receipt.cumulativeBlockGasUsed),
335
362
  gasUsed: numberToRpcQuantity(totalGasSpent),
336
363
  contractAddress:
337
364
  createdAddress !== undefined
338
- ? bufferToRpcData(createdAddress.toBuffer())
365
+ ? bufferToRpcData(createdAddress.toBytes())
339
366
  : null,
340
367
  logs,
341
368
  logsBloom: bufferToRpcData(receipt.bitvector),
@@ -1,3 +1,4 @@
1
+ import { bytesToBigInt } from "@nomicfoundation/ethereumjs-util";
1
2
  import { assertHardhatInvariant } from "../../core/errors";
2
3
 
3
4
  const { rawDecode } = require("ethereumjs-abi");
@@ -13,9 +14,9 @@ const PANIC_SELECTOR = "4e487b71";
13
14
  export class ReturnData {
14
15
  private _selector: string | undefined;
15
16
 
16
- constructor(public value: Buffer) {
17
+ constructor(public value: Uint8Array) {
17
18
  if (value.length >= 4) {
18
- this._selector = value.slice(0, 4).toString("hex");
19
+ this._selector = Buffer.from(value.slice(0, 4)).toString("hex");
19
20
  }
20
21
  }
21
22
 
@@ -23,12 +24,12 @@ export class ReturnData {
23
24
  return this.value.length === 0;
24
25
  }
25
26
 
26
- public matchesSelector(selector: Buffer): boolean {
27
+ public matchesSelector(selector: Uint8Array): boolean {
27
28
  if (this._selector === undefined) {
28
29
  return false;
29
30
  }
30
31
 
31
- return this._selector === selector.toString("hex");
32
+ return this._selector === Buffer.from(selector).toString("hex");
32
33
  }
33
34
 
34
35
  public isErrorReturnData(): boolean {
@@ -63,7 +64,7 @@ export class ReturnData {
63
64
  );
64
65
 
65
66
  // we are assuming that panic codes are smaller than Number.MAX_SAFE_INTEGER
66
- const errorCode = BigInt(`0x${this.value.slice(4).toString("hex")}`);
67
+ const errorCode = bytesToBigInt(this.value.slice(4));
67
68
 
68
69
  return errorCode;
69
70
  }
@@ -1,16 +1,13 @@
1
1
  import { Common } from "@nomicfoundation/ethereumjs-common";
2
2
  import * as rlp from "@nomicfoundation/ethereumjs-rlp";
3
- import { AccessListEIP2930Transaction } from "@nomicfoundation/ethereumjs-tx";
4
3
  import {
4
+ AccessListEIP2930Transaction,
5
5
  AccessListEIP2930TxData,
6
- AccessListEIP2930ValuesArray,
6
+ TransactionType,
7
7
  TxOptions,
8
- } from "@nomicfoundation/ethereumjs-tx/dist/types";
9
- import {
10
- Address,
11
- arrToBufArr,
12
- bufferToInt,
13
- } from "@nomicfoundation/ethereumjs-util";
8
+ TxValuesArray,
9
+ } from "@nomicfoundation/ethereumjs-tx";
10
+ import { Address, bytesToInt } from "@nomicfoundation/ethereumjs-util";
14
11
 
15
12
  import {
16
13
  InternalError,
@@ -34,7 +31,7 @@ export class FakeSenderAccessListEIP2930Transaction extends AccessListEIP2930Tra
34
31
  }
35
32
 
36
33
  public static fromSerializedTx(
37
- _serialized: Buffer,
34
+ _serialized: Uint8Array,
38
35
  _opts?: TxOptions
39
36
  ): never {
40
37
  throw new InternalError(
@@ -43,7 +40,7 @@ export class FakeSenderAccessListEIP2930Transaction extends AccessListEIP2930Tra
43
40
  }
44
41
 
45
42
  public static fromRlpSerializedTx(
46
- _serialized: Buffer,
43
+ _serialized: Uint8Array,
47
44
  _opts?: TxOptions
48
45
  ): never {
49
46
  throw new InternalError(
@@ -52,7 +49,7 @@ export class FakeSenderAccessListEIP2930Transaction extends AccessListEIP2930Tra
52
49
  }
53
50
 
54
51
  public static fromValuesArray(
55
- _values: AccessListEIP2930ValuesArray,
52
+ _values: TxValuesArray[TransactionType.AccessListEIP2930],
56
53
  _opts?: TxOptions
57
54
  ): never {
58
55
  throw new InternalError(
@@ -62,7 +59,7 @@ export class FakeSenderAccessListEIP2930Transaction extends AccessListEIP2930Tra
62
59
 
63
60
  public static fromSenderAndRlpSerializedTx(
64
61
  sender: Address,
65
- serialized: Buffer,
62
+ serialized: Uint8Array,
66
63
  opts?: TxOptions
67
64
  ) {
68
65
  if (serialized[0] !== 1) {
@@ -71,7 +68,7 @@ export class FakeSenderAccessListEIP2930Transaction extends AccessListEIP2930Tra
71
68
  );
72
69
  }
73
70
 
74
- const values = arrToBufArr(rlp.decode(serialized.slice(1)));
71
+ const values = rlp.decode(serialized.slice(1));
75
72
 
76
73
  checkIsAccessListEIP2930ValuesArray(values);
77
74
 
@@ -80,7 +77,7 @@ export class FakeSenderAccessListEIP2930Transaction extends AccessListEIP2930Tra
80
77
 
81
78
  public static fromSenderAndValuesArray(
82
79
  sender: Address,
83
- values: AccessListEIP2930ValuesArray,
80
+ values: TxValuesArray[TransactionType.AccessListEIP2930],
84
81
  opts: TxOptions = {}
85
82
  ): FakeSenderAccessListEIP2930Transaction {
86
83
  const [
@@ -106,11 +103,11 @@ export class FakeSenderAccessListEIP2930Transaction extends AccessListEIP2930Tra
106
103
  gasLimit,
107
104
  to: to !== undefined && to.length > 0 ? to : undefined,
108
105
  value,
109
- data: data ?? Buffer.from([]),
106
+ data: data ?? Uint8Array.from([]),
110
107
  accessList: accessList ?? [],
111
- v: v !== undefined ? bufferToInt(v) : undefined, // EIP2930 supports v's with value 0 (empty Buffer)
112
- r: r !== undefined && r.length !== 0 ? bufferToInt(r) : undefined,
113
- s: s !== undefined && s.length !== 0 ? bufferToInt(s) : undefined,
108
+ v: v !== undefined ? bytesToInt(v) : undefined, // EIP2930 supports v's with value 0 (empty Buffer)
109
+ r: r !== undefined && r.length !== 0 ? bytesToInt(r) : undefined,
110
+ s: s !== undefined && s.length !== 0 ? bytesToInt(s) : undefined,
114
111
  },
115
112
  opts
116
113
  );
@@ -134,7 +131,7 @@ export class FakeSenderAccessListEIP2930Transaction extends AccessListEIP2930Tra
134
131
  r: data.r ?? fakeSignature.r,
135
132
  s: data.s ?? fakeSignature.s,
136
133
  },
137
- { ...opts, freeze: false, disableMaxInitCodeSizeCheck: true }
134
+ { ...opts, freeze: false, allowUnlimitedInitCodeSize: true }
138
135
  );
139
136
 
140
137
  this.common = this._getCommon(opts?.common);
@@ -155,13 +152,13 @@ export class FakeSenderAccessListEIP2930Transaction extends AccessListEIP2930Tra
155
152
  );
156
153
  }
157
154
 
158
- public _processSignature(_v: bigint, _r: Buffer, _s: Buffer): never {
155
+ public _processSignature(_v: bigint, _r: Uint8Array, _s: Uint8Array): never {
159
156
  throw new InternalError(
160
157
  "`_processSignature` is not implemented in FakeSenderAccessListEIP2930Transaction"
161
158
  );
162
159
  }
163
160
 
164
- public sign(_privateKey: Buffer): never {
161
+ public sign(_privateKey: Uint8Array): never {
165
162
  throw new InternalError(
166
163
  "`sign` is not implemented in FakeSenderAccessListEIP2930Transaction"
167
164
  );
@@ -192,10 +189,12 @@ export class FakeSenderAccessListEIP2930Transaction extends AccessListEIP2930Tra
192
189
 
193
190
  function checkIsAccessListEIP2930ValuesArray(
194
191
  values: unknown
195
- ): asserts values is AccessListEIP2930ValuesArray {
192
+ ): asserts values is TxValuesArray[TransactionType.AccessListEIP2930] {
196
193
  if (!Array.isArray(values)) {
197
194
  throw new InvalidArgumentsError(
198
- `Invalid deserialized tx. Expected a Buffer[], but got '${values as any}'`
195
+ `Invalid deserialized tx. Expected a Uint8Array[], but got '${
196
+ values as any
197
+ }'`
199
198
  );
200
199
  }
201
200
 
@@ -217,9 +216,9 @@ function checkIsAccessListEIP2930ValuesArray(
217
216
  );
218
217
  }
219
218
  } else {
220
- if (!Buffer.isBuffer(values[i])) {
219
+ if (!(values[i] instanceof Uint8Array)) {
221
220
  throw new InvalidArgumentsError(
222
- `Invalid deserialized tx. Expected a Buffer in position ${i}, but got '${value}'`
221
+ `Invalid deserialized tx. Expected a Uint8Array in position ${i}, but got '${value}'`
223
222
  );
224
223
  }
225
224
  }
@@ -1,15 +1,12 @@
1
1
  import * as rlp from "@nomicfoundation/ethereumjs-rlp";
2
- import { FeeMarketEIP1559Transaction } from "@nomicfoundation/ethereumjs-tx";
3
2
  import {
3
+ FeeMarketEIP1559Transaction,
4
4
  FeeMarketEIP1559TxData,
5
- FeeMarketEIP1559ValuesArray,
5
+ TransactionType,
6
6
  TxOptions,
7
- } from "@nomicfoundation/ethereumjs-tx/dist/types";
8
- import {
9
- Address,
10
- arrToBufArr,
11
- bufferToInt,
12
- } from "@nomicfoundation/ethereumjs-util";
7
+ TxValuesArray,
8
+ } from "@nomicfoundation/ethereumjs-tx";
9
+ import { Address, bytesToInt } from "@nomicfoundation/ethereumjs-util";
13
10
 
14
11
  import {
15
12
  InternalError,
@@ -33,7 +30,7 @@ export class FakeSenderEIP1559Transaction extends FeeMarketEIP1559Transaction {
33
30
  }
34
31
 
35
32
  public static fromSerializedTx(
36
- _serialized: Buffer,
33
+ _serialized: Uint8Array,
37
34
  _opts?: TxOptions
38
35
  ): never {
39
36
  throw new InternalError(
@@ -42,7 +39,7 @@ export class FakeSenderEIP1559Transaction extends FeeMarketEIP1559Transaction {
42
39
  }
43
40
 
44
41
  public static fromRlpSerializedTx(
45
- _serialized: Buffer,
42
+ _serialized: Uint8Array,
46
43
  _opts?: TxOptions
47
44
  ): never {
48
45
  throw new InternalError(
@@ -51,7 +48,7 @@ export class FakeSenderEIP1559Transaction extends FeeMarketEIP1559Transaction {
51
48
  }
52
49
 
53
50
  public static fromValuesArray(
54
- _values: FeeMarketEIP1559ValuesArray,
51
+ _values: TxValuesArray[TransactionType.FeeMarketEIP1559],
55
52
  _opts?: TxOptions
56
53
  ): never {
57
54
  throw new InternalError(
@@ -61,7 +58,7 @@ export class FakeSenderEIP1559Transaction extends FeeMarketEIP1559Transaction {
61
58
 
62
59
  public static fromSenderAndRlpSerializedTx(
63
60
  sender: Address,
64
- serialized: Buffer,
61
+ serialized: Uint8Array,
65
62
  opts?: TxOptions
66
63
  ) {
67
64
  if (serialized[0] !== 2) {
@@ -70,7 +67,7 @@ export class FakeSenderEIP1559Transaction extends FeeMarketEIP1559Transaction {
70
67
  );
71
68
  }
72
69
 
73
- const values = arrToBufArr(rlp.decode(serialized.slice(1)));
70
+ const values = rlp.decode(serialized.slice(1));
74
71
 
75
72
  checkIsFeeMarketEIP1559ValuesArray(values);
76
73
 
@@ -79,7 +76,7 @@ export class FakeSenderEIP1559Transaction extends FeeMarketEIP1559Transaction {
79
76
 
80
77
  public static fromSenderAndValuesArray(
81
78
  sender: Address,
82
- values: FeeMarketEIP1559ValuesArray,
79
+ values: TxValuesArray[TransactionType.FeeMarketEIP1559],
83
80
  opts: TxOptions = {}
84
81
  ): FakeSenderEIP1559Transaction {
85
82
  const [
@@ -107,11 +104,11 @@ export class FakeSenderEIP1559Transaction extends FeeMarketEIP1559Transaction {
107
104
  gasLimit,
108
105
  to: to !== undefined && to.length > 0 ? to : undefined,
109
106
  value,
110
- data: data ?? Buffer.from([]),
107
+ data: data ?? Uint8Array.from([]),
111
108
  accessList: accessList ?? [],
112
- v: v !== undefined ? bufferToInt(v) : undefined, // EIP1559 supports v's with value 0 (empty Buffer)
113
- r: r !== undefined && r.length !== 0 ? bufferToInt(r) : undefined,
114
- s: s !== undefined && s.length !== 0 ? bufferToInt(s) : undefined,
109
+ v: v !== undefined ? bytesToInt(v) : undefined, // EIP1559 supports v's with value 0 (empty Buffer)
110
+ r: r !== undefined && r.length !== 0 ? bytesToInt(r) : undefined,
111
+ s: s !== undefined && s.length !== 0 ? bytesToInt(s) : undefined,
115
112
  },
116
113
  opts
117
114
  );
@@ -133,7 +130,7 @@ export class FakeSenderEIP1559Transaction extends FeeMarketEIP1559Transaction {
133
130
  r: data.r ?? fakeSignature.r,
134
131
  s: data.s ?? fakeSignature.s,
135
132
  },
136
- { ...opts, freeze: false, disableMaxInitCodeSizeCheck: true }
133
+ { ...opts, freeze: false, allowUnlimitedInitCodeSize: true }
137
134
  );
138
135
 
139
136
  this._sender = sender;
@@ -153,13 +150,13 @@ export class FakeSenderEIP1559Transaction extends FeeMarketEIP1559Transaction {
153
150
  );
154
151
  }
155
152
 
156
- public _processSignature(_v: bigint, _r: Buffer, _s: Buffer): never {
153
+ public _processSignature(_v: bigint, _r: Uint8Array, _s: Uint8Array): never {
157
154
  throw new InternalError(
158
155
  "`_processSignature` is not implemented in FakeSenderEIP1559Transaction"
159
156
  );
160
157
  }
161
158
 
162
- public sign(_privateKey: Buffer): never {
159
+ public sign(_privateKey: Uint8Array): never {
163
160
  throw new InternalError(
164
161
  "`sign` is not implemented in FakeSenderEIP1559Transaction"
165
162
  );
@@ -190,10 +187,12 @@ export class FakeSenderEIP1559Transaction extends FeeMarketEIP1559Transaction {
190
187
 
191
188
  function checkIsFeeMarketEIP1559ValuesArray(
192
189
  values: unknown
193
- ): asserts values is FeeMarketEIP1559ValuesArray {
190
+ ): asserts values is TxValuesArray[TransactionType.FeeMarketEIP1559] {
194
191
  if (!Array.isArray(values)) {
195
192
  throw new InvalidArgumentsError(
196
- `Invalid deserialized tx. Expected a Buffer[], but got '${values as any}'`
193
+ `Invalid deserialized tx. Expected a Uint8Array[], but got '${
194
+ values as any
195
+ }'`
197
196
  );
198
197
  }
199
198
 
@@ -215,9 +214,9 @@ function checkIsFeeMarketEIP1559ValuesArray(
215
214
  );
216
215
  }
217
216
  } else {
218
- if (!Buffer.isBuffer(values[i])) {
217
+ if (!(values[i] instanceof Uint8Array)) {
219
218
  throw new InvalidArgumentsError(
220
- `Invalid deserialized tx. Expected a Buffer in position ${i}, but got '${value}'`
219
+ `Invalid deserialized tx. Expected a Uint8Array in position ${i}, but got '${value}'`
221
220
  );
222
221
  }
223
222
  }
@@ -1,7 +1,11 @@
1
1
  import { Common } from "@nomicfoundation/ethereumjs-common";
2
2
  import * as rlp from "@nomicfoundation/ethereumjs-rlp";
3
- import { Transaction, TxData, TxOptions } from "@nomicfoundation/ethereumjs-tx";
4
- import { Address, arrToBufArr } from "@nomicfoundation/ethereumjs-util";
3
+ import {
4
+ LegacyTransaction,
5
+ LegacyTxData,
6
+ TxOptions,
7
+ } from "@nomicfoundation/ethereumjs-tx";
8
+ import { Address } from "@nomicfoundation/ethereumjs-util";
5
9
 
6
10
  import {
7
11
  InternalError,
@@ -20,15 +24,15 @@ import { makeFakeSignature } from "../utils/makeFakeSignature";
20
24
  * The sender's private key is never recovered from the signature. Instead,
21
25
  * the sender's address is received as parameter.
22
26
  */
23
- export class FakeSenderTransaction extends Transaction {
24
- public static fromTxData(_txData: TxData, _opts?: TxOptions): never {
27
+ export class FakeSenderTransaction extends LegacyTransaction {
28
+ public static fromTxData(_txData: LegacyTxData, _opts?: TxOptions): never {
25
29
  throw new InternalError(
26
30
  "`fromTxData` is not implemented in FakeSenderTransaction"
27
31
  );
28
32
  }
29
33
 
30
34
  public static fromSerializedTx(
31
- _serialized: Buffer,
35
+ _serialized: Uint8Array,
32
36
  _opts?: TxOptions
33
37
  ): never {
34
38
  throw new InternalError(
@@ -37,7 +41,7 @@ export class FakeSenderTransaction extends Transaction {
37
41
  }
38
42
 
39
43
  public static fromRlpSerializedTx(
40
- _serialized: Buffer,
44
+ _serialized: Uint8Array,
41
45
  _opts?: TxOptions
42
46
  ): never {
43
47
  throw new InternalError(
@@ -45,7 +49,10 @@ export class FakeSenderTransaction extends Transaction {
45
49
  );
46
50
  }
47
51
 
48
- public static fromValuesArray(_values: Buffer[], _opts?: TxOptions): never {
52
+ public static fromValuesArray(
53
+ _values: Uint8Array[],
54
+ _opts?: TxOptions
55
+ ): never {
49
56
  throw new InternalError(
50
57
  "`fromRlpSerializedTx` is not implemented in FakeSenderTransaction"
51
58
  );
@@ -53,10 +60,10 @@ export class FakeSenderTransaction extends Transaction {
53
60
 
54
61
  public static fromSenderAndRlpSerializedTx(
55
62
  sender: Address,
56
- serialized: Buffer,
63
+ serialized: Uint8Array,
57
64
  opts?: TxOptions
58
65
  ) {
59
- const values = arrToBufArr(rlp.decode(serialized));
66
+ const values = rlp.decode(serialized);
60
67
 
61
68
  checkIsFlatBufferArray(values);
62
69
 
@@ -65,7 +72,7 @@ export class FakeSenderTransaction extends Transaction {
65
72
 
66
73
  public static fromSenderAndValuesArray(
67
74
  sender: Address,
68
- values: Buffer[],
75
+ values: Uint8Array[],
69
76
  opts?: TxOptions
70
77
  ) {
71
78
  if (values.length !== 6 && values.length !== 9) {
@@ -97,7 +104,7 @@ export class FakeSenderTransaction extends Transaction {
97
104
 
98
105
  private readonly _sender: Address;
99
106
 
100
- constructor(sender: Address, data: TxData = {}, opts?: TxOptions) {
107
+ constructor(sender: Address, data: LegacyTxData = {}, opts?: TxOptions) {
101
108
  const fakeSignature = makeFakeSignature(data, sender);
102
109
 
103
110
  super(
@@ -107,7 +114,7 @@ export class FakeSenderTransaction extends Transaction {
107
114
  r: data.r ?? fakeSignature.r,
108
115
  s: data.s ?? fakeSignature.s,
109
116
  },
110
- { ...opts, freeze: false, disableMaxInitCodeSizeCheck: true }
117
+ { ...opts, freeze: false, allowUnlimitedInitCodeSize: true }
111
118
  );
112
119
 
113
120
  this.common = this._getCommon(opts?.common);
@@ -188,17 +195,21 @@ FakeSenderTransactionPrototype._processSignature = function () {
188
195
  );
189
196
  };
190
197
 
191
- function checkIsFlatBufferArray(values: unknown): asserts values is Buffer[] {
198
+ function checkIsFlatBufferArray(
199
+ values: unknown
200
+ ): asserts values is Uint8Array[] {
192
201
  if (!Array.isArray(values)) {
193
202
  throw new InvalidArgumentsError(
194
- `Invalid deserialized tx. Expected a Buffer[], but got '${values as any}'`
203
+ `Invalid deserialized tx. Expected a Uint8Array[], but got '${
204
+ values as any
205
+ }'`
195
206
  );
196
207
  }
197
208
 
198
209
  for (const [i, value] of values.entries()) {
199
- if (!Buffer.isBuffer(value)) {
210
+ if (!(value instanceof Uint8Array)) {
200
211
  throw new InvalidArgumentsError(
201
- `Invalid deserialized tx. Expected a Buffer in position ${i}, but got '${value}'`
212
+ `Invalid deserialized tx. Expected a Uint8Array in position ${i}, but got '${value}'`
202
213
  );
203
214
  }
204
215
  }
@@ -1,14 +1,13 @@
1
1
  import { Common } from "@nomicfoundation/ethereumjs-common";
2
2
  import {
3
3
  FeeMarketEIP1559Transaction,
4
+ TransactionType,
4
5
  TxOptions,
6
+ TxValuesArray,
5
7
  } from "@nomicfoundation/ethereumjs-tx";
6
8
  import { Address } from "@nomicfoundation/ethereumjs-util";
7
9
 
8
- import {
9
- FeeMarketEIP1559TxData,
10
- FeeMarketEIP1559ValuesArray,
11
- } from "@nomicfoundation/ethereumjs-tx/src/types";
10
+ import { FeeMarketEIP1559TxData } from "@nomicfoundation/ethereumjs-tx/src/types";
12
11
  import { InternalError } from "../../../core/providers/errors";
13
12
  import * as BigIntUtils from "../../../util/bigint";
14
13
 
@@ -28,7 +27,7 @@ export class ReadOnlyValidEIP1559Transaction extends FeeMarketEIP1559Transaction
28
27
  }
29
28
 
30
29
  public static fromSerializedTx(
31
- _serialized: Buffer,
30
+ _serialized: Uint8Array,
32
31
  _opts?: TxOptions
33
32
  ): never {
34
33
  throw new InternalError(
@@ -37,7 +36,7 @@ export class ReadOnlyValidEIP1559Transaction extends FeeMarketEIP1559Transaction
37
36
  }
38
37
 
39
38
  public static fromRlpSerializedTx(
40
- _serialized: Buffer,
39
+ _serialized: Uint8Array,
41
40
  _opts?: TxOptions
42
41
  ): never {
43
42
  throw new InternalError(
@@ -46,7 +45,7 @@ export class ReadOnlyValidEIP1559Transaction extends FeeMarketEIP1559Transaction
46
45
  }
47
46
 
48
47
  public static fromValuesArray(
49
- _values: FeeMarketEIP1559ValuesArray,
48
+ _values: TxValuesArray[TransactionType.FeeMarketEIP1559],
50
49
  _opts?: TxOptions
51
50
  ): never {
52
51
  throw new InternalError(
@@ -70,7 +69,7 @@ export class ReadOnlyValidEIP1559Transaction extends FeeMarketEIP1559Transaction
70
69
 
71
70
  super(data, {
72
71
  freeze: false,
73
- disableMaxInitCodeSizeCheck: true,
72
+ allowUnlimitedInitCodeSize: true,
74
73
  common: fakeCommon,
75
74
  });
76
75
 
@@ -2,8 +2,9 @@ import { Common } from "@nomicfoundation/ethereumjs-common";
2
2
  import {
3
3
  AccessListEIP2930Transaction,
4
4
  AccessListEIP2930TxData,
5
- AccessListEIP2930ValuesArray,
5
+ TransactionType,
6
6
  TxOptions,
7
+ TxValuesArray,
7
8
  } from "@nomicfoundation/ethereumjs-tx";
8
9
  import { Address } from "@nomicfoundation/ethereumjs-util";
9
10
 
@@ -27,7 +28,7 @@ export class ReadOnlyValidEIP2930Transaction extends AccessListEIP2930Transactio
27
28
  }
28
29
 
29
30
  public static fromSerializedTx(
30
- _serialized: Buffer,
31
+ _serialized: Uint8Array,
31
32
  _opts?: TxOptions
32
33
  ): never {
33
34
  throw new InternalError(
@@ -36,7 +37,7 @@ export class ReadOnlyValidEIP2930Transaction extends AccessListEIP2930Transactio
36
37
  }
37
38
 
38
39
  public static fromRlpSerializedTx(
39
- _serialized: Buffer,
40
+ _serialized: Uint8Array,
40
41
  _opts?: TxOptions
41
42
  ): never {
42
43
  throw new InternalError(
@@ -45,7 +46,7 @@ export class ReadOnlyValidEIP2930Transaction extends AccessListEIP2930Transactio
45
46
  }
46
47
 
47
48
  public static fromValuesArray(
48
- _values: AccessListEIP2930ValuesArray,
49
+ _values: TxValuesArray[TransactionType.AccessListEIP2930],
49
50
  _opts?: TxOptions
50
51
  ): never {
51
52
  throw new InternalError(
@@ -69,7 +70,7 @@ export class ReadOnlyValidEIP2930Transaction extends AccessListEIP2930Transactio
69
70
 
70
71
  super(data, {
71
72
  freeze: false,
72
- disableMaxInitCodeSizeCheck: true,
73
+ allowUnlimitedInitCodeSize: true,
73
74
  common: fakeCommon,
74
75
  });
75
76