hardhat 2.8.4 → 2.9.0-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. package/LICENSE +3 -61
  2. package/README.md +1 -1
  3. package/builtin-tasks/compile.js +86 -51
  4. package/builtin-tasks/compile.js.map +1 -1
  5. package/builtin-tasks/node.js.map +1 -1
  6. package/builtin-tasks/test.js +30 -5
  7. package/builtin-tasks/test.js.map +1 -1
  8. package/builtin-tasks/utils/solidity-files-cache.d.ts.map +1 -1
  9. package/builtin-tasks/utils/solidity-files-cache.js.map +1 -1
  10. package/internal/cli/analytics.js +2 -2
  11. package/internal/cli/analytics.js.map +1 -1
  12. package/internal/cli/cli.js +3 -3
  13. package/internal/cli/project-creation.d.ts.map +1 -1
  14. package/internal/cli/project-creation.js +23 -0
  15. package/internal/cli/project-creation.js.map +1 -1
  16. package/internal/core/config/config-loading.d.ts.map +1 -1
  17. package/internal/core/config/config-loading.js.map +1 -1
  18. package/internal/core/config/config-validation.d.ts.map +1 -1
  19. package/internal/core/config/config-validation.js +2 -2
  20. package/internal/core/config/config-validation.js.map +1 -1
  21. package/internal/core/config/default-config.d.ts +2 -0
  22. package/internal/core/config/default-config.d.ts.map +1 -1
  23. package/internal/core/config/default-config.js +1 -0
  24. package/internal/core/config/default-config.js.map +1 -1
  25. package/internal/core/errors-list.d.ts +7 -0
  26. package/internal/core/errors-list.d.ts.map +1 -1
  27. package/internal/core/errors-list.js +13 -0
  28. package/internal/core/errors-list.js.map +1 -1
  29. package/internal/core/jsonrpc/types/input/blockTag.d.ts +3 -3
  30. package/internal/core/jsonrpc/types/input/blockTag.d.ts.map +1 -1
  31. package/internal/core/providers/accounts.d.ts +1 -1
  32. package/internal/core/providers/accounts.d.ts.map +1 -1
  33. package/internal/core/providers/accounts.js +2 -2
  34. package/internal/core/providers/accounts.js.map +1 -1
  35. package/internal/core/providers/construction.d.ts.map +1 -1
  36. package/internal/core/providers/construction.js +1 -1
  37. package/internal/core/providers/construction.js.map +1 -1
  38. package/internal/core/providers/http.d.ts +5 -1
  39. package/internal/core/providers/http.d.ts.map +1 -1
  40. package/internal/core/providers/http.js +35 -31
  41. package/internal/core/providers/http.js.map +1 -1
  42. package/internal/core/providers/util.d.ts +1 -1
  43. package/internal/core/providers/util.d.ts.map +1 -1
  44. package/internal/core/providers/util.js +3 -3
  45. package/internal/core/providers/util.js.map +1 -1
  46. package/internal/hardhat-network/jsonrpc/server.d.ts.map +1 -1
  47. package/internal/hardhat-network/jsonrpc/server.js.map +1 -1
  48. package/internal/hardhat-network/provider/BlockchainBase.d.ts +26 -0
  49. package/internal/hardhat-network/provider/BlockchainBase.d.ts.map +1 -0
  50. package/internal/hardhat-network/provider/BlockchainBase.js +92 -0
  51. package/internal/hardhat-network/provider/BlockchainBase.js.map +1 -0
  52. package/internal/hardhat-network/provider/BlockchainData.d.ts +32 -0
  53. package/internal/hardhat-network/provider/BlockchainData.d.ts.map +1 -1
  54. package/internal/hardhat-network/provider/BlockchainData.js +78 -1
  55. package/internal/hardhat-network/provider/BlockchainData.js.map +1 -1
  56. package/internal/hardhat-network/provider/HardhatBlockchain.d.ts +9 -15
  57. package/internal/hardhat-network/provider/HardhatBlockchain.d.ts.map +1 -1
  58. package/internal/hardhat-network/provider/HardhatBlockchain.js +15 -73
  59. package/internal/hardhat-network/provider/HardhatBlockchain.js.map +1 -1
  60. package/internal/hardhat-network/provider/fork/ForkBlockchain.d.ts +6 -14
  61. package/internal/hardhat-network/provider/fork/ForkBlockchain.d.ts.map +1 -1
  62. package/internal/hardhat-network/provider/fork/ForkBlockchain.js +23 -73
  63. package/internal/hardhat-network/provider/fork/ForkBlockchain.js.map +1 -1
  64. package/internal/hardhat-network/provider/modules/eth.js +2 -2
  65. package/internal/hardhat-network/provider/modules/eth.js.map +1 -1
  66. package/internal/hardhat-network/provider/modules/hardhat.d.ts +3 -0
  67. package/internal/hardhat-network/provider/modules/hardhat.d.ts.map +1 -1
  68. package/internal/hardhat-network/provider/modules/hardhat.js +40 -5
  69. package/internal/hardhat-network/provider/modules/hardhat.js.map +1 -1
  70. package/internal/hardhat-network/provider/modules/logger.d.ts +4 -2
  71. package/internal/hardhat-network/provider/modules/logger.d.ts.map +1 -1
  72. package/internal/hardhat-network/provider/modules/logger.js +38 -12
  73. package/internal/hardhat-network/provider/modules/logger.js.map +1 -1
  74. package/internal/hardhat-network/provider/node-types.d.ts +1 -1
  75. package/internal/hardhat-network/provider/node-types.d.ts.map +1 -1
  76. package/internal/hardhat-network/provider/node.d.ts +9 -1
  77. package/internal/hardhat-network/provider/node.d.ts.map +1 -1
  78. package/internal/hardhat-network/provider/node.js +57 -8
  79. package/internal/hardhat-network/provider/node.js.map +1 -1
  80. package/internal/hardhat-network/provider/provider.d.ts +1 -1
  81. package/internal/hardhat-network/provider/provider.d.ts.map +1 -1
  82. package/internal/hardhat-network/provider/provider.js.map +1 -1
  83. package/internal/hardhat-network/provider/types/HardhatBlockchainInterface.d.ts +2 -1
  84. package/internal/hardhat-network/provider/types/HardhatBlockchainInterface.d.ts.map +1 -1
  85. package/internal/hardhat-network/provider/utils/makeForkClient.d.ts.map +1 -1
  86. package/internal/hardhat-network/provider/utils/makeForkClient.js +2 -1
  87. package/internal/hardhat-network/provider/utils/makeForkClient.js.map +1 -1
  88. package/internal/hardhat-network/provider/utils/putGenesisBlock.js +1 -1
  89. package/internal/hardhat-network/stack-traces/debug.js +1 -1
  90. package/internal/hardhat-network/stack-traces/debug.js.map +1 -1
  91. package/internal/hardhat-network/stack-traces/error-inferrer.d.ts.map +1 -1
  92. package/internal/hardhat-network/stack-traces/error-inferrer.js +21 -12
  93. package/internal/hardhat-network/stack-traces/error-inferrer.js.map +1 -1
  94. package/internal/hardhat-network/stack-traces/solidity-errors.js +2 -2
  95. package/internal/hardhat-network/stack-traces/solidity-errors.js.map +1 -1
  96. package/internal/hardhat-network/stack-traces/solidity-stack-trace.d.ts +3 -2
  97. package/internal/hardhat-network/stack-traces/solidity-stack-trace.d.ts.map +1 -1
  98. package/internal/solidity/compilation-job.d.ts.map +1 -1
  99. package/internal/solidity/compilation-job.js.map +1 -1
  100. package/internal/solidity/compiler/downloader.d.ts +2 -2
  101. package/internal/solidity/compiler/downloader.d.ts.map +1 -1
  102. package/internal/solidity/compiler/downloader.js +3 -3
  103. package/internal/solidity/compiler/downloader.js.map +1 -1
  104. package/internal/util/chunked-promise-all.d.ts +7 -0
  105. package/internal/util/chunked-promise-all.d.ts.map +1 -0
  106. package/internal/util/chunked-promise-all.js +31 -0
  107. package/internal/util/chunked-promise-all.js.map +1 -0
  108. package/internal/util/download.d.ts.map +1 -1
  109. package/internal/util/download.js +22 -24
  110. package/internal/util/download.js.map +1 -1
  111. package/internal/util/glob.d.ts.map +1 -1
  112. package/internal/util/glob.js.map +1 -1
  113. package/internal/util/global-dir.d.ts.map +1 -1
  114. package/internal/util/global-dir.js.map +1 -1
  115. package/internal/util/keys-derivation.d.ts +1 -1
  116. package/internal/util/keys-derivation.d.ts.map +1 -1
  117. package/internal/util/keys-derivation.js +2 -2
  118. package/internal/util/keys-derivation.js.map +1 -1
  119. package/package.json +10 -10
  120. package/sample-projects/advanced-ts/README.md +1 -1
  121. package/src/builtin-tasks/compile.ts +94 -76
  122. package/src/builtin-tasks/node.ts +2 -1
  123. package/src/builtin-tasks/test.ts +69 -11
  124. package/src/builtin-tasks/utils/solidity-files-cache.ts +3 -2
  125. package/src/internal/cli/analytics.ts +2 -2
  126. package/src/internal/cli/cli.ts +3 -3
  127. package/src/internal/cli/project-creation.ts +40 -0
  128. package/src/internal/core/config/config-loading.ts +2 -1
  129. package/src/internal/core/config/config-validation.ts +2 -0
  130. package/src/internal/core/config/default-config.ts +1 -0
  131. package/src/internal/core/errors-list.ts +13 -0
  132. package/src/internal/core/providers/accounts.ts +4 -2
  133. package/src/internal/core/providers/construction.ts +3 -1
  134. package/src/internal/core/providers/http.ts +47 -16
  135. package/src/internal/core/providers/util.ts +6 -3
  136. package/src/internal/hardhat-network/jsonrpc/server.ts +2 -1
  137. package/src/internal/hardhat-network/provider/BlockchainBase.ts +137 -0
  138. package/src/internal/hardhat-network/provider/BlockchainData.ts +144 -0
  139. package/src/internal/hardhat-network/provider/HardhatBlockchain.ts +34 -87
  140. package/src/internal/hardhat-network/provider/fork/ForkBlockchain.ts +45 -90
  141. package/src/internal/hardhat-network/provider/modules/eth.ts +2 -2
  142. package/src/internal/hardhat-network/provider/modules/hardhat.ts +51 -5
  143. package/src/internal/hardhat-network/provider/modules/logger.ts +50 -14
  144. package/src/internal/hardhat-network/provider/node-types.ts +2 -2
  145. package/src/internal/hardhat-network/provider/node.ts +81 -8
  146. package/src/internal/hardhat-network/provider/provider.ts +9 -8
  147. package/src/internal/hardhat-network/provider/types/HardhatBlockchainInterface.ts +7 -1
  148. package/src/internal/hardhat-network/provider/utils/makeForkClient.ts +2 -1
  149. package/src/internal/hardhat-network/provider/utils/putGenesisBlock.ts +1 -1
  150. package/src/internal/hardhat-network/stack-traces/debug.ts +1 -1
  151. package/src/internal/hardhat-network/stack-traces/error-inferrer.ts +21 -13
  152. package/src/internal/hardhat-network/stack-traces/solidity-errors.ts +2 -2
  153. package/src/internal/hardhat-network/stack-traces/solidity-stack-trace.ts +3 -2
  154. package/src/internal/solidity/compilation-job.ts +2 -1
  155. package/src/internal/solidity/compiler/downloader.ts +5 -3
  156. package/src/internal/util/download.ts +26 -31
  157. package/src/internal/util/glob.ts +1 -0
  158. package/src/internal/util/global-dir.ts +2 -1
  159. package/src/internal/util/keys-derivation.ts +3 -2
  160. package/src/types/config.ts +4 -0
  161. package/types/config.d.ts +4 -0
  162. package/types/config.d.ts.map +1 -1
@@ -182,7 +182,7 @@ function flattenSourceReference(sourceReference?: SourceReference) {
182
182
 
183
183
  return {
184
184
  ...sourceReference,
185
- file: sourceReference.file.sourceName,
185
+ file: sourceReference.sourceName,
186
186
  };
187
187
  }
188
188
 
@@ -779,7 +779,8 @@ export class ErrorInferrer {
779
779
  func: ContractFunction
780
780
  ): SourceReference {
781
781
  return {
782
- file: func.location.file,
782
+ sourceName: func.location.file.sourceName,
783
+ sourceContent: func.location.file.content,
783
784
  contract: trace.bytecode.contract.name,
784
785
  function: func.name,
785
786
  line: func.location.getStartingLineNumber(),
@@ -837,7 +838,8 @@ export class ErrorInferrer {
837
838
  ): SourceReference {
838
839
  const location = trace.bytecode.contract.location;
839
840
  return {
840
- file: location.file,
841
+ sourceName: location.file.sourceName,
842
+ sourceContent: location.file.content,
841
843
  contract: trace.bytecode.contract.name,
842
844
  line: location.getStartingLineNumber(),
843
845
  range: [location.offset, location.offset + location.length],
@@ -882,7 +884,8 @@ export class ErrorInferrer {
882
884
  }
883
885
 
884
886
  return {
885
- file: func.location.file,
887
+ sourceName: func.location.file.sourceName,
888
+ sourceContent: func.location.file.content,
886
889
  contract: trace.bytecode.contract.name,
887
890
  function: FALLBACK_FUNCTION_NAME,
888
891
  line: func.location.getStartingLineNumber(),
@@ -931,7 +934,8 @@ export class ErrorInferrer {
931
934
  : contract.location.getStartingLineNumber();
932
935
 
933
936
  return {
934
- file: contract.location.file,
937
+ sourceName: contract.location.file.sourceName,
938
+ sourceContent: contract.location.file.content,
935
939
  contract: contract.name,
936
940
  function: CONSTRUCTOR_FUNCTION_NAME,
937
941
  line,
@@ -1182,7 +1186,8 @@ export class ErrorInferrer {
1182
1186
  sourceReference: {
1183
1187
  contract: trace.bytecode.contract.name,
1184
1188
  function: FALLBACK_FUNCTION_NAME,
1185
- file: location.file,
1189
+ sourceName: location.file.sourceName,
1190
+ sourceContent: location.file.content,
1186
1191
  line: location.getStartingLineNumber(),
1187
1192
  range: [location.offset, location.offset + location.length],
1188
1193
  },
@@ -1198,7 +1203,8 @@ export class ErrorInferrer {
1198
1203
  sourceReference: {
1199
1204
  contract: trace.bytecode.contract.name,
1200
1205
  function: RECEIVE_FUNCTION_NAME,
1201
- file: location.file,
1206
+ sourceName: location.file.sourceName,
1207
+ sourceContent: location.file.content,
1202
1208
  line: location.getStartingLineNumber(),
1203
1209
  range: [location.offset, location.offset + location.length],
1204
1210
  },
@@ -1326,7 +1332,8 @@ export class ErrorInferrer {
1326
1332
  const defaultSourceReference: SourceReference = {
1327
1333
  function: CONSTRUCTOR_FUNCTION_NAME,
1328
1334
  contract: trace.bytecode.contract.name,
1329
- file: location.file,
1335
+ sourceName: location.file.sourceName,
1336
+ sourceContent: location.file.content,
1330
1337
  line: location.getStartingLineNumber(),
1331
1338
  range: [location.offset, location.offset + location.length],
1332
1339
  };
@@ -1398,9 +1405,7 @@ export class ErrorInferrer {
1398
1405
  private _solidity063CorrectLineNumber(
1399
1406
  revertFrame: UnmappedSolc063RevertErrorStackTraceEntry
1400
1407
  ) {
1401
- const file = revertFrame.sourceReference.file;
1402
-
1403
- const lines = file.content.split("\n");
1408
+ const lines = revertFrame.sourceReference.sourceContent.split("\n");
1404
1409
 
1405
1410
  const currentLine = lines[revertFrame.sourceReference.line - 1];
1406
1411
 
@@ -1689,7 +1694,8 @@ export function instructionToCallstackStackTraceEntry(
1689
1694
  type: StackTraceEntryType.INTERNAL_FUNCTION_CALLSTACK_ENTRY,
1690
1695
  pc: inst.pc,
1691
1696
  sourceReference: {
1692
- file: bytecode.contract.location.file,
1697
+ sourceName: bytecode.contract.location.file.sourceName,
1698
+ sourceContent: bytecode.contract.location.file.content,
1693
1699
  contract: bytecode.contract.name,
1694
1700
  function: undefined,
1695
1701
  line: bytecode.contract.location.getStartingLineNumber(),
@@ -1716,7 +1722,8 @@ export function instructionToCallstackStackTraceEntry(
1716
1722
  sourceReference: {
1717
1723
  function: undefined,
1718
1724
  contract: bytecode.contract.name,
1719
- file: inst.location!.file,
1725
+ sourceName: inst.location!.file.sourceName,
1726
+ sourceContent: inst.location!.file.content,
1720
1727
  line: inst.location!.getStartingLineNumber(),
1721
1728
  range: [
1722
1729
  inst.location!.offset,
@@ -1757,7 +1764,8 @@ function sourceLocationToSourceReference(
1757
1764
  func.type === ContractFunctionType.FREE_FUNCTION
1758
1765
  ? undefined
1759
1766
  : bytecode.contract.name,
1760
- file: func.location.file,
1767
+ sourceName: func.location.file.sourceName,
1768
+ sourceContent: func.location.file.content,
1761
1769
  line: location.getStartingLineNumber(),
1762
1770
  range: [location.offset, location.offset + location.length],
1763
1771
  };
@@ -168,7 +168,7 @@ function encodeStackTraceEntry(
168
168
 
169
169
  case StackTraceEntryType.INTERNAL_FUNCTION_CALLSTACK_ENTRY:
170
170
  return new SolidityCallSite(
171
- stackTraceEntry.sourceReference.file.sourceName,
171
+ stackTraceEntry.sourceReference.sourceName,
172
172
  stackTraceEntry.sourceReference.contract,
173
173
  `internal@${stackTraceEntry.pc}`,
174
174
  undefined
@@ -205,7 +205,7 @@ function sourceReferenceToSolidityCallsite(
205
205
  sourceReference: SourceReference
206
206
  ): SolidityCallSite {
207
207
  return new SolidityCallSite(
208
- sourceReference.file.sourceName,
208
+ sourceReference.sourceName,
209
209
  sourceReference.contract,
210
210
  sourceReference.function !== undefined
211
211
  ? sourceReference.function
@@ -2,7 +2,7 @@ import { BN } from "ethereumjs-util";
2
2
 
3
3
  import { ReturnData } from "../provider/return-data";
4
4
 
5
- import { ContractFunctionType, SourceFile } from "./model";
5
+ import { ContractFunctionType } from "./model";
6
6
 
7
7
  export enum StackTraceEntryType {
8
8
  CALLSTACK_ENTRY,
@@ -42,7 +42,8 @@ export const PRECOMPILE_FUNCTION_NAME = "<precompile>";
42
42
  export const UNRECOGNIZED_CONTRACT_NAME = "<UnrecognizedContract>";
43
43
 
44
44
  export interface SourceReference {
45
- file: SourceFile;
45
+ sourceName: string;
46
+ sourceContent: string;
46
47
  contract?: string;
47
48
  function?: string;
48
49
  line: number;
@@ -1,5 +1,6 @@
1
- import debug from "debug";
2
1
  import type { LoDashStatic } from "lodash";
2
+
3
+ import debug from "debug";
3
4
  import semver from "semver";
4
5
 
5
6
  import { SolcConfig, SolidityConfig } from "../../types";
@@ -178,7 +178,7 @@ export class CompilerDownloader {
178
178
  }
179
179
 
180
180
  public async getCompilerBuild(version: string): Promise<CompilerBuild> {
181
- const platform = this._getCurrentPlarform();
181
+ const platform = this._getCurrentPlatform();
182
182
 
183
183
  if (await this._versionExists(version, platform)) {
184
184
  try {
@@ -191,7 +191,9 @@ export class CompilerDownloader {
191
191
  return this._getCompilerBuildByPlatform(version, CompilerPlatform.WASM);
192
192
  }
193
193
 
194
- public async downloadCompilersList(platform: CompilerPlatform) {
194
+ public async downloadCompilersList(
195
+ platform: CompilerPlatform = this._getCurrentPlatform()
196
+ ) {
195
197
  try {
196
198
  await this._download(
197
199
  getCompilerListURL(platform),
@@ -295,7 +297,7 @@ export class CompilerDownloader {
295
297
  return fsExtra.pathExists(filePath);
296
298
  }
297
299
 
298
- private _getCurrentPlarform(): CompilerPlatform {
300
+ private _getCurrentPlatform(): CompilerPlatform {
299
301
  if (this._forceSolcJs) {
300
302
  return CompilerPlatform.WASM;
301
303
  }
@@ -1,16 +1,14 @@
1
1
  import fs from "fs";
2
2
  import fsExtra from "fs-extra";
3
- import HttpsProxyAgent from "https-proxy-agent";
4
3
  import path from "path";
5
4
  import util from "util";
6
5
 
7
- interface FetchOptions {
8
- timeout: number;
9
- agent?: undefined | HttpsProxyAgent.HttpsProxyAgent;
10
- }
6
+ import { getHardhatVersion } from "./packageInfo";
11
7
 
12
8
  const TEMP_FILE_PREFIX = "tmp-";
13
9
 
10
+ const hardhatVersion = getHardhatVersion();
11
+
14
12
  function resolveTempFileName(filePath: string): string {
15
13
  const { dir, ext, name } = path.parse(filePath);
16
14
 
@@ -27,34 +25,33 @@ export async function download(
27
25
  timeoutMillis = 10000
28
26
  ) {
29
27
  const { pipeline } = await import("stream");
30
- const { default: fetch } = await import("node-fetch");
28
+ const { getGlobalDispatcher, ProxyAgent, request } = await import("undici");
31
29
  const streamPipeline = util.promisify(pipeline);
32
- const fetchOptions: FetchOptions = {
33
- timeout: timeoutMillis,
34
- agent: undefined,
35
- };
36
30
 
37
- // Check if Proxy is set https
38
- if (process.env.HTTPS_PROXY !== undefined) {
39
- // Create the proxy from the environment variables
40
- const proxy: string = process.env.HTTPS_PROXY;
41
- fetchOptions.agent = new HttpsProxyAgent.HttpsProxyAgent(proxy);
42
- }
31
+ function chooseDispatcher() {
32
+ if (process.env.HTTPS_PROXY !== undefined) {
33
+ return new ProxyAgent(process.env.HTTPS_PROXY);
34
+ }
43
35
 
44
- // Check if Proxy is set http and `fetchOptions.agent` was not already set for https
45
- if (
46
- process.env.HTTP_PROXY !== undefined &&
47
- fetchOptions.agent === undefined
48
- ) {
49
- // Create the proxy from the environment variables
50
- const proxy: string = process.env.HTTP_PROXY;
51
- fetchOptions.agent = new HttpsProxyAgent.HttpsProxyAgent(proxy);
36
+ if (process.env.HTTP_PROXY !== undefined) {
37
+ return new ProxyAgent(process.env.HTTP_PROXY);
38
+ }
39
+
40
+ return getGlobalDispatcher();
52
41
  }
53
42
 
54
43
  // Fetch the url
55
- const response = await fetch(url, fetchOptions);
44
+ const response = await request(url, {
45
+ dispatcher: chooseDispatcher(),
46
+ headersTimeout: timeoutMillis,
47
+ maxRedirections: 10,
48
+ method: "GET",
49
+ headers: {
50
+ "User-Agent": `hardhat ${hardhatVersion}`,
51
+ },
52
+ });
56
53
 
57
- if (response.ok && response.body !== null) {
54
+ if (response.statusCode >= 200 && response.statusCode <= 299) {
58
55
  const tmpFilePath = resolveTempFileName(filePath);
59
56
  await fsExtra.ensureDir(path.dirname(filePath));
60
57
 
@@ -62,12 +59,10 @@ export async function download(
62
59
  return fsExtra.move(tmpFilePath, filePath, { overwrite: true });
63
60
  }
64
61
 
65
- // Consume the response stream and discard its result
66
- // See: https://github.com/node-fetch/node-fetch/issues/83
67
- const _discarded = await response.arrayBuffer();
68
-
69
62
  // eslint-disable-next-line @nomiclabs/hardhat-internal-rules/only-hardhat-error
70
63
  throw new Error(
71
- `Failed to download ${url} - ${response.statusText} received`
64
+ `Failed to download ${url} - ${
65
+ response.statusCode
66
+ } received. ${await response.body.text()}`
72
67
  );
73
68
  }
@@ -1,4 +1,5 @@
1
1
  import type { IOptions as GlobOptions } from "glob";
2
+
2
3
  import * as path from "path";
3
4
  import util from "util";
4
5
 
@@ -1,5 +1,6 @@
1
- import debug from "debug";
2
1
  import type envPathsT from "env-paths";
2
+
3
+ import debug from "debug";
3
4
  import fs from "fs-extra";
4
5
  import os from "os";
5
6
  import path from "path";
@@ -3,14 +3,15 @@ import type { HDKey as HDKeyT } from "ethereum-cryptography/hdkey";
3
3
 
4
4
  export function deriveKeyFromMnemonicAndPath(
5
5
  mnemonic: string,
6
- hdPath: string
6
+ hdPath: string,
7
+ passphrase: string
7
8
  ): Buffer | undefined {
8
9
  const {
9
10
  mnemonicToSeedSync,
10
11
  }: {
11
12
  mnemonicToSeedSync: typeof mnemonicToSeedSyncT;
12
13
  } = require("ethereum-cryptography/bip39");
13
- const seed = mnemonicToSeedSync(mnemonic);
14
+ const seed = mnemonicToSeedSync(mnemonic, passphrase);
14
15
 
15
16
  const {
16
17
  HDKey,
@@ -75,6 +75,7 @@ export interface HardhatNetworkHDAccountsUserConfig {
75
75
  count?: number;
76
76
  path?: string;
77
77
  accountsBalance?: string;
78
+ passphrase?: string;
78
79
  }
79
80
 
80
81
  export interface HDAccountsUserConfig {
@@ -82,6 +83,7 @@ export interface HDAccountsUserConfig {
82
83
  initialIndex?: number;
83
84
  count?: number;
84
85
  path?: string;
86
+ passphrase?: string;
85
87
  }
86
88
 
87
89
  export interface HardhatNetworkForkingUserConfig {
@@ -167,6 +169,7 @@ export interface HardhatNetworkHDAccountsConfig {
167
169
  count: number;
168
170
  path: string;
169
171
  accountsBalance: string;
172
+ passphrase: string;
170
173
  }
171
174
 
172
175
  export interface HardhatNetworkForkingConfig {
@@ -197,6 +200,7 @@ export interface HttpNetworkHDAccountsConfig {
197
200
  initialIndex: number;
198
201
  count: number;
199
202
  path: string;
203
+ passphrase: string;
200
204
  }
201
205
 
202
206
  export interface HardhatNetworkMiningConfig {
package/types/config.d.ts CHANGED
@@ -46,12 +46,14 @@ export interface HardhatNetworkHDAccountsUserConfig {
46
46
  count?: number;
47
47
  path?: string;
48
48
  accountsBalance?: string;
49
+ passphrase?: string;
49
50
  }
50
51
  export interface HDAccountsUserConfig {
51
52
  mnemonic: string;
52
53
  initialIndex?: number;
53
54
  count?: number;
54
55
  path?: string;
56
+ passphrase?: string;
55
57
  }
56
58
  export interface HardhatNetworkForkingUserConfig {
57
59
  enabled?: boolean;
@@ -115,6 +117,7 @@ export interface HardhatNetworkHDAccountsConfig {
115
117
  count: number;
116
118
  path: string;
117
119
  accountsBalance: string;
120
+ passphrase: string;
118
121
  }
119
122
  export interface HardhatNetworkForkingConfig {
120
123
  enabled: boolean;
@@ -140,6 +143,7 @@ export interface HttpNetworkHDAccountsConfig {
140
143
  initialIndex: number;
141
144
  count: number;
142
145
  path: string;
146
+ passphrase: string;
143
147
  }
144
148
  export interface HardhatNetworkMiningConfig {
145
149
  auto: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/types/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/types/config.ts"],"names":[],"mappings":"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"}