hardhat 2.17.1 → 2.17.3
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 +28 -4
- package/builtin-tasks/compile.js.map +1 -1
- package/builtin-tasks/task-names.d.ts +1 -0
- package/builtin-tasks/task-names.d.ts.map +1 -1
- package/builtin-tasks/task-names.js +3 -2
- package/builtin-tasks/task-names.js.map +1 -1
- package/internal/artifacts.d.ts +28 -0
- package/internal/artifacts.d.ts.map +1 -1
- package/internal/artifacts.js +39 -1
- package/internal/artifacts.js.map +1 -1
- package/internal/cli/project-creation.js +1 -1
- package/internal/core/config/config-resolution.d.ts.map +1 -1
- package/internal/core/config/config-resolution.js +4 -0
- package/internal/core/config/config-resolution.js.map +1 -1
- package/internal/core/errors-list.d.ts +28 -0
- package/internal/core/errors-list.d.ts.map +1 -1
- package/internal/core/errors-list.js +34 -0
- package/internal/core/errors-list.js.map +1 -1
- package/internal/core/jsonrpc/types/base-types.d.ts +1 -0
- package/internal/core/jsonrpc/types/base-types.d.ts.map +1 -1
- package/internal/core/jsonrpc/types/base-types.js +8 -1
- package/internal/core/jsonrpc/types/base-types.js.map +1 -1
- package/internal/core/jsonrpc/types/input/callRequest.d.ts +60 -0
- package/internal/core/jsonrpc/types/input/callRequest.d.ts.map +1 -1
- package/internal/core/jsonrpc/types/input/callRequest.js +13 -1
- package/internal/core/jsonrpc/types/input/callRequest.js.map +1 -1
- package/internal/core/providers/construction.d.ts.map +1 -1
- package/internal/core/providers/construction.js +1 -0
- package/internal/core/providers/construction.js.map +1 -1
- package/internal/hardhat-network/provider/fork/ForkBlockchain.d.ts.map +1 -1
- package/internal/hardhat-network/provider/fork/ForkBlockchain.js +13 -1
- package/internal/hardhat-network/provider/fork/ForkBlockchain.js.map +1 -1
- package/internal/hardhat-network/provider/modules/eth.d.ts.map +1 -1
- package/internal/hardhat-network/provider/modules/eth.js +3 -3
- package/internal/hardhat-network/provider/modules/eth.js.map +1 -1
- package/internal/hardhat-network/provider/node-types.d.ts +1 -0
- package/internal/hardhat-network/provider/node-types.d.ts.map +1 -1
- package/internal/hardhat-network/provider/node.d.ts +8 -1
- package/internal/hardhat-network/provider/node.d.ts.map +1 -1
- package/internal/hardhat-network/provider/node.js +65 -6
- package/internal/hardhat-network/provider/node.js.map +1 -1
- package/internal/hardhat-network/provider/provider.d.ts +1 -0
- package/internal/hardhat-network/provider/provider.d.ts.map +1 -1
- package/internal/hardhat-network/provider/provider.js +1 -0
- package/internal/hardhat-network/provider/provider.js.map +1 -1
- package/internal/hardhat-network/provider/utils/makeCommon.d.ts +1 -1
- package/internal/hardhat-network/provider/utils/makeCommon.d.ts.map +1 -1
- package/internal/hardhat-network/provider/utils/makeCommon.js +3 -1
- package/internal/hardhat-network/provider/utils/makeCommon.js.map +1 -1
- package/internal/hardhat-network/stack-traces/vm-debug-tracer.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/vm-debug-tracer.js +8 -8
- package/internal/hardhat-network/stack-traces/vm-debug-tracer.js.map +1 -1
- package/internal/solidity/dependencyGraph.d.ts.map +1 -1
- package/internal/solidity/dependencyGraph.js +13 -3
- package/internal/solidity/dependencyGraph.js.map +1 -1
- package/internal/solidity/resolver.d.ts +2 -1
- package/internal/solidity/resolver.d.ts.map +1 -1
- package/internal/solidity/resolver.js +31 -17
- package/internal/solidity/resolver.js.map +1 -1
- package/package.json +12 -11
- package/src/builtin-tasks/compile.ts +33 -4
- package/src/builtin-tasks/task-names.ts +1 -0
- package/src/internal/artifacts.ts +40 -1
- package/src/internal/cli/project-creation.ts +1 -1
- package/src/internal/core/config/config-resolution.ts +5 -0
- package/src/internal/core/errors-list.ts +38 -0
- package/src/internal/core/jsonrpc/types/base-types.ts +15 -0
- package/src/internal/core/jsonrpc/types/input/callRequest.ts +35 -1
- package/src/internal/core/providers/construction.ts +2 -0
- package/src/internal/hardhat-network/provider/fork/ForkBlockchain.ts +24 -4
- package/src/internal/hardhat-network/provider/modules/eth.ts +18 -4
- package/src/internal/hardhat-network/provider/node-types.ts +1 -0
- package/src/internal/hardhat-network/provider/node.ts +110 -6
- package/src/internal/hardhat-network/provider/provider.ts +2 -0
- package/src/internal/hardhat-network/provider/utils/makeCommon.ts +9 -1
- package/src/internal/hardhat-network/stack-traces/vm-debug-tracer.ts +12 -10
- package/src/internal/solidity/dependencyGraph.ts +15 -3
- package/src/internal/solidity/resolver.ts +58 -16
- package/src/types/config.ts +2 -0
- package/src/utils/contract-names.ts +1 -0
- package/src/utils/remappings.ts +17 -0
- package/types/config.d.ts +2 -0
- package/types/config.d.ts.map +1 -1
- package/utils/contract-names.d.ts +1 -0
- package/utils/contract-names.d.ts.map +1 -1
- package/utils/contract-names.js +1 -0
- package/utils/contract-names.js.map +1 -1
- package/utils/remappings.d.ts +2 -0
- package/utils/remappings.d.ts.map +1 -0
- package/utils/remappings.js +15 -0
- package/utils/remappings.js.map +1 -0
|
@@ -12,6 +12,7 @@ const errors_1 = require("../core/errors");
|
|
|
12
12
|
const errors_list_1 = require("../core/errors-list");
|
|
13
13
|
const hash_1 = require("../util/hash");
|
|
14
14
|
const fs_utils_1 = require("../util/fs-utils");
|
|
15
|
+
const remappings_1 = require("../../utils/remappings");
|
|
15
16
|
const NODE_MODULES = "node_modules";
|
|
16
17
|
class ResolvedFile {
|
|
17
18
|
constructor(sourceName, absolutePath, content, contentHash, lastModificationDate, libraryName, libraryVersion) {
|
|
@@ -36,9 +37,10 @@ class ResolvedFile {
|
|
|
36
37
|
}
|
|
37
38
|
exports.ResolvedFile = ResolvedFile;
|
|
38
39
|
class Resolver {
|
|
39
|
-
constructor(_projectRoot, _parser, _readFile, _transformImportName) {
|
|
40
|
+
constructor(_projectRoot, _parser, _remappings, _readFile, _transformImportName) {
|
|
40
41
|
this._projectRoot = _projectRoot;
|
|
41
42
|
this._parser = _parser;
|
|
43
|
+
this._remappings = _remappings;
|
|
42
44
|
this._readFile = _readFile;
|
|
43
45
|
this._transformImportName = _transformImportName;
|
|
44
46
|
this._cache = new Map();
|
|
@@ -53,13 +55,14 @@ class Resolver {
|
|
|
53
55
|
if (cached !== undefined) {
|
|
54
56
|
return cached;
|
|
55
57
|
}
|
|
56
|
-
(0,
|
|
58
|
+
const remappedSourceName = (0, remappings_1.applyRemappings)(this._remappings, sourceName);
|
|
59
|
+
(0, source_names_1.validateSourceNameFormat)(remappedSourceName);
|
|
57
60
|
let resolvedFile;
|
|
58
|
-
if (await (0, source_names_1.isLocalSourceName)(this._projectRoot,
|
|
59
|
-
resolvedFile = await this._resolveLocalSourceName(sourceName);
|
|
61
|
+
if (await (0, source_names_1.isLocalSourceName)(this._projectRoot, remappedSourceName)) {
|
|
62
|
+
resolvedFile = await this._resolveLocalSourceName(sourceName, remappedSourceName);
|
|
60
63
|
}
|
|
61
64
|
else {
|
|
62
|
-
resolvedFile = await this._resolveLibrarySourceName(sourceName);
|
|
65
|
+
resolvedFile = await this._resolveLibrarySourceName(sourceName, remappedSourceName);
|
|
63
66
|
}
|
|
64
67
|
this._cache.set(sourceName, resolvedFile);
|
|
65
68
|
return resolvedFile;
|
|
@@ -70,7 +73,11 @@ class Resolver {
|
|
|
70
73
|
* @param importName The path in the import statement.
|
|
71
74
|
*/
|
|
72
75
|
async resolveImport(from, importName) {
|
|
73
|
-
|
|
76
|
+
// sanity check for deprecated task
|
|
77
|
+
if (importName !== (await this._transformImportName(importName))) {
|
|
78
|
+
throw new errors_1.HardhatError(errors_list_1.ERRORS.TASK_DEFINITIONS.DEPRECATED_TRANSFORM_IMPORT_TASK);
|
|
79
|
+
}
|
|
80
|
+
const imported = (0, remappings_1.applyRemappings)(this._remappings, importName);
|
|
74
81
|
const scheme = this._getUriScheme(imported);
|
|
75
82
|
if (scheme !== undefined) {
|
|
76
83
|
throw new errors_1.HardhatError(errors_list_1.ERRORS.RESOLVER.INVALID_IMPORT_PROTOCOL, {
|
|
@@ -106,7 +113,7 @@ class Resolver {
|
|
|
106
113
|
sourceName = await this._relativeImportToSourceName(from, imported);
|
|
107
114
|
}
|
|
108
115
|
else {
|
|
109
|
-
sourceName = (0, source_names_1.normalizeSourceName)(
|
|
116
|
+
sourceName = (0, source_names_1.normalizeSourceName)(importName); // The sourceName of the imported file is not transformed
|
|
110
117
|
}
|
|
111
118
|
const cached = this._cache.get(sourceName);
|
|
112
119
|
if (cached !== undefined) {
|
|
@@ -119,7 +126,7 @@ class Resolver {
|
|
|
119
126
|
if (from.library === undefined &&
|
|
120
127
|
isRelativeImport &&
|
|
121
128
|
!this._isRelativeImportToLibrary(from, imported)) {
|
|
122
|
-
resolvedFile = await this._resolveLocalSourceName(sourceName);
|
|
129
|
+
resolvedFile = await this._resolveLocalSourceName(sourceName, (0, remappings_1.applyRemappings)(this._remappings, sourceName));
|
|
123
130
|
}
|
|
124
131
|
else {
|
|
125
132
|
resolvedFile = await this.resolveSourceName(sourceName);
|
|
@@ -156,17 +163,24 @@ class Resolver {
|
|
|
156
163
|
from: from.sourceName,
|
|
157
164
|
}, error);
|
|
158
165
|
}
|
|
166
|
+
if (errors_1.HardhatError.isHardhatErrorType(error, errors_list_1.ERRORS.GENERAL.INVALID_READ_OF_DIRECTORY)) {
|
|
167
|
+
throw new errors_1.HardhatError(errors_list_1.ERRORS.RESOLVER.INVALID_IMPORT_OF_DIRECTORY, {
|
|
168
|
+
imported,
|
|
169
|
+
from: from.sourceName,
|
|
170
|
+
}, error);
|
|
171
|
+
}
|
|
159
172
|
// eslint-disable-next-line @nomicfoundation/hardhat-internal-rules/only-hardhat-error
|
|
160
173
|
throw error;
|
|
161
174
|
}
|
|
162
175
|
}
|
|
163
|
-
async _resolveLocalSourceName(sourceName) {
|
|
164
|
-
await this._validateSourceNameExistenceAndCasing(this._projectRoot,
|
|
165
|
-
const absolutePath = path_1.default.join(this._projectRoot,
|
|
176
|
+
async _resolveLocalSourceName(sourceName, remappedSourceName) {
|
|
177
|
+
await this._validateSourceNameExistenceAndCasing(this._projectRoot, remappedSourceName, false);
|
|
178
|
+
const absolutePath = path_1.default.join(this._projectRoot, remappedSourceName);
|
|
166
179
|
return this._resolveFile(sourceName, absolutePath);
|
|
167
180
|
}
|
|
168
|
-
async _resolveLibrarySourceName(sourceName) {
|
|
169
|
-
const
|
|
181
|
+
async _resolveLibrarySourceName(sourceName, remappedSourceName) {
|
|
182
|
+
const normalizedSourceName = remappedSourceName.replace(/^node_modules\//, "");
|
|
183
|
+
const libraryName = this._getLibraryName(normalizedSourceName);
|
|
170
184
|
let packageJsonPath;
|
|
171
185
|
try {
|
|
172
186
|
packageJsonPath = this._resolveNodeModulesFileFromProjectRoot(path_1.default.join(libraryName, "package.json"));
|
|
@@ -186,7 +200,7 @@ class Resolver {
|
|
|
186
200
|
}
|
|
187
201
|
}
|
|
188
202
|
let nodeModulesPath = path_1.default.dirname(path_1.default.dirname(packageJsonPath));
|
|
189
|
-
if (this._isScopedPackage(
|
|
203
|
+
if (this._isScopedPackage(normalizedSourceName)) {
|
|
190
204
|
nodeModulesPath = path_1.default.dirname(nodeModulesPath);
|
|
191
205
|
}
|
|
192
206
|
let absolutePath;
|
|
@@ -195,7 +209,7 @@ class Resolver {
|
|
|
195
209
|
// cases we handle resolution differently
|
|
196
210
|
const packageRoot = path_1.default.dirname(packageJsonPath);
|
|
197
211
|
const pattern = new RegExp(`^${libraryName}/?`);
|
|
198
|
-
const fileName =
|
|
212
|
+
const fileName = normalizedSourceName.replace(pattern, "");
|
|
199
213
|
await this._validateSourceNameExistenceAndCasing(packageRoot,
|
|
200
214
|
// TODO: this is _not_ a source name; we should handle this scenario in
|
|
201
215
|
// a better way
|
|
@@ -203,8 +217,8 @@ class Resolver {
|
|
|
203
217
|
absolutePath = path_1.default.join(packageRoot, fileName);
|
|
204
218
|
}
|
|
205
219
|
else {
|
|
206
|
-
await this._validateSourceNameExistenceAndCasing(nodeModulesPath,
|
|
207
|
-
absolutePath = path_1.default.join(nodeModulesPath,
|
|
220
|
+
await this._validateSourceNameExistenceAndCasing(nodeModulesPath, normalizedSourceName, true);
|
|
221
|
+
absolutePath = path_1.default.join(nodeModulesPath, normalizedSourceName);
|
|
208
222
|
}
|
|
209
223
|
const packageInfo = await fs_extra_1.default.readJson(packageJsonPath);
|
|
210
224
|
const libraryVersion = packageInfo.version;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/internal/solidity/resolver.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/internal/solidity/resolver.ts"],"names":[],"mappings":";;;;;;AAAA,wDAA+B;AAC/B,gDAAwB;AACxB,sDAA8B;AAO9B,2DAQkC;AAClC,2CAAsE;AACtE,qDAA6C;AAC7C,uCAAyE;AAEzE,+CAA+C;AAC/C,uDAAyD;AAOzD,MAAM,YAAY,GAAG,cAAc,CAAC;AAEpC,MAAa,YAAY;IAGvB,YACkB,UAAkB,EAClB,YAAoB,EACpB,OAAoB,EACpB,WAAmB,EACnB,oBAA0B,EAC1C,WAAoB,EACpB,cAAuB;QANP,eAAU,GAAV,UAAU,CAAQ;QAClB,iBAAY,GAAZ,YAAY,CAAQ;QACpB,YAAO,GAAP,OAAO,CAAa;QACpB,gBAAW,GAAX,WAAW,CAAQ;QACnB,yBAAoB,GAApB,oBAAoB,CAAM;QAI1C,IAAA,+BAAsB,EACpB,CAAC,WAAW,KAAK,SAAS,IAAI,cAAc,KAAK,SAAS,CAAC;YACzD,CAAC,WAAW,KAAK,SAAS,IAAI,cAAc,KAAK,SAAS,CAAC,EAC7D,6DAA6D,CAC9D,CAAC;QAEF,IAAI,WAAW,KAAK,SAAS,IAAI,cAAc,KAAK,SAAS,EAAE;YAC7D,IAAI,CAAC,OAAO,GAAG;gBACb,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,cAAc;aACxB,CAAC;SACH;IACH,CAAC;IAEM,gBAAgB;QACrB,OAAO,CACL,IAAI,CAAC,UAAU;YACf,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAChE,CAAC;IACJ,CAAC;CACF;AAhCD,oCAgCC;AAED,MAAa,QAAQ;IAGnB,YACmB,YAAoB,EACpB,OAAe,EACf,WAAmC,EACnC,SAAoD,EACpD,oBAEG;QANH,iBAAY,GAAZ,YAAY,CAAQ;QACpB,YAAO,GAAP,OAAO,CAAQ;QACf,gBAAW,GAAX,WAAW,CAAwB;QACnC,cAAS,GAAT,SAAS,CAA2C;QACpD,yBAAoB,GAApB,oBAAoB,CAEjB;QATL,WAAM,GAA8B,IAAI,GAAG,EAAE,CAAC;IAU5D,CAAC;IAEJ;;;;OAIG;IACI,KAAK,CAAC,iBAAiB,CAAC,UAAkB;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,OAAO,MAAM,CAAC;SACf;QAED,MAAM,kBAAkB,GAAG,IAAA,4BAAe,EAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAEzE,IAAA,uCAAwB,EAAC,kBAAkB,CAAC,CAAC;QAE7C,IAAI,YAA0B,CAAC;QAE/B,IAAI,MAAM,IAAA,gCAAiB,EAAC,IAAI,CAAC,YAAY,EAAE,kBAAkB,CAAC,EAAE;YAClE,YAAY,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAC/C,UAAU,EACV,kBAAkB,CACnB,CAAC;SACH;aAAM;YACL,YAAY,GAAG,MAAM,IAAI,CAAC,yBAAyB,CACjD,UAAU,EACV,kBAAkB,CACnB,CAAC;SACH;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QAC1C,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,aAAa,CACxB,IAAkB,EAClB,UAAkB;QAElB,mCAAmC;QACnC,IAAI,UAAU,KAAK,CAAC,MAAM,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,EAAE;YAChE,MAAM,IAAI,qBAAY,CACpB,oBAAM,CAAC,gBAAgB,CAAC,gCAAgC,CACzD,CAAC;SACH;QAED,MAAM,QAAQ,GAAG,IAAA,4BAAe,EAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAE/D,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,MAAM,IAAI,qBAAY,CAAC,oBAAM,CAAC,QAAQ,CAAC,uBAAuB,EAAE;gBAC9D,IAAI,EAAE,IAAI,CAAC,UAAU;gBACrB,QAAQ;gBACR,QAAQ,EAAE,MAAM;aACjB,CAAC,CAAC;SACJ;QAED,IAAI,IAAA,iCAAkB,EAAC,QAAQ,CAAC,KAAK,QAAQ,EAAE;YAC7C,MAAM,IAAI,qBAAY,CAAC,oBAAM,CAAC,QAAQ,CAAC,wBAAwB,EAAE;gBAC/D,IAAI,EAAE,IAAI,CAAC,UAAU;gBACrB,QAAQ;aACT,CAAC,CAAC;SACJ;QAED,IAAI,IAAA,uCAAwB,EAAC,QAAQ,CAAC,EAAE;YACtC,MAAM,IAAI,qBAAY,CAAC,oBAAM,CAAC,QAAQ,CAAC,4BAA4B,EAAE;gBACnE,IAAI,EAAE,IAAI,CAAC,UAAU;gBACrB,QAAQ;aACT,CAAC,CAAC;SACJ;QAED,iFAAiF;QACjF,0EAA0E;QAC1E,IAAI,MAAM,IAAA,qCAAsB,EAAC,QAAQ,CAAC,EAAE;YAC1C,MAAM,IAAI,qBAAY,CAAC,oBAAM,CAAC,QAAQ,CAAC,yBAAyB,EAAE;gBAChE,IAAI,EAAE,IAAI,CAAC,UAAU;gBACrB,QAAQ;aACT,CAAC,CAAC;SACJ;QAED,IAAI;YACF,IAAI,UAAkB,CAAC;YAEvB,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAE1D,IAAI,gBAAgB,EAAE;gBACpB,UAAU,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;aACrE;iBAAM;gBACL,UAAU,GAAG,IAAA,kCAAmB,EAAC,UAAU,CAAC,CAAC,CAAC,yDAAyD;aACxG;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC3C,IAAI,MAAM,KAAK,SAAS,EAAE;gBACxB,OAAO,MAAM,CAAC;aACf;YAED,IAAI,YAA0B,CAAC;YAE/B,mEAAmE;YACnE,4DAA4D;YAC5D,oDAAoD;YACpD,IACE,IAAI,CAAC,OAAO,KAAK,SAAS;gBAC1B,gBAAgB;gBAChB,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,QAAQ,CAAC,EAChD;gBACA,YAAY,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAC/C,UAAU,EACV,IAAA,4BAAe,EAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAC9C,CAAC;aACH;iBAAM;gBACL,YAAY,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;aACzD;YAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;YAC1C,OAAO,YAAY,CAAC;SACrB;QAAC,OAAO,KAAK,EAAE;YACd,IACE,qBAAY,CAAC,kBAAkB,CAC7B,KAAK,EACL,oBAAM,CAAC,QAAQ,CAAC,cAAc,CAC/B;gBACD,qBAAY,CAAC,kBAAkB,CAC7B,KAAK,EACL,oBAAM,CAAC,QAAQ,CAAC,sBAAsB,CACvC,EACD;gBACA,IAAI,QAAQ,KAAK,UAAU,EAAE;oBAC3B,MAAM,IAAI,qBAAY,CACpB,oBAAM,CAAC,QAAQ,CAAC,8BAA8B,EAC9C;wBACE,QAAQ;wBACR,UAAU;wBACV,IAAI,EAAE,IAAI,CAAC,UAAU;qBACtB,EACD,KAAK,CACN,CAAC;iBACH;qBAAM;oBACL,MAAM,IAAI,qBAAY,CACpB,oBAAM,CAAC,QAAQ,CAAC,uBAAuB,EACvC;wBACE,QAAQ;wBACR,IAAI,EAAE,IAAI,CAAC,UAAU;qBACtB,EACD,KAAK,CACN,CAAC;iBACH;aACF;YAED,IACE,qBAAY,CAAC,kBAAkB,CAC7B,KAAK,EACL,oBAAM,CAAC,QAAQ,CAAC,wBAAwB,CACzC,EACD;gBACA,MAAM,IAAI,qBAAY,CACpB,oBAAM,CAAC,QAAQ,CAAC,2BAA2B,EAC3C;oBACE,QAAQ;oBACR,IAAI,EAAE,IAAI,CAAC,UAAU;iBACtB,EACD,KAAK,CACN,CAAC;aACH;YAED,IACE,qBAAY,CAAC,kBAAkB,CAC7B,KAAK,EACL,oBAAM,CAAC,QAAQ,CAAC,qBAAqB,CACtC,EACD;gBACA,MAAM,IAAI,qBAAY,CACpB,oBAAM,CAAC,QAAQ,CAAC,8BAA8B,EAC9C;oBACE,OAAO,EAAE,KAAK,CAAC,gBAAgB,CAAC,OAAO;oBACvC,IAAI,EAAE,IAAI,CAAC,UAAU;iBACtB,EACD,KAAK,CACN,CAAC;aACH;YAED,IACE,qBAAY,CAAC,kBAAkB,CAC7B,KAAK,EACL,oBAAM,CAAC,OAAO,CAAC,yBAAyB,CACzC,EACD;gBACA,MAAM,IAAI,qBAAY,CACpB,oBAAM,CAAC,QAAQ,CAAC,2BAA2B,EAC3C;oBACE,QAAQ;oBACR,IAAI,EAAE,IAAI,CAAC,UAAU;iBACtB,EACD,KAAK,CACN,CAAC;aACH;YAED,sFAAsF;YACtF,MAAM,KAAK,CAAC;SACb;IACH,CAAC;IAEO,KAAK,CAAC,uBAAuB,CACnC,UAAkB,EAClB,kBAA0B;QAE1B,MAAM,IAAI,CAAC,qCAAqC,CAC9C,IAAI,CAAC,YAAY,EACjB,kBAAkB,EAClB,KAAK,CACN,CAAC;QAEF,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;QACtE,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACrD,CAAC;IAEO,KAAK,CAAC,yBAAyB,CACrC,UAAkB,EAClB,kBAA0B;QAE1B,MAAM,oBAAoB,GAAG,kBAAkB,CAAC,OAAO,CACrD,iBAAiB,EACjB,EAAE,CACH,CAAC;QACF,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC;QAE/D,IAAI,eAAe,CAAC;QACpB,IAAI;YACF,eAAe,GAAG,IAAI,CAAC,sCAAsC,CAC3D,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CACvC,CAAC;SACH;QAAC,OAAO,KAAK,EAAE;YACd,wEAAwE;YACxE,uEAAuE;YACvE,+CAA+C;YAC/C,IAAI,WAAW,KAAK,SAAS,EAAE;gBAC7B,MAAM,cAAc,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBACxD,eAAe,GAAG,cAAI,CAAC,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;aAC7D;iBAAM;gBACL,MAAM,IAAI,qBAAY,CACpB,oBAAM,CAAC,QAAQ,CAAC,qBAAqB,EACrC;oBACE,OAAO,EAAE,WAAW;iBACrB,EACD,KAAc,CACf,CAAC;aACH;SACF;QAED,IAAI,eAAe,GAAG,cAAI,CAAC,OAAO,CAAC,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;QAClE,IAAI,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,EAAE;YAC/C,eAAe,GAAG,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;SACjD;QAED,IAAI,YAAoB,CAAC;QACzB,IAAI,cAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,YAAY,EAAE;YACnD,sDAAsD;YACtD,yCAAyC;YACzC,MAAM,WAAW,GAAG,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YAClD,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,IAAI,WAAW,IAAI,CAAC,CAAC;YAChD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAE3D,MAAM,IAAI,CAAC,qCAAqC,CAC9C,WAAW;YACX,uEAAuE;YACvE,eAAe;YACf,QAAQ,EACR,IAAI,CACL,CAAC;YACF,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;SACjD;aAAM;YACL,MAAM,IAAI,CAAC,qCAAqC,CAC9C,eAAe,EACf,oBAAoB,EACpB,IAAI,CACL,CAAC;YACF,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAAC;SACjE;QAED,MAAM,WAAW,GAGb,MAAM,kBAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QAC5C,MAAM,cAAc,GAAG,WAAW,CAAC,OAAO,CAAC;QAE3C,OAAO,IAAI,CAAC,YAAY,CACtB,UAAU;QACV,4EAA4E;QAC5E,MAAM,IAAA,sBAAW,EAAC,YAAY,CAAC,EAC/B,WAAW,EACX,cAAc,CACf,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,2BAA2B,CACvC,IAAkB,EAClB,QAAgB;QAEhB,yEAAyE;QACzE,sEAAsE;QACtE,uDAAuD;QACvD,IAAI,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE;YACnD,OAAO,IAAI,CAAC,oCAAoC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;SAClE;QAED,MAAM,UAAU,GAAG,IAAA,kCAAmB,EACpC,cAAI,CAAC,IAAI,CAAC,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,CACnD,CAAC;QAEF,mEAAmE;QACnE,wEAAwE;QACxE,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;YAC9D,MAAM,IAAI,qBAAY,CACpB,oBAAM,CAAC,QAAQ,CAAC,iCAAiC,EACjD,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,CACpC,CAAC;SACH;QAED,IACE,IAAI,CAAC,OAAO,KAAK,SAAS;YAC1B,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,EACnD;YACA,qEAAqE;YACrE,+BAA+B;YAC/B,MAAM,IAAI,qBAAY,CAAC,oBAAM,CAAC,QAAQ,CAAC,cAAc,EAAE;gBACrD,IAAI,EAAE,IAAI,CAAC,UAAU;gBACrB,QAAQ;aACT,CAAC,CAAC;SACJ;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,KAAK,CAAC,YAAY,CACxB,UAAkB,EAClB,YAAoB,EACpB,WAAoB,EACpB,cAAuB;QAEvB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,MAAM,kBAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/C,MAAM,oBAAoB,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEnD,MAAM,WAAW,GAAG,IAAA,gDAAyC,EAC3D,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CACxB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAElB,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CACtC,UAAU,EACV,YAAY,EACZ,WAAW,CACZ,CAAC;QAEF,MAAM,OAAO,GAAG;YACd,UAAU;YACV,GAAG,aAAa;SACjB,CAAC;QAEF,OAAO,IAAI,YAAY,CACrB,UAAU,EACV,YAAY,EACZ,OAAO,EACP,WAAW,EACX,oBAAoB,EACpB,WAAW,EACX,cAAc,CACf,CAAC;IACJ,CAAC;IAEO,iBAAiB,CAAC,QAAgB;QACxC,OAAO,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACjE,CAAC;IAEO,sCAAsC,CAAC,QAAgB;QAC7D,OAAO,iBAAO,CAAC,IAAI,CAAC,QAAQ,EAAE;YAC5B,OAAO,EAAE,IAAI,CAAC,YAAY;YAC1B,gBAAgB,EAAE,IAAI;SACvB,CAAC,CAAC;IACL,CAAC;IAEO,eAAe,CAAC,UAAkB;QACxC,IAAI,QAAgB,CAAC;QACrB,IAAI,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE;YACrC,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;SACjE;aAAM,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;YACzC,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC;SAC9B;aAAM;YACL,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SACpC;QAED,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACvC,CAAC;IAEO,aAAa,CAAC,CAAS;QAC7B,MAAM,EAAE,GAAG,kBAAkB,CAAC;QAC9B,MAAM,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,KAAK,KAAK,IAAI,EAAE;YAClB,OAAO,SAAS,CAAC;SAClB;QAED,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAEO,gBAAgB,CAAC,eAAuB,EAAE,gBAAwB;QACxE,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChD,MAAM,GAAG,GACP,UAAU,KAAK,CAAC,CAAC;YACf,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC;YAC1C,CAAC,CAAC,eAAe,CAAC;QAEtB,OAAO,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;IAEO,gBAAgB,CAAC,oBAA4B;QACnD,OAAO,oBAAoB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC9C,CAAC;IAEO,0BAA0B,CAChC,IAAkB,EAClB,QAAgB;QAEhB,OAAO,CACL,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC;YAChC,IAAI,CAAC,OAAO,KAAK,SAAS;YAC1B,QAAQ,CAAC,QAAQ,CAAC,GAAG,YAAY,GAAG,CAAC,CACtC,CAAC;IACJ,CAAC;IAEO,oCAAoC,CAC1C,IAAkB,EAClB,QAAgB;QAEhB,MAAM,UAAU,GAAG,IAAA,kCAAmB,EACpC,cAAI,CAAC,IAAI,CAAC,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,CACnD,CAAC;QAEF,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,YAAY,GAAG,CAAC,CAAC;QACvD,OAAO,UAAU,CAAC,MAAM,CAAC,OAAO,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9D,CAAC;IAEO,KAAK,CAAC,qCAAqC,CACjD,OAAe,EACf,UAAkB,EAClB,SAAkB;QAElB,IAAI;YACF,MAAM,IAAA,mDAAoC,EAAC,OAAO,EAAE,UAAU,CAAC,CAAC;SACjE;QAAC,OAAO,KAAK,EAAE;YACd,IACE,qBAAY,CAAC,kBAAkB,CAC7B,KAAK,EACL,oBAAM,CAAC,YAAY,CAAC,cAAc,CACnC,EACD;gBACA,MAAM,IAAI,qBAAY,CACpB,SAAS;oBACP,CAAC,CAAC,oBAAM,CAAC,QAAQ,CAAC,sBAAsB;oBACxC,CAAC,CAAC,oBAAM,CAAC,QAAQ,CAAC,cAAc,EAClC,EAAE,IAAI,EAAE,UAAU,EAAE,EACpB,KAAK,CACN,CAAC;aACH;YAED,IACE,qBAAY,CAAC,kBAAkB,CAAC,KAAK,EAAE,oBAAM,CAAC,YAAY,CAAC,YAAY,CAAC,EACxE;gBACA,MAAM,IAAI,qBAAY,CACpB,oBAAM,CAAC,QAAQ,CAAC,wBAAwB,EACxC;oBACE,SAAS,EAAE,UAAU;oBACrB,OAAO,EAAE,KAAK,CAAC,gBAAgB,CAAC,OAAO;iBACxC,EACD,KAAK,CACN,CAAC;aACH;YAED,sFAAsF;YACtF,MAAM,KAAK,CAAC;SACb;IACH,CAAC;CACF;AAhfD,4BAgfC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hardhat",
|
|
3
|
-
"version": "2.17.
|
|
3
|
+
"version": "2.17.3",
|
|
4
4
|
"author": "Nomic Labs LLC",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://hardhat.org",
|
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
"lint:fix": "yarn prettier --write && yarn eslint --fix",
|
|
28
28
|
"eslint": "eslint 'src/**/*.ts' 'test/**/*.ts'",
|
|
29
29
|
"prettier": "prettier \"**/*.{js,md,json}\"",
|
|
30
|
+
"pretest": "cd ../.. && yarn build",
|
|
30
31
|
"test": "mocha --recursive \"test/**/*.ts\"",
|
|
31
32
|
"test:except-tracing": "mocha --recursive \"test/**/*.ts\" --invert --grep \"Stack traces\"",
|
|
32
33
|
"test:tracing": "mocha --recursive \"test/internal/hardhat-network/{helpers,stack-traces}/**/*.ts\"",
|
|
@@ -97,16 +98,16 @@
|
|
|
97
98
|
"dependencies": {
|
|
98
99
|
"@ethersproject/abi": "^5.1.2",
|
|
99
100
|
"@metamask/eth-sig-util": "^4.0.0",
|
|
100
|
-
"@nomicfoundation/ethereumjs-block": "5.0.
|
|
101
|
-
"@nomicfoundation/ethereumjs-blockchain": "7.0.
|
|
102
|
-
"@nomicfoundation/ethereumjs-common": "4.0.
|
|
103
|
-
"@nomicfoundation/ethereumjs-evm": "2.0.
|
|
104
|
-
"@nomicfoundation/ethereumjs-rlp": "5.0.
|
|
105
|
-
"@nomicfoundation/ethereumjs-statemanager": "2.0.
|
|
106
|
-
"@nomicfoundation/ethereumjs-trie": "6.0.
|
|
107
|
-
"@nomicfoundation/ethereumjs-tx": "5.0.
|
|
108
|
-
"@nomicfoundation/ethereumjs-util": "9.0.
|
|
109
|
-
"@nomicfoundation/ethereumjs-vm": "7.0.
|
|
101
|
+
"@nomicfoundation/ethereumjs-block": "5.0.2",
|
|
102
|
+
"@nomicfoundation/ethereumjs-blockchain": "7.0.2",
|
|
103
|
+
"@nomicfoundation/ethereumjs-common": "4.0.2",
|
|
104
|
+
"@nomicfoundation/ethereumjs-evm": "2.0.2",
|
|
105
|
+
"@nomicfoundation/ethereumjs-rlp": "5.0.2",
|
|
106
|
+
"@nomicfoundation/ethereumjs-statemanager": "2.0.2",
|
|
107
|
+
"@nomicfoundation/ethereumjs-trie": "6.0.2",
|
|
108
|
+
"@nomicfoundation/ethereumjs-tx": "5.0.2",
|
|
109
|
+
"@nomicfoundation/ethereumjs-util": "9.0.2",
|
|
110
|
+
"@nomicfoundation/ethereumjs-vm": "7.0.2",
|
|
110
111
|
"@nomicfoundation/solidity-analyzer": "^0.1.0",
|
|
111
112
|
"@sentry/node": "^5.18.1",
|
|
112
113
|
"@types/bn.js": "^5.1.0",
|
|
@@ -74,6 +74,7 @@ import {
|
|
|
74
74
|
TASK_COMPILE_SOLIDITY_RUN_SOLC,
|
|
75
75
|
TASK_COMPILE_SOLIDITY_RUN_SOLCJS,
|
|
76
76
|
TASK_COMPILE_TRANSFORM_IMPORT_NAME,
|
|
77
|
+
TASK_COMPILE_GET_REMAPPINGS,
|
|
77
78
|
} from "./task-names";
|
|
78
79
|
import {
|
|
79
80
|
getSolidityFilesCachePath,
|
|
@@ -161,13 +162,26 @@ subtask(TASK_COMPILE_SOLIDITY_READ_FILE)
|
|
|
161
162
|
.addParam("absolutePath", undefined, undefined, types.string)
|
|
162
163
|
.setAction(
|
|
163
164
|
async ({ absolutePath }: { absolutePath: string }): Promise<string> => {
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
165
|
+
try {
|
|
166
|
+
return await fsExtra.readFile(absolutePath, {
|
|
167
|
+
encoding: "utf8",
|
|
168
|
+
});
|
|
169
|
+
} catch (e) {
|
|
170
|
+
if (fsExtra.lstatSync(absolutePath).isDirectory()) {
|
|
171
|
+
throw new HardhatError(ERRORS.GENERAL.INVALID_READ_OF_DIRECTORY, {
|
|
172
|
+
absolutePath,
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
// eslint-disable-next-line @nomicfoundation/hardhat-internal-rules/only-hardhat-error
|
|
177
|
+
throw e;
|
|
178
|
+
}
|
|
167
179
|
}
|
|
168
180
|
);
|
|
169
181
|
|
|
170
182
|
/**
|
|
183
|
+
* DEPRECATED: This subtask is deprecated and will be removed in the future.
|
|
184
|
+
*
|
|
171
185
|
* This task transform the string literal in an import directive.
|
|
172
186
|
* By default it does nothing, but it can be overriden by plugins.
|
|
173
187
|
*/
|
|
@@ -179,6 +193,16 @@ subtask(TASK_COMPILE_TRANSFORM_IMPORT_NAME)
|
|
|
179
193
|
}
|
|
180
194
|
);
|
|
181
195
|
|
|
196
|
+
/**
|
|
197
|
+
* This task returns a Record<string, string> representing remappings to be used
|
|
198
|
+
* by the resolver.
|
|
199
|
+
*/
|
|
200
|
+
subtask(TASK_COMPILE_GET_REMAPPINGS).setAction(
|
|
201
|
+
async (): Promise<Record<string, string>> => {
|
|
202
|
+
return {};
|
|
203
|
+
}
|
|
204
|
+
);
|
|
205
|
+
|
|
182
206
|
/**
|
|
183
207
|
* Receives a list of source names and returns a dependency graph. This task
|
|
184
208
|
* is responsible for both resolving dependencies (like getting files from
|
|
@@ -202,13 +226,18 @@ subtask(TASK_COMPILE_SOLIDITY_GET_DEPENDENCY_GRAPH)
|
|
|
202
226
|
{ config, run }
|
|
203
227
|
): Promise<taskTypes.DependencyGraph> => {
|
|
204
228
|
const parser = new Parser(solidityFilesCache);
|
|
229
|
+
const remappings = await run(TASK_COMPILE_GET_REMAPPINGS);
|
|
205
230
|
const resolver = new Resolver(
|
|
206
231
|
rootPath ?? config.paths.root,
|
|
207
232
|
parser,
|
|
233
|
+
remappings,
|
|
208
234
|
(absolutePath: string) =>
|
|
209
235
|
run(TASK_COMPILE_SOLIDITY_READ_FILE, { absolutePath }),
|
|
210
236
|
(importName: string) =>
|
|
211
|
-
run(TASK_COMPILE_TRANSFORM_IMPORT_NAME, {
|
|
237
|
+
run(TASK_COMPILE_TRANSFORM_IMPORT_NAME, {
|
|
238
|
+
importName,
|
|
239
|
+
deprecationCheck: true,
|
|
240
|
+
})
|
|
212
241
|
);
|
|
213
242
|
|
|
214
243
|
const resolvedFiles = await Promise.all(
|
|
@@ -14,6 +14,7 @@ export const TASK_COMPILE_SOLIDITY_GET_SOURCE_NAMES =
|
|
|
14
14
|
export const TASK_COMPILE_SOLIDITY_READ_FILE = "compile:solidity:read-file";
|
|
15
15
|
export const TASK_COMPILE_TRANSFORM_IMPORT_NAME =
|
|
16
16
|
"compile:solidity:transform-import-name";
|
|
17
|
+
export const TASK_COMPILE_GET_REMAPPINGS = "compile:solidity:get-remappings";
|
|
17
18
|
export const TASK_COMPILE_SOLIDITY_GET_DEPENDENCY_GRAPH =
|
|
18
19
|
"compile:solidity:get-dependency-graph";
|
|
19
20
|
export const TASK_COMPILE_SOLIDITY_GET_COMPILATION_JOBS =
|
|
@@ -78,7 +78,18 @@ export class Artifacts implements IArtifacts {
|
|
|
78
78
|
}
|
|
79
79
|
|
|
80
80
|
public async artifactExists(name: string): Promise<boolean> {
|
|
81
|
-
|
|
81
|
+
let artifactPath;
|
|
82
|
+
try {
|
|
83
|
+
artifactPath = await this._getArtifactPath(name);
|
|
84
|
+
} catch (e) {
|
|
85
|
+
if (HardhatError.isHardhatError(e)) {
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// eslint-disable-next-line @nomicfoundation/hardhat-internal-rules/only-hardhat-error
|
|
90
|
+
throw e;
|
|
91
|
+
}
|
|
92
|
+
|
|
82
93
|
return fsExtra.pathExists(artifactPath);
|
|
83
94
|
}
|
|
84
95
|
|
|
@@ -407,6 +418,7 @@ export class Artifacts implements IArtifacts {
|
|
|
407
418
|
|
|
408
419
|
/**
|
|
409
420
|
* Returns the absolute path to the given artifact
|
|
421
|
+
* @throws {HardhatError} If the name is not fully qualified.
|
|
410
422
|
*/
|
|
411
423
|
public formArtifactPathFromFullyQualifiedName(
|
|
412
424
|
fullyQualifiedName: string
|
|
@@ -490,6 +502,11 @@ export class Artifacts implements IArtifacts {
|
|
|
490
502
|
* If the name is fully qualified, the path is computed from it. If not, an
|
|
491
503
|
* artifact that matches the given name is searched in the existing artifacts.
|
|
492
504
|
* If there is an ambiguity, an error is thrown.
|
|
505
|
+
*
|
|
506
|
+
* @throws {HardhatError} with descriptor:
|
|
507
|
+
* - {@link ERRORS.ARTIFACTS.WRONG_CASING} if the path case doesn't match the one in the filesystem.
|
|
508
|
+
* - {@link ERRORS.ARTIFACTS.MULTIPLE_FOUND} if there are multiple artifacts matching the given contract name.
|
|
509
|
+
* - {@link ERRORS.ARTIFACTS.NOT_FOUND} if the artifact is not found.
|
|
493
510
|
*/
|
|
494
511
|
private async _getArtifactPath(name: string): Promise<string> {
|
|
495
512
|
const cached = this._cache?.artifactNameToArtifactPathCache.get(name);
|
|
@@ -603,6 +620,16 @@ export class Artifacts implements IArtifacts {
|
|
|
603
620
|
return path.join(this._artifactsPath, sourceName, `${contractName}.json`);
|
|
604
621
|
}
|
|
605
622
|
|
|
623
|
+
/**
|
|
624
|
+
* Returns the absolute path to the artifact that corresponds to the given
|
|
625
|
+
* fully qualified name.
|
|
626
|
+
* @param fullyQualifiedName The fully qualified name of the contract.
|
|
627
|
+
* @returns The absolute path to the artifact.
|
|
628
|
+
* @throws {HardhatError} with descriptor:
|
|
629
|
+
* - {@link ERRORS.CONTRACT_NAMES.INVALID_FULLY_QUALIFIED_NAME} If the name is not fully qualified.
|
|
630
|
+
* - {@link ERRORS.ARTIFACTS.WRONG_CASING} If the path case doesn't match the one in the filesystem.
|
|
631
|
+
* - {@link ERRORS.ARTIFACTS.NOT_FOUND} If the artifact is not found.
|
|
632
|
+
*/
|
|
606
633
|
private async _getValidArtifactPathFromFullyQualifiedName(
|
|
607
634
|
fullyQualifiedName: string
|
|
608
635
|
): Promise<string> {
|
|
@@ -666,6 +693,9 @@ Please replace "${contractName}" for the correct contract name wherever you are
|
|
|
666
693
|
}
|
|
667
694
|
}
|
|
668
695
|
|
|
696
|
+
/**
|
|
697
|
+
* @throws {HardhatError} with a list of similar contract names.
|
|
698
|
+
*/
|
|
669
699
|
private _handleWrongArtifactForFullyQualifiedName(
|
|
670
700
|
fullyQualifiedName: string
|
|
671
701
|
): never {
|
|
@@ -682,6 +712,9 @@ Please replace "${contractName}" for the correct contract name wherever you are
|
|
|
682
712
|
});
|
|
683
713
|
}
|
|
684
714
|
|
|
715
|
+
/**
|
|
716
|
+
* @throws {HardhatError} with a list of similar contract names.
|
|
717
|
+
*/
|
|
685
718
|
private _handleWrongArtifactForContractName(
|
|
686
719
|
contractName: string,
|
|
687
720
|
files: string[]
|
|
@@ -813,6 +846,12 @@ Please replace "${contractName}" for the correct contract name wherever you are
|
|
|
813
846
|
return artifactPath.replace(/\.json$/, ".dbg.json");
|
|
814
847
|
}
|
|
815
848
|
|
|
849
|
+
/**
|
|
850
|
+
* Gets the path to the artifact file for the given contract name.
|
|
851
|
+
* @throws {HardhatError} with descriptor:
|
|
852
|
+
* - {@link ERRORS.ARTIFACTS.NOT_FOUND} if there are no artifacts matching the given contract name.
|
|
853
|
+
* - {@link ERRORS.ARTIFACTS.MULTIPLE_FOUND} if there are multiple artifacts matching the given contract name.
|
|
854
|
+
*/
|
|
816
855
|
private _getArtifactPathFromFiles(
|
|
817
856
|
contractName: string,
|
|
818
857
|
files: string[]
|
|
@@ -315,7 +315,7 @@ async function createPackageJson() {
|
|
|
315
315
|
function showStarOnGitHubMessage() {
|
|
316
316
|
console.log(
|
|
317
317
|
chalk.cyan("Give Hardhat a star on Github if you're enjoying it!") +
|
|
318
|
-
emoji("
|
|
318
|
+
emoji(" ⭐️✨")
|
|
319
319
|
);
|
|
320
320
|
console.log();
|
|
321
321
|
console.log(chalk.cyan(" https://github.com/NomicFoundation/hardhat"));
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import cloneDeep from "lodash/cloneDeep";
|
|
2
2
|
import path from "path";
|
|
3
|
+
import semver from "semver";
|
|
3
4
|
|
|
4
5
|
import {
|
|
5
6
|
HardhatConfig,
|
|
@@ -385,6 +386,10 @@ function resolveCompiler(compiler: SolcUserConfig): SolcConfig {
|
|
|
385
386
|
settings: compiler.settings ?? {},
|
|
386
387
|
};
|
|
387
388
|
|
|
389
|
+
if (semver.gte(resolved.version, "0.8.20")) {
|
|
390
|
+
resolved.settings.evmVersion = compiler.settings?.evmVersion ?? "paris";
|
|
391
|
+
}
|
|
392
|
+
|
|
388
393
|
resolved.settings.optimizer = {
|
|
389
394
|
enabled: false,
|
|
390
395
|
runs: 200,
|
|
@@ -278,6 +278,16 @@ Rename the file to use the .cjs to fix this problem.`,
|
|
|
278
278
|
To initialize the provider, make sure you first call \`.init()\` or any method that hits a node like request, send or sendAsync.`,
|
|
279
279
|
shouldBeReported: true,
|
|
280
280
|
},
|
|
281
|
+
INVALID_READ_OF_DIRECTORY: {
|
|
282
|
+
number: 22,
|
|
283
|
+
message:
|
|
284
|
+
"Invalid file path %absolutePath%. Attempting to read a directory instead of a file.",
|
|
285
|
+
title: "Invalid read: a directory cannot be read",
|
|
286
|
+
description: `An attempt was made to read a file, but a path to a directory was provided.
|
|
287
|
+
|
|
288
|
+
Please double check the file path.`,
|
|
289
|
+
shouldBeReported: false,
|
|
290
|
+
},
|
|
281
291
|
},
|
|
282
292
|
NETWORK: {
|
|
283
293
|
CONFIG_NOT_FOUND: {
|
|
@@ -585,6 +595,14 @@ Please double check your task definitions.`,
|
|
|
585
595
|
What makes these types special is that they can be represented as strings, so you can write them down in the terminal.`,
|
|
586
596
|
shouldBeReported: false,
|
|
587
597
|
},
|
|
598
|
+
DEPRECATED_TRANSFORM_IMPORT_TASK: {
|
|
599
|
+
number: 213,
|
|
600
|
+
title: "Use of deprecated remapping task",
|
|
601
|
+
message:
|
|
602
|
+
"Task TASK_COMPILE_TRANSFORM_IMPORT_NAME is deprecated. Please update your @nomicfoundation/hardhat-foundry plugin version.",
|
|
603
|
+
description: `This task has been deprecated in favor of a new approach.`,
|
|
604
|
+
shouldBeReported: true,
|
|
605
|
+
},
|
|
588
606
|
},
|
|
589
607
|
ARGUMENTS: {
|
|
590
608
|
INVALID_ENV_VAR_VALUE: {
|
|
@@ -855,6 +873,26 @@ Use a relative import instead of referencing the package's name.`,
|
|
|
855
873
|
Please double check your imports and installed libraries.`,
|
|
856
874
|
shouldBeReported: false,
|
|
857
875
|
},
|
|
876
|
+
INVALID_IMPORT_OF_DIRECTORY: {
|
|
877
|
+
number: 414,
|
|
878
|
+
message:
|
|
879
|
+
"Invalid import %imported% from %from%. Attempting to import a directory. Directories cannot be imported.",
|
|
880
|
+
title: "Invalid import: a directory cannot be imported",
|
|
881
|
+
description: `A Solidity file is attempting to import a directory, which is not possible.
|
|
882
|
+
|
|
883
|
+
Please double check your imports.`,
|
|
884
|
+
shouldBeReported: false,
|
|
885
|
+
},
|
|
886
|
+
AMBIGUOUS_SOURCE_NAMES: {
|
|
887
|
+
number: 415,
|
|
888
|
+
message:
|
|
889
|
+
"Two different source names (%sourcenames%) resolve to the same file (%file%).",
|
|
890
|
+
title: "Ambiguous source names",
|
|
891
|
+
description: `Two different source names map to the same file.
|
|
892
|
+
|
|
893
|
+
This is probably caused by multiple remappings pointing to the same source file.`,
|
|
894
|
+
shouldBeReported: false,
|
|
895
|
+
},
|
|
858
896
|
},
|
|
859
897
|
SOLC: {
|
|
860
898
|
INVALID_VERSION: {
|
|
@@ -40,6 +40,17 @@ export const rpcStorageSlot = new t.Type<bigint>(
|
|
|
40
40
|
t.identity
|
|
41
41
|
);
|
|
42
42
|
|
|
43
|
+
// This type is necessary because objects' keys need to be either strings or numbers to be properly handled by the 'io-ts' module.
|
|
44
|
+
// If they are not defined as strings or numbers, the type definition will result in an empty object without the required properties.
|
|
45
|
+
// For example, instead of displaying { ke1: value1 }, it will display {}
|
|
46
|
+
export const rpcStorageSlotHexString = new t.Type<string>(
|
|
47
|
+
"Storage slot hex string",
|
|
48
|
+
(x): x is string => typeof x === "string",
|
|
49
|
+
(u, c) =>
|
|
50
|
+
validateRpcStorageSlotHexString(u) ? t.success(u) : t.failure(u, c),
|
|
51
|
+
t.identity
|
|
52
|
+
);
|
|
53
|
+
|
|
43
54
|
function validateStorageSlot(u: unknown, c: t.Context): t.Validation<bigint> {
|
|
44
55
|
if (typeof u !== "string") {
|
|
45
56
|
return t.failure(
|
|
@@ -185,6 +196,10 @@ export function rpcDataToBuffer(data: string): Buffer {
|
|
|
185
196
|
|
|
186
197
|
// Type guards
|
|
187
198
|
|
|
199
|
+
function validateRpcStorageSlotHexString(u: unknown): u is string {
|
|
200
|
+
return typeof u === "string" && /^0x([0-9a-fA-F]){64}$/.test(u);
|
|
201
|
+
}
|
|
202
|
+
|
|
188
203
|
function isRpcQuantityString(u: unknown): u is string {
|
|
189
204
|
return (
|
|
190
205
|
typeof u === "string" &&
|
|
@@ -2,7 +2,14 @@ import * as t from "io-ts";
|
|
|
2
2
|
|
|
3
3
|
import { optionalOrNullable } from "../../../../util/io-ts";
|
|
4
4
|
import { rpcAccessList } from "../access-list";
|
|
5
|
-
import {
|
|
5
|
+
import {
|
|
6
|
+
rpcAddress,
|
|
7
|
+
rpcData,
|
|
8
|
+
rpcQuantity,
|
|
9
|
+
rpcStorageSlot,
|
|
10
|
+
rpcStorageSlotHexString,
|
|
11
|
+
} from "../base-types";
|
|
12
|
+
import { address } from "../../../config/config-validation";
|
|
6
13
|
|
|
7
14
|
// Type used by eth_call and eth_estimateGas
|
|
8
15
|
export const rpcCallRequest = t.type(
|
|
@@ -21,3 +28,30 @@ export const rpcCallRequest = t.type(
|
|
|
21
28
|
);
|
|
22
29
|
|
|
23
30
|
export type RpcCallRequest = t.TypeOf<typeof rpcCallRequest>;
|
|
31
|
+
|
|
32
|
+
// Types used by eth_call to configure the state override set
|
|
33
|
+
export const stateProperties = t.record(
|
|
34
|
+
rpcStorageSlotHexString,
|
|
35
|
+
rpcStorageSlot
|
|
36
|
+
);
|
|
37
|
+
|
|
38
|
+
export const stateOverrideOptions = t.type(
|
|
39
|
+
{
|
|
40
|
+
balance: optionalOrNullable(rpcQuantity),
|
|
41
|
+
nonce: optionalOrNullable(rpcQuantity),
|
|
42
|
+
code: optionalOrNullable(rpcData),
|
|
43
|
+
state: optionalOrNullable(stateProperties),
|
|
44
|
+
stateDiff: optionalOrNullable(stateProperties),
|
|
45
|
+
},
|
|
46
|
+
"stateOverrideOptions"
|
|
47
|
+
);
|
|
48
|
+
|
|
49
|
+
export const stateOverrideSet = t.record(address, stateOverrideOptions);
|
|
50
|
+
export const optionalStateOverrideSet = optionalOrNullable(stateOverrideSet);
|
|
51
|
+
|
|
52
|
+
export type StateProperties = t.TypeOf<typeof stateProperties>;
|
|
53
|
+
export type StateOverrideOptions = t.TypeOf<typeof stateOverrideOptions>;
|
|
54
|
+
export type StateOverrideSet = t.TypeOf<typeof stateOverrideSet>;
|
|
55
|
+
export type OptionalStateOverrideSet = t.TypeOf<
|
|
56
|
+
typeof optionalStateOverrideSet
|
|
57
|
+
>;
|
|
@@ -116,6 +116,8 @@ export async function createProvider(
|
|
|
116
116
|
forkConfig,
|
|
117
117
|
forkCachePath:
|
|
118
118
|
paths !== undefined ? getForkCacheDirPath(paths) : undefined,
|
|
119
|
+
enableTransientStorage:
|
|
120
|
+
hardhatNetConfig.enableTransientStorage ?? false,
|
|
119
121
|
},
|
|
120
122
|
new ModulesLogger(hardhatNetConfig.loggingEnabled),
|
|
121
123
|
artifacts
|
|
@@ -348,10 +348,30 @@ export class ForkBlockchain
|
|
|
348
348
|
return undefined;
|
|
349
349
|
}
|
|
350
350
|
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
351
|
+
let transaction: TypedTransaction;
|
|
352
|
+
|
|
353
|
+
if (rpcTransaction.type === undefined || rpcTransaction.type === 0n) {
|
|
354
|
+
transaction = new ReadOnlyValidTransaction(
|
|
355
|
+
new Address(rpcTransaction.from),
|
|
356
|
+
rpcToTxData(rpcTransaction)
|
|
357
|
+
);
|
|
358
|
+
} else if (rpcTransaction.type === 1n) {
|
|
359
|
+
transaction = new ReadOnlyValidEIP2930Transaction(
|
|
360
|
+
new Address(rpcTransaction.from),
|
|
361
|
+
rpcToTxData(rpcTransaction)
|
|
362
|
+
);
|
|
363
|
+
} else if (rpcTransaction.type === 2n) {
|
|
364
|
+
transaction = new ReadOnlyValidEIP1559Transaction(
|
|
365
|
+
new Address(rpcTransaction.from),
|
|
366
|
+
rpcToTxData(rpcTransaction) as FeeMarketEIP1559TxData
|
|
367
|
+
);
|
|
368
|
+
} else {
|
|
369
|
+
transaction = new ReadOnlyValidUnknownTypeTransaction(
|
|
370
|
+
new Address(rpcTransaction.from),
|
|
371
|
+
Number(rpcTransaction.type),
|
|
372
|
+
rpcToTxData(rpcTransaction)
|
|
373
|
+
);
|
|
374
|
+
}
|
|
355
375
|
|
|
356
376
|
this._data.addTransaction(transaction);
|
|
357
377
|
|
|
@@ -37,6 +37,8 @@ import {
|
|
|
37
37
|
RpcOldBlockTag,
|
|
38
38
|
} from "../../../core/jsonrpc/types/input/blockTag";
|
|
39
39
|
import {
|
|
40
|
+
optionalStateOverrideSet,
|
|
41
|
+
OptionalStateOverrideSet,
|
|
40
42
|
rpcCallRequest,
|
|
41
43
|
RpcCallRequest,
|
|
42
44
|
} from "../../../core/jsonrpc/types/input/callRequest";
|
|
@@ -334,13 +336,21 @@ export class EthModule {
|
|
|
334
336
|
|
|
335
337
|
// eth_call
|
|
336
338
|
|
|
337
|
-
private _callParams(
|
|
338
|
-
|
|
339
|
+
private _callParams(
|
|
340
|
+
params: any[]
|
|
341
|
+
): [RpcCallRequest, OptionalRpcNewBlockTag, OptionalStateOverrideSet] {
|
|
342
|
+
return validateParams(
|
|
343
|
+
params,
|
|
344
|
+
rpcCallRequest,
|
|
345
|
+
optionalRpcNewBlockTag,
|
|
346
|
+
optionalStateOverrideSet
|
|
347
|
+
);
|
|
339
348
|
}
|
|
340
349
|
|
|
341
350
|
private async _callAction(
|
|
342
351
|
rpcCall: RpcCallRequest,
|
|
343
|
-
blockTag: OptionalRpcNewBlockTag
|
|
352
|
+
blockTag: OptionalRpcNewBlockTag,
|
|
353
|
+
stateOverrideSet: OptionalStateOverrideSet
|
|
344
354
|
): Promise<string> {
|
|
345
355
|
this._validateTransactionAndCallRequest(rpcCall);
|
|
346
356
|
|
|
@@ -353,7 +363,11 @@ export class EthModule {
|
|
|
353
363
|
trace,
|
|
354
364
|
error,
|
|
355
365
|
consoleLogMessages,
|
|
356
|
-
} = await this._node.runCall(
|
|
366
|
+
} = await this._node.runCall(
|
|
367
|
+
callParams,
|
|
368
|
+
blockNumberOrPending,
|
|
369
|
+
stateOverrideSet
|
|
370
|
+
);
|
|
357
371
|
|
|
358
372
|
const code = await this._node.getCodeFromTrace(trace, blockNumberOrPending);
|
|
359
373
|
|