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.
Files changed (86) hide show
  1. package/internal/artifacts/caching.d.ts +27 -0
  2. package/internal/artifacts/caching.d.ts.map +1 -0
  3. package/internal/artifacts/caching.js +167 -0
  4. package/internal/artifacts/caching.js.map +1 -0
  5. package/internal/artifacts/index.d.ts +44 -0
  6. package/internal/artifacts/index.d.ts.map +1 -0
  7. package/internal/artifacts/index.js +187 -0
  8. package/internal/artifacts/index.js.map +1 -0
  9. package/internal/artifacts/mutable.d.ts +29 -0
  10. package/internal/artifacts/mutable.d.ts.map +1 -0
  11. package/internal/artifacts/mutable.js +226 -0
  12. package/internal/artifacts/mutable.js.map +1 -0
  13. package/internal/artifacts/readonly.d.ts +88 -0
  14. package/internal/artifacts/readonly.d.ts.map +1 -0
  15. package/internal/artifacts/readonly.js +324 -0
  16. package/internal/artifacts/readonly.js.map +1 -0
  17. package/internal/cli/cli.js +5 -2
  18. package/internal/cli/cli.js.map +1 -1
  19. package/internal/core/config/config-env.d.ts +7 -1
  20. package/internal/core/config/config-env.d.ts.map +1 -1
  21. package/internal/core/config/config-env.js +13 -2
  22. package/internal/core/config/config-env.js.map +1 -1
  23. package/internal/core/config/extenders.d.ts +7 -4
  24. package/internal/core/config/extenders.d.ts.map +1 -1
  25. package/internal/core/config/extenders.js +12 -5
  26. package/internal/core/config/extenders.js.map +1 -1
  27. package/internal/core/errors-list.d.ts +7 -0
  28. package/internal/core/errors-list.d.ts.map +1 -1
  29. package/internal/core/errors-list.js +9 -0
  30. package/internal/core/errors-list.js.map +1 -1
  31. package/internal/core/runtime-environment.d.ts +2 -2
  32. package/internal/core/runtime-environment.d.ts.map +1 -1
  33. package/internal/core/runtime-environment.js +2 -2
  34. package/internal/core/runtime-environment.js.map +1 -1
  35. package/internal/hardhat-network/provider/utils/bloom.d.ts +28 -0
  36. package/internal/hardhat-network/provider/utils/bloom.d.ts.map +1 -0
  37. package/internal/hardhat-network/provider/utils/bloom.js +73 -0
  38. package/internal/hardhat-network/provider/utils/bloom.js.map +1 -0
  39. package/internal/hardhat-network/provider/utils/convertToRethnet.d.ts +29 -0
  40. package/internal/hardhat-network/provider/utils/convertToRethnet.d.ts.map +1 -0
  41. package/internal/hardhat-network/provider/utils/convertToRethnet.js +214 -0
  42. package/internal/hardhat-network/provider/utils/convertToRethnet.js.map +1 -0
  43. package/internal/hardhat-network/provider/vm/block-builder.d.ts +30 -0
  44. package/internal/hardhat-network/provider/vm/block-builder.d.ts.map +1 -0
  45. package/internal/hardhat-network/provider/vm/block-builder.js +147 -0
  46. package/internal/hardhat-network/provider/vm/block-builder.js.map +1 -0
  47. package/internal/hardhat-network/provider/vm/dual.d.ts +43 -0
  48. package/internal/hardhat-network/provider/vm/dual.d.ts.map +1 -0
  49. package/internal/hardhat-network/provider/vm/dual.js +120 -0
  50. package/internal/hardhat-network/provider/vm/dual.js.map +1 -0
  51. package/internal/hardhat-network/provider/vm/ethereumjs.d.ts +55 -0
  52. package/internal/hardhat-network/provider/vm/ethereumjs.d.ts.map +1 -0
  53. package/internal/hardhat-network/provider/vm/ethereumjs.js +272 -0
  54. package/internal/hardhat-network/provider/vm/ethereumjs.js.map +1 -0
  55. package/internal/hardhat-network/provider/vm/rethnet.d.ts +111 -0
  56. package/internal/hardhat-network/provider/vm/rethnet.d.ts.map +1 -0
  57. package/internal/hardhat-network/provider/vm/rethnet.js +171 -0
  58. package/internal/hardhat-network/provider/vm/rethnet.js.map +1 -0
  59. package/internal/hardhat-network/provider/vm/vm-adapter.d.ts +36 -0
  60. package/internal/hardhat-network/provider/vm/vm-adapter.d.ts.map +1 -0
  61. package/internal/hardhat-network/provider/vm/vm-adapter.js +3 -0
  62. package/internal/hardhat-network/provider/vm/vm-adapter.js.map +1 -0
  63. package/internal/lib/hardhat-lib.d.ts.map +1 -1
  64. package/internal/lib/hardhat-lib.js +4 -1
  65. package/internal/lib/hardhat-lib.js.map +1 -1
  66. package/package.json +1 -1
  67. package/register.js +4 -1
  68. package/register.js.map +1 -1
  69. package/src/internal/artifacts/caching.ts +239 -0
  70. package/src/internal/artifacts/index.ts +296 -0
  71. package/src/internal/artifacts/mutable.ts +330 -0
  72. package/src/internal/artifacts/readonly.ts +438 -0
  73. package/src/internal/cli/cli.ts +6 -1
  74. package/src/internal/core/config/config-env.ts +13 -1
  75. package/src/internal/core/config/extenders.ts +15 -6
  76. package/src/internal/core/errors-list.ts +9 -0
  77. package/src/internal/core/runtime-environment.ts +3 -1
  78. package/src/internal/lib/hardhat-lib.ts +6 -1
  79. package/src/register.ts +6 -1
  80. package/src/types/artifacts.ts +104 -3
  81. package/src/types/runtime.ts +7 -1
  82. package/types/artifacts.d.ts +90 -3
  83. package/types/artifacts.d.ts.map +1 -1
  84. package/types/runtime.d.ts +6 -1
  85. package/types/runtime.d.ts.map +1 -1
  86. 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":";;;AAQA,uCAA0C;AAW1C,MAAa,aAAc,SAAQ,uBAAa;IAQ9C,YAAY,aAAqB;QAC/B,KAAK,CAAC,aAAa,CAAC,CAAC;QARvB,8CAA8C;QACtC,WAAM,GAAW;YACvB,+BAA+B,EAAE,IAAI,GAAG,EAAE;YAC1C,+BAA+B,EAAE,IAAI,GAAG,EAAE;YAC1C,sBAAsB,EAAE,IAAI,GAAG,EAAE;SAClC,CAAC;IAIF,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,IAAY;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7D,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,OAAO,MAAM,CAAC;SACf;QAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC1B,OAAO,SAAS,CAAC;SAClB;QAED,IAAI,CAAC,MAAM,EAAE,sBAAsB,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAExD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,gBAAgB,CAAC,IAAY;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7D,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,OAAO,MAAM,CAAC;SACf;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC1B,OAAO,SAAS,CAAC;SAClB;QAED,IAAI,CAAC,MAAM,EAAE,sBAAsB,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAExD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,KAAK,CAAC,YAAY,CACvB,kBAA0B;QAE1B,IAAI,aAAa,GACf,IAAI,CAAC,MAAM,EAAE,+BAA+B,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAEvE,IAAI,aAAa,KAAK,SAAS,EAAE;YAC/B,aAAa,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;YAElE,IAAI,aAAa,KAAK,SAAS,EAAE;gBAC/B,OAAO,SAAS,CAAC;aAClB;YAED,IAAI,CAAC,MAAM,EAAE,+BAA+B,CAAC,GAAG,CAC9C,kBAAkB,EAClB,aAAa,CACd,CAAC;SACH;QAED,OAAO,KAAK,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;IAClD,CAAC;IAEM,KAAK,CAAC,gBAAgB;QAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC;QAC1C,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,OAAO,MAAM,CAAC;SACf;QAED,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAErD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;YAC7B,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,aAAa,CAAC;SAC3C;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;IAEM,KAAK,CAAC,iBAAiB;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC;QAC3C,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,OAAO,MAAM,CAAC;SACf;QAED,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAEvD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;YAC7B,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,cAAc,CAAC;SAC7C;QAED,OAAO,cAAc,CAAC;IACxB,CAAC;IAEM,KAAK,CAAC,iBAAiB;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC;QAC3C,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,OAAO,MAAM,CAAC;SACf;QAED,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAEvD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;YAC7B,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,cAAc,CAAC;SAC7C;QAED,OAAO,cAAc,CAAC;IACxB,CAAC;IAEM,KAAK,CAAC,wBAAwB,CACnC,QAAkB,EAClB,eAAwB;QAExB,IAAI;YACF,MAAM,KAAK,CAAC,wBAAwB,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;SACjE;gBAAS;YACR,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;IACH,CAAC;IAEM,KAAK,CAAC,aAAa,CACxB,WAAmB,EACnB,eAAuB,EACvB,KAAoB,EACpB,MAAsB;QAEtB,IAAI;YACF,OAAO,MAAM,KAAK,CAAC,aAAa,CAC9B,WAAW,EACX,eAAe,EACf,KAAK,EACL,MAAM,CACP,CAAC;SACH;gBAAS;YACR,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;IACH,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,uBAAuB;QAClC,qEAAqE;QACrE,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,IAAI;YACF,MAAM,KAAK,CAAC,uBAAuB,EAAE,CAAC;SACvC;gBAAS;YACR,mEAAmE;YACnE,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;IACH,CAAC;IAEM,UAAU;QACf,2CAA2C;QAC3C,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;YAC7B,OAAO;SACR;QAED,IAAI,CAAC,MAAM,GAAG;YACZ,+BAA+B,EAAE,IAAI,GAAG,EAAE;YAC1C,+BAA+B,EAAE,IAAI,GAAG,EAAE;YAC1C,sBAAsB,EAAE,IAAI,GAAG,EAAE;SAClC,CAAC;IACJ,CAAC;IAEM,YAAY;QACjB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;IAC1B,CAAC;IAES,KAAK,CAAC,gBAAgB,CAAC,IAAY;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,+BAA+B,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtE,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,OAAO,MAAM,CAAC;SACf;QAED,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,OAAO,SAAS,CAAC;SAClB;QAED,IAAI,CAAC,MAAM,EAAE,+BAA+B,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/D,OAAO,MAAM,CAAC;IAChB,CAAC;IAES,qBAAqB;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC;QAC1C,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,OAAO,MAAM,CAAC;SACf;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,qBAAqB,EAAE,CAAC;QAE7C,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;YAC7B,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC;SACpC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACO,oBAAoB,CAAC,IAAY;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,+BAA+B,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtE,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,OAAO,MAAM,CAAC;SACf;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,OAAO,SAAS,CAAC;SAClB;QAED,IAAI,CAAC,MAAM,EAAE,+BAA+B,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/D,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AA3ND,sCA2NC"}
@@ -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":"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"}
@@ -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"}