@openzeppelin/upgrades-core 1.9.1 → 1.11.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 (191) hide show
  1. package/LICENSE +22 -0
  2. package/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.dbg.json +1 -1
  3. package/artifacts/@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol/BeaconProxy.dbg.json +4 -0
  4. package/artifacts/@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol/BeaconProxy.json +80 -0
  5. package/artifacts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.dbg.json +4 -0
  6. package/artifacts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.json +113 -0
  7. package/artifacts/AdminUpgradeabilityProxy.json +2 -2
  8. package/artifacts/contracts/proxy/AdminUpgradeabilityProxy.sol/AdminUpgradeabilityProxy.json +2 -2
  9. package/dist/ast-dereferencer.js +2 -2
  10. package/dist/ast-dereferencer.js.map +1 -1
  11. package/dist/beacon.d.ts +8 -0
  12. package/dist/beacon.d.ts.map +1 -0
  13. package/dist/beacon.js +25 -0
  14. package/dist/beacon.js.map +1 -0
  15. package/dist/deployment.js +18 -18
  16. package/dist/deployment.js.map +1 -1
  17. package/dist/deployment.test.js +39 -39
  18. package/dist/deployment.test.js.map +1 -1
  19. package/dist/eip-1967-type.d.ts +4 -0
  20. package/dist/eip-1967-type.d.ts.map +1 -0
  21. package/dist/eip-1967-type.js +37 -0
  22. package/dist/eip-1967-type.js.map +1 -0
  23. package/dist/eip-1967.d.ts +5 -0
  24. package/dist/eip-1967.d.ts.map +1 -1
  25. package/dist/eip-1967.js +22 -15
  26. package/dist/eip-1967.js.map +1 -1
  27. package/dist/impl-address.d.ts +19 -0
  28. package/dist/impl-address.d.ts.map +1 -0
  29. package/dist/impl-address.js +67 -0
  30. package/dist/impl-address.js.map +1 -0
  31. package/dist/impl-store.d.ts.map +1 -1
  32. package/dist/impl-store.js +8 -6
  33. package/dist/impl-store.js.map +1 -1
  34. package/dist/impl-store.test.js +18 -18
  35. package/dist/impl-store.test.js.map +1 -1
  36. package/dist/index.d.ts +7 -1
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +23 -3
  39. package/dist/index.js.map +1 -1
  40. package/dist/levenshtein.test.js +14 -14
  41. package/dist/levenshtein.test.js.map +1 -1
  42. package/dist/link-refs.test.js +4 -4
  43. package/dist/link-refs.test.js.map +1 -1
  44. package/dist/manifest-storage-layout.js +8 -8
  45. package/dist/manifest-storage-layout.js.map +1 -1
  46. package/dist/manifest-storage-layout.test.js +16 -16
  47. package/dist/manifest-storage-layout.test.js.map +1 -1
  48. package/dist/manifest.d.ts +1 -1
  49. package/dist/manifest.d.ts.map +1 -1
  50. package/dist/manifest.js +6 -6
  51. package/dist/manifest.js.map +1 -1
  52. package/dist/manifest.test.js +2 -2
  53. package/dist/manifest.test.js.map +1 -1
  54. package/dist/provider.d.ts +2 -0
  55. package/dist/provider.d.ts.map +1 -1
  56. package/dist/provider.js +11 -1
  57. package/dist/provider.js.map +1 -1
  58. package/dist/provider.test.js +12 -12
  59. package/dist/provider.test.js.map +1 -1
  60. package/dist/proxy-kind.d.ts +12 -0
  61. package/dist/proxy-kind.d.ts.map +1 -0
  62. package/dist/proxy-kind.js +50 -0
  63. package/dist/proxy-kind.js.map +1 -0
  64. package/dist/scripts/migrate-oz-cli-project.js +1 -1
  65. package/dist/scripts/migrate-oz-cli-project.js.map +1 -1
  66. package/dist/scripts/migrate-oz-cli-project.test.js +9 -9
  67. package/dist/scripts/migrate-oz-cli-project.test.js.map +1 -1
  68. package/dist/src-decoder.test.js +2 -3
  69. package/dist/src-decoder.test.js.map +1 -1
  70. package/dist/standalone.d.ts +19 -0
  71. package/dist/standalone.d.ts.map +1 -0
  72. package/dist/standalone.js +24 -0
  73. package/dist/standalone.js.map +1 -0
  74. package/dist/standalone.test.d.ts +2 -0
  75. package/dist/standalone.test.d.ts.map +1 -0
  76. package/dist/standalone.test.js +33 -0
  77. package/dist/standalone.test.js.map +1 -0
  78. package/dist/storage/compare.js +7 -7
  79. package/dist/storage/compare.js.map +1 -1
  80. package/dist/storage/extract.js +9 -9
  81. package/dist/storage/extract.js.map +1 -1
  82. package/dist/storage/index.d.ts +7 -0
  83. package/dist/storage/index.d.ts.map +1 -1
  84. package/dist/storage/index.js +17 -11
  85. package/dist/storage/index.js.map +1 -1
  86. package/dist/storage/layout.js +1 -1
  87. package/dist/storage/layout.js.map +1 -1
  88. package/dist/storage/report.d.ts +3 -2
  89. package/dist/storage/report.d.ts.map +1 -1
  90. package/dist/storage/report.js +17 -11
  91. package/dist/storage/report.js.map +1 -1
  92. package/dist/storage/report.test.js +5 -5
  93. package/dist/storage/report.test.js.map +1 -1
  94. package/dist/storage.test.js +32 -32
  95. package/dist/storage.test.js.map +1 -1
  96. package/dist/stub-provider.d.ts.map +1 -1
  97. package/dist/stub-provider.js +0 -1
  98. package/dist/stub-provider.js.map +1 -1
  99. package/dist/usage-error.d.ts +21 -0
  100. package/dist/usage-error.d.ts.map +1 -0
  101. package/dist/usage-error.js +51 -0
  102. package/dist/usage-error.js.map +1 -0
  103. package/dist/utils/address.d.ts +8 -0
  104. package/dist/utils/address.d.ts.map +1 -0
  105. package/dist/utils/address.js +20 -0
  106. package/dist/utils/address.js.map +1 -0
  107. package/dist/utils/debug.js +1 -1
  108. package/dist/utils/debug.js.map +1 -1
  109. package/dist/utils/deep-array.test.js +12 -12
  110. package/dist/utils/deep-array.test.js.map +1 -1
  111. package/dist/utils/function.js +5 -5
  112. package/dist/utils/function.js.map +1 -1
  113. package/dist/utils/function.test.js +4 -4
  114. package/dist/utils/function.test.js.map +1 -1
  115. package/dist/utils/is-nullish.test.js +6 -6
  116. package/dist/utils/is-nullish.test.js.map +1 -1
  117. package/dist/utils/itemize.js +1 -1
  118. package/dist/utils/itemize.js.map +1 -1
  119. package/dist/utils/log.js +1 -1
  120. package/dist/utils/log.js.map +1 -1
  121. package/dist/utils/make-non-enumerable.d.ts +1 -1
  122. package/dist/utils/make-non-enumerable.d.ts.map +1 -1
  123. package/dist/utils/make-non-enumerable.js +0 -1
  124. package/dist/utils/make-non-enumerable.js.map +1 -1
  125. package/dist/utils/parse-type-id.js +1 -1
  126. package/dist/utils/parse-type-id.js.map +1 -1
  127. package/dist/utils/parse-type-id.test.js +2 -2
  128. package/dist/utils/parse-type-id.test.js.map +1 -1
  129. package/dist/utils/type-id.js +1 -1
  130. package/dist/utils/type-id.js.map +1 -1
  131. package/dist/validate/error.d.ts.map +1 -1
  132. package/dist/validate/error.js +2 -67
  133. package/dist/validate/error.js.map +1 -1
  134. package/dist/validate/index.d.ts +2 -1
  135. package/dist/validate/index.d.ts.map +1 -1
  136. package/dist/validate/index.js +4 -1
  137. package/dist/validate/index.js.map +1 -1
  138. package/dist/validate/overrides.js +2 -2
  139. package/dist/validate/overrides.js.map +1 -1
  140. package/dist/validate/query.d.ts +3 -1
  141. package/dist/validate/query.d.ts.map +1 -1
  142. package/dist/validate/query.js +45 -19
  143. package/dist/validate/query.js.map +1 -1
  144. package/dist/validate/query.test.js +4 -4
  145. package/dist/validate/query.test.js.map +1 -1
  146. package/dist/validate/report.d.ts +8 -0
  147. package/dist/validate/report.d.ts.map +1 -0
  148. package/dist/validate/report.js +79 -0
  149. package/dist/validate/report.js.map +1 -0
  150. package/dist/validate/run.js +15 -15
  151. package/dist/validate/run.js.map +1 -1
  152. package/dist/validate.test.js +7 -6
  153. package/dist/validate.test.js.map +1 -1
  154. package/dist/version.d.ts +3 -3
  155. package/dist/version.d.ts.map +1 -1
  156. package/dist/version.js +14 -8
  157. package/dist/version.js.map +1 -1
  158. package/dist/version.test.js +11 -11
  159. package/dist/version.test.js.map +1 -1
  160. package/package.json +13 -8
  161. package/src/beacon.ts +20 -0
  162. package/src/eip-1967-type.ts +35 -0
  163. package/src/eip-1967.ts +16 -12
  164. package/src/impl-address.ts +76 -0
  165. package/src/impl-store.ts +2 -0
  166. package/src/index.ts +18 -1
  167. package/src/manifest.ts +2 -2
  168. package/src/provider.ts +16 -0
  169. package/src/proxy-kind.ts +59 -0
  170. package/src/src-decoder.test.ts +0 -2
  171. package/src/standalone.test.ts +40 -0
  172. package/src/standalone.ts +41 -0
  173. package/src/storage/index.ts +14 -4
  174. package/src/storage/report.ts +10 -5
  175. package/src/stub-provider.ts +0 -1
  176. package/src/usage-error.ts +68 -0
  177. package/src/utils/address.ts +16 -0
  178. package/src/utils/make-non-enumerable.ts +1 -2
  179. package/src/validate/error.ts +5 -69
  180. package/src/validate/index.ts +2 -0
  181. package/src/validate/overrides.ts +1 -1
  182. package/src/validate/query.ts +38 -9
  183. package/src/validate/report.ts +78 -0
  184. package/src/validate.test.ts +1 -0
  185. package/src/version.ts +14 -6
  186. package/CHANGELOG.md +0 -110
  187. package/dist/set-proxy-kind.d.ts +0 -5
  188. package/dist/set-proxy-kind.d.ts.map +0 -1
  189. package/dist/set-proxy-kind.js +0 -25
  190. package/dist/set-proxy-kind.js.map +0 -1
  191. package/src/set-proxy-kind.ts +0 -27
@@ -1,16 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isUpgradeSafe = exports.getErrors = exports.getUnlinkedBytecode = exports.findVersionWithoutMetadataMatches = exports.unfoldStorageLayout = exports.getStorageLayout = exports.getContractNameAndRunValidation = exports.getContractVersion = exports.assertUpgradeSafe = void 0;
3
+ exports.inferProxyKind = 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 link_refs_1 = require("../link-refs");
6
6
  const overrides_1 = require("./overrides");
7
7
  const error_1 = require("./error");
8
8
  const data_1 = require("./data");
9
+ const upgradeToSignature = 'upgradeTo(address)';
9
10
  function assertUpgradeSafe(data, version, opts) {
10
- const dataV3 = data_1.normalizeValidationData(data);
11
+ const dataV3 = (0, data_1.normalizeValidationData)(data);
11
12
  const [contractName] = getContractNameAndRunValidation(dataV3, version);
12
- let errors = getErrors(dataV3, version);
13
- errors = overrides_1.processExceptions(contractName, errors, opts);
13
+ const errors = getErrors(dataV3, version, opts);
14
14
  if (errors.length > 0) {
15
15
  throw new error_1.ValidationErrors(contractName, errors);
16
16
  }
@@ -25,7 +25,7 @@ function getContractVersion(runData, contractName) {
25
25
  }
26
26
  exports.getContractVersion = getContractVersion;
27
27
  function getContractNameAndRunValidation(data, version) {
28
- const dataV3 = data_1.normalizeValidationData(data);
28
+ const dataV3 = (0, data_1.normalizeValidationData)(data);
29
29
  let runValidation;
30
30
  let contractName;
31
31
  for (const validation of dataV3.log) {
@@ -42,7 +42,7 @@ function getContractNameAndRunValidation(data, version) {
42
42
  }
43
43
  exports.getContractNameAndRunValidation = getContractNameAndRunValidation;
44
44
  function getStorageLayout(data, version) {
45
- const dataV3 = data_1.normalizeValidationData(data);
45
+ const dataV3 = (0, data_1.normalizeValidationData)(data);
46
46
  const [contractName, runValidation] = getContractNameAndRunValidation(dataV3, version);
47
47
  return unfoldStorageLayout(runValidation, contractName);
48
48
  }
@@ -59,7 +59,7 @@ function unfoldStorageLayout(runData, contractName) {
59
59
  exports.unfoldStorageLayout = unfoldStorageLayout;
60
60
  function* findVersionWithoutMetadataMatches(data, versionWithoutMetadata) {
61
61
  var _a;
62
- const dataV3 = data_1.normalizeValidationData(data);
62
+ const dataV3 = (0, data_1.normalizeValidationData)(data);
63
63
  for (const validation of dataV3.log) {
64
64
  for (const contractName in validation) {
65
65
  if (((_a = validation[contractName].version) === null || _a === void 0 ? void 0 : _a.withoutMetadata) === versionWithoutMetadata) {
@@ -71,13 +71,13 @@ function* findVersionWithoutMetadataMatches(data, versionWithoutMetadata) {
71
71
  exports.findVersionWithoutMetadataMatches = findVersionWithoutMetadataMatches;
72
72
  function getUnlinkedBytecode(data, bytecode) {
73
73
  var _a;
74
- const dataV3 = data_1.normalizeValidationData(data);
74
+ const dataV3 = (0, data_1.normalizeValidationData)(data);
75
75
  for (const validation of dataV3.log) {
76
76
  const linkableContracts = Object.keys(validation).filter(name => validation[name].linkReferences.length > 0);
77
77
  for (const name of linkableContracts) {
78
78
  const { linkReferences } = validation[name];
79
- const unlinkedBytecode = link_refs_1.unlinkBytecode(bytecode, linkReferences);
80
- const version = version_1.getVersion(unlinkedBytecode);
79
+ const unlinkedBytecode = (0, link_refs_1.unlinkBytecode)(bytecode, linkReferences);
80
+ const version = (0, version_1.getVersion)(unlinkedBytecode);
81
81
  if (((_a = validation[name].version) === null || _a === void 0 ? void 0 : _a.withMetadata) === version.withMetadata) {
82
82
  return unlinkedBytecode;
83
83
  }
@@ -86,26 +86,52 @@ function getUnlinkedBytecode(data, bytecode) {
86
86
  return bytecode;
87
87
  }
88
88
  exports.getUnlinkedBytecode = getUnlinkedBytecode;
89
- function getErrors(data, version) {
90
- const dataV3 = data_1.normalizeValidationData(data);
89
+ function getErrors(data, version, opts = {}) {
90
+ const dataV3 = (0, data_1.normalizeValidationData)(data);
91
91
  const [contractName, runValidation] = getContractNameAndRunValidation(dataV3, version);
92
92
  const c = runValidation[contractName];
93
- const errors = c.errors
94
- .concat(...c.inherit.map(name => runValidation[name].errors))
95
- .concat(...c.libraries.map(name => runValidation[name].errors));
96
- const selfAndInheritedMethods = c.methods.concat(...c.inherit.map(name => runValidation[name].methods));
97
- if (!selfAndInheritedMethods.includes('upgradeTo(address)')) {
93
+ const errors = getUsedContractsAndLibraries(contractName, runValidation).flatMap(name => runValidation[name].errors);
94
+ const selfAndInheritedMethods = getAllMethods(runValidation, contractName);
95
+ if (!selfAndInheritedMethods.includes(upgradeToSignature)) {
98
96
  errors.push({
99
97
  src: c.src,
100
98
  kind: 'missing-public-upgradeto',
101
99
  });
102
100
  }
103
- return errors;
101
+ return (0, overrides_1.processExceptions)(contractName, errors, opts);
104
102
  }
105
103
  exports.getErrors = getErrors;
104
+ function getAllMethods(runValidation, contractName) {
105
+ const c = runValidation[contractName];
106
+ return c.methods.concat(...c.inherit.map(name => runValidation[name].methods));
107
+ }
108
+ function getUsedContractsAndLibraries(contractName, runValidation) {
109
+ const c = runValidation[contractName];
110
+ // Add current contract and all of its parents
111
+ const res = new Set([contractName, ...c.inherit]);
112
+ // Add used libraries transitively until no more are found
113
+ for (const c1 of res) {
114
+ for (const c2 of runValidation[c1].libraries) {
115
+ res.add(c2);
116
+ }
117
+ }
118
+ return Array.from(res);
119
+ }
106
120
  function isUpgradeSafe(data, version) {
107
- const dataV3 = data_1.normalizeValidationData(data);
121
+ const dataV3 = (0, data_1.normalizeValidationData)(data);
108
122
  return getErrors(dataV3, version).length == 0;
109
123
  }
110
124
  exports.isUpgradeSafe = isUpgradeSafe;
125
+ function inferProxyKind(data, version) {
126
+ const dataV3 = (0, data_1.normalizeValidationData)(data);
127
+ const [contractName, runValidation] = getContractNameAndRunValidation(dataV3, version);
128
+ const methods = getAllMethods(runValidation, contractName);
129
+ if (methods.includes(upgradeToSignature)) {
130
+ return 'uups';
131
+ }
132
+ else {
133
+ return 'transparent';
134
+ }
135
+ }
136
+ exports.inferProxyKind = inferProxyKind;
111
137
  //# sourceMappingURL=query.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/validate/query.ts"],"names":[],"mappings":";;;AAAA,wCAAiD;AAGjD,4CAA8C;AAC9C,2CAAmE;AACnE,mCAA2C;AAC3C,iCAAiE;AAEjE,SAAgB,iBAAiB,CAAC,IAAoB,EAAE,OAAgB,EAAE,IAAuB;IAC/F,MAAM,MAAM,GAAG,8BAAuB,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,CAAC,YAAY,CAAC,GAAG,+BAA+B,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAExE,IAAI,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,MAAM,GAAG,6BAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAEvD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;QACrB,MAAM,IAAI,wBAAgB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;KAClD;AACH,CAAC;AAVD,8CAUC;AAED,SAAgB,kBAAkB,CAAC,OAA0B,EAAE,YAAoB;IACjF,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC1C,IAAI,OAAO,KAAK,SAAS,EAAE;QACzB,MAAM,IAAI,KAAK,CAAC,YAAY,YAAY,cAAc,CAAC,CAAC;KACzD;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAND,gDAMC;AAED,SAAgB,+BAA+B,CAAC,IAAoB,EAAE,OAAgB;IACpF,MAAM,MAAM,GAAG,8BAAuB,CAAC,IAAI,CAAC,CAAC;IAE7C,IAAI,aAAa,CAAC;IAClB,IAAI,YAAY,CAAC;IAEjB,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,GAAG,EAAE;QACnC,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CACzC,IAAI,CAAC,EAAE,WAAC,OAAA,CAAA,MAAA,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,0CAAE,YAAY,MAAK,OAAO,CAAC,YAAY,CAAA,EAAA,CACxE,CAAC;QACF,IAAI,YAAY,KAAK,SAAS,EAAE;YAC9B,aAAa,GAAG,UAAU,CAAC;YAC3B,MAAM;SACP;KACF;IAED,IAAI,YAAY,KAAK,SAAS,IAAI,aAAa,KAAK,SAAS,EAAE;QAC7D,MAAM,IAAI,KAAK,CAAC,8FAA8F,CAAC,CAAC;KACjH;IAED,OAAO,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;AACvC,CAAC;AArBD,0EAqBC;AAED,SAAgB,gBAAgB,CAAC,IAAoB,EAAE,OAAgB;IACrE,MAAM,MAAM,GAAG,8BAAuB,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,GAAG,+BAA+B,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvF,OAAO,mBAAmB,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;AAC1D,CAAC;AAJD,4CAIC;AAED,SAAgB,mBAAmB,CAAC,OAA0B,EAAE,YAAoB;IAClF,MAAM,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAChC,MAAM,MAAM,GAAkB,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IACzD,KAAK,MAAM,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;QACnD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KACzD;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AARD,kDAQC;AAED,QAAe,CAAC,CAAC,iCAAiC,CAChD,IAAoB,EACpB,sBAA8B;;IAE9B,MAAM,MAAM,GAAG,8BAAuB,CAAC,IAAI,CAAC,CAAC;IAE7C,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,GAAG,EAAE;QACnC,KAAK,MAAM,YAAY,IAAI,UAAU,EAAE;YACrC,IAAI,CAAA,MAAA,UAAU,CAAC,YAAY,CAAC,CAAC,OAAO,0CAAE,eAAe,MAAK,sBAAsB,EAAE;gBAChF,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;aAClC;SACF;KACF;AACH,CAAC;AAbD,8EAaC;AAED,SAAgB,mBAAmB,CAAC,IAAoB,EAAE,QAAgB;;IACxE,MAAM,MAAM,GAAG,8BAAuB,CAAC,IAAI,CAAC,CAAC;IAE7C,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,GAAG,EAAE;QACnC,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAE7G,KAAK,MAAM,IAAI,IAAI,iBAAiB,EAAE;YACpC,MAAM,EAAE,cAAc,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;YAC5C,MAAM,gBAAgB,GAAG,0BAAc,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;YAClE,MAAM,OAAO,GAAG,oBAAU,CAAC,gBAAgB,CAAC,CAAC;YAE7C,IAAI,CAAA,MAAA,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,0CAAE,YAAY,MAAK,OAAO,CAAC,YAAY,EAAE;gBACnE,OAAO,gBAAgB,CAAC;aACzB;SACF;KACF;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAlBD,kDAkBC;AAED,SAAgB,SAAS,CAAC,IAAoB,EAAE,OAAgB;IAC9D,MAAM,MAAM,GAAG,8BAAuB,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,GAAG,+BAA+B,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvF,MAAM,CAAC,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;IAEtC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM;SACpB,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;SAC5D,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAElE,MAAM,uBAAuB,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAExG,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE;QAC3D,MAAM,CAAC,IAAI,CAAC;YACV,GAAG,EAAE,CAAC,CAAC,GAAG;YACV,IAAI,EAAE,0BAA0B;SACjC,CAAC,CAAC;KACJ;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAnBD,8BAmBC;AAED,SAAgB,aAAa,CAAC,IAAoB,EAAE,OAAgB;IAClE,MAAM,MAAM,GAAG,8BAAuB,CAAC,IAAI,CAAC,CAAC;IAC7C,OAAO,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;AAChD,CAAC;AAHD,sCAGC"}
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/validate/query.ts"],"names":[],"mappings":"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"}
@@ -6,12 +6,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const ava_1 = __importDefault(require("ava"));
7
7
  const query_1 = require("./query");
8
8
  const version_1 = require("../version");
9
- ava_1.default('getUnlinkedBytecode', t => {
9
+ (0, ava_1.default)('getUnlinkedBytecode', t => {
10
10
  const unlinkedBytecode = '0x12__$5ae0c2211b657f8a7ca51e0b14f2a8333d$__78';
11
11
  const linkedBytecode = '0x12456456456456456456456456456456456456456478';
12
12
  const validation = {
13
13
  B: {
14
- version: version_1.getVersion(unlinkedBytecode),
14
+ version: (0, version_1.getVersion)(unlinkedBytecode),
15
15
  linkReferences: [
16
16
  {
17
17
  src: '',
@@ -30,7 +30,7 @@ ava_1.default('getUnlinkedBytecode', t => {
30
30
  ],
31
31
  },
32
32
  A: {
33
- version: version_1.getVersion(unlinkedBytecode),
33
+ version: (0, version_1.getVersion)(unlinkedBytecode),
34
34
  linkReferences: [
35
35
  {
36
36
  src: '',
@@ -42,7 +42,7 @@ ava_1.default('getUnlinkedBytecode', t => {
42
42
  ],
43
43
  },
44
44
  };
45
- const recovered = query_1.getUnlinkedBytecode(validation, linkedBytecode);
45
+ const recovered = (0, query_1.getUnlinkedBytecode)(validation, linkedBytecode);
46
46
  t.is(recovered, unlinkedBytecode);
47
47
  });
48
48
  //# sourceMappingURL=query.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"query.test.js","sourceRoot":"","sources":["../../src/validate/query.test.ts"],"names":[],"mappings":";;;;;AAAA,8CAAuB;AAGvB,mCAA8C;AAC9C,wCAAwC;AAExC,aAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC,EAAE;IAC9B,MAAM,gBAAgB,GAAG,gDAAgD,CAAC;IAC1E,MAAM,cAAc,GAAG,gDAAgD,CAAC;IAExE,MAAM,UAAU,GAAgD;QAC9D,CAAC,EAAE;YACD,OAAO,EAAE,oBAAU,CAAC,gBAAgB,CAAC;YACrC,cAAc,EAAE;gBACd;oBACE,GAAG,EAAE,EAAE;oBACP,IAAI,EAAE,EAAE;oBACR,KAAK,EAAE,EAAE;oBACT,MAAM,EAAE,EAAE;oBACV,WAAW,EAAE,0CAA0C;iBACxD;gBACD;oBACE,GAAG,EAAE,EAAE;oBACP,IAAI,EAAE,EAAE;oBACR,KAAK,EAAE,EAAE;oBACT,MAAM,EAAE,EAAE;oBACV,WAAW,EAAE,0CAA0C;iBACxD;aACF;SACF;QACD,CAAC,EAAE;YACD,OAAO,EAAE,oBAAU,CAAC,gBAAgB,CAAC;YACrC,cAAc,EAAE;gBACd;oBACE,GAAG,EAAE,EAAE;oBACP,IAAI,EAAE,EAAE;oBACR,KAAK,EAAE,CAAC;oBACR,MAAM,EAAE,EAAE;oBACV,WAAW,EAAE,0CAA0C;iBACxD;aACF;SACF;KACF,CAAC;IAEF,MAAM,SAAS,GAAG,2BAAmB,CAAC,UAA+B,EAAE,cAAc,CAAC,CAAC;IAEvF,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"query.test.js","sourceRoot":"","sources":["../../src/validate/query.test.ts"],"names":[],"mappings":";;;;;AAAA,8CAAuB;AAGvB,mCAA8C;AAC9C,wCAAwC;AAExC,IAAA,aAAI,EAAC,qBAAqB,EAAE,CAAC,CAAC,EAAE;IAC9B,MAAM,gBAAgB,GAAG,gDAAgD,CAAC;IAC1E,MAAM,cAAc,GAAG,gDAAgD,CAAC;IAExE,MAAM,UAAU,GAAgD;QAC9D,CAAC,EAAE;YACD,OAAO,EAAE,IAAA,oBAAU,EAAC,gBAAgB,CAAC;YACrC,cAAc,EAAE;gBACd;oBACE,GAAG,EAAE,EAAE;oBACP,IAAI,EAAE,EAAE;oBACR,KAAK,EAAE,EAAE;oBACT,MAAM,EAAE,EAAE;oBACV,WAAW,EAAE,0CAA0C;iBACxD;gBACD;oBACE,GAAG,EAAE,EAAE;oBACP,IAAI,EAAE,EAAE;oBACR,KAAK,EAAE,EAAE;oBACT,MAAM,EAAE,EAAE;oBACV,WAAW,EAAE,0CAA0C;iBACxD;aACF;SACF;QACD,CAAC,EAAE;YACD,OAAO,EAAE,IAAA,oBAAU,EAAC,gBAAgB,CAAC;YACrC,cAAc,EAAE;gBACd;oBACE,GAAG,EAAE,EAAE;oBACP,IAAI,EAAE,EAAE;oBACR,KAAK,EAAE,CAAC;oBACR,MAAM,EAAE,EAAE;oBACV,WAAW,EAAE,0CAA0C;iBACxD;aACF;SACF;KACF,CAAC;IAEF,MAAM,SAAS,GAAG,IAAA,2BAAmB,EAAC,UAA+B,EAAE,cAAc,CAAC,CAAC;IAEvF,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { ValidationError } from './run';
2
+ export declare class UpgradeableContractErrorReport {
3
+ readonly errors: ValidationError[];
4
+ constructor(errors: ValidationError[]);
5
+ get ok(): boolean;
6
+ explain(color?: boolean): string;
7
+ }
8
+ //# sourceMappingURL=report.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../src/validate/report.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAExC,qBAAa,8BAA8B;IAC7B,QAAQ,CAAC,MAAM,EAAE,eAAe,EAAE;gBAAzB,MAAM,EAAE,eAAe,EAAE;IAE9C,IAAI,EAAE,IAAI,OAAO,CAEhB;IAED,OAAO,CAAC,KAAK,UAAO,GAAG,MAAM;CAG9B"}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.UpgradeableContractErrorReport = void 0;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ class UpgradeableContractErrorReport {
9
+ constructor(errors) {
10
+ this.errors = errors;
11
+ }
12
+ get ok() {
13
+ return this.errors.length === 0;
14
+ }
15
+ explain(color = true) {
16
+ return this.errors.map(e => describeError(e, color)).join('\n\n');
17
+ }
18
+ }
19
+ exports.UpgradeableContractErrorReport = UpgradeableContractErrorReport;
20
+ const errorInfo = {
21
+ constructor: {
22
+ msg: e => `Contract \`${e.contract}\` has a constructor`,
23
+ hint: () => 'Define an initializer instead',
24
+ link: 'https://zpl.in/upgrades/error-001',
25
+ },
26
+ delegatecall: {
27
+ msg: () => `Use of delegatecall is not allowed`,
28
+ link: 'https://zpl.in/upgrades/error-002',
29
+ },
30
+ selfdestruct: {
31
+ msg: () => `Use of selfdestruct is not allowed`,
32
+ link: 'https://zpl.in/upgrades/error-003',
33
+ },
34
+ 'state-variable-assignment': {
35
+ msg: e => `Variable \`${e.name}\` is assigned an initial value`,
36
+ hint: () => 'Move the assignment to the initializer',
37
+ link: 'https://zpl.in/upgrades/error-004',
38
+ },
39
+ 'state-variable-immutable': {
40
+ msg: e => `Variable \`${e.name}\` is immutable`,
41
+ hint: () => `Use a constant or mutable variable instead`,
42
+ link: 'https://zpl.in/upgrades/error-005',
43
+ },
44
+ 'external-library-linking': {
45
+ msg: e => `Linking external libraries like \`${e.name}\` is not yet supported`,
46
+ hint: () => `Use libraries with internal functions only, or skip this check with the \`unsafeAllowLinkedLibraries\` flag \n` +
47
+ ` if you have manually checked that the libraries are upgrade safe`,
48
+ link: 'https://zpl.in/upgrades/error-006',
49
+ },
50
+ 'struct-definition': {
51
+ msg: e => `Structs like \`${e.name}\` are supported in the latest version of the plugin`,
52
+ hint: () => `Update your dependency and run again`,
53
+ },
54
+ 'enum-definition': {
55
+ msg: e => `Enums like \`${e.name}\` are supported in the latest version of the plugin`,
56
+ hint: () => `Update your dependency and run again`,
57
+ },
58
+ 'missing-public-upgradeto': {
59
+ msg: () => `Implementation is missing a public \`upgradeTo(address)\` function`,
60
+ hint: () => `Inherit UUPSUpgradeable to include this function in your contract\n` +
61
+ ` @openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol`,
62
+ link: 'https://zpl.in/upgrades/error-008',
63
+ },
64
+ };
65
+ function describeError(e, color = true) {
66
+ var _a;
67
+ const chalk = new chalk_1.default.Instance({ level: color && chalk_1.default.supportsColor ? chalk_1.default.supportsColor.level : 0 });
68
+ const info = errorInfo[e.kind];
69
+ const log = [chalk.bold(e.src) + ': ' + info.msg(e)];
70
+ const hint = (_a = info.hint) === null || _a === void 0 ? void 0 : _a.call(info, e);
71
+ if (hint) {
72
+ log.push(hint);
73
+ }
74
+ if (info.link) {
75
+ log.push(chalk.dim(info.link));
76
+ }
77
+ return log.join('\n ');
78
+ }
79
+ //# sourceMappingURL=report.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/validate/report.ts"],"names":[],"mappings":"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"}
@@ -61,12 +61,12 @@ function validate(solcOutput, decodeSrc) {
61
61
  const fromId = {};
62
62
  const inheritIds = {};
63
63
  const libraryIds = {};
64
- const deref = ast_dereferencer_1.astDereferencer(solcOutput);
64
+ const deref = (0, ast_dereferencer_1.astDereferencer)(solcOutput);
65
65
  for (const source in solcOutput.contracts) {
66
66
  for (const contractName in solcOutput.contracts[source]) {
67
67
  const bytecode = solcOutput.contracts[source][contractName].evm.bytecode;
68
- const version = bytecode.object === '' ? undefined : version_1.getVersion(bytecode.object);
69
- const linkReferences = link_refs_1.extractLinkReferences(bytecode);
68
+ const version = bytecode.object === '' ? undefined : (0, version_1.getVersion)(bytecode.object);
69
+ const linkReferences = (0, link_refs_1.extractLinkReferences)(bytecode);
70
70
  validation[contractName] = {
71
71
  src: contractName,
72
72
  version,
@@ -81,7 +81,7 @@ function validate(solcOutput, decodeSrc) {
81
81
  },
82
82
  };
83
83
  }
84
- for (const contractDef of utils_1.findAll('ContractDefinition', solcOutput.sources[source].ast)) {
84
+ for (const contractDef of (0, utils_1.findAll)('ContractDefinition', solcOutput.sources[source].ast)) {
85
85
  fromId[contractDef.id] = contractDef.name;
86
86
  // May be undefined in case of duplicate contract names in Truffle
87
87
  const bytecode = (_a = solcOutput.contracts[source][contractDef.name]) === null || _a === void 0 ? void 0 : _a.evm.bytecode;
@@ -97,10 +97,10 @@ function validate(solcOutput, decodeSrc) {
97
97
  // https://github.com/OpenZeppelin/openzeppelin-upgrades/issues/52
98
98
  ...getLinkingErrors(contractDef, bytecode),
99
99
  ];
100
- validation[contractDef.name].layout = extract_1.extractStorageLayout(contractDef, decodeSrc, deref);
101
- validation[contractDef.name].methods = [...utils_1.findAll('FunctionDefinition', contractDef)]
100
+ validation[contractDef.name].layout = (0, extract_1.extractStorageLayout)(contractDef, decodeSrc, deref);
101
+ validation[contractDef.name].methods = [...(0, utils_1.findAll)('FunctionDefinition', contractDef)]
102
102
  .filter(fnDef => ['external', 'public'].includes(fnDef.visibility))
103
- .map(fnDef => function_1.getFunctionSignature(fnDef, deref));
103
+ .map(fnDef => (0, function_1.getFunctionSignature)(fnDef, deref));
104
104
  }
105
105
  }
106
106
  }
@@ -115,7 +115,7 @@ function validate(solcOutput, decodeSrc) {
115
115
  exports.validate = validate;
116
116
  function* getConstructorErrors(contractDef, decodeSrc) {
117
117
  var _a, _b, _c;
118
- for (const fnDef of utils_1.findAll('FunctionDefinition', contractDef, node => skipCheck('constructor', node))) {
118
+ for (const fnDef of (0, utils_1.findAll)('FunctionDefinition', contractDef, node => skipCheck('constructor', node))) {
119
119
  if (fnDef.kind === 'constructor' && (((_c = (_b = (_a = fnDef.body) === null || _a === void 0 ? void 0 : _a.statements) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0) > 0 || fnDef.modifiers.length > 0)) {
120
120
  yield {
121
121
  kind: 'constructor',
@@ -127,7 +127,7 @@ function* getConstructorErrors(contractDef, decodeSrc) {
127
127
  }
128
128
  function* getOpcodeErrors(contractDef, decodeSrc) {
129
129
  var _a, _b;
130
- for (const fnCall of utils_1.findAll('FunctionCall', contractDef, node => skipCheck('delegatecall', node))) {
130
+ for (const fnCall of (0, utils_1.findAll)('FunctionCall', contractDef, node => skipCheck('delegatecall', node))) {
131
131
  const fn = fnCall.expression;
132
132
  if ((_a = fn.typeDescriptions.typeIdentifier) === null || _a === void 0 ? void 0 : _a.match(/^t_function_baredelegatecall_/)) {
133
133
  yield {
@@ -136,7 +136,7 @@ function* getOpcodeErrors(contractDef, decodeSrc) {
136
136
  };
137
137
  }
138
138
  }
139
- for (const fnCall of utils_1.findAll('FunctionCall', contractDef, node => skipCheck('selfdestruct', node))) {
139
+ for (const fnCall of (0, utils_1.findAll)('FunctionCall', contractDef, node => skipCheck('selfdestruct', node))) {
140
140
  const fn = fnCall.expression;
141
141
  if ((_b = fn.typeDescriptions.typeIdentifier) === null || _b === void 0 ? void 0 : _b.match(/^t_function_selfdestruct_/)) {
142
142
  yield {
@@ -148,8 +148,8 @@ function* getOpcodeErrors(contractDef, decodeSrc) {
148
148
  }
149
149
  function* getStateVariableErrors(contractDef, decodeSrc) {
150
150
  for (const varDecl of contractDef.nodes) {
151
- if (utils_1.isNodeType('VariableDeclaration', varDecl)) {
152
- if (!varDecl.constant && !is_nullish_1.isNullish(varDecl.value)) {
151
+ if ((0, utils_1.isNodeType)('VariableDeclaration', varDecl)) {
152
+ if (!varDecl.constant && !(0, is_nullish_1.isNullish)(varDecl.value)) {
153
153
  if (!skipCheck('state-variable-assignment', contractDef) && !skipCheck('state-variable-assignment', varDecl)) {
154
154
  yield {
155
155
  kind: 'state-variable-assignment',
@@ -171,11 +171,11 @@ function* getStateVariableErrors(contractDef, decodeSrc) {
171
171
  }
172
172
  }
173
173
  function getReferencedLibraryIds(contractDef) {
174
- const implicitUsage = [...utils_1.findAll('UsingForDirective', contractDef)].map(usingForDirective => usingForDirective.libraryName.referencedDeclaration);
175
- const explicitUsage = [...utils_1.findAll('Identifier', contractDef)]
174
+ const implicitUsage = [...(0, utils_1.findAll)('UsingForDirective', contractDef)].map(usingForDirective => usingForDirective.libraryName.referencedDeclaration);
175
+ const explicitUsage = [...(0, utils_1.findAll)('Identifier', contractDef)]
176
176
  .filter(identifier => { var _a; return (_a = identifier.typeDescriptions.typeString) === null || _a === void 0 ? void 0 : _a.match(/^type\(library/); })
177
177
  .map(identifier => {
178
- if (is_nullish_1.isNullish(identifier.referencedDeclaration)) {
178
+ if ((0, is_nullish_1.isNullish)(identifier.referencedDeclaration)) {
179
179
  throw new Error('Broken invariant: Identifier.referencedDeclaration should not be null');
180
180
  }
181
181
  return identifier.referencedDeclaration;
@@ -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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"}
@@ -22,8 +22,8 @@ test.before(async (t) => {
22
22
  }
23
23
  const solcOutput = buildInfo.output;
24
24
  const solcInput = buildInfo.input;
25
- const decodeSrc = src_decoder_1.solcInputOutputDecoder(solcInput, solcOutput);
26
- Object.assign(t.context.validation, validate_1.validate(solcOutput, decodeSrc));
25
+ const decodeSrc = (0, src_decoder_1.solcInputOutputDecoder)(solcInput, solcOutput);
26
+ Object.assign(t.context.validation, (0, validate_1.validate)(solcOutput, decodeSrc));
27
27
  }
28
28
  });
29
29
  function testValid(name, kind, valid) {
@@ -34,8 +34,8 @@ function testOverride(name, kind, opts, valid) {
34
34
  const describeOpts = optKeys.length > 0 ? '(' + optKeys.join(', ') + ')' : '';
35
35
  const testName = [valid ? 'accepts' : 'rejects', kind, name, describeOpts].join(' ');
36
36
  test(testName, t => {
37
- const version = validate_1.getContractVersion(t.context.validation, name);
38
- const assertUpgSafe = () => validate_1.assertUpgradeSafe([t.context.validation], version, { kind, ...opts });
37
+ const version = (0, validate_1.getContractVersion)(t.context.validation, name);
38
+ const assertUpgSafe = () => (0, validate_1.assertUpgradeSafe)([t.context.validation], version, { kind, ...opts });
39
39
  if (valid) {
40
40
  t.notThrows(assertUpgSafe);
41
41
  }
@@ -66,8 +66,8 @@ testValid('UsesExplicitUnsafeExternalLibrary', 'transparent', false);
66
66
  testValid('UsesImplicitSafeExternalLibrary', 'transparent', false);
67
67
  testValid('UsesExplicitSafeExternalLibrary', 'transparent', false);
68
68
  test('inherited storage', t => {
69
- const version = validate_1.getContractVersion(t.context.validation, 'StorageInheritChild');
70
- const layout = validate_1.getStorageLayout([t.context.validation], version);
69
+ const version = (0, validate_1.getContractVersion)(t.context.validation, 'StorageInheritChild');
70
+ const layout = (0, validate_1.getStorageLayout)([t.context.validation], version);
71
71
  t.is(layout.storage.length, 8);
72
72
  for (let i = 0; i < layout.storage.length; i++) {
73
73
  t.is(layout.storage[i].label, `v${i}`);
@@ -113,4 +113,5 @@ testValid('UsesExplicitSafeInternalLibraryNatspec', 'transparent', true);
113
113
  testValid('UsesExplicitSafeExternalLibraryNatspec', 'transparent', true);
114
114
  testValid('UsesExplicitUnsafeInternalLibraryNatspec', 'transparent', true);
115
115
  testValid('UsesExplicitUnsafeExternalLibraryNatspec', 'transparent', true);
116
+ testValid('TransitiveLibraryIsUnsafe', 'transparent', false);
116
117
  //# sourceMappingURL=validate.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate.test.js","sourceRoot":"","sources":["../src/validate.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate.test.js","sourceRoot":"","sources":["../src/validate.test.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -3,7 +3,7 @@ export interface Version {
3
3
  withoutMetadata: string;
4
4
  linkedWithoutMetadata: string;
5
5
  }
6
- export declare function getVersion(bytecode: string, linkedBytecode?: string): Version;
7
- export declare function hashBytecode(bytecode: string): string;
8
- export declare function hashBytecodeWithoutMetadata(bytecode: string): string;
6
+ export declare function getVersion(bytecode: string, linkedBytecode?: string, constructorArgs?: string): Version;
7
+ export declare function hashBytecode(bytecode: string, constructorArgs?: string): string;
8
+ export declare function hashBytecodeWithoutMetadata(bytecode: string, constructorArgs?: string): string;
9
9
  //# sourceMappingURL=version.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,OAAO;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAU7E;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAcrD;AAED,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEpE"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,OAAO;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,EAAE,eAAe,SAAK,GAAG,OAAO,CAUnG;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,SAAK,GAAG,MAAM,CAsB3E;AAED,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,SAAK,GAAG,MAAM,CAE1F"}
package/dist/version.js CHANGED
@@ -6,12 +6,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.hashBytecodeWithoutMetadata = exports.hashBytecode = exports.getVersion = void 0;
7
7
  const ethereumjs_util_1 = require("ethereumjs-util");
8
8
  const cbor_1 = __importDefault(require("cbor"));
9
- function getVersion(bytecode, linkedBytecode) {
9
+ function getVersion(bytecode, linkedBytecode, constructorArgs = '') {
10
10
  if (bytecode !== '') {
11
11
  return {
12
12
  withMetadata: hashBytecode(bytecode),
13
13
  withoutMetadata: hashBytecodeWithoutMetadata(bytecode),
14
- linkedWithoutMetadata: hashBytecodeWithoutMetadata(linkedBytecode !== null && linkedBytecode !== void 0 ? linkedBytecode : bytecode),
14
+ linkedWithoutMetadata: hashBytecodeWithoutMetadata(linkedBytecode !== null && linkedBytecode !== void 0 ? linkedBytecode : bytecode, constructorArgs),
15
15
  };
16
16
  }
17
17
  else {
@@ -19,22 +19,28 @@ function getVersion(bytecode, linkedBytecode) {
19
19
  }
20
20
  }
21
21
  exports.getVersion = getVersion;
22
- function hashBytecode(bytecode) {
22
+ function hashBytecode(bytecode, constructorArgs = '') {
23
23
  bytecode = bytecode
24
24
  .replace(/__\$([0-9a-fA-F]{34})\$__/g, (_, placeholder) => `000${placeholder}000`)
25
- .replace(/__\w{36}__/g, placeholder => ethereumjs_util_1.keccak256(Buffer.from(placeholder)).toString('hex', 0, 20));
25
+ .replace(/__\w{36}__/g, placeholder => (0, ethereumjs_util_1.keccak256)(Buffer.from(placeholder)).toString('hex', 0, 20));
26
26
  // Fail if bytecode is still not valid hex after transformations above.
27
27
  // Buffer.from silently truncates at the first non-hex character.
28
28
  // NOTE: Some bytecode seems to have odd length, so we cannot do ([0-9a-fA-F]{2})*
29
29
  if (!/^(0x)?[0-9a-fA-F]*$/.test(bytecode)) {
30
30
  throw new Error('Bytecode is not a valid hex string');
31
31
  }
32
- const buf = Buffer.from(bytecode.replace(/^0x/, ''), 'hex');
33
- return ethereumjs_util_1.keccak256(buf).toString('hex');
32
+ if (!/^(0x)?[0-9a-fA-F]*$/.test(constructorArgs)) {
33
+ throw new Error('Constructor arguments are not a valid hex string');
34
+ }
35
+ const buf = Buffer.concat([
36
+ Buffer.from(bytecode.replace(/^0x/, ''), 'hex'),
37
+ Buffer.from(constructorArgs.replace(/^0x/, ''), 'hex'),
38
+ ]);
39
+ return (0, ethereumjs_util_1.keccak256)(buf).toString('hex');
34
40
  }
35
41
  exports.hashBytecode = hashBytecode;
36
- function hashBytecodeWithoutMetadata(bytecode) {
37
- return hashBytecode(trimBytecodeMetadata(bytecode));
42
+ function hashBytecodeWithoutMetadata(bytecode, constructorArgs = '') {
43
+ return hashBytecode(trimBytecodeMetadata(bytecode), constructorArgs);
38
44
  }
39
45
  exports.hashBytecodeWithoutMetadata = hashBytecodeWithoutMetadata;
40
46
  function trimBytecodeMetadata(bytecode) {
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":";;;;;;AAAA,qDAA4C;AAC5C,gDAAwB;AAQxB,SAAgB,UAAU,CAAC,QAAgB,EAAE,cAAuB;IAClE,IAAI,QAAQ,KAAK,EAAE,EAAE;QACnB,OAAO;YACL,YAAY,EAAE,YAAY,CAAC,QAAQ,CAAC;YACpC,eAAe,EAAE,2BAA2B,CAAC,QAAQ,CAAC;YACtD,qBAAqB,EAAE,2BAA2B,CAAC,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,QAAQ,CAAC;SAC/E,CAAC;KACH;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;KACvD;AACH,CAAC;AAVD,gCAUC;AAED,SAAgB,YAAY,CAAC,QAAgB;IAC3C,QAAQ,GAAG,QAAQ;SAChB,OAAO,CAAC,4BAA4B,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC,MAAM,WAAW,KAAK,CAAC;SACjF,OAAO,CAAC,aAAa,EAAE,WAAW,CAAC,EAAE,CAAC,2BAAS,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAErG,uEAAuE;IACvE,iEAAiE;IACjE,kFAAkF;IAClF,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;QACzC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;KACvD;IAED,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IAC5D,OAAO,2BAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACxC,CAAC;AAdD,oCAcC;AAED,SAAgB,2BAA2B,CAAC,QAAgB;IAC1D,OAAO,YAAY,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC;AACtD,CAAC;AAFD,kEAEC;AAED,SAAS,oBAAoB,CAAC,QAAgB;IAC5C,yBAAyB;IACzB,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE;QACxB,OAAO,QAAQ,CAAC;KACjB;IAED,0DAA0D;IAC1D,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACtD,MAAM,cAAc,GAAG,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAEnD,yCAAyC;IACzC,IAAI,cAAc,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;QACxC,OAAO,QAAQ,CAAC;KACjB;IAED,0EAA0E;IAC1E,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,GAAG,cAAc,GAAG,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEpE,iDAAiD;IACjD,IAAI;QACF,cAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;KAC3C;IAAC,OAAO,GAAG,EAAE;QACZ,uCAAuC;QACvC,OAAO,QAAQ,CAAC;KACjB;IAED,6BAA6B;IAC7B,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;AAC1C,CAAC"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"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"}