hardhat 2.13.0-dev.1 → 2.13.0-dev.3

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 (367) hide show
  1. package/builtin-tasks/compile.js +17 -7
  2. package/builtin-tasks/compile.js.map +1 -1
  3. package/builtin-tasks/flatten.js +10 -4
  4. package/builtin-tasks/flatten.js.map +1 -1
  5. package/builtin-tasks/help.js +2 -4
  6. package/builtin-tasks/help.js.map +1 -1
  7. package/builtin-tasks/task-names.d.ts +1 -0
  8. package/builtin-tasks/task-names.d.ts.map +1 -1
  9. package/builtin-tasks/task-names.js +3 -2
  10. package/builtin-tasks/task-names.js.map +1 -1
  11. package/builtin-tasks/test.js +22 -1
  12. package/builtin-tasks/test.js.map +1 -1
  13. package/internal/artifacts.d.ts +5 -0
  14. package/internal/artifacts.d.ts.map +1 -1
  15. package/internal/artifacts.js +29 -10
  16. package/internal/artifacts.js.map +1 -1
  17. package/internal/cli/bootstrap.d.ts +1 -0
  18. package/internal/cli/bootstrap.js +12 -20
  19. package/internal/cli/bootstrap.js.map +1 -1
  20. package/internal/cli/cli.d.ts +0 -1
  21. package/internal/cli/cli.d.ts.map +1 -1
  22. package/internal/cli/cli.js +24 -24
  23. package/internal/cli/cli.js.map +1 -1
  24. package/internal/cli/project-creation.d.ts +1 -1
  25. package/internal/cli/project-creation.d.ts.map +1 -1
  26. package/internal/cli/project-creation.js +105 -25
  27. package/internal/cli/project-creation.js.map +1 -1
  28. package/internal/cli/prompt.d.ts +2 -2
  29. package/internal/cli/prompt.d.ts.map +1 -1
  30. package/internal/cli/prompt.js +1 -2
  31. package/internal/cli/prompt.js.map +1 -1
  32. package/internal/cli/types.d.ts +1 -0
  33. package/internal/cli/types.d.ts.map +1 -1
  34. package/internal/core/config/config-env.d.ts +5 -11
  35. package/internal/core/config/config-env.d.ts.map +1 -1
  36. package/internal/core/config/config-env.js +2 -13
  37. package/internal/core/config/config-env.js.map +1 -1
  38. package/internal/core/config/config-loading.d.ts +2 -1
  39. package/internal/core/config/config-loading.d.ts.map +1 -1
  40. package/internal/core/config/config-loading.js +25 -7
  41. package/internal/core/config/config-loading.js.map +1 -1
  42. package/internal/core/config/config-resolution.d.ts.map +1 -1
  43. package/internal/core/config/config-resolution.js +2 -1
  44. package/internal/core/config/config-resolution.js.map +1 -1
  45. package/internal/core/config/config-validation.d.ts +2 -0
  46. package/internal/core/config/config-validation.d.ts.map +1 -1
  47. package/internal/core/config/config-validation.js +18 -1
  48. package/internal/core/config/config-validation.js.map +1 -1
  49. package/internal/core/config/extenders.d.ts +4 -7
  50. package/internal/core/config/extenders.d.ts.map +1 -1
  51. package/internal/core/config/extenders.js +5 -12
  52. package/internal/core/config/extenders.js.map +1 -1
  53. package/internal/core/errors-list.d.ts +35 -7
  54. package/internal/core/errors-list.d.ts.map +1 -1
  55. package/internal/core/errors-list.js +117 -85
  56. package/internal/core/errors-list.js.map +1 -1
  57. package/internal/core/flamegraph.js +10 -10
  58. package/internal/core/jsonrpc/types/output/metadata.d.ts +13 -0
  59. package/internal/core/jsonrpc/types/output/metadata.d.ts.map +1 -0
  60. package/internal/core/jsonrpc/types/output/metadata.js +3 -0
  61. package/internal/core/jsonrpc/types/output/metadata.js.map +1 -0
  62. package/internal/core/project-structure.d.ts.map +1 -1
  63. package/internal/core/project-structure.js +6 -0
  64. package/internal/core/project-structure.js.map +1 -1
  65. package/internal/core/providers/accounts.d.ts.map +1 -1
  66. package/internal/core/providers/accounts.js +4 -1
  67. package/internal/core/providers/accounts.js.map +1 -1
  68. package/internal/core/providers/backwards-compatibility.d.ts.map +1 -1
  69. package/internal/core/providers/backwards-compatibility.js +3 -0
  70. package/internal/core/providers/backwards-compatibility.js.map +1 -1
  71. package/internal/core/providers/construction.d.ts.map +1 -1
  72. package/internal/core/providers/construction.js +25 -5
  73. package/internal/core/providers/construction.js.map +1 -1
  74. package/internal/core/providers/gas-providers.d.ts +1 -1
  75. package/internal/core/providers/gas-providers.d.ts.map +1 -1
  76. package/internal/core/providers/gas-providers.js +1 -1
  77. package/internal/core/providers/gas-providers.js.map +1 -1
  78. package/internal/core/providers/http.d.ts +2 -2
  79. package/internal/core/providers/http.d.ts.map +1 -1
  80. package/internal/core/providers/http.js +41 -19
  81. package/internal/core/providers/http.js.map +1 -1
  82. package/internal/core/runtime-environment.d.ts +4 -2
  83. package/internal/core/runtime-environment.d.ts.map +1 -1
  84. package/internal/core/runtime-environment.js +39 -47
  85. package/internal/core/runtime-environment.js.map +1 -1
  86. package/internal/core/tasks/dsl.d.ts +6 -6
  87. package/internal/core/tasks/dsl.d.ts.map +1 -1
  88. package/internal/core/tasks/dsl.js.map +1 -1
  89. package/internal/core/tasks/task-definitions.d.ts +2 -2
  90. package/internal/core/tasks/task-definitions.d.ts.map +1 -1
  91. package/internal/core/tasks/task-definitions.js.map +1 -1
  92. package/internal/hardhat-network/jsonrpc/client.d.ts.map +1 -1
  93. package/internal/hardhat-network/jsonrpc/client.js +5 -3
  94. package/internal/hardhat-network/jsonrpc/client.js.map +1 -1
  95. package/internal/hardhat-network/jsonrpc/handler.d.ts +1 -0
  96. package/internal/hardhat-network/jsonrpc/handler.d.ts.map +1 -1
  97. package/internal/hardhat-network/jsonrpc/handler.js +13 -18
  98. package/internal/hardhat-network/jsonrpc/handler.js.map +1 -1
  99. package/internal/hardhat-network/provider/RethnetState.d.ts +26 -0
  100. package/internal/hardhat-network/provider/RethnetState.d.ts.map +1 -0
  101. package/internal/hardhat-network/provider/RethnetState.js +84 -0
  102. package/internal/hardhat-network/provider/RethnetState.js.map +1 -0
  103. package/internal/hardhat-network/provider/modules/eth.js +4 -4
  104. package/internal/hardhat-network/provider/modules/evm.d.ts +2 -1
  105. package/internal/hardhat-network/provider/modules/evm.d.ts.map +1 -1
  106. package/internal/hardhat-network/provider/modules/evm.js +10 -4
  107. package/internal/hardhat-network/provider/modules/evm.js.map +1 -1
  108. package/internal/hardhat-network/provider/modules/hardhat.d.ts +2 -0
  109. package/internal/hardhat-network/provider/modules/hardhat.d.ts.map +1 -1
  110. package/internal/hardhat-network/provider/modules/hardhat.js +9 -0
  111. package/internal/hardhat-network/provider/modules/hardhat.js.map +1 -1
  112. package/internal/hardhat-network/provider/modules/web3.d.ts +3 -0
  113. package/internal/hardhat-network/provider/modules/web3.d.ts.map +1 -1
  114. package/internal/hardhat-network/provider/modules/web3.js +4 -4
  115. package/internal/hardhat-network/provider/modules/web3.js.map +1 -1
  116. package/internal/hardhat-network/provider/node-types.d.ts +1 -1
  117. package/internal/hardhat-network/provider/node-types.d.ts.map +1 -1
  118. package/internal/hardhat-network/provider/node.d.ts +6 -0
  119. package/internal/hardhat-network/provider/node.d.ts.map +1 -1
  120. package/internal/hardhat-network/provider/node.js +44 -5
  121. package/internal/hardhat-network/provider/node.js.map +1 -1
  122. package/internal/hardhat-network/provider/output.d.ts +1 -1
  123. package/internal/hardhat-network/provider/output.d.ts.map +1 -1
  124. package/internal/hardhat-network/provider/output.js +1 -1
  125. package/internal/hardhat-network/provider/output.js.map +1 -1
  126. package/internal/hardhat-network/provider/provider.d.ts +25 -21
  127. package/internal/hardhat-network/provider/provider.d.ts.map +1 -1
  128. package/internal/hardhat-network/provider/provider.js +26 -43
  129. package/internal/hardhat-network/provider/provider.js.map +1 -1
  130. package/internal/hardhat-network/provider/return-data.js +2 -2
  131. package/internal/hardhat-network/provider/return-data.js.map +1 -1
  132. package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.d.ts.map +1 -1
  133. package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.js +4 -2
  134. package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.js.map +1 -1
  135. package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.d.ts.map +1 -1
  136. package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.js +4 -2
  137. package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.js.map +1 -1
  138. package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.d.ts.map +1 -1
  139. package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.js +4 -2
  140. package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.js.map +1 -1
  141. package/internal/hardhat-network/provider/utils/bloom.d.ts +4 -0
  142. package/internal/hardhat-network/provider/utils/bloom.d.ts.map +1 -1
  143. package/internal/hardhat-network/provider/utils/bloom.js +6 -0
  144. package/internal/hardhat-network/provider/utils/bloom.js.map +1 -1
  145. package/internal/hardhat-network/provider/utils/convertToRethnet.d.ts +8 -25
  146. package/internal/hardhat-network/provider/utils/convertToRethnet.d.ts.map +1 -1
  147. package/internal/hardhat-network/provider/utils/convertToRethnet.js +122 -174
  148. package/internal/hardhat-network/provider/utils/convertToRethnet.js.map +1 -1
  149. package/internal/hardhat-network/provider/utils/makeFakeSignature.d.ts +7 -0
  150. package/internal/hardhat-network/provider/utils/makeFakeSignature.d.ts.map +1 -0
  151. package/internal/hardhat-network/provider/utils/makeFakeSignature.js +31 -0
  152. package/internal/hardhat-network/provider/utils/makeFakeSignature.js.map +1 -0
  153. package/internal/hardhat-network/provider/utils/makeForkClient.d.ts +1 -0
  154. package/internal/hardhat-network/provider/utils/makeForkClient.d.ts.map +1 -1
  155. package/internal/hardhat-network/provider/utils/makeForkClient.js +4 -1
  156. package/internal/hardhat-network/provider/utils/makeForkClient.js.map +1 -1
  157. package/internal/hardhat-network/provider/utils/putGenesisBlock.d.ts +1 -1
  158. package/internal/hardhat-network/provider/utils/putGenesisBlock.d.ts.map +1 -1
  159. package/internal/hardhat-network/provider/utils/putGenesisBlock.js +2 -2
  160. package/internal/hardhat-network/provider/utils/putGenesisBlock.js.map +1 -1
  161. package/internal/hardhat-network/provider/vm/block-builder.d.ts +4 -3
  162. package/internal/hardhat-network/provider/vm/block-builder.d.ts.map +1 -1
  163. package/internal/hardhat-network/provider/vm/block-builder.js +9 -5
  164. package/internal/hardhat-network/provider/vm/block-builder.js.map +1 -1
  165. package/internal/hardhat-network/provider/vm/creation.d.ts +10 -0
  166. package/internal/hardhat-network/provider/vm/creation.d.ts.map +1 -0
  167. package/internal/hardhat-network/provider/vm/creation.js +29 -0
  168. package/internal/hardhat-network/provider/vm/creation.js.map +1 -0
  169. package/internal/hardhat-network/provider/vm/dual.d.ts +14 -14
  170. package/internal/hardhat-network/provider/vm/dual.d.ts.map +1 -1
  171. package/internal/hardhat-network/provider/vm/dual.js +426 -58
  172. package/internal/hardhat-network/provider/vm/dual.js.map +1 -1
  173. package/internal/hardhat-network/provider/vm/ethereumjs.d.ts +23 -22
  174. package/internal/hardhat-network/provider/vm/ethereumjs.d.ts.map +1 -1
  175. package/internal/hardhat-network/provider/vm/ethereumjs.js +181 -37
  176. package/internal/hardhat-network/provider/vm/ethereumjs.js.map +1 -1
  177. package/internal/hardhat-network/provider/vm/exit.d.ts +23 -0
  178. package/internal/hardhat-network/provider/vm/exit.d.ts.map +1 -0
  179. package/internal/hardhat-network/provider/vm/exit.js +130 -0
  180. package/internal/hardhat-network/provider/vm/exit.js.map +1 -0
  181. package/internal/hardhat-network/provider/vm/rethnet.d.ts +18 -30
  182. package/internal/hardhat-network/provider/vm/rethnet.d.ts.map +1 -1
  183. package/internal/hardhat-network/provider/vm/rethnet.js +164 -51
  184. package/internal/hardhat-network/provider/vm/rethnet.js.map +1 -1
  185. package/internal/hardhat-network/provider/vm/vm-adapter.d.ts +29 -13
  186. package/internal/hardhat-network/provider/vm/vm-adapter.d.ts.map +1 -1
  187. package/internal/hardhat-network/stack-traces/compiler-to-model.d.ts.map +1 -1
  188. package/internal/hardhat-network/stack-traces/compiler-to-model.js +37 -11
  189. package/internal/hardhat-network/stack-traces/compiler-to-model.js.map +1 -1
  190. package/internal/hardhat-network/stack-traces/consoleLogger.js.map +1 -1
  191. package/internal/hardhat-network/stack-traces/constants.d.ts +1 -1
  192. package/internal/hardhat-network/stack-traces/constants.js +1 -1
  193. package/internal/hardhat-network/stack-traces/debug.d.ts.map +1 -1
  194. package/internal/hardhat-network/stack-traces/debug.js +6 -2
  195. package/internal/hardhat-network/stack-traces/debug.js.map +1 -1
  196. package/internal/hardhat-network/stack-traces/error-inferrer.d.ts +1 -0
  197. package/internal/hardhat-network/stack-traces/error-inferrer.d.ts.map +1 -1
  198. package/internal/hardhat-network/stack-traces/error-inferrer.js +87 -60
  199. package/internal/hardhat-network/stack-traces/error-inferrer.js.map +1 -1
  200. package/internal/hardhat-network/stack-traces/model.d.ts +3 -1
  201. package/internal/hardhat-network/stack-traces/model.d.ts.map +1 -1
  202. package/internal/hardhat-network/stack-traces/model.js +9 -1
  203. package/internal/hardhat-network/stack-traces/model.js.map +1 -1
  204. package/internal/hardhat-network/stack-traces/solidity-errors.d.ts.map +1 -1
  205. package/internal/hardhat-network/stack-traces/solidity-errors.js +4 -3
  206. package/internal/hardhat-network/stack-traces/solidity-errors.js.map +1 -1
  207. package/internal/hardhat-network/stack-traces/solidity-stack-trace.d.ts +2 -2
  208. package/internal/hardhat-network/stack-traces/solidity-stack-trace.d.ts.map +1 -1
  209. package/internal/hardhat-network/stack-traces/solidityTracer.d.ts.map +1 -1
  210. package/internal/hardhat-network/stack-traces/solidityTracer.js +1 -0
  211. package/internal/hardhat-network/stack-traces/solidityTracer.js.map +1 -1
  212. package/internal/hardhat-network/stack-traces/vm-debug-tracer.d.ts.map +1 -1
  213. package/internal/hardhat-network/stack-traces/vm-debug-tracer.js +2 -1
  214. package/internal/hardhat-network/stack-traces/vm-debug-tracer.js.map +1 -1
  215. package/internal/lib/hardhat-lib.d.ts.map +1 -1
  216. package/internal/lib/hardhat-lib.js +1 -4
  217. package/internal/lib/hardhat-lib.js.map +1 -1
  218. package/internal/solidity/compiler/downloader.js +2 -2
  219. package/internal/solidity/compiler/downloader.js.map +1 -1
  220. package/internal/solidity/compiler/index.d.ts.map +1 -1
  221. package/internal/solidity/compiler/index.js +7 -1
  222. package/internal/solidity/compiler/index.js.map +1 -1
  223. package/internal/solidity/dependencyGraph.d.ts.map +1 -1
  224. package/internal/solidity/dependencyGraph.js +2 -0
  225. package/internal/solidity/dependencyGraph.js.map +1 -1
  226. package/internal/solidity/resolver.d.ts +4 -3
  227. package/internal/solidity/resolver.d.ts.map +1 -1
  228. package/internal/solidity/resolver.js +26 -7
  229. package/internal/solidity/resolver.js.map +1 -1
  230. package/internal/util/abi-helpers.d.ts +1 -0
  231. package/internal/util/abi-helpers.d.ts.map +1 -1
  232. package/internal/util/abi-helpers.js +9 -0
  233. package/internal/util/abi-helpers.js.map +1 -1
  234. package/internal/util/console.d.ts.map +1 -1
  235. package/internal/util/console.js +1 -1
  236. package/internal/util/console.js.map +1 -1
  237. package/internal/util/download.d.ts +3 -1
  238. package/internal/util/download.d.ts.map +1 -1
  239. package/internal/util/download.js +14 -12
  240. package/internal/util/download.js.map +1 -1
  241. package/internal/util/keys-derivation.d.ts.map +1 -1
  242. package/internal/util/keys-derivation.js +4 -1
  243. package/internal/util/keys-derivation.js.map +1 -1
  244. package/internal/util/packageInfo.d.ts +7 -1
  245. package/internal/util/packageInfo.d.ts.map +1 -1
  246. package/internal/util/packageInfo.js +23 -11
  247. package/internal/util/packageInfo.js.map +1 -1
  248. package/internal/util/proxy.d.ts +2 -0
  249. package/internal/util/proxy.d.ts.map +1 -0
  250. package/internal/util/proxy.js +19 -0
  251. package/internal/util/proxy.js.map +1 -0
  252. package/package.json +9 -10
  253. package/recommended-gitignore.txt +1 -1
  254. package/register.js +1 -4
  255. package/register.js.map +1 -1
  256. package/sample-projects/javascript/hardhat.config.js +1 -1
  257. package/sample-projects/javascript/scripts/deploy.js +2 -2
  258. package/sample-projects/javascript-esm/LICENSE.md +11 -0
  259. package/sample-projects/javascript-esm/README.md +13 -0
  260. package/sample-projects/javascript-esm/contracts/Lock.sol +34 -0
  261. package/sample-projects/javascript-esm/hardhat.config.cjs +6 -0
  262. package/sample-projects/javascript-esm/scripts/deploy.js +22 -0
  263. package/sample-projects/javascript-esm/test/Lock.js +123 -0
  264. package/sample-projects/typescript/hardhat.config.ts +1 -1
  265. package/sample-projects/typescript/scripts/deploy.ts +2 -2
  266. package/sample-projects/typescript/tsconfig.json +2 -1
  267. package/src/builtin-tasks/compile.ts +30 -11
  268. package/src/builtin-tasks/flatten.ts +18 -4
  269. package/src/builtin-tasks/help.ts +15 -16
  270. package/src/builtin-tasks/task-names.ts +2 -0
  271. package/src/builtin-tasks/test.ts +30 -2
  272. package/src/internal/artifacts.ts +947 -0
  273. package/src/internal/cli/bootstrap.ts +14 -36
  274. package/src/internal/cli/cli.ts +44 -35
  275. package/src/internal/cli/project-creation.ts +129 -32
  276. package/src/internal/cli/prompt.ts +2 -4
  277. package/src/internal/cli/types.ts +2 -0
  278. package/src/internal/core/config/config-env.ts +15 -27
  279. package/src/internal/core/config/config-loading.ts +35 -11
  280. package/src/internal/core/config/config-resolution.ts +4 -3
  281. package/src/internal/core/config/config-validation.ts +20 -0
  282. package/src/internal/core/config/extenders.ts +6 -15
  283. package/src/internal/core/errors-list.ts +121 -85
  284. package/src/internal/core/flamegraph.ts +10 -10
  285. package/src/internal/core/jsonrpc/types/output/metadata.ts +32 -0
  286. package/src/internal/core/project-structure.ts +8 -0
  287. package/src/internal/core/providers/accounts.ts +5 -2
  288. package/src/internal/core/providers/backwards-compatibility.ts +3 -0
  289. package/src/internal/core/providers/construction.ts +29 -24
  290. package/src/internal/core/providers/gas-providers.ts +1 -1
  291. package/src/internal/core/providers/http.ts +38 -26
  292. package/src/internal/core/runtime-environment.ts +65 -60
  293. package/src/internal/core/tasks/dsl.ts +17 -17
  294. package/src/internal/core/tasks/task-definitions.ts +6 -2
  295. package/src/internal/hardhat-network/jsonrpc/client.ts +7 -4
  296. package/src/internal/hardhat-network/jsonrpc/handler.ts +31 -28
  297. package/src/internal/hardhat-network/provider/modules/eth.ts +4 -4
  298. package/src/internal/hardhat-network/provider/modules/evm.ts +15 -3
  299. package/src/internal/hardhat-network/provider/modules/hardhat.ts +14 -0
  300. package/src/internal/hardhat-network/provider/modules/web3.ts +4 -4
  301. package/src/internal/hardhat-network/provider/node-types.ts +1 -1
  302. package/src/internal/hardhat-network/provider/node.ts +63 -1
  303. package/src/internal/hardhat-network/provider/output.ts +2 -2
  304. package/src/internal/hardhat-network/provider/provider.ts +61 -50
  305. package/src/internal/hardhat-network/provider/return-data.ts +2 -2
  306. package/src/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.ts +5 -2
  307. package/src/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.ts +5 -2
  308. package/src/internal/hardhat-network/provider/transactions/FakeSenderTransaction.ts +5 -2
  309. package/src/internal/hardhat-network/provider/utils/makeFakeSignature.ts +46 -0
  310. package/src/internal/hardhat-network/provider/utils/makeForkClient.ts +10 -1
  311. package/src/internal/hardhat-network/provider/utils/putGenesisBlock.ts +2 -2
  312. package/src/internal/hardhat-network/stack-traces/compiler-to-model.ts +73 -11
  313. package/src/internal/hardhat-network/stack-traces/consoleLogger.ts +1 -1
  314. package/src/internal/hardhat-network/stack-traces/constants.ts +1 -1
  315. package/src/internal/hardhat-network/stack-traces/debug.ts +9 -2
  316. package/src/internal/hardhat-network/stack-traces/error-inferrer.ts +179 -95
  317. package/src/internal/hardhat-network/stack-traces/model.ts +11 -1
  318. package/src/internal/hardhat-network/stack-traces/solidity-errors.ts +5 -3
  319. package/src/internal/hardhat-network/stack-traces/solidity-stack-trace.ts +2 -2
  320. package/src/internal/hardhat-network/stack-traces/solidityTracer.ts +3 -0
  321. package/src/internal/hardhat-network/stack-traces/vm-debug-tracer.ts +4 -1
  322. package/src/internal/lib/hardhat-lib.ts +1 -6
  323. package/src/internal/solidity/compiler/downloader.ts +3 -3
  324. package/src/internal/solidity/compiler/index.ts +9 -1
  325. package/src/internal/solidity/dependencyGraph.ts +2 -0
  326. package/src/internal/solidity/resolver.ts +38 -11
  327. package/src/internal/util/abi-helpers.ts +9 -0
  328. package/src/internal/util/console.ts +4 -2
  329. package/src/internal/util/download.ts +16 -16
  330. package/src/internal/util/keys-derivation.ts +4 -1
  331. package/src/internal/util/packageInfo.ts +33 -10
  332. package/src/internal/util/proxy.ts +18 -0
  333. package/src/register.ts +1 -6
  334. package/src/types/artifacts.ts +19 -105
  335. package/src/types/config.ts +2 -0
  336. package/src/types/runtime.ts +16 -13
  337. package/src/utils/source-names.ts +15 -0
  338. package/types/artifacts.d.ts +14 -90
  339. package/types/artifacts.d.ts.map +1 -1
  340. package/types/config.d.ts +2 -0
  341. package/types/config.d.ts.map +1 -1
  342. package/types/runtime.d.ts +9 -10
  343. package/types/runtime.d.ts.map +1 -1
  344. package/utils/source-names.d.ts +5 -0
  345. package/utils/source-names.d.ts.map +1 -1
  346. package/utils/source-names.js +14 -1
  347. package/utils/source-names.js.map +1 -1
  348. package/internal/artifacts/caching.d.ts +0 -27
  349. package/internal/artifacts/caching.d.ts.map +0 -1
  350. package/internal/artifacts/caching.js +0 -167
  351. package/internal/artifacts/caching.js.map +0 -1
  352. package/internal/artifacts/index.d.ts +0 -44
  353. package/internal/artifacts/index.d.ts.map +0 -1
  354. package/internal/artifacts/index.js +0 -187
  355. package/internal/artifacts/index.js.map +0 -1
  356. package/internal/artifacts/mutable.d.ts +0 -29
  357. package/internal/artifacts/mutable.d.ts.map +0 -1
  358. package/internal/artifacts/mutable.js +0 -226
  359. package/internal/artifacts/mutable.js.map +0 -1
  360. package/internal/artifacts/readonly.d.ts +0 -88
  361. package/internal/artifacts/readonly.d.ts.map +0 -1
  362. package/internal/artifacts/readonly.js +0 -324
  363. package/internal/artifacts/readonly.js.map +0 -1
  364. package/src/internal/artifacts/caching.ts +0 -239
  365. package/src/internal/artifacts/index.ts +0 -296
  366. package/src/internal/artifacts/mutable.ts +0 -330
  367. package/src/internal/artifacts/readonly.ts +0 -438
@@ -1,87 +1,89 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.rethnetResultToRunTxResult = exports.createRethnetFromHardhatDB = exports.ethereumjsTransactionToRethnet = exports.HardhatDB = void 0;
4
- const ethereumjs_evm_1 = require("@nomicfoundation/ethereumjs-evm");
5
- const exceptions_1 = require("@nomicfoundation/ethereumjs-evm/dist/exceptions");
6
- const ethereumjs_statemanager_1 = require("@nomicfoundation/ethereumjs-statemanager");
3
+ exports.rethnetResultToRunTxResult = exports.ethereumjsTransactionToRethnet = exports.ethereumjsHeaderDataToRethnet = exports.ethereumsjsHardforkToRethnet = exports.ethereumjsBlockHeaderToRethnet = void 0;
7
4
  const ethereumjs_tx_1 = require("@nomicfoundation/ethereumjs-tx");
8
5
  const ethereumjs_util_1 = require("@nomicfoundation/ethereumjs-util");
9
- const rethnet_evm_1 = require("rethnet-evm");
10
- const errors_1 = require("../../../core/errors");
11
- const errors_list_1 = require("../../../core/errors-list");
12
- class HardhatDB {
13
- constructor(stateManager, blockchain) {
14
- this._stateManager = stateManager;
15
- this._blockchain = blockchain;
16
- }
17
- async commit() {
18
- return this._stateManager.commit();
19
- }
20
- async checkpoint() {
21
- return this._stateManager.checkpoint();
22
- }
23
- async revert() {
24
- return this._stateManager.revert();
25
- }
26
- async getAccountByAddress(address) {
27
- return this._stateManager.getAccount(new ethereumjs_util_1.Address(address));
28
- }
29
- async getAccountStorageSlot(address, index) {
30
- const key = (0, ethereumjs_util_1.setLengthLeft)((0, ethereumjs_util_1.bigIntToBuffer)(index), 32);
31
- let data = await this._stateManager.getContractStorage(new ethereumjs_util_1.Address(address), key);
32
- const EXPECTED_DATA_SIZE = 32;
33
- if (data.length < EXPECTED_DATA_SIZE) {
34
- data = Buffer.concat([Buffer.alloc(EXPECTED_DATA_SIZE - data.length, 0), data], EXPECTED_DATA_SIZE);
35
- }
36
- return (0, ethereumjs_util_1.bufferToBigInt)(data);
37
- }
38
- async getBlockHash(blockNumber) {
39
- const block = await this._blockchain?.getBlock(blockNumber);
40
- if (block === undefined || block === null) {
41
- throw new errors_1.HardhatError(errors_list_1.ERRORS.GENERAL.UNSUPPORTED_OPERATION, {
42
- error: "Block not found",
43
- });
44
- }
45
- return block.header.hash();
46
- }
47
- async getCodeByHash(codeHash) {
48
- if (this._stateManager instanceof ethereumjs_statemanager_1.DefaultStateManager) {
49
- // eslint-disable-next-line @typescript-eslint/dot-notation
50
- const db = this._stateManager._trie["_db"];
51
- const code = await db.get(Buffer.concat([Buffer.from("c"), codeHash]));
52
- if (code === null) {
53
- // eslint-disable-next-line @nomiclabs/hardhat-internal-rules/only-hardhat-error
54
- throw new Error("returning null in getCodeByHash is not supported");
55
- }
56
- return code;
57
- }
58
- // eslint-disable-next-line @nomiclabs/hardhat-internal-rules/only-hardhat-error
59
- throw new Error("getCodeByHash not implemented for ForkStateManager");
60
- }
61
- async getStorageRoot() {
62
- return this._stateManager.getStateRoot();
63
- }
64
- async insertAccount(address, account) {
65
- return this._stateManager.putAccount(new ethereumjs_util_1.Address(address), new ethereumjs_util_1.Account(account.nonce, account.balance, undefined, account.codeHash));
66
- }
67
- async setAccountBalance(address, balance) {
68
- return this._stateManager.modifyAccountFields(new ethereumjs_util_1.Address(address), {
69
- balance,
70
- });
71
- }
72
- async setAccountCode(address, code) {
73
- return this._stateManager.putContractCode(new ethereumjs_util_1.Address(address), code);
74
- }
75
- async setAccountNonce(address, nonce) {
76
- return this._stateManager.modifyAccountFields(new ethereumjs_util_1.Address(address), {
77
- nonce,
78
- });
79
- }
80
- async setAccountStorageSlot(address, index, value) {
81
- return this._stateManager.putContractStorage(new ethereumjs_util_1.Address(address), (0, ethereumjs_util_1.setLengthLeft)((0, ethereumjs_util_1.bigIntToBuffer)(index), 32), (0, ethereumjs_util_1.setLengthLeft)((0, ethereumjs_util_1.bigIntToBuffer)(value), 32));
6
+ const bigint_1 = require("../../../util/bigint");
7
+ const hardforks_1 = require("../../../util/hardforks");
8
+ const message_trace_1 = require("../../stack-traces/message-trace");
9
+ const exit_1 = require("../vm/exit");
10
+ const bloom_1 = require("./bloom");
11
+ /* eslint-disable @nomiclabs/hardhat-internal-rules/only-hardhat-error */
12
+ function ethereumjsBlockHeaderToRethnet(blockHeader) {
13
+ return {
14
+ parentHash: blockHeader.parentHash,
15
+ ommersHash: blockHeader.uncleHash,
16
+ beneficiary: blockHeader.coinbase.buf,
17
+ stateRoot: blockHeader.stateRoot,
18
+ transactionsRoot: blockHeader.transactionsTrie,
19
+ receiptsRoot: blockHeader.receiptTrie,
20
+ logsBloom: blockHeader.logsBloom,
21
+ difficulty: blockHeader.difficulty,
22
+ number: blockHeader.number,
23
+ gasLimit: blockHeader.gasLimit,
24
+ gasUsed: blockHeader.gasUsed,
25
+ timestamp: blockHeader.timestamp,
26
+ extraData: blockHeader.extraData,
27
+ mixHash: blockHeader.mixHash,
28
+ nonce: BigInt(`0x${blockHeader.nonce.toString("hex")}`),
29
+ baseFeePerGas: blockHeader.baseFeePerGas,
30
+ };
31
+ }
32
+ exports.ethereumjsBlockHeaderToRethnet = ethereumjsBlockHeaderToRethnet;
33
+ function ethereumsjsHardforkToRethnet(hardfork) {
34
+ switch (hardfork) {
35
+ case hardforks_1.HardforkName.FRONTIER:
36
+ return 0 /* Frontier */;
37
+ case hardforks_1.HardforkName.HOMESTEAD:
38
+ return 2 /* Homestead */;
39
+ case hardforks_1.HardforkName.DAO:
40
+ return 3 /* DaoFork */;
41
+ case hardforks_1.HardforkName.TANGERINE_WHISTLE:
42
+ return 4 /* Tangerine */;
43
+ case hardforks_1.HardforkName.SPURIOUS_DRAGON:
44
+ return 5 /* SpuriousDragon */;
45
+ case hardforks_1.HardforkName.BYZANTIUM:
46
+ return 6 /* Byzantium */;
47
+ case hardforks_1.HardforkName.CONSTANTINOPLE:
48
+ return 7 /* Constantinople */;
49
+ case hardforks_1.HardforkName.PETERSBURG:
50
+ return 8 /* Petersburg */;
51
+ case hardforks_1.HardforkName.ISTANBUL:
52
+ return 9 /* Istanbul */;
53
+ case hardforks_1.HardforkName.MUIR_GLACIER:
54
+ return 10 /* MuirGlacier */;
55
+ case hardforks_1.HardforkName.BERLIN:
56
+ return 11 /* Berlin */;
57
+ case hardforks_1.HardforkName.LONDON:
58
+ return 12 /* London */;
59
+ case hardforks_1.HardforkName.ARROW_GLACIER:
60
+ return 13 /* ArrowGlacier */;
61
+ case hardforks_1.HardforkName.GRAY_GLACIER:
62
+ return 14 /* GrayGlacier */;
63
+ case hardforks_1.HardforkName.MERGE:
64
+ return 15 /* Merge */;
65
+ default:
66
+ const _exhaustiveCheck = hardfork;
67
+ throw new Error(`Unknown hardfork name '${hardfork}', this shouldn't happen`);
82
68
  }
83
69
  }
84
- exports.HardhatDB = HardhatDB;
70
+ exports.ethereumsjsHardforkToRethnet = ethereumsjsHardforkToRethnet;
71
+ function ethereumjsHeaderDataToRethnet(headerData, difficulty, prevRandao) {
72
+ const coinbase = headerData?.coinbase === undefined
73
+ ? undefined
74
+ : (0, ethereumjs_util_1.toBuffer)(headerData.coinbase);
75
+ return {
76
+ number: (0, bigint_1.fromBigIntLike)(headerData?.number),
77
+ coinbase,
78
+ timestamp: (0, bigint_1.fromBigIntLike)(headerData?.timestamp),
79
+ difficulty,
80
+ prevrandao: prevRandao,
81
+ basefee: (0, bigint_1.fromBigIntLike)(headerData?.baseFeePerGas),
82
+ gasLimit: (0, bigint_1.fromBigIntLike)(headerData?.gasLimit),
83
+ parentHash: headerData?.parentHash,
84
+ };
85
+ }
86
+ exports.ethereumjsHeaderDataToRethnet = ethereumjsHeaderDataToRethnet;
85
87
  function ethereumjsTransactionToRethnet(tx) {
86
88
  const chainId = (_tx) => {
87
89
  if (_tx instanceof ethereumjs_tx_1.AccessListEIP2930Transaction) {
@@ -109,106 +111,52 @@ function ethereumjsTransactionToRethnet(tx) {
109
111
  return rethnetTx;
110
112
  }
111
113
  exports.ethereumjsTransactionToRethnet = ethereumjsTransactionToRethnet;
112
- function createRethnetFromHardhatDB(cfg, hardhatDB) {
113
- return rethnet_evm_1.Rethnet.withCallbacks(cfg, {
114
- getAccountByAddressFn: HardhatDB.prototype.getAccountByAddress.bind(hardhatDB),
115
- getAccountStorageSlotFn: HardhatDB.prototype.getAccountStorageSlot.bind(hardhatDB),
116
- getBlockHashFn: HardhatDB.prototype.getBlockHash.bind(hardhatDB),
117
- getCodeByHashFn: HardhatDB.prototype.getCodeByHash.bind(hardhatDB),
118
- }, null, {
119
- checkpointFn: HardhatDB.prototype.checkpoint.bind(hardhatDB),
120
- revertFn: HardhatDB.prototype.revert.bind(hardhatDB),
121
- getStorageRootFn: HardhatDB.prototype.getStorageRoot.bind(hardhatDB),
122
- insertAccountFn: HardhatDB.prototype.insertAccount.bind(hardhatDB),
123
- setAccountBalanceFn: HardhatDB.prototype.setAccountBalance.bind(hardhatDB),
124
- setAccountCodeFn: HardhatDB.prototype.setAccountCode.bind(hardhatDB),
125
- setAccountNonceFn: HardhatDB.prototype.setAccountNonce.bind(hardhatDB),
126
- setAccountStorageSlotFn: HardhatDB.prototype.setAccountStorageSlot.bind(hardhatDB),
127
- });
114
+ function rethnetLogsToBloom(logs) {
115
+ const bloom = new bloom_1.Bloom();
116
+ for (const log of logs) {
117
+ bloom.add(log.address);
118
+ for (const topic of log.topics) {
119
+ bloom.add(topic);
120
+ }
121
+ }
122
+ return bloom;
128
123
  }
129
- exports.createRethnetFromHardhatDB = createRethnetFromHardhatDB;
130
- function rethnetResultToRunTxResult(rethnetResult) {
131
- // We return an object with only the properties that are used by Hardhat.
132
- // To be extra sure that the other properties are not used, we add getters
133
- // that exit the process if accessed.
124
+ function rethnetResultToRunTxResult(rethnetResult, blockGasUsed) {
125
+ const createdAddress = (0, message_trace_1.isSuccessResult)(rethnetResult.result) &&
126
+ (0, message_trace_1.isCreateOutput)(rethnetResult.result.output)
127
+ ? rethnetResult.result.output.address
128
+ : undefined;
129
+ const exit = (0, message_trace_1.isSuccessResult)(rethnetResult.result)
130
+ ? exit_1.Exit.fromRethnetSuccessReason(rethnetResult.result.reason)
131
+ : (0, message_trace_1.isHaltResult)(rethnetResult.result)
132
+ ? exit_1.Exit.fromRethnetExceptionalHalt(rethnetResult.result.reason)
133
+ : new exit_1.Exit(exit_1.ExitCode.REVERT);
134
+ const returnValue = (0, message_trace_1.isRevertResult)(rethnetResult.result)
135
+ ? rethnetResult.result.output
136
+ : (0, message_trace_1.isSuccessResult)(rethnetResult.result)
137
+ ? rethnetResult.result.output.returnValue
138
+ : Buffer.from([]);
139
+ const bloom = (0, message_trace_1.isSuccessResult)(rethnetResult.result)
140
+ ? rethnetLogsToBloom(rethnetResult.result.logs)
141
+ : new bloom_1.Bloom(undefined);
134
142
  return {
135
- totalGasSpent: rethnetResult.gasUsed,
136
- gasRefund: rethnetResult.gasRefunded,
137
- createdAddress: rethnetResult.output.address !== undefined
138
- ? new ethereumjs_util_1.Address(rethnetResult.output.address)
139
- : undefined,
140
- execResult: {
141
- exceptionError: mapRethnetExitCodeToEthereumJsExceptionError(rethnetResult.exitCode),
142
- returnValue: rethnetResult.output.output ?? Buffer.from([]),
143
- get runState() {
144
- console.trace("execResult.runState not implemented");
145
- return process.exit(1);
146
- },
147
- get gas() {
148
- console.trace("execResult.gas not implemented");
149
- return process.exit(1);
150
- },
151
- get executionGasUsed() {
152
- console.trace("execResult.executionGasUsed not implemented");
153
- return process.exit(1);
154
- },
155
- get logs() {
156
- console.trace("execResult.logs not implemented");
157
- return process.exit(1);
158
- },
159
- get selfdestruct() {
160
- console.trace("execResult.selfdestruct not implemented");
161
- return process.exit(1);
162
- },
163
- get gasRefund() {
164
- console.trace("execResult.gasRefund not implemented");
165
- return process.exit(1);
166
- },
167
- },
168
- get bloom() {
169
- console.trace("bloom not implemented");
170
- return process.exit(1);
171
- },
172
- get amountSpent() {
173
- console.trace("amountSpent not implemented");
174
- return process.exit(1);
175
- },
176
- get receipt() {
177
- console.trace("receipt not implemented");
178
- return process.exit(1);
179
- },
180
- get accessList() {
181
- console.trace("accessList not implemented");
182
- return process.exit(1);
143
+ gasUsed: rethnetResult.result.gasUsed,
144
+ createdAddress: createdAddress !== undefined ? new ethereumjs_util_1.Address(createdAddress) : undefined,
145
+ exit,
146
+ returnValue,
147
+ bloom,
148
+ receipt: {
149
+ // Receipts have a 0 as status on error
150
+ status: exit.isError() ? 0 : 1,
151
+ cumulativeBlockGasUsed: blockGasUsed + rethnetResult.result.gasUsed,
152
+ bitvector: bloom.bitvector,
153
+ logs: (0, message_trace_1.isSuccessResult)(rethnetResult.result)
154
+ ? rethnetResult.result.logs.map((log) => {
155
+ return [log.address, log.topics, log.data];
156
+ })
157
+ : [],
183
158
  },
184
159
  };
185
160
  }
186
161
  exports.rethnetResultToRunTxResult = rethnetResultToRunTxResult;
187
- const rethnetExitCodeToEthereumJsError = new Map([
188
- [0x50, exceptions_1.ERROR.OUT_OF_GAS],
189
- [0x57, exceptions_1.ERROR.STACK_UNDERFLOW],
190
- [0x58, exceptions_1.ERROR.STACK_OVERFLOW],
191
- [0x54, exceptions_1.ERROR.INVALID_JUMP],
192
- [0x51, exceptions_1.ERROR.INVALID_OPCODE],
193
- [0x53, exceptions_1.ERROR.INVALID_OPCODE],
194
- [0x59, exceptions_1.ERROR.OUT_OF_RANGE],
195
- [0x20, exceptions_1.ERROR.REVERT],
196
- [0x52, exceptions_1.ERROR.STATIC_STATE_CHANGE],
197
- [0x60, exceptions_1.ERROR.CREATE_COLLISION],
198
- [0x01, exceptions_1.ERROR.STOP],
199
- [0x53, exceptions_1.ERROR.INVALID_BYTECODE_RESULT],
200
- [0x64, exceptions_1.ERROR.INITCODE_SIZE_VIOLATION],
201
- ]);
202
- function mapRethnetExitCodeToEthereumJsExceptionError(rethnetExitCode) {
203
- if (rethnetExitCode <= 0x03) {
204
- return;
205
- }
206
- const ethereumJsError = rethnetExitCodeToEthereumJsError.get(rethnetExitCode);
207
- if (ethereumJsError === undefined) {
208
- console.trace(`Couldn't map exit code ${rethnetExitCode}`);
209
- // eslint-disable-next-line @nomiclabs/hardhat-internal-rules/only-hardhat-error
210
- throw new Error(`Couldn't map exit code ${rethnetExitCode}`);
211
- }
212
- return new ethereumjs_evm_1.EvmError(ethereumJsError);
213
- }
214
162
  //# sourceMappingURL=convertToRethnet.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"convertToRethnet.js","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/utils/convertToRethnet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"convertToRethnet.js","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/utils/convertToRethnet.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { AccessListEIP2930Transaction, FeeMarketEIP1559Transaction, TxData } from "@nomicfoundation/ethereumjs-tx";
2
+ import { Address } from "@nomicfoundation/ethereumjs-util";
3
+ export declare function makeFakeSignature(tx: TxData | AccessListEIP2930Transaction | FeeMarketEIP1559Transaction, sender: Address): {
4
+ r: number;
5
+ s: number;
6
+ };
7
+ //# sourceMappingURL=makeFakeSignature.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"makeFakeSignature.d.ts","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/utils/makeFakeSignature.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,2BAA2B,EAC3B,MAAM,EACP,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAK3D,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,MAAM,GAAG,4BAA4B,GAAG,2BAA2B,EACvE,MAAM,EAAE,OAAO,GACd;IACD,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CA6BA"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeFakeSignature = void 0;
4
+ const hash_1 = require("../../../util/hash");
5
+ // Produces a signature with r and s values taken from a hash of the inputs.
6
+ function makeFakeSignature(tx, sender) {
7
+ const hashInputString = [
8
+ sender,
9
+ tx.nonce,
10
+ tx.gasLimit,
11
+ tx.value,
12
+ tx.to,
13
+ tx.data,
14
+ "gasPrice" in tx ? tx.gasPrice : "",
15
+ "chainId" in tx ? tx.chainId : "",
16
+ "maxPriorityFeePerGas" in tx ? tx.maxPriorityFeePerGas : "",
17
+ "maxFeePerGas" in tx ? tx.maxFeePerGas : "",
18
+ "accessList" in tx
19
+ ? tx.accessList?.map(([buf, bufs]) => [buf, ...bufs].map((b) => b.toString("hex")).join(";"))
20
+ : "",
21
+ ]
22
+ .map((a) => a?.toString() ?? "")
23
+ .join(",");
24
+ const hashDigest = (0, hash_1.createNonCryptographicHashBasedIdentifier)(Buffer.from(hashInputString));
25
+ return {
26
+ r: hashDigest.readUInt32LE(),
27
+ s: hashDigest.readUInt32LE(4),
28
+ };
29
+ }
30
+ exports.makeFakeSignature = makeFakeSignature;
31
+ //# sourceMappingURL=makeFakeSignature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"makeFakeSignature.js","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/utils/makeFakeSignature.ts"],"names":[],"mappings":";;;AAOA,6CAA+E;AAE/E,4EAA4E;AAC5E,SAAgB,iBAAiB,CAC/B,EAAuE,EACvE,MAAe;IAKf,MAAM,eAAe,GAAG;QACtB,MAAM;QACN,EAAE,CAAC,KAAK;QACR,EAAE,CAAC,QAAQ;QACX,EAAE,CAAC,KAAK;QACR,EAAE,CAAC,EAAE;QACL,EAAE,CAAC,IAAI;QACP,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;QACnC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACjC,sBAAsB,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE;QAC3D,cAAc,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;QAC3C,YAAY,IAAI,EAAE;YAChB,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CACjC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CACvD;YACH,CAAC,CAAC,EAAE;KACP;SACE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;SAC/B,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,MAAM,UAAU,GAAG,IAAA,gDAAyC,EAC1D,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAC7B,CAAC;IAEF,OAAO;QACL,CAAC,EAAE,UAAU,CAAC,YAAY,EAAE;QAC5B,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC;KAC9B,CAAC;AACJ,CAAC;AAnCD,8CAmCC"}
@@ -4,5 +4,6 @@ export declare function makeForkClient(forkConfig: ForkConfig, forkCachePath?: s
4
4
  forkClient: JsonRpcClient;
5
5
  forkBlockNumber: bigint;
6
6
  forkBlockTimestamp: number;
7
+ forkBlockHash: string;
7
8
  }>;
8
9
  //# sourceMappingURL=makeForkClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"makeForkClient.d.ts","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/utils/makeForkClient.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAe3C,wBAAsB,cAAc,CAClC,UAAU,EAAE,UAAU,EACtB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC;IACT,UAAU,EAAE,aAAa,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;CAC5B,CAAC,CA4DD"}
1
+ {"version":3,"file":"makeForkClient.d.ts","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/utils/makeForkClient.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAe3C,wBAAsB,cAAc,CAClC,UAAU,EAAE,UAAU,EACtB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC;IACT,UAAU,EAAE,aAAa,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC,CAmED"}
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.makeForkClient = void 0;
7
7
  const chalk_1 = __importDefault(require("chalk"));
8
8
  const constants_1 = require("../../../constants");
9
+ const errors_1 = require("../../../core/errors");
9
10
  const base_types_1 = require("../../../core/jsonrpc/types/base-types");
10
11
  const http_1 = require("../../../core/providers/http");
11
12
  const client_1 = require("../../jsonrpc/client");
@@ -44,7 +45,9 @@ Please use block number ${lastSafeBlock} or wait for the block to get ${required
44
45
  const forkBlockTimestamp = (0, base_types_1.rpcQuantityToNumber)(block.timestamp) * 1000;
45
46
  const cacheToDiskEnabled = forkConfig.blockNumber !== undefined && forkCachePath !== undefined;
46
47
  const forkClient = new client_1.JsonRpcClient(provider, networkId, latestBlock, maxReorg, cacheToDiskEnabled ? forkCachePath : undefined);
47
- return { forkClient, forkBlockNumber, forkBlockTimestamp };
48
+ const forkBlockHash = block.hash;
49
+ (0, errors_1.assertHardhatInvariant)(forkBlockHash !== null, "Forked block should have a hash");
50
+ return { forkClient, forkBlockNumber, forkBlockTimestamp, forkBlockHash };
48
51
  }
49
52
  exports.makeForkClient = makeForkClient;
50
53
  async function getBlockByNumber(provider, blockNumber) {
@@ -1 +1 @@
1
- {"version":3,"file":"makeForkClient.js","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/utils/makeForkClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"makeForkClient.js","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/utils/makeForkClient.ts"],"names":[],"mappings":"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"}
@@ -4,5 +4,5 @@ import { Trie } from "@nomicfoundation/ethereumjs-trie";
4
4
  import { HardforkName } from "../../../util/hardforks";
5
5
  import { HardhatBlockchain } from "../HardhatBlockchain";
6
6
  import { LocalNodeConfig } from "../node-types";
7
- export declare function putGenesisBlock(blockchain: HardhatBlockchain, common: Common, { initialDate, blockGasLimit }: LocalNodeConfig, stateTrie: Trie, hardfork: HardforkName, initialMixHash: Buffer, initialBaseFee?: bigint): Promise<void>;
7
+ export declare function putGenesisBlock(blockchain: HardhatBlockchain, common: Common, { initialDate, blockGasLimit: initialBlockGasLimit }: LocalNodeConfig, stateTrie: Trie, hardfork: HardforkName, initialMixHash: Buffer, initialBaseFee?: bigint): Promise<void>;
8
8
  //# sourceMappingURL=putGenesisBlock.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"putGenesisBlock.d.ts","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/utils/putGenesisBlock.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,kCAAkC,CAAC;AAIxD,OAAO,EAAe,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGhD,wBAAsB,eAAe,CACnC,UAAU,EAAE,iBAAiB,EAC7B,MAAM,EAAE,MAAM,EACd,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE,eAAe,EAC/C,SAAS,EAAE,IAAI,EACf,QAAQ,EAAE,YAAY,EACtB,cAAc,EAAE,MAAM,EACtB,cAAc,CAAC,EAAE,MAAM,iBAqCxB"}
1
+ {"version":3,"file":"putGenesisBlock.d.ts","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/utils/putGenesisBlock.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,kCAAkC,CAAC;AAIxD,OAAO,EAAe,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGhD,wBAAsB,eAAe,CACnC,UAAU,EAAE,iBAAiB,EAC7B,MAAM,EAAE,MAAM,EACd,EAAE,WAAW,EAAE,aAAa,EAAE,oBAAoB,EAAE,EAAE,eAAe,EACrE,SAAS,EAAE,IAAI,EACf,QAAQ,EAAE,YAAY,EACtB,cAAc,EAAE,MAAM,EACtB,cAAc,CAAC,EAAE,MAAM,iBAqCxB"}
@@ -6,14 +6,14 @@ const ethereumjs_util_1 = require("@nomicfoundation/ethereumjs-util");
6
6
  const date_1 = require("../../../util/date");
7
7
  const hardforks_1 = require("../../../util/hardforks");
8
8
  const getCurrentTimestamp_1 = require("./getCurrentTimestamp");
9
- async function putGenesisBlock(blockchain, common, { initialDate, blockGasLimit }, stateTrie, hardfork, initialMixHash, initialBaseFee) {
9
+ async function putGenesisBlock(blockchain, common, { initialDate, blockGasLimit: initialBlockGasLimit }, stateTrie, hardfork, initialMixHash, initialBaseFee) {
10
10
  const initialBlockTimestamp = initialDate !== undefined
11
11
  ? (0, date_1.dateToTimestampSeconds)(initialDate)
12
12
  : (0, getCurrentTimestamp_1.getCurrentTimestamp)();
13
13
  const isPostMerge = (0, hardforks_1.hardforkGte)(hardfork, hardforks_1.HardforkName.MERGE);
14
14
  const header = {
15
15
  timestamp: `0x${initialBlockTimestamp.toString(16)}`,
16
- gasLimit: blockGasLimit,
16
+ gasLimit: initialBlockGasLimit,
17
17
  difficulty: isPostMerge ? 0 : 1,
18
18
  nonce: isPostMerge ? "0x0000000000000000" : "0x0000000000000042",
19
19
  extraData: "0x1234",
@@ -1 +1 @@
1
- {"version":3,"file":"putGenesisBlock.js","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/utils/putGenesisBlock.ts"],"names":[],"mappings":";;;AAAA,wEAAsE;AAGtE,sEAA+D;AAE/D,6CAA4D;AAC5D,uDAAoE;AAGpE,+DAA4D;AAErD,KAAK,UAAU,eAAe,CACnC,UAA6B,EAC7B,MAAc,EACd,EAAE,WAAW,EAAE,aAAa,EAAmB,EAC/C,SAAe,EACf,QAAsB,EACtB,cAAsB,EACtB,cAAuB;IAEvB,MAAM,qBAAqB,GACzB,WAAW,KAAK,SAAS;QACvB,CAAC,CAAC,IAAA,6BAAsB,EAAC,WAAW,CAAC;QACrC,CAAC,CAAC,IAAA,yCAAmB,GAAE,CAAC;IAE5B,MAAM,WAAW,GAAG,IAAA,uBAAW,EAAC,QAAQ,EAAE,wBAAY,CAAC,KAAK,CAAC,CAAC;IAE9D,MAAM,MAAM,GAAe;QACzB,SAAS,EAAE,KAAK,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;QACpD,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,oBAAoB;QAChE,SAAS,EAAE,QAAQ;QACnB,SAAS,EAAE,IAAA,6BAAW,EAAC,SAAS,CAAC,IAAI,EAAE,CAAC;KACzC,CAAC;IAEF,IAAI,WAAW,EAAE;QACf,MAAM,CAAC,OAAO,GAAG,cAAc,CAAC;KACjC;IAED,IAAI,cAAc,KAAK,SAAS,EAAE;QAChC,MAAM,CAAC,aAAa,GAAG,cAAc,CAAC;KACvC;IAED,MAAM,YAAY,GAAG,wBAAK,CAAC,aAAa,CACtC;QACE,MAAM;KACP,EACD;QACE,MAAM;QACN,6BAA6B,EAAE,IAAI;KACpC,CACF,CAAC;IAEF,MAAM,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AAC1C,CAAC;AA5CD,0CA4CC"}
1
+ {"version":3,"file":"putGenesisBlock.js","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/utils/putGenesisBlock.ts"],"names":[],"mappings":";;;AAAA,wEAAsE;AAGtE,sEAA+D;AAE/D,6CAA4D;AAC5D,uDAAoE;AAGpE,+DAA4D;AAErD,KAAK,UAAU,eAAe,CACnC,UAA6B,EAC7B,MAAc,EACd,EAAE,WAAW,EAAE,aAAa,EAAE,oBAAoB,EAAmB,EACrE,SAAe,EACf,QAAsB,EACtB,cAAsB,EACtB,cAAuB;IAEvB,MAAM,qBAAqB,GACzB,WAAW,KAAK,SAAS;QACvB,CAAC,CAAC,IAAA,6BAAsB,EAAC,WAAW,CAAC;QACrC,CAAC,CAAC,IAAA,yCAAmB,GAAE,CAAC;IAE5B,MAAM,WAAW,GAAG,IAAA,uBAAW,EAAC,QAAQ,EAAE,wBAAY,CAAC,KAAK,CAAC,CAAC;IAE9D,MAAM,MAAM,GAAe;QACzB,SAAS,EAAE,KAAK,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;QACpD,QAAQ,EAAE,oBAAoB;QAC9B,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,oBAAoB;QAChE,SAAS,EAAE,QAAQ;QACnB,SAAS,EAAE,IAAA,6BAAW,EAAC,SAAS,CAAC,IAAI,EAAE,CAAC;KACzC,CAAC;IAEF,IAAI,WAAW,EAAE;QACf,MAAM,CAAC,OAAO,GAAG,cAAc,CAAC;KACjC;IAED,IAAI,cAAc,KAAK,SAAS,EAAE;QAChC,MAAM,CAAC,aAAa,GAAG,cAAc,CAAC;KACvC;IAED,MAAM,YAAY,GAAG,wBAAK,CAAC,aAAa,CACtC;QACE,MAAM;KACP,EACD;QACE,MAAM;QACN,6BAA6B,EAAE,IAAI;KACpC,CACF,CAAC;IAEF,MAAM,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AAC1C,CAAC;AA5CD,0CA4CC"}
@@ -1,8 +1,8 @@
1
+ import type { Common } from "@nomicfoundation/ethereumjs-common";
1
2
  import { Block, HeaderData } from "@nomicfoundation/ethereumjs-block";
2
3
  import { TypedTransaction } from "@nomicfoundation/ethereumjs-tx";
3
4
  import { Address } from "@nomicfoundation/ethereumjs-util";
4
- import { RunTxResult } from "@nomicfoundation/ethereumjs-vm";
5
- import { VMAdapter } from "./vm-adapter";
5
+ import { RunTxResult, VMAdapter } from "./vm-adapter";
6
6
  declare type Reward = [address: Address, reward: bigint];
7
7
  export interface BuildBlockOpts {
8
8
  parentBlock: Block;
@@ -10,12 +10,13 @@ export interface BuildBlockOpts {
10
10
  }
11
11
  export declare class BlockBuilder {
12
12
  private _vm;
13
+ private _common;
13
14
  private _opts;
14
15
  private _state;
15
16
  private _gasUsed;
16
17
  private _transactions;
17
18
  private _transactionResults;
18
- constructor(_vm: VMAdapter, _opts: BuildBlockOpts);
19
+ constructor(_vm: VMAdapter, _common: Common, _opts: BuildBlockOpts);
19
20
  startBlock(): Promise<void>;
20
21
  getGasUsed(): bigint;
21
22
  addTransaction(tx: TypedTransaction): Promise<RunTxResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"block-builder.d.ts","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/vm/block-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAGtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EACL,OAAO,EAIR,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAGL,WAAW,EAEZ,MAAM,gCAAgC,CAAC;AAIxC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAIzC,aAAK,MAAM,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAEjD,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,KAAK,CAAC;IACnB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAcD,qBAAa,YAAY;IAMX,OAAO,CAAC,GAAG;IAAa,OAAO,CAAC,KAAK;IALjD,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,QAAQ,CAAM;IACtB,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,mBAAmB,CAAqB;gBAE5B,GAAG,EAAE,SAAS,EAAU,KAAK,EAAE,cAAc;IAEpD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC,UAAU,IAAI,MAAM;IAId,cAAc,CAAC,EAAE,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;IAqC1D,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAW5C,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC;IAoDtB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;YAWtB,oBAAoB;YAQpB,gBAAgB;IAU9B,OAAO,CAAC,aAAa;CAQtB"}
1
+ {"version":3,"file":"block-builder.d.ts","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/vm/block-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAGtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EACL,OAAO,EAIR,MAAM,kCAAkC,CAAC;AAS1C,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAItD,aAAK,MAAM,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAEjD,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,KAAK,CAAC;IACnB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAcD,qBAAa,YAAY;IAOrB,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,KAAK;IARf,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,QAAQ,CAAM;IACtB,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,mBAAmB,CAAqB;gBAGtC,GAAG,EAAE,SAAS,EACd,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,cAAc;IAGlB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC,UAAU,IAAI,MAAM;IAId,cAAc,CAAC,EAAE,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;IAyC1D,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAW5C,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC;IAoDtB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;YAWtB,oBAAoB;YAQpB,gBAAgB;IAU9B,OAAO,CAAC,aAAa;CAQtB"}
@@ -8,8 +8,9 @@ const ethereumjs_util_1 = require("@nomicfoundation/ethereumjs-util");
8
8
  const bigint_1 = require("../../../util/bigint");
9
9
  const bloom_1 = require("../utils/bloom");
10
10
  class BlockBuilder {
11
- constructor(_vm, _opts) {
11
+ constructor(_vm, _common, _opts) {
12
12
  this._vm = _vm;
13
+ this._common = _common;
13
14
  this._opts = _opts;
14
15
  this._state = "ready";
15
16
  this._gasUsed = 0n;
@@ -36,16 +37,19 @@ class BlockBuilder {
36
37
  ...this._opts.headerData,
37
38
  gasUsed: this._gasUsed,
38
39
  };
40
+ if (header.number === undefined) {
41
+ header.number = this._opts.parentBlock.header.number + 1n;
42
+ }
39
43
  const blockData = { header, transactions: this._transactions };
40
44
  const block = ethereumjs_block_1.Block.fromBlockData(blockData, {
41
- common: this._vm.getCommon(),
45
+ common: this._common,
42
46
  skipConsensusFormatValidation: true,
43
47
  calcDifficultyFromHeader: this._opts.parentBlock.header,
44
48
  });
45
- const result = await this._vm.runTxInBlock(tx, block);
49
+ const [result] = await this._vm.runTxInBlock(tx, block);
46
50
  this._transactions.push(tx);
47
51
  this._transactionResults.push(result);
48
- this._gasUsed += result.totalGasSpent;
52
+ this._gasUsed += result.gasUsed;
49
53
  return result;
50
54
  }
51
55
  async addRewards(rewards) {
@@ -86,7 +90,7 @@ class BlockBuilder {
86
90
  transactions: this._transactions,
87
91
  };
88
92
  const block = ethereumjs_block_1.Block.fromBlockData(blockData, {
89
- common: this._vm.getCommon(),
93
+ common: this._common,
90
94
  skipConsensusFormatValidation: true,
91
95
  calcDifficultyFromHeader: this._opts.parentBlock.header,
92
96
  });