hardhat 2.10.2 → 2.11.0-dev.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 (428) hide show
  1. package/builtin-tasks/compile.js +6 -8
  2. package/builtin-tasks/compile.js.map +1 -1
  3. package/builtin-tasks/node.js +9 -12
  4. package/builtin-tasks/node.js.map +1 -1
  5. package/builtin-tasks/test.js +2 -3
  6. package/builtin-tasks/test.js.map +1 -1
  7. package/internal/artifacts.js +1 -1
  8. package/internal/artifacts.js.map +1 -1
  9. package/internal/cli/ArgumentsParser.js +5 -2
  10. package/internal/cli/ArgumentsParser.js.map +1 -1
  11. package/internal/cli/analytics.js +2 -2
  12. package/internal/cli/analytics.js.map +1 -1
  13. package/internal/cli/autocomplete.js +20 -32
  14. package/internal/cli/autocomplete.js.map +1 -1
  15. package/internal/cli/cli.js +1 -1
  16. package/internal/cli/cli.js.map +1 -1
  17. package/internal/cli/project-creation.js +14 -4
  18. package/internal/cli/project-creation.js.map +1 -1
  19. package/internal/constants.d.ts.map +1 -1
  20. package/internal/constants.js +2 -0
  21. package/internal/constants.js.map +1 -1
  22. package/internal/core/config/config-loading.js +2 -3
  23. package/internal/core/config/config-loading.js.map +1 -1
  24. package/internal/core/config/config-resolution.d.ts.map +1 -1
  25. package/internal/core/config/config-resolution.js +84 -35
  26. package/internal/core/config/config-resolution.js.map +1 -1
  27. package/internal/core/config/config-validation.js +38 -20
  28. package/internal/core/config/config-validation.js.map +1 -1
  29. package/internal/core/config/default-config.d.ts.map +1 -1
  30. package/internal/core/config/default-config.js +7 -4
  31. package/internal/core/config/default-config.js.map +1 -1
  32. package/internal/core/errors.js +4 -2
  33. package/internal/core/errors.js.map +1 -1
  34. package/internal/core/execution-mode.js +2 -2
  35. package/internal/core/execution-mode.js.map +1 -1
  36. package/internal/core/flamegraph.d.ts +10 -0
  37. package/internal/core/flamegraph.d.ts.map +1 -0
  38. package/internal/core/flamegraph.js +245 -0
  39. package/internal/core/flamegraph.js.map +1 -0
  40. package/internal/core/jsonrpc/types/base-types.d.ts +7 -8
  41. package/internal/core/jsonrpc/types/base-types.d.ts.map +1 -1
  42. package/internal/core/jsonrpc/types/base-types.js +24 -24
  43. package/internal/core/jsonrpc/types/base-types.js.map +1 -1
  44. package/internal/core/jsonrpc/types/input/blockTag.d.ts +15 -10
  45. package/internal/core/jsonrpc/types/input/blockTag.d.ts.map +1 -1
  46. package/internal/core/jsonrpc/types/input/blockTag.js +2 -0
  47. package/internal/core/jsonrpc/types/input/blockTag.js.map +1 -1
  48. package/internal/core/jsonrpc/types/input/callRequest.d.ts +5 -6
  49. package/internal/core/jsonrpc/types/input/callRequest.d.ts.map +1 -1
  50. package/internal/core/jsonrpc/types/input/callRequest.js.map +1 -1
  51. package/internal/core/jsonrpc/types/input/filterRequest.d.ts +6 -7
  52. package/internal/core/jsonrpc/types/input/filterRequest.d.ts.map +1 -1
  53. package/internal/core/jsonrpc/types/input/filterRequest.js.map +1 -1
  54. package/internal/core/jsonrpc/types/input/transactionRequest.d.ts +7 -8
  55. package/internal/core/jsonrpc/types/input/transactionRequest.d.ts.map +1 -1
  56. package/internal/core/jsonrpc/types/input/transactionRequest.js.map +1 -1
  57. package/internal/core/jsonrpc/types/output/block.d.ts +29 -30
  58. package/internal/core/jsonrpc/types/output/block.d.ts.map +1 -1
  59. package/internal/core/jsonrpc/types/output/block.js +8 -2
  60. package/internal/core/jsonrpc/types/output/block.js.map +1 -1
  61. package/internal/core/jsonrpc/types/output/log.d.ts +3 -4
  62. package/internal/core/jsonrpc/types/output/log.d.ts.map +1 -1
  63. package/internal/core/jsonrpc/types/output/log.js.map +1 -1
  64. package/internal/core/jsonrpc/types/output/receipt.d.ts +10 -11
  65. package/internal/core/jsonrpc/types/output/receipt.d.ts.map +1 -1
  66. package/internal/core/jsonrpc/types/output/receipt.js.map +1 -1
  67. package/internal/core/jsonrpc/types/output/transaction.d.ts +13 -14
  68. package/internal/core/jsonrpc/types/output/transaction.d.ts.map +1 -1
  69. package/internal/core/jsonrpc/types/output/transaction.js.map +1 -1
  70. package/internal/core/providers/accounts.d.ts.map +1 -1
  71. package/internal/core/providers/accounts.js +30 -24
  72. package/internal/core/providers/accounts.js.map +1 -1
  73. package/internal/core/providers/chainId.js +1 -1
  74. package/internal/core/providers/chainId.js.map +1 -1
  75. package/internal/core/providers/construction.d.ts.map +1 -1
  76. package/internal/core/providers/construction.js +5 -5
  77. package/internal/core/providers/construction.js.map +1 -1
  78. package/internal/core/providers/gas-providers.d.ts +4 -4
  79. package/internal/core/providers/gas-providers.d.ts.map +1 -1
  80. package/internal/core/providers/gas-providers.js +16 -15
  81. package/internal/core/providers/gas-providers.js.map +1 -1
  82. package/internal/core/providers/http.js +7 -2
  83. package/internal/core/providers/http.js.map +1 -1
  84. package/internal/core/providers/util.js +5 -8
  85. package/internal/core/providers/util.js.map +1 -1
  86. package/internal/core/runtime-environment.js +1 -1
  87. package/internal/core/runtime-environment.js.map +1 -1
  88. package/internal/core/task-profiling.d.ts +18 -0
  89. package/internal/core/task-profiling.d.ts.map +1 -0
  90. package/internal/core/task-profiling.js +50 -0
  91. package/internal/core/task-profiling.js.map +1 -0
  92. package/internal/core/typescript-support.js +3 -3
  93. package/internal/core/typescript-support.js.map +1 -1
  94. package/internal/hardhat-network/jsonrpc/client.d.ts +39 -39
  95. package/internal/hardhat-network/jsonrpc/client.d.ts.map +1 -1
  96. package/internal/hardhat-network/jsonrpc/client.js +14 -14
  97. package/internal/hardhat-network/jsonrpc/client.js.map +1 -1
  98. package/internal/hardhat-network/provider/BlockchainBase.d.ts +13 -10
  99. package/internal/hardhat-network/provider/BlockchainBase.d.ts.map +1 -1
  100. package/internal/hardhat-network/provider/BlockchainBase.js +38 -16
  101. package/internal/hardhat-network/provider/BlockchainBase.js.map +1 -1
  102. package/internal/hardhat-network/provider/BlockchainData.d.ts +15 -16
  103. package/internal/hardhat-network/provider/BlockchainData.d.ts.map +1 -1
  104. package/internal/hardhat-network/provider/BlockchainData.js +33 -29
  105. package/internal/hardhat-network/provider/BlockchainData.js.map +1 -1
  106. package/internal/hardhat-network/provider/HardhatBlockchain.d.ts +7 -8
  107. package/internal/hardhat-network/provider/HardhatBlockchain.d.ts.map +1 -1
  108. package/internal/hardhat-network/provider/HardhatBlockchain.js +13 -14
  109. package/internal/hardhat-network/provider/HardhatBlockchain.js.map +1 -1
  110. package/internal/hardhat-network/provider/PoolState.d.ts +1 -1
  111. package/internal/hardhat-network/provider/PoolState.d.ts.map +1 -1
  112. package/internal/hardhat-network/provider/PoolState.js +2 -3
  113. package/internal/hardhat-network/provider/PoolState.js.map +1 -1
  114. package/internal/hardhat-network/provider/TransactionQueue.d.ts +2 -3
  115. package/internal/hardhat-network/provider/TransactionQueue.d.ts.map +1 -1
  116. package/internal/hardhat-network/provider/TransactionQueue.js +3 -3
  117. package/internal/hardhat-network/provider/TransactionQueue.js.map +1 -1
  118. package/internal/hardhat-network/provider/TxPool.d.ts +8 -8
  119. package/internal/hardhat-network/provider/TxPool.d.ts.map +1 -1
  120. package/internal/hardhat-network/provider/TxPool.js +66 -68
  121. package/internal/hardhat-network/provider/TxPool.js.map +1 -1
  122. package/internal/hardhat-network/provider/ethereumjs-workarounds.js +2 -2
  123. package/internal/hardhat-network/provider/ethereumjs-workarounds.js.map +1 -1
  124. package/internal/hardhat-network/provider/filter.d.ts +5 -6
  125. package/internal/hardhat-network/provider/filter.d.ts.map +1 -1
  126. package/internal/hardhat-network/provider/filter.js +7 -8
  127. package/internal/hardhat-network/provider/filter.js.map +1 -1
  128. package/internal/hardhat-network/provider/fork/ForkBlockchain.d.ts +10 -11
  129. package/internal/hardhat-network/provider/fork/ForkBlockchain.d.ts.map +1 -1
  130. package/internal/hardhat-network/provider/fork/ForkBlockchain.js +51 -47
  131. package/internal/hardhat-network/provider/fork/ForkBlockchain.js.map +1 -1
  132. package/internal/hardhat-network/provider/fork/ForkStateManager.d.ts +8 -10
  133. package/internal/hardhat-network/provider/fork/ForkStateManager.d.ts.map +1 -1
  134. package/internal/hardhat-network/provider/fork/ForkStateManager.js +51 -69
  135. package/internal/hardhat-network/provider/fork/ForkStateManager.js.map +1 -1
  136. package/internal/hardhat-network/provider/fork/rpcToBlockData.d.ts +1 -1
  137. package/internal/hardhat-network/provider/fork/rpcToBlockData.d.ts.map +1 -1
  138. package/internal/hardhat-network/provider/fork/rpcToBlockData.js +2 -3
  139. package/internal/hardhat-network/provider/fork/rpcToBlockData.js.map +1 -1
  140. package/internal/hardhat-network/provider/fork/rpcToTxData.d.ts +2 -2
  141. package/internal/hardhat-network/provider/fork/rpcToTxData.d.ts.map +1 -1
  142. package/internal/hardhat-network/provider/fork/rpcToTxData.js +7 -11
  143. package/internal/hardhat-network/provider/fork/rpcToTxData.js.map +1 -1
  144. package/internal/hardhat-network/provider/modules/eth.d.ts +2 -1
  145. package/internal/hardhat-network/provider/modules/eth.d.ts.map +1 -1
  146. package/internal/hardhat-network/provider/modules/eth.js +92 -68
  147. package/internal/hardhat-network/provider/modules/eth.js.map +1 -1
  148. package/internal/hardhat-network/provider/modules/evm.d.ts.map +1 -1
  149. package/internal/hardhat-network/provider/modules/evm.js +14 -14
  150. package/internal/hardhat-network/provider/modules/evm.js.map +1 -1
  151. package/internal/hardhat-network/provider/modules/hardhat.d.ts.map +1 -1
  152. package/internal/hardhat-network/provider/modules/hardhat.js +13 -13
  153. package/internal/hardhat-network/provider/modules/hardhat.js.map +1 -1
  154. package/internal/hardhat-network/provider/modules/logger.d.ts +7 -8
  155. package/internal/hardhat-network/provider/modules/logger.d.ts.map +1 -1
  156. package/internal/hardhat-network/provider/modules/logger.js +29 -32
  157. package/internal/hardhat-network/provider/modules/logger.js.map +1 -1
  158. package/internal/hardhat-network/provider/modules/net.d.ts +1 -1
  159. package/internal/hardhat-network/provider/modules/net.d.ts.map +1 -1
  160. package/internal/hardhat-network/provider/modules/personal.d.ts.map +1 -1
  161. package/internal/hardhat-network/provider/modules/personal.js +3 -3
  162. package/internal/hardhat-network/provider/modules/personal.js.map +1 -1
  163. package/internal/hardhat-network/provider/modules/web3.d.ts.map +1 -1
  164. package/internal/hardhat-network/provider/modules/web3.js +5 -4
  165. package/internal/hardhat-network/provider/modules/web3.js.map +1 -1
  166. package/internal/hardhat-network/provider/node-types.d.ts +30 -29
  167. package/internal/hardhat-network/provider/node-types.d.ts.map +1 -1
  168. package/internal/hardhat-network/provider/node.d.ts +47 -42
  169. package/internal/hardhat-network/provider/node.d.ts.map +1 -1
  170. package/internal/hardhat-network/provider/node.js +262 -208
  171. package/internal/hardhat-network/provider/node.js.map +1 -1
  172. package/internal/hardhat-network/provider/output.d.ts +5 -6
  173. package/internal/hardhat-network/provider/output.d.ts.map +1 -1
  174. package/internal/hardhat-network/provider/output.js +39 -36
  175. package/internal/hardhat-network/provider/output.js.map +1 -1
  176. package/internal/hardhat-network/provider/provider.d.ts +1 -2
  177. package/internal/hardhat-network/provider/provider.d.ts.map +1 -1
  178. package/internal/hardhat-network/provider/provider.js.map +1 -1
  179. package/internal/hardhat-network/provider/return-data.d.ts +1 -2
  180. package/internal/hardhat-network/provider/return-data.d.ts.map +1 -1
  181. package/internal/hardhat-network/provider/return-data.js +1 -1
  182. package/internal/hardhat-network/provider/return-data.js.map +1 -1
  183. package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.d.ts +5 -5
  184. package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.d.ts.map +1 -1
  185. package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.js +60 -17
  186. package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.js.map +1 -1
  187. package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.d.ts +4 -4
  188. package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.d.ts.map +1 -1
  189. package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.js +59 -16
  190. package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.js.map +1 -1
  191. package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.d.ts +3 -3
  192. package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.d.ts.map +1 -1
  193. package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.js +41 -9
  194. package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.js.map +1 -1
  195. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.d.ts +4 -4
  196. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.d.ts.map +1 -1
  197. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.js +7 -23
  198. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.js.map +1 -1
  199. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.d.ts +3 -3
  200. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.d.ts.map +1 -1
  201. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.js +7 -22
  202. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.js.map +1 -1
  203. package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.d.ts +3 -3
  204. package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.d.ts.map +1 -1
  205. package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.js +1 -1
  206. package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.js.map +1 -1
  207. package/internal/hardhat-network/provider/types/HardhatBlockchainInterface.d.ts +5 -6
  208. package/internal/hardhat-network/provider/types/HardhatBlockchainInterface.d.ts.map +1 -1
  209. package/internal/hardhat-network/provider/utils/fork-recomendations-banner.js +2 -3
  210. package/internal/hardhat-network/provider/utils/fork-recomendations-banner.js.map +1 -1
  211. package/internal/hardhat-network/provider/utils/getCurrentTimestamp.d.ts +1 -0
  212. package/internal/hardhat-network/provider/utils/getCurrentTimestamp.d.ts.map +1 -1
  213. package/internal/hardhat-network/provider/utils/getCurrentTimestamp.js +5 -1
  214. package/internal/hardhat-network/provider/utils/getCurrentTimestamp.js.map +1 -1
  215. package/internal/hardhat-network/provider/utils/makeAccount.d.ts +1 -1
  216. package/internal/hardhat-network/provider/utils/makeAccount.d.ts.map +1 -1
  217. package/internal/hardhat-network/provider/utils/makeAccount.js +6 -6
  218. package/internal/hardhat-network/provider/utils/makeAccount.js.map +1 -1
  219. package/internal/hardhat-network/provider/utils/makeCommon.d.ts +2 -2
  220. package/internal/hardhat-network/provider/utils/makeCommon.d.ts.map +1 -1
  221. package/internal/hardhat-network/provider/utils/makeCommon.js +7 -23
  222. package/internal/hardhat-network/provider/utils/makeCommon.js.map +1 -1
  223. package/internal/hardhat-network/provider/utils/makeForkClient.d.ts +1 -2
  224. package/internal/hardhat-network/provider/utils/makeForkClient.d.ts.map +1 -1
  225. package/internal/hardhat-network/provider/utils/makeForkClient.js +7 -8
  226. package/internal/hardhat-network/provider/utils/makeForkClient.js.map +1 -1
  227. package/internal/hardhat-network/provider/utils/makeStateTrie.d.ts +1 -1
  228. package/internal/hardhat-network/provider/utils/makeStateTrie.d.ts.map +1 -1
  229. package/internal/hardhat-network/provider/utils/makeStateTrie.js +4 -4
  230. package/internal/hardhat-network/provider/utils/makeStateTrie.js.map +1 -1
  231. package/internal/hardhat-network/provider/utils/putGenesisBlock.d.ts +6 -3
  232. package/internal/hardhat-network/provider/utils/putGenesisBlock.d.ts.map +1 -1
  233. package/internal/hardhat-network/provider/utils/putGenesisBlock.js +22 -4
  234. package/internal/hardhat-network/provider/utils/putGenesisBlock.js.map +1 -1
  235. package/internal/hardhat-network/provider/utils/random.d.ts +15 -0
  236. package/internal/hardhat-network/provider/utils/random.d.ts.map +1 -0
  237. package/internal/hardhat-network/provider/utils/random.js +48 -0
  238. package/internal/hardhat-network/provider/utils/random.js.map +1 -0
  239. package/internal/hardhat-network/provider/utils/reorganizeTransactionsLists.d.ts +1 -2
  240. package/internal/hardhat-network/provider/utils/reorganizeTransactionsLists.d.ts.map +1 -1
  241. package/internal/hardhat-network/provider/utils/reorganizeTransactionsLists.js +5 -4
  242. package/internal/hardhat-network/provider/utils/reorganizeTransactionsLists.js.map +1 -1
  243. package/internal/hardhat-network/provider/utils/reorgs-protection.d.ts +2 -2
  244. package/internal/hardhat-network/provider/utils/reorgs-protection.d.ts.map +1 -1
  245. package/internal/hardhat-network/provider/utils/reorgs-protection.js +7 -7
  246. package/internal/hardhat-network/provider/utils/reorgs-protection.js.map +1 -1
  247. package/internal/hardhat-network/provider/utils/txMapToArray.d.ts +1 -1
  248. package/internal/hardhat-network/provider/utils/txMapToArray.d.ts.map +1 -1
  249. package/internal/hardhat-network/stack-traces/compiler-to-model.js +6 -8
  250. package/internal/hardhat-network/stack-traces/compiler-to-model.js.map +1 -1
  251. package/internal/hardhat-network/stack-traces/consoleLogger.d.ts.map +1 -1
  252. package/internal/hardhat-network/stack-traces/consoleLogger.js +45 -45
  253. package/internal/hardhat-network/stack-traces/consoleLogger.js.map +1 -1
  254. package/internal/hardhat-network/stack-traces/constants.d.ts +3 -0
  255. package/internal/hardhat-network/stack-traces/constants.d.ts.map +1 -0
  256. package/internal/hardhat-network/stack-traces/constants.js +6 -0
  257. package/internal/hardhat-network/stack-traces/constants.js.map +1 -0
  258. package/internal/hardhat-network/stack-traces/contracts-identifier.js +2 -2
  259. package/internal/hardhat-network/stack-traces/contracts-identifier.js.map +1 -1
  260. package/internal/hardhat-network/stack-traces/debug.js +29 -19
  261. package/internal/hardhat-network/stack-traces/debug.js.map +1 -1
  262. package/internal/hardhat-network/stack-traces/error-inferrer.d.ts.map +1 -1
  263. package/internal/hardhat-network/stack-traces/error-inferrer.js +44 -26
  264. package/internal/hardhat-network/stack-traces/error-inferrer.js.map +1 -1
  265. package/internal/hardhat-network/stack-traces/message-trace.d.ts +6 -7
  266. package/internal/hardhat-network/stack-traces/message-trace.d.ts.map +1 -1
  267. package/internal/hardhat-network/stack-traces/message-trace.js.map +1 -1
  268. package/internal/hardhat-network/stack-traces/model.js +6 -6
  269. package/internal/hardhat-network/stack-traces/model.js.map +1 -1
  270. package/internal/hardhat-network/stack-traces/panic-errors.d.ts +1 -2
  271. package/internal/hardhat-network/stack-traces/panic-errors.d.ts.map +1 -1
  272. package/internal/hardhat-network/stack-traces/panic-errors.js +1 -1
  273. package/internal/hardhat-network/stack-traces/panic-errors.js.map +1 -1
  274. package/internal/hardhat-network/stack-traces/solidity-errors.d.ts.map +1 -1
  275. package/internal/hardhat-network/stack-traces/solidity-errors.js +21 -12
  276. package/internal/hardhat-network/stack-traces/solidity-errors.js.map +1 -1
  277. package/internal/hardhat-network/stack-traces/solidity-stack-trace.d.ts +6 -5
  278. package/internal/hardhat-network/stack-traces/solidity-stack-trace.d.ts.map +1 -1
  279. package/internal/hardhat-network/stack-traces/solidity-stack-trace.js.map +1 -1
  280. package/internal/hardhat-network/stack-traces/solidityTracer.d.ts.map +1 -1
  281. package/internal/hardhat-network/stack-traces/solidityTracer.js +4 -0
  282. package/internal/hardhat-network/stack-traces/solidityTracer.js.map +1 -1
  283. package/internal/hardhat-network/stack-traces/vm-debug-tracer.d.ts +2 -1
  284. package/internal/hardhat-network/stack-traces/vm-debug-tracer.d.ts.map +1 -1
  285. package/internal/hardhat-network/stack-traces/vm-debug-tracer.js +79 -78
  286. package/internal/hardhat-network/stack-traces/vm-debug-tracer.js.map +1 -1
  287. package/internal/hardhat-network/stack-traces/vm-trace-decoder.js +5 -1
  288. package/internal/hardhat-network/stack-traces/vm-trace-decoder.js.map +1 -1
  289. package/internal/hardhat-network/stack-traces/vm-tracer.d.ts +3 -2
  290. package/internal/hardhat-network/stack-traces/vm-tracer.d.ts.map +1 -1
  291. package/internal/hardhat-network/stack-traces/vm-tracer.js +15 -16
  292. package/internal/hardhat-network/stack-traces/vm-tracer.js.map +1 -1
  293. package/internal/reset.js +1 -1
  294. package/internal/reset.js.map +1 -1
  295. package/internal/sentry/anonymizer.js +2 -3
  296. package/internal/sentry/anonymizer.js.map +1 -1
  297. package/internal/sentry/subprocess.js +1 -1
  298. package/internal/sentry/subprocess.js.map +1 -1
  299. package/internal/sentry/transport.js +3 -4
  300. package/internal/sentry/transport.js.map +1 -1
  301. package/internal/solidity/compilation-job.js +2 -4
  302. package/internal/solidity/compilation-job.js.map +1 -1
  303. package/internal/solidity/compiler/downloader.d.ts.map +1 -1
  304. package/internal/solidity/compiler/downloader.js +6 -6
  305. package/internal/solidity/compiler/downloader.js.map +1 -1
  306. package/internal/solidity/dependencyGraph.js +3 -5
  307. package/internal/solidity/dependencyGraph.js.map +1 -1
  308. package/internal/solidity/parse.js +1 -1
  309. package/internal/solidity/parse.js.map +1 -1
  310. package/internal/solidity/resolver.js +4 -1
  311. package/internal/solidity/resolver.js.map +1 -1
  312. package/internal/util/abi-helpers.js +1 -1
  313. package/internal/util/abi-helpers.js.map +1 -1
  314. package/internal/util/bigint.d.ts +25 -0
  315. package/internal/util/bigint.d.ts.map +1 -0
  316. package/internal/util/bigint.js +67 -0
  317. package/internal/util/bigint.js.map +1 -0
  318. package/internal/util/download.js +1 -1
  319. package/internal/util/download.js.map +1 -1
  320. package/internal/util/fs-utils.d.ts +32 -0
  321. package/internal/util/fs-utils.d.ts.map +1 -0
  322. package/internal/util/fs-utils.js +151 -0
  323. package/internal/util/fs-utils.js.map +1 -0
  324. package/internal/util/hardforks.d.ts +3 -3
  325. package/internal/util/hardforks.d.ts.map +1 -1
  326. package/internal/util/hardforks.js +5 -28
  327. package/internal/util/hardforks.js.map +1 -1
  328. package/internal/util/jsonrpc.js +1 -1
  329. package/internal/util/jsonrpc.js.map +1 -1
  330. package/internal/util/lazy.js +2 -2
  331. package/internal/util/lazy.js.map +1 -1
  332. package/internal/util/packageInfo.js +1 -1
  333. package/internal/util/packageInfo.js.map +1 -1
  334. package/internal/util/scripts-runner.js +5 -2
  335. package/internal/util/scripts-runner.js.map +1 -1
  336. package/internal/util/wei-values.d.ts +1 -2
  337. package/internal/util/wei-values.d.ts.map +1 -1
  338. package/internal/util/wei-values.js +9 -10
  339. package/internal/util/wei-values.js.map +1 -1
  340. package/internal/vendor/await-semaphore/index.d.ts +12 -0
  341. package/internal/vendor/await-semaphore/index.d.ts.map +1 -0
  342. package/internal/vendor/await-semaphore/index.js +64 -0
  343. package/internal/vendor/await-semaphore/index.js.map +1 -0
  344. package/package.json +13 -9
  345. package/profiling.d.ts +18 -0
  346. package/profiling.d.ts.map +1 -0
  347. package/profiling.js +32 -0
  348. package/profiling.js.map +1 -0
  349. package/src/builtin-tasks/node.ts +4 -6
  350. package/src/internal/constants.ts +3 -1
  351. package/src/internal/core/config/config-resolution.ts +30 -7
  352. package/src/internal/core/config/default-config.ts +2 -4
  353. package/src/internal/core/jsonrpc/types/base-types.ts +23 -24
  354. package/src/internal/core/jsonrpc/types/input/blockTag.ts +2 -4
  355. package/src/internal/core/jsonrpc/types/input/callRequest.ts +0 -4
  356. package/src/internal/core/jsonrpc/types/input/filterRequest.ts +0 -4
  357. package/src/internal/core/jsonrpc/types/input/transactionRequest.ts +0 -4
  358. package/src/internal/core/jsonrpc/types/output/block.ts +0 -4
  359. package/src/internal/core/jsonrpc/types/output/log.ts +0 -4
  360. package/src/internal/core/jsonrpc/types/output/receipt.ts +0 -4
  361. package/src/internal/core/jsonrpc/types/output/transaction.ts +0 -4
  362. package/src/internal/core/providers/accounts.ts +16 -26
  363. package/src/internal/core/providers/construction.ts +5 -3
  364. package/src/internal/core/providers/gas-providers.ts +25 -33
  365. package/src/internal/core/providers/util.ts +1 -1
  366. package/src/internal/hardhat-network/jsonrpc/client.ts +22 -22
  367. package/src/internal/hardhat-network/provider/BlockchainBase.ts +62 -25
  368. package/src/internal/hardhat-network/provider/BlockchainData.ts +39 -42
  369. package/src/internal/hardhat-network/provider/HardhatBlockchain.ts +21 -21
  370. package/src/internal/hardhat-network/provider/PoolState.ts +3 -4
  371. package/src/internal/hardhat-network/provider/TransactionQueue.ts +11 -8
  372. package/src/internal/hardhat-network/provider/TxPool.ts +62 -64
  373. package/src/internal/hardhat-network/provider/ethereumjs-workarounds.ts +3 -3
  374. package/src/internal/hardhat-network/provider/filter.ts +9 -12
  375. package/src/internal/hardhat-network/provider/fork/ForkBlockchain.ts +52 -50
  376. package/src/internal/hardhat-network/provider/fork/ForkStateManager.ts +35 -60
  377. package/src/internal/hardhat-network/provider/fork/rpcToBlockData.ts +2 -2
  378. package/src/internal/hardhat-network/provider/fork/rpcToTxData.ts +3 -3
  379. package/src/internal/hardhat-network/provider/modules/eth.ts +88 -63
  380. package/src/internal/hardhat-network/provider/modules/evm.ts +19 -22
  381. package/src/internal/hardhat-network/provider/modules/hardhat.ts +21 -19
  382. package/src/internal/hardhat-network/provider/modules/logger.ts +33 -40
  383. package/src/internal/hardhat-network/provider/modules/net.ts +1 -1
  384. package/src/internal/hardhat-network/provider/modules/personal.ts +2 -1
  385. package/src/internal/hardhat-network/provider/modules/web3.ts +5 -4
  386. package/src/internal/hardhat-network/provider/node-types.ts +32 -31
  387. package/src/internal/hardhat-network/provider/node.ts +379 -343
  388. package/src/internal/hardhat-network/provider/output.ts +32 -37
  389. package/src/internal/hardhat-network/provider/provider.ts +5 -6
  390. package/src/internal/hardhat-network/provider/return-data.ts +2 -3
  391. package/src/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.ts +51 -24
  392. package/src/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.ts +50 -23
  393. package/src/internal/hardhat-network/provider/transactions/FakeSenderTransaction.ts +29 -11
  394. package/src/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.ts +12 -24
  395. package/src/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.ts +11 -22
  396. package/src/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.ts +3 -3
  397. package/src/internal/hardhat-network/provider/types/HardhatBlockchainInterface.ts +8 -9
  398. package/src/internal/hardhat-network/provider/utils/getCurrentTimestamp.ts +4 -0
  399. package/src/internal/hardhat-network/provider/utils/makeAccount.ts +4 -10
  400. package/src/internal/hardhat-network/provider/utils/makeCommon.ts +8 -34
  401. package/src/internal/hardhat-network/provider/utils/makeForkClient.ts +8 -9
  402. package/src/internal/hardhat-network/provider/utils/makeStateTrie.ts +3 -3
  403. package/src/internal/hardhat-network/provider/utils/putGenesisBlock.ts +34 -6
  404. package/src/internal/hardhat-network/provider/utils/random.ts +54 -0
  405. package/src/internal/hardhat-network/provider/utils/reorganizeTransactionsLists.ts +6 -7
  406. package/src/internal/hardhat-network/provider/utils/reorgs-protection.ts +8 -8
  407. package/src/internal/hardhat-network/stack-traces/consoleLogger.ts +7 -2
  408. package/src/internal/hardhat-network/stack-traces/contracts-identifier.ts +1 -1
  409. package/src/internal/hardhat-network/stack-traces/debug.ts +1 -1
  410. package/src/internal/hardhat-network/stack-traces/error-inferrer.ts +6 -7
  411. package/src/internal/hardhat-network/stack-traces/message-trace.ts +6 -7
  412. package/src/internal/hardhat-network/stack-traces/model.ts +1 -1
  413. package/src/internal/hardhat-network/stack-traces/panic-errors.ts +3 -5
  414. package/src/internal/hardhat-network/stack-traces/solidity-errors.ts +16 -1
  415. package/src/internal/hardhat-network/stack-traces/solidity-stack-trace.ts +6 -6
  416. package/src/internal/hardhat-network/stack-traces/solidityTracer.ts +5 -0
  417. package/src/internal/hardhat-network/stack-traces/vm-debug-tracer.ts +106 -103
  418. package/src/internal/hardhat-network/stack-traces/vm-tracer.ts +23 -18
  419. package/src/internal/solidity/compiler/downloader.ts +5 -2
  420. package/src/internal/util/bigint.ts +84 -0
  421. package/src/internal/util/hardforks.ts +4 -29
  422. package/src/internal/util/wei-values.ts +11 -13
  423. package/src/types/config.ts +8 -10
  424. package/types/config.d.ts +8 -9
  425. package/types/config.d.ts.map +1 -1
  426. package/src/internal/hardhat-network/provider/fork/random.ts +0 -33
  427. package/src/internal/hardhat-network/provider/utils/bnToHex.ts +0 -5
  428. package/src/internal/hardhat-network/provider/utils/makeForkCommon.ts +0 -15
@@ -1,4 +1,3 @@
1
- import { BN } from "ethereumjs-util";
2
1
  import * as t from "io-ts";
3
2
 
4
3
  import { BoundExperimentalHardhatNetworkMessageTraceHook } from "../../../../types";
@@ -85,16 +84,15 @@ export class EvmModule {
85
84
  timestamp: RpcQuantityOrNumber
86
85
  ): Promise<string> {
87
86
  const latestBlock = await this._node.getLatestBlock();
88
- const increment = new BN(timestamp).sub(
89
- new BN(latestBlock.header.timestamp)
90
- );
91
- if (increment.lte(new BN(0))) {
87
+ const increment = BigInt(timestamp) - latestBlock.header.timestamp;
88
+
89
+ if (increment <= 0n) {
92
90
  throw new InvalidInputError(
93
91
  `Timestamp ${timestamp.toString()} is lower than or equal to previous block's timestamp` +
94
- ` ${new BN(latestBlock.header.timestamp).toNumber()}`
92
+ ` ${latestBlock.header.timestamp}`
95
93
  );
96
94
  }
97
- this._node.setNextBlockTimestamp(new BN(timestamp));
95
+ this._node.setNextBlockTimestamp(BigInt(timestamp));
98
96
  return timestamp.toString();
99
97
  }
100
98
 
@@ -107,7 +105,7 @@ export class EvmModule {
107
105
  private async _increaseTimeAction(
108
106
  increment: RpcQuantityOrNumber
109
107
  ): Promise<string> {
110
- this._node.increaseTime(new BN(increment));
108
+ this._node.increaseTime(BigInt(increment));
111
109
  const totalIncrement = this._node.getTimeIncrement();
112
110
  // This RPC call is an exception: it returns a number in decimal
113
111
  return totalIncrement.toString();
@@ -123,21 +121,20 @@ export class EvmModule {
123
121
  }
124
122
 
125
123
  private async _mineAction(timestamp: RpcQuantityOrNumber): Promise<string> {
124
+ timestamp = BigInt(timestamp);
126
125
  // if timestamp is specified, make sure it is bigger than previous
127
126
  // block's timestamp
128
- if (timestamp !== 0) {
127
+ if (timestamp !== 0n) {
129
128
  const latestBlock = await this._node.getLatestBlock();
130
- const increment = new BN(timestamp).sub(
131
- new BN(latestBlock.header.timestamp)
132
- );
133
- if (increment.lte(new BN(0))) {
129
+ const increment = timestamp - latestBlock.header.timestamp;
130
+ if (increment <= 0n) {
134
131
  throw new InvalidInputError(
135
132
  `Timestamp ${timestamp.toString()} is lower than previous block's timestamp` +
136
- ` ${new BN(latestBlock.header.timestamp).toNumber()}`
133
+ ` ${latestBlock.header.timestamp}`
137
134
  );
138
135
  }
139
136
  }
140
- const result = await this._node.mineBlock(new BN(timestamp));
137
+ const result = await this._node.mineBlock(timestamp);
141
138
 
142
139
  await this._logBlock(result);
143
140
 
@@ -146,12 +143,12 @@ export class EvmModule {
146
143
 
147
144
  // evm_revert
148
145
 
149
- private _revertParams(params: any[]): [BN] {
146
+ private _revertParams(params: any[]): [bigint] {
150
147
  return validateParams(params, rpcQuantity);
151
148
  }
152
149
 
153
- private async _revertAction(snapshotId: BN): Promise<boolean> {
154
- return this._node.revertToSnapshot(snapshotId.toNumber());
150
+ private async _revertAction(snapshotId: bigint): Promise<boolean> {
151
+ return this._node.revertToSnapshot(Number(snapshotId));
155
152
  }
156
153
 
157
154
  // evm_snapshot
@@ -192,12 +189,12 @@ export class EvmModule {
192
189
 
193
190
  // evm_setBlockGasLimit
194
191
 
195
- private _setBlockGasLimitParams(params: any[]): [BN] {
192
+ private _setBlockGasLimitParams(params: any[]): [bigint] {
196
193
  return validateParams(params, rpcQuantity);
197
194
  }
198
195
 
199
- private async _setBlockGasLimitAction(blockGasLimit: BN): Promise<true> {
200
- if (blockGasLimit.lte(new BN(0))) {
196
+ private async _setBlockGasLimitAction(blockGasLimit: bigint): Promise<true> {
197
+ if (blockGasLimit <= 0n) {
201
198
  throw new InvalidInputError("Block gas limit must be greater than 0");
202
199
  }
203
200
 
@@ -212,7 +209,7 @@ export class EvmModule {
212
209
  for (const txTrace of traces) {
213
210
  const code = await this._node.getCodeFromTrace(
214
211
  txTrace.trace,
215
- new BN(block.header.number)
212
+ block.header.number
216
213
  );
217
214
 
218
215
  codes.push(code);
@@ -1,4 +1,4 @@
1
- import { Address, BN } from "ethereumjs-util";
1
+ import { Address } from "@ignored/util";
2
2
  import * as t from "io-ts";
3
3
 
4
4
  import {
@@ -173,7 +173,7 @@ export class HardhatModule {
173
173
 
174
174
  private async _intervalMineAction(): Promise<boolean> {
175
175
  const result = await this._node.mineBlock();
176
- const blockNumber = result.block.header.number.toNumber();
176
+ const blockNumber = result.block.header.number;
177
177
 
178
178
  const isEmpty = result.block.transactions.length === 0;
179
179
  if (isEmpty) {
@@ -238,12 +238,12 @@ export class HardhatModule {
238
238
 
239
239
  // hardhat_setMinGasPrice
240
240
 
241
- private _setMinGasPriceParams(params: any[]): [BN] {
241
+ private _setMinGasPriceParams(params: any[]): [bigint] {
242
242
  return validateParams(params, rpcQuantity);
243
243
  }
244
244
 
245
- private async _setMinGasPriceAction(minGasPrice: BN): Promise<true> {
246
- if (minGasPrice.lt(new BN(0))) {
245
+ private async _setMinGasPriceAction(minGasPrice: bigint): Promise<true> {
246
+ if (minGasPrice < 0n) {
247
247
  throw new InvalidInputError("Minimum gas price cannot be negative");
248
248
  }
249
249
 
@@ -269,11 +269,11 @@ export class HardhatModule {
269
269
 
270
270
  // hardhat_setBalance
271
271
 
272
- private _setBalanceParams(params: any[]): [Buffer, BN] {
272
+ private _setBalanceParams(params: any[]): [Buffer, bigint] {
273
273
  return validateParams(params, rpcAddress, rpcQuantity);
274
274
  }
275
275
 
276
- private async _setBalanceAction(address: Buffer, newBalance: BN) {
276
+ private async _setBalanceAction(address: Buffer, newBalance: bigint) {
277
277
  await this._node.setAccountBalance(new Address(address), newBalance);
278
278
  return true;
279
279
  }
@@ -291,18 +291,18 @@ export class HardhatModule {
291
291
 
292
292
  // hardhat_setNonce
293
293
 
294
- private _setNonceParams(params: any[]): [Buffer, BN] {
294
+ private _setNonceParams(params: any[]): [Buffer, bigint] {
295
295
  return validateParams(params, rpcAddress, rpcQuantity);
296
296
  }
297
297
 
298
- private async _setNonceAction(address: Buffer, newNonce: BN) {
298
+ private async _setNonceAction(address: Buffer, newNonce: bigint) {
299
299
  await this._node.setNextConfirmedNonce(new Address(address), newNonce);
300
300
  return true;
301
301
  }
302
302
 
303
303
  // hardhat_setStorageAt
304
304
 
305
- private _setStorageAtParams(params: any[]): [Buffer, BN, Buffer] {
305
+ private _setStorageAtParams(params: any[]): [Buffer, bigint, Buffer] {
306
306
  const [address, positionIndex, value] = validateParams(
307
307
  params,
308
308
  rpcAddress,
@@ -310,8 +310,8 @@ export class HardhatModule {
310
310
  rpcData
311
311
  );
312
312
 
313
- const MAX_WORD_VALUE = new BN(2).pow(new BN(256));
314
- if (positionIndex.gte(MAX_WORD_VALUE)) {
313
+ const MAX_WORD_VALUE = 2n ** 256n;
314
+ if (positionIndex >= MAX_WORD_VALUE) {
315
315
  throw new InvalidInputError(
316
316
  `Storage key must not be greater than or equal to 2^256. Received ${positionIndex.toString()}.`
317
317
  );
@@ -330,7 +330,7 @@ export class HardhatModule {
330
330
 
331
331
  private async _setStorageAtAction(
332
332
  address: Buffer,
333
- positionIndex: BN,
333
+ positionIndex: bigint,
334
334
  value: Buffer
335
335
  ) {
336
336
  await this._node.setStorageAt(new Address(address), positionIndex, value);
@@ -338,11 +338,11 @@ export class HardhatModule {
338
338
  }
339
339
 
340
340
  // hardhat_setNextBlockBaseFeePerGas
341
- private _setNextBlockBaseFeePerGasParams(params: any[]): [BN] {
341
+ private _setNextBlockBaseFeePerGasParams(params: any[]): [bigint] {
342
342
  return validateParams(params, rpcQuantity);
343
343
  }
344
344
 
345
- private _setNextBlockBaseFeePerGasAction(baseFeePerGas: BN) {
345
+ private _setNextBlockBaseFeePerGasAction(baseFeePerGas: bigint) {
346
346
  if (!this._node.isEip1559Active()) {
347
347
  throw new InvalidInputError(
348
348
  "hardhat_setNextBlockBaseFeePerGas is disabled because EIP-1559 is not active"
@@ -365,7 +365,7 @@ export class HardhatModule {
365
365
  }
366
366
 
367
367
  // hardhat_mine
368
- private async _hardhatMineAction(blockCount?: BN, interval?: BN) {
368
+ private async _hardhatMineAction(blockCount?: bigint, interval?: bigint) {
369
369
  const mineBlockResults = await this._node.mineBlocks(blockCount, interval);
370
370
 
371
371
  for (const [i, result] of mineBlockResults.entries()) {
@@ -381,7 +381,9 @@ export class HardhatModule {
381
381
 
382
382
  return true;
383
383
  }
384
- private _hardhatMineParams(params: any[]): [BN | undefined, BN | undefined] {
384
+ private _hardhatMineParams(
385
+ params: any[]
386
+ ): [bigint | undefined, bigint | undefined] {
385
387
  return validateParams(params, optional(rpcQuantity), optional(rpcQuantity));
386
388
  }
387
389
 
@@ -395,7 +397,7 @@ export class HardhatModule {
395
397
  for (const txTrace of traces) {
396
398
  const code = await this._node.getCodeFromTrace(
397
399
  txTrace.trace,
398
- new BN(block.header.number)
400
+ block.header.number
399
401
  );
400
402
 
401
403
  codes.push(code);
@@ -427,7 +429,7 @@ export class HardhatModule {
427
429
 
428
430
  private async _logHardhatMinedBlock(result: MineBlockResult) {
429
431
  const isEmpty = result.block.transactions.length === 0;
430
- const blockNumber = result.block.header.number.toNumber();
432
+ const blockNumber = result.block.header.number;
431
433
 
432
434
  if (isEmpty) {
433
435
  this._logger.logEmptyHardhatMinedBlock(
@@ -1,8 +1,8 @@
1
- import { Block } from "@ethereumjs/block";
2
- import { TypedTransaction } from "@ethereumjs/tx";
1
+ import { Block } from "@ignored/block";
2
+ import { TypedTransaction } from "@ignored/tx";
3
+ import { bufferToHex } from "@ignored/util";
3
4
  import ansiEscapes from "ansi-escapes";
4
5
  import chalk, { Chalk } from "chalk";
5
- import { BN, bufferToHex } from "ethereumjs-util";
6
6
  import util from "util";
7
7
 
8
8
  import { assertHardhatInvariant } from "../../../core/errors";
@@ -62,8 +62,8 @@ export class ModulesLogger {
62
62
  private _logs: Array<string | [string, string]> = [];
63
63
  private _titleLength = 0;
64
64
  private _currentIndent = 0;
65
- private _emptyIntervalMinedBlocksRangeStart: number | undefined = undefined;
66
- private _emptyHardhatMinedBlocksRangeStart: number | undefined = undefined;
65
+ private _emptyIntervalMinedBlocksRangeStart: bigint | undefined = undefined;
66
+ private _emptyHardhatMinedBlocksRangeStart: bigint | undefined = undefined;
67
67
  private _methodBeingCollapsed?: string;
68
68
  private _methodCollapsedCount: number = 0;
69
69
 
@@ -108,7 +108,8 @@ export class ModulesLogger {
108
108
 
109
109
  for (let i = 0; i < block.transactions.length; i++) {
110
110
  const tx = block.transactions[i];
111
- const txGasUsed = results[i].gasUsed.toNumber();
111
+
112
+ const txGasUsed = results[i].totalGasSpent;
112
113
  const txTrace = traces[i];
113
114
  const code = codes[i];
114
115
 
@@ -133,7 +134,7 @@ export class ModulesLogger {
133
134
  "The array of codes should have the same length as the array of results"
134
135
  );
135
136
 
136
- const blockNumber = result.block.header.number.toNumber();
137
+ const blockNumber = result.block.header.number;
137
138
  const isEmpty = result.block.transactions.length === 0;
138
139
 
139
140
  this._indent(() => {
@@ -155,7 +156,7 @@ export class ModulesLogger {
155
156
 
156
157
  for (let i = 0; i < block.transactions.length; i++) {
157
158
  const tx = block.transactions[i];
158
- const txGasUsed = results[i].gasUsed.toNumber();
159
+ const txGasUsed = results[i].totalGasSpent;
159
160
  const txTrace = traces[i];
160
161
  const code = codes[i];
161
162
 
@@ -187,7 +188,7 @@ export class ModulesLogger {
187
188
 
188
189
  for (let i = 0; i < block.transactions.length; i++) {
189
190
  const tx = block.transactions[i];
190
- const txGasUsed = results[i].gasUsed.toNumber();
191
+ const txGasUsed = results[i].totalGasSpent;
191
192
  const txTrace = traces[i];
192
193
  const code = codes[i];
193
194
 
@@ -204,7 +205,7 @@ export class ModulesLogger {
204
205
  public logSingleTransaction(
205
206
  tx: TypedTransaction,
206
207
  block: Block,
207
- txGasUsed: number,
208
+ txGasUsed: bigint,
208
209
  txTrace: GatherTracesResult,
209
210
  code: Buffer
210
211
  ) {
@@ -217,14 +218,11 @@ export class ModulesLogger {
217
218
 
218
219
  this._logTxFrom(tx.getSenderAddress().toBuffer());
219
220
  this._logTxTo(tx.to?.toBuffer(), txTrace.trace);
220
- this._logTxValue(new BN(tx.value));
221
- this._logWithTitle(
222
- "Gas used",
223
- `${txGasUsed} of ${tx.gasLimit.toNumber()}`
224
- );
221
+ this._logTxValue(tx.value);
222
+ this._logWithTitle("Gas used", `${txGasUsed} of ${tx.gasLimit}`);
225
223
 
226
224
  this._logWithTitle(
227
- `Block #${block.header.number.toNumber()}`,
225
+ `Block #${block.header.number}`,
228
226
  bufferToHex(block.hash())
229
227
  );
230
228
 
@@ -238,7 +236,7 @@ export class ModulesLogger {
238
236
 
239
237
  public logCurrentlySentTransaction(
240
238
  tx: TypedTransaction,
241
- txGasUsed: number,
239
+ txGasUsed: bigint,
242
240
  txTrace: GatherTracesResult,
243
241
  code: Buffer,
244
242
  block: Block
@@ -255,14 +253,11 @@ export class ModulesLogger {
255
253
 
256
254
  this._logTxFrom(tx.getSenderAddress().toBuffer());
257
255
  this._logTxTo(tx.to?.toBuffer(), txTrace.trace);
258
- this._logTxValue(new BN(tx.value));
259
- this._logWithTitle(
260
- "Gas used",
261
- `${txGasUsed} of ${tx.gasLimit.toNumber()}`
262
- );
256
+ this._logTxValue(tx.value);
257
+ this._logWithTitle("Gas used", `${txGasUsed} of ${tx.gasLimit}`);
263
258
 
264
259
  this._logWithTitle(
265
- `Block #${block.header.number.toNumber()}`,
260
+ `Block #${block.header.number}`,
266
261
  bufferToHex(block.hash())
267
262
  );
268
263
 
@@ -288,7 +283,7 @@ export class ModulesLogger {
288
283
 
289
284
  this._logTxFrom(callParams.from);
290
285
  this._logTxTo(callParams.to, trace);
291
- this._logTxValue(new BN(callParams.value));
286
+ this._logTxValue(callParams.value);
292
287
 
293
288
  this._logConsoleLogMessages(consoleLogMessages);
294
289
 
@@ -310,7 +305,7 @@ export class ModulesLogger {
310
305
 
311
306
  this._logTxFrom(callParams.from);
312
307
  this._logTxTo(callParams.to, trace);
313
- if (callParams.value.gtn(0)) {
308
+ if (callParams.value > 0n) {
314
309
  this._logTxValue(callParams.value);
315
310
  }
316
311
 
@@ -324,9 +319,9 @@ export class ModulesLogger {
324
319
  }
325
320
 
326
321
  public logMinedBlockNumber(
327
- blockNumber: number,
322
+ blockNumber: bigint,
328
323
  isEmpty: boolean,
329
- baseFeePerGas?: BN
324
+ baseFeePerGas?: bigint
330
325
  ) {
331
326
  if (isEmpty) {
332
327
  this._log(
@@ -400,9 +395,9 @@ export class ModulesLogger {
400
395
  }
401
396
 
402
397
  public printIntervalMinedBlockNumber(
403
- blockNumber: number,
398
+ blockNumber: bigint,
404
399
  isEmpty: boolean,
405
- baseFeePerGas?: BN
400
+ baseFeePerGas?: bigint
406
401
  ) {
407
402
  if (this._emptyIntervalMinedBlocksRangeStart !== undefined) {
408
403
  this._print(
@@ -433,7 +428,10 @@ export class ModulesLogger {
433
428
  }
434
429
  }
435
430
 
436
- public logEmptyHardhatMinedBlock(blockNumber: number, baseFeePerGas?: BN) {
431
+ public logEmptyHardhatMinedBlock(
432
+ blockNumber: bigint,
433
+ baseFeePerGas?: bigint
434
+ ) {
437
435
  this._indent(() => {
438
436
  if (this._emptyHardhatMinedBlocksRangeStart !== undefined) {
439
437
  this._log(
@@ -568,7 +566,7 @@ export class ModulesLogger {
568
566
  tx: TypedTransaction,
569
567
  txTrace: GatherTracesResult,
570
568
  code: Buffer,
571
- txGasUsed: number,
569
+ txGasUsed: bigint,
572
570
  {
573
571
  highlightTxHash,
574
572
  }: {
@@ -590,11 +588,8 @@ export class ModulesLogger {
590
588
  this._logContractAndFunctionName(txTrace.trace, code);
591
589
  this._logTxFrom(tx.getSenderAddress().toBuffer());
592
590
  this._logTxTo(tx.to?.toBuffer(), txTrace.trace);
593
- this._logTxValue(new BN(tx.value));
594
- this._logWithTitle(
595
- "Gas used",
596
- `${txGasUsed} of ${tx.gasLimit.toNumber()}`
597
- );
591
+ this._logTxValue(tx.value);
592
+ this._logWithTitle("Gas used", `${txGasUsed} of ${tx.gasLimit}`);
598
593
 
599
594
  this._logConsoleLogMessages(txTrace.consoleLogMessages);
600
595
 
@@ -741,7 +736,7 @@ export class ModulesLogger {
741
736
  this._logWithTitle("To", toString);
742
737
  }
743
738
 
744
- private _logTxValue(value: BN) {
739
+ private _logTxValue(value: bigint) {
745
740
  this._logWithTitle("Value", weiToHumanReadableString(value));
746
741
  }
747
742
 
@@ -750,9 +745,7 @@ export class ModulesLogger {
750
745
  }
751
746
 
752
747
  private _logBlockNumber(block: Block) {
753
- this._log(
754
- `Block #${block.header.number.toNumber()}: ${bufferToHex(block.hash())}`
755
- );
748
+ this._log(`Block #${block.header.number}: ${bufferToHex(block.hash())}`);
756
749
  }
757
750
 
758
751
  private _logEmptyLineBetweenTransactions(
@@ -1,4 +1,4 @@
1
- import Common from "@ethereumjs/common";
1
+ import { Common } from "@ignored/common";
2
2
 
3
3
  import { numberToRpcQuantity } from "../../../core/jsonrpc/types/base-types";
4
4
  import { validateParams } from "../../../core/jsonrpc/types/input/validation";
@@ -1,4 +1,5 @@
1
- import { Address, toRpcSig } from "ethereumjs-util";
1
+ import { Address, toRpcSig } from "@ignored/util";
2
+
2
3
  import { rpcAddress, rpcData } from "../../../core/jsonrpc/types/base-types";
3
4
  import { validateParams } from "../../../core/jsonrpc/types/input/validation";
4
5
  import { MethodNotFoundError } from "../../../core/providers/errors";
@@ -1,4 +1,5 @@
1
- import { keccak256 } from "ethereumjs-util";
1
+ import { arrToBufArr, bufArrToArr } from "@ignored/util";
2
+ import { keccak256 } from "ethereum-cryptography/keccak";
2
3
 
3
4
  import {
4
5
  bufferToRpcData,
@@ -34,8 +35,8 @@ export class Web3Module {
34
35
 
35
36
  private async _clientVersionAction(): Promise<string> {
36
37
  const hardhatPackage = await getPackageJson();
37
- const ethereumjsVMPackage = require("@ethereumjs/vm/package.json");
38
- return `HardhatNetwork/${hardhatPackage.version}/@ethereumjs/vm/${ethereumjsVMPackage.version}`;
38
+ const ethereumjsVMPackage = require("@ignored/vm/package.json");
39
+ return `HardhatNetwork/${hardhatPackage.version}/@ignored/vm/${ethereumjsVMPackage.version}`;
39
40
  }
40
41
 
41
42
  // web3_sha3
@@ -45,6 +46,6 @@ export class Web3Module {
45
46
  }
46
47
 
47
48
  private async _sha3Action(buffer: Buffer): Promise<string> {
48
- return bufferToRpcData(keccak256(buffer));
49
+ return bufferToRpcData(arrToBufArr(keccak256(bufArrToArr(buffer))));
49
50
  }
50
51
  }
@@ -1,12 +1,12 @@
1
1
  import type { ReturnData } from "./return-data";
2
2
 
3
- import { Block } from "@ethereumjs/block";
4
- import { RunBlockResult } from "@ethereumjs/vm/dist/runBlock";
5
- import { BN } from "ethereumjs-util";
3
+ import { Block } from "@ignored/block";
4
+ import { RunBlockResult } from "@ignored/vm";
6
5
 
7
6
  import { HARDHAT_MEMPOOL_SUPPORTED_ORDERS } from "../../constants";
8
7
  import { BuildInfo, HardhatNetworkChainsConfig } from "../../../types";
9
8
  import { MessageTrace } from "../stack-traces/message-trace";
9
+ import { RandomBufferGenerator } from "./utils/random";
10
10
 
11
11
  export type NodeConfig = LocalNodeConfig | ForkedNodeConfig;
12
12
 
@@ -18,17 +18,17 @@ export function isForkedNodeConfig(
18
18
 
19
19
  interface CommonConfig {
20
20
  automine: boolean;
21
- blockGasLimit: number;
21
+ blockGasLimit: bigint;
22
22
  chainId: number;
23
23
  genesisAccounts: GenesisAccount[];
24
24
  hardfork: string;
25
- minGasPrice: BN;
25
+ minGasPrice: bigint;
26
26
  networkId: number;
27
27
  networkName: string;
28
28
  allowUnlimitedContractSize?: boolean;
29
29
  initialDate?: Date;
30
30
  tracingConfig?: TracingConfig;
31
- initialBaseFeePerGas?: number;
31
+ initialBaseFeePerGas?: bigint;
32
32
  mempoolOrder: MempoolOrder;
33
33
  coinbase: string;
34
34
  chains: HardhatNetworkChainsConfig;
@@ -57,7 +57,7 @@ export type MempoolOrder = typeof HARDHAT_MEMPOOL_SUPPORTED_ORDERS[number];
57
57
 
58
58
  export interface GenesisAccount {
59
59
  privateKey: string;
60
- balance: string | number | BN;
60
+ balance: string | number | bigint;
61
61
  }
62
62
 
63
63
  export type AccessListBufferItem = [Buffer, Buffer[]];
@@ -65,16 +65,16 @@ export type AccessListBufferItem = [Buffer, Buffer[]];
65
65
  export interface CallParams {
66
66
  to?: Buffer;
67
67
  from: Buffer;
68
- gasLimit: BN;
69
- value: BN;
68
+ gasLimit: bigint;
69
+ value: bigint;
70
70
  data: Buffer;
71
- // We use this access list format because @ethereumjs/tx access list data
71
+ // We use this access list format because @ignored/tx access list data
72
72
  // forces us to use it or stringify them
73
73
  accessList?: AccessListBufferItem[];
74
74
  // Fee params
75
- gasPrice?: BN;
76
- maxFeePerGas?: BN;
77
- maxPriorityFeePerGas?: BN;
75
+ gasPrice?: bigint;
76
+ maxFeePerGas?: bigint;
77
+ maxPriorityFeePerGas?: bigint;
78
78
  }
79
79
 
80
80
  export type TransactionParams =
@@ -86,19 +86,19 @@ interface BaseTransactionParams {
86
86
  // `to` should be undefined for contract creation
87
87
  to?: Buffer;
88
88
  from: Buffer;
89
- gasLimit: BN;
90
- value: BN;
89
+ gasLimit: bigint;
90
+ value: bigint;
91
91
  data: Buffer;
92
- nonce: BN;
92
+ nonce: bigint;
93
93
  }
94
94
 
95
95
  export interface LegacyTransactionParams extends BaseTransactionParams {
96
- gasPrice: BN;
96
+ gasPrice: bigint;
97
97
  }
98
98
 
99
99
  export interface AccessListTransactionParams extends BaseTransactionParams {
100
- gasPrice: BN;
101
- // We use this access list format because @ethereumjs/tx access list data
100
+ gasPrice: bigint;
101
+ // We use this access list format because @ignored/tx access list data
102
102
  // forces us to use it or stringify them
103
103
  accessList: AccessListBufferItem[];
104
104
  // We don't include chainId as it's not necessary, the node
@@ -107,13 +107,13 @@ export interface AccessListTransactionParams extends BaseTransactionParams {
107
107
 
108
108
  export interface EIP1559TransactionParams extends BaseTransactionParams {
109
109
  accessList: AccessListBufferItem[];
110
- maxFeePerGas: BN;
111
- maxPriorityFeePerGas: BN;
110
+ maxFeePerGas: bigint;
111
+ maxPriorityFeePerGas: bigint;
112
112
  }
113
113
 
114
114
  export interface FilterParams {
115
- fromBlock: BN;
116
- toBlock: BN;
115
+ fromBlock: bigint;
116
+ toBlock: bigint;
117
117
  addresses: Buffer[];
118
118
  normalizedTopics: Array<Array<Buffer | null> | null>;
119
119
  }
@@ -124,11 +124,12 @@ export interface Snapshot {
124
124
  latestBlock: Block;
125
125
  stateRoot: Buffer;
126
126
  txPoolSnapshotId: number;
127
- blockTimeOffsetSeconds: BN;
128
- nextBlockTimestamp: BN;
129
- irregularStatesByBlockNumber: Map<string, Buffer>;
130
- userProvidedNextBlockBaseFeePerGas: BN | undefined;
127
+ blockTimeOffsetSeconds: bigint;
128
+ nextBlockTimestamp: bigint;
129
+ irregularStatesByBlockNumber: Map<bigint, Buffer>;
130
+ userProvidedNextBlockBaseFeePerGas: bigint | undefined;
131
131
  coinbase: string;
132
+ mixHashGenerator: RandomBufferGenerator;
132
133
  }
133
134
 
134
135
  export type SendTransactionResult =
@@ -147,7 +148,7 @@ export interface RunCallResult extends GatherTracesResult {
147
148
  }
148
149
 
149
150
  export interface EstimateGasResult extends GatherTracesResult {
150
- estimation: BN;
151
+ estimation: bigint;
151
152
  }
152
153
 
153
154
  export interface GatherTracesResult {
@@ -157,8 +158,8 @@ export interface GatherTracesResult {
157
158
  }
158
159
 
159
160
  export interface FeeHistory {
160
- oldestBlock: BN;
161
- baseFeePerGas: BN[];
161
+ oldestBlock: bigint;
162
+ baseFeePerGas: bigint[];
162
163
  gasUsedRatio: number[];
163
- reward?: BN[][];
164
+ reward?: bigint[][];
164
165
  }