@openzeppelin/upgrades-core 1.27.3 → 1.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/cli.test.js +93 -3
- package/dist/cli/cli.test.js.map +1 -1
- package/dist/cli/index.d.ts +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +2 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/validate/build-info-file.test.js +2 -4
- package/dist/cli/validate/build-info-file.test.js.map +1 -1
- package/dist/cli/validate/contract-report.d.ts +3 -1
- package/dist/cli/validate/contract-report.d.ts.map +1 -1
- package/dist/cli/validate/contract-report.js +7 -6
- package/dist/cli/validate/contract-report.js.map +1 -1
- package/dist/cli/validate/find-contract.d.ts +14 -0
- package/dist/cli/validate/find-contract.d.ts.map +1 -0
- package/dist/cli/validate/find-contract.js +32 -0
- package/dist/cli/validate/find-contract.js.map +1 -0
- package/dist/cli/validate/project-report.test.js +1 -2
- package/dist/cli/validate/project-report.test.js.map +1 -1
- package/dist/cli/validate/upgradeability-assessment.d.ts +1 -12
- package/dist/cli/validate/upgradeability-assessment.d.ts.map +1 -1
- package/dist/cli/validate/upgradeability-assessment.js +17 -40
- package/dist/cli/validate/upgradeability-assessment.js.map +1 -1
- package/dist/cli/validate/validate-upgrade-safety.d.ts +8 -1
- package/dist/cli/validate/validate-upgrade-safety.d.ts.map +1 -1
- package/dist/cli/validate/validate-upgrade-safety.js +20 -2
- package/dist/cli/validate/validate-upgrade-safety.js.map +1 -1
- package/dist/cli/validate/validate-upgrade-safety.test.js +4 -6
- package/dist/cli/validate/validate-upgrade-safety.test.js.map +1 -1
- package/dist/cli/validate.d.ts +2 -0
- package/dist/cli/validate.d.ts.map +1 -1
- package/dist/cli/validate.js +19 -3
- package/dist/cli/validate.js.map +1 -1
- package/dist/cli/validate.test.js.map +1 -1
- package/dist/deployment.d.ts.map +1 -1
- package/dist/deployment.js.map +1 -1
- package/dist/impl-store.test.js +2 -4
- package/dist/impl-store.test.js.map +1 -1
- package/dist/scripts/migrate-oz-cli-project.test.js +2 -4
- package/dist/scripts/migrate-oz-cli-project.test.js.map +1 -1
- package/dist/standalone.d.ts.map +1 -1
- package/dist/standalone.js.map +1 -1
- package/dist/storage/compare.d.ts.map +1 -1
- package/dist/storage/compare.js.map +1 -1
- package/dist/storage/extract.d.ts +1 -1
- package/dist/storage/extract.d.ts.map +1 -1
- package/dist/storage/extract.js.map +1 -1
- package/dist/storage/report-gap.test.js +1 -2
- package/dist/storage/report-gap.test.js.map +1 -1
- package/dist/storage/report-rename-retype.test.js +1 -2
- package/dist/storage/report-rename-retype.test.js.map +1 -1
- package/dist/storage/report-retype-from-contract.test.js +1 -2
- package/dist/storage/report-retype-from-contract.test.js.map +1 -1
- package/dist/storage/report.test.js +1 -2
- package/dist/storage/report.test.js.map +1 -1
- package/dist/storage-0.8.test.js +1 -2
- package/dist/storage-0.8.test.js.map +1 -1
- package/dist/storage-memory-0.5.test.js +1 -2
- package/dist/storage-memory-0.5.test.js.map +1 -1
- package/dist/storage.test.js +1 -2
- package/dist/storage.test.js.map +1 -1
- package/dist/utils/function.d.ts +1 -1
- package/dist/utils/function.d.ts.map +1 -1
- package/dist/utils/function.test.js +1 -2
- package/dist/utils/function.test.js.map +1 -1
- package/dist/validate/error.d.ts.map +1 -1
- package/dist/validate/error.js.map +1 -1
- package/dist/validate/overrides.js +1 -1
- package/dist/validate/overrides.js.map +1 -1
- package/dist/validate/query.d.ts.map +1 -1
- package/dist/validate/query.js +3 -1
- package/dist/validate/query.js.map +1 -1
- package/dist/validate/report.js +2 -2
- package/dist/validate/report.js.map +1 -1
- package/dist/validate/run.d.ts +1 -1
- package/dist/validate/run.d.ts.map +1 -1
- package/dist/validate/run.js +1 -2
- package/dist/validate/run.js.map +1 -1
- package/dist/validate.test.js +3 -0
- package/dist/validate.test.js.map +1 -1
- package/package.json +7 -7
- package/src/cli/cli.test.ts +131 -2
- package/src/cli/cli.test.ts.md +96 -2
- package/src/cli/cli.test.ts.snap +0 -0
- package/src/cli/index.ts +1 -1
- package/src/cli/validate/build-info-file.test.ts +1 -4
- package/src/cli/validate/contract-report.ts +19 -7
- package/src/cli/validate/find-contract.ts +44 -0
- package/src/cli/validate/project-report.test.ts +1 -2
- package/src/cli/validate/project-report.test.ts.md +4 -4
- package/src/cli/validate/project-report.test.ts.snap +0 -0
- package/src/cli/validate/upgradeability-assessment.ts +18 -50
- package/src/cli/validate/validate-upgrade-safety.test.ts +2 -5
- package/src/cli/validate/validate-upgrade-safety.test.ts.md +2 -2
- package/src/cli/validate/validate-upgrade-safety.test.ts.snap +0 -0
- package/src/cli/validate/validate-upgrade-safety.ts +32 -2
- package/src/cli/validate/validations.test.ts.md +2 -2
- package/src/cli/validate/validations.test.ts.snap +0 -0
- package/src/cli/validate.test.ts +1 -1
- package/src/cli/validate.ts +28 -4
- package/src/deployment.ts +5 -1
- package/src/impl-store.test.ts +1 -4
- package/src/scripts/migrate-oz-cli-project.test.ts +1 -3
- package/src/standalone.ts +6 -1
- package/src/storage/compare.ts +4 -1
- package/src/storage/extract.ts +1 -2
- package/src/storage/report-gap.test.ts +1 -2
- package/src/storage/report-rename-retype.test.ts +1 -2
- package/src/storage/report-retype-from-contract.test.ts +1 -2
- package/src/storage/report.test.ts +1 -2
- package/src/storage-0.8.test.ts +1 -2
- package/src/storage-memory-0.5.test.ts +1 -2
- package/src/storage.test.ts +1 -2
- package/src/utils/function.test.ts +1 -2
- package/src/utils/function.ts +1 -1
- package/src/validate/error.ts +4 -1
- package/src/validate/overrides.ts +1 -1
- package/src/validate/query.ts +5 -1
- package/src/validate/report.ts +3 -2
- package/src/validate/run.ts +2 -3
- package/src/validate.test.ts +3 -0
- package/dist/ast-dereferencer.d.ts +0 -8
- package/dist/ast-dereferencer.d.ts.map +0 -1
- package/dist/ast-dereferencer.js +0 -29
- package/dist/ast-dereferencer.js.map +0 -1
- package/src/ast-dereferencer.ts +0 -42
package/dist/cli/cli.test.js
CHANGED
|
@@ -9,14 +9,13 @@ const child_process_1 = require("child_process");
|
|
|
9
9
|
const fs_1 = require("fs");
|
|
10
10
|
const path_1 = __importDefault(require("path"));
|
|
11
11
|
const os_1 = __importDefault(require("os"));
|
|
12
|
-
const rimraf_1 =
|
|
12
|
+
const rimraf_1 = require("rimraf");
|
|
13
13
|
const hardhat_1 = require("hardhat");
|
|
14
14
|
const execAsync = (0, util_1.promisify)(child_process_1.exec);
|
|
15
|
-
const rimraf = (0, util_1.promisify)(rimraf_1.default);
|
|
16
15
|
const CLI = 'node dist/cli/cli.js';
|
|
17
16
|
async function getTempDir(t) {
|
|
18
17
|
const temp = await fs_1.promises.mkdtemp(path_1.default.join(os_1.default.tmpdir(), 'upgrades-core-test-'));
|
|
19
|
-
t.teardown(() => rimraf(temp));
|
|
18
|
+
t.teardown(() => (0, rimraf_1.rimraf)(temp));
|
|
20
19
|
return temp;
|
|
21
20
|
}
|
|
22
21
|
(0, ava_1.default)('help', async (t) => {
|
|
@@ -35,6 +34,97 @@ async function getTempDir(t) {
|
|
|
35
34
|
const expectation = [`Stdout: ${error.stdout}`, `Stderr: ${error.stderr}`];
|
|
36
35
|
t.snapshot(expectation.join('\n'));
|
|
37
36
|
});
|
|
37
|
+
(0, ava_1.default)('validate - single contract', async (t) => {
|
|
38
|
+
// This should check even though the contract is not detected as upgradeable, since the --contract option was used.
|
|
39
|
+
const temp = await getTempDir(t);
|
|
40
|
+
const buildInfo = await hardhat_1.artifacts.getBuildInfo(`contracts/test/cli/Validate.sol:NonUpgradeable`);
|
|
41
|
+
await fs_1.promises.writeFile(path_1.default.join(temp, 'validate.json'), JSON.stringify(buildInfo));
|
|
42
|
+
const error = await t.throwsAsync(execAsync(`${CLI} validate ${temp} --contract NonUpgradeable`));
|
|
43
|
+
const expectation = [`Stdout: ${error.stdout}`, `Stderr: ${error.stderr}`];
|
|
44
|
+
t.snapshot(expectation.join('\n'));
|
|
45
|
+
});
|
|
46
|
+
(0, ava_1.default)('validate - single contract, has upgrades-from', async (t) => {
|
|
47
|
+
const temp = await getTempDir(t);
|
|
48
|
+
const buildInfo = await hardhat_1.artifacts.getBuildInfo(`contracts/test/cli/Validate.sol:UnsafeAndStorageLayoutErrors`);
|
|
49
|
+
await fs_1.promises.writeFile(path_1.default.join(temp, 'validate.json'), JSON.stringify(buildInfo));
|
|
50
|
+
const error = await t.throwsAsync(execAsync(`${CLI} validate ${temp} --contract UnsafeAndStorageLayoutErrors`));
|
|
51
|
+
const expectation = [`Stdout: ${error.stdout}`, `Stderr: ${error.stderr}`];
|
|
52
|
+
t.snapshot(expectation.join('\n'));
|
|
53
|
+
});
|
|
54
|
+
(0, ava_1.default)('validate - single contract, reference overrides upgrades-from', async (t) => {
|
|
55
|
+
const temp = await getTempDir(t);
|
|
56
|
+
const buildInfo = await hardhat_1.artifacts.getBuildInfo(`contracts/test/cli/Validate.sol:UnsafeAndStorageLayoutErrors`);
|
|
57
|
+
await fs_1.promises.writeFile(path_1.default.join(temp, 'validate.json'), JSON.stringify(buildInfo));
|
|
58
|
+
const error = await t.throwsAsync(execAsync(`${CLI} validate ${temp} --contract UnsafeAndStorageLayoutErrors --reference Safe`));
|
|
59
|
+
const expectation = [`Stdout: ${error.stdout}`, `Stderr: ${error.stderr}`];
|
|
60
|
+
t.snapshot(expectation.join('\n'));
|
|
61
|
+
});
|
|
62
|
+
(0, ava_1.default)('validate - single contract, reference is uups, overrides upgrades-from', async (t) => {
|
|
63
|
+
const temp = await getTempDir(t);
|
|
64
|
+
const buildInfo = await hardhat_1.artifacts.getBuildInfo(`contracts/test/cli/Validate.sol:UnsafeAndStorageLayoutErrors`);
|
|
65
|
+
await fs_1.promises.writeFile(path_1.default.join(temp, 'validate.json'), JSON.stringify(buildInfo));
|
|
66
|
+
const error = await t.throwsAsync(execAsync(`${CLI} validate ${temp} --contract BecomesBadLayout --reference HasUpgradeTo`));
|
|
67
|
+
const expectation = [`Stdout: ${error.stdout}`, `Stderr: ${error.stderr}`];
|
|
68
|
+
t.snapshot(expectation.join('\n'));
|
|
69
|
+
});
|
|
70
|
+
(0, ava_1.default)('validate - single contract, reference', async (t) => {
|
|
71
|
+
const temp = await getTempDir(t);
|
|
72
|
+
const buildInfo = await hardhat_1.artifacts.getBuildInfo(`contracts/test/cli/Validate.sol:BecomesBadLayout`);
|
|
73
|
+
await fs_1.promises.writeFile(path_1.default.join(temp, 'validate.json'), JSON.stringify(buildInfo));
|
|
74
|
+
const error = await t.throwsAsync(execAsync(`${CLI} validate ${temp} --contract BecomesBadLayout --reference StorageV1`));
|
|
75
|
+
const expectation = [`Stdout: ${error.stdout}`, `Stderr: ${error.stderr}`];
|
|
76
|
+
t.snapshot(expectation.join('\n'));
|
|
77
|
+
});
|
|
78
|
+
(0, ava_1.default)('validate - single contract, reference, fully qualified names', async (t) => {
|
|
79
|
+
const temp = await getTempDir(t);
|
|
80
|
+
const buildInfo = await hardhat_1.artifacts.getBuildInfo(`contracts/test/cli/Validate.sol:BecomesBadLayout`);
|
|
81
|
+
await fs_1.promises.writeFile(path_1.default.join(temp, 'validate.json'), JSON.stringify(buildInfo));
|
|
82
|
+
const error = await t.throwsAsync(execAsync(`${CLI} validate ${temp} --contract contracts/test/cli/Validate.sol:BecomesBadLayout --reference contracts/test/cli/Validate.sol:StorageV1`));
|
|
83
|
+
const expectation = [`Stdout: ${error.stdout}`, `Stderr: ${error.stderr}`];
|
|
84
|
+
t.snapshot(expectation.join('\n'));
|
|
85
|
+
});
|
|
86
|
+
(0, ava_1.default)('validate - reference without contract option', async (t) => {
|
|
87
|
+
const temp = await getTempDir(t);
|
|
88
|
+
const buildInfo = await hardhat_1.artifacts.getBuildInfo(`contracts/test/cli/Validate.sol:StorageV1`);
|
|
89
|
+
await fs_1.promises.writeFile(path_1.default.join(temp, 'validate.json'), JSON.stringify(buildInfo));
|
|
90
|
+
const error = await t.throwsAsync(execAsync(`${CLI} validate ${temp} --reference StorageV1`));
|
|
91
|
+
t.true(error?.message.includes('The --reference option can only be used along with the --contract option.'), error?.message);
|
|
92
|
+
});
|
|
93
|
+
(0, ava_1.default)('validate - emtpy contract string', async (t) => {
|
|
94
|
+
const temp = await getTempDir(t);
|
|
95
|
+
const buildInfo = await hardhat_1.artifacts.getBuildInfo(`contracts/test/cli/Validate.sol:StorageV1`);
|
|
96
|
+
await fs_1.promises.writeFile(path_1.default.join(temp, 'validate.json'), JSON.stringify(buildInfo));
|
|
97
|
+
const error = await t.throwsAsync(execAsync(`${CLI} validate ${temp} --contract --reference StorageV1`));
|
|
98
|
+
t.true(error?.message.includes('Invalid option: --contract cannot be empty'), error?.message);
|
|
99
|
+
});
|
|
100
|
+
(0, ava_1.default)('validate - blank contract string', async (t) => {
|
|
101
|
+
const temp = await getTempDir(t);
|
|
102
|
+
const buildInfo = await hardhat_1.artifacts.getBuildInfo(`contracts/test/cli/Validate.sol:StorageV1`);
|
|
103
|
+
await fs_1.promises.writeFile(path_1.default.join(temp, 'validate.json'), JSON.stringify(buildInfo));
|
|
104
|
+
const error = await t.throwsAsync(execAsync(`${CLI} validate ${temp} --contract ' ' --reference StorageV1`));
|
|
105
|
+
t.true(error?.message.includes('Invalid option: --contract cannot be empty'), error?.message);
|
|
106
|
+
});
|
|
107
|
+
(0, ava_1.default)('validate - empty reference string', async (t) => {
|
|
108
|
+
const temp = await getTempDir(t);
|
|
109
|
+
const buildInfo = await hardhat_1.artifacts.getBuildInfo(`contracts/test/cli/Validate.sol:StorageV1`);
|
|
110
|
+
await fs_1.promises.writeFile(path_1.default.join(temp, 'validate.json'), JSON.stringify(buildInfo));
|
|
111
|
+
const error = await t.throwsAsync(execAsync(`${CLI} validate ${temp} --contract StorageV1 --reference`));
|
|
112
|
+
t.true(error?.message.includes('Invalid option: --reference cannot be empty'), error?.message);
|
|
113
|
+
});
|
|
114
|
+
(0, ava_1.default)('validate - single contract not found', async (t) => {
|
|
115
|
+
const temp = await getTempDir(t);
|
|
116
|
+
const buildInfo = await hardhat_1.artifacts.getBuildInfo(`contracts/test/cli/Validate.sol:BecomesBadLayout`);
|
|
117
|
+
await fs_1.promises.writeFile(path_1.default.join(temp, 'validate.json'), JSON.stringify(buildInfo));
|
|
118
|
+
const error = await t.throwsAsync(execAsync(`${CLI} validate ${temp} --contract NonExistent`));
|
|
119
|
+
t.true(error?.message.includes('Could not find contract NonExistent.'), error?.message);
|
|
120
|
+
});
|
|
121
|
+
(0, ava_1.default)('validate - reference not found', async (t) => {
|
|
122
|
+
const temp = await getTempDir(t);
|
|
123
|
+
const buildInfo = await hardhat_1.artifacts.getBuildInfo(`contracts/test/cli/Validate.sol:BecomesBadLayout`);
|
|
124
|
+
await fs_1.promises.writeFile(path_1.default.join(temp, 'validate.json'), JSON.stringify(buildInfo));
|
|
125
|
+
const error = await t.throwsAsync(execAsync(`${CLI} validate ${temp} --contract BecomesBadLayout --reference NonExistent`));
|
|
126
|
+
t.true(error?.message.includes('Could not find contract NonExistent.'), error?.message);
|
|
127
|
+
});
|
|
38
128
|
(0, ava_1.default)('validate - no upgradeable', async (t) => {
|
|
39
129
|
const temp = await getTempDir(t);
|
|
40
130
|
const buildInfo = await hardhat_1.artifacts.getBuildInfo(`contracts/test/cli/Storage088.sol:Storage088`);
|
package/dist/cli/cli.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.test.js","sourceRoot":"","sources":["../../src/cli/cli.test.ts"],"names":[],"mappings":";;;;;AAAA,8CAA6C;AAC7C,+BAAiC;AACjC,iDAAqC;AACrC,2BAAoC;AACpC,gDAAwB;AACxB,4CAAoB;AACpB,
|
|
1
|
+
{"version":3,"file":"cli.test.js","sourceRoot":"","sources":["../../src/cli/cli.test.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { ValidateUpgradeSafetyOptions, validateUpgradeSafety } from './validate/validate-upgrade-safety';
|
|
2
2
|
export { ProjectReport } from './validate/project-report';
|
|
3
|
-
export { ReferenceContractNotFound } from './validate/
|
|
3
|
+
export { ReferenceContractNotFound } from './validate/find-contract';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/cli/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AACzG,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AACzG,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC"}
|
package/dist/cli/index.js
CHANGED
|
@@ -5,6 +5,6 @@ var validate_upgrade_safety_1 = require("./validate/validate-upgrade-safety");
|
|
|
5
5
|
Object.defineProperty(exports, "validateUpgradeSafety", { enumerable: true, get: function () { return validate_upgrade_safety_1.validateUpgradeSafety; } });
|
|
6
6
|
var project_report_1 = require("./validate/project-report");
|
|
7
7
|
Object.defineProperty(exports, "ProjectReport", { enumerable: true, get: function () { return project_report_1.ProjectReport; } });
|
|
8
|
-
var
|
|
9
|
-
Object.defineProperty(exports, "ReferenceContractNotFound", { enumerable: true, get: function () { return
|
|
8
|
+
var find_contract_1 = require("./validate/find-contract");
|
|
9
|
+
Object.defineProperty(exports, "ReferenceContractNotFound", { enumerable: true, get: function () { return find_contract_1.ReferenceContractNotFound; } });
|
|
10
10
|
//# sourceMappingURL=index.js.map
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;AAAA,8EAAyG;AAAlE,gIAAA,qBAAqB,OAAA;AAC5D,4DAA0D;AAAjD,+GAAA,aAAa,OAAA;AACtB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;AAAA,8EAAyG;AAAlE,gIAAA,qBAAqB,OAAA;AAC5D,4DAA0D;AAAjD,+GAAA,aAAa,OAAA;AACtB,0DAAqE;AAA5D,0HAAA,yBAAyB,OAAA"}
|
|
@@ -5,17 +5,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const ava_1 = __importDefault(require("ava"));
|
|
7
7
|
const fs_1 = require("fs");
|
|
8
|
-
const rimraf_1 =
|
|
9
|
-
const util_1 = __importDefault(require("util"));
|
|
8
|
+
const rimraf_1 = require("rimraf");
|
|
10
9
|
const path_1 = __importDefault(require("path"));
|
|
11
10
|
const os_1 = __importDefault(require("os"));
|
|
12
11
|
const build_info_file_1 = require("./build-info-file");
|
|
13
|
-
const rimraf = util_1.default.promisify(rimraf_1.default);
|
|
14
12
|
ava_1.default.beforeEach(async (t) => {
|
|
15
13
|
process.chdir(await fs_1.promises.mkdtemp(path_1.default.join(os_1.default.tmpdir(), `upgrades-core-test-${t.title.replace(/\s/g, '-')}-`)));
|
|
16
14
|
});
|
|
17
15
|
ava_1.default.afterEach(async () => {
|
|
18
|
-
await rimraf(process.cwd());
|
|
16
|
+
await (0, rimraf_1.rimraf)(process.cwd());
|
|
19
17
|
});
|
|
20
18
|
const BUILD_INFO = {
|
|
21
19
|
input: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-info-file.test.js","sourceRoot":"","sources":["../../../src/cli/validate/build-info-file.test.ts"],"names":[],"mappings":";;;;;AAAA,8CAA6C;AAE7C,2BAAoC;AACpC,
|
|
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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"}
|
|
@@ -2,6 +2,7 @@ import { ValidateUpgradeSafetyOptions, UpgradeableContractErrorReport } from '..
|
|
|
2
2
|
import { Report } from '../../standalone';
|
|
3
3
|
import { SourceContract } from './validations';
|
|
4
4
|
import { LayoutCompatibilityReport } from '../../storage/report';
|
|
5
|
+
import { SpecifiedContracts } from './validate-upgrade-safety';
|
|
5
6
|
/**
|
|
6
7
|
* Report for an upgradeable contract.
|
|
7
8
|
* Contains the standalone report, and if there is a reference contract, the reference contract name and storage layout report.
|
|
@@ -25,7 +26,8 @@ export declare class UpgradeableContractReport implements Report {
|
|
|
25
26
|
*
|
|
26
27
|
* @param sourceContracts The source contracts to check, which must include all contracts that are referenced by the given contracts. Can also include non-upgradeable contracts, which will be ignored.
|
|
27
28
|
* @param opts The validation options.
|
|
29
|
+
* @param specifiedContracts If provided, only the specified contract (upgrading from its reference contract) will be reported.
|
|
28
30
|
* @returns The upgradeable contract reports.
|
|
29
31
|
*/
|
|
30
|
-
export declare function getContractReports(sourceContracts: SourceContract[], opts: ValidateUpgradeSafetyOptions): UpgradeableContractReport[];
|
|
32
|
+
export declare function getContractReports(sourceContracts: SourceContract[], opts: ValidateUpgradeSafetyOptions, specifiedContracts?: SpecifiedContracts): UpgradeableContractReport[];
|
|
31
33
|
//# sourceMappingURL=contract-report.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract-report.d.ts","sourceRoot":"","sources":["../../../src/cli/validate/contract-report.ts"],"names":[],"mappings":"AAEA,OAAO,EAOL,4BAA4B,EAE5B,8BAA8B,EAE/B,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"contract-report.d.ts","sourceRoot":"","sources":["../../../src/cli/validate/contract-report.ts"],"names":[],"mappings":"AAEA,OAAO,EAOL,4BAA4B,EAE5B,8BAA8B,EAE/B,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D;;;GAGG;AACH,qBAAa,yBAA0B,YAAW,MAAM;IAEpD,QAAQ,CAAC,QAAQ,EAAE,MAAM;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS;IACtC,QAAQ,CAAC,gBAAgB,EAAE,8BAA8B;IACzD,QAAQ,CAAC,mBAAmB,EAAE,yBAAyB,GAAG,SAAS;gBAH1D,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,gBAAgB,EAAE,8BAA8B,EAChD,mBAAmB,EAAE,yBAAyB,GAAG,SAAS;IAGrE,IAAI,EAAE,IAAI,OAAO,CAEhB;IAED;;OAEG;IACH,OAAO,CAAC,KAAK,UAAO,GAAG,MAAM;CAiB9B;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,eAAe,EAAE,cAAc,EAAE,EACjC,IAAI,EAAE,4BAA4B,EAClC,kBAAkB,CAAC,EAAE,kBAAkB,+BAuBxC"}
|
|
@@ -53,16 +53,17 @@ exports.UpgradeableContractReport = UpgradeableContractReport;
|
|
|
53
53
|
*
|
|
54
54
|
* @param sourceContracts The source contracts to check, which must include all contracts that are referenced by the given contracts. Can also include non-upgradeable contracts, which will be ignored.
|
|
55
55
|
* @param opts The validation options.
|
|
56
|
+
* @param specifiedContracts If provided, only the specified contract (upgrading from its reference contract) will be reported.
|
|
56
57
|
* @returns The upgradeable contract reports.
|
|
57
58
|
*/
|
|
58
|
-
function getContractReports(sourceContracts, opts) {
|
|
59
|
+
function getContractReports(sourceContracts, opts, specifiedContracts) {
|
|
59
60
|
const upgradeableContractReports = [];
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
61
|
+
const contractsToReport = specifiedContracts !== undefined ? [specifiedContracts.contract] : sourceContracts;
|
|
62
|
+
for (const sourceContract of contractsToReport) {
|
|
63
|
+
const upgradeabilityAssessment = (0, upgradeability_assessment_1.getUpgradeabilityAssessment)(sourceContract, sourceContracts, specifiedContracts?.reference);
|
|
64
|
+
if (specifiedContracts !== undefined || upgradeabilityAssessment.upgradeable) {
|
|
63
65
|
const reference = upgradeabilityAssessment.referenceContract;
|
|
64
|
-
const
|
|
65
|
-
const kind = uups ? 'uups' : 'transparent';
|
|
66
|
+
const kind = upgradeabilityAssessment.uups ? 'uups' : 'transparent';
|
|
66
67
|
const report = getUpgradeableContractReport(sourceContract, reference, { ...opts, kind: kind });
|
|
67
68
|
if (report !== undefined) {
|
|
68
69
|
upgradeableContractReports.push(report);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract-report.js","sourceRoot":"","sources":["../../../src/cli/validate/contract-report.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA2B;AAC3B,8DAAsC;AACtC,6BAWe;AAEf,2EAA0E;AAG1E,+CAA4C;
|
|
1
|
+
{"version":3,"file":"contract-report.js","sourceRoot":"","sources":["../../../src/cli/validate/contract-report.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { SourceContract } from './validations';
|
|
2
|
+
export declare class ReferenceContractNotFound extends Error {
|
|
3
|
+
/**
|
|
4
|
+
* The contract reference that could not be found.
|
|
5
|
+
*/
|
|
6
|
+
readonly reference: string;
|
|
7
|
+
/**
|
|
8
|
+
* The fully qualified name of the contract that referenced the missing contract.
|
|
9
|
+
*/
|
|
10
|
+
readonly origin?: string;
|
|
11
|
+
constructor(reference: string, origin?: string);
|
|
12
|
+
}
|
|
13
|
+
export declare function findContract(contractName: string, origin: SourceContract | undefined, allContracts: SourceContract[]): SourceContract;
|
|
14
|
+
//# sourceMappingURL=find-contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-contract.d.ts","sourceRoot":"","sources":["../../../src/cli/validate/find-contract.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,qBAAa,yBAA0B,SAAQ,KAAK;IAClD;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;gBAEb,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;CAS/C;AAED,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE,kBAkBpH"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.findContract = exports.ReferenceContractNotFound = void 0;
|
|
4
|
+
const error_1 = require("./error");
|
|
5
|
+
class ReferenceContractNotFound extends Error {
|
|
6
|
+
constructor(reference, origin) {
|
|
7
|
+
const msg = origin !== undefined
|
|
8
|
+
? `Could not find contract ${reference} referenced in ${origin}.`
|
|
9
|
+
: `Could not find contract ${reference}.`;
|
|
10
|
+
super(msg);
|
|
11
|
+
this.reference = reference;
|
|
12
|
+
this.origin = origin;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.ReferenceContractNotFound = ReferenceContractNotFound;
|
|
16
|
+
function findContract(contractName, origin, allContracts) {
|
|
17
|
+
const foundContracts = allContracts.filter(c => c.fullyQualifiedName === contractName || c.name === contractName);
|
|
18
|
+
if (foundContracts.length > 1) {
|
|
19
|
+
const msg = origin !== undefined
|
|
20
|
+
? `Found multiple contracts with name ${contractName} referenced in ${origin.fullyQualifiedName}.`
|
|
21
|
+
: `Found multiple contracts with name ${contractName}.`;
|
|
22
|
+
throw new error_1.ValidateCommandError(msg, () => `This may be caused by old copies of build info files. Clean and recompile your project, then run the command again with the updated files.`);
|
|
23
|
+
}
|
|
24
|
+
else if (foundContracts.length === 1) {
|
|
25
|
+
return foundContracts[0];
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
throw new ReferenceContractNotFound(contractName, origin?.fullyQualifiedName);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.findContract = findContract;
|
|
32
|
+
//# sourceMappingURL=find-contract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-contract.js","sourceRoot":"","sources":["../../../src/cli/validate/find-contract.ts"],"names":[],"mappings":";;;AAAA,mCAA+C;AAG/C,MAAa,yBAA0B,SAAQ,KAAK;IAWlD,YAAY,SAAiB,EAAE,MAAe;QAC5C,MAAM,GAAG,GACP,MAAM,KAAK,SAAS;YAClB,CAAC,CAAC,2BAA2B,SAAS,kBAAkB,MAAM,GAAG;YACjE,CAAC,CAAC,2BAA2B,SAAS,GAAG,CAAC;QAC9C,KAAK,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AApBD,8DAoBC;AAED,SAAgB,YAAY,CAAC,YAAoB,EAAE,MAAkC,EAAE,YAA8B;IACnH,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,KAAK,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;IAElH,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;QAC7B,MAAM,GAAG,GACP,MAAM,KAAK,SAAS;YAClB,CAAC,CAAC,sCAAsC,YAAY,kBAAkB,MAAM,CAAC,kBAAkB,GAAG;YAClG,CAAC,CAAC,sCAAsC,YAAY,GAAG,CAAC;QAC5D,MAAM,IAAI,4BAAoB,CAC5B,GAAG,EACH,GAAG,EAAE,CACH,4IAA4I,CAC/I,CAAC;KACH;SAAM,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;QACtC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC;KAC1B;SAAM;QACL,MAAM,IAAI,yBAAyB,CAAC,YAAY,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAC;KAC/E;AACH,CAAC;AAlBD,oCAkBC"}
|
|
@@ -8,7 +8,6 @@ const validate_1 = require("../../validate");
|
|
|
8
8
|
const ava_1 = __importDefault(require("ava"));
|
|
9
9
|
const utils_1 = require("solidity-ast/utils");
|
|
10
10
|
const hardhat_1 = require("hardhat");
|
|
11
|
-
const ast_dereferencer_1 = require("../../ast-dereferencer");
|
|
12
11
|
const extract_1 = require("../../storage/extract");
|
|
13
12
|
const compare_1 = require("../../storage/compare");
|
|
14
13
|
const layout_1 = require("../../storage/layout");
|
|
@@ -25,7 +24,7 @@ test.before(async (t) => {
|
|
|
25
24
|
for (const def of (0, utils_1.findAll)('ContractDefinition', solcOutput.sources['contracts/test/Storage.sol'].ast)) {
|
|
26
25
|
contracts[def.name] = def;
|
|
27
26
|
}
|
|
28
|
-
const deref = (0,
|
|
27
|
+
const deref = (0, utils_1.astDereferencer)(solcOutput);
|
|
29
28
|
t.context.extractStorageLayout = name => (0, extract_1.extractStorageLayout)(contracts[name], dummyDecodeSrc, deref);
|
|
30
29
|
});
|
|
31
30
|
function getLayoutReport(original, updated) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-report.test.js","sourceRoot":"","sources":["../../../src/cli/validate/project-report.test.ts"],"names":[],"mappings":";;;;;AAAA,qDAAoD;AACpD,6CAAgE;AAEhE,8CAAoC;AAEpC,
|
|
1
|
+
{"version":3,"file":"project-report.test.js","sourceRoot":"","sources":["../../../src/cli/validate/project-report.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,8 @@
|
|
|
1
1
|
import { SourceContract } from './validations';
|
|
2
|
-
export declare class ReferenceContractNotFound extends Error {
|
|
3
|
-
/**
|
|
4
|
-
* The contract reference that could not be found.
|
|
5
|
-
*/
|
|
6
|
-
readonly reference: string;
|
|
7
|
-
/**
|
|
8
|
-
* The fully qualified name of the contract that referenced the missing contract.
|
|
9
|
-
*/
|
|
10
|
-
readonly origin: string;
|
|
11
|
-
constructor(reference: string, origin: string);
|
|
12
|
-
}
|
|
13
2
|
export interface UpgradeabilityAssessment {
|
|
14
3
|
upgradeable: boolean;
|
|
15
4
|
referenceContract?: SourceContract;
|
|
16
5
|
uups?: boolean;
|
|
17
6
|
}
|
|
18
|
-
export declare function getUpgradeabilityAssessment(contract: SourceContract, allContracts: SourceContract[]): UpgradeabilityAssessment;
|
|
7
|
+
export declare function getUpgradeabilityAssessment(contract: SourceContract, allContracts: SourceContract[], overrideReferenceContract?: SourceContract): UpgradeabilityAssessment;
|
|
19
8
|
//# sourceMappingURL=upgradeability-assessment.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgradeability-assessment.d.ts","sourceRoot":"","sources":["../../../src/cli/validate/upgradeability-assessment.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"upgradeability-assessment.d.ts","sourceRoot":"","sources":["../../../src/cli/validate/upgradeability-assessment.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAO/C,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,OAAO,CAAC;IACrB,iBAAiB,CAAC,EAAE,cAAc,CAAC;IACnC,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,cAAc,EACxB,YAAY,EAAE,cAAc,EAAE,EAC9B,yBAAyB,CAAC,EAAE,cAAc,GACzC,wBAAwB,CA2B1B"}
|
|
@@ -1,56 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getUpgradeabilityAssessment =
|
|
3
|
+
exports.getUpgradeabilityAssessment = void 0;
|
|
4
4
|
const annotations_1 = require("../../utils/annotations");
|
|
5
5
|
const query_1 = require("../../validate/query");
|
|
6
6
|
const error_1 = require("./error");
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
super(`Could not find contract ${reference} referenced in ${origin}.`);
|
|
10
|
-
this.reference = reference;
|
|
11
|
-
this.origin = origin;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
exports.ReferenceContractNotFound = ReferenceContractNotFound;
|
|
15
|
-
function getUpgradeabilityAssessment(contract, allContracts) {
|
|
7
|
+
const find_contract_1 = require("./find-contract");
|
|
8
|
+
function getUpgradeabilityAssessment(contract, allContracts, overrideReferenceContract) {
|
|
16
9
|
const fullContractName = contract.fullyQualifiedName;
|
|
17
10
|
const contractValidation = contract.validationData[fullContractName];
|
|
18
11
|
const isUUPS = (0, query_1.inferUUPS)(contract.validationData, fullContractName);
|
|
19
12
|
const annotationAssessment = getAnnotationAssessment(contract);
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
if (annotationAssessment.referenceName !== undefined) {
|
|
24
|
-
referenceContract = getReferenceContract(annotationAssessment.referenceName, contract, allContracts);
|
|
25
|
-
isReferenceUUPS = (0, query_1.inferUUPS)(referenceContract.validationData, referenceContract.fullyQualifiedName);
|
|
26
|
-
}
|
|
27
|
-
return {
|
|
28
|
-
upgradeable: true,
|
|
29
|
-
referenceContract: referenceContract,
|
|
30
|
-
uups: isReferenceUUPS || isUUPS,
|
|
31
|
-
};
|
|
13
|
+
let referenceContract = overrideReferenceContract;
|
|
14
|
+
if (referenceContract === undefined && annotationAssessment.referenceName !== undefined) {
|
|
15
|
+
referenceContract = (0, find_contract_1.findContract)(annotationAssessment.referenceName, contract, allContracts);
|
|
32
16
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
upgradeable: initializable || isUUPS,
|
|
37
|
-
uups: isUUPS,
|
|
38
|
-
};
|
|
17
|
+
let isReferenceUUPS = false;
|
|
18
|
+
if (referenceContract !== undefined) {
|
|
19
|
+
isReferenceUUPS = (0, query_1.inferUUPS)(referenceContract.validationData, referenceContract.fullyQualifiedName);
|
|
39
20
|
}
|
|
21
|
+
return {
|
|
22
|
+
upgradeable: referenceContract !== undefined ||
|
|
23
|
+
annotationAssessment.upgradeable ||
|
|
24
|
+
(0, query_1.inferInitializable)(contractValidation) ||
|
|
25
|
+
isUUPS,
|
|
26
|
+
referenceContract: referenceContract,
|
|
27
|
+
uups: isReferenceUUPS || isUUPS,
|
|
28
|
+
};
|
|
40
29
|
}
|
|
41
30
|
exports.getUpgradeabilityAssessment = getUpgradeabilityAssessment;
|
|
42
|
-
function getReferenceContract(reference, origin, allContracts) {
|
|
43
|
-
const referenceContracts = allContracts.filter(c => c.fullyQualifiedName === reference || c.name === reference);
|
|
44
|
-
if (referenceContracts.length > 1) {
|
|
45
|
-
throw new error_1.ValidateCommandError(`Found multiple contracts with name ${reference} referenced in ${origin.fullyQualifiedName}.`, () => `This may be caused by old copies of build info files. Clean and recompile your project, then run the command again with the updated files.`);
|
|
46
|
-
}
|
|
47
|
-
else if (referenceContracts.length === 1) {
|
|
48
|
-
return referenceContracts[0];
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
throw new ReferenceContractNotFound(reference, origin.fullyQualifiedName);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
31
|
function getAnnotationAssessment(contract) {
|
|
55
32
|
const node = contract.node;
|
|
56
33
|
if ('documentation' in node) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgradeability-assessment.js","sourceRoot":"","sources":["../../../src/cli/validate/upgradeability-assessment.ts"],"names":[],"mappings":";;;AAAA,yDAA8E;AAC9E,gDAAqE;AACrE,mCAA+C;
|
|
1
|
+
{"version":3,"file":"upgradeability-assessment.js","sourceRoot":"","sources":["../../../src/cli/validate/upgradeability-assessment.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,23 @@
|
|
|
1
1
|
import { ValidationOptions } from '../..';
|
|
2
2
|
import { ProjectReport } from './project-report';
|
|
3
|
+
import { SourceContract } from './validations';
|
|
3
4
|
/**
|
|
4
5
|
* Validation options for upgrade safety checks.
|
|
5
6
|
*/
|
|
6
7
|
export type ValidateUpgradeSafetyOptions = Omit<ValidationOptions, 'kind'>;
|
|
8
|
+
export type SpecifiedContracts = {
|
|
9
|
+
contract: SourceContract;
|
|
10
|
+
reference?: SourceContract;
|
|
11
|
+
};
|
|
7
12
|
/**
|
|
8
13
|
* Validates the upgrade safety of all contracts in the build info dir's build info files.
|
|
9
14
|
* Only contracts that are detected as upgradeable will be validated.
|
|
10
15
|
*
|
|
11
16
|
* @param buildInfoDir Absolute path of build info directory, or undefined to use the default Hardhat or Foundry build-info dir.
|
|
17
|
+
* @param contract The name or fully qualified name of the contract to validate. If not specified, all upgradeable contracts in the build info directory will be validated.
|
|
18
|
+
* @param reference The name or fully qualified name of the reference contract to use for storage layout comparisons. Can only be used along with `contract`. If not specified, uses the `@custom:oz-upgrades-from` annotation in the contract that is being validated.
|
|
12
19
|
* @param opts Validation options, or undefined to use the default validation options.
|
|
13
20
|
* @returns The project report.
|
|
14
21
|
*/
|
|
15
|
-
export declare function validateUpgradeSafety(buildInfoDir?: string, opts?: ValidateUpgradeSafetyOptions): Promise<ProjectReport>;
|
|
22
|
+
export declare function validateUpgradeSafety(buildInfoDir?: string, contract?: string, reference?: string, opts?: ValidateUpgradeSafetyOptions): Promise<ProjectReport>;
|
|
16
23
|
//# sourceMappingURL=validate-upgrade-safety.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-upgrade-safety.d.ts","sourceRoot":"","sources":["../../../src/cli/validate/validate-upgrade-safety.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"validate-upgrade-safety.d.ts","sourceRoot":"","sources":["../../../src/cli/validate/validate-upgrade-safety.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAK1C,OAAO,EAAE,aAAa,EAAoB,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,cAAc,EAA8B,MAAM,eAAe,CAAC;AAE3E;;GAEG;AACH,MAAM,MAAM,4BAA4B,GAAG,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;AAE3E,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,cAAc,CAAC;IACzB,SAAS,CAAC,EAAE,cAAc,CAAC;CAC5B,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAsB,qBAAqB,CACzC,YAAY,CAAC,EAAE,MAAM,EACrB,QAAQ,CAAC,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,EAClB,IAAI,GAAE,4BAAiC,GACtC,OAAO,CAAC,aAAa,CAAC,CAQxB"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.validateUpgradeSafety = void 0;
|
|
4
4
|
const build_info_file_1 = require("./build-info-file");
|
|
5
5
|
const contract_report_1 = require("./contract-report");
|
|
6
|
+
const find_contract_1 = require("./find-contract");
|
|
6
7
|
const project_report_1 = require("./project-report");
|
|
7
8
|
const validations_1 = require("./validations");
|
|
8
9
|
/**
|
|
@@ -10,14 +11,31 @@ const validations_1 = require("./validations");
|
|
|
10
11
|
* Only contracts that are detected as upgradeable will be validated.
|
|
11
12
|
*
|
|
12
13
|
* @param buildInfoDir Absolute path of build info directory, or undefined to use the default Hardhat or Foundry build-info dir.
|
|
14
|
+
* @param contract The name or fully qualified name of the contract to validate. If not specified, all upgradeable contracts in the build info directory will be validated.
|
|
15
|
+
* @param reference The name or fully qualified name of the reference contract to use for storage layout comparisons. Can only be used along with `contract`. If not specified, uses the `@custom:oz-upgrades-from` annotation in the contract that is being validated.
|
|
13
16
|
* @param opts Validation options, or undefined to use the default validation options.
|
|
14
17
|
* @returns The project report.
|
|
15
18
|
*/
|
|
16
|
-
async function validateUpgradeSafety(buildInfoDir, opts = {}) {
|
|
19
|
+
async function validateUpgradeSafety(buildInfoDir, contract, reference, opts = {}) {
|
|
17
20
|
const buildInfoFiles = await (0, build_info_file_1.getBuildInfoFiles)(buildInfoDir);
|
|
18
21
|
const sourceContracts = (0, validations_1.validateBuildInfoContracts)(buildInfoFiles);
|
|
19
|
-
const
|
|
22
|
+
const specifiedContracts = findSpecifiedContracts(sourceContracts, contract, reference);
|
|
23
|
+
const contractReports = (0, contract_report_1.getContractReports)(sourceContracts, opts, specifiedContracts);
|
|
20
24
|
return (0, project_report_1.getProjectReport)(contractReports);
|
|
21
25
|
}
|
|
22
26
|
exports.validateUpgradeSafety = validateUpgradeSafety;
|
|
27
|
+
function findSpecifiedContracts(sourceContracts, contractName, referenceName) {
|
|
28
|
+
if (contractName !== undefined) {
|
|
29
|
+
return {
|
|
30
|
+
contract: (0, find_contract_1.findContract)(contractName, undefined, sourceContracts),
|
|
31
|
+
reference: referenceName !== undefined ? (0, find_contract_1.findContract)(referenceName, undefined, sourceContracts) : undefined,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
else if (referenceName !== undefined) {
|
|
35
|
+
throw new Error(`The reference option can only be specified when the contract option is also specified.`);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
23
41
|
//# sourceMappingURL=validate-upgrade-safety.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-upgrade-safety.js","sourceRoot":"","sources":["../../../src/cli/validate/validate-upgrade-safety.ts"],"names":[],"mappings":";;;AAEA,uDAAsD;AACtD,uDAAuD;AACvD,qDAAmE;AACnE,+
|
|
1
|
+
{"version":3,"file":"validate-upgrade-safety.js","sourceRoot":"","sources":["../../../src/cli/validate/validate-upgrade-safety.ts"],"names":[],"mappings":";;;AAEA,uDAAsD;AACtD,uDAAuD;AACvD,mDAA+C;AAC/C,qDAAmE;AACnE,+CAA2E;AAY3E;;;;;;;;;GASG;AACI,KAAK,UAAU,qBAAqB,CACzC,YAAqB,EACrB,QAAiB,EACjB,SAAkB,EAClB,OAAqC,EAAE;IAEvC,MAAM,cAAc,GAAG,MAAM,IAAA,mCAAiB,EAAC,YAAY,CAAC,CAAC;IAC7D,MAAM,eAAe,GAAG,IAAA,wCAA0B,EAAC,cAAc,CAAC,CAAC;IAEnE,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,eAAe,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAExF,MAAM,eAAe,GAAG,IAAA,oCAAkB,EAAC,eAAe,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC;IACtF,OAAO,IAAA,iCAAgB,EAAC,eAAe,CAAC,CAAC;AAC3C,CAAC;AAbD,sDAaC;AAED,SAAS,sBAAsB,CAC7B,eAAiC,EACjC,YAAqB,EACrB,aAAsB;IAEtB,IAAI,YAAY,KAAK,SAAS,EAAE;QAC9B,OAAO;YACL,QAAQ,EAAE,IAAA,4BAAY,EAAC,YAAY,EAAE,SAAS,EAAE,eAAe,CAAC;YAChE,SAAS,EAAE,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,IAAA,4BAAY,EAAC,aAAa,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS;SAC7G,CAAC;KACH;SAAM,IAAI,aAAa,KAAK,SAAS,EAAE;QACtC,MAAM,IAAI,KAAK,CAAC,wFAAwF,CAAC,CAAC;KAC3G;SAAM;QACL,OAAO,SAAS,CAAC;KAClB;AACH,CAAC"}
|