@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.
Files changed (124) hide show
  1. package/LICENSE +22 -0
  2. package/dist/cli/cli.d.ts +3 -0
  3. package/dist/cli/cli.d.ts.map +1 -0
  4. package/dist/cli/cli.js +9 -0
  5. package/dist/cli/cli.js.map +1 -0
  6. package/dist/cli/cli.test.d.ts +2 -0
  7. package/dist/cli/cli.test.d.ts.map +1 -0
  8. package/dist/cli/cli.test.js +52 -0
  9. package/dist/cli/cli.test.js.map +1 -0
  10. package/dist/cli/index.d.ts +4 -0
  11. package/dist/cli/index.d.ts.map +1 -0
  12. package/dist/cli/index.js +10 -0
  13. package/dist/cli/index.js.map +1 -0
  14. package/dist/cli/validate/build-info-file.d.ts +22 -0
  15. package/dist/cli/validate/build-info-file.d.ts.map +1 -0
  16. package/dist/cli/validate/build-info-file.js +116 -0
  17. package/dist/cli/validate/build-info-file.js.map +1 -0
  18. package/dist/cli/validate/build-info-file.test.d.ts +2 -0
  19. package/dist/cli/validate/build-info-file.test.d.ts.map +1 -0
  20. package/dist/cli/validate/build-info-file.test.js +175 -0
  21. package/dist/cli/validate/build-info-file.test.js.map +1 -0
  22. package/dist/cli/validate/contract-report.d.ts +31 -0
  23. package/dist/cli/validate/contract-report.d.ts.map +1 -0
  24. package/dist/cli/validate/contract-report.js +107 -0
  25. package/dist/cli/validate/contract-report.js.map +1 -0
  26. package/dist/cli/validate/error.d.ts +4 -0
  27. package/dist/cli/validate/error.d.ts.map +1 -0
  28. package/dist/cli/validate/error.js +8 -0
  29. package/dist/cli/validate/error.js.map +1 -0
  30. package/dist/cli/validate/project-report.d.ts +18 -0
  31. package/dist/cli/validate/project-report.d.ts.map +1 -0
  32. package/dist/cli/validate/project-report.js +42 -0
  33. package/dist/cli/validate/project-report.js.map +1 -0
  34. package/dist/cli/validate/project-report.test.d.ts +2 -0
  35. package/dist/cli/validate/project-report.test.d.ts.map +1 -0
  36. package/dist/cli/validate/project-report.test.js +90 -0
  37. package/dist/cli/validate/project-report.test.js.map +1 -0
  38. package/dist/cli/validate/upgradeability-assessment.d.ts +19 -0
  39. package/dist/cli/validate/upgradeability-assessment.d.ts.map +1 -0
  40. package/dist/cli/validate/upgradeability-assessment.js +103 -0
  41. package/dist/cli/validate/upgradeability-assessment.js.map +1 -0
  42. package/dist/cli/validate/validate-upgrade-safety.d.ts +16 -0
  43. package/dist/cli/validate/validate-upgrade-safety.d.ts.map +1 -0
  44. package/dist/cli/validate/validate-upgrade-safety.js +23 -0
  45. package/dist/cli/validate/validate-upgrade-safety.js.map +1 -0
  46. package/dist/cli/validate/validate-upgrade-safety.test.d.ts +2 -0
  47. package/dist/cli/validate/validate-upgrade-safety.test.d.ts.map +1 -0
  48. package/dist/cli/validate/validate-upgrade-safety.test.js +74 -0
  49. package/dist/cli/validate/validate-upgrade-safety.test.js.map +1 -0
  50. package/dist/cli/validate/validations.d.ts +11 -0
  51. package/dist/cli/validate/validations.d.ts.map +1 -0
  52. package/dist/cli/validate/validations.js +40 -0
  53. package/dist/cli/validate/validations.js.map +1 -0
  54. package/dist/cli/validate/validations.test.d.ts +2 -0
  55. package/dist/cli/validate/validations.test.d.ts.map +1 -0
  56. package/dist/cli/validate/validations.test.js +64 -0
  57. package/dist/cli/validate/validations.test.js.map +1 -0
  58. package/dist/cli/validate.d.ts +16 -0
  59. package/dist/cli/validate.d.ts.map +1 -0
  60. package/dist/cli/validate.js +119 -0
  61. package/dist/cli/validate.js.map +1 -0
  62. package/dist/cli/validate.test.d.ts +2 -0
  63. package/dist/cli/validate.test.d.ts.map +1 -0
  64. package/dist/cli/validate.test.js +108 -0
  65. package/dist/cli/validate.test.js.map +1 -0
  66. package/dist/index.d.ts +1 -0
  67. package/dist/index.d.ts.map +1 -1
  68. package/dist/index.js +5 -1
  69. package/dist/index.js.map +1 -1
  70. package/dist/manifest.test.js +2 -1
  71. package/dist/manifest.test.js.map +1 -1
  72. package/dist/utils/annotations.d.ts +16 -0
  73. package/dist/utils/annotations.d.ts.map +1 -0
  74. package/dist/utils/annotations.js +46 -0
  75. package/dist/utils/annotations.js.map +1 -0
  76. package/dist/utils/contract-name.d.ts +2 -0
  77. package/dist/utils/contract-name.d.ts.map +1 -0
  78. package/dist/utils/contract-name.js +8 -0
  79. package/dist/utils/contract-name.js.map +1 -0
  80. package/dist/validate/index.d.ts +1 -1
  81. package/dist/validate/index.d.ts.map +1 -1
  82. package/dist/validate/index.js +2 -1
  83. package/dist/validate/index.js.map +1 -1
  84. package/dist/validate/query.d.ts +8 -1
  85. package/dist/validate/query.d.ts.map +1 -1
  86. package/dist/validate/query.js +16 -3
  87. package/dist/validate/query.js.map +1 -1
  88. package/dist/validate/run.d.ts +1 -4
  89. package/dist/validate/run.d.ts.map +1 -1
  90. package/dist/validate/run.js +8 -38
  91. package/dist/validate/run.js.map +1 -1
  92. package/package.json +9 -3
  93. package/src/cli/cli.test.ts +57 -0
  94. package/src/cli/cli.test.ts.md +138 -0
  95. package/src/cli/cli.test.ts.snap +0 -0
  96. package/src/cli/cli.ts +9 -0
  97. package/src/cli/index.ts +3 -0
  98. package/src/cli/validate/build-info-file.test.ts +211 -0
  99. package/src/cli/validate/build-info-file.ts +150 -0
  100. package/src/cli/validate/contract-report.ts +130 -0
  101. package/src/cli/validate/error.ts +3 -0
  102. package/src/cli/validate/project-report.test.ts +124 -0
  103. package/src/cli/validate/project-report.test.ts.md +40 -0
  104. package/src/cli/validate/project-report.test.ts.snap +0 -0
  105. package/src/cli/validate/project-report.ts +44 -0
  106. package/src/cli/validate/upgradeability-assessment.ts +137 -0
  107. package/src/cli/validate/validate-upgrade-safety.test.ts +102 -0
  108. package/src/cli/validate/validate-upgrade-safety.test.ts.md +98 -0
  109. package/src/cli/validate/validate-upgrade-safety.test.ts.snap +0 -0
  110. package/src/cli/validate/validate-upgrade-safety.ts +29 -0
  111. package/src/cli/validate/validations.test.ts +72 -0
  112. package/src/cli/validate/validations.test.ts.md +87 -0
  113. package/src/cli/validate/validations.test.ts.snap +0 -0
  114. package/src/cli/validate/validations.ts +53 -0
  115. package/src/cli/validate.test.ts +112 -0
  116. package/src/cli/validate.ts +134 -0
  117. package/src/index.ts +2 -0
  118. package/src/manifest.test.ts +2 -1
  119. package/src/utils/annotations.ts +47 -0
  120. package/src/utils/contract-name.ts +3 -0
  121. package/src/validate/index.ts +1 -0
  122. package/src/validate/query.ts +16 -3
  123. package/src/validate/run.ts +5 -41
  124. package/CHANGELOG.md +0 -265
@@ -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
- const methods = getAllMethods(runValidation, fullContractName);
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":"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"}
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/validate/query.ts"],"names":[],"mappings":"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"}
@@ -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;AAElD,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,QAAA,MAAM,UAAU,mNAUN,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;AAwBD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,YAqBzD;AAeD,wBAAgB,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,iBAAiB,CA6E/G"}
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"}
@@ -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 errorKinds = [
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 = typeof node.documentation === 'string' ? node.documentation : node.documentation?.text ?? '';
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
- const result = [];
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;
@@ -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.26.2",
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
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { main } from './validate';
4
+
5
+ const run = async () => {
6
+ await main(process.argv.slice(2));
7
+ };
8
+
9
+ void run();
@@ -0,0 +1,3 @@
1
+ export { ValidateUpgradeSafetyOptions, validateUpgradeSafety } from './validate/validate-upgrade-safety';
2
+ export { ProjectReport } from './validate/project-report';
3
+ export { ReferenceContractNotFound } from './validate/upgradeability-assessment';