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.
- package/LICENSE +3 -61
- package/README.md +1 -1
- package/builtin-tasks/compile.js +86 -51
- package/builtin-tasks/compile.js.map +1 -1
- package/builtin-tasks/node.js.map +1 -1
- package/builtin-tasks/test.js +30 -5
- package/builtin-tasks/test.js.map +1 -1
- package/builtin-tasks/utils/solidity-files-cache.d.ts.map +1 -1
- package/builtin-tasks/utils/solidity-files-cache.js.map +1 -1
- package/internal/cli/analytics.js +2 -2
- package/internal/cli/analytics.js.map +1 -1
- package/internal/cli/cli.js +3 -3
- package/internal/cli/project-creation.d.ts.map +1 -1
- package/internal/cli/project-creation.js +23 -0
- package/internal/cli/project-creation.js.map +1 -1
- package/internal/core/config/config-loading.d.ts.map +1 -1
- package/internal/core/config/config-loading.js.map +1 -1
- package/internal/core/config/config-validation.d.ts.map +1 -1
- package/internal/core/config/config-validation.js +2 -2
- package/internal/core/config/config-validation.js.map +1 -1
- package/internal/core/config/default-config.d.ts +2 -0
- package/internal/core/config/default-config.d.ts.map +1 -1
- package/internal/core/config/default-config.js +1 -0
- package/internal/core/config/default-config.js.map +1 -1
- package/internal/core/errors-list.d.ts +7 -0
- package/internal/core/errors-list.d.ts.map +1 -1
- package/internal/core/errors-list.js +13 -0
- package/internal/core/errors-list.js.map +1 -1
- package/internal/core/jsonrpc/types/input/blockTag.d.ts +3 -3
- package/internal/core/jsonrpc/types/input/blockTag.d.ts.map +1 -1
- package/internal/core/providers/accounts.d.ts +1 -1
- package/internal/core/providers/accounts.d.ts.map +1 -1
- package/internal/core/providers/accounts.js +2 -2
- package/internal/core/providers/accounts.js.map +1 -1
- package/internal/core/providers/construction.d.ts.map +1 -1
- package/internal/core/providers/construction.js +1 -1
- package/internal/core/providers/construction.js.map +1 -1
- package/internal/core/providers/http.d.ts +5 -1
- package/internal/core/providers/http.d.ts.map +1 -1
- package/internal/core/providers/http.js +35 -31
- package/internal/core/providers/http.js.map +1 -1
- package/internal/core/providers/util.d.ts +1 -1
- package/internal/core/providers/util.d.ts.map +1 -1
- package/internal/core/providers/util.js +3 -3
- package/internal/core/providers/util.js.map +1 -1
- package/internal/hardhat-network/jsonrpc/server.d.ts.map +1 -1
- package/internal/hardhat-network/jsonrpc/server.js.map +1 -1
- package/internal/hardhat-network/provider/BlockchainBase.d.ts +26 -0
- package/internal/hardhat-network/provider/BlockchainBase.d.ts.map +1 -0
- package/internal/hardhat-network/provider/BlockchainBase.js +92 -0
- package/internal/hardhat-network/provider/BlockchainBase.js.map +1 -0
- package/internal/hardhat-network/provider/BlockchainData.d.ts +32 -0
- package/internal/hardhat-network/provider/BlockchainData.d.ts.map +1 -1
- package/internal/hardhat-network/provider/BlockchainData.js +78 -1
- package/internal/hardhat-network/provider/BlockchainData.js.map +1 -1
- package/internal/hardhat-network/provider/HardhatBlockchain.d.ts +9 -15
- package/internal/hardhat-network/provider/HardhatBlockchain.d.ts.map +1 -1
- package/internal/hardhat-network/provider/HardhatBlockchain.js +15 -73
- package/internal/hardhat-network/provider/HardhatBlockchain.js.map +1 -1
- package/internal/hardhat-network/provider/fork/ForkBlockchain.d.ts +6 -14
- package/internal/hardhat-network/provider/fork/ForkBlockchain.d.ts.map +1 -1
- package/internal/hardhat-network/provider/fork/ForkBlockchain.js +23 -73
- package/internal/hardhat-network/provider/fork/ForkBlockchain.js.map +1 -1
- package/internal/hardhat-network/provider/modules/eth.js +2 -2
- package/internal/hardhat-network/provider/modules/eth.js.map +1 -1
- package/internal/hardhat-network/provider/modules/hardhat.d.ts +3 -0
- package/internal/hardhat-network/provider/modules/hardhat.d.ts.map +1 -1
- package/internal/hardhat-network/provider/modules/hardhat.js +40 -5
- package/internal/hardhat-network/provider/modules/hardhat.js.map +1 -1
- package/internal/hardhat-network/provider/modules/logger.d.ts +4 -2
- package/internal/hardhat-network/provider/modules/logger.d.ts.map +1 -1
- package/internal/hardhat-network/provider/modules/logger.js +38 -12
- package/internal/hardhat-network/provider/modules/logger.js.map +1 -1
- package/internal/hardhat-network/provider/node-types.d.ts +1 -1
- package/internal/hardhat-network/provider/node-types.d.ts.map +1 -1
- package/internal/hardhat-network/provider/node.d.ts +9 -1
- package/internal/hardhat-network/provider/node.d.ts.map +1 -1
- package/internal/hardhat-network/provider/node.js +57 -8
- package/internal/hardhat-network/provider/node.js.map +1 -1
- package/internal/hardhat-network/provider/provider.d.ts +1 -1
- package/internal/hardhat-network/provider/provider.d.ts.map +1 -1
- package/internal/hardhat-network/provider/provider.js.map +1 -1
- package/internal/hardhat-network/provider/types/HardhatBlockchainInterface.d.ts +2 -1
- package/internal/hardhat-network/provider/types/HardhatBlockchainInterface.d.ts.map +1 -1
- package/internal/hardhat-network/provider/utils/makeForkClient.d.ts.map +1 -1
- package/internal/hardhat-network/provider/utils/makeForkClient.js +2 -1
- package/internal/hardhat-network/provider/utils/makeForkClient.js.map +1 -1
- package/internal/hardhat-network/provider/utils/putGenesisBlock.js +1 -1
- package/internal/hardhat-network/stack-traces/debug.js +1 -1
- package/internal/hardhat-network/stack-traces/debug.js.map +1 -1
- package/internal/hardhat-network/stack-traces/error-inferrer.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/error-inferrer.js +21 -12
- package/internal/hardhat-network/stack-traces/error-inferrer.js.map +1 -1
- package/internal/hardhat-network/stack-traces/solidity-errors.js +2 -2
- package/internal/hardhat-network/stack-traces/solidity-errors.js.map +1 -1
- package/internal/hardhat-network/stack-traces/solidity-stack-trace.d.ts +3 -2
- package/internal/hardhat-network/stack-traces/solidity-stack-trace.d.ts.map +1 -1
- package/internal/solidity/compilation-job.d.ts.map +1 -1
- package/internal/solidity/compilation-job.js.map +1 -1
- package/internal/solidity/compiler/downloader.d.ts +2 -2
- package/internal/solidity/compiler/downloader.d.ts.map +1 -1
- package/internal/solidity/compiler/downloader.js +3 -3
- package/internal/solidity/compiler/downloader.js.map +1 -1
- package/internal/util/chunked-promise-all.d.ts +7 -0
- package/internal/util/chunked-promise-all.d.ts.map +1 -0
- package/internal/util/chunked-promise-all.js +31 -0
- package/internal/util/chunked-promise-all.js.map +1 -0
- package/internal/util/download.d.ts.map +1 -1
- package/internal/util/download.js +22 -24
- package/internal/util/download.js.map +1 -1
- package/internal/util/glob.d.ts.map +1 -1
- package/internal/util/glob.js.map +1 -1
- package/internal/util/global-dir.d.ts.map +1 -1
- package/internal/util/global-dir.js.map +1 -1
- package/internal/util/keys-derivation.d.ts +1 -1
- package/internal/util/keys-derivation.d.ts.map +1 -1
- package/internal/util/keys-derivation.js +2 -2
- package/internal/util/keys-derivation.js.map +1 -1
- package/package.json +10 -10
- package/sample-projects/advanced-ts/README.md +1 -1
- package/src/builtin-tasks/compile.ts +94 -76
- package/src/builtin-tasks/node.ts +2 -1
- package/src/builtin-tasks/test.ts +69 -11
- package/src/builtin-tasks/utils/solidity-files-cache.ts +3 -2
- package/src/internal/cli/analytics.ts +2 -2
- package/src/internal/cli/cli.ts +3 -3
- package/src/internal/cli/project-creation.ts +40 -0
- package/src/internal/core/config/config-loading.ts +2 -1
- package/src/internal/core/config/config-validation.ts +2 -0
- package/src/internal/core/config/default-config.ts +1 -0
- package/src/internal/core/errors-list.ts +13 -0
- package/src/internal/core/providers/accounts.ts +4 -2
- package/src/internal/core/providers/construction.ts +3 -1
- package/src/internal/core/providers/http.ts +47 -16
- package/src/internal/core/providers/util.ts +6 -3
- package/src/internal/hardhat-network/jsonrpc/server.ts +2 -1
- package/src/internal/hardhat-network/provider/BlockchainBase.ts +137 -0
- package/src/internal/hardhat-network/provider/BlockchainData.ts +144 -0
- package/src/internal/hardhat-network/provider/HardhatBlockchain.ts +34 -87
- package/src/internal/hardhat-network/provider/fork/ForkBlockchain.ts +45 -90
- package/src/internal/hardhat-network/provider/modules/eth.ts +2 -2
- package/src/internal/hardhat-network/provider/modules/hardhat.ts +51 -5
- package/src/internal/hardhat-network/provider/modules/logger.ts +50 -14
- package/src/internal/hardhat-network/provider/node-types.ts +2 -2
- package/src/internal/hardhat-network/provider/node.ts +81 -8
- package/src/internal/hardhat-network/provider/provider.ts +9 -8
- package/src/internal/hardhat-network/provider/types/HardhatBlockchainInterface.ts +7 -1
- package/src/internal/hardhat-network/provider/utils/makeForkClient.ts +2 -1
- package/src/internal/hardhat-network/provider/utils/putGenesisBlock.ts +1 -1
- package/src/internal/hardhat-network/stack-traces/debug.ts +1 -1
- package/src/internal/hardhat-network/stack-traces/error-inferrer.ts +21 -13
- package/src/internal/hardhat-network/stack-traces/solidity-errors.ts +2 -2
- package/src/internal/hardhat-network/stack-traces/solidity-stack-trace.ts +3 -2
- package/src/internal/solidity/compilation-job.ts +2 -1
- package/src/internal/solidity/compiler/downloader.ts +5 -3
- package/src/internal/util/download.ts +26 -31
- package/src/internal/util/glob.ts +1 -0
- package/src/internal/util/global-dir.ts +2 -1
- package/src/internal/util/keys-derivation.ts +3 -2
- package/src/types/config.ts +4 -0
- package/types/config.d.ts +4 -0
- package/types/config.d.ts.map +1 -1
|
@@ -779,7 +779,8 @@ export class ErrorInferrer {
|
|
|
779
779
|
func: ContractFunction
|
|
780
780
|
): SourceReference {
|
|
781
781
|
return {
|
|
782
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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
|
|
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
|
-
|
|
45
|
+
sourceName: string;
|
|
46
|
+
sourceContent: string;
|
|
46
47
|
contract?: string;
|
|
47
48
|
function?: string;
|
|
48
49
|
line: number;
|
|
@@ -178,7 +178,7 @@ export class CompilerDownloader {
|
|
|
178
178
|
}
|
|
179
179
|
|
|
180
180
|
public async getCompilerBuild(version: string): Promise<CompilerBuild> {
|
|
181
|
-
const platform = this.
|
|
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(
|
|
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
|
|
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
|
-
|
|
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 {
|
|
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
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
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
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
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
|
|
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.
|
|
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} - ${
|
|
64
|
+
`Failed to download ${url} - ${
|
|
65
|
+
response.statusCode
|
|
66
|
+
} received. ${await response.body.text()}`
|
|
72
67
|
);
|
|
73
68
|
}
|
|
@@ -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,
|
package/src/types/config.ts
CHANGED
|
@@ -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;
|
package/types/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/types/config.ts"],"names":[],"mappings":";AAcA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAI1C,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,wBAAwB,CAAC;IAEnC,CAAC,WAAW,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAAC;CACtD;AAED,oBAAY,iBAAiB,GACzB,wBAAwB,GACxB,qBAAqB,CAAC;AAE1B,MAAM,WAAW,yBAAyB;IACxC,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAoB;CACnD;AAED,MAAM,WAAW,6BAA6B;IAC5C,eAAe,CAAC,EAAE,yBAAyB,CAAC;CAC7C;AAED,MAAM,WAAW,8BAA8B;IAC7C,CAAC,OAAO,EAAE,MAAM,GAAG,6BAA6B,CAAC;CAClD;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,8BAA8B,CAAC;IACxC,QAAQ,CAAC,EAAE,gCAAgC,CAAC;IAC5C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,+BAA+B,CAAC;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,8BAA8B,CAAC;CACzC;AAED,oBAAY,gCAAgC,GACxC,+BAA+B,EAAE,GACjC,kCAAkC,CAAC;AAEvC,MAAM,WAAW,+BAA+B;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/types/config.ts"],"names":[],"mappings":"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"}
|