hardhat 2.6.8 → 2.8.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 (380) hide show
  1. package/builtin-tasks/check.js +1 -1
  2. package/builtin-tasks/check.js.map +1 -1
  3. package/builtin-tasks/clean.js +3 -3
  4. package/builtin-tasks/clean.js.map +1 -1
  5. package/builtin-tasks/compile.js +48 -48
  6. package/builtin-tasks/compile.js.map +1 -1
  7. package/builtin-tasks/console.js +3 -3
  8. package/builtin-tasks/console.js.map +1 -1
  9. package/builtin-tasks/flatten.js +8 -6
  10. package/builtin-tasks/flatten.js.map +1 -1
  11. package/builtin-tasks/help.js +2 -2
  12. package/builtin-tasks/help.js.map +1 -1
  13. package/builtin-tasks/node.js +21 -15
  14. package/builtin-tasks/node.js.map +1 -1
  15. package/builtin-tasks/run.js +11 -7
  16. package/builtin-tasks/run.js.map +1 -1
  17. package/builtin-tasks/test.js +11 -11
  18. package/builtin-tasks/test.js.map +1 -1
  19. package/builtin-tasks/utils/solidity-files-cache.js +1 -1
  20. package/builtin-tasks/utils/solidity-files-cache.js.map +1 -1
  21. package/builtin-tasks/utils/watch.d.ts.map +1 -1
  22. package/builtin-tasks/utils/watch.js +4 -2
  23. package/builtin-tasks/utils/watch.js.map +1 -1
  24. package/internal/artifacts.d.ts +49 -0
  25. package/internal/artifacts.d.ts.map +1 -1
  26. package/internal/artifacts.js +204 -68
  27. package/internal/artifacts.js.map +1 -1
  28. package/internal/cli/analytics.js +11 -10
  29. package/internal/cli/analytics.js.map +1 -1
  30. package/internal/cli/autocomplete.js +7 -7
  31. package/internal/cli/autocomplete.js.map +1 -1
  32. package/internal/cli/bootstrap.js +2 -2
  33. package/internal/cli/bootstrap.js.map +1 -1
  34. package/internal/cli/cli.js +16 -16
  35. package/internal/cli/cli.js.map +1 -1
  36. package/internal/cli/project-creation.js +13 -13
  37. package/internal/cli/project-creation.js.map +1 -1
  38. package/internal/constants.d.ts +2 -0
  39. package/internal/constants.d.ts.map +1 -1
  40. package/internal/constants.js +4 -1
  41. package/internal/constants.js.map +1 -1
  42. package/internal/context.d.ts +1 -2
  43. package/internal/context.d.ts.map +1 -1
  44. package/internal/context.js +3 -3
  45. package/internal/context.js.map +1 -1
  46. package/internal/core/config/config-loading.d.ts.map +1 -1
  47. package/internal/core/config/config-loading.js +21 -7
  48. package/internal/core/config/config-loading.js.map +1 -1
  49. package/internal/core/config/config-resolution.d.ts.map +1 -1
  50. package/internal/core/config/config-resolution.js +50 -12
  51. package/internal/core/config/config-resolution.js.map +1 -1
  52. package/internal/core/config/config-validation.d.ts +1 -0
  53. package/internal/core/config/config-validation.d.ts.map +1 -1
  54. package/internal/core/config/config-validation.js +151 -38
  55. package/internal/core/config/config-validation.js.map +1 -1
  56. package/internal/core/config/default-config.d.ts.map +1 -1
  57. package/internal/core/config/default-config.js +66 -2
  58. package/internal/core/config/default-config.js.map +1 -1
  59. package/internal/core/errors-list.js +2 -2
  60. package/internal/core/errors-list.js.map +1 -1
  61. package/internal/core/errors.js +3 -3
  62. package/internal/core/errors.js.map +1 -1
  63. package/internal/core/execution-mode.js +2 -2
  64. package/internal/core/execution-mode.js.map +1 -1
  65. package/internal/core/jsonrpc/types/access-list.d.ts +0 -1
  66. package/internal/core/jsonrpc/types/access-list.d.ts.map +1 -1
  67. package/internal/core/jsonrpc/types/access-list.js +1 -1
  68. package/internal/core/jsonrpc/types/access-list.js.map +1 -1
  69. package/internal/core/jsonrpc/types/base-types.js +9 -9
  70. package/internal/core/jsonrpc/types/base-types.js.map +1 -1
  71. package/internal/core/jsonrpc/types/input/blockTag.d.ts +3 -4
  72. package/internal/core/jsonrpc/types/input/blockTag.d.ts.map +1 -1
  73. package/internal/core/jsonrpc/types/input/blockTag.js +3 -3
  74. package/internal/core/jsonrpc/types/input/blockTag.js.map +1 -1
  75. package/internal/core/jsonrpc/types/input/callRequest.d.ts +0 -1
  76. package/internal/core/jsonrpc/types/input/callRequest.d.ts.map +1 -1
  77. package/internal/core/jsonrpc/types/input/callRequest.js +9 -9
  78. package/internal/core/jsonrpc/types/input/callRequest.js.map +1 -1
  79. package/internal/core/jsonrpc/types/input/debugTraceTransaction.js +4 -4
  80. package/internal/core/jsonrpc/types/input/debugTraceTransaction.js.map +1 -1
  81. package/internal/core/jsonrpc/types/input/filterRequest.d.ts +0 -1
  82. package/internal/core/jsonrpc/types/input/filterRequest.d.ts.map +1 -1
  83. package/internal/core/jsonrpc/types/input/filterRequest.js +2 -2
  84. package/internal/core/jsonrpc/types/input/filterRequest.js.map +1 -1
  85. package/internal/core/jsonrpc/types/input/hardhat-network.js +4 -4
  86. package/internal/core/jsonrpc/types/input/hardhat-network.js.map +1 -1
  87. package/internal/core/jsonrpc/types/input/logAddress.js +1 -1
  88. package/internal/core/jsonrpc/types/input/logAddress.js.map +1 -1
  89. package/internal/core/jsonrpc/types/input/logTopics.js +1 -1
  90. package/internal/core/jsonrpc/types/input/logTopics.js.map +1 -1
  91. package/internal/core/jsonrpc/types/input/transactionRequest.d.ts +0 -1
  92. package/internal/core/jsonrpc/types/input/transactionRequest.d.ts.map +1 -1
  93. package/internal/core/jsonrpc/types/input/transactionRequest.js +10 -10
  94. package/internal/core/jsonrpc/types/input/transactionRequest.js.map +1 -1
  95. package/internal/core/jsonrpc/types/output/block.d.ts +0 -1
  96. package/internal/core/jsonrpc/types/output/block.d.ts.map +1 -1
  97. package/internal/core/jsonrpc/types/output/block.js +5 -5
  98. package/internal/core/jsonrpc/types/output/block.js.map +1 -1
  99. package/internal/core/jsonrpc/types/output/log.d.ts +1 -1
  100. package/internal/core/jsonrpc/types/output/log.d.ts.map +1 -1
  101. package/internal/core/jsonrpc/types/output/log.js +5 -4
  102. package/internal/core/jsonrpc/types/output/log.js.map +1 -1
  103. package/internal/core/jsonrpc/types/output/receipt.d.ts +1 -1
  104. package/internal/core/jsonrpc/types/output/receipt.d.ts.map +1 -1
  105. package/internal/core/jsonrpc/types/output/receipt.js +6 -6
  106. package/internal/core/jsonrpc/types/output/receipt.js.map +1 -1
  107. package/internal/core/jsonrpc/types/output/transaction.d.ts +0 -1
  108. package/internal/core/jsonrpc/types/output/transaction.d.ts.map +1 -1
  109. package/internal/core/jsonrpc/types/output/transaction.js +9 -9
  110. package/internal/core/jsonrpc/types/output/transaction.js.map +1 -1
  111. package/internal/core/params/argumentTypes.d.ts.map +1 -1
  112. package/internal/core/params/argumentTypes.js +25 -13
  113. package/internal/core/params/argumentTypes.js.map +1 -1
  114. package/internal/core/params/env-variables.d.ts.map +1 -1
  115. package/internal/core/params/env-variables.js +9 -5
  116. package/internal/core/params/env-variables.js.map +1 -1
  117. package/internal/core/params/hardhat-params.js +2 -2
  118. package/internal/core/params/hardhat-params.js.map +1 -1
  119. package/internal/core/project-structure.js +1 -1
  120. package/internal/core/project-structure.js.map +1 -1
  121. package/internal/core/providers/accounts.d.ts.map +1 -1
  122. package/internal/core/providers/accounts.js +9 -8
  123. package/internal/core/providers/accounts.js.map +1 -1
  124. package/internal/core/providers/backwards-compatibility.js.map +1 -1
  125. package/internal/core/providers/chainId.js +3 -3
  126. package/internal/core/providers/chainId.js.map +1 -1
  127. package/internal/core/providers/construction.d.ts.map +1 -1
  128. package/internal/core/providers/construction.js +6 -4
  129. package/internal/core/providers/construction.js.map +1 -1
  130. package/internal/core/providers/gas-providers.d.ts.map +1 -1
  131. package/internal/core/providers/gas-providers.js +19 -17
  132. package/internal/core/providers/gas-providers.js.map +1 -1
  133. package/internal/core/providers/http.js +1 -1
  134. package/internal/core/providers/http.js.map +1 -1
  135. package/internal/core/providers/util.js +1 -1
  136. package/internal/core/providers/util.js.map +1 -1
  137. package/internal/core/providers/wrapper.d.ts.map +1 -1
  138. package/internal/core/runtime-environment.d.ts.map +1 -1
  139. package/internal/core/runtime-environment.js +7 -5
  140. package/internal/core/runtime-environment.js.map +1 -1
  141. package/internal/core/typescript-support.d.ts +1 -1
  142. package/internal/core/typescript-support.d.ts.map +1 -1
  143. package/internal/core/typescript-support.js +8 -5
  144. package/internal/core/typescript-support.js.map +1 -1
  145. package/internal/hardhat-network/jsonrpc/client.d.ts +2 -0
  146. package/internal/hardhat-network/jsonrpc/client.d.ts.map +1 -1
  147. package/internal/hardhat-network/jsonrpc/client.js +23 -23
  148. package/internal/hardhat-network/jsonrpc/client.js.map +1 -1
  149. package/internal/hardhat-network/jsonrpc/handler.js +16 -8
  150. package/internal/hardhat-network/jsonrpc/handler.js.map +1 -1
  151. package/internal/hardhat-network/jsonrpc/server.js +1 -1
  152. package/internal/hardhat-network/jsonrpc/server.js.map +1 -1
  153. package/internal/hardhat-network/provider/BlockchainData.d.ts +1 -1
  154. package/internal/hardhat-network/provider/BlockchainData.js +12 -12
  155. package/internal/hardhat-network/provider/BlockchainData.js.map +1 -1
  156. package/internal/hardhat-network/provider/HardhatBlockchain.js +2 -2
  157. package/internal/hardhat-network/provider/HardhatBlockchain.js.map +1 -1
  158. package/internal/hardhat-network/provider/HardhatStateManager.js +29 -29
  159. package/internal/hardhat-network/provider/HardhatStateManager.js.map +1 -1
  160. package/internal/hardhat-network/provider/PoolState.js +6 -6
  161. package/internal/hardhat-network/provider/PoolState.js.map +1 -1
  162. package/internal/hardhat-network/provider/TransactionQueue.d.ts +2 -1
  163. package/internal/hardhat-network/provider/TransactionQueue.d.ts.map +1 -1
  164. package/internal/hardhat-network/provider/TransactionQueue.js +16 -2
  165. package/internal/hardhat-network/provider/TransactionQueue.js.map +1 -1
  166. package/internal/hardhat-network/provider/TxPool.js +19 -19
  167. package/internal/hardhat-network/provider/TxPool.js.map +1 -1
  168. package/internal/hardhat-network/provider/filter.js +3 -3
  169. package/internal/hardhat-network/provider/filter.js.map +1 -1
  170. package/internal/hardhat-network/provider/fork/AccountState.js +4 -4
  171. package/internal/hardhat-network/provider/fork/AccountState.js.map +1 -1
  172. package/internal/hardhat-network/provider/fork/ForkBlockchain.d.ts.map +1 -1
  173. package/internal/hardhat-network/provider/fork/ForkBlockchain.js +8 -10
  174. package/internal/hardhat-network/provider/fork/ForkBlockchain.js.map +1 -1
  175. package/internal/hardhat-network/provider/fork/ForkStateManager.js +34 -34
  176. package/internal/hardhat-network/provider/fork/ForkStateManager.js.map +1 -1
  177. package/internal/hardhat-network/provider/fork/random.d.ts +0 -1
  178. package/internal/hardhat-network/provider/fork/random.d.ts.map +1 -1
  179. package/internal/hardhat-network/provider/fork/random.js +13 -8
  180. package/internal/hardhat-network/provider/fork/random.js.map +1 -1
  181. package/internal/hardhat-network/provider/fork/rpcToBlockData.js +1 -0
  182. package/internal/hardhat-network/provider/fork/rpcToBlockData.js.map +1 -1
  183. package/internal/hardhat-network/provider/fork/rpcToTxData.js.map +1 -1
  184. package/internal/hardhat-network/provider/modules/debug.js +1 -1
  185. package/internal/hardhat-network/provider/modules/debug.js.map +1 -1
  186. package/internal/hardhat-network/provider/modules/eth.d.ts.map +1 -1
  187. package/internal/hardhat-network/provider/modules/eth.js +86 -84
  188. package/internal/hardhat-network/provider/modules/eth.js.map +1 -1
  189. package/internal/hardhat-network/provider/modules/evm.js +9 -9
  190. package/internal/hardhat-network/provider/modules/evm.js.map +1 -1
  191. package/internal/hardhat-network/provider/modules/hardhat.d.ts +2 -0
  192. package/internal/hardhat-network/provider/modules/hardhat.d.ts.map +1 -1
  193. package/internal/hardhat-network/provider/modules/hardhat.js +25 -15
  194. package/internal/hardhat-network/provider/modules/hardhat.js.map +1 -1
  195. package/internal/hardhat-network/provider/modules/logger.d.ts.map +1 -1
  196. package/internal/hardhat-network/provider/modules/logger.js +30 -25
  197. package/internal/hardhat-network/provider/modules/logger.js.map +1 -1
  198. package/internal/hardhat-network/provider/modules/net.js +2 -2
  199. package/internal/hardhat-network/provider/modules/net.js.map +1 -1
  200. package/internal/hardhat-network/provider/modules/personal.js +2 -2
  201. package/internal/hardhat-network/provider/modules/personal.js.map +1 -1
  202. package/internal/hardhat-network/provider/modules/web3.js +4 -4
  203. package/internal/hardhat-network/provider/modules/web3.js.map +1 -1
  204. package/internal/hardhat-network/provider/node-types.d.ts +7 -1
  205. package/internal/hardhat-network/provider/node-types.d.ts.map +1 -1
  206. package/internal/hardhat-network/provider/node-types.js.map +1 -1
  207. package/internal/hardhat-network/provider/node.d.ts +10 -2
  208. package/internal/hardhat-network/provider/node.d.ts.map +1 -1
  209. package/internal/hardhat-network/provider/node.js +144 -75
  210. package/internal/hardhat-network/provider/node.js.map +1 -1
  211. package/internal/hardhat-network/provider/output.d.ts +1 -1
  212. package/internal/hardhat-network/provider/output.d.ts.map +1 -1
  213. package/internal/hardhat-network/provider/output.js +94 -91
  214. package/internal/hardhat-network/provider/output.js.map +1 -1
  215. package/internal/hardhat-network/provider/provider.d.ts +7 -3
  216. package/internal/hardhat-network/provider/provider.d.ts.map +1 -1
  217. package/internal/hardhat-network/provider/provider.js +11 -4
  218. package/internal/hardhat-network/provider/provider.js.map +1 -1
  219. package/internal/hardhat-network/provider/return-data.js +4 -4
  220. package/internal/hardhat-network/provider/return-data.js.map +1 -1
  221. package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.js.map +1 -1
  222. package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.js.map +1 -1
  223. package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.js.map +1 -1
  224. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.js +1 -1
  225. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.js.map +1 -1
  226. package/internal/hardhat-network/provider/utils/bnToHex.js +1 -1
  227. package/internal/hardhat-network/provider/utils/bnToHex.js.map +1 -1
  228. package/internal/hardhat-network/provider/utils/fork-recomendations-banner.js.map +1 -1
  229. package/internal/hardhat-network/provider/utils/makeAccount.js +4 -4
  230. package/internal/hardhat-network/provider/utils/makeAccount.js.map +1 -1
  231. package/internal/hardhat-network/provider/utils/makeCommon.js +3 -3
  232. package/internal/hardhat-network/provider/utils/makeCommon.js.map +1 -1
  233. package/internal/hardhat-network/provider/utils/makeForkClient.js +4 -4
  234. package/internal/hardhat-network/provider/utils/makeForkClient.js.map +1 -1
  235. package/internal/hardhat-network/provider/utils/makeStateTrie.js +1 -1
  236. package/internal/hardhat-network/provider/utils/makeStateTrie.js.map +1 -1
  237. package/internal/hardhat-network/provider/utils/txMapToArray.js +1 -1
  238. package/internal/hardhat-network/provider/utils/txMapToArray.js.map +1 -1
  239. package/internal/hardhat-network/stack-traces/compiler-to-model.js +4 -4
  240. package/internal/hardhat-network/stack-traces/compiler-to-model.js.map +1 -1
  241. package/internal/hardhat-network/stack-traces/consoleLogger.js +44 -44
  242. package/internal/hardhat-network/stack-traces/consoleLogger.js.map +1 -1
  243. package/internal/hardhat-network/stack-traces/contracts-identifier.js +6 -6
  244. package/internal/hardhat-network/stack-traces/contracts-identifier.js.map +1 -1
  245. package/internal/hardhat-network/stack-traces/debug.js +17 -17
  246. package/internal/hardhat-network/stack-traces/debug.js.map +1 -1
  247. package/internal/hardhat-network/stack-traces/error-inferrer.js +28 -28
  248. package/internal/hardhat-network/stack-traces/error-inferrer.js.map +1 -1
  249. package/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.js +3 -3
  250. package/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.js.map +1 -1
  251. package/internal/hardhat-network/stack-traces/model.js +5 -5
  252. package/internal/hardhat-network/stack-traces/model.js.map +1 -1
  253. package/internal/hardhat-network/stack-traces/solidity-errors.js +3 -3
  254. package/internal/hardhat-network/stack-traces/solidity-errors.js.map +1 -1
  255. package/internal/hardhat-network/stack-traces/solidityTracer.js +10 -10
  256. package/internal/hardhat-network/stack-traces/solidityTracer.js.map +1 -1
  257. package/internal/hardhat-network/stack-traces/source-maps.js +7 -7
  258. package/internal/hardhat-network/stack-traces/source-maps.js.map +1 -1
  259. package/internal/hardhat-network/stack-traces/vm-debug-tracer.js +5 -5
  260. package/internal/hardhat-network/stack-traces/vm-debug-tracer.js.map +1 -1
  261. package/internal/hardhat-network/stack-traces/vm-trace-decoder.js +2 -2
  262. package/internal/hardhat-network/stack-traces/vm-trace-decoder.js.map +1 -1
  263. package/internal/hardhat-network/stack-traces/vm-tracer.js +3 -3
  264. package/internal/hardhat-network/stack-traces/vm-tracer.js.map +1 -1
  265. package/internal/lib/hardhat-lib.js +3 -3
  266. package/internal/lib/hardhat-lib.js.map +1 -1
  267. package/internal/reset.js +1 -1
  268. package/internal/reset.js.map +1 -1
  269. package/internal/sentry/anonymizer.js.map +1 -1
  270. package/internal/sentry/reporter.js +5 -5
  271. package/internal/sentry/reporter.js.map +1 -1
  272. package/internal/sentry/subprocess.js +2 -2
  273. package/internal/sentry/subprocess.js.map +1 -1
  274. package/internal/sentry/transport.js +1 -1
  275. package/internal/sentry/transport.js.map +1 -1
  276. package/internal/solidity/compilation-job.js +4 -4
  277. package/internal/solidity/compilation-job.js.map +1 -1
  278. package/internal/solidity/compiler/downloader.d.ts +1 -1
  279. package/internal/solidity/compiler/downloader.d.ts.map +1 -1
  280. package/internal/solidity/compiler/downloader.js +21 -7
  281. package/internal/solidity/compiler/downloader.js.map +1 -1
  282. package/internal/solidity/compiler/index.js +1 -1
  283. package/internal/solidity/compiler/index.js.map +1 -1
  284. package/internal/solidity/dependencyGraph.js +2 -1
  285. package/internal/solidity/dependencyGraph.js.map +1 -1
  286. package/internal/solidity/parse.js +3 -2
  287. package/internal/solidity/parse.js.map +1 -1
  288. package/internal/solidity/resolver.js +10 -10
  289. package/internal/solidity/resolver.js.map +1 -1
  290. package/internal/util/abi-helpers.js +1 -1
  291. package/internal/util/abi-helpers.js.map +1 -1
  292. package/internal/util/download.d.ts.map +1 -1
  293. package/internal/util/download.js +12 -1
  294. package/internal/util/download.js.map +1 -1
  295. package/internal/util/global-dir.js +1 -1
  296. package/internal/util/global-dir.js.map +1 -1
  297. package/internal/util/hardforks.d.ts +2 -1
  298. package/internal/util/hardforks.d.ts.map +1 -1
  299. package/internal/util/hardforks.js +3 -1
  300. package/internal/util/hardforks.js.map +1 -1
  301. package/internal/util/jsonrpc.js +1 -1
  302. package/internal/util/jsonrpc.js.map +1 -1
  303. package/internal/util/packageInfo.js +1 -1
  304. package/internal/util/packageInfo.js.map +1 -1
  305. package/internal/util/scripts-runner.js +3 -3
  306. package/internal/util/scripts-runner.js.map +1 -1
  307. package/package.json +13 -13
  308. package/register.js +7 -7
  309. package/register.js.map +1 -1
  310. package/src/builtin-tasks/flatten.ts +4 -2
  311. package/src/builtin-tasks/node.ts +17 -10
  312. package/src/builtin-tasks/run.ts +13 -8
  313. package/src/builtin-tasks/utils/watch.ts +3 -1
  314. package/src/internal/artifacts.ts +269 -72
  315. package/src/internal/cli/analytics.ts +1 -1
  316. package/src/internal/cli/autocomplete.ts +3 -3
  317. package/src/internal/cli/bootstrap.ts +1 -1
  318. package/src/internal/cli/cli.ts +2 -2
  319. package/src/internal/cli/project-creation.ts +2 -2
  320. package/src/internal/constants.ts +4 -0
  321. package/src/internal/context.ts +1 -1
  322. package/src/internal/core/config/config-loading.ts +24 -2
  323. package/src/internal/core/config/config-resolution.ts +61 -3
  324. package/src/internal/core/config/config-validation.ts +217 -15
  325. package/src/internal/core/config/default-config.ts +66 -2
  326. package/src/internal/core/errors-list.ts +2 -2
  327. package/src/internal/core/execution-mode.ts +1 -1
  328. package/src/internal/core/jsonrpc/types/output/log.ts +1 -0
  329. package/src/internal/core/params/argumentTypes.ts +40 -25
  330. package/src/internal/core/params/env-variables.ts +13 -8
  331. package/src/internal/core/params/hardhat-params.ts +2 -2
  332. package/src/internal/core/providers/accounts.ts +4 -3
  333. package/src/internal/core/providers/backwards-compatibility.ts +1 -1
  334. package/src/internal/core/providers/chainId.ts +1 -1
  335. package/src/internal/core/providers/construction.ts +9 -2
  336. package/src/internal/core/providers/gas-providers.ts +6 -4
  337. package/src/internal/core/providers/http.ts +1 -1
  338. package/src/internal/core/providers/wrapper.ts +1 -1
  339. package/src/internal/core/runtime-environment.ts +3 -1
  340. package/src/internal/core/typescript-support.ts +7 -3
  341. package/src/internal/hardhat-network/jsonrpc/client.ts +2 -2
  342. package/src/internal/hardhat-network/jsonrpc/handler.ts +12 -2
  343. package/src/internal/hardhat-network/jsonrpc/server.ts +2 -2
  344. package/src/internal/hardhat-network/provider/TransactionQueue.ts +31 -4
  345. package/src/internal/hardhat-network/provider/TxPool.ts +1 -1
  346. package/src/internal/hardhat-network/provider/fork/ForkBlockchain.ts +2 -4
  347. package/src/internal/hardhat-network/provider/modules/eth.ts +23 -21
  348. package/src/internal/hardhat-network/provider/modules/hardhat.ts +15 -1
  349. package/src/internal/hardhat-network/provider/modules/logger.ts +13 -9
  350. package/src/internal/hardhat-network/provider/node-types.ts +8 -1
  351. package/src/internal/hardhat-network/provider/node.ts +156 -29
  352. package/src/internal/hardhat-network/provider/output.ts +9 -9
  353. package/src/internal/hardhat-network/provider/provider.ts +12 -2
  354. package/src/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.ts +1 -1
  355. package/src/internal/hardhat-network/stack-traces/solidity-errors.ts +1 -1
  356. package/src/internal/hardhat-network/stack-traces/vm-tracer.ts +3 -3
  357. package/src/internal/reset.ts +1 -1
  358. package/src/internal/sentry/subprocess.ts +2 -2
  359. package/src/internal/solidity/compiler/downloader.ts +27 -12
  360. package/src/internal/solidity/resolver.ts +1 -1
  361. package/src/internal/util/abi-helpers.ts +1 -1
  362. package/src/internal/util/download.ts +17 -1
  363. package/src/internal/util/hardforks.ts +2 -0
  364. package/src/internal/util/jsonrpc.ts +1 -1
  365. package/src/internal/util/packageInfo.ts +1 -1
  366. package/src/internal/util/scripts-runner.ts +1 -1
  367. package/src/register.ts +1 -1
  368. package/src/types/config.ts +42 -0
  369. package/src/utils/contract-names.ts +112 -0
  370. package/src/utils/source-names.ts +14 -12
  371. package/types/config.d.ts +26 -0
  372. package/types/config.d.ts.map +1 -1
  373. package/utils/contract-names.d.ts +10 -0
  374. package/utils/contract-names.d.ts.map +1 -1
  375. package/utils/contract-names.js +92 -1
  376. package/utils/contract-names.js.map +1 -1
  377. package/utils/source-names.d.ts +1 -1
  378. package/utils/source-names.js +8 -6
  379. package/utils/source-names.js.map +1 -1
  380. package/CHANGELOG.md +0 -54
@@ -48,14 +48,19 @@ export function getEnvHardhatArguments(
48
48
  try {
49
49
  envArgs[paramName] = definition.type.parse(paramName, rawValue);
50
50
  } catch (error) {
51
- throw new HardhatError(
52
- ERRORS.ARGUMENTS.INVALID_ENV_VAR_VALUE,
53
- {
54
- varName: envVarName,
55
- value: rawValue,
56
- },
57
- error
58
- );
51
+ if (error instanceof Error) {
52
+ throw new HardhatError(
53
+ ERRORS.ARGUMENTS.INVALID_ENV_VAR_VALUE,
54
+ {
55
+ varName: envVarName,
56
+ value: rawValue,
57
+ },
58
+ error
59
+ );
60
+ }
61
+
62
+ // eslint-disable-next-line @nomiclabs/hardhat-internal-rules/only-hardhat-error
63
+ throw error;
59
64
  }
60
65
  } else {
61
66
  envArgs[paramName] = definition.defaultValue;
@@ -78,8 +78,8 @@ export const HARDHAT_PARAM_DEFINITIONS: HardhatParamDefinitions = {
78
78
  tsconfig: {
79
79
  name: "tsconfig",
80
80
  defaultValue: undefined,
81
- description: "Reserved hardhat argument -- Has no effect.",
82
- type: types.string,
81
+ description: "A TypeScript config file.",
82
+ type: types.inputFile,
83
83
  isOptional: true,
84
84
  isFlag: false,
85
85
  isVariadic: false,
@@ -104,7 +104,7 @@ export class LocalAccountsProvider extends ProviderWrapperWithChainId {
104
104
  if (typeof data === "string") {
105
105
  try {
106
106
  typedMessage = JSON.parse(data);
107
- } catch (error) {
107
+ } catch {
108
108
  throw new HardhatError(
109
109
  ERRORS.NETWORK.ETHSIGN_TYPED_DATA_V4_INVALID_DATA_PARAM
110
110
  );
@@ -219,7 +219,7 @@ export class LocalAccountsProvider extends ProviderWrapperWithChainId {
219
219
  private _getPrivateKeyForAddressOrNull(address: Buffer): Buffer | null {
220
220
  try {
221
221
  return this._getPrivateKeyForAddress(address);
222
- } catch (e) {
222
+ } catch {
223
223
  return null;
224
224
  }
225
225
  }
@@ -253,6 +253,7 @@ export class LocalAccountsProvider extends ProviderWrapperWithChainId {
253
253
  gasLimit: transactionRequest.gas,
254
254
  };
255
255
 
256
+ // TODO: consider changing instances of "london" below to ["latest hardfork"]
256
257
  const common =
257
258
  chains.names[chainId] !== undefined
258
259
  ? new Common({ chain: chainId, hardfork: "london" })
@@ -347,7 +348,7 @@ abstract class SenderProvider extends ProviderWrapper {
347
348
  return this._wrappedProvider.request(args);
348
349
  }
349
350
 
350
- protected abstract async _getSender(): Promise<string | undefined>;
351
+ protected abstract _getSender(): Promise<string | undefined>;
351
352
  }
352
353
 
353
354
  export class AutomaticSenderProvider extends SenderProvider {
@@ -56,7 +56,7 @@ export class BackwardsCompatibilityProviderAdapter
56
56
  method: request.method,
57
57
  params: request.params,
58
58
  });
59
- } catch (error) {
59
+ } catch (error: any) {
60
60
  if (error.code === undefined) {
61
61
  // eslint-disable-next-line @nomiclabs/hardhat-internal-rules/only-hardhat-error
62
62
  throw error;
@@ -12,7 +12,7 @@ export abstract class ProviderWrapperWithChainId extends ProviderWrapper {
12
12
  if (this._chainId === undefined) {
13
13
  try {
14
14
  this._chainId = await this._getChainIdFromEthChainId();
15
- } catch (error) {
15
+ } catch {
16
16
  // If eth_chainId fails we default to net_version
17
17
  this._chainId = await this._getChainIdFromEthNetVersion();
18
18
  }
@@ -13,7 +13,10 @@ import type {
13
13
  } from "../../../types";
14
14
  import { HARDHAT_NETWORK_NAME } from "../../constants";
15
15
  import { ModulesLogger } from "../../hardhat-network/provider/modules/logger";
16
- import { ForkConfig } from "../../hardhat-network/provider/node-types";
16
+ import {
17
+ ForkConfig,
18
+ MempoolOrder,
19
+ } from "../../hardhat-network/provider/node-types";
17
20
  import { getForkCacheDirPath } from "../../hardhat-network/provider/utils/disk-cache";
18
21
  import { parseDateString } from "../../util/date";
19
22
 
@@ -88,6 +91,9 @@ export function createProvider(
88
91
  hardhatNetConfig.throwOnCallFailures,
89
92
  hardhatNetConfig.mining.auto,
90
93
  hardhatNetConfig.mining.interval,
94
+ // This cast is valid because of the config validation and resolution
95
+ hardhatNetConfig.mining.mempool.order as MempoolOrder,
96
+ hardhatNetConfig.chains,
91
97
  new ModulesLogger(hardhatNetConfig.loggingEnabled),
92
98
  accounts,
93
99
  artifacts,
@@ -97,7 +103,8 @@ export function createProvider(
97
103
  : undefined,
98
104
  experimentalHardhatNetworkMessageTraceHooks,
99
105
  forkConfig,
100
- paths !== undefined ? getForkCacheDirPath(paths) : undefined
106
+ paths !== undefined ? getForkCacheDirPath(paths) : undefined,
107
+ hardhatNetConfig.coinbase
101
108
  );
102
109
  } else {
103
110
  const HttpProvider = importProvider<
@@ -86,9 +86,11 @@ abstract class MultipliedGasEstimationProvider extends ProviderWrapper {
86
86
 
87
87
  return numberToRpcQuantity(gas);
88
88
  } catch (error) {
89
- if (error.message.toLowerCase().includes("execution error")) {
90
- const blockGasLimit = await this._getBlockGasLimit();
91
- return numberToRpcQuantity(blockGasLimit);
89
+ if (error instanceof Error) {
90
+ if (error.message.toLowerCase().includes("execution error")) {
91
+ const blockGasLimit = await this._getBlockGasLimit();
92
+ return numberToRpcQuantity(blockGasLimit);
93
+ }
92
94
  }
93
95
 
94
96
  // eslint-disable-next-line @nomiclabs/hardhat-internal-rules/only-hardhat-error
@@ -277,7 +279,7 @@ export class AutomaticGasPriceProvider extends ProviderWrapper {
277
279
 
278
280
  maxPriorityFeePerGas: rpcQuantityToBN(response.reward[0][0]),
279
281
  };
280
- } catch (_error) {
282
+ } catch {
281
283
  this._nodeHasFeeHistory = false;
282
284
 
283
285
  return undefined;
@@ -171,7 +171,7 @@ export class HttpProvider extends EventEmitter implements EIP1193Provider {
171
171
  }
172
172
 
173
173
  return parseJsonResponse(await response.text());
174
- } catch (error) {
174
+ } catch (error: any) {
175
175
  if (error.code === "ECONNREFUSED") {
176
176
  throw new HardhatError(
177
177
  ERRORS.NETWORK.NODE_IS_NOT_RUNNING,
@@ -11,7 +11,7 @@ export abstract class ProviderWrapper
11
11
  super(_wrappedProvider);
12
12
  }
13
13
 
14
- public abstract async request(args: RequestArguments): Promise<unknown>;
14
+ public abstract request(args: RequestArguments): Promise<unknown>;
15
15
 
16
16
  protected _getParams<ParamsT extends any[] = any[]>(
17
17
  args: RequestArguments
@@ -266,7 +266,9 @@ export class Environment implements HardhatRuntimeEnvironment {
266
266
  values[paramName] = resolvedArgumentValue;
267
267
  }
268
268
  } catch (error) {
269
- errors.push(error);
269
+ if (HardhatError.isHardhatError(error)) {
270
+ errors.push(error);
271
+ }
270
272
  }
271
273
  return { errors, values };
272
274
  },
@@ -38,16 +38,16 @@ export function isTypescriptSupported() {
38
38
  return cachedIsTypescriptSupported;
39
39
  }
40
40
 
41
- export function loadTsNode() {
41
+ export function loadTsNode(tsConfigPath?: string) {
42
42
  try {
43
43
  require.resolve("typescript");
44
- } catch (error) {
44
+ } catch {
45
45
  throw new HardhatError(ERRORS.GENERAL.TYPESCRIPT_NOT_INSTALLED);
46
46
  }
47
47
 
48
48
  try {
49
49
  require.resolve("ts-node");
50
- } catch (error) {
50
+ } catch {
51
51
  throw new HardhatError(ERRORS.GENERAL.TS_NODE_NOT_INSTALLED);
52
52
  }
53
53
 
@@ -58,6 +58,10 @@ export function loadTsNode() {
58
58
  return;
59
59
  }
60
60
 
61
+ if (tsConfigPath !== undefined) {
62
+ process.env.TS_NODE_PROJECT = tsConfigPath;
63
+ }
64
+
61
65
  // See: https://github.com/nomiclabs/hardhat/issues/265
62
66
  if (process.env.TS_NODE_FILES === undefined) {
63
67
  process.env.TS_NODE_FILES = "true";
@@ -317,7 +317,7 @@ export class JsonRpcClient {
317
317
  ): Promise<any> {
318
318
  try {
319
319
  return await this._httpProvider.request({ method, params });
320
- } catch (err) {
320
+ } catch (err: any) {
321
321
  if (this._shouldRetry(isRetryCall, err)) {
322
322
  return this._send(method, params, true);
323
323
  }
@@ -429,7 +429,7 @@ export class JsonRpcClient {
429
429
  encoding: "utf8",
430
430
  }
431
431
  );
432
- } catch (error) {
432
+ } catch (error: any) {
433
433
  if (error.code === "ENOENT") {
434
434
  return undefined;
435
435
  }
@@ -207,7 +207,12 @@ const _readJsonHttpRequest = async (req: IncomingMessage): Promise<any> => {
207
207
 
208
208
  json = JSON.parse(text);
209
209
  } catch (error) {
210
- throw new InvalidJsonInputError(`Parse error: ${error.message}`);
210
+ if (error instanceof Error) {
211
+ throw new InvalidJsonInputError(`Parse error: ${error.message}`);
212
+ }
213
+
214
+ // eslint-disable-next-line @nomiclabs/hardhat-internal-rules/only-hardhat-error
215
+ throw error;
211
216
  }
212
217
 
213
218
  return json;
@@ -218,7 +223,12 @@ const _readWsRequest = (msg: string): JsonRpcRequest => {
218
223
  try {
219
224
  json = JSON.parse(msg);
220
225
  } catch (error) {
221
- throw new InvalidJsonInputError(`Parse error: ${error.message}`);
226
+ if (error instanceof Error) {
227
+ throw new InvalidJsonInputError(`Parse error: ${error.message}`);
228
+ }
229
+
230
+ // eslint-disable-next-line @nomiclabs/hardhat-internal-rules/only-hardhat-error
231
+ throw error;
222
232
  }
223
233
 
224
234
  return json;
@@ -72,7 +72,7 @@ export class JsonRpcServer implements IJsonRpcServer {
72
72
 
73
73
  public close = async () => {
74
74
  await Promise.all([
75
- new Promise((resolve, reject) => {
75
+ new Promise<void>((resolve, reject) => {
76
76
  log("Closing JSON-RPC server");
77
77
  this._httpServer.close((err) => {
78
78
  if (err !== null && err !== undefined) {
@@ -85,7 +85,7 @@ export class JsonRpcServer implements IJsonRpcServer {
85
85
  resolve();
86
86
  });
87
87
  }),
88
- new Promise((resolve, reject) => {
88
+ new Promise<void>((resolve, reject) => {
89
89
  log("Closing websocket server");
90
90
  this._wsServer.close((err) => {
91
91
  if (err !== null && err !== undefined) {
@@ -2,7 +2,8 @@ import { TypedTransaction } from "@ethereumjs/tx";
2
2
  import { BN } from "ethereumjs-util";
3
3
  import Heap from "mnemonist/heap";
4
4
 
5
- import { InternalError } from "../../core/providers/errors";
5
+ import { InternalError, InvalidInputError } from "../../core/providers/errors";
6
+ import { MempoolOrder } from "./node-types";
6
7
  import { OrderedTransaction } from "./PoolState";
7
8
 
8
9
  function getEffectiveMinerFee(tx: OrderedTransaction, baseFee?: BN): BN {
@@ -38,6 +39,33 @@ function decreasingOrderEffectiveMinerFeeComparator(
38
39
  // in increasing order by orderId.
39
40
  return left.orderId - right.orderId;
40
41
  }
42
+
43
+ function decreasingOrderComparator(
44
+ left: OrderedTransaction,
45
+ right: OrderedTransaction
46
+ ) {
47
+ return left.orderId - right.orderId;
48
+ }
49
+
50
+ function getOrderedTransactionHeap(
51
+ mempoolOrder: MempoolOrder,
52
+ baseFee?: BN
53
+ ): Heap<OrderedTransaction> {
54
+ switch (mempoolOrder) {
55
+ case "priority":
56
+ return new Heap<OrderedTransaction>((a, b) =>
57
+ decreasingOrderEffectiveMinerFeeComparator(a, b, baseFee)
58
+ );
59
+ case "fifo":
60
+ return new Heap<OrderedTransaction>((a, b) =>
61
+ decreasingOrderComparator(a, b)
62
+ );
63
+ default:
64
+ // eslint-disable-next-line @nomiclabs/hardhat-internal-rules/only-hardhat-error
65
+ throw new InvalidInputError(`Invalid mempool order: ${mempoolOrder}`);
66
+ }
67
+ }
68
+
41
69
  /**
42
70
  * A queue of transactions in the order that they could be mined in the next
43
71
  * block.
@@ -67,11 +95,10 @@ export class TransactionQueue {
67
95
  */
68
96
  constructor(
69
97
  pendingTransactions: Map<string, OrderedTransaction[]>,
98
+ mempoolOrder: MempoolOrder,
70
99
  baseFee?: BN
71
100
  ) {
72
- this._heap = new Heap<OrderedTransaction>((a, b) =>
73
- decreasingOrderEffectiveMinerFeeComparator(a, b, baseFee)
74
- );
101
+ this._heap = getOrderedTransactionHeap(mempoolOrder, baseFee);
75
102
 
76
103
  for (const [address, txList] of pendingTransactions) {
77
104
  if (baseFee === undefined && txList.some((tx) => tx.data.type === 2)) {
@@ -332,7 +332,7 @@ export class TxPool {
332
332
  private _getSenderAddress(tx: TypedTransaction): Address {
333
333
  try {
334
334
  return tx.getSenderAddress(); // verifies signature
335
- } catch (e) {
335
+ } catch (e: any) {
336
336
  if (!tx.isSigned()) {
337
337
  throw new InvalidInputError("Invalid Signature");
338
338
  }
@@ -215,9 +215,7 @@ export class ForkBlockchain implements HardhatBlockchainInterface {
215
215
  : filterParams.addresses,
216
216
  topics: filterParams.normalizedTopics,
217
217
  });
218
- return remoteLogs
219
- .map((log, index) => toRpcLogOutput(log, index))
220
- .concat(localLogs);
218
+ return remoteLogs.map(toRpcLogOutput).concat(localLogs);
221
219
  }
222
220
  return this._data.getLogs(filterParams);
223
221
  }
@@ -274,7 +272,7 @@ export class ForkBlockchain implements HardhatBlockchainInterface {
274
272
  // one for London.
275
273
  const common = this._common.copy();
276
274
  if (rpcBlock.baseFeePerGas !== undefined) {
277
- common.setHardfork("london");
275
+ common.setHardfork("london"); // TODO: consider changing this to "latest hardfork"
278
276
  } else {
279
277
  common.setHardfork("berlin");
280
278
  }
@@ -959,29 +959,31 @@ export class EthModule {
959
959
  // AccessListEIP2930Transaction.fromSerializedTx and Transaction.fromSerializedTx
960
960
  // Please keep it updated.
961
961
 
962
- if (error.message === "invalid remainder") {
963
- throw new InvalidArgumentsError("Invalid transaction", error);
964
- }
962
+ if (error instanceof Error) {
963
+ if (error.message === "invalid remainder") {
964
+ throw new InvalidArgumentsError("Invalid transaction", error);
965
+ }
965
966
 
966
- if (error.message.includes("Incompatible EIP155")) {
967
- throw new InvalidArgumentsError(
968
- "Trying to send an incompatible EIP-155 transaction, signed for another chain.",
969
- error
970
- );
971
- }
967
+ if (error.message.includes("Incompatible EIP155")) {
968
+ throw new InvalidArgumentsError(
969
+ "Trying to send an incompatible EIP-155 transaction, signed for another chain.",
970
+ error
971
+ );
972
+ }
972
973
 
973
- if (
974
- error.message.includes("TypedTransaction with ID") &&
975
- error.message.includes(" unknown")
976
- ) {
977
- throw new InvalidArgumentsError(`Invalid transaction`, error);
978
- }
974
+ if (
975
+ error.message.includes("TypedTransaction with ID") &&
976
+ error.message.includes(" unknown")
977
+ ) {
978
+ throw new InvalidArgumentsError(`Invalid transaction`, error);
979
+ }
979
980
 
980
- if (error.message.includes("The chain ID does not match")) {
981
- throw new InvalidArgumentsError(
982
- `Trying to send a raw transaction with an invalid chainId. The expected chainId is ${this._common.chainIdBN()}`,
983
- error
984
- );
981
+ if (error.message.includes("The chain ID does not match")) {
982
+ throw new InvalidArgumentsError(
983
+ `Trying to send a raw transaction with an invalid chainId. The expected chainId is ${this._common.chainIdBN()}`,
984
+ error
985
+ );
986
+ }
985
987
  }
986
988
 
987
989
  throw error;
@@ -1065,7 +1067,7 @@ export class EthModule {
1065
1067
  if (typeof typedData === "string") {
1066
1068
  try {
1067
1069
  typedMessage = JSON.parse(typedData);
1068
- } catch (error) {
1070
+ } catch {
1069
1071
  throw new InvalidInputError(
1070
1072
  `The message parameter is an invalid JSON. Either pass a valid JSON or a plain object conforming to EIP712 TypedData schema.`
1071
1073
  );
@@ -108,6 +108,9 @@ export class HardhatModule {
108
108
  return this._setNextBlockBaseFeePerGasAction(
109
109
  ...this._setNextBlockBaseFeePerGasParams(params)
110
110
  );
111
+
112
+ case "hardhat_setCoinbase":
113
+ return this._setCoinbaseAction(...this._setCoinbaseParams(params));
111
114
  }
112
115
 
113
116
  throw new MethodNotFoundError(`Method ${method} not found`);
@@ -242,7 +245,7 @@ export class HardhatModule {
242
245
 
243
246
  if (this._node.isEip1559Active()) {
244
247
  throw new InvalidInputError(
245
- "hardhat_setMinGasPrice is not support when EIP-1559 is active"
248
+ "hardhat_setMinGasPrice is not supported when EIP-1559 is active"
246
249
  );
247
250
  }
248
251
 
@@ -346,6 +349,17 @@ export class HardhatModule {
346
349
  return true;
347
350
  }
348
351
 
352
+ // hardhat_setCoinbase
353
+
354
+ private _setCoinbaseParams(params: any[]): [Buffer] {
355
+ return validateParams(params, rpcAddress);
356
+ }
357
+
358
+ private async _setCoinbaseAction(address: Buffer) {
359
+ await this._node.setCoinbase(new Address(address));
360
+ return true;
361
+ }
362
+
349
363
  private async _logBlock(result: MineBlockResult) {
350
364
  const { block, traces } = result;
351
365
 
@@ -35,15 +35,19 @@ function printLine(line: string) {
35
35
  }
36
36
 
37
37
  function replaceLastLine(newLine: string) {
38
- process.stdout.write(
39
- // eslint-disable-next-line prefer-template
40
- ansiEscapes.cursorHide +
41
- ansiEscapes.cursorPrevLine +
42
- newLine +
43
- ansiEscapes.eraseEndLine +
44
- "\n" +
45
- ansiEscapes.cursorShow
46
- );
38
+ if (process.stdout.isTTY === true) {
39
+ process.stdout.write(
40
+ // eslint-disable-next-line prefer-template
41
+ ansiEscapes.cursorHide +
42
+ ansiEscapes.cursorPrevLine +
43
+ newLine +
44
+ ansiEscapes.eraseEndLine +
45
+ "\n" +
46
+ ansiEscapes.cursorShow
47
+ );
48
+ } else {
49
+ process.stdout.write(`${newLine}\n`);
50
+ }
47
51
  }
48
52
 
49
53
  /**
@@ -2,7 +2,8 @@ import { Block } from "@ethereumjs/block";
2
2
  import { RunBlockResult } from "@ethereumjs/vm/dist/runBlock";
3
3
  import { BN } from "ethereumjs-util";
4
4
 
5
- import { BuildInfo } from "../../../types";
5
+ import { HARDHAT_MEMPOOL_SUPPORTED_ORDERS } from "../../constants";
6
+ import { BuildInfo, HardhatNetworkChainsConfig } from "../../../types";
6
7
  import { MessageTrace } from "../stack-traces/message-trace";
7
8
 
8
9
  import type { ReturnData } from "./return-data";
@@ -28,6 +29,9 @@ interface CommonConfig {
28
29
  initialDate?: Date;
29
30
  tracingConfig?: TracingConfig;
30
31
  initialBaseFeePerGas?: number;
32
+ mempoolOrder: MempoolOrder;
33
+ coinbase: string;
34
+ chains: HardhatNetworkChainsConfig;
31
35
  }
32
36
 
33
37
  export type LocalNodeConfig = CommonConfig;
@@ -48,6 +52,8 @@ export interface TracingConfig {
48
52
 
49
53
  export type IntervalMiningConfig = number | [number, number];
50
54
 
55
+ export type MempoolOrder = typeof HARDHAT_MEMPOOL_SUPPORTED_ORDERS[number];
56
+
51
57
  export interface GenesisAccount {
52
58
  privateKey: string;
53
59
  balance: string | number | BN;
@@ -121,6 +127,7 @@ export interface Snapshot {
121
127
  nextBlockTimestamp: BN;
122
128
  irregularStatesByBlockNumber: Map<string, Buffer>;
123
129
  userProvidedNextBlockBaseFeePerGas: BN | undefined;
130
+ coinbase: string;
124
131
  }
125
132
 
126
133
  export type SendTransactionResult =