hardhat 2.15.0 → 2.16.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/builtin-tasks/compile.js +25 -29
- package/builtin-tasks/compile.js.map +1 -1
- package/builtin-tasks/node.js +1 -2
- package/builtin-tasks/node.js.map +1 -1
- package/console.sol +3 -4
- package/internal/cli/analytics.d.ts +6 -6
- package/internal/cli/analytics.d.ts.map +1 -1
- package/internal/cli/analytics.js +43 -115
- package/internal/cli/analytics.js.map +1 -1
- package/internal/cli/cli.js +6 -4
- package/internal/cli/cli.js.map +1 -1
- package/internal/cli/project-creation.d.ts.map +1 -1
- package/internal/cli/project-creation.js +2 -1
- package/internal/cli/project-creation.js.map +1 -1
- package/internal/context.d.ts +3 -3
- package/internal/context.d.ts.map +1 -1
- package/internal/context.js +2 -2
- package/internal/context.js.map +1 -1
- package/internal/core/config/config-env.d.ts +16 -1
- package/internal/core/config/config-env.d.ts.map +1 -1
- package/internal/core/config/config-env.js +21 -3
- package/internal/core/config/config-env.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 +8 -0
- package/internal/core/errors-list.js.map +1 -1
- package/internal/core/providers/construction.d.ts +3 -3
- package/internal/core/providers/construction.d.ts.map +1 -1
- package/internal/core/providers/construction.js +13 -5
- package/internal/core/providers/construction.js.map +1 -1
- package/internal/core/providers/lazy-initialization.d.ts +44 -0
- package/internal/core/providers/lazy-initialization.d.ts.map +1 -0
- package/internal/core/providers/lazy-initialization.js +137 -0
- package/internal/core/providers/lazy-initialization.js.map +1 -0
- package/internal/core/providers/wrapper.d.ts +10 -0
- package/internal/core/providers/wrapper.d.ts.map +1 -1
- package/internal/core/providers/wrapper.js +10 -0
- package/internal/core/providers/wrapper.js.map +1 -1
- package/internal/core/runtime-environment.d.ts +5 -4
- package/internal/core/runtime-environment.d.ts.map +1 -1
- package/internal/core/runtime-environment.js +9 -8
- package/internal/core/runtime-environment.js.map +1 -1
- package/internal/lib/hardhat-lib.d.ts.map +1 -1
- package/internal/lib/hardhat-lib.js +1 -1
- package/internal/lib/hardhat-lib.js.map +1 -1
- package/package.json +1 -3
- package/plugins.d.ts +1 -0
- package/plugins.d.ts.map +1 -1
- package/plugins.js +3 -1
- package/plugins.js.map +1 -1
- package/register.js +1 -1
- package/register.js.map +1 -1
- package/src/builtin-tasks/compile.ts +53 -53
- package/src/builtin-tasks/node.ts +2 -5
- package/src/internal/cli/analytics.ts +82 -134
- package/src/internal/cli/cli.ts +7 -4
- package/src/internal/cli/project-creation.ts +4 -1
- package/src/internal/context.ts +5 -2
- package/src/internal/core/config/config-env.ts +21 -2
- package/src/internal/core/errors-list.ts +9 -0
- package/src/internal/core/providers/construction.ts +26 -10
- package/src/internal/core/providers/lazy-initialization.ts +178 -0
- package/src/internal/core/providers/wrapper.ts +10 -0
- package/src/internal/core/runtime-environment.ts +15 -12
- package/src/internal/lib/hardhat-lib.ts +3 -2
- package/src/plugins.ts +1 -0
- package/src/register.ts +3 -2
- package/src/types/runtime.ts +11 -1
- package/types/runtime.d.ts +6 -1
- package/types/runtime.d.ts.map +1 -1
- package/internal/core/config/extenders.d.ts +0 -7
- package/internal/core/config/extenders.d.ts.map +0 -1
- package/internal/core/config/extenders.js +0 -16
- package/internal/core/config/extenders.js.map +0 -1
- package/src/internal/core/config/extenders.ts +0 -13
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LazyInitializationProviderAdapter = void 0;
|
|
4
|
+
const events_1 = require("events");
|
|
5
|
+
const errors_1 = require("../errors");
|
|
6
|
+
const errors_list_1 = require("../errors-list");
|
|
7
|
+
/**
|
|
8
|
+
* A class that delays the (async) creation of its internal provider until the first call
|
|
9
|
+
* to a JSON RPC method via request/send/sendAsync or the init method is called.
|
|
10
|
+
*/
|
|
11
|
+
class LazyInitializationProviderAdapter {
|
|
12
|
+
constructor(_providerFactory) {
|
|
13
|
+
this._providerFactory = _providerFactory;
|
|
14
|
+
this._emitter = new events_1.EventEmitter();
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Gets the internal wrapped provider.
|
|
18
|
+
* Using it directly is discouraged and should be done with care,
|
|
19
|
+
* use the public methods from the class like `request` and all event emitter methods instead
|
|
20
|
+
*/
|
|
21
|
+
get _wrapped() {
|
|
22
|
+
if (this.provider === undefined) {
|
|
23
|
+
throw new errors_1.HardhatError(errors_list_1.ERRORS.GENERAL.UNINITIALIZED_PROVIDER);
|
|
24
|
+
}
|
|
25
|
+
return this.provider;
|
|
26
|
+
}
|
|
27
|
+
async init() {
|
|
28
|
+
if (this.provider === undefined) {
|
|
29
|
+
if (this._initializingPromise === undefined) {
|
|
30
|
+
this._initializingPromise = this._providerFactory();
|
|
31
|
+
}
|
|
32
|
+
this.provider = await this._initializingPromise;
|
|
33
|
+
}
|
|
34
|
+
return this.provider;
|
|
35
|
+
}
|
|
36
|
+
// Provider methods
|
|
37
|
+
async request(args) {
|
|
38
|
+
const provider = await this._getOrInitProvider();
|
|
39
|
+
return provider.request(args);
|
|
40
|
+
}
|
|
41
|
+
async send(method, params) {
|
|
42
|
+
const provider = await this._getOrInitProvider();
|
|
43
|
+
return provider.send(method, params);
|
|
44
|
+
}
|
|
45
|
+
sendAsync(payload, callback) {
|
|
46
|
+
this._getOrInitProvider().then((provider) => {
|
|
47
|
+
provider.sendAsync(payload, callback);
|
|
48
|
+
}, (e) => {
|
|
49
|
+
callback(e, null);
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
// EventEmitter methods
|
|
53
|
+
addListener(event, listener) {
|
|
54
|
+
this._getEmitter().addListener(event, listener);
|
|
55
|
+
return this;
|
|
56
|
+
}
|
|
57
|
+
on(event, listener) {
|
|
58
|
+
this._getEmitter().on(event, listener);
|
|
59
|
+
return this;
|
|
60
|
+
}
|
|
61
|
+
once(event, listener) {
|
|
62
|
+
this._getEmitter().once(event, listener);
|
|
63
|
+
return this;
|
|
64
|
+
}
|
|
65
|
+
prependListener(event, listener) {
|
|
66
|
+
this._getEmitter().prependListener(event, listener);
|
|
67
|
+
return this;
|
|
68
|
+
}
|
|
69
|
+
prependOnceListener(event, listener) {
|
|
70
|
+
this._getEmitter().prependOnceListener(event, listener);
|
|
71
|
+
return this;
|
|
72
|
+
}
|
|
73
|
+
removeListener(event, listener) {
|
|
74
|
+
this._getEmitter().removeListener(event, listener);
|
|
75
|
+
return this;
|
|
76
|
+
}
|
|
77
|
+
off(event, listener) {
|
|
78
|
+
this._getEmitter().off(event, listener);
|
|
79
|
+
return this;
|
|
80
|
+
}
|
|
81
|
+
removeAllListeners(event) {
|
|
82
|
+
this._getEmitter().removeAllListeners(event);
|
|
83
|
+
return this;
|
|
84
|
+
}
|
|
85
|
+
setMaxListeners(n) {
|
|
86
|
+
this._getEmitter().setMaxListeners(n);
|
|
87
|
+
return this;
|
|
88
|
+
}
|
|
89
|
+
getMaxListeners() {
|
|
90
|
+
return this._getEmitter().getMaxListeners();
|
|
91
|
+
}
|
|
92
|
+
// disable ban-types to satisfy the EventEmitter interface
|
|
93
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
94
|
+
listeners(event) {
|
|
95
|
+
return this._getEmitter().listeners(event);
|
|
96
|
+
}
|
|
97
|
+
// disable ban-types to satisfy the EventEmitter interface
|
|
98
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
99
|
+
rawListeners(event) {
|
|
100
|
+
return this._getEmitter().rawListeners(event);
|
|
101
|
+
}
|
|
102
|
+
emit(event, ...args) {
|
|
103
|
+
return this._getEmitter().emit(event, ...args);
|
|
104
|
+
}
|
|
105
|
+
eventNames() {
|
|
106
|
+
return this._getEmitter().eventNames();
|
|
107
|
+
}
|
|
108
|
+
listenerCount(type) {
|
|
109
|
+
return this._getEmitter().listenerCount(type);
|
|
110
|
+
}
|
|
111
|
+
_getEmitter() {
|
|
112
|
+
return this.provider === undefined ? this._emitter : this.provider;
|
|
113
|
+
}
|
|
114
|
+
async _getOrInitProvider() {
|
|
115
|
+
// This is here to avoid multiple calls to send async stacking and re-creating the provider
|
|
116
|
+
// over and over again. It shouldn't run for request or send
|
|
117
|
+
if (this._initializingPromise !== undefined) {
|
|
118
|
+
await this._initializingPromise;
|
|
119
|
+
}
|
|
120
|
+
if (this.provider === undefined) {
|
|
121
|
+
this.provider = await this.init();
|
|
122
|
+
// Copy any event emitter events before initialization over to the provider
|
|
123
|
+
const recordedEvents = this._emitter.eventNames();
|
|
124
|
+
for (const event of recordedEvents) {
|
|
125
|
+
const listeners = this._emitter.rawListeners(event);
|
|
126
|
+
for (const listener of listeners) {
|
|
127
|
+
this.provider.on(event, listener);
|
|
128
|
+
this._emitter.removeListener(event, listener);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
this.provider.setMaxListeners(this._emitter.getMaxListeners());
|
|
132
|
+
}
|
|
133
|
+
return this.provider;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
exports.LazyInitializationProviderAdapter = LazyInitializationProviderAdapter;
|
|
137
|
+
//# sourceMappingURL=lazy-initialization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lazy-initialization.js","sourceRoot":"","sources":["../../../src/internal/core/providers/lazy-initialization.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,19 @@
|
|
|
1
1
|
import { EIP1193Provider, RequestArguments } from "../../../types";
|
|
2
2
|
import { EventEmitterWrapper } from "../../util/event-emitter";
|
|
3
|
+
/**
|
|
4
|
+
* A wrapper class that makes it easy to implement the EIP1193 (Javascript Ethereum Provider) standard.
|
|
5
|
+
* It comes baked in with all EventEmitter methods needed,
|
|
6
|
+
* which will be added to the provider supplied in the constructor.
|
|
7
|
+
* It also provides the interface for the standard .request() method as an abstract method.
|
|
8
|
+
*/
|
|
3
9
|
export declare abstract class ProviderWrapper extends EventEmitterWrapper implements EIP1193Provider {
|
|
4
10
|
protected readonly _wrappedProvider: EIP1193Provider;
|
|
5
11
|
constructor(_wrappedProvider: EIP1193Provider);
|
|
6
12
|
abstract request(args: RequestArguments): Promise<unknown>;
|
|
13
|
+
/**
|
|
14
|
+
* Extract the params from RequestArguments and optionally type them.
|
|
15
|
+
* It defaults to an empty array if no params are found.
|
|
16
|
+
*/
|
|
7
17
|
protected _getParams<ParamsT extends any[] = any[]>(args: RequestArguments): ParamsT | [];
|
|
8
18
|
}
|
|
9
19
|
//# sourceMappingURL=wrapper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrapper.d.ts","sourceRoot":"","sources":["../../../src/internal/core/providers/wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAI/D,8BAAsB,eACpB,SAAQ,mBACR,YAAW,eAAe;IAEd,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,eAAe;gBAAjC,gBAAgB,EAAE,eAAe;aAIhD,OAAO,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAEjE,SAAS,CAAC,UAAU,CAAC,OAAO,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,EAChD,IAAI,EAAE,gBAAgB,GACrB,OAAO,GAAG,EAAE;CAgBhB"}
|
|
1
|
+
{"version":3,"file":"wrapper.d.ts","sourceRoot":"","sources":["../../../src/internal/core/providers/wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAI/D;;;;;GAKG;AACH,8BAAsB,eACpB,SAAQ,mBACR,YAAW,eAAe;IAEd,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,eAAe;gBAAjC,gBAAgB,EAAE,eAAe;aAIhD,OAAO,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAEjE;;;OAGG;IACH,SAAS,CAAC,UAAU,CAAC,OAAO,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,EAChD,IAAI,EAAE,gBAAgB,GACrB,OAAO,GAAG,EAAE;CAgBhB"}
|
|
@@ -3,11 +3,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ProviderWrapper = void 0;
|
|
4
4
|
const event_emitter_1 = require("../../util/event-emitter");
|
|
5
5
|
const errors_1 = require("./errors");
|
|
6
|
+
/**
|
|
7
|
+
* A wrapper class that makes it easy to implement the EIP1193 (Javascript Ethereum Provider) standard.
|
|
8
|
+
* It comes baked in with all EventEmitter methods needed,
|
|
9
|
+
* which will be added to the provider supplied in the constructor.
|
|
10
|
+
* It also provides the interface for the standard .request() method as an abstract method.
|
|
11
|
+
*/
|
|
6
12
|
class ProviderWrapper extends event_emitter_1.EventEmitterWrapper {
|
|
7
13
|
constructor(_wrappedProvider) {
|
|
8
14
|
super(_wrappedProvider);
|
|
9
15
|
this._wrappedProvider = _wrappedProvider;
|
|
10
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* Extract the params from RequestArguments and optionally type them.
|
|
19
|
+
* It defaults to an empty array if no params are found.
|
|
20
|
+
*/
|
|
11
21
|
_getParams(args) {
|
|
12
22
|
const params = args.params;
|
|
13
23
|
if (params === undefined) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrapper.js","sourceRoot":"","sources":["../../../src/internal/core/providers/wrapper.ts"],"names":[],"mappings":";;;AACA,4DAA+D;AAE/D,qCAA6C;AAE7C,MAAsB,eACpB,SAAQ,mCAAmB;IAG3B,YAA+B,gBAAiC;QAC9D,KAAK,CAAC,gBAAgB,CAAC,CAAC;QADK,qBAAgB,GAAhB,gBAAgB,CAAiB;IAEhE,CAAC;
|
|
1
|
+
{"version":3,"file":"wrapper.js","sourceRoot":"","sources":["../../../src/internal/core/providers/wrapper.ts"],"names":[],"mappings":";;;AACA,4DAA+D;AAE/D,qCAA6C;AAE7C;;;;;GAKG;AACH,MAAsB,eACpB,SAAQ,mCAAmB;IAG3B,YAA+B,gBAAiC;QAC9D,KAAK,CAAC,gBAAgB,CAAC,CAAC;QADK,qBAAgB,GAAhB,gBAAgB,CAAiB;IAEhE,CAAC;IAID;;;OAGG;IACO,UAAU,CAClB,IAAsB;QAEtB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAE3B,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,OAAO,EAAE,CAAC;SACX;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC1B,gFAAgF;YAChF,MAAM,IAAI,0BAAiB,CACzB,mEAAmE,CACpE,CAAC;SACH;QAED,OAAO,MAAiB,CAAC;IAC3B,CAAC;CACF;AAhCD,0CAgCC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Artifacts as IArtifacts, EnvironmentExtender, ExperimentalHardhatNetworkMessageTraceHook, HardhatArguments, HardhatConfig, HardhatRuntimeEnvironment, HardhatUserConfig, Network, RunTaskFunction, TasksMap } from "../../types";
|
|
1
|
+
import { Artifacts as IArtifacts, EnvironmentExtender, ExperimentalHardhatNetworkMessageTraceHook, HardhatArguments, HardhatConfig, HardhatRuntimeEnvironment, HardhatUserConfig, Network, RunTaskFunction, TasksMap, ProviderExtender } from "../../types";
|
|
2
2
|
import { TaskProfile } from "./task-profiling";
|
|
3
3
|
export declare class Environment implements HardhatRuntimeEnvironment {
|
|
4
4
|
readonly config: HardhatConfig;
|
|
@@ -8,7 +8,7 @@ export declare class Environment implements HardhatRuntimeEnvironment {
|
|
|
8
8
|
private static readonly _BLACKLISTED_PROPERTIES;
|
|
9
9
|
network: Network;
|
|
10
10
|
artifacts: IArtifacts;
|
|
11
|
-
private readonly
|
|
11
|
+
private readonly _environmentExtenders;
|
|
12
12
|
entryTaskProfile?: TaskProfile;
|
|
13
13
|
version: string;
|
|
14
14
|
/**
|
|
@@ -21,9 +21,10 @@ export declare class Environment implements HardhatRuntimeEnvironment {
|
|
|
21
21
|
* @param config The hardhat's config object.
|
|
22
22
|
* @param hardhatArguments The parsed hardhat's arguments.
|
|
23
23
|
* @param tasks A map of tasks.
|
|
24
|
-
* @param
|
|
24
|
+
* @param environmentExtenders A list of environment extenders.
|
|
25
|
+
* @param providerExtenders A list of provider extenders.
|
|
25
26
|
*/
|
|
26
|
-
constructor(config: HardhatConfig, hardhatArguments: HardhatArguments, tasks: TasksMap,
|
|
27
|
+
constructor(config: HardhatConfig, hardhatArguments: HardhatArguments, tasks: TasksMap, environmentExtenders?: EnvironmentExtender[], experimentalHardhatNetworkMessageTraceHooks?: ExperimentalHardhatNetworkMessageTraceHook[], userConfig?: HardhatUserConfig, providerExtenders?: ProviderExtender[]);
|
|
27
28
|
/**
|
|
28
29
|
* Executes the task with the given name.
|
|
29
30
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-environment.d.ts","sourceRoot":"","sources":["../../src/internal/core/runtime-environment.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,SAAS,IAAI,UAAU,EACvB,mBAAmB,EACnB,0CAA0C,EAC1C,gBAAgB,EAChB,aAAa,EACb,yBAAyB,EACzB,iBAAiB,EACjB,OAAO,EAGP,eAAe,EAIf,QAAQ,
|
|
1
|
+
{"version":3,"file":"runtime-environment.d.ts","sourceRoot":"","sources":["../../src/internal/core/runtime-environment.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,SAAS,IAAI,UAAU,EACvB,mBAAmB,EACnB,0CAA0C,EAC1C,gBAAgB,EAChB,aAAa,EACb,yBAAyB,EACzB,iBAAiB,EACjB,OAAO,EAGP,eAAe,EAIf,QAAQ,EACR,gBAAgB,EACjB,MAAM,aAAa,CAAC;AAWrB,OAAO,EAIL,WAAW,EACZ,MAAM,kBAAkB,CAAC;AAI1B,qBAAa,WAAY,YAAW,yBAAyB;aAgCzC,MAAM,EAAE,aAAa;aACrB,gBAAgB,EAAE,gBAAgB;aAClC,KAAK,EAAE,QAAQ;aAGf,UAAU,EAAE,iBAAiB;IApC/C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAK7C;IAEK,OAAO,EAAE,OAAO,CAAC;IAEjB,SAAS,EAAE,UAAU,CAAC;IAE7B,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAwB;IAEvD,gBAAgB,CAAC,EAAE,WAAW,CAAC;IAE/B,OAAO,EAAE,MAAM,CAAuB;IAE7C;;;;;;;;;;;;OAYG;gBAEe,MAAM,EAAE,aAAa,EACrB,gBAAgB,EAAE,gBAAgB,EAClC,KAAK,EAAE,QAAQ,EAC/B,oBAAoB,GAAE,mBAAmB,EAAO,EAChD,2CAA2C,GAAE,0CAA0C,EAAO,EAC9E,UAAU,GAAE,iBAAsB,EAClD,iBAAiB,GAAE,gBAAgB,EAAO;IA4C5C;;;;;;;;;OASG;IACH,SAAgB,GAAG,EAAE,eAAe,CAkDlC;IAEF;;;;;;OAMG;IACI,cAAc,CACnB,SAAS,GAAE,MAAM,EAAwC,GACxD,MAAM,IAAI;IA6Bb;;;OAGG;YACW,kBAAkB;IAkHhC;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,0BAA0B;IAyClC;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;IA0BxB;;;;;;;OAOG;IACH,OAAO,CAAC,oBAAoB;CAc7B"}
|
|
@@ -6,12 +6,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.Environment = void 0;
|
|
7
7
|
const debug_1 = __importDefault(require("debug"));
|
|
8
8
|
const artifacts_1 = require("../artifacts");
|
|
9
|
-
const lazy_1 = require("../util/lazy");
|
|
10
9
|
const packageInfo_1 = require("../util/packageInfo");
|
|
11
10
|
const config_loading_1 = require("./config/config-loading");
|
|
12
11
|
const errors_1 = require("./errors");
|
|
13
12
|
const errors_list_1 = require("./errors-list");
|
|
14
13
|
const construction_1 = require("./providers/construction");
|
|
14
|
+
const lazy_initialization_1 = require("./providers/lazy-initialization");
|
|
15
15
|
const task_definitions_1 = require("./tasks/task-definitions");
|
|
16
16
|
const task_profiling_1 = require("./task-profiling");
|
|
17
17
|
const log = (0, debug_1.default)("hardhat:core:hre");
|
|
@@ -26,9 +26,10 @@ class Environment {
|
|
|
26
26
|
* @param config The hardhat's config object.
|
|
27
27
|
* @param hardhatArguments The parsed hardhat's arguments.
|
|
28
28
|
* @param tasks A map of tasks.
|
|
29
|
-
* @param
|
|
29
|
+
* @param environmentExtenders A list of environment extenders.
|
|
30
|
+
* @param providerExtenders A list of provider extenders.
|
|
30
31
|
*/
|
|
31
|
-
constructor(config, hardhatArguments, tasks,
|
|
32
|
+
constructor(config, hardhatArguments, tasks, environmentExtenders = [], experimentalHardhatNetworkMessageTraceHooks = [], userConfig = {}, providerExtenders = []) {
|
|
32
33
|
this.config = config;
|
|
33
34
|
this.hardhatArguments = hardhatArguments;
|
|
34
35
|
this.tasks = tasks;
|
|
@@ -88,17 +89,17 @@ class Environment {
|
|
|
88
89
|
});
|
|
89
90
|
}
|
|
90
91
|
this.artifacts = new artifacts_1.Artifacts(config.paths.artifacts);
|
|
91
|
-
const provider =
|
|
92
|
+
const provider = new lazy_initialization_1.LazyInitializationProviderAdapter(async () => {
|
|
92
93
|
log(`Creating provider for network ${networkName}`);
|
|
93
|
-
return (0, construction_1.createProvider)(
|
|
94
|
+
return (0, construction_1.createProvider)(config, networkName, this.artifacts, experimentalHardhatNetworkMessageTraceHooks.map((hook) => (trace, isCallMessageTrace) => hook(this, trace, isCallMessageTrace)), providerExtenders);
|
|
94
95
|
});
|
|
95
96
|
this.network = {
|
|
96
97
|
name: networkName,
|
|
97
|
-
config:
|
|
98
|
+
config: networkConfig,
|
|
98
99
|
provider,
|
|
99
100
|
};
|
|
100
|
-
this.
|
|
101
|
-
|
|
101
|
+
this._environmentExtenders = environmentExtenders;
|
|
102
|
+
environmentExtenders.forEach((extender) => extender(this));
|
|
102
103
|
}
|
|
103
104
|
/**
|
|
104
105
|
* Injects the properties of `this` (the Hardhat Runtime Environment) into the global scope.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-environment.js","sourceRoot":"","sources":["../../src/internal/core/runtime-environment.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;
|
|
1
|
+
{"version":3,"file":"runtime-environment.js","sourceRoot":"","sources":["../../src/internal/core/runtime-environment.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hardhat-lib.d.ts","sourceRoot":"","sources":["../../src/internal/lib/hardhat-lib.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAUxD,QAAA,IAAI,GAAG,EAAE,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"hardhat-lib.d.ts","sourceRoot":"","sources":["../../src/internal/lib/hardhat-lib.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAUxD,QAAA,IAAI,GAAG,EAAE,yBAAyB,CAAC;AAuCnC,SAAS,GAAG,CAAC"}
|
|
@@ -28,7 +28,7 @@ else {
|
|
|
28
28
|
debug_1.default.enable("hardhat*");
|
|
29
29
|
}
|
|
30
30
|
const { resolvedConfig, userConfig } = (0, config_loading_1.loadConfigAndTasks)(hardhatArguments);
|
|
31
|
-
env = new runtime_environment_1.Environment(resolvedConfig, hardhatArguments, ctx.tasksDSL.getTaskDefinitions(), ctx.
|
|
31
|
+
env = new runtime_environment_1.Environment(resolvedConfig, hardhatArguments, ctx.tasksDSL.getTaskDefinitions(), ctx.environmentExtenders, ctx.experimentalHardhatNetworkMessageTraceHooks, userConfig, ctx.providerExtenders);
|
|
32
32
|
ctx.setHardhatRuntimeEnvironment(env);
|
|
33
33
|
}
|
|
34
34
|
module.exports = env;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hardhat-lib.js","sourceRoot":"","sources":["../../src/internal/lib/hardhat-lib.ts"],"names":[],"mappings":";;;;AAAA,kDAA0B;AAG1B,wCAA4C;AAC5C,kEAAmE;AACnE,2CAA8C;AAC9C,qDAA6C;AAC7C,gEAAsE;AACtE,kEAA0E;AAC1E,qEAA0D;AAE1D,IAAI,GAAmB,CAAC;AACxB,IAAI,GAA8B,CAAC;AAEnC,IAAI,wBAAc,CAAC,SAAS,EAAE,EAAE;IAC9B,GAAG,GAAG,wBAAc,CAAC,iBAAiB,EAAE,CAAC;IAEzC,6EAA6E;IAC7E,uBAAuB;IACvB,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS,EAAE;QACjC,MAAM,IAAI,qBAAY,CAAC,oBAAM,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;KACrE;IAED,GAAG,GAAG,GAAG,CAAC,WAAW,CAAC;CACvB;KAAM;IACL,GAAG,GAAG,wBAAc,CAAC,oBAAoB,EAAE,CAAC;IAE5C,MAAM,gBAAgB,GAAG,IAAA,sCAAsB,EAC7C,0CAAyB,EACzB,OAAO,CAAC,GAAG,CACZ,CAAC;IAEF,IAAI,gBAAgB,CAAC,OAAO,EAAE;QAC5B,eAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;KAC1B;IAED,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,IAAA,mCAAkB,EAAC,gBAAgB,CAAC,CAAC;IAE5E,GAAG,GAAG,IAAI,iCAAW,CACnB,cAAc,EACd,gBAAgB,EAChB,GAAG,CAAC,QAAQ,CAAC,kBAAkB,EAAE,EACjC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"hardhat-lib.js","sourceRoot":"","sources":["../../src/internal/lib/hardhat-lib.ts"],"names":[],"mappings":";;;;AAAA,kDAA0B;AAG1B,wCAA4C;AAC5C,kEAAmE;AACnE,2CAA8C;AAC9C,qDAA6C;AAC7C,gEAAsE;AACtE,kEAA0E;AAC1E,qEAA0D;AAE1D,IAAI,GAAmB,CAAC;AACxB,IAAI,GAA8B,CAAC;AAEnC,IAAI,wBAAc,CAAC,SAAS,EAAE,EAAE;IAC9B,GAAG,GAAG,wBAAc,CAAC,iBAAiB,EAAE,CAAC;IAEzC,6EAA6E;IAC7E,uBAAuB;IACvB,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS,EAAE;QACjC,MAAM,IAAI,qBAAY,CAAC,oBAAM,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;KACrE;IAED,GAAG,GAAG,GAAG,CAAC,WAAW,CAAC;CACvB;KAAM;IACL,GAAG,GAAG,wBAAc,CAAC,oBAAoB,EAAE,CAAC;IAE5C,MAAM,gBAAgB,GAAG,IAAA,sCAAsB,EAC7C,0CAAyB,EACzB,OAAO,CAAC,GAAG,CACZ,CAAC;IAEF,IAAI,gBAAgB,CAAC,OAAO,EAAE;QAC5B,eAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;KAC1B;IAED,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,IAAA,mCAAkB,EAAC,gBAAgB,CAAC,CAAC;IAE5E,GAAG,GAAG,IAAI,iCAAW,CACnB,cAAc,EACd,gBAAgB,EAChB,GAAG,CAAC,QAAQ,CAAC,kBAAkB,EAAE,EACjC,GAAG,CAAC,oBAAoB,EACxB,GAAG,CAAC,2CAA2C,EAC/C,UAAU,EACV,GAAG,CAAC,iBAAiB,CACtB,CAAC;IAEF,GAAG,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC;CACvC;AAED,iBAAS,GAAG,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hardhat",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.16.0",
|
|
4
4
|
"author": "Nomic Labs LLC",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://hardhat.org",
|
|
@@ -70,7 +70,6 @@
|
|
|
70
70
|
"@types/lodash": "^4.14.123",
|
|
71
71
|
"@types/mocha": ">=9.1.0",
|
|
72
72
|
"@types/node": "^14.0.0",
|
|
73
|
-
"@types/qs": "^6.5.3",
|
|
74
73
|
"@types/resolve": "^1.17.1",
|
|
75
74
|
"@types/semver": "^6.0.2",
|
|
76
75
|
"@types/sinon": "^9.0.8",
|
|
@@ -137,7 +136,6 @@
|
|
|
137
136
|
"mnemonist": "^0.38.0",
|
|
138
137
|
"mocha": "^10.0.0",
|
|
139
138
|
"p-map": "^4.0.0",
|
|
140
|
-
"qs": "^6.7.0",
|
|
141
139
|
"raw-body": "^2.4.1",
|
|
142
140
|
"resolve": "1.17.0",
|
|
143
141
|
"semver": "^6.3.0",
|
package/plugins.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export { ProviderWrapper } from "./internal/core/providers/wrapper";
|
|
1
2
|
export { HardhatPluginError, NomicLabsHardhatPluginError, } from "./internal/core/errors";
|
|
2
3
|
export { lazyObject, lazyFunction } from "./internal/util/lazy";
|
|
3
4
|
export { HARDHAT_NETWORK_NAME } from "./internal/constants";
|
package/plugins.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["src/plugins.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,2BAA2B,GAC5B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["src/plugins.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EACL,kBAAkB,EAClB,2BAA2B,GAC5B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC"}
|
package/plugins.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.HARDHAT_NETWORK_NAME = exports.lazyFunction = exports.lazyObject = exports.NomicLabsHardhatPluginError = exports.HardhatPluginError = void 0;
|
|
3
|
+
exports.HARDHAT_NETWORK_NAME = exports.lazyFunction = exports.lazyObject = exports.NomicLabsHardhatPluginError = exports.HardhatPluginError = exports.ProviderWrapper = void 0;
|
|
4
|
+
var wrapper_1 = require("./internal/core/providers/wrapper");
|
|
5
|
+
Object.defineProperty(exports, "ProviderWrapper", { enumerable: true, get: function () { return wrapper_1.ProviderWrapper; } });
|
|
4
6
|
var errors_1 = require("./internal/core/errors");
|
|
5
7
|
Object.defineProperty(exports, "HardhatPluginError", { enumerable: true, get: function () { return errors_1.HardhatPluginError; } });
|
|
6
8
|
Object.defineProperty(exports, "NomicLabsHardhatPluginError", { enumerable: true, get: function () { return errors_1.NomicLabsHardhatPluginError; } });
|
package/plugins.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["src/plugins.ts"],"names":[],"mappings":";;;AAAA,iDAGgC;AAF9B,4GAAA,kBAAkB,OAAA;AAClB,qHAAA,2BAA2B,OAAA;AAE7B,6CAAgE;AAAvD,kGAAA,UAAU,OAAA;AAAE,oGAAA,YAAY,OAAA;AACjC,kDAA4D;AAAnD,iHAAA,oBAAoB,OAAA"}
|
|
1
|
+
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["src/plugins.ts"],"names":[],"mappings":";;;AAAA,6DAAoE;AAA3D,0GAAA,eAAe,OAAA;AACxB,iDAGgC;AAF9B,4GAAA,kBAAkB,OAAA;AAClB,qHAAA,2BAA2B,OAAA;AAE7B,6CAAgE;AAAvD,kGAAA,UAAU,OAAA;AAAE,oGAAA,YAAY,OAAA;AACjC,kDAA4D;AAAnD,iHAAA,oBAAoB,OAAA"}
|
package/register.js
CHANGED
|
@@ -25,7 +25,7 @@ if (!context_1.HardhatContext.isCreated()) {
|
|
|
25
25
|
(0, typescript_support_1.loadTsNode)(hardhatArguments.tsconfig, hardhatArguments.typecheck);
|
|
26
26
|
}
|
|
27
27
|
const { resolvedConfig, userConfig } = (0, config_loading_1.loadConfigAndTasks)(hardhatArguments);
|
|
28
|
-
const env = new runtime_environment_1.Environment(resolvedConfig, hardhatArguments, ctx.tasksDSL.getTaskDefinitions(), ctx.
|
|
28
|
+
const env = new runtime_environment_1.Environment(resolvedConfig, hardhatArguments, ctx.tasksDSL.getTaskDefinitions(), ctx.environmentExtenders, ctx.experimentalHardhatNetworkMessageTraceHooks, userConfig, ctx.providerExtenders);
|
|
29
29
|
ctx.setHardhatRuntimeEnvironment(env);
|
|
30
30
|
env.injectToGlobal();
|
|
31
31
|
}
|
package/register.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.js","sourceRoot":"","sources":["src/register.ts"],"names":[],"mappings":";;;;;AAAA,kDAA0B;AAE1B,gDAAoD;AACpD,0EAA2E;AAC3E,wEAA8E;AAC9E,0EAAkF;AAClF,6EAAkE;AAClE,2EAG4C;AAC5C,qDAGiC;AAEjC,IAAI,CAAC,wBAAc,CAAC,SAAS,EAAE,EAAE;IAC/B,OAAO,CAAC,6BAA6B,CAAC,CAAC;IAEvC,MAAM,GAAG,GAAG,wBAAc,CAAC,oBAAoB,EAAE,CAAC;IAElD,IAAI,IAAA,oCAA0B,GAAE,EAAE;QAChC,IAAA,oCAA0B,GAAE,CAAC;KAC9B;IAED,MAAM,gBAAgB,GAAG,IAAA,sCAAsB,EAC7C,0CAAyB,EACzB,OAAO,CAAC,GAAG,CACZ,CAAC;IAEF,IAAI,gBAAgB,CAAC,OAAO,EAAE;QAC5B,eAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;KAC1B;IAED,IAAI,IAAA,0CAAqB,EAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE;QAClD,IAAA,+BAAU,EAAC,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;KACnE;IAED,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,IAAA,mCAAkB,EAAC,gBAAgB,CAAC,CAAC;IAE5E,MAAM,GAAG,GAAG,IAAI,iCAAW,CACzB,cAAc,EACd,gBAAgB,EAChB,GAAG,CAAC,QAAQ,CAAC,kBAAkB,EAAE,EACjC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"register.js","sourceRoot":"","sources":["src/register.ts"],"names":[],"mappings":";;;;;AAAA,kDAA0B;AAE1B,gDAAoD;AACpD,0EAA2E;AAC3E,wEAA8E;AAC9E,0EAAkF;AAClF,6EAAkE;AAClE,2EAG4C;AAC5C,qDAGiC;AAEjC,IAAI,CAAC,wBAAc,CAAC,SAAS,EAAE,EAAE;IAC/B,OAAO,CAAC,6BAA6B,CAAC,CAAC;IAEvC,MAAM,GAAG,GAAG,wBAAc,CAAC,oBAAoB,EAAE,CAAC;IAElD,IAAI,IAAA,oCAA0B,GAAE,EAAE;QAChC,IAAA,oCAA0B,GAAE,CAAC;KAC9B;IAED,MAAM,gBAAgB,GAAG,IAAA,sCAAsB,EAC7C,0CAAyB,EACzB,OAAO,CAAC,GAAG,CACZ,CAAC;IAEF,IAAI,gBAAgB,CAAC,OAAO,EAAE;QAC5B,eAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;KAC1B;IAED,IAAI,IAAA,0CAAqB,EAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE;QAClD,IAAA,+BAAU,EAAC,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;KACnE;IAED,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,IAAA,mCAAkB,EAAC,gBAAgB,CAAC,CAAC;IAE5E,MAAM,GAAG,GAAG,IAAI,iCAAW,CACzB,cAAc,EACd,gBAAgB,EAChB,GAAG,CAAC,QAAQ,CAAC,kBAAkB,EAAE,EACjC,GAAG,CAAC,oBAAoB,EACxB,GAAG,CAAC,2CAA2C,EAC/C,UAAU,EACV,GAAG,CAAC,iBAAiB,CACtB,CAAC;IAEF,GAAG,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC;IAEtC,GAAG,CAAC,cAAc,EAAE,CAAC;CACtB"}
|
|
@@ -43,6 +43,7 @@ import { getAllFilesMatching } from "../internal/util/fs-utils";
|
|
|
43
43
|
import {
|
|
44
44
|
TASK_COMPILE,
|
|
45
45
|
TASK_COMPILE_GET_COMPILATION_TASKS,
|
|
46
|
+
TASK_COMPILE_REMOVE_OBSOLETE_ARTIFACTS,
|
|
46
47
|
TASK_COMPILE_SOLIDITY,
|
|
47
48
|
TASK_COMPILE_SOLIDITY_CHECK_ERRORS,
|
|
48
49
|
TASK_COMPILE_SOLIDITY_COMPILE,
|
|
@@ -72,7 +73,6 @@ import {
|
|
|
72
73
|
TASK_COMPILE_SOLIDITY_READ_FILE,
|
|
73
74
|
TASK_COMPILE_SOLIDITY_RUN_SOLC,
|
|
74
75
|
TASK_COMPILE_SOLIDITY_RUN_SOLCJS,
|
|
75
|
-
TASK_COMPILE_REMOVE_OBSOLETE_ARTIFACTS,
|
|
76
76
|
TASK_COMPILE_TRANSFORM_IMPORT_NAME,
|
|
77
77
|
} from "./task-names";
|
|
78
78
|
import {
|
|
@@ -115,16 +115,18 @@ const DEFAULT_CONCURRENCY_LEVEL = Math.max(os.cpus().length - 1, 1);
|
|
|
115
115
|
* This is the right task to override to change how the solidity files of the
|
|
116
116
|
* project are obtained.
|
|
117
117
|
*/
|
|
118
|
-
subtask(
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
);
|
|
118
|
+
subtask(TASK_COMPILE_SOLIDITY_GET_SOURCE_PATHS)
|
|
119
|
+
.addOptionalParam("sourcePath", undefined, undefined, types.string)
|
|
120
|
+
.setAction(
|
|
121
|
+
async (
|
|
122
|
+
{ sourcePath }: { sourcePath?: string },
|
|
123
|
+
{ config }
|
|
124
|
+
): Promise<string[]> => {
|
|
125
|
+
return getAllFilesMatching(sourcePath ?? config.paths.sources, (f) =>
|
|
126
|
+
f.endsWith(".sol")
|
|
127
|
+
);
|
|
128
|
+
}
|
|
129
|
+
);
|
|
128
130
|
|
|
129
131
|
/**
|
|
130
132
|
* Receives a list of absolute paths and returns a list of source names
|
|
@@ -134,17 +136,24 @@ subtask(
|
|
|
134
136
|
* is generated.
|
|
135
137
|
*/
|
|
136
138
|
subtask(TASK_COMPILE_SOLIDITY_GET_SOURCE_NAMES)
|
|
139
|
+
.addOptionalParam("rootPath", undefined, undefined, types.string)
|
|
137
140
|
.addParam("sourcePaths", undefined, undefined, types.any)
|
|
138
141
|
.setAction(
|
|
139
142
|
async (
|
|
140
|
-
{
|
|
143
|
+
{
|
|
144
|
+
rootPath,
|
|
145
|
+
sourcePaths,
|
|
146
|
+
}: {
|
|
147
|
+
rootPath?: string;
|
|
148
|
+
sourcePaths: string[];
|
|
149
|
+
},
|
|
141
150
|
{ config }
|
|
142
151
|
): Promise<string[]> => {
|
|
143
|
-
|
|
144
|
-
sourcePaths.map((p) =>
|
|
152
|
+
return Promise.all(
|
|
153
|
+
sourcePaths.map((p) =>
|
|
154
|
+
localPathToSourceName(rootPath ?? config.paths.root, p)
|
|
155
|
+
)
|
|
145
156
|
);
|
|
146
|
-
|
|
147
|
-
return sourceNames;
|
|
148
157
|
}
|
|
149
158
|
);
|
|
150
159
|
|
|
@@ -152,11 +161,9 @@ subtask(TASK_COMPILE_SOLIDITY_READ_FILE)
|
|
|
152
161
|
.addParam("absolutePath", undefined, undefined, types.string)
|
|
153
162
|
.setAction(
|
|
154
163
|
async ({ absolutePath }: { absolutePath: string }): Promise<string> => {
|
|
155
|
-
|
|
164
|
+
return fsExtra.readFile(absolutePath, {
|
|
156
165
|
encoding: "utf8",
|
|
157
166
|
});
|
|
158
|
-
|
|
159
|
-
return content;
|
|
160
167
|
}
|
|
161
168
|
);
|
|
162
169
|
|
|
@@ -178,19 +185,25 @@ subtask(TASK_COMPILE_TRANSFORM_IMPORT_NAME)
|
|
|
178
185
|
* node_modules) and generating the graph.
|
|
179
186
|
*/
|
|
180
187
|
subtask(TASK_COMPILE_SOLIDITY_GET_DEPENDENCY_GRAPH)
|
|
188
|
+
.addOptionalParam("rootPath", undefined, undefined, types.string)
|
|
181
189
|
.addParam("sourceNames", undefined, undefined, types.any)
|
|
182
190
|
.addOptionalParam("solidityFilesCache", undefined, undefined, types.any)
|
|
183
191
|
.setAction(
|
|
184
192
|
async (
|
|
185
193
|
{
|
|
194
|
+
rootPath,
|
|
186
195
|
sourceNames,
|
|
187
196
|
solidityFilesCache,
|
|
188
|
-
}: {
|
|
197
|
+
}: {
|
|
198
|
+
rootPath?: string;
|
|
199
|
+
sourceNames: string[];
|
|
200
|
+
solidityFilesCache?: SolidityFilesCache;
|
|
201
|
+
},
|
|
189
202
|
{ config, run }
|
|
190
203
|
): Promise<taskTypes.DependencyGraph> => {
|
|
191
204
|
const parser = new Parser(solidityFilesCache);
|
|
192
205
|
const resolver = new Resolver(
|
|
193
|
-
config.paths.root,
|
|
206
|
+
rootPath ?? config.paths.root,
|
|
194
207
|
parser,
|
|
195
208
|
(absolutePath: string) =>
|
|
196
209
|
run(TASK_COMPILE_SOLIDITY_READ_FILE, { absolutePath }),
|
|
@@ -201,12 +214,8 @@ subtask(TASK_COMPILE_SOLIDITY_GET_DEPENDENCY_GRAPH)
|
|
|
201
214
|
const resolvedFiles = await Promise.all(
|
|
202
215
|
sourceNames.map((sn) => resolver.resolveSourceName(sn))
|
|
203
216
|
);
|
|
204
|
-
const dependencyGraph = await DependencyGraph.createFromResolvedFiles(
|
|
205
|
-
resolver,
|
|
206
|
-
resolvedFiles
|
|
207
|
-
);
|
|
208
217
|
|
|
209
|
-
return
|
|
218
|
+
return DependencyGraph.createFromResolvedFiles(resolver, resolvedFiles);
|
|
210
219
|
}
|
|
211
220
|
);
|
|
212
221
|
|
|
@@ -405,27 +414,19 @@ subtask(TASK_COMPILE_SOLIDITY_COMPILE_JOBS)
|
|
|
405
414
|
|
|
406
415
|
log(`Compiling ${compilationJobs.length} jobs`);
|
|
407
416
|
|
|
408
|
-
const versionList: string[] = [];
|
|
409
417
|
for (const job of compilationJobs) {
|
|
410
418
|
const solcVersion = job.getSolcConfig().version;
|
|
411
419
|
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
firstSupportedVersion:
|
|
423
|
-
COMPILE_TASK_FIRST_SOLC_VERSION_SUPPORTED,
|
|
424
|
-
}
|
|
425
|
-
);
|
|
426
|
-
}
|
|
427
|
-
|
|
428
|
-
versionList.push(solcVersion);
|
|
420
|
+
// versions older than 0.4.11 don't work with hardhat
|
|
421
|
+
// see issue https://github.com/nomiclabs/hardhat/issues/2004
|
|
422
|
+
if (semver.lt(solcVersion, COMPILE_TASK_FIRST_SOLC_VERSION_SUPPORTED)) {
|
|
423
|
+
throw new HardhatError(
|
|
424
|
+
ERRORS.BUILTIN_TASKS.COMPILE_TASK_UNSUPPORTED_SOLC_VERSION,
|
|
425
|
+
{
|
|
426
|
+
version: solcVersion,
|
|
427
|
+
firstSupportedVersion: COMPILE_TASK_FIRST_SOLC_VERSION_SUPPORTED,
|
|
428
|
+
}
|
|
429
|
+
);
|
|
429
430
|
}
|
|
430
431
|
}
|
|
431
432
|
|
|
@@ -636,9 +637,7 @@ subtask(TASK_COMPILE_SOLIDITY_RUN_SOLCJS)
|
|
|
636
637
|
}) => {
|
|
637
638
|
const compiler = new Compiler(solcJsPath);
|
|
638
639
|
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
return output;
|
|
640
|
+
return compiler.compile(input);
|
|
642
641
|
}
|
|
643
642
|
);
|
|
644
643
|
|
|
@@ -653,9 +652,7 @@ subtask(TASK_COMPILE_SOLIDITY_RUN_SOLC)
|
|
|
653
652
|
async ({ input, solcPath }: { input: CompilerInput; solcPath: string }) => {
|
|
654
653
|
const compiler = new NativeCompiler(solcPath);
|
|
655
654
|
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
return output;
|
|
655
|
+
return compiler.compile(input);
|
|
659
656
|
}
|
|
660
657
|
);
|
|
661
658
|
|
|
@@ -1298,13 +1295,16 @@ subtask(TASK_COMPILE_SOLIDITY)
|
|
|
1298
1295
|
}: { force: boolean; quiet: boolean; concurrency: number },
|
|
1299
1296
|
{ artifacts, config, run }
|
|
1300
1297
|
) => {
|
|
1298
|
+
const rootPath = config.paths.root;
|
|
1299
|
+
|
|
1301
1300
|
const sourcePaths: string[] = await run(
|
|
1302
|
-
TASK_COMPILE_SOLIDITY_GET_SOURCE_PATHS
|
|
1301
|
+
TASK_COMPILE_SOLIDITY_GET_SOURCE_PATHS,
|
|
1302
|
+
{ sourcePath: config.paths.sources }
|
|
1303
1303
|
);
|
|
1304
|
-
|
|
1305
1304
|
const sourceNames: string[] = await run(
|
|
1306
1305
|
TASK_COMPILE_SOLIDITY_GET_SOURCE_NAMES,
|
|
1307
1306
|
{
|
|
1307
|
+
rootPath,
|
|
1308
1308
|
sourcePaths,
|
|
1309
1309
|
}
|
|
1310
1310
|
);
|
|
@@ -1316,7 +1316,7 @@ subtask(TASK_COMPILE_SOLIDITY)
|
|
|
1316
1316
|
|
|
1317
1317
|
const dependencyGraph: taskTypes.DependencyGraph = await run(
|
|
1318
1318
|
TASK_COMPILE_SOLIDITY_GET_DEPENDENCY_GRAPH,
|
|
1319
|
-
{ sourceNames, solidityFilesCache }
|
|
1319
|
+
{ rootPath, sourceNames, solidityFilesCache }
|
|
1320
1320
|
);
|
|
1321
1321
|
|
|
1322
1322
|
solidityFilesCache = await invalidateCacheMissingArtifacts(
|