hardhat 2.23.0-dev.2 → 2.23.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 (510) hide show
  1. package/README.md +3 -1
  2. package/builtin-tasks/compile.js +8 -8
  3. package/builtin-tasks/compile.js.map +1 -1
  4. package/builtin-tasks/flatten.js +13 -6
  5. package/builtin-tasks/flatten.js.map +1 -1
  6. package/builtin-tasks/node.js +7 -7
  7. package/builtin-tasks/node.js.map +1 -1
  8. package/builtin-tasks/test.js +2 -2
  9. package/builtin-tasks/test.js.map +1 -1
  10. package/builtin-tasks/utils/watch.js +2 -2
  11. package/builtin-tasks/utils/watch.js.map +1 -1
  12. package/common/bigInt.d.ts +1 -1
  13. package/common/bigInt.d.ts.map +1 -1
  14. package/console.sol +1 -1
  15. package/internal/cli/autocomplete.js +1 -1
  16. package/internal/cli/autocomplete.js.map +1 -1
  17. package/internal/cli/banner-manager.d.ts +12 -0
  18. package/internal/cli/banner-manager.d.ts.map +1 -0
  19. package/internal/cli/banner-manager.js +126 -0
  20. package/internal/cli/banner-manager.js.map +1 -0
  21. package/internal/cli/bootstrap.js +4 -5
  22. package/internal/cli/bootstrap.js.map +1 -1
  23. package/internal/cli/cli.js +14 -9
  24. package/internal/cli/cli.js.map +1 -1
  25. package/internal/cli/constants.d.ts.map +1 -1
  26. package/internal/cli/constants.js +1 -1
  27. package/internal/cli/constants.js.map +1 -1
  28. package/internal/cli/is-node-version-to-warn-on.d.ts +13 -0
  29. package/internal/cli/is-node-version-to-warn-on.d.ts.map +1 -0
  30. package/internal/cli/is-node-version-to-warn-on.js +46 -0
  31. package/internal/cli/is-node-version-to-warn-on.js.map +1 -0
  32. package/internal/cli/project-creation.d.ts +1 -1
  33. package/internal/cli/project-creation.d.ts.map +1 -1
  34. package/internal/cli/project-creation.js +31 -21
  35. package/internal/cli/project-creation.js.map +1 -1
  36. package/internal/cli/vars.js +10 -10
  37. package/internal/cli/vars.js.map +1 -1
  38. package/internal/cli/version-notifier.js +2 -2
  39. package/internal/cli/version-notifier.js.map +1 -1
  40. package/internal/constants.d.ts.map +1 -1
  41. package/internal/constants.js +1 -0
  42. package/internal/constants.js.map +1 -1
  43. package/internal/context.d.ts +1 -2
  44. package/internal/context.d.ts.map +1 -1
  45. package/internal/context.js +0 -3
  46. package/internal/context.js.map +1 -1
  47. package/internal/core/config/config-env.d.ts +1 -2
  48. package/internal/core/config/config-env.d.ts.map +1 -1
  49. package/internal/core/config/config-env.js +1 -8
  50. package/internal/core/config/config-env.js.map +1 -1
  51. package/internal/core/config/config-loading.d.ts +1 -1
  52. package/internal/core/config/config-loading.d.ts.map +1 -1
  53. package/internal/core/config/config-loading.js +14 -8
  54. package/internal/core/config/config-loading.js.map +1 -1
  55. package/internal/core/config/config-validation.js +1 -1
  56. package/internal/core/config/config-validation.js.map +1 -1
  57. package/internal/core/config/default-config.d.ts.map +1 -1
  58. package/internal/core/config/default-config.js +57 -32
  59. package/internal/core/config/default-config.js.map +1 -1
  60. package/internal/core/errors-list.d.ts +21 -0
  61. package/internal/core/errors-list.d.ts.map +1 -1
  62. package/internal/core/errors-list.js +27 -1
  63. package/internal/core/errors-list.js.map +1 -1
  64. package/internal/core/jsonrpc/types/authorization-list.d.ts +21 -0
  65. package/internal/core/jsonrpc/types/authorization-list.d.ts.map +1 -0
  66. package/internal/{hardhat-network/provider/PoolState.js → core/jsonrpc/types/authorization-list.js} +12 -15
  67. package/internal/core/jsonrpc/types/authorization-list.js.map +1 -0
  68. package/internal/core/jsonrpc/types/base-types.d.ts +2 -0
  69. package/internal/core/jsonrpc/types/base-types.d.ts.map +1 -1
  70. package/internal/core/jsonrpc/types/base-types.js +12 -8
  71. package/internal/core/jsonrpc/types/base-types.js.map +1 -1
  72. package/internal/core/jsonrpc/types/input/logAddress.d.ts +1 -0
  73. package/internal/core/jsonrpc/types/input/logAddress.d.ts.map +1 -1
  74. package/internal/core/jsonrpc/types/input/logTopics.d.ts +1 -0
  75. package/internal/core/jsonrpc/types/input/logTopics.d.ts.map +1 -1
  76. package/internal/core/jsonrpc/types/input/transactionRequest.d.ts +23 -0
  77. package/internal/core/jsonrpc/types/input/transactionRequest.d.ts.map +1 -1
  78. package/internal/core/jsonrpc/types/input/transactionRequest.js +2 -0
  79. package/internal/core/jsonrpc/types/input/transactionRequest.js.map +1 -1
  80. package/internal/core/jsonrpc/types/output/block.d.ts +2 -2
  81. package/internal/core/jsonrpc/types/output/block.d.ts.map +1 -1
  82. package/internal/core/jsonrpc/types/output/block.js +2 -1
  83. package/internal/core/jsonrpc/types/output/block.js.map +1 -1
  84. package/internal/core/project-structure.js +8 -8
  85. package/internal/core/project-structure.js.map +1 -1
  86. package/internal/core/providers/accounts.d.ts.map +1 -1
  87. package/internal/core/providers/accounts.js +76 -34
  88. package/internal/core/providers/accounts.js.map +1 -1
  89. package/internal/core/providers/construction.d.ts +2 -2
  90. package/internal/core/providers/construction.d.ts.map +1 -1
  91. package/internal/core/providers/construction.js +2 -2
  92. package/internal/core/providers/construction.js.map +1 -1
  93. package/internal/core/providers/http.d.ts.map +1 -1
  94. package/internal/core/providers/http.js +12 -0
  95. package/internal/core/providers/http.js.map +1 -1
  96. package/internal/core/providers/lazy-initialization.d.ts.map +1 -1
  97. package/internal/core/providers/lazy-initialization.js +10 -10
  98. package/internal/core/providers/lazy-initialization.js.map +1 -1
  99. package/internal/core/providers/util.d.ts +1 -0
  100. package/internal/core/providers/util.d.ts.map +1 -1
  101. package/internal/core/providers/util.js +1 -1
  102. package/internal/core/providers/util.js.map +1 -1
  103. package/internal/core/runtime-environment.d.ts +2 -2
  104. package/internal/core/runtime-environment.d.ts.map +1 -1
  105. package/internal/core/runtime-environment.js +2 -2
  106. package/internal/core/runtime-environment.js.map +1 -1
  107. package/internal/core/typescript-support.d.ts +1 -1
  108. package/internal/core/typescript-support.js +1 -1
  109. package/internal/hardhat-network/jsonrpc/client.d.ts +2 -1
  110. package/internal/hardhat-network/jsonrpc/client.d.ts.map +1 -1
  111. package/internal/hardhat-network/jsonrpc/client.js +10 -10
  112. package/internal/hardhat-network/jsonrpc/client.js.map +1 -1
  113. package/internal/hardhat-network/jsonrpc/handler.d.ts.map +1 -1
  114. package/internal/hardhat-network/jsonrpc/handler.js +2 -1
  115. package/internal/hardhat-network/jsonrpc/handler.js.map +1 -1
  116. package/internal/hardhat-network/provider/node-types.d.ts +0 -52
  117. package/internal/hardhat-network/provider/node-types.d.ts.map +1 -1
  118. package/internal/hardhat-network/provider/output.d.ts +12 -1
  119. package/internal/hardhat-network/provider/output.d.ts.map +1 -1
  120. package/internal/hardhat-network/provider/provider.d.ts +5 -20
  121. package/internal/hardhat-network/provider/provider.d.ts.map +1 -1
  122. package/internal/hardhat-network/provider/provider.js +47 -171
  123. package/internal/hardhat-network/provider/provider.js.map +1 -1
  124. package/internal/hardhat-network/provider/return-data.d.ts +2 -15
  125. package/internal/hardhat-network/provider/return-data.d.ts.map +1 -1
  126. package/internal/hardhat-network/provider/return-data.js +2 -50
  127. package/internal/hardhat-network/provider/return-data.js.map +1 -1
  128. package/internal/hardhat-network/provider/utils/convertToEdr.d.ts.map +1 -1
  129. package/internal/hardhat-network/provider/utils/convertToEdr.js +10 -7
  130. package/internal/hardhat-network/provider/utils/convertToEdr.js.map +1 -1
  131. package/internal/hardhat-network/provider/utils/fork-recomendations-banner.js +2 -2
  132. package/internal/hardhat-network/provider/utils/fork-recomendations-banner.js.map +1 -1
  133. package/internal/hardhat-network/provider/utils/makeAccount.d.ts +1 -1
  134. package/internal/hardhat-network/provider/utils/makeAccount.d.ts.map +1 -1
  135. package/internal/hardhat-network/provider/utils/makeAccount.js +4 -4
  136. package/internal/hardhat-network/provider/utils/makeAccount.js.map +1 -1
  137. package/internal/hardhat-network/provider/utils/makeForkClient.js +2 -2
  138. package/internal/hardhat-network/provider/utils/makeForkClient.js.map +1 -1
  139. package/internal/hardhat-network/provider/utils/random.d.ts +4 -3
  140. package/internal/hardhat-network/provider/utils/random.d.ts.map +1 -1
  141. package/internal/hardhat-network/provider/utils/random.js +3 -3
  142. package/internal/hardhat-network/provider/utils/random.js.map +1 -1
  143. package/internal/hardhat-network/provider/vm/exit.d.ts +2 -21
  144. package/internal/hardhat-network/provider/vm/exit.d.ts.map +1 -1
  145. package/internal/hardhat-network/provider/vm/exit.js +3 -93
  146. package/internal/hardhat-network/provider/vm/exit.js.map +1 -1
  147. package/internal/hardhat-network/provider/vm/minimal-vm.d.ts +3 -2
  148. package/internal/hardhat-network/provider/vm/minimal-vm.d.ts.map +1 -1
  149. package/internal/hardhat-network/provider/vm/minimal-vm.js +10 -4
  150. package/internal/hardhat-network/provider/vm/minimal-vm.js.map +1 -1
  151. package/internal/hardhat-network/provider/vm/types.d.ts +2 -1
  152. package/internal/hardhat-network/provider/vm/types.d.ts.map +1 -1
  153. package/internal/hardhat-network/stack-traces/consoleLogger.d.ts +17 -16
  154. package/internal/hardhat-network/stack-traces/consoleLogger.d.ts.map +1 -1
  155. package/internal/hardhat-network/stack-traces/consoleLogger.js +68 -102
  156. package/internal/hardhat-network/stack-traces/consoleLogger.js.map +1 -1
  157. package/internal/hardhat-network/stack-traces/constants.d.ts +1 -2
  158. package/internal/hardhat-network/stack-traces/constants.d.ts.map +1 -1
  159. package/internal/hardhat-network/stack-traces/constants.js +2 -3
  160. package/internal/hardhat-network/stack-traces/constants.js.map +1 -1
  161. package/internal/hardhat-network/stack-traces/library-utils.d.ts +2 -11
  162. package/internal/hardhat-network/stack-traces/library-utils.d.ts.map +1 -1
  163. package/internal/hardhat-network/stack-traces/library-utils.js +3 -61
  164. package/internal/hardhat-network/stack-traces/library-utils.js.map +1 -1
  165. package/internal/hardhat-network/stack-traces/logger.d.ts +2 -598
  166. package/internal/hardhat-network/stack-traces/logger.d.ts.map +1 -1
  167. package/internal/hardhat-network/stack-traces/logger.js +379 -601
  168. package/internal/hardhat-network/stack-traces/logger.js.map +1 -1
  169. package/internal/hardhat-network/stack-traces/solidity-errors.d.ts.map +1 -1
  170. package/internal/hardhat-network/stack-traces/solidity-errors.js +61 -56
  171. package/internal/hardhat-network/stack-traces/solidity-errors.js.map +1 -1
  172. package/internal/hardhat-network/stack-traces/solidity-stack-trace.d.ts +4 -155
  173. package/internal/hardhat-network/stack-traces/solidity-stack-trace.d.ts.map +1 -1
  174. package/internal/hardhat-network/stack-traces/solidity-stack-trace.js +12 -37
  175. package/internal/hardhat-network/stack-traces/solidity-stack-trace.js.map +1 -1
  176. package/internal/lib/hardhat-lib.d.ts.map +1 -1
  177. package/internal/lib/hardhat-lib.js +1 -1
  178. package/internal/lib/hardhat-lib.js.map +1 -1
  179. package/internal/sentry/anonymizer.d.ts +1 -1
  180. package/internal/sentry/anonymizer.d.ts.map +1 -1
  181. package/internal/sentry/anonymizer.js +1 -1
  182. package/internal/sentry/anonymizer.js.map +1 -1
  183. package/internal/solidity/compiler/downloader.js +1 -1
  184. package/internal/solidity/compiler/downloader.js.map +1 -1
  185. package/internal/solidity/compiler/solc-info.d.ts.map +1 -1
  186. package/internal/solidity/compiler/solc-info.js +4 -0
  187. package/internal/solidity/compiler/solc-info.js.map +1 -1
  188. package/internal/util/caller-package.js +1 -1
  189. package/internal/util/caller-package.js.map +1 -1
  190. package/internal/util/glob.d.ts +1 -1
  191. package/internal/util/glob.d.ts.map +1 -1
  192. package/internal/util/glob.js +2 -7
  193. package/internal/util/glob.js.map +1 -1
  194. package/internal/util/hardforks.d.ts +2 -1
  195. package/internal/util/hardforks.d.ts.map +1 -1
  196. package/internal/util/hardforks.js +2 -0
  197. package/internal/util/hardforks.js.map +1 -1
  198. package/internal/util/hash.d.ts +1 -0
  199. package/internal/util/hash.d.ts.map +1 -1
  200. package/internal/util/keys-derivation.d.ts +1 -0
  201. package/internal/util/keys-derivation.d.ts.map +1 -1
  202. package/internal/util/packageInfo.d.ts +1 -1
  203. package/internal/util/packageInfo.d.ts.map +1 -1
  204. package/internal/util/packageInfo.js +3 -3
  205. package/internal/util/packageInfo.js.map +1 -1
  206. package/internal/util/request.d.ts +2 -0
  207. package/internal/util/request.d.ts.map +1 -0
  208. package/internal/util/request.js +70 -0
  209. package/internal/util/request.js.map +1 -0
  210. package/package.json +10 -20
  211. package/register.js +1 -1
  212. package/register.js.map +1 -1
  213. package/sample-projects/javascript/contracts/Lock.sol +1 -1
  214. package/sample-projects/javascript/hardhat.config.js +1 -1
  215. package/sample-projects/javascript/ignition/modules/Lock.js +3 -0
  216. package/sample-projects/javascript-esm/contracts/Lock.sol +1 -1
  217. package/sample-projects/javascript-esm/hardhat.config.cjs +1 -1
  218. package/sample-projects/javascript-esm/ignition/modules/Lock.js +3 -0
  219. package/sample-projects/typescript/contracts/Lock.sol +1 -1
  220. package/sample-projects/typescript/hardhat.config.ts +1 -1
  221. package/sample-projects/typescript/ignition/modules/Lock.ts +3 -0
  222. package/sample-projects/typescript-viem/contracts/Lock.sol +1 -1
  223. package/sample-projects/typescript-viem/hardhat.config.ts +1 -1
  224. package/sample-projects/typescript-viem/ignition/modules/Lock.ts +3 -0
  225. package/src/builtin-tasks/compile.ts +12 -8
  226. package/src/builtin-tasks/flatten.ts +59 -41
  227. package/src/builtin-tasks/node.ts +8 -8
  228. package/src/builtin-tasks/test.ts +2 -2
  229. package/src/builtin-tasks/utils/watch.ts +2 -2
  230. package/src/common/bigInt.ts +1 -1
  231. package/src/internal/cli/autocomplete.ts +1 -1
  232. package/src/internal/cli/banner-manager.ts +182 -0
  233. package/src/internal/cli/bootstrap.ts +5 -5
  234. package/src/internal/cli/cli.ts +24 -15
  235. package/src/internal/cli/constants.ts +1 -1
  236. package/src/internal/cli/is-node-version-to-warn-on.ts +54 -0
  237. package/src/internal/cli/project-creation.ts +48 -22
  238. package/src/internal/cli/vars.ts +10 -10
  239. package/src/internal/cli/version-notifier.ts +3 -3
  240. package/src/internal/constants.ts +1 -0
  241. package/src/internal/context.ts +0 -5
  242. package/src/internal/core/config/config-env.ts +0 -10
  243. package/src/internal/core/config/config-loading.ts +15 -8
  244. package/src/internal/core/config/config-validation.ts +1 -1
  245. package/src/internal/core/config/default-config.ts +57 -32
  246. package/src/internal/core/errors-list.ts +30 -1
  247. package/src/internal/core/jsonrpc/types/authorization-list.ts +20 -0
  248. package/src/internal/core/jsonrpc/types/base-types.ts +13 -1
  249. package/src/internal/core/jsonrpc/types/input/transactionRequest.ts +10 -0
  250. package/src/internal/core/jsonrpc/types/output/block.ts +2 -1
  251. package/src/internal/core/project-structure.ts +8 -8
  252. package/src/internal/core/providers/accounts.ts +95 -50
  253. package/src/internal/core/providers/construction.ts +1 -3
  254. package/src/internal/core/providers/http.ts +17 -0
  255. package/src/internal/core/providers/lazy-initialization.ts +13 -13
  256. package/src/internal/core/providers/util.ts +1 -1
  257. package/src/internal/core/runtime-environment.ts +0 -8
  258. package/src/internal/core/typescript-support.ts +1 -1
  259. package/src/internal/hardhat-network/jsonrpc/client.ts +1 -4
  260. package/src/internal/hardhat-network/jsonrpc/handler.ts +2 -1
  261. package/src/internal/hardhat-network/provider/node-types.ts +0 -70
  262. package/src/internal/hardhat-network/provider/output.ts +16 -1
  263. package/src/internal/hardhat-network/provider/provider.ts +57 -236
  264. package/src/internal/hardhat-network/provider/return-data.ts +5 -73
  265. package/src/internal/hardhat-network/provider/utils/convertToEdr.ts +6 -3
  266. package/src/internal/hardhat-network/provider/utils/fork-recomendations-banner.ts +2 -2
  267. package/src/internal/hardhat-network/provider/utils/makeAccount.ts +1 -6
  268. package/src/internal/hardhat-network/provider/utils/makeForkClient.ts +2 -2
  269. package/src/internal/hardhat-network/provider/utils/random.ts +4 -5
  270. package/src/internal/hardhat-network/provider/vm/exit.ts +4 -112
  271. package/src/internal/hardhat-network/provider/vm/minimal-vm.ts +8 -3
  272. package/src/internal/hardhat-network/provider/vm/types.ts +1 -1
  273. package/src/internal/hardhat-network/stack-traces/consoleLogger.ts +34 -95
  274. package/src/internal/hardhat-network/stack-traces/constants.ts +1 -2
  275. package/src/internal/hardhat-network/stack-traces/library-utils.ts +5 -90
  276. package/src/internal/hardhat-network/stack-traces/logger.ts +378 -600
  277. package/src/internal/hardhat-network/stack-traces/solidity-errors.ts +17 -16
  278. package/src/internal/hardhat-network/stack-traces/solidity-stack-trace.ts +83 -186
  279. package/src/internal/lib/hardhat-lib.ts +0 -1
  280. package/src/internal/sentry/anonymizer.ts +2 -2
  281. package/src/internal/solidity/compiler/downloader.ts +1 -1
  282. package/src/internal/solidity/compiler/solc-info.ts +4 -0
  283. package/src/internal/util/caller-package.ts +2 -2
  284. package/src/internal/util/glob.ts +6 -6
  285. package/src/internal/util/hardforks.ts +2 -0
  286. package/src/internal/util/packageInfo.ts +4 -4
  287. package/src/internal/util/request.ts +51 -0
  288. package/src/register.ts +0 -1
  289. package/src/types/config.ts +2 -0
  290. package/src/types/index.ts +0 -1
  291. package/types/config.d.ts +2 -0
  292. package/types/config.d.ts.map +1 -1
  293. package/types/index.d.ts +0 -1
  294. package/types/index.d.ts.map +1 -1
  295. package/types/index.js +0 -1
  296. package/types/index.js.map +1 -1
  297. package/internal/hardhat-network/provider/BlockchainBase.d.ts +0 -29
  298. package/internal/hardhat-network/provider/BlockchainBase.d.ts.map +0 -1
  299. package/internal/hardhat-network/provider/BlockchainBase.js +0 -144
  300. package/internal/hardhat-network/provider/BlockchainBase.js.map +0 -1
  301. package/internal/hardhat-network/provider/BlockchainData.d.ts +0 -58
  302. package/internal/hardhat-network/provider/BlockchainData.d.ts.map +0 -1
  303. package/internal/hardhat-network/provider/BlockchainData.js +0 -178
  304. package/internal/hardhat-network/provider/BlockchainData.js.map +0 -1
  305. package/internal/hardhat-network/provider/HardhatBlockchain.d.ts +0 -24
  306. package/internal/hardhat-network/provider/HardhatBlockchain.d.ts.map +0 -1
  307. package/internal/hardhat-network/provider/HardhatBlockchain.js +0 -73
  308. package/internal/hardhat-network/provider/HardhatBlockchain.js.map +0 -1
  309. package/internal/hardhat-network/provider/MiningTimer.d.ts +0 -28
  310. package/internal/hardhat-network/provider/MiningTimer.d.ts.map +0 -1
  311. package/internal/hardhat-network/provider/MiningTimer.js +0 -96
  312. package/internal/hardhat-network/provider/MiningTimer.js.map +0 -1
  313. package/internal/hardhat-network/provider/PoolState.d.ts +0 -26
  314. package/internal/hardhat-network/provider/PoolState.d.ts.map +0 -1
  315. package/internal/hardhat-network/provider/PoolState.js.map +0 -1
  316. package/internal/hardhat-network/provider/TransactionQueue.d.ts +0 -32
  317. package/internal/hardhat-network/provider/TransactionQueue.d.ts.map +0 -1
  318. package/internal/hardhat-network/provider/TransactionQueue.js +0 -130
  319. package/internal/hardhat-network/provider/TransactionQueue.js.map +0 -1
  320. package/internal/hardhat-network/provider/TxPool.d.ts +0 -83
  321. package/internal/hardhat-network/provider/TxPool.d.ts.map +0 -1
  322. package/internal/hardhat-network/provider/TxPool.js +0 -470
  323. package/internal/hardhat-network/provider/TxPool.js.map +0 -1
  324. package/internal/hardhat-network/provider/ethereumjs-workarounds.d.ts +0 -2
  325. package/internal/hardhat-network/provider/ethereumjs-workarounds.d.ts.map +0 -1
  326. package/internal/hardhat-network/provider/ethereumjs-workarounds.js +0 -15
  327. package/internal/hardhat-network/provider/ethereumjs-workarounds.js.map +0 -1
  328. package/internal/hardhat-network/provider/filter.d.ts +0 -29
  329. package/internal/hardhat-network/provider/filter.d.ts.map +0 -1
  330. package/internal/hardhat-network/provider/filter.js +0 -97
  331. package/internal/hardhat-network/provider/filter.js.map +0 -1
  332. package/internal/hardhat-network/provider/fork/ForkBlockchain.d.ts +0 -33
  333. package/internal/hardhat-network/provider/fork/ForkBlockchain.d.ts.map +0 -1
  334. package/internal/hardhat-network/provider/fork/ForkBlockchain.js +0 -272
  335. package/internal/hardhat-network/provider/fork/ForkBlockchain.js.map +0 -1
  336. package/internal/hardhat-network/provider/fork/ForkStateManager.d.ts +0 -51
  337. package/internal/hardhat-network/provider/fork/ForkStateManager.d.ts.map +0 -1
  338. package/internal/hardhat-network/provider/fork/ForkStateManager.js +0 -300
  339. package/internal/hardhat-network/provider/fork/ForkStateManager.js.map +0 -1
  340. package/internal/hardhat-network/provider/fork/rpcToBlockData.d.ts +0 -4
  341. package/internal/hardhat-network/provider/fork/rpcToBlockData.d.ts.map +0 -1
  342. package/internal/hardhat-network/provider/fork/rpcToBlockData.js +0 -32
  343. package/internal/hardhat-network/provider/fork/rpcToBlockData.js.map +0 -1
  344. package/internal/hardhat-network/provider/fork/rpcToTxData.d.ts +0 -10
  345. package/internal/hardhat-network/provider/fork/rpcToTxData.d.ts.map +0 -1
  346. package/internal/hardhat-network/provider/fork/rpcToTxData.js +0 -29
  347. package/internal/hardhat-network/provider/fork/rpcToTxData.js.map +0 -1
  348. package/internal/hardhat-network/provider/modules/base.d.ts +0 -17
  349. package/internal/hardhat-network/provider/modules/base.d.ts.map +0 -1
  350. package/internal/hardhat-network/provider/modules/base.js +0 -127
  351. package/internal/hardhat-network/provider/modules/base.js.map +0 -1
  352. package/internal/hardhat-network/provider/modules/debug.d.ts +0 -12
  353. package/internal/hardhat-network/provider/modules/debug.d.ts.map +0 -1
  354. package/internal/hardhat-network/provider/modules/debug.js +0 -52
  355. package/internal/hardhat-network/provider/modules/debug.js.map +0 -1
  356. package/internal/hardhat-network/provider/modules/eth.d.ts +0 -107
  357. package/internal/hardhat-network/provider/modules/eth.d.ts.map +0 -1
  358. package/internal/hardhat-network/provider/modules/eth.js +0 -1034
  359. package/internal/hardhat-network/provider/modules/eth.js.map +0 -1
  360. package/internal/hardhat-network/provider/modules/evm.d.ts +0 -32
  361. package/internal/hardhat-network/provider/modules/evm.d.ts.map +0 -1
  362. package/internal/hardhat-network/provider/modules/evm.js +0 -180
  363. package/internal/hardhat-network/provider/modules/evm.js.map +0 -1
  364. package/internal/hardhat-network/provider/modules/hardhat.d.ts +0 -54
  365. package/internal/hardhat-network/provider/modules/hardhat.d.ts.map +0 -1
  366. package/internal/hardhat-network/provider/modules/hardhat.js +0 -309
  367. package/internal/hardhat-network/provider/modules/hardhat.js.map +0 -1
  368. package/internal/hardhat-network/provider/modules/net.d.ts +0 -13
  369. package/internal/hardhat-network/provider/modules/net.d.ts.map +0 -1
  370. package/internal/hardhat-network/provider/modules/net.js +0 -47
  371. package/internal/hardhat-network/provider/modules/net.js.map +0 -1
  372. package/internal/hardhat-network/provider/modules/personal.d.ts +0 -9
  373. package/internal/hardhat-network/provider/modules/personal.d.ts.map +0 -1
  374. package/internal/hardhat-network/provider/modules/personal.js +0 -31
  375. package/internal/hardhat-network/provider/modules/personal.js.map +0 -1
  376. package/internal/hardhat-network/provider/modules/web3.d.ts +0 -11
  377. package/internal/hardhat-network/provider/modules/web3.d.ts.map +0 -1
  378. package/internal/hardhat-network/provider/modules/web3.js +0 -38
  379. package/internal/hardhat-network/provider/modules/web3.js.map +0 -1
  380. package/internal/hardhat-network/provider/node.d.ts +0 -197
  381. package/internal/hardhat-network/provider/node.d.ts.map +0 -1
  382. package/internal/hardhat-network/provider/node.js +0 -1866
  383. package/internal/hardhat-network/provider/node.js.map +0 -1
  384. package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.d.ts +0 -29
  385. package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.d.ts.map +0 -1
  386. package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.js +0 -137
  387. package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.js.map +0 -1
  388. package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.d.ts +0 -27
  389. package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.d.ts.map +0 -1
  390. package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.js +0 -137
  391. package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.js.map +0 -1
  392. package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.d.ts +0 -33
  393. package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.d.ts.map +0 -1
  394. package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.js +0 -141
  395. package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.js.map +0 -1
  396. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.d.ts +0 -30
  397. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.d.ts.map +0 -1
  398. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.js +0 -97
  399. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.js.map +0 -1
  400. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.d.ts +0 -30
  401. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.d.ts.map +0 -1
  402. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.js +0 -98
  403. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.js.map +0 -1
  404. package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.d.ts +0 -40
  405. package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.d.ts.map +0 -1
  406. package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.js +0 -91
  407. package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.js.map +0 -1
  408. package/internal/hardhat-network/provider/transactions/ReadOnlyValidUnknownTypeTransaction.d.ts +0 -32
  409. package/internal/hardhat-network/provider/transactions/ReadOnlyValidUnknownTypeTransaction.d.ts.map +0 -1
  410. package/internal/hardhat-network/provider/transactions/ReadOnlyValidUnknownTypeTransaction.js +0 -87
  411. package/internal/hardhat-network/provider/transactions/ReadOnlyValidUnknownTypeTransaction.js.map +0 -1
  412. package/internal/hardhat-network/provider/types/HardhatBlockchainInterface.d.ts +0 -17
  413. package/internal/hardhat-network/provider/types/HardhatBlockchainInterface.d.ts.map +0 -1
  414. package/internal/hardhat-network/provider/types/HardhatBlockchainInterface.js +0 -3
  415. package/internal/hardhat-network/provider/types/HardhatBlockchainInterface.js.map +0 -1
  416. package/internal/hardhat-network/provider/utils/makeCommon.d.ts +0 -4
  417. package/internal/hardhat-network/provider/utils/makeCommon.d.ts.map +0 -1
  418. package/internal/hardhat-network/provider/utils/makeCommon.js +0 -17
  419. package/internal/hardhat-network/provider/utils/makeCommon.js.map +0 -1
  420. package/internal/hardhat-network/provider/utils/makeFakeSignature.d.ts +0 -7
  421. package/internal/hardhat-network/provider/utils/makeFakeSignature.d.ts.map +0 -1
  422. package/internal/hardhat-network/provider/utils/makeFakeSignature.js +0 -31
  423. package/internal/hardhat-network/provider/utils/makeFakeSignature.js.map +0 -1
  424. package/internal/hardhat-network/provider/utils/makeStateTrie.d.ts +0 -4
  425. package/internal/hardhat-network/provider/utils/makeStateTrie.d.ts.map +0 -1
  426. package/internal/hardhat-network/provider/utils/makeStateTrie.js +0 -20
  427. package/internal/hardhat-network/provider/utils/makeStateTrie.js.map +0 -1
  428. package/internal/hardhat-network/provider/utils/putGenesisBlock.d.ts +0 -8
  429. package/internal/hardhat-network/provider/utils/putGenesisBlock.d.ts.map +0 -1
  430. package/internal/hardhat-network/provider/utils/putGenesisBlock.js +0 -37
  431. package/internal/hardhat-network/provider/utils/putGenesisBlock.js.map +0 -1
  432. package/internal/hardhat-network/provider/utils/reorganizeTransactionsLists.d.ts +0 -12
  433. package/internal/hardhat-network/provider/utils/reorganizeTransactionsLists.d.ts.map +0 -1
  434. package/internal/hardhat-network/provider/utils/reorganizeTransactionsLists.js +0 -62
  435. package/internal/hardhat-network/provider/utils/reorganizeTransactionsLists.js.map +0 -1
  436. package/internal/hardhat-network/provider/utils/txMapToArray.d.ts +0 -3
  437. package/internal/hardhat-network/provider/utils/txMapToArray.d.ts.map +0 -1
  438. package/internal/hardhat-network/provider/utils/txMapToArray.js +0 -12
  439. package/internal/hardhat-network/provider/utils/txMapToArray.js.map +0 -1
  440. package/internal/hardhat-network/stack-traces/compiler-to-model.d.ts +0 -4
  441. package/internal/hardhat-network/stack-traces/compiler-to-model.d.ts.map +0 -1
  442. package/internal/hardhat-network/stack-traces/compiler-to-model.js +0 -356
  443. package/internal/hardhat-network/stack-traces/compiler-to-model.js.map +0 -1
  444. package/internal/hardhat-network/stack-traces/contracts-identifier.d.ts +0 -15
  445. package/internal/hardhat-network/stack-traces/contracts-identifier.d.ts.map +0 -1
  446. package/internal/hardhat-network/stack-traces/contracts-identifier.js +0 -166
  447. package/internal/hardhat-network/stack-traces/contracts-identifier.js.map +0 -1
  448. package/internal/hardhat-network/stack-traces/debug.d.ts +0 -8
  449. package/internal/hardhat-network/stack-traces/debug.d.ts.map +0 -1
  450. package/internal/hardhat-network/stack-traces/debug.js +0 -148
  451. package/internal/hardhat-network/stack-traces/debug.js.map +0 -1
  452. package/internal/hardhat-network/stack-traces/error-inferrer.d.ts +0 -85
  453. package/internal/hardhat-network/stack-traces/error-inferrer.d.ts.map +0 -1
  454. package/internal/hardhat-network/stack-traces/error-inferrer.js +0 -1168
  455. package/internal/hardhat-network/stack-traces/error-inferrer.js.map +0 -1
  456. package/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.d.ts +0 -24
  457. package/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.d.ts.map +0 -1
  458. package/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.js +0 -116
  459. package/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.js.map +0 -1
  460. package/internal/hardhat-network/stack-traces/message-trace.d.ts +0 -55
  461. package/internal/hardhat-network/stack-traces/message-trace.d.ts.map +0 -1
  462. package/internal/hardhat-network/stack-traces/message-trace.js +0 -49
  463. package/internal/hardhat-network/stack-traces/message-trace.js.map +0 -1
  464. package/internal/hardhat-network/stack-traces/model.d.ts +0 -140
  465. package/internal/hardhat-network/stack-traces/model.d.ts.map +0 -1
  466. package/internal/hardhat-network/stack-traces/model.js +0 -328
  467. package/internal/hardhat-network/stack-traces/model.js.map +0 -1
  468. package/internal/hardhat-network/stack-traces/opcodes.d.ts +0 -266
  469. package/internal/hardhat-network/stack-traces/opcodes.d.ts.map +0 -1
  470. package/internal/hardhat-network/stack-traces/opcodes.js +0 -320
  471. package/internal/hardhat-network/stack-traces/opcodes.js.map +0 -1
  472. package/internal/hardhat-network/stack-traces/solidityTracer.d.ts +0 -14
  473. package/internal/hardhat-network/stack-traces/solidityTracer.d.ts.map +0 -1
  474. package/internal/hardhat-network/stack-traces/solidityTracer.js +0 -167
  475. package/internal/hardhat-network/stack-traces/solidityTracer.js.map +0 -1
  476. package/internal/hardhat-network/stack-traces/source-maps.d.ts +0 -13
  477. package/internal/hardhat-network/stack-traces/source-maps.d.ts.map +0 -1
  478. package/internal/hardhat-network/stack-traces/source-maps.js +0 -106
  479. package/internal/hardhat-network/stack-traces/source-maps.js.map +0 -1
  480. package/internal/hardhat-network/stack-traces/vm-debug-tracer.d.ts +0 -46
  481. package/internal/hardhat-network/stack-traces/vm-debug-tracer.d.ts.map +0 -1
  482. package/internal/hardhat-network/stack-traces/vm-debug-tracer.js +0 -421
  483. package/internal/hardhat-network/stack-traces/vm-debug-tracer.js.map +0 -1
  484. package/internal/hardhat-network/stack-traces/vm-trace-decoder.d.ts +0 -17
  485. package/internal/hardhat-network/stack-traces/vm-trace-decoder.d.ts.map +0 -1
  486. package/internal/hardhat-network/stack-traces/vm-trace-decoder.js +0 -91
  487. package/internal/hardhat-network/stack-traces/vm-trace-decoder.js.map +0 -1
  488. package/internal/hardhat-network/stack-traces/vm-tracer.d.ts +0 -19
  489. package/internal/hardhat-network/stack-traces/vm-tracer.d.ts.map +0 -1
  490. package/internal/hardhat-network/stack-traces/vm-tracer.js +0 -170
  491. package/internal/hardhat-network/stack-traces/vm-tracer.js.map +0 -1
  492. package/src/internal/hardhat-network/provider/MiningTimer.ts +0 -118
  493. package/src/internal/hardhat-network/provider/utils/makeCommon.ts +0 -20
  494. package/src/internal/hardhat-network/stack-traces/compiler-to-model.ts +0 -699
  495. package/src/internal/hardhat-network/stack-traces/contracts-identifier.ts +0 -235
  496. package/src/internal/hardhat-network/stack-traces/debug.ts +0 -220
  497. package/src/internal/hardhat-network/stack-traces/error-inferrer.ts +0 -1845
  498. package/src/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.ts +0 -163
  499. package/src/internal/hardhat-network/stack-traces/message-trace.ts +0 -131
  500. package/src/internal/hardhat-network/stack-traces/model.ts +0 -409
  501. package/src/internal/hardhat-network/stack-traces/opcodes.ts +0 -344
  502. package/src/internal/hardhat-network/stack-traces/solidityTracer.ts +0 -255
  503. package/src/internal/hardhat-network/stack-traces/source-maps.ts +0 -167
  504. package/src/internal/hardhat-network/stack-traces/vm-trace-decoder.ts +0 -135
  505. package/src/internal/hardhat-network/stack-traces/vm-tracer.ts +0 -221
  506. package/src/types/experimental.ts +0 -18
  507. package/types/experimental.d.ts +0 -5
  508. package/types/experimental.d.ts.map +0 -1
  509. package/types/experimental.js +0 -3
  510. package/types/experimental.js.map +0 -1
@@ -1,300 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ForkStateManager = void 0;
4
- const ethereumjs_util_1 = require("@nomicfoundation/ethereumjs-util");
5
- const immutable_1 = require("immutable");
6
- const errors_1 = require("../../../core/errors");
7
- const errors_2 = require("../../../core/providers/errors");
8
- const keccak_1 = require("../../../util/keccak");
9
- const makeAccount_1 = require("../utils/makeAccount");
10
- const random_1 = require("../utils/random");
11
- const AccountState_1 = require("./AccountState");
12
- const encodeStorageKey = (address, position) => {
13
- return `${address.toString("hex")}${(0, ethereumjs_util_1.unpadBuffer)(position).toString("hex")}`;
14
- };
15
- const checkpointedError = (method) => new Error(`${method} called when checkpointed`);
16
- const notCheckpointedError = (method) => new Error(`${method} called when not checkpointed`);
17
- const notSupportedError = (method) => new Error(`${method} is not supported when forking from remote network`);
18
- class ForkStateManager {
19
- constructor(_jsonRpcClient, _forkBlockNumber) {
20
- this._jsonRpcClient = _jsonRpcClient;
21
- this._forkBlockNumber = _forkBlockNumber;
22
- this._state = (0, immutable_1.Map)();
23
- this._initialStateRoot = (0, random_1.randomHash)();
24
- this._stateRoot = this._initialStateRoot;
25
- this._stateRootToState = new Map();
26
- this._originalStorageCache = new Map();
27
- this._stateCheckpoints = [];
28
- this._contextBlockNumber = this._forkBlockNumber;
29
- this._contextChanged = false;
30
- this._state = (0, immutable_1.Map)();
31
- this._stateRootToState.set(this._initialStateRoot, this._state);
32
- }
33
- async initializeGenesisAccounts(genesisAccounts) {
34
- const accounts = [];
35
- const noncesPromises = [];
36
- for (const ga of genesisAccounts) {
37
- const account = (0, makeAccount_1.makeAccount)(ga);
38
- accounts.push(account);
39
- const noncePromise = this._jsonRpcClient.getTransactionCount(account.address.toBuffer(), this._forkBlockNumber);
40
- noncesPromises.push(noncePromise);
41
- }
42
- const nonces = await Promise.all(noncesPromises);
43
- (0, errors_1.assertHardhatInvariant)(accounts.length === nonces.length, "Nonces and accounts should have the same length");
44
- for (const [index, { address, account }] of accounts.entries()) {
45
- const nonce = nonces[index];
46
- account.nonce = nonce;
47
- this._putAccount(address, account);
48
- }
49
- this._stateRootToState.set(this._initialStateRoot, this._state);
50
- }
51
- copy() {
52
- const fsm = new ForkStateManager(this._jsonRpcClient, this._forkBlockNumber);
53
- fsm._state = this._state;
54
- fsm._stateRoot = this._stateRoot;
55
- // because this map is append-only we don't need to copy it
56
- fsm._stateRootToState = this._stateRootToState;
57
- return fsm;
58
- }
59
- async getAccount(address) {
60
- const localAccount = this._state.get(address.toString());
61
- const localNonce = localAccount?.get("nonce");
62
- const localBalance = localAccount?.get("balance");
63
- const localCode = localAccount?.get("code");
64
- let nonce = localNonce !== undefined ? (0, ethereumjs_util_1.toBuffer)(localNonce) : undefined;
65
- let balance = localBalance !== undefined ? (0, ethereumjs_util_1.toBuffer)(localBalance) : undefined;
66
- let code = localCode !== undefined ? (0, ethereumjs_util_1.toBuffer)(localCode) : undefined;
67
- if (balance === undefined || nonce === undefined || code === undefined) {
68
- const accountData = await this._jsonRpcClient.getAccountData(address, this._contextBlockNumber);
69
- if (nonce === undefined) {
70
- nonce = accountData.transactionCount;
71
- }
72
- if (balance === undefined) {
73
- balance = accountData.balance;
74
- }
75
- if (code === undefined) {
76
- code = accountData.code;
77
- }
78
- }
79
- const codeHash = (0, keccak_1.keccak256)(code);
80
- // We ignore stateRoot since we found that it is not used anywhere of interest to us
81
- return ethereumjs_util_1.Account.fromAccountData({ nonce, balance, codeHash });
82
- }
83
- async putAccount(address, account) {
84
- this._putAccount(address, account);
85
- }
86
- touchAccount(_address) {
87
- // We don't do anything here. See cleanupTouchedAccounts for explanation
88
- }
89
- async putContractCode(address, value) {
90
- const hexAddress = address.toString();
91
- const account = (this._state.get(hexAddress) ?? (0, AccountState_1.makeAccountState)()).set("code", (0, ethereumjs_util_1.bufferToHex)(value));
92
- this._state = this._state.set(hexAddress, account);
93
- }
94
- async getContractCode(address) {
95
- const localCode = this._state.get(address.toString())?.get("code");
96
- if (localCode !== undefined) {
97
- return (0, ethereumjs_util_1.toBuffer)(localCode);
98
- }
99
- const accountData = await this._jsonRpcClient.getAccountData(address, this._contextBlockNumber);
100
- return accountData.code;
101
- }
102
- async getContractStorage(address, key) {
103
- if (key.length !== 32) {
104
- throw new Error("Storage key must be 32 bytes long");
105
- }
106
- const account = this._state.get(address.toString());
107
- const contractStorageCleared = account?.get("storageCleared") ?? false;
108
- const localValue = account?.get("storage").get((0, ethereumjs_util_1.bufferToHex)(key));
109
- if (localValue !== undefined) {
110
- return (0, ethereumjs_util_1.toBuffer)(localValue);
111
- }
112
- const slotCleared = localValue === null;
113
- if (contractStorageCleared || slotCleared) {
114
- return (0, ethereumjs_util_1.toBuffer)([]);
115
- }
116
- const remoteValue = await this._jsonRpcClient.getStorageAt(address, (0, ethereumjs_util_1.bufferToBigInt)(key), this._contextBlockNumber);
117
- return (0, ethereumjs_util_1.unpadBuffer)(remoteValue);
118
- }
119
- async putContractStorage(address, key, value) {
120
- if (key.length !== 32) {
121
- throw new Error("Storage key must be 32 bytes long");
122
- }
123
- if (value.length > 32) {
124
- throw new Error("Storage value cannot be longer than 32 bytes");
125
- }
126
- const unpaddedValue = (0, ethereumjs_util_1.unpadBuffer)(value);
127
- const hexAddress = address.toString();
128
- let account = this._state.get(hexAddress) ?? (0, AccountState_1.makeAccountState)();
129
- const currentStorage = account.get("storage");
130
- let newValue;
131
- if (unpaddedValue.length === 0) {
132
- // if the value is an empty array or only zeros, the storage is deleted
133
- newValue = null;
134
- }
135
- else {
136
- newValue = (0, ethereumjs_util_1.bufferToHex)(unpaddedValue);
137
- }
138
- const newStorage = currentStorage.set((0, ethereumjs_util_1.bufferToHex)(key), newValue);
139
- account = account.set("storage", newStorage);
140
- this._state = this._state.set(hexAddress, account);
141
- }
142
- async clearContractStorage(address) {
143
- const hexAddress = address.toString();
144
- let account = this._state.get(hexAddress) ?? (0, AccountState_1.makeAccountState)();
145
- account = account
146
- .set("storageCleared", true)
147
- .set("storage", (0, immutable_1.Map)());
148
- this._state = this._state.set(hexAddress, account);
149
- }
150
- async checkpoint() {
151
- const stateRoot = await this.getStateRoot();
152
- this._stateCheckpoints.push((0, ethereumjs_util_1.bufferToHex)(stateRoot));
153
- }
154
- async commit() {
155
- if (this._stateCheckpoints.length === 0) {
156
- throw notCheckpointedError("commit");
157
- }
158
- this._stateCheckpoints.pop();
159
- }
160
- async revert() {
161
- const checkpointedRoot = this._stateCheckpoints.pop();
162
- if (checkpointedRoot === undefined) {
163
- throw notCheckpointedError("revert");
164
- }
165
- await this.setStateRoot((0, ethereumjs_util_1.toBuffer)(checkpointedRoot));
166
- }
167
- async getStateRoot() {
168
- if (this._stateRootToState.get(this._stateRoot) !== this._state) {
169
- this._stateRoot = (0, random_1.randomHash)();
170
- this._stateRootToState.set(this._stateRoot, this._state);
171
- }
172
- return (0, ethereumjs_util_1.toBuffer)(this._stateRoot);
173
- }
174
- async setStateRoot(stateRoot) {
175
- this._setStateRoot(stateRoot);
176
- }
177
- async dumpStorage(_address) {
178
- throw notSupportedError("dumpStorage");
179
- }
180
- async hasGenesisState() {
181
- throw notSupportedError("hasGenesisState");
182
- }
183
- async generateCanonicalGenesis() {
184
- throw notSupportedError("generateCanonicalGenesis");
185
- }
186
- async generateGenesis(_initState) {
187
- throw notSupportedError("generateGenesis");
188
- }
189
- async accountIsEmpty(address) {
190
- const account = await this.getAccount(address);
191
- // From https://eips.ethereum.org/EIPS/eip-161
192
- // An account is considered empty when it has no code and zero nonce and zero balance.
193
- return (account.nonce === 0n &&
194
- account.balance === 0n &&
195
- account.codeHash.equals(ethereumjs_util_1.KECCAK256_NULL));
196
- }
197
- async cleanupTouchedAccounts() {
198
- // We do not do anything here, because cleaning accounts only affects the
199
- // stateRoot. Since the stateRoot is fake anyway there is no need to
200
- // perform this operation.
201
- }
202
- setBlockContext(stateRoot, blockNumber, irregularState) {
203
- if (this._stateCheckpoints.length !== 0) {
204
- throw checkpointedError("setBlockContext");
205
- }
206
- if (irregularState !== undefined) {
207
- this._setStateRoot(irregularState);
208
- return;
209
- }
210
- if (blockNumber === this._forkBlockNumber) {
211
- this._setStateRoot((0, ethereumjs_util_1.toBuffer)(this._initialStateRoot));
212
- return;
213
- }
214
- if (blockNumber > this._forkBlockNumber) {
215
- this._setStateRoot(stateRoot);
216
- return;
217
- }
218
- this._contextChanged = true;
219
- this._state = (0, immutable_1.Map)();
220
- this._stateRoot = (0, ethereumjs_util_1.bufferToHex)(stateRoot);
221
- this._stateRootToState.set(this._stateRoot, this._state);
222
- this._contextBlockNumber = blockNumber;
223
- // Note that we don't need to clear the original storage cache here
224
- // because the VM does it before executing a message anyway.
225
- }
226
- restoreForkBlockContext(stateRoot) {
227
- if (this._stateCheckpoints.length !== 0) {
228
- throw checkpointedError("restoreForkBlockContext");
229
- }
230
- this._setStateRoot(stateRoot);
231
- if (this._contextChanged) {
232
- this._contextChanged = false;
233
- this._contextBlockNumber = this._forkBlockNumber;
234
- }
235
- }
236
- accountExists(_address) {
237
- throw new errors_2.InternalError("Hardhat Network can't fork from networks running a hardfork older than Spurious Dragon");
238
- }
239
- async deleteAccount(address) {
240
- // we set an empty account instead of deleting it to avoid
241
- // re-fetching the state from the remote node.
242
- // This is only valid post spurious dragon, but we don't support older hardforks when forking.
243
- const emptyAccount = (0, AccountState_1.makeEmptyAccountState)();
244
- this._state = this._state.set(address.toString(), emptyAccount);
245
- }
246
- clearOriginalStorageCache() {
247
- this._originalStorageCache = new Map();
248
- }
249
- async getOriginalContractStorage(address, key) {
250
- const storageKey = encodeStorageKey(address.toBuffer(), key);
251
- const cachedValue = this._originalStorageCache.get(storageKey);
252
- if (cachedValue !== undefined) {
253
- return cachedValue;
254
- }
255
- const value = await this.getContractStorage(address, key);
256
- this._originalStorageCache.set(storageKey, value);
257
- return value;
258
- }
259
- _putAccount(address, account) {
260
- // Because the vm only ever modifies the nonce, balance and codeHash using this
261
- // method we ignore the stateRoot property
262
- const hexAddress = address.toString();
263
- let localAccount = this._state.get(hexAddress) ?? (0, AccountState_1.makeAccountState)();
264
- localAccount = localAccount
265
- .set("nonce", (0, ethereumjs_util_1.bigIntToHex)(account.nonce))
266
- .set("balance", (0, ethereumjs_util_1.bigIntToHex)(account.balance));
267
- // Code is set to empty string here to prevent unnecessary
268
- // JsonRpcClient.getCode calls in getAccount method
269
- if (account.codeHash.equals(ethereumjs_util_1.KECCAK256_NULL)) {
270
- localAccount = localAccount.set("code", "0x");
271
- }
272
- this._state = this._state.set(hexAddress, localAccount);
273
- }
274
- _setStateRoot(stateRoot) {
275
- const newRoot = (0, ethereumjs_util_1.bufferToHex)(stateRoot);
276
- const state = this._stateRootToState.get(newRoot);
277
- if (state === undefined) {
278
- throw new Error("Unknown state root");
279
- }
280
- this._stateRoot = newRoot;
281
- this._state = state;
282
- }
283
- async hasStateRoot(root) {
284
- return this._state.has((0, ethereumjs_util_1.bufferToHex)(root));
285
- }
286
- async flush() {
287
- // not implemented
288
- }
289
- async modifyAccountFields(address, accountFields) {
290
- // copied from BaseStateManager
291
- const account = await this.getAccount(address);
292
- account.nonce = accountFields.nonce ?? account.nonce;
293
- account.balance = accountFields.balance ?? account.balance;
294
- account.storageRoot = accountFields.storageRoot ?? account.storageRoot;
295
- account.codeHash = accountFields.codeHash ?? account.codeHash;
296
- await this.putAccount(address, account);
297
- }
298
- }
299
- exports.ForkStateManager = ForkStateManager;
300
- //# sourceMappingURL=ForkStateManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ForkStateManager.js","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/fork/ForkStateManager.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- import { BlockData } from "@nomicfoundation/ethereumjs-block";
2
- import { RpcBlockWithTransactions } from "../../../core/jsonrpc/types/output/block";
3
- export declare function rpcToBlockData(rpcBlock: RpcBlockWithTransactions): BlockData;
4
- //# sourceMappingURL=rpcToBlockData.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rpcToBlockData.d.ts","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/fork/rpcToBlockData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAE9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AAIpF,wBAAgB,cAAc,CAAC,QAAQ,EAAE,wBAAwB,GAAG,SAAS,CAyB5E"}
@@ -1,32 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.rpcToBlockData = void 0;
4
- const rpcToTxData_1 = require("./rpcToTxData");
5
- function rpcToBlockData(rpcBlock) {
6
- return {
7
- header: {
8
- parentHash: rpcBlock.parentHash,
9
- uncleHash: rpcBlock.sha3Uncles,
10
- coinbase: rpcBlock.miner,
11
- stateRoot: rpcBlock.stateRoot,
12
- transactionsTrie: rpcBlock.transactionsRoot,
13
- receiptTrie: rpcBlock.receiptsRoot,
14
- logsBloom: rpcBlock.logsBloom,
15
- difficulty: rpcBlock.difficulty,
16
- number: rpcBlock.number ?? undefined,
17
- gasLimit: rpcBlock.gasLimit,
18
- gasUsed: rpcBlock.gasUsed,
19
- timestamp: rpcBlock.timestamp,
20
- extraData: rpcBlock.extraData,
21
- mixHash: rpcBlock.mixHash,
22
- nonce: rpcBlock.nonce,
23
- baseFeePerGas: rpcBlock.baseFeePerGas,
24
- withdrawalsRoot: rpcBlock.withdrawalsRoot,
25
- },
26
- transactions: rpcBlock.transactions.map(rpcToTxData_1.rpcToTxData),
27
- withdrawals: rpcBlock.withdrawals,
28
- // uncleHeaders are not fetched and set here as provider methods for getting them are not supported
29
- };
30
- }
31
- exports.rpcToBlockData = rpcToBlockData;
32
- //# sourceMappingURL=rpcToBlockData.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rpcToBlockData.js","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/fork/rpcToBlockData.ts"],"names":[],"mappings":";;;AAIA,+CAA4C;AAE5C,SAAgB,cAAc,CAAC,QAAkC;IAC/D,OAAO;QACL,MAAM,EAAE;YACN,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,SAAS,EAAE,QAAQ,CAAC,UAAU;YAC9B,QAAQ,EAAE,QAAQ,CAAC,KAAK;YACxB,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;YAC3C,WAAW,EAAE,QAAQ,CAAC,YAAY;YAClC,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,MAAM,EAAE,QAAQ,CAAC,MAAM,IAAI,SAAS;YACpC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,aAAa,EAAE,QAAQ,CAAC,aAAa;YACrC,eAAe,EAAE,QAAQ,CAAC,eAAe;SAC1C;QACD,YAAY,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,yBAAW,CAAC;QACpD,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,mGAAmG;KACpG,CAAC;AACJ,CAAC;AAzBD,wCAyBC"}
@@ -1,10 +0,0 @@
1
- import type { BigIntLike } from "@nomicfoundation/ethereumjs-util";
2
- import { AccessListEIP2930TxData, TxData } from "@nomicfoundation/ethereumjs-tx";
3
- import { RpcTransaction } from "../../../core/jsonrpc/types/output/transaction";
4
- interface FeeMarketEIP1559TxData extends AccessListEIP2930TxData {
5
- maxPriorityFeePerGas?: BigIntLike;
6
- maxFeePerGas?: BigIntLike;
7
- }
8
- export declare function rpcToTxData(rpcTransaction: RpcTransaction): TxData | AccessListEIP2930TxData | FeeMarketEIP1559TxData;
9
- export {};
10
- //# sourceMappingURL=rpcToTxData.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rpcToTxData.d.ts","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/fork/rpcToTxData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAEnE,OAAO,EACL,uBAAuB,EACvB,MAAM,EACP,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAC;AAKhF,UAAU,sBAAuB,SAAQ,uBAAuB;IAC9D,oBAAoB,CAAC,EAAE,UAAU,CAAC;IAClC,YAAY,CAAC,EAAE,UAAU,CAAC;CAC3B;AAED,wBAAgB,WAAW,CACzB,cAAc,EAAE,cAAc,GAC7B,MAAM,GAAG,uBAAuB,GAAG,sBAAsB,CAwB3D"}
@@ -1,29 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.rpcToTxData = void 0;
4
- function rpcToTxData(rpcTransaction) {
5
- const isEip1559 = rpcTransaction.type === 2n;
6
- return {
7
- gasLimit: rpcTransaction.gas,
8
- // NOTE: RPC EIP-1559 txs still have this field for backwards compatibility,
9
- // but FeeMarketEIP1559TxData doesn't.
10
- gasPrice: isEip1559 ? undefined : rpcTransaction.gasPrice,
11
- to: rpcTransaction.to ?? undefined,
12
- nonce: rpcTransaction.nonce,
13
- data: rpcTransaction.input,
14
- v: rpcTransaction.v,
15
- r: rpcTransaction.r,
16
- s: rpcTransaction.s,
17
- value: rpcTransaction.value,
18
- type: rpcTransaction.type,
19
- chainId: rpcTransaction.chainId ?? undefined,
20
- maxFeePerGas: rpcTransaction.maxFeePerGas,
21
- maxPriorityFeePerGas: rpcTransaction.maxPriorityFeePerGas,
22
- accessList: rpcTransaction.accessList?.map((item) => [
23
- item.address,
24
- item.storageKeys ?? [],
25
- ]),
26
- };
27
- }
28
- exports.rpcToTxData = rpcToTxData;
29
- //# sourceMappingURL=rpcToTxData.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rpcToTxData.js","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/fork/rpcToTxData.ts"],"names":[],"mappings":";;;AAiBA,SAAgB,WAAW,CACzB,cAA8B;IAE9B,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,KAAK,EAAE,CAAC;IAE7C,OAAO;QACL,QAAQ,EAAE,cAAc,CAAC,GAAG;QAC5B,4EAA4E;QAC5E,uCAAuC;QACvC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ;QACzD,EAAE,EAAE,cAAc,CAAC,EAAE,IAAI,SAAS;QAClC,KAAK,EAAE,cAAc,CAAC,KAAK;QAC3B,IAAI,EAAE,cAAc,CAAC,KAAK;QAC1B,CAAC,EAAE,cAAc,CAAC,CAAC;QACnB,CAAC,EAAE,cAAc,CAAC,CAAC;QACnB,CAAC,EAAE,cAAc,CAAC,CAAC;QACnB,KAAK,EAAE,cAAc,CAAC,KAAK;QAC3B,IAAI,EAAE,cAAc,CAAC,IAAI;QACzB,OAAO,EAAE,cAAc,CAAC,OAAO,IAAI,SAAS;QAC5C,YAAY,EAAE,cAAc,CAAC,YAAY;QACzC,oBAAoB,EAAE,cAAc,CAAC,oBAAoB;QACzD,UAAU,EAAE,cAAc,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YACnD,IAAI,CAAC,OAAO;YACZ,IAAI,CAAC,WAAW,IAAI,EAAE;SACvB,CAAC;KACH,CAAC;AACJ,CAAC;AA1BD,kCA0BC"}
@@ -1,17 +0,0 @@
1
- /// <reference types="node" />
2
- import { OptionalRpcNewBlockTag, RpcNewBlockTag } from "../../../core/jsonrpc/types/input/blockTag";
3
- import { HardhatNode } from "../node";
4
- import { RpcCallRequest } from "../../../core/jsonrpc/types/input/callRequest";
5
- import { CallParams } from "../node-types";
6
- import { RpcAccessList } from "../../../core/jsonrpc/types/access-list";
7
- export declare class Base {
8
- protected readonly _node: HardhatNode;
9
- constructor(_node: HardhatNode);
10
- resolveNewBlockTag(newBlockTag: OptionalRpcNewBlockTag, defaultValue?: RpcNewBlockTag): Promise<bigint | "pending">;
11
- rpcCallRequestToNodeCallParams(rpcCall: RpcCallRequest): Promise<CallParams>;
12
- protected _rpcAccessListToNodeAccessList(rpcAccessList: RpcAccessList): Array<[Buffer, Buffer[]]>;
13
- protected _checkPostMergeBlockTags(blockTag: "safe" | "finalized"): void;
14
- protected _newBlockTagToString(tag: RpcNewBlockTag): string;
15
- private _getDefaultCallFrom;
16
- }
17
- //# sourceMappingURL=base.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/modules/base.ts"],"names":[],"mappings":";AAMA,OAAO,EACL,sBAAsB,EACtB,cAAc,EACf,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAMtC,OAAO,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAC/E,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAIxE,qBAAa,IAAI;IACH,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW;gBAAlB,KAAK,EAAE,WAAW;IAEpC,kBAAkB,CAC7B,WAAW,EAAE,sBAAsB,EACnC,YAAY,GAAE,cAAyB,GACtC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IA2DjB,8BAA8B,CACzC,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,UAAU,CAAC;IAqBtB,SAAS,CAAC,8BAA8B,CACtC,aAAa,EAAE,aAAa,GAC3B,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAO5B,SAAS,CAAC,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW;IAWjE,SAAS,CAAC,oBAAoB,CAAC,GAAG,EAAE,cAAc,GAAG,MAAM;YAgB7C,mBAAmB;CASlC"}
@@ -1,127 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.Base = void 0;
27
- const ethereumjs_util_1 = require("@nomicfoundation/ethereumjs-util");
28
- const BigIntUtils = __importStar(require("../../../util/bigint"));
29
- const errors_1 = require("../../../core/providers/errors");
30
- /* eslint-disable @nomicfoundation/hardhat-internal-rules/only-hardhat-error */
31
- class Base {
32
- constructor(_node) {
33
- this._node = _node;
34
- }
35
- async resolveNewBlockTag(newBlockTag, defaultValue = "latest") {
36
- if (newBlockTag === undefined) {
37
- newBlockTag = defaultValue;
38
- }
39
- if (newBlockTag === "pending") {
40
- return "pending";
41
- }
42
- if (newBlockTag === "latest") {
43
- return this._node.getLatestBlockNumber();
44
- }
45
- if (newBlockTag === "earliest") {
46
- return 0n;
47
- }
48
- if (newBlockTag === "safe" || newBlockTag === "finalized") {
49
- this._checkPostMergeBlockTags(newBlockTag);
50
- return this._node.getLatestBlockNumber();
51
- }
52
- if (!BigIntUtils.isBigInt(newBlockTag)) {
53
- if ("blockNumber" in newBlockTag && "blockHash" in newBlockTag) {
54
- throw new errors_1.InvalidArgumentsError("Invalid block tag received. Only one of hash or block number can be used.");
55
- }
56
- if ("blockNumber" in newBlockTag && "requireCanonical" in newBlockTag) {
57
- throw new errors_1.InvalidArgumentsError("Invalid block tag received. requireCanonical only works with hashes.");
58
- }
59
- }
60
- let block;
61
- if (BigIntUtils.isBigInt(newBlockTag)) {
62
- block = await this._node.getBlockByNumber(newBlockTag);
63
- }
64
- else if ("blockNumber" in newBlockTag) {
65
- block = await this._node.getBlockByNumber(newBlockTag.blockNumber);
66
- }
67
- else {
68
- block = await this._node.getBlockByHash(newBlockTag.blockHash);
69
- }
70
- if (block === undefined) {
71
- const latestBlock = this._node.getLatestBlockNumber();
72
- throw new errors_1.InvalidInputError(`Received invalid block tag ${this._newBlockTagToString(newBlockTag)}. Latest block number is ${latestBlock.toString()}`);
73
- }
74
- return block.header.number;
75
- }
76
- async rpcCallRequestToNodeCallParams(rpcCall) {
77
- return {
78
- to: rpcCall.to,
79
- from: rpcCall.from !== undefined
80
- ? rpcCall.from
81
- : await this._getDefaultCallFrom(),
82
- data: rpcCall.data !== undefined ? rpcCall.data : (0, ethereumjs_util_1.toBuffer)([]),
83
- gasLimit: rpcCall.gas !== undefined ? rpcCall.gas : this._node.getBlockGasLimit(),
84
- value: rpcCall.value !== undefined ? rpcCall.value : 0n,
85
- accessList: rpcCall.accessList !== undefined
86
- ? this._rpcAccessListToNodeAccessList(rpcCall.accessList)
87
- : undefined,
88
- gasPrice: rpcCall.gasPrice,
89
- maxFeePerGas: rpcCall.maxFeePerGas,
90
- maxPriorityFeePerGas: rpcCall.maxPriorityFeePerGas,
91
- };
92
- }
93
- _rpcAccessListToNodeAccessList(rpcAccessList) {
94
- return rpcAccessList.map((tuple) => [
95
- tuple.address,
96
- tuple.storageKeys ?? [],
97
- ]);
98
- }
99
- _checkPostMergeBlockTags(blockTag) {
100
- const isPostMerge = this._node.isPostMergeHardfork();
101
- const hardfork = this._node.hardfork;
102
- if (!isPostMerge) {
103
- throw new errors_1.InvalidArgumentsError(`The '${blockTag}' block tag is not allowed in pre-merge hardforks. You are using the '${hardfork}' hardfork.`);
104
- }
105
- }
106
- _newBlockTagToString(tag) {
107
- if (typeof tag === "string") {
108
- return tag;
109
- }
110
- if (BigIntUtils.isBigInt(tag)) {
111
- return tag.toString();
112
- }
113
- if ("blockNumber" in tag) {
114
- return tag.blockNumber.toString();
115
- }
116
- return (0, ethereumjs_util_1.bufferToHex)(tag.blockHash);
117
- }
118
- async _getDefaultCallFrom() {
119
- const localAccounts = await this._node.getLocalAccountAddresses();
120
- if (localAccounts.length === 0) {
121
- return (0, ethereumjs_util_1.toBuffer)((0, ethereumjs_util_1.zeroAddress)());
122
- }
123
- return (0, ethereumjs_util_1.toBuffer)(localAccounts[0]);
124
- }
125
- }
126
- exports.Base = Base;
127
- //# sourceMappingURL=base.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/modules/base.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- import { HardhatNode } from "../node";
2
- import { Base } from "./base";
3
- export declare class DebugModule extends Base {
4
- constructor(_node: HardhatNode);
5
- processRequest(method: string, params?: any[]): Promise<any>;
6
- private _traceCallParams;
7
- private _traceCallAction;
8
- private _traceTransactionParams;
9
- private _traceTransactionAction;
10
- private _validateTracerParam;
11
- }
12
- //# sourceMappingURL=debug.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/modules/debug.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAI9B,qBAAa,WAAY,SAAQ,IAAI;gBACvB,KAAK,EAAE,WAAW;IAIjB,cAAc,CACzB,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,GAAG,EAAO,GACjB,OAAO,CAAC,GAAG,CAAC;IAef,OAAO,CAAC,gBAAgB;YAeV,gBAAgB;IAa9B,OAAO,CAAC,uBAAuB;YAcjB,uBAAuB;IAOrC,OAAO,CAAC,oBAAoB;CAO7B"}
@@ -1,52 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DebugModule = void 0;
4
- const base_types_1 = require("../../../core/jsonrpc/types/base-types");
5
- const blockTag_1 = require("../../../core/jsonrpc/types/input/blockTag");
6
- const callRequest_1 = require("../../../core/jsonrpc/types/input/callRequest");
7
- const debugTraceTransaction_1 = require("../../../core/jsonrpc/types/input/debugTraceTransaction");
8
- const validation_1 = require("../../../core/jsonrpc/types/input/validation");
9
- const errors_1 = require("../../../core/providers/errors");
10
- const base_1 = require("./base");
11
- /* eslint-disable @nomicfoundation/hardhat-internal-rules/only-hardhat-error */
12
- class DebugModule extends base_1.Base {
13
- constructor(_node) {
14
- super(_node);
15
- }
16
- async processRequest(method, params = []) {
17
- switch (method) {
18
- case "debug_traceCall":
19
- return this._traceCallAction(...this._traceCallParams(params));
20
- case "debug_traceTransaction":
21
- return this._traceTransactionAction(...this._traceTransactionParams(params));
22
- }
23
- throw new errors_1.MethodNotFoundError(`Method ${method} not found`);
24
- }
25
- // debug_traceCall
26
- _traceCallParams(params) {
27
- const validatedParams = (0, validation_1.validateParams)(params, callRequest_1.rpcCallRequest, blockTag_1.optionalRpcNewBlockTag, debugTraceTransaction_1.rpcDebugTracingConfig);
28
- this._validateTracerParam(validatedParams[2]);
29
- return validatedParams;
30
- }
31
- async _traceCallAction(callConfig, block, traceConfig) {
32
- const callParams = await this.rpcCallRequestToNodeCallParams(callConfig);
33
- const blockNumber = await this.resolveNewBlockTag(block);
34
- return this._node.traceCall(callParams, blockNumber, traceConfig);
35
- }
36
- // debug_traceTransaction
37
- _traceTransactionParams(params) {
38
- const validatedParams = (0, validation_1.validateParams)(params, base_types_1.rpcHash, debugTraceTransaction_1.rpcDebugTracingConfig);
39
- this._validateTracerParam(validatedParams[1]);
40
- return validatedParams;
41
- }
42
- async _traceTransactionAction(hash, config) {
43
- return this._node.traceTransaction(hash, config);
44
- }
45
- _validateTracerParam(config) {
46
- if (config?.tracer !== undefined) {
47
- throw new errors_1.InvalidArgumentsError("Hardhat currently only supports the default tracer, so no tracer parameter should be passed.");
48
- }
49
- }
50
- }
51
- exports.DebugModule = DebugModule;
52
- //# sourceMappingURL=debug.js.map