hardhat 2.13.0-dev.2 → 2.13.0-dev.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 +16 -6
- package/builtin-tasks/compile.js.map +1 -1
- package/builtin-tasks/flatten.js +1 -1
- package/builtin-tasks/flatten.js.map +1 -1
- package/builtin-tasks/help.js +2 -4
- package/builtin-tasks/help.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/builtin-tasks/test.js +22 -1
- package/builtin-tasks/test.js.map +1 -1
- package/internal/cli/bootstrap.d.ts +1 -0
- package/internal/cli/bootstrap.js +12 -20
- package/internal/cli/bootstrap.js.map +1 -1
- package/internal/cli/cli.d.ts +0 -1
- package/internal/cli/cli.d.ts.map +1 -1
- package/internal/cli/cli.js +20 -29
- package/internal/cli/cli.js.map +1 -1
- package/internal/cli/project-creation.d.ts +1 -2
- package/internal/cli/project-creation.d.ts.map +1 -1
- package/internal/cli/project-creation.js +105 -36
- package/internal/cli/project-creation.js.map +1 -1
- package/internal/cli/prompt.d.ts +2 -2
- package/internal/cli/prompt.d.ts.map +1 -1
- package/internal/cli/prompt.js +1 -2
- package/internal/cli/prompt.js.map +1 -1
- package/internal/cli/types.d.ts +1 -0
- package/internal/cli/types.d.ts.map +1 -1
- package/internal/core/config/config-env.d.ts +5 -11
- package/internal/core/config/config-env.d.ts.map +1 -1
- package/internal/core/config/config-env.js +2 -13
- package/internal/core/config/config-env.js.map +1 -1
- package/internal/core/config/config-loading.d.ts +2 -1
- package/internal/core/config/config-loading.d.ts.map +1 -1
- package/internal/core/config/config-loading.js +25 -7
- package/internal/core/config/config-loading.js.map +1 -1
- package/internal/core/config/config-validation.d.ts +2 -0
- package/internal/core/config/config-validation.d.ts.map +1 -1
- package/internal/core/config/config-validation.js +18 -1
- package/internal/core/config/config-validation.js.map +1 -1
- package/internal/core/config/extenders.d.ts +4 -7
- package/internal/core/config/extenders.d.ts.map +1 -1
- package/internal/core/config/extenders.js +5 -12
- package/internal/core/config/extenders.js.map +1 -1
- package/internal/core/errors-list.d.ts +28 -7
- package/internal/core/errors-list.d.ts.map +1 -1
- package/internal/core/errors-list.js +33 -10
- package/internal/core/errors-list.js.map +1 -1
- package/internal/core/jsonrpc/types/input/blockTag.d.ts +3 -3
- package/internal/core/jsonrpc/types/input/blockTag.d.ts.map +1 -1
- package/internal/core/project-structure.d.ts.map +1 -1
- package/internal/core/project-structure.js +6 -0
- package/internal/core/project-structure.js.map +1 -1
- package/internal/core/providers/construction.d.ts.map +1 -1
- package/internal/core/providers/construction.js +25 -5
- package/internal/core/providers/construction.js.map +1 -1
- package/internal/core/providers/http.d.ts +2 -2
- package/internal/core/providers/http.d.ts.map +1 -1
- package/internal/core/providers/http.js +41 -19
- package/internal/core/providers/http.js.map +1 -1
- package/internal/core/runtime-environment.d.ts +4 -2
- package/internal/core/runtime-environment.d.ts.map +1 -1
- package/internal/core/runtime-environment.js +39 -47
- package/internal/core/runtime-environment.js.map +1 -1
- package/internal/core/tasks/dsl.d.ts +6 -6
- package/internal/core/tasks/dsl.d.ts.map +1 -1
- package/internal/core/tasks/dsl.js.map +1 -1
- package/internal/core/tasks/task-definitions.d.ts +2 -2
- package/internal/core/tasks/task-definitions.d.ts.map +1 -1
- package/internal/core/tasks/task-definitions.js.map +1 -1
- package/internal/hardhat-network/jsonrpc/handler.d.ts +1 -0
- package/internal/hardhat-network/jsonrpc/handler.d.ts.map +1 -1
- package/internal/hardhat-network/jsonrpc/handler.js +13 -18
- package/internal/hardhat-network/jsonrpc/handler.js.map +1 -1
- package/internal/hardhat-network/provider/RethnetState.d.ts +26 -0
- package/internal/hardhat-network/provider/RethnetState.d.ts.map +1 -0
- package/internal/hardhat-network/provider/RethnetState.js +84 -0
- package/internal/hardhat-network/provider/RethnetState.js.map +1 -0
- package/internal/hardhat-network/provider/modules/evm.d.ts +2 -1
- package/internal/hardhat-network/provider/modules/evm.d.ts.map +1 -1
- package/internal/hardhat-network/provider/modules/evm.js +10 -4
- package/internal/hardhat-network/provider/modules/evm.js.map +1 -1
- package/internal/hardhat-network/provider/node-types.d.ts +1 -1
- package/internal/hardhat-network/provider/node-types.d.ts.map +1 -1
- package/internal/hardhat-network/provider/node.d.ts +1 -0
- package/internal/hardhat-network/provider/node.d.ts.map +1 -1
- package/internal/hardhat-network/provider/node.js +6 -4
- package/internal/hardhat-network/provider/node.js.map +1 -1
- package/internal/hardhat-network/provider/provider.d.ts +25 -21
- package/internal/hardhat-network/provider/provider.d.ts.map +1 -1
- package/internal/hardhat-network/provider/provider.js +25 -42
- package/internal/hardhat-network/provider/provider.js.map +1 -1
- package/internal/hardhat-network/provider/return-data.js +2 -2
- package/internal/hardhat-network/provider/return-data.js.map +1 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.d.ts.map +1 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.js +4 -2
- package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.js.map +1 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.d.ts.map +1 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.js +4 -2
- package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.js.map +1 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.d.ts.map +1 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.js +4 -2
- package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.js.map +1 -1
- package/internal/hardhat-network/provider/utils/bloom.d.ts +32 -0
- package/internal/hardhat-network/provider/utils/bloom.d.ts.map +1 -0
- package/internal/hardhat-network/provider/utils/bloom.js +79 -0
- package/internal/hardhat-network/provider/utils/bloom.js.map +1 -0
- package/internal/hardhat-network/provider/utils/convertToRethnet.d.ts +12 -0
- package/internal/hardhat-network/provider/utils/convertToRethnet.d.ts.map +1 -0
- package/internal/hardhat-network/provider/utils/convertToRethnet.js +162 -0
- package/internal/hardhat-network/provider/utils/convertToRethnet.js.map +1 -0
- package/internal/hardhat-network/provider/utils/makeFakeSignature.d.ts +7 -0
- package/internal/hardhat-network/provider/utils/makeFakeSignature.d.ts.map +1 -0
- package/internal/hardhat-network/provider/utils/makeFakeSignature.js +31 -0
- package/internal/hardhat-network/provider/utils/makeFakeSignature.js.map +1 -0
- package/internal/hardhat-network/provider/utils/putGenesisBlock.d.ts +1 -1
- package/internal/hardhat-network/provider/utils/putGenesisBlock.d.ts.map +1 -1
- package/internal/hardhat-network/provider/utils/putGenesisBlock.js +2 -2
- package/internal/hardhat-network/provider/utils/putGenesisBlock.js.map +1 -1
- package/internal/hardhat-network/provider/vm/block-builder.d.ts +31 -0
- package/internal/hardhat-network/provider/vm/block-builder.d.ts.map +1 -0
- package/internal/hardhat-network/provider/vm/block-builder.js +151 -0
- package/internal/hardhat-network/provider/vm/block-builder.js.map +1 -0
- package/internal/hardhat-network/provider/vm/creation.d.ts +10 -0
- package/internal/hardhat-network/provider/vm/creation.d.ts.map +1 -0
- package/internal/hardhat-network/provider/vm/creation.js +29 -0
- package/internal/hardhat-network/provider/vm/creation.js.map +1 -0
- package/internal/hardhat-network/provider/vm/dual.d.ts +43 -0
- package/internal/hardhat-network/provider/vm/dual.d.ts.map +1 -0
- package/internal/hardhat-network/provider/vm/dual.js +488 -0
- package/internal/hardhat-network/provider/vm/dual.js.map +1 -0
- package/internal/hardhat-network/provider/vm/ethereumjs.d.ts +56 -0
- package/internal/hardhat-network/provider/vm/ethereumjs.d.ts.map +1 -0
- package/internal/hardhat-network/provider/vm/ethereumjs.js +416 -0
- package/internal/hardhat-network/provider/vm/ethereumjs.js.map +1 -0
- package/internal/hardhat-network/provider/vm/exit.d.ts +23 -0
- package/internal/hardhat-network/provider/vm/exit.d.ts.map +1 -0
- package/internal/hardhat-network/provider/vm/exit.js +130 -0
- package/internal/hardhat-network/provider/vm/exit.js.map +1 -0
- package/internal/hardhat-network/provider/vm/rethnet.d.ts +99 -0
- package/internal/hardhat-network/provider/vm/rethnet.d.ts.map +1 -0
- package/internal/hardhat-network/provider/vm/rethnet.js +284 -0
- package/internal/hardhat-network/provider/vm/rethnet.js.map +1 -0
- package/internal/hardhat-network/provider/vm/vm-adapter.d.ts +52 -0
- package/internal/hardhat-network/provider/vm/vm-adapter.d.ts.map +1 -0
- package/internal/hardhat-network/provider/vm/vm-adapter.js +3 -0
- package/internal/hardhat-network/provider/vm/vm-adapter.js.map +1 -0
- package/internal/hardhat-network/stack-traces/compiler-to-model.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/compiler-to-model.js +37 -11
- package/internal/hardhat-network/stack-traces/compiler-to-model.js.map +1 -1
- package/internal/hardhat-network/stack-traces/consoleLogger.js.map +1 -1
- package/internal/hardhat-network/stack-traces/constants.d.ts +1 -1
- package/internal/hardhat-network/stack-traces/constants.js +1 -1
- package/internal/hardhat-network/stack-traces/debug.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/debug.js +6 -2
- package/internal/hardhat-network/stack-traces/debug.js.map +1 -1
- package/internal/hardhat-network/stack-traces/error-inferrer.d.ts +1 -0
- package/internal/hardhat-network/stack-traces/error-inferrer.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/error-inferrer.js +85 -55
- package/internal/hardhat-network/stack-traces/error-inferrer.js.map +1 -1
- package/internal/hardhat-network/stack-traces/model.d.ts +3 -1
- package/internal/hardhat-network/stack-traces/model.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/model.js +9 -1
- package/internal/hardhat-network/stack-traces/model.js.map +1 -1
- package/internal/hardhat-network/stack-traces/solidity-errors.js +2 -2
- package/internal/hardhat-network/stack-traces/solidity-errors.js.map +1 -1
- package/internal/hardhat-network/stack-traces/solidity-stack-trace.d.ts +2 -2
- package/internal/hardhat-network/stack-traces/solidity-stack-trace.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/solidityTracer.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/solidityTracer.js +1 -0
- package/internal/hardhat-network/stack-traces/solidityTracer.js.map +1 -1
- package/internal/lib/hardhat-lib.d.ts.map +1 -1
- package/internal/lib/hardhat-lib.js +1 -4
- package/internal/lib/hardhat-lib.js.map +1 -1
- package/internal/solidity/compiler/downloader.js +2 -2
- package/internal/solidity/compiler/downloader.js.map +1 -1
- package/internal/solidity/compiler/index.js +1 -1
- package/internal/solidity/compiler/index.js.map +1 -1
- package/internal/solidity/resolver.d.ts +4 -3
- package/internal/solidity/resolver.d.ts.map +1 -1
- package/internal/solidity/resolver.js +18 -7
- package/internal/solidity/resolver.js.map +1 -1
- package/internal/util/abi-helpers.d.ts +1 -0
- package/internal/util/abi-helpers.d.ts.map +1 -1
- package/internal/util/abi-helpers.js +9 -0
- package/internal/util/abi-helpers.js.map +1 -1
- package/internal/util/download.d.ts.map +1 -1
- package/internal/util/download.js +12 -11
- package/internal/util/download.js.map +1 -1
- package/internal/util/packageInfo.d.ts +6 -1
- package/internal/util/packageInfo.d.ts.map +1 -1
- package/internal/util/packageInfo.js +14 -11
- package/internal/util/packageInfo.js.map +1 -1
- package/internal/util/proxy.d.ts +2 -0
- package/internal/util/proxy.d.ts.map +1 -0
- package/internal/util/proxy.js +19 -0
- package/internal/util/proxy.js.map +1 -0
- package/package.json +9 -10
- package/register.js +1 -4
- package/register.js.map +1 -1
- package/sample-projects/javascript/hardhat.config.js +1 -1
- package/sample-projects/javascript/scripts/deploy.js +2 -2
- package/sample-projects/javascript-esm/LICENSE.md +11 -0
- package/sample-projects/javascript-esm/README.md +13 -0
- package/sample-projects/javascript-esm/contracts/Lock.sol +34 -0
- package/sample-projects/javascript-esm/hardhat.config.cjs +6 -0
- package/sample-projects/javascript-esm/scripts/deploy.js +22 -0
- package/sample-projects/javascript-esm/test/Lock.js +123 -0
- package/sample-projects/typescript/hardhat.config.ts +1 -1
- package/sample-projects/typescript/scripts/deploy.ts +2 -2
- package/sample-projects/typescript/tsconfig.json +2 -1
- package/src/builtin-tasks/compile.ts +28 -7
- package/src/builtin-tasks/flatten.ts +4 -1
- package/src/builtin-tasks/help.ts +15 -16
- package/src/builtin-tasks/task-names.ts +2 -0
- package/src/builtin-tasks/test.ts +30 -2
- package/src/internal/artifacts.ts +947 -0
- package/src/internal/cli/bootstrap.ts +14 -36
- package/src/internal/cli/cli.ts +38 -43
- package/src/internal/cli/project-creation.ts +128 -47
- package/src/internal/cli/prompt.ts +2 -4
- package/src/internal/cli/types.ts +2 -0
- package/src/internal/core/config/config-env.ts +15 -27
- package/src/internal/core/config/config-loading.ts +35 -11
- package/src/internal/core/config/config-validation.ts +20 -0
- package/src/internal/core/config/extenders.ts +6 -15
- package/src/internal/core/errors-list.ts +36 -10
- package/src/internal/core/project-structure.ts +8 -0
- package/src/internal/core/providers/construction.ts +29 -24
- package/src/internal/core/providers/http.ts +38 -26
- package/src/internal/core/runtime-environment.ts +65 -60
- package/src/internal/core/tasks/dsl.ts +17 -17
- package/src/internal/core/tasks/task-definitions.ts +6 -2
- package/src/internal/hardhat-network/jsonrpc/handler.ts +31 -28
- package/src/internal/hardhat-network/provider/modules/evm.ts +15 -3
- package/src/internal/hardhat-network/provider/node-types.ts +1 -1
- package/src/internal/hardhat-network/provider/node.ts +5 -1
- package/src/internal/hardhat-network/provider/provider.ts +60 -49
- package/src/internal/hardhat-network/provider/return-data.ts +2 -2
- package/src/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.ts +5 -2
- package/src/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.ts +5 -2
- package/src/internal/hardhat-network/provider/transactions/FakeSenderTransaction.ts +5 -2
- package/src/internal/hardhat-network/provider/utils/makeFakeSignature.ts +46 -0
- package/src/internal/hardhat-network/provider/utils/putGenesisBlock.ts +2 -2
- package/src/internal/hardhat-network/stack-traces/compiler-to-model.ts +71 -9
- package/src/internal/hardhat-network/stack-traces/consoleLogger.ts +1 -1
- package/src/internal/hardhat-network/stack-traces/constants.ts +1 -1
- package/src/internal/hardhat-network/stack-traces/debug.ts +9 -2
- package/src/internal/hardhat-network/stack-traces/error-inferrer.ts +177 -89
- package/src/internal/hardhat-network/stack-traces/model.ts +11 -1
- package/src/internal/hardhat-network/stack-traces/solidity-errors.ts +2 -2
- package/src/internal/hardhat-network/stack-traces/solidity-stack-trace.ts +2 -2
- package/src/internal/hardhat-network/stack-traces/solidityTracer.ts +3 -0
- package/src/internal/lib/hardhat-lib.ts +1 -6
- package/src/internal/solidity/compiler/downloader.ts +2 -2
- package/src/internal/solidity/compiler/index.ts +1 -1
- package/src/internal/solidity/resolver.ts +28 -11
- package/src/internal/util/abi-helpers.ts +9 -0
- package/src/internal/util/download.ts +13 -15
- package/src/internal/util/packageInfo.ts +24 -10
- package/src/internal/util/proxy.ts +18 -0
- package/src/register.ts +1 -6
- package/src/types/artifacts.ts +14 -112
- package/src/types/config.ts +2 -0
- package/src/types/runtime.ts +16 -13
- package/types/artifacts.d.ts +10 -96
- package/types/artifacts.d.ts.map +1 -1
- package/types/config.d.ts +2 -0
- package/types/config.d.ts.map +1 -1
- package/types/runtime.d.ts +9 -10
- package/types/runtime.d.ts.map +1 -1
- package/internal/artifacts/caching.d.ts +0 -28
- package/internal/artifacts/caching.d.ts.map +0 -1
- package/internal/artifacts/caching.js +0 -178
- package/internal/artifacts/caching.js.map +0 -1
- package/internal/artifacts/index.d.ts +0 -45
- package/internal/artifacts/index.d.ts.map +0 -1
- package/internal/artifacts/index.js +0 -191
- package/internal/artifacts/index.js.map +0 -1
- package/internal/artifacts/mutable.d.ts +0 -29
- package/internal/artifacts/mutable.d.ts.map +0 -1
- package/internal/artifacts/mutable.js +0 -226
- package/internal/artifacts/mutable.js.map +0 -1
- package/internal/artifacts/readonly.d.ts +0 -94
- package/internal/artifacts/readonly.d.ts.map +0 -1
- package/internal/artifacts/readonly.js +0 -343
- package/internal/artifacts/readonly.js.map +0 -1
- package/src/internal/artifacts/caching.ts +0 -259
- package/src/internal/artifacts/index.ts +0 -302
- package/src/internal/artifacts/mutable.ts +0 -330
- package/src/internal/artifacts/readonly.ts +0 -470
|
@@ -1,343 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
-
}) : (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
o[k2] = m[k];
|
|
8
|
-
}));
|
|
9
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
-
}) : function(o, v) {
|
|
12
|
-
o["default"] = v;
|
|
13
|
-
});
|
|
14
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
-
if (mod && mod.__esModule) return mod;
|
|
16
|
-
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
-
__setModuleDefault(result, mod);
|
|
19
|
-
return result;
|
|
20
|
-
};
|
|
21
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
|
-
};
|
|
24
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
-
exports.ReadOnlySource = void 0;
|
|
26
|
-
const os = __importStar(require("os"));
|
|
27
|
-
const path = __importStar(require("path"));
|
|
28
|
-
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
29
|
-
const contract_names_1 = require("../../utils/contract-names");
|
|
30
|
-
const source_names_1 = require("../../utils/source-names");
|
|
31
|
-
const constants_1 = require("../constants");
|
|
32
|
-
const errors_1 = require("../core/errors");
|
|
33
|
-
const errors_list_1 = require("../core/errors-list");
|
|
34
|
-
const fs_utils_1 = require("../util/fs-utils");
|
|
35
|
-
/**
|
|
36
|
-
* The purpose of this class is to encapsulate JSON file I/O. It assumes that
|
|
37
|
-
* all input strings are simply paths, not contract names nor fully-qualified
|
|
38
|
-
* contract names like other interfaces around here accept.
|
|
39
|
-
*/
|
|
40
|
-
class ReadOnlyByPath {
|
|
41
|
-
async _readArtifactByPath(artifactPath) {
|
|
42
|
-
return fs_extra_1.default.readJson(artifactPath);
|
|
43
|
-
}
|
|
44
|
-
_readArtifactByPathSync(artifactPath) {
|
|
45
|
-
return fs_extra_1.default.readJsonSync(artifactPath);
|
|
46
|
-
}
|
|
47
|
-
async _artifactPathExists(artifactPath) {
|
|
48
|
-
return fs_extra_1.default.pathExists(artifactPath);
|
|
49
|
-
}
|
|
50
|
-
async _getBuildInfoByPath(buildInfoPath) {
|
|
51
|
-
return fs_extra_1.default.readJSON(buildInfoPath);
|
|
52
|
-
}
|
|
53
|
-
_getBuildInfoByPathSync(buildInfoPath) {
|
|
54
|
-
return fs_extra_1.default.readJSONSync(buildInfoPath);
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Given the path to a debug file, returns the absolute path to its
|
|
58
|
-
* corresponding build info file if it exists, or undefined otherwise.
|
|
59
|
-
*/
|
|
60
|
-
static async _getBuildInfoFromDebugFile(debugFilePath) {
|
|
61
|
-
if (await fs_extra_1.default.pathExists(debugFilePath)) {
|
|
62
|
-
const { buildInfo } = await fs_extra_1.default.readJson(debugFilePath);
|
|
63
|
-
return path.resolve(path.dirname(debugFilePath), buildInfo);
|
|
64
|
-
}
|
|
65
|
-
return undefined;
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Synchronous version of _getBuildInfoFromDebugFile
|
|
69
|
-
*/
|
|
70
|
-
static _getBuildInfoFromDebugFileSync(debugFilePath) {
|
|
71
|
-
if (fs_extra_1.default.pathExistsSync(debugFilePath)) {
|
|
72
|
-
const { buildInfo } = fs_extra_1.default.readJsonSync(debugFilePath);
|
|
73
|
-
return path.resolve(path.dirname(debugFilePath), buildInfo);
|
|
74
|
-
}
|
|
75
|
-
return undefined;
|
|
76
|
-
}
|
|
77
|
-
_getDebugFilePath(artifactPath) {
|
|
78
|
-
return artifactPath.replace(/\.json$/, ".dbg.json");
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* This class takes responsibility for the mappings between contract names,
|
|
83
|
-
* fully-qualified contract names, and file paths.
|
|
84
|
-
*/
|
|
85
|
-
class ReadOnlySource extends ReadOnlyByPath {
|
|
86
|
-
constructor(_artifactsPath) {
|
|
87
|
-
super();
|
|
88
|
-
this._artifactsPath = _artifactsPath;
|
|
89
|
-
}
|
|
90
|
-
async artifactExists(name) {
|
|
91
|
-
const artifactPath = await this._getArtifactPath(name);
|
|
92
|
-
if (artifactPath === undefined) {
|
|
93
|
-
return false;
|
|
94
|
-
}
|
|
95
|
-
return super._artifactPathExists(artifactPath);
|
|
96
|
-
}
|
|
97
|
-
async getArtifactPaths() {
|
|
98
|
-
const buildInfosDir = path.join(this._artifactsPath, constants_1.BUILD_INFO_DIR_NAME);
|
|
99
|
-
const paths = await (0, fs_utils_1.getAllFilesMatching)(this._artifactsPath, (f) => f.endsWith(".json") &&
|
|
100
|
-
!f.startsWith(buildInfosDir) &&
|
|
101
|
-
!f.endsWith(".dbg.json"));
|
|
102
|
-
return paths.sort();
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Returns the absolute path to the given artifact
|
|
106
|
-
*/
|
|
107
|
-
formArtifactPathFromFullyQualifiedName(fullyQualifiedName) {
|
|
108
|
-
const { sourceName, contractName } = (0, contract_names_1.parseFullyQualifiedName)(fullyQualifiedName);
|
|
109
|
-
return path.join(this._artifactsPath, sourceName, `${contractName}.json`);
|
|
110
|
-
}
|
|
111
|
-
async getAllFullyQualifiedNames() {
|
|
112
|
-
const paths = await this.getArtifactPaths();
|
|
113
|
-
return paths.map((p) => this._getFullyQualifiedNameFromPath(p)).sort();
|
|
114
|
-
}
|
|
115
|
-
async getBuildInfo(fullyQualifiedName) {
|
|
116
|
-
const buildInfoPath = await this._getBuildInfoPath(fullyQualifiedName);
|
|
117
|
-
if (buildInfoPath === undefined) {
|
|
118
|
-
return undefined;
|
|
119
|
-
}
|
|
120
|
-
return super._getBuildInfoByPath(buildInfoPath);
|
|
121
|
-
}
|
|
122
|
-
async getBuildInfoPaths() {
|
|
123
|
-
const paths = await (0, fs_utils_1.getAllFilesMatching)(path.join(this._artifactsPath, constants_1.BUILD_INFO_DIR_NAME), (f) => f.endsWith(".json"));
|
|
124
|
-
return paths.sort();
|
|
125
|
-
}
|
|
126
|
-
async getDebugFilePaths() {
|
|
127
|
-
const paths = await (0, fs_utils_1.getAllFilesMatching)(path.join(this._artifactsPath), (f) => f.endsWith(".dbg.json"));
|
|
128
|
-
return paths.sort();
|
|
129
|
-
}
|
|
130
|
-
async readArtifact(name) {
|
|
131
|
-
const artifactPath = await this._getArtifactPath(name);
|
|
132
|
-
if (artifactPath === undefined) {
|
|
133
|
-
return undefined;
|
|
134
|
-
}
|
|
135
|
-
return super._readArtifactByPath(artifactPath);
|
|
136
|
-
}
|
|
137
|
-
readArtifactSync(name) {
|
|
138
|
-
const artifactPath = this._getArtifactPathSync(name);
|
|
139
|
-
if (artifactPath === undefined) {
|
|
140
|
-
return undefined;
|
|
141
|
-
}
|
|
142
|
-
return super._readArtifactByPathSync(artifactPath);
|
|
143
|
-
}
|
|
144
|
-
getSuggestions(name) {
|
|
145
|
-
if ((0, contract_names_1.isFullyQualifiedName)(name)) {
|
|
146
|
-
const fqns = this._getAllFullyQualifiedNamesSync();
|
|
147
|
-
return ReadOnlySource._getSimilarContractNames(name, fqns);
|
|
148
|
-
}
|
|
149
|
-
const files = this._getArtifactPathsSync();
|
|
150
|
-
const names = this._getAllContractNamesFromFiles(files);
|
|
151
|
-
let similarNames = ReadOnlySource._getSimilarContractNames(name, names);
|
|
152
|
-
if (similarNames.length > 1) {
|
|
153
|
-
similarNames = this._filterDuplicatesAsFullyQualifiedNames(files, similarNames);
|
|
154
|
-
}
|
|
155
|
-
return similarNames;
|
|
156
|
-
}
|
|
157
|
-
/**
|
|
158
|
-
* If the project has these contracts:
|
|
159
|
-
* - 'contracts/Greeter.sol:Greeter'
|
|
160
|
-
* - 'contracts/Meeter.sol:Greeter'
|
|
161
|
-
* - 'contracts/Greater.sol:Greater'
|
|
162
|
-
* And the user tries to get an artifact with the name 'Greter', then
|
|
163
|
-
* the suggestions will be 'Greeter', 'Greeter', and 'Greater'.
|
|
164
|
-
*
|
|
165
|
-
* We don't want to show duplicates here, so we use FQNs for those. The
|
|
166
|
-
* suggestions will then be:
|
|
167
|
-
* - 'contracts/Greeter.sol:Greeter'
|
|
168
|
-
* - 'contracts/Meeter.sol:Greeter'
|
|
169
|
-
* - 'Greater'
|
|
170
|
-
*/
|
|
171
|
-
_filterDuplicatesAsFullyQualifiedNames(files, similarNames) {
|
|
172
|
-
const outputNames = [];
|
|
173
|
-
const groups = similarNames.reduce((obj, cur) => {
|
|
174
|
-
// eslint-disable-next-line @typescript-eslint/strict-boolean-expressions
|
|
175
|
-
obj[cur] = obj[cur] ? obj[cur] + 1 : 1;
|
|
176
|
-
return obj;
|
|
177
|
-
}, {});
|
|
178
|
-
for (const [name, occurrences] of Object.entries(groups)) {
|
|
179
|
-
if (occurrences > 1) {
|
|
180
|
-
for (const file of files) {
|
|
181
|
-
if (path.basename(file) === `${name}.json`) {
|
|
182
|
-
outputNames.push(this._getFullyQualifiedNameFromPath(file));
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
continue;
|
|
186
|
-
}
|
|
187
|
-
outputNames.push(name);
|
|
188
|
-
}
|
|
189
|
-
return outputNames;
|
|
190
|
-
}
|
|
191
|
-
_getAllContractNamesFromFiles(files) {
|
|
192
|
-
return files.map((file) => {
|
|
193
|
-
const fqn = this._getFullyQualifiedNameFromPath(file);
|
|
194
|
-
return (0, contract_names_1.parseFullyQualifiedName)(fqn).contractName;
|
|
195
|
-
});
|
|
196
|
-
}
|
|
197
|
-
_getAllFullyQualifiedNamesSync() {
|
|
198
|
-
const paths = this._getArtifactPathsSync();
|
|
199
|
-
return paths.map((p) => this._getFullyQualifiedNameFromPath(p)).sort();
|
|
200
|
-
}
|
|
201
|
-
/**
|
|
202
|
-
* Returns the absolute path to the artifact that corresponds to the given
|
|
203
|
-
* name.
|
|
204
|
-
*
|
|
205
|
-
* If the name is fully qualified, the path is computed from it. If not, an
|
|
206
|
-
* artifact that matches the given name is searched in the existing artifacts.
|
|
207
|
-
* If there is an ambiguity, an error is thrown.
|
|
208
|
-
*/
|
|
209
|
-
async _getArtifactPath(name) {
|
|
210
|
-
let result;
|
|
211
|
-
if ((0, contract_names_1.isFullyQualifiedName)(name)) {
|
|
212
|
-
result = await this._getValidArtifactPathFromFullyQualifiedName(name);
|
|
213
|
-
}
|
|
214
|
-
else {
|
|
215
|
-
const files = await this.getArtifactPaths();
|
|
216
|
-
result = this._getArtifactPathFromFiles(name, files);
|
|
217
|
-
}
|
|
218
|
-
return result;
|
|
219
|
-
}
|
|
220
|
-
_getArtifactPathSync(name) {
|
|
221
|
-
let result;
|
|
222
|
-
if ((0, contract_names_1.isFullyQualifiedName)(name)) {
|
|
223
|
-
result = this._getValidArtifactPathFromFullyQualifiedNameSync(name);
|
|
224
|
-
}
|
|
225
|
-
else {
|
|
226
|
-
const files = this._getArtifactPathsSync();
|
|
227
|
-
result = this._getArtifactPathFromFiles(name, files);
|
|
228
|
-
}
|
|
229
|
-
return result;
|
|
230
|
-
}
|
|
231
|
-
_getArtifactPathFromFiles(contractName, files) {
|
|
232
|
-
const matchingFiles = files.filter((file) => {
|
|
233
|
-
return path.basename(file) === `${contractName}.json`;
|
|
234
|
-
});
|
|
235
|
-
if (matchingFiles.length === 0) {
|
|
236
|
-
return undefined;
|
|
237
|
-
}
|
|
238
|
-
if (matchingFiles.length > 1) {
|
|
239
|
-
const candidates = matchingFiles.map((file) => this._getFullyQualifiedNameFromPath(file));
|
|
240
|
-
throw new errors_1.HardhatError(errors_list_1.ERRORS.ARTIFACTS.MULTIPLE_FOUND, {
|
|
241
|
-
contractName,
|
|
242
|
-
candidates: candidates.join(os.EOL),
|
|
243
|
-
});
|
|
244
|
-
}
|
|
245
|
-
return matchingFiles[0];
|
|
246
|
-
}
|
|
247
|
-
_getArtifactPathsSync() {
|
|
248
|
-
const buildInfosDir = path.join(this._artifactsPath, constants_1.BUILD_INFO_DIR_NAME);
|
|
249
|
-
const paths = (0, fs_utils_1.getAllFilesMatchingSync)(this._artifactsPath, (f) => f.endsWith(".json") &&
|
|
250
|
-
!f.startsWith(buildInfosDir) &&
|
|
251
|
-
!f.endsWith(".dbg.json"));
|
|
252
|
-
return paths.sort();
|
|
253
|
-
}
|
|
254
|
-
async _getBuildInfoPath(fullyQualifiedName) {
|
|
255
|
-
const artifactPath = this.formArtifactPathFromFullyQualifiedName(fullyQualifiedName);
|
|
256
|
-
const debugFilePath = this._getDebugFilePath(artifactPath);
|
|
257
|
-
const buildInfoPath = await ReadOnlySource._getBuildInfoFromDebugFile(debugFilePath);
|
|
258
|
-
return buildInfoPath;
|
|
259
|
-
}
|
|
260
|
-
_getBuildInfoPathSync(fullyQualifiedName) {
|
|
261
|
-
const artifactPath = this.formArtifactPathFromFullyQualifiedName(fullyQualifiedName);
|
|
262
|
-
const debugFilePath = this._getDebugFilePath(artifactPath);
|
|
263
|
-
const buildInfoPath = ReadOnlySource._getBuildInfoFromDebugFileSync(debugFilePath);
|
|
264
|
-
return buildInfoPath;
|
|
265
|
-
}
|
|
266
|
-
/**
|
|
267
|
-
* Returns the FQN of a contract giving the absolute path to its artifact.
|
|
268
|
-
*
|
|
269
|
-
* For example, given a path like
|
|
270
|
-
* `/path/to/project/artifacts/contracts/Foo.sol/Bar.json`, it'll return the
|
|
271
|
-
* FQN `contracts/Foo.sol:Bar`
|
|
272
|
-
*/
|
|
273
|
-
_getFullyQualifiedNameFromPath(absolutePath) {
|
|
274
|
-
const sourceName = (0, source_names_1.replaceBackslashes)(path.relative(this._artifactsPath, path.dirname(absolutePath)));
|
|
275
|
-
const contractName = path.basename(absolutePath).replace(".json", "");
|
|
276
|
-
return (0, contract_names_1.getFullyQualifiedName)(sourceName, contractName);
|
|
277
|
-
}
|
|
278
|
-
/**
|
|
279
|
-
*
|
|
280
|
-
* @param givenName can be FQN or contract name
|
|
281
|
-
* @param names MUST match type of givenName (i.e. array of FQN's if givenName is FQN)
|
|
282
|
-
* @returns
|
|
283
|
-
*/
|
|
284
|
-
static _getSimilarContractNames(givenName, names) {
|
|
285
|
-
let shortestDistance = constants_1.EDIT_DISTANCE_THRESHOLD;
|
|
286
|
-
let mostSimilarNames = [];
|
|
287
|
-
for (const name of names) {
|
|
288
|
-
const distance = (0, contract_names_1.findDistance)(givenName, name);
|
|
289
|
-
if (distance < shortestDistance) {
|
|
290
|
-
shortestDistance = distance;
|
|
291
|
-
mostSimilarNames = [name];
|
|
292
|
-
continue;
|
|
293
|
-
}
|
|
294
|
-
if (distance === shortestDistance) {
|
|
295
|
-
mostSimilarNames.push(name);
|
|
296
|
-
continue;
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
|
-
return mostSimilarNames;
|
|
300
|
-
}
|
|
301
|
-
async _getValidArtifactPathFromFullyQualifiedName(fullyQualifiedName) {
|
|
302
|
-
const artifactPath = this.formArtifactPathFromFullyQualifiedName(fullyQualifiedName);
|
|
303
|
-
try {
|
|
304
|
-
const trueCasePath = path.join(this._artifactsPath, await (0, fs_utils_1.getFileTrueCase)(this._artifactsPath, path.relative(this._artifactsPath, artifactPath)));
|
|
305
|
-
if (artifactPath !== trueCasePath) {
|
|
306
|
-
throw new errors_1.HardhatError(errors_list_1.ERRORS.ARTIFACTS.WRONG_CASING, {
|
|
307
|
-
correct: this._getFullyQualifiedNameFromPath(trueCasePath),
|
|
308
|
-
incorrect: fullyQualifiedName,
|
|
309
|
-
});
|
|
310
|
-
}
|
|
311
|
-
return trueCasePath;
|
|
312
|
-
}
|
|
313
|
-
catch (e) {
|
|
314
|
-
if (e instanceof fs_utils_1.FileNotFoundError) {
|
|
315
|
-
return undefined;
|
|
316
|
-
}
|
|
317
|
-
// eslint-disable-next-line @nomiclabs/hardhat-internal-rules/only-hardhat-error
|
|
318
|
-
throw e;
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
_getValidArtifactPathFromFullyQualifiedNameSync(fullyQualifiedName) {
|
|
322
|
-
const artifactPath = this.formArtifactPathFromFullyQualifiedName(fullyQualifiedName);
|
|
323
|
-
try {
|
|
324
|
-
const trueCasePath = path.join(this._artifactsPath, (0, fs_utils_1.getFileTrueCaseSync)(this._artifactsPath, path.relative(this._artifactsPath, artifactPath)));
|
|
325
|
-
if (artifactPath !== trueCasePath) {
|
|
326
|
-
throw new errors_1.HardhatError(errors_list_1.ERRORS.ARTIFACTS.WRONG_CASING, {
|
|
327
|
-
correct: this._getFullyQualifiedNameFromPath(trueCasePath),
|
|
328
|
-
incorrect: fullyQualifiedName,
|
|
329
|
-
});
|
|
330
|
-
}
|
|
331
|
-
return trueCasePath;
|
|
332
|
-
}
|
|
333
|
-
catch (e) {
|
|
334
|
-
if (e instanceof fs_utils_1.FileNotFoundError) {
|
|
335
|
-
return undefined;
|
|
336
|
-
}
|
|
337
|
-
// eslint-disable-next-line @nomiclabs/hardhat-internal-rules/only-hardhat-error
|
|
338
|
-
throw e;
|
|
339
|
-
}
|
|
340
|
-
}
|
|
341
|
-
}
|
|
342
|
-
exports.ReadOnlySource = ReadOnlySource;
|
|
343
|
-
//# sourceMappingURL=readonly.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"readonly.js","sourceRoot":"","sources":["../../src/internal/artifacts/readonly.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,259 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
Artifact,
|
|
3
|
-
ArtifactsSource,
|
|
4
|
-
BuildInfo,
|
|
5
|
-
CompilerInput,
|
|
6
|
-
CompilerOutput,
|
|
7
|
-
} from "../../types";
|
|
8
|
-
|
|
9
|
-
import { MutableSource } from "./mutable";
|
|
10
|
-
|
|
11
|
-
interface Cache {
|
|
12
|
-
artifactPaths?: string[];
|
|
13
|
-
debugFilePaths?: string[];
|
|
14
|
-
buildInfoPaths?: string[];
|
|
15
|
-
artifactNameToArtifactPathCache: Map<string, string>;
|
|
16
|
-
artifactFQNToBuildInfoPathCache: Map<string, string>;
|
|
17
|
-
artifactNameToArtifact: Map<string, Artifact>;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export class CachingSource extends MutableSource implements ArtifactsSource {
|
|
21
|
-
// Undefined means that the cache is disabled.
|
|
22
|
-
private _cache?: Cache = {
|
|
23
|
-
artifactNameToArtifactPathCache: new Map(),
|
|
24
|
-
artifactFQNToBuildInfoPathCache: new Map(),
|
|
25
|
-
artifactNameToArtifact: new Map(),
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
constructor(artifactsPath: string) {
|
|
29
|
-
super(artifactsPath);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
public async readArtifact(name: string): Promise<Artifact | undefined> {
|
|
33
|
-
const cached = this._cache?.artifactNameToArtifact.get(name);
|
|
34
|
-
if (cached !== undefined) {
|
|
35
|
-
return cached;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
const artifact = await super.readArtifact(name);
|
|
39
|
-
if (artifact === undefined) {
|
|
40
|
-
return undefined;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
this._cache?.artifactNameToArtifact.set(name, artifact);
|
|
44
|
-
|
|
45
|
-
return artifact;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
public readArtifactSync(name: string): Artifact | undefined {
|
|
49
|
-
const cached = this._cache?.artifactNameToArtifact.get(name);
|
|
50
|
-
if (cached !== undefined) {
|
|
51
|
-
return cached;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
const artifact = super.readArtifactSync(name);
|
|
55
|
-
if (artifact === undefined) {
|
|
56
|
-
return undefined;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
this._cache?.artifactNameToArtifact.set(name, artifact);
|
|
60
|
-
|
|
61
|
-
return artifact;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
public async getBuildInfo(
|
|
65
|
-
fullyQualifiedName: string
|
|
66
|
-
): Promise<BuildInfo | undefined> {
|
|
67
|
-
let buildInfoPath =
|
|
68
|
-
this._cache?.artifactFQNToBuildInfoPathCache.get(fullyQualifiedName);
|
|
69
|
-
|
|
70
|
-
if (buildInfoPath === undefined) {
|
|
71
|
-
buildInfoPath = await super._getBuildInfoPath(fullyQualifiedName);
|
|
72
|
-
|
|
73
|
-
if (buildInfoPath === undefined) {
|
|
74
|
-
return undefined;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
this._cache?.artifactFQNToBuildInfoPathCache.set(
|
|
78
|
-
fullyQualifiedName,
|
|
79
|
-
buildInfoPath
|
|
80
|
-
);
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
return super._getBuildInfoByPath(buildInfoPath);
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
public getBuildInfoSync(fullyQualifiedName: string): BuildInfo | undefined {
|
|
87
|
-
let buildInfoPath =
|
|
88
|
-
this._cache?.artifactFQNToBuildInfoPathCache.get(fullyQualifiedName);
|
|
89
|
-
|
|
90
|
-
if (buildInfoPath === undefined) {
|
|
91
|
-
buildInfoPath = super._getBuildInfoPathSync(fullyQualifiedName);
|
|
92
|
-
|
|
93
|
-
if (buildInfoPath === undefined) {
|
|
94
|
-
return undefined;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
this._cache?.artifactFQNToBuildInfoPathCache.set(
|
|
98
|
-
fullyQualifiedName,
|
|
99
|
-
buildInfoPath
|
|
100
|
-
);
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
return super._getBuildInfoByPathSync(buildInfoPath);
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
public async getArtifactPaths(): Promise<string[]> {
|
|
107
|
-
const cached = this._cache?.artifactPaths;
|
|
108
|
-
if (cached !== undefined) {
|
|
109
|
-
return cached;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
const artifactPaths = await super.getArtifactPaths();
|
|
113
|
-
|
|
114
|
-
if (this._cache !== undefined) {
|
|
115
|
-
this._cache.artifactPaths = artifactPaths;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
return artifactPaths;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
public async getBuildInfoPaths(): Promise<string[]> {
|
|
122
|
-
const cached = this._cache?.buildInfoPaths;
|
|
123
|
-
if (cached !== undefined) {
|
|
124
|
-
return cached;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
const buildInfoPaths = await super.getBuildInfoPaths();
|
|
128
|
-
|
|
129
|
-
if (this._cache !== undefined) {
|
|
130
|
-
this._cache.buildInfoPaths = buildInfoPaths;
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
return buildInfoPaths;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
public async getDebugFilePaths(): Promise<string[]> {
|
|
137
|
-
const cached = this._cache?.debugFilePaths;
|
|
138
|
-
if (cached !== undefined) {
|
|
139
|
-
return cached;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
const debugFilePaths = await super.getDebugFilePaths();
|
|
143
|
-
|
|
144
|
-
if (this._cache !== undefined) {
|
|
145
|
-
this._cache.debugFilePaths = debugFilePaths;
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
return debugFilePaths;
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
public async saveArtifactAndDebugFile(
|
|
152
|
-
artifact: Artifact,
|
|
153
|
-
pathToBuildInfo?: string
|
|
154
|
-
) {
|
|
155
|
-
try {
|
|
156
|
-
await super.saveArtifactAndDebugFile(artifact, pathToBuildInfo);
|
|
157
|
-
} finally {
|
|
158
|
-
this.clearCache();
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
public async saveBuildInfo(
|
|
163
|
-
solcVersion: string,
|
|
164
|
-
solcLongVersion: string,
|
|
165
|
-
input: CompilerInput,
|
|
166
|
-
output: CompilerOutput
|
|
167
|
-
): Promise<string> {
|
|
168
|
-
try {
|
|
169
|
-
return await super.saveBuildInfo(
|
|
170
|
-
solcVersion,
|
|
171
|
-
solcLongVersion,
|
|
172
|
-
input,
|
|
173
|
-
output
|
|
174
|
-
);
|
|
175
|
-
} finally {
|
|
176
|
-
this.clearCache();
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
/**
|
|
181
|
-
* Remove all artifacts that don't correspond to the current solidity files
|
|
182
|
-
*/
|
|
183
|
-
public async removeObsoleteArtifacts() {
|
|
184
|
-
// We clear the cache here, as we want to be sure this runs correctly
|
|
185
|
-
this.clearCache();
|
|
186
|
-
|
|
187
|
-
try {
|
|
188
|
-
await super.removeObsoleteArtifacts();
|
|
189
|
-
} finally {
|
|
190
|
-
// We clear the cache here, as this may have non-existent paths now
|
|
191
|
-
this.clearCache();
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
public clearCache() {
|
|
196
|
-
// Avoid accidentally re-enabling the cache
|
|
197
|
-
if (this._cache === undefined) {
|
|
198
|
-
return;
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
this._cache = {
|
|
202
|
-
artifactFQNToBuildInfoPathCache: new Map(),
|
|
203
|
-
artifactNameToArtifactPathCache: new Map(),
|
|
204
|
-
artifactNameToArtifact: new Map(),
|
|
205
|
-
};
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
public disableCache() {
|
|
209
|
-
this._cache = undefined;
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
protected async _getArtifactPath(name: string): Promise<string | undefined> {
|
|
213
|
-
const cached = this._cache?.artifactNameToArtifactPathCache.get(name);
|
|
214
|
-
if (cached !== undefined) {
|
|
215
|
-
return cached;
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
const result = await super._getArtifactPath(name);
|
|
219
|
-
if (result === undefined) {
|
|
220
|
-
return undefined;
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
this._cache?.artifactNameToArtifactPathCache.set(name, result);
|
|
224
|
-
return result;
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
protected _getArtifactPathsSync(): string[] {
|
|
228
|
-
const cached = this._cache?.artifactPaths;
|
|
229
|
-
if (cached !== undefined) {
|
|
230
|
-
return cached;
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
const result = super._getArtifactPathsSync();
|
|
234
|
-
|
|
235
|
-
if (this._cache !== undefined) {
|
|
236
|
-
this._cache.artifactPaths = result;
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
return result;
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
/**
|
|
243
|
-
* Synchronous version of _getArtifactPath
|
|
244
|
-
*/
|
|
245
|
-
protected _getArtifactPathSync(name: string): string | undefined {
|
|
246
|
-
const cached = this._cache?.artifactNameToArtifactPathCache.get(name);
|
|
247
|
-
if (cached !== undefined) {
|
|
248
|
-
return cached;
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
const result = super._getArtifactPathSync(name);
|
|
252
|
-
if (result === undefined) {
|
|
253
|
-
return undefined;
|
|
254
|
-
}
|
|
255
|
-
|
|
256
|
-
this._cache?.artifactNameToArtifactPathCache.set(name, result);
|
|
257
|
-
return result;
|
|
258
|
-
}
|
|
259
|
-
}
|