@openzeppelin/upgrades-core 1.22.0 → 1.23.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.
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../../build-info/bb1e0d270674fd66daeec5cff0455eed.json"
3
+ "buildInfo": "../../../../../build-info/2c91e356abc6b5659ece0ab630d11e46.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../../build-info/bb1e0d270674fd66daeec5cff0455eed.json"
3
+ "buildInfo": "../../../../../build-info/2c91e356abc6b5659ece0ab630d11e46.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../../build-info/bb1e0d270674fd66daeec5cff0455eed.json"
3
+ "buildInfo": "../../../../../build-info/2c91e356abc6b5659ece0ab630d11e46.json"
4
4
  }
@@ -88,10 +88,10 @@
88
88
  "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.9;\n\nimport \"./RiskyParentContract.sol\";\n\n/**\n * allow-reachable causes the delegatecall to be ignored for all reachable functions from this contract\n *\n * @custom:oz-upgrades-unsafe-allow-reachable delegatecall\n */\ncontract AllowReachableParentCall is RiskyParentContract {\n function allowed(bytes memory data) internal {\n internalDelegateCall(address(this), data);\n }\n}"
89
89
  },
90
90
  "contracts/test/ignore-errors/Constructors.sol": {
91
- "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.9;\n\nabstract contract UnsafeParent {\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor(bytes memory data) {\n msg.sender.delegatecall(data);\n }\n}\n\ncontract UnsafeChild1 is UnsafeParent {\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() UnsafeParent('') {}\n\n function foo1(uint x) public {}\n}\n\ncontract UnsafeChild2 is UnsafeParent('') {\n function foo2(uint x) public {}\n}\n\nabstract contract UnsafeParentNoArgs {\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() {\n msg.sender.delegatecall('');\n }\n}\n\ncontract UnsafeChild3 is UnsafeParentNoArgs {\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() UnsafeParentNoArgs() {}\n\n function foo3(uint x) public {}\n}\n\ncontract UnsafeChild4 is UnsafeParentNoArgs {\n function foo4(uint x) public {}\n}\n\n/**\n * @custom:oz-upgrades-unsafe-allow delegatecall\n */\nabstract contract AllowParentNoArgs {\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() {\n msg.sender.delegatecall('');\n }\n}\n\ncontract AllowChild5 is AllowParentNoArgs {\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() AllowParentNoArgs() {}\n\n function foo5(uint x) public {}\n}\n\ncontract AllowChild6 is AllowParentNoArgs {\n function foo6(uint x) public {}\n}\n\n/**\n * allow has no effect because the delegatecall is in a parent function\n *\n * @custom:oz-upgrades-unsafe-allow delegatecall\n */\ncontract UnsafeAllowChild7 is UnsafeParentNoArgs {\n function foo7(uint x) public {}\n}\n\n/**\n * @custom:oz-upgrades-unsafe-allow-reachable delegatecall\n */\ncontract AllowReachableChild8 is UnsafeParentNoArgs {\n function foo8(uint x) public {}\n}\n\nabstract contract UnsafeFunctions {\n function unsafe() internal {\n msg.sender.delegatecall('');\n }\n}\n\ncontract UnsafeChild9 is UnsafeFunctions {\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() {\n unsafe();\n }\n\n function foo9(uint x) public {}\n}"
91
+ "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.9;\n\nabstract contract UnsafeParent {\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor(bytes memory data) {\n (bool s, ) = msg.sender.delegatecall(data);\n s;\n }\n}\n\ncontract UnsafeChild1 is UnsafeParent {\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() UnsafeParent('') {}\n\n function foo1(uint x) public {}\n}\n\ncontract UnsafeChild2 is UnsafeParent('') {\n function foo2(uint x) public {}\n}\n\nabstract contract UnsafeParentNoArgs {\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() {\n (bool s, ) = msg.sender.delegatecall(\"\");\n s;\n }\n}\n\ncontract UnsafeChild3 is UnsafeParentNoArgs {\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() UnsafeParentNoArgs() {}\n\n function foo3(uint x) public {}\n}\n\ncontract UnsafeChild4 is UnsafeParentNoArgs {\n function foo4(uint x) public {}\n}\n\n/**\n * @custom:oz-upgrades-unsafe-allow delegatecall\n */\nabstract contract AllowParentNoArgs {\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() {\n (bool s, ) = msg.sender.delegatecall(\"\");\n s;\n }\n}\n\ncontract AllowChild5 is AllowParentNoArgs {\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() AllowParentNoArgs() {}\n\n function foo5(uint x) public {}\n}\n\ncontract AllowChild6 is AllowParentNoArgs {\n function foo6(uint x) public {}\n}\n\n/**\n * allow has no effect because the delegatecall is in a parent function\n *\n * @custom:oz-upgrades-unsafe-allow delegatecall\n */\ncontract UnsafeAllowChild7 is UnsafeParentNoArgs {\n function foo7(uint x) public {}\n}\n\n/**\n * @custom:oz-upgrades-unsafe-allow-reachable delegatecall\n */\ncontract AllowReachableChild8 is UnsafeParentNoArgs {\n function foo8(uint x) public {}\n}\n\nabstract contract UnsafeFunctions {\n function unsafe() internal {\n (bool s, ) = msg.sender.delegatecall(\"\");\n s;\n }\n}\n\ncontract UnsafeChild9 is UnsafeFunctions {\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() {\n unsafe();\n }\n\n function foo9(uint x) public {}\n}"
92
92
  },
93
93
  "contracts/test/ignore-errors/Modifiers.sol": {
94
- "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.9;\n\nabstract contract UnsafeParentModifier {\n modifier unsafe(bytes memory data) {\n _;\n msg.sender.delegatecall(data);\n }\n}\n\n// TODO: do not throw an error in this case\n// contract ModifierNotUsed is UnsafeParentModifier {\n// function foo() public {}\n// }\n\ncontract ModifierUsed is UnsafeParentModifier {\n function foo() public unsafe('') {}\n}\n"
94
+ "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.9;\n\nabstract contract UnsafeParentModifier {\n modifier unsafe(bytes memory data) {\n _;\n (bool s, ) = msg.sender.delegatecall(data);\n s;\n }\n}\n\n// TODO: do not throw an error in this case\n// contract ModifierNotUsed is UnsafeParentModifier {\n// function foo() public {}\n// }\n\ncontract ModifierUsed is UnsafeParentModifier {\n function foo() public unsafe('') {}\n}\n"
95
95
  },
96
96
  "contracts/test/ignore-errors/RiskyFreeFunctions.sol": {
97
97
  "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.9;\n\nfunction isContract(address account) view returns (bool) {\n return account.code.length > 0;\n}\n\nfunction freeDelegateCall(\n address target,\n bytes memory data\n) returns (bytes memory) {\n (, bytes memory returndata) = target.delegatecall(data);\n return returndata;\n}\n"
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,MAAM,EAAE,oBAAoB,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAChE,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACzD,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACzD,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACvE,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7D,IAAI,CAAC,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpF,IAAI,CAAC,MAAM,EAAE,0BAA0B,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,mBAAmB,CAAC,CAAC;IAChG,IAAI,CAAC,MAAM,EAAE,2BAA2B,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,0BAA0B,CAAC,CAAC;IACxG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC3D;AAED,UAAU,mBAAmB;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,0BAA0B;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAsB,YAAY,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAE9E;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAG5E;AAED,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAElF;AAED,wBAAsB,YAAY,CAChC,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,KAAK,SAAW,GACf,OAAO,CAAC,MAAM,CAAC,CAIjB;AAED,wBAAsB,OAAO,CAAC,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,SAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAE5G;AAED,wBAAsB,IAAI,CACxB,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,KAAK,SAAW,GACf,OAAO,CAAC,MAAM,CAAC,CAQjB;AAED,wBAAsB,OAAO,CAAC,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG3G;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,WAEnC;AAED,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAErC;AAED,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,0BAA0B,GAAG,IAAI,CAAC,CAM5C;AAED,eAAO,MAAM,YAAY,EAAE;KAAG,OAAO,IAAI,MAAM,CAAC,CAAC,EAAE,MAAM;CAiBvD,CAAC;AAEH,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAWvF;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,0BAA0B,EAAE,QAAQ,CAAC,GAAG,OAAO,CAEhG"}
package/dist/provider.js CHANGED
@@ -61,10 +61,12 @@ exports.networkNames = Object.freeze({
61
61
  3: 'ropsten',
62
62
  4: 'rinkeby',
63
63
  5: 'goerli',
64
+ 10: 'optimism',
64
65
  42: 'kovan',
65
66
  56: 'bsc',
66
67
  97: 'bsc-testnet',
67
68
  137: 'polygon',
69
+ 420: 'optimism-goerli',
68
70
  80001: 'polygon-mumbai',
69
71
  43113: 'avalanche-fuji',
70
72
  43114: 'avalanche',
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":";;;AA2BO,KAAK,UAAU,YAAY,CAAC,QAA0B;IAC3D,OAAO,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;AAC1C,CAAC;AAFD,oCAEC;AAEM,KAAK,UAAU,UAAU,CAAC,QAA0B;IACzD,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IAClD,OAAO,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAC7C,CAAC;AAHD,gCAGC;AAEM,KAAK,UAAU,gBAAgB,CAAC,QAA0B;IAC/D,OAAO,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;AACjD,CAAC;AAFD,4CAEC;AAEM,KAAK,UAAU,YAAY,CAChC,QAA0B,EAC1B,OAAe,EACf,QAAgB,EAChB,KAAK,GAAG,QAAQ;IAEhB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;IACpF,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC5D,OAAO,IAAI,GAAG,MAAM,CAAC;AACvB,CAAC;AATD,oCASC;AAEM,KAAK,UAAU,OAAO,CAAC,QAA0B,EAAE,OAAe,EAAE,KAAK,GAAG,QAAQ;IACzF,OAAO,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;AACxD,CAAC;AAFD,0BAEC;AAEM,KAAK,UAAU,IAAI,CACxB,QAA0B,EAC1B,OAAe,EACf,IAAY,EACZ,KAAK,GAAG,QAAQ;IAEhB,OAAO,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE;QAC/B;YACE,EAAE,EAAE,OAAO;YACX,IAAI,EAAE,IAAI;SACX;QACD,KAAK;KACN,CAAC,CAAC;AACL,CAAC;AAbD,oBAaC;AAEM,KAAK,UAAU,OAAO,CAAC,QAA0B,EAAE,OAAe,EAAE,KAAc;IACvF,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IACrD,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AAHD,0BAGC;AAED,SAAgB,OAAO,CAAC,IAAY;IAClC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC;AACxC,CAAC;AAFD,0BAEC;AAEM,KAAK,UAAU,oBAAoB,CACxC,QAA0B,EAC1B,MAAc;IAEd,OAAO,QAAQ,CAAC,IAAI,CAAC,0BAA0B,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7D,CAAC;AALD,oDAKC;AAEM,KAAK,UAAU,qBAAqB,CACzC,QAA0B,EAC1B,MAAc;IAEd,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3E,IAAI,OAAO,EAAE,MAAM,EAAE;QACnB,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;KACjG;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AATD,sDASC;AAEY,QAAA,YAAY,GAAqC,MAAM,CAAC,MAAM,CAAC;IAC1E,CAAC,EAAE,SAAS;IACZ,CAAC,EAAE,QAAQ;IACX,CAAC,EAAE,SAAS;IACZ,CAAC,EAAE,SAAS;IACZ,CAAC,EAAE,QAAQ;IACX,EAAE,EAAE,UAAU;IACd,EAAE,EAAE,OAAO;IACX,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,aAAa;IACjB,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,iBAAiB;IACtB,KAAK,EAAE,gBAAgB;IACvB,KAAK,EAAE,gBAAgB;IACvB,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,gBAAgB;CACxB,CAAC,CAAC;AAEI,KAAK,UAAU,oBAAoB,CAAC,QAA0B;IACnE,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC3C,kCAAkC;IAClC,2BAA2B;IAC3B,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,EAAE;QACzC,OAAO,IAAI,CAAC;KACb;SAAM;QACL,MAAM,aAAa,GAAG,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACvD,MAAM,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC3C,OAAO,IAAI,KAAK,gBAAgB,IAAI,IAAI,KAAK,oBAAoB,CAAC;KACnE;AACH,CAAC;AAXD,oDAWC;AAED,SAAgB,mBAAmB,CAAC,OAAmD;IACrF,OAAO,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC;AAClC,CAAC;AAFD,kDAEC"}
@@ -36,10 +36,10 @@ function storageFieldEnd(field) {
36
36
  return begin + BigInt(numberOfBytes);
37
37
  }
38
38
  exports.storageFieldEnd = storageFieldEnd;
39
- const LAYOUTCHANGE_COST = 0;
39
+ const LAYOUTCHANGE_COST = 1;
40
40
  const FINISHGAP_COST = 1;
41
41
  const SHRINKGAP_COST = 0;
42
- const TYPECHANGE_COST = 0;
42
+ const TYPECHANGE_COST = 1;
43
43
  class StorageLayoutComparator {
44
44
  constructor(unsafeAllowCustomTypes = false, unsafeAllowRenames = false) {
45
45
  this.unsafeAllowCustomTypes = unsafeAllowCustomTypes;
@@ -9,7 +9,7 @@ const compare_1 = require("./compare");
9
9
  * @returns true if field is a gap, otherwise false
10
10
  */
11
11
  function isGap(field) {
12
- return field.label === '__gap' && field.type.head === 't_array';
12
+ return field.type.head === 't_array' && (field.label === '__gap' || field.label.startsWith('__gap_'));
13
13
  }
14
14
  exports.isGap = isGap;
15
15
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"gap.js","sourceRoot":"","sources":["../../src/storage/gap.ts"],"names":[],"mappings":";;;AAAA,uCAA0D;AAE1D;;;;;GAKG;AACH,SAAgB,KAAK,CAAC,KAAmB;IACvC,OAAO,KAAK,CAAC,KAAK,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;AAClE,CAAC;AAFD,sBAEC;AAED;;;;;;;GAOG;AACH,SAAgB,aAAa,CAAC,QAAsB,EAAE,OAAqB;IACzE,MAAM,WAAW,GAAG,IAAA,yBAAe,EAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,IAAA,yBAAe,EAAC,OAAO,CAAC,CAAC;IAE5C,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,WAAW,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,IAAI,WAAW,KAAK,UAAU,CAAC;AAChH,CAAC;AALD,sCAKC"}
1
+ {"version":3,"file":"gap.js","sourceRoot":"","sources":["../../src/storage/gap.ts"],"names":[],"mappings":";;;AAAA,uCAA0D;AAE1D;;;;;GAKG;AACH,SAAgB,KAAK,CAAC,KAAmB;IACvC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AACxG,CAAC;AAFD,sBAEC;AAED;;;;;;;GAOG;AACH,SAAgB,aAAa,CAAC,QAAsB,EAAE,OAAqB;IACzE,MAAM,WAAW,GAAG,IAAA,yBAAe,EAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,IAAA,yBAAe,EAAC,OAAO,CAAC,CAAC;IAE5C,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,WAAW,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,IAAI,WAAW,KAAK,UAAU,CAAC;AAChH,CAAC;AALD,sCAKC"}
@@ -22,6 +22,19 @@ const testContracts = [
22
22
  'contracts/test/Storage.sol:StorageUpgrade_Gap_V2_Bad5',
23
23
  'contracts/test/Storage.sol:StorageUpgrade_MultiConsumeGap_V1',
24
24
  'contracts/test/Storage.sol:StorageUpgrade_MultiConsumeGap_V2_Ok',
25
+ 'contracts/test/Storage.sol:StorageUpgrade_CustomGap_V1',
26
+ 'contracts/test/Storage.sol:StorageUpgrade_CustomGap_V2_Ok',
27
+ 'contracts/test/Storage.sol:StorageUpgrade_CustomGap_V2_Bad',
28
+ 'contracts/test/Storage.sol:StorageUpgrade_CustomGap_V2_Bad2',
29
+ 'contracts/test/Storage.sol:StorageUpgrade_CustomGap_V2_Ok_Switched_Gaps',
30
+ 'contracts/test/Storage.sol:StorageUpgrade_CustomGap_V2_Bad_Switched_Gaps',
31
+ 'contracts/test/Storage.sol:StorageUpgrade_CustomGap_V2_Bad_Changed_Gap_Name',
32
+ 'contracts/test/Storage.sol:StorageUpgrade_ConsumeAndAddGap_V1',
33
+ 'contracts/test/Storage.sol:StorageUpgrade_ConsumeAndAddGap_V2',
34
+ 'contracts/test/Storage.sol:StorageUpgrade_ConsumeAndAddGap_V3',
35
+ 'contracts/test/Storage.sol:StorageUpgrade_ConsumeAndAddGap_V3b',
36
+ 'contracts/test/Storage.sol:StorageUpgrade_ConsumeAndAddGap_Storage_V1',
37
+ 'contracts/test/Storage.sol:StorageUpgrade_ConsumeAndAddGap_Storage_V2',
25
38
  ];
26
39
  test.before(async (t) => {
27
40
  const contracts = {};
@@ -103,4 +116,66 @@ test('insert vars without shrink gap (uint128)', t => {
103
116
  t.false(report.ok);
104
117
  t.snapshot(report.explain());
105
118
  });
119
+ test('custom gap - shrinkgap', t => {
120
+ const v1 = t.context.extractStorageLayout('StorageUpgrade_CustomGap_V1');
121
+ const v2 = t.context.extractStorageLayout('StorageUpgrade_CustomGap_V2_Ok');
122
+ const report = getReport(v1, v2);
123
+ t.true(report.ok);
124
+ t.is(report.explain(), '');
125
+ });
126
+ test('custom gap - insert var, did not shrink gaps', t => {
127
+ const v1 = t.context.extractStorageLayout('StorageUpgrade_CustomGap_V1');
128
+ const v2 = t.context.extractStorageLayout('StorageUpgrade_CustomGap_V2_Bad');
129
+ const report = getReport(v1, v2);
130
+ t.false(report.ok);
131
+ t.snapshot(report.explain());
132
+ });
133
+ test('custom gap - insert var, shrank only first gap', t => {
134
+ const v1 = t.context.extractStorageLayout('StorageUpgrade_CustomGap_V1');
135
+ const v2 = t.context.extractStorageLayout('StorageUpgrade_CustomGap_V2_Bad2');
136
+ const report = getReport(v1, v2);
137
+ t.false(report.ok);
138
+ t.snapshot(report.explain());
139
+ });
140
+ test('custom gap - switched gaps', t => {
141
+ const v1 = t.context.extractStorageLayout('StorageUpgrade_CustomGap_V1');
142
+ const v2 = t.context.extractStorageLayout('StorageUpgrade_CustomGap_V2_Ok_Switched_Gaps');
143
+ const report = getReport(v1, v2);
144
+ t.true(report.ok);
145
+ t.is(report.explain(), '');
146
+ });
147
+ test('custom gap - insert var, did not shrink gaps, switched gaps', t => {
148
+ const v1 = t.context.extractStorageLayout('StorageUpgrade_CustomGap_V1');
149
+ const v2 = t.context.extractStorageLayout('StorageUpgrade_CustomGap_V2_Bad_Switched_Gaps');
150
+ const report = getReport(v1, v2);
151
+ t.false(report.ok);
152
+ t.snapshot(report.explain());
153
+ });
154
+ test('custom gap - insert var, did not shrink gaps, changed first gap name', t => {
155
+ const v1 = t.context.extractStorageLayout('StorageUpgrade_CustomGap_V1');
156
+ const v2 = t.context.extractStorageLayout('StorageUpgrade_CustomGap_V2_Bad_Changed_Gap_Name');
157
+ const report = getReport(v1, v2);
158
+ t.false(report.ok);
159
+ t.snapshot(report.explain());
160
+ });
161
+ test('consume entire gap and add new gap of different size', t => {
162
+ const v1 = t.context.extractStorageLayout('StorageUpgrade_ConsumeAndAddGap_V1');
163
+ const v2 = t.context.extractStorageLayout('StorageUpgrade_ConsumeAndAddGap_V2');
164
+ const v3 = t.context.extractStorageLayout('StorageUpgrade_ConsumeAndAddGap_V3');
165
+ t.true(getReport(v1, v2).ok);
166
+ t.true(getReport(v2, v3).ok);
167
+ t.true(getReport(v1, v3).ok);
168
+ });
169
+ test('consume entire gap and add new gap of same size', t => {
170
+ const v1 = t.context.extractStorageLayout('StorageUpgrade_ConsumeAndAddGap_V1');
171
+ const v2 = t.context.extractStorageLayout('StorageUpgrade_ConsumeAndAddGap_V2');
172
+ const v3b = t.context.extractStorageLayout('StorageUpgrade_ConsumeAndAddGap_V3b');
173
+ t.true(getReport(v2, v3b).ok);
174
+ t.true(getReport(v1, v3b).ok);
175
+ });
176
+ test('consume partial gap and add new gap, storage contract pattern', t => {
177
+ const v1 = t.context.extractStorageLayout('StorageUpgrade_ConsumeAndAddGap_Storage_V1');
178
+ const v2 = t.context.extractStorageLayout('StorageUpgrade_ConsumeAndAddGap_Storage_V2');
179
+ t.true(getReport(v1, v2).ok);
180
+ });
106
181
  //# sourceMappingURL=report-gap.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"report-gap.test.js","sourceRoot":"","sources":["../../src/storage/report-gap.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"report-gap.test.js","sourceRoot":"","sources":["../../src/storage/report-gap.test.ts"],"names":[],"mappings":"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"}
@@ -50,7 +50,7 @@ function getExpectedGapSize(original, updated) {
50
50
  function suggestGapSize(original, updated) {
51
51
  const expectedSize = getExpectedGapSize(original, updated);
52
52
  if (expectedSize !== undefined) {
53
- return `Set __gap array to size ${expectedSize}`;
53
+ return `Set ${updated.label} array to size ${expectedSize}`;
54
54
  }
55
55
  }
56
56
  function explainStorageOperation(op, ctx) {
@@ -1 +1 @@
1
- {"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/storage/report.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/storage/report.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openzeppelin/upgrades-core",
3
- "version": "1.22.0",
3
+ "version": "1.23.0",
4
4
  "description": "",
5
5
  "repository": "https://github.com/OpenZeppelin/openzeppelin-upgrades/tree/master/packages/core",
6
6
  "license": "MIT",
@@ -58,5 +58,5 @@
58
58
  "proper-lockfile": "^4.1.1",
59
59
  "solidity-ast": "^0.4.15"
60
60
  },
61
- "gitHead": "14a1d3a0e8e968f9963124f4ff135b261605ced2"
61
+ "gitHead": "6c1add7138b5aaee0a37257efa8720132ba94312"
62
62
  }
package/src/provider.ts CHANGED
@@ -101,10 +101,12 @@ export const networkNames: { [chainId in number]?: string } = Object.freeze({
101
101
  3: 'ropsten',
102
102
  4: 'rinkeby',
103
103
  5: 'goerli',
104
+ 10: 'optimism',
104
105
  42: 'kovan',
105
106
  56: 'bsc',
106
107
  97: 'bsc-testnet',
107
108
  137: 'polygon',
109
+ 420: 'optimism-goerli',
108
110
  80001: 'polygon-mumbai',
109
111
  43113: 'avalanche-fuji',
110
112
  43114: 'avalanche',
@@ -91,10 +91,10 @@ export function storageFieldEnd(field: StorageField): bigint | undefined {
91
91
  return begin + BigInt(numberOfBytes);
92
92
  }
93
93
 
94
- const LAYOUTCHANGE_COST = 0;
94
+ const LAYOUTCHANGE_COST = 1;
95
95
  const FINISHGAP_COST = 1;
96
96
  const SHRINKGAP_COST = 0;
97
- const TYPECHANGE_COST = 0;
97
+ const TYPECHANGE_COST = 1;
98
98
 
99
99
  export class StorageLayoutComparator {
100
100
  hasAllowedUncheckedCustomTypes = false;
@@ -7,7 +7,7 @@ import { StorageField, storageFieldEnd } from './compare';
7
7
  * @returns true if field is a gap, otherwise false
8
8
  */
9
9
  export function isGap(field: StorageField): boolean {
10
- return field.label === '__gap' && field.type.head === 't_array';
10
+ return field.type.head === 't_array' && (field.label === '__gap' || field.label.startsWith('__gap_'));
11
11
  }
12
12
 
13
13
  /**
@@ -24,6 +24,19 @@ const testContracts = [
24
24
  'contracts/test/Storage.sol:StorageUpgrade_Gap_V2_Bad5',
25
25
  'contracts/test/Storage.sol:StorageUpgrade_MultiConsumeGap_V1',
26
26
  'contracts/test/Storage.sol:StorageUpgrade_MultiConsumeGap_V2_Ok',
27
+ 'contracts/test/Storage.sol:StorageUpgrade_CustomGap_V1',
28
+ 'contracts/test/Storage.sol:StorageUpgrade_CustomGap_V2_Ok',
29
+ 'contracts/test/Storage.sol:StorageUpgrade_CustomGap_V2_Bad',
30
+ 'contracts/test/Storage.sol:StorageUpgrade_CustomGap_V2_Bad2',
31
+ 'contracts/test/Storage.sol:StorageUpgrade_CustomGap_V2_Ok_Switched_Gaps',
32
+ 'contracts/test/Storage.sol:StorageUpgrade_CustomGap_V2_Bad_Switched_Gaps',
33
+ 'contracts/test/Storage.sol:StorageUpgrade_CustomGap_V2_Bad_Changed_Gap_Name',
34
+ 'contracts/test/Storage.sol:StorageUpgrade_ConsumeAndAddGap_V1',
35
+ 'contracts/test/Storage.sol:StorageUpgrade_ConsumeAndAddGap_V2',
36
+ 'contracts/test/Storage.sol:StorageUpgrade_ConsumeAndAddGap_V3',
37
+ 'contracts/test/Storage.sol:StorageUpgrade_ConsumeAndAddGap_V3b',
38
+ 'contracts/test/Storage.sol:StorageUpgrade_ConsumeAndAddGap_Storage_V1',
39
+ 'contracts/test/Storage.sol:StorageUpgrade_ConsumeAndAddGap_Storage_V2',
27
40
  ];
28
41
 
29
42
  test.before(async t => {
@@ -117,3 +130,77 @@ test('insert vars without shrink gap (uint128)', t => {
117
130
  t.false(report.ok);
118
131
  t.snapshot(report.explain());
119
132
  });
133
+
134
+ test('custom gap - shrinkgap', t => {
135
+ const v1 = t.context.extractStorageLayout('StorageUpgrade_CustomGap_V1');
136
+ const v2 = t.context.extractStorageLayout('StorageUpgrade_CustomGap_V2_Ok');
137
+ const report = getReport(v1, v2);
138
+ t.true(report.ok);
139
+ t.is(report.explain(), '');
140
+ });
141
+
142
+ test('custom gap - insert var, did not shrink gaps', t => {
143
+ const v1 = t.context.extractStorageLayout('StorageUpgrade_CustomGap_V1');
144
+ const v2 = t.context.extractStorageLayout('StorageUpgrade_CustomGap_V2_Bad');
145
+ const report = getReport(v1, v2);
146
+ t.false(report.ok);
147
+ t.snapshot(report.explain());
148
+ });
149
+
150
+ test('custom gap - insert var, shrank only first gap', t => {
151
+ const v1 = t.context.extractStorageLayout('StorageUpgrade_CustomGap_V1');
152
+ const v2 = t.context.extractStorageLayout('StorageUpgrade_CustomGap_V2_Bad2');
153
+ const report = getReport(v1, v2);
154
+ t.false(report.ok);
155
+ t.snapshot(report.explain());
156
+ });
157
+
158
+ test('custom gap - switched gaps', t => {
159
+ const v1 = t.context.extractStorageLayout('StorageUpgrade_CustomGap_V1');
160
+ const v2 = t.context.extractStorageLayout('StorageUpgrade_CustomGap_V2_Ok_Switched_Gaps');
161
+ const report = getReport(v1, v2);
162
+ t.true(report.ok);
163
+ t.is(report.explain(), '');
164
+ });
165
+
166
+ test('custom gap - insert var, did not shrink gaps, switched gaps', t => {
167
+ const v1 = t.context.extractStorageLayout('StorageUpgrade_CustomGap_V1');
168
+ const v2 = t.context.extractStorageLayout('StorageUpgrade_CustomGap_V2_Bad_Switched_Gaps');
169
+ const report = getReport(v1, v2);
170
+ t.false(report.ok);
171
+ t.snapshot(report.explain());
172
+ });
173
+
174
+ test('custom gap - insert var, did not shrink gaps, changed first gap name', t => {
175
+ const v1 = t.context.extractStorageLayout('StorageUpgrade_CustomGap_V1');
176
+ const v2 = t.context.extractStorageLayout('StorageUpgrade_CustomGap_V2_Bad_Changed_Gap_Name');
177
+ const report = getReport(v1, v2);
178
+ t.false(report.ok);
179
+ t.snapshot(report.explain());
180
+ });
181
+
182
+ test('consume entire gap and add new gap of different size', t => {
183
+ const v1 = t.context.extractStorageLayout('StorageUpgrade_ConsumeAndAddGap_V1');
184
+ const v2 = t.context.extractStorageLayout('StorageUpgrade_ConsumeAndAddGap_V2');
185
+ const v3 = t.context.extractStorageLayout('StorageUpgrade_ConsumeAndAddGap_V3');
186
+
187
+ t.true(getReport(v1, v2).ok);
188
+ t.true(getReport(v2, v3).ok);
189
+ t.true(getReport(v1, v3).ok);
190
+ });
191
+
192
+ test('consume entire gap and add new gap of same size', t => {
193
+ const v1 = t.context.extractStorageLayout('StorageUpgrade_ConsumeAndAddGap_V1');
194
+ const v2 = t.context.extractStorageLayout('StorageUpgrade_ConsumeAndAddGap_V2');
195
+ const v3b = t.context.extractStorageLayout('StorageUpgrade_ConsumeAndAddGap_V3b');
196
+
197
+ t.true(getReport(v2, v3b).ok);
198
+ t.true(getReport(v1, v3b).ok);
199
+ });
200
+
201
+ test('consume partial gap and add new gap, storage contract pattern', t => {
202
+ const v1 = t.context.extractStorageLayout('StorageUpgrade_ConsumeAndAddGap_Storage_V1');
203
+ const v2 = t.context.extractStorageLayout('StorageUpgrade_ConsumeAndAddGap_Storage_V2');
204
+
205
+ t.true(getReport(v1, v2).ok);
206
+ });
@@ -57,3 +57,33 @@ Generated by [AVA](https://avajs.dev).
57
57
  `file.sol:1: Layout changed for \`__gap\` (uint128[49] -> uint128[49])␊
58
58
  - Slot changed from 1 to 2␊
59
59
  > Set __gap array to size 48`
60
+
61
+ ## custom gap - insert var, did not shrink gaps
62
+
63
+ > Snapshot 1
64
+
65
+ `file.sol:1: Layout changed for \`__gap_part1\` (uint256[24] -> uint256[24])␊
66
+ - Slot changed from 1 to 2␊
67
+ > Set __gap_part1 array to size 23`
68
+
69
+ ## custom gap - insert var, shrank only first gap
70
+
71
+ > Snapshot 1
72
+
73
+ `file.sol:1: Layout changed for \`__gap_part2\` (uint256[23] -> uint256[23])␊
74
+ - Slot changed from 27 to 29␊
75
+ > Set __gap_part2 array to size 21`
76
+
77
+ ## custom gap - insert var, did not shrink gaps, switched gaps
78
+
79
+ > Snapshot 1
80
+
81
+ `file.sol:1: Renamed \`__gap_part1\` to \`__gap_part2\`␊
82
+ ␊
83
+ file.sol:1: Renamed \`__gap_part2\` to \`__gap_part1\``
84
+
85
+ ## custom gap - insert var, did not shrink gaps, changed first gap name
86
+
87
+ > Snapshot 1
88
+
89
+ 'file.sol:1: Renamed `__gap_part1` to `__gap`'
Binary file
@@ -76,7 +76,7 @@ function getExpectedGapSize(original: StorageField, updated: StorageField) {
76
76
  function suggestGapSize(original: StorageField, updated: StorageField): string | undefined {
77
77
  const expectedSize = getExpectedGapSize(original, updated);
78
78
  if (expectedSize !== undefined) {
79
- return `Set __gap array to size ${expectedSize}`;
79
+ return `Set ${updated.label} array to size ${expectedSize}`;
80
80
  }
81
81
  }
82
82