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,6 +1,5 @@
1
- import { Block } from "@ethereumjs/block";
2
- import { BlockchainInterface } from "@ethereumjs/blockchain";
3
- import { BN } from "ethereumjs-util";
1
+ import { Block } from "@ignored/block";
2
+ import { BlockchainInterface } from "@ignored/blockchain";
4
3
 
5
4
  import { FilterParams } from "../node-types";
6
5
  import { RpcLogOutput, RpcReceiptOutput } from "../output";
@@ -8,18 +7,18 @@ import { RpcLogOutput, RpcReceiptOutput } from "../output";
8
7
  export interface HardhatBlockchainInterface extends BlockchainInterface {
9
8
  addTransactionReceipts(receipts: RpcReceiptOutput[]): void;
10
9
  reserveBlocks(
11
- count: BN,
12
- interval: BN,
10
+ count: bigint,
11
+ interval: bigint,
13
12
  previousBlockStateRoot: Buffer,
14
- previousBlockTotalDifficulty: BN,
15
- previousBlockBaseFeePerGas: BN | undefined
13
+ previousBlockTotalDifficulty: bigint,
14
+ previousBlockBaseFeePerGas: bigint | undefined
16
15
  ): void;
17
16
  deleteLaterBlocks(block: Block): void;
18
17
  getBlockByTransactionHash(transactionHash: Buffer): Promise<Block | null>;
19
18
  getLatestBlock(): Promise<Block>;
20
- getLatestBlockNumber(): BN;
19
+ getLatestBlockNumber(): bigint;
21
20
  getLogs(filterParams: FilterParams): Promise<RpcLogOutput[]>;
22
- getTotalDifficulty(blockHash: Buffer): Promise<BN>;
21
+ getTotalDifficulty(blockHash: Buffer): Promise<bigint>;
23
22
  getTransactionReceipt(
24
23
  transactionHash: Buffer
25
24
  ): Promise<RpcReceiptOutput | null>;
@@ -1,3 +1,7 @@
1
1
  export function getCurrentTimestamp(): number {
2
2
  return Math.ceil(new Date().getTime() / 1000);
3
3
  }
4
+
5
+ export function getCurrentTimestampBigInt(): bigint {
6
+ return BigInt(getCurrentTimestamp());
7
+ }
@@ -1,22 +1,16 @@
1
- import {
2
- Account,
3
- Address,
4
- BN,
5
- privateToAddress,
6
- toBuffer,
7
- } from "ethereumjs-util";
1
+ import { Account, Address, privateToAddress, toBuffer } from "@ignored/util";
8
2
 
9
3
  import { GenesisAccount } from "../node-types";
10
4
 
11
5
  import { isHexPrefixed } from "./isHexPrefixed";
12
6
 
13
7
  export function makeAccount(ga: GenesisAccount) {
14
- let balance: BN;
8
+ let balance: bigint;
15
9
 
16
10
  if (typeof ga.balance === "string" && isHexPrefixed(ga.balance)) {
17
- balance = new BN(toBuffer(ga.balance));
11
+ balance = BigInt(ga.balance);
18
12
  } else {
19
- balance = new BN(ga.balance);
13
+ balance = BigInt(ga.balance);
20
14
  }
21
15
 
22
16
  const account = Account.fromAccountData({ balance });
@@ -1,43 +1,17 @@
1
- import Common from "@ethereumjs/common";
2
- import { bufferToHex } from "ethereumjs-util";
1
+ import { Common } from "@ignored/common";
3
2
 
4
- import { dateToTimestampSeconds } from "../../../util/date";
5
3
  import { LocalNodeConfig } from "../node-types";
6
4
 
7
- import { getCurrentTimestamp } from "./getCurrentTimestamp";
8
-
9
- export function makeCommon(
10
- {
11
- initialDate,
12
- chainId,
13
- networkId,
14
- networkName,
15
- blockGasLimit,
16
- hardfork,
17
- }: LocalNodeConfig,
18
- stateTrie: any
19
- ) {
20
- const initialBlockTimestamp =
21
- initialDate !== undefined
22
- ? dateToTimestampSeconds(initialDate)
23
- : getCurrentTimestamp();
24
-
25
- return Common.forCustomChain(
26
- "mainnet",
5
+ export function makeCommon({ chainId, networkId, hardfork }: LocalNodeConfig) {
6
+ const common = Common.custom(
27
7
  {
28
8
  chainId,
29
9
  networkId,
30
- name: networkName,
31
- genesis: {
32
- timestamp: `0x${initialBlockTimestamp.toString(16)}`,
33
- hash: "0x",
34
- gasLimit: blockGasLimit,
35
- difficulty: 1,
36
- nonce: "0x0000000000000042",
37
- extraData: "0x1234",
38
- stateRoot: bufferToHex(stateTrie.root),
39
- },
40
10
  },
41
- hardfork
11
+ {
12
+ hardfork,
13
+ }
42
14
  );
15
+
16
+ return common;
43
17
  }
@@ -1,5 +1,4 @@
1
1
  import chalk from "chalk";
2
- import { BN, toBuffer } from "ethereumjs-util";
3
2
 
4
3
  import { HARDHAT_NETWORK_NAME } from "../../../constants";
5
4
  import {
@@ -28,7 +27,7 @@ export async function makeForkClient(
28
27
  forkCachePath?: string
29
28
  ): Promise<{
30
29
  forkClient: JsonRpcClient;
31
- forkBlockNumber: BN;
30
+ forkBlockNumber: bigint;
32
31
  forkBlockTimestamp: number;
33
32
  }> {
34
33
  const provider = new HttpProvider(
@@ -55,8 +54,8 @@ export async function makeForkClient(
55
54
  }
56
55
 
57
56
  if (forkConfig.blockNumber > lastSafeBlock) {
58
- const confirmations = latestBlock - forkConfig.blockNumber + 1;
59
- const requiredConfirmations = maxReorg + 1;
57
+ const confirmations = latestBlock - BigInt(forkConfig.blockNumber) + 1n;
58
+ const requiredConfirmations = maxReorg + 1n;
60
59
  console.warn(
61
60
  chalk.yellow(
62
61
  `You are forking from block ${
@@ -69,9 +68,9 @@ Please use block number ${lastSafeBlock} or wait for the block to get ${
69
68
  );
70
69
  }
71
70
 
72
- forkBlockNumber = new BN(forkConfig.blockNumber);
71
+ forkBlockNumber = BigInt(forkConfig.blockNumber);
73
72
  } else {
74
- forkBlockNumber = new BN(lastSafeBlock);
73
+ forkBlockNumber = BigInt(lastSafeBlock);
75
74
  }
76
75
 
77
76
  const block = await getBlockByNumber(provider, forkBlockNumber);
@@ -96,7 +95,7 @@ Please use block number ${lastSafeBlock} or wait for the block to get ${
96
95
 
97
96
  async function getBlockByNumber(
98
97
  provider: HttpProvider,
99
- blockNumber: BN
98
+ blockNumber: bigint
100
99
  ): Promise<RpcBlockOutput> {
101
100
  const rpcBlockOutput = (await provider.request({
102
101
  method: "eth_getBlockByNumber",
@@ -118,6 +117,6 @@ async function getLatestBlockNumber(provider: HttpProvider) {
118
117
  method: "eth_blockNumber",
119
118
  })) as string;
120
119
 
121
- const latestBlock = new BN(toBuffer(latestBlockString));
122
- return latestBlock.toNumber();
120
+ const latestBlock = BigInt(latestBlockString);
121
+ return latestBlock;
123
122
  }
@@ -1,5 +1,5 @@
1
- import { Account, BN } from "ethereumjs-util";
2
- import { SecureTrie as Trie } from "merkle-patricia-tree";
1
+ import { SecureTrie as Trie } from "@ignored/trie";
2
+ import { Account, intToBuffer, setLengthLeft } from "@ignored/util";
3
3
 
4
4
  import { GenesisAccount } from "../node-types";
5
5
 
@@ -16,7 +16,7 @@ export async function makeStateTrie(genesisAccounts: GenesisAccount[]) {
16
16
  // Mimic precompiles activation
17
17
  for (let i = 1; i <= 8; i++) {
18
18
  await stateTrie.put(
19
- new BN(i).toArrayLike(Buffer, "be", 20),
19
+ setLengthLeft(intToBuffer(i), 20),
20
20
  new Account().serialize()
21
21
  );
22
22
  }
@@ -1,25 +1,53 @@
1
- import { Block, HeaderData } from "@ethereumjs/block";
2
- import Common from "@ethereumjs/common";
3
- import { BN } from "ethereumjs-util";
1
+ import { Block, HeaderData } from "@ignored/block";
2
+ import { Common } from "@ignored/common";
3
+ import { SecureTrie } from "@ignored/trie";
4
+ import { bufferToHex } from "@ignored/util";
4
5
 
6
+ import { dateToTimestampSeconds } from "../../../util/date";
7
+ import { hardforkGte, HardforkName } from "../../../util/hardforks";
5
8
  import { HardhatBlockchain } from "../HardhatBlockchain";
9
+ import { LocalNodeConfig } from "../node-types";
10
+ import { getCurrentTimestamp } from "./getCurrentTimestamp";
6
11
 
7
12
  export async function putGenesisBlock(
8
13
  blockchain: HardhatBlockchain,
9
14
  common: Common,
10
- initialBaseFee?: BN
15
+ { initialDate, blockGasLimit }: LocalNodeConfig,
16
+ stateTrie: SecureTrie,
17
+ hardfork: HardforkName,
18
+ initialMixHash: Buffer,
19
+ initialBaseFee?: bigint
11
20
  ) {
12
- const header: HeaderData = {};
21
+ const initialBlockTimestamp =
22
+ initialDate !== undefined
23
+ ? dateToTimestampSeconds(initialDate)
24
+ : getCurrentTimestamp();
25
+
26
+ const isPostMerge = hardforkGte(hardfork, HardforkName.MERGE);
27
+
28
+ const header: HeaderData = {
29
+ timestamp: `0x${initialBlockTimestamp.toString(16)}`,
30
+ gasLimit: blockGasLimit,
31
+ difficulty: isPostMerge ? 0 : 1,
32
+ nonce: isPostMerge ? "0x0000000000000000" : "0x0000000000000042",
33
+ extraData: "0x1234",
34
+ stateRoot: bufferToHex(stateTrie.root),
35
+ };
36
+
37
+ if (isPostMerge) {
38
+ header.mixHash = initialMixHash;
39
+ }
13
40
 
14
41
  if (initialBaseFee !== undefined) {
15
42
  header.baseFeePerGas = initialBaseFee;
16
43
  }
17
44
 
18
- const genesisBlock = Block.genesis(
45
+ const genesisBlock = Block.fromBlockData(
19
46
  {
20
47
  header,
21
48
  },
22
49
  { common }
23
50
  );
51
+
24
52
  await blockchain.putBlock(genesisBlock);
25
53
  }
@@ -0,0 +1,54 @@
1
+ import type EthereumjsUtilT from "@ignored/util";
2
+ import type EthereumCryptographyKeccakT from "ethereum-cryptography/keccak";
3
+
4
+ export class RandomBufferGenerator {
5
+ private constructor(private _nextValue: Uint8Array) {}
6
+
7
+ public static create(seed: string): RandomBufferGenerator {
8
+ const { bufArrToArr } = require("@ignored/util") as typeof EthereumjsUtilT;
9
+ const { keccak256 } =
10
+ require("ethereum-cryptography/keccak") as typeof EthereumCryptographyKeccakT;
11
+
12
+ const nextValue = keccak256(bufArrToArr(Buffer.from(seed)));
13
+
14
+ return new RandomBufferGenerator(nextValue);
15
+ }
16
+
17
+ public next(): Buffer {
18
+ const { arrToBufArr } = require("@ignored/util") as typeof EthereumjsUtilT;
19
+ const { keccak256 } =
20
+ require("ethereum-cryptography/keccak") as typeof EthereumCryptographyKeccakT;
21
+
22
+ const valueToReturn = this._nextValue;
23
+
24
+ this._nextValue = keccak256(this._nextValue);
25
+
26
+ return arrToBufArr(valueToReturn);
27
+ }
28
+
29
+ public clone(): RandomBufferGenerator {
30
+ return new RandomBufferGenerator(this._nextValue);
31
+ }
32
+ }
33
+
34
+ export const randomHash = () => {
35
+ const { bufferToHex } = require("@ignored/util") as typeof EthereumjsUtilT;
36
+ return bufferToHex(randomHashBuffer());
37
+ };
38
+
39
+ const generator = RandomBufferGenerator.create("seed");
40
+ export const randomHashBuffer = (): Buffer => {
41
+ return generator.next();
42
+ };
43
+
44
+ export const randomAddress = () => {
45
+ const { Address } = require("@ignored/util") as typeof EthereumjsUtilT;
46
+ return new Address(randomAddressBuffer());
47
+ };
48
+
49
+ export const randomAddressString = () => {
50
+ const { bufferToHex } = require("@ignored/util") as typeof EthereumjsUtilT;
51
+ return bufferToHex(randomAddressBuffer());
52
+ };
53
+
54
+ export const randomAddressBuffer = () => randomHashBuffer().slice(0, 20);
@@ -1,6 +1,5 @@
1
- import { BN } from "ethereumjs-util";
2
-
3
1
  import { InternalError } from "../../../core/providers/errors";
2
+ import { BigIntUtils } from "../../../util/bigint";
4
3
  import { SenderTransactions, SerializedTransaction } from "../PoolState";
5
4
 
6
5
  /* eslint-disable @nomiclabs/hardhat-internal-rules/only-hardhat-error */
@@ -14,24 +13,24 @@ import { SenderTransactions, SerializedTransaction } from "../PoolState";
14
13
  export function reorganizeTransactionsLists(
15
14
  pending: SenderTransactions,
16
15
  queued: SenderTransactions,
17
- retrieveNonce: (serializedTx: SerializedTransaction) => BN
16
+ retrieveNonce: (serializedTx: SerializedTransaction) => bigint
18
17
  ) {
19
18
  let newPending = pending;
20
- let newQueued = queued.sortBy(retrieveNonce, (l, r) => l.cmp(r));
19
+ let newQueued = queued.sortBy(retrieveNonce, (l, r) => BigIntUtils.cmp(l, r));
21
20
 
22
21
  if (pending.last() === undefined) {
23
22
  throw new InternalError("Pending list cannot be empty");
24
23
  }
25
24
 
26
- const nextPendingNonce = retrieveNonce(pending.last()).addn(1);
25
+ let nextPendingNonce = retrieveNonce(pending.last()) + 1n;
27
26
 
28
27
  let movedCount = 0;
29
28
  for (const queuedTx of newQueued) {
30
29
  const queuedTxNonce = retrieveNonce(queuedTx);
31
30
 
32
- if (nextPendingNonce.eq(queuedTxNonce)) {
31
+ if (nextPendingNonce === queuedTxNonce) {
33
32
  newPending = newPending.push(queuedTx);
34
- nextPendingNonce.iaddn(1);
33
+ nextPendingNonce++;
35
34
  movedCount++;
36
35
  } else {
37
36
  break;
@@ -5,36 +5,36 @@
5
5
  * If there's not such a number, or we aren't aware of it, this function
6
6
  * returns undefined.
7
7
  */
8
- export function getLargestPossibleReorg(networkId: number): number | undefined {
8
+ export function getLargestPossibleReorg(networkId: number): bigint | undefined {
9
9
  // mainnet
10
10
  if (networkId === 1) {
11
- return 5;
11
+ return 5n;
12
12
  }
13
13
 
14
14
  // Kovan
15
15
  if (networkId === 42) {
16
- return 5;
16
+ return 5n;
17
17
  }
18
18
 
19
19
  // Goerli
20
20
  if (networkId === 5) {
21
- return 5;
21
+ return 5n;
22
22
  }
23
23
 
24
24
  // Rinkeby
25
25
  if (networkId === 4) {
26
- return 5;
26
+ return 5n;
27
27
  }
28
28
 
29
29
  // Ropsten
30
30
  if (networkId === 3) {
31
- return 100;
31
+ return 100n;
32
32
  }
33
33
 
34
34
  // xDai
35
35
  if (networkId === 100) {
36
- return 38;
36
+ return 38n;
37
37
  }
38
38
  }
39
39
 
40
- export const FALLBACK_MAX_REORG = 30;
40
+ export const FALLBACK_MAX_REORG = 30n;
@@ -1,4 +1,9 @@
1
- import { BN, bufferToHex, bufferToInt, fromSigned } from "ethereumjs-util";
1
+ import {
2
+ bufferToBigInt,
3
+ bufferToHex,
4
+ bufferToInt,
5
+ fromSigned,
6
+ } from "@ignored/util";
2
7
  import util from "util";
3
8
 
4
9
  import {
@@ -38,9 +43,9 @@ import {
38
43
  Bytes9Ty,
39
44
  BytesTy,
40
45
  ConsoleLogs,
41
- IntTy,
46
+ Int256Ty,
42
47
  StringTy,
43
- UintTy,
48
+ Uint256Ty,
44
49
  } from "./logger";
45
50
  import {
46
51
  CallMessageTrace,
@@ -77,6 +82,11 @@ export class ConsoleLogger {
77
82
  return "";
78
83
  }
79
84
 
85
+ // special case for console.log()
86
+ if (log.length === 0) {
87
+ return "";
88
+ }
89
+
80
90
  return util.format(log[0], ...log.slice(1));
81
91
  });
82
92
  }
@@ -131,12 +141,12 @@ export class ConsoleLogger {
131
141
  return types.map((type, i) => {
132
142
  const position = i * 32;
133
143
  switch (types[i]) {
134
- case UintTy:
135
- return new BN(
144
+ case Uint256Ty:
145
+ return bufferToBigInt(
136
146
  data.slice(position, position + REGISTER_SIZE)
137
147
  ).toString(10);
138
148
 
139
- case IntTy:
149
+ case Int256Ty:
140
150
  return fromSigned(
141
151
  data.slice(position, position + REGISTER_SIZE)
142
152
  ).toString();
@@ -1,4 +1,4 @@
1
- import { bufferToHex } from "ethereumjs-util";
1
+ import { bufferToHex } from "@ignored/util";
2
2
 
3
3
  import {
4
4
  normalizeLibraryRuntimeBytecodeIfNecessary,
@@ -1,4 +1,4 @@
1
- import { bufferToHex } from "ethereumjs-util";
1
+ import { bufferToHex } from "@ignored/util";
2
2
 
3
3
  import {
4
4
  CallMessageTrace,
@@ -1,6 +1,5 @@
1
- import { ERROR } from "@ethereumjs/vm/dist/exceptions";
1
+ import { ERROR } from "@ignored/evm/dist/exceptions";
2
2
  import { defaultAbiCoder as abi } from "@ethersproject/abi";
3
- import { BN } from "ethereumjs-util";
4
3
  import semver from "semver";
5
4
 
6
5
  import { AbiHelpers } from "../../util/abi-helpers";
@@ -493,7 +492,7 @@ export class ErrorInferrer {
493
492
  // if the error comes from a call to a zero-initialized function,
494
493
  // we remove the last frame, which represents the call, to avoid
495
494
  // having duplicated frames
496
- if (errorCode.eqn(0x51)) {
495
+ if (errorCode === 0x51) {
497
496
  stacktrace.splice(-1);
498
497
  }
499
498
 
@@ -524,6 +523,11 @@ export class ErrorInferrer {
524
523
 
525
524
  let errorMessage = "reverted with an unrecognized custom error";
526
525
 
526
+ const selector = returnData.getSelector();
527
+ if (selector !== undefined) {
528
+ errorMessage += ` with selector ${selector}`;
529
+ }
530
+
527
531
  for (const customError of trace.bytecode.contract.customErrors) {
528
532
  if (returnData.matchesSelector(customError.selector)) {
529
533
  // if the return data matches a custom error in the called contract,
@@ -762,7 +766,7 @@ export class ErrorInferrer {
762
766
  return false;
763
767
  }
764
768
 
765
- if (trace.value.lten(0)) {
769
+ if (trace.value <= 0n) {
766
770
  return false;
767
771
  }
768
772
 
@@ -859,7 +863,7 @@ export class ErrorInferrer {
859
863
  return false;
860
864
  }
861
865
 
862
- if (trace.value.lten(0)) {
866
+ if (trace.value <= 0n) {
863
867
  return false;
864
868
  }
865
869
 
@@ -913,7 +917,7 @@ export class ErrorInferrer {
913
917
  }
914
918
 
915
919
  return (
916
- trace.value.gtn(0) &&
920
+ trace.value > 0n &&
917
921
  (constructor.isPayable === undefined || !constructor.isPayable)
918
922
  );
919
923
  }
@@ -1121,7 +1125,7 @@ export class ErrorInferrer {
1121
1125
  private _instructionWithinFunctionToPanicStackTraceEntry(
1122
1126
  trace: DecodedEvmMessageTrace,
1123
1127
  inst: Instruction,
1124
- errorCode: BN
1128
+ errorCode: number
1125
1129
  ): PanicErrorStackTraceEntry {
1126
1130
  return {
1127
1131
  type: StackTraceEntryType.PANIC_ERROR,