hardhat 2.12.2 → 2.13.0-dev.1
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/internal/artifacts/caching.d.ts +27 -0
- package/internal/artifacts/caching.d.ts.map +1 -0
- package/internal/artifacts/caching.js +167 -0
- package/internal/artifacts/caching.js.map +1 -0
- package/internal/artifacts/index.d.ts +44 -0
- package/internal/artifacts/index.d.ts.map +1 -0
- package/internal/artifacts/index.js +187 -0
- package/internal/artifacts/index.js.map +1 -0
- package/internal/artifacts/mutable.d.ts +29 -0
- package/internal/artifacts/mutable.d.ts.map +1 -0
- package/internal/artifacts/mutable.js +226 -0
- package/internal/artifacts/mutable.js.map +1 -0
- package/internal/artifacts/readonly.d.ts +88 -0
- package/internal/artifacts/readonly.d.ts.map +1 -0
- package/internal/artifacts/readonly.js +324 -0
- package/internal/artifacts/readonly.js.map +1 -0
- package/internal/cli/cli.js +5 -2
- package/internal/cli/cli.js.map +1 -1
- package/internal/core/config/config-env.d.ts +7 -1
- package/internal/core/config/config-env.d.ts.map +1 -1
- package/internal/core/config/config-env.js +13 -2
- package/internal/core/config/config-env.js.map +1 -1
- package/internal/core/config/extenders.d.ts +7 -4
- package/internal/core/config/extenders.d.ts.map +1 -1
- package/internal/core/config/extenders.js +12 -5
- package/internal/core/config/extenders.js.map +1 -1
- package/internal/core/errors-list.d.ts +7 -0
- package/internal/core/errors-list.d.ts.map +1 -1
- package/internal/core/errors-list.js +9 -0
- package/internal/core/errors-list.js.map +1 -1
- package/internal/core/runtime-environment.d.ts +2 -2
- package/internal/core/runtime-environment.d.ts.map +1 -1
- package/internal/core/runtime-environment.js +2 -2
- package/internal/core/runtime-environment.js.map +1 -1
- package/internal/hardhat-network/provider/utils/bloom.d.ts +28 -0
- package/internal/hardhat-network/provider/utils/bloom.d.ts.map +1 -0
- package/internal/hardhat-network/provider/utils/bloom.js +73 -0
- package/internal/hardhat-network/provider/utils/bloom.js.map +1 -0
- package/internal/hardhat-network/provider/utils/convertToRethnet.d.ts +29 -0
- package/internal/hardhat-network/provider/utils/convertToRethnet.d.ts.map +1 -0
- package/internal/hardhat-network/provider/utils/convertToRethnet.js +214 -0
- package/internal/hardhat-network/provider/utils/convertToRethnet.js.map +1 -0
- package/internal/hardhat-network/provider/vm/block-builder.d.ts +30 -0
- package/internal/hardhat-network/provider/vm/block-builder.d.ts.map +1 -0
- package/internal/hardhat-network/provider/vm/block-builder.js +147 -0
- package/internal/hardhat-network/provider/vm/block-builder.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 +120 -0
- package/internal/hardhat-network/provider/vm/dual.js.map +1 -0
- package/internal/hardhat-network/provider/vm/ethereumjs.d.ts +55 -0
- package/internal/hardhat-network/provider/vm/ethereumjs.d.ts.map +1 -0
- package/internal/hardhat-network/provider/vm/ethereumjs.js +272 -0
- package/internal/hardhat-network/provider/vm/ethereumjs.js.map +1 -0
- package/internal/hardhat-network/provider/vm/rethnet.d.ts +111 -0
- package/internal/hardhat-network/provider/vm/rethnet.d.ts.map +1 -0
- package/internal/hardhat-network/provider/vm/rethnet.js +171 -0
- package/internal/hardhat-network/provider/vm/rethnet.js.map +1 -0
- package/internal/hardhat-network/provider/vm/vm-adapter.d.ts +36 -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/lib/hardhat-lib.d.ts.map +1 -1
- package/internal/lib/hardhat-lib.js +4 -1
- package/internal/lib/hardhat-lib.js.map +1 -1
- package/package.json +1 -1
- package/register.js +4 -1
- package/register.js.map +1 -1
- package/src/internal/artifacts/caching.ts +239 -0
- package/src/internal/artifacts/index.ts +296 -0
- package/src/internal/artifacts/mutable.ts +330 -0
- package/src/internal/artifacts/readonly.ts +438 -0
- package/src/internal/cli/cli.ts +6 -1
- package/src/internal/core/config/config-env.ts +13 -1
- package/src/internal/core/config/extenders.ts +15 -6
- package/src/internal/core/errors-list.ts +9 -0
- package/src/internal/core/runtime-environment.ts +3 -1
- package/src/internal/lib/hardhat-lib.ts +6 -1
- package/src/register.ts +6 -1
- package/src/types/artifacts.ts +104 -3
- package/src/types/runtime.ts +7 -1
- package/types/artifacts.d.ts +90 -3
- package/types/artifacts.d.ts.map +1 -1
- package/types/runtime.d.ts +6 -1
- package/types/runtime.d.ts.map +1 -1
- package/src/internal/artifacts.ts +0 -918
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Artifact, ArtifactsSource, BuildInfo, CompilerInput, CompilerOutput } from "../../types";
|
|
2
|
+
import { MutableSource } from "./mutable";
|
|
3
|
+
export declare class CachingSource extends MutableSource implements ArtifactsSource {
|
|
4
|
+
private _cache?;
|
|
5
|
+
constructor(artifactsPath: string);
|
|
6
|
+
readArtifact(name: string): Promise<Artifact | undefined>;
|
|
7
|
+
readArtifactSync(name: string): Artifact | undefined;
|
|
8
|
+
getBuildInfo(fullyQualifiedName: string): Promise<BuildInfo | undefined>;
|
|
9
|
+
getArtifactPaths(): Promise<string[]>;
|
|
10
|
+
getBuildInfoPaths(): Promise<string[]>;
|
|
11
|
+
getDebugFilePaths(): Promise<string[]>;
|
|
12
|
+
saveArtifactAndDebugFile(artifact: Artifact, pathToBuildInfo?: string): Promise<void>;
|
|
13
|
+
saveBuildInfo(solcVersion: string, solcLongVersion: string, input: CompilerInput, output: CompilerOutput): Promise<string>;
|
|
14
|
+
/**
|
|
15
|
+
* Remove all artifacts that don't correspond to the current solidity files
|
|
16
|
+
*/
|
|
17
|
+
removeObsoleteArtifacts(): Promise<void>;
|
|
18
|
+
clearCache(): void;
|
|
19
|
+
disableCache(): void;
|
|
20
|
+
protected _getArtifactPath(name: string): Promise<string | undefined>;
|
|
21
|
+
protected _getArtifactPathsSync(): string[];
|
|
22
|
+
/**
|
|
23
|
+
* Sync version of _getArtifactPath
|
|
24
|
+
*/
|
|
25
|
+
protected _getArtifactPathSync(name: string): string | undefined;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=caching.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"caching.d.ts","sourceRoot":"","sources":["../../src/internal/artifacts/caching.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,eAAe,EACf,SAAS,EACT,aAAa,EACb,cAAc,EACf,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAW1C,qBAAa,aAAc,SAAQ,aAAc,YAAW,eAAe;IAEzE,OAAO,CAAC,MAAM,CAAC,CAIb;gBAEU,aAAa,EAAE,MAAM;IAIpB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAgB/D,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAgB9C,YAAY,CACvB,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAoBpB,gBAAgB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAerC,iBAAiB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAetC,iBAAiB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAetC,wBAAwB,CACnC,QAAQ,EAAE,QAAQ,EAClB,eAAe,CAAC,EAAE,MAAM;IASb,aAAa,CACxB,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,MAAM,EACvB,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,MAAM,CAAC;IAalB;;OAEG;IACU,uBAAuB;IAY7B,UAAU;IAaV,YAAY;cAIH,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAe3E,SAAS,CAAC,qBAAqB,IAAI,MAAM,EAAE;IAe3C;;OAEG;IACH,SAAS,CAAC,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CAcjE"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CachingSource = void 0;
|
|
4
|
+
const mutable_1 = require("./mutable");
|
|
5
|
+
class CachingSource extends mutable_1.MutableSource {
|
|
6
|
+
constructor(artifactsPath) {
|
|
7
|
+
super(artifactsPath);
|
|
8
|
+
// Undefined means that the cache is disabled.
|
|
9
|
+
this._cache = {
|
|
10
|
+
artifactNameToArtifactPathCache: new Map(),
|
|
11
|
+
artifactFQNToBuildInfoPathCache: new Map(),
|
|
12
|
+
artifactNameToArtifact: new Map(),
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
async readArtifact(name) {
|
|
16
|
+
const cached = this._cache?.artifactNameToArtifact.get(name);
|
|
17
|
+
if (cached !== undefined) {
|
|
18
|
+
return cached;
|
|
19
|
+
}
|
|
20
|
+
const artifact = await super.readArtifact(name);
|
|
21
|
+
if (artifact === undefined) {
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
this._cache?.artifactNameToArtifact.set(name, artifact);
|
|
25
|
+
return artifact;
|
|
26
|
+
}
|
|
27
|
+
readArtifactSync(name) {
|
|
28
|
+
const cached = this._cache?.artifactNameToArtifact.get(name);
|
|
29
|
+
if (cached !== undefined) {
|
|
30
|
+
return cached;
|
|
31
|
+
}
|
|
32
|
+
const artifact = super.readArtifactSync(name);
|
|
33
|
+
if (artifact === undefined) {
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
this._cache?.artifactNameToArtifact.set(name, artifact);
|
|
37
|
+
return artifact;
|
|
38
|
+
}
|
|
39
|
+
async getBuildInfo(fullyQualifiedName) {
|
|
40
|
+
let buildInfoPath = this._cache?.artifactFQNToBuildInfoPathCache.get(fullyQualifiedName);
|
|
41
|
+
if (buildInfoPath === undefined) {
|
|
42
|
+
buildInfoPath = await super._getBuildInfoPath(fullyQualifiedName);
|
|
43
|
+
if (buildInfoPath === undefined) {
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
46
|
+
this._cache?.artifactFQNToBuildInfoPathCache.set(fullyQualifiedName, buildInfoPath);
|
|
47
|
+
}
|
|
48
|
+
return super._getBuildInfoByPath(buildInfoPath);
|
|
49
|
+
}
|
|
50
|
+
async getArtifactPaths() {
|
|
51
|
+
const cached = this._cache?.artifactPaths;
|
|
52
|
+
if (cached !== undefined) {
|
|
53
|
+
return cached;
|
|
54
|
+
}
|
|
55
|
+
const artifactPaths = await super.getArtifactPaths();
|
|
56
|
+
if (this._cache !== undefined) {
|
|
57
|
+
this._cache.artifactPaths = artifactPaths;
|
|
58
|
+
}
|
|
59
|
+
return artifactPaths;
|
|
60
|
+
}
|
|
61
|
+
async getBuildInfoPaths() {
|
|
62
|
+
const cached = this._cache?.buildInfoPaths;
|
|
63
|
+
if (cached !== undefined) {
|
|
64
|
+
return cached;
|
|
65
|
+
}
|
|
66
|
+
const buildInfoPaths = await super.getBuildInfoPaths();
|
|
67
|
+
if (this._cache !== undefined) {
|
|
68
|
+
this._cache.buildInfoPaths = buildInfoPaths;
|
|
69
|
+
}
|
|
70
|
+
return buildInfoPaths;
|
|
71
|
+
}
|
|
72
|
+
async getDebugFilePaths() {
|
|
73
|
+
const cached = this._cache?.debugFilePaths;
|
|
74
|
+
if (cached !== undefined) {
|
|
75
|
+
return cached;
|
|
76
|
+
}
|
|
77
|
+
const debugFilePaths = await super.getDebugFilePaths();
|
|
78
|
+
if (this._cache !== undefined) {
|
|
79
|
+
this._cache.debugFilePaths = debugFilePaths;
|
|
80
|
+
}
|
|
81
|
+
return debugFilePaths;
|
|
82
|
+
}
|
|
83
|
+
async saveArtifactAndDebugFile(artifact, pathToBuildInfo) {
|
|
84
|
+
try {
|
|
85
|
+
await super.saveArtifactAndDebugFile(artifact, pathToBuildInfo);
|
|
86
|
+
}
|
|
87
|
+
finally {
|
|
88
|
+
this.clearCache();
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
async saveBuildInfo(solcVersion, solcLongVersion, input, output) {
|
|
92
|
+
try {
|
|
93
|
+
return await super.saveBuildInfo(solcVersion, solcLongVersion, input, output);
|
|
94
|
+
}
|
|
95
|
+
finally {
|
|
96
|
+
this.clearCache();
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Remove all artifacts that don't correspond to the current solidity files
|
|
101
|
+
*/
|
|
102
|
+
async removeObsoleteArtifacts() {
|
|
103
|
+
// We clear the cache here, as we want to be sure this runs correctly
|
|
104
|
+
this.clearCache();
|
|
105
|
+
try {
|
|
106
|
+
await super.removeObsoleteArtifacts();
|
|
107
|
+
}
|
|
108
|
+
finally {
|
|
109
|
+
// We clear the cache here, as this may have non-existent paths now
|
|
110
|
+
this.clearCache();
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
clearCache() {
|
|
114
|
+
// Avoid accidentally re-enabling the cache
|
|
115
|
+
if (this._cache === undefined) {
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
this._cache = {
|
|
119
|
+
artifactFQNToBuildInfoPathCache: new Map(),
|
|
120
|
+
artifactNameToArtifactPathCache: new Map(),
|
|
121
|
+
artifactNameToArtifact: new Map(),
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
disableCache() {
|
|
125
|
+
this._cache = undefined;
|
|
126
|
+
}
|
|
127
|
+
async _getArtifactPath(name) {
|
|
128
|
+
const cached = this._cache?.artifactNameToArtifactPathCache.get(name);
|
|
129
|
+
if (cached !== undefined) {
|
|
130
|
+
return cached;
|
|
131
|
+
}
|
|
132
|
+
const result = await super._getArtifactPath(name);
|
|
133
|
+
if (result === undefined) {
|
|
134
|
+
return undefined;
|
|
135
|
+
}
|
|
136
|
+
this._cache?.artifactNameToArtifactPathCache.set(name, result);
|
|
137
|
+
return result;
|
|
138
|
+
}
|
|
139
|
+
_getArtifactPathsSync() {
|
|
140
|
+
const cached = this._cache?.artifactPaths;
|
|
141
|
+
if (cached !== undefined) {
|
|
142
|
+
return cached;
|
|
143
|
+
}
|
|
144
|
+
const result = super._getArtifactPathsSync();
|
|
145
|
+
if (this._cache !== undefined) {
|
|
146
|
+
this._cache.artifactPaths = result;
|
|
147
|
+
}
|
|
148
|
+
return result;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Sync version of _getArtifactPath
|
|
152
|
+
*/
|
|
153
|
+
_getArtifactPathSync(name) {
|
|
154
|
+
const cached = this._cache?.artifactNameToArtifactPathCache.get(name);
|
|
155
|
+
if (cached !== undefined) {
|
|
156
|
+
return cached;
|
|
157
|
+
}
|
|
158
|
+
const result = super._getArtifactPathSync(name);
|
|
159
|
+
if (result === undefined) {
|
|
160
|
+
return undefined;
|
|
161
|
+
}
|
|
162
|
+
this._cache?.artifactNameToArtifactPathCache.set(name, result);
|
|
163
|
+
return result;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
exports.CachingSource = CachingSource;
|
|
167
|
+
//# sourceMappingURL=caching.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"caching.js","sourceRoot":"","sources":["../../src/internal/artifacts/caching.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Artifact, Artifacts as IArtifacts, ArtifactsSource, BuildInfo, CompilerInput, CompilerOutput } from "../../types";
|
|
2
|
+
export declare class Artifacts implements IArtifacts {
|
|
3
|
+
private readonly _artifactsPath;
|
|
4
|
+
private readonly _extensionSources;
|
|
5
|
+
private readonly _hardhatSource;
|
|
6
|
+
constructor(_artifactsPath: string, _extensionSources?: ArtifactsSource[]);
|
|
7
|
+
readArtifact(contractNameOrFullyQualifiedName: string): Promise<Artifact>;
|
|
8
|
+
readArtifactSync(contractNameOrFullyQualifiedName: string): Artifact;
|
|
9
|
+
artifactExists(contractNameOrFullyQualifiedName: string): Promise<boolean>;
|
|
10
|
+
getAllFullyQualifiedNames(): Promise<string[]>;
|
|
11
|
+
getBuildInfo(fullyQualifiedName: string): Promise<BuildInfo | undefined>;
|
|
12
|
+
getArtifactPaths(): Promise<string[]>;
|
|
13
|
+
getDebugFilePaths(): Promise<string[]>;
|
|
14
|
+
getBuildInfoPaths(): Promise<string[]>;
|
|
15
|
+
clearCache(): void;
|
|
16
|
+
disableCache(): void;
|
|
17
|
+
saveArtifactAndDebugFile(artifact: Artifact, pathToBuildInfo?: string): Promise<void>;
|
|
18
|
+
saveBuildInfo(solcVersion: string, solcLongVersion: string, input: CompilerInput, output: CompilerOutput): Promise<string>;
|
|
19
|
+
formArtifactPathFromFullyQualifiedName(fullyQualifiedName: string): string;
|
|
20
|
+
addValidArtifacts(validArtifacts: Array<{
|
|
21
|
+
sourceName: string;
|
|
22
|
+
artifacts: string[];
|
|
23
|
+
}>): void;
|
|
24
|
+
removeObsoleteArtifacts(): Promise<void>;
|
|
25
|
+
private _throwNotFound;
|
|
26
|
+
private _formatSuggestions;
|
|
27
|
+
/**
|
|
28
|
+
* DO NOT DELETE OR CHANGE
|
|
29
|
+
*
|
|
30
|
+
* use this.formArtifactPathFromFullyQualifiedName instead
|
|
31
|
+
* @deprecated until typechain migrates to public version
|
|
32
|
+
* @see https://github.com/dethcrypto/TypeChain/issues/544
|
|
33
|
+
*/
|
|
34
|
+
private _getArtifactPathFromFullyQualifiedName;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Retrieves an artifact for the given `contractName` from the compilation output.
|
|
38
|
+
*
|
|
39
|
+
* @param sourceName The contract's source name.
|
|
40
|
+
* @param contractName the contract's name.
|
|
41
|
+
* @param contractOutput the contract's compilation output as emitted by `solc`.
|
|
42
|
+
*/
|
|
43
|
+
export declare function getArtifactFromContractOutput(sourceName: string, contractName: string, contractOutput: any): Artifact;
|
|
44
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/internal/artifacts/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,QAAQ,EACR,SAAS,IAAI,UAAU,EACvB,eAAe,EACf,SAAS,EACT,aAAa,EACb,cAAc,EACf,MAAM,aAAa,CAAC;AASrB,qBAAa,SAAU,YAAW,UAAU;IAIxC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAJpC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;gBAG5B,cAAc,EAAE,MAAM,EACtB,iBAAiB,GAAE,eAAe,EAAO;IAK/C,YAAY,CACvB,gCAAgC,EAAE,MAAM,GACvC,OAAO,CAAC,QAAQ,CAAC;IAsBb,gBAAgB,CAAC,gCAAgC,EAAE,MAAM,GAAG,QAAQ;IAqB9D,cAAc,CACzB,gCAAgC,EAAE,MAAM,GACvC,OAAO,CAAC,OAAO,CAAC;IASN,yBAAyB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAU9C,YAAY,CACvB,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAepB,gBAAgB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAUrC,iBAAiB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAUtC,iBAAiB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAU5C,UAAU,IAAI,IAAI;IAMlB,YAAY,IAAI,IAAI;IAMpB,wBAAwB,CAC7B,QAAQ,EAAE,QAAQ,EAClB,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,IAAI,CAAC;IAOT,aAAa,CAClB,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,MAAM,EACvB,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,MAAM,CAAC;IASX,sCAAsC,CAC3C,kBAAkB,EAAE,MAAM,GACzB,MAAM;IAMF,iBAAiB,CACtB,cAAc,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAKvD,uBAAuB;IAIpC,OAAO,CAAC,cAAc;IAkBtB,OAAO,CAAC,kBAAkB;IAgB1B;;;;;;OAMG;IACH,OAAO,CAAC,sCAAsC;CAQ/C;AAED;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,GAAG,GAClB,QAAQ,CAqCV"}
|
|
@@ -0,0 +1,187 @@
|
|
|
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.getArtifactFromContractOutput = exports.Artifacts = void 0;
|
|
26
|
+
const os = __importStar(require("os"));
|
|
27
|
+
const path_1 = __importDefault(require("path"));
|
|
28
|
+
const contract_names_1 = require("../../utils/contract-names");
|
|
29
|
+
const constants_1 = require("../constants");
|
|
30
|
+
const errors_1 = require("../core/errors");
|
|
31
|
+
const errors_list_1 = require("../core/errors-list");
|
|
32
|
+
const caching_1 = require("./caching");
|
|
33
|
+
class Artifacts {
|
|
34
|
+
constructor(_artifactsPath, _extensionSources = []) {
|
|
35
|
+
this._artifactsPath = _artifactsPath;
|
|
36
|
+
this._extensionSources = _extensionSources;
|
|
37
|
+
this._hardhatSource = new caching_1.CachingSource(this._artifactsPath);
|
|
38
|
+
}
|
|
39
|
+
async readArtifact(contractNameOrFullyQualifiedName) {
|
|
40
|
+
let artifact = await this._hardhatSource.readArtifact(contractNameOrFullyQualifiedName);
|
|
41
|
+
if (artifact === undefined) {
|
|
42
|
+
const artifacts = await Promise.all(this._extensionSources.map((source) => source.readArtifact(contractNameOrFullyQualifiedName)));
|
|
43
|
+
artifact = artifacts.find((_artifact) => _artifact !== undefined);
|
|
44
|
+
}
|
|
45
|
+
if (artifact === undefined) {
|
|
46
|
+
this._throwNotFound(contractNameOrFullyQualifiedName);
|
|
47
|
+
}
|
|
48
|
+
return artifact;
|
|
49
|
+
}
|
|
50
|
+
readArtifactSync(contractNameOrFullyQualifiedName) {
|
|
51
|
+
let artifact = this._hardhatSource.readArtifactSync(contractNameOrFullyQualifiedName);
|
|
52
|
+
if (artifact === undefined) {
|
|
53
|
+
for (const source of this._extensionSources) {
|
|
54
|
+
artifact = source.readArtifactSync(contractNameOrFullyQualifiedName);
|
|
55
|
+
if (artifact !== undefined) {
|
|
56
|
+
break;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
if (artifact === undefined) {
|
|
61
|
+
this._throwNotFound(contractNameOrFullyQualifiedName);
|
|
62
|
+
}
|
|
63
|
+
return artifact;
|
|
64
|
+
}
|
|
65
|
+
async artifactExists(contractNameOrFullyQualifiedName) {
|
|
66
|
+
const existencesPerSource = await Promise.all([this._hardhatSource, ...this._extensionSources].map((source) => source.artifactExists(contractNameOrFullyQualifiedName)));
|
|
67
|
+
return existencesPerSource.includes(true);
|
|
68
|
+
}
|
|
69
|
+
async getAllFullyQualifiedNames() {
|
|
70
|
+
return (await Promise.all([this._hardhatSource, ...this._extensionSources].map((s) => s.getAllFullyQualifiedNames()))).flat();
|
|
71
|
+
}
|
|
72
|
+
async getBuildInfo(fullyQualifiedName) {
|
|
73
|
+
let buildInfo = await this._hardhatSource.getBuildInfo(fullyQualifiedName);
|
|
74
|
+
if (buildInfo === undefined) {
|
|
75
|
+
const buildInfos = await Promise.all(this._extensionSources.map((source) => source.getBuildInfo(fullyQualifiedName)));
|
|
76
|
+
buildInfo = buildInfos.find((info) => info !== undefined);
|
|
77
|
+
}
|
|
78
|
+
return buildInfo;
|
|
79
|
+
}
|
|
80
|
+
async getArtifactPaths() {
|
|
81
|
+
return (await Promise.all([this._hardhatSource, ...this._extensionSources].map((s) => s.getArtifactPaths()))).flat();
|
|
82
|
+
}
|
|
83
|
+
async getDebugFilePaths() {
|
|
84
|
+
return (await Promise.all([this._hardhatSource, ...this._extensionSources].map((s) => s.getDebugFilePaths()))).flat();
|
|
85
|
+
}
|
|
86
|
+
async getBuildInfoPaths() {
|
|
87
|
+
return (await Promise.all([this._hardhatSource, ...this._extensionSources].map((s) => s.getBuildInfoPaths()))).flat();
|
|
88
|
+
}
|
|
89
|
+
clearCache() {
|
|
90
|
+
for (const source of [this._hardhatSource, ...this._extensionSources]) {
|
|
91
|
+
source.clearCache();
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
disableCache() {
|
|
95
|
+
for (const source of [this._hardhatSource, ...this._extensionSources]) {
|
|
96
|
+
source.disableCache();
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
saveArtifactAndDebugFile(artifact, pathToBuildInfo) {
|
|
100
|
+
return this._hardhatSource.saveArtifactAndDebugFile(artifact, pathToBuildInfo);
|
|
101
|
+
}
|
|
102
|
+
saveBuildInfo(solcVersion, solcLongVersion, input, output) {
|
|
103
|
+
return this._hardhatSource.saveBuildInfo(solcVersion, solcLongVersion, input, output);
|
|
104
|
+
}
|
|
105
|
+
formArtifactPathFromFullyQualifiedName(fullyQualifiedName) {
|
|
106
|
+
return this._hardhatSource.formArtifactPathFromFullyQualifiedName(fullyQualifiedName);
|
|
107
|
+
}
|
|
108
|
+
addValidArtifacts(validArtifacts) {
|
|
109
|
+
this._hardhatSource.addValidArtifacts(validArtifacts);
|
|
110
|
+
}
|
|
111
|
+
async removeObsoleteArtifacts() {
|
|
112
|
+
return this._hardhatSource.removeObsoleteArtifacts();
|
|
113
|
+
}
|
|
114
|
+
_throwNotFound(contractNameOrFullyQualifiedName) {
|
|
115
|
+
const suggestions = this._hardhatSource.getSuggestions(contractNameOrFullyQualifiedName);
|
|
116
|
+
const uniqueSuggestions = [...new Set(suggestions)].sort();
|
|
117
|
+
const suggestion = this._formatSuggestions(uniqueSuggestions, contractNameOrFullyQualifiedName);
|
|
118
|
+
throw new errors_1.HardhatError(errors_list_1.ERRORS.ARTIFACTS.NOT_FOUND, {
|
|
119
|
+
contractName: contractNameOrFullyQualifiedName,
|
|
120
|
+
suggestion,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
_formatSuggestions(names, contractName) {
|
|
124
|
+
switch (names.length) {
|
|
125
|
+
case 0:
|
|
126
|
+
return "";
|
|
127
|
+
case 1:
|
|
128
|
+
return `Did you mean "${names[0]}"?`;
|
|
129
|
+
default:
|
|
130
|
+
return `We found some that were similar:
|
|
131
|
+
|
|
132
|
+
${names.map((n) => ` * ${n}`).join(os.EOL)}
|
|
133
|
+
|
|
134
|
+
Please replace "${contractName}" for the correct contract name wherever you are trying to read its artifact.
|
|
135
|
+
`;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* DO NOT DELETE OR CHANGE
|
|
140
|
+
*
|
|
141
|
+
* use this.formArtifactPathFromFullyQualifiedName instead
|
|
142
|
+
* @deprecated until typechain migrates to public version
|
|
143
|
+
* @see https://github.com/dethcrypto/TypeChain/issues/544
|
|
144
|
+
*/
|
|
145
|
+
_getArtifactPathFromFullyQualifiedName(fullyQualifiedName) {
|
|
146
|
+
const { sourceName, contractName } = (0, contract_names_1.parseFullyQualifiedName)(fullyQualifiedName);
|
|
147
|
+
return path_1.default.join(this._artifactsPath, sourceName, `${contractName}.json`);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
exports.Artifacts = Artifacts;
|
|
151
|
+
/**
|
|
152
|
+
* Retrieves an artifact for the given `contractName` from the compilation output.
|
|
153
|
+
*
|
|
154
|
+
* @param sourceName The contract's source name.
|
|
155
|
+
* @param contractName the contract's name.
|
|
156
|
+
* @param contractOutput the contract's compilation output as emitted by `solc`.
|
|
157
|
+
*/
|
|
158
|
+
function getArtifactFromContractOutput(sourceName, contractName, contractOutput) {
|
|
159
|
+
const evmBytecode = contractOutput.evm && contractOutput.evm.bytecode;
|
|
160
|
+
let bytecode = evmBytecode && evmBytecode.object ? evmBytecode.object : "";
|
|
161
|
+
if (bytecode.slice(0, 2).toLowerCase() !== "0x") {
|
|
162
|
+
bytecode = `0x${bytecode}`;
|
|
163
|
+
}
|
|
164
|
+
const evmDeployedBytecode = contractOutput.evm && contractOutput.evm.deployedBytecode;
|
|
165
|
+
let deployedBytecode = evmDeployedBytecode && evmDeployedBytecode.object
|
|
166
|
+
? evmDeployedBytecode.object
|
|
167
|
+
: "";
|
|
168
|
+
if (deployedBytecode.slice(0, 2).toLowerCase() !== "0x") {
|
|
169
|
+
deployedBytecode = `0x${deployedBytecode}`;
|
|
170
|
+
}
|
|
171
|
+
const linkReferences = evmBytecode && evmBytecode.linkReferences ? evmBytecode.linkReferences : {};
|
|
172
|
+
const deployedLinkReferences = evmDeployedBytecode && evmDeployedBytecode.linkReferences
|
|
173
|
+
? evmDeployedBytecode.linkReferences
|
|
174
|
+
: {};
|
|
175
|
+
return {
|
|
176
|
+
_format: constants_1.ARTIFACT_FORMAT_VERSION,
|
|
177
|
+
contractName,
|
|
178
|
+
sourceName,
|
|
179
|
+
abi: contractOutput.abi,
|
|
180
|
+
bytecode,
|
|
181
|
+
deployedBytecode,
|
|
182
|
+
linkReferences,
|
|
183
|
+
deployedLinkReferences,
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
exports.getArtifactFromContractOutput = getArtifactFromContractOutput;
|
|
187
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/internal/artifacts/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,gDAAwB;AAUxB,+DAAqE;AAErE,4CAAuD;AACvD,2CAA8C;AAC9C,qDAA6C;AAE7C,uCAA0C;AAE1C,MAAa,SAAS;IAGpB,YACmB,cAAsB,EACtB,oBAAuC,EAAE;QADzC,mBAAc,GAAd,cAAc,CAAQ;QACtB,sBAAiB,GAAjB,iBAAiB,CAAwB;QAE1D,IAAI,CAAC,cAAc,GAAG,IAAI,uBAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC/D,CAAC;IAEM,KAAK,CAAC,YAAY,CACvB,gCAAwC;QAExC,IAAI,QAAQ,GAAyB,MAAM,IAAI,CAAC,cAAc,CAAC,YAAY,CACzE,gCAAgC,CACjC,CAAC;QAEF,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC1B,MAAM,SAAS,GAAgC,MAAM,OAAO,CAAC,GAAG,CAC9D,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACpC,MAAM,CAAC,YAAY,CAAC,gCAAgC,CAAC,CACtD,CACF,CAAC;YAEF,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;SACnE;QAED,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC1B,IAAI,CAAC,cAAc,CAAC,gCAAgC,CAAC,CAAC;SACvD;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,gBAAgB,CAAC,gCAAwC;QAC9D,IAAI,QAAQ,GAAyB,IAAI,CAAC,cAAc,CAAC,gBAAgB,CACvE,gCAAgC,CACjC,CAAC;QAEF,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC1B,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBAC3C,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CAAC,gCAAgC,CAAC,CAAC;gBACrE,IAAI,QAAQ,KAAK,SAAS,EAAE;oBAC1B,MAAM;iBACP;aACF;SACF;QAED,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC1B,IAAI,CAAC,cAAc,CAAC,gCAAgC,CAAC,CAAC;SACvD;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,KAAK,CAAC,cAAc,CACzB,gCAAwC;QAExC,MAAM,mBAAmB,GAAG,MAAM,OAAO,CAAC,GAAG,CAC3C,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAC9D,MAAM,CAAC,cAAc,CAAC,gCAAgC,CAAC,CACxD,CACF,CAAC;QACF,OAAO,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAEM,KAAK,CAAC,yBAAyB;QACpC,OAAO,CACL,MAAM,OAAO,CAAC,GAAG,CACf,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACzD,CAAC,CAAC,yBAAyB,EAAE,CAC9B,CACF,CACF,CAAC,IAAI,EAAE,CAAC;IACX,CAAC;IAEM,KAAK,CAAC,YAAY,CACvB,kBAA0B;QAE1B,IAAI,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;QAE3E,IAAI,SAAS,KAAK,SAAS,EAAE;YAC3B,MAAM,UAAU,GAAiC,MAAM,OAAO,CAAC,GAAG,CAChE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACpC,MAAM,CAAC,YAAY,CAAC,kBAAkB,CAAC,CACxC,CACF,CAAC;YACF,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;SAC3D;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEM,KAAK,CAAC,gBAAgB;QAC3B,OAAO,CACL,MAAM,OAAO,CAAC,GAAG,CACf,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACzD,CAAC,CAAC,gBAAgB,EAAE,CACrB,CACF,CACF,CAAC,IAAI,EAAE,CAAC;IACX,CAAC;IAEM,KAAK,CAAC,iBAAiB;QAC5B,OAAO,CACL,MAAM,OAAO,CAAC,GAAG,CACf,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACzD,CAAC,CAAC,iBAAiB,EAAE,CACtB,CACF,CACF,CAAC,IAAI,EAAE,CAAC;IACX,CAAC;IAEM,KAAK,CAAC,iBAAiB;QAC5B,OAAO,CACL,MAAM,OAAO,CAAC,GAAG,CACf,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACzD,CAAC,CAAC,iBAAiB,EAAE,CACtB,CACF,CACF,CAAC,IAAI,EAAE,CAAC;IACX,CAAC;IAEM,UAAU;QACf,KAAK,MAAM,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE;YACrE,MAAM,CAAC,UAAU,EAAE,CAAC;SACrB;IACH,CAAC;IAEM,YAAY;QACjB,KAAK,MAAM,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE;YACrE,MAAM,CAAC,YAAY,EAAE,CAAC;SACvB;IACH,CAAC;IAEM,wBAAwB,CAC7B,QAAkB,EAClB,eAAwB;QAExB,OAAO,IAAI,CAAC,cAAc,CAAC,wBAAwB,CACjD,QAAQ,EACR,eAAe,CAChB,CAAC;IACJ,CAAC;IAEM,aAAa,CAClB,WAAmB,EACnB,eAAuB,EACvB,KAAoB,EACpB,MAAsB;QAEtB,OAAO,IAAI,CAAC,cAAc,CAAC,aAAa,CACtC,WAAW,EACX,eAAe,EACf,KAAK,EACL,MAAM,CACP,CAAC;IACJ,CAAC;IAEM,sCAAsC,CAC3C,kBAA0B;QAE1B,OAAO,IAAI,CAAC,cAAc,CAAC,sCAAsC,CAC/D,kBAAkB,CACnB,CAAC;IACJ,CAAC;IAEM,iBAAiB,CACtB,cAAkE;QAElE,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;IACxD,CAAC;IAEM,KAAK,CAAC,uBAAuB;QAClC,OAAO,IAAI,CAAC,cAAc,CAAC,uBAAuB,EAAE,CAAC;IACvD,CAAC;IAEO,cAAc,CAAC,gCAAwC;QAC7D,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CACpD,gCAAgC,CACjC,CAAC;QAEF,MAAM,iBAAiB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAE3D,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CACxC,iBAAiB,EACjB,gCAAgC,CACjC,CAAC;QAEF,MAAM,IAAI,qBAAY,CAAC,oBAAM,CAAC,SAAS,CAAC,SAAS,EAAE;YACjD,YAAY,EAAE,gCAAgC;YAC9C,UAAU;SACX,CAAC,CAAC;IACL,CAAC;IAEO,kBAAkB,CAAC,KAAe,EAAE,YAAoB;QAC9D,QAAQ,KAAK,CAAC,MAAM,EAAE;YACpB,KAAK,CAAC;gBACJ,OAAO,EAAE,CAAC;YACZ,KAAK,CAAC;gBACJ,OAAO,iBAAiB,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;YACvC;gBACE,OAAO;;EAEb,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC;;kBAEzB,YAAY;CAC7B,CAAC;SACG;IACH,CAAC;IAED;;;;;;OAMG;IACK,sCAAsC,CAC5C,kBAA0B;QAE1B,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAChC,IAAA,wCAAuB,EAAC,kBAAkB,CAAC,CAAC;QAE9C,OAAO,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,UAAU,EAAE,GAAG,YAAY,OAAO,CAAC,CAAC;IAC5E,CAAC;CACF;AAlOD,8BAkOC;AAED;;;;;;GAMG;AACH,SAAgB,6BAA6B,CAC3C,UAAkB,EAClB,YAAoB,EACpB,cAAmB;IAEnB,MAAM,WAAW,GAAG,cAAc,CAAC,GAAG,IAAI,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC;IACtE,IAAI,QAAQ,GACV,WAAW,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAE9D,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE;QAC/C,QAAQ,GAAG,KAAK,QAAQ,EAAE,CAAC;KAC5B;IAED,MAAM,mBAAmB,GACvB,cAAc,CAAC,GAAG,IAAI,cAAc,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAC5D,IAAI,gBAAgB,GAClB,mBAAmB,IAAI,mBAAmB,CAAC,MAAM;QAC/C,CAAC,CAAC,mBAAmB,CAAC,MAAM;QAC5B,CAAC,CAAC,EAAE,CAAC;IAET,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE;QACvD,gBAAgB,GAAG,KAAK,gBAAgB,EAAE,CAAC;KAC5C;IAED,MAAM,cAAc,GAClB,WAAW,IAAI,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9E,MAAM,sBAAsB,GAC1B,mBAAmB,IAAI,mBAAmB,CAAC,cAAc;QACvD,CAAC,CAAC,mBAAmB,CAAC,cAAc;QACpC,CAAC,CAAC,EAAE,CAAC;IAET,OAAO;QACL,OAAO,EAAE,mCAAuB;QAChC,YAAY;QACZ,UAAU;QACV,GAAG,EAAE,cAAc,CAAC,GAAG;QACvB,QAAQ;QACR,gBAAgB;QAChB,cAAc;QACd,sBAAsB;KACvB,CAAC;AACJ,CAAC;AAzCD,sEAyCC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Artifact, CompilerInput, CompilerOutput } from "../../types";
|
|
2
|
+
import { ReadOnlySource } from "./readonly";
|
|
3
|
+
export declare class MutableSource extends ReadOnlySource {
|
|
4
|
+
private _validArtifacts;
|
|
5
|
+
constructor(artifactsPath: string);
|
|
6
|
+
addValidArtifacts(validArtifacts: Array<{
|
|
7
|
+
sourceName: string;
|
|
8
|
+
artifacts: string[];
|
|
9
|
+
}>): void;
|
|
10
|
+
/**
|
|
11
|
+
* Remove all artifacts that don't correspond to the current solidity files
|
|
12
|
+
*/
|
|
13
|
+
removeObsoleteArtifacts(): Promise<void>;
|
|
14
|
+
saveArtifactAndDebugFile(artifact: Artifact, pathToBuildInfo?: string): Promise<void>;
|
|
15
|
+
saveBuildInfo(solcVersion: string, solcLongVersion: string, input: CompilerInput, output: CompilerOutput): Promise<string>;
|
|
16
|
+
private static _createBuildInfo;
|
|
17
|
+
private _createDebugFile;
|
|
18
|
+
private static _getBuildInfoName;
|
|
19
|
+
/**
|
|
20
|
+
* Remove the artifact file, its debug file and, if it exists, its build
|
|
21
|
+
* info file.
|
|
22
|
+
*/
|
|
23
|
+
private _removeArtifactFiles;
|
|
24
|
+
/**
|
|
25
|
+
* Remove all build infos that aren't used by any debug file
|
|
26
|
+
*/
|
|
27
|
+
private _removeObsoleteBuildInfos;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=mutable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mutable.d.ts","sourceRoot":"","sources":["../../src/internal/artifacts/mutable.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,QAAQ,EAER,aAAa,EACb,cAAc,EAEf,MAAM,aAAa,CAAC;AAMrB,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAI5C,qBAAa,aAAc,SAAQ,cAAc;IAC/C,OAAO,CAAC,eAAe,CAAqD;gBAEhE,aAAa,EAAE,MAAM;IAK1B,iBAAiB,CACtB,cAAc,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAKpE;;OAEG;IACU,uBAAuB;IAsCvB,wBAAwB,CACnC,QAAQ,EAAE,QAAQ,EAClB,eAAe,CAAC,EAAE,MAAM;IAiCb,aAAa,CACxB,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,MAAM,EACvB,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,MAAM,CAAC;IA2GlB,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAiB/B,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAiBhC;;;OAGG;YACW,oBAAoB;IAelC;;OAEG;YACW,yBAAyB;CAiCxC"}
|