@openzeppelin/upgrades-core 1.31.3 → 1.32.0-alpha.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.
Files changed (28) hide show
  1. package/artifacts/@openzeppelin/contracts-v5/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.json +76 -0
  2. package/artifacts/@openzeppelin/contracts-v5/proxy/beacon/BeaconProxy.sol/BeaconProxy.json +87 -0
  3. package/artifacts/@openzeppelin/contracts-v5/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.json +151 -0
  4. package/artifacts/@openzeppelin/contracts-v5/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.json +132 -0
  5. package/artifacts/@openzeppelin/contracts-v5/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.json +74 -0
  6. package/artifacts/@openzeppelin/contracts-v5/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +116 -0
  7. package/artifacts/build-info-v5.json +13993 -0
  8. package/dist/index.d.ts +1 -1
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +2 -1
  11. package/dist/index.js.map +1 -1
  12. package/dist/scripts/migratable-manifest.test.json +175 -0
  13. package/dist/scripts/project-file.test.json +25 -0
  14. package/dist/solidity-version.json +1 -0
  15. package/dist/standalone.test.js +9 -8
  16. package/dist/standalone.test.js.map +1 -1
  17. package/dist/usage-error.d.ts +3 -0
  18. package/dist/usage-error.d.ts.map +1 -1
  19. package/dist/usage-error.js +7 -1
  20. package/dist/usage-error.js.map +1 -1
  21. package/package.json +20 -13
  22. package/src/index.ts +1 -0
  23. package/src/solidity-version.json +1 -0
  24. package/src/standalone.test.ts +41 -7
  25. package/src/usage-error.ts +9 -0
  26. package/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.dbg.json +0 -4
  27. package/artifacts/@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol/BeaconProxy.dbg.json +0 -4
  28. package/artifacts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.dbg.json +0 -4
package/dist/index.d.ts CHANGED
@@ -19,7 +19,7 @@ export { isTransparentOrUUPSProxy, isBeaconProxy, isTransparentProxy } from './e
19
19
  export { getImplementationAddressFromBeacon, getImplementationAddressFromProxy } from './impl-address';
20
20
  export { isBeacon } from './beacon';
21
21
  export { addProxyToManifest } from './add-proxy-to-manifest';
22
- export { BeaconProxyUnsupportedError, LoadProxyUnsupportedError, PrepareUpgradeUnsupportedError, DeployBeaconProxyUnsupportedError, DeployBeaconProxyImplUnknownError, DeployBeaconProxyKindError, ForceImportUnsupportedError, NoContractImportError, ValidateUpdateRequiresKindError, PrepareUpgradeRequiresKindError, assertNotProxy, } from './usage-error';
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
25
  export { makeNamespacedInput } from './utils/make-namespaced';
@@ -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,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;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,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,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,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.isNamespaceSupported = exports.makeNamespacedInput = exports.getUpgradeInterfaceVersion = exports.ReferenceContractNotFound = exports.ProjectReport = exports.validateUpgradeSafety = exports.assertNotProxy = 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.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;
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; } });
@@ -74,6 +74,7 @@ Object.defineProperty(exports, "ForceImportUnsupportedError", { enumerable: true
74
74
  Object.defineProperty(exports, "NoContractImportError", { enumerable: true, get: function () { return usage_error_1.NoContractImportError; } });
75
75
  Object.defineProperty(exports, "ValidateUpdateRequiresKindError", { enumerable: true, get: function () { return usage_error_1.ValidateUpdateRequiresKindError; } });
76
76
  Object.defineProperty(exports, "PrepareUpgradeRequiresKindError", { enumerable: true, get: function () { return usage_error_1.PrepareUpgradeRequiresKindError; } });
77
+ Object.defineProperty(exports, "InitialOwnerUnsupportedKindError", { enumerable: true, get: function () { return usage_error_1.InitialOwnerUnsupportedKindError; } });
77
78
  Object.defineProperty(exports, "assertNotProxy", { enumerable: true, get: function () { return usage_error_1.assertNotProxy; } });
78
79
  var cli_1 = require("./cli");
79
80
  Object.defineProperty(exports, "validateUpgradeSafety", { enumerable: true, get: function () { return cli_1.validateUpgradeSafety; } });
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,6CAYuB;AAXrB,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,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,2DAA8D;AAArD,sHAAA,mBAAmB,OAAA;AAC5B,iDAA2D;AAAlD,iHAAA,oBAAoB,OAAA"}
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,2DAA8D;AAArD,sHAAA,mBAAmB,OAAA;AAC5B,iDAA2D;AAAlD,iHAAA,oBAAoB,OAAA"}
@@ -0,0 +1,175 @@
1
+ {
2
+ "contracts": {
3
+ "Box": {
4
+ "address": "0xb682dEEf4f8e298d86bFc3e21f50c675151FB974",
5
+ "constructorCode": "608060405234801561001057600080fd5b506101a3806100206000396000f3fe",
6
+ "bodyBytecodeHash": "0e331fb885de0fa7c715c4819b6ded2449542cb3cce682718791be28ae0789e8",
7
+ "localBytecodeHash": "08100f44a71d905a66088b4c5d72f12417a580d454357e06dcc5ad12b3fa2cbc",
8
+ "deployedBytecodeHash": "08100f44a71d905a66088b4c5d72f12417a580d454357e06dcc5ad12b3fa2cbc",
9
+ "types": {
10
+ "t_uint256": {
11
+ "id": "t_uint256",
12
+ "kind": "elementary",
13
+ "label": "uint256"
14
+ },
15
+ "t_bool": {
16
+ "id": "t_bool",
17
+ "kind": "elementary",
18
+ "label": "bool"
19
+ },
20
+ "t_mapping<t_bool>": {
21
+ "id": "t_mapping<t_bool>",
22
+ "valueType": "t_bool",
23
+ "label": "mapping(key => bool)",
24
+ "kind": "mapping"
25
+ },
26
+ "t_struct<Box.MyStruct>": {
27
+ "id": "t_struct<Box.MyStruct>",
28
+ "kind": "struct",
29
+ "label": "Box.MyStruct",
30
+ "members": [
31
+ {
32
+ "label": "x",
33
+ "astId": 3,
34
+ "type": "t_bool",
35
+ "src": "124:6:0"
36
+ }
37
+ ]
38
+ },
39
+ "t_enum<Box.MyEnum>": {
40
+ "id": "t_enum<Box.MyEnum>",
41
+ "kind": "enum",
42
+ "label": "Box.MyEnum",
43
+ "members": [
44
+ "UP",
45
+ "DOWN"
46
+ ]
47
+ },
48
+ "t_array:dyn<t_uint256>": {
49
+ "id": "t_array:dyn<t_uint256>",
50
+ "valueType": "t_uint256",
51
+ "length": "dyn",
52
+ "kind": "array",
53
+ "label": "uint256[]"
54
+ },
55
+ "t_array:10<t_uint256>": {
56
+ "id": "t_array:10<t_uint256>",
57
+ "valueType": "t_uint256",
58
+ "length": "10",
59
+ "kind": "array",
60
+ "label": "uint256[10]"
61
+ },
62
+ "t_array:dyn<t_enum<Box.MyEnum>>": {
63
+ "id": "t_array:dyn<t_enum<Box.MyEnum>>",
64
+ "valueType": "t_enum<Box.MyEnum>",
65
+ "length": "dyn",
66
+ "kind": "array",
67
+ "label": "Box.MyEnum[]"
68
+ },
69
+ "t_bytes8": {
70
+ "id": "t_bytes8",
71
+ "kind": "elementary",
72
+ "label": "bytes8"
73
+ }
74
+ },
75
+ "storage": [
76
+ {
77
+ "contract": "Box",
78
+ "path": "contracts/Box.sol",
79
+ "label": "value",
80
+ "astId": 9,
81
+ "type": "t_uint256",
82
+ "src": "173:21:0"
83
+ },
84
+ {
85
+ "contract": "Box",
86
+ "path": "contracts/Box.sol",
87
+ "label": "flag",
88
+ "astId": 11,
89
+ "type": "t_bool",
90
+ "src": "200:17:0"
91
+ },
92
+ {
93
+ "contract": "Box",
94
+ "path": "contracts/Box.sol",
95
+ "label": "map",
96
+ "astId": 15,
97
+ "type": "t_mapping<t_bool>",
98
+ "src": "223:26:0"
99
+ },
100
+ {
101
+ "contract": "Box",
102
+ "path": "contracts/Box.sol",
103
+ "label": "foo",
104
+ "astId": 17,
105
+ "type": "t_struct<Box.MyStruct>",
106
+ "src": "255:20:0"
107
+ },
108
+ {
109
+ "contract": "Box",
110
+ "path": "contracts/Box.sol",
111
+ "label": "myEnum",
112
+ "astId": 19,
113
+ "type": "t_enum<Box.MyEnum>",
114
+ "src": "281:21:0"
115
+ },
116
+ {
117
+ "contract": "Box",
118
+ "path": "contracts/Box.sol",
119
+ "label": "dynArray",
120
+ "astId": 22,
121
+ "type": "t_array:dyn<t_uint256>",
122
+ "src": "308:23:0"
123
+ },
124
+ {
125
+ "contract": "Box",
126
+ "path": "contracts/Box.sol",
127
+ "label": "staticArray",
128
+ "astId": 26,
129
+ "type": "t_array:10<t_uint256>",
130
+ "src": "337:20:0"
131
+ },
132
+ {
133
+ "contract": "Box",
134
+ "path": "contracts/Box.sol",
135
+ "label": "enumArray",
136
+ "astId": 29,
137
+ "type": "t_array:dyn<t_enum<Box.MyEnum>>",
138
+ "src": "363:26:0"
139
+ },
140
+ {
141
+ "contract": "Box",
142
+ "path": "contracts/Box.sol",
143
+ "label": "byteArray",
144
+ "astId": 31,
145
+ "type": "t_bytes8",
146
+ "src": "395:16:0"
147
+ }
148
+ ],
149
+ "warnings": {
150
+ "hasConstructor": false,
151
+ "hasSelfDestruct": false,
152
+ "hasDelegateCall": false,
153
+ "hasInitialValuesInDeclarations": false,
154
+ "uninitializedBaseContracts": []
155
+ }
156
+ }
157
+ },
158
+ "solidityLibs": {},
159
+ "proxies": {
160
+ "my-project/Box": [
161
+ {
162
+ "address": "0xE4C10Db67595aF2Cb4166c8C274e0140f7E43059",
163
+ "version": "1.0.0",
164
+ "implementation": "0xb682dEEf4f8e298d86bFc3e21f50c675151FB974",
165
+ "admin": "0x1750499D05Ed1674d822430FB960d5F6731fDf64",
166
+ "kind": "Upgradeable"
167
+ }
168
+ ]
169
+ },
170
+ "manifestVersion": "2.2",
171
+ "version": "1.0.0",
172
+ "proxyAdmin": {
173
+ "address": "0x1750499D05Ed1674d822430FB960d5F6731fDf64"
174
+ }
175
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "manifestVersion": "2.2",
3
+ "contracts": {
4
+ "Box": "Box"
5
+ },
6
+ "dependencies": {},
7
+ "name": "my-project",
8
+ "version": "1.0.0",
9
+ "compiler": {
10
+ "compilerSettings": {
11
+ "optimizer": {
12
+ "enabled": false,
13
+ "runs": "200"
14
+ }
15
+ },
16
+ "typechain": {
17
+ "enabled": false
18
+ },
19
+ "manager": "openzeppelin",
20
+ "solcVersion": "0.6.12",
21
+ "artifactsDir": "build/contracts",
22
+ "contractsDir": "contracts"
23
+ },
24
+ "telemetryOptIn": false
25
+ }
@@ -0,0 +1 @@
1
+ "0.8.20"
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const ava_1 = __importDefault(require("ava"));
7
7
  const hardhat_1 = require("hardhat");
8
+ const solidity_version_json_1 = __importDefault(require("./solidity-version.json"));
8
9
  const standalone_1 = require("./standalone");
9
10
  const test = ava_1.default;
10
11
  test.before(async (t) => {
@@ -16,32 +17,32 @@ test.before(async (t) => {
16
17
  t.context.solcOutput = buildInfo.output;
17
18
  });
18
19
  test('reports unsafe operation', t => {
19
- const impl = new standalone_1.UpgradeableContract('StandaloneV1', t.context.solcInput, t.context.solcOutput);
20
+ const impl = new standalone_1.UpgradeableContract('StandaloneV1', t.context.solcInput, t.context.solcOutput, {}, solidity_version_json_1.default);
20
21
  const report = impl.getErrorReport();
21
22
  t.false(report.ok);
22
23
  t.true(report.errors[0].kind === 'delegatecall');
23
24
  });
24
25
  test('reports unsafe operation - fully qualified name', t => {
25
- const impl = new standalone_1.UpgradeableContract('contracts/test/Standalone.sol:StandaloneV1', t.context.solcInput, t.context.solcOutput);
26
+ const impl = new standalone_1.UpgradeableContract('contracts/test/Standalone.sol:StandaloneV1', t.context.solcInput, t.context.solcOutput, {}, solidity_version_json_1.default);
26
27
  const report = impl.getErrorReport();
27
28
  t.false(report.ok);
28
29
  t.true(report.errors[0].kind === 'delegatecall');
29
30
  });
30
31
  test('reports storage upgrade errors', t => {
31
- const v1 = new standalone_1.UpgradeableContract('StandaloneV1', t.context.solcInput, t.context.solcOutput);
32
- const v2Good = new standalone_1.UpgradeableContract('StandaloneV2Good', t.context.solcInput, t.context.solcOutput);
32
+ const v1 = new standalone_1.UpgradeableContract('StandaloneV1', t.context.solcInput, t.context.solcOutput, {}, solidity_version_json_1.default);
33
+ const v2Good = new standalone_1.UpgradeableContract('StandaloneV2Good', t.context.solcInput, t.context.solcOutput, {}, solidity_version_json_1.default);
33
34
  const goodReport = v1.getStorageUpgradeReport(v2Good);
34
35
  t.true(goodReport.ok);
35
- const v2Bad = new standalone_1.UpgradeableContract('StandaloneV2Bad', t.context.solcInput, t.context.solcOutput);
36
+ const v2Bad = new standalone_1.UpgradeableContract('StandaloneV2Bad', t.context.solcInput, t.context.solcOutput, {}, solidity_version_json_1.default);
36
37
  const badReport = v1.getStorageUpgradeReport(v2Bad);
37
38
  t.false(badReport.ok);
38
39
  });
39
40
  test('dont report renamed version update', t => {
40
- const v1 = new standalone_1.UpgradeableContract('StandaloneRenameV1', t.context.solcInput, t.context.solcOutput);
41
- const v2 = new standalone_1.UpgradeableContract('StandaloneRenameV2', t.context.solcInput, t.context.solcOutput);
41
+ const v1 = new standalone_1.UpgradeableContract('StandaloneRenameV1', t.context.solcInput, t.context.solcOutput, {}, solidity_version_json_1.default);
42
+ const v2 = new standalone_1.UpgradeableContract('StandaloneRenameV2', t.context.solcInput, t.context.solcOutput, {}, solidity_version_json_1.default);
42
43
  const goodReport = v1.getStorageUpgradeReport(v2);
43
44
  t.true(goodReport.ok);
44
- const v3 = new standalone_1.UpgradeableContract('StandaloneRenameV3', t.context.solcInput, t.context.solcOutput);
45
+ const v3 = new standalone_1.UpgradeableContract('StandaloneRenameV3', t.context.solcInput, t.context.solcOutput, {}, solidity_version_json_1.default);
45
46
  const goodReport2 = v2.getStorageUpgradeReport(v3);
46
47
  t.true(goodReport2.ok);
47
48
  });
@@ -1 +1 @@
1
- {"version":3,"file":"standalone.test.js","sourceRoot":"","sources":["../src/standalone.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"standalone.test.js","sourceRoot":"","sources":["../src/standalone.test.ts"],"names":[],"mappings":"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"}
@@ -35,5 +35,8 @@ export declare class ValidateUpdateRequiresKindError extends UpgradesError {
35
35
  export declare class PrepareUpgradeRequiresKindError extends UpgradesError {
36
36
  constructor();
37
37
  }
38
+ export declare class InitialOwnerUnsupportedKindError extends UpgradesError {
39
+ constructor(kind: string);
40
+ }
38
41
  export declare function assertNotProxy(provider: EthereumProvider, address: string): Promise<void>;
39
42
  //# sourceMappingURL=usage-error.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"usage-error.d.ts","sourceRoot":"","sources":["../src/usage-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAA6D,aAAa,EAAE,MAAM,GAAG,CAAC;AAE/G,qBAAa,2BAA4B,SAAQ,aAAa;;CAO7D;AAED,qBAAa,0BAA2B,SAAQ,aAAa;gBAC/C,IAAI,EAAE,MAAM;CAMzB;AAED,qBAAa,iCAAkC,SAAQ,aAAa;gBACtD,aAAa,EAAE,MAAM;CAGlC;AAED,qBAAa,iCAAkC,SAAQ,aAAa;gBACtD,WAAW,EAAE,MAAM;CAMhC;AAED,qBAAa,yBAA0B,SAAQ,aAAa;gBAC9C,YAAY,EAAE,MAAM;CAMjC;AAED;;GAEG;AACH,qBAAa,8BAA+B,SAAQ,aAAa;gBACnD,oBAAoB,EAAE,MAAM;CAMzC;AAED;;GAEG;AACH,qBAAa,2BAA4B,SAAQ,aAAa;gBAChD,oBAAoB,EAAE,MAAM;CAMzC;AAED,qBAAa,qBAAsB,SAAQ,aAAa;gBAC1C,OAAO,EAAE,MAAM;CAM5B;AAED,qBAAa,+BAAgC,SAAQ,aAAa;;CAQjE;AAED,qBAAa,+BAAgC,SAAQ,aAAa;;CAQjE;AAED,wBAAsB,cAAc,CAAC,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,iBAc/E"}
1
+ {"version":3,"file":"usage-error.d.ts","sourceRoot":"","sources":["../src/usage-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAA6D,aAAa,EAAE,MAAM,GAAG,CAAC;AAE/G,qBAAa,2BAA4B,SAAQ,aAAa;;CAO7D;AAED,qBAAa,0BAA2B,SAAQ,aAAa;gBAC/C,IAAI,EAAE,MAAM;CAMzB;AAED,qBAAa,iCAAkC,SAAQ,aAAa;gBACtD,aAAa,EAAE,MAAM;CAGlC;AAED,qBAAa,iCAAkC,SAAQ,aAAa;gBACtD,WAAW,EAAE,MAAM;CAMhC;AAED,qBAAa,yBAA0B,SAAQ,aAAa;gBAC9C,YAAY,EAAE,MAAM;CAMjC;AAED;;GAEG;AACH,qBAAa,8BAA+B,SAAQ,aAAa;gBACnD,oBAAoB,EAAE,MAAM;CAMzC;AAED;;GAEG;AACH,qBAAa,2BAA4B,SAAQ,aAAa;gBAChD,oBAAoB,EAAE,MAAM;CAMzC;AAED,qBAAa,qBAAsB,SAAQ,aAAa;gBAC1C,OAAO,EAAE,MAAM;CAM5B;AAED,qBAAa,+BAAgC,SAAQ,aAAa;;CAQjE;AAED,qBAAa,+BAAgC,SAAQ,aAAa;;CAQjE;AAED,qBAAa,gCAAiC,SAAQ,aAAa;gBACrD,IAAI,EAAE,MAAM;CAMzB;AAED,wBAAsB,cAAc,CAAC,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,iBAc/E"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.assertNotProxy = exports.PrepareUpgradeRequiresKindError = exports.ValidateUpdateRequiresKindError = exports.NoContractImportError = exports.ForceImportUnsupportedError = exports.PrepareUpgradeUnsupportedError = exports.LoadProxyUnsupportedError = exports.DeployBeaconProxyImplUnknownError = exports.DeployBeaconProxyUnsupportedError = exports.DeployBeaconProxyKindError = exports.BeaconProxyUnsupportedError = void 0;
3
+ exports.assertNotProxy = exports.InitialOwnerUnsupportedKindError = exports.PrepareUpgradeRequiresKindError = exports.ValidateUpdateRequiresKindError = exports.NoContractImportError = exports.ForceImportUnsupportedError = exports.PrepareUpgradeUnsupportedError = exports.LoadProxyUnsupportedError = exports.DeployBeaconProxyImplUnknownError = exports.DeployBeaconProxyUnsupportedError = exports.DeployBeaconProxyKindError = exports.BeaconProxyUnsupportedError = void 0;
4
4
  const _1 = require(".");
5
5
  class BeaconProxyUnsupportedError extends _1.UpgradesError {
6
6
  constructor() {
@@ -68,6 +68,12 @@ class PrepareUpgradeRequiresKindError extends _1.UpgradesError {
68
68
  }
69
69
  }
70
70
  exports.PrepareUpgradeRequiresKindError = PrepareUpgradeRequiresKindError;
71
+ class InitialOwnerUnsupportedKindError extends _1.UpgradesError {
72
+ constructor(kind) {
73
+ super(`The \`initialOwner\` option is not supported for this kind of proxy ('${kind}')`, () => `Set the initial owner as part of your contract's initializer arguments instead.`);
74
+ }
75
+ }
76
+ exports.InitialOwnerUnsupportedKindError = InitialOwnerUnsupportedKindError;
71
77
  async function assertNotProxy(provider, address) {
72
78
  if (await (0, _1.isTransparentOrUUPSProxy)(provider, address)) {
73
79
  throw new _1.UpgradesError('Address is a transparent or UUPS proxy which cannot be upgraded using upgradeBeacon().', () => 'Use upgradeProxy() instead.');
@@ -1 +1 @@
1
- {"version":3,"file":"usage-error.js","sourceRoot":"","sources":["../src/usage-error.ts"],"names":[],"mappings":";;;AAAA,wBAA+G;AAE/G,MAAa,2BAA4B,SAAQ,gBAAa;IAC5D;QACE,KAAK,CACH,6DAA6D,EAC7D,GAAG,EAAE,CAAC,sEAAsE,CAC7E,CAAC;IACJ,CAAC;CACF;AAPD,kEAOC;AAED,MAAa,0BAA2B,SAAQ,gBAAa;IAC3D,YAAY,IAAY;QACtB,KAAK,CACH,2BAA2B,IAAI,GAAG,EAClC,GAAG,EAAE,CAAC,6EAA6E,CACpF,CAAC;IACJ,CAAC;CACF;AAPD,gEAOC;AAED,MAAa,iCAAkC,SAAQ,gBAAa;IAClE,YAAY,aAAqB;QAC/B,KAAK,CAAC,eAAe,aAAa,6BAA6B,EAAE,GAAG,EAAE,CAAC,uCAAuC,CAAC,CAAC;IAClH,CAAC;CACF;AAJD,8EAIC;AAED,MAAa,iCAAkC,SAAQ,gBAAa;IAClE,YAAY,WAAmB;QAC7B,KAAK,CACH,sCAAsC,WAAW,aAAa,EAC9D,GAAG,EAAE,CAAC,wGAAwG,CAC/G,CAAC;IACJ,CAAC;CACF;AAPD,8EAOC;AAED,MAAa,yBAA0B,SAAQ,gBAAa;IAC1D,YAAY,YAAoB;QAC9B,KAAK,CACH,eAAe,YAAY,sCAAsC,EACjE,GAAG,EAAE,CAAC,wFAAwF,CAC/F,CAAC;IACJ,CAAC;CACF;AAPD,8DAOC;AAED;;GAEG;AACH,MAAa,8BAA+B,SAAQ,gBAAa;IAC/D,YAAY,oBAA4B;QACtC,KAAK,CACH,uBAAuB,oBAAoB,gDAAgD,EAC3F,GAAG,EAAE,CAAC,sGAAsG,CAC7G,CAAC;IACJ,CAAC;CACF;AAPD,wEAOC;AAED;;GAEG;AACH,MAAa,2BAA4B,SAAQ,gBAAa;IAC5D,YAAY,oBAA4B;QACtC,KAAK,CACH,uBAAuB,oBAAoB,gDAAgD,EAC3F,GAAG,EAAE,CAAC,mGAAmG,CAC1G,CAAC;IACJ,CAAC;CACF;AAPD,kEAOC;AAED,MAAa,qBAAsB,SAAQ,gBAAa;IACtD,YAAY,OAAe;QACzB,KAAK,CACH,0BAA0B,OAAO,EAAE,EACnC,GAAG,EAAE,CAAC,iFAAiF,CACxF,CAAC;IACJ,CAAC;CACF;AAPD,sDAOC;AAED,MAAa,+BAAgC,SAAQ,gBAAa;IAChE;QACE,KAAK,CACH,oCAAoC,EACpC,GAAG,EAAE,CACH,gIAAgI,CACnI,CAAC;IACJ,CAAC;CACF;AARD,0EAQC;AAED,MAAa,+BAAgC,SAAQ,gBAAa;IAChE;QACE,KAAK,CACH,oCAAoC,EACpC,GAAG,EAAE,CACH,+HAA+H,CAClI,CAAC;IACJ,CAAC;CACF;AARD,0EAQC;AAEM,KAAK,UAAU,cAAc,CAAC,QAA0B,EAAE,OAAe;IAC9E,IAAI,MAAM,IAAA,2BAAwB,EAAC,QAAQ,EAAE,OAAO,CAAC,EAAE;QACrD,MAAM,IAAI,gBAAa,CACrB,wFAAwF,EACxF,GAAG,EAAE,CAAC,6BAA6B,CACpC,CAAC;KACH;SAAM,IAAI,MAAM,IAAA,gBAAa,EAAC,QAAQ,EAAE,OAAO,CAAC,EAAE;QACjD,MAAM,aAAa,GAAG,MAAM,IAAA,mBAAgB,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAChE,MAAM,IAAI,gBAAa,CACrB,8DAA8D,EAC9D,GAAG,EAAE,CACH,gIAAgI,aAAa,WAAW,CAC3J,CAAC;KACH;AACH,CAAC;AAdD,wCAcC"}
1
+ {"version":3,"file":"usage-error.js","sourceRoot":"","sources":["../src/usage-error.ts"],"names":[],"mappings":";;;AAAA,wBAA+G;AAE/G,MAAa,2BAA4B,SAAQ,gBAAa;IAC5D;QACE,KAAK,CACH,6DAA6D,EAC7D,GAAG,EAAE,CAAC,sEAAsE,CAC7E,CAAC;IACJ,CAAC;CACF;AAPD,kEAOC;AAED,MAAa,0BAA2B,SAAQ,gBAAa;IAC3D,YAAY,IAAY;QACtB,KAAK,CACH,2BAA2B,IAAI,GAAG,EAClC,GAAG,EAAE,CAAC,6EAA6E,CACpF,CAAC;IACJ,CAAC;CACF;AAPD,gEAOC;AAED,MAAa,iCAAkC,SAAQ,gBAAa;IAClE,YAAY,aAAqB;QAC/B,KAAK,CAAC,eAAe,aAAa,6BAA6B,EAAE,GAAG,EAAE,CAAC,uCAAuC,CAAC,CAAC;IAClH,CAAC;CACF;AAJD,8EAIC;AAED,MAAa,iCAAkC,SAAQ,gBAAa;IAClE,YAAY,WAAmB;QAC7B,KAAK,CACH,sCAAsC,WAAW,aAAa,EAC9D,GAAG,EAAE,CAAC,wGAAwG,CAC/G,CAAC;IACJ,CAAC;CACF;AAPD,8EAOC;AAED,MAAa,yBAA0B,SAAQ,gBAAa;IAC1D,YAAY,YAAoB;QAC9B,KAAK,CACH,eAAe,YAAY,sCAAsC,EACjE,GAAG,EAAE,CAAC,wFAAwF,CAC/F,CAAC;IACJ,CAAC;CACF;AAPD,8DAOC;AAED;;GAEG;AACH,MAAa,8BAA+B,SAAQ,gBAAa;IAC/D,YAAY,oBAA4B;QACtC,KAAK,CACH,uBAAuB,oBAAoB,gDAAgD,EAC3F,GAAG,EAAE,CAAC,sGAAsG,CAC7G,CAAC;IACJ,CAAC;CACF;AAPD,wEAOC;AAED;;GAEG;AACH,MAAa,2BAA4B,SAAQ,gBAAa;IAC5D,YAAY,oBAA4B;QACtC,KAAK,CACH,uBAAuB,oBAAoB,gDAAgD,EAC3F,GAAG,EAAE,CAAC,mGAAmG,CAC1G,CAAC;IACJ,CAAC;CACF;AAPD,kEAOC;AAED,MAAa,qBAAsB,SAAQ,gBAAa;IACtD,YAAY,OAAe;QACzB,KAAK,CACH,0BAA0B,OAAO,EAAE,EACnC,GAAG,EAAE,CAAC,iFAAiF,CACxF,CAAC;IACJ,CAAC;CACF;AAPD,sDAOC;AAED,MAAa,+BAAgC,SAAQ,gBAAa;IAChE;QACE,KAAK,CACH,oCAAoC,EACpC,GAAG,EAAE,CACH,gIAAgI,CACnI,CAAC;IACJ,CAAC;CACF;AARD,0EAQC;AAED,MAAa,+BAAgC,SAAQ,gBAAa;IAChE;QACE,KAAK,CACH,oCAAoC,EACpC,GAAG,EAAE,CACH,+HAA+H,CAClI,CAAC;IACJ,CAAC;CACF;AARD,0EAQC;AAED,MAAa,gCAAiC,SAAQ,gBAAa;IACjE,YAAY,IAAY;QACtB,KAAK,CACH,yEAAyE,IAAI,IAAI,EACjF,GAAG,EAAE,CAAC,iFAAiF,CACxF,CAAC;IACJ,CAAC;CACF;AAPD,4EAOC;AAEM,KAAK,UAAU,cAAc,CAAC,QAA0B,EAAE,OAAe;IAC9E,IAAI,MAAM,IAAA,2BAAwB,EAAC,QAAQ,EAAE,OAAO,CAAC,EAAE;QACrD,MAAM,IAAI,gBAAa,CACrB,wFAAwF,EACxF,GAAG,EAAE,CAAC,6BAA6B,CACpC,CAAC;KACH;SAAM,IAAI,MAAM,IAAA,gBAAa,EAAC,QAAQ,EAAE,OAAO,CAAC,EAAE;QACjD,MAAM,aAAa,GAAG,MAAM,IAAA,mBAAgB,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAChE,MAAM,IAAI,gBAAa,CACrB,8DAA8D,EAC9D,GAAG,EAAE,CACH,gIAAgI,aAAa,WAAW,CAC3J,CAAC;KACH;AACH,CAAC;AAdD,wCAcC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openzeppelin/upgrades-core",
3
- "version": "1.31.3",
3
+ "version": "1.32.0-alpha.0",
4
4
  "description": "",
5
5
  "repository": "https://github.com/OpenZeppelin/openzeppelin-upgrades/tree/master/packages/core",
6
6
  "license": "MIT",
@@ -13,22 +13,29 @@
13
13
  "/artifacts/contracts/proxy/AdminUpgradeabilityProxy.sol/AdminUpgradeabilityProxy.json",
14
14
  "/artifacts/contracts/proxy/ProxyAdmin.sol/ProxyAdmin.json",
15
15
  "/contracts/Initializable.sol",
16
- "/artifacts/@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol",
17
- "/artifacts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol",
18
- "/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol",
16
+ "/artifacts/@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol/BeaconProxy.json",
17
+ "/artifacts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.json",
18
+ "/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.json",
19
19
  "/artifacts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.json",
20
20
  "/artifacts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json",
21
21
  "/artifacts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.json",
22
- "/artifacts/build-info.json"
22
+ "/artifacts/build-info.json",
23
+ "/artifacts/@openzeppelin/contracts-v5/proxy/beacon/BeaconProxy.sol/BeaconProxy.json",
24
+ "/artifacts/@openzeppelin/contracts-v5/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.json",
25
+ "/artifacts/@openzeppelin/contracts-v5/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.json",
26
+ "/artifacts/@openzeppelin/contracts-v5/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.json",
27
+ "/artifacts/@openzeppelin/contracts-v5/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json",
28
+ "/artifacts/@openzeppelin/contracts-v5/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.json",
29
+ "/artifacts/build-info-v5.json"
23
30
  ],
24
31
  "scripts": {
25
32
  "clean": "hardhat clean && rimraf dist *.tsbuildinfo",
26
33
  "compile": "tsc -b && yarn compile:contracts",
27
- "compile:contracts": "hardhat compile && node scripts/copy-build-info.js",
28
- "prepare": "yarn clean && yarn compile",
29
- "prepublishOnly": "bash scripts/copy-artifacts.sh",
30
- "test": "tsc -b && hardhat compile --force && node scripts/copy-build-info.js && ava",
31
- "test:watch": "hardhat compile --force && fgbg 'ava --watch' 'tsc -b --watch' --",
34
+ "compile:contracts": "hardhat compile",
35
+ "copyfiles": "node scripts/copy-build-info-v5.js && bash scripts/copy-legacy-artifacts.sh",
36
+ "prepare": "yarn clean && yarn compile && yarn copyfiles",
37
+ "test": "tsc -b && hardhat compile --force && yarn copyfiles && ava",
38
+ "test:watch": "hardhat compile --force && yarn copyfiles && fgbg 'ava --watch' 'tsc -b --watch' --",
32
39
  "version": "node ../../scripts/bump-changelog.js",
33
40
  "cli": "node ./dist/cli/cli.js"
34
41
  },
@@ -38,8 +45,8 @@
38
45
  "devDependencies": {
39
46
  "@ava/typescript": "^4.0.0",
40
47
  "@nomicfoundation/hardhat-ethers": "^3.0.5",
41
- "@openzeppelin/contracts": "4.8.3",
42
- "@openzeppelin/contracts-upgradeable": "4.8.3",
48
+ "@openzeppelin/contracts": "5.0.0",
49
+ "@openzeppelin/upgrades-core-legacy": "npm:@openzeppelin/upgrades-core@1.31.3",
43
50
  "@types/cbor": "^5.0.0",
44
51
  "@types/debug": "^4.1.5",
45
52
  "@types/mocha": "^7.0.2",
@@ -64,5 +71,5 @@
64
71
  "proper-lockfile": "^4.1.1",
65
72
  "solidity-ast": "^0.4.51"
66
73
  },
67
- "gitHead": "40943810bbb60721f9a1f2a566e5e17b96e63fbc"
74
+ "gitHead": "7fd74e339fe760d23aea5cc0bbf6bac525323ab4"
68
75
  }
package/src/index.ts CHANGED
@@ -53,6 +53,7 @@ export {
53
53
  NoContractImportError,
54
54
  ValidateUpdateRequiresKindError,
55
55
  PrepareUpgradeRequiresKindError,
56
+ InitialOwnerUnsupportedKindError,
56
57
  assertNotProxy,
57
58
  } from './usage-error';
58
59
 
@@ -0,0 +1 @@
1
+ "0.8.20"
@@ -1,6 +1,8 @@
1
1
  import _test, { TestFn } from 'ava';
2
2
  import { artifacts } from 'hardhat';
3
3
 
4
+ import SOLIDITY_VERSION from './solidity-version.json';
5
+
4
6
  import { SolcInput, SolcOutput } from './solc-api';
5
7
  import { UpgradeableContract } from './standalone';
6
8
 
@@ -21,7 +23,7 @@ test.before(async t => {
21
23
  });
22
24
 
23
25
  test('reports unsafe operation', t => {
24
- const impl = new UpgradeableContract('StandaloneV1', t.context.solcInput, t.context.solcOutput);
26
+ const impl = new UpgradeableContract('StandaloneV1', t.context.solcInput, t.context.solcOutput, {}, SOLIDITY_VERSION);
25
27
  const report = impl.getErrorReport();
26
28
  t.false(report.ok);
27
29
  t.true(report.errors[0].kind === 'delegatecall');
@@ -32,6 +34,8 @@ test('reports unsafe operation - fully qualified name', t => {
32
34
  'contracts/test/Standalone.sol:StandaloneV1',
33
35
  t.context.solcInput,
34
36
  t.context.solcOutput,
37
+ {},
38
+ SOLIDITY_VERSION,
35
39
  );
36
40
  const report = impl.getErrorReport();
37
41
  t.false(report.ok);
@@ -39,25 +43,55 @@ test('reports unsafe operation - fully qualified name', t => {
39
43
  });
40
44
 
41
45
  test('reports storage upgrade errors', t => {
42
- const v1 = new UpgradeableContract('StandaloneV1', t.context.solcInput, t.context.solcOutput);
46
+ const v1 = new UpgradeableContract('StandaloneV1', t.context.solcInput, t.context.solcOutput, {}, SOLIDITY_VERSION);
43
47
 
44
- const v2Good = new UpgradeableContract('StandaloneV2Good', t.context.solcInput, t.context.solcOutput);
48
+ const v2Good = new UpgradeableContract(
49
+ 'StandaloneV2Good',
50
+ t.context.solcInput,
51
+ t.context.solcOutput,
52
+ {},
53
+ SOLIDITY_VERSION,
54
+ );
45
55
  const goodReport = v1.getStorageUpgradeReport(v2Good);
46
56
  t.true(goodReport.ok);
47
57
 
48
- const v2Bad = new UpgradeableContract('StandaloneV2Bad', t.context.solcInput, t.context.solcOutput);
58
+ const v2Bad = new UpgradeableContract(
59
+ 'StandaloneV2Bad',
60
+ t.context.solcInput,
61
+ t.context.solcOutput,
62
+ {},
63
+ SOLIDITY_VERSION,
64
+ );
49
65
  const badReport = v1.getStorageUpgradeReport(v2Bad);
50
66
  t.false(badReport.ok);
51
67
  });
52
68
 
53
69
  test('dont report renamed version update', t => {
54
- const v1 = new UpgradeableContract('StandaloneRenameV1', t.context.solcInput, t.context.solcOutput);
70
+ const v1 = new UpgradeableContract(
71
+ 'StandaloneRenameV1',
72
+ t.context.solcInput,
73
+ t.context.solcOutput,
74
+ {},
75
+ SOLIDITY_VERSION,
76
+ );
55
77
 
56
- const v2 = new UpgradeableContract('StandaloneRenameV2', t.context.solcInput, t.context.solcOutput);
78
+ const v2 = new UpgradeableContract(
79
+ 'StandaloneRenameV2',
80
+ t.context.solcInput,
81
+ t.context.solcOutput,
82
+ {},
83
+ SOLIDITY_VERSION,
84
+ );
57
85
  const goodReport = v1.getStorageUpgradeReport(v2);
58
86
  t.true(goodReport.ok);
59
87
 
60
- const v3 = new UpgradeableContract('StandaloneRenameV3', t.context.solcInput, t.context.solcOutput);
88
+ const v3 = new UpgradeableContract(
89
+ 'StandaloneRenameV3',
90
+ t.context.solcInput,
91
+ t.context.solcOutput,
92
+ {},
93
+ SOLIDITY_VERSION,
94
+ );
61
95
  const goodReport2 = v2.getStorageUpgradeReport(v3);
62
96
  t.true(goodReport2.ok);
63
97
  });
@@ -95,6 +95,15 @@ export class PrepareUpgradeRequiresKindError extends UpgradesError {
95
95
  }
96
96
  }
97
97
 
98
+ export class InitialOwnerUnsupportedKindError extends UpgradesError {
99
+ constructor(kind: string) {
100
+ super(
101
+ `The \`initialOwner\` option is not supported for this kind of proxy ('${kind}')`,
102
+ () => `Set the initial owner as part of your contract's initializer arguments instead.`,
103
+ );
104
+ }
105
+ }
106
+
98
107
  export async function assertNotProxy(provider: EthereumProvider, address: string) {
99
108
  if (await isTransparentOrUUPSProxy(provider, address)) {
100
109
  throw new UpgradesError(
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../../build-info/966b1f437e942115ba46359eb293018c.json"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../../build-info/966b1f437e942115ba46359eb293018c.json"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../../build-info/966b1f437e942115ba46359eb293018c.json"
4
- }