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.
Files changed (75) hide show
  1. package/builtin-tasks/compile.js +25 -29
  2. package/builtin-tasks/compile.js.map +1 -1
  3. package/builtin-tasks/node.js +1 -2
  4. package/builtin-tasks/node.js.map +1 -1
  5. package/console.sol +3 -4
  6. package/internal/cli/analytics.d.ts +6 -6
  7. package/internal/cli/analytics.d.ts.map +1 -1
  8. package/internal/cli/analytics.js +43 -115
  9. package/internal/cli/analytics.js.map +1 -1
  10. package/internal/cli/cli.js +6 -4
  11. package/internal/cli/cli.js.map +1 -1
  12. package/internal/cli/project-creation.d.ts.map +1 -1
  13. package/internal/cli/project-creation.js +2 -1
  14. package/internal/cli/project-creation.js.map +1 -1
  15. package/internal/context.d.ts +3 -3
  16. package/internal/context.d.ts.map +1 -1
  17. package/internal/context.js +2 -2
  18. package/internal/context.js.map +1 -1
  19. package/internal/core/config/config-env.d.ts +16 -1
  20. package/internal/core/config/config-env.d.ts.map +1 -1
  21. package/internal/core/config/config-env.js +21 -3
  22. package/internal/core/config/config-env.js.map +1 -1
  23. package/internal/core/errors-list.d.ts +7 -0
  24. package/internal/core/errors-list.d.ts.map +1 -1
  25. package/internal/core/errors-list.js +8 -0
  26. package/internal/core/errors-list.js.map +1 -1
  27. package/internal/core/providers/construction.d.ts +3 -3
  28. package/internal/core/providers/construction.d.ts.map +1 -1
  29. package/internal/core/providers/construction.js +13 -5
  30. package/internal/core/providers/construction.js.map +1 -1
  31. package/internal/core/providers/lazy-initialization.d.ts +44 -0
  32. package/internal/core/providers/lazy-initialization.d.ts.map +1 -0
  33. package/internal/core/providers/lazy-initialization.js +137 -0
  34. package/internal/core/providers/lazy-initialization.js.map +1 -0
  35. package/internal/core/providers/wrapper.d.ts +10 -0
  36. package/internal/core/providers/wrapper.d.ts.map +1 -1
  37. package/internal/core/providers/wrapper.js +10 -0
  38. package/internal/core/providers/wrapper.js.map +1 -1
  39. package/internal/core/runtime-environment.d.ts +5 -4
  40. package/internal/core/runtime-environment.d.ts.map +1 -1
  41. package/internal/core/runtime-environment.js +9 -8
  42. package/internal/core/runtime-environment.js.map +1 -1
  43. package/internal/lib/hardhat-lib.d.ts.map +1 -1
  44. package/internal/lib/hardhat-lib.js +1 -1
  45. package/internal/lib/hardhat-lib.js.map +1 -1
  46. package/package.json +1 -3
  47. package/plugins.d.ts +1 -0
  48. package/plugins.d.ts.map +1 -1
  49. package/plugins.js +3 -1
  50. package/plugins.js.map +1 -1
  51. package/register.js +1 -1
  52. package/register.js.map +1 -1
  53. package/src/builtin-tasks/compile.ts +53 -53
  54. package/src/builtin-tasks/node.ts +2 -5
  55. package/src/internal/cli/analytics.ts +82 -134
  56. package/src/internal/cli/cli.ts +7 -4
  57. package/src/internal/cli/project-creation.ts +4 -1
  58. package/src/internal/context.ts +5 -2
  59. package/src/internal/core/config/config-env.ts +21 -2
  60. package/src/internal/core/errors-list.ts +9 -0
  61. package/src/internal/core/providers/construction.ts +26 -10
  62. package/src/internal/core/providers/lazy-initialization.ts +178 -0
  63. package/src/internal/core/providers/wrapper.ts +10 -0
  64. package/src/internal/core/runtime-environment.ts +15 -12
  65. package/src/internal/lib/hardhat-lib.ts +3 -2
  66. package/src/plugins.ts +1 -0
  67. package/src/register.ts +3 -2
  68. package/src/types/runtime.ts +11 -1
  69. package/types/runtime.d.ts +6 -1
  70. package/types/runtime.d.ts.map +1 -1
  71. package/internal/core/config/extenders.d.ts +0 -7
  72. package/internal/core/config/extenders.d.ts.map +0 -1
  73. package/internal/core/config/extenders.js +0 -16
  74. package/internal/core/config/extenders.js.map +0 -1
  75. 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;IAIS,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;AA5BD,0CA4BC"}
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 _extenders;
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 extenders A list of extenders.
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, extenders?: EnvironmentExtender[], experimentalHardhatNetworkMessageTraceHooks?: ExperimentalHardhatNetworkMessageTraceHook[], userConfig?: HardhatUserConfig);
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,EACT,MAAM,aAAa,CAAC;AAWrB,OAAO,EAIL,WAAW,EACZ,MAAM,kBAAkB,CAAC;AAI1B,qBAAa,WAAY,YAAW,yBAAyB;aA+BzC,MAAM,EAAE,aAAa;aACrB,gBAAgB,EAAE,gBAAgB;aAClC,KAAK,EAAE,QAAQ;aAGf,UAAU,EAAE,iBAAiB;IAnC/C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAK7C;IAEK,OAAO,EAAE,OAAO,CAAC;IAEjB,SAAS,EAAE,UAAU,CAAC;IAE7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwB;IAE5C,gBAAgB,CAAC,EAAE,WAAW,CAAC;IAE/B,OAAO,EAAE,MAAM,CAAuB;IAE7C;;;;;;;;;;;OAWG;gBAEe,MAAM,EAAE,aAAa,EACrB,gBAAgB,EAAE,gBAAgB,EAClC,KAAK,EAAE,QAAQ,EAC/B,SAAS,GAAE,mBAAmB,EAAO,EACrC,2CAA2C,GAAE,0CAA0C,EAAO,EAC9E,UAAU,GAAE,iBAAsB;IA4CpD;;;;;;;;;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"}
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 extenders A list of extenders.
29
+ * @param environmentExtenders A list of environment extenders.
30
+ * @param providerExtenders A list of provider extenders.
30
31
  */
31
- constructor(config, hardhatArguments, tasks, extenders = [], experimentalHardhatNetworkMessageTraceHooks = [], userConfig = {}) {
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 = (0, lazy_1.lazyObject)(() => {
92
+ const provider = new lazy_initialization_1.LazyInitializationProviderAdapter(async () => {
92
93
  log(`Creating provider for network ${networkName}`);
93
- return (0, construction_1.createProvider)(networkName, networkConfig, this.config.paths, this.artifacts, experimentalHardhatNetworkMessageTraceHooks.map((hook) => (trace, isCallMessageTrace) => hook(this, trace, isCallMessageTrace)));
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: config.networks[networkName],
98
+ config: networkConfig,
98
99
  provider,
99
100
  };
100
- this._extenders = extenders;
101
- extenders.forEach((extender) => extender(this));
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":"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"}
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;AAsCnC,SAAS,GAAG,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.extendersManager.getExtenders(), ctx.experimentalHardhatNetworkMessageTraceHooks, userConfig);
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,gBAAgB,CAAC,YAAY,EAAE,EACnC,GAAG,CAAC,2CAA2C,EAC/C,UAAU,CACX,CAAC;IAEF,GAAG,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC;CACvC;AAED,iBAAS,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.15.0",
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.extendersManager.getExtenders(), ctx.experimentalHardhatNetworkMessageTraceHooks, userConfig);
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,gBAAgB,CAAC,YAAY,EAAE,EACnC,GAAG,CAAC,2CAA2C,EAC/C,UAAU,CACX,CAAC;IAEF,GAAG,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC;IAEtC,GAAG,CAAC,cAAc,EAAE,CAAC;CACtB"}
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
- TASK_COMPILE_SOLIDITY_GET_SOURCE_PATHS,
120
- async (_, { config }): Promise<string[]> => {
121
- const paths = await getAllFilesMatching(config.paths.sources, (f) =>
122
- f.endsWith(".sol")
123
- );
124
-
125
- return paths;
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
- { sourcePaths }: { sourcePaths: string[] },
143
+ {
144
+ rootPath,
145
+ sourcePaths,
146
+ }: {
147
+ rootPath?: string;
148
+ sourcePaths: string[];
149
+ },
141
150
  { config }
142
151
  ): Promise<string[]> => {
143
- const sourceNames = await Promise.all(
144
- sourcePaths.map((p) => localPathToSourceName(config.paths.root, 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
- const content = await fsExtra.readFile(absolutePath, {
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
- }: { sourceNames: string[]; solidityFilesCache?: SolidityFilesCache },
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 dependencyGraph;
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
- if (!versionList.includes(solcVersion)) {
413
- // versions older than 0.4.11 don't work with hardhat
414
- // see issue https://github.com/nomiclabs/hardhat/issues/2004
415
- if (
416
- semver.lt(solcVersion, COMPILE_TASK_FIRST_SOLC_VERSION_SUPPORTED)
417
- ) {
418
- throw new HardhatError(
419
- ERRORS.BUILTIN_TASKS.COMPILE_TASK_UNSUPPORTED_SOLC_VERSION,
420
- {
421
- version: solcVersion,
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
- const output = await compiler.compile(input);
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
- const output = await compiler.compile(input);
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(