@openzeppelin/wizard 0.7.1 → 0.8.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 (41) hide show
  1. package/README.md +1 -1
  2. package/dist/account.d.ts.map +1 -1
  3. package/dist/account.js +48 -28
  4. package/dist/account.js.map +1 -1
  5. package/dist/environments/hardhat/package-lock.json +463 -521
  6. package/dist/environments/hardhat/upgradeable/package-lock.json +1282 -1055
  7. package/dist/generate/account.d.ts.map +1 -1
  8. package/dist/generate/account.js +2 -1
  9. package/dist/generate/account.js.map +1 -1
  10. package/dist/options.d.ts +3 -0
  11. package/dist/options.d.ts.map +1 -1
  12. package/dist/options.js +8 -7
  13. package/dist/options.js.map +1 -1
  14. package/dist/print.d.ts.map +1 -1
  15. package/dist/print.js +11 -11
  16. package/dist/print.js.map +1 -1
  17. package/dist/set-upgradeable.d.ts +1 -0
  18. package/dist/set-upgradeable.d.ts.map +1 -1
  19. package/dist/set-upgradeable.js +6 -0
  20. package/dist/set-upgradeable.js.map +1 -1
  21. package/dist/signer.d.ts +7 -2
  22. package/dist/signer.d.ts.map +1 -1
  23. package/dist/signer.js +45 -65
  24. package/dist/signer.js.map +1 -1
  25. package/dist/zip-foundry.d.ts.map +1 -1
  26. package/dist/zip-foundry.js +60 -65
  27. package/dist/zip-foundry.js.map +1 -1
  28. package/dist/zip-hardhat.d.ts.map +1 -1
  29. package/dist/zip-hardhat.js +8 -3
  30. package/dist/zip-hardhat.js.map +1 -1
  31. package/package.json +2 -2
  32. package/src/account.ts +55 -29
  33. package/src/environments/hardhat/package-lock.json +463 -521
  34. package/src/environments/hardhat/upgradeable/package-lock.json +1282 -1055
  35. package/src/generate/account.ts +2 -1
  36. package/src/options.ts +8 -8
  37. package/src/print.ts +31 -13
  38. package/src/set-upgradeable.ts +6 -0
  39. package/src/signer.ts +49 -70
  40. package/src/zip-foundry.ts +84 -64
  41. package/src/zip-hardhat.ts +9 -3
@@ -1 +1 @@
1
- {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../src/generate/account.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAiBjD,wBAAiB,sBAAsB,IAAI,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAE7E"}
1
+ {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../src/generate/account.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAkBjD,wBAAiB,sBAAsB,IAAI,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAE7E"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateAccountOptions = generateAccountOptions;
4
4
  const set_info_1 = require("../set-info");
5
+ const set_upgradeable_1 = require("../set-upgradeable");
5
6
  const alternatives_1 = require("./alternatives");
6
7
  const account = {
7
8
  name: ['MyAccount'],
@@ -12,7 +13,7 @@ const account = {
12
13
  batchedExecution: [false, true],
13
14
  ERC7579Modules: [false, 'AccountERC7579', 'AccountERC7579Hooked'],
14
15
  access: [false],
15
- upgradeable: [false],
16
+ upgradeable: set_upgradeable_1.upgradeableOptions,
16
17
  info: set_info_1.infoOptions,
17
18
  };
18
19
  function* generateAccountOptions() {
@@ -1 +1 @@
1
- {"version":3,"file":"account.js","sourceRoot":"","sources":["../../src/generate/account.ts"],"names":[],"mappings":";;AAiBA,wDAEC;AAlBD,0CAA0C;AAC1C,iDAAsD;AAEtD,MAAM,OAAO,GAAG;IACd,IAAI,EAAE,CAAC,WAAW,CAAC;IACnB,mBAAmB,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAU;IAC3D,YAAY,EAAE,CAAC,KAAK,EAAE,IAAI,CAAU;IACpC,aAAa,EAAE,CAAC,KAAK,EAAE,IAAI,CAAU;IACrC,MAAM,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,kBAAkB,CAAU;IACpF,gBAAgB,EAAE,CAAC,KAAK,EAAE,IAAI,CAAU;IACxC,cAAc,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,CAAU;IAC1E,MAAM,EAAE,CAAC,KAAK,CAAU;IACxB,WAAW,EAAE,CAAC,KAAK,CAAU;IAC7B,IAAI,EAAE,sBAAW;CAClB,CAAC;AAEF,QAAe,CAAC,CAAC,sBAAsB;IACrC,KAAK,CAAC,CAAC,IAAA,mCAAoB,EAAC,OAAO,CAAC,CAAC;AACvC,CAAC"}
1
+ {"version":3,"file":"account.js","sourceRoot":"","sources":["../../src/generate/account.ts"],"names":[],"mappings":";;AAkBA,wDAEC;AAnBD,0CAA0C;AAC1C,wDAAwD;AACxD,iDAAsD;AAEtD,MAAM,OAAO,GAAG;IACd,IAAI,EAAE,CAAC,WAAW,CAAC;IACnB,mBAAmB,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAU;IAC3D,YAAY,EAAE,CAAC,KAAK,EAAE,IAAI,CAAU;IACpC,aAAa,EAAE,CAAC,KAAK,EAAE,IAAI,CAAU;IACrC,MAAM,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,kBAAkB,CAAU;IACpF,gBAAgB,EAAE,CAAC,KAAK,EAAE,IAAI,CAAU;IACxC,cAAc,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,CAAU;IAC1E,MAAM,EAAE,CAAC,KAAK,CAAU;IACxB,WAAW,EAAE,oCAAkB;IAC/B,IAAI,EAAE,sBAAW;CAClB,CAAC;AAEF,QAAe,CAAC,CAAC,sBAAsB;IACrC,KAAK,CAAC,CAAC,IAAA,mCAAoB,EAAC,OAAO,CAAC,CAAC;AACvC,CAAC"}
package/dist/options.d.ts CHANGED
@@ -1,10 +1,13 @@
1
1
  import type { Contract, ReferencedContract, ImportContract } from './contract';
2
+ export declare function upgradeableName(n: string): string;
3
+ export declare function upgradeableImport(p: ImportContract): ImportContract;
2
4
  export interface Options {
3
5
  transformImport?: (parent: ImportContract) => ImportContract;
4
6
  }
5
7
  export interface Helpers extends Required<Options> {
6
8
  upgradeable: boolean;
7
9
  transformName: (name: ReferencedContract) => string;
10
+ transformImport: (name: ImportContract) => ImportContract;
8
11
  }
9
12
  export declare function withHelpers(contract: Contract, opts?: Options): Helpers;
10
13
  //# sourceMappingURL=options.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAyB/E,MAAM,WAAW,OAAO;IACtB,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,cAAc,CAAC;CAC9D;AAED,MAAM,WAAW,OAAQ,SAAQ,QAAQ,CAAC,OAAO,CAAC;IAChD,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,MAAM,CAAC;CACrD;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,GAAE,OAAY,GAAG,OAAO,CAY3E"}
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG/E,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,UAMxC;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,cAAc,GAAG,cAAc,CAYnE;AAED,MAAM,WAAW,OAAO;IACtB,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,cAAc,CAAC;CAC9D;AAED,MAAM,WAAW,OAAQ,SAAQ,QAAQ,CAAC,OAAO,CAAC;IAChD,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,MAAM,CAAC;IACpD,eAAe,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,cAAc,CAAC;CAC3D;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,GAAE,OAAY,GAAG,OAAO,CAW3E"}
package/dist/options.js CHANGED
@@ -3,18 +3,20 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.upgradeableName = upgradeableName;
7
+ exports.upgradeableImport = upgradeableImport;
6
8
  exports.withHelpers = withHelpers;
7
9
  const path_1 = __importDefault(require("path"));
8
10
  const infer_transpiled_1 = require("./infer-transpiled");
9
- const upgradeableName = (n) => {
11
+ function upgradeableName(n) {
10
12
  if (n === 'Initializable') {
11
13
  return n;
12
14
  }
13
15
  else {
14
16
  return n.replace(/(Upgradeable)?(?=\.|$)/, 'Upgradeable');
15
17
  }
16
- };
17
- const upgradeableImport = (p) => {
18
+ }
19
+ function upgradeableImport(p) {
18
20
  const { dir, ext, name } = path_1.default.parse(p.path);
19
21
  // Use path.posix to get forward slashes
20
22
  return {
@@ -26,14 +28,13 @@ const upgradeableImport = (p) => {
26
28
  name: upgradeableName(name), // Solidity file name
27
29
  }),
28
30
  };
29
- };
31
+ }
30
32
  function withHelpers(contract, opts = {}) {
31
33
  const contractUpgradeable = contract.upgradeable;
32
- const transformName = (n) => contractUpgradeable && (0, infer_transpiled_1.inferTranspiled)(n) ? upgradeableName(n.name) : n.name;
33
34
  return {
34
35
  upgradeable: contractUpgradeable,
35
- transformName,
36
- transformImport: p1 => {
36
+ transformName: (n) => contractUpgradeable && (0, infer_transpiled_1.inferTranspiled)(n) ? upgradeableName(n.name) : n.name,
37
+ transformImport: (p1) => {
37
38
  var _a, _b;
38
39
  const p2 = contractUpgradeable && (0, infer_transpiled_1.inferTranspiled)(p1) ? upgradeableImport(p1) : p1;
39
40
  return (_b = (_a = opts.transformImport) === null || _a === void 0 ? void 0 : _a.call(opts, p2)) !== null && _b !== void 0 ? _b : p2;
@@ -1 +1 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":";;;;;AAoCA,kCAYC;AAhDD,gDAAwB;AAGxB,yDAAqD;AAErD,MAAM,eAAe,GAAG,CAAC,CAAS,EAAE,EAAE;IACpC,IAAI,CAAC,KAAK,eAAe,EAAE,CAAC;QAC1B,OAAO,CAAC,CAAC;IACX,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,CAAC,OAAO,CAAC,wBAAwB,EAAE,aAAa,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,CAAiB,EAAkB,EAAE;IAC9D,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,cAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC9C,wCAAwC;IACxC,OAAO;QACL,GAAG,CAAC;QACJ,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,gBAAgB;QAC/C,IAAI,EAAE,cAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YACtB,GAAG;YACH,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,2BAA2B,EAAE,qCAAqC,CAAC;YACpF,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,qBAAqB;SACnD,CAAC;KACH,CAAC;AACJ,CAAC,CAAC;AAWF,SAAgB,WAAW,CAAC,QAAkB,EAAE,OAAgB,EAAE;IAChE,MAAM,mBAAmB,GAAG,QAAQ,CAAC,WAAW,CAAC;IACjD,MAAM,aAAa,GAAG,CAAC,CAAqB,EAAE,EAAE,CAC9C,mBAAmB,IAAI,IAAA,kCAAe,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/E,OAAO;QACL,WAAW,EAAE,mBAAmB;QAChC,aAAa;QACb,eAAe,EAAE,EAAE,CAAC,EAAE;;YACpB,MAAM,EAAE,GAAG,mBAAmB,IAAI,IAAA,kCAAe,EAAC,EAAE,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACnF,OAAO,MAAA,MAAA,IAAI,CAAC,eAAe,qDAAG,EAAE,CAAC,mCAAI,EAAE,CAAC;QAC1C,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":";;;;;AAKA,0CAMC;AAED,8CAYC;AAYD,kCAWC;AAhDD,gDAAwB;AAGxB,yDAAqD;AAErD,SAAgB,eAAe,CAAC,CAAS;IACvC,IAAI,CAAC,KAAK,eAAe,EAAE,CAAC;QAC1B,OAAO,CAAC,CAAC;IACX,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,CAAC,OAAO,CAAC,wBAAwB,EAAE,aAAa,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AAED,SAAgB,iBAAiB,CAAC,CAAiB;IACjD,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,cAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC9C,wCAAwC;IACxC,OAAO;QACL,GAAG,CAAC;QACJ,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,gBAAgB;QAC/C,IAAI,EAAE,cAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YACtB,GAAG;YACH,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,2BAA2B,EAAE,qCAAqC,CAAC;YACpF,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,qBAAqB;SACnD,CAAC;KACH,CAAC;AACJ,CAAC;AAYD,SAAgB,WAAW,CAAC,QAAkB,EAAE,OAAgB,EAAE;IAChE,MAAM,mBAAmB,GAAG,QAAQ,CAAC,WAAW,CAAC;IACjD,OAAO;QACL,WAAW,EAAE,mBAAmB;QAChC,aAAa,EAAE,CAAC,CAAqB,EAAE,EAAE,CACvC,mBAAmB,IAAI,IAAA,kCAAe,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;QAC9E,eAAe,EAAE,CAAC,EAAkB,EAAE,EAAE;;YACtC,MAAM,EAAE,GAAG,mBAAmB,IAAI,IAAA,kCAAe,EAAC,EAAE,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACnF,OAAO,MAAA,MAAA,IAAI,CAAC,eAAe,qDAAG,EAAE,CAAC,mCAAI,EAAE,CAAC;QAC1C,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"print.d.ts","sourceRoot":"","sources":["../src/print.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EAIR,KAAK,EAGN,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,OAAO,EAAW,MAAM,WAAW,CAAC;AAalD,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAkCxE;AA8FD,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAkB/C"}
1
+ {"version":3,"file":"print.d.ts","sourceRoot":"","sources":["../src/print.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EAIR,KAAK,EAGN,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,OAAO,EAAW,MAAM,WAAW,CAAC;AAalD,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAkCxE;AAgHD,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAkB/C"}
package/dist/print.js CHANGED
@@ -55,19 +55,19 @@ function printConstructor(contract, helpers) {
55
55
  const hasConstructorCode = contract.constructorCode.length > 0;
56
56
  const parentsWithInitializers = contract.parents.filter(hasInitializer);
57
57
  if (hasParentParams || hasConstructorCode || (helpers.upgradeable && parentsWithInitializers.length > 0)) {
58
- const parents = parentsWithInitializers.flatMap(p => printParentConstructor(p, helpers));
59
- const modifiers = helpers.upgradeable ? ['public initializer'] : parents;
60
- const args = contract.constructorArgs.map(a => printArgument(a, helpers));
61
- const body = helpers.upgradeable
62
- ? (0, format_lines_1.spaceBetween)(parents.map(p => p + ';'), contract.constructorCode)
63
- : contract.constructorCode;
64
- const head = helpers.upgradeable ? 'function initialize' : 'constructor';
65
- const constructor = printFunction2([], head, args, modifiers, body);
66
- if (!helpers.upgradeable) {
67
- return constructor;
58
+ if (helpers.upgradeable) {
59
+ const upgradeableParents = parentsWithInitializers.filter(p => (0, infer_transpiled_1.inferTranspiled)(p.contract));
60
+ const nonUpgradeableParents = contract.parents.filter(p => !(0, infer_transpiled_1.inferTranspiled)(p.contract));
61
+ const constructor = printFunction2([
62
+ nonUpgradeableParents.length > 0
63
+ ? '/// @custom:oz-upgrades-unsafe-allow-reachable constructor'
64
+ : '/// @custom:oz-upgrades-unsafe-allow constructor',
65
+ ], 'constructor', [], nonUpgradeableParents.flatMap(p => printParentConstructor(p, helpers)), ['_disableInitializers();']);
66
+ const initializer = printFunction2([], 'function initialize', contract.constructorArgs.map(a => printArgument(a, helpers)), ['public', 'initializer'], (0, format_lines_1.spaceBetween)(upgradeableParents.flatMap(p => printParentConstructor(p, helpers)).map(p => p + ';'), contract.constructorCode));
67
+ return (0, format_lines_1.spaceBetween)(constructor, upgradeableParents.length > 0 ? initializer : []);
68
68
  }
69
69
  else {
70
- return (0, format_lines_1.spaceBetween)(DISABLE_INITIALIZERS, constructor);
70
+ return printFunction2([], 'constructor', contract.constructorArgs.map(a => printArgument(a, helpers)), contract.parents.flatMap(p => printParentConstructor(p, helpers)), contract.constructorCode);
71
71
  }
72
72
  }
73
73
  else if (!helpers.upgradeable) {
package/dist/print.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"print.js","sourceRoot":"","sources":["../src/print.ts"],"names":[],"mappings":";;;;;AAsBA,sCAkCC;AA8FD,gCAkBC;AA9JD,uCAAwC;AAGxC,uDAAiE;AACjE,mDAA+C;AAC/C,oFAAuD;AACvD,yDAAqD;AACrD,6CAA4D;AAC5D,+CAAwD;AACxD,iEAAsE;AACtE,2FAAwF;AAExF,SAAgB,aAAa,CAAC,QAAkB,EAAE,IAAc;IAC9D,MAAM,OAAO,GAAG,IAAA,qBAAW,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAE5C,MAAM,GAAG,GAAG,IAAA,sBAAS,EAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAEnG,MAAM,YAAY,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE1D,OAAO,IAAA,0BAAW,EAChB,GAAG,IAAA,2BAAY,EACb;QACE,+BAA+B,QAAQ,CAAC,OAAO,EAAE;QACjD,8BAA8B,CAAC,QAAQ,CAAC;QACxC,oBAAoB,+BAAgB,GAAG;KACxC,EAED,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,EAEvC;QACE,GAAG,gBAAgB,CAAC,QAAQ,CAAC,WAAW,CAAC;QACzC,CAAC,YAAY,QAAQ,CAAC,IAAI,EAAE,EAAE,GAAG,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAEpF,IAAA,2BAAY,EACV,QAAQ,CAAC,SAAS,EAClB,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,EACnC,GAAG,GAAG,CAAC,IAAI,EACX,GAAG,GAAG,CAAC,SAAS,EAChB,YAAY,CAAC,CAAC,CAAC,CAAC,gEAAgE,CAAC,CAAC,CAAC,CAAC,EAAE,EACtF,GAAG,GAAG,CAAC,QAAQ,CAChB;QAED,GAAG;KACJ,CACF,CACF,CAAC;AACJ,CAAC;AAED,SAAS,8BAA8B,CAAC,QAAkB;IACxD,IAAI,MAAM,GAAG,6CAA6C,mCAAyB,EAAE,CAAC;IACtF,IAAI,IAAA,6CAAyB,EAAC,QAAQ,CAAC,EAAE,CAAC;QACxC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAA,+DAA8B,GAAE,CAAC;YAChD,MAAM,IAAI,mCAAmC,MAAM,EAAE,CAAC;QACxD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAkB,EAAE,EAAE,aAAa,EAAW;IACtE,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACnF,CAAC;SAAM,CAAC;QACN,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAkB,EAAE,OAAgB;IAC5D,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACxE,MAAM,kBAAkB,GAAG,QAAQ,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;IAC/D,MAAM,uBAAuB,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACxE,IAAI,eAAe,IAAI,kBAAkB,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,uBAAuB,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;QACzG,MAAM,OAAO,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QACzF,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACzE,MAAM,IAAI,GAAG,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1E,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW;YAC9B,CAAC,CAAC,IAAA,2BAAY,EACV,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,EACzB,QAAQ,CAAC,eAAe,CACzB;YACH,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC7B,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,aAAa,CAAC;QACzE,MAAM,WAAW,GAAG,cAAc,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QACpE,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YACzB,OAAO,WAAW,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,OAAO,IAAA,2BAAY,EAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;SAAM,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAChC,OAAO,EAAE,CAAC;IACZ,CAAC;SAAM,CAAC;QACN,OAAO,oBAAoB,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,MAAM,oBAAoB,GAAG;IAC3B,kDAAkD;IAClD,iBAAiB;IACjB,CAAC,yBAAyB,CAAC;IAC3B,GAAG;CACJ,CAAC;AAEF,SAAS,cAAc,CAAC,MAAc;IACpC,UAAU;IACV,4DAA4D;IAC5D,+CAA+C;IAC/C,OAAO,CAAC,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC3D,CAAC;AAID,sEAAsE;AACtE,SAAS,eAAe,CAAC,QAAkB;IACzC,MAAM,GAAG,GAAoB,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAEvE,KAAK,MAAM,EAAE,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;QACpC,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpB,CAAC;aAAM,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,sBAAsB,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAU,EAAE,OAAgB;IAC5E,MAAM,aAAa,GAAG,OAAO,CAAC,WAAW,IAAI,IAAA,kCAAe,EAAC,QAAQ,CAAC,CAAC;IACvE,MAAM,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;IACrE,IAAI,aAAa,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvC,OAAO,CAAC,EAAE,GAAG,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;IAC9D,CAAC;SAAM,CAAC;QACN,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAgB,UAAU,CAAC,KAAY;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;YACnB,OAAO,KAAK,CAAC,GAAG,CAAC;QACnB,CAAC;aAAM,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;YAC3B,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,CAAC;QAC1D,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACrC,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,GAAG,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,IAAA,+BAAoB,EAAC,KAAK,CAAC,CAAC;IACrC,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,EAAoB,EAAE,OAAgB;;IAC3D,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAElC,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QAC5F,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,SAAS,GAAa,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IAEtC,IAAI,EAAE,CAAC,UAAU,KAAK,YAAY,EAAE,CAAC;QACnC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QAC3B,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7B,CAAC;SAAM,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAChC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChF,CAAC;IAED,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAEhC,IAAI,MAAA,EAAE,CAAC,OAAO,0CAAE,MAAM,EAAE,CAAC;QACvB,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAE1B,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QACtC,MAAM,SAAS,GAAG,SAAS,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAC9E,IAAI,CAAC,IAAI,CAAC,CAAA,MAAA,EAAE,CAAC,OAAO,0CAAE,MAAM,EAAC,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1C,OAAO,cAAc,CACnB,EAAE,CAAC,QAAQ,EACX,WAAW,GAAG,EAAE,CAAC,IAAI,EACrB,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAC3C,SAAS,EACT,IAAI,CACL,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,yCAAyC;AACzC,+CAA+C;AAC/C,SAAS,cAAc,CACrB,QAAkB,EAClB,UAAkB,EAClB,IAAc,EACd,SAAmB,EACnB,IAAa;IAEb,MAAM,EAAE,GAAY,CAAC,GAAG,QAAQ,CAAC,CAAC;IAElC,MAAM,aAAa,GAAG,CAAC,UAAU,EAAE,GAAG,IAAI,EAAE,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAErG,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IAE5C,IAAI,aAAa,IAAI,EAAE,EAAE,CAAC;QACxB,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACjF,CAAC;SAAM,CAAC;QACN,EAAE,CAAC,IAAI,CAAC,GAAG,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,aAAa,CAAC,GAAqB,EAAE,EAAE,aAAa,EAAW;IACtE,IAAI,IAAY,CAAC;IACjB,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACjC,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,oEAAoE;YACpE,QAAQ,GAAG,CAAC,IAAI,4DAA4D,CAAC;QAC/E,CAAC;QACD,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IAClB,CAAC;SAAM,CAAC;QACN,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAkB;IAC1C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,OAAO,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,YAAY,CAAC,OAAyB,EAAE,OAAgB;IAC/D,uBAAuB;IACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACpB,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI;YAAE,OAAO,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI;YAAE,OAAO,CAAC,CAAC;QAC9B,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QACd,MAAM,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAClD,KAAK,CAAC,IAAI,CAAC,WAAW,cAAc,CAAC,IAAI,WAAW,cAAc,CAAC,IAAI,IAAI,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"print.js","sourceRoot":"","sources":["../src/print.ts"],"names":[],"mappings":"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"}
@@ -4,4 +4,5 @@ export declare const upgradeableOptions: readonly [false, "transparent", "uups"]
4
4
  export type Upgradeable = (typeof upgradeableOptions)[number];
5
5
  export declare function setUpgradeable(c: ContractBuilder, upgradeable: Upgradeable, access: Access): void;
6
6
  export declare function setUpgradeableGovernor(c: ContractBuilder, upgradeable: Upgradeable): void;
7
+ export declare function setUpgradeableAccount(c: ContractBuilder, upgradeable: Upgradeable): void;
7
8
  //# sourceMappingURL=set-upgradeable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"set-upgradeable.d.ts","sourceRoot":"","sources":["../src/set-upgradeable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAInD,eAAO,MAAM,kBAAkB,yCAA0C,CAAC;AAE1E,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAyC9D,wBAAgB,cAAc,CAAC,CAAC,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,QAI1F;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,QAIlF"}
1
+ {"version":3,"file":"set-upgradeable.d.ts","sourceRoot":"","sources":["../src/set-upgradeable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAInD,eAAO,MAAM,kBAAkB,yCAA0C,CAAC;AAE1E,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAyC9D,wBAAgB,cAAc,CAAC,CAAC,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,QAI1F;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,QAIlF;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,QAIjF"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.upgradeableOptions = void 0;
4
4
  exports.setUpgradeable = setUpgradeable;
5
5
  exports.setUpgradeableGovernor = setUpgradeableGovernor;
6
+ exports.setUpgradeableAccount = setUpgradeableAccount;
6
7
  const set_access_control_1 = require("./set-access-control");
7
8
  const define_functions_1 = require("./utils/define-functions");
8
9
  exports.upgradeableOptions = [false, 'transparent', 'uups'];
@@ -45,6 +46,11 @@ function setUpgradeableGovernor(c, upgradeable) {
45
46
  c.addModifier('onlyGovernance', functions._authorizeUpgrade);
46
47
  });
47
48
  }
49
+ function setUpgradeableAccount(c, upgradeable) {
50
+ setUpgradeableBase(c, upgradeable, () => {
51
+ c.addModifier('onlyEntryPointOrSelf', functions._authorizeUpgrade);
52
+ });
53
+ }
48
54
  const functions = (0, define_functions_1.defineFunctions)({
49
55
  _authorizeUpgrade: {
50
56
  args: [{ name: 'newImplementation', type: 'address' }],
@@ -1 +1 @@
1
- {"version":3,"file":"set-upgradeable.js","sourceRoot":"","sources":["../src/set-upgradeable.ts"],"names":[],"mappings":";;;AAgDA,wCAIC;AAED,wDAIC;AAxDD,6DAA4D;AAC5D,+DAA2D;AAE9C,QAAA,kBAAkB,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,CAAU,CAAC;AAI1E,SAAS,kBAAkB,CACzB,CAAkB,EAClB,WAAwB,EACxB,gCAA4C;IAE5C,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;QAC1B,OAAO;IACT,CAAC;IAED,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC;IAErB,CAAC,CAAC,SAAS,CAAC;QACV,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,uDAAuD;KAC9D,CAAC,CAAC;IAEH,QAAQ,WAAW,EAAE,CAAC;QACpB,KAAK,aAAa;YAChB,MAAM;QAER,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,gCAAgC,EAAE,CAAC;YACnC,MAAM,eAAe,GAAG;gBACtB,IAAI,EAAE,iBAAiB;gBACvB,IAAI,EAAE,yDAAyD;aAChE,CAAC;YACF,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;YAC7B,CAAC,CAAC,WAAW,CAAC,eAAe,EAAE,SAAS,CAAC,iBAAiB,CAAC,CAAC;YAC5D,CAAC,CAAC,eAAe,CAAC,EAAE,EAAE,SAAS,CAAC,iBAAiB,CAAC,CAAC;YACnD,MAAM;QACR,CAAC;QAED,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,CAAC,GAAU,WAAW,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAgB,cAAc,CAAC,CAAkB,EAAE,WAAwB,EAAE,MAAc;IACzF,kBAAkB,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE;QACtC,IAAA,yCAAoB,EAAC,CAAC,EAAE,SAAS,CAAC,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IACvF,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,sBAAsB,CAAC,CAAkB,EAAE,WAAwB;IACjF,kBAAkB,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE;QACtC,CAAC,CAAC,WAAW,CAAC,gBAAgB,EAAE,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,SAAS,GAAG,IAAA,kCAAe,EAAC;IAChC,iBAAiB,EAAE;QACjB,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACtD,IAAI,EAAE,UAAU;KACjB;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"set-upgradeable.js","sourceRoot":"","sources":["../src/set-upgradeable.ts"],"names":[],"mappings":";;;AAgDA,wCAIC;AAED,wDAIC;AAED,sDAIC;AA9DD,6DAA4D;AAC5D,+DAA2D;AAE9C,QAAA,kBAAkB,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,CAAU,CAAC;AAI1E,SAAS,kBAAkB,CACzB,CAAkB,EAClB,WAAwB,EACxB,gCAA4C;IAE5C,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;QAC1B,OAAO;IACT,CAAC;IAED,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC;IAErB,CAAC,CAAC,SAAS,CAAC;QACV,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,uDAAuD;KAC9D,CAAC,CAAC;IAEH,QAAQ,WAAW,EAAE,CAAC;QACpB,KAAK,aAAa;YAChB,MAAM;QAER,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,gCAAgC,EAAE,CAAC;YACnC,MAAM,eAAe,GAAG;gBACtB,IAAI,EAAE,iBAAiB;gBACvB,IAAI,EAAE,yDAAyD;aAChE,CAAC;YACF,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;YAC7B,CAAC,CAAC,WAAW,CAAC,eAAe,EAAE,SAAS,CAAC,iBAAiB,CAAC,CAAC;YAC5D,CAAC,CAAC,eAAe,CAAC,EAAE,EAAE,SAAS,CAAC,iBAAiB,CAAC,CAAC;YACnD,MAAM;QACR,CAAC;QAED,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,CAAC,GAAU,WAAW,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAgB,cAAc,CAAC,CAAkB,EAAE,WAAwB,EAAE,MAAc;IACzF,kBAAkB,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE;QACtC,IAAA,yCAAoB,EAAC,CAAC,EAAE,SAAS,CAAC,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IACvF,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,sBAAsB,CAAC,CAAkB,EAAE,WAAwB;IACjF,kBAAkB,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE;QACtC,CAAC,CAAC,WAAW,CAAC,gBAAgB,EAAE,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,qBAAqB,CAAC,CAAkB,EAAE,WAAwB;IAChF,kBAAkB,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE;QACtC,CAAC,CAAC,WAAW,CAAC,sBAAsB,EAAE,SAAS,CAAC,iBAAiB,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,SAAS,GAAG,IAAA,kCAAe,EAAC;IAChC,iBAAiB,EAAE;QACjB,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACtD,IAAI,EAAE,UAAU;KACjB;CACF,CAAC,CAAC"}
package/dist/signer.d.ts CHANGED
@@ -1,7 +1,8 @@
1
1
  import type { ContractBuilder } from './contract';
2
+ import type { Upgradeable } from './set-upgradeable';
2
3
  export declare const SignerOptions: readonly [false, "ERC7702", "ECDSA", "P256", "RSA", "Multisig", "MultisigWeighted"];
3
4
  export type SignerOptions = (typeof SignerOptions)[number];
4
- export declare function addSigner(c: ContractBuilder, signer: SignerOptions): void;
5
+ export declare function addSigner(c: ContractBuilder, signer: SignerOptions, upgradeable: Upgradeable): void;
5
6
  export declare const signers: {
6
7
  ERC7702: {
7
8
  name: string;
@@ -28,5 +29,9 @@ export declare const signers: {
28
29
  path: string;
29
30
  };
30
31
  };
31
- export declare const signerFunctions: Record<"initializeECDSA" | "initializeP256" | "initializeRSA" | "initializeMultisig" | "initializeMultisigWeighted" | "_rawSignatureValidation", import("./contract").BaseFunction>;
32
+ export declare const signerArgs: Record<Exclude<SignerOptions, false | 'ERC7702'>, {
33
+ name: string;
34
+ type: string;
35
+ }[]>;
36
+ export declare const signerFunctions: Record<"_rawSignatureValidation", import("./contract").BaseFunction>;
32
37
  //# sourceMappingURL=signer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlD,eAAO,MAAM,aAAa,qFAAsF,CAAC;AACjH,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D,wBAAgB,SAAS,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CAwCzE;AAED,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;CAyBnB,CAAC;AAEF,eAAO,MAAM,eAAe,qLA2C1B,CAAC"}
1
+ {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,eAAO,MAAM,aAAa,qFAAsF,CAAC;AACjH,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D,wBAAgB,SAAS,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,GAAG,IAAI,CA6BnG;AAED,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;CAyBnB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,GAAG,SAAS,CAAC,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAmB1G,CAAC;AAEF,eAAO,MAAM,eAAe,sEAU1B,CAAC"}
package/dist/signer.js CHANGED
@@ -1,103 +1,83 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.signerFunctions = exports.signers = exports.SignerOptions = void 0;
3
+ exports.signerFunctions = exports.signerArgs = exports.signers = exports.SignerOptions = void 0;
4
4
  exports.addSigner = addSigner;
5
+ const error_1 = require("./error");
5
6
  const define_functions_1 = require("./utils/define-functions");
6
7
  exports.SignerOptions = [false, 'ERC7702', 'ECDSA', 'P256', 'RSA', 'Multisig', 'MultisigWeighted'];
7
- function addSigner(c, signer) {
8
+ function addSigner(c, signer, upgradeable) {
8
9
  if (!signer)
9
10
  return;
10
- c.addParent(exports.signers[signer]);
11
- c.addOverride({ name: signer === 'MultisigWeighted' ? exports.signers.Multisig.name : exports.signers[signer].name }, exports.signerFunctions._rawSignatureValidation);
12
- // ERC-7702 doesn't require initialization
13
- if (signer === 'ERC7702')
14
- return;
15
- c.addParent({
16
- name: 'Initializable',
17
- path: '@openzeppelin/contracts/proxy/utils/Initializable.sol',
18
- });
19
- // Add locking constructor
20
- c.addNatspecTag('@custom:oz-upgrades-unsafe-allow', 'constructor');
21
- c.addConstructorCode(`_disableInitializers();`);
22
- // Add initializer
23
- const fn = exports.signerFunctions[`initialize${signer}`];
24
- c.addModifier('initializer', fn);
11
+ const signerName = signer === 'MultisigWeighted' ? exports.signers.Multisig.name : exports.signers[signer].name;
12
+ c.addOverride({ name: signerName }, exports.signerFunctions._rawSignatureValidation);
25
13
  switch (signer) {
26
- case 'Multisig':
27
- c.addFunctionCode(`_addSigners(${fn.args[0].name});`, fn);
28
- c.addFunctionCode(`_setThreshold(${fn.args[1].name});`, fn);
29
- break;
30
- case 'MultisigWeighted':
31
- c.addFunctionCode(`_addSigners(${fn.args[0].name});`, fn);
32
- c.addFunctionCode(`_setSignerWeights(${fn.args[0].name}, ${fn.args[1].name});`, fn);
33
- c.addFunctionCode(`_setThreshold(${fn.args[2].name});`, fn);
14
+ case 'ERC7702':
15
+ c.addParent(exports.signers[signer]);
16
+ if (upgradeable) {
17
+ throw new error_1.OptionsError({
18
+ erc7702: 'EOAs can upgrade by redelegating to a new account',
19
+ upgradeable: 'EOAs can upgrade by redelegating to a new account',
20
+ });
21
+ }
34
22
  break;
35
23
  case 'ECDSA':
36
24
  case 'P256':
37
25
  case 'RSA':
38
- c.addFunctionCode(`_setSigner(${fn.args.map(({ name }) => name).join(', ')});`, fn);
26
+ case 'Multisig':
27
+ case 'MultisigWeighted': {
28
+ exports.signerArgs[signer].forEach(arg => c.addConstructorArgument(arg));
29
+ c.addParent(exports.signers[signer], exports.signerArgs[signer].map(arg => ({ lit: arg.name })));
30
+ break;
31
+ }
39
32
  }
40
33
  }
41
34
  exports.signers = {
42
35
  ERC7702: {
43
36
  name: 'SignerERC7702',
44
- path: '@openzeppelin/community-contracts/utils/cryptography/SignerERC7702.sol',
37
+ path: '@openzeppelin/contracts/utils/cryptography/signers/SignerERC7702.sol',
45
38
  },
46
39
  ECDSA: {
47
40
  name: 'SignerECDSA',
48
- path: '@openzeppelin/community-contracts/utils/cryptography/SignerECDSA.sol',
41
+ path: '@openzeppelin/contracts/utils/cryptography/signers/SignerECDSA.sol',
49
42
  },
50
43
  P256: {
51
44
  name: 'SignerP256',
52
- path: '@openzeppelin/community-contracts/utils/cryptography/SignerP256.sol',
45
+ path: '@openzeppelin/contracts/utils/cryptography/signers/SignerP256.sol',
53
46
  },
54
47
  RSA: {
55
48
  name: 'SignerRSA',
56
- path: '@openzeppelin/community-contracts/utils/cryptography/SignerRSA.sol',
49
+ path: '@openzeppelin/contracts/utils/cryptography/signers/SignerRSA.sol',
57
50
  },
58
51
  Multisig: {
59
52
  name: 'MultiSignerERC7913',
60
- path: '@openzeppelin/community-contracts/utils/cryptography/MultiSignerERC7913.sol',
53
+ path: '@openzeppelin/contracts/utils/cryptography/signers/MultiSignerERC7913.sol',
61
54
  },
62
55
  MultisigWeighted: {
63
56
  name: 'MultiSignerERC7913Weighted',
64
- path: '@openzeppelin/community-contracts/utils/cryptography/MultiSignerERC7913Weighted.sol',
57
+ path: '@openzeppelin/contracts/utils/cryptography/signers/MultiSignerERC7913Weighted.sol',
65
58
  },
66
59
  };
60
+ exports.signerArgs = {
61
+ ECDSA: [{ name: 'signer', type: 'address' }],
62
+ P256: [
63
+ { name: 'qx', type: 'bytes32' },
64
+ { name: 'qy', type: 'bytes32' },
65
+ ],
66
+ RSA: [
67
+ { name: 'e', type: 'bytes memory' },
68
+ { name: 'n', type: 'bytes memory' },
69
+ ],
70
+ Multisig: [
71
+ { name: 'signers', type: 'bytes[] memory' },
72
+ { name: 'threshold', type: 'uint64' },
73
+ ],
74
+ MultisigWeighted: [
75
+ { name: 'signers', type: 'bytes[] memory' },
76
+ { name: 'weights', type: 'uint64[] memory' },
77
+ { name: 'threshold', type: 'uint64' },
78
+ ],
79
+ };
67
80
  exports.signerFunctions = (0, define_functions_1.defineFunctions)({
68
- initializeECDSA: {
69
- kind: 'public',
70
- args: [{ name: 'signer', type: 'address' }],
71
- },
72
- initializeP256: {
73
- kind: 'public',
74
- args: [
75
- { name: 'qx', type: 'bytes32' },
76
- { name: 'qy', type: 'bytes32' },
77
- ],
78
- },
79
- initializeRSA: {
80
- kind: 'public',
81
- args: [
82
- { name: 'e', type: 'bytes memory' },
83
- { name: 'n', type: 'bytes memory' },
84
- ],
85
- },
86
- initializeMultisig: {
87
- kind: 'public',
88
- args: [
89
- { name: 'signers', type: 'bytes[] memory' },
90
- { name: 'threshold', type: 'uint256' },
91
- ],
92
- },
93
- initializeMultisigWeighted: {
94
- kind: 'public',
95
- args: [
96
- { name: 'signers', type: 'bytes[] memory' },
97
- { name: 'weights', type: 'uint256[] memory' },
98
- { name: 'threshold', type: 'uint256' },
99
- ],
100
- },
101
81
  _rawSignatureValidation: {
102
82
  kind: 'internal',
103
83
  args: [
@@ -1 +1 @@
1
- {"version":3,"file":"signer.js","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signer.js","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"zip-foundry.d.ts","sourceRoot":"","sources":["../src/zip-foundry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAmS3C,wBAAsB,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,cAAc,kBAUlE"}
1
+ {"version":3,"file":"zip-foundry.d.ts","sourceRoot":"","sources":["../src/zip-foundry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAuT3C,wBAAsB,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,cAAc,kBAUlE"}
@@ -12,47 +12,72 @@ const format_lines_1 = require("./utils/format-lines");
12
12
  function getHeader(c) {
13
13
  return [`// SPDX-License-Identifier: ${c.license}`, `pragma solidity ^${solidity_version_json_1.default};`];
14
14
  }
15
- const test = (c, opts) => {
16
- return (0, format_lines_1.formatLinesWithSpaces)(2, ...(0, format_lines_1.spaceBetween)(getHeader(c), getImports(c), getTestCase(c)));
17
- function getImports(c) {
18
- const result = ['import {Test} from "forge-std/Test.sol";'];
19
- if (c.upgradeable) {
20
- result.push('import {Upgrades} from "openzeppelin-foundry-upgrades/Upgrades.sol";');
15
+ function shouldUseUnsafeAllowConstructor(c) {
16
+ // TODO: remove that selector when the upgrades plugin supports @custom:oz-upgrades-unsafe-allow-reachable
17
+ return c.parents.find(p => ['EIP712'].includes(p.contract.name)) !== undefined;
18
+ }
19
+ function getImports(c, prepopulateImports) {
20
+ const result = [...prepopulateImports];
21
+ if (c.upgradeable) {
22
+ const unsafeAllowConstructor = shouldUseUnsafeAllowConstructor(c);
23
+ result.push(unsafeAllowConstructor
24
+ ? 'import {Upgrades, Options} from "openzeppelin-foundry-upgrades/Upgrades.sol";'
25
+ : 'import {Upgrades} from "openzeppelin-foundry-upgrades/Upgrades.sol";');
26
+ }
27
+ result.push(`import {${c.name}} from "src/${c.name}.sol";`);
28
+ return result;
29
+ }
30
+ function getDeploymentCode(c, args, declareContractVariable, upgradeable) {
31
+ const unsafeAllowConstructor = shouldUseUnsafeAllowConstructor(c);
32
+ const instanceDeclaration = declareContractVariable ? `${c.name} ` : '';
33
+ switch (upgradeable) {
34
+ case 'transparent':
35
+ return printDeployProxyAndAssignInstance('deployTransparentProxy', true);
36
+ case 'uups':
37
+ return printDeployProxyAndAssignInstance('deployUUPSProxy', false);
38
+ default:
39
+ return [`${instanceDeclaration}instance = new ${c.name}(${args.join(', ')});`];
40
+ }
41
+ function printDeployProxyAndAssignInstance(deployProxyFunctionName, includeInitialOwner) {
42
+ const deployProxyArgs = [`"${c.name}.sol"`];
43
+ if (includeInitialOwner) {
44
+ deployProxyArgs.push('initialOwner');
45
+ }
46
+ deployProxyArgs.push(`abi.encodeCall(${c.name}.initialize, (${args.join(', ')}))`);
47
+ if (unsafeAllowConstructor) {
48
+ deployProxyArgs.push('opts');
21
49
  }
22
- result.push(`import {${c.name}} from "src/${c.name}.sol";`);
23
- return result;
50
+ for (let i = 0; i < deployProxyArgs.length - 1; i++) {
51
+ deployProxyArgs[i] += ',';
52
+ }
53
+ return [
54
+ unsafeAllowConstructor && 'Options memory opts;',
55
+ unsafeAllowConstructor && 'opts.unsafeAllow = "constructor";',
56
+ `address proxy = Upgrades.${deployProxyFunctionName}(`,
57
+ deployProxyArgs,
58
+ ');',
59
+ // Account has a receive function, this requires a payable address
60
+ c.parents.find(p => ['Account'].includes(p.contract.name))
61
+ ? `${instanceDeclaration}instance = ${c.name}(payable(proxy));`
62
+ : `${instanceDeclaration}instance = ${c.name}(proxy);`,
63
+ ].filter(line => line !== false);
24
64
  }
65
+ }
66
+ const test = (c, opts) => {
67
+ return (0, format_lines_1.formatLinesWithSpaces)(2, ...(0, format_lines_1.spaceBetween)(getHeader(c), getImports(c, ['import {Test} from "forge-std/Test.sol";']), getTestCase(c)));
25
68
  function getTestCase(c) {
26
69
  const args = getAddressArgs(c);
27
70
  return [
28
71
  `contract ${c.name}Test is Test {`,
29
- (0, format_lines_1.spaceBetween)([`${c.name} public instance;`], ['function setUp() public {', getAddressVariables(c, args), getDeploymentCode(c, args), '}'], getContractSpecificTestFunction()),
72
+ (0, format_lines_1.spaceBetween)([`${c.name} public instance;`], [
73
+ 'function setUp() public {',
74
+ getAddressVariables(c, args),
75
+ getDeploymentCode(c, args, false, opts === null || opts === void 0 ? void 0 : opts.upgradeable),
76
+ '}',
77
+ ], getContractSpecificTestFunction()),
30
78
  '}',
31
79
  ];
32
80
  }
33
- function getDeploymentCode(c, args) {
34
- if (c.upgradeable) {
35
- if ((opts === null || opts === void 0 ? void 0 : opts.upgradeable) === 'transparent') {
36
- return [
37
- `address proxy = Upgrades.deployTransparentProxy(`,
38
- [`"${c.name}.sol",`, `initialOwner,`, `abi.encodeCall(${c.name}.initialize, (${args.join(', ')}))`],
39
- ');',
40
- `instance = ${c.name}(proxy);`,
41
- ];
42
- }
43
- else {
44
- return [
45
- `address proxy = Upgrades.deployUUPSProxy(`,
46
- [`"${c.name}.sol",`, `abi.encodeCall(${c.name}.initialize, (${args.join(', ')}))`],
47
- ');',
48
- `instance = ${c.name}(proxy);`,
49
- ];
50
- }
51
- }
52
- else {
53
- return [`instance = new ${c.name}(${args.join(', ')});`];
54
- }
55
- }
56
81
  function getAddressVariables(c, args) {
57
82
  const vars = [];
58
83
  let i = 1; // private key index starts from 1 since it must be non-zero
@@ -72,6 +97,7 @@ const test = (c, opts) => {
72
97
  return ['function testName() public view {', [`assertEq(instance.name(), "${opts.name}");`], '}'];
73
98
  case 'ERC1155':
74
99
  return ['function testUri() public view {', [`assertEq(instance.uri(0), "${opts.uri}");`], '}'];
100
+ case 'Account':
75
101
  case 'Governor':
76
102
  case 'Custom':
77
103
  return ['function testSomething() public {', ['// Add your test here'], '}'];
@@ -92,21 +118,13 @@ function getAddressArgs(c) {
92
118
  return args;
93
119
  }
94
120
  const script = (c, opts) => {
95
- return (0, format_lines_1.formatLinesWithSpaces)(2, ...(0, format_lines_1.spaceBetween)(getHeader(c), getImports(c), getScript(c)));
96
- function getImports(c) {
97
- const result = ['import {Script} from "forge-std/Script.sol";', 'import {console} from "forge-std/console.sol";'];
98
- if (c.upgradeable) {
99
- result.push('import {Upgrades} from "openzeppelin-foundry-upgrades/Upgrades.sol";');
100
- }
101
- result.push(`import {${c.name}} from "src/${c.name}.sol";`);
102
- return result;
103
- }
121
+ return (0, format_lines_1.formatLinesWithSpaces)(2, ...(0, format_lines_1.spaceBetween)(getHeader(c), getImports(c, ['import {Script} from "forge-std/Script.sol";', 'import {console} from "forge-std/console.sol";']), getScript(c)));
104
122
  function getScript(c) {
105
123
  const args = getAddressArgs(c);
106
124
  const deploymentLines = [
107
125
  'vm.startBroadcast();',
108
126
  ...getAddressVariables(c, args),
109
- ...getDeploymentCode(c, args),
127
+ ...getDeploymentCode(c, args, true, opts === null || opts === void 0 ? void 0 : opts.upgradeable),
110
128
  `console.log("${c.upgradeable ? 'Proxy' : 'Contract'} deployed to %s", address(instance));`,
111
129
  'vm.stopBroadcast();',
112
130
  ];
@@ -116,29 +134,6 @@ const script = (c, opts) => {
116
134
  '}',
117
135
  ];
118
136
  }
119
- function getDeploymentCode(c, args) {
120
- if (c.upgradeable) {
121
- if ((opts === null || opts === void 0 ? void 0 : opts.upgradeable) === 'transparent') {
122
- return [
123
- `address proxy = Upgrades.deployTransparentProxy(`,
124
- [`"${c.name}.sol",`, `initialOwner,`, `abi.encodeCall(${c.name}.initialize, (${args.join(', ')}))`],
125
- ');',
126
- `${c.name} instance = ${c.name}(proxy);`,
127
- ];
128
- }
129
- else {
130
- return [
131
- `address proxy = Upgrades.deployUUPSProxy(`,
132
- [`"${c.name}.sol",`, `abi.encodeCall(${c.name}.initialize, (${args.join(', ')}))`],
133
- ');',
134
- `${c.name} instance = ${c.name}(proxy);`,
135
- ];
136
- }
137
- }
138
- else {
139
- return [`${c.name} instance = new ${c.name}(${args.join(', ')});`];
140
- }
141
- }
142
137
  function getAddressVariables(c, args) {
143
138
  const vars = [];
144
139
  if (c.upgradeable && (opts === null || opts === void 0 ? void 0 : opts.upgradeable) === 'transparent' && !args.includes('initialOwner')) {