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,34 +1,34 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.HardhatBlockchain = void 0;
4
- const ethereumjs_util_1 = require("ethereumjs-util");
4
+ const util_1 = require("@ignored/util");
5
5
  const BlockchainBase_1 = require("./BlockchainBase");
6
6
  /* eslint-disable @nomiclabs/hardhat-internal-rules/only-hardhat-error */
7
7
  class HardhatBlockchain extends BlockchainBase_1.BlockchainBase {
8
8
  constructor(common) {
9
9
  super(common);
10
- this._length = 0;
10
+ this._length = 0n;
11
11
  }
12
12
  getLatestBlockNumber() {
13
- return new ethereumjs_util_1.BN(this._length - 1);
13
+ return BigInt(this._length - 1n);
14
14
  }
15
15
  async addBlock(block) {
16
16
  this._validateBlock(block);
17
17
  const totalDifficulty = await this._computeTotalDifficulty(block);
18
18
  this._data.addBlock(block, totalDifficulty);
19
- this._length += 1;
19
+ this._length += 1n;
20
20
  return block;
21
21
  }
22
22
  reserveBlocks(count, interval, previousBlockStateRoot, previousBlockTotalDifficulty, previousBlockBaseFeePerGas) {
23
23
  super.reserveBlocks(count, interval, previousBlockStateRoot, previousBlockTotalDifficulty, previousBlockBaseFeePerGas);
24
- this._length = this._length + count.toNumber();
24
+ this._length += count;
25
25
  }
26
26
  deleteLaterBlocks(block) {
27
27
  const actual = this._data.getBlockByHash(block.hash());
28
28
  if (actual === undefined) {
29
29
  throw new Error("Invalid block");
30
30
  }
31
- this._delBlock(actual.header.number.addn(1));
31
+ this._delBlock(actual.header.number + 1n);
32
32
  }
33
33
  async getTotalDifficulty(blockHash) {
34
34
  const totalDifficulty = this._data.getTotalDifficulty(blockHash);
@@ -42,23 +42,22 @@ class HardhatBlockchain extends BlockchainBase_1.BlockchainBase {
42
42
  }
43
43
  async getBlockByTransactionHash(transactionHash) {
44
44
  const block = this._data.getBlockByTransactionHash(transactionHash);
45
- return block !== null && block !== void 0 ? block : null;
45
+ return block ?? null;
46
46
  }
47
47
  async getTransactionReceipt(transactionHash) {
48
- var _a;
49
- return (_a = this._data.getTransactionReceipt(transactionHash)) !== null && _a !== void 0 ? _a : null;
48
+ return this._data.getTransactionReceipt(transactionHash) ?? null;
50
49
  }
51
50
  async getLogs(filterParams) {
52
51
  return this._data.getLogs(filterParams);
53
52
  }
54
53
  _validateBlock(block) {
55
- const blockNumber = block.header.number.toNumber();
54
+ const blockNumber = block.header.number;
56
55
  const parentHash = block.header.parentHash;
57
- const parent = this._data.getBlockByNumber(new ethereumjs_util_1.BN(blockNumber - 1));
58
- if (this._length !== blockNumber) {
56
+ const parent = this._data.getBlockByNumber(BigInt(blockNumber - 1n));
57
+ if (BigInt(this._length) !== blockNumber) {
59
58
  throw new Error(`Invalid block number ${blockNumber}. Expected ${this._length}.`);
60
59
  }
61
- if ((blockNumber === 0 && !parentHash.equals((0, ethereumjs_util_1.zeros)(32))) ||
60
+ if ((blockNumber === 0n && !parentHash.equals((0, util_1.zeros)(32))) ||
62
61
  (blockNumber > 0 &&
63
62
  parent !== undefined &&
64
63
  !parentHash.equals(parent.hash()))) {
@@ -67,7 +66,7 @@ class HardhatBlockchain extends BlockchainBase_1.BlockchainBase {
67
66
  }
68
67
  _delBlock(blockNumber) {
69
68
  super._delBlock(blockNumber);
70
- this._length = blockNumber.toNumber();
69
+ this._length = blockNumber;
71
70
  }
72
71
  }
73
72
  exports.HardhatBlockchain = HardhatBlockchain;
@@ -1 +1 @@
1
- {"version":3,"file":"HardhatBlockchain.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/provider/HardhatBlockchain.ts"],"names":[],"mappings":";;;AAGA,qDAA4C;AAE5C,qDAAkD;AAKlD,yEAAyE;AAEzE,MAAa,iBACX,SAAQ,+BAAc;IAKtB,YAAY,MAAc;QACxB,KAAK,CAAC,MAAM,CAAC,CAAC;QAHR,YAAO,GAAG,CAAC,CAAC;IAIpB,CAAC;IAEM,oBAAoB;QACzB,OAAO,IAAI,oBAAE,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;IAClC,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,KAAY;QAChC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC3B,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QAClE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;QAClB,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,aAAa,CAClB,KAAS,EACT,QAAY,EACZ,sBAA8B,EAC9B,4BAAgC,EAChC,0BAA0C;QAE1C,KAAK,CAAC,aAAa,CACjB,KAAK,EACL,QAAQ,EACR,sBAAsB,EACtB,4BAA4B,EAC5B,0BAA0B,CAC3B,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IACjD,CAAC;IAEM,iBAAiB,CAAC,KAAY;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACvD,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;SAClC;QAED,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,SAAiB;QAC/C,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QACjE,IAAI,eAAe,KAAK,SAAS,EAAE;YACjC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;SACpC;QACD,OAAO,eAAe,CAAC;IACzB,CAAC;IAEM,KAAK,CAAC,cAAc,CACzB,eAAuB;QAEvB,OAAO,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACnD,CAAC;IAEM,KAAK,CAAC,yBAAyB,CACpC,eAAuB;QAEvB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,eAAe,CAAC,CAAC;QACpE,OAAO,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,IAAI,CAAC;IACvB,CAAC;IAEM,KAAK,CAAC,qBAAqB,CAAC,eAAuB;;QACxD,OAAO,MAAA,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,eAAe,CAAC,mCAAI,IAAI,CAAC;IACnE,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,YAA0B;QAC7C,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC1C,CAAC;IAEO,cAAc,CAAC,KAAY;QACjC,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACnD,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,oBAAE,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC;QAEpE,IAAI,IAAI,CAAC,OAAO,KAAK,WAAW,EAAE;YAChC,MAAM,IAAI,KAAK,CACb,wBAAwB,WAAW,cAAc,IAAI,CAAC,OAAO,GAAG,CACjE,CAAC;SACH;QAED,IACE,CAAC,WAAW,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAA,uBAAK,EAAC,EAAE,CAAC,CAAC,CAAC;YACpD,CAAC,WAAW,GAAG,CAAC;gBACd,MAAM,KAAK,SAAS;gBACpB,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,EACpC;YACA,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;SACxC;IACH,CAAC;IAES,SAAS,CAAC,WAAe;QACjC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;IACxC,CAAC;CACF;AAtGD,8CAsGC"}
1
+ {"version":3,"file":"HardhatBlockchain.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/provider/HardhatBlockchain.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { TypedTransaction } from "@ethereumjs/tx";
1
+ import { TypedTransaction } from "@ignored/tx";
2
2
  import { List as ImmutableList, Map as ImmutableMap, Record as ImmutableRecord } from "immutable";
3
3
  export interface OrderedTransaction {
4
4
  orderId: number;
@@ -1 +1 @@
1
- {"version":3,"file":"PoolState.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/provider/PoolState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,EACL,IAAI,IAAI,aAAa,EACrB,GAAG,IAAI,YAAY,EACnB,MAAM,IAAI,eAAe,EAC1B,MAAM,WAAW,CAAC;AAInB,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,gBAAgB,CAAC;CACxB;AAED,UAAU,2BAA2B;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,yBAAyB,sDAMlC,CAAC;AAEL,oBAAY,qBAAqB,GAC/B,eAAe,CAAC,2BAA2B,CAAC,CAAC;AAC/C,oBAAY,kBAAkB,GAAG,aAAa,CAAC,qBAAqB,CAAC,CAAC;AACtE,oBAAY,qBAAqB,GAAG,YAAY,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;AAC7E,oBAAY,iBAAiB,GAAG,YAAY,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;AAE5E,MAAM,WAAW,SAAS;IACxB,mBAAmB,EAAE,qBAAqB,CAAC;IAC3C,kBAAkB,EAAE,qBAAqB,CAAC;IAC1C,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,aAAa,oCAKxB,CAAC"}
1
+ {"version":3,"file":"PoolState.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/provider/PoolState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EACL,IAAI,IAAI,aAAa,EACrB,GAAG,IAAI,YAAY,EACnB,MAAM,IAAI,eAAe,EAC1B,MAAM,WAAW,CAAC;AAInB,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,gBAAgB,CAAC;CACxB;AAED,UAAU,2BAA2B;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,yBAAyB,sDAMlC,CAAC;AAEL,oBAAY,qBAAqB,GAC/B,eAAe,CAAC,2BAA2B,CAAC,CAAC;AAC/C,oBAAY,kBAAkB,GAAG,aAAa,CAAC,qBAAqB,CAAC,CAAC;AACtE,oBAAY,qBAAqB,GAAG,YAAY,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;AAC7E,oBAAY,iBAAiB,GAAG,YAAY,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;AAE5E,MAAM,WAAW,SAAS;IACxB,mBAAmB,EAAE,qBAAqB,CAAC;IAC3C,kBAAkB,EAAE,qBAAqB,CAAC;IAC1C,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,aAAa,oCAKxB,CAAC"}
@@ -1,9 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makePoolState = exports.makeSerializedTransaction = void 0;
4
- const ethereumjs_util_1 = require("ethereumjs-util");
5
4
  const immutable_1 = require("immutable");
6
- const bnToHex_1 = require("./utils/bnToHex");
5
+ const bigint_1 = require("../../util/bigint");
7
6
  exports.makeSerializedTransaction = (0, immutable_1.Record)({
8
7
  orderId: 0,
9
8
  fakeFrom: undefined,
@@ -14,6 +13,6 @@ exports.makePoolState = (0, immutable_1.Record)({
14
13
  pendingTransactions: (0, immutable_1.Map)(),
15
14
  queuedTransactions: (0, immutable_1.Map)(),
16
15
  hashToTransaction: (0, immutable_1.Map)(),
17
- blockGasLimit: (0, bnToHex_1.bnToHex)(new ethereumjs_util_1.BN(9500000)),
16
+ blockGasLimit: bigint_1.BigIntUtils.toHex(9500000),
18
17
  });
19
18
  //# sourceMappingURL=PoolState.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PoolState.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/provider/PoolState.ts"],"names":[],"mappings":";;;AACA,qDAAqC;AACrC,yCAImB;AAEnB,6CAA0C;AAc7B,QAAA,yBAAyB,GACpC,IAAA,kBAAe,EAA8B;IAC3C,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,SAAS;IACnB,IAAI,EAAE,EAAE;IACR,MAAM,EAAE,CAAC;CACV,CAAC,CAAC;AAeQ,QAAA,aAAa,GAAG,IAAA,kBAAe,EAAY;IACtD,mBAAmB,EAAE,IAAA,eAAY,GAA8B;IAC/D,kBAAkB,EAAE,IAAA,eAAY,GAA8B;IAC9D,iBAAiB,EAAE,IAAA,eAAY,GAAiC;IAChE,aAAa,EAAE,IAAA,iBAAO,EAAC,IAAI,oBAAE,CAAC,OAAO,CAAC,CAAC;CACxC,CAAC,CAAC"}
1
+ {"version":3,"file":"PoolState.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/provider/PoolState.ts"],"names":[],"mappings":";;;AACA,yCAImB;AAEnB,8CAAgD;AAcnC,QAAA,yBAAyB,GACpC,IAAA,kBAAe,EAA8B;IAC3C,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,SAAS;IACnB,IAAI,EAAE,EAAE;IACR,MAAM,EAAE,CAAC;CACV,CAAC,CAAC;AAeQ,QAAA,aAAa,GAAG,IAAA,kBAAe,EAAY;IACtD,mBAAmB,EAAE,IAAA,eAAY,GAA8B;IAC/D,kBAAkB,EAAE,IAAA,eAAY,GAA8B;IAC9D,iBAAiB,EAAE,IAAA,eAAY,GAAiC;IAChE,aAAa,EAAE,oBAAW,CAAC,KAAK,CAAC,OAAO,CAAC;CAC1C,CAAC,CAAC"}
@@ -1,5 +1,4 @@
1
- import { TypedTransaction } from "@ethereumjs/tx";
2
- import { BN } from "ethereumjs-util";
1
+ import { TypedTransaction } from "@ignored/tx";
3
2
  import { MempoolOrder } from "./node-types";
4
3
  import { OrderedTransaction } from "./PoolState";
5
4
  /**
@@ -25,7 +24,7 @@ export declare class TransactionQueue {
25
24
  * sorted by nonce and without nonce gaps.
26
25
  * @param baseFee The base fee of the next block, if it's going to use EIP-1559
27
26
  */
28
- constructor(pendingTransactions: Map<string, OrderedTransaction[]>, mempoolOrder: MempoolOrder, baseFee?: BN);
27
+ constructor(pendingTransactions: Map<string, OrderedTransaction[]>, mempoolOrder: MempoolOrder, baseFee?: bigint);
29
28
  getNextTransaction(): TypedTransaction | undefined;
30
29
  removeLastSenderTransactions(): void;
31
30
  private _moveFirstEnqueuedTransactionToHeap;
@@ -1 +1 @@
1
- {"version":3,"file":"TransactionQueue.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/provider/TransactionQueue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAIrC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAgEjD;;;;;;;;;;;IAWI;AACJ,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CACxB;IAEZ,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA2B;IAEjD,OAAO,CAAC,sBAAsB,CAAC,CAAS;IAExC;;;;;;OAMG;gBAED,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC,EACtD,YAAY,EAAE,YAAY,EAC1B,OAAO,CAAC,EAAE,EAAE;IAkBP,kBAAkB,IAAI,gBAAgB,GAAG,SAAS;IAclD,4BAA4B;IAYnC,OAAO,CAAC,mCAAmC;CAU5C"}
1
+ {"version":3,"file":"TransactionQueue.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/provider/TransactionQueue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAK/C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAmEjD;;;;;;;;;;;IAWI;AACJ,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CACxB;IAEZ,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA2B;IAEjD,OAAO,CAAC,sBAAsB,CAAC,CAAS;IAExC;;;;;;OAMG;gBAED,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC,EACtD,YAAY,EAAE,YAAY,EAC1B,OAAO,CAAC,EAAE,MAAM;IAkBX,kBAAkB,IAAI,gBAAgB,GAAG,SAAS;IAclD,4BAA4B;IAYnC,OAAO,CAAC,mCAAmC;CAU5C"}
@@ -4,9 +4,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.TransactionQueue = void 0;
7
- const ethereumjs_util_1 = require("ethereumjs-util");
8
7
  const heap_1 = __importDefault(require("mnemonist/heap"));
9
8
  const errors_1 = require("../../core/providers/errors");
9
+ const bigint_1 = require("../../util/bigint");
10
10
  function getEffectiveMinerFee(tx, baseFee) {
11
11
  // This mimics the EIP-1559 normalize_transaction function
12
12
  const maxFeePerGas = "gasPrice" in tx.data ? tx.data.gasPrice : tx.data.maxFeePerGas;
@@ -14,12 +14,12 @@ function getEffectiveMinerFee(tx, baseFee) {
14
14
  if (baseFee === undefined) {
15
15
  return maxFeePerGas;
16
16
  }
17
- return ethereumjs_util_1.BN.min(maxPriorityFeePerGas, maxFeePerGas.sub(baseFee));
17
+ return bigint_1.BigIntUtils.min(maxPriorityFeePerGas, maxFeePerGas - baseFee);
18
18
  }
19
19
  function decreasingOrderEffectiveMinerFeeComparator(left, right, baseFee) {
20
20
  const leftEffectiveMinerFee = getEffectiveMinerFee(left, baseFee);
21
21
  const rightEffectiveMinerFee = getEffectiveMinerFee(right, baseFee);
22
- const cmp = rightEffectiveMinerFee.cmp(leftEffectiveMinerFee);
22
+ const cmp = bigint_1.BigIntUtils.cmp(rightEffectiveMinerFee, leftEffectiveMinerFee);
23
23
  if (cmp !== 0) {
24
24
  return cmp;
25
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TransactionQueue.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/provider/TransactionQueue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TransactionQueue.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/provider/TransactionQueue.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  /// <reference types="node" />
2
- import Common from "@ethereumjs/common";
3
- import { TypedTransaction } from "@ethereumjs/tx";
4
- import { StateManager } from "@ethereumjs/vm/dist/state";
5
- import { Address, BN } from "ethereumjs-util";
2
+ import { Common } from "@ignored/common";
3
+ import { TypedTransaction } from "@ignored/tx";
4
+ import { StateManager } from "@ignored/statemanager";
5
+ import { Address } from "@ignored/util";
6
6
  import { OrderedTransaction, SerializedTransaction } from "./PoolState";
7
7
  export declare function serializeTransaction(tx: OrderedTransaction): SerializedTransaction;
8
8
  export declare function deserializeTransaction(tx: SerializedTransaction, common: Common): OrderedTransaction;
@@ -13,7 +13,7 @@ export declare class TxPool {
13
13
  private _nextSnapshotId;
14
14
  private _nextOrderId;
15
15
  private readonly _deserializeTransaction;
16
- constructor(_stateManager: StateManager, blockGasLimit: BN, common: Common);
16
+ constructor(_stateManager: StateManager, blockGasLimit: bigint, common: Common);
17
17
  addTransaction(tx: TypedTransaction): Promise<void>;
18
18
  /**
19
19
  * Remove transaction with the given hash from the mempool. Returns true
@@ -32,9 +32,9 @@ export declare class TxPool {
32
32
  * Returns the next available nonce for an address, taking into account
33
33
  * its pending transactions.
34
34
  */
35
- getNextPendingNonce(accountAddress: Address): Promise<BN>;
36
- getBlockGasLimit(): BN;
37
- setBlockGasLimit(newLimit: BN | number): void;
35
+ getNextPendingNonce(accountAddress: Address): Promise<bigint>;
36
+ getBlockGasLimit(): bigint;
37
+ setBlockGasLimit(newLimit: bigint | number): void;
38
38
  /**
39
39
  * Updates the pending and queued list of all addresses
40
40
  */
@@ -1 +1 @@
1
- {"version":3,"file":"TxPool.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/provider/TxPool.ts"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAsB,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,EAAE,EAAyB,MAAM,iBAAiB,CAAC;AAKrE,OAAO,EAIL,kBAAkB,EAGlB,qBAAqB,EACtB,MAAM,aAAa,CAAC;AASrB,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,kBAAkB,GACrB,qBAAqB,CAYvB;AAED,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,qBAAqB,EACzB,MAAM,EAAE,MAAM,GACb,kBAAkB,CAuCpB;AAED,qBAAa,MAAM;IAWf,OAAO,CAAC,QAAQ,CAAC,aAAa;IAVhC,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,kBAAkB,CAAiD;IAC3E,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,YAAY,CAAK;IAEzB,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAEhB;gBAGL,aAAa,EAAE,YAAY,EAC5C,aAAa,EAAE,EAAE,EACjB,MAAM,EAAE,MAAM;IAQH,cAAc,CAAC,EAAE,EAAE,gBAAgB;IAgBhD;;;OAGG;IACI,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAiD1C,QAAQ,IAAI,MAAM;IAMlB,MAAM,CAAC,UAAU,EAAE,MAAM;IAUzB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IASlE,sBAAsB,IAAI,OAAO;IAKjC,qBAAqB,IAAI,OAAO;IAKhC,OAAO,IAAI,OAAO;IAIlB,sBAAsB,IAAI,GAAG,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAW3D,qBAAqB,IAAI,GAAG,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAWjE;;;OAGG;IACU,mBAAmB,CAAC,cAAc,EAAE,OAAO,GAAG,OAAO,CAAC,EAAE,CAAC;IAa/D,gBAAgB,IAAI,EAAE;IAItB,gBAAgB,CAAC,QAAQ,EAAE,EAAE,GAAG,MAAM;IAQ7C;;OAEG;IACU,sBAAsB;IA+DnC,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,SAAS;IAkBjB,OAAO,CAAC,sBAAsB;IA0B9B,OAAO,CAAC,qBAAqB;YAsBf,oBAAoB;IAyDlC,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,wBAAwB;IAOhC,OAAO,CAAC,UAAU;IAelB;;;OAGG;YACW,sBAAsB;IAKpC;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAezB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,UAAU;IAmElB,OAAO,CAAC,kBAAkB;CAW3B"}
1
+ {"version":3,"file":"TxPool.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/provider/TxPool.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAsB,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAyB,MAAM,eAAe,CAAC;AAM/D,OAAO,EAIL,kBAAkB,EAGlB,qBAAqB,EACtB,MAAM,aAAa,CAAC;AAQrB,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,kBAAkB,GACrB,qBAAqB,CAYvB;AAED,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,qBAAqB,EACzB,MAAM,EAAE,MAAM,GACb,kBAAkB,CAuCpB;AAED,qBAAa,MAAM;IAWf,OAAO,CAAC,QAAQ,CAAC,aAAa;IAVhC,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,kBAAkB,CAAiD;IAC3E,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,YAAY,CAAK;IAEzB,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAEhB;gBAGL,aAAa,EAAE,YAAY,EAC5C,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM;IAQH,cAAc,CAAC,EAAE,EAAE,gBAAgB;IAgBhD;;;OAGG;IACI,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAiD1C,QAAQ,IAAI,MAAM;IAMlB,MAAM,CAAC,UAAU,EAAE,MAAM;IAUzB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IASlE,sBAAsB,IAAI,OAAO;IAKjC,qBAAqB,IAAI,OAAO;IAKhC,OAAO,IAAI,OAAO;IAIlB,sBAAsB,IAAI,GAAG,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAW3D,qBAAqB,IAAI,GAAG,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAWjE;;;OAGG;IACU,mBAAmB,CAAC,cAAc,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAanE,gBAAgB,IAAI,MAAM;IAI1B,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAQjD;;OAEG;IACU,sBAAsB;IA+DnC,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,SAAS;IAkBjB,OAAO,CAAC,sBAAsB;IA0B9B,OAAO,CAAC,qBAAqB;YAsBf,oBAAoB;IAyDlC,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,wBAAwB;IAOhC,OAAO,CAAC,UAAU;IAelB;;;OAGG;YACW,sBAAsB;IAOpC;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAezB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,UAAU;IA+DlB,OAAO,CAAC,kBAAkB;CAW3B"}
@@ -1,19 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TxPool = exports.deserializeTransaction = exports.serializeTransaction = void 0;
4
- const tx_1 = require("@ethereumjs/tx");
5
- const ethereumjs_util_1 = require("ethereumjs-util");
4
+ const tx_1 = require("@ignored/tx");
5
+ const util_1 = require("@ignored/util");
6
6
  const immutable_1 = require("immutable");
7
7
  const errors_1 = require("../../core/providers/errors");
8
+ const bigint_1 = require("../../util/bigint");
8
9
  const PoolState_1 = require("./PoolState");
9
10
  const FakeSenderAccessListEIP2930Transaction_1 = require("./transactions/FakeSenderAccessListEIP2930Transaction");
10
11
  const FakeSenderTransaction_1 = require("./transactions/FakeSenderTransaction");
11
- const bnToHex_1 = require("./utils/bnToHex");
12
12
  const reorganizeTransactionsLists_1 = require("./utils/reorganizeTransactionsLists");
13
13
  const FakeSenderEIP1559Transaction_1 = require("./transactions/FakeSenderEIP1559Transaction");
14
14
  /* eslint-disable @nomiclabs/hardhat-internal-rules/only-hardhat-error */
15
15
  function serializeTransaction(tx) {
16
- const rlpSerialization = (0, ethereumjs_util_1.bufferToHex)(tx.data.serialize());
16
+ const rlpSerialization = (0, util_1.bufferToHex)(tx.data.serialize());
17
17
  const isFake = tx.data instanceof FakeSenderTransaction_1.FakeSenderTransaction ||
18
18
  tx.data instanceof FakeSenderAccessListEIP2930Transaction_1.FakeSenderAccessListEIP2930Transaction ||
19
19
  tx.data instanceof FakeSenderEIP1559Transaction_1.FakeSenderEIP1559Transaction;
@@ -21,7 +21,7 @@ function serializeTransaction(tx) {
21
21
  orderId: tx.orderId,
22
22
  fakeFrom: isFake ? tx.data.getSenderAddress().toString() : undefined,
23
23
  data: rlpSerialization,
24
- txType: tx.data.transactionType,
24
+ txType: tx.data.type,
25
25
  });
26
26
  }
27
27
  exports.serializeTransaction = serializeTransaction;
@@ -30,8 +30,8 @@ function deserializeTransaction(tx, common) {
30
30
  const fakeFrom = tx.get("fakeFrom");
31
31
  let data;
32
32
  if (fakeFrom !== undefined) {
33
- const sender = ethereumjs_util_1.Address.fromString(fakeFrom);
34
- const serialization = (0, ethereumjs_util_1.toBuffer)(rlpSerialization);
33
+ const sender = util_1.Address.fromString(fakeFrom);
34
+ const serialization = (0, util_1.toBuffer)(rlpSerialization);
35
35
  if (tx.get("txType") === 1) {
36
36
  data =
37
37
  FakeSenderAccessListEIP2930Transaction_1.FakeSenderAccessListEIP2930Transaction.fromSenderAndRlpSerializedTx(sender, serialization, { common });
@@ -44,7 +44,7 @@ function deserializeTransaction(tx, common) {
44
44
  }
45
45
  }
46
46
  else {
47
- data = tx_1.TransactionFactory.fromSerializedData((0, ethereumjs_util_1.toBuffer)(rlpSerialization), {
47
+ data = tx_1.TransactionFactory.fromSerializedData((0, util_1.toBuffer)(rlpSerialization), {
48
48
  common,
49
49
  });
50
50
  }
@@ -61,7 +61,7 @@ class TxPool {
61
61
  this._nextSnapshotId = 0;
62
62
  this._nextOrderId = 0;
63
63
  this._state = (0, PoolState_1.makePoolState)({
64
- blockGasLimit: (0, bnToHex_1.bnToHex)(blockGasLimit),
64
+ blockGasLimit: bigint_1.BigIntUtils.toHex(blockGasLimit),
65
65
  });
66
66
  this._deserializeTransaction = (tx) => deserializeTransaction(tx, common);
67
67
  }
@@ -70,8 +70,8 @@ class TxPool {
70
70
  const nextConfirmedNonce = await this._getNextConfirmedNonce(senderAddress);
71
71
  const nextPendingNonce = await this.getNextPendingNonce(senderAddress);
72
72
  await this._validateTransaction(tx, senderAddress, nextConfirmedNonce);
73
- const txNonce = new ethereumjs_util_1.BN(tx.nonce);
74
- if (txNonce.gt(nextPendingNonce)) {
73
+ const txNonce = tx.nonce;
74
+ if (txNonce > nextPendingNonce) {
75
75
  this._addQueuedTransaction(tx);
76
76
  }
77
77
  else {
@@ -83,7 +83,6 @@ class TxPool {
83
83
  * if a transaction was removed, false otherwise.
84
84
  */
85
85
  removeTransaction(txHash) {
86
- var _a, _b;
87
86
  const tx = this.getTransactionByHash(txHash);
88
87
  if (tx === undefined) {
89
88
  // transaction doesn't exist in the mempool
@@ -92,8 +91,10 @@ class TxPool {
92
91
  this._deleteTransactionByHash(txHash);
93
92
  const serializedTx = serializeTransaction(tx);
94
93
  const senderAddress = this._getSenderAddress(tx.data).toString();
95
- const pendingForAddress = (_a = this._getPendingForAddress(senderAddress)) !== null && _a !== void 0 ? _a : (0, immutable_1.List)();
96
- const queuedForAddress = (_b = this._getQueuedForAddress(senderAddress)) !== null && _b !== void 0 ? _b : (0, immutable_1.List)();
94
+ const pendingForAddress = this._getPendingForAddress(senderAddress) ??
95
+ (0, immutable_1.List)();
96
+ const queuedForAddress = this._getQueuedForAddress(senderAddress) ??
97
+ (0, immutable_1.List)();
97
98
  // if the tx to remove is in the pending state, remove it
98
99
  // and move the following transactions to the queued list
99
100
  const indexOfPendingTx = pendingForAddress.indexOf(serializedTx);
@@ -127,7 +128,7 @@ class TxPool {
127
128
  this._removeSnapshotsAfter(snapshotId);
128
129
  }
129
130
  getTransactionByHash(hash) {
130
- const tx = this._getTransactionsByHash().get((0, ethereumjs_util_1.bufferToHex)(hash));
131
+ const tx = this._getTransactionsByHash().get((0, util_1.bufferToHex)(hash));
131
132
  if (tx !== undefined) {
132
133
  return this._deserializeTransaction(tx);
133
134
  }
@@ -162,19 +163,19 @@ class TxPool {
162
163
  */
163
164
  async getNextPendingNonce(accountAddress) {
164
165
  const pendingTxs = this._getPendingForAddress(accountAddress.toString());
165
- const lastPendingTx = pendingTxs === null || pendingTxs === void 0 ? void 0 : pendingTxs.last(undefined);
166
+ const lastPendingTx = pendingTxs?.last(undefined);
166
167
  if (lastPendingTx === undefined) {
167
168
  return this._getNextConfirmedNonce(accountAddress);
168
169
  }
169
170
  const lastPendingTxNonce = this._deserializeTransaction(lastPendingTx).data.nonce;
170
- return lastPendingTxNonce.addn(1);
171
+ return lastPendingTxNonce + 1n;
171
172
  }
172
173
  getBlockGasLimit() {
173
- return new ethereumjs_util_1.BN((0, ethereumjs_util_1.toBuffer)(this._state.get("blockGasLimit")));
174
+ return BigInt(this._state.get("blockGasLimit"));
174
175
  }
175
176
  setBlockGasLimit(newLimit) {
176
177
  if (typeof newLimit === "number") {
177
- newLimit = new ethereumjs_util_1.BN(newLimit);
178
+ newLimit = BigInt(newLimit);
178
179
  }
179
180
  this._setBlockGasLimit(newLimit);
180
181
  }
@@ -182,28 +183,27 @@ class TxPool {
182
183
  * Updates the pending and queued list of all addresses
183
184
  */
184
185
  async updatePendingAndQueued() {
185
- var _a;
186
186
  let newPending = this._getPending();
187
187
  // update pending transactions
188
188
  for (const [address, txs] of newPending) {
189
- const senderAccount = await this._stateManager.getAccount(ethereumjs_util_1.Address.fromString(address));
190
- const senderNonce = new ethereumjs_util_1.BN(senderAccount.nonce);
191
- const senderBalance = new ethereumjs_util_1.BN(senderAccount.balance);
189
+ const senderAccount = await this._stateManager.getAccount(util_1.Address.fromString(address));
190
+ const senderNonce = senderAccount.nonce;
191
+ const senderBalance = senderAccount.balance;
192
192
  let moveToQueued = false;
193
193
  for (const tx of txs) {
194
194
  const deserializedTx = this._deserializeTransaction(tx);
195
195
  if (moveToQueued) {
196
196
  newPending = this._removeTx(newPending, address, deserializedTx);
197
- const queued = (_a = this._getQueuedForAddress(address)) !== null && _a !== void 0 ? _a : (0, immutable_1.List)();
197
+ const queued = this._getQueuedForAddress(address) ?? (0, immutable_1.List)();
198
198
  this._setQueuedForAddress(address, queued.push(tx));
199
199
  continue;
200
200
  }
201
- const txNonce = new ethereumjs_util_1.BN(deserializedTx.data.nonce);
201
+ const txNonce = deserializedTx.data.nonce;
202
202
  if (!this._isTxValid(deserializedTx, txNonce, senderNonce, senderBalance)) {
203
203
  newPending = this._removeTx(newPending, address, deserializedTx);
204
204
  // if we are dropping a pending transaction with a valid nonce,
205
205
  // then we move all the following txs to the queued list
206
- if (txNonce.gte(senderNonce)) {
206
+ if (txNonce >= senderNonce) {
207
207
  moveToQueued = true;
208
208
  }
209
209
  }
@@ -213,12 +213,12 @@ class TxPool {
213
213
  // update queued addresses
214
214
  let newQueued = this._getQueued();
215
215
  for (const [address, txs] of newQueued) {
216
- const senderAccount = await this._stateManager.getAccount(ethereumjs_util_1.Address.fromString(address));
217
- const senderNonce = new ethereumjs_util_1.BN(senderAccount.nonce);
218
- const senderBalance = new ethereumjs_util_1.BN(senderAccount.balance);
216
+ const senderAccount = await this._stateManager.getAccount(util_1.Address.fromString(address));
217
+ const senderNonce = senderAccount.nonce;
218
+ const senderBalance = senderAccount.balance;
219
219
  for (const tx of txs) {
220
220
  const deserializedTx = this._deserializeTransaction(tx);
221
- const txNonce = new ethereumjs_util_1.BN(deserializedTx.data.nonce);
221
+ const txNonce = deserializedTx.data.nonce;
222
222
  if (!this._isTxValid(deserializedTx, txNonce, senderNonce, senderBalance)) {
223
223
  newQueued = this._removeTx(newQueued, address, deserializedTx);
224
224
  }
@@ -253,64 +253,62 @@ class TxPool {
253
253
  return map.set(address, accountTxs.remove(indexOfTx));
254
254
  }
255
255
  _addPendingTransaction(tx) {
256
- var _a, _b;
257
256
  const orderedTx = {
258
257
  orderId: this._nextOrderId++,
259
258
  data: tx,
260
259
  };
261
260
  const serializedTx = serializeTransaction(orderedTx);
262
261
  const hexSenderAddress = tx.getSenderAddress().toString();
263
- const accountTransactions = (_a = this._getPendingForAddress(hexSenderAddress)) !== null && _a !== void 0 ? _a : (0, immutable_1.List)();
262
+ const accountTransactions = this._getPendingForAddress(hexSenderAddress) ?? (0, immutable_1.List)();
264
263
  const replaced = this._replacePendingTx(hexSenderAddress, orderedTx);
265
264
  if (!replaced) {
266
- const { newPending, newQueued } = (0, reorganizeTransactionsLists_1.reorganizeTransactionsLists)(accountTransactions.push(serializedTx), (_b = this._getQueuedForAddress(hexSenderAddress)) !== null && _b !== void 0 ? _b : (0, immutable_1.List)(), (stx) => this._deserializeTransaction(stx).data.nonce);
265
+ const { newPending, newQueued } = (0, reorganizeTransactionsLists_1.reorganizeTransactionsLists)(accountTransactions.push(serializedTx), this._getQueuedForAddress(hexSenderAddress) ?? (0, immutable_1.List)(), (stx) => this._deserializeTransaction(stx).data.nonce);
267
266
  this._setPendingForAddress(hexSenderAddress, newPending);
268
267
  this._setQueuedForAddress(hexSenderAddress, newQueued);
269
268
  }
270
- this._setTransactionByHash((0, ethereumjs_util_1.bufferToHex)(tx.hash()), serializedTx);
269
+ this._setTransactionByHash((0, util_1.bufferToHex)(tx.hash()), serializedTx);
271
270
  }
272
271
  _addQueuedTransaction(tx) {
273
- var _a;
274
272
  const orderedTx = {
275
273
  orderId: this._nextOrderId++,
276
274
  data: tx,
277
275
  };
278
276
  const serializedTx = serializeTransaction(orderedTx);
279
277
  const hexSenderAddress = tx.getSenderAddress().toString();
280
- const accountTransactions = (_a = this._getQueuedForAddress(hexSenderAddress)) !== null && _a !== void 0 ? _a : (0, immutable_1.List)();
278
+ const accountTransactions = this._getQueuedForAddress(hexSenderAddress) ?? (0, immutable_1.List)();
281
279
  const replaced = this._replaceQueuedTx(hexSenderAddress, orderedTx);
282
280
  if (!replaced) {
283
281
  this._setQueuedForAddress(hexSenderAddress, accountTransactions.push(serializedTx));
284
282
  }
285
- this._setTransactionByHash((0, ethereumjs_util_1.bufferToHex)(tx.hash()), serializedTx);
283
+ this._setTransactionByHash((0, util_1.bufferToHex)(tx.hash()), serializedTx);
286
284
  }
287
285
  async _validateTransaction(tx, senderAddress, senderNonce) {
288
286
  if (this._knownTransaction(tx)) {
289
- throw new errors_1.InvalidInputError(`Known transaction: ${(0, ethereumjs_util_1.bufferToHex)(tx.hash())}`);
287
+ throw new errors_1.InvalidInputError(`Known transaction: ${(0, util_1.bufferToHex)(tx.hash())}`);
290
288
  }
291
- const txNonce = new ethereumjs_util_1.BN(tx.nonce);
289
+ const txNonce = tx.nonce;
292
290
  // Geth returns this error if trying to create a contract and no data is provided
293
291
  if (tx.to === undefined && tx.data.length === 0) {
294
292
  throw new errors_1.InvalidInputError("contract creation without any data provided");
295
293
  }
296
294
  const senderAccount = await this._stateManager.getAccount(senderAddress);
297
- const senderBalance = new ethereumjs_util_1.BN(senderAccount.balance);
295
+ const senderBalance = senderAccount.balance;
298
296
  const maxFee = "gasPrice" in tx ? tx.gasPrice : tx.maxFeePerGas;
299
- const txMaxUpfrontCost = tx.gasLimit.mul(maxFee).add(tx.value);
300
- if (txMaxUpfrontCost.gt(senderBalance)) {
297
+ const txMaxUpfrontCost = tx.gasLimit * maxFee + tx.value;
298
+ if (txMaxUpfrontCost > senderBalance) {
301
299
  throw new errors_1.InvalidInputError(`sender doesn't have enough funds to send tx. The max upfront cost is: ${txMaxUpfrontCost.toString()}` +
302
300
  ` and the sender's account only has: ${senderBalance.toString()}`);
303
301
  }
304
- if (txNonce.lt(senderNonce)) {
302
+ if (txNonce < senderNonce) {
305
303
  throw new errors_1.InvalidInputError(`Nonce too low. Expected nonce to be at least ${senderNonce.toString()} but got ${txNonce.toString()}.`);
306
304
  }
307
- const gasLimit = new ethereumjs_util_1.BN(tx.gasLimit);
305
+ const gasLimit = tx.gasLimit;
308
306
  const baseFee = tx.getBaseFee();
309
- if (gasLimit.lt(baseFee)) {
307
+ if (gasLimit < baseFee) {
310
308
  throw new errors_1.InvalidInputError(`Transaction requires at least ${baseFee.toString()} gas but got ${gasLimit.toString()}`);
311
309
  }
312
310
  const blockGasLimit = this.getBlockGasLimit();
313
- if (gasLimit.gt(blockGasLimit)) {
311
+ if (gasLimit > blockGasLimit) {
314
312
  throw new errors_1.InvalidInputError(`Transaction gas limit is ${gasLimit.toString()} and exceeds block gas limit of ${blockGasLimit.toString()}`);
315
313
  }
316
314
  }
@@ -320,7 +318,7 @@ class TxPool {
320
318
  this._transactionExists(tx, this._getQueuedForAddress(senderAddress)));
321
319
  }
322
320
  _transactionExists(tx, txList) {
323
- const existingTx = txList === null || txList === void 0 ? void 0 : txList.find((etx) => this._deserializeTransaction(etx).data.hash().equals(tx.hash()));
321
+ const existingTx = txList?.find((etx) => this._deserializeTransaction(etx).data.hash().equals(tx.hash()));
324
322
  return existingTx !== undefined;
325
323
  }
326
324
  _getTransactionsByHash() {
@@ -354,16 +352,16 @@ class TxPool {
354
352
  this._state = this._state.set("queuedTransactions", this._getQueued().set(address, transactions));
355
353
  }
356
354
  _setBlockGasLimit(newLimit) {
357
- this._state = this._state.set("blockGasLimit", (0, bnToHex_1.bnToHex)(newLimit));
355
+ this._state = this._state.set("blockGasLimit", bigint_1.BigIntUtils.toHex(newLimit));
358
356
  }
359
357
  _deleteTransactionByHash(hash) {
360
- this._state = this._state.set("hashToTransaction", this._getTransactionsByHash().delete((0, ethereumjs_util_1.bufferToHex)(hash)));
358
+ this._state = this._state.set("hashToTransaction", this._getTransactionsByHash().delete((0, util_1.bufferToHex)(hash)));
361
359
  }
362
360
  _isTxValid(tx, txNonce, senderNonce, senderBalance) {
363
- const txGasLimit = new ethereumjs_util_1.BN(tx.data.gasLimit);
364
- return (txGasLimit.lte(this.getBlockGasLimit()) &&
365
- txNonce.gte(senderNonce) &&
366
- tx.data.getUpfrontCost().lte(senderBalance));
361
+ const txGasLimit = tx.data.gasLimit;
362
+ return (txGasLimit <= this.getBlockGasLimit() &&
363
+ txNonce >= senderNonce &&
364
+ tx.data.getUpfrontCost() <= senderBalance);
367
365
  }
368
366
  /**
369
367
  * Returns the next available nonce for an address, ignoring its
@@ -371,7 +369,7 @@ class TxPool {
371
369
  */
372
370
  async _getNextConfirmedNonce(accountAddress) {
373
371
  const account = await this._stateManager.getAccount(accountAddress);
374
- return new ethereumjs_util_1.BN(account.nonce);
372
+ return account.nonce;
375
373
  }
376
374
  /**
377
375
  * Checks if some pending tx with the same nonce as `newTx` exists.
@@ -405,28 +403,28 @@ class TxPool {
405
403
  if (txs === undefined) {
406
404
  return;
407
405
  }
408
- const existingTxEntry = txs.findEntry((tx) => this._deserializeTransaction(tx).data.nonce.eq(new ethereumjs_util_1.BN(newTx.data.nonce)));
406
+ const existingTxEntry = txs.findEntry((tx) => this._deserializeTransaction(tx).data.nonce === newTx.data.nonce);
409
407
  if (existingTxEntry === undefined) {
410
408
  return;
411
409
  }
412
410
  const [existingTxIndex, existingTx] = existingTxEntry;
413
411
  const deserializedExistingTx = this._deserializeTransaction(existingTx);
414
- const currentMaxFeePerGas = new ethereumjs_util_1.BN("gasPrice" in deserializedExistingTx.data
412
+ const currentMaxFeePerGas = "gasPrice" in deserializedExistingTx.data
415
413
  ? deserializedExistingTx.data.gasPrice
416
- : deserializedExistingTx.data.maxFeePerGas);
417
- const currentPriorityFeePerGas = new ethereumjs_util_1.BN("gasPrice" in deserializedExistingTx.data
414
+ : deserializedExistingTx.data.maxFeePerGas;
415
+ const currentPriorityFeePerGas = "gasPrice" in deserializedExistingTx.data
418
416
  ? deserializedExistingTx.data.gasPrice
419
- : deserializedExistingTx.data.maxPriorityFeePerGas);
420
- const newMaxFeePerGas = new ethereumjs_util_1.BN("gasPrice" in newTx.data ? newTx.data.gasPrice : newTx.data.maxFeePerGas);
421
- const newPriorityFeePerGas = new ethereumjs_util_1.BN("gasPrice" in newTx.data
417
+ : deserializedExistingTx.data.maxPriorityFeePerGas;
418
+ const newMaxFeePerGas = "gasPrice" in newTx.data ? newTx.data.gasPrice : newTx.data.maxFeePerGas;
419
+ const newPriorityFeePerGas = "gasPrice" in newTx.data
422
420
  ? newTx.data.gasPrice
423
- : newTx.data.maxPriorityFeePerGas);
421
+ : newTx.data.maxPriorityFeePerGas;
424
422
  const minNewMaxFeePerGas = this._getMinNewFeePrice(currentMaxFeePerGas);
425
423
  const minNewPriorityFeePerGas = this._getMinNewFeePrice(currentPriorityFeePerGas);
426
- if (newMaxFeePerGas.lt(minNewMaxFeePerGas)) {
424
+ if (newMaxFeePerGas < minNewMaxFeePerGas) {
427
425
  throw new errors_1.InvalidInputError(`Replacement transaction underpriced. A gasPrice/maxFeePerGas of at least ${minNewMaxFeePerGas.toString()} is necessary to replace the existing transaction with nonce ${newTx.data.nonce.toString()}.`);
428
426
  }
429
- if (newPriorityFeePerGas.lt(minNewPriorityFeePerGas)) {
427
+ if (newPriorityFeePerGas < minNewPriorityFeePerGas) {
430
428
  throw new errors_1.InvalidInputError(`Replacement transaction underpriced. A gasPrice/maxPriorityFeePerGas of at least ${minNewPriorityFeePerGas.toString()} is necessary to replace the existing transaction with nonce ${newTx.data.nonce.toString()}.`);
431
429
  }
432
430
  const newTxs = txs.set(existingTxIndex, serializeTransaction(newTx));
@@ -434,12 +432,12 @@ class TxPool {
434
432
  return newTxs;
435
433
  }
436
434
  _getMinNewFeePrice(feePrice) {
437
- let minNewPriorityFee = feePrice.muln(110);
438
- if (minNewPriorityFee.modn(100) === 0) {
439
- minNewPriorityFee = minNewPriorityFee.divn(100);
435
+ let minNewPriorityFee = feePrice * 110n;
436
+ if (minNewPriorityFee % 100n === 0n) {
437
+ minNewPriorityFee = minNewPriorityFee / 100n;
440
438
  }
441
439
  else {
442
- minNewPriorityFee = minNewPriorityFee.divn(100).addn(1);
440
+ minNewPriorityFee = minNewPriorityFee / 100n + 1n;
443
441
  }
444
442
  return minNewPriorityFee;
445
443
  }