hardhat 2.20.1 → 2.21.0-dev.1

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 (271) hide show
  1. package/internal/core/jsonrpc/types/input/blockTag.d.ts +3 -3
  2. package/internal/core/jsonrpc/types/input/filterRequest.d.ts +6 -6
  3. package/internal/core/providers/construction.d.ts.map +1 -1
  4. package/internal/core/providers/construction.js +28 -4
  5. package/internal/core/providers/construction.js.map +1 -1
  6. package/internal/core/providers/http.d.ts +2 -0
  7. package/internal/core/providers/http.d.ts.map +1 -1
  8. package/internal/core/providers/http.js +2 -1
  9. package/internal/core/providers/http.js.map +1 -1
  10. package/internal/core/runtime-environment.d.ts.map +1 -1
  11. package/internal/core/runtime-environment.js.map +1 -1
  12. package/internal/hardhat-network/jsonrpc/client.d.ts +0 -2
  13. package/internal/hardhat-network/jsonrpc/client.d.ts.map +1 -1
  14. package/internal/hardhat-network/jsonrpc/client.js +0 -16
  15. package/internal/hardhat-network/jsonrpc/client.js.map +1 -1
  16. package/internal/hardhat-network/jsonrpc/handler.js +9 -1
  17. package/internal/hardhat-network/jsonrpc/handler.js.map +1 -1
  18. package/internal/hardhat-network/provider/BlockchainData.d.ts +5 -5
  19. package/internal/hardhat-network/provider/BlockchainData.d.ts.map +1 -1
  20. package/internal/hardhat-network/provider/BlockchainData.js +10 -10
  21. package/internal/hardhat-network/provider/BlockchainData.js.map +1 -1
  22. package/internal/hardhat-network/provider/HardhatBlockchain.d.ts +0 -7
  23. package/internal/hardhat-network/provider/HardhatBlockchain.d.ts.map +1 -1
  24. package/internal/hardhat-network/provider/HardhatBlockchain.js +2 -14
  25. package/internal/hardhat-network/provider/HardhatBlockchain.js.map +1 -1
  26. package/internal/hardhat-network/provider/TxPool.d.ts +3 -2
  27. package/internal/hardhat-network/provider/TxPool.d.ts.map +1 -1
  28. package/internal/hardhat-network/provider/TxPool.js +16 -16
  29. package/internal/hardhat-network/provider/TxPool.js.map +1 -1
  30. package/internal/hardhat-network/provider/ethereumjs-workarounds.js +1 -1
  31. package/internal/hardhat-network/provider/ethereumjs-workarounds.js.map +1 -1
  32. package/internal/hardhat-network/provider/filter.d.ts +6 -5
  33. package/internal/hardhat-network/provider/filter.d.ts.map +1 -1
  34. package/internal/hardhat-network/provider/filter.js +2 -2
  35. package/internal/hardhat-network/provider/filter.js.map +1 -1
  36. package/internal/hardhat-network/provider/fork/ForkBlockchain.d.ts +0 -7
  37. package/internal/hardhat-network/provider/fork/ForkBlockchain.d.ts.map +1 -1
  38. package/internal/hardhat-network/provider/fork/ForkBlockchain.js +4 -21
  39. package/internal/hardhat-network/provider/fork/ForkBlockchain.js.map +1 -1
  40. package/internal/hardhat-network/provider/fork/ForkStateManager.d.ts +13 -19
  41. package/internal/hardhat-network/provider/fork/ForkStateManager.d.ts.map +1 -1
  42. package/internal/hardhat-network/provider/fork/ForkStateManager.js +61 -59
  43. package/internal/hardhat-network/provider/fork/ForkStateManager.js.map +1 -1
  44. package/internal/hardhat-network/provider/fork/rpcToBlockData.d.ts.map +1 -1
  45. package/internal/hardhat-network/provider/fork/rpcToBlockData.js +0 -3
  46. package/internal/hardhat-network/provider/fork/rpcToBlockData.js.map +1 -1
  47. package/internal/hardhat-network/provider/fork/rpcToTxData.d.ts +2 -2
  48. package/internal/hardhat-network/provider/fork/rpcToTxData.d.ts.map +1 -1
  49. package/internal/hardhat-network/provider/fork/rpcToTxData.js +1 -1
  50. package/internal/hardhat-network/provider/fork/rpcToTxData.js.map +1 -1
  51. package/internal/hardhat-network/provider/modules/base.js +4 -4
  52. package/internal/hardhat-network/provider/modules/base.js.map +1 -1
  53. package/internal/hardhat-network/provider/modules/eth.d.ts.map +1 -1
  54. package/internal/hardhat-network/provider/modules/eth.js +9 -16
  55. package/internal/hardhat-network/provider/modules/eth.js.map +1 -1
  56. package/internal/hardhat-network/provider/modules/logger.d.ts +6 -84
  57. package/internal/hardhat-network/provider/modules/logger.d.ts.map +1 -1
  58. package/internal/hardhat-network/provider/modules/logger.js +3 -530
  59. package/internal/hardhat-network/provider/modules/logger.js.map +1 -1
  60. package/internal/hardhat-network/provider/node-types.d.ts +2 -65
  61. package/internal/hardhat-network/provider/node-types.d.ts.map +1 -1
  62. package/internal/hardhat-network/provider/node-types.js +0 -5
  63. package/internal/hardhat-network/provider/node-types.js.map +1 -1
  64. package/internal/hardhat-network/provider/node.d.ts +2 -6
  65. package/internal/hardhat-network/provider/node.d.ts.map +1 -1
  66. package/internal/hardhat-network/provider/node.js +79 -153
  67. package/internal/hardhat-network/provider/node.js.map +1 -1
  68. package/internal/hardhat-network/provider/output.d.ts +0 -14
  69. package/internal/hardhat-network/provider/output.d.ts.map +1 -1
  70. package/internal/hardhat-network/provider/output.js +0 -264
  71. package/internal/hardhat-network/provider/output.js.map +1 -1
  72. package/internal/hardhat-network/provider/provider.d.ts +28 -25
  73. package/internal/hardhat-network/provider/provider.d.ts.map +1 -1
  74. package/internal/hardhat-network/provider/provider.js +349 -185
  75. package/internal/hardhat-network/provider/provider.js.map +1 -1
  76. package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.d.ts +10 -8
  77. package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.d.ts.map +1 -1
  78. package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.js +9 -9
  79. package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.js.map +1 -1
  80. package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.d.ts +10 -8
  81. package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.d.ts.map +1 -1
  82. package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.js +9 -9
  83. package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.js.map +1 -1
  84. package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.d.ts +10 -9
  85. package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.d.ts.map +1 -1
  86. package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.js +7 -6
  87. package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.js.map +1 -1
  88. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.d.ts +6 -5
  89. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.d.ts.map +1 -1
  90. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.js +1 -1
  91. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.js.map +1 -1
  92. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.d.ts +5 -4
  93. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.d.ts.map +1 -1
  94. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.js +1 -1
  95. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.js.map +1 -1
  96. package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.d.ts +8 -7
  97. package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.d.ts.map +1 -1
  98. package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.js +2 -2
  99. package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.js.map +1 -1
  100. package/internal/hardhat-network/provider/transactions/ReadOnlyValidUnknownTypeTransaction.d.ts +8 -7
  101. package/internal/hardhat-network/provider/transactions/ReadOnlyValidUnknownTypeTransaction.d.ts.map +1 -1
  102. package/internal/hardhat-network/provider/transactions/ReadOnlyValidUnknownTypeTransaction.js +2 -2
  103. package/internal/hardhat-network/provider/transactions/ReadOnlyValidUnknownTypeTransaction.js.map +1 -1
  104. package/internal/hardhat-network/provider/types/HardhatBlockchainInterface.d.ts +5 -4
  105. package/internal/hardhat-network/provider/types/HardhatBlockchainInterface.d.ts.map +1 -1
  106. package/internal/hardhat-network/provider/utils/convertToEdr.d.ts +14 -0
  107. package/internal/hardhat-network/provider/utils/convertToEdr.d.ts.map +1 -0
  108. package/internal/hardhat-network/provider/utils/convertToEdr.js +194 -0
  109. package/internal/hardhat-network/provider/utils/convertToEdr.js.map +1 -0
  110. package/internal/hardhat-network/provider/utils/getCurrentTimestamp.d.ts +0 -1
  111. package/internal/hardhat-network/provider/utils/getCurrentTimestamp.d.ts.map +1 -1
  112. package/internal/hardhat-network/provider/utils/getCurrentTimestamp.js +1 -5
  113. package/internal/hardhat-network/provider/utils/getCurrentTimestamp.js.map +1 -1
  114. package/internal/hardhat-network/provider/utils/makeCommon.d.ts +1 -1
  115. package/internal/hardhat-network/provider/utils/makeCommon.d.ts.map +1 -1
  116. package/internal/hardhat-network/provider/utils/makeCommon.js +1 -3
  117. package/internal/hardhat-network/provider/utils/makeCommon.js.map +1 -1
  118. package/internal/hardhat-network/provider/utils/makeFakeSignature.d.ts +2 -2
  119. package/internal/hardhat-network/provider/utils/makeFakeSignature.d.ts.map +1 -1
  120. package/internal/hardhat-network/provider/utils/makeFakeSignature.js +1 -15
  121. package/internal/hardhat-network/provider/utils/makeFakeSignature.js.map +1 -1
  122. package/internal/hardhat-network/provider/utils/makeForkClient.d.ts +10 -1
  123. package/internal/hardhat-network/provider/utils/makeForkClient.d.ts.map +1 -1
  124. package/internal/hardhat-network/provider/utils/makeForkClient.js +38 -18
  125. package/internal/hardhat-network/provider/utils/makeForkClient.js.map +1 -1
  126. package/internal/hardhat-network/provider/utils/makeStateTrie.js +2 -2
  127. package/internal/hardhat-network/provider/utils/makeStateTrie.js.map +1 -1
  128. package/internal/hardhat-network/provider/utils/putGenesisBlock.d.ts +3 -1
  129. package/internal/hardhat-network/provider/utils/putGenesisBlock.d.ts.map +1 -1
  130. package/internal/hardhat-network/provider/utils/putGenesisBlock.js +2 -6
  131. package/internal/hardhat-network/provider/utils/putGenesisBlock.js.map +1 -1
  132. package/internal/hardhat-network/provider/utils/random.d.ts +1 -0
  133. package/internal/hardhat-network/provider/utils/random.d.ts.map +1 -1
  134. package/internal/hardhat-network/provider/utils/random.js +7 -1
  135. package/internal/hardhat-network/provider/utils/random.js.map +1 -1
  136. package/internal/hardhat-network/provider/utils/reorgs-protection.d.ts +1 -1
  137. package/internal/hardhat-network/provider/utils/reorgs-protection.d.ts.map +1 -1
  138. package/internal/hardhat-network/provider/utils/reorgs-protection.js +5 -5
  139. package/internal/hardhat-network/provider/utils/reorgs-protection.js.map +1 -1
  140. package/internal/hardhat-network/provider/vm/exit.d.ts +22 -0
  141. package/internal/hardhat-network/provider/vm/exit.d.ts.map +1 -0
  142. package/internal/hardhat-network/provider/vm/exit.js +93 -0
  143. package/internal/hardhat-network/provider/vm/exit.js.map +1 -0
  144. package/internal/hardhat-network/provider/vm/minimal-vm.d.ts +29 -0
  145. package/internal/hardhat-network/provider/vm/minimal-vm.d.ts.map +1 -0
  146. package/internal/hardhat-network/provider/vm/minimal-vm.js +43 -0
  147. package/internal/hardhat-network/provider/vm/minimal-vm.js.map +1 -0
  148. package/internal/hardhat-network/provider/vm/proxy-vm.d.ts +36 -0
  149. package/internal/hardhat-network/provider/vm/proxy-vm.d.ts.map +1 -0
  150. package/internal/hardhat-network/provider/vm/proxy-vm.js +73 -0
  151. package/internal/hardhat-network/provider/vm/proxy-vm.js.map +1 -0
  152. package/internal/hardhat-network/provider/vm/types.d.ts +28 -0
  153. package/internal/hardhat-network/provider/vm/types.d.ts.map +1 -0
  154. package/internal/hardhat-network/provider/vm/types.js +3 -0
  155. package/internal/hardhat-network/provider/vm/types.js.map +1 -0
  156. package/internal/hardhat-network/stack-traces/consoleLogger.d.ts +6 -0
  157. package/internal/hardhat-network/stack-traces/consoleLogger.d.ts.map +1 -1
  158. package/internal/hardhat-network/stack-traces/consoleLogger.js +33 -16
  159. package/internal/hardhat-network/stack-traces/consoleLogger.js.map +1 -1
  160. package/internal/hardhat-network/stack-traces/contracts-identifier.d.ts +1 -2
  161. package/internal/hardhat-network/stack-traces/contracts-identifier.d.ts.map +1 -1
  162. package/internal/hardhat-network/stack-traces/contracts-identifier.js +6 -7
  163. package/internal/hardhat-network/stack-traces/contracts-identifier.js.map +1 -1
  164. package/internal/hardhat-network/stack-traces/debug.js +6 -6
  165. package/internal/hardhat-network/stack-traces/debug.js.map +1 -1
  166. package/internal/hardhat-network/stack-traces/error-inferrer.d.ts.map +1 -1
  167. package/internal/hardhat-network/stack-traces/error-inferrer.js +13 -7
  168. package/internal/hardhat-network/stack-traces/error-inferrer.js.map +1 -1
  169. package/internal/hardhat-network/stack-traces/message-trace.d.ts +8 -3
  170. package/internal/hardhat-network/stack-traces/message-trace.d.ts.map +1 -1
  171. package/internal/hardhat-network/stack-traces/message-trace.js +22 -1
  172. package/internal/hardhat-network/stack-traces/message-trace.js.map +1 -1
  173. package/internal/hardhat-network/stack-traces/model.d.ts +8 -0
  174. package/internal/hardhat-network/stack-traces/model.d.ts.map +1 -1
  175. package/internal/hardhat-network/stack-traces/model.js +52 -0
  176. package/internal/hardhat-network/stack-traces/model.js.map +1 -1
  177. package/internal/hardhat-network/stack-traces/opcodes.d.ts +1 -0
  178. package/internal/hardhat-network/stack-traces/opcodes.d.ts.map +1 -1
  179. package/internal/hardhat-network/stack-traces/opcodes.js +5 -1
  180. package/internal/hardhat-network/stack-traces/opcodes.js.map +1 -1
  181. package/internal/hardhat-network/stack-traces/solidity-errors.js +2 -2
  182. package/internal/hardhat-network/stack-traces/solidity-errors.js.map +1 -1
  183. package/internal/hardhat-network/stack-traces/solidityTracer.d.ts.map +1 -1
  184. package/internal/hardhat-network/stack-traces/solidityTracer.js +5 -5
  185. package/internal/hardhat-network/stack-traces/solidityTracer.js.map +1 -1
  186. package/internal/hardhat-network/stack-traces/vm-debug-tracer.d.ts.map +1 -1
  187. package/internal/hardhat-network/stack-traces/vm-debug-tracer.js +28 -34
  188. package/internal/hardhat-network/stack-traces/vm-debug-tracer.js.map +1 -1
  189. package/internal/hardhat-network/stack-traces/vm-trace-decoder.d.ts +7 -0
  190. package/internal/hardhat-network/stack-traces/vm-trace-decoder.d.ts.map +1 -1
  191. package/internal/hardhat-network/stack-traces/vm-trace-decoder.js +69 -2
  192. package/internal/hardhat-network/stack-traces/vm-trace-decoder.js.map +1 -1
  193. package/internal/hardhat-network/stack-traces/vm-tracer.d.ts +7 -12
  194. package/internal/hardhat-network/stack-traces/vm-tracer.d.ts.map +1 -1
  195. package/internal/hardhat-network/stack-traces/vm-tracer.js +46 -65
  196. package/internal/hardhat-network/stack-traces/vm-tracer.js.map +1 -1
  197. package/internal/util/date.d.ts +1 -0
  198. package/internal/util/date.d.ts.map +1 -1
  199. package/internal/util/date.js +5 -1
  200. package/internal/util/date.js.map +1 -1
  201. package/internal/util/hardforks.d.ts +2 -0
  202. package/internal/util/hardforks.d.ts.map +1 -1
  203. package/internal/util/hardforks.js +27 -1
  204. package/internal/util/hardforks.js.map +1 -1
  205. package/package.json +16 -14
  206. package/src/internal/core/providers/construction.ts +7 -9
  207. package/src/internal/core/providers/http.ts +3 -1
  208. package/src/internal/core/runtime-environment.ts +2 -1
  209. package/src/internal/hardhat-network/jsonrpc/client.ts +1 -28
  210. package/src/internal/hardhat-network/jsonrpc/handler.ts +9 -1
  211. package/src/internal/hardhat-network/provider/modules/logger.ts +6 -801
  212. package/src/internal/hardhat-network/provider/node-types.ts +2 -89
  213. package/src/internal/hardhat-network/provider/output.ts +0 -352
  214. package/src/internal/hardhat-network/provider/provider.ts +501 -261
  215. package/src/internal/hardhat-network/provider/utils/convertToEdr.ts +232 -0
  216. package/src/internal/hardhat-network/provider/utils/getCurrentTimestamp.ts +0 -4
  217. package/src/internal/hardhat-network/provider/utils/makeCommon.ts +1 -12
  218. package/src/internal/hardhat-network/provider/utils/makeForkClient.ts +63 -24
  219. package/src/internal/hardhat-network/provider/utils/random.ts +8 -1
  220. package/src/internal/hardhat-network/provider/utils/reorgs-protection.ts +5 -5
  221. package/src/internal/hardhat-network/provider/vm/exit.ts +101 -0
  222. package/src/internal/hardhat-network/provider/vm/minimal-vm.ts +98 -0
  223. package/src/internal/hardhat-network/provider/vm/types.ts +32 -0
  224. package/src/internal/hardhat-network/stack-traces/consoleLogger.ts +40 -21
  225. package/src/internal/hardhat-network/stack-traces/contracts-identifier.ts +10 -12
  226. package/src/internal/hardhat-network/stack-traces/debug.ts +6 -6
  227. package/src/internal/hardhat-network/stack-traces/error-inferrer.ts +15 -8
  228. package/src/internal/hardhat-network/stack-traces/message-trace.ts +40 -4
  229. package/src/internal/hardhat-network/stack-traces/model.ts +61 -0
  230. package/src/internal/hardhat-network/stack-traces/opcodes.ts +4 -0
  231. package/src/internal/hardhat-network/stack-traces/solidity-errors.ts +2 -2
  232. package/src/internal/hardhat-network/stack-traces/solidityTracer.ts +6 -5
  233. package/src/internal/hardhat-network/stack-traces/vm-trace-decoder.ts +113 -4
  234. package/src/internal/hardhat-network/stack-traces/vm-tracer.ts +67 -95
  235. package/src/internal/util/date.ts +4 -0
  236. package/src/internal/util/hardforks.ts +52 -0
  237. package/src/internal/hardhat-network/provider/BlockchainBase.ts +0 -185
  238. package/src/internal/hardhat-network/provider/BlockchainData.ts +0 -261
  239. package/src/internal/hardhat-network/provider/HardhatBlockchain.ts +0 -140
  240. package/src/internal/hardhat-network/provider/PoolState.ts +0 -48
  241. package/src/internal/hardhat-network/provider/TransactionQueue.ts +0 -158
  242. package/src/internal/hardhat-network/provider/TxPool.ts +0 -715
  243. package/src/internal/hardhat-network/provider/ethereumjs-workarounds.ts +0 -21
  244. package/src/internal/hardhat-network/provider/filter.ts +0 -142
  245. package/src/internal/hardhat-network/provider/fork/ForkBlockchain.ts +0 -433
  246. package/src/internal/hardhat-network/provider/fork/ForkStateManager.ts +0 -480
  247. package/src/internal/hardhat-network/provider/fork/rpcToBlockData.ts +0 -35
  248. package/src/internal/hardhat-network/provider/fork/rpcToTxData.ts +0 -44
  249. package/src/internal/hardhat-network/provider/modules/base.ts +0 -156
  250. package/src/internal/hardhat-network/provider/modules/debug.ts +0 -104
  251. package/src/internal/hardhat-network/provider/modules/eth.ts +0 -1781
  252. package/src/internal/hardhat-network/provider/modules/evm.ts +0 -249
  253. package/src/internal/hardhat-network/provider/modules/hardhat.ts +0 -481
  254. package/src/internal/hardhat-network/provider/modules/net.ts +0 -60
  255. package/src/internal/hardhat-network/provider/modules/personal.ts +0 -40
  256. package/src/internal/hardhat-network/provider/modules/web3.ts +0 -49
  257. package/src/internal/hardhat-network/provider/node.ts +0 -2999
  258. package/src/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.ts +0 -226
  259. package/src/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.ts +0 -224
  260. package/src/internal/hardhat-network/provider/transactions/FakeSenderTransaction.ts +0 -216
  261. package/src/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.ts +0 -143
  262. package/src/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.ts +0 -144
  263. package/src/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.ts +0 -171
  264. package/src/internal/hardhat-network/provider/transactions/ReadOnlyValidUnknownTypeTransaction.ts +0 -169
  265. package/src/internal/hardhat-network/provider/types/HardhatBlockchainInterface.ts +0 -25
  266. package/src/internal/hardhat-network/provider/utils/makeFakeSignature.ts +0 -60
  267. package/src/internal/hardhat-network/provider/utils/makeStateTrie.ts +0 -29
  268. package/src/internal/hardhat-network/provider/utils/putGenesisBlock.ts +0 -61
  269. package/src/internal/hardhat-network/provider/utils/reorganizeTransactionsLists.ts +0 -45
  270. package/src/internal/hardhat-network/provider/utils/txMapToArray.ts +0 -7
  271. package/src/internal/hardhat-network/stack-traces/vm-debug-tracer.ts +0 -630
@@ -3,21 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ModulesLogger = void 0;
7
- const ethereumjs_util_1 = require("@nomicfoundation/ethereumjs-util");
6
+ exports.replaceLastLine = exports.printLine = void 0;
8
7
  const ansi_escapes_1 = __importDefault(require("ansi-escapes"));
9
- const chalk_1 = __importDefault(require("chalk"));
10
- const util_1 = __importDefault(require("util"));
11
- const errors_1 = require("../../../core/errors");
12
- const errors_2 = require("../../../core/providers/errors");
13
- const wei_values_1 = require("../../../util/wei-values");
14
- const message_trace_1 = require("../../stack-traces/message-trace");
15
- const model_1 = require("../../stack-traces/model");
16
- const solidity_errors_1 = require("../../stack-traces/solidity-errors");
17
- const solidity_stack_trace_1 = require("../../stack-traces/solidity-stack-trace");
18
8
  function printLine(line) {
19
9
  console.log(line);
20
10
  }
11
+ exports.printLine = printLine;
21
12
  function replaceLastLine(newLine) {
22
13
  if (process.stdout.isTTY === true) {
23
14
  process.stdout.write(
@@ -33,523 +24,5 @@ function replaceLastLine(newLine) {
33
24
  process.stdout.write(`${newLine}\n`);
34
25
  }
35
26
  }
36
- /**
37
- * Handles all the logging made from the Hardhat Network.
38
- *
39
- * Methods of this class follow this convention:
40
- * - Methods that start with `log` add those messages to a list of things to log
41
- * - Methods that start with `print` print to stdout immediately
42
- */
43
- class ModulesLogger {
44
- constructor(_enabled, _printLine = printLine, _replaceLastLine = replaceLastLine) {
45
- this._enabled = _enabled;
46
- this._printLine = _printLine;
47
- this._replaceLastLine = _replaceLastLine;
48
- this._logs = [];
49
- this._titleLength = 0;
50
- this._currentIndent = 0;
51
- this._emptyIntervalMinedBlocksRangeStart = undefined;
52
- this._emptyHardhatMinedBlocksRangeStart = undefined;
53
- this._methodCollapsedCount = 0;
54
- }
55
- isEnabled() {
56
- return this._enabled;
57
- }
58
- setEnabled(enabled) {
59
- this._enabled = enabled;
60
- }
61
- isLoggedError(err) {
62
- return (err instanceof solidity_errors_1.SolidityError || err instanceof errors_2.TransactionExecutionError);
63
- }
64
- logBlockFromAutomine(result, codes, txHashToHighlight) {
65
- const { block, blockResult, traces } = result;
66
- const { results } = blockResult;
67
- (0, errors_1.assertHardhatInvariant)(results.length === codes.length, "The array of codes should have the same length as the array of results");
68
- this._indent(() => {
69
- this._logBlockNumber(block);
70
- this._indent(() => {
71
- this._logBaseFeePerGas(block);
72
- for (let i = 0; i < block.transactions.length; i++) {
73
- const tx = block.transactions[i];
74
- const txGasUsed = results[i].totalGasSpent;
75
- const txTrace = traces[i];
76
- const code = codes[i];
77
- const highlightTxHash = (0, ethereumjs_util_1.equalsBytes)(tx.hash(), txHashToHighlight);
78
- this._logTxInsideBlock(tx, txTrace, code, txGasUsed, {
79
- highlightTxHash,
80
- });
81
- this._logEmptyLineBetweenTransactions(i, block.transactions.length);
82
- }
83
- });
84
- });
85
- }
86
- logMinedBlock(result, codes) {
87
- const { block, blockResult, traces } = result;
88
- const { results } = blockResult;
89
- (0, errors_1.assertHardhatInvariant)(results.length === codes.length, "The array of codes should have the same length as the array of results");
90
- const blockNumber = result.block.header.number;
91
- const isEmpty = result.block.transactions.length === 0;
92
- this._indent(() => {
93
- this.logMinedBlockNumber(blockNumber, isEmpty, block.header.baseFeePerGas);
94
- if (isEmpty) {
95
- return;
96
- }
97
- this._indent(() => {
98
- this._logBlockHash(block);
99
- this._indent(() => {
100
- this._logBaseFeePerGas(block);
101
- for (let i = 0; i < block.transactions.length; i++) {
102
- const tx = block.transactions[i];
103
- const txGasUsed = results[i].totalGasSpent;
104
- const txTrace = traces[i];
105
- const code = codes[i];
106
- this._logTxInsideBlock(tx, txTrace, code, txGasUsed, {
107
- highlightTxHash: false,
108
- });
109
- this._logEmptyLineBetweenTransactions(i, block.transactions.length);
110
- }
111
- });
112
- });
113
- });
114
- }
115
- logIntervalMinedBlock(result, codes) {
116
- const { block, blockResult, traces } = result;
117
- const { results } = blockResult;
118
- (0, errors_1.assertHardhatInvariant)(results.length === codes.length, "The array of codes should have the same length as the array of results");
119
- this._indent(() => {
120
- this._logBlockHash(block);
121
- this._indent(() => {
122
- this._logBaseFeePerGas(block);
123
- for (let i = 0; i < block.transactions.length; i++) {
124
- const tx = block.transactions[i];
125
- const txGasUsed = results[i].totalGasSpent;
126
- const txTrace = traces[i];
127
- const code = codes[i];
128
- this._logTxInsideBlock(tx, txTrace, code, txGasUsed, {
129
- highlightTxHash: false,
130
- });
131
- this._logEmptyLineBetweenTransactions(i, block.transactions.length);
132
- }
133
- });
134
- });
135
- }
136
- logSingleTransaction(tx, block, txGasUsed, txTrace, code) {
137
- this._indent(() => {
138
- this._logContractAndFunctionName(txTrace.trace, code);
139
- const txHash = (0, ethereumjs_util_1.bytesToHex)(tx.hash());
140
- this._logWithTitle("Transaction", txHash);
141
- this._logTxFrom(Buffer.from(tx.getSenderAddress().toBytes()));
142
- this._logTxTo(tx.to?.toBytes(), txTrace.trace);
143
- this._logTxValue(tx.value);
144
- this._logWithTitle("Gas used", `${txGasUsed} of ${tx.gasLimit}`);
145
- this._logWithTitle(`Block #${block.header.number}`, (0, ethereumjs_util_1.bytesToHex)(block.hash()));
146
- this._logConsoleLogMessages(txTrace.consoleLogMessages);
147
- if (txTrace.error !== undefined) {
148
- this._logError(txTrace.error);
149
- }
150
- });
151
- }
152
- logCurrentlySentTransaction(tx, txGasUsed, txTrace, code, block) {
153
- this._indent(() => {
154
- this._log("Currently sent transaction:");
155
- this.logEmptyLine();
156
- this._logContractAndFunctionName(txTrace.trace, code);
157
- const txHash = (0, ethereumjs_util_1.bytesToHex)(tx.hash());
158
- this._logWithTitle("Transaction", txHash);
159
- this._logTxFrom(tx.getSenderAddress().toBytes());
160
- this._logTxTo(tx.to?.toBytes(), txTrace.trace);
161
- this._logTxValue(tx.value);
162
- this._logWithTitle("Gas used", `${txGasUsed} of ${tx.gasLimit}`);
163
- this._logWithTitle(`Block #${block.header.number}`, (0, ethereumjs_util_1.bytesToHex)(block.hash()));
164
- this._logConsoleLogMessages(txTrace.consoleLogMessages);
165
- if (txTrace.error !== undefined) {
166
- this._logError(txTrace.error);
167
- }
168
- });
169
- }
170
- logEstimateGasTrace(callParams, code, trace, consoleLogMessages, error) {
171
- this._indent(() => {
172
- this._logContractAndFunctionName(trace, code, {
173
- printNonContractCalled: true,
174
- });
175
- this._logTxFrom(callParams.from);
176
- this._logTxTo(callParams.to, trace);
177
- this._logTxValue(callParams.value);
178
- this._logConsoleLogMessages(consoleLogMessages);
179
- this._logError(error);
180
- });
181
- }
182
- logCallTrace(callParams, code, trace, consoleLogMessages, error) {
183
- this._indent(() => {
184
- this._logContractAndFunctionName(trace, code, {
185
- printNonContractCalled: true,
186
- });
187
- this._logTxFrom(callParams.from);
188
- this._logTxTo(callParams.to, trace);
189
- if (callParams.value > 0n) {
190
- this._logTxValue(callParams.value);
191
- }
192
- this._logConsoleLogMessages(consoleLogMessages);
193
- if (error !== undefined) {
194
- // TODO: If throwOnCallFailures is false, this will log the error, but the RPC method won't be red
195
- this._logError(error);
196
- }
197
- });
198
- }
199
- logMinedBlockNumber(blockNumber, isEmpty, baseFeePerGas) {
200
- if (isEmpty) {
201
- this._log(`Mined empty block #${blockNumber}${baseFeePerGas !== undefined
202
- ? ` with base fee ${baseFeePerGas.toString()}`
203
- : ""}`);
204
- return;
205
- }
206
- this._log(`Mined block #${blockNumber}`);
207
- }
208
- logMultipleTransactionsWarning() {
209
- this._indent(() => {
210
- this._log("There were other pending transactions mined in the same block:");
211
- });
212
- this.logEmptyLine();
213
- }
214
- logMultipleBlocksWarning() {
215
- this._indent(() => {
216
- this._log("There were other pending transactions. More than one block had to be mined:");
217
- });
218
- this.logEmptyLine();
219
- }
220
- logEmptyLine() {
221
- this._log("");
222
- }
223
- _logBaseFeePerGas(block) {
224
- if (block.header.baseFeePerGas !== undefined) {
225
- this._log(`Base fee: ${block.header.baseFeePerGas.toString()}`);
226
- }
227
- }
228
- printErrorMessage(errorMessage) {
229
- this._indent(() => {
230
- this._print(errorMessage);
231
- });
232
- }
233
- printFailedMethod(method) {
234
- this._print(method, { color: chalk_1.default.red });
235
- }
236
- /**
237
- * Print all accumulated logs
238
- */
239
- printLogs() {
240
- const logs = this._getLogs();
241
- if (logs.length === 0) {
242
- return false;
243
- }
244
- for (const msg of logs) {
245
- this._print(msg);
246
- }
247
- this._clearLogs();
248
- return true;
249
- }
250
- printIntervalMinedBlockNumber(blockNumber, isEmpty, baseFeePerGas) {
251
- if (this._emptyIntervalMinedBlocksRangeStart !== undefined) {
252
- this._print(`Mined empty block range #${this._emptyIntervalMinedBlocksRangeStart} to #${blockNumber}`, { collapseIntervalMinedBlock: true, replaceLastLine: true });
253
- }
254
- else {
255
- this._emptyIntervalMinedBlocksRangeStart = blockNumber;
256
- if (isEmpty) {
257
- this._print(`Mined empty block #${blockNumber}${baseFeePerGas !== undefined
258
- ? ` with base fee ${baseFeePerGas.toString()}`
259
- : ""}`, {
260
- collapseIntervalMinedBlock: true,
261
- });
262
- return;
263
- }
264
- this._print(`Mined block #${blockNumber}`, {
265
- collapseIntervalMinedBlock: true,
266
- });
267
- }
268
- }
269
- logEmptyHardhatMinedBlock(blockNumber, baseFeePerGas) {
270
- this._indent(() => {
271
- if (this._emptyHardhatMinedBlocksRangeStart !== undefined) {
272
- this._log(`Mined empty block range #${this._emptyHardhatMinedBlocksRangeStart} to #${blockNumber}`, { collapseHardhatMinedBlock: true, replaceLastLine: true });
273
- }
274
- else {
275
- this._emptyHardhatMinedBlocksRangeStart = blockNumber;
276
- this._log(`Mined empty block #${blockNumber}${baseFeePerGas !== undefined
277
- ? ` with base fee ${baseFeePerGas.toString()}`
278
- : ""}`, {
279
- collapseHardhatMinedBlock: true,
280
- });
281
- return;
282
- }
283
- });
284
- }
285
- printMetaMaskWarning() {
286
- const message = "If you are using MetaMask, you can learn how to fix this error here: https://hardhat.org/metamask-issue";
287
- this._indent(() => {
288
- this._print(message, { color: chalk_1.default.yellow });
289
- });
290
- }
291
- printMethod(method) {
292
- if (this._shouldCollapseMethod(method)) {
293
- this._methodCollapsedCount += 1;
294
- this._print(chalk_1.default.green(`${method} (${this._methodCollapsedCount})`), {
295
- collapsePrintedMethod: true,
296
- replaceLastLine: true,
297
- });
298
- }
299
- else {
300
- this._startCollapsingMethod(method);
301
- this._print(method, { color: chalk_1.default.green, collapsePrintedMethod: true });
302
- }
303
- }
304
- printMethodNotSupported(method) {
305
- this._print(`${method} - Method not supported`, { color: chalk_1.default.red });
306
- }
307
- printEmptyLine() {
308
- this._print("");
309
- }
310
- printUnknownError(err) {
311
- this._indent(() => {
312
- this._printError(err);
313
- this.printEmptyLine();
314
- this._print("If you think this is a bug in Hardhat, please report it here: https://hardhat.org/report-bug");
315
- });
316
- }
317
- _format(msg, { color } = {}) {
318
- if (msg === "") {
319
- // don't indent empty lines
320
- return msg;
321
- }
322
- if (this._currentIndent > 0) {
323
- msg = msg
324
- .split("\n")
325
- .map((line) => " ".repeat(this._currentIndent) + line)
326
- .join("\n");
327
- }
328
- if (color !== undefined) {
329
- return color(msg);
330
- }
331
- return msg;
332
- }
333
- _indent(cb, enabled = true) {
334
- if (enabled) {
335
- this._currentIndent += 2;
336
- }
337
- try {
338
- return cb();
339
- }
340
- finally {
341
- if (enabled) {
342
- this._currentIndent -= 2;
343
- }
344
- }
345
- }
346
- _indentSingleLine(message) {
347
- return " ".repeat(this._currentIndent) + message;
348
- }
349
- _log(msg, printOptions = {}) {
350
- if (printOptions.collapsePrintedMethod !== true) {
351
- this._stopCollapsingMethod();
352
- }
353
- if (printOptions.collapseIntervalMinedBlock !== true) {
354
- this._emptyIntervalMinedBlocksRangeStart = undefined;
355
- }
356
- if (printOptions.collapseHardhatMinedBlock !== true) {
357
- this._emptyHardhatMinedBlocksRangeStart = undefined;
358
- }
359
- const formattedMessage = this._format(msg, printOptions);
360
- if (printOptions.replaceLastLine === true) {
361
- this._logs[this._logs.length - 1] = formattedMessage;
362
- }
363
- else {
364
- this._logs.push(formattedMessage);
365
- }
366
- }
367
- _logError(err) {
368
- if (this.isLoggedError(err)) {
369
- this.logEmptyLine();
370
- this._log(util_1.default.inspect(err));
371
- }
372
- }
373
- _logTxInsideBlock(tx, txTrace, code, txGasUsed, { highlightTxHash, }) {
374
- // indentAfterTransactionHash: true,
375
- // printTxBlockNumber: false,
376
- // startWithTxHash: true,
377
- let txHash = (0, ethereumjs_util_1.bytesToHex)(tx.hash());
378
- if (highlightTxHash) {
379
- txHash = chalk_1.default.bold(txHash);
380
- }
381
- this._logWithTitle("Transaction", txHash);
382
- this._indent(() => {
383
- this._logContractAndFunctionName(txTrace.trace, code);
384
- this._logTxFrom(tx.getSenderAddress().toBytes());
385
- this._logTxTo(tx.to?.toBytes(), txTrace.trace);
386
- this._logTxValue(tx.value);
387
- this._logWithTitle("Gas used", `${txGasUsed} of ${tx.gasLimit}`);
388
- this._logConsoleLogMessages(txTrace.consoleLogMessages);
389
- if (txTrace.error !== undefined) {
390
- this._logError(txTrace.error);
391
- }
392
- });
393
- }
394
- /**
395
- * This should be the only function that calls _printLine and
396
- * _replaceLastLine (except for the special console.sol case),
397
- * because it's the only function that checks if the logger
398
- * is enabled.
399
- */
400
- _print(msg, printOptions = {}) {
401
- if (!this._enabled) {
402
- return;
403
- }
404
- if (printOptions.collapsePrintedMethod !== true) {
405
- this._stopCollapsingMethod();
406
- }
407
- if (printOptions.collapseIntervalMinedBlock !== true) {
408
- this._emptyIntervalMinedBlocksRangeStart = undefined;
409
- }
410
- if (printOptions.collapseHardhatMinedBlock !== true) {
411
- this._emptyHardhatMinedBlocksRangeStart = undefined;
412
- }
413
- const formattedMessage = this._format(msg, printOptions);
414
- if (printOptions.replaceLastLine === true) {
415
- this._replaceLastLine(formattedMessage);
416
- }
417
- else {
418
- this._printLine(formattedMessage);
419
- }
420
- }
421
- _printError(err) {
422
- if (this.isLoggedError(err)) {
423
- this.printEmptyLine();
424
- this._print(util_1.default.inspect(err));
425
- }
426
- }
427
- _logContractAndFunctionName(trace, code, { printNonContractCalled = false, } = {}) {
428
- if (trace === undefined) {
429
- return;
430
- }
431
- if ((0, message_trace_1.isPrecompileTrace)(trace)) {
432
- this._logWithTitle("Precompile call", `<PrecompileContract ${trace.precompile}>`);
433
- return;
434
- }
435
- if ((0, message_trace_1.isCreateTrace)(trace)) {
436
- if (trace.bytecode === undefined) {
437
- this._logWithTitle("Contract deployment", solidity_stack_trace_1.UNRECOGNIZED_CONTRACT_NAME);
438
- }
439
- else {
440
- this._logWithTitle("Contract deployment", trace.bytecode.contract.name);
441
- }
442
- if (trace.deployedContract !== undefined && trace.error === undefined) {
443
- this._logWithTitle("Contract address", (0, ethereumjs_util_1.bytesToHex)(trace.deployedContract));
444
- }
445
- return;
446
- }
447
- if (code.length === 0) {
448
- if (printNonContractCalled) {
449
- this._log(`WARNING: Calling an account which is not a contract`);
450
- }
451
- return;
452
- }
453
- if (trace.bytecode === undefined) {
454
- this._logWithTitle("Contract call", solidity_stack_trace_1.UNRECOGNIZED_CONTRACT_NAME);
455
- return;
456
- }
457
- const func = trace.bytecode.contract.getFunctionFromSelector(trace.calldata.slice(0, 4));
458
- const functionName = func === undefined
459
- ? solidity_stack_trace_1.UNRECOGNIZED_FUNCTION_NAME
460
- : func.type === model_1.ContractFunctionType.FALLBACK
461
- ? solidity_stack_trace_1.FALLBACK_FUNCTION_NAME
462
- : func.type === model_1.ContractFunctionType.RECEIVE
463
- ? solidity_stack_trace_1.RECEIVE_FUNCTION_NAME
464
- : func.name;
465
- this._logWithTitle("Contract call", `${trace.bytecode.contract.name}#${functionName}`);
466
- }
467
- _shouldCollapseMethod(method) {
468
- return (method === this._methodBeingCollapsed &&
469
- !this._hasLogs() &&
470
- this._methodCollapsedCount > 0);
471
- }
472
- _startCollapsingMethod(method) {
473
- this._methodBeingCollapsed = method;
474
- this._methodCollapsedCount = 1;
475
- }
476
- _stopCollapsingMethod() {
477
- this._methodBeingCollapsed = undefined;
478
- this._methodCollapsedCount = 0;
479
- }
480
- _logTxTo(to, trace) {
481
- if (trace !== undefined && (0, message_trace_1.isCreateTrace)(trace)) {
482
- return;
483
- }
484
- if (to === undefined) {
485
- // only for the type-checker, since `to` is undefined only when
486
- // the message is a create trace
487
- return;
488
- }
489
- const toString = (0, ethereumjs_util_1.bytesToHex)(to);
490
- this._logWithTitle("To", toString);
491
- }
492
- _logTxValue(value) {
493
- this._logWithTitle("Value", (0, wei_values_1.weiToHumanReadableString)(value));
494
- }
495
- _logTxFrom(from) {
496
- this._logWithTitle("From", (0, ethereumjs_util_1.bytesToHex)(from));
497
- }
498
- _logBlockNumber(block) {
499
- this._log(`Block #${block.header.number}: ${(0, ethereumjs_util_1.bytesToHex)(block.hash())}`);
500
- }
501
- _logEmptyLineBetweenTransactions(currentIndex, totalTransactions) {
502
- if (currentIndex + 1 < totalTransactions && totalTransactions > 1) {
503
- this.logEmptyLine();
504
- }
505
- }
506
- _logBlockHash(block) {
507
- this._log(`Block: ${(0, ethereumjs_util_1.bytesToHex)(block.hash())}`);
508
- }
509
- _logConsoleLogMessages(messages) {
510
- // This is a especial case, as we always want to print the console.log
511
- // messages. The difference is how.
512
- // If we have a logger, we should use that, so that logs are printed in
513
- // order. If we don't, we just print the messages here.
514
- if (!this._enabled) {
515
- for (const msg of messages) {
516
- this._printLine(msg);
517
- }
518
- return;
519
- }
520
- if (messages.length === 0) {
521
- return;
522
- }
523
- this.logEmptyLine();
524
- this._log("console.log:");
525
- for (const msg of messages) {
526
- this._log(` ${msg}`);
527
- }
528
- }
529
- _logWithTitle(title, message) {
530
- title = this._indentSingleLine(title);
531
- // We always use the max title length we've seen. Otherwise the value move
532
- // a lot with each tx/call.
533
- if (title.length > this._titleLength) {
534
- this._titleLength = title.length;
535
- }
536
- this._logs.push([title, message]);
537
- }
538
- _clearLogs() {
539
- this._logs = [];
540
- }
541
- _hasLogs() {
542
- return this._logs.length > 0;
543
- }
544
- _getLogs() {
545
- return this._logs.map((l) => {
546
- if (typeof l === "string") {
547
- return l;
548
- }
549
- const title = `${l[0]}:`;
550
- return `${title.padEnd(this._titleLength + 1)} ${l[1]}`;
551
- });
552
- }
553
- }
554
- exports.ModulesLogger = ModulesLogger;
27
+ exports.replaceLastLine = replaceLastLine;
555
28
  //# sourceMappingURL=logger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/modules/logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/modules/logger.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAuC;AAEvC,SAAgB,SAAS,CAAC,IAAY;IACpC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC;AAFD,8BAEC;AAED,SAAgB,eAAe,CAAC,OAAe;IAC7C,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE;QACjC,OAAO,CAAC,MAAM,CAAC,KAAK;QAClB,2CAA2C;QAC3C,sBAAW,CAAC,UAAU;YACpB,sBAAW,CAAC,cAAc;YAC1B,OAAO;YACP,sBAAW,CAAC,YAAY;YACxB,IAAI;YACJ,sBAAW,CAAC,UAAU,CACzB,CAAC;KACH;SAAM;QACL,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC;KACtC;AACH,CAAC;AAdD,0CAcC"}
@@ -1,12 +1,6 @@
1
- import type { ReturnData } from "./return-data";
2
- import { Block } from "@nomicfoundation/ethereumjs-block";
3
- import { RunBlockResult } from "@nomicfoundation/ethereumjs-vm";
4
1
  import { HARDHAT_MEMPOOL_SUPPORTED_ORDERS } from "../../constants";
5
2
  import { BuildInfo, HardhatNetworkChainsConfig } from "../../../types";
6
- import { MessageTrace } from "../stack-traces/message-trace";
7
- import { RandomBufferGenerator } from "./utils/random";
8
3
  export type NodeConfig = LocalNodeConfig | ForkedNodeConfig;
9
- export declare function isForkedNodeConfig(config: NodeConfig): config is ForkedNodeConfig;
10
4
  interface CommonConfig {
11
5
  automine: boolean;
12
6
  blockGasLimit: number;
@@ -39,6 +33,7 @@ export interface ForkedNodeConfig extends CommonConfig {
39
33
  }
40
34
  export interface TracingConfig {
41
35
  buildInfos?: BuildInfo[];
36
+ ignoreContracts?: boolean;
42
37
  }
43
38
  export type IntervalMiningConfig = number | [number, number];
44
39
  export type MempoolOrder = typeof HARDHAT_MEMPOOL_SUPPORTED_ORDERS[number];
@@ -47,18 +42,7 @@ export interface GenesisAccount {
47
42
  balance: string | number | bigint;
48
43
  }
49
44
  export type AccessListBufferItem = [Uint8Array, Uint8Array[]];
50
- export interface CallParams {
51
- to?: Uint8Array;
52
- from: Uint8Array;
53
- gasLimit: bigint;
54
- value: bigint;
55
- data: Uint8Array;
56
- accessList?: AccessListBufferItem[];
57
- gasPrice?: bigint;
58
- maxFeePerGas?: bigint;
59
- maxPriorityFeePerGas?: bigint;
60
- }
61
- export type TransactionParams = LegacyTransactionParams | AccessListTransactionParams | EIP1559TransactionParams | BlobTransactionParams;
45
+ export type TransactionParams = LegacyTransactionParams | AccessListTransactionParams | EIP1559TransactionParams;
62
46
  interface BaseTransactionParams {
63
47
  to?: Uint8Array;
64
48
  from: Uint8Array;
@@ -79,52 +63,5 @@ export interface EIP1559TransactionParams extends BaseTransactionParams {
79
63
  maxFeePerGas: bigint;
80
64
  maxPriorityFeePerGas: bigint;
81
65
  }
82
- export interface BlobTransactionParams extends EIP1559TransactionParams {
83
- blobs: Uint8Array[];
84
- blobVersionedHashes: Uint8Array[];
85
- }
86
- export interface FilterParams {
87
- fromBlock: bigint;
88
- toBlock: bigint;
89
- addresses: Uint8Array[];
90
- normalizedTopics: Array<Array<Uint8Array | null> | null>;
91
- }
92
- export interface Snapshot {
93
- id: number;
94
- date: Date;
95
- latestBlock: Block;
96
- stateRoot: Uint8Array;
97
- txPoolSnapshotId: number;
98
- blockTimeOffsetSeconds: bigint;
99
- nextBlockTimestamp: bigint;
100
- irregularStatesByBlockNumber: Map<bigint, Uint8Array>;
101
- userProvidedNextBlockBaseFeePerGas: bigint | undefined;
102
- coinbase: string;
103
- mixHashGenerator: RandomBufferGenerator;
104
- parentBeaconBlockRootGenerator: RandomBufferGenerator;
105
- }
106
- export type SendTransactionResult = string | MineBlockResult | MineBlockResult[];
107
- export interface MineBlockResult {
108
- block: Block;
109
- blockResult: RunBlockResult;
110
- traces: GatherTracesResult[];
111
- }
112
- export interface RunCallResult extends GatherTracesResult {
113
- result: ReturnData;
114
- }
115
- export interface EstimateGasResult extends GatherTracesResult {
116
- estimation: bigint;
117
- }
118
- export interface GatherTracesResult {
119
- trace: MessageTrace | undefined;
120
- error?: Error;
121
- consoleLogMessages: string[];
122
- }
123
- export interface FeeHistory {
124
- oldestBlock: bigint;
125
- baseFeePerGas: bigint[];
126
- gasUsedRatio: number[];
127
- reward?: bigint[][];
128
- }
129
66
  export {};
130
67
  //# sourceMappingURL=node-types.d.ts.map