@openzeppelin/upgrades-core 1.22.0 → 1.24.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"
@@ -16,13 +16,23 @@ export interface ImplDeployment extends Deployment {
16
16
  export interface ProxyDeployment extends Deployment {
17
17
  kind: 'uups' | 'transparent' | 'beacon';
18
18
  }
19
+ interface DevInstanceMetadata {
20
+ networkName: string;
21
+ instanceId: string;
22
+ forkedNetwork?: {
23
+ chainId: number;
24
+ };
25
+ }
19
26
  export declare class Manifest {
20
27
  readonly chainId: number;
21
28
  readonly file: string;
22
- private readonly fallbackFile;
29
+ readonly fallbackFile: string;
30
+ private readonly dir;
31
+ private readonly chainIdSuffix;
32
+ private readonly parent?;
23
33
  private locked;
24
34
  static forNetwork(provider: EthereumProvider): Promise<Manifest>;
25
- constructor(chainId: number);
35
+ constructor(chainId: number, devInstanceMetadata?: DevInstanceMetadata, osTmpDir?: string);
26
36
  getAdmin(): Promise<Deployment | undefined>;
27
37
  getDeploymentFromAddress(address: string): Promise<ImplDeployment>;
28
38
  getProxyFromAddress(address: string): Promise<ProxyDeployment>;
@@ -31,7 +41,7 @@ export declare class Manifest {
31
41
  private readFile;
32
42
  private writeFile;
33
43
  private renameFileIfRequired;
34
- read(): Promise<ManifestData>;
44
+ read(retries?: number): Promise<ManifestData>;
35
45
  write(data: ManifestData): Promise<void>;
36
46
  lockedRun<T>(cb: () => Promise<T>): Promise<T>;
37
47
  private lock;
@@ -40,4 +50,5 @@ export declare function migrateManifest(data: ManifestData): ManifestData;
40
50
  export declare class DeploymentNotFound extends Error {
41
51
  }
42
52
  export declare function normalizeManifestData(input: ManifestData): ManifestData;
53
+ export {};
43
54
  //# sourceMappingURL=manifest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAA4B,MAAM,YAAY,CAAC;AAIxE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAO/C,MAAM,WAAW,YAAY;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE;SACJ,OAAO,IAAI,MAAM,CAAC,CAAC,EAAE,cAAc;KACrC,CAAC;IACF,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD,MAAM,EAAE,aAAa,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,eAAgB,SAAQ,UAAU;IACjD,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,QAAQ,CAAC;CACzC;AAYD,qBAAa,QAAQ;IACnB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IAEtC,OAAO,CAAC,MAAM,CAAS;WAEV,UAAU,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;gBAI1D,OAAO,EAAE,MAAM;IAUrB,QAAQ,IAAI,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAI3C,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAYlE,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAS9D,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;YAYvC,MAAM;YASN,QAAQ;YAqBR,SAAS;YAKT,oBAAoB;IAU5B,IAAI,IAAI,OAAO,CAAC,YAAY,CAAC;IAgB7B,KAAK,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAQxC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;YAYtC,IAAI;CAWnB;AAgBD,wBAAgB,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY,CAUhE;AAED,qBAAa,kBAAmB,SAAQ,KAAK;CAAG;AAEhD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,YAAY,GAAG,YAAY,CAOvE"}
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAgD,MAAM,YAAY,CAAC;AAI5F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAS/C,MAAM,WAAW,YAAY;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE;SACJ,OAAO,IAAI,MAAM,CAAC,CAAC,EAAE,cAAc;KACrC,CAAC;IACF,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD,MAAM,EAAE,aAAa,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,eAAgB,SAAQ,UAAU;IACjD,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,QAAQ,CAAC;CACzC;AA8CD,UAAU,mBAAmB;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE;QAEd,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,qBAAa,QAAQ;IACnB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAE7B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAW;IAEnC,OAAO,CAAC,MAAM,CAAS;WAEV,UAAU,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;gBAU1D,OAAO,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,mBAAmB,EAAE,QAAQ,CAAC,EAAE,MAAM;IAuCnF,QAAQ,IAAI,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAI3C,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAYlE,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAS9D,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;YAYvC,MAAM;YASN,QAAQ;YAqBR,SAAS;YAKT,oBAAoB;IAU5B,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAoB7C,KAAK,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAQxC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;YAYtC,IAAI;CAWnB;AAgBD,wBAAgB,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY,CAUhE;AAED,qBAAa,kBAAmB,SAAQ,KAAK;CAAG;AAEhD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,YAAY,GAAG,YAAY,CAOvE"}
package/dist/manifest.js CHANGED
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.normalizeManifestData = exports.DeploymentNotFound = exports.migrateManifest = exports.Manifest = void 0;
7
+ const os_1 = __importDefault(require("os"));
7
8
  const path_1 = __importDefault(require("path"));
8
9
  const fs_1 = require("fs");
9
10
  const provider_1 = require("./provider");
@@ -12,6 +13,8 @@ const compare_versions_1 = require("compare-versions");
12
13
  const pick_1 = require("./utils/pick");
13
14
  const map_values_1 = require("./utils/map-values");
14
15
  const error_1 = require("./error");
16
+ const debug_1 = __importDefault(require("./utils/debug"));
17
+ const assert_1 = require("./utils/assert");
15
18
  const currentManifestVersion = '3.2';
16
19
  function defaultManifest() {
17
20
  return {
@@ -20,18 +23,76 @@ function defaultManifest() {
20
23
  proxies: [],
21
24
  };
22
25
  }
23
- const manifestDir = '.openzeppelin';
26
+ const MANIFEST_DEFAULT_DIR = '.openzeppelin';
27
+ const MANIFEST_TEMP_DIR = 'openzeppelin-upgrades';
28
+ async function getDevInstanceMetadata(provider, chainId) {
29
+ let hardhatMetadata;
30
+ try {
31
+ hardhatMetadata = await (0, provider_1.getHardhatMetadata)(provider);
32
+ }
33
+ catch (e) {
34
+ return undefined;
35
+ }
36
+ if (hardhatMetadata.chainId !== chainId) {
37
+ throw new Error(`Broken invariant: Hardhat metadata's chainId ${hardhatMetadata.chainId} does not match eth_chainId ${chainId}`);
38
+ }
39
+ return {
40
+ networkName: 'hardhat',
41
+ instanceId: hardhatMetadata.instanceId,
42
+ forkedNetwork: hardhatMetadata.forkedNetwork,
43
+ };
44
+ }
45
+ function getSuffix(chainId, devInstanceMetadata) {
46
+ if (devInstanceMetadata !== undefined) {
47
+ return `${chainId}-${devInstanceMetadata.instanceId}`;
48
+ }
49
+ else {
50
+ return `${chainId}`;
51
+ }
52
+ }
24
53
  class Manifest {
25
54
  static async forNetwork(provider) {
26
- return new Manifest(await (0, provider_1.getChainId)(provider));
55
+ const chainId = await (0, provider_1.getChainId)(provider);
56
+ const devInstanceMetadata = await getDevInstanceMetadata(provider, chainId);
57
+ if (devInstanceMetadata !== undefined) {
58
+ return new Manifest(chainId, devInstanceMetadata, os_1.default.tmpdir());
59
+ }
60
+ else {
61
+ return new Manifest(chainId);
62
+ }
27
63
  }
28
- constructor(chainId) {
64
+ constructor(chainId, devInstanceMetadata, osTmpDir) {
29
65
  this.locked = false;
30
66
  this.chainId = chainId;
31
- const fallbackName = `unknown-${this.chainId}`;
32
- this.fallbackFile = path_1.default.join(manifestDir, `${fallbackName}.json`);
33
- const name = provider_1.networkNames[this.chainId] ?? fallbackName;
34
- this.file = path_1.default.join(manifestDir, `${name}.json`);
67
+ this.chainIdSuffix = getSuffix(chainId, devInstanceMetadata);
68
+ const defaultFallbackName = `unknown-${chainId}`;
69
+ if (devInstanceMetadata !== undefined) {
70
+ (0, assert_1.assert)(osTmpDir !== undefined);
71
+ this.dir = path_1.default.join(osTmpDir, MANIFEST_TEMP_DIR);
72
+ (0, debug_1.default)('development manifest directory:', this.dir);
73
+ const devName = `${devInstanceMetadata.networkName}-${this.chainIdSuffix}`;
74
+ const devFile = path_1.default.join(this.dir, `${devName}.json`);
75
+ this.file = devFile;
76
+ if (chainId === 31337) {
77
+ this.fallbackFile = path_1.default.join(MANIFEST_DEFAULT_DIR, `${defaultFallbackName}.json`);
78
+ }
79
+ else {
80
+ this.fallbackFile = devFile;
81
+ }
82
+ (0, debug_1.default)('development manifest file:', this.file, 'fallback file:', this.fallbackFile);
83
+ if (devInstanceMetadata.forkedNetwork !== undefined) {
84
+ const forkedChainId = devInstanceMetadata.forkedNetwork.chainId;
85
+ (0, debug_1.default)('forked network chain id:', forkedChainId);
86
+ this.parent = new Manifest(forkedChainId);
87
+ }
88
+ }
89
+ else {
90
+ this.dir = MANIFEST_DEFAULT_DIR;
91
+ const networkName = provider_1.networkNames[chainId];
92
+ this.file = path_1.default.join(MANIFEST_DEFAULT_DIR, `${networkName ?? defaultFallbackName}.json`);
93
+ this.fallbackFile = path_1.default.join(MANIFEST_DEFAULT_DIR, `${defaultFallbackName}.json`);
94
+ (0, debug_1.default)('manifest file:', this.file, 'fallback file:', this.fallbackFile);
95
+ }
35
96
  }
36
97
  async getAdmin() {
37
98
  return (await this.read()).admin;
@@ -104,15 +165,20 @@ class Manifest {
104
165
  }
105
166
  }
106
167
  }
107
- async read() {
108
- const release = this.locked ? undefined : await this.lock();
168
+ async read(retries) {
169
+ const release = this.locked ? undefined : await this.lock(retries);
109
170
  try {
110
171
  const data = JSON.parse(await this.readFile());
111
172
  return validateOrUpdateManifestVersion(data);
112
173
  }
113
174
  catch (e) {
114
175
  if (e.code === 'ENOENT') {
115
- return defaultManifest();
176
+ if (this.parent !== undefined) {
177
+ return await this.parent.read(retries);
178
+ }
179
+ else {
180
+ return defaultManifest();
181
+ }
116
182
  }
117
183
  else {
118
184
  throw e;
@@ -141,10 +207,10 @@ class Manifest {
141
207
  await release();
142
208
  }
143
209
  }
144
- async lock() {
145
- const lockfileName = path_1.default.join(manifestDir, `chain-${this.chainId}`);
210
+ async lock(retries = 3) {
211
+ const lockfileName = path_1.default.join(this.dir, `chain-${this.chainIdSuffix}`);
146
212
  await fs_1.promises.mkdir(path_1.default.dirname(lockfileName), { recursive: true });
147
- const release = await proper_lockfile_1.default.lock(lockfileName, { retries: 3, realpath: false });
213
+ const release = await proper_lockfile_1.default.lock(lockfileName, { retries, realpath: false });
148
214
  this.locked = true;
149
215
  return async () => {
150
216
  await release();
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
@@ -3,17 +3,18 @@ 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
+ const os_1 = __importDefault(require("os"));
6
7
  const ava_1 = __importDefault(require("ava"));
7
8
  const manifest_1 = require("./manifest");
8
9
  const fs_1 = require("fs");
9
10
  const path_1 = __importDefault(require("path"));
10
- async function writeTestManifest(file) {
11
+ async function writeTestManifest(file, address) {
11
12
  const testManifest = {
12
13
  manifestVersion: '3.2',
13
14
  impls: {},
14
15
  proxies: [
15
16
  {
16
- address: '0x123',
17
+ address: address ?? '0x123',
17
18
  txHash: '0x0',
18
19
  kind: 'uups',
19
20
  },
@@ -81,21 +82,265 @@ ava_1.default.serial('rename manifest', async (t) => {
81
82
  t.throwsAsync(fs_1.promises.access(`.openzeppelin/chain-${id}.lock`));
82
83
  // check that the contents were persisted
83
84
  const data = await new manifest_1.Manifest(id).read();
84
- t.true(data.proxies[0].address === '0x123');
85
- t.true(data.proxies[1].address === '0x456');
85
+ t.is(data.proxies[0].address, '0x123');
86
+ t.is(data.proxies[1].address, '0x456');
86
87
  await assertNewName(t, id);
87
88
  t.throwsAsync(fs_1.promises.access(`.openzeppelin/chain-${id}.lock`));
88
89
  await deleteManifests(t, id);
89
90
  });
91
+ ava_1.default.serial('rename hardhat from unknown to dev manifest', async (t) => {
92
+ const id = 31337;
93
+ await deleteFile(t, `.openzeppelin/unknown-${id}.json`);
94
+ await writeTestManifest(`.openzeppelin/unknown-${id}.json`);
95
+ const instanceId = '0xaa0';
96
+ const devInstanceMetadata = { networkName: 'hardhat', instanceId: instanceId };
97
+ const manifest = new manifest_1.Manifest(id, devInstanceMetadata, os_1.default.tmpdir());
98
+ await fs_1.promises.access(`.openzeppelin/unknown-${id}.json`);
99
+ await manifest.lockedRun(async () => {
100
+ await fs_1.promises.access(`${os_1.default.tmpdir()}/openzeppelin-upgrades/chain-${id}-${instanceId}.lock`);
101
+ const data = await manifest.read();
102
+ data.proxies.push({
103
+ address: '0x456',
104
+ txHash: '0x0',
105
+ kind: 'uups',
106
+ });
107
+ await fs_1.promises.access(`.openzeppelin/unknown-${id}.json`);
108
+ await manifest.write(data);
109
+ });
110
+ t.throwsAsync(fs_1.promises.access(`.openzeppelin/unknown-${id}.json`));
111
+ await fs_1.promises.access(`${os_1.default.tmpdir()}/openzeppelin-upgrades/hardhat-${id}-${instanceId}.json`);
112
+ const dev = await new manifest_1.Manifest(id, devInstanceMetadata, os_1.default.tmpdir()).read();
113
+ t.is(dev.proxies.length, 2);
114
+ t.is(dev.proxies[0].address, '0x123');
115
+ t.is(dev.proxies[1].address, '0x456');
116
+ await deleteFile(t, `.openzeppelin/unknown-${id}.json`);
117
+ await deleteFile(t, `${os_1.default.tmpdir()}/openzeppelin-upgrades/hardhat-${id}-${instanceId}.json`);
118
+ });
119
+ ava_1.default.serial('forked chain from known network with fallback name', async (t) => {
120
+ const forkedId = 80001;
121
+ const devId = 55555;
122
+ await deleteManifests(t, forkedId);
123
+ await writeTestManifest(`.openzeppelin/unknown-${forkedId}.json`);
124
+ const instanceId = '0xaaa';
125
+ const devInstanceMetadata = { networkName: 'hardhat', instanceId: instanceId, forkedNetwork: { chainId: forkedId } };
126
+ const manifest = new manifest_1.Manifest(devId, devInstanceMetadata, os_1.default.tmpdir());
127
+ await assertOldName(t, forkedId);
128
+ await manifest.lockedRun(async () => {
129
+ await fs_1.promises.access(`${os_1.default.tmpdir()}/openzeppelin-upgrades/chain-${devId}-${instanceId}.lock`);
130
+ const data = await manifest.read();
131
+ data.proxies.push({
132
+ address: '0x456',
133
+ txHash: '0x0',
134
+ kind: 'uups',
135
+ });
136
+ await assertOldName(t, forkedId);
137
+ await manifest.write(data);
138
+ await assertOldName(t, forkedId); // original network file should not be changed
139
+ });
140
+ t.throwsAsync(fs_1.promises.access(`.openzeppelin/chain-${forkedId}.lock`));
141
+ t.throwsAsync(fs_1.promises.access(`${os_1.default.tmpdir()}/openzeppelin-upgrades/chain-${devId}-${instanceId}.lock`));
142
+ await fs_1.promises.access(`${os_1.default.tmpdir()}/openzeppelin-upgrades/hardhat-${devId}-${instanceId}.json`);
143
+ // check that the contents were NOT persisted to original manifest
144
+ const orig = await new manifest_1.Manifest(forkedId).read();
145
+ t.is(orig.proxies.length, 1);
146
+ t.is(orig.proxies[0].address, '0x123');
147
+ // check that the contents were persisted to dev copy of manifest
148
+ const dev = await new manifest_1.Manifest(devId, devInstanceMetadata, os_1.default.tmpdir()).read();
149
+ t.is(dev.proxies.length, 2);
150
+ t.is(dev.proxies[0].address, '0x123');
151
+ t.is(dev.proxies[1].address, '0x456');
152
+ await deleteManifests(t, forkedId);
153
+ await deleteFile(t, `${os_1.default.tmpdir()}/openzeppelin-upgrades/hardhat-${devId}-${instanceId}.json`);
154
+ });
155
+ ava_1.default.serial('forked chain from known network with actual name', async (t) => {
156
+ const forkedId = 80001;
157
+ const devId = 55555;
158
+ await deleteManifests(t, forkedId);
159
+ await writeTestManifest(`.openzeppelin/polygon-mumbai.json`);
160
+ const instanceId = '0xbbb';
161
+ const devInstanceMetadata = { networkName: 'hardhat', instanceId: instanceId, forkedNetwork: { chainId: forkedId } };
162
+ const manifest = new manifest_1.Manifest(devId, devInstanceMetadata, os_1.default.tmpdir());
163
+ await assertNewName(t, forkedId);
164
+ await manifest.lockedRun(async () => {
165
+ await fs_1.promises.access(`${os_1.default.tmpdir()}/openzeppelin-upgrades/chain-${devId}-${instanceId}.lock`);
166
+ const data = await manifest.read();
167
+ data.proxies.push({
168
+ address: '0x456',
169
+ txHash: '0x0',
170
+ kind: 'uups',
171
+ });
172
+ await assertNewName(t, forkedId);
173
+ await manifest.write(data);
174
+ await assertNewName(t, forkedId); // original network file should not be changed
175
+ });
176
+ t.throwsAsync(fs_1.promises.access(`.openzeppelin/chain-${forkedId}.lock`));
177
+ t.throwsAsync(fs_1.promises.access(`${os_1.default.tmpdir()}/openzeppelin-upgrades/chain-${devId}-${instanceId}.lock`));
178
+ await fs_1.promises.access(`${os_1.default.tmpdir()}/openzeppelin-upgrades/hardhat-${devId}-${instanceId}.json`);
179
+ // check that the contents were NOT persisted to original manifest
180
+ const orig = await new manifest_1.Manifest(forkedId).read();
181
+ t.is(orig.proxies.length, 1);
182
+ t.is(orig.proxies[0].address, '0x123');
183
+ // check that the contents were persisted to dev copy of manifest
184
+ const dev = await new manifest_1.Manifest(devId, devInstanceMetadata, os_1.default.tmpdir()).read();
185
+ t.is(dev.proxies.length, 2);
186
+ t.is(dev.proxies[0].address, '0x123');
187
+ t.is(dev.proxies[1].address, '0x456');
188
+ await deleteManifests(t, forkedId);
189
+ await deleteFile(t, `${os_1.default.tmpdir()}/openzeppelin-upgrades/hardhat-${devId}-${instanceId}.json`);
190
+ });
191
+ ava_1.default.serial('forked chain, real manifest already locked', async (t) => {
192
+ const forkedId = 80001;
193
+ const devId = 55555;
194
+ const instanceId = '0xccc';
195
+ const devInstanceMetadata = { networkName: 'hardhat', instanceId: instanceId, forkedNetwork: { chainId: forkedId } };
196
+ const realManifest = new manifest_1.Manifest(forkedId);
197
+ const devManifest = new manifest_1.Manifest(devId, devInstanceMetadata, os_1.default.tmpdir());
198
+ try {
199
+ await realManifest.lockedRun(async () => {
200
+ await devManifest.read(0);
201
+ });
202
+ t.fail();
203
+ }
204
+ catch (e) {
205
+ t.is(e.code, 'ELOCKED');
206
+ }
207
+ });
208
+ ava_1.default.serial('forked chain, real manifest already locked but dev manifest exists', async (t) => {
209
+ const forkedId = 80001;
210
+ const devId = 55555;
211
+ const instanceId = '0xddd';
212
+ const devInstanceMetadata = { networkName: 'hardhat', instanceId: instanceId, forkedNetwork: { chainId: forkedId } };
213
+ const realManifest = new manifest_1.Manifest(forkedId);
214
+ const devManifest = new manifest_1.Manifest(devId, devInstanceMetadata, os_1.default.tmpdir());
215
+ // write dev manifest
216
+ await writeTestManifest(devManifest.file, '0x999');
217
+ // then write real manifest
218
+ await deleteManifests(t, forkedId);
219
+ await writeTestManifest(`.openzeppelin/polygon-mumbai.json`);
220
+ let devManifestContents;
221
+ await realManifest.lockedRun(async () => {
222
+ // should ignore real manifest and real lock file
223
+ devManifestContents = await devManifest.read();
224
+ t.is(devManifestContents.proxies.length, 1);
225
+ t.is(devManifestContents.proxies[0].address, '0x999');
226
+ });
227
+ await deleteManifests(t, forkedId);
228
+ await deleteFile(t, `${os_1.default.tmpdir()}/openzeppelin-upgrades/hardhat-${devId}-${instanceId}.json`);
229
+ });
230
+ ava_1.default.serial('forked chain without existing manifest', async (t) => {
231
+ const forkedId = 80001;
232
+ const devId = 55555;
233
+ await deleteManifests(t, forkedId);
234
+ const instanceId = '0xeee';
235
+ const devInstanceMetadata = { networkName: 'hardhat', instanceId: instanceId, forkedNetwork: { chainId: forkedId } };
236
+ const manifest = new manifest_1.Manifest(devId, devInstanceMetadata, os_1.default.tmpdir());
237
+ await manifest.lockedRun(async () => {
238
+ await fs_1.promises.access(`${os_1.default.tmpdir()}/openzeppelin-upgrades/chain-${devId}-${instanceId}.lock`);
239
+ const data = await manifest.read();
240
+ data.proxies.push({
241
+ address: '0x456',
242
+ txHash: '0x0',
243
+ kind: 'uups',
244
+ });
245
+ await manifest.write(data);
246
+ });
247
+ t.throwsAsync(fs_1.promises.access(`${os_1.default.tmpdir()}/openzeppelin-upgrades/chain-${devId}-${instanceId}.lock`));
248
+ await fs_1.promises.access(`${os_1.default.tmpdir()}/openzeppelin-upgrades/hardhat-${devId}-${instanceId}.json`);
249
+ // check that the contents were NOT persisted to regular manifest
250
+ t.throwsAsync(fs_1.promises.access(`.openzeppelin/unknown-${forkedId}.json`));
251
+ t.throwsAsync(fs_1.promises.access(`.openzeppelin/polygon-mumbai.json`));
252
+ // check that the contents were persisted to dev copy of manifest
253
+ const dev = await new manifest_1.Manifest(devId, devInstanceMetadata, os_1.default.tmpdir()).read();
254
+ t.is(dev.proxies.length, 1);
255
+ t.is(dev.proxies[0].address, '0x456');
256
+ await deleteManifests(t, forkedId);
257
+ await deleteFile(t, `${os_1.default.tmpdir()}/openzeppelin-upgrades/hardhat-${devId}-${instanceId}.json`);
258
+ });
259
+ ava_1.default.serial('dev instance with known network id', async (t) => {
260
+ const devId = 80001;
261
+ await deleteManifests(t, devId);
262
+ // dev instance without forking, so this real manifest should not be actually used
263
+ await writeTestManifest(`.openzeppelin/polygon-mumbai.json`);
264
+ const instanceId = '0xfff';
265
+ const devInstanceMetadata = { networkName: 'hardhat', instanceId: instanceId };
266
+ const manifest = new manifest_1.Manifest(devId, devInstanceMetadata, os_1.default.tmpdir());
267
+ await manifest.lockedRun(async () => {
268
+ await fs_1.promises.access(`${os_1.default.tmpdir()}/openzeppelin-upgrades/chain-${devId}-${instanceId}.lock`);
269
+ const data = await manifest.read();
270
+ data.proxies.push({
271
+ address: '0x456',
272
+ txHash: '0x0',
273
+ kind: 'uups',
274
+ });
275
+ await manifest.write(data);
276
+ });
277
+ t.throwsAsync(fs_1.promises.access(`${os_1.default.tmpdir()}/openzeppelin-upgrades/chain-${devId}-${instanceId}.lock`));
278
+ await fs_1.promises.access(`${os_1.default.tmpdir()}/openzeppelin-upgrades/hardhat-${devId}-${instanceId}.json`);
279
+ // check that the contents were NOT persisted to original manifest
280
+ const orig = await new manifest_1.Manifest(devId).read();
281
+ t.is(orig.proxies.length, 1);
282
+ t.is(orig.proxies[0].address, '0x123');
283
+ // check that the contents were persisted to dev manifest without original contents
284
+ const dev = await new manifest_1.Manifest(devId, devInstanceMetadata, os_1.default.tmpdir()).read();
285
+ t.is(dev.proxies.length, 1);
286
+ t.is(dev.proxies[0].address, '0x456');
287
+ await deleteManifests(t, devId);
288
+ await deleteFile(t, `${os_1.default.tmpdir()}/openzeppelin-upgrades/hardhat-${devId}-${instanceId}.json`);
289
+ });
90
290
  (0, ava_1.default)('manifest name for a known network', t => {
91
291
  const manifest = new manifest_1.Manifest(1);
92
292
  t.is(manifest.file, '.openzeppelin/mainnet.json');
93
293
  });
294
+ (0, ava_1.default)('manifest name for a known network, development instance', t => {
295
+ const chainId = 1;
296
+ const instanceId = '0x11111';
297
+ const devInstanceMetadata = { networkName: 'hardhat', instanceId: instanceId };
298
+ const manifest = new manifest_1.Manifest(chainId, devInstanceMetadata, '/tmp');
299
+ const expectedPath = `/tmp/openzeppelin-upgrades/hardhat-${chainId}-${instanceId}.json`;
300
+ t.is(manifest.file, expectedPath);
301
+ t.is(manifest.fallbackFile, expectedPath);
302
+ });
94
303
  (0, ava_1.default)('manifest name for an unknown network', t => {
95
304
  const id = 55555;
96
305
  const manifest = new manifest_1.Manifest(id);
97
306
  t.is(manifest.file, `.openzeppelin/unknown-${id}.json`);
98
307
  });
308
+ (0, ava_1.default)('manifest name for an unknown network, development instance, non hardhat', t => {
309
+ const chainId = 55555;
310
+ const instanceId = '0x22222';
311
+ const devInstanceMetadata = { networkName: 'dev', instanceId: instanceId };
312
+ const manifest = new manifest_1.Manifest(chainId, devInstanceMetadata, '/tmp');
313
+ const expectedPath = `/tmp/openzeppelin-upgrades/dev-${chainId}-${instanceId}.json`;
314
+ t.is(manifest.file, expectedPath);
315
+ t.is(manifest.fallbackFile, expectedPath);
316
+ });
317
+ (0, ava_1.default)('manifest name for an unknown network, development instance, hardhat', t => {
318
+ const chainId = 31337;
319
+ const instanceId = '0x22223';
320
+ const devInstanceMetadata = { networkName: 'dev', instanceId: instanceId };
321
+ const manifest = new manifest_1.Manifest(chainId, devInstanceMetadata, '/tmp');
322
+ const expectedPath = `/tmp/openzeppelin-upgrades/dev-${chainId}-${instanceId}.json`;
323
+ t.is(manifest.file, expectedPath);
324
+ t.is(manifest.fallbackFile, `.openzeppelin/unknown-${chainId}.json`);
325
+ });
326
+ (0, ava_1.default)('manifest dev instance without tmp dir param', t => {
327
+ const chainId = 1;
328
+ const instanceId = '0x33333';
329
+ const devInstanceMetadata = { networkName: 'hardhat', instanceId: instanceId };
330
+ t.throws(() => new manifest_1.Manifest(chainId, devInstanceMetadata));
331
+ });
332
+ (0, ava_1.default)('manifest lock file name for a development network instance', async (t) => {
333
+ const chainId = 55555;
334
+ const instanceId = '0x55555';
335
+ const devInstanceMetadata = { networkName: 'hardhat', instanceId: instanceId };
336
+ const manifest = new manifest_1.Manifest(chainId, devInstanceMetadata, '/tmp');
337
+ await manifest.lockedRun(async () => {
338
+ t.throwsAsync(fs_1.promises.access(`.openzeppelin/chain-${chainId}.lock`));
339
+ t.throwsAsync(fs_1.promises.access(`.openzeppelin/chain-${chainId}-${instanceId}.lock`));
340
+ t.throwsAsync(fs_1.promises.access(`/tmp/openzeppelin-upgrades/chain-${chainId}.lock`));
341
+ await fs_1.promises.access(`/tmp/openzeppelin-upgrades/chain-${chainId}-${instanceId}.lock`);
342
+ });
343
+ });
99
344
  (0, ava_1.default)('normalize manifest', t => {
100
345
  const deployment = {
101
346
  address: '0x1234',
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.test.js","sourceRoot":"","sources":["../src/manifest.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest.test.js","sourceRoot":"","sources":["../src/manifest.test.ts"],"names":[],"mappings":"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"}