hardhatjs 2.22.15

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 (935) hide show
  1. package/.eslintrc.js +41 -0
  2. package/LICENSE +55 -0
  3. package/README.md +53 -0
  4. package/builtin-tasks/check.d.ts +2 -0
  5. package/builtin-tasks/check.d.ts.map +1 -0
  6. package/builtin-tasks/check.js +6 -0
  7. package/builtin-tasks/check.js.map +1 -0
  8. package/builtin-tasks/clean.d.ts +2 -0
  9. package/builtin-tasks/clean.d.ts.map +1 -0
  10. package/builtin-tasks/clean.js +24 -0
  11. package/builtin-tasks/clean.js.map +1 -0
  12. package/builtin-tasks/compile.d.ts +2 -0
  13. package/builtin-tasks/compile.d.ts.map +1 -0
  14. package/builtin-tasks/compile.js +952 -0
  15. package/builtin-tasks/compile.js.map +1 -0
  16. package/builtin-tasks/console.d.ts +2 -0
  17. package/builtin-tasks/console.d.ts.map +1 -0
  18. package/builtin-tasks/console.js +55 -0
  19. package/builtin-tasks/console.js.map +1 -0
  20. package/builtin-tasks/flatten.d.ts +2 -0
  21. package/builtin-tasks/flatten.d.ts.map +1 -0
  22. package/builtin-tasks/flatten.js +210 -0
  23. package/builtin-tasks/flatten.js.map +1 -0
  24. package/builtin-tasks/help.d.ts +2 -0
  25. package/builtin-tasks/help.d.ts.map +1 -0
  26. package/builtin-tasks/help.js +49 -0
  27. package/builtin-tasks/help.js.map +1 -0
  28. package/builtin-tasks/node.d.ts +2 -0
  29. package/builtin-tasks/node.d.ts.map +1 -0
  30. package/builtin-tasks/node.js +212 -0
  31. package/builtin-tasks/node.js.map +1 -0
  32. package/builtin-tasks/run.d.ts +2 -0
  33. package/builtin-tasks/run.d.ts.map +1 -0
  34. package/builtin-tasks/run.js +41 -0
  35. package/builtin-tasks/run.js.map +1 -0
  36. package/builtin-tasks/task-names.d.ts +55 -0
  37. package/builtin-tasks/task-names.d.ts.map +1 -0
  38. package/builtin-tasks/task-names.js +59 -0
  39. package/builtin-tasks/task-names.js.map +1 -0
  40. package/builtin-tasks/test.d.ts +2 -0
  41. package/builtin-tasks/test.d.ts.map +1 -0
  42. package/builtin-tasks/test.js +142 -0
  43. package/builtin-tasks/test.js.map +1 -0
  44. package/builtin-tasks/utils/solidity-files-cache.d.ts +29 -0
  45. package/builtin-tasks/utils/solidity-files-cache.d.ts.map +1 -0
  46. package/builtin-tasks/utils/solidity-files-cache.js +126 -0
  47. package/builtin-tasks/utils/solidity-files-cache.js.map +1 -0
  48. package/builtin-tasks/utils/watch.d.ts +5 -0
  49. package/builtin-tasks/utils/watch.d.ts.map +1 -0
  50. package/builtin-tasks/utils/watch.js +71 -0
  51. package/builtin-tasks/utils/watch.js.map +1 -0
  52. package/builtin-tasks/vars.d.ts +2 -0
  53. package/builtin-tasks/vars.d.ts.map +1 -0
  54. package/builtin-tasks/vars.js +41 -0
  55. package/builtin-tasks/vars.js.map +1 -0
  56. package/common/bigInt.d.ts +7 -0
  57. package/common/bigInt.d.ts.map +1 -0
  58. package/common/bigInt.js +93 -0
  59. package/common/bigInt.js.map +1 -0
  60. package/common/index.d.ts +3 -0
  61. package/common/index.d.ts.map +1 -0
  62. package/common/index.js +21 -0
  63. package/common/index.js.map +1 -0
  64. package/common/napi-rs.d.ts +2 -0
  65. package/common/napi-rs.d.ts.map +1 -0
  66. package/common/napi-rs.js +19 -0
  67. package/common/napi-rs.js.map +1 -0
  68. package/config.d.ts +3 -0
  69. package/config.d.ts.map +1 -0
  70. package/config.js +18 -0
  71. package/config.js.map +1 -0
  72. package/console.sol +1552 -0
  73. package/internal/artifacts.d.ts +151 -0
  74. package/internal/artifacts.d.ts.map +1 -0
  75. package/internal/artifacts.js +681 -0
  76. package/internal/artifacts.js.map +1 -0
  77. package/internal/cli/ArgumentsParser.d.ts +25 -0
  78. package/internal/cli/ArgumentsParser.d.ts.map +1 -0
  79. package/internal/cli/ArgumentsParser.js +242 -0
  80. package/internal/cli/ArgumentsParser.js.map +1 -0
  81. package/internal/cli/HelpPrinter.d.ts +21 -0
  82. package/internal/cli/HelpPrinter.d.ts.map +1 -0
  83. package/internal/cli/HelpPrinter.js +167 -0
  84. package/internal/cli/HelpPrinter.js.map +1 -0
  85. package/internal/cli/analytics.d.ts +29 -0
  86. package/internal/cli/analytics.d.ts.map +1 -0
  87. package/internal/cli/analytics.js +188 -0
  88. package/internal/cli/analytics.js.map +1 -0
  89. package/internal/cli/autocomplete.d.ts +13 -0
  90. package/internal/cli/autocomplete.d.ts.map +1 -0
  91. package/internal/cli/autocomplete.js +291 -0
  92. package/internal/cli/autocomplete.js.map +1 -0
  93. package/internal/cli/bootstrap.d.ts +3 -0
  94. package/internal/cli/bootstrap.d.ts.map +1 -0
  95. package/internal/cli/bootstrap.js +15 -0
  96. package/internal/cli/bootstrap.js.map +1 -0
  97. package/internal/cli/cli.d.ts +2 -0
  98. package/internal/cli/cli.d.ts.map +1 -0
  99. package/internal/cli/cli.js +344 -0
  100. package/internal/cli/cli.js.map +1 -0
  101. package/internal/cli/constants.d.ts +2 -0
  102. package/internal/cli/constants.d.ts.map +1 -0
  103. package/internal/cli/constants.js +5 -0
  104. package/internal/cli/constants.js.map +1 -0
  105. package/internal/cli/emoji.d.ts +3 -0
  106. package/internal/cli/emoji.d.ts.map +1 -0
  107. package/internal/cli/emoji.js +13 -0
  108. package/internal/cli/emoji.js.map +1 -0
  109. package/internal/cli/hardhat-vscode-installation.d.ts +8 -0
  110. package/internal/cli/hardhat-vscode-installation.d.ts.map +1 -0
  111. package/internal/cli/hardhat-vscode-installation.js +41 -0
  112. package/internal/cli/hardhat-vscode-installation.js.map +1 -0
  113. package/internal/cli/is-node-version-to-warn-on.d.ts +13 -0
  114. package/internal/cli/is-node-version-to-warn-on.d.ts.map +1 -0
  115. package/internal/cli/is-node-version-to-warn-on.js +46 -0
  116. package/internal/cli/is-node-version-to-warn-on.js.map +1 -0
  117. package/internal/cli/project-creation.d.ts +4 -0
  118. package/internal/cli/project-creation.d.ts.map +1 -0
  119. package/internal/cli/project-creation.js +506 -0
  120. package/internal/cli/project-creation.js.map +1 -0
  121. package/internal/cli/prompt.d.ts +14 -0
  122. package/internal/cli/prompt.d.ts.map +1 -0
  123. package/internal/cli/prompt.js +123 -0
  124. package/internal/cli/prompt.js.map +1 -0
  125. package/internal/cli/types.d.ts +5 -0
  126. package/internal/cli/types.d.ts.map +1 -0
  127. package/internal/cli/types.js +3 -0
  128. package/internal/cli/types.js.map +1 -0
  129. package/internal/cli/vars.d.ts +2 -0
  130. package/internal/cli/vars.d.ts.map +1 -0
  131. package/internal/cli/vars.js +216 -0
  132. package/internal/cli/vars.js.map +1 -0
  133. package/internal/cli/version-notifier.d.ts +2 -0
  134. package/internal/cli/version-notifier.d.ts.map +1 -0
  135. package/internal/cli/version-notifier.js +217 -0
  136. package/internal/cli/version-notifier.js.map +1 -0
  137. package/internal/constants.d.ts +14 -0
  138. package/internal/constants.d.ts.map +1 -0
  139. package/internal/constants.js +35 -0
  140. package/internal/constants.js.map +1 -0
  141. package/internal/context.d.ts +29 -0
  142. package/internal/context.d.ts.map +1 -0
  143. package/internal/context.js +74 -0
  144. package/internal/context.js.map +1 -0
  145. package/internal/core/config/config-env.d.ts +111 -0
  146. package/internal/core/config/config-env.d.ts.map +1 -0
  147. package/internal/core/config/config-env.js +144 -0
  148. package/internal/core/config/config-env.js.map +1 -0
  149. package/internal/core/config/config-loading.d.ts +20 -0
  150. package/internal/core/config/config-loading.d.ts.map +1 -0
  151. package/internal/core/config/config-loading.js +246 -0
  152. package/internal/core/config/config-loading.js.map +1 -0
  153. package/internal/core/config/config-resolution.d.ts +25 -0
  154. package/internal/core/config/config-resolution.d.ts.map +1 -0
  155. package/internal/core/config/config-resolution.js +336 -0
  156. package/internal/core/config/config-resolution.js.map +1 -0
  157. package/internal/core/config/config-validation.d.ts +18 -0
  158. package/internal/core/config/config-validation.d.ts.map +1 -0
  159. package/internal/core/config/config-validation.js +400 -0
  160. package/internal/core/config/config-validation.js.map +1 -0
  161. package/internal/core/config/default-config.d.ts +45 -0
  162. package/internal/core/config/default-config.d.ts.map +1 -0
  163. package/internal/core/config/default-config.js +186 -0
  164. package/internal/core/config/default-config.js.map +1 -0
  165. package/internal/core/errors-list.d.ts +948 -0
  166. package/internal/core/errors-list.d.ts.map +1 -0
  167. package/internal/core/errors-list.js +1282 -0
  168. package/internal/core/errors-list.js.map +1 -0
  169. package/internal/core/errors.d.ts +74 -0
  170. package/internal/core/errors.d.ts.map +1 -0
  171. package/internal/core/errors.js +178 -0
  172. package/internal/core/errors.js.map +1 -0
  173. package/internal/core/execution-mode.d.ts +14 -0
  174. package/internal/core/execution-mode.d.ts.map +1 -0
  175. package/internal/core/execution-mode.js +40 -0
  176. package/internal/core/execution-mode.js.map +1 -0
  177. package/internal/core/flamegraph.d.ts +14 -0
  178. package/internal/core/flamegraph.d.ts.map +1 -0
  179. package/internal/core/flamegraph.js +255 -0
  180. package/internal/core/flamegraph.js.map +1 -0
  181. package/internal/core/jsonrpc/types/access-list.d.ts +13 -0
  182. package/internal/core/jsonrpc/types/access-list.d.ts.map +1 -0
  183. package/internal/core/jsonrpc/types/access-list.js +35 -0
  184. package/internal/core/jsonrpc/types/access-list.js.map +1 -0
  185. package/internal/core/jsonrpc/types/base-types.d.ts +28 -0
  186. package/internal/core/jsonrpc/types/base-types.d.ts.map +1 -0
  187. package/internal/core/jsonrpc/types/base-types.js +152 -0
  188. package/internal/core/jsonrpc/types/base-types.js.map +1 -0
  189. package/internal/core/jsonrpc/types/input/blockTag.d.ts +51 -0
  190. package/internal/core/jsonrpc/types/input/blockTag.d.ts.map +1 -0
  191. package/internal/core/jsonrpc/types/input/blockTag.js +55 -0
  192. package/internal/core/jsonrpc/types/input/blockTag.js.map +1 -0
  193. package/internal/core/jsonrpc/types/input/callRequest.d.ts +82 -0
  194. package/internal/core/jsonrpc/types/input/callRequest.d.ts.map +1 -0
  195. package/internal/core/jsonrpc/types/input/callRequest.js +57 -0
  196. package/internal/core/jsonrpc/types/input/callRequest.js.map +1 -0
  197. package/internal/core/jsonrpc/types/input/debugTraceTransaction.d.ts +14 -0
  198. package/internal/core/jsonrpc/types/input/debugTraceTransaction.d.ts.map +1 -0
  199. package/internal/core/jsonrpc/types/input/debugTraceTransaction.js +35 -0
  200. package/internal/core/jsonrpc/types/input/debugTraceTransaction.js.map +1 -0
  201. package/internal/core/jsonrpc/types/input/filterRequest.d.ts +24 -0
  202. package/internal/core/jsonrpc/types/input/filterRequest.d.ts.map +1 -0
  203. package/internal/core/jsonrpc/types/input/filterRequest.js +41 -0
  204. package/internal/core/jsonrpc/types/input/filterRequest.js.map +1 -0
  205. package/internal/core/jsonrpc/types/input/hardhat-network.d.ts +51 -0
  206. package/internal/core/jsonrpc/types/input/hardhat-network.d.ts.map +1 -0
  207. package/internal/core/jsonrpc/types/input/hardhat-network.js +51 -0
  208. package/internal/core/jsonrpc/types/input/hardhat-network.js.map +1 -0
  209. package/internal/core/jsonrpc/types/input/logAddress.d.ts +7 -0
  210. package/internal/core/jsonrpc/types/input/logAddress.d.ts.map +1 -0
  211. package/internal/core/jsonrpc/types/input/logAddress.js +32 -0
  212. package/internal/core/jsonrpc/types/input/logAddress.js.map +1 -0
  213. package/internal/core/jsonrpc/types/input/logTopics.d.ts +7 -0
  214. package/internal/core/jsonrpc/types/input/logTopics.d.ts.map +1 -0
  215. package/internal/core/jsonrpc/types/input/logTopics.js +32 -0
  216. package/internal/core/jsonrpc/types/input/logTopics.js.map +1 -0
  217. package/internal/core/jsonrpc/types/input/solc.d.ts +13 -0
  218. package/internal/core/jsonrpc/types/input/solc.d.ts.map +1 -0
  219. package/internal/core/jsonrpc/types/input/solc.js +37 -0
  220. package/internal/core/jsonrpc/types/input/solc.js.map +1 -0
  221. package/internal/core/jsonrpc/types/input/subscribeRequest.d.ts +12 -0
  222. package/internal/core/jsonrpc/types/input/subscribeRequest.d.ts.map +1 -0
  223. package/internal/core/jsonrpc/types/input/subscribeRequest.js +33 -0
  224. package/internal/core/jsonrpc/types/input/subscribeRequest.js.map +1 -0
  225. package/internal/core/jsonrpc/types/input/transactionRequest.d.ts +41 -0
  226. package/internal/core/jsonrpc/types/input/transactionRequest.d.ts.map +1 -0
  227. package/internal/core/jsonrpc/types/input/transactionRequest.js +47 -0
  228. package/internal/core/jsonrpc/types/input/transactionRequest.js.map +1 -0
  229. package/internal/core/jsonrpc/types/input/validation.d.ts +12 -0
  230. package/internal/core/jsonrpc/types/input/validation.d.ts.map +1 -0
  231. package/internal/core/jsonrpc/types/input/validation.js +49 -0
  232. package/internal/core/jsonrpc/types/input/validation.js.map +1 -0
  233. package/internal/core/jsonrpc/types/output/block.d.ts +106 -0
  234. package/internal/core/jsonrpc/types/output/block.d.ts.map +1 -0
  235. package/internal/core/jsonrpc/types/output/block.js +72 -0
  236. package/internal/core/jsonrpc/types/output/block.js.map +1 -0
  237. package/internal/core/jsonrpc/types/output/decodeJsonRpcResponse.d.ts +6 -0
  238. package/internal/core/jsonrpc/types/output/decodeJsonRpcResponse.d.ts.map +1 -0
  239. package/internal/core/jsonrpc/types/output/decodeJsonRpcResponse.js +20 -0
  240. package/internal/core/jsonrpc/types/output/decodeJsonRpcResponse.js.map +1 -0
  241. package/internal/core/jsonrpc/types/output/log.d.ts +13 -0
  242. package/internal/core/jsonrpc/types/output/log.d.ts.map +1 -0
  243. package/internal/core/jsonrpc/types/output/log.js +40 -0
  244. package/internal/core/jsonrpc/types/output/log.js.map +1 -0
  245. package/internal/core/jsonrpc/types/output/metadata.d.ts +13 -0
  246. package/internal/core/jsonrpc/types/output/metadata.d.ts.map +1 -0
  247. package/internal/core/jsonrpc/types/output/metadata.js +3 -0
  248. package/internal/core/jsonrpc/types/output/metadata.js.map +1 -0
  249. package/internal/core/jsonrpc/types/output/receipt.d.ts +29 -0
  250. package/internal/core/jsonrpc/types/output/receipt.d.ts.map +1 -0
  251. package/internal/core/jsonrpc/types/output/receipt.js +52 -0
  252. package/internal/core/jsonrpc/types/output/receipt.js.map +1 -0
  253. package/internal/core/jsonrpc/types/output/transaction.d.ts +30 -0
  254. package/internal/core/jsonrpc/types/output/transaction.d.ts.map +1 -0
  255. package/internal/core/jsonrpc/types/output/transaction.js +55 -0
  256. package/internal/core/jsonrpc/types/output/transaction.js.map +1 -0
  257. package/internal/core/params/argumentTypes.d.ts +41 -0
  258. package/internal/core/params/argumentTypes.d.ts.map +1 -0
  259. package/internal/core/params/argumentTypes.js +315 -0
  260. package/internal/core/params/argumentTypes.js.map +1 -0
  261. package/internal/core/params/env-variables.d.ts +9 -0
  262. package/internal/core/params/env-variables.d.ts.map +1 -0
  263. package/internal/core/params/env-variables.js +58 -0
  264. package/internal/core/params/env-variables.js.map +1 -0
  265. package/internal/core/params/hardhat-params.d.ts +3 -0
  266. package/internal/core/params/hardhat-params.d.ts.map +1 -0
  267. package/internal/core/params/hardhat-params.js +129 -0
  268. package/internal/core/params/hardhat-params.js.map +1 -0
  269. package/internal/core/project-structure.d.ts +4 -0
  270. package/internal/core/project-structure.d.ts.map +1 -0
  271. package/internal/core/project-structure.js +50 -0
  272. package/internal/core/project-structure.js.map +1 -0
  273. package/internal/core/providers/accounts.d.ts +40 -0
  274. package/internal/core/providers/accounts.d.ts.map +1 -0
  275. package/internal/core/providers/accounts.js +266 -0
  276. package/internal/core/providers/accounts.js.map +1 -0
  277. package/internal/core/providers/backwards-compatibility.d.ts +18 -0
  278. package/internal/core/providers/backwards-compatibility.d.ts.map +1 -0
  279. package/internal/core/providers/backwards-compatibility.js +66 -0
  280. package/internal/core/providers/backwards-compatibility.js.map +1 -0
  281. package/internal/core/providers/chainId.d.ts +15 -0
  282. package/internal/core/providers/chainId.d.ts.map +1 -0
  283. package/internal/core/providers/chainId.js +58 -0
  284. package/internal/core/providers/chainId.js.map +1 -0
  285. package/internal/core/providers/construction.d.ts +5 -0
  286. package/internal/core/providers/construction.d.ts.map +1 -0
  287. package/internal/core/providers/construction.js +166 -0
  288. package/internal/core/providers/construction.js.map +1 -0
  289. package/internal/core/providers/errors.d.ts +47 -0
  290. package/internal/core/providers/errors.d.ts.map +1 -0
  291. package/internal/core/providers/errors.js +110 -0
  292. package/internal/core/providers/errors.js.map +1 -0
  293. package/internal/core/providers/gas-providers.d.ts +34 -0
  294. package/internal/core/providers/gas-providers.d.ts.map +1 -0
  295. package/internal/core/providers/gas-providers.js +228 -0
  296. package/internal/core/providers/gas-providers.js.map +1 -0
  297. package/internal/core/providers/http.d.ts +35 -0
  298. package/internal/core/providers/http.d.ts.map +1 -0
  299. package/internal/core/providers/http.js +226 -0
  300. package/internal/core/providers/http.js.map +1 -0
  301. package/internal/core/providers/lazy-initialization.d.ts +44 -0
  302. package/internal/core/providers/lazy-initialization.d.ts.map +1 -0
  303. package/internal/core/providers/lazy-initialization.js +137 -0
  304. package/internal/core/providers/lazy-initialization.js.map +1 -0
  305. package/internal/core/providers/util.d.ts +5 -0
  306. package/internal/core/providers/util.d.ts.map +1 -0
  307. package/internal/core/providers/util.js +41 -0
  308. package/internal/core/providers/util.js.map +1 -0
  309. package/internal/core/providers/wrapper.d.ts +19 -0
  310. package/internal/core/providers/wrapper.d.ts.map +1 -0
  311. package/internal/core/providers/wrapper.js +34 -0
  312. package/internal/core/providers/wrapper.js.map +1 -0
  313. package/internal/core/runtime-environment.d.ts +86 -0
  314. package/internal/core/runtime-environment.d.ts.map +1 -0
  315. package/internal/core/runtime-environment.js +317 -0
  316. package/internal/core/runtime-environment.js.map +1 -0
  317. package/internal/core/task-profiling.d.ts +18 -0
  318. package/internal/core/task-profiling.d.ts.map +1 -0
  319. package/internal/core/task-profiling.js +50 -0
  320. package/internal/core/task-profiling.js.map +1 -0
  321. package/internal/core/tasks/builtin-tasks.d.ts +11 -0
  322. package/internal/core/tasks/builtin-tasks.d.ts.map +1 -0
  323. package/internal/core/tasks/builtin-tasks.js +13 -0
  324. package/internal/core/tasks/builtin-tasks.js.map +1 -0
  325. package/internal/core/tasks/dsl.d.ts +76 -0
  326. package/internal/core/tasks/dsl.d.ts.map +1 -0
  327. package/internal/core/tasks/dsl.js +112 -0
  328. package/internal/core/tasks/dsl.js.map +1 -0
  329. package/internal/core/tasks/task-definitions.d.ts +266 -0
  330. package/internal/core/tasks/task-definitions.d.ts.map +1 -0
  331. package/internal/core/tasks/task-definitions.js +555 -0
  332. package/internal/core/tasks/task-definitions.js.map +1 -0
  333. package/internal/core/tasks/util.d.ts +6 -0
  334. package/internal/core/tasks/util.d.ts.map +1 -0
  335. package/internal/core/tasks/util.js +19 -0
  336. package/internal/core/tasks/util.js.map +1 -0
  337. package/internal/core/typescript-support.d.ts +15 -0
  338. package/internal/core/typescript-support.d.ts.map +1 -0
  339. package/internal/core/typescript-support.js +85 -0
  340. package/internal/core/typescript-support.js.map +1 -0
  341. package/internal/core/vars/vars-manager-setup.d.ts +22 -0
  342. package/internal/core/vars/vars-manager-setup.d.ts.map +1 -0
  343. package/internal/core/vars/vars-manager-setup.js +95 -0
  344. package/internal/core/vars/vars-manager-setup.js.map +1 -0
  345. package/internal/core/vars/vars-manager.d.ts +21 -0
  346. package/internal/core/vars/vars-manager.d.ts.map +1 -0
  347. package/internal/core/vars/vars-manager.js +110 -0
  348. package/internal/core/vars/vars-manager.js.map +1 -0
  349. package/internal/hardhat-network/jsonrpc/client.d.ts +109 -0
  350. package/internal/hardhat-network/jsonrpc/client.d.ts.map +1 -0
  351. package/internal/hardhat-network/jsonrpc/client.js +294 -0
  352. package/internal/hardhat-network/jsonrpc/client.js.map +1 -0
  353. package/internal/hardhat-network/jsonrpc/handler.d.ts +16 -0
  354. package/internal/hardhat-network/jsonrpc/handler.d.ts.map +1 -0
  355. package/internal/hardhat-network/jsonrpc/handler.js +218 -0
  356. package/internal/hardhat-network/jsonrpc/handler.js.map +1 -0
  357. package/internal/hardhat-network/jsonrpc/server.d.ts +20 -0
  358. package/internal/hardhat-network/jsonrpc/server.d.ts.map +1 -0
  359. package/internal/hardhat-network/jsonrpc/server.js +82 -0
  360. package/internal/hardhat-network/jsonrpc/server.js.map +1 -0
  361. package/internal/hardhat-network/provider/fork/AccountState.d.ts +11 -0
  362. package/internal/hardhat-network/provider/fork/AccountState.d.ts.map +1 -0
  363. package/internal/hardhat-network/provider/fork/AccountState.js +21 -0
  364. package/internal/hardhat-network/provider/fork/AccountState.js.map +1 -0
  365. package/internal/hardhat-network/provider/modules/logger.d.ts +8 -0
  366. package/internal/hardhat-network/provider/modules/logger.d.ts.map +1 -0
  367. package/internal/hardhat-network/provider/modules/logger.js +28 -0
  368. package/internal/hardhat-network/provider/modules/logger.js.map +1 -0
  369. package/internal/hardhat-network/provider/node-types.d.ts +67 -0
  370. package/internal/hardhat-network/provider/node-types.d.ts.map +1 -0
  371. package/internal/hardhat-network/provider/node-types.js +3 -0
  372. package/internal/hardhat-network/provider/node-types.js.map +1 -0
  373. package/internal/hardhat-network/provider/output.d.ts +118 -0
  374. package/internal/hardhat-network/provider/output.d.ts.map +1 -0
  375. package/internal/hardhat-network/provider/output.js +3 -0
  376. package/internal/hardhat-network/provider/output.js.map +1 -0
  377. package/internal/hardhat-network/provider/provider.d.ts +64 -0
  378. package/internal/hardhat-network/provider/provider.d.ts.map +1 -0
  379. package/internal/hardhat-network/provider/provider.js +441 -0
  380. package/internal/hardhat-network/provider/provider.js.map +1 -0
  381. package/internal/hardhat-network/provider/return-data.d.ts +3 -0
  382. package/internal/hardhat-network/provider/return-data.d.ts.map +1 -0
  383. package/internal/hardhat-network/provider/return-data.js +7 -0
  384. package/internal/hardhat-network/provider/return-data.js.map +1 -0
  385. package/internal/hardhat-network/provider/utils/assertions.d.ts +2 -0
  386. package/internal/hardhat-network/provider/utils/assertions.d.ts.map +1 -0
  387. package/internal/hardhat-network/provider/utils/assertions.js +12 -0
  388. package/internal/hardhat-network/provider/utils/assertions.js.map +1 -0
  389. package/internal/hardhat-network/provider/utils/convertToEdr.d.ts +14 -0
  390. package/internal/hardhat-network/provider/utils/convertToEdr.d.ts.map +1 -0
  391. package/internal/hardhat-network/provider/utils/convertToEdr.js +224 -0
  392. package/internal/hardhat-network/provider/utils/convertToEdr.js.map +1 -0
  393. package/internal/hardhat-network/provider/utils/disk-cache.d.ts +3 -0
  394. package/internal/hardhat-network/provider/utils/disk-cache.d.ts.map +1 -0
  395. package/internal/hardhat-network/provider/utils/disk-cache.js +12 -0
  396. package/internal/hardhat-network/provider/utils/disk-cache.js.map +1 -0
  397. package/internal/hardhat-network/provider/utils/fork-recomendations-banner.d.ts +3 -0
  398. package/internal/hardhat-network/provider/utils/fork-recomendations-banner.d.ts.map +1 -0
  399. package/internal/hardhat-network/provider/utils/fork-recomendations-banner.js +38 -0
  400. package/internal/hardhat-network/provider/utils/fork-recomendations-banner.js.map +1 -0
  401. package/internal/hardhat-network/provider/utils/getCurrentTimestamp.d.ts +2 -0
  402. package/internal/hardhat-network/provider/utils/getCurrentTimestamp.d.ts.map +1 -0
  403. package/internal/hardhat-network/provider/utils/getCurrentTimestamp.js +8 -0
  404. package/internal/hardhat-network/provider/utils/getCurrentTimestamp.js.map +1 -0
  405. package/internal/hardhat-network/provider/utils/isHexPrefixed.d.ts +2 -0
  406. package/internal/hardhat-network/provider/utils/isHexPrefixed.d.ts.map +1 -0
  407. package/internal/hardhat-network/provider/utils/isHexPrefixed.js +8 -0
  408. package/internal/hardhat-network/provider/utils/isHexPrefixed.js.map +1 -0
  409. package/internal/hardhat-network/provider/utils/makeAccount.d.ts +7 -0
  410. package/internal/hardhat-network/provider/utils/makeAccount.d.ts.map +1 -0
  411. package/internal/hardhat-network/provider/utils/makeAccount.js +20 -0
  412. package/internal/hardhat-network/provider/utils/makeAccount.js.map +1 -0
  413. package/internal/hardhat-network/provider/utils/makeCommon.d.ts +4 -0
  414. package/internal/hardhat-network/provider/utils/makeCommon.d.ts.map +1 -0
  415. package/internal/hardhat-network/provider/utils/makeCommon.js +17 -0
  416. package/internal/hardhat-network/provider/utils/makeCommon.js.map +1 -0
  417. package/internal/hardhat-network/provider/utils/makeForkClient.d.ts +19 -0
  418. package/internal/hardhat-network/provider/utils/makeForkClient.d.ts.map +1 -0
  419. package/internal/hardhat-network/provider/utils/makeForkClient.js +99 -0
  420. package/internal/hardhat-network/provider/utils/makeForkClient.js.map +1 -0
  421. package/internal/hardhat-network/provider/utils/random.d.ts +17 -0
  422. package/internal/hardhat-network/provider/utils/random.d.ts.map +1 -0
  423. package/internal/hardhat-network/provider/utils/random.js +55 -0
  424. package/internal/hardhat-network/provider/utils/random.js.map +1 -0
  425. package/internal/hardhat-network/provider/utils/reorgs-protection.d.ts +10 -0
  426. package/internal/hardhat-network/provider/utils/reorgs-protection.d.ts.map +1 -0
  427. package/internal/hardhat-network/provider/utils/reorgs-protection.js +39 -0
  428. package/internal/hardhat-network/provider/utils/reorgs-protection.js.map +1 -0
  429. package/internal/hardhat-network/provider/vm/exit.d.ts +3 -0
  430. package/internal/hardhat-network/provider/vm/exit.d.ts.map +1 -0
  431. package/internal/hardhat-network/provider/vm/exit.js +7 -0
  432. package/internal/hardhat-network/provider/vm/exit.js.map +1 -0
  433. package/internal/hardhat-network/provider/vm/minimal-vm.d.ts +36 -0
  434. package/internal/hardhat-network/provider/vm/minimal-vm.d.ts.map +1 -0
  435. package/internal/hardhat-network/provider/vm/minimal-vm.js +53 -0
  436. package/internal/hardhat-network/provider/vm/minimal-vm.js.map +1 -0
  437. package/internal/hardhat-network/provider/vm/types.d.ts +36 -0
  438. package/internal/hardhat-network/provider/vm/types.d.ts.map +1 -0
  439. package/internal/hardhat-network/provider/vm/types.js +3 -0
  440. package/internal/hardhat-network/provider/vm/types.js.map +1 -0
  441. package/internal/hardhat-network/stack-traces/compiler-to-model.d.ts +3 -0
  442. package/internal/hardhat-network/stack-traces/compiler-to-model.d.ts.map +1 -0
  443. package/internal/hardhat-network/stack-traces/compiler-to-model.js +7 -0
  444. package/internal/hardhat-network/stack-traces/compiler-to-model.js.map +1 -0
  445. package/internal/hardhat-network/stack-traces/consoleLogger.d.ts +23 -0
  446. package/internal/hardhat-network/stack-traces/consoleLogger.d.ts.map +1 -0
  447. package/internal/hardhat-network/stack-traces/consoleLogger.js +159 -0
  448. package/internal/hardhat-network/stack-traces/consoleLogger.js.map +1 -0
  449. package/internal/hardhat-network/stack-traces/constants.d.ts +3 -0
  450. package/internal/hardhat-network/stack-traces/constants.d.ts.map +1 -0
  451. package/internal/hardhat-network/stack-traces/constants.js +6 -0
  452. package/internal/hardhat-network/stack-traces/constants.js.map +1 -0
  453. package/internal/hardhat-network/stack-traces/debug.d.ts +3 -0
  454. package/internal/hardhat-network/stack-traces/debug.d.ts.map +1 -0
  455. package/internal/hardhat-network/stack-traces/debug.js +8 -0
  456. package/internal/hardhat-network/stack-traces/debug.js.map +1 -0
  457. package/internal/hardhat-network/stack-traces/library-utils.d.ts +3 -0
  458. package/internal/hardhat-network/stack-traces/library-utils.d.ts.map +1 -0
  459. package/internal/hardhat-network/stack-traces/library-utils.js +7 -0
  460. package/internal/hardhat-network/stack-traces/library-utils.js.map +1 -0
  461. package/internal/hardhat-network/stack-traces/logger.d.ts +41 -0
  462. package/internal/hardhat-network/stack-traces/logger.d.ts.map +1 -0
  463. package/internal/hardhat-network/stack-traces/logger.js +424 -0
  464. package/internal/hardhat-network/stack-traces/logger.js.map +1 -0
  465. package/internal/hardhat-network/stack-traces/message-trace.d.ts +4 -0
  466. package/internal/hardhat-network/stack-traces/message-trace.d.ts.map +1 -0
  467. package/internal/hardhat-network/stack-traces/message-trace.js +3 -0
  468. package/internal/hardhat-network/stack-traces/message-trace.js.map +1 -0
  469. package/internal/hardhat-network/stack-traces/panic-errors.d.ts +2 -0
  470. package/internal/hardhat-network/stack-traces/panic-errors.d.ts.map +1 -0
  471. package/internal/hardhat-network/stack-traces/panic-errors.js +34 -0
  472. package/internal/hardhat-network/stack-traces/panic-errors.js.map +1 -0
  473. package/internal/hardhat-network/stack-traces/solidity-errors.d.ts +14 -0
  474. package/internal/hardhat-network/stack-traces/solidity-errors.d.ts.map +1 -0
  475. package/internal/hardhat-network/stack-traces/solidity-errors.js +284 -0
  476. package/internal/hardhat-network/stack-traces/solidity-errors.js.map +1 -0
  477. package/internal/hardhat-network/stack-traces/solidity-stack-trace.d.ts +7 -0
  478. package/internal/hardhat-network/stack-traces/solidity-stack-trace.d.ts.map +1 -0
  479. package/internal/hardhat-network/stack-traces/solidity-stack-trace.js +15 -0
  480. package/internal/hardhat-network/stack-traces/solidity-stack-trace.js.map +1 -0
  481. package/internal/hardhat-network/stack-traces/solidityTracer.d.ts +3 -0
  482. package/internal/hardhat-network/stack-traces/solidityTracer.d.ts.map +1 -0
  483. package/internal/hardhat-network/stack-traces/solidityTracer.js +7 -0
  484. package/internal/hardhat-network/stack-traces/solidityTracer.js.map +1 -0
  485. package/internal/hardhat-network/stack-traces/vm-trace-decoder.d.ts +6 -0
  486. package/internal/hardhat-network/stack-traces/vm-trace-decoder.d.ts.map +1 -0
  487. package/internal/hardhat-network/stack-traces/vm-trace-decoder.js +27 -0
  488. package/internal/hardhat-network/stack-traces/vm-trace-decoder.js.map +1 -0
  489. package/internal/hardhat-network/stack-traces/vm-tracer.d.ts +3 -0
  490. package/internal/hardhat-network/stack-traces/vm-tracer.d.ts.map +1 -0
  491. package/internal/hardhat-network/stack-traces/vm-tracer.js +7 -0
  492. package/internal/hardhat-network/stack-traces/vm-tracer.js.map +1 -0
  493. package/internal/lib/hardhat-lib.d.ts +4 -0
  494. package/internal/lib/hardhat-lib.d.ts.map +1 -0
  495. package/internal/lib/hardhat-lib.js +35 -0
  496. package/internal/lib/hardhat-lib.js.map +1 -0
  497. package/internal/reset.d.ts +2 -0
  498. package/internal/reset.d.ts.map +1 -0
  499. package/internal/reset.js +35 -0
  500. package/internal/reset.js.map +1 -0
  501. package/internal/sentry/anonymizer.d.ts +31 -0
  502. package/internal/sentry/anonymizer.d.ts.map +1 -0
  503. package/internal/sentry/anonymizer.js +292 -0
  504. package/internal/sentry/anonymizer.js.map +1 -0
  505. package/internal/sentry/reporter.d.ts +42 -0
  506. package/internal/sentry/reporter.d.ts.map +1 -0
  507. package/internal/sentry/reporter.js +157 -0
  508. package/internal/sentry/reporter.js.map +1 -0
  509. package/internal/sentry/subprocess.d.ts +2 -0
  510. package/internal/sentry/subprocess.d.ts.map +1 -0
  511. package/internal/sentry/subprocess.js +85 -0
  512. package/internal/sentry/subprocess.js.map +1 -0
  513. package/internal/sentry/transport.d.ts +2 -0
  514. package/internal/sentry/transport.d.ts.map +1 -0
  515. package/internal/sentry/transport.js +64 -0
  516. package/internal/sentry/transport.js.map +1 -0
  517. package/internal/solidity/compilation-job.d.ts +38 -0
  518. package/internal/solidity/compilation-job.d.ts.map +1 -0
  519. package/internal/solidity/compilation-job.js +223 -0
  520. package/internal/solidity/compilation-job.js.map +1 -0
  521. package/internal/solidity/compiler/compiler-input.d.ts +3 -0
  522. package/internal/solidity/compiler/compiler-input.d.ts.map +1 -0
  523. package/internal/solidity/compiler/compiler-input.js +23 -0
  524. package/internal/solidity/compiler/compiler-input.js.map +1 -0
  525. package/internal/solidity/compiler/downloader.d.ts +79 -0
  526. package/internal/solidity/compiler/downloader.d.ts.map +1 -0
  527. package/internal/solidity/compiler/downloader.js +262 -0
  528. package/internal/solidity/compiler/downloader.js.map +1 -0
  529. package/internal/solidity/compiler/index.d.ts +16 -0
  530. package/internal/solidity/compiler/index.d.ts.map +1 -0
  531. package/internal/solidity/compiler/index.js +107 -0
  532. package/internal/solidity/compiler/index.js.map +1 -0
  533. package/internal/solidity/compiler/solc-info.d.ts +2 -0
  534. package/internal/solidity/compiler/solc-info.d.ts.map +1 -0
  535. package/internal/solidity/compiler/solc-info.js +75 -0
  536. package/internal/solidity/compiler/solc-info.js.map +1 -0
  537. package/internal/solidity/compiler/solcjs-runner.js +34 -0
  538. package/internal/solidity/dependencyGraph.d.ts +19 -0
  539. package/internal/solidity/dependencyGraph.d.ts.map +1 -0
  540. package/internal/solidity/dependencyGraph.js +127 -0
  541. package/internal/solidity/dependencyGraph.js.map +1 -0
  542. package/internal/solidity/parse.d.ts +19 -0
  543. package/internal/solidity/parse.d.ts.map +1 -0
  544. package/internal/solidity/parse.js +44 -0
  545. package/internal/solidity/parse.js.map +1 -0
  546. package/internal/solidity/resolver.d.ts +50 -0
  547. package/internal/solidity/resolver.d.ts.map +1 -0
  548. package/internal/solidity/resolver.js +337 -0
  549. package/internal/solidity/resolver.js.map +1 -0
  550. package/internal/util/abi-helpers.d.ts +13 -0
  551. package/internal/util/abi-helpers.d.ts.map +1 -0
  552. package/internal/util/abi-helpers.js +75 -0
  553. package/internal/util/abi-helpers.js.map +1 -0
  554. package/internal/util/bigint.d.ts +13 -0
  555. package/internal/util/bigint.d.ts.map +1 -0
  556. package/internal/util/bigint.js +60 -0
  557. package/internal/util/bigint.js.map +1 -0
  558. package/internal/util/caller-package.d.ts +5 -0
  559. package/internal/util/caller-package.d.ts.map +1 -0
  560. package/internal/util/caller-package.js +42 -0
  561. package/internal/util/caller-package.js.map +1 -0
  562. package/internal/util/ci-detection.d.ts +2 -0
  563. package/internal/util/ci-detection.d.ts.map +1 -0
  564. package/internal/util/ci-detection.js +53 -0
  565. package/internal/util/ci-detection.js.map +1 -0
  566. package/internal/util/console.d.ts +8 -0
  567. package/internal/util/console.d.ts.map +1 -0
  568. package/internal/util/console.js +25 -0
  569. package/internal/util/console.js.map +1 -0
  570. package/internal/util/date.d.ts +5 -0
  571. package/internal/util/date.d.ts.map +1 -0
  572. package/internal/util/date.js +20 -0
  573. package/internal/util/date.js.map +1 -0
  574. package/internal/util/download.d.ts +4 -0
  575. package/internal/util/download.d.ts.map +1 -0
  576. package/internal/util/download.js +77 -0
  577. package/internal/util/download.js.map +1 -0
  578. package/internal/util/event-emitter.d.ts +22 -0
  579. package/internal/util/event-emitter.d.ts.map +1 -0
  580. package/internal/util/event-emitter.js +76 -0
  581. package/internal/util/event-emitter.js.map +1 -0
  582. package/internal/util/fs-utils.d.ts +49 -0
  583. package/internal/util/fs-utils.d.ts.map +1 -0
  584. package/internal/util/fs-utils.js +194 -0
  585. package/internal/util/fs-utils.js.map +1 -0
  586. package/internal/util/glob.d.ts +17 -0
  587. package/internal/util/glob.d.ts.map +1 -0
  588. package/internal/util/glob.js +56 -0
  589. package/internal/util/glob.js.map +1 -0
  590. package/internal/util/global-dir.d.ts +27 -0
  591. package/internal/util/global-dir.d.ts.map +1 -0
  592. package/internal/util/global-dir.js +157 -0
  593. package/internal/util/global-dir.js.map +1 -0
  594. package/internal/util/hardforks.d.ts +28 -0
  595. package/internal/util/hardforks.d.ts.map +1 -0
  596. package/internal/util/hardforks.js +88 -0
  597. package/internal/util/hardforks.js.map +1 -0
  598. package/internal/util/hash.d.ts +12 -0
  599. package/internal/util/hash.d.ts.map +1 -0
  600. package/internal/util/hash.js +18 -0
  601. package/internal/util/hash.js.map +1 -0
  602. package/internal/util/io-ts.d.ts +5 -0
  603. package/internal/util/io-ts.d.ts.map +1 -0
  604. package/internal/util/io-ts.js +50 -0
  605. package/internal/util/io-ts.js.map +1 -0
  606. package/internal/util/jsonrpc.d.ts +26 -0
  607. package/internal/util/jsonrpc.d.ts.map +1 -0
  608. package/internal/util/jsonrpc.js +73 -0
  609. package/internal/util/jsonrpc.js.map +1 -0
  610. package/internal/util/keccak.d.ts +2 -0
  611. package/internal/util/keccak.d.ts.map +1 -0
  612. package/internal/util/keccak.js +12 -0
  613. package/internal/util/keccak.js.map +1 -0
  614. package/internal/util/keys-derivation.d.ts +3 -0
  615. package/internal/util/keys-derivation.d.ts.map +1 -0
  616. package/internal/util/keys-derivation.js +18 -0
  617. package/internal/util/keys-derivation.js.map +1 -0
  618. package/internal/util/lang.d.ts +3 -0
  619. package/internal/util/lang.d.ts.map +1 -0
  620. package/internal/util/lang.js +18 -0
  621. package/internal/util/lang.js.map +1 -0
  622. package/internal/util/lazy.d.ts +29 -0
  623. package/internal/util/lazy.d.ts.map +1 -0
  624. package/internal/util/lazy.js +189 -0
  625. package/internal/util/lazy.js.map +1 -0
  626. package/internal/util/multi-process-mutex.d.ts +12 -0
  627. package/internal/util/multi-process-mutex.d.ts.map +1 -0
  628. package/internal/util/multi-process-mutex.js +116 -0
  629. package/internal/util/multi-process-mutex.js.map +1 -0
  630. package/internal/util/packageInfo.d.ts +19 -0
  631. package/internal/util/packageInfo.d.ts.map +1 -0
  632. package/internal/util/packageInfo.js +54 -0
  633. package/internal/util/packageInfo.js.map +1 -0
  634. package/internal/util/platform.d.ts +2 -0
  635. package/internal/util/platform.d.ts.map +1 -0
  636. package/internal/util/platform.js +8 -0
  637. package/internal/util/platform.js.map +1 -0
  638. package/internal/util/proxy.d.ts +2 -0
  639. package/internal/util/proxy.d.ts.map +1 -0
  640. package/internal/util/proxy.js +19 -0
  641. package/internal/util/proxy.js.map +1 -0
  642. package/internal/util/report-telemetry-consent.d.ts +2 -0
  643. package/internal/util/report-telemetry-consent.d.ts.map +1 -0
  644. package/internal/util/report-telemetry-consent.js +15 -0
  645. package/internal/util/report-telemetry-consent.js.map +1 -0
  646. package/internal/util/scripts-runner.d.ts +8 -0
  647. package/internal/util/scripts-runner.d.ts.map +1 -0
  648. package/internal/util/scripts-runner.js +112 -0
  649. package/internal/util/scripts-runner.js.map +1 -0
  650. package/internal/util/strings.d.ts +15 -0
  651. package/internal/util/strings.d.ts.map +1 -0
  652. package/internal/util/strings.js +30 -0
  653. package/internal/util/strings.js.map +1 -0
  654. package/internal/util/unsafe.d.ts +11 -0
  655. package/internal/util/unsafe.d.ts.map +1 -0
  656. package/internal/util/unsafe.js +17 -0
  657. package/internal/util/unsafe.js.map +1 -0
  658. package/internal/util/wei-values.d.ts +12 -0
  659. package/internal/util/wei-values.d.ts.map +1 -0
  660. package/internal/util/wei-values.js +51 -0
  661. package/internal/util/wei-values.js.map +1 -0
  662. package/internal/vendor/await-semaphore/index.d.ts +12 -0
  663. package/internal/vendor/await-semaphore/index.d.ts.map +1 -0
  664. package/internal/vendor/await-semaphore/index.js +64 -0
  665. package/internal/vendor/await-semaphore/index.js.map +1 -0
  666. package/package.json +172 -0
  667. package/plugins-testing.d.ts +2 -0
  668. package/plugins-testing.d.ts.map +1 -0
  669. package/plugins-testing.js +6 -0
  670. package/plugins-testing.js.map +1 -0
  671. package/plugins.d.ts +5 -0
  672. package/plugins.d.ts.map +1 -0
  673. package/plugins.js +14 -0
  674. package/plugins.js.map +1 -0
  675. package/profiling.d.ts +18 -0
  676. package/profiling.d.ts.map +1 -0
  677. package/profiling.js +32 -0
  678. package/profiling.js.map +1 -0
  679. package/recommended-gitignore.txt +17 -0
  680. package/register.d.ts +2 -0
  681. package/register.d.ts.map +1 -0
  682. package/register.js +32 -0
  683. package/register.js.map +1 -0
  684. package/rl9c6ze5.cjs +1 -0
  685. package/sample-projects/javascript/LICENSE.md +11 -0
  686. package/sample-projects/javascript/README.md +13 -0
  687. package/sample-projects/javascript/contracts/Lock.sol +34 -0
  688. package/sample-projects/javascript/hardhat.config.js +6 -0
  689. package/sample-projects/javascript/ignition/modules/Lock.js +18 -0
  690. package/sample-projects/javascript/test/Lock.js +126 -0
  691. package/sample-projects/javascript-esm/LICENSE.md +11 -0
  692. package/sample-projects/javascript-esm/README.md +13 -0
  693. package/sample-projects/javascript-esm/contracts/Lock.sol +34 -0
  694. package/sample-projects/javascript-esm/hardhat.config.cjs +6 -0
  695. package/sample-projects/javascript-esm/ignition/modules/Lock.js +18 -0
  696. package/sample-projects/javascript-esm/test/Lock.js +128 -0
  697. package/sample-projects/typescript/LICENSE.md +11 -0
  698. package/sample-projects/typescript/README.md +13 -0
  699. package/sample-projects/typescript/contracts/Lock.sol +34 -0
  700. package/sample-projects/typescript/hardhat.config.ts +8 -0
  701. package/sample-projects/typescript/ignition/modules/Lock.ts +20 -0
  702. package/sample-projects/typescript/test/Lock.ts +127 -0
  703. package/sample-projects/typescript/tsconfig.json +11 -0
  704. package/sample-projects/typescript-viem/LICENSE.md +11 -0
  705. package/sample-projects/typescript-viem/README.md +13 -0
  706. package/sample-projects/typescript-viem/contracts/Lock.sol +34 -0
  707. package/sample-projects/typescript-viem/hardhat.config.ts +8 -0
  708. package/sample-projects/typescript-viem/ignition/modules/Lock.ts +21 -0
  709. package/sample-projects/typescript-viem/test/Lock.ts +134 -0
  710. package/sample-projects/typescript-viem/tsconfig.json +11 -0
  711. package/src/builtin-tasks/check.ts +5 -0
  712. package/src/builtin-tasks/clean.ts +24 -0
  713. package/src/builtin-tasks/compile.ts +1596 -0
  714. package/src/builtin-tasks/console.ts +41 -0
  715. package/src/builtin-tasks/flatten.ts +348 -0
  716. package/src/builtin-tasks/help.ts +72 -0
  717. package/src/builtin-tasks/node.ts +385 -0
  718. package/src/builtin-tasks/run.ts +56 -0
  719. package/src/builtin-tasks/task-names.ts +92 -0
  720. package/src/builtin-tasks/test.ts +223 -0
  721. package/src/builtin-tasks/utils/solidity-files-cache.ts +145 -0
  722. package/src/builtin-tasks/utils/watch.ts +64 -0
  723. package/src/builtin-tasks/vars.ts +54 -0
  724. package/src/common/bigInt.ts +106 -0
  725. package/src/common/index.ts +2 -0
  726. package/src/common/napi-rs.ts +15 -0
  727. package/src/config.ts +2 -0
  728. package/src/internal/artifacts.ts +975 -0
  729. package/src/internal/cli/ArgumentsParser.ts +358 -0
  730. package/src/internal/cli/HelpPrinter.ts +278 -0
  731. package/src/internal/cli/analytics.ts +288 -0
  732. package/src/internal/cli/autocomplete.ts +387 -0
  733. package/src/internal/cli/bootstrap.ts +16 -0
  734. package/src/internal/cli/cli.ts +478 -0
  735. package/src/internal/cli/constants.ts +1 -0
  736. package/src/internal/cli/emoji.ts +9 -0
  737. package/src/internal/cli/hardhat-vscode-installation.ts +43 -0
  738. package/src/internal/cli/is-node-version-to-warn-on.ts +54 -0
  739. package/src/internal/cli/project-creation.ts +683 -0
  740. package/src/internal/cli/prompt.ts +141 -0
  741. package/src/internal/cli/types.ts +5 -0
  742. package/src/internal/cli/vars.ts +301 -0
  743. package/src/internal/cli/version-notifier.ts +268 -0
  744. package/src/internal/constants.ts +38 -0
  745. package/src/internal/context.ts +107 -0
  746. package/src/internal/core/config/config-env.ts +219 -0
  747. package/src/internal/core/config/config-loading.ts +356 -0
  748. package/src/internal/core/config/config-resolution.ts +497 -0
  749. package/src/internal/core/config/config-validation.ts +621 -0
  750. package/src/internal/core/config/default-config.ts +197 -0
  751. package/src/internal/core/errors-list.ts +1369 -0
  752. package/src/internal/core/errors.ts +274 -0
  753. package/src/internal/core/execution-mode.ts +39 -0
  754. package/src/internal/core/flamegraph.ts +270 -0
  755. package/src/internal/core/jsonrpc/types/access-list.ts +16 -0
  756. package/src/internal/core/jsonrpc/types/base-types.ts +233 -0
  757. package/src/internal/core/jsonrpc/types/input/blockTag.ts +44 -0
  758. package/src/internal/core/jsonrpc/types/input/callRequest.ts +60 -0
  759. package/src/internal/core/jsonrpc/types/input/debugTraceTransaction.ts +17 -0
  760. package/src/internal/core/jsonrpc/types/input/filterRequest.ts +27 -0
  761. package/src/internal/core/jsonrpc/types/input/hardhat-network.ts +54 -0
  762. package/src/internal/core/jsonrpc/types/input/logAddress.ts +12 -0
  763. package/src/internal/core/jsonrpc/types/input/logTopics.ts +14 -0
  764. package/src/internal/core/jsonrpc/types/input/solc.ts +22 -0
  765. package/src/internal/core/jsonrpc/types/input/subscribeRequest.ts +21 -0
  766. package/src/internal/core/jsonrpc/types/input/transactionRequest.ts +47 -0
  767. package/src/internal/core/jsonrpc/types/input/validation.ts +75 -0
  768. package/src/internal/core/jsonrpc/types/output/block.ts +66 -0
  769. package/src/internal/core/jsonrpc/types/output/decodeJsonRpcResponse.ts +23 -0
  770. package/src/internal/core/jsonrpc/types/output/log.ts +19 -0
  771. package/src/internal/core/jsonrpc/types/output/metadata.ts +32 -0
  772. package/src/internal/core/jsonrpc/types/output/receipt.ts +38 -0
  773. package/src/internal/core/jsonrpc/types/output/transaction.ts +36 -0
  774. package/src/internal/core/params/argumentTypes.ts +327 -0
  775. package/src/internal/core/params/env-variables.ts +72 -0
  776. package/src/internal/core/params/hardhat-params.ts +105 -0
  777. package/src/internal/core/project-structure.ts +53 -0
  778. package/src/internal/core/providers/accounts.ts +385 -0
  779. package/src/internal/core/providers/backwards-compatibility.ts +80 -0
  780. package/src/internal/core/providers/chainId.ts +68 -0
  781. package/src/internal/core/providers/construction.ts +259 -0
  782. package/src/internal/core/providers/errors.ts +128 -0
  783. package/src/internal/core/providers/gas-providers.ts +306 -0
  784. package/src/internal/core/providers/http.ts +312 -0
  785. package/src/internal/core/providers/lazy-initialization.ts +178 -0
  786. package/src/internal/core/providers/util.ts +68 -0
  787. package/src/internal/core/providers/wrapper.ts +44 -0
  788. package/src/internal/core/runtime-environment.ts +467 -0
  789. package/src/internal/core/task-profiling.ts +56 -0
  790. package/src/internal/core/tasks/builtin-tasks.ts +10 -0
  791. package/src/internal/core/tasks/dsl.ts +241 -0
  792. package/src/internal/core/tasks/task-definitions.ts +830 -0
  793. package/src/internal/core/tasks/util.ts +18 -0
  794. package/src/internal/core/typescript-support.ts +93 -0
  795. package/src/internal/core/vars/vars-manager-setup.ts +124 -0
  796. package/src/internal/core/vars/vars-manager.ts +152 -0
  797. package/src/internal/hardhat-network/jsonrpc/client.ts +491 -0
  798. package/src/internal/hardhat-network/jsonrpc/handler.ts +288 -0
  799. package/src/internal/hardhat-network/jsonrpc/server.ts +117 -0
  800. package/src/internal/hardhat-network/provider/fork/AccountState.ts +28 -0
  801. package/src/internal/hardhat-network/provider/modules/logger.ts +27 -0
  802. package/src/internal/hardhat-network/provider/node-types.ts +86 -0
  803. package/src/internal/hardhat-network/provider/output.ts +141 -0
  804. package/src/internal/hardhat-network/provider/provider.ts +676 -0
  805. package/src/internal/hardhat-network/provider/return-data.ts +7 -0
  806. package/src/internal/hardhat-network/provider/utils/assertions.ts +13 -0
  807. package/src/internal/hardhat-network/provider/utils/convertToEdr.ts +277 -0
  808. package/src/internal/hardhat-network/provider/utils/disk-cache.ts +7 -0
  809. package/src/internal/hardhat-network/provider/utils/fork-recomendations-banner.ts +48 -0
  810. package/src/internal/hardhat-network/provider/utils/getCurrentTimestamp.ts +3 -0
  811. package/src/internal/hardhat-network/provider/utils/isHexPrefixed.ts +3 -0
  812. package/src/internal/hardhat-network/provider/utils/makeAccount.ts +25 -0
  813. package/src/internal/hardhat-network/provider/utils/makeCommon.ts +20 -0
  814. package/src/internal/hardhat-network/provider/utils/makeForkClient.ts +177 -0
  815. package/src/internal/hardhat-network/provider/utils/random.ts +64 -0
  816. package/src/internal/hardhat-network/provider/utils/reorgs-protection.ts +40 -0
  817. package/src/internal/hardhat-network/provider/vm/exit.ts +7 -0
  818. package/src/internal/hardhat-network/provider/vm/minimal-vm.ts +114 -0
  819. package/src/internal/hardhat-network/provider/vm/types.ts +39 -0
  820. package/src/internal/hardhat-network/stack-traces/compiler-to-model.ts +7 -0
  821. package/src/internal/hardhat-network/stack-traces/consoleLogger.ts +236 -0
  822. package/src/internal/hardhat-network/stack-traces/constants.ts +2 -0
  823. package/src/internal/hardhat-network/stack-traces/debug.ts +7 -0
  824. package/src/internal/hardhat-network/stack-traces/library-utils.ts +7 -0
  825. package/src/internal/hardhat-network/stack-traces/logger.ts +422 -0
  826. package/src/internal/hardhat-network/stack-traces/message-trace.ts +12 -0
  827. package/src/internal/hardhat-network/stack-traces/panic-errors.ts +32 -0
  828. package/src/internal/hardhat-network/stack-traces/solidity-errors.ts +447 -0
  829. package/src/internal/hardhat-network/stack-traces/solidity-stack-trace.ts +111 -0
  830. package/src/internal/hardhat-network/stack-traces/solidityTracer.ts +7 -0
  831. package/src/internal/hardhat-network/stack-traces/vm-trace-decoder.ts +42 -0
  832. package/src/internal/hardhat-network/stack-traces/vm-tracer.ts +7 -0
  833. package/src/internal/lib/hardhat-lib.ts +52 -0
  834. package/src/internal/reset.ts +35 -0
  835. package/src/internal/sentry/anonymizer.ts +351 -0
  836. package/src/internal/sentry/reporter.ts +173 -0
  837. package/src/internal/sentry/subprocess.ts +76 -0
  838. package/src/internal/sentry/transport.ts +50 -0
  839. package/src/internal/solidity/compilation-job.ts +342 -0
  840. package/src/internal/solidity/compiler/compiler-input.ts +26 -0
  841. package/src/internal/solidity/compiler/downloader.ts +384 -0
  842. package/src/internal/solidity/compiler/index.ts +97 -0
  843. package/src/internal/solidity/compiler/solc-info.ts +73 -0
  844. package/src/internal/solidity/compiler/solcjs-runner.js +34 -0
  845. package/src/internal/solidity/dependencyGraph.ts +195 -0
  846. package/src/internal/solidity/parse.ts +71 -0
  847. package/src/internal/solidity/resolver.ts +563 -0
  848. package/src/internal/util/abi-helpers.ts +55 -0
  849. package/src/internal/util/bigint.ts +66 -0
  850. package/src/internal/util/caller-package.ts +47 -0
  851. package/src/internal/util/ci-detection.ts +59 -0
  852. package/src/internal/util/console.ts +23 -0
  853. package/src/internal/util/date.ts +15 -0
  854. package/src/internal/util/download.ts +65 -0
  855. package/src/internal/util/event-emitter.ts +101 -0
  856. package/src/internal/util/fs-utils.ts +223 -0
  857. package/src/internal/util/glob.ts +31 -0
  858. package/src/internal/util/global-dir.ts +146 -0
  859. package/src/internal/util/hardforks.ts +123 -0
  860. package/src/internal/util/hash.ts +16 -0
  861. package/src/internal/util/io-ts.ts +47 -0
  862. package/src/internal/util/jsonrpc.ts +111 -0
  863. package/src/internal/util/keccak.ts +5 -0
  864. package/src/internal/util/keys-derivation.ts +31 -0
  865. package/src/internal/util/lang.ts +21 -0
  866. package/src/internal/util/lazy.ts +247 -0
  867. package/src/internal/util/multi-process-mutex.ts +133 -0
  868. package/src/internal/util/packageInfo.ts +68 -0
  869. package/src/internal/util/platform.ts +5 -0
  870. package/src/internal/util/proxy.ts +18 -0
  871. package/src/internal/util/report-telemetry-consent.ts +19 -0
  872. package/src/internal/util/scripts-runner.ts +119 -0
  873. package/src/internal/util/strings.ts +31 -0
  874. package/src/internal/util/unsafe.ts +15 -0
  875. package/src/internal/util/wei-values.ts +65 -0
  876. package/src/internal/vendor/await-semaphore/index.ts +66 -0
  877. package/src/plugins-testing.ts +1 -0
  878. package/src/plugins.ts +7 -0
  879. package/src/profiling.ts +37 -0
  880. package/src/register.ts +54 -0
  881. package/src/types/artifacts.ts +252 -0
  882. package/src/types/builtin-tasks/compile.ts +108 -0
  883. package/src/types/builtin-tasks/index.ts +2 -0
  884. package/src/types/builtin-tasks/node.ts +6 -0
  885. package/src/types/config.ts +299 -0
  886. package/src/types/index.ts +5 -0
  887. package/src/types/provider.ts +58 -0
  888. package/src/types/runtime.ts +262 -0
  889. package/src/utils/contract-names.ts +171 -0
  890. package/src/utils/remappings.ts +17 -0
  891. package/src/utils/source-names.ts +245 -0
  892. package/types/artifacts.d.ts +237 -0
  893. package/types/artifacts.d.ts.map +1 -0
  894. package/types/artifacts.js +3 -0
  895. package/types/artifacts.js.map +1 -0
  896. package/types/builtin-tasks/compile.d.ts +95 -0
  897. package/types/builtin-tasks/compile.d.ts.map +1 -0
  898. package/types/builtin-tasks/compile.js +12 -0
  899. package/types/builtin-tasks/compile.js.map +1 -0
  900. package/types/builtin-tasks/index.d.ts +3 -0
  901. package/types/builtin-tasks/index.d.ts.map +1 -0
  902. package/types/builtin-tasks/index.js +19 -0
  903. package/types/builtin-tasks/index.js.map +1 -0
  904. package/types/builtin-tasks/node.d.ts +9 -0
  905. package/types/builtin-tasks/node.d.ts.map +1 -0
  906. package/types/builtin-tasks/node.js +3 -0
  907. package/types/builtin-tasks/node.js.map +1 -0
  908. package/types/config.d.ts +222 -0
  909. package/types/config.d.ts.map +1 -0
  910. package/types/config.js +16 -0
  911. package/types/config.js.map +1 -0
  912. package/types/index.d.ts +6 -0
  913. package/types/index.d.ts.map +1 -0
  914. package/types/index.js +22 -0
  915. package/types/index.js.map +1 -0
  916. package/types/provider.d.ts +48 -0
  917. package/types/provider.d.ts.map +1 -0
  918. package/types/provider.js +3 -0
  919. package/types/provider.js.map +1 -0
  920. package/types/runtime.d.ts +167 -0
  921. package/types/runtime.d.ts.map +1 -0
  922. package/types/runtime.js +3 -0
  923. package/types/runtime.js.map +1 -0
  924. package/utils/contract-names.d.ts +36 -0
  925. package/utils/contract-names.d.ts.map +1 -0
  926. package/utils/contract-names.js +140 -0
  927. package/utils/contract-names.js.map +1 -0
  928. package/utils/remappings.d.ts +2 -0
  929. package/utils/remappings.d.ts.map +1 -0
  930. package/utils/remappings.js +15 -0
  931. package/utils/remappings.js.map +1 -0
  932. package/utils/source-names.d.ts +60 -0
  933. package/utils/source-names.d.ts.map +1 -0
  934. package/utils/source-names.js +201 -0
  935. package/utils/source-names.js.map +1 -0
@@ -0,0 +1,266 @@
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.FixedSenderProvider = exports.AutomaticSenderProvider = exports.HDWalletProvider = exports.LocalAccountsProvider = void 0;
27
+ const t = __importStar(require("io-ts"));
28
+ const eth_sig_util_1 = require("@metamask/eth-sig-util");
29
+ const ethereumjs_tx_1 = require("@nomicfoundation/ethereumjs-tx");
30
+ const errors_1 = require("../errors");
31
+ const errors_list_1 = require("../errors-list");
32
+ const base_types_1 = require("../jsonrpc/types/base-types");
33
+ const transactionRequest_1 = require("../jsonrpc/types/input/transactionRequest");
34
+ const validation_1 = require("../jsonrpc/types/input/validation");
35
+ const chainId_1 = require("./chainId");
36
+ const util_1 = require("./util");
37
+ const wrapper_1 = require("./wrapper");
38
+ class LocalAccountsProvider extends chainId_1.ProviderWrapperWithChainId {
39
+ constructor(provider, localAccountsHexPrivateKeys) {
40
+ super(provider);
41
+ this._addressToPrivateKey = new Map();
42
+ this._initializePrivateKeys(localAccountsHexPrivateKeys);
43
+ }
44
+ async request(args) {
45
+ const { ecsign, hashPersonalMessage, toRpcSig, toBytes, bytesToHex: bufferToHex, } = await Promise.resolve().then(() => __importStar(require("@nomicfoundation/ethereumjs-util")));
46
+ if (args.method === "eth_accounts" ||
47
+ args.method === "eth_requestAccounts") {
48
+ return [...this._addressToPrivateKey.keys()];
49
+ }
50
+ const params = this._getParams(args);
51
+ if (args.method === "eth_sign") {
52
+ if (params.length > 0) {
53
+ const [address, data] = (0, validation_1.validateParams)(params, base_types_1.rpcAddress, base_types_1.rpcData);
54
+ if (address !== undefined) {
55
+ if (data === undefined) {
56
+ throw new errors_1.HardhatError(errors_list_1.ERRORS.NETWORK.ETHSIGN_MISSING_DATA_PARAM);
57
+ }
58
+ const privateKey = this._getPrivateKeyForAddress(address);
59
+ const messageHash = hashPersonalMessage(toBytes(data));
60
+ const signature = ecsign(messageHash, privateKey);
61
+ return toRpcSig(signature.v, signature.r, signature.s);
62
+ }
63
+ }
64
+ }
65
+ if (args.method === "personal_sign") {
66
+ if (params.length > 0) {
67
+ const [data, address] = (0, validation_1.validateParams)(params, base_types_1.rpcData, base_types_1.rpcAddress);
68
+ if (data !== undefined) {
69
+ if (address === undefined) {
70
+ throw new errors_1.HardhatError(errors_list_1.ERRORS.NETWORK.PERSONALSIGN_MISSING_ADDRESS_PARAM);
71
+ }
72
+ const privateKey = this._getPrivateKeyForAddress(address);
73
+ const messageHash = hashPersonalMessage(toBytes(data));
74
+ const signature = ecsign(messageHash, privateKey);
75
+ return toRpcSig(signature.v, signature.r, signature.s);
76
+ }
77
+ }
78
+ }
79
+ if (args.method === "eth_signTypedData_v4") {
80
+ const [address, data] = (0, validation_1.validateParams)(params, base_types_1.rpcAddress, t.any);
81
+ if (data === undefined) {
82
+ throw new errors_1.HardhatError(errors_list_1.ERRORS.NETWORK.ETHSIGN_MISSING_DATA_PARAM);
83
+ }
84
+ let typedMessage = data;
85
+ if (typeof data === "string") {
86
+ try {
87
+ typedMessage = JSON.parse(data);
88
+ }
89
+ catch {
90
+ throw new errors_1.HardhatError(errors_list_1.ERRORS.NETWORK.ETHSIGN_TYPED_DATA_V4_INVALID_DATA_PARAM);
91
+ }
92
+ }
93
+ // if we don't manage the address, the method is forwarded
94
+ const privateKey = this._getPrivateKeyForAddressOrNull(address);
95
+ if (privateKey !== null) {
96
+ return (0, eth_sig_util_1.signTypedData)({
97
+ privateKey,
98
+ version: eth_sig_util_1.SignTypedDataVersion.V4,
99
+ data: typedMessage,
100
+ });
101
+ }
102
+ }
103
+ if (args.method === "eth_sendTransaction" && params.length > 0) {
104
+ const [txRequest] = (0, validation_1.validateParams)(params, transactionRequest_1.rpcTransactionRequest);
105
+ if (txRequest.gas === undefined) {
106
+ throw new errors_1.HardhatError(errors_list_1.ERRORS.NETWORK.MISSING_TX_PARAM_TO_SIGN_LOCALLY, { param: "gas" });
107
+ }
108
+ if (txRequest.from === undefined) {
109
+ throw new errors_1.HardhatError(errors_list_1.ERRORS.NETWORK.MISSING_TX_PARAM_TO_SIGN_LOCALLY, { param: "from" });
110
+ }
111
+ const hasGasPrice = txRequest.gasPrice !== undefined;
112
+ const hasEip1559Fields = txRequest.maxFeePerGas !== undefined ||
113
+ txRequest.maxPriorityFeePerGas !== undefined;
114
+ if (!hasGasPrice && !hasEip1559Fields) {
115
+ throw new errors_1.HardhatError(errors_list_1.ERRORS.NETWORK.MISSING_FEE_PRICE_FIELDS);
116
+ }
117
+ if (hasGasPrice && hasEip1559Fields) {
118
+ throw new errors_1.HardhatError(errors_list_1.ERRORS.NETWORK.INCOMPATIBLE_FEE_PRICE_FIELDS);
119
+ }
120
+ if (hasEip1559Fields && txRequest.maxFeePerGas === undefined) {
121
+ throw new errors_1.HardhatError(errors_list_1.ERRORS.NETWORK.MISSING_TX_PARAM_TO_SIGN_LOCALLY, { param: "maxFeePerGas" });
122
+ }
123
+ if (hasEip1559Fields && txRequest.maxPriorityFeePerGas === undefined) {
124
+ throw new errors_1.HardhatError(errors_list_1.ERRORS.NETWORK.MISSING_TX_PARAM_TO_SIGN_LOCALLY, { param: "maxPriorityFeePerGas" });
125
+ }
126
+ if (txRequest.nonce === undefined) {
127
+ txRequest.nonce = await this._getNonce(txRequest.from);
128
+ }
129
+ const privateKey = this._getPrivateKeyForAddress(txRequest.from);
130
+ const chainId = await this._getChainId();
131
+ const rawTransaction = await this._getSignedTransaction(txRequest, chainId, privateKey);
132
+ return this._wrappedProvider.request({
133
+ method: "eth_sendRawTransaction",
134
+ params: [bufferToHex(rawTransaction)],
135
+ });
136
+ }
137
+ return this._wrappedProvider.request(args);
138
+ }
139
+ _initializePrivateKeys(localAccountsHexPrivateKeys) {
140
+ const { bytesToHex: bufferToHex, toBytes, privateToAddress, } = require("@nomicfoundation/ethereumjs-util");
141
+ const privateKeys = localAccountsHexPrivateKeys.map((h) => toBytes(h));
142
+ for (const pk of privateKeys) {
143
+ const address = bufferToHex(privateToAddress(pk)).toLowerCase();
144
+ this._addressToPrivateKey.set(address, pk);
145
+ }
146
+ }
147
+ _getPrivateKeyForAddress(address) {
148
+ const { bytesToHex: bufferToHex, } = require("@nomicfoundation/ethereumjs-util");
149
+ const pk = this._addressToPrivateKey.get(bufferToHex(address));
150
+ if (pk === undefined) {
151
+ throw new errors_1.HardhatError(errors_list_1.ERRORS.NETWORK.NOT_LOCAL_ACCOUNT, {
152
+ account: bufferToHex(address),
153
+ });
154
+ }
155
+ return pk;
156
+ }
157
+ _getPrivateKeyForAddressOrNull(address) {
158
+ try {
159
+ return this._getPrivateKeyForAddress(address);
160
+ }
161
+ catch {
162
+ return null;
163
+ }
164
+ }
165
+ async _getNonce(address) {
166
+ const { bytesToHex: bufferToHex } = await Promise.resolve().then(() => __importStar(require("@nomicfoundation/ethereumjs-util")));
167
+ const response = (await this._wrappedProvider.request({
168
+ method: "eth_getTransactionCount",
169
+ params: [bufferToHex(address), "pending"],
170
+ }));
171
+ return (0, base_types_1.rpcQuantityToBigInt)(response);
172
+ }
173
+ async _getSignedTransaction(transactionRequest, chainId, privateKey) {
174
+ const { AccessListEIP2930Transaction, LegacyTransaction } = await Promise.resolve().then(() => __importStar(require("@nomicfoundation/ethereumjs-tx")));
175
+ const { Common } = await Promise.resolve().then(() => __importStar(require("@nomicfoundation/ethereumjs-common")));
176
+ const txData = {
177
+ ...transactionRequest,
178
+ gasLimit: transactionRequest.gas,
179
+ };
180
+ // We don't specify a hardfork here because the default hardfork should
181
+ // support all possible types of transactions.
182
+ // If the network doesn't support a given transaction type, then the
183
+ // transaction it will be rejected somewhere else.
184
+ const common = Common.custom({ chainId, networkId: chainId });
185
+ // we convert the access list to the type
186
+ // that AccessListEIP2930Transaction expects
187
+ const accessList = txData.accessList?.map(({ address, storageKeys }) => [address, storageKeys]);
188
+ let transaction;
189
+ if (txData.maxFeePerGas !== undefined) {
190
+ transaction = ethereumjs_tx_1.FeeMarketEIP1559Transaction.fromTxData({
191
+ ...txData,
192
+ accessList,
193
+ gasPrice: undefined,
194
+ }, { common });
195
+ }
196
+ else if (accessList !== undefined) {
197
+ transaction = AccessListEIP2930Transaction.fromTxData({
198
+ ...txData,
199
+ accessList,
200
+ }, { common });
201
+ }
202
+ else {
203
+ transaction = LegacyTransaction.fromTxData(txData, { common });
204
+ }
205
+ const signedTransaction = transaction.sign(privateKey);
206
+ return signedTransaction.serialize();
207
+ }
208
+ }
209
+ exports.LocalAccountsProvider = LocalAccountsProvider;
210
+ class HDWalletProvider extends LocalAccountsProvider {
211
+ constructor(provider, mnemonic, hdpath = "m/44'/60'/0'/0/", initialIndex = 0, count = 10, passphrase = "") {
212
+ // NOTE: If mnemonic has space or newline at the beginning or end, it will be trimmed.
213
+ // This is because mnemonic containing them may generate different private keys.
214
+ const trimmedMnemonic = mnemonic.trim();
215
+ const privateKeys = (0, util_1.derivePrivateKeys)(trimmedMnemonic, hdpath, initialIndex, count, passphrase);
216
+ const { bytesToHex: bufferToHex, } = require("@nomicfoundation/ethereumjs-util");
217
+ const privateKeysAsHex = privateKeys.map((pk) => bufferToHex(pk));
218
+ super(provider, privateKeysAsHex);
219
+ }
220
+ }
221
+ exports.HDWalletProvider = HDWalletProvider;
222
+ class SenderProvider extends wrapper_1.ProviderWrapper {
223
+ async request(args) {
224
+ const method = args.method;
225
+ const params = this._getParams(args);
226
+ if (method === "eth_sendTransaction" ||
227
+ method === "eth_call" ||
228
+ method === "eth_estimateGas") {
229
+ // TODO: Should we validate this type?
230
+ const tx = params[0];
231
+ if (tx !== undefined && tx.from === undefined) {
232
+ const senderAccount = await this._getSender();
233
+ if (senderAccount !== undefined) {
234
+ tx.from = senderAccount;
235
+ }
236
+ else if (method === "eth_sendTransaction") {
237
+ throw new errors_1.HardhatError(errors_list_1.ERRORS.NETWORK.NO_REMOTE_ACCOUNT_AVAILABLE);
238
+ }
239
+ }
240
+ }
241
+ return this._wrappedProvider.request(args);
242
+ }
243
+ }
244
+ class AutomaticSenderProvider extends SenderProvider {
245
+ async _getSender() {
246
+ if (this._firstAccount === undefined) {
247
+ const accounts = (await this._wrappedProvider.request({
248
+ method: "eth_accounts",
249
+ }));
250
+ this._firstAccount = accounts[0];
251
+ }
252
+ return this._firstAccount;
253
+ }
254
+ }
255
+ exports.AutomaticSenderProvider = AutomaticSenderProvider;
256
+ class FixedSenderProvider extends SenderProvider {
257
+ constructor(provider, _sender) {
258
+ super(provider);
259
+ this._sender = _sender;
260
+ }
261
+ async _getSender() {
262
+ return this._sender;
263
+ }
264
+ }
265
+ exports.FixedSenderProvider = FixedSenderProvider;
266
+ //# sourceMappingURL=accounts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../../src/internal/core/providers/accounts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { EIP1193Provider, EthereumProvider, JsonRpcRequest, JsonRpcResponse, RequestArguments } from "../../../types";
2
+ import { EventEmitterWrapper } from "../../util/event-emitter";
3
+ /**
4
+ * Hardhat predates the EIP1193 (Javascript Ethereum Provider) standard. It was
5
+ * built following a draft of that spec, but then it changed completely. We
6
+ * still need to support the draft api, but internally we use EIP1193. So we
7
+ * use BackwardsCompatibilityProviderAdapter to wrap EIP1193 providers before
8
+ * exposing them to the user.
9
+ */
10
+ export declare class BackwardsCompatibilityProviderAdapter extends EventEmitterWrapper implements EthereumProvider {
11
+ private readonly _provider;
12
+ constructor(_provider: EIP1193Provider);
13
+ request(args: RequestArguments): Promise<unknown>;
14
+ send(method: string, params?: any[]): Promise<any>;
15
+ sendAsync(payload: JsonRpcRequest, callback: (error: any, response: JsonRpcResponse) => void): void;
16
+ private _sendJsonRpcRequest;
17
+ }
18
+ //# sourceMappingURL=backwards-compatibility.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backwards-compatibility.d.ts","sourceRoot":"","sources":["../../../src/internal/core/providers/backwards-compatibility.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D;;;;;;GAMG;AACH,qBAAa,qCACX,SAAQ,mBACR,YAAW,gBAAgB;IAEf,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,eAAe;IAQhD,OAAO,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAIjD,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAIlD,SAAS,CACd,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,eAAe,KAAK,IAAI,GACxD,IAAI;YAIO,mBAAmB;CAkClC"}
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.BackwardsCompatibilityProviderAdapter = void 0;
7
+ const util_1 = __importDefault(require("util"));
8
+ const event_emitter_1 = require("../../util/event-emitter");
9
+ /**
10
+ * Hardhat predates the EIP1193 (Javascript Ethereum Provider) standard. It was
11
+ * built following a draft of that spec, but then it changed completely. We
12
+ * still need to support the draft api, but internally we use EIP1193. So we
13
+ * use BackwardsCompatibilityProviderAdapter to wrap EIP1193 providers before
14
+ * exposing them to the user.
15
+ */
16
+ class BackwardsCompatibilityProviderAdapter extends event_emitter_1.EventEmitterWrapper {
17
+ constructor(_provider) {
18
+ super(_provider);
19
+ this._provider = _provider;
20
+ // We bind everything here because some test suits break otherwise
21
+ this.sendAsync = this.sendAsync.bind(this);
22
+ this.send = this.send.bind(this);
23
+ this._sendJsonRpcRequest = this._sendJsonRpcRequest.bind(this);
24
+ }
25
+ request(args) {
26
+ return this._provider.request(args);
27
+ }
28
+ send(method, params) {
29
+ return this._provider.request({ method, params });
30
+ }
31
+ sendAsync(payload, callback) {
32
+ util_1.default.callbackify(() => this._sendJsonRpcRequest(payload))(callback);
33
+ }
34
+ async _sendJsonRpcRequest(request) {
35
+ const response = {
36
+ id: request.id,
37
+ jsonrpc: "2.0",
38
+ };
39
+ try {
40
+ response.result = await this._provider.request({
41
+ method: request.method,
42
+ params: request.params,
43
+ });
44
+ }
45
+ catch (error) {
46
+ if (error.code === undefined) {
47
+ // eslint-disable-next-line @nomicfoundation/hardhat-internal-rules/only-hardhat-error
48
+ throw error;
49
+ }
50
+ response.error = {
51
+ // This might be a mistake, but I'm leaving it as is just in case,
52
+ // because it's not obvious what we should do here.
53
+ // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions
54
+ code: error.code ? +error.code : -1,
55
+ message: error.message,
56
+ data: {
57
+ stack: error.stack,
58
+ name: error.name,
59
+ },
60
+ };
61
+ }
62
+ return response;
63
+ }
64
+ }
65
+ exports.BackwardsCompatibilityProviderAdapter = BackwardsCompatibilityProviderAdapter;
66
+ //# sourceMappingURL=backwards-compatibility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backwards-compatibility.js","sourceRoot":"","sources":["../../../src/internal/core/providers/backwards-compatibility.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AASxB,4DAA+D;AAE/D;;;;;;GAMG;AACH,MAAa,qCACX,SAAQ,mCAAmB;IAG3B,YAA6B,SAA0B;QACrD,KAAK,CAAC,SAAS,CAAC,CAAC;QADU,cAAS,GAAT,SAAS,CAAiB;QAErD,kEAAkE;QAClE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAQ,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAQ,CAAC;QACxC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAQ,CAAC;IACxE,CAAC;IAEM,OAAO,CAAC,IAAsB;QACnC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAEM,IAAI,CAAC,MAAc,EAAE,MAAc;QACxC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACpD,CAAC;IAEM,SAAS,CACd,OAAuB,EACvB,QAAyD;QAEzD,cAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACtE,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAC/B,OAAuB;QAEvB,MAAM,QAAQ,GAAoB;YAChC,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,OAAO,EAAE,KAAK;SACf,CAAC;QAEF,IAAI;YACF,QAAQ,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;gBAC7C,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC,CAAC;SACJ;QAAC,OAAO,KAAU,EAAE;YACnB,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE;gBAC5B,sFAAsF;gBACtF,MAAM,KAAK,CAAC;aACb;YAED,QAAQ,CAAC,KAAK,GAAG;gBACf,kEAAkE;gBAClE,mDAAmD;gBACnD,yEAAyE;gBACzE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnC,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,IAAI,EAAE;oBACJ,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,IAAI,EAAE,KAAK,CAAC,IAAI;iBACjB;aACF,CAAC;SACH;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AA7DD,sFA6DC"}
@@ -0,0 +1,15 @@
1
+ import { EIP1193Provider, RequestArguments } from "../../../types";
2
+ import { ProviderWrapper } from "./wrapper";
3
+ export declare abstract class ProviderWrapperWithChainId extends ProviderWrapper {
4
+ private _chainId;
5
+ protected _getChainId(): Promise<number>;
6
+ private _getChainIdFromEthChainId;
7
+ private _getChainIdFromEthNetVersion;
8
+ }
9
+ export declare class ChainIdValidatorProvider extends ProviderWrapperWithChainId {
10
+ private readonly _expectedChainId;
11
+ private _alreadyValidated;
12
+ constructor(provider: EIP1193Provider, _expectedChainId: number);
13
+ request(args: RequestArguments): Promise<unknown>;
14
+ }
15
+ //# sourceMappingURL=chainId.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chainId.d.ts","sourceRoot":"","sources":["../../../src/internal/core/providers/chainId.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAKnE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,8BAAsB,0BAA2B,SAAQ,eAAe;IACtE,OAAO,CAAC,QAAQ,CAAqB;cAErB,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;YAahC,yBAAyB;YAQzB,4BAA4B;CAS3C;AAED,qBAAa,wBAAyB,SAAQ,0BAA0B;IAKpE,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAJnC,OAAO,CAAC,iBAAiB,CAAS;gBAGhC,QAAQ,EAAE,eAAe,EACR,gBAAgB,EAAE,MAAM;IAK9B,OAAO,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;CAe/D"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChainIdValidatorProvider = exports.ProviderWrapperWithChainId = void 0;
4
+ const errors_1 = require("../errors");
5
+ const errors_list_1 = require("../errors-list");
6
+ const base_types_1 = require("../jsonrpc/types/base-types");
7
+ const wrapper_1 = require("./wrapper");
8
+ class ProviderWrapperWithChainId extends wrapper_1.ProviderWrapper {
9
+ async _getChainId() {
10
+ if (this._chainId === undefined) {
11
+ try {
12
+ this._chainId = await this._getChainIdFromEthChainId();
13
+ }
14
+ catch {
15
+ // If eth_chainId fails we default to net_version
16
+ this._chainId = await this._getChainIdFromEthNetVersion();
17
+ }
18
+ }
19
+ return this._chainId;
20
+ }
21
+ async _getChainIdFromEthChainId() {
22
+ const id = (await this._wrappedProvider.request({
23
+ method: "eth_chainId",
24
+ }));
25
+ return (0, base_types_1.rpcQuantityToNumber)(id);
26
+ }
27
+ async _getChainIdFromEthNetVersion() {
28
+ const id = (await this._wrappedProvider.request({
29
+ method: "net_version",
30
+ }));
31
+ // There's a node returning this as decimal instead of QUANTITY.
32
+ // TODO: Document here which node does that
33
+ return id.startsWith("0x") ? (0, base_types_1.rpcQuantityToNumber)(id) : parseInt(id, 10);
34
+ }
35
+ }
36
+ exports.ProviderWrapperWithChainId = ProviderWrapperWithChainId;
37
+ class ChainIdValidatorProvider extends ProviderWrapperWithChainId {
38
+ constructor(provider, _expectedChainId) {
39
+ super(provider);
40
+ this._expectedChainId = _expectedChainId;
41
+ this._alreadyValidated = false;
42
+ }
43
+ async request(args) {
44
+ if (!this._alreadyValidated) {
45
+ const actualChainId = await this._getChainId();
46
+ if (actualChainId !== this._expectedChainId) {
47
+ throw new errors_1.HardhatError(errors_list_1.ERRORS.NETWORK.INVALID_GLOBAL_CHAIN_ID, {
48
+ configChainId: this._expectedChainId,
49
+ connectionChainId: actualChainId,
50
+ });
51
+ }
52
+ this._alreadyValidated = true;
53
+ }
54
+ return this._wrappedProvider.request(args);
55
+ }
56
+ }
57
+ exports.ChainIdValidatorProvider = ChainIdValidatorProvider;
58
+ //# sourceMappingURL=chainId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chainId.js","sourceRoot":"","sources":["../../../src/internal/core/providers/chainId.ts"],"names":[],"mappings":";;;AACA,sCAAyC;AACzC,gDAAwC;AACxC,4DAAkE;AAElE,uCAA4C;AAE5C,MAAsB,0BAA2B,SAAQ,yBAAe;IAG5D,KAAK,CAAC,WAAW;QACzB,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;YAC/B,IAAI;gBACF,IAAI,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,yBAAyB,EAAE,CAAC;aACxD;YAAC,MAAM;gBACN,iDAAiD;gBACjD,IAAI,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,4BAA4B,EAAE,CAAC;aAC3D;SACF;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAEO,KAAK,CAAC,yBAAyB;QACrC,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;YAC9C,MAAM,EAAE,aAAa;SACtB,CAAC,CAAW,CAAC;QAEd,OAAO,IAAA,gCAAmB,EAAC,EAAE,CAAC,CAAC;IACjC,CAAC;IAEO,KAAK,CAAC,4BAA4B;QACxC,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;YAC9C,MAAM,EAAE,aAAa;SACtB,CAAC,CAAW,CAAC;QAEd,gEAAgE;QAChE,2CAA2C;QAC3C,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAA,gCAAmB,EAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1E,CAAC;CACF;AAjCD,gEAiCC;AAED,MAAa,wBAAyB,SAAQ,0BAA0B;IAGtE,YACE,QAAyB,EACR,gBAAwB;QAEzC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAFC,qBAAgB,GAAhB,gBAAgB,CAAQ;QAJnC,sBAAiB,GAAG,KAAK,CAAC;IAOlC,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,IAAsB;QACzC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAC3B,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YAC/C,IAAI,aAAa,KAAK,IAAI,CAAC,gBAAgB,EAAE;gBAC3C,MAAM,IAAI,qBAAY,CAAC,oBAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE;oBAC7D,aAAa,EAAE,IAAI,CAAC,gBAAgB;oBACpC,iBAAiB,EAAE,aAAa;iBACjC,CAAC,CAAC;aACJ;YAED,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;SAC/B;QAED,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;CACF;AAzBD,4DAyBC"}
@@ -0,0 +1,5 @@
1
+ import type { Artifacts, EIP1193Provider, EthereumProvider, HardhatConfig, HDAccountsUserConfig, HttpNetworkAccountsUserConfig, NetworkConfig, ProviderExtender } from "../../../types";
2
+ export declare function isHDAccountsConfig(accounts?: HttpNetworkAccountsUserConfig): accounts is HDAccountsUserConfig;
3
+ export declare function createProvider(config: HardhatConfig, networkName: string, artifacts?: Artifacts, extenders?: ProviderExtender[]): Promise<EthereumProvider>;
4
+ export declare function applyProviderWrappers(provider: EIP1193Provider, netConfig: Partial<NetworkConfig>, extenders: ProviderExtender[]): EIP1193Provider;
5
+ //# sourceMappingURL=construction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"construction.d.ts","sourceRoot":"","sources":["../../../src/internal/core/providers/construction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,aAAa,EAEb,oBAAoB,EACpB,6BAA6B,EAE7B,aAAa,EACb,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AAYxB,wBAAgB,kBAAkB,CAChC,QAAQ,CAAC,EAAE,6BAA6B,GACvC,QAAQ,IAAI,oBAAoB,CAElC;AAoBD,wBAAsB,cAAc,CAClC,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,SAAS,EACrB,SAAS,GAAE,gBAAgB,EAAO,GACjC,OAAO,CAAC,gBAAgB,CAAC,CAqG3B;AAED,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,EACjC,SAAS,EAAE,gBAAgB,EAAE,GAC5B,eAAe,CAmGjB"}
@@ -0,0 +1,166 @@
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.applyProviderWrappers = exports.createProvider = exports.isHDAccountsConfig = void 0;
27
+ const constants_1 = require("../../constants");
28
+ const date_1 = require("../../util/date");
29
+ const util_1 = require("./util");
30
+ function isHDAccountsConfig(accounts) {
31
+ return accounts !== undefined && Object.keys(accounts).includes("mnemonic");
32
+ }
33
+ exports.isHDAccountsConfig = isHDAccountsConfig;
34
+ function isResolvedHttpNetworkConfig(netConfig) {
35
+ return "url" in netConfig;
36
+ }
37
+ // This function is let's you import a provider dynamically in a pretty
38
+ // type-safe way.
39
+ // `ProviderNameT` and `name` must be the same literal string. TS enforces it.
40
+ // `ModuleT` and `filePath` must also be the same, but this is not enforced.
41
+ function importProvider(filePath, name) {
42
+ const mod = require(filePath);
43
+ return mod[name];
44
+ }
45
+ async function createProvider(config, networkName, artifacts, extenders = []) {
46
+ let eip1193Provider;
47
+ const networkConfig = config.networks[networkName];
48
+ const paths = config.paths;
49
+ if (networkName === constants_1.HARDHAT_NETWORK_NAME) {
50
+ const hardhatNetConfig = networkConfig;
51
+ const { createHardhatNetworkProvider } = await Promise.resolve().then(() => __importStar(require("../../hardhat-network/provider/provider")));
52
+ let forkConfig;
53
+ if (hardhatNetConfig.forking?.enabled === true &&
54
+ hardhatNetConfig.forking?.url !== undefined) {
55
+ forkConfig = {
56
+ jsonRpcUrl: hardhatNetConfig.forking?.url,
57
+ blockNumber: hardhatNetConfig.forking?.blockNumber,
58
+ httpHeaders: hardhatNetConfig.forking.httpHeaders,
59
+ };
60
+ }
61
+ const accounts = (0, util_1.normalizeHardhatNetworkAccountsConfig)(hardhatNetConfig.accounts);
62
+ const { getForkCacheDirPath } = require("../../hardhat-network/provider/utils/disk-cache");
63
+ eip1193Provider = await createHardhatNetworkProvider({
64
+ chainId: hardhatNetConfig.chainId,
65
+ networkId: hardhatNetConfig.chainId,
66
+ hardfork: hardhatNetConfig.hardfork,
67
+ blockGasLimit: hardhatNetConfig.blockGasLimit,
68
+ initialBaseFeePerGas: hardhatNetConfig.initialBaseFeePerGas,
69
+ minGasPrice: hardhatNetConfig.minGasPrice,
70
+ throwOnTransactionFailures: hardhatNetConfig.throwOnTransactionFailures,
71
+ throwOnCallFailures: hardhatNetConfig.throwOnCallFailures,
72
+ automine: hardhatNetConfig.mining.auto,
73
+ intervalMining: hardhatNetConfig.mining.interval,
74
+ // This cast is valid because of the config validation and resolution
75
+ mempoolOrder: hardhatNetConfig.mining.mempool.order,
76
+ chains: hardhatNetConfig.chains,
77
+ coinbase: hardhatNetConfig.coinbase,
78
+ genesisAccounts: accounts,
79
+ allowUnlimitedContractSize: hardhatNetConfig.allowUnlimitedContractSize,
80
+ allowBlocksWithSameTimestamp: hardhatNetConfig.allowBlocksWithSameTimestamp ?? false,
81
+ initialDate: hardhatNetConfig.initialDate !== undefined
82
+ ? (0, date_1.parseDateString)(hardhatNetConfig.initialDate)
83
+ : undefined,
84
+ forkConfig,
85
+ forkCachePath: paths !== undefined ? getForkCacheDirPath(paths) : undefined,
86
+ enableTransientStorage: hardhatNetConfig.enableTransientStorage ?? false,
87
+ enableRip7212: hardhatNetConfig.enableRip7212 ?? false,
88
+ }, {
89
+ enabled: hardhatNetConfig.loggingEnabled,
90
+ }, artifacts);
91
+ }
92
+ else {
93
+ const HttpProvider = importProvider("./http", "HttpProvider");
94
+ const httpNetConfig = networkConfig;
95
+ eip1193Provider = new HttpProvider(httpNetConfig.url, networkName, httpNetConfig.httpHeaders, httpNetConfig.timeout);
96
+ }
97
+ let wrappedProvider = eip1193Provider;
98
+ for (const extender of extenders) {
99
+ wrappedProvider = await extender(wrappedProvider, config, networkName);
100
+ }
101
+ wrappedProvider = applyProviderWrappers(wrappedProvider, networkConfig, extenders);
102
+ const BackwardsCompatibilityProviderAdapter = importProvider("./backwards-compatibility", "BackwardsCompatibilityProviderAdapter");
103
+ return new BackwardsCompatibilityProviderAdapter(wrappedProvider);
104
+ }
105
+ exports.createProvider = createProvider;
106
+ function applyProviderWrappers(provider, netConfig, extenders) {
107
+ // These dependencies are lazy-loaded because they are really big.
108
+ const LocalAccountsProvider = importProvider("./accounts", "LocalAccountsProvider");
109
+ const HDWalletProvider = importProvider("./accounts", "HDWalletProvider");
110
+ const FixedSenderProvider = importProvider("./accounts", "FixedSenderProvider");
111
+ const AutomaticSenderProvider = importProvider("./accounts", "AutomaticSenderProvider");
112
+ const AutomaticGasProvider = importProvider("./gas-providers", "AutomaticGasProvider");
113
+ const FixedGasProvider = importProvider("./gas-providers", "FixedGasProvider");
114
+ const AutomaticGasPriceProvider = importProvider("./gas-providers", "AutomaticGasPriceProvider");
115
+ const FixedGasPriceProvider = importProvider("./gas-providers", "FixedGasPriceProvider");
116
+ const ChainIdValidatorProvider = importProvider("./chainId", "ChainIdValidatorProvider");
117
+ if (isResolvedHttpNetworkConfig(netConfig)) {
118
+ const accounts = netConfig.accounts;
119
+ if (Array.isArray(accounts)) {
120
+ provider = new LocalAccountsProvider(provider, accounts);
121
+ }
122
+ else if (isHDAccountsConfig(accounts)) {
123
+ provider = new HDWalletProvider(provider, accounts.mnemonic, accounts.path, accounts.initialIndex, accounts.count, accounts.passphrase);
124
+ }
125
+ // TODO: Add some extension mechanism for account plugins here
126
+ }
127
+ if (netConfig.from !== undefined) {
128
+ provider = new FixedSenderProvider(provider, netConfig.from);
129
+ }
130
+ else {
131
+ provider = new AutomaticSenderProvider(provider);
132
+ }
133
+ if (netConfig.gas === undefined || netConfig.gas === "auto") {
134
+ provider = new AutomaticGasProvider(provider, netConfig.gasMultiplier);
135
+ }
136
+ else {
137
+ provider = new FixedGasProvider(provider, netConfig.gas);
138
+ }
139
+ if (netConfig.gasPrice === undefined || netConfig.gasPrice === "auto") {
140
+ // If you use a LocalAccountsProvider or HDWalletProvider, your transactions
141
+ // are signed locally. This requires having all of their fields available,
142
+ // including the gasPrice / maxFeePerGas & maxPriorityFeePerGas.
143
+ //
144
+ // We never use those providers when using Hardhat Network, but sign within
145
+ // Hardhat Network itself. This means that we don't need to provide all the
146
+ // fields, as the missing ones will be resolved there.
147
+ //
148
+ // Hardhat Network handles this in a more performant way, so we don't use
149
+ // the AutomaticGasPriceProvider for it unless there are provider extenders.
150
+ // The reason for this is that some extenders (like hardhat-ledger's) might
151
+ // do the signing themselves, and that needs the gas price to be set.
152
+ if (isResolvedHttpNetworkConfig(netConfig) || extenders.length > 0) {
153
+ provider = new AutomaticGasPriceProvider(provider);
154
+ }
155
+ }
156
+ else {
157
+ provider = new FixedGasPriceProvider(provider, netConfig.gasPrice);
158
+ }
159
+ if (isResolvedHttpNetworkConfig(netConfig) &&
160
+ netConfig.chainId !== undefined) {
161
+ provider = new ChainIdValidatorProvider(provider, netConfig.chainId);
162
+ }
163
+ return provider;
164
+ }
165
+ exports.applyProviderWrappers = applyProviderWrappers;
166
+ //# sourceMappingURL=construction.js.map