@openzeppelin/upgrades-core 1.45.0-alpha.0 → 1.45.0-alpha.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.
@@ -108,6 +108,20 @@ async function readBuildInfo(buildInfoFilePaths, dirShortName) {
108
108
  }
109
109
  return buildInfoFiles;
110
110
  }
111
+ const FOUNDRY_BUILD_INFO_HELP = `\
112
+ Foundry build-info files must contain Solidity compiler input, output, and solcVersion.
113
+ Ensure foundry.toml has:
114
+ [profile.default]
115
+ build_info = true
116
+ extra_output = ["storageLayout"]
117
+ Then run: ${FOUNDRY_COMPILE_COMMAND}`;
118
+ const HH3_BUILD_INFO_HELP = `\
119
+ Hardhat 3's build-info uses a main .json file (input, solcVersion) and a separate .output.json (output).
120
+ Ensure you compile with Hardhat 3 so that artifacts/build-info/ contains both the main files and the .output.json files.
121
+ Run: ${HARDHAT_COMPILE_COMMAND}`;
122
+ const GENERIC_BUILD_INFO_HELP = `\
123
+ If using Foundry, ensure foundry.toml has build_info = true and extra_output = ["storageLayout"], then compile with '${FOUNDRY_COMPILE_COMMAND}'.
124
+ If using Hardhat, compile with '${HARDHAT_COMPILE_COMMAND}'.`;
111
125
  async function loadBuildInfo(buildInfoFilePath) {
112
126
  const buildInfoJson = await readJSON(buildInfoFilePath);
113
127
  if (buildInfoJson.input !== undefined &&
@@ -120,61 +134,66 @@ async function loadBuildInfo(buildInfoFilePath) {
120
134
  };
121
135
  }
122
136
  const format = buildInfoJson._format;
123
- if (typeof format === 'string' &&
124
- (format.startsWith('hh3-sol-build-info') || format.startsWith('hh-sol-build-info'))) {
125
- if (buildInfoJson.input !== undefined && buildInfoJson.solcVersion !== undefined) {
126
- let inputData = buildInfoJson.input;
127
- let outputData = buildInfoJson.output;
137
+ // Foundry (ethers-rs-sol-build-info-1) normally has input, output, solcVersion at top level.
138
+ // If we reach here with Foundry format, a field is missing — suggest recompiling.
139
+ if (typeof format === 'string' && format.startsWith('ethers-rs-sol-build-info')) {
140
+ throw new error_1.ValidateCommandError(`Build info file ${buildInfoFilePath} must contain Solidity compiler input, output, and solcVersion. Got format: ${format}.`, () => FOUNDRY_BUILD_INFO_HELP);
141
+ }
142
+ if (typeof format === 'string' && format.startsWith('hh3-sol-build-info')) {
143
+ if (buildInfoJson.input === undefined || buildInfoJson.solcVersion === undefined) {
144
+ throw new error_1.ValidateCommandError(`Build info file ${buildInfoFilePath} (Hardhat 3 format) must contain input and solcVersion. Got format: ${format}.`, () => HH3_BUILD_INFO_HELP);
145
+ }
146
+ let inputData = buildInfoJson.input;
147
+ let outputData = buildInfoJson.output;
148
+ if (outputData === undefined) {
149
+ const { dir, name } = path_1.default.parse(buildInfoFilePath);
150
+ const outputFilePath = path_1.default.join(dir, `${name}.output.json`);
151
+ try {
152
+ const outputJson = await readJSON(outputFilePath);
153
+ outputData = outputJson.output ?? outputJson;
154
+ }
155
+ catch (error) {
156
+ throw new error_1.ValidateCommandError(`Build info file ${buildInfoFilePath} does not contain output, and output file ${outputFilePath} could not be read.`, () => HH3_BUILD_INFO_HELP);
157
+ }
128
158
  if (outputData === undefined) {
129
- const { dir, name } = path_1.default.parse(buildInfoFilePath);
130
- const outputFilePath = path_1.default.join(dir, `${name}.output.json`);
131
- try {
132
- const outputJson = await readJSON(outputFilePath);
133
- outputData = outputJson.output ?? outputJson;
134
- }
135
- catch (error) {
136
- throw new error_1.ValidateCommandError(`Build info file ${buildInfoFilePath} does not contain output, and output file ${outputFilePath} could not be read.`);
137
- }
138
- if (outputData === undefined) {
139
- throw new error_1.ValidateCommandError(`Build info file ${buildInfoFilePath} does not contain output, and output file ${outputFilePath} is missing Solidity compiler output.`);
140
- }
159
+ throw new error_1.ValidateCommandError(`Build info file ${buildInfoFilePath} does not contain output, and output file ${outputFilePath} is missing Solidity compiler output.`, () => HH3_BUILD_INFO_HELP);
141
160
  }
142
- const userSourceNameMap = buildInfoJson.userSourceNameMap;
143
- if (userSourceNameMap !== undefined) {
144
- const canonicalToUser = {};
145
- for (const [userSource, canonicalSource] of Object.entries(userSourceNameMap)) {
146
- canonicalToUser[canonicalSource] = userSource;
147
- }
148
- if (inputData.sources !== undefined) {
149
- inputData = {
150
- ...inputData,
151
- sources: remapKeys(inputData.sources, canonicalToUser),
152
- };
153
- }
154
- if (outputData.sources !== undefined) {
155
- outputData = {
156
- ...outputData,
157
- sources: remapKeys(outputData.sources, canonicalToUser),
158
- contracts: outputData.contracts !== undefined
159
- ? remapKeys(outputData.contracts, canonicalToUser)
160
- : outputData.contracts,
161
- };
162
- }
163
- else if (outputData.contracts !== undefined) {
164
- outputData = {
165
- ...outputData,
166
- contracts: remapKeys(outputData.contracts, canonicalToUser),
167
- };
168
- }
161
+ }
162
+ const userSourceNameMap = buildInfoJson.userSourceNameMap;
163
+ if (userSourceNameMap !== undefined) {
164
+ const canonicalToUser = {};
165
+ for (const [userSource, canonicalSource] of Object.entries(userSourceNameMap)) {
166
+ canonicalToUser[canonicalSource] = userSource;
167
+ }
168
+ if (inputData.sources !== undefined) {
169
+ inputData = {
170
+ ...inputData,
171
+ sources: remapKeys(inputData.sources, canonicalToUser),
172
+ };
173
+ }
174
+ if (outputData.sources !== undefined) {
175
+ outputData = {
176
+ ...outputData,
177
+ sources: remapKeys(outputData.sources, canonicalToUser),
178
+ contracts: outputData.contracts !== undefined
179
+ ? remapKeys(outputData.contracts, canonicalToUser)
180
+ : outputData.contracts,
181
+ };
182
+ }
183
+ else if (outputData.contracts !== undefined) {
184
+ outputData = {
185
+ ...outputData,
186
+ contracts: remapKeys(outputData.contracts, canonicalToUser),
187
+ };
169
188
  }
170
- return {
171
- input: inputData,
172
- output: outputData,
173
- solcVersion: buildInfoJson.solcVersion,
174
- };
175
189
  }
190
+ return {
191
+ input: inputData,
192
+ output: outputData,
193
+ solcVersion: buildInfoJson.solcVersion,
194
+ };
176
195
  }
177
- throw new error_1.ValidateCommandError(`Build info file ${buildInfoFilePath} must contain Solidity compiler input, output, and solcVersion. Got format: ${format ?? 'unknown'}.`);
196
+ throw new error_1.ValidateCommandError(`Build info from ${buildInfoFilePath} must include Solidity compiler input, output, and solcVersion. Got format: ${format ?? 'unknown'}.`, () => GENERIC_BUILD_INFO_HELP);
178
197
  }
179
198
  /**
180
199
  * Gives an error if there is empty output selection for any contract, or a contract does not have storage layout.
@@ -1 +1 @@
1
- {"version":3,"file":"build-info-file.js","sourceRoot":"","sources":["../../../src/cli/validate/build-info-file.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build-info-file.js","sourceRoot":"","sources":["../../../src/cli/validate/build-info-file.ts"],"names":[],"mappings":"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"}
@@ -328,11 +328,50 @@ ava_1.default.serial('get build info files - override with custom absolute path'
328
328
  const buildInfoFiles = await (0, build_info_file_1.getBuildInfoFiles)(path_1.default.join(process.cwd(), 'custom/build-info'));
329
329
  assertBuildInfoFiles(t, buildInfoFiles);
330
330
  });
331
- ava_1.default.serial('invalid build info file', async (t) => {
331
+ ava_1.default.serial('generic invalid build info file', async (t) => {
332
332
  await fs_1.promises.mkdir('invalid-build-info', { recursive: true });
333
333
  await fs_1.promises.writeFile('invalid-build-info/invalid.json', JSON.stringify({ output: {} }));
334
334
  const error = await t.throwsAsync((0, build_info_file_1.getBuildInfoFiles)('invalid-build-info'));
335
+ t.true(error?.message.includes('must include Solidity compiler input, output, and solcVersion'));
336
+ });
337
+ ava_1.default.serial('Foundry format (ethers-rs) with missing output suggests forge clean && forge build', async (t) => {
338
+ await fs_1.promises.mkdir('foundry-format-missing', { recursive: true });
339
+ await fs_1.promises.writeFile('foundry-format-missing/build.json', JSON.stringify({
340
+ _format: 'ethers-rs-sol-build-info-1',
341
+ input: BUILD_INFO.input,
342
+ solcVersion: '0.8.31',
343
+ // output missing
344
+ }));
345
+ const error = await t.throwsAsync((0, build_info_file_1.getBuildInfoFiles)('foundry-format-missing'));
335
346
  t.true(error?.message.includes('must contain Solidity compiler input, output, and solcVersion'));
347
+ t.true(error?.message.includes('ethers-rs-sol-build-info'));
348
+ t.true(error?.message.includes('forge clean && forge build'));
349
+ });
350
+ ava_1.default.serial('Hardhat 3 format with missing .output.json suggests hardhat compile', async (t) => {
351
+ await fs_1.promises.mkdir('hh3-format-missing-output', { recursive: true });
352
+ await fs_1.promises.writeFile('hh3-format-missing-output/solc-0_8_0-abc123.json', JSON.stringify({
353
+ _format: 'hh3-sol-build-info-1',
354
+ input: BUILD_INFO.input,
355
+ solcVersion: '0.8.9',
356
+ // output in separate .output.json which we do not create
357
+ }));
358
+ const error = await t.throwsAsync((0, build_info_file_1.getBuildInfoFiles)('hh3-format-missing-output'));
359
+ t.true(error?.message.includes('could not be read') || error?.message.includes('missing Solidity compiler output'));
360
+ t.true(error?.message.includes('hardhat compile'));
361
+ });
362
+ ava_1.default.serial('Hardhat 2 format with missing output falls back to generic help', async (t) => {
363
+ await fs_1.promises.mkdir('invalid-hh2-build-info', { recursive: true });
364
+ // Missing output but has an hh2-style _format with input and solcVersion.
365
+ await fs_1.promises.writeFile('invalid-hh2-build-info/invalid.json', JSON.stringify({
366
+ _format: 'hh-sol-build-info-1',
367
+ input: BUILD_INFO.input,
368
+ solcVersion: '0.8.9',
369
+ // output missing
370
+ }));
371
+ const error = await t.throwsAsync((0, build_info_file_1.getBuildInfoFiles)('invalid-hh2-build-info'));
372
+ t.true(error?.message.includes('must include Solidity compiler input, output, and solcVersion'));
373
+ t.true(error?.message.includes('invalid.json'));
374
+ t.false(error?.message.includes('Hardhat 3'));
336
375
  });
337
376
  ava_1.default.serial('dir does not exist', async (t) => {
338
377
  const error = await t.throwsAsync((0, build_info_file_1.getBuildInfoFiles)('invalid-dir'));
@@ -1 +1 @@
1
- {"version":3,"file":"build-info-file.test.js","sourceRoot":"","sources":["../../../src/cli/validate/build-info-file.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build-info-file.test.js","sourceRoot":"","sources":["../../../src/cli/validate/build-info-file.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openzeppelin/upgrades-core",
3
- "version": "1.45.0-alpha.0",
3
+ "version": "1.45.0-alpha.1",
4
4
  "description": "",
5
5
  "repository": "https://github.com/OpenZeppelin/openzeppelin-upgrades",
6
6
  "license": "MIT",
@@ -357,12 +357,67 @@ test.serial('get build info files - override with custom absolute path', async t
357
357
  assertBuildInfoFiles(t, buildInfoFiles);
358
358
  });
359
359
 
360
- test.serial('invalid build info file', async t => {
360
+ test.serial('generic invalid build info file', async t => {
361
361
  await fs.mkdir('invalid-build-info', { recursive: true });
362
362
 
363
363
  await fs.writeFile('invalid-build-info/invalid.json', JSON.stringify({ output: {} }));
364
364
  const error = await t.throwsAsync(getBuildInfoFiles('invalid-build-info'));
365
+ t.true(error?.message.includes('must include Solidity compiler input, output, and solcVersion'));
366
+ });
367
+
368
+ test.serial('Foundry format (ethers-rs) with missing output suggests forge clean && forge build', async t => {
369
+ await fs.mkdir('foundry-format-missing', { recursive: true });
370
+
371
+ await fs.writeFile(
372
+ 'foundry-format-missing/build.json',
373
+ JSON.stringify({
374
+ _format: 'ethers-rs-sol-build-info-1',
375
+ input: BUILD_INFO.input,
376
+ solcVersion: '0.8.31',
377
+ // output missing
378
+ }),
379
+ );
380
+ const error = await t.throwsAsync(getBuildInfoFiles('foundry-format-missing'));
365
381
  t.true(error?.message.includes('must contain Solidity compiler input, output, and solcVersion'));
382
+ t.true(error?.message.includes('ethers-rs-sol-build-info'));
383
+ t.true(error?.message.includes('forge clean && forge build'));
384
+ });
385
+
386
+ test.serial('Hardhat 3 format with missing .output.json suggests hardhat compile', async t => {
387
+ await fs.mkdir('hh3-format-missing-output', { recursive: true });
388
+
389
+ await fs.writeFile(
390
+ 'hh3-format-missing-output/solc-0_8_0-abc123.json',
391
+ JSON.stringify({
392
+ _format: 'hh3-sol-build-info-1',
393
+ input: BUILD_INFO.input,
394
+ solcVersion: '0.8.9',
395
+ // output in separate .output.json which we do not create
396
+ }),
397
+ );
398
+ const error = await t.throwsAsync(getBuildInfoFiles('hh3-format-missing-output'));
399
+ t.true(error?.message.includes('could not be read') || error?.message.includes('missing Solidity compiler output'));
400
+ t.true(error?.message.includes('hardhat compile'));
401
+ });
402
+
403
+ test.serial('Hardhat 2 format with missing output falls back to generic help', async t => {
404
+ await fs.mkdir('invalid-hh2-build-info', { recursive: true });
405
+
406
+ // Missing output but has an hh2-style _format with input and solcVersion.
407
+ await fs.writeFile(
408
+ 'invalid-hh2-build-info/invalid.json',
409
+ JSON.stringify({
410
+ _format: 'hh-sol-build-info-1',
411
+ input: BUILD_INFO.input,
412
+ solcVersion: '0.8.9',
413
+ // output missing
414
+ }),
415
+ );
416
+
417
+ const error = await t.throwsAsync(getBuildInfoFiles('invalid-hh2-build-info'));
418
+ t.true(error?.message.includes('must include Solidity compiler input, output, and solcVersion'));
419
+ t.true(error?.message.includes('invalid.json'));
420
+ t.false(error?.message.includes('Hardhat 3'));
366
421
  });
367
422
 
368
423
  test.serial('dir does not exist', async t => {
@@ -151,6 +151,23 @@ async function readBuildInfo(buildInfoFilePaths: string[], dirShortName: string)
151
151
  return buildInfoFiles;
152
152
  }
153
153
 
154
+ const FOUNDRY_BUILD_INFO_HELP = `\
155
+ Foundry build-info files must contain Solidity compiler input, output, and solcVersion.
156
+ Ensure foundry.toml has:
157
+ [profile.default]
158
+ build_info = true
159
+ extra_output = ["storageLayout"]
160
+ Then run: ${FOUNDRY_COMPILE_COMMAND}`;
161
+
162
+ const HH3_BUILD_INFO_HELP = `\
163
+ Hardhat 3's build-info uses a main .json file (input, solcVersion) and a separate .output.json (output).
164
+ Ensure you compile with Hardhat 3 so that artifacts/build-info/ contains both the main files and the .output.json files.
165
+ Run: ${HARDHAT_COMPILE_COMMAND}`;
166
+
167
+ const GENERIC_BUILD_INFO_HELP = `\
168
+ If using Foundry, ensure foundry.toml has build_info = true and extra_output = ["storageLayout"], then compile with '${FOUNDRY_COMPILE_COMMAND}'.
169
+ If using Hardhat, compile with '${HARDHAT_COMPILE_COMMAND}'.`;
170
+
154
171
  async function loadBuildInfo(buildInfoFilePath: string): Promise<{
155
172
  input: SolcInput;
156
173
  output: SolcOutput;
@@ -172,75 +189,88 @@ async function loadBuildInfo(buildInfoFilePath: string): Promise<{
172
189
 
173
190
  const format = buildInfoJson._format as string | undefined;
174
191
 
175
- if (
176
- typeof format === 'string' &&
177
- (format.startsWith('hh3-sol-build-info') || format.startsWith('hh-sol-build-info'))
178
- ) {
179
- if (buildInfoJson.input !== undefined && buildInfoJson.solcVersion !== undefined) {
180
- let inputData: SolcInput = buildInfoJson.input;
181
- let outputData: SolcOutput | undefined = buildInfoJson.output;
192
+ // Foundry (ethers-rs-sol-build-info-1) normally has input, output, solcVersion at top level.
193
+ // If we reach here with Foundry format, a field is missing — suggest recompiling.
194
+ if (typeof format === 'string' && format.startsWith('ethers-rs-sol-build-info')) {
195
+ throw new ValidateCommandError(
196
+ `Build info file ${buildInfoFilePath} must contain Solidity compiler input, output, and solcVersion. Got format: ${format}.`,
197
+ () => FOUNDRY_BUILD_INFO_HELP,
198
+ );
199
+ }
200
+
201
+ if (typeof format === 'string' && format.startsWith('hh3-sol-build-info')) {
202
+ if (buildInfoJson.input === undefined || buildInfoJson.solcVersion === undefined) {
203
+ throw new ValidateCommandError(
204
+ `Build info file ${buildInfoFilePath} (Hardhat 3 format) must contain input and solcVersion. Got format: ${format}.`,
205
+ () => HH3_BUILD_INFO_HELP,
206
+ );
207
+ }
208
+ let inputData: SolcInput = buildInfoJson.input;
209
+ let outputData: SolcOutput | undefined = buildInfoJson.output;
210
+
211
+ if (outputData === undefined) {
212
+ const { dir, name } = path.parse(buildInfoFilePath);
213
+ const outputFilePath = path.join(dir, `${name}.output.json`);
214
+
215
+ try {
216
+ const outputJson = await readJSON(outputFilePath);
217
+ outputData = outputJson.output ?? outputJson;
218
+ } catch (error) {
219
+ throw new ValidateCommandError(
220
+ `Build info file ${buildInfoFilePath} does not contain output, and output file ${outputFilePath} could not be read.`,
221
+ () => HH3_BUILD_INFO_HELP,
222
+ );
223
+ }
182
224
 
183
225
  if (outputData === undefined) {
184
- const { dir, name } = path.parse(buildInfoFilePath);
185
- const outputFilePath = path.join(dir, `${name}.output.json`);
186
-
187
- try {
188
- const outputJson = await readJSON(outputFilePath);
189
- outputData = outputJson.output ?? outputJson;
190
- } catch (error) {
191
- throw new ValidateCommandError(
192
- `Build info file ${buildInfoFilePath} does not contain output, and output file ${outputFilePath} could not be read.`,
193
- );
194
- }
195
-
196
- if (outputData === undefined) {
197
- throw new ValidateCommandError(
198
- `Build info file ${buildInfoFilePath} does not contain output, and output file ${outputFilePath} is missing Solidity compiler output.`,
199
- );
200
- }
226
+ throw new ValidateCommandError(
227
+ `Build info file ${buildInfoFilePath} does not contain output, and output file ${outputFilePath} is missing Solidity compiler output.`,
228
+ () => HH3_BUILD_INFO_HELP,
229
+ );
230
+ }
231
+ }
232
+
233
+ const userSourceNameMap: Record<string, string> | undefined = buildInfoJson.userSourceNameMap;
234
+ if (userSourceNameMap !== undefined) {
235
+ const canonicalToUser: Record<string, string> = {};
236
+ for (const [userSource, canonicalSource] of Object.entries(userSourceNameMap)) {
237
+ canonicalToUser[canonicalSource] = userSource;
201
238
  }
202
239
 
203
- const userSourceNameMap: Record<string, string> | undefined = buildInfoJson.userSourceNameMap;
204
- if (userSourceNameMap !== undefined) {
205
- const canonicalToUser: Record<string, string> = {};
206
- for (const [userSource, canonicalSource] of Object.entries(userSourceNameMap)) {
207
- canonicalToUser[canonicalSource] = userSource;
208
- }
209
-
210
- if (inputData.sources !== undefined) {
211
- inputData = {
212
- ...inputData,
213
- sources: remapKeys(inputData.sources, canonicalToUser),
214
- };
215
- }
216
-
217
- if (outputData.sources !== undefined) {
218
- outputData = {
219
- ...outputData,
220
- sources: remapKeys(outputData.sources, canonicalToUser),
221
- contracts:
222
- outputData.contracts !== undefined
223
- ? remapKeys(outputData.contracts, canonicalToUser)
224
- : outputData.contracts,
225
- };
226
- } else if (outputData.contracts !== undefined) {
227
- outputData = {
228
- ...outputData,
229
- contracts: remapKeys(outputData.contracts, canonicalToUser),
230
- };
231
- }
240
+ if (inputData.sources !== undefined) {
241
+ inputData = {
242
+ ...inputData,
243
+ sources: remapKeys(inputData.sources, canonicalToUser),
244
+ };
232
245
  }
233
246
 
234
- return {
235
- input: inputData,
236
- output: outputData,
237
- solcVersion: buildInfoJson.solcVersion,
238
- };
247
+ if (outputData.sources !== undefined) {
248
+ outputData = {
249
+ ...outputData,
250
+ sources: remapKeys(outputData.sources, canonicalToUser),
251
+ contracts:
252
+ outputData.contracts !== undefined
253
+ ? remapKeys(outputData.contracts, canonicalToUser)
254
+ : outputData.contracts,
255
+ };
256
+ } else if (outputData.contracts !== undefined) {
257
+ outputData = {
258
+ ...outputData,
259
+ contracts: remapKeys(outputData.contracts, canonicalToUser),
260
+ };
261
+ }
239
262
  }
263
+
264
+ return {
265
+ input: inputData,
266
+ output: outputData,
267
+ solcVersion: buildInfoJson.solcVersion,
268
+ };
240
269
  }
241
270
 
242
271
  throw new ValidateCommandError(
243
- `Build info file ${buildInfoFilePath} must contain Solidity compiler input, output, and solcVersion. Got format: ${format ?? 'unknown'}.`,
272
+ `Build info from ${buildInfoFilePath} must include Solidity compiler input, output, and solcVersion. Got format: ${format ?? 'unknown'}.`,
273
+ () => GENERIC_BUILD_INFO_HELP,
244
274
  );
245
275
  }
246
276