hardhat 2.10.1 → 2.11.0-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (440) hide show
  1. package/README.md +1 -1
  2. package/builtin-tasks/compile.js +6 -8
  3. package/builtin-tasks/compile.js.map +1 -1
  4. package/builtin-tasks/node.js +9 -12
  5. package/builtin-tasks/node.js.map +1 -1
  6. package/builtin-tasks/test.js +2 -3
  7. package/builtin-tasks/test.js.map +1 -1
  8. package/console.sol +444 -444
  9. package/internal/artifacts.js +1 -1
  10. package/internal/artifacts.js.map +1 -1
  11. package/internal/cli/ArgumentsParser.js +5 -2
  12. package/internal/cli/ArgumentsParser.js.map +1 -1
  13. package/internal/cli/analytics.js +2 -2
  14. package/internal/cli/analytics.js.map +1 -1
  15. package/internal/cli/autocomplete.js +20 -32
  16. package/internal/cli/autocomplete.js.map +1 -1
  17. package/internal/cli/cli.js +1 -1
  18. package/internal/cli/cli.js.map +1 -1
  19. package/internal/cli/project-creation.js +14 -4
  20. package/internal/cli/project-creation.js.map +1 -1
  21. package/internal/constants.d.ts.map +1 -1
  22. package/internal/constants.js +2 -0
  23. package/internal/constants.js.map +1 -1
  24. package/internal/core/config/config-loading.js +2 -3
  25. package/internal/core/config/config-loading.js.map +1 -1
  26. package/internal/core/config/config-resolution.d.ts.map +1 -1
  27. package/internal/core/config/config-resolution.js +84 -35
  28. package/internal/core/config/config-resolution.js.map +1 -1
  29. package/internal/core/config/config-validation.js +38 -20
  30. package/internal/core/config/config-validation.js.map +1 -1
  31. package/internal/core/config/default-config.d.ts.map +1 -1
  32. package/internal/core/config/default-config.js +17 -4
  33. package/internal/core/config/default-config.js.map +1 -1
  34. package/internal/core/errors.js +4 -2
  35. package/internal/core/errors.js.map +1 -1
  36. package/internal/core/execution-mode.js +2 -2
  37. package/internal/core/execution-mode.js.map +1 -1
  38. package/internal/core/flamegraph.d.ts +10 -0
  39. package/internal/core/flamegraph.d.ts.map +1 -0
  40. package/internal/core/flamegraph.js +245 -0
  41. package/internal/core/flamegraph.js.map +1 -0
  42. package/internal/core/jsonrpc/types/base-types.d.ts +7 -8
  43. package/internal/core/jsonrpc/types/base-types.d.ts.map +1 -1
  44. package/internal/core/jsonrpc/types/base-types.js +24 -24
  45. package/internal/core/jsonrpc/types/base-types.js.map +1 -1
  46. package/internal/core/jsonrpc/types/input/blockTag.d.ts +15 -10
  47. package/internal/core/jsonrpc/types/input/blockTag.d.ts.map +1 -1
  48. package/internal/core/jsonrpc/types/input/blockTag.js +2 -0
  49. package/internal/core/jsonrpc/types/input/blockTag.js.map +1 -1
  50. package/internal/core/jsonrpc/types/input/callRequest.d.ts +5 -6
  51. package/internal/core/jsonrpc/types/input/callRequest.d.ts.map +1 -1
  52. package/internal/core/jsonrpc/types/input/callRequest.js.map +1 -1
  53. package/internal/core/jsonrpc/types/input/filterRequest.d.ts +6 -7
  54. package/internal/core/jsonrpc/types/input/filterRequest.d.ts.map +1 -1
  55. package/internal/core/jsonrpc/types/input/filterRequest.js.map +1 -1
  56. package/internal/core/jsonrpc/types/input/transactionRequest.d.ts +7 -8
  57. package/internal/core/jsonrpc/types/input/transactionRequest.d.ts.map +1 -1
  58. package/internal/core/jsonrpc/types/input/transactionRequest.js.map +1 -1
  59. package/internal/core/jsonrpc/types/output/block.d.ts +29 -30
  60. package/internal/core/jsonrpc/types/output/block.d.ts.map +1 -1
  61. package/internal/core/jsonrpc/types/output/block.js +8 -2
  62. package/internal/core/jsonrpc/types/output/block.js.map +1 -1
  63. package/internal/core/jsonrpc/types/output/log.d.ts +3 -4
  64. package/internal/core/jsonrpc/types/output/log.d.ts.map +1 -1
  65. package/internal/core/jsonrpc/types/output/log.js.map +1 -1
  66. package/internal/core/jsonrpc/types/output/receipt.d.ts +10 -11
  67. package/internal/core/jsonrpc/types/output/receipt.d.ts.map +1 -1
  68. package/internal/core/jsonrpc/types/output/receipt.js.map +1 -1
  69. package/internal/core/jsonrpc/types/output/transaction.d.ts +13 -14
  70. package/internal/core/jsonrpc/types/output/transaction.d.ts.map +1 -1
  71. package/internal/core/jsonrpc/types/output/transaction.js.map +1 -1
  72. package/internal/core/providers/accounts.d.ts.map +1 -1
  73. package/internal/core/providers/accounts.js +30 -24
  74. package/internal/core/providers/accounts.js.map +1 -1
  75. package/internal/core/providers/chainId.js +1 -1
  76. package/internal/core/providers/chainId.js.map +1 -1
  77. package/internal/core/providers/construction.d.ts.map +1 -1
  78. package/internal/core/providers/construction.js +5 -5
  79. package/internal/core/providers/construction.js.map +1 -1
  80. package/internal/core/providers/gas-providers.d.ts +4 -4
  81. package/internal/core/providers/gas-providers.d.ts.map +1 -1
  82. package/internal/core/providers/gas-providers.js +16 -15
  83. package/internal/core/providers/gas-providers.js.map +1 -1
  84. package/internal/core/providers/http.js +7 -2
  85. package/internal/core/providers/http.js.map +1 -1
  86. package/internal/core/providers/util.js +5 -8
  87. package/internal/core/providers/util.js.map +1 -1
  88. package/internal/core/runtime-environment.js +1 -1
  89. package/internal/core/runtime-environment.js.map +1 -1
  90. package/internal/core/task-profiling.d.ts +18 -0
  91. package/internal/core/task-profiling.d.ts.map +1 -0
  92. package/internal/core/task-profiling.js +50 -0
  93. package/internal/core/task-profiling.js.map +1 -0
  94. package/internal/core/typescript-support.js +3 -3
  95. package/internal/core/typescript-support.js.map +1 -1
  96. package/internal/hardhat-network/jsonrpc/client.d.ts +39 -39
  97. package/internal/hardhat-network/jsonrpc/client.d.ts.map +1 -1
  98. package/internal/hardhat-network/jsonrpc/client.js +14 -14
  99. package/internal/hardhat-network/jsonrpc/client.js.map +1 -1
  100. package/internal/hardhat-network/provider/BlockchainBase.d.ts +13 -10
  101. package/internal/hardhat-network/provider/BlockchainBase.d.ts.map +1 -1
  102. package/internal/hardhat-network/provider/BlockchainBase.js +38 -16
  103. package/internal/hardhat-network/provider/BlockchainBase.js.map +1 -1
  104. package/internal/hardhat-network/provider/BlockchainData.d.ts +15 -16
  105. package/internal/hardhat-network/provider/BlockchainData.d.ts.map +1 -1
  106. package/internal/hardhat-network/provider/BlockchainData.js +33 -29
  107. package/internal/hardhat-network/provider/BlockchainData.js.map +1 -1
  108. package/internal/hardhat-network/provider/HardhatBlockchain.d.ts +7 -8
  109. package/internal/hardhat-network/provider/HardhatBlockchain.d.ts.map +1 -1
  110. package/internal/hardhat-network/provider/HardhatBlockchain.js +13 -14
  111. package/internal/hardhat-network/provider/HardhatBlockchain.js.map +1 -1
  112. package/internal/hardhat-network/provider/PoolState.d.ts +1 -1
  113. package/internal/hardhat-network/provider/PoolState.d.ts.map +1 -1
  114. package/internal/hardhat-network/provider/PoolState.js +2 -3
  115. package/internal/hardhat-network/provider/PoolState.js.map +1 -1
  116. package/internal/hardhat-network/provider/TransactionQueue.d.ts +2 -3
  117. package/internal/hardhat-network/provider/TransactionQueue.d.ts.map +1 -1
  118. package/internal/hardhat-network/provider/TransactionQueue.js +3 -3
  119. package/internal/hardhat-network/provider/TransactionQueue.js.map +1 -1
  120. package/internal/hardhat-network/provider/TxPool.d.ts +8 -8
  121. package/internal/hardhat-network/provider/TxPool.d.ts.map +1 -1
  122. package/internal/hardhat-network/provider/TxPool.js +66 -68
  123. package/internal/hardhat-network/provider/TxPool.js.map +1 -1
  124. package/internal/hardhat-network/provider/ethereumjs-workarounds.js +2 -2
  125. package/internal/hardhat-network/provider/ethereumjs-workarounds.js.map +1 -1
  126. package/internal/hardhat-network/provider/filter.d.ts +5 -6
  127. package/internal/hardhat-network/provider/filter.d.ts.map +1 -1
  128. package/internal/hardhat-network/provider/filter.js +7 -8
  129. package/internal/hardhat-network/provider/filter.js.map +1 -1
  130. package/internal/hardhat-network/provider/fork/ForkBlockchain.d.ts +10 -11
  131. package/internal/hardhat-network/provider/fork/ForkBlockchain.d.ts.map +1 -1
  132. package/internal/hardhat-network/provider/fork/ForkBlockchain.js +51 -47
  133. package/internal/hardhat-network/provider/fork/ForkBlockchain.js.map +1 -1
  134. package/internal/hardhat-network/provider/fork/ForkStateManager.d.ts +8 -10
  135. package/internal/hardhat-network/provider/fork/ForkStateManager.d.ts.map +1 -1
  136. package/internal/hardhat-network/provider/fork/ForkStateManager.js +51 -69
  137. package/internal/hardhat-network/provider/fork/ForkStateManager.js.map +1 -1
  138. package/internal/hardhat-network/provider/fork/rpcToBlockData.d.ts +1 -1
  139. package/internal/hardhat-network/provider/fork/rpcToBlockData.d.ts.map +1 -1
  140. package/internal/hardhat-network/provider/fork/rpcToBlockData.js +2 -3
  141. package/internal/hardhat-network/provider/fork/rpcToBlockData.js.map +1 -1
  142. package/internal/hardhat-network/provider/fork/rpcToTxData.d.ts +2 -2
  143. package/internal/hardhat-network/provider/fork/rpcToTxData.d.ts.map +1 -1
  144. package/internal/hardhat-network/provider/fork/rpcToTxData.js +7 -11
  145. package/internal/hardhat-network/provider/fork/rpcToTxData.js.map +1 -1
  146. package/internal/hardhat-network/provider/modules/eth.d.ts +2 -1
  147. package/internal/hardhat-network/provider/modules/eth.d.ts.map +1 -1
  148. package/internal/hardhat-network/provider/modules/eth.js +92 -68
  149. package/internal/hardhat-network/provider/modules/eth.js.map +1 -1
  150. package/internal/hardhat-network/provider/modules/evm.d.ts.map +1 -1
  151. package/internal/hardhat-network/provider/modules/evm.js +14 -14
  152. package/internal/hardhat-network/provider/modules/evm.js.map +1 -1
  153. package/internal/hardhat-network/provider/modules/hardhat.d.ts.map +1 -1
  154. package/internal/hardhat-network/provider/modules/hardhat.js +13 -13
  155. package/internal/hardhat-network/provider/modules/hardhat.js.map +1 -1
  156. package/internal/hardhat-network/provider/modules/logger.d.ts +7 -8
  157. package/internal/hardhat-network/provider/modules/logger.d.ts.map +1 -1
  158. package/internal/hardhat-network/provider/modules/logger.js +29 -32
  159. package/internal/hardhat-network/provider/modules/logger.js.map +1 -1
  160. package/internal/hardhat-network/provider/modules/net.d.ts +1 -1
  161. package/internal/hardhat-network/provider/modules/net.d.ts.map +1 -1
  162. package/internal/hardhat-network/provider/modules/personal.d.ts.map +1 -1
  163. package/internal/hardhat-network/provider/modules/personal.js +3 -3
  164. package/internal/hardhat-network/provider/modules/personal.js.map +1 -1
  165. package/internal/hardhat-network/provider/modules/web3.d.ts.map +1 -1
  166. package/internal/hardhat-network/provider/modules/web3.js +5 -4
  167. package/internal/hardhat-network/provider/modules/web3.js.map +1 -1
  168. package/internal/hardhat-network/provider/node-types.d.ts +30 -29
  169. package/internal/hardhat-network/provider/node-types.d.ts.map +1 -1
  170. package/internal/hardhat-network/provider/node.d.ts +47 -42
  171. package/internal/hardhat-network/provider/node.d.ts.map +1 -1
  172. package/internal/hardhat-network/provider/node.js +262 -208
  173. package/internal/hardhat-network/provider/node.js.map +1 -1
  174. package/internal/hardhat-network/provider/output.d.ts +5 -6
  175. package/internal/hardhat-network/provider/output.d.ts.map +1 -1
  176. package/internal/hardhat-network/provider/output.js +39 -36
  177. package/internal/hardhat-network/provider/output.js.map +1 -1
  178. package/internal/hardhat-network/provider/provider.d.ts +1 -2
  179. package/internal/hardhat-network/provider/provider.d.ts.map +1 -1
  180. package/internal/hardhat-network/provider/provider.js.map +1 -1
  181. package/internal/hardhat-network/provider/return-data.d.ts +2 -2
  182. package/internal/hardhat-network/provider/return-data.d.ts.map +1 -1
  183. package/internal/hardhat-network/provider/return-data.js +4 -1
  184. package/internal/hardhat-network/provider/return-data.js.map +1 -1
  185. package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.d.ts +5 -5
  186. package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.d.ts.map +1 -1
  187. package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.js +60 -17
  188. package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.js.map +1 -1
  189. package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.d.ts +4 -4
  190. package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.d.ts.map +1 -1
  191. package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.js +59 -16
  192. package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.js.map +1 -1
  193. package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.d.ts +3 -3
  194. package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.d.ts.map +1 -1
  195. package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.js +41 -9
  196. package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.js.map +1 -1
  197. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.d.ts +4 -4
  198. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.d.ts.map +1 -1
  199. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.js +7 -23
  200. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.js.map +1 -1
  201. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.d.ts +3 -3
  202. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.d.ts.map +1 -1
  203. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.js +7 -22
  204. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.js.map +1 -1
  205. package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.d.ts +3 -3
  206. package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.d.ts.map +1 -1
  207. package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.js +1 -1
  208. package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.js.map +1 -1
  209. package/internal/hardhat-network/provider/types/HardhatBlockchainInterface.d.ts +5 -6
  210. package/internal/hardhat-network/provider/types/HardhatBlockchainInterface.d.ts.map +1 -1
  211. package/internal/hardhat-network/provider/utils/fork-recomendations-banner.js +2 -3
  212. package/internal/hardhat-network/provider/utils/fork-recomendations-banner.js.map +1 -1
  213. package/internal/hardhat-network/provider/utils/getCurrentTimestamp.d.ts +1 -0
  214. package/internal/hardhat-network/provider/utils/getCurrentTimestamp.d.ts.map +1 -1
  215. package/internal/hardhat-network/provider/utils/getCurrentTimestamp.js +5 -1
  216. package/internal/hardhat-network/provider/utils/getCurrentTimestamp.js.map +1 -1
  217. package/internal/hardhat-network/provider/utils/makeAccount.d.ts +1 -1
  218. package/internal/hardhat-network/provider/utils/makeAccount.d.ts.map +1 -1
  219. package/internal/hardhat-network/provider/utils/makeAccount.js +6 -6
  220. package/internal/hardhat-network/provider/utils/makeAccount.js.map +1 -1
  221. package/internal/hardhat-network/provider/utils/makeCommon.d.ts +2 -2
  222. package/internal/hardhat-network/provider/utils/makeCommon.d.ts.map +1 -1
  223. package/internal/hardhat-network/provider/utils/makeCommon.js +7 -23
  224. package/internal/hardhat-network/provider/utils/makeCommon.js.map +1 -1
  225. package/internal/hardhat-network/provider/utils/makeForkClient.d.ts +1 -2
  226. package/internal/hardhat-network/provider/utils/makeForkClient.d.ts.map +1 -1
  227. package/internal/hardhat-network/provider/utils/makeForkClient.js +7 -8
  228. package/internal/hardhat-network/provider/utils/makeForkClient.js.map +1 -1
  229. package/internal/hardhat-network/provider/utils/makeStateTrie.d.ts +1 -1
  230. package/internal/hardhat-network/provider/utils/makeStateTrie.d.ts.map +1 -1
  231. package/internal/hardhat-network/provider/utils/makeStateTrie.js +4 -4
  232. package/internal/hardhat-network/provider/utils/makeStateTrie.js.map +1 -1
  233. package/internal/hardhat-network/provider/utils/putGenesisBlock.d.ts +6 -3
  234. package/internal/hardhat-network/provider/utils/putGenesisBlock.d.ts.map +1 -1
  235. package/internal/hardhat-network/provider/utils/putGenesisBlock.js +22 -4
  236. package/internal/hardhat-network/provider/utils/putGenesisBlock.js.map +1 -1
  237. package/internal/hardhat-network/provider/utils/random.d.ts +15 -0
  238. package/internal/hardhat-network/provider/utils/random.d.ts.map +1 -0
  239. package/internal/hardhat-network/provider/utils/random.js +48 -0
  240. package/internal/hardhat-network/provider/utils/random.js.map +1 -0
  241. package/internal/hardhat-network/provider/utils/reorganizeTransactionsLists.d.ts +1 -2
  242. package/internal/hardhat-network/provider/utils/reorganizeTransactionsLists.d.ts.map +1 -1
  243. package/internal/hardhat-network/provider/utils/reorganizeTransactionsLists.js +5 -4
  244. package/internal/hardhat-network/provider/utils/reorganizeTransactionsLists.js.map +1 -1
  245. package/internal/hardhat-network/provider/utils/reorgs-protection.d.ts +2 -2
  246. package/internal/hardhat-network/provider/utils/reorgs-protection.d.ts.map +1 -1
  247. package/internal/hardhat-network/provider/utils/reorgs-protection.js +7 -7
  248. package/internal/hardhat-network/provider/utils/reorgs-protection.js.map +1 -1
  249. package/internal/hardhat-network/provider/utils/txMapToArray.d.ts +1 -1
  250. package/internal/hardhat-network/provider/utils/txMapToArray.d.ts.map +1 -1
  251. package/internal/hardhat-network/stack-traces/compiler-to-model.js +6 -8
  252. package/internal/hardhat-network/stack-traces/compiler-to-model.js.map +1 -1
  253. package/internal/hardhat-network/stack-traces/consoleLogger.d.ts.map +1 -1
  254. package/internal/hardhat-network/stack-traces/consoleLogger.js +51 -47
  255. package/internal/hardhat-network/stack-traces/consoleLogger.js.map +1 -1
  256. package/internal/hardhat-network/stack-traces/constants.d.ts +3 -0
  257. package/internal/hardhat-network/stack-traces/constants.d.ts.map +1 -0
  258. package/internal/hardhat-network/stack-traces/constants.js +6 -0
  259. package/internal/hardhat-network/stack-traces/constants.js.map +1 -0
  260. package/internal/hardhat-network/stack-traces/contracts-identifier.js +2 -2
  261. package/internal/hardhat-network/stack-traces/contracts-identifier.js.map +1 -1
  262. package/internal/hardhat-network/stack-traces/debug.js +29 -19
  263. package/internal/hardhat-network/stack-traces/debug.js.map +1 -1
  264. package/internal/hardhat-network/stack-traces/error-inferrer.d.ts.map +1 -1
  265. package/internal/hardhat-network/stack-traces/error-inferrer.js +48 -26
  266. package/internal/hardhat-network/stack-traces/error-inferrer.js.map +1 -1
  267. package/internal/hardhat-network/stack-traces/logger.d.ts +223 -2
  268. package/internal/hardhat-network/stack-traces/logger.d.ts.map +1 -1
  269. package/internal/hardhat-network/stack-traces/logger.js +445 -224
  270. package/internal/hardhat-network/stack-traces/logger.js.map +1 -1
  271. package/internal/hardhat-network/stack-traces/message-trace.d.ts +6 -7
  272. package/internal/hardhat-network/stack-traces/message-trace.d.ts.map +1 -1
  273. package/internal/hardhat-network/stack-traces/message-trace.js.map +1 -1
  274. package/internal/hardhat-network/stack-traces/model.js +6 -6
  275. package/internal/hardhat-network/stack-traces/model.js.map +1 -1
  276. package/internal/hardhat-network/stack-traces/panic-errors.d.ts +1 -2
  277. package/internal/hardhat-network/stack-traces/panic-errors.d.ts.map +1 -1
  278. package/internal/hardhat-network/stack-traces/panic-errors.js +1 -1
  279. package/internal/hardhat-network/stack-traces/panic-errors.js.map +1 -1
  280. package/internal/hardhat-network/stack-traces/solidity-errors.d.ts.map +1 -1
  281. package/internal/hardhat-network/stack-traces/solidity-errors.js +21 -12
  282. package/internal/hardhat-network/stack-traces/solidity-errors.js.map +1 -1
  283. package/internal/hardhat-network/stack-traces/solidity-stack-trace.d.ts +6 -5
  284. package/internal/hardhat-network/stack-traces/solidity-stack-trace.d.ts.map +1 -1
  285. package/internal/hardhat-network/stack-traces/solidity-stack-trace.js.map +1 -1
  286. package/internal/hardhat-network/stack-traces/solidityTracer.d.ts +1 -1
  287. package/internal/hardhat-network/stack-traces/solidityTracer.d.ts.map +1 -1
  288. package/internal/hardhat-network/stack-traces/solidityTracer.js +5 -1
  289. package/internal/hardhat-network/stack-traces/solidityTracer.js.map +1 -1
  290. package/internal/hardhat-network/stack-traces/vm-debug-tracer.d.ts +2 -1
  291. package/internal/hardhat-network/stack-traces/vm-debug-tracer.d.ts.map +1 -1
  292. package/internal/hardhat-network/stack-traces/vm-debug-tracer.js +79 -78
  293. package/internal/hardhat-network/stack-traces/vm-debug-tracer.js.map +1 -1
  294. package/internal/hardhat-network/stack-traces/vm-trace-decoder.js +5 -1
  295. package/internal/hardhat-network/stack-traces/vm-trace-decoder.js.map +1 -1
  296. package/internal/hardhat-network/stack-traces/vm-tracer.d.ts +3 -2
  297. package/internal/hardhat-network/stack-traces/vm-tracer.d.ts.map +1 -1
  298. package/internal/hardhat-network/stack-traces/vm-tracer.js +15 -16
  299. package/internal/hardhat-network/stack-traces/vm-tracer.js.map +1 -1
  300. package/internal/reset.js +1 -1
  301. package/internal/reset.js.map +1 -1
  302. package/internal/sentry/anonymizer.js +2 -3
  303. package/internal/sentry/anonymizer.js.map +1 -1
  304. package/internal/sentry/subprocess.js +1 -1
  305. package/internal/sentry/subprocess.js.map +1 -1
  306. package/internal/sentry/transport.js +3 -4
  307. package/internal/sentry/transport.js.map +1 -1
  308. package/internal/solidity/compilation-job.js +2 -4
  309. package/internal/solidity/compilation-job.js.map +1 -1
  310. package/internal/solidity/compiler/downloader.d.ts.map +1 -1
  311. package/internal/solidity/compiler/downloader.js +6 -6
  312. package/internal/solidity/compiler/downloader.js.map +1 -1
  313. package/internal/solidity/dependencyGraph.js +3 -5
  314. package/internal/solidity/dependencyGraph.js.map +1 -1
  315. package/internal/solidity/parse.js +1 -1
  316. package/internal/solidity/parse.js.map +1 -1
  317. package/internal/solidity/resolver.js +4 -1
  318. package/internal/solidity/resolver.js.map +1 -1
  319. package/internal/util/abi-helpers.js +1 -1
  320. package/internal/util/abi-helpers.js.map +1 -1
  321. package/internal/util/bigint.d.ts +25 -0
  322. package/internal/util/bigint.d.ts.map +1 -0
  323. package/internal/util/bigint.js +67 -0
  324. package/internal/util/bigint.js.map +1 -0
  325. package/internal/util/download.js +1 -1
  326. package/internal/util/download.js.map +1 -1
  327. package/internal/util/fs-utils.d.ts +32 -0
  328. package/internal/util/fs-utils.d.ts.map +1 -0
  329. package/internal/util/fs-utils.js +151 -0
  330. package/internal/util/fs-utils.js.map +1 -0
  331. package/internal/util/hardforks.d.ts +3 -3
  332. package/internal/util/hardforks.d.ts.map +1 -1
  333. package/internal/util/hardforks.js +5 -28
  334. package/internal/util/hardforks.js.map +1 -1
  335. package/internal/util/jsonrpc.js +1 -1
  336. package/internal/util/jsonrpc.js.map +1 -1
  337. package/internal/util/lazy.js +2 -2
  338. package/internal/util/lazy.js.map +1 -1
  339. package/internal/util/packageInfo.js +1 -1
  340. package/internal/util/packageInfo.js.map +1 -1
  341. package/internal/util/scripts-runner.js +5 -2
  342. package/internal/util/scripts-runner.js.map +1 -1
  343. package/internal/util/wei-values.d.ts +1 -2
  344. package/internal/util/wei-values.d.ts.map +1 -1
  345. package/internal/util/wei-values.js +9 -10
  346. package/internal/util/wei-values.js.map +1 -1
  347. package/internal/vendor/await-semaphore/index.d.ts +12 -0
  348. package/internal/vendor/await-semaphore/index.d.ts.map +1 -0
  349. package/internal/vendor/await-semaphore/index.js +64 -0
  350. package/internal/vendor/await-semaphore/index.js.map +1 -0
  351. package/package.json +13 -9
  352. package/profiling.d.ts +18 -0
  353. package/profiling.d.ts.map +1 -0
  354. package/profiling.js +32 -0
  355. package/profiling.js.map +1 -0
  356. package/sample-projects/javascript/scripts/deploy.js +3 -1
  357. package/sample-projects/javascript/test/Lock.js +1 -1
  358. package/sample-projects/typescript/scripts/deploy.ts +1 -1
  359. package/sample-projects/typescript/test/Lock.ts +1 -1
  360. package/src/builtin-tasks/node.ts +4 -6
  361. package/src/internal/constants.ts +3 -1
  362. package/src/internal/core/config/config-resolution.ts +30 -7
  363. package/src/internal/core/config/default-config.ts +12 -4
  364. package/src/internal/core/jsonrpc/types/base-types.ts +23 -24
  365. package/src/internal/core/jsonrpc/types/input/blockTag.ts +2 -4
  366. package/src/internal/core/jsonrpc/types/input/callRequest.ts +0 -4
  367. package/src/internal/core/jsonrpc/types/input/filterRequest.ts +0 -4
  368. package/src/internal/core/jsonrpc/types/input/transactionRequest.ts +0 -4
  369. package/src/internal/core/jsonrpc/types/output/block.ts +0 -4
  370. package/src/internal/core/jsonrpc/types/output/log.ts +0 -4
  371. package/src/internal/core/jsonrpc/types/output/receipt.ts +0 -4
  372. package/src/internal/core/jsonrpc/types/output/transaction.ts +0 -4
  373. package/src/internal/core/providers/accounts.ts +16 -26
  374. package/src/internal/core/providers/construction.ts +5 -3
  375. package/src/internal/core/providers/gas-providers.ts +25 -33
  376. package/src/internal/core/providers/util.ts +1 -1
  377. package/src/internal/hardhat-network/jsonrpc/client.ts +22 -22
  378. package/src/internal/hardhat-network/provider/BlockchainBase.ts +62 -25
  379. package/src/internal/hardhat-network/provider/BlockchainData.ts +39 -42
  380. package/src/internal/hardhat-network/provider/HardhatBlockchain.ts +21 -21
  381. package/src/internal/hardhat-network/provider/PoolState.ts +3 -4
  382. package/src/internal/hardhat-network/provider/TransactionQueue.ts +11 -8
  383. package/src/internal/hardhat-network/provider/TxPool.ts +62 -64
  384. package/src/internal/hardhat-network/provider/ethereumjs-workarounds.ts +3 -3
  385. package/src/internal/hardhat-network/provider/filter.ts +9 -12
  386. package/src/internal/hardhat-network/provider/fork/ForkBlockchain.ts +52 -50
  387. package/src/internal/hardhat-network/provider/fork/ForkStateManager.ts +35 -60
  388. package/src/internal/hardhat-network/provider/fork/rpcToBlockData.ts +2 -2
  389. package/src/internal/hardhat-network/provider/fork/rpcToTxData.ts +3 -3
  390. package/src/internal/hardhat-network/provider/modules/eth.ts +88 -63
  391. package/src/internal/hardhat-network/provider/modules/evm.ts +19 -22
  392. package/src/internal/hardhat-network/provider/modules/hardhat.ts +21 -19
  393. package/src/internal/hardhat-network/provider/modules/logger.ts +33 -40
  394. package/src/internal/hardhat-network/provider/modules/net.ts +1 -1
  395. package/src/internal/hardhat-network/provider/modules/personal.ts +2 -1
  396. package/src/internal/hardhat-network/provider/modules/web3.ts +5 -4
  397. package/src/internal/hardhat-network/provider/node-types.ts +32 -31
  398. package/src/internal/hardhat-network/provider/node.ts +379 -343
  399. package/src/internal/hardhat-network/provider/output.ts +32 -37
  400. package/src/internal/hardhat-network/provider/provider.ts +5 -6
  401. package/src/internal/hardhat-network/provider/return-data.ts +6 -3
  402. package/src/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.ts +51 -24
  403. package/src/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.ts +50 -23
  404. package/src/internal/hardhat-network/provider/transactions/FakeSenderTransaction.ts +29 -11
  405. package/src/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.ts +12 -24
  406. package/src/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.ts +11 -22
  407. package/src/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.ts +3 -3
  408. package/src/internal/hardhat-network/provider/types/HardhatBlockchainInterface.ts +8 -9
  409. package/src/internal/hardhat-network/provider/utils/getCurrentTimestamp.ts +4 -0
  410. package/src/internal/hardhat-network/provider/utils/makeAccount.ts +4 -10
  411. package/src/internal/hardhat-network/provider/utils/makeCommon.ts +8 -34
  412. package/src/internal/hardhat-network/provider/utils/makeForkClient.ts +8 -9
  413. package/src/internal/hardhat-network/provider/utils/makeStateTrie.ts +3 -3
  414. package/src/internal/hardhat-network/provider/utils/putGenesisBlock.ts +34 -6
  415. package/src/internal/hardhat-network/provider/utils/random.ts +54 -0
  416. package/src/internal/hardhat-network/provider/utils/reorganizeTransactionsLists.ts +6 -7
  417. package/src/internal/hardhat-network/provider/utils/reorgs-protection.ts +8 -8
  418. package/src/internal/hardhat-network/stack-traces/consoleLogger.ts +16 -6
  419. package/src/internal/hardhat-network/stack-traces/contracts-identifier.ts +1 -1
  420. package/src/internal/hardhat-network/stack-traces/debug.ts +1 -1
  421. package/src/internal/hardhat-network/stack-traces/error-inferrer.ts +11 -7
  422. package/src/internal/hardhat-network/stack-traces/logger.ts +444 -223
  423. package/src/internal/hardhat-network/stack-traces/message-trace.ts +6 -7
  424. package/src/internal/hardhat-network/stack-traces/model.ts +1 -1
  425. package/src/internal/hardhat-network/stack-traces/panic-errors.ts +3 -5
  426. package/src/internal/hardhat-network/stack-traces/solidity-errors.ts +16 -1
  427. package/src/internal/hardhat-network/stack-traces/solidity-stack-trace.ts +6 -6
  428. package/src/internal/hardhat-network/stack-traces/solidityTracer.ts +6 -1
  429. package/src/internal/hardhat-network/stack-traces/vm-debug-tracer.ts +106 -103
  430. package/src/internal/hardhat-network/stack-traces/vm-tracer.ts +23 -18
  431. package/src/internal/solidity/compiler/downloader.ts +5 -2
  432. package/src/internal/util/bigint.ts +84 -0
  433. package/src/internal/util/hardforks.ts +4 -29
  434. package/src/internal/util/wei-values.ts +11 -13
  435. package/src/types/config.ts +8 -10
  436. package/types/config.d.ts +8 -9
  437. package/types/config.d.ts.map +1 -1
  438. package/src/internal/hardhat-network/provider/fork/random.ts +0 -33
  439. package/src/internal/hardhat-network/provider/utils/bnToHex.ts +0 -5
  440. package/src/internal/hardhat-network/provider/utils/makeForkCommon.ts +0 -15
@@ -1 +1 @@
1
- {"version":3,"file":"solidityTracer.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/solidityTracer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"solidityTracer.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/solidityTracer.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import VM from "@ethereumjs/vm";
1
+ import { VM } from "@ignored/vm";
2
2
  import { RpcDebugTracingConfig } from "../../core/jsonrpc/types/input/debugTraceTransaction";
3
3
  import { RpcDebugTraceOutput } from "../provider/output";
4
4
  export declare class VMDebugTracer {
@@ -7,6 +7,7 @@ export declare class VMDebugTracer {
7
7
  private _config;
8
8
  private _messages;
9
9
  private _addressToStorage;
10
+ private _error;
10
11
  constructor(_vm: VM);
11
12
  /**
12
13
  * Run the `action` callback and trace its execution
@@ -1 +1 @@
1
- {"version":3,"file":"vm-debug-tracer.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/vm-debug-tracer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAWhC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sDAAsD,CAAC;AAE7F,OAAO,EAAE,mBAAmB,EAAgB,MAAM,oBAAoB,CAAC;AAmCvE,qBAAa,aAAa;IAOZ,OAAO,CAAC,QAAQ,CAAC,GAAG;IANhC,OAAO,CAAC,UAAU,CAAC,CAAsB;IACzC,OAAO,CAAC,OAAO,CAAwB;IAEvC,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,iBAAiB,CAA+B;gBAE3B,GAAG,EAAE,EAAE;IAQpC;;OAEG;IACU,KAAK,CAChB,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EAC3B,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,mBAAmB,CAAC;IAa/B,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,cAAc;YASR,gBAAgB;YAOhB,qBAAqB;YAiBrB,YAAY;YAYZ,oBAAoB;YAYpB,eAAe;YA6Cf,0BAA0B;IA2ExC,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,SAAS;YAOH,gBAAgB;IA4I9B,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,gBAAgB;YAIV,eAAe;IAoD7B,OAAO,CAAC,QAAQ;IAYhB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAsBxB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,UAAU;CAQnB"}
1
+ {"version":3,"file":"vm-debug-tracer.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/vm-debug-tracer.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,EAAE,EAAE,MAAM,aAAa,CAAC;AAY/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,sDAAsD,CAAC;AAE7F,OAAO,EAAE,mBAAmB,EAAgB,MAAM,oBAAoB,CAAC;AAoCvE,qBAAa,aAAa;IASZ,OAAO,CAAC,QAAQ,CAAC,GAAG;IARhC,OAAO,CAAC,UAAU,CAAC,CAAsB;IACzC,OAAO,CAAC,OAAO,CAAwB;IAEvC,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,iBAAiB,CAA+B;IAExD,OAAO,CAAC,MAAM,CAAM;gBAES,GAAG,EAAE,EAAE;IAQpC;;OAEG;IACU,KAAK,CAChB,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EAC3B,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,mBAAmB,CAAC;IAiB/B,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,cAAc;YASR,gBAAgB;YAOhB,qBAAqB;YAiBrB,YAAY;YAmBZ,oBAAoB;YAYpB,eAAe;YA6Cf,0BAA0B;IA2ExC,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,SAAS;YAOH,gBAAgB;IA2I9B,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,gBAAgB;YAIV,eAAe;IA2C7B,OAAO,CAAC,QAAQ;IAgBhB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAsBxB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,UAAU;CAQnB"}
@@ -20,9 +20,10 @@ var __importStar = (this && this.__importStar) || function (mod) {
20
20
  };
21
21
  Object.defineProperty(exports, "__esModule", { value: true });
22
22
  exports.VMDebugTracer = void 0;
23
- const ethereumjs_util_1 = require("ethereumjs-util");
23
+ const util_1 = require("@ignored/util");
24
24
  const errors_1 = require("../../core/errors");
25
25
  const errors_2 = require("../../core/providers/errors");
26
+ const bigint_1 = require("../../util/bigint");
26
27
  function isStructLog(message) {
27
28
  return message !== undefined && !("structLogs" in message);
28
29
  }
@@ -46,6 +47,9 @@ class VMDebugTracer {
46
47
  this._enableTracing(config);
47
48
  this._config = config;
48
49
  await action();
50
+ if (this._error !== undefined) {
51
+ throw this._error;
52
+ }
49
53
  return this._getDebugTrace();
50
54
  }
51
55
  finally {
@@ -54,18 +58,18 @@ class VMDebugTracer {
54
58
  }
55
59
  _enableTracing(config) {
56
60
  this._vm.on("beforeTx", this._beforeTxHandler);
57
- this._vm.on("beforeMessage", this._beforeMessageHandler);
58
- this._vm.on("step", this._stepHandler);
59
- this._vm.on("afterMessage", this._afterMessageHandler);
61
+ this._vm.evm.on("beforeMessage", this._beforeMessageHandler);
62
+ this._vm.evm.on("step", this._stepHandler);
63
+ this._vm.evm.on("afterMessage", this._afterMessageHandler);
60
64
  this._vm.on("afterTx", this._afterTxHandler);
61
65
  this._config = config;
62
66
  }
63
67
  _disableTracing() {
64
68
  this._vm.removeListener("beforeTx", this._beforeTxHandler);
65
- this._vm.removeListener("beforeMessage", this._beforeMessageHandler);
66
- this._vm.removeListener("step", this._stepHandler);
69
+ this._vm.evm.removeListener("beforeMessage", this._beforeMessageHandler);
70
+ this._vm.evm.removeListener("step", this._stepHandler);
71
+ this._vm.evm.removeListener("afterMessage", this._afterMessageHandler);
67
72
  this._vm.removeListener("afterTx", this._afterTxHandler);
68
- this._vm.removeListener("afterMessage", this._afterMessageHandler);
69
73
  this._config = undefined;
70
74
  }
71
75
  _getDebugTrace() {
@@ -81,10 +85,9 @@ class VMDebugTracer {
81
85
  next();
82
86
  }
83
87
  async _beforeMessageHandler(message, next) {
84
- var _a, _b;
85
88
  const debugMessage = {
86
89
  structLogs: [],
87
- to: (_b = (_a = message.to) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : "",
90
+ to: message.to?.toString() ?? "",
88
91
  };
89
92
  if (this._messages.length > 0) {
90
93
  const previousMessage = this._messages[this._messages.length - 1];
@@ -94,9 +97,17 @@ class VMDebugTracer {
94
97
  next();
95
98
  }
96
99
  async _stepHandler(step, next) {
97
- (0, errors_1.assertHardhatInvariant)(this._messages.length > 0, "Step handler should be called after at least one beforeMessage handler");
98
- const structLog = await this._stepToStructLog(step);
99
- this._messages[this._messages.length - 1].structLogs.push(structLog);
100
+ try {
101
+ (0, errors_1.assertHardhatInvariant)(this._messages.length > 0, "Step handler should be called after at least one beforeMessage handler");
102
+ const structLog = await this._stepToStructLog(step);
103
+ this._messages[this._messages.length - 1].structLogs.push(structLog);
104
+ }
105
+ catch (e) {
106
+ // errors thrown in event handlers are lost, so we save this error to
107
+ // re-throw it in the `trace` function
108
+ this._error = e;
109
+ this._disableTracing();
110
+ }
100
111
  next();
101
112
  }
102
113
  async _afterMessageHandler(result, next) {
@@ -108,32 +119,30 @@ class VMDebugTracer {
108
119
  next();
109
120
  }
110
121
  async _afterTxHandler(result, next) {
111
- var _a;
112
122
  const { default: flattenDeep } = await Promise.resolve().then(() => __importStar(require("lodash/flattenDeep")));
113
123
  const topLevelMessage = this._messages[0];
114
124
  const nestedStructLogs = await this._messageToNestedStructLogs(topLevelMessage, topLevelMessage.to);
115
125
  const rpcStructLogs = flattenDeep(nestedStructLogs).map((structLog) => {
116
- var _a, _b, _c;
117
126
  const rpcStructLog = structLog;
118
127
  // geth doesn't return this value
119
128
  delete rpcStructLog.memSize;
120
- if (((_a = this._config) === null || _a === void 0 ? void 0 : _a.disableMemory) === true) {
129
+ if (this._config?.disableMemory === true) {
121
130
  delete rpcStructLog.memory;
122
131
  }
123
- if (((_b = this._config) === null || _b === void 0 ? void 0 : _b.disableStack) === true) {
132
+ if (this._config?.disableStack === true) {
124
133
  delete rpcStructLog.stack;
125
134
  }
126
- if (((_c = this._config) === null || _c === void 0 ? void 0 : _c.disableStorage) === true) {
135
+ if (this._config?.disableStorage === true) {
127
136
  delete rpcStructLog.storage;
128
137
  }
129
138
  return rpcStructLog;
130
139
  });
131
140
  // geth does this for some reason
132
- if (((_a = result.execResult.exceptionError) === null || _a === void 0 ? void 0 : _a.error) === "out of gas") {
141
+ if (result.execResult.exceptionError?.error === "out of gas") {
133
142
  rpcStructLogs[rpcStructLogs.length - 1].error = {};
134
143
  }
135
144
  this._lastTrace = {
136
- gas: result.gasUsed.toNumber(),
145
+ gas: Number(result.totalGasSpent),
137
146
  failed: result.execResult.exceptionError !== undefined,
138
147
  returnValue: result.execResult.returnValue.toString("hex"),
139
148
  structLogs: rpcStructLogs,
@@ -141,16 +150,20 @@ class VMDebugTracer {
141
150
  next();
142
151
  }
143
152
  async _messageToNestedStructLogs(message, address) {
144
- var _a;
145
153
  const nestedStructLogs = [];
146
154
  for (const [i, messageOrStructLog] of message.structLogs.entries()) {
147
155
  if (isStructLog(messageOrStructLog)) {
148
156
  const structLog = messageOrStructLog;
149
157
  nestedStructLogs.push(structLog);
150
158
  // update the storage of the current address
151
- const addressStorage = (_a = this._addressToStorage[address]) !== null && _a !== void 0 ? _a : {};
152
- structLog.storage = Object.assign(Object.assign({}, addressStorage), structLog.storage);
153
- this._addressToStorage[address] = Object.assign({}, structLog.storage);
159
+ const addressStorage = this._addressToStorage[address] ?? {};
160
+ structLog.storage = {
161
+ ...addressStorage,
162
+ ...structLog.storage,
163
+ };
164
+ this._addressToStorage[address] = {
165
+ ...structLog.storage,
166
+ };
154
167
  if (i === 0) {
155
168
  continue;
156
169
  }
@@ -195,7 +208,7 @@ class VMDebugTracer {
195
208
  _getStack(step) {
196
209
  const stack = step.stack
197
210
  .slice()
198
- .map((el) => el.toString("hex").padStart(64, "0"));
211
+ .map((el) => el.toString(16).padStart(64, "0"));
199
212
  return stack;
200
213
  }
201
214
  async _stepToStructLog(step) {
@@ -208,7 +221,7 @@ class VMDebugTracer {
208
221
  if (step.opcode.name === "SLOAD") {
209
222
  const address = step.address;
210
223
  const [keyBuffer] = this._getFromStack(stack, 1);
211
- const key = (0, ethereumjs_util_1.setLengthLeft)(keyBuffer, 32);
224
+ const key = (0, util_1.setLengthLeft)(keyBuffer, 32);
212
225
  const storageValue = await this._getContractStorage(address, key);
213
226
  storage[toWord(key)] = toWord(storageValue);
214
227
  }
@@ -220,21 +233,19 @@ class VMDebugTracer {
220
233
  }
221
234
  else if (step.opcode.name === "REVERT") {
222
235
  const [offsetBuffer, lengthBuffer] = this._getFromStack(stack, 2);
223
- const length = new ethereumjs_util_1.BN(lengthBuffer);
224
- const offset = new ethereumjs_util_1.BN(offsetBuffer);
225
- const [gasIncrease, addedWords] = this._memoryExpansion(memory.length, length.add(offset));
226
- gasCost += gasIncrease;
236
+ const length = (0, util_1.bufferToBigInt)(lengthBuffer);
237
+ const offset = (0, util_1.bufferToBigInt)(offsetBuffer);
238
+ const [gasIncrease, addedWords] = this._memoryExpansion(BigInt(memory.length), length + offset);
239
+ gasCost += Number(gasIncrease);
227
240
  for (let i = 0; i < addedWords; i++) {
228
241
  memory.push(EMPTY_MEMORY_WORD);
229
242
  }
230
243
  }
231
244
  else if (step.opcode.name === "CREATE2") {
232
245
  const [, , memoryUsedBuffer] = this._getFromStack(stack, 3);
233
- const memoryUsed = new ethereumjs_util_1.BN(memoryUsedBuffer);
234
- const sha3ExtraCost = divUp(memoryUsed, 32)
235
- .muln(this._sha3WordGas())
236
- .toNumber();
237
- gasCost += sha3ExtraCost;
246
+ const memoryUsed = (0, util_1.bufferToBigInt)(memoryUsedBuffer);
247
+ const sha3ExtraCost = bigint_1.BigIntUtils.divUp(memoryUsed, 32n) * this._sha3WordGas();
248
+ gasCost += Number(sha3ExtraCost);
238
249
  }
239
250
  else if (step.opcode.name === "CALL" ||
240
251
  step.opcode.name === "STATICCALL" ||
@@ -256,22 +267,22 @@ class VMDebugTracer {
256
267
  outSizeBuffer,
257
268
  ] = this._getFromStack(stack, 7);
258
269
  }
259
- const callCost = new ethereumjs_util_1.BN(callCostBuffer);
260
- const value = new ethereumjs_util_1.BN(valueBuffer);
261
- const memoryLength = memory.length;
262
- const inBN = new ethereumjs_util_1.BN(inBuffer);
263
- const inSizeBN = new ethereumjs_util_1.BN(inSizeBuffer);
264
- const inPosition = inSizeBN.isZero() ? inSizeBN : inBN.add(inSizeBN);
265
- const outBN = new ethereumjs_util_1.BN(outBuffer);
266
- const outSizeBN = new ethereumjs_util_1.BN(outSizeBuffer);
267
- const outPosition = outSizeBN.isZero() ? outSizeBN : outBN.add(outSizeBN);
268
- const memSize = inPosition.gt(outPosition) ? inPosition : outPosition;
269
- const toAddress = new ethereumjs_util_1.Address(recipientAddressBuffer.slice(-20));
270
+ const callCost = (0, util_1.bufferToBigInt)(callCostBuffer);
271
+ const value = (0, util_1.bufferToBigInt)(valueBuffer);
272
+ const memoryLength = BigInt(memory.length);
273
+ const inBN = (0, util_1.bufferToBigInt)(inBuffer);
274
+ const inSizeBN = (0, util_1.bufferToBigInt)(inSizeBuffer);
275
+ const inPosition = inSizeBN === 0n ? inSizeBN : inBN + inSizeBN;
276
+ const outBN = (0, util_1.bufferToBigInt)(outBuffer);
277
+ const outSizeBN = (0, util_1.bufferToBigInt)(outSizeBuffer);
278
+ const outPosition = outSizeBN === 0n ? outSizeBN : outBN + outSizeBN;
279
+ const memSize = inPosition > outPosition ? inPosition : outPosition;
280
+ const toAddress = new util_1.Address(recipientAddressBuffer.slice(-20));
270
281
  const constantGas = this._callConstantGas();
271
- const availableGas = step.gasLeft.toNumber() - constantGas;
282
+ const availableGas = step.gasLeft - constantGas;
272
283
  const [memoryGas] = this._memoryExpansion(memoryLength, memSize);
273
284
  const dynamicGas = await this._callDynamicGas(toAddress, value, availableGas, memoryGas, callCost);
274
- gasCost = constantGas + dynamicGas;
285
+ gasCost = Number(constantGas + dynamicGas);
275
286
  }
276
287
  else if (step.opcode.name === "CALLCODE") {
277
288
  // finding an existing tx that uses CALLCODE or compiling a contract
@@ -288,13 +299,13 @@ class VMDebugTracer {
288
299
  const structLog = {
289
300
  pc: step.pc,
290
301
  op,
291
- gas: step.gasLeft.toNumber(),
302
+ gas: Number(step.gasLeft),
292
303
  gasCost,
293
304
  depth: step.depth + 1,
294
305
  stack,
295
306
  memory,
296
307
  storage,
297
- memSize: step.memoryWordCount.toNumber(),
308
+ memSize: Number(step.memoryWordCount),
298
309
  };
299
310
  if (error !== undefined) {
300
311
  structLog.error = error;
@@ -334,9 +345,7 @@ class VMDebugTracer {
334
345
  async _callDynamicGas(address, value, availableGas, memoryGas, callCost) {
335
346
  // The available gas is reduced when the address is cold
336
347
  if (this._vm._common.gteHardfork("berlin")) {
337
- const stateManager = this._vm.stateManager;
338
- (0, errors_1.assertHardhatInvariant)("isWarmedAddress" in stateManager, "The VM should have an EIP2929StateManger when berlin is enabled");
339
- const isWarmed = stateManager.isWarmedAddress(address.toBuffer());
348
+ const isWarmed = this._vm.eei.isWarmedAddress(address.toBuffer());
340
349
  const coldCost = this._vm._common.param("gasPrices", "coldaccountaccess") -
341
350
  this._vm._common.param("gasPrices", "warmstorageread");
342
351
  // This comment is copied verbatim from geth:
@@ -346,8 +355,8 @@ class VMDebugTracer {
346
355
  availableGas -= coldCost;
347
356
  }
348
357
  }
349
- let gas = 0;
350
- const transfersValue = !value.isZero();
358
+ let gas = 0n;
359
+ const transfersValue = value !== 0n;
351
360
  const addressIsEmpty = await this._isAddressEmpty(address);
352
361
  if (transfersValue && addressIsEmpty) {
353
362
  gas += this._callNewAccountGas();
@@ -361,52 +370,44 @@ class VMDebugTracer {
361
370
  }
362
371
  _callGas(availableGas, base, callCost) {
363
372
  availableGas -= base;
364
- const gas = availableGas - Math.floor(availableGas / 64);
365
- if (callCost.gtn(gas)) {
373
+ const gas = availableGas - availableGas / 64n;
374
+ if (callCost > gas) {
366
375
  return gas;
367
376
  }
368
- return callCost.toNumber();
377
+ return callCost;
369
378
  }
370
379
  /**
371
380
  * Returns the increase in gas and the number of added words
372
381
  */
373
382
  _memoryExpansion(currentWords, newSize) {
374
- const currentSize = new ethereumjs_util_1.BN(currentWords).muln(32);
375
- const currentWordsLength = currentSize.addn(31).divn(32);
376
- const newWordsLength = newSize.addn(31).divn(32);
377
- const wordsDiff = newWordsLength.sub(currentWordsLength);
378
- if (newSize.gt(currentSize)) {
383
+ const currentSize = currentWords * 32n;
384
+ const currentWordsLength = (currentSize + 31n) / 32n;
385
+ const newWordsLength = (newSize + 31n) / 32n;
386
+ const wordsDiff = newWordsLength - currentWordsLength;
387
+ if (newSize > currentSize) {
379
388
  const newTotalFee = this._memoryFee(newWordsLength);
380
389
  const currentTotalFee = this._memoryFee(currentWordsLength);
381
- const fee = newTotalFee.sub(currentTotalFee);
382
- return [fee.toNumber(), wordsDiff.toNumber()];
390
+ const fee = newTotalFee - currentTotalFee;
391
+ return [fee, wordsDiff];
383
392
  }
384
- return [0, 0];
393
+ return [0n, 0n];
385
394
  }
386
395
  _getFromStack(stack, count) {
387
396
  return stack
388
397
  .slice(-count)
389
398
  .reverse()
390
399
  .map((value) => `0x${value}`)
391
- .map(ethereumjs_util_1.toBuffer);
400
+ .map(util_1.toBuffer);
392
401
  }
393
402
  _memoryFee(words) {
394
- const square = words.mul(words);
395
- const linCoef = words.muln(this._memoryGas());
396
- const quadCoef = square.divn(this._quadCoeffDiv());
397
- const newTotalFee = linCoef.add(quadCoef);
403
+ const square = words * words;
404
+ const linCoef = words * this._memoryGas();
405
+ const quadCoef = square / this._quadCoeffDiv();
406
+ const newTotalFee = linCoef + quadCoef;
398
407
  return newTotalFee;
399
408
  }
400
409
  }
401
410
  exports.VMDebugTracer = VMDebugTracer;
402
- function divUp(x, y) {
403
- y = new ethereumjs_util_1.BN(y);
404
- let result = x.div(y);
405
- if (!x.mod(y).eqn(0)) {
406
- result = result.addn(1);
407
- }
408
- return result;
409
- }
410
411
  function toWord(b) {
411
412
  return b.toString("hex").padStart(64, "0");
412
413
  }
@@ -1 +1 @@
1
- {"version":3,"file":"vm-debug-tracer.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/vm-debug-tracer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AASA,qDAAuE;AAEvE,8CAA2D;AAE3D,wDAAgE;AA4BhE,SAAS,WAAW,CAClB,OAA6C;IAE7C,OAAO,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,YAAY,IAAI,OAAO,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,iBAAiB,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAEzC,MAAa,aAAa;IAOxB,YAA6B,GAAO;QAAP,QAAG,GAAH,GAAG,CAAI;QAH5B,cAAS,GAAmB,EAAE,CAAC;QAC/B,sBAAiB,GAA4B,EAAE,CAAC;QAGtD,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnE,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,KAAK,CAChB,MAA2B,EAC3B,MAA6B;QAE7B,IAAI;YACF,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAC5B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;YAEtB,MAAM,MAAM,EAAE,CAAC;YAEf,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;SAC9B;gBAAS;YACR,IAAI,CAAC,eAAe,EAAE,CAAC;SACxB;IACH,CAAC;IAEO,cAAc,CAAC,MAA6B;QAClD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC/C,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,eAAe,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACzD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACvC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACvD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAEO,eAAe;QACrB,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC3D,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,eAAe,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACrE,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACnD,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACzD,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,cAAc,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACnE,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;IAC3B,CAAC;IAEO,cAAc;QACpB,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;YACjC,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;SACH;QACD,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,GAAqB,EAAE,IAAS;QAC7D,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC5B,IAAI,EAAE,CAAC;IACT,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,OAAgB,EAAE,IAAS;;QAC7D,MAAM,YAAY,GAAiB;YACjC,UAAU,EAAE,EAAE;YACd,EAAE,EAAE,MAAA,MAAA,OAAO,CAAC,EAAE,0CAAE,QAAQ,EAAE,mCAAI,EAAE;SACjC,CAAC;QAEF,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7B,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAElE,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAC/C;QAED,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAElC,IAAI,EAAE,CAAC;IACT,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,IAAqB,EAAE,IAAS;QACzD,IAAA,+BAAsB,EACpB,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EACzB,wEAAwE,CACzE,CAAC;QAEF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAErE,IAAI,EAAE,CAAC;IACT,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,MAAiB,EAAE,IAAS;QAC7D,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAE9D,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC;QAE5B,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7B,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;SACtB;QAED,IAAI,EAAE,CAAC;IACT,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,MAAiB,EAAE,IAAS;;QACxD,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,wDAAa,oBAAoB,GAAC,CAAC;QACpE,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAE1C,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAC5D,eAAe,EACf,eAAe,CAAC,EAAE,CACnB,CAAC;QAEF,MAAM,aAAa,GAAmB,WAAW,CAAC,gBAAgB,CAAC,CAAC,GAAG,CACrE,CAAC,SAAS,EAAE,EAAE;;YACZ,MAAM,YAAY,GAAiB,SAAS,CAAC;YAE7C,iCAAiC;YACjC,OAAO,YAAY,CAAC,OAAO,CAAC;YAE5B,IAAI,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,aAAa,MAAK,IAAI,EAAE;gBACxC,OAAO,YAAY,CAAC,MAAM,CAAC;aAC5B;YACD,IAAI,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,YAAY,MAAK,IAAI,EAAE;gBACvC,OAAO,YAAY,CAAC,KAAK,CAAC;aAC3B;YACD,IAAI,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,cAAc,MAAK,IAAI,EAAE;gBACzC,OAAO,YAAY,CAAC,OAAO,CAAC;aAC7B;YAED,OAAO,YAAY,CAAC;QACtB,CAAC,CACF,CAAC;QAEF,iCAAiC;QACjC,IAAI,CAAA,MAAA,MAAM,CAAC,UAAU,CAAC,cAAc,0CAAE,KAAK,MAAK,YAAY,EAAE;YAC5D,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;SACpD;QAED,IAAI,CAAC,UAAU,GAAG;YAChB,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE;YAC9B,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,cAAc,KAAK,SAAS;YACtD,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC1D,UAAU,EAAE,aAAa;SAC1B,CAAC;QAEF,IAAI,EAAE,CAAC;IACT,CAAC;IAEO,KAAK,CAAC,0BAA0B,CACtC,OAAqB,EACrB,OAAe;;QAEf,MAAM,gBAAgB,GAAqB,EAAE,CAAC;QAE9C,KAAK,MAAM,CAAC,CAAC,EAAE,kBAAkB,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE;YAClE,IAAI,WAAW,CAAC,kBAAkB,CAAC,EAAE;gBACnC,MAAM,SAAS,GAAc,kBAAkB,CAAC;gBAEhD,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAEjC,4CAA4C;gBAC5C,MAAM,cAAc,GAAG,MAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,mCAAI,EAAE,CAAC;gBAC7D,SAAS,CAAC,OAAO,mCACZ,cAAc,GACd,SAAS,CAAC,OAAO,CACrB,CAAC;gBACF,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,qBAC1B,SAAS,CAAC,OAAO,CACrB,CAAC;gBAEF,IAAI,CAAC,KAAK,CAAC,EAAE;oBACX,SAAS;iBACV;gBAED,IAAI,iBAAiB,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAEtE,IAAI,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE;oBACpC,iBAAiB,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;iBACnE;qBAAM;oBACL,8DAA8D;oBAC9D,8CAA8C;oBAC9C,iBAAiB,CAAC,OAAO,GAAG,iBAAiB,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC;iBACnE;gBAED,IAAA,+BAAsB,EACpB,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,EACjC,mDAAmD,CACpD,CAAC;gBAEF,yDAAyD;gBACzD,wDAAwD;gBACxD,uBAAuB;gBACvB,IAAI,SAAS,CAAC,EAAE,KAAK,QAAQ,EAAE;oBAC7B,MAAM,sBAAsB,GAC1B,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC;oBAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,sBAAsB,EAAE,CAAC,EAAE,EAAE;wBAC/C,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;qBAClD;iBACF;aACF;iBAAM;gBACL,MAAM,UAAU,GAAiB,kBAAkB,CAAC;gBAEpD,MAAM,aAAa,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAEpE,IAAA,+BAAsB,EACpB,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAC7B,mDAAmD,CACpD,CAAC;gBAEF,MAAM,cAAc,GAAG,aAAa,CAAC,EAAE,KAAK,cAAc,CAAC;gBAE3D,MAAM,uBAAuB,GAAG,MAAM,IAAI,CAAC,0BAA0B,CACnE,UAAU,EACV,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CACzC,CAAC;gBAEF,gBAAgB,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;aAChD;SACF;QAED,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAEO,UAAU,CAAC,IAAqB;QACtC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;aACpC,QAAQ,CAAC,KAAK,CAAC;aACf,KAAK,CAAC,UAAU,CAAC,CAAC;QAErB,MAAM,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;QAElD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,SAAS,CAAC,IAAqB;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK;aACrB,KAAK,EAAE;aACP,GAAG,CAAC,CAAC,EAAM,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;QACzD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,IAAqB;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAEnC,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;QAE9B,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QAC1B,IAAI,KAAyB,CAAC;QAE9B,MAAM,OAAO,GAAY,EAAE,CAAC;QAE5B,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE;YAChC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAC7B,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACjD,MAAM,GAAG,GAAW,IAAA,+BAAa,EAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAEjD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAElE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;SAC7C;aAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE;YACxC,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC9D,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;YAC9B,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;YAEzC,OAAO,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC;SAC7B;aAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE;YACxC,MAAM,CAAC,YAAY,EAAE,YAAY,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAClE,MAAM,MAAM,GAAG,IAAI,oBAAE,CAAC,YAAY,CAAC,CAAC;YACpC,MAAM,MAAM,GAAG,IAAI,oBAAE,CAAC,YAAY,CAAC,CAAC;YAEpC,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC,gBAAgB,CACrD,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CACnB,CAAC;YAEF,OAAO,IAAI,WAAW,CAAC;YAEvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE;gBACnC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;aAChC;SACF;aAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;YACzC,MAAM,CAAC,EAAE,AAAD,EAAG,gBAAgB,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC5D,MAAM,UAAU,GAAG,IAAI,oBAAE,CAAC,gBAAgB,CAAC,CAAC;YAC5C,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,EAAE,EAAE,CAAC;iBACxC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;iBACzB,QAAQ,EAAE,CAAC;YACd,OAAO,IAAI,aAAa,CAAC;SAC1B;aAAM,IACL,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM;YAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY;YACjC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,cAAc,EACnC;YACA,kDAAkD;YAClD,qDAAqD;YACrD,wDAAwD;YACxD,IAAI,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClC,IAAI,CACF,cAAc,EACd,sBAAsB,EACtB,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,aAAa,EACd,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAEjC,wBAAwB;YACxB,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE;gBAC/B;oBACE,cAAc;oBACd,sBAAsB;oBACtB,WAAW;oBACX,QAAQ;oBACR,YAAY;oBACZ,SAAS;oBACT,aAAa;iBACd,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;aAClC;YAED,MAAM,QAAQ,GAAG,IAAI,oBAAE,CAAC,cAAc,CAAC,CAAC;YAExC,MAAM,KAAK,GAAG,IAAI,oBAAE,CAAC,WAAW,CAAC,CAAC;YAElC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;YACnC,MAAM,IAAI,GAAG,IAAI,oBAAE,CAAC,QAAQ,CAAC,CAAC;YAC9B,MAAM,QAAQ,GAAG,IAAI,oBAAE,CAAC,YAAY,CAAC,CAAC;YACtC,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACrE,MAAM,KAAK,GAAG,IAAI,oBAAE,CAAC,SAAS,CAAC,CAAC;YAChC,MAAM,SAAS,GAAG,IAAI,oBAAE,CAAC,aAAa,CAAC,CAAC;YACxC,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC1E,MAAM,OAAO,GAAG,UAAU,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC;YACtE,MAAM,SAAS,GAAG,IAAI,yBAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAEjE,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,WAAW,CAAC;YAE3D,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YAEjE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAC3C,SAAS,EACT,KAAK,EACL,YAAY,EACZ,SAAS,EACT,QAAQ,CACT,CAAC;YAEF,OAAO,GAAG,WAAW,GAAG,UAAU,CAAC;SACpC;aAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE;YAC1C,oEAAoE;YACpE,uCAAuC;YACvC,mBAAmB;YACnB,MAAM,IAAI,0BAAiB,CACzB,sFAAsF,CACvF,CAAC;SACH;aAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;YACzC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAE3D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC7C,EAAE,GAAG,YAAY,SAAS,cAAc,CAAC;YACzC,KAAK,GAAG,EAAE,CAAC;SACZ;QAED,MAAM,SAAS,GAAc;YAC3B,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,EAAE;YACF,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;YAC5B,OAAO;YACP,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC;YACrB,KAAK;YACL,MAAM;YACN,OAAO;YACP,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE;SACzC,CAAC;QAEF,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC;SACzB;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,UAAU;QAChB,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACvD,CAAC;IAEO,YAAY;QAClB,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACzD,CAAC;IAEO,gBAAgB;QACtB,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE;YAC1C,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;SAC/D;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACrD,CAAC;IAEO,kBAAkB;QACxB,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;IAC/D,CAAC;IAEO,qBAAqB;QAC3B,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;IAClE,CAAC;IAEO,aAAa;QACnB,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAC7D,CAAC;IAEO,eAAe,CAAC,OAAgB;QACtC,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC;IAEO,mBAAmB,CAAC,OAAgB,EAAE,GAAW;QACvD,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,kBAAkB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAChE,CAAC;IAEO,gBAAgB,CAAC,OAAgB;QACvC,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IACxD,CAAC;IAEO,KAAK,CAAC,eAAe,CAC3B,OAAgB,EAChB,KAAS,EACT,YAAoB,EACpB,SAAiB,EACjB,QAAY;QAEZ,wDAAwD;QACxD,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE;YAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,YAEP,CAAC;YAExB,IAAA,+BAAsB,EACpB,iBAAiB,IAAI,YAAY,EACjC,iEAAiE,CAClE,CAAC;YAEF,MAAM,QAAQ,GAAG,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;YAElE,MAAM,QAAQ,GACZ,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,mBAAmB,CAAC;gBACxD,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;YAEzD,6CAA6C;YAC7C,8FAA8F;YAC9F,6DAA6D;YAC7D,IAAI,CAAC,QAAQ,EAAE;gBACb,YAAY,IAAI,QAAQ,CAAC;aAC1B;SACF;QAED,IAAI,GAAG,GAAG,CAAC,CAAC;QAEZ,MAAM,cAAc,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACvC,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAE3D,IAAI,cAAc,IAAI,cAAc,EAAE;YACpC,GAAG,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAClC;QAED,IAAI,cAAc,EAAE;YAClB,GAAG,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;SACrC;QAED,GAAG,IAAI,SAAS,CAAC;QAEjB,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;QAElD,OAAO,GAAG,CAAC;IACb,CAAC;IAEO,QAAQ,CAAC,YAAoB,EAAE,IAAY,EAAE,QAAY;QAC/D,YAAY,IAAI,IAAI,CAAC;QAErB,MAAM,GAAG,GAAG,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC;QAEzD,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACrB,OAAO,GAAG,CAAC;SACZ;QAED,OAAO,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACK,gBAAgB,CACtB,YAAoB,EACpB,OAAW;QAEX,MAAM,WAAW,GAAG,IAAI,oBAAE,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClD,MAAM,kBAAkB,GAAG,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACzD,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEjD,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAEzD,IAAI,OAAO,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE;YAC3B,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;YACpD,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;YAE5D,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAE7C,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC/C;QAED,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAChB,CAAC;IAEO,aAAa,CAAC,KAAe,EAAE,KAAa;QAClD,OAAO,KAAK;aACT,KAAK,CAAC,CAAC,KAAK,CAAC;aACb,OAAO,EAAE;aACT,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC;aAC5B,GAAG,CAAC,0BAAQ,CAAC,CAAC;IACnB,CAAC;IAEO,UAAU,CAAC,KAAS;QAC1B,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAChC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QACnD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE1C,OAAO,WAAW,CAAC;IACrB,CAAC;CACF;AAnhBD,sCAmhBC;AAED,SAAS,KAAK,CAAC,CAAK,EAAE,CAAc;IAClC,CAAC,GAAG,IAAI,oBAAE,CAAC,CAAC,CAAC,CAAC;IAEd,IAAI,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAEtB,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QACpB,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACzB;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,MAAM,CAAC,CAAS;IACvB,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"vm-debug-tracer.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/vm-debug-tracer.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,11 @@ class VmTraceDecoder {
10
10
  if ((0, message_trace_1.isPrecompileTrace)(messageTrace)) {
11
11
  return messageTrace;
12
12
  }
13
- return Object.assign(Object.assign({}, messageTrace), { bytecode: this._contractsIdentifier.getBytecodeFromMessageTrace(messageTrace), steps: messageTrace.steps.map((s) => (0, message_trace_1.isEvmStep)(s) ? s : this.tryToDecodeMessageTrace(s)) });
13
+ return {
14
+ ...messageTrace,
15
+ bytecode: this._contractsIdentifier.getBytecodeFromMessageTrace(messageTrace),
16
+ steps: messageTrace.steps.map((s) => (0, message_trace_1.isEvmStep)(s) ? s : this.tryToDecodeMessageTrace(s)),
17
+ };
14
18
  }
15
19
  addBytecode(bytecode) {
16
20
  this._contractsIdentifier.addBytecode(bytecode);
@@ -1 +1 @@
1
- {"version":3,"file":"vm-trace-decoder.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/vm-trace-decoder.ts"],"names":[],"mappings":";;;AACA,mDAA6E;AAG7E,MAAa,cAAc;IACzB,YAA6B,oBAAyC;QAAzC,yBAAoB,GAApB,oBAAoB,CAAqB;IAAG,CAAC;IAEnE,uBAAuB,CAAC,YAA0B;QACvD,IAAI,IAAA,iCAAiB,EAAC,YAAY,CAAC,EAAE;YACnC,OAAO,YAAY,CAAC;SACrB;QAED,uCACK,YAAY,KACf,QAAQ,EACN,IAAI,CAAC,oBAAoB,CAAC,2BAA2B,CAAC,YAAY,CAAC,EACrE,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAClC,IAAA,yBAAS,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,CACnD,IACD;IACJ,CAAC;IAEM,WAAW,CAAC,QAAkB;QACnC,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAClD,CAAC;CACF;AArBD,wCAqBC"}
1
+ {"version":3,"file":"vm-trace-decoder.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/vm-trace-decoder.ts"],"names":[],"mappings":";;;AACA,mDAA6E;AAG7E,MAAa,cAAc;IACzB,YAA6B,oBAAyC;QAAzC,yBAAoB,GAApB,oBAAoB,CAAqB;IAAG,CAAC;IAEnE,uBAAuB,CAAC,YAA0B;QACvD,IAAI,IAAA,iCAAiB,EAAC,YAAY,CAAC,EAAE;YACnC,OAAO,YAAY,CAAC;SACrB;QAED,OAAO;YACL,GAAG,YAAY;YACf,QAAQ,EACN,IAAI,CAAC,oBAAoB,CAAC,2BAA2B,CAAC,YAAY,CAAC;YACrE,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAClC,IAAA,yBAAS,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,CACnD;SACF,CAAC;IACJ,CAAC;IAEM,WAAW,CAAC,QAAkB;QACnC,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAClD,CAAC;CACF;AArBD,wCAqBC"}
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" />
2
- import VM from "@ethereumjs/vm";
3
- import { Address } from "ethereumjs-util";
2
+ import { Address } from "@ignored/util";
3
+ import { VM } from "@ignored/vm";
4
4
  import { MessageTrace } from "./message-trace";
5
5
  export declare class VMTracer {
6
6
  private readonly _vm;
@@ -9,6 +9,7 @@ export declare class VMTracer {
9
9
  private _messageTraces;
10
10
  private _enabled;
11
11
  private _lastError;
12
+ private _maxPrecompileNumber;
12
13
  constructor(_vm: VM, _getContractCode: (address: Address) => Promise<Buffer>, _throwErrors?: boolean);
13
14
  enableTracing(): void;
14
15
  disableTracing(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"vm-tracer.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/vm-tracer.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAKhC,OAAO,EAAE,OAAO,EAAM,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAKL,YAAY,EAEb,MAAM,iBAAiB,CAAC;AAQzB,qBAAa,QAAQ;IAMjB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAP/B,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,UAAU,CAAoB;gBAGnB,GAAG,EAAE,EAAE,EACP,gBAAgB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,MAAM,CAAC,EACvD,YAAY,UAAO;IAO/B,aAAa;IAUb,cAAc;IAUrB,IAAW,OAAO,IAAI,OAAO,CAE5B;IAEM,2BAA2B,IAAI,YAAY,GAAG,SAAS;IAQvD,YAAY,IAAI,KAAK,GAAG,SAAS;IAIjC,cAAc;IAIrB,OAAO,CAAC,kBAAkB;YAIZ,qBAAqB;YAuFrB,YAAY;YA2BZ,oBAAoB;CA+BnC"}
1
+ {"version":3,"file":"vm-tracer.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/vm-tracer.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,OAAO,EAAkB,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEjC,OAAO,EAKL,YAAY,EAEb,MAAM,iBAAiB,CAAC;AAOzB,qBAAa,QAAQ;IAOjB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAR/B,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,oBAAoB,CAA+C;gBAGxD,GAAG,EAAE,EAAE,EACP,gBAAgB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,MAAM,CAAC,EACvD,YAAY,UAAO;IAO/B,aAAa;IAUb,cAAc;IAgBrB,IAAW,OAAO,IAAI,OAAO,CAE5B;IAEM,2BAA2B,IAAI,YAAY,GAAG,SAAS;IAQvD,YAAY,IAAI,KAAK,GAAG,SAAS;IAIjC,cAAc;IAIrB,OAAO,CAAC,kBAAkB;YAIZ,qBAAqB;YAuFrB,YAAY;YA2BZ,oBAAoB;CA+BnC"}
@@ -1,13 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VMTracer = void 0;
4
- const precompiles_1 = require("@ethereumjs/vm/dist/evm/precompiles");
5
- const ethereumjs_util_1 = require("ethereumjs-util");
4
+ const evm_1 = require("@ignored/evm");
5
+ const util_1 = require("@ignored/util");
6
6
  const message_trace_1 = require("./message-trace");
7
7
  /* eslint-disable @nomiclabs/hardhat-internal-rules/only-hardhat-error */
8
- const MAX_PRECOMPILE_NUMBER = Object.keys(precompiles_1.precompiles).length + 1;
9
8
  const DUMMY_RETURN_DATA = Buffer.from([]);
10
- const DUMMY_GAS_USED = new ethereumjs_util_1.BN(0);
9
+ const DUMMY_GAS_USED = 0n;
11
10
  class VMTracer {
12
11
  constructor(_vm, _getContractCode, _throwErrors = true) {
13
12
  this._vm = _vm;
@@ -15,6 +14,7 @@ class VMTracer {
15
14
  this._throwErrors = _throwErrors;
16
15
  this._messageTraces = [];
17
16
  this._enabled = false;
17
+ this._maxPrecompileNumber = (0, evm_1.getActivePrecompiles)(this._vm._common).size;
18
18
  this._beforeMessageHandler = this._beforeMessageHandler.bind(this);
19
19
  this._stepHandler = this._stepHandler.bind(this);
20
20
  this._afterMessageHandler = this._afterMessageHandler.bind(this);
@@ -23,18 +23,18 @@ class VMTracer {
23
23
  if (this._enabled) {
24
24
  return;
25
25
  }
26
- this._vm.on("beforeMessage", this._beforeMessageHandler);
27
- this._vm.on("step", this._stepHandler);
28
- this._vm.on("afterMessage", this._afterMessageHandler);
26
+ this._vm.evm.on("beforeMessage", this._beforeMessageHandler);
27
+ this._vm.evm.on("step", this._stepHandler);
28
+ this._vm.evm.on("afterMessage", this._afterMessageHandler);
29
29
  this._enabled = true;
30
30
  }
31
31
  disableTracing() {
32
32
  if (!this._enabled) {
33
33
  return;
34
34
  }
35
- this._vm.removeListener("beforeMessage", this._beforeMessageHandler);
36
- this._vm.removeListener("step", this._stepHandler);
37
- this._vm.removeListener("afterMessage", this._afterMessageHandler);
35
+ this._vm.evm.removeListener("beforeMessage", this._beforeMessageHandler);
36
+ this._vm.evm.removeListener("step", this._stepHandler);
37
+ this._vm.evm.removeListener("afterMessage", this._afterMessageHandler);
38
38
  this._enabled = false;
39
39
  }
40
40
  get enabled() {
@@ -79,10 +79,10 @@ class VMTracer {
79
79
  trace = createTrace;
80
80
  }
81
81
  else {
82
- const toAsBn = new ethereumjs_util_1.BN(message.to.toBuffer());
83
- if (toAsBn.gtn(0) && toAsBn.lten(MAX_PRECOMPILE_NUMBER)) {
82
+ const toAsNumber = (0, util_1.bufferToBigInt)(message.to.toBuffer());
83
+ if (toAsNumber > 0 && toAsNumber <= this._maxPrecompileNumber) {
84
84
  const precompileTrace = {
85
- precompile: toAsBn.toNumber(),
85
+ precompile: Number(toAsNumber),
86
86
  calldata: message.data,
87
87
  value: message.value,
88
88
  returnData: DUMMY_RETURN_DATA,
@@ -154,7 +154,6 @@ class VMTracer {
154
154
  }
155
155
  }
156
156
  async _afterMessageHandler(result, next) {
157
- var _a;
158
157
  if (!this._shouldKeepTracing()) {
159
158
  next();
160
159
  return;
@@ -163,9 +162,9 @@ class VMTracer {
163
162
  const trace = this._messageTraces[this._messageTraces.length - 1];
164
163
  trace.error = result.execResult.exceptionError;
165
164
  trace.returnData = result.execResult.returnValue;
166
- trace.gasUsed = result.gasUsed;
165
+ trace.gasUsed = result.execResult.executionGasUsed;
167
166
  if ((0, message_trace_1.isCreateTrace)(trace)) {
168
- trace.deployedContract = (_a = result === null || result === void 0 ? void 0 : result.createdAddress) === null || _a === void 0 ? void 0 : _a.toBuffer();
167
+ trace.deployedContract = result?.createdAddress?.toBuffer();
169
168
  }
170
169
  if (this._messageTraces.length > 1) {
171
170
  this._messageTraces.pop();
@@ -1 +1 @@
1
- {"version":3,"file":"vm-tracer.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/vm-tracer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vm-tracer.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/vm-tracer.ts"],"names":[],"mappings":"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"}
package/internal/reset.js CHANGED
@@ -28,7 +28,7 @@ function unloadModule(path) {
28
28
  try {
29
29
  delete require.cache[require.resolve(path)];
30
30
  }
31
- catch (_a) {
31
+ catch {
32
32
  // module wasn't loaded
33
33
  }
34
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"reset.js","sourceRoot":"","sources":["../src/internal/reset.ts"],"names":[],"mappings":";;;AAAA,uCAA2C;AAE3C,qEAAqE;AACrE,gDAAgD;AAChD,SAAgB,mBAAmB;IACjC,IAAI,wBAAc,CAAC,SAAS,EAAE,EAAE;QAC9B,MAAM,GAAG,GAAG,wBAAc,CAAC,iBAAiB,EAAE,CAAC;QAE/C,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS,EAAE;YACjC,MAAM,WAAW,GAAG,MAAa,CAAC;YAClC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;gBAC9C,WAAW,CAAC,GAAG,GAAG,SAAS,CAAC;gBAC5B,WAAW,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;aAC9B;SACF;QAED,MAAM,uBAAuB,GAAG,GAAG,CAAC,0BAA0B,EAAE,CAAC;QACjE,uBAAuB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAE9C,wBAAc,CAAC,oBAAoB,EAAE,CAAC;KACvC;IAED,yCAAyC;IACzC,YAAY,CAAC,aAAa,CAAC,CAAC;IAC5B,YAAY,CAAC,WAAW,CAAC,CAAC;IAC1B,YAAY,CAAC,mBAAmB,CAAC,CAAC;AACpC,CAAC;AAtBD,kDAsBC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,IAAI;QACF,OAAO,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;KAC7C;IAAC,WAAM;QACN,uBAAuB;KACxB;AACH,CAAC"}
1
+ {"version":3,"file":"reset.js","sourceRoot":"","sources":["../src/internal/reset.ts"],"names":[],"mappings":";;;AAAA,uCAA2C;AAE3C,qEAAqE;AACrE,gDAAgD;AAChD,SAAgB,mBAAmB;IACjC,IAAI,wBAAc,CAAC,SAAS,EAAE,EAAE;QAC9B,MAAM,GAAG,GAAG,wBAAc,CAAC,iBAAiB,EAAE,CAAC;QAE/C,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS,EAAE;YACjC,MAAM,WAAW,GAAG,MAAa,CAAC;YAClC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;gBAC9C,WAAW,CAAC,GAAG,GAAG,SAAS,CAAC;gBAC5B,WAAW,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;aAC9B;SACF;QAED,MAAM,uBAAuB,GAAG,GAAG,CAAC,0BAA0B,EAAE,CAAC;QACjE,uBAAuB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAE9C,wBAAc,CAAC,oBAAoB,EAAE,CAAC;KACvC;IAED,yCAAyC;IACzC,YAAY,CAAC,aAAa,CAAC,CAAC;IAC5B,YAAY,CAAC,WAAW,CAAC,CAAC;IAC1B,YAAY,CAAC,mBAAmB,CAAC,CAAC;AACpC,CAAC;AAtBD,kDAsBC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,IAAI;QACF,OAAO,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;KAC7C;IAAC,MAAM;QACN,uBAAuB;KACxB;AACH,CAAC"}