hardhat-deploy 2.0.0-next.27 → 2.0.0-next.29

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 (36) hide show
  1. package/dist/esm/config/default.d.ts.map +1 -1
  2. package/dist/esm/config/default.js +8 -5
  3. package/dist/esm/config/default.js.map +1 -1
  4. package/dist/esm/config/get-config.d.ts.map +1 -1
  5. package/dist/esm/config/get-config.js +5 -2
  6. package/dist/esm/config/get-config.js.map +1 -1
  7. package/dist/esm/config/validation.d.ts.map +1 -1
  8. package/dist/esm/config/validation.js +12 -7
  9. package/dist/esm/config/validation.js.map +1 -1
  10. package/dist/esm/generate-types.d.ts +2 -3
  11. package/dist/esm/generate-types.d.ts.map +1 -1
  12. package/dist/esm/generate-types.js +73 -74
  13. package/dist/esm/generate-types.js.map +1 -1
  14. package/dist/esm/hook-handlers/config.js +1 -1
  15. package/dist/esm/hook-handlers/config.js.map +1 -1
  16. package/dist/esm/hook-handlers/solidity.d.ts.map +1 -1
  17. package/dist/esm/hook-handlers/solidity.js +8 -3
  18. package/dist/esm/hook-handlers/solidity.js.map +1 -1
  19. package/dist/esm/type-extensions.d.ts +2 -2
  20. package/dist/esm/type-extensions.d.ts.map +1 -1
  21. package/dist/esm/types.d.ts +14 -10
  22. package/dist/esm/types.d.ts.map +1 -1
  23. package/dist/esm/utils/files.d.ts +9 -0
  24. package/dist/esm/utils/files.d.ts.map +1 -0
  25. package/dist/esm/utils/files.js +25 -0
  26. package/dist/esm/utils/files.js.map +1 -0
  27. package/package.json +6 -6
  28. package/src/config/default.ts +8 -5
  29. package/src/config/get-config.ts +5 -2
  30. package/src/config/validation.ts +12 -7
  31. package/src/generate-types.ts +86 -105
  32. package/src/hook-handlers/config.ts +1 -1
  33. package/src/hook-handlers/solidity.ts +10 -5
  34. package/src/type-extensions.ts +2 -2
  35. package/src/types.ts +16 -10
  36. package/src/utils/files.ts +37 -0
@@ -1 +1 @@
1
- {"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../../src/config/default.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,wBAAwB,EAAC,MAAM,aAAa,CAAC;AAE1D,eAAO,MAAM,cAAc,EAAE,wBAM5B,CAAC"}
1
+ {"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../../src/config/default.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,wBAAwB,EAAC,MAAM,aAAa,CAAC;AAE1D,eAAO,MAAM,cAAc,EAAE,wBAS5B,CAAC"}
@@ -1,8 +1,11 @@
1
1
  export const DEFAULT_CONFIG = {
2
- js: [],
3
- ts: ['./generated/artifacts.ts'],
4
- json: [],
5
- jsm: [],
6
- tsm: [],
2
+ // externalArtifacts: [],
3
+ destinations: {
4
+ js: [],
5
+ ts: ['./generated/artifacts.ts'],
6
+ json: [],
7
+ jsm: [],
8
+ tsm: [],
9
+ },
7
10
  };
8
11
  //# sourceMappingURL=default.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"default.js","sourceRoot":"","sources":["../../../src/config/default.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAA6B;IACvD,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,CAAC,0BAA0B,CAAC;IAChC,IAAI,EAAE,EAAE;IACR,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;CACP,CAAC"}
1
+ {"version":3,"file":"default.js","sourceRoot":"","sources":["../../../src/config/default.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAA6B;IACvD,yBAAyB;IACzB,YAAY,EAAE;QACb,EAAE,EAAE,EAAE;QACN,EAAE,EAAE,CAAC,0BAA0B,CAAC;QAChC,IAAI,EAAE,EAAE;QACR,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;KACP;CACD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"get-config.d.ts","sourceRoot":"","sources":["../../../src/config/get-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,wBAAwB,EAAE,4BAA4B,EAAC,MAAM,aAAa,CAAC;AAIxF,wBAAgB,SAAS,CAAC,UAAU,EAAE,4BAA4B,GAAG,SAAS,GAAG,wBAAwB,CAKxG"}
1
+ {"version":3,"file":"get-config.d.ts","sourceRoot":"","sources":["../../../src/config/get-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,wBAAwB,EAAE,4BAA4B,EAAC,MAAM,aAAa,CAAC;AAIxF,wBAAgB,SAAS,CAAC,UAAU,EAAE,4BAA4B,GAAG,SAAS,GAAG,wBAAwB,CAQxG"}
@@ -1,8 +1,11 @@
1
1
  import { DEFAULT_CONFIG } from './default.js';
2
2
  export function getConfig(userConfig) {
3
3
  return {
4
- ...DEFAULT_CONFIG,
5
- ...userConfig,
4
+ destinations: {
5
+ ...DEFAULT_CONFIG.destinations,
6
+ ...(userConfig?.destinations || {}),
7
+ },
8
+ // externalArtifacts: userConfig?.externalArtifacts || DEFAULT_CONFIG.externalArtifacts,
6
9
  };
7
10
  }
8
11
  //# sourceMappingURL=get-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-config.js","sourceRoot":"","sources":["../../../src/config/get-config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,cAAc,EAAC,MAAM,cAAc,CAAC;AAE5C,MAAM,UAAU,SAAS,CAAC,UAAoD;IAC7E,OAAO;QACN,GAAG,cAAc;QACjB,GAAG,UAAU;KACb,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"get-config.js","sourceRoot":"","sources":["../../../src/config/get-config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,cAAc,EAAC,MAAM,cAAc,CAAC;AAE5C,MAAM,UAAU,SAAS,CAAC,UAAoD;IAC7E,OAAO;QACN,YAAY,EAAE;YACb,GAAG,cAAc,CAAC,YAAY;YAC9B,GAAG,CAAC,UAAU,EAAE,YAAY,IAAI,EAAE,CAAC;SACnC;QACD,wFAAwF;KACxF,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/config/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,gCAAgC,EAAC,MAAM,oCAAoC,CAAC;AACzF,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,gBAAgB,CAAC;AAgBtD,wBAAsB,2BAA2B,CAChD,UAAU,EAAE,iBAAiB,GAC3B,OAAO,CAAC,gCAAgC,EAAE,CAAC,CAE7C"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/config/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,gCAAgC,EAAC,MAAM,oCAAoC,CAAC;AACzF,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,gBAAgB,CAAC;AAqBtD,wBAAsB,2BAA2B,CAChD,UAAU,EAAE,iBAAiB,GAC3B,OAAO,CAAC,gCAAgC,EAAE,CAAC,CAE7C"}
@@ -2,15 +2,20 @@ import { validateUserConfigZodType } from '@nomicfoundation/hardhat-zod-utils';
2
2
  import { z } from 'zod';
3
3
  const artifactGenerationUserConfigSchema = z
4
4
  .object({
5
- js: z.array(z.string()).optional(),
6
- ts: z.array(z.string()).optional(),
7
- json: z.array(z.string()).optional(),
8
- jsm: z.array(z.string()).optional(),
9
- tsm: z.array(z.string()).optional(),
10
- directories: z.array(z.string()).optional(),
5
+ // externalArtifacts: z.array(z.string()).optional(),
6
+ destinations: z
7
+ .object({
8
+ js: z.array(z.string()).optional(),
9
+ ts: z.array(z.string()).optional(),
10
+ json: z.array(z.string()).optional(),
11
+ jsm: z.array(z.string()).optional(),
12
+ tsm: z.array(z.string()).optional(),
13
+ directories: z.array(z.string()).optional(),
14
+ })
15
+ .optional(),
11
16
  })
12
17
  .optional();
13
18
  export async function validateTypechainUserConfig(userConfig) {
14
- return validateUserConfigZodType(userConfig.generateArtifacts, artifactGenerationUserConfigSchema);
19
+ return validateUserConfigZodType(userConfig.generateTypedArtifacts, artifactGenerationUserConfigSchema);
15
20
  }
16
21
  //# sourceMappingURL=validation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/config/validation.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,yBAAyB,EAAC,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,MAAM,kCAAkC,GAAG,CAAC;KAC1C,MAAM,CAAC;IACP,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAClC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAClC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACpC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACnC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACnC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC3C,CAAC;KACD,QAAQ,EAAE,CAAC;AAEb,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAChD,UAA6B;IAE7B,OAAO,yBAAyB,CAAC,UAAU,CAAC,iBAAiB,EAAE,kCAAkC,CAAC,CAAC;AACpG,CAAC"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/config/validation.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,yBAAyB,EAAC,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,MAAM,kCAAkC,GAAG,CAAC;KAC1C,MAAM,CAAC;IACP,qDAAqD;IACrD,YAAY,EAAE,CAAC;SACb,MAAM,CAAC;QACP,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QAClC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QAClC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QACpC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QACnC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QACnC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;KAC3C,CAAC;SACD,QAAQ,EAAE;CACZ,CAAC;KACD,QAAQ,EAAE,CAAC;AAEb,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAChD,UAA6B;IAE7B,OAAO,yBAAyB,CAAC,UAAU,CAAC,sBAAsB,EAAE,kCAAkC,CAAC,CAAC;AACzG,CAAC"}
@@ -1,6 +1,5 @@
1
1
  import type { ArtifactGenerationConfig } from './types.js';
2
2
  export declare function generateTypes(paths: {
3
- root: string;
4
- artifacts: string;
5
- }, config: ArtifactGenerationConfig, artifactsPaths: string[]): Promise<void>;
3
+ artifacts: string[];
4
+ }, config: ArtifactGenerationConfig): Promise<void>;
6
5
  //# sourceMappingURL=generate-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-types.d.ts","sourceRoot":"","sources":["../../src/generate-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,wBAAwB,EAAC,MAAM,YAAY,CAAC;AA6NzD,wBAAsB,aAAa,CAClC,KAAK,EAAE;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAC,EACxC,MAAM,EAAE,wBAAwB,EAChC,cAAc,EAAE,MAAM,EAAE,GACtB,OAAO,CAAC,IAAI,CAAC,CA0Ff"}
1
+ {"version":3,"file":"generate-types.d.ts","sourceRoot":"","sources":["../../src/generate-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,wBAAwB,EAAC,MAAM,YAAY,CAAC;AA4LzD,wBAAsB,aAAa,CAAC,KAAK,EAAE;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAC,EAAE,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4GjH"}
@@ -2,28 +2,8 @@ import debug from 'debug';
2
2
  import fs from 'node:fs';
3
3
  import path, { basename, dirname } from 'node:path';
4
4
  import slash from 'slash';
5
+ import { traverse } from './utils/files.js';
5
6
  const log = debug('hardhat-deploy:generate-types');
6
- function traverse(dir, result = [], topDir, filter) {
7
- fs.readdirSync(dir).forEach((name) => {
8
- const fPath = path.resolve(dir, name);
9
- const stats = fs.statSync(fPath);
10
- if ((!filter && !name.startsWith('.')) || (filter && filter(name, stats))) {
11
- const fileStats = {
12
- name,
13
- path: fPath,
14
- relativePath: path.relative(topDir || dir, fPath),
15
- mtimeMs: stats.mtimeMs,
16
- directory: stats.isDirectory(),
17
- };
18
- if (fileStats.directory) {
19
- result.push(fileStats);
20
- return traverse(fPath, result, topDir || dir, filter);
21
- }
22
- result.push(fileStats);
23
- }
24
- });
25
- return result;
26
- }
27
7
  function writeIfDifferent(filePath, newTextContent) {
28
8
  // Ensure we're working with a string
29
9
  const contentToWrite = String(newTextContent);
@@ -62,11 +42,12 @@ function ensureDirExistsSync(folderPath) {
62
42
  return { created: true, reason: 'Directory was created' };
63
43
  }
64
44
  function writeFiles(name, data, config) {
65
- const js = typeof config?.js === 'string' ? [config?.js] : config?.js || [];
66
- const ts = typeof config?.ts === 'string' ? [config?.ts] : config?.ts || [];
67
- const json = typeof config?.json === 'string' ? [config?.json] : config?.json || [];
68
- const jsm = typeof config?.jsm === 'string' ? [config?.jsm] : config?.jsm || [];
69
- const tsm = typeof config?.tsm === 'string' ? [config?.tsm] : config?.tsm || [];
45
+ const destinations = config.destinations;
46
+ const js = typeof destinations?.js === 'string' ? [destinations?.js] : destinations?.js || [];
47
+ const ts = typeof destinations?.ts === 'string' ? [destinations?.ts] : destinations?.ts || [];
48
+ const json = typeof destinations?.json === 'string' ? [destinations?.json] : destinations?.json || [];
49
+ const jsm = typeof destinations?.jsm === 'string' ? [destinations?.jsm] : destinations?.jsm || [];
50
+ const tsm = typeof destinations?.tsm === 'string' ? [destinations?.tsm] : destinations?.tsm || [];
70
51
  if (ts.length > 0) {
71
52
  const newContent = `export default ${JSON.stringify(data, null, 2)} as const;`;
72
53
  for (const tsFile of ts) {
@@ -193,56 +174,75 @@ export type Abi_${transformedName} = typeof ${transformedName}.abi;
193
174
  }
194
175
  }
195
176
  }
196
- export async function generateTypes(paths, config, artifactsPaths) {
177
+ export async function generateTypes(paths, config) {
197
178
  const allArtifacts = {};
198
179
  const shortNameDict = {};
199
- const files = traverse(paths.artifacts, [], paths.artifacts, (name) => name != 'build-info' && !name.endsWith('.t.sol'));
200
- // console.log('--------------------------');
201
- // console.log(files);
202
- // console.log('--------------------------');
203
- for (const file of files) {
204
- const filepath = file.path;
205
- if (file.directory || !filepath.endsWith('.json')) {
206
- continue;
207
- }
208
- const filename = slash(path.basename(filepath));
209
- const dirname = slash(path.dirname(file.relativePath));
210
- // const namePath = dirname.replace('.sol', '');
211
- const contractName = filename.replace('.json', '');
212
- // const shortName = artifact.artifactsEmitted[i];
213
- // console.log({path: filepath});
214
- const content = fs.readFileSync(filepath, 'utf-8');
215
- const parsed = JSON.parse(content);
216
- // TODO read config for artifacts folder
217
- const buildInfoFilepath = path.join('artifacts', 'build-info', `${parsed.buildInfoId}.output.json`);
218
- // console.log({buildInfoFilepath});
219
- // const backupBuildInfoFilepath = path.join(
220
- // './generated',
221
- // buildInfoFilepath.slice(buildInfoFilepath.indexOf('/', 1))
222
- // );
223
- let buildInfoFilepathToUse = buildInfoFilepath;
224
- // if (!fs.existsSync(buildInfoFilepathToUse)) {
225
- // buildInfoFilepathToUse = backupBuildInfoFilepath;
226
- // }
227
- if (fs.existsSync(buildInfoFilepathToUse)) {
228
- const buildInfoContent = fs.readFileSync(buildInfoFilepathToUse, 'utf-8');
229
- // if (buildInfoFilepathToUse !== backupBuildInfoFilepath) {
230
- // ensureDirExistsSync(path.dirname(backupBuildInfoFilepath));
231
- // writeIfDifferent(backupBuildInfoFilepath, buildInfoContent);
180
+ for (const artifactsPath of paths.artifacts) {
181
+ const files = traverse(artifactsPath, [], artifactsPath, (name) => name != 'build-info' && !name.endsWith('.t.sol') && !name.endsWith('.dbg.json'));
182
+ // console.log('--------------------------');
183
+ // console.log(files);
184
+ // console.log('--------------------------');
185
+ for (const file of files) {
186
+ const filepath = file.path;
187
+ if (file.directory || !filepath.endsWith('.json')) {
188
+ continue;
189
+ }
190
+ const filename = slash(path.basename(filepath));
191
+ const dirname = slash(path.dirname(file.relativePath));
192
+ // const namePath = dirname.replace('.sol', '');
193
+ const contractName = filename.replace('.json', '');
194
+ // const shortName = artifact.artifactsEmitted[i];
195
+ // console.log({path: filepath});
196
+ const content = fs.readFileSync(filepath, 'utf-8');
197
+ const parsed = JSON.parse(content);
198
+ // TODO read config for artifacts folder
199
+ let buildInfoFilepath = path.join(artifactsPath, 'build-info', `${parsed.buildInfoId}.output.json`);
200
+ if (!parsed.buildInfoId) {
201
+ // support hardhat v2 artifacts files
202
+ if (fs.existsSync(filepath.replace('.json', '.dbg.json'))) {
203
+ // console.warn(`Artifact ${filepath} does not have a buildInfoId, but found a .dbg.json file. Using that instead.`);
204
+ const dbgContent = fs.readFileSync(filepath.replace('.json', '.dbg.json'), 'utf-8');
205
+ const dbgParsed = JSON.parse(dbgContent);
206
+ const buildInfoRelativePath = dbgParsed.buildInfo;
207
+ parsed.buildInfoId = path.basename(buildInfoRelativePath, '.json');
208
+ // console.log({buildInfoRelativePath, buildInfoId: parsed.buildInfoId});
209
+ buildInfoFilepath = path.join(artifactsPath, 'build-info', `${parsed.buildInfoId}.json`);
210
+ }
211
+ }
212
+ // console.log({buildInfoFilepath});
213
+ // const backupBuildInfoFilepath = path.join(
214
+ // './generated',
215
+ // buildInfoFilepath.slice(buildInfoFilepath.indexOf('/', 1))
216
+ // );
217
+ let buildInfoFilepathToUse = buildInfoFilepath;
218
+ // if (!fs.existsSync(buildInfoFilepathToUse)) {
219
+ // buildInfoFilepathToUse = backupBuildInfoFilepath;
232
220
  // }
233
- const parsedBuildInfo = JSON.parse(buildInfoContent);
234
- // console.log({dirname, contractName});
235
- const solidityOutput = parsedBuildInfo.output.contracts[dirname][contractName];
236
- const hardhatArtifactObject = { ...parsed, ...solidityOutput };
237
- const { buildInfoId, _format, ...artifactObject } = hardhatArtifactObject;
238
- const fullName = `${dirname}/${contractName}`;
239
- allArtifacts[fullName] = artifactObject;
240
- if (shortNameDict[contractName]) {
241
- delete allArtifacts[contractName];
221
+ if (fs.existsSync(buildInfoFilepathToUse)) {
222
+ const buildInfoContent = fs.readFileSync(buildInfoFilepathToUse, 'utf-8');
223
+ // if (buildInfoFilepathToUse !== backupBuildInfoFilepath) {
224
+ // ensureDirExistsSync(path.dirname(backupBuildInfoFilepath));
225
+ // writeIfDifferent(backupBuildInfoFilepath, buildInfoContent);
226
+ // }
227
+ const parsedBuildInfo = JSON.parse(buildInfoContent);
228
+ // console.log({dirname, contractName});
229
+ const solidityOutput = parsedBuildInfo.output.contracts[dirname][contractName];
230
+ const hardhatArtifactObject = { ...parsed, ...solidityOutput };
231
+ const { buildInfoId, _format, ...artifactObject } = hardhatArtifactObject;
232
+ const fullName = `${dirname}/${contractName}`;
233
+ allArtifacts[fullName] = artifactObject;
234
+ if (shortNameDict[contractName]) {
235
+ delete allArtifacts[contractName];
236
+ }
237
+ else {
238
+ allArtifacts[contractName] = artifactObject;
239
+ shortNameDict[contractName] = true;
240
+ }
242
241
  }
243
242
  else {
244
- allArtifacts[contractName] = artifactObject;
245
- shortNameDict[contractName] = true;
243
+ // console.warn(
244
+ // `Build info file ${buildInfoFilepathToUse} not found for artifact ${filepath}. This might be due to a missing build-info file or an incorrect path.`
245
+ // );
246
246
  }
247
247
  }
248
248
  }
@@ -261,10 +261,9 @@ export async function generateTypes(paths, config, artifactsPaths) {
261
261
  const artifact = allArtifacts[key];
262
262
  writeFiles(key, artifact, config);
263
263
  }
264
- // const json = hre.config.generateArtifacts.json || [];
264
+ // const json = hre.config.generateTypedArtifacts.json || [];
265
265
  // json.push('./generated/_artifacts.json');
266
- // writeFiles(undefined, allArtifacts, {...hre.config.generateArtifacts, json: json});
266
+ // writeFiles(undefined, allArtifacts, {...hre.config.generateTypedArtifacts, json: json});
267
267
  writeFiles(undefined, allArtifacts, config);
268
- log(`Successfully generated ${artifactsPaths.length} files!`);
269
268
  }
270
269
  //# sourceMappingURL=generate-types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-types.js","sourceRoot":"","sources":["../../src/generate-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-types.js","sourceRoot":"","sources":["../../src/generate-types.ts"],"names":[],"mappings":"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"}
@@ -59,7 +59,7 @@ export default async () => {
59
59
  return {
60
60
  ...resolvedConfig,
61
61
  solidity,
62
- generateArtifacts: getConfig(userConfig.generateArtifacts),
62
+ generateTypedArtifacts: getConfig(userConfig.generateTypedArtifacts),
63
63
  };
64
64
  },
65
65
  };
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/hook-handlers/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/hook-handlers/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"solidity.d.ts","sourceRoot":"","sources":["../../../src/hook-handlers/solidity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,aAAa,EAAC,MAAM,qBAAqB,CAAC;8BAI3C,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAAxD,wBAuBE"}
1
+ {"version":3,"file":"solidity.d.ts","sourceRoot":"","sources":["../../../src/hook-handlers/solidity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,aAAa,EAAC,MAAM,qBAAqB,CAAC;8BAI3C,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAAxD,wBA4BE"}
@@ -2,11 +2,16 @@ import { generateTypes } from '../generate-types.js';
2
2
  export default async () => {
3
3
  const handlers = {
4
4
  async onCleanUpArtifacts(context, artifactPaths, next) {
5
+ let artifactPathsToProcess = [context.config.paths.artifacts];
6
+ // if (context.config.generateTypedArtifacts.externalArtifacts) {
7
+ // artifactPathsToProcess = artifactPathsToProcess.concat(
8
+ // context.config.generateTypedArtifacts.externalArtifacts
9
+ // );
10
+ // }
5
11
  if (artifactPaths.length > 0) {
6
12
  await generateTypes({
7
- root: context.config.paths.root,
8
- artifacts: context.config.paths.artifacts,
9
- }, context.config.generateArtifacts, artifactPaths);
13
+ artifacts: artifactPathsToProcess,
14
+ }, context.config.generateTypedArtifacts);
10
15
  }
11
16
  return next(context, artifactPaths);
12
17
  },
@@ -1 +1 @@
1
- {"version":3,"file":"solidity.js","sourceRoot":"","sources":["../../../src/hook-handlers/solidity.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,aAAa,EAAC,MAAM,sBAAsB,CAAC;AAEnD,eAAe,KAAK,IAAqC,EAAE;IAC1D,MAAM,QAAQ,GAA2B;QACxC,KAAK,CAAC,kBAAkB,CACvB,OAAoB,EACpB,aAAuB,EACvB,IAA0E;YAE1E,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,MAAM,aAAa,CAClB;oBACC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI;oBAC/B,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS;iBACzC,EACD,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAChC,aAAa,CACb,CAAC;YACH,CAAC;YAED,OAAO,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QACrC,CAAC;KACD,CAAC;IAEF,OAAO,QAAQ,CAAC;AACjB,CAAC,CAAC"}
1
+ {"version":3,"file":"solidity.js","sourceRoot":"","sources":["../../../src/hook-handlers/solidity.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,aAAa,EAAC,MAAM,sBAAsB,CAAC;AAEnD,eAAe,KAAK,IAAqC,EAAE;IAC1D,MAAM,QAAQ,GAA2B;QACxC,KAAK,CAAC,kBAAkB,CACvB,OAAoB,EACpB,aAAuB,EACvB,IAA0E;YAE1E,IAAI,sBAAsB,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC9D,iEAAiE;YACjE,2DAA2D;YAC3D,4DAA4D;YAC5D,MAAM;YACN,IAAI;YAEJ,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,MAAM,aAAa,CAClB;oBACC,SAAS,EAAE,sBAAsB;iBACjC,EACD,OAAO,CAAC,MAAM,CAAC,sBAAsB,CACrC,CAAC;YACH,CAAC;YAED,OAAO,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QACrC,CAAC;KACD,CAAC;IAEF,OAAO,QAAQ,CAAC;AACjB,CAAC,CAAC"}
@@ -2,10 +2,10 @@ import 'hardhat/types/config';
2
2
  import { ArtifactGenerationConfig, ArtifactGenerationUserConfig } from './types.js';
3
3
  declare module 'hardhat/types/config' {
4
4
  interface HardhatUserConfig {
5
- generateArtifacts?: ArtifactGenerationUserConfig;
5
+ generateTypedArtifacts?: ArtifactGenerationUserConfig;
6
6
  }
7
7
  interface HardhatConfig {
8
- readonly generateArtifacts: ArtifactGenerationConfig;
8
+ readonly generateTypedArtifacts: ArtifactGenerationConfig;
9
9
  }
10
10
  }
11
11
  //# sourceMappingURL=type-extensions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"type-extensions.d.ts","sourceRoot":"","sources":["../../src/type-extensions.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAC9B,OAAO,EAAC,wBAAwB,EAAE,4BAA4B,EAAC,MAAM,YAAY,CAAC;AAElF,OAAO,QAAQ,sBAAsB,CAAC;IACrC,UAAiB,iBAAiB;QACjC,iBAAiB,CAAC,EAAE,4BAA4B,CAAC;KACjD;IAED,UAAiB,aAAa;QAC7B,QAAQ,CAAC,iBAAiB,EAAE,wBAAwB,CAAC;KACrD;CACD"}
1
+ {"version":3,"file":"type-extensions.d.ts","sourceRoot":"","sources":["../../src/type-extensions.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAC9B,OAAO,EAAC,wBAAwB,EAAE,4BAA4B,EAAC,MAAM,YAAY,CAAC;AAElF,OAAO,QAAQ,sBAAsB,CAAC;IACrC,UAAiB,iBAAiB;QACjC,sBAAsB,CAAC,EAAE,4BAA4B,CAAC;KACtD;IAED,UAAiB,aAAa;QAC7B,QAAQ,CAAC,sBAAsB,EAAE,wBAAwB,CAAC;KAC1D;CACD"}
@@ -1,15 +1,19 @@
1
1
  export type ArtifactGenerationUserConfig = {
2
- js?: string[];
3
- ts?: string[];
4
- json?: string[];
5
- jsm?: string[];
6
- tsm?: string[];
2
+ destinations?: {
3
+ js?: string[];
4
+ ts?: string[];
5
+ json?: string[];
6
+ jsm?: string[];
7
+ tsm?: string[];
8
+ };
7
9
  };
8
10
  export type ArtifactGenerationConfig = {
9
- js: string[];
10
- ts: string[];
11
- json: string[];
12
- jsm: string[];
13
- tsm: string[];
11
+ destinations: {
12
+ js: string[];
13
+ ts: string[];
14
+ json: string[];
15
+ jsm: string[];
16
+ tsm: string[];
17
+ };
14
18
  };
15
19
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,4BAA4B,GAAG;IAC1C,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACtC,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,GAAG,EAAE,MAAM,EAAE,CAAC;CACd,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,4BAA4B,GAAG;IAE1C,YAAY,CAAC,EAAE;QACd,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;QACd,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;QACf,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;KACf,CAAC;CACF,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IAEtC,YAAY,EAAE;QACb,EAAE,EAAE,MAAM,EAAE,CAAC;QACb,EAAE,EAAE,MAAM,EAAE,CAAC;QACb,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,GAAG,EAAE,MAAM,EAAE,CAAC;QACd,GAAG,EAAE,MAAM,EAAE,CAAC;KACd,CAAC;CACF,CAAC"}
@@ -0,0 +1,9 @@
1
+ export type FileTraversed = {
2
+ name: string;
3
+ path: string;
4
+ relativePath: string;
5
+ mtimeMs: number;
6
+ directory: boolean;
7
+ };
8
+ export declare function traverse(dir: string, result?: any[], topDir?: string, filter?: (name: string, stats: any) => boolean): Array<FileTraversed>;
9
+ //# sourceMappingURL=files.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../../src/utils/files.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,aAAa,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,wBAAgB,QAAQ,CACvB,GAAG,EAAE,MAAM,EACX,MAAM,GAAE,GAAG,EAAO,EAClB,MAAM,CAAC,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,OAAO,GAC5C,KAAK,CAAC,aAAa,CAAC,CAoBtB"}
@@ -0,0 +1,25 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ export function traverse(dir, result = [], topDir, filter // TODO any is Stats
4
+ ) {
5
+ fs.readdirSync(dir).forEach((name) => {
6
+ const fPath = path.resolve(dir, name);
7
+ const stats = fs.statSync(fPath);
8
+ if ((!filter && !name.startsWith('.')) || (filter && filter(name, stats))) {
9
+ const fileStats = {
10
+ name,
11
+ path: fPath,
12
+ relativePath: path.relative(topDir || dir, fPath),
13
+ mtimeMs: stats.mtimeMs,
14
+ directory: stats.isDirectory(),
15
+ };
16
+ if (fileStats.directory) {
17
+ result.push(fileStats);
18
+ return traverse(fPath, result, topDir || dir, filter);
19
+ }
20
+ result.push(fileStats);
21
+ }
22
+ });
23
+ return result;
24
+ }
25
+ //# sourceMappingURL=files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../../../src/utils/files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAU7B,MAAM,UAAU,QAAQ,CACvB,GAAW,EACX,SAAgB,EAAE,EAClB,MAAe,EACf,MAA8C,CAAC,oBAAoB;;IAEnE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;YAC3E,MAAM,SAAS,GAAG;gBACjB,IAAI;gBACJ,IAAI,EAAE,KAAK;gBACX,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE,KAAK,CAAC;gBACjD,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,SAAS,EAAE,KAAK,CAAC,WAAW,EAAE;aAC9B,CAAC;YACF,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;gBACzB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACvB,OAAO,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,CAAC,CAAC;YACvD,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxB,CAAC;IACF,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AACf,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hardhat-deploy",
3
- "version": "2.0.0-next.27",
3
+ "version": "2.0.0-next.29",
4
4
  "description": "deployment plugin for hardhat",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -29,24 +29,24 @@
29
29
  ],
30
30
  "devDependencies": {
31
31
  "@changesets/cli": "^2.29.4",
32
- "@types/node": "^22.15.18",
32
+ "@types/node": "^22.15.23",
33
33
  "as-soon": "^0.0.11",
34
- "hardhat": "3.0.0-next.8",
34
+ "hardhat": "3.0.0-next.15",
35
35
  "rimraf": "^6.0.1",
36
36
  "rocketh": "^0.11.20",
37
37
  "set-defaults": "^0.0.5",
38
38
  "typescript": "^5.8.3"
39
39
  },
40
40
  "peerDependencies": {
41
- "hardhat": "^3.0.0-next.8",
41
+ "hardhat": "^3.0.0-next.15",
42
42
  "rocketh": "^0.11.20"
43
43
  },
44
44
  "dependencies": {
45
- "@nomicfoundation/hardhat-zod-utils": "3.0.0-next.0",
45
+ "@nomicfoundation/hardhat-zod-utils": "3.0.0-next.15",
46
46
  "@types/debug": "^4.1.12",
47
47
  "debug": "^4.4.1",
48
48
  "slash": "^5.1.0",
49
- "zod": "^3.24.4"
49
+ "zod": "^3.25.32"
50
50
  },
51
51
  "scripts": {
52
52
  "build": "tsc --project tsconfig.json",
@@ -1,9 +1,12 @@
1
1
  import type {ArtifactGenerationConfig} from '../types.js';
2
2
 
3
3
  export const DEFAULT_CONFIG: ArtifactGenerationConfig = {
4
- js: [],
5
- ts: ['./generated/artifacts.ts'],
6
- json: [],
7
- jsm: [],
8
- tsm: [],
4
+ // externalArtifacts: [],
5
+ destinations: {
6
+ js: [],
7
+ ts: ['./generated/artifacts.ts'],
8
+ json: [],
9
+ jsm: [],
10
+ tsm: [],
11
+ },
9
12
  };
@@ -4,7 +4,10 @@ import {DEFAULT_CONFIG} from './default.js';
4
4
 
5
5
  export function getConfig(userConfig: ArtifactGenerationUserConfig | undefined): ArtifactGenerationConfig {
6
6
  return {
7
- ...DEFAULT_CONFIG,
8
- ...userConfig,
7
+ destinations: {
8
+ ...DEFAULT_CONFIG.destinations,
9
+ ...(userConfig?.destinations || {}),
10
+ },
11
+ // externalArtifacts: userConfig?.externalArtifacts || DEFAULT_CONFIG.externalArtifacts,
9
12
  };
10
13
  }
@@ -6,17 +6,22 @@ import {z} from 'zod';
6
6
 
7
7
  const artifactGenerationUserConfigSchema = z
8
8
  .object({
9
- js: z.array(z.string()).optional(),
10
- ts: z.array(z.string()).optional(),
11
- json: z.array(z.string()).optional(),
12
- jsm: z.array(z.string()).optional(),
13
- tsm: z.array(z.string()).optional(),
14
- directories: z.array(z.string()).optional(),
9
+ // externalArtifacts: z.array(z.string()).optional(),
10
+ destinations: z
11
+ .object({
12
+ js: z.array(z.string()).optional(),
13
+ ts: z.array(z.string()).optional(),
14
+ json: z.array(z.string()).optional(),
15
+ jsm: z.array(z.string()).optional(),
16
+ tsm: z.array(z.string()).optional(),
17
+ directories: z.array(z.string()).optional(),
18
+ })
19
+ .optional(),
15
20
  })
16
21
  .optional();
17
22
 
18
23
  export async function validateTypechainUserConfig(
19
24
  userConfig: HardhatUserConfig
20
25
  ): Promise<HardhatUserConfigValidationError[]> {
21
- return validateUserConfigZodType(userConfig.generateArtifacts, artifactGenerationUserConfigSchema);
26
+ return validateUserConfigZodType(userConfig.generateTypedArtifacts, artifactGenerationUserConfigSchema);
22
27
  }
@@ -3,44 +3,10 @@ import debug from 'debug';
3
3
  import fs from 'node:fs';
4
4
  import path, {basename, dirname} from 'node:path';
5
5
  import slash from 'slash';
6
+ import {FileTraversed, traverse} from './utils/files.js';
6
7
 
7
8
  const log = debug('hardhat-deploy:generate-types');
8
9
 
9
- type FileTraversed = {
10
- name: string;
11
- path: string;
12
- relativePath: string;
13
- mtimeMs: number;
14
- directory: boolean;
15
- };
16
-
17
- function traverse(
18
- dir: string,
19
- result: any[] = [],
20
- topDir?: string,
21
- filter?: (name: string, stats: any) => boolean, // TODO any is Stats
22
- ): Array<FileTraversed> {
23
- fs.readdirSync(dir).forEach((name) => {
24
- const fPath = path.resolve(dir, name);
25
- const stats = fs.statSync(fPath);
26
- if ((!filter && !name.startsWith('.')) || (filter && filter(name, stats))) {
27
- const fileStats = {
28
- name,
29
- path: fPath,
30
- relativePath: path.relative(topDir || dir, fPath),
31
- mtimeMs: stats.mtimeMs,
32
- directory: stats.isDirectory(),
33
- };
34
- if (fileStats.directory) {
35
- result.push(fileStats);
36
- return traverse(fPath, result, topDir || dir, filter);
37
- }
38
- result.push(fileStats);
39
- }
40
- });
41
- return result;
42
- }
43
-
44
10
  function writeIfDifferent(filePath: string, newTextContent: string) {
45
11
  // Ensure we're working with a string
46
12
  const contentToWrite = String(newTextContent);
@@ -84,11 +50,12 @@ function ensureDirExistsSync(folderPath: string) {
84
50
  }
85
51
 
86
52
  function writeFiles(name: string | undefined, data: any, config: ArtifactGenerationConfig) {
87
- const js = typeof config?.js === 'string' ? [config?.js] : config?.js || [];
88
- const ts = typeof config?.ts === 'string' ? [config?.ts] : config?.ts || [];
89
- const json = typeof config?.json === 'string' ? [config?.json] : config?.json || [];
90
- const jsm = typeof config?.jsm === 'string' ? [config?.jsm] : config?.jsm || [];
91
- const tsm = typeof config?.tsm === 'string' ? [config?.tsm] : config?.tsm || [];
53
+ const destinations = config.destinations;
54
+ const js = typeof destinations?.js === 'string' ? [destinations?.js] : destinations?.js || [];
55
+ const ts = typeof destinations?.ts === 'string' ? [destinations?.ts] : destinations?.ts || [];
56
+ const json = typeof destinations?.json === 'string' ? [destinations?.json] : destinations?.json || [];
57
+ const jsm = typeof destinations?.jsm === 'string' ? [destinations?.jsm] : destinations?.jsm || [];
58
+ const tsm = typeof destinations?.tsm === 'string' ? [destinations?.tsm] : destinations?.tsm || [];
92
59
 
93
60
  if (ts.length > 0) {
94
61
  const newContent = `export default ${JSON.stringify(data, null, 2)} as const;`;
@@ -219,77 +186,93 @@ export type Abi_${transformedName} = typeof ${transformedName}.abi;
219
186
  }
220
187
  }
221
188
 
222
- export async function generateTypes(
223
- paths: {root: string; artifacts: string},
224
- config: ArtifactGenerationConfig,
225
- artifactsPaths: string[],
226
- ): Promise<void> {
189
+ export async function generateTypes(paths: {artifacts: string[]}, config: ArtifactGenerationConfig): Promise<void> {
227
190
  const allArtifacts: {[name: string]: any} = {};
228
191
  const shortNameDict: {[shortName: string]: boolean} = {};
229
192
 
230
- const files: FileTraversed[] = traverse(
231
- paths.artifacts,
232
- [],
233
- paths.artifacts,
234
- (name) => name != 'build-info' && !name.endsWith('.t.sol'),
235
- );
236
-
237
- // console.log('--------------------------');
238
- // console.log(files);
239
- // console.log('--------------------------');
240
-
241
- for (const file of files) {
242
- const filepath = file.path;
243
- if (file.directory || !filepath.endsWith('.json')) {
244
- continue;
245
- }
246
- const filename = slash(path.basename(filepath));
247
- const dirname = slash(path.dirname(file.relativePath));
248
-
249
- // const namePath = dirname.replace('.sol', '');
250
- const contractName = filename.replace('.json', '');
251
- // const shortName = artifact.artifactsEmitted[i];
252
- // console.log({path: filepath});
253
- const content = fs.readFileSync(filepath, 'utf-8');
254
- const parsed = JSON.parse(content);
255
-
256
- // TODO read config for artifacts folder
257
- const buildInfoFilepath = path.join('artifacts', 'build-info', `${parsed.buildInfoId}.output.json`);
258
-
259
- // console.log({buildInfoFilepath});
193
+ for (const artifactsPath of paths.artifacts) {
194
+ const files: FileTraversed[] = traverse(
195
+ artifactsPath,
196
+ [],
197
+ artifactsPath,
198
+ (name) => name != 'build-info' && !name.endsWith('.t.sol') && !name.endsWith('.dbg.json')
199
+ );
200
+
201
+ // console.log('--------------------------');
202
+ // console.log(files);
203
+ // console.log('--------------------------');
204
+
205
+ for (const file of files) {
206
+ const filepath = file.path;
207
+ if (file.directory || !filepath.endsWith('.json')) {
208
+ continue;
209
+ }
210
+ const filename = slash(path.basename(filepath));
211
+ const dirname = slash(path.dirname(file.relativePath));
212
+
213
+ // const namePath = dirname.replace('.sol', '');
214
+ const contractName = filename.replace('.json', '');
215
+ // const shortName = artifact.artifactsEmitted[i];
216
+ // console.log({path: filepath});
217
+ const content = fs.readFileSync(filepath, 'utf-8');
218
+ const parsed = JSON.parse(content);
219
+
220
+ // TODO read config for artifacts folder
221
+ let buildInfoFilepath = path.join(artifactsPath, 'build-info', `${parsed.buildInfoId}.output.json`);
222
+
223
+ if (!parsed.buildInfoId) {
224
+ // support hardhat v2 artifacts files
225
+ if (fs.existsSync(filepath.replace('.json', '.dbg.json'))) {
226
+ // console.warn(`Artifact ${filepath} does not have a buildInfoId, but found a .dbg.json file. Using that instead.`);
227
+ const dbgContent = fs.readFileSync(filepath.replace('.json', '.dbg.json'), 'utf-8');
228
+ const dbgParsed = JSON.parse(dbgContent);
229
+ const buildInfoRelativePath = dbgParsed.buildInfo;
230
+ parsed.buildInfoId = path.basename(buildInfoRelativePath, '.json');
231
+ // console.log({buildInfoRelativePath, buildInfoId: parsed.buildInfoId});
232
+ buildInfoFilepath = path.join(artifactsPath, 'build-info', `${parsed.buildInfoId}.json`);
233
+ }
234
+ }
260
235
 
261
- // const backupBuildInfoFilepath = path.join(
262
- // './generated',
263
- // buildInfoFilepath.slice(buildInfoFilepath.indexOf('/', 1))
264
- // );
265
- let buildInfoFilepathToUse = buildInfoFilepath;
266
- // if (!fs.existsSync(buildInfoFilepathToUse)) {
267
- // buildInfoFilepathToUse = backupBuildInfoFilepath;
268
- // }
269
- if (fs.existsSync(buildInfoFilepathToUse)) {
270
- const buildInfoContent = fs.readFileSync(buildInfoFilepathToUse, 'utf-8');
236
+ // console.log({buildInfoFilepath});
271
237
 
272
- // if (buildInfoFilepathToUse !== backupBuildInfoFilepath) {
273
- // ensureDirExistsSync(path.dirname(backupBuildInfoFilepath));
274
- // writeIfDifferent(backupBuildInfoFilepath, buildInfoContent);
238
+ // const backupBuildInfoFilepath = path.join(
239
+ // './generated',
240
+ // buildInfoFilepath.slice(buildInfoFilepath.indexOf('/', 1))
241
+ // );
242
+ let buildInfoFilepathToUse = buildInfoFilepath;
243
+ // if (!fs.existsSync(buildInfoFilepathToUse)) {
244
+ // buildInfoFilepathToUse = backupBuildInfoFilepath;
275
245
  // }
276
-
277
- const parsedBuildInfo = JSON.parse(buildInfoContent);
278
- // console.log({dirname, contractName});
279
- const solidityOutput = parsedBuildInfo.output.contracts[dirname][contractName];
280
-
281
- const hardhatArtifactObject = {...parsed, ...solidityOutput};
282
- const {buildInfoId, _format, ...artifactObject} = hardhatArtifactObject;
283
- const fullName = `${dirname}/${contractName}`;
284
- allArtifacts[fullName] = artifactObject;
285
- if (shortNameDict[contractName]) {
286
- delete allArtifacts[contractName];
246
+ if (fs.existsSync(buildInfoFilepathToUse)) {
247
+ const buildInfoContent = fs.readFileSync(buildInfoFilepathToUse, 'utf-8');
248
+
249
+ // if (buildInfoFilepathToUse !== backupBuildInfoFilepath) {
250
+ // ensureDirExistsSync(path.dirname(backupBuildInfoFilepath));
251
+ // writeIfDifferent(backupBuildInfoFilepath, buildInfoContent);
252
+ // }
253
+
254
+ const parsedBuildInfo = JSON.parse(buildInfoContent);
255
+ // console.log({dirname, contractName});
256
+ const solidityOutput = parsedBuildInfo.output.contracts[dirname][contractName];
257
+
258
+ const hardhatArtifactObject = {...parsed, ...solidityOutput};
259
+ const {buildInfoId, _format, ...artifactObject} = hardhatArtifactObject;
260
+ const fullName = `${dirname}/${contractName}`;
261
+ allArtifacts[fullName] = artifactObject;
262
+ if (shortNameDict[contractName]) {
263
+ delete allArtifacts[contractName];
264
+ } else {
265
+ allArtifacts[contractName] = artifactObject;
266
+ shortNameDict[contractName] = true;
267
+ }
287
268
  } else {
288
- allArtifacts[contractName] = artifactObject;
289
- shortNameDict[contractName] = true;
269
+ // console.warn(
270
+ // `Build info file ${buildInfoFilepathToUse} not found for artifact ${filepath}. This might be due to a missing build-info file or an incorrect path.`
271
+ // );
290
272
  }
291
273
  }
292
274
  }
275
+
293
276
  for (const key of Object.keys(allArtifacts)) {
294
277
  if (key.indexOf('/') >= 0) {
295
278
  const split = key.split('/');
@@ -306,11 +289,9 @@ export async function generateTypes(
306
289
  const artifact = allArtifacts[key];
307
290
  writeFiles(key, artifact, config);
308
291
  }
309
- // const json = hre.config.generateArtifacts.json || [];
292
+ // const json = hre.config.generateTypedArtifacts.json || [];
310
293
  // json.push('./generated/_artifacts.json');
311
- // writeFiles(undefined, allArtifacts, {...hre.config.generateArtifacts, json: json});
294
+ // writeFiles(undefined, allArtifacts, {...hre.config.generateTypedArtifacts, json: json});
312
295
 
313
296
  writeFiles(undefined, allArtifacts, config);
314
-
315
- log(`Successfully generated ${artifactsPaths.length} files!`);
316
297
  }
@@ -71,7 +71,7 @@ export default async (): Promise<Partial<ConfigHooks>> => {
71
71
  return {
72
72
  ...resolvedConfig,
73
73
  solidity,
74
- generateArtifacts: getConfig(userConfig.generateArtifacts),
74
+ generateTypedArtifacts: getConfig(userConfig.generateTypedArtifacts),
75
75
  };
76
76
  },
77
77
  };
@@ -7,16 +7,21 @@ export default async (): Promise<Partial<SolidityHooks>> => {
7
7
  async onCleanUpArtifacts(
8
8
  context: HookContext,
9
9
  artifactPaths: string[],
10
- next: (nextContext: HookContext, artifactPaths: string[]) => Promise<void>,
10
+ next: (nextContext: HookContext, artifactPaths: string[]) => Promise<void>
11
11
  ) {
12
+ let artifactPathsToProcess = [context.config.paths.artifacts];
13
+ // if (context.config.generateTypedArtifacts.externalArtifacts) {
14
+ // artifactPathsToProcess = artifactPathsToProcess.concat(
15
+ // context.config.generateTypedArtifacts.externalArtifacts
16
+ // );
17
+ // }
18
+
12
19
  if (artifactPaths.length > 0) {
13
20
  await generateTypes(
14
21
  {
15
- root: context.config.paths.root,
16
- artifacts: context.config.paths.artifacts,
22
+ artifacts: artifactPathsToProcess,
17
23
  },
18
- context.config.generateArtifacts,
19
- artifactPaths,
24
+ context.config.generateTypedArtifacts
20
25
  );
21
26
  }
22
27
 
@@ -3,10 +3,10 @@ import {ArtifactGenerationConfig, ArtifactGenerationUserConfig} from './types.js
3
3
 
4
4
  declare module 'hardhat/types/config' {
5
5
  export interface HardhatUserConfig {
6
- generateArtifacts?: ArtifactGenerationUserConfig;
6
+ generateTypedArtifacts?: ArtifactGenerationUserConfig;
7
7
  }
8
8
 
9
9
  export interface HardhatConfig {
10
- readonly generateArtifacts: ArtifactGenerationConfig;
10
+ readonly generateTypedArtifacts: ArtifactGenerationConfig;
11
11
  }
12
12
  }
package/src/types.ts CHANGED
@@ -1,15 +1,21 @@
1
1
  export type ArtifactGenerationUserConfig = {
2
- js?: string[];
3
- ts?: string[];
4
- json?: string[];
5
- jsm?: string[];
6
- tsm?: string[];
2
+ // externalArtifacts?: string[];
3
+ destinations?: {
4
+ js?: string[];
5
+ ts?: string[];
6
+ json?: string[];
7
+ jsm?: string[];
8
+ tsm?: string[];
9
+ };
7
10
  };
8
11
 
9
12
  export type ArtifactGenerationConfig = {
10
- js: string[];
11
- ts: string[];
12
- json: string[];
13
- jsm: string[];
14
- tsm: string[];
13
+ // externalArtifacts: string[];
14
+ destinations: {
15
+ js: string[];
16
+ ts: string[];
17
+ json: string[];
18
+ jsm: string[];
19
+ tsm: string[];
20
+ };
15
21
  };
@@ -0,0 +1,37 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+
4
+ export type FileTraversed = {
5
+ name: string;
6
+ path: string;
7
+ relativePath: string;
8
+ mtimeMs: number;
9
+ directory: boolean;
10
+ };
11
+
12
+ export function traverse(
13
+ dir: string,
14
+ result: any[] = [],
15
+ topDir?: string,
16
+ filter?: (name: string, stats: any) => boolean // TODO any is Stats
17
+ ): Array<FileTraversed> {
18
+ fs.readdirSync(dir).forEach((name) => {
19
+ const fPath = path.resolve(dir, name);
20
+ const stats = fs.statSync(fPath);
21
+ if ((!filter && !name.startsWith('.')) || (filter && filter(name, stats))) {
22
+ const fileStats = {
23
+ name,
24
+ path: fPath,
25
+ relativePath: path.relative(topDir || dir, fPath),
26
+ mtimeMs: stats.mtimeMs,
27
+ directory: stats.isDirectory(),
28
+ };
29
+ if (fileStats.directory) {
30
+ result.push(fileStats);
31
+ return traverse(fPath, result, topDir || dir, filter);
32
+ }
33
+ result.push(fileStats);
34
+ }
35
+ });
36
+ return result;
37
+ }