@openzeppelin/upgrades-core 1.40.0 → 1.42.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/validate.js +3 -1
- package/dist/cli/validate.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/utils/make-namespaced.d.ts +13 -2
- package/dist/utils/make-namespaced.d.ts.map +1 -1
- package/dist/utils/make-namespaced.js +47 -48
- package/dist/utils/make-namespaced.js.map +1 -1
- package/dist/utils/make-namespaced.test.js +4 -1
- package/dist/utils/make-namespaced.test.js.map +1 -1
- package/dist/validate/overrides.d.ts +6 -2
- package/dist/validate/overrides.d.ts.map +1 -1
- package/dist/validate/overrides.js +36 -10
- package/dist/validate/overrides.js.map +1 -1
- package/dist/validate/report.d.ts +1 -0
- package/dist/validate/report.d.ts.map +1 -1
- package/dist/validate/report.js +23 -1
- package/dist/validate/report.js.map +1 -1
- package/dist/validate/run/initializer.d.ts +13 -0
- package/dist/validate/run/initializer.d.ts.map +1 -0
- package/dist/validate/run/initializer.js +246 -0
- package/dist/validate/run/initializer.js.map +1 -0
- package/dist/validate/run.d.ts +23 -2
- package/dist/validate/run.d.ts.map +1 -1
- package/dist/validate/run.js +9 -1
- package/dist/validate/run.js.map +1 -1
- package/dist/validate-initializers.test.d.ts +2 -0
- package/dist/validate-initializers.test.d.ts.map +1 -0
- package/dist/validate-initializers.test.js +176 -0
- package/dist/validate-initializers.test.js.map +1 -0
- package/package.json +3 -3
- package/src/cli/cli.test.ts.md +6 -2
- package/src/cli/cli.test.ts.snap +0 -0
- package/src/cli/validate.ts +4 -4
- package/src/index.ts +1 -1
- package/src/utils/make-namespaced.test.ts +5 -6
- package/src/utils/make-namespaced.ts +54 -51
- package/src/validate/overrides.ts +40 -15
- package/src/validate/report.ts +24 -2
- package/src/validate/run/initializer.ts +316 -0
- package/src/validate/run.ts +38 -2
- package/src/validate-initializers.test.ts +218 -0
- package/CHANGELOG.md +0 -416
- package/dist/utils/slang/trivia.d.ts +0 -9
- package/dist/utils/slang/trivia.d.ts.map +0 -1
- package/dist/utils/slang/trivia.js +0 -23
- package/dist/utils/slang/trivia.js.map +0 -1
- package/src/utils/slang/trivia.ts +0 -23
package/dist/cli/validate.js
CHANGED
|
@@ -24,7 +24,9 @@ Options:
|
|
|
24
24
|
--requireReference Can only be used when the --contract option is also provided. Not compatible with --unsafeSkipStorageCheck. If specified, requires either the --reference option to be provided or the contract to have a @custom:oz-upgrades-from annotation.
|
|
25
25
|
--referenceBuildInfoDirs "<BUILD_INFO_DIR>[,<BUILD_INFO_DIR>...]" Optional paths of additional build info directories from previous versions of the project to use for storage layout comparisons. When using this option, refer to one of these directories using prefix '<dirName>:' before the contract name or fully qualified name in the --reference option or @custom:oz-upgrades-from annotation, where <dirName> is the directory short name. Each directory short name must be unique, including compared to the main build info directory. If passing in multiple directories, separate them with commas or call the option multiple times, once for each directory.
|
|
26
26
|
--exclude "<GLOB_PATTERN>" [--exclude "<GLOB_PATTERN>"...] Exclude validations for contracts in source file paths that match any of the given glob patterns. For example, --exclude "contracts/mocks/**/*.sol". Does not apply to reference contracts. If passing in multiple patterns, call the option multiple times, once for each pattern.
|
|
27
|
-
--unsafeAllow "<VALIDATION_ERROR>[,<VALIDATION_ERROR>...]" Selectively disable one or more validation errors. Comma-separated list with one or more of the following:
|
|
27
|
+
--unsafeAllow "<VALIDATION_ERROR>[,<VALIDATION_ERROR>...]" Selectively disable one or more validation errors or warnings. Comma-separated list with one or more of the following:
|
|
28
|
+
Errors: ${run_1.errorKinds.filter(kind => !run_1.convertToWarnings.includes(kind)).join(', ')}
|
|
29
|
+
Warnings: ${run_1.convertToWarnings.join(', ')}
|
|
28
30
|
--unsafeAllowRenames Configure storage layout check to allow variable renaming.
|
|
29
31
|
--unsafeSkipStorageCheck Skips checking for storage layout compatibility errors. This is a dangerous option meant to be used as a last resort.`;
|
|
30
32
|
async function main(args) {
|
package/dist/cli/validate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/cli/validate.ts"],"names":[],"mappings":";;;;;AA0BA,oBAgBC;AA4CD,0CAwBC;AA2ED,oCAaC;AAtMD,wDAAgC;AAEhC,wBAAwE;AACxE,
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/cli/validate.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -22,7 +22,7 @@ export { addProxyToManifest } from './add-proxy-to-manifest';
|
|
|
22
22
|
export { BeaconProxyUnsupportedError, LoadProxyUnsupportedError, PrepareUpgradeUnsupportedError, DeployBeaconProxyUnsupportedError, DeployBeaconProxyImplUnknownError, DeployBeaconProxyKindError, ForceImportUnsupportedError, NoContractImportError, ValidateUpdateRequiresKindError, PrepareUpgradeRequiresKindError, InitialOwnerUnsupportedKindError, assertNotProxy, } from './usage-error';
|
|
23
23
|
export { ValidateUpgradeSafetyOptions, validateUpgradeSafety, ProjectReport, ReferenceContractNotFound } from './cli';
|
|
24
24
|
export { getUpgradeInterfaceVersion } from './upgrade-interface-version';
|
|
25
|
-
export { makeNamespacedInput } from './utils/make-namespaced';
|
|
25
|
+
export { makeNamespacedInput, trySanitizeNatSpec } from './utils/make-namespaced';
|
|
26
26
|
export { isNamespaceSupported } from './storage/namespace';
|
|
27
27
|
export { inferProxyAdmin } from './infer-proxy-admin';
|
|
28
28
|
export { assertUnreachable } from './utils/assert';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC7F,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,OAAO,EACL,qBAAqB,EACrB,6BAA6B,EAC7B,eAAe,EACf,gBAAgB,EAChB,wBAAwB,EACxB,aAAa,EACb,qBAAqB,EACrB,WAAW,GACZ,MAAM,YAAY,CAAC;AACpB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AAExB,OAAO,EACL,YAAY,EACZ,cAAc,EACd,eAAe,EACf,QAAQ,EACR,eAAe,EACf,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAEvE,cAAc,kCAAkC,CAAC;AAEjD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC9F,OAAO,EAAE,kCAAkC,EAAE,iCAAiC,EAAE,MAAM,gBAAgB,CAAC;AACvG,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,EACzB,8BAA8B,EAC9B,iCAAiC,EACjC,iCAAiC,EACjC,0BAA0B,EAC1B,2BAA2B,EAC3B,qBAAqB,EACrB,+BAA+B,EAC/B,+BAA+B,EAC/B,gCAAgC,EAChC,cAAc,GACf,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,OAAO,CAAC;AAEtH,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC7F,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,OAAO,EACL,qBAAqB,EACrB,6BAA6B,EAC7B,eAAe,EACf,gBAAgB,EAChB,wBAAwB,EACxB,aAAa,EACb,qBAAqB,EACrB,WAAW,GACZ,MAAM,YAAY,CAAC;AACpB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AAExB,OAAO,EACL,YAAY,EACZ,cAAc,EACd,eAAe,EACf,QAAQ,EACR,eAAe,EACf,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAEvE,cAAc,kCAAkC,CAAC;AAEjD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC9F,OAAO,EAAE,kCAAkC,EAAE,iCAAiC,EAAE,MAAM,gBAAgB,CAAC;AACvG,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,EACzB,8BAA8B,EAC9B,iCAAiC,EACjC,iCAAiC,EACjC,0BAA0B,EAC1B,2BAA2B,EAC3B,qBAAqB,EACrB,+BAA+B,EAC/B,+BAA+B,EAC/B,gCAAgC,EAChC,cAAc,GACf,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,OAAO,CAAC;AAEtH,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.assertUnreachable = exports.inferProxyAdmin = exports.isNamespaceSupported = exports.makeNamespacedInput = exports.getUpgradeInterfaceVersion = exports.ReferenceContractNotFound = exports.ProjectReport = exports.validateUpgradeSafety = exports.assertNotProxy = exports.InitialOwnerUnsupportedKindError = exports.PrepareUpgradeRequiresKindError = exports.ValidateUpdateRequiresKindError = exports.NoContractImportError = exports.ForceImportUnsupportedError = exports.DeployBeaconProxyKindError = exports.DeployBeaconProxyImplUnknownError = exports.DeployBeaconProxyUnsupportedError = exports.PrepareUpgradeUnsupportedError = exports.LoadProxyUnsupportedError = exports.BeaconProxyUnsupportedError = exports.addProxyToManifest = exports.isBeacon = exports.getImplementationAddressFromProxy = exports.getImplementationAddressFromBeacon = exports.isTransparentProxy = exports.isBeaconProxy = exports.isTransparentOrUUPSProxy = exports.UpgradeableContract = exports.detectProxyKind = exports.processProxyKind = exports.setProxyKind = exports.logWarning = exports.getStorageLayoutForAddress = exports.DeploymentNotFound = exports.migrateManifest = exports.Manifest = exports.isEmptySlot = exports.toFallbackEip1967Hash = exports.toEip1967Hash = exports.getImplementationAddress = exports.getBeaconAddress = exports.getAdminAddress = exports.EIP1967ImplementationNotFound = exports.EIP1967BeaconNotFound = exports.fetchOrDeployGetDeployment = exports.fetchOrDeployAdmin = exports.fetchOrDeploy = void 0;
|
|
17
|
+
exports.assertUnreachable = exports.inferProxyAdmin = exports.isNamespaceSupported = exports.trySanitizeNatSpec = exports.makeNamespacedInput = exports.getUpgradeInterfaceVersion = exports.ReferenceContractNotFound = exports.ProjectReport = exports.validateUpgradeSafety = exports.assertNotProxy = exports.InitialOwnerUnsupportedKindError = exports.PrepareUpgradeRequiresKindError = exports.ValidateUpdateRequiresKindError = exports.NoContractImportError = exports.ForceImportUnsupportedError = exports.DeployBeaconProxyKindError = exports.DeployBeaconProxyImplUnknownError = exports.DeployBeaconProxyUnsupportedError = exports.PrepareUpgradeUnsupportedError = exports.LoadProxyUnsupportedError = exports.BeaconProxyUnsupportedError = exports.addProxyToManifest = exports.isBeacon = exports.getImplementationAddressFromProxy = exports.getImplementationAddressFromBeacon = exports.isTransparentProxy = exports.isBeaconProxy = exports.isTransparentOrUUPSProxy = exports.UpgradeableContract = exports.detectProxyKind = exports.processProxyKind = exports.setProxyKind = exports.logWarning = exports.getStorageLayoutForAddress = exports.DeploymentNotFound = exports.migrateManifest = exports.Manifest = exports.isEmptySlot = exports.toFallbackEip1967Hash = exports.toEip1967Hash = exports.getImplementationAddress = exports.getBeaconAddress = exports.getAdminAddress = exports.EIP1967ImplementationNotFound = exports.EIP1967BeaconNotFound = exports.fetchOrDeployGetDeployment = exports.fetchOrDeployAdmin = exports.fetchOrDeploy = void 0;
|
|
18
18
|
__exportStar(require("./validate"), exports);
|
|
19
19
|
var impl_store_1 = require("./impl-store");
|
|
20
20
|
Object.defineProperty(exports, "fetchOrDeploy", { enumerable: true, get: function () { return impl_store_1.fetchOrDeploy; } });
|
|
@@ -84,6 +84,7 @@ var upgrade_interface_version_1 = require("./upgrade-interface-version");
|
|
|
84
84
|
Object.defineProperty(exports, "getUpgradeInterfaceVersion", { enumerable: true, get: function () { return upgrade_interface_version_1.getUpgradeInterfaceVersion; } });
|
|
85
85
|
var make_namespaced_1 = require("./utils/make-namespaced");
|
|
86
86
|
Object.defineProperty(exports, "makeNamespacedInput", { enumerable: true, get: function () { return make_namespaced_1.makeNamespacedInput; } });
|
|
87
|
+
Object.defineProperty(exports, "trySanitizeNatSpec", { enumerable: true, get: function () { return make_namespaced_1.trySanitizeNatSpec; } });
|
|
87
88
|
var namespace_1 = require("./storage/namespace");
|
|
88
89
|
Object.defineProperty(exports, "isNamespaceSupported", { enumerable: true, get: function () { return namespace_1.isNamespaceSupported; } });
|
|
89
90
|
var infer_proxy_admin_1 = require("./infer-proxy-admin");
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,2CAA6F;AAApF,2GAAA,aAAa,OAAA;AAAE,gHAAA,kBAAkB,OAAA;AAAE,wHAAA,0BAA0B,OAAA;AACtE,4CAA0B;AAC1B,4CAA0B;AAC1B,uCASoB;AARlB,iHAAA,qBAAqB,OAAA;AACrB,yHAAA,6BAA6B,OAAA;AAC7B,2GAAA,eAAe,OAAA;AACf,4GAAA,gBAAgB,OAAA;AAChB,oHAAA,wBAAwB,OAAA;AACxB,yGAAA,aAAa,OAAA;AACb,iHAAA,qBAAqB,OAAA;AACrB,uGAAA,WAAW,OAAA;AAEb,6CAA2B;AAC3B,gDAA8B;AAC9B,6CAA2B;AAC3B,+CAA6B;AAC7B,8CAA4B;AAC5B,0CAAwB;AAExB,uCAOoB;AAHlB,oGAAA,QAAQ,OAAA;AACR,2GAAA,eAAe,OAAA;AACf,8GAAA,kBAAkB,OAAA;AAGpB,qEAAuE;AAA9D,qIAAA,0BAA0B,OAAA;AAEnC,mEAAiD;AAEjD,mCAAyC;AAAhC,iGAAA,UAAU,OAAA;AACnB,2CAA+E;AAAtE,0GAAA,YAAY,OAAA;AAAE,8GAAA,gBAAgB,OAAA;AAAE,6GAAA,eAAe,OAAA;AAExD,2CAAmD;AAA1C,iHAAA,mBAAmB,OAAA;AAE5B,iDAA8F;AAArF,yHAAA,wBAAwB,OAAA;AAAE,8GAAA,aAAa,OAAA;AAAE,mHAAA,kBAAkB,OAAA;AACpE,+CAAuG;AAA9F,kIAAA,kCAAkC,OAAA;AAAE,iIAAA,iCAAiC,OAAA;AAC9E,mCAAoC;AAA3B,kGAAA,QAAQ,OAAA;AACjB,iEAA6D;AAApD,2HAAA,kBAAkB,OAAA;AAE3B,6CAauB;AAZrB,0HAAA,2BAA2B,OAAA;AAC3B,wHAAA,yBAAyB,OAAA;AACzB,6HAAA,8BAA8B,OAAA;AAC9B,gIAAA,iCAAiC,OAAA;AACjC,gIAAA,iCAAiC,OAAA;AACjC,yHAAA,0BAA0B,OAAA;AAC1B,0HAAA,2BAA2B,OAAA;AAC3B,oHAAA,qBAAqB,OAAA;AACrB,8HAAA,+BAA+B,OAAA;AAC/B,8HAAA,+BAA+B,OAAA;AAC/B,+HAAA,gCAAgC,OAAA;AAChC,6GAAA,cAAc,OAAA;AAGhB,6BAAsH;AAA/E,4GAAA,qBAAqB,OAAA;AAAE,oGAAA,aAAa,OAAA;AAAE,gHAAA,yBAAyB,OAAA;AAEtG,yEAAyE;AAAhE,uIAAA,0BAA0B,OAAA;AACnC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,2CAA6F;AAApF,2GAAA,aAAa,OAAA;AAAE,gHAAA,kBAAkB,OAAA;AAAE,wHAAA,0BAA0B,OAAA;AACtE,4CAA0B;AAC1B,4CAA0B;AAC1B,uCASoB;AARlB,iHAAA,qBAAqB,OAAA;AACrB,yHAAA,6BAA6B,OAAA;AAC7B,2GAAA,eAAe,OAAA;AACf,4GAAA,gBAAgB,OAAA;AAChB,oHAAA,wBAAwB,OAAA;AACxB,yGAAA,aAAa,OAAA;AACb,iHAAA,qBAAqB,OAAA;AACrB,uGAAA,WAAW,OAAA;AAEb,6CAA2B;AAC3B,gDAA8B;AAC9B,6CAA2B;AAC3B,+CAA6B;AAC7B,8CAA4B;AAC5B,0CAAwB;AAExB,uCAOoB;AAHlB,oGAAA,QAAQ,OAAA;AACR,2GAAA,eAAe,OAAA;AACf,8GAAA,kBAAkB,OAAA;AAGpB,qEAAuE;AAA9D,qIAAA,0BAA0B,OAAA;AAEnC,mEAAiD;AAEjD,mCAAyC;AAAhC,iGAAA,UAAU,OAAA;AACnB,2CAA+E;AAAtE,0GAAA,YAAY,OAAA;AAAE,8GAAA,gBAAgB,OAAA;AAAE,6GAAA,eAAe,OAAA;AAExD,2CAAmD;AAA1C,iHAAA,mBAAmB,OAAA;AAE5B,iDAA8F;AAArF,yHAAA,wBAAwB,OAAA;AAAE,8GAAA,aAAa,OAAA;AAAE,mHAAA,kBAAkB,OAAA;AACpE,+CAAuG;AAA9F,kIAAA,kCAAkC,OAAA;AAAE,iIAAA,iCAAiC,OAAA;AAC9E,mCAAoC;AAA3B,kGAAA,QAAQ,OAAA;AACjB,iEAA6D;AAApD,2HAAA,kBAAkB,OAAA;AAE3B,6CAauB;AAZrB,0HAAA,2BAA2B,OAAA;AAC3B,wHAAA,yBAAyB,OAAA;AACzB,6HAAA,8BAA8B,OAAA;AAC9B,gIAAA,iCAAiC,OAAA;AACjC,gIAAA,iCAAiC,OAAA;AACjC,yHAAA,0BAA0B,OAAA;AAC1B,0HAAA,2BAA2B,OAAA;AAC3B,oHAAA,qBAAqB,OAAA;AACrB,8HAAA,+BAA+B,OAAA;AAC/B,8HAAA,+BAA+B,OAAA;AAC/B,+HAAA,gCAAgC,OAAA;AAChC,6GAAA,cAAc,OAAA;AAGhB,6BAAsH;AAA/E,4GAAA,qBAAqB,OAAA;AAAE,oGAAA,aAAa,OAAA;AAAE,gHAAA,yBAAyB,OAAA;AAEtG,yEAAyE;AAAhE,uIAAA,0BAA0B,OAAA;AACnC,2DAAkF;AAAzE,sHAAA,mBAAmB,OAAA;AAAE,qHAAA,kBAAkB,OAAA;AAChD,iDAA2D;AAAlD,iHAAA,oBAAoB,OAAA;AAC7B,yDAAsD;AAA7C,oHAAA,eAAe,OAAA;AACxB,yCAAmD;AAA1C,2GAAA,iBAAiB,OAAA"}
|
|
@@ -21,8 +21,19 @@ import { SolcInput, SolcOutput } from '../solc-api';
|
|
|
21
21
|
*
|
|
22
22
|
* @param input The original solc input.
|
|
23
23
|
* @param output The original solc output.
|
|
24
|
-
* @param
|
|
24
|
+
* @param _solcVersion The version of the solc compiler that was originally used to compile the input. This argument is no longer used and is kept for backwards compatibility.
|
|
25
25
|
* @returns The modified solc input with storage layout that includes namespaced type information.
|
|
26
26
|
*/
|
|
27
|
-
export declare function makeNamespacedInput(input: SolcInput, output: SolcOutput,
|
|
27
|
+
export declare function makeNamespacedInput(input: SolcInput, output: SolcOutput, _solcVersion?: string): SolcInput;
|
|
28
|
+
/**
|
|
29
|
+
* Attempts to remove all NatSpec comments that do not precede a struct definition from the input source contents.
|
|
30
|
+
* Directly modifies the input source contents, and also returns the modified input.
|
|
31
|
+
*
|
|
32
|
+
* If the solc version is not supported by the parser, the original content is kept.
|
|
33
|
+
*
|
|
34
|
+
* @param solcInput Solc input.
|
|
35
|
+
* @param solcVersion The version of the solc compiler that was originally used to compile the input.
|
|
36
|
+
* @returns The modified solc input with NatSpec comments removed where they do not precede a struct definition.
|
|
37
|
+
*/
|
|
38
|
+
export declare function trySanitizeNatSpec(solcInput: SolcInput, solcVersion: string): Promise<SolcInput>;
|
|
28
39
|
//# sourceMappingURL=make-namespaced.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"make-namespaced.d.ts","sourceRoot":"","sources":["../../src/utils/make-namespaced.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAYpD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"make-namespaced.d.ts","sourceRoot":"","sources":["../../src/utils/make-namespaced.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAYpD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAkI1G;AAED;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAOtG"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.makeNamespacedInput = makeNamespacedInput;
|
|
4
|
+
exports.trySanitizeNatSpec = trySanitizeNatSpec;
|
|
4
5
|
const utils_1 = require("solidity-ast/utils");
|
|
5
6
|
const namespace_1 = require("../storage/namespace");
|
|
6
7
|
const assert_1 = require("./assert");
|
|
@@ -32,10 +33,10 @@ const OUTPUT_SELECTION = {
|
|
|
32
33
|
*
|
|
33
34
|
* @param input The original solc input.
|
|
34
35
|
* @param output The original solc output.
|
|
35
|
-
* @param
|
|
36
|
+
* @param _solcVersion The version of the solc compiler that was originally used to compile the input. This argument is no longer used and is kept for backwards compatibility.
|
|
36
37
|
* @returns The modified solc input with storage layout that includes namespaced type information.
|
|
37
38
|
*/
|
|
38
|
-
function makeNamespacedInput(input, output,
|
|
39
|
+
function makeNamespacedInput(input, output, _solcVersion) {
|
|
39
40
|
const modifiedSources = {};
|
|
40
41
|
for (const [sourcePath] of Object.entries(input.sources)) {
|
|
41
42
|
const source = input.sources[sourcePath];
|
|
@@ -149,64 +150,62 @@ function makeNamespacedInput(input, output, solcVersion) {
|
|
|
149
150
|
}
|
|
150
151
|
}
|
|
151
152
|
}
|
|
152
|
-
|
|
153
|
-
modifiedSources[sourcePath] = { ...source, content: modifiedSource };
|
|
153
|
+
modifiedSources[sourcePath] = { ...source, content: getModifiedSource(orig, modifications) };
|
|
154
154
|
}
|
|
155
155
|
return { ...input, sources: modifiedSources, settings: { ...input.settings, outputSelection: OUTPUT_SELECTION } };
|
|
156
156
|
}
|
|
157
157
|
/**
|
|
158
|
-
*
|
|
159
|
-
*
|
|
158
|
+
* Attempts to remove all NatSpec comments that do not precede a struct definition from the input source contents.
|
|
159
|
+
* Directly modifies the input source contents, and also returns the modified input.
|
|
160
160
|
*
|
|
161
|
-
*
|
|
161
|
+
* If the solc version is not supported by the parser, the original content is kept.
|
|
162
|
+
*
|
|
163
|
+
* @param solcInput Solc input.
|
|
164
|
+
* @param solcVersion The version of the solc compiler that was originally used to compile the input.
|
|
165
|
+
* @returns The modified solc input with NatSpec comments removed where they do not precede a struct definition.
|
|
162
166
|
*/
|
|
163
|
-
function
|
|
164
|
-
const
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
const { Language } = require('@nomicfoundation/slang/language');
|
|
168
|
-
const { NonterminalKind, TerminalKind } = require('@nomicfoundation/slang/kinds');
|
|
169
|
-
const { TerminalNode } = require('@nomicfoundation/slang/cst');
|
|
170
|
-
const { isTrivia } = require('./slang/trivia');
|
|
171
|
-
/* eslint-enable @typescript-eslint/no-var-requires */
|
|
172
|
-
const language = new Language(solcVersion);
|
|
173
|
-
const parseOutput = language.parse(NonterminalKind.SourceUnit, origContent);
|
|
174
|
-
const cursor = parseOutput.createTreeCursor();
|
|
175
|
-
while (cursor.goToNextTerminalWithKinds([TerminalKind.MultiLineNatSpecComment, TerminalKind.SingleLineNatSpecComment])) {
|
|
176
|
-
// Lookahead to determine if the next non-trivia node is the struct keyword.
|
|
177
|
-
// If so, this NatSpec is part of the struct definition and should not be removed.
|
|
178
|
-
const lookaheadCursor = cursor.clone();
|
|
179
|
-
while (lookaheadCursor.goToNextTerminal() && isTrivia(lookaheadCursor.node())) {
|
|
180
|
-
// skip over trivia nodes
|
|
181
|
-
}
|
|
182
|
-
if (lookaheadCursor.node().kind === TerminalKind.StructKeyword) {
|
|
183
|
-
continue;
|
|
184
|
-
}
|
|
185
|
-
const triviaNode = cursor.node();
|
|
186
|
-
(0, assert_1.assert)(triviaNode instanceof TerminalNode);
|
|
187
|
-
natSpecRemovals.push(makeDeleteRange(cursor.textRange.start.utf8, cursor.textRange.end.utf8));
|
|
167
|
+
async function trySanitizeNatSpec(solcInput, solcVersion) {
|
|
168
|
+
for (const [sourcePath, source] of Object.entries(solcInput.sources)) {
|
|
169
|
+
if (source.content !== undefined) {
|
|
170
|
+
solcInput.sources[sourcePath].content = await tryRemoveNonStructNatSpec(source.content, solcVersion);
|
|
188
171
|
}
|
|
189
|
-
return getModifiedSource(Buffer.from(origContent, 'utf8'), natSpecRemovals);
|
|
190
172
|
}
|
|
191
|
-
|
|
173
|
+
return solcInput;
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* If Slang is supported for the current compiler version, use Slang to parse and remove all NatSpec comments
|
|
177
|
+
* that do not precede a struct definition and return the modified content.
|
|
178
|
+
*
|
|
179
|
+
* Otherwise, return the original content.
|
|
180
|
+
*/
|
|
181
|
+
async function tryRemoveNonStructNatSpec(origContent, solcVersion) {
|
|
182
|
+
if (solcVersion === undefined) {
|
|
192
183
|
return origContent;
|
|
193
184
|
}
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
require(id);
|
|
198
|
-
return true;
|
|
185
|
+
const { Parser } = await import('@nomicfoundation/slang/parser');
|
|
186
|
+
if (!Parser.supportedVersions().includes(solcVersion)) {
|
|
187
|
+
return origContent;
|
|
199
188
|
}
|
|
200
|
-
|
|
201
|
-
|
|
189
|
+
const { TerminalKind, TerminalKindExtensions } = await import('@nomicfoundation/slang/cst');
|
|
190
|
+
const parser = Parser.create(solcVersion);
|
|
191
|
+
const parseOutput = parser.parse(Parser.rootKind(), origContent);
|
|
192
|
+
const cursor = parseOutput.createTreeCursor();
|
|
193
|
+
const natSpecRemovals = [];
|
|
194
|
+
while (cursor.goToNextTerminalWithKinds([TerminalKind.MultiLineNatSpecComment, TerminalKind.SingleLineNatSpecComment])) {
|
|
195
|
+
// Lookahead to determine if the next non-trivia node is the struct keyword.
|
|
196
|
+
// If so, this NatSpec is part of the struct definition and should not be removed.
|
|
197
|
+
const lookaheadCursor = cursor.clone();
|
|
198
|
+
while (lookaheadCursor.goToNextTerminal() &&
|
|
199
|
+
lookaheadCursor.node.isTerminalNode() &&
|
|
200
|
+
TerminalKindExtensions.isTrivia(lookaheadCursor.node.kind)) {
|
|
201
|
+
// skip over trivia nodes
|
|
202
|
+
}
|
|
203
|
+
if (lookaheadCursor.node.kind === TerminalKind.StructKeyword) {
|
|
204
|
+
continue;
|
|
205
|
+
}
|
|
206
|
+
natSpecRemovals.push(makeDeleteRange(cursor.textRange.start.utf8, cursor.textRange.end.utf8));
|
|
202
207
|
}
|
|
203
|
-
return
|
|
204
|
-
}
|
|
205
|
-
function slangSupportsVersion(solcVersion) {
|
|
206
|
-
/* eslint-disable @typescript-eslint/no-var-requires */
|
|
207
|
-
const { Language } = require('@nomicfoundation/slang/language');
|
|
208
|
-
/* eslint-enable @typescript-eslint/no-var-requires */
|
|
209
|
-
return Language.supportedVersions().includes(solcVersion);
|
|
208
|
+
return getModifiedSource(Buffer.from(origContent, 'utf8'), natSpecRemovals);
|
|
210
209
|
}
|
|
211
210
|
function toDummyEnumWithName(name) {
|
|
212
211
|
return `enum ${name} { dummy }`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"make-namespaced.js","sourceRoot":"","sources":["../../src/utils/make-namespaced.ts"],"names":[],"mappings":";;AAuCA,
|
|
1
|
+
{"version":3,"file":"make-namespaced.js","sourceRoot":"","sources":["../../src/utils/make-namespaced.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,7 +26,10 @@ async function testMakeNamespaced(origBuildInfo, t, solcVersion, keepAllNatSpec
|
|
|
26
26
|
}
|
|
27
27
|
// Inefficient, but we want to test that we don't actually modify the original input object
|
|
28
28
|
const origInput = JSON.parse(JSON.stringify(origBuildInfo.input));
|
|
29
|
-
|
|
29
|
+
let modifiedInput = (0, make_namespaced_1.makeNamespacedInput)(origBuildInfo.input, origBuildInfo.output, origBuildInfo.solcVersion);
|
|
30
|
+
if (!keepAllNatSpec) {
|
|
31
|
+
modifiedInput = await (0, make_namespaced_1.trySanitizeNatSpec)(modifiedInput, origBuildInfo.solcVersion);
|
|
32
|
+
}
|
|
30
33
|
// Run hardhat compile on the modified input and make sure it has no errors
|
|
31
34
|
const modifiedOutput = await hardhatCompile(modifiedInput, solcVersion);
|
|
32
35
|
t.is(modifiedOutput.errors, undefined, JSON.stringify(modifiedInput.sources, null, 2));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"make-namespaced.test.js","sourceRoot":"","sources":["../../src/utils/make-namespaced.test.ts"],"names":[],"mappings":";;;;;AAAA,8CAA6C;AAC7C,qCAAyC;AACzC,iEAI0C;AAE1C,
|
|
1
|
+
{"version":3,"file":"make-namespaced.test.js","sourceRoot":"","sources":["../../src/utils/make-namespaced.test.ts"],"names":[],"mappings":";;;;;AAAA,8CAA6C;AAC7C,qCAAyC;AACzC,iEAI0C;AAE1C,uDAA4E;AAK5E,IAAA,aAAI,EAAC,uBAAuB,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IACtC,MAAM,aAAa,GAAG,MAAM,mBAAS,CAAC,YAAY,CAAC,uDAAuD,CAAC,CAAC;IAC5G,MAAM,kBAAkB,CAAC,aAAa,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;AACvD,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,0CAA0C,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IACzD,MAAM,aAAa,GAAG,MAAM,mBAAS,CAAC,YAAY,CAAC,uDAAuD,CAAC,CAAC;IAC5G,MAAM,kBAAkB,CAAC,aAAa,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,kCAAkC,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IACjD,6JAA6J;IAC7J,MAAM,aAAa,GAAG,MAAM,mBAAS,CAAC,YAAY,CAAC,qDAAqD,CAAC,CAAC;IAC1G,MAAM,kBAAkB,CAAC,aAAa,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;AACtD,CAAC,CAAC,CAAC;AAEH,KAAK,UAAU,kBAAkB,CAC/B,aAAoC,EACpC,CAA4B,EAC5B,WAAmB,EACnB,cAAc,GAAG,KAAK;IAEtB,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IAED,2FAA2F;IAC3F,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IAElE,IAAI,aAAa,GAAG,IAAA,qCAAmB,EAAC,aAAa,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IAC9G,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,aAAa,GAAG,MAAM,IAAA,oCAAkB,EAAC,aAAa,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IACrF,CAAC;IAED,2EAA2E;IAC3E,MAAM,cAAc,GAAG,MAAM,cAAc,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IACxE,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAEvF,oBAAoB,CAAC,aAAa,CAAC,CAAC;IACpC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAE1B,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC5C,CAAC,CAAC,YAAY,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAgB;IAC5C,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAClD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO;iBAC5B,OAAO,CAAC,wBAAwB,EAAE,qBAAqB,CAAC;iBACxD,OAAO,CAAC,6BAA6B,EAAE,0BAA0B,CAAC;iBAClE,OAAO,CAAC,+BAA+B,EAAE,4BAA4B,CAAC;iBACtE,OAAO,CAAC,sBAAsB,EAAE,kBAAkB,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,KAAgB,EAAE,WAAmB;IACjE,MAAM,SAAS,GAAc,MAAM,IAAA,aAAG,EAAC,iDAAoC,EAAE;QAC3E,KAAK,EAAE,IAAI;QACX,WAAW;KACZ,CAAC,CAAC;IAEH,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;QACvB,OAAO,MAAM,IAAA,aAAG,EAAC,6CAAgC,EAAE;YACjD,KAAK;YACL,UAAU,EAAE,SAAS,CAAC,YAAY;SACnC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,OAAO,MAAM,IAAA,aAAG,EAAC,2CAA8B,EAAE;YAC/C,KAAK;YACL,QAAQ,EAAE,SAAS,CAAC,YAAY;SACjC,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
|
|
@@ -23,7 +23,7 @@ export interface StandaloneValidationOptions extends ProxyKindOption {
|
|
|
23
23
|
*/
|
|
24
24
|
unsafeAllowLinkedLibraries?: boolean;
|
|
25
25
|
/**
|
|
26
|
-
* Selectively disable one or more validation errors.
|
|
26
|
+
* Selectively disable one or more validation errors or warnings.
|
|
27
27
|
*/
|
|
28
28
|
unsafeAllow?: ValidationError['kind'][];
|
|
29
29
|
}
|
|
@@ -40,7 +40,11 @@ export interface ValidationOptions extends StandaloneValidationOptions {
|
|
|
40
40
|
*/
|
|
41
41
|
unsafeSkipStorageCheck?: boolean;
|
|
42
42
|
}
|
|
43
|
-
|
|
43
|
+
/**
|
|
44
|
+
* Warnings to display when a validation error occurs but is allowed.
|
|
45
|
+
* `null` indicates that the original message should be displayed.
|
|
46
|
+
*/
|
|
47
|
+
export declare const ValidationErrorUnsafeMessages: Record<ValidationError['kind'], string[] | null>;
|
|
44
48
|
export declare function withValidationDefaults(opts: ValidationOptions): Required<ValidationOptions>;
|
|
45
49
|
export declare function processExceptions(contractName: string, errors: ValidationError[], opts: ValidationOptions): ValidationError[];
|
|
46
50
|
//# sourceMappingURL=overrides.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overrides.d.ts","sourceRoot":"","sources":["../../src/validate/overrides.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"overrides.d.ts","sourceRoot":"","sources":["../../src/validate/overrides.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAqB,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAK9C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,IAAI,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,2BAA4B,SAAQ,eAAe;IAClE;;OAEG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAEjC;;OAEG;IACH,0BAA0B,CAAC,EAAE,OAAO,CAAC;IAErC;;OAEG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,2BAA2B;IACpE;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;OAEG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED;;;GAGG;AACH,eAAO,MAAM,6BAA6B,EAAE,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CA4C1F,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,iBAAiB,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CA4B3F;AAED,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,eAAe,EAAE,EACzB,IAAI,EAAE,iBAAiB,GACtB,eAAe,EAAE,CA8BnB"}
|
|
@@ -3,10 +3,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ValidationErrorUnsafeMessages = exports.silenceWarnings = void 0;
|
|
4
4
|
exports.withValidationDefaults = withValidationDefaults;
|
|
5
5
|
exports.processExceptions = processExceptions;
|
|
6
|
+
const run_1 = require("./run");
|
|
6
7
|
const log_1 = require("../utils/log");
|
|
8
|
+
const report_1 = require("./report");
|
|
7
9
|
// Backwards compatibility
|
|
8
10
|
var log_2 = require("../utils/log");
|
|
9
11
|
Object.defineProperty(exports, "silenceWarnings", { enumerable: true, get: function () { return log_2.silenceWarnings; } });
|
|
12
|
+
/**
|
|
13
|
+
* Warnings to display when a validation error occurs but is allowed.
|
|
14
|
+
* `null` indicates that the original message should be displayed.
|
|
15
|
+
*/
|
|
10
16
|
exports.ValidationErrorUnsafeMessages = {
|
|
11
17
|
'state-variable-assignment': [
|
|
12
18
|
`You are using the \`unsafeAllow.state-variable-assignment\` flag.`,
|
|
@@ -38,6 +44,19 @@ exports.ValidationErrorUnsafeMessages = {
|
|
|
38
44
|
`Internal functions are code pointers which will no longer be valid after an upgrade.`,
|
|
39
45
|
`Make sure you reassign internal functions in storage variables during upgrades.`,
|
|
40
46
|
],
|
|
47
|
+
'missing-initializer': [
|
|
48
|
+
`You are using the \`unsafeAllow.missing-initializer\` flag.`,
|
|
49
|
+
`Make sure you have manually checked that the contract has an initializer and that it correctly calls all parent initializers.`,
|
|
50
|
+
],
|
|
51
|
+
'missing-initializer-call': [
|
|
52
|
+
`You are using the \`unsafeAllow.missing-initializer-call\` flag.`,
|
|
53
|
+
`Make sure you have manually checked that the contract initializer calls all parent initializers.`,
|
|
54
|
+
],
|
|
55
|
+
'duplicate-initializer-call': [
|
|
56
|
+
`You are using the \`unsafeAllow.duplicate-initializer-call\` flag.`,
|
|
57
|
+
`Make sure you have manually checked that the contract initializer calls each parent initializer only once.`,
|
|
58
|
+
],
|
|
59
|
+
'incorrect-initializer-order': null,
|
|
41
60
|
};
|
|
42
61
|
function withValidationDefaults(opts) {
|
|
43
62
|
const unsafeAllow = opts.unsafeAllow ?? [];
|
|
@@ -67,16 +86,23 @@ function processExceptions(contractName, errors, opts) {
|
|
|
67
86
|
if (opts.kind === 'transparent' || opts.kind === 'beacon') {
|
|
68
87
|
errors = errors.filter(error => error.kind !== 'missing-public-upgradeto');
|
|
69
88
|
}
|
|
70
|
-
for (const [
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
if (
|
|
79
|
-
|
|
89
|
+
for (const [key, errorDescription] of Object.entries(exports.ValidationErrorUnsafeMessages)) {
|
|
90
|
+
const errorType = key;
|
|
91
|
+
const skip = unsafeAllow.includes(errorType);
|
|
92
|
+
const warn = run_1.convertToWarnings.includes(errorType);
|
|
93
|
+
if (skip || warn) {
|
|
94
|
+
const errorsWithType = errors.filter(error => error.kind === errorType);
|
|
95
|
+
errors = errors.filter(error => !errorsWithType.includes(error));
|
|
96
|
+
// Display message about the exception, unless it is a warning that the user has chosen to skip
|
|
97
|
+
if (errorsWithType.length > 0 && !(skip && warn)) {
|
|
98
|
+
if (errorDescription !== null) {
|
|
99
|
+
(0, log_1.logWarning)(`Potentially unsafe deployment of ${contractName}`, errorDescription);
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
for (const error of errorsWithType) {
|
|
103
|
+
(0, log_1.logWarning)(`Potentially unsafe deployment of ${contractName}`, [(0, report_1.describeError)(error)]);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
80
106
|
}
|
|
81
107
|
}
|
|
82
108
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overrides.js","sourceRoot":"","sources":["../../src/validate/overrides.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"overrides.js","sourceRoot":"","sources":["../../src/validate/overrides.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +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"}
|
|
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;AAmFD,wBAAgB,aAAa,CAAC,CAAC,EAAE,eAAe,EAAE,KAAK,UAAO,GAAG,MAAM,CAYtE"}
|
package/dist/validate/report.js
CHANGED
|
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.UpgradeableContractErrorReport = void 0;
|
|
7
|
+
exports.describeError = describeError;
|
|
7
8
|
const chalk_1 = __importDefault(require("chalk"));
|
|
8
9
|
class UpgradeableContractErrorReport {
|
|
9
10
|
constructor(errors) {
|
|
@@ -69,10 +70,31 @@ const errorInfo = {
|
|
|
69
70
|
` flag and ensure you always reassign internal functions in storage during upgrades`,
|
|
70
71
|
link: 'https://zpl.in/upgrades/error-009',
|
|
71
72
|
},
|
|
73
|
+
'missing-initializer': {
|
|
74
|
+
msg: () => `Missing initializer`,
|
|
75
|
+
hint: () => `Define an initializer function and use it to call the initializers of parent contracts`,
|
|
76
|
+
link: 'https://zpl.in/upgrades/error-001',
|
|
77
|
+
},
|
|
78
|
+
'missing-initializer-call': {
|
|
79
|
+
msg: e => `Missing initializer calls for one or more parent contracts: \`${e.parentContracts.join(', ')}\``,
|
|
80
|
+
hint: () => `Call the parent initializers in your initializer function`,
|
|
81
|
+
link: 'https://zpl.in/upgrades/error-001',
|
|
82
|
+
},
|
|
83
|
+
'duplicate-initializer-call': {
|
|
84
|
+
msg: e => `Duplicate calls found to initializer \`${e.parentInitializer}\` for contract \`${e.parentContract}\``,
|
|
85
|
+
hint: () => `Only call each parent initializer once`,
|
|
86
|
+
link: 'https://zpl.in/upgrades/error-001',
|
|
87
|
+
},
|
|
88
|
+
'incorrect-initializer-order': {
|
|
89
|
+
msg: e => `Incorrect order of parent initializer calls.
|
|
90
|
+
- Found initializer calls to parent contracts in the following order: ${e.foundOrder.join(', ')}
|
|
91
|
+
- Expected: ${e.expectedLinearization.join(', ')}`,
|
|
92
|
+
hint: () => `Call parent initializers in linearized order`,
|
|
93
|
+
},
|
|
72
94
|
};
|
|
73
95
|
function describeError(e, color = true) {
|
|
74
96
|
const chalk = new chalk_1.default.Instance({ level: color && chalk_1.default.supportsColor ? chalk_1.default.supportsColor.level : 0 });
|
|
75
|
-
const info = errorInfo[e.kind];
|
|
97
|
+
const info = errorInfo[e.kind]; // union type is too complex for TypeScript to represent, so we use `any`
|
|
76
98
|
const log = [chalk.bold(e.src) + ': ' + info.msg(e)];
|
|
77
99
|
const hint = info.hint?.(e);
|
|
78
100
|
if (hint) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/validate/report.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/validate/report.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ContractDefinition } from 'solidity-ast';
|
|
2
|
+
import { ASTDereferencer } from 'solidity-ast/utils';
|
|
3
|
+
import { SrcDecoder } from '../../src-decoder';
|
|
4
|
+
import { ValidationExceptionInitializer } from '../run';
|
|
5
|
+
/**
|
|
6
|
+
* Reports if this contract is non-abstract and any of the following are true:
|
|
7
|
+
* - 1. Missing initializer: This contract does not appear to have an initializer, but parent contracts require initialization.
|
|
8
|
+
* - 2. Missing initializer call: This contract's initializer is missing a call to a parent initializer.
|
|
9
|
+
* - 3. Duplicate initializer call: This contract has duplicate calls to the same parent initializer function.
|
|
10
|
+
* - 4. Incorrect initializer order (warning): This contract does not call parent initializers in the correct order.
|
|
11
|
+
*/
|
|
12
|
+
export declare function getInitializerExceptions(contractDef: ContractDefinition, deref: ASTDereferencer, decodeSrc: SrcDecoder): Generator<ValidationExceptionInitializer>;
|
|
13
|
+
//# sourceMappingURL=initializer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initializer.d.ts","sourceRoot":"","sources":["../../../src/validate/run/initializer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAsB,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAW,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,8BAA8B,EAAa,MAAM,QAAQ,CAAC;AAEnE;;;;;;GAMG;AACH,wBAAiB,wBAAwB,CACvC,WAAW,EAAE,kBAAkB,EAC/B,KAAK,EAAE,eAAe,EACtB,SAAS,EAAE,UAAU,GACpB,SAAS,CAAC,8BAA8B,CAAC,CA4C3C"}
|