hardhat-deploy 2.0.0-next.4 → 2.0.0-next.41

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 (58) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +630 -1
  3. package/dist/esm/config/default.d.ts.map +1 -1
  4. package/dist/esm/config/default.js +8 -5
  5. package/dist/esm/config/default.js.map +1 -1
  6. package/dist/esm/config/get-config.d.ts.map +1 -1
  7. package/dist/esm/config/get-config.js +5 -2
  8. package/dist/esm/config/get-config.js.map +1 -1
  9. package/dist/esm/config/validation.d.ts.map +1 -1
  10. package/dist/esm/config/validation.js +12 -7
  11. package/dist/esm/config/validation.js.map +1 -1
  12. package/dist/esm/generate-types.d.ts +2 -3
  13. package/dist/esm/generate-types.d.ts.map +1 -1
  14. package/dist/esm/generate-types.js +153 -83
  15. package/dist/esm/generate-types.js.map +1 -1
  16. package/dist/esm/helpers.d.ts +12 -6
  17. package/dist/esm/helpers.d.ts.map +1 -1
  18. package/dist/esm/helpers.js +52 -24
  19. package/dist/esm/helpers.js.map +1 -1
  20. package/dist/esm/hook-handlers/config.d.ts.map +1 -1
  21. package/dist/esm/hook-handlers/config.js +53 -1
  22. package/dist/esm/hook-handlers/config.js.map +1 -1
  23. package/dist/esm/hook-handlers/solidity.d.ts.map +1 -1
  24. package/dist/esm/hook-handlers/solidity.js +13 -7
  25. package/dist/esm/hook-handlers/solidity.js.map +1 -1
  26. package/dist/esm/index.d.ts +3 -0
  27. package/dist/esm/index.d.ts.map +1 -1
  28. package/dist/esm/index.js +17 -5
  29. package/dist/esm/index.js.map +1 -1
  30. package/dist/esm/tasks/deploy.d.ts +1 -0
  31. package/dist/esm/tasks/deploy.d.ts.map +1 -1
  32. package/dist/esm/tasks/deploy.js +13 -5
  33. package/dist/esm/tasks/deploy.js.map +1 -1
  34. package/dist/esm/type-extensions.d.ts +2 -2
  35. package/dist/esm/type-extensions.d.ts.map +1 -1
  36. package/dist/esm/types.d.ts +14 -10
  37. package/dist/esm/types.d.ts.map +1 -1
  38. package/dist/esm/utils/files.d.ts +9 -0
  39. package/dist/esm/utils/files.d.ts.map +1 -0
  40. package/dist/esm/utils/files.js +25 -0
  41. package/dist/esm/utils/files.js.map +1 -0
  42. package/package.json +16 -13
  43. package/src/config/default.ts +12 -0
  44. package/src/config/get-config.ts +13 -0
  45. package/src/config/validation.ts +27 -0
  46. package/src/generate-types.ts +292 -0
  47. package/src/helpers.ts +285 -0
  48. package/src/hook-handlers/config.ts +80 -0
  49. package/src/hook-handlers/solidity.ts +33 -0
  50. package/src/index.ts +47 -0
  51. package/src/tasks/deploy.ts +35 -0
  52. package/src/type-extensions.ts +12 -0
  53. package/src/types.ts +21 -0
  54. package/src/utils/files.ts +37 -0
  55. package/dist/esm/tasks/compile.d.ts +0 -6
  56. package/dist/esm/tasks/compile.d.ts.map +0 -1
  57. package/dist/esm/tasks/compile.js +0 -254
  58. package/dist/esm/tasks/compile.js.map +0 -1
@@ -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;AAuJzD,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,CAgFf"}
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,CAuGjH"}
@@ -1,35 +1,53 @@
1
1
  import debug from 'debug';
2
2
  import fs from 'node:fs';
3
- import path from 'node:path';
4
- const log = debug('hardhat3-rocketh:generate-types');
5
- function traverse(dir, result = [], topDir, filter // TODO any is Stats
6
- ) {
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);
3
+ import path, { basename, dirname } from 'node:path';
4
+ import slash from 'slash';
5
+ import { traverse } from './utils/files.js';
6
+ const log = debug('hardhat-deploy:generate-types');
7
+ function writeIfDifferent(filePath, newTextContent) {
8
+ // Ensure we're working with a string
9
+ const contentToWrite = String(newTextContent);
10
+ try {
11
+ let existingContent;
12
+ try {
13
+ existingContent = fs.readFileSync(filePath, 'utf8');
23
14
  }
24
- });
25
- return result;
15
+ catch (error) {
16
+ // console.log(`do not exist? => writing ${filePath}`);
17
+ // File doesn't exist, write and return
18
+ fs.writeFileSync(filePath, contentToWrite);
19
+ return { written: true, reason: 'File did not exist' };
20
+ }
21
+ // Simple string comparison
22
+ if (contentToWrite !== existingContent) {
23
+ // console.log(`content different => writing ${filePath}`);
24
+ fs.writeFileSync(filePath, contentToWrite);
25
+ return { written: true, reason: 'Content was different' };
26
+ }
27
+ return { written: false, reason: 'Content was identical' };
28
+ }
29
+ catch (error) {
30
+ console.error('Error in writeIfDifferent:', error);
31
+ throw error;
32
+ }
33
+ }
34
+ function ensureDirExistsSync(folderPath) {
35
+ // Check if directory already exists
36
+ if (fs.existsSync(folderPath)) {
37
+ return { created: false, reason: 'Directory already exists' };
38
+ }
39
+ // console.log(`do not exist? => mkdir ${folderPath}`);
40
+ // Directory doesn't exist, create it
41
+ fs.mkdirSync(folderPath, { recursive: true });
42
+ return { created: true, reason: 'Directory was created' };
26
43
  }
27
44
  function writeFiles(name, data, config) {
28
- const js = typeof config?.js === 'string' ? [config?.js] : config?.js || [];
29
- const ts = typeof config?.ts === 'string' ? [config?.ts] : config?.ts || [];
30
- const json = typeof config?.json === 'string' ? [config?.json] : config?.json || [];
31
- const jsm = typeof config?.jsm === 'string' ? [config?.jsm] : config?.jsm || [];
32
- 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 || [];
33
51
  if (ts.length > 0) {
34
52
  const newContent = `export default ${JSON.stringify(data, null, 2)} as const;`;
35
53
  for (const tsFile of ts) {
@@ -37,16 +55,44 @@ function writeFiles(name, data, config) {
37
55
  if (!name) {
38
56
  const filepath = tsFile;
39
57
  const folderPath = path.dirname(filepath);
40
- fs.mkdirSync(folderPath, { recursive: true });
41
- fs.writeFileSync(filepath, newContent);
58
+ ensureDirExistsSync(folderPath);
59
+ writeIfDifferent(filepath, newContent);
60
+ ensureDirExistsSync(`${folderPath}/types`);
61
+ for (const name of Object.keys(data)) {
62
+ const splitted = name.split('/');
63
+ const numPath = splitted.length;
64
+ let pathToBase = '';
65
+ for (let i = 0; i < numPath; i++) {
66
+ pathToBase += '../';
67
+ }
68
+ let lastName = splitted.pop() || name;
69
+ const content = `
70
+ import artifacts from '${pathToBase}${basename(tsFile.replace('.ts', '.js'))}';
71
+ export type Abi_${lastName} = typeof artifacts["${name}"]["abi"];
72
+ `;
73
+ ensureDirExistsSync(dirname(`${folderPath}/types/${name}`));
74
+ writeIfDifferent(`${folderPath}/types/${name}.ts`, content);
75
+ }
42
76
  }
43
77
  }
44
78
  else {
45
79
  if (name) {
46
80
  const filepath = `${tsFile}/${name}.ts`;
47
81
  const folderPath = path.dirname(filepath);
48
- fs.mkdirSync(folderPath, { recursive: true });
49
- fs.writeFileSync(filepath, newContent);
82
+ ensureDirExistsSync(folderPath);
83
+ writeIfDifferent(filepath, newContent);
84
+ }
85
+ else {
86
+ let indexFileContent = ``;
87
+ for (const name of Object.keys(data)) {
88
+ let transformedName = name.replaceAll('/', '_').replaceAll('.', '_');
89
+ indexFileContent += `
90
+ import ${transformedName} from './${name}.js';
91
+ export {${transformedName}};
92
+ export type Abi_${transformedName} = typeof ${transformedName}.abi;
93
+ `;
94
+ }
95
+ writeIfDifferent(`${tsFile}/index.ts`, indexFileContent);
50
96
  }
51
97
  }
52
98
  }
@@ -62,20 +108,20 @@ function writeFiles(name, data, config) {
62
108
  if (!name) {
63
109
  const filepath = jsFile;
64
110
  const folderPath = path.dirname(filepath);
65
- fs.mkdirSync(folderPath, { recursive: true });
66
- fs.writeFileSync(filepath, newContent);
67
- fs.writeFileSync(filepath.replace(/\.js$/, '.d.ts'), dtsContent);
68
- fs.writeFileSync(filepath.replace(/\.js$/, '.cjs'), cjsContent);
111
+ ensureDirExistsSync(folderPath);
112
+ writeIfDifferent(filepath, newContent);
113
+ writeIfDifferent(filepath.replace(/\.js$/, '.d.ts'), dtsContent);
114
+ writeIfDifferent(filepath.replace(/\.js$/, '.cjs'), cjsContent);
69
115
  }
70
116
  }
71
117
  else {
72
118
  if (name) {
73
119
  const filepath = `${jsFile}/${name}.js`;
74
120
  const folderPath = path.dirname(filepath);
75
- fs.mkdirSync(folderPath, { recursive: true });
76
- fs.writeFileSync(filepath, newContent);
77
- fs.writeFileSync(filepath.replace(/\.js$/, '.d.ts'), dtsContent);
78
- fs.writeFileSync(filepath.replace(/\.js$/, '.cjs'), cjsContent);
121
+ ensureDirExistsSync(folderPath);
122
+ writeIfDifferent(filepath, newContent);
123
+ writeIfDifferent(filepath.replace(/\.js$/, '.d.ts'), dtsContent);
124
+ writeIfDifferent(filepath.replace(/\.js$/, '.cjs'), cjsContent);
79
125
  }
80
126
  }
81
127
  }
@@ -87,16 +133,16 @@ function writeFiles(name, data, config) {
87
133
  if (!name) {
88
134
  const filepath = jsonFile;
89
135
  const folderPath = path.dirname(filepath);
90
- fs.mkdirSync(folderPath, { recursive: true });
91
- fs.writeFileSync(filepath, newContent);
136
+ ensureDirExistsSync(folderPath);
137
+ writeIfDifferent(filepath, newContent);
92
138
  }
93
139
  }
94
140
  else {
95
141
  if (name) {
96
142
  const filepath = `${jsonFile}/${name}.json`;
97
143
  const folderPath = path.dirname(filepath);
98
- fs.mkdirSync(folderPath, { recursive: true });
99
- fs.writeFileSync(filepath, newContent);
144
+ ensureDirExistsSync(folderPath);
145
+ writeIfDifferent(filepath, newContent);
100
146
  }
101
147
  }
102
148
  }
@@ -110,8 +156,8 @@ function writeFiles(name, data, config) {
110
156
  for (const tsFile of tsm) {
111
157
  const filepath = tsFile;
112
158
  const folderPath = path.dirname(filepath);
113
- fs.mkdirSync(folderPath, { recursive: true });
114
- fs.writeFileSync(filepath, newContent);
159
+ ensureDirExistsSync(folderPath);
160
+ writeIfDifferent(filepath, newContent);
115
161
  }
116
162
  }
117
163
  if (jsm.length > 0) {
@@ -122,47 +168,72 @@ function writeFiles(name, data, config) {
122
168
  for (const jsFile of jsm) {
123
169
  const filepath = jsFile;
124
170
  const folderPath = path.dirname(filepath);
125
- fs.mkdirSync(folderPath, { recursive: true });
126
- fs.writeFileSync(filepath, newContent);
171
+ ensureDirExistsSync(folderPath);
172
+ writeIfDifferent(filepath, newContent);
127
173
  }
128
174
  }
129
175
  }
130
176
  }
131
- export async function generateTypes(paths, config, artifactsPaths) {
177
+ export async function generateTypes(paths, config) {
178
+ const buildInfoCache = new Map();
132
179
  const allArtifacts = {};
133
180
  const shortNameDict = {};
134
- const files = traverse(paths.artifacts, [], paths.artifacts, (name) => name != 'build-info');
135
- for (const file of files) {
136
- const filepath = file.path;
137
- if (file.directory || !filepath.endsWith('.json')) {
138
- continue;
139
- }
140
- const filename = path.basename(filepath);
141
- const dirname = path.dirname(file.relativePath);
142
- // const namePath = dirname.replace('.sol', '');
143
- const contractName = filename.replace('.json', '');
144
- // const shortName = artifact.artifactsEmitted[i];
145
- // console.log({path: filepath});
146
- const content = fs.readFileSync(filepath, 'utf-8');
147
- const parsed = JSON.parse(content);
148
- // TODO read config for artifacts folder
149
- const buildInfoFilepath = path.join('artifacts', 'build-info', `${parsed.buildInfoId}.output.json`);
150
- // console.log({buildInfoFilepath});
151
- const backupBuildInfoFilepath = path.join('./generated', buildInfoFilepath.slice(buildInfoFilepath.indexOf('/', 1)));
152
- let buildInfoFilepathToUse = buildInfoFilepath;
153
- if (!fs.existsSync(buildInfoFilepathToUse)) {
154
- buildInfoFilepathToUse = backupBuildInfoFilepath;
155
- }
156
- if (fs.existsSync(buildInfoFilepathToUse)) {
157
- const buildInfoContent = fs.readFileSync(buildInfoFilepathToUse, 'utf-8');
158
- if (buildInfoFilepathToUse !== backupBuildInfoFilepath) {
159
- fs.mkdirSync(path.dirname(backupBuildInfoFilepath), { recursive: true });
160
- fs.writeFileSync(backupBuildInfoFilepath, buildInfoContent);
161
- }
162
- const parsedBuildInfo = JSON.parse(buildInfoContent);
163
- // console.log({dirname, contractName});
164
- const solidityOutput = parsedBuildInfo.output.contracts[dirname][contractName];
165
- const artifactObject = { ...parsed, ...solidityOutput };
181
+ for (const artifactsPath of paths.artifacts) {
182
+ const files = traverse(artifactsPath, [], artifactsPath, (name) => name != 'build-info' && !name.endsWith('.t.sol') && !name.endsWith('.dbg.json'));
183
+ // console.log('--------------------------');
184
+ // console.log(files);
185
+ // console.log('--------------------------');
186
+ for (const file of files) {
187
+ const filepath = file.path;
188
+ if (file.directory || !filepath.endsWith('.json')) {
189
+ continue;
190
+ }
191
+ const filename = slash(path.basename(filepath));
192
+ const dirname = slash(path.dirname(file.relativePath));
193
+ // const namePath = dirname.replace('.sol', '');
194
+ const contractName = filename.replace('.json', '');
195
+ // const shortName = artifact.artifactsEmitted[i];
196
+ // console.log({path: filepath});
197
+ const content = fs.readFileSync(filepath, 'utf-8');
198
+ const parsed = JSON.parse(content);
199
+ if (!parsed.buildInfoId)
200
+ continue;
201
+ // TODO read config for artifacts folder
202
+ let buildInfoFilepath = path.join(artifactsPath, 'build-info', `${parsed.buildInfoId}.output.json`);
203
+ if (!parsed.buildInfoId) {
204
+ // support hardhat v2 artifacts files
205
+ if (fs.existsSync(filepath.replace('.json', '.dbg.json'))) {
206
+ // console.warn(`Artifact ${filepath} does not have a buildInfoId, but found a .dbg.json file. Using that instead.`);
207
+ const dbgContent = fs.readFileSync(filepath.replace('.json', '.dbg.json'), 'utf-8');
208
+ const dbgParsed = JSON.parse(dbgContent);
209
+ const buildInfoRelativePath = dbgParsed.buildInfo;
210
+ parsed.buildInfoId = path.basename(buildInfoRelativePath, '.json');
211
+ // console.log({buildInfoRelativePath, buildInfoId: parsed.buildInfoId});
212
+ buildInfoFilepath = path.join(artifactsPath, 'build-info', `${parsed.buildInfoId}.json`);
213
+ }
214
+ }
215
+ // const backupBuildInfoFilepath = path.join(
216
+ // './generated',
217
+ // buildInfoFilepath.slice(buildInfoFilepath.indexOf('/', 1))
218
+ // );
219
+ let buildInfoFilepathToUse = buildInfoFilepath;
220
+ // if (!fs.existsSync(buildInfoFilepathToUse)) {
221
+ // buildInfoFilepathToUse = backupBuildInfoFilepath;
222
+ // }
223
+ let parsedBuildInfo;
224
+ if (!buildInfoCache.has(buildInfoFilepathToUse)) {
225
+ if (!fs.existsSync(buildInfoFilepathToUse))
226
+ continue;
227
+ const buildInfoContent = fs.readFileSync(buildInfoFilepathToUse, 'utf-8');
228
+ parsedBuildInfo = JSON.parse(buildInfoContent);
229
+ buildInfoCache.set(buildInfoFilepathToUse, parsedBuildInfo);
230
+ }
231
+ else {
232
+ parsedBuildInfo = buildInfoCache.get(buildInfoFilepathToUse);
233
+ }
234
+ const solidityOutput = parsedBuildInfo.output.contracts[parsed.inputSourceName][contractName];
235
+ const hardhatArtifactObject = { ...parsed, ...solidityOutput };
236
+ const { buildInfoId, _format, ...artifactObject } = hardhatArtifactObject;
166
237
  const fullName = `${dirname}/${contractName}`;
167
238
  allArtifacts[fullName] = artifactObject;
168
239
  if (shortNameDict[contractName]) {
@@ -189,10 +260,9 @@ export async function generateTypes(paths, config, artifactsPaths) {
189
260
  const artifact = allArtifacts[key];
190
261
  writeFiles(key, artifact, config);
191
262
  }
192
- // const json = hre.config.generateArtifacts.json || [];
263
+ // const json = hre.config.generateTypedArtifacts.json || [];
193
264
  // json.push('./generated/_artifacts.json');
194
- // writeFiles(undefined, allArtifacts, {...hre.config.generateArtifacts, json: json});
265
+ // writeFiles(undefined, allArtifacts, {...hre.config.generateTypedArtifacts, json: json});
195
266
  writeFiles(undefined, allArtifacts, config);
196
- log(`Successfully generated ${artifactsPaths.length} files!`);
197
267
  }
198
268
  //# 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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"}
@@ -1,18 +1,24 @@
1
1
  import { EdrNetworkUserConfig, NetworkUserConfig, SensitiveString } from 'hardhat/types/config';
2
2
  import { HardhatRuntimeEnvironment } from 'hardhat/types/hre';
3
- import { Environment, ProvidedContext, UnknownArtifacts, UnresolvedUnknownNamedAccounts } from 'rocketh';
4
- export declare function loadEnvironmentFromHardhat<Artifacts extends UnknownArtifacts = UnknownArtifacts, NamedAccounts extends UnresolvedUnknownNamedAccounts = UnresolvedUnknownNamedAccounts>({ hre, context }: {
3
+ import { Environment, UnresolvedUnknownNamedAccounts, UnresolvedNetworkSpecificData } from 'rocketh';
4
+ export declare function setupHardhatDeploy<Extensions extends Record<string, (env: Environment<any, any, any>) => any> = {}, NamedAccounts extends UnresolvedUnknownNamedAccounts = UnresolvedUnknownNamedAccounts, Data extends UnresolvedNetworkSpecificData = UnresolvedNetworkSpecificData>(extensions: Extensions): {
5
+ loadEnvironmentFromHardhat: (required: {
6
+ hre: HardhatRuntimeEnvironment;
7
+ }, options?: {
8
+ useChainIdOfForkedNetwork?: boolean;
9
+ }) => Promise<import("rocketh").EnhancedEnvironment<UnresolvedUnknownNamedAccounts, UnresolvedNetworkSpecificData, import("rocketh").UnknownDeployments, Extensions, Record<string, unknown>>>;
10
+ };
11
+ export declare function loadEnvironmentFromHardhat<NamedAccounts extends UnresolvedUnknownNamedAccounts = UnresolvedUnknownNamedAccounts, Data extends UnresolvedNetworkSpecificData = UnresolvedNetworkSpecificData>({ hre }: {
5
12
  hre: HardhatRuntimeEnvironment;
6
- context?: ProvidedContext<Artifacts, NamedAccounts>;
7
13
  }, options?: {
8
14
  useChainIdOfForkedNetwork?: boolean;
9
- }): Promise<Environment>;
15
+ }): Promise<Environment<NamedAccounts, Data>>;
10
16
  export declare function getRPC(networkName: string): string | SensitiveString | undefined;
11
17
  export declare function getMnemonic(networkName?: string): string | SensitiveString;
12
18
  export declare function getAccounts(networkName?: string): {
13
19
  mnemonic: string | SensitiveString;
14
20
  };
15
- export declare function addNetworksFromEnv(networks?: Record<string, EdrNetworkUserConfig>): Record<string, NetworkUserConfig>;
16
- export declare function populateNetworksFromEnv(networks: Record<string, Omit<NetworkUserConfig, 'accounts' | 'url'>>): Record<string, NetworkUserConfig>;
21
+ export declare function addNetworksFromEnv(networks?: Record<string, NetworkUserConfig>): Record<string, NetworkUserConfig>;
22
+ export declare function populateNetworksFromEnv(networks: Record<string, Omit<NetworkUserConfig, 'accounts' | 'url'> | EdrNetworkUserConfig>): Record<string, NetworkUserConfig>;
17
23
  export declare function addForkConfiguration(networks: Record<string, NetworkUserConfig>): Record<string, NetworkUserConfig>;
18
24
  //# sourceMappingURL=helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAIN,oBAAoB,EAGpB,iBAAiB,EACjB,eAAe,EACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAC,yBAAyB,EAAC,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAC,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,8BAA8B,EAAkB,MAAM,SAAS,CAAC;AAExH,wBAAsB,0BAA0B,CAC/C,SAAS,SAAS,gBAAgB,GAAG,gBAAgB,EACrD,aAAa,SAAS,8BAA8B,GAAG,8BAA8B,EAErF,EAAC,GAAG,EAAE,OAAO,EAAC,EAAE;IAAC,GAAG,EAAE,yBAAyB,CAAC;IAAC,OAAO,CAAC,EAAE,eAAe,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;CAAC,EACrG,OAAO,CAAC,EAAE;IACT,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACpC,GACC,OAAO,CAAC,WAAW,CAAC,CAsEtB;AAED,wBAAgB,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,eAAe,GAAG,SAAS,CA0BhF;AAED,wBAAgB,WAAW,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,eAAe,CAiB1E;AAED,wBAAgB,WAAW,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG;IAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,CAAA;CAAC,CAEtF;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAuBrH;AAED,wBAAgB,uBAAuB,CACtC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,UAAU,GAAG,KAAK,CAAC,CAAC,GACnE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAkBnC;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAmDnH"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAEN,oBAAoB,EAEpB,iBAAiB,EACjB,eAAe,EACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAC,yBAAyB,EAAC,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EACN,WAAW,EACX,8BAA8B,EAC9B,6BAA6B,EAG7B,MAAM,SAAS,CAAC;AAEjB,wBAAgB,kBAAkB,CACjC,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,EAAE,EAChF,aAAa,SAAS,8BAA8B,GAAG,8BAA8B,EACrF,IAAI,SAAS,6BAA6B,GAAG,6BAA6B,EACzE,UAAU,EAAE,UAAU;2CAEZ;QAAC,GAAG,EAAE,yBAAyB,CAAA;KAAC,YAChC;QACT,yBAAyB,CAAC,EAAE,OAAO,CAAC;KACpC;EASF;AAED,wBAAsB,0BAA0B,CAC/C,aAAa,SAAS,8BAA8B,GAAG,8BAA8B,EACrF,IAAI,SAAS,6BAA6B,GAAG,6BAA6B,EAE1E,EAAC,GAAG,EAAC,EAAE;IAAC,GAAG,EAAE,yBAAyB,CAAA;CAAC,EACvC,OAAO,CAAC,EAAE;IACT,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACpC,GACC,OAAO,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAuE3C;AAiBD,wBAAgB,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,eAAe,GAAG,SAAS,CAuBhF;AAED,wBAAgB,WAAW,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,eAAe,CAc1E;AAED,wBAAgB,WAAW,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG;IAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,CAAA;CAAC,CAEtF;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAuBlH;AAED,wBAAgB,uBAAuB,CACtC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,UAAU,GAAG,KAAK,CAAC,GAAG,oBAAoB,CAAC,GAC1F,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAuBnC;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAsDnH"}
@@ -1,6 +1,15 @@
1
1
  import { configVariable } from 'hardhat/config';
2
- import { loadEnvironment } from 'rocketh';
3
- export async function loadEnvironmentFromHardhat({ hre, context }, options) {
2
+ import { loadEnvironment, enhanceEnvIfNeeded, } from 'rocketh';
3
+ export function setupHardhatDeploy(extensions) {
4
+ async function loadEnvironmentFromHardhatWithExtensions(required, options) {
5
+ const env = await loadEnvironmentFromHardhat(required, options);
6
+ return enhanceEnvIfNeeded(env, extensions);
7
+ }
8
+ return {
9
+ loadEnvironmentFromHardhat: loadEnvironmentFromHardhatWithExtensions,
10
+ };
11
+ }
12
+ export async function loadEnvironmentFromHardhat({ hre }, options) {
4
13
  const connection = await hre.network.connect();
5
14
  let provider = connection.provider;
6
15
  let network = connection.networkName;
@@ -9,7 +18,7 @@ export async function loadEnvironmentFromHardhat({ hre, context }, options) {
9
18
  if (fork) {
10
19
  if (options?.useChainIdOfForkedNetwork) {
11
20
  const forkNetworkConfig = hre.config.networks[fork];
12
- if (forkNetworkConfig.type === 'edr') {
21
+ if (forkNetworkConfig.type === 'edr-simulated') {
13
22
  forkChainId = forkNetworkConfig.chainId;
14
23
  }
15
24
  else if (forkNetworkConfig.chainId) {
@@ -62,18 +71,32 @@ export async function loadEnvironmentFromHardhat({ hre, context }, options) {
62
71
  },
63
72
  });
64
73
  }
74
+ // console.log(`loading environments...`);
65
75
  return loadEnvironment({
66
76
  provider,
67
77
  network,
68
- }, context || { artifacts: {} } // TODO
69
- );
78
+ extra: {
79
+ connection,
80
+ },
81
+ });
70
82
  }
71
- export function getRPC(networkName) {
72
- const variableName = 'ETH_NODE_URI_' + networkName;
83
+ function getVariable(prefix, name) {
84
+ const variableName = prefix + name;
73
85
  let uri = process.env[variableName];
74
86
  if (uri === 'SECRET') {
75
87
  return configVariable(`SECRET_${variableName}`);
76
88
  }
89
+ else if (uri?.startsWith('SECRET:')) {
90
+ const splitted = uri.split(':');
91
+ if (splitted.length !== 2) {
92
+ throw new Error(`invalid secret uri ${uri}`);
93
+ }
94
+ return configVariable(`SECRET_${prefix + splitted[1]}`);
95
+ }
96
+ return uri;
97
+ }
98
+ export function getRPC(networkName) {
99
+ let uri = getVariable('ETH_NODE_URI_', networkName);
77
100
  if (uri && uri !== '') {
78
101
  return uri;
79
102
  }
@@ -95,11 +118,7 @@ export function getRPC(networkName) {
95
118
  }
96
119
  export function getMnemonic(networkName) {
97
120
  if (networkName) {
98
- const variableName = 'MNEMONIC_' + networkName;
99
- const mnemonic = process.env[variableName];
100
- if (mnemonic === 'SECRET') {
101
- return configVariable(`SECRET_${variableName}`);
102
- }
121
+ const mnemonic = getVariable('MNEMONIC_', networkName);
103
122
  if (mnemonic && mnemonic !== '') {
104
123
  return mnemonic;
105
124
  }
@@ -142,19 +161,25 @@ export function addNetworksFromEnv(networks) {
142
161
  export function populateNetworksFromEnv(networks) {
143
162
  const newNetworks = {};
144
163
  for (const networkName of Object.keys(networks)) {
145
- if (networkName === 'hardhat') {
146
- continue;
147
- }
148
- const url = getRPC(networkName);
149
- if (url) {
150
- newNetworks[networkName] = {
151
- ...networks[networkName],
152
- url,
153
- accounts: getAccounts(networkName),
154
- };
164
+ const network = networks[networkName];
165
+ if (network.type === 'edr-simulated') {
166
+ // we leave memory network alone
167
+ newNetworks[networkName] = network;
155
168
  }
156
169
  else {
157
- console.error(`no url for network ${networkName}`);
170
+ const url = getRPC(networkName);
171
+ if (url) {
172
+ newNetworks[networkName] = {
173
+ ...network,
174
+ url,
175
+ accounts: getAccounts(networkName),
176
+ };
177
+ }
178
+ else {
179
+ if (!('url' in network) || !network.url) {
180
+ console.error(`no url for network ${networkName}`);
181
+ }
182
+ }
158
183
  }
159
184
  }
160
185
  return newNetworks;
@@ -166,6 +191,7 @@ export function addForkConfiguration(networks) {
166
191
  if (currentNetworkName &&
167
192
  currentNetworkName !== 'hardhat' &&
168
193
  currentNetworkName !== 'edr' &&
194
+ currentNetworkName !== 'edr-simulated' &&
169
195
  currentNetworkName !== 'memory') {
170
196
  const currentNetwork = networks[currentNetworkName];
171
197
  if (currentNetwork) {
@@ -185,7 +211,9 @@ export function addForkConfiguration(networks) {
185
211
  }
186
212
  }
187
213
  }
188
- const existingHardhat = networks.hardhat && networks.hardhat.type === 'edr' ? networks.hardhat : { type: 'edr', chainType: 'l1' };
214
+ const existingHardhat = networks.hardhat && networks.hardhat.type === 'edr-simulated'
215
+ ? networks.hardhat
216
+ : { type: 'edr-simulated', chainType: 'l1' };
189
217
  const newNetworks = {
190
218
  ...populateNetworksFromEnv(networks),
191
219
  hardhat: {