@openzeppelin/upgrades-core 1.26.2 → 1.27.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.
- package/LICENSE +22 -0
- package/dist/cli/cli.d.ts +3 -0
- package/dist/cli/cli.d.ts.map +1 -0
- package/dist/cli/cli.js +9 -0
- package/dist/cli/cli.js.map +1 -0
- package/dist/cli/cli.test.d.ts +2 -0
- package/dist/cli/cli.test.d.ts.map +1 -0
- package/dist/cli/cli.test.js +52 -0
- package/dist/cli/cli.test.js.map +1 -0
- package/dist/cli/index.d.ts +4 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +10 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/validate/build-info-file.d.ts +22 -0
- package/dist/cli/validate/build-info-file.d.ts.map +1 -0
- package/dist/cli/validate/build-info-file.js +116 -0
- package/dist/cli/validate/build-info-file.js.map +1 -0
- package/dist/cli/validate/build-info-file.test.d.ts +2 -0
- package/dist/cli/validate/build-info-file.test.d.ts.map +1 -0
- package/dist/cli/validate/build-info-file.test.js +175 -0
- package/dist/cli/validate/build-info-file.test.js.map +1 -0
- package/dist/cli/validate/contract-report.d.ts +31 -0
- package/dist/cli/validate/contract-report.d.ts.map +1 -0
- package/dist/cli/validate/contract-report.js +107 -0
- package/dist/cli/validate/contract-report.js.map +1 -0
- package/dist/cli/validate/error.d.ts +4 -0
- package/dist/cli/validate/error.d.ts.map +1 -0
- package/dist/cli/validate/error.js +8 -0
- package/dist/cli/validate/error.js.map +1 -0
- package/dist/cli/validate/project-report.d.ts +18 -0
- package/dist/cli/validate/project-report.d.ts.map +1 -0
- package/dist/cli/validate/project-report.js +42 -0
- package/dist/cli/validate/project-report.js.map +1 -0
- package/dist/cli/validate/project-report.test.d.ts +2 -0
- package/dist/cli/validate/project-report.test.d.ts.map +1 -0
- package/dist/cli/validate/project-report.test.js +90 -0
- package/dist/cli/validate/project-report.test.js.map +1 -0
- package/dist/cli/validate/upgradeability-assessment.d.ts +19 -0
- package/dist/cli/validate/upgradeability-assessment.d.ts.map +1 -0
- package/dist/cli/validate/upgradeability-assessment.js +103 -0
- package/dist/cli/validate/upgradeability-assessment.js.map +1 -0
- package/dist/cli/validate/validate-upgrade-safety.d.ts +16 -0
- package/dist/cli/validate/validate-upgrade-safety.d.ts.map +1 -0
- package/dist/cli/validate/validate-upgrade-safety.js +23 -0
- package/dist/cli/validate/validate-upgrade-safety.js.map +1 -0
- package/dist/cli/validate/validate-upgrade-safety.test.d.ts +2 -0
- package/dist/cli/validate/validate-upgrade-safety.test.d.ts.map +1 -0
- package/dist/cli/validate/validate-upgrade-safety.test.js +74 -0
- package/dist/cli/validate/validate-upgrade-safety.test.js.map +1 -0
- package/dist/cli/validate/validations.d.ts +11 -0
- package/dist/cli/validate/validations.d.ts.map +1 -0
- package/dist/cli/validate/validations.js +40 -0
- package/dist/cli/validate/validations.js.map +1 -0
- package/dist/cli/validate/validations.test.d.ts +2 -0
- package/dist/cli/validate/validations.test.d.ts.map +1 -0
- package/dist/cli/validate/validations.test.js +64 -0
- package/dist/cli/validate/validations.test.js.map +1 -0
- package/dist/cli/validate.d.ts +16 -0
- package/dist/cli/validate.d.ts.map +1 -0
- package/dist/cli/validate.js +119 -0
- package/dist/cli/validate.js.map +1 -0
- package/dist/cli/validate.test.d.ts +2 -0
- package/dist/cli/validate.test.d.ts.map +1 -0
- package/dist/cli/validate.test.js +108 -0
- package/dist/cli/validate.test.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/manifest.test.js +2 -1
- package/dist/manifest.test.js.map +1 -1
- package/dist/utils/annotations.d.ts +16 -0
- package/dist/utils/annotations.d.ts.map +1 -0
- package/dist/utils/annotations.js +46 -0
- package/dist/utils/annotations.js.map +1 -0
- package/dist/utils/contract-name.d.ts +2 -0
- package/dist/utils/contract-name.d.ts.map +1 -0
- package/dist/utils/contract-name.js +8 -0
- package/dist/utils/contract-name.js.map +1 -0
- package/dist/validate/index.d.ts +1 -1
- package/dist/validate/index.d.ts.map +1 -1
- package/dist/validate/index.js +2 -1
- package/dist/validate/index.js.map +1 -1
- package/dist/validate/query.d.ts +8 -1
- package/dist/validate/query.d.ts.map +1 -1
- package/dist/validate/query.js +16 -3
- package/dist/validate/query.js.map +1 -1
- package/dist/validate/run.d.ts +1 -4
- package/dist/validate/run.d.ts.map +1 -1
- package/dist/validate/run.js +8 -38
- package/dist/validate/run.js.map +1 -1
- package/package.json +9 -3
- package/src/cli/cli.test.ts +57 -0
- package/src/cli/cli.test.ts.md +138 -0
- package/src/cli/cli.test.ts.snap +0 -0
- package/src/cli/cli.ts +9 -0
- package/src/cli/index.ts +3 -0
- package/src/cli/validate/build-info-file.test.ts +211 -0
- package/src/cli/validate/build-info-file.ts +150 -0
- package/src/cli/validate/contract-report.ts +130 -0
- package/src/cli/validate/error.ts +3 -0
- package/src/cli/validate/project-report.test.ts +124 -0
- package/src/cli/validate/project-report.test.ts.md +40 -0
- package/src/cli/validate/project-report.test.ts.snap +0 -0
- package/src/cli/validate/project-report.ts +44 -0
- package/src/cli/validate/upgradeability-assessment.ts +137 -0
- package/src/cli/validate/validate-upgrade-safety.test.ts +102 -0
- package/src/cli/validate/validate-upgrade-safety.test.ts.md +98 -0
- package/src/cli/validate/validate-upgrade-safety.test.ts.snap +0 -0
- package/src/cli/validate/validate-upgrade-safety.ts +29 -0
- package/src/cli/validate/validations.test.ts +72 -0
- package/src/cli/validate/validations.test.ts.md +87 -0
- package/src/cli/validate/validations.test.ts.snap +0 -0
- package/src/cli/validate/validations.ts +53 -0
- package/src/cli/validate.test.ts +112 -0
- package/src/cli/validate.ts +134 -0
- package/src/index.ts +2 -0
- package/src/manifest.test.ts +2 -1
- package/src/utils/annotations.ts +47 -0
- package/src/utils/contract-name.ts +3 -0
- package/src/validate/index.ts +1 -0
- package/src/validate/query.ts +16 -3
- package/src/validate/run.ts +5 -41
- package/CHANGELOG.md +0 -265
package/dist/validate/query.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.inferProxyKind = exports.isUpgradeSafe = exports.getErrors = exports.getUnlinkedBytecode = exports.findVersionWithoutMetadataMatches = exports.unfoldStorageLayout = exports.getStorageLayout = exports.getContractNameAndRunValidation = exports.getContractVersion = exports.assertUpgradeSafe = void 0;
|
|
3
|
+
exports.inferInitializable = exports.inferProxyKind = exports.inferUUPS = exports.isUpgradeSafe = exports.getErrors = exports.getUnlinkedBytecode = exports.findVersionWithoutMetadataMatches = exports.unfoldStorageLayout = exports.getStorageLayout = exports.getContractNameAndRunValidation = exports.getContractVersion = exports.assertUpgradeSafe = void 0;
|
|
4
4
|
const version_1 = require("../version");
|
|
5
5
|
const run_1 = require("./run");
|
|
6
6
|
const link_refs_1 = require("../link-refs");
|
|
@@ -161,11 +161,15 @@ function isUpgradeSafe(data, version) {
|
|
|
161
161
|
return getErrors(dataV3, version).length == 0;
|
|
162
162
|
}
|
|
163
163
|
exports.isUpgradeSafe = isUpgradeSafe;
|
|
164
|
+
function inferUUPS(runValidation, fullContractName) {
|
|
165
|
+
const methods = getAllMethods(runValidation, fullContractName);
|
|
166
|
+
return methods.includes(upgradeToSignature);
|
|
167
|
+
}
|
|
168
|
+
exports.inferUUPS = inferUUPS;
|
|
164
169
|
function inferProxyKind(data, version) {
|
|
165
170
|
const dataV3 = (0, data_1.normalizeValidationData)(data);
|
|
166
171
|
const [fullContractName, runValidation] = getContractNameAndRunValidation(dataV3, version);
|
|
167
|
-
|
|
168
|
-
if (methods.includes(upgradeToSignature)) {
|
|
172
|
+
if (inferUUPS(runValidation, fullContractName)) {
|
|
169
173
|
return 'uups';
|
|
170
174
|
}
|
|
171
175
|
else {
|
|
@@ -173,4 +177,13 @@ function inferProxyKind(data, version) {
|
|
|
173
177
|
}
|
|
174
178
|
}
|
|
175
179
|
exports.inferProxyKind = inferProxyKind;
|
|
180
|
+
/**
|
|
181
|
+
* Whether the contract inherits any contract named "Initializable"
|
|
182
|
+
* @param contractValidation The validation result for the contract
|
|
183
|
+
* @return true if the contract inheritss any contract whose fully qualified name ends with ":Initializable"
|
|
184
|
+
*/
|
|
185
|
+
function inferInitializable(contractValidation) {
|
|
186
|
+
return contractValidation.inherit.some(c => c.endsWith(':Initializable'));
|
|
187
|
+
}
|
|
188
|
+
exports.inferInitializable = inferInitializable;
|
|
176
189
|
//# sourceMappingURL=query.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/validate/query.ts"],"names":[],"mappings":";;;AAAA,wCAAiD;AACjD,+
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/validate/query.ts"],"names":[],"mappings":"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"}
|
package/dist/validate/run.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ export interface ContractValidation {
|
|
|
15
15
|
layout: StorageLayout;
|
|
16
16
|
solcVersion?: string;
|
|
17
17
|
}
|
|
18
|
-
declare const errorKinds: readonly ["state-variable-assignment", "state-variable-immutable", "external-library-linking", "struct-definition", "enum-definition", "constructor", "delegatecall", "selfdestruct", "missing-public-upgradeto"];
|
|
18
|
+
export declare const errorKinds: readonly ["state-variable-assignment", "state-variable-immutable", "external-library-linking", "struct-definition", "enum-definition", "constructor", "delegatecall", "selfdestruct", "missing-public-upgradeto"];
|
|
19
19
|
export type ValidationError = ValidationErrorConstructor | ValidationErrorOpcode | ValidationErrorWithName | ValidationErrorUpgradeability;
|
|
20
20
|
interface ValidationErrorBase {
|
|
21
21
|
src: string;
|
|
@@ -36,9 +36,6 @@ export declare function isOpcodeError(error: ValidationErrorBase): error is Vali
|
|
|
36
36
|
interface ValidationErrorUpgradeability extends ValidationErrorBase {
|
|
37
37
|
kind: 'missing-public-upgradeto';
|
|
38
38
|
}
|
|
39
|
-
/**
|
|
40
|
-
* Get args from the doc string matching the given tag
|
|
41
|
-
*/
|
|
42
39
|
export declare function getAnnotationArgs(doc: string, tag: string): string[];
|
|
43
40
|
export declare function validate(solcOutput: SolcOutput, decodeSrc: SrcDecoder, solcVersion?: string): ValidationRunData;
|
|
44
41
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/validate/run.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAgB,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAI5C,OAAO,EAAE,OAAO,EAAc,MAAM,YAAY,CAAC;AACjD,OAAO,EAAyB,aAAa,EAAE,MAAM,cAAc,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/validate/run.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAgB,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAI5C,OAAO,EAAE,OAAO,EAAc,MAAM,YAAY,CAAC;AACjD,OAAO,EAAyB,aAAa,EAAE,MAAM,cAAc,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAIlD,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;AAEnE,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,MAAM,EAAE,aAAa,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,UAAU,mNAUb,CAAC;AAEX,MAAM,MAAM,eAAe,GACvB,0BAA0B,GAC1B,qBAAqB,GACrB,uBAAuB,GACvB,6BAA6B,CAAC;AAElC,UAAU,mBAAmB;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;CACjC;AAED,UAAU,uBAAwB,SAAQ,mBAAmB;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EACA,2BAA2B,GAC3B,0BAA0B,GAC1B,0BAA0B,GAC1B,mBAAmB,GACnB,iBAAiB,CAAC;CACvB;AAED,UAAU,0BAA2B,SAAQ,mBAAmB;IAC9D,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,qBAAsB,SAAQ,mBAAmB;IACzD,IAAI,EAAE,cAAc,GAAG,cAAc,CAAC;CACvC;AAkBD,wBAAgB,aAAa,CAAC,KAAK,EAAE,mBAAmB,GAAG,KAAK,IAAI,qBAAqB,CAExF;AAED,UAAU,6BAA8B,SAAQ,mBAAmB;IACjE,IAAI,EAAE,0BAA0B,CAAC;CAClC;AAYD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,YAEzD;AAWD,wBAAgB,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,iBAAiB,CA6E/G"}
|
package/dist/validate/run.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.validate = exports.getAnnotationArgs = exports.isOpcodeError = void 0;
|
|
3
|
+
exports.validate = exports.getAnnotationArgs = exports.isOpcodeError = exports.errorKinds = void 0;
|
|
4
4
|
const utils_1 = require("solidity-ast/utils");
|
|
5
5
|
const ast_dereferencer_1 = require("../ast-dereferencer");
|
|
6
6
|
const is_nullish_1 = require("../utils/is-nullish");
|
|
@@ -8,7 +8,9 @@ const function_1 = require("../utils/function");
|
|
|
8
8
|
const version_1 = require("../version");
|
|
9
9
|
const link_refs_1 = require("../link-refs");
|
|
10
10
|
const extract_1 = require("../storage/extract");
|
|
11
|
-
const
|
|
11
|
+
const contract_name_1 = require("../utils/contract-name");
|
|
12
|
+
const annotations_1 = require("../utils/annotations");
|
|
13
|
+
exports.errorKinds = [
|
|
12
14
|
'state-variable-assignment',
|
|
13
15
|
'state-variable-immutable',
|
|
14
16
|
'external-library-linking',
|
|
@@ -33,47 +35,18 @@ function isOpcodeError(error) {
|
|
|
33
35
|
return error.kind === 'delegatecall' || error.kind === 'selfdestruct';
|
|
34
36
|
}
|
|
35
37
|
exports.isOpcodeError = isOpcodeError;
|
|
36
|
-
function* execall(re, text) {
|
|
37
|
-
re = new RegExp(re, re.flags + (re.sticky ? '' : 'y'));
|
|
38
|
-
while (true) {
|
|
39
|
-
const match = re.exec(text);
|
|
40
|
-
if (match && match[0] !== '') {
|
|
41
|
-
yield match;
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
break;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
38
|
function getAllowed(node, reachable) {
|
|
49
39
|
if ('documentation' in node) {
|
|
50
40
|
const tag = `oz-upgrades-unsafe-allow${reachable ? '-reachable' : ''}`;
|
|
51
|
-
const doc =
|
|
41
|
+
const doc = (0, annotations_1.getDocumentation)(node);
|
|
52
42
|
return getAnnotationArgs(doc, tag);
|
|
53
43
|
}
|
|
54
44
|
else {
|
|
55
45
|
return [];
|
|
56
46
|
}
|
|
57
47
|
}
|
|
58
|
-
/**
|
|
59
|
-
* Get args from the doc string matching the given tag
|
|
60
|
-
*/
|
|
61
48
|
function getAnnotationArgs(doc, tag) {
|
|
62
|
-
|
|
63
|
-
for (const { groups } of execall(/^\s*(?:@(?<title>\w+)(?::(?<tag>[a-z][a-z-]*))? )?(?<args>(?:(?!^\s*@\w+)[^])*)/m, doc)) {
|
|
64
|
-
if (groups && groups.title === 'custom' && groups.tag === tag) {
|
|
65
|
-
const trimmedArgs = groups.args.trim();
|
|
66
|
-
if (trimmedArgs.length > 0) {
|
|
67
|
-
result.push(...trimmedArgs.split(/\s+/));
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
result.forEach(arg => {
|
|
72
|
-
if (!errorKinds.includes(arg)) {
|
|
73
|
-
throw new Error(`NatSpec: ${tag} argument not recognized: ${arg}`);
|
|
74
|
-
}
|
|
75
|
-
});
|
|
76
|
-
return result;
|
|
49
|
+
return (0, annotations_1.getAnnotationArgs)(doc, tag, exports.errorKinds);
|
|
77
50
|
}
|
|
78
51
|
exports.getAnnotationArgs = getAnnotationArgs;
|
|
79
52
|
function skipCheckReachable(error, node) {
|
|
@@ -83,9 +56,6 @@ function skipCheck(error, node) {
|
|
|
83
56
|
// skip both allow and allow-reachable errors in the lexical scope
|
|
84
57
|
return getAllowed(node, false).includes(error) || getAllowed(node, true).includes(error);
|
|
85
58
|
}
|
|
86
|
-
function getFullyQualifiedName(source, contractName) {
|
|
87
|
-
return `${source}:${contractName}`;
|
|
88
|
-
}
|
|
89
59
|
function validate(solcOutput, decodeSrc, solcVersion) {
|
|
90
60
|
const validation = {};
|
|
91
61
|
const fromId = {};
|
|
@@ -99,7 +69,7 @@ function validate(solcOutput, decodeSrc, solcVersion) {
|
|
|
99
69
|
const bytecode = solcOutput.contracts[source][contractName].evm.bytecode;
|
|
100
70
|
const version = bytecode.object === '' ? undefined : (0, version_1.getVersion)(bytecode.object);
|
|
101
71
|
const linkReferences = (0, link_refs_1.extractLinkReferences)(bytecode);
|
|
102
|
-
validation[getFullyQualifiedName(source, contractName)] = {
|
|
72
|
+
validation[(0, contract_name_1.getFullyQualifiedName)(source, contractName)] = {
|
|
103
73
|
src: contractName,
|
|
104
74
|
version,
|
|
105
75
|
inherit: [],
|
|
@@ -115,7 +85,7 @@ function validate(solcOutput, decodeSrc, solcVersion) {
|
|
|
115
85
|
};
|
|
116
86
|
}
|
|
117
87
|
for (const contractDef of (0, utils_1.findAll)('ContractDefinition', solcOutput.sources[source].ast)) {
|
|
118
|
-
const key = getFullyQualifiedName(source, contractDef.name);
|
|
88
|
+
const key = (0, contract_name_1.getFullyQualifiedName)(source, contractDef.name);
|
|
119
89
|
fromId[contractDef.id] = key;
|
|
120
90
|
// May be undefined in case of duplicate contract names in Truffle
|
|
121
91
|
const bytecode = solcOutput.contracts[source][contractDef.name]?.evm.bytecode;
|
package/dist/validate/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/validate/run.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/validate/run.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.
|
|
3
|
+
"version": "1.27.1",
|
|
4
4
|
"description": "",
|
|
5
5
|
"repository": "https://github.com/OpenZeppelin/openzeppelin-upgrades/tree/master/packages/core",
|
|
6
6
|
"license": "MIT",
|
|
@@ -29,7 +29,11 @@
|
|
|
29
29
|
"prepublishOnly": "bash scripts/copy-artifacts.sh",
|
|
30
30
|
"test": "tsc -b && hardhat compile --force && node scripts/copy-build-info.js && ava",
|
|
31
31
|
"test:watch": "hardhat compile --force && fgbg 'ava --watch' 'tsc -b --watch' --",
|
|
32
|
-
"version": "node ../../scripts/bump-changelog.js"
|
|
32
|
+
"version": "node ../../scripts/bump-changelog.js",
|
|
33
|
+
"cli": "node ./dist/cli/cli.js"
|
|
34
|
+
},
|
|
35
|
+
"bin": {
|
|
36
|
+
"openzeppelin-upgrades-core": "./dist/cli/cli.js"
|
|
33
37
|
},
|
|
34
38
|
"devDependencies": {
|
|
35
39
|
"@ava/typescript": "^2.0.0",
|
|
@@ -57,7 +61,9 @@
|
|
|
57
61
|
"compare-versions": "^5.0.0",
|
|
58
62
|
"debug": "^4.1.1",
|
|
59
63
|
"ethereumjs-util": "^7.0.3",
|
|
64
|
+
"minimist": "^1.2.7",
|
|
60
65
|
"proper-lockfile": "^4.1.1",
|
|
61
66
|
"solidity-ast": "^0.4.15"
|
|
62
|
-
}
|
|
67
|
+
},
|
|
68
|
+
"gitHead": "fc55c0dc8a992f649ec415f47797d5b5c8088b0c"
|
|
63
69
|
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import test, { ExecutionContext } from 'ava';
|
|
2
|
+
import { promisify } from 'util';
|
|
3
|
+
import { exec } from 'child_process';
|
|
4
|
+
import { promises as fs } from 'fs';
|
|
5
|
+
import path from 'path';
|
|
6
|
+
import os from 'os';
|
|
7
|
+
import rimrafAsync from 'rimraf';
|
|
8
|
+
import { artifacts } from 'hardhat';
|
|
9
|
+
|
|
10
|
+
const execAsync = promisify(exec);
|
|
11
|
+
const rimraf = promisify(rimrafAsync);
|
|
12
|
+
|
|
13
|
+
const CLI = 'node dist/cli/cli.js';
|
|
14
|
+
|
|
15
|
+
async function getTempDir(t: ExecutionContext) {
|
|
16
|
+
const temp = await fs.mkdtemp(path.join(os.tmpdir(), 'upgrades-core-test-'));
|
|
17
|
+
t.teardown(() => rimraf(temp));
|
|
18
|
+
return temp;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
test('help', async t => {
|
|
22
|
+
const output = (await execAsync(`${CLI} validate --help`)).stdout;
|
|
23
|
+
t.snapshot(output);
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
test('no args', async t => {
|
|
27
|
+
const output = (await execAsync(CLI)).stdout;
|
|
28
|
+
t.snapshot(output);
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
test('validate - errors', async t => {
|
|
32
|
+
const temp = await getTempDir(t);
|
|
33
|
+
const buildInfo = await artifacts.getBuildInfo(`contracts/test/cli/Validate.sol:Safe`);
|
|
34
|
+
await fs.writeFile(path.join(temp, 'validate.json'), JSON.stringify(buildInfo));
|
|
35
|
+
|
|
36
|
+
const error = await t.throwsAsync(execAsync(`${CLI} validate ${temp}`));
|
|
37
|
+
const expectation: string[] = [`Stdout: ${(error as any).stdout}`, `Stderr: ${(error as any).stderr}`];
|
|
38
|
+
t.snapshot(expectation.join('\n'));
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
test('validate - no upgradeable', async t => {
|
|
42
|
+
const temp = await getTempDir(t);
|
|
43
|
+
const buildInfo = await artifacts.getBuildInfo(`contracts/test/cli/Storage088.sol:Storage088`);
|
|
44
|
+
await fs.writeFile(path.join(temp, 'validate.json'), JSON.stringify(buildInfo));
|
|
45
|
+
|
|
46
|
+
const output = (await execAsync(`${CLI} validate ${temp}`)).stdout;
|
|
47
|
+
t.snapshot(output);
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
test('validate - ok', async t => {
|
|
51
|
+
const temp = await getTempDir(t);
|
|
52
|
+
const buildInfo = await artifacts.getBuildInfo(`contracts/test/cli/Annotation.sol:Annotation`);
|
|
53
|
+
await fs.writeFile(path.join(temp, 'validate.json'), JSON.stringify(buildInfo));
|
|
54
|
+
|
|
55
|
+
const output = (await execAsync(`${CLI} validate ${temp}`)).stdout;
|
|
56
|
+
t.snapshot(output);
|
|
57
|
+
});
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
# Snapshot report for `src/cli/cli.test.ts`
|
|
2
|
+
|
|
3
|
+
The actual snapshot is saved in `cli.test.ts.snap`.
|
|
4
|
+
|
|
5
|
+
Generated by [AVA](https://avajs.dev).
|
|
6
|
+
|
|
7
|
+
## help
|
|
8
|
+
|
|
9
|
+
> Snapshot 1
|
|
10
|
+
|
|
11
|
+
`Usage: npx @openzeppelin/upgrades-core validate [<BUILD_INFO_DIR>] [<OPTIONS>]␊
|
|
12
|
+
␊
|
|
13
|
+
Detects upgradeable contracts from a build info directory and validates whether they are upgrade safe.␊
|
|
14
|
+
␊
|
|
15
|
+
Arguments:␊
|
|
16
|
+
<BUILD_INFO_DIR> Optional path to the build info directory which contains JSON files with Solidity compiler input and output. Defaults to 'artifacts/build-info' for Hardhat projects or 'out/build-info' for Foundry projects. If your project uses a custom output directory, you must specify its build info directory here.␊
|
|
17
|
+
␊
|
|
18
|
+
Options:␊
|
|
19
|
+
--unsafeAllow "<VALIDATION_ERRORS>" Selectively disable one or more validation errors. Comma-separated list with one or more of the following: state-variable-assignment, state-variable-immutable, external-library-linking, struct-definition, enum-definition, constructor, delegatecall, selfdestruct, missing-public-upgradeto␊
|
|
20
|
+
--unsafeAllowRenames Configure storage layout check to allow variable renaming.␊
|
|
21
|
+
--unsafeSkipStorageCheck Skips checking for storage layout compatibility errors. This is a dangerous option meant to be used as a last resort.␊
|
|
22
|
+
`
|
|
23
|
+
|
|
24
|
+
## no args
|
|
25
|
+
|
|
26
|
+
> Snapshot 1
|
|
27
|
+
|
|
28
|
+
`Usage: npx @openzeppelin/upgrades-core validate [<BUILD_INFO_DIR>] [<OPTIONS>]␊
|
|
29
|
+
␊
|
|
30
|
+
Detects upgradeable contracts from a build info directory and validates whether they are upgrade safe.␊
|
|
31
|
+
␊
|
|
32
|
+
Arguments:␊
|
|
33
|
+
<BUILD_INFO_DIR> Optional path to the build info directory which contains JSON files with Solidity compiler input and output. Defaults to 'artifacts/build-info' for Hardhat projects or 'out/build-info' for Foundry projects. If your project uses a custom output directory, you must specify its build info directory here.␊
|
|
34
|
+
␊
|
|
35
|
+
Options:␊
|
|
36
|
+
--unsafeAllow "<VALIDATION_ERRORS>" Selectively disable one or more validation errors. Comma-separated list with one or more of the following: state-variable-assignment, state-variable-immutable, external-library-linking, struct-definition, enum-definition, constructor, delegatecall, selfdestruct, missing-public-upgradeto␊
|
|
37
|
+
--unsafeAllowRenames Configure storage layout check to allow variable renaming.␊
|
|
38
|
+
--unsafeSkipStorageCheck Skips checking for storage layout compatibility errors. This is a dangerous option meant to be used as a last resort.␊
|
|
39
|
+
`
|
|
40
|
+
|
|
41
|
+
## validate - errors
|
|
42
|
+
|
|
43
|
+
> Snapshot 1
|
|
44
|
+
|
|
45
|
+
`Stdout: ✔ contracts/test/cli/Validate.sol:Safe␊
|
|
46
|
+
␊
|
|
47
|
+
✔ contracts/test/cli/Validate.sol:HasInitializer␊
|
|
48
|
+
␊
|
|
49
|
+
✔ contracts/test/cli/Validate.sol:HasUpgradeTo␊
|
|
50
|
+
␊
|
|
51
|
+
✘ contracts/test/cli/Validate.sol:HasUpgradeToConstructorUnsafe␊
|
|
52
|
+
␊
|
|
53
|
+
contracts/test/cli/Validate.sol:33: Contract \`HasUpgradeToConstructorUnsafe\` has a constructor␊
|
|
54
|
+
Define an initializer instead␊
|
|
55
|
+
https://zpl.in/upgrades/error-001␊
|
|
56
|
+
␊
|
|
57
|
+
✘ contracts/test/cli/Validate.sol:MultipleUnsafe␊
|
|
58
|
+
␊
|
|
59
|
+
contracts/test/cli/Validate.sol:53: Use of delegatecall is not allowed␊
|
|
60
|
+
https://zpl.in/upgrades/error-002␊
|
|
61
|
+
␊
|
|
62
|
+
contracts/test/cli/Validate.sol:58: Use of delegatecall is not allowed␊
|
|
63
|
+
https://zpl.in/upgrades/error-002␊
|
|
64
|
+
␊
|
|
65
|
+
contracts/test/cli/Validate.sol:44: Use of selfdestruct is not allowed␊
|
|
66
|
+
https://zpl.in/upgrades/error-003␊
|
|
67
|
+
␊
|
|
68
|
+
✘ contracts/test/cli/Validate.sol:InheritsMultipleUnsafe␊
|
|
69
|
+
␊
|
|
70
|
+
contracts/test/cli/Validate.sol:53: Use of delegatecall is not allowed␊
|
|
71
|
+
https://zpl.in/upgrades/error-002␊
|
|
72
|
+
␊
|
|
73
|
+
contracts/test/cli/Validate.sol:58: Use of delegatecall is not allowed␊
|
|
74
|
+
https://zpl.in/upgrades/error-002␊
|
|
75
|
+
␊
|
|
76
|
+
contracts/test/cli/Validate.sol:44: Use of selfdestruct is not allowed␊
|
|
77
|
+
https://zpl.in/upgrades/error-003␊
|
|
78
|
+
␊
|
|
79
|
+
✘ contracts/test/cli/Validate.sol:UpgradesFromUUPS (upgrades from contracts/test/cli/Validate.sol:HasUpgradeTo)␊
|
|
80
|
+
␊
|
|
81
|
+
contracts/test/cli/Validate.sol:72: Implementation is missing a public \`upgradeTo(address)\` function␊
|
|
82
|
+
Inherit UUPSUpgradeable to include this function in your contract␊
|
|
83
|
+
@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol␊
|
|
84
|
+
https://zpl.in/upgrades/error-008␊
|
|
85
|
+
␊
|
|
86
|
+
✔ contracts/test/cli/Validate.sol:UpgradesFromTransparent (upgrades from contracts/test/cli/Validate.sol:HasInitializer)␊
|
|
87
|
+
␊
|
|
88
|
+
✘ contracts/test/cli/Validate.sol:UnsafeAndStorageLayoutErrors (upgrades from contracts/test/cli/Validate.sol:StorageV1)␊
|
|
89
|
+
␊
|
|
90
|
+
contracts/test/cli/Validate.sol:97: Use of selfdestruct is not allowed␊
|
|
91
|
+
https://zpl.in/upgrades/error-003␊
|
|
92
|
+
␊
|
|
93
|
+
contracts/test/cli/Validate.sol:94: Layout changed for \`__gap\` (uint256[49] -> uint256[49])␊
|
|
94
|
+
- Slot changed from 1 to 2␊
|
|
95
|
+
> Set __gap array to size 48␊
|
|
96
|
+
␊
|
|
97
|
+
✔ contracts/test/cli/Validate.sol:BecomesSafe (upgrades from contracts/test/cli/Validate.sol:MultipleUnsafe)␊
|
|
98
|
+
␊
|
|
99
|
+
✘ contracts/test/cli/Validate.sol:BecomesBadLayout (upgrades from contracts/test/cli/Validate.sol:BecomesSafe)␊
|
|
100
|
+
␊
|
|
101
|
+
BecomesSafe: Deleted \`x\`␊
|
|
102
|
+
> Keep the variable even if unused␊
|
|
103
|
+
␊
|
|
104
|
+
✘ contracts/test/cli/Validate.sol:StillUnsafe (upgrades from contracts/test/cli/Validate.sol:NonUpgradeable)␊
|
|
105
|
+
␊
|
|
106
|
+
contracts/test/cli/Validate.sol:119: Use of selfdestruct is not allowed␊
|
|
107
|
+
https://zpl.in/upgrades/error-003␊
|
|
108
|
+
␊
|
|
109
|
+
✔ contracts/test/cli/Validate.sol:InheritsAbstractUpgradeable␊
|
|
110
|
+
␊
|
|
111
|
+
✘ contracts/test/cli/Validate.sol:BothAnnotationsUnsafe (upgrades from contracts/test/cli/Validate.sol:StorageV1)␊
|
|
112
|
+
␊
|
|
113
|
+
contracts/test/cli/Validate.sol:140: Use of selfdestruct is not allowed␊
|
|
114
|
+
https://zpl.in/upgrades/error-003␊
|
|
115
|
+
␊
|
|
116
|
+
contracts/test/cli/Validate.sol:137: Layout changed for \`__gap\` (uint256[49] -> uint256[49])␊
|
|
117
|
+
- Slot changed from 1 to 2␊
|
|
118
|
+
> Set __gap array to size 48␊
|
|
119
|
+
␊
|
|
120
|
+
FAILED (14 upgradeable contracts detected, 6 passed, 8 failed)␊
|
|
121
|
+
␊
|
|
122
|
+
Stderr: `
|
|
123
|
+
|
|
124
|
+
## validate - no upgradeable
|
|
125
|
+
|
|
126
|
+
> Snapshot 1
|
|
127
|
+
|
|
128
|
+
`No upgradeable contracts detected.␊
|
|
129
|
+
`
|
|
130
|
+
|
|
131
|
+
## validate - ok
|
|
132
|
+
|
|
133
|
+
> Snapshot 1
|
|
134
|
+
|
|
135
|
+
` ✔ contracts/test/cli/Annotation.sol:Annotation␊
|
|
136
|
+
␊
|
|
137
|
+
SUCCESS (1 upgradeable contracts detected, 1 passed, 0 failed)␊
|
|
138
|
+
`
|
|
Binary file
|
package/src/cli/cli.ts
ADDED
package/src/cli/index.ts
ADDED