@openzeppelin/upgrades-core 1.11.0 → 1.13.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 (109) hide show
  1. package/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.dbg.json +1 -1
  2. package/artifacts/@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol/BeaconProxy.dbg.json +1 -1
  3. package/artifacts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.dbg.json +1 -1
  4. package/dist/add-proxy-to-manifest.d.ts +3 -0
  5. package/dist/add-proxy-to-manifest.d.ts.map +1 -0
  6. package/dist/add-proxy-to-manifest.js +15 -0
  7. package/dist/add-proxy-to-manifest.js.map +1 -0
  8. package/dist/deployment.d.ts +35 -4
  9. package/dist/deployment.d.ts.map +1 -1
  10. package/dist/deployment.js +85 -28
  11. package/dist/deployment.js.map +1 -1
  12. package/dist/deployment.test.js +23 -0
  13. package/dist/deployment.test.js.map +1 -1
  14. package/dist/eip-1967-type.d.ts +1 -0
  15. package/dist/eip-1967-type.d.ts.map +1 -1
  16. package/dist/eip-1967-type.js +6 -1
  17. package/dist/eip-1967-type.js.map +1 -1
  18. package/dist/eip-1967.d.ts +1 -0
  19. package/dist/eip-1967.d.ts.map +1 -1
  20. package/dist/eip-1967.js +3 -2
  21. package/dist/eip-1967.js.map +1 -1
  22. package/dist/impl-address.js +1 -1
  23. package/dist/impl-address.js.map +1 -1
  24. package/dist/impl-store.d.ts +24 -3
  25. package/dist/impl-store.d.ts.map +1 -1
  26. package/dist/impl-store.js +77 -22
  27. package/dist/impl-store.js.map +1 -1
  28. package/dist/impl-store.test.js +24 -0
  29. package/dist/impl-store.test.js.map +1 -1
  30. package/dist/index.d.ts +6 -5
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +20 -4
  33. package/dist/index.js.map +1 -1
  34. package/dist/manifest-storage-layout.d.ts.map +1 -1
  35. package/dist/manifest-storage-layout.js +3 -2
  36. package/dist/manifest-storage-layout.js.map +1 -1
  37. package/dist/manifest-storage-layout.test.js.map +1 -1
  38. package/dist/manifest.d.ts +2 -0
  39. package/dist/manifest.d.ts.map +1 -1
  40. package/dist/manifest.js +6 -4
  41. package/dist/manifest.js.map +1 -1
  42. package/dist/manifest.test.js +32 -0
  43. package/dist/manifest.test.js.map +1 -1
  44. package/dist/provider.d.ts +1 -0
  45. package/dist/provider.d.ts.map +1 -1
  46. package/dist/provider.js +6 -2
  47. package/dist/provider.js.map +1 -1
  48. package/dist/proxy-kind.d.ts +9 -0
  49. package/dist/proxy-kind.d.ts.map +1 -1
  50. package/dist/proxy-kind.js +27 -1
  51. package/dist/proxy-kind.js.map +1 -1
  52. package/dist/scripts/migrate-oz-cli-project.test.js +1 -1
  53. package/dist/scripts/migrate-oz-cli-project.test.js.map +1 -1
  54. package/dist/solc-api.d.ts +5 -0
  55. package/dist/solc-api.d.ts.map +1 -1
  56. package/dist/standalone.test.js.map +1 -1
  57. package/dist/storage/extract.d.ts +1 -1
  58. package/dist/storage/extract.d.ts.map +1 -1
  59. package/dist/storage/extract.js +76 -38
  60. package/dist/storage/extract.js.map +1 -1
  61. package/dist/storage/layout.d.ts +4 -0
  62. package/dist/storage/layout.d.ts.map +1 -1
  63. package/dist/storage/layout.js.map +1 -1
  64. package/dist/storage/report.test.js.map +1 -1
  65. package/dist/storage.test.js +1 -1
  66. package/dist/storage.test.js.map +1 -1
  67. package/dist/usage-error.d.ts +3 -0
  68. package/dist/usage-error.d.ts.map +1 -1
  69. package/dist/usage-error.js +7 -1
  70. package/dist/usage-error.js.map +1 -1
  71. package/dist/validate/query.d.ts.map +1 -1
  72. package/dist/validate/query.js +10 -5
  73. package/dist/validate/query.js.map +1 -1
  74. package/dist/validate/run.d.ts.map +1 -1
  75. package/dist/validate/run.js +1 -1
  76. package/dist/validate/run.js.map +1 -1
  77. package/dist/validate.test.js.map +1 -1
  78. package/package.json +5 -5
  79. package/src/add-proxy-to-manifest.ts +12 -0
  80. package/src/deployment.test.ts +25 -0
  81. package/src/deployment.ts +124 -27
  82. package/src/eip-1967-type.ts +7 -0
  83. package/src/eip-1967.ts +4 -3
  84. package/src/impl-address.ts +1 -1
  85. package/src/impl-store.test.ts +33 -1
  86. package/src/impl-store.ts +91 -18
  87. package/src/index.ts +22 -4
  88. package/src/manifest-storage-layout.test.ts +3 -2
  89. package/src/manifest-storage-layout.ts +8 -3
  90. package/src/manifest.test.ts +34 -1
  91. package/src/manifest.ts +9 -4
  92. package/src/provider.ts +5 -1
  93. package/src/proxy-kind.ts +24 -1
  94. package/src/scripts/migrate-oz-cli-project.test.ts +1 -1
  95. package/src/scripts/migrate-oz-cli-project.test.ts.snap +0 -0
  96. package/src/solc-api.ts +5 -0
  97. package/src/standalone.test.ts +2 -2
  98. package/src/storage/extract.ts +98 -52
  99. package/src/storage/layout.ts +4 -0
  100. package/src/storage/report.test.ts +2 -2
  101. package/src/storage/report.test.ts.snap +0 -0
  102. package/src/storage.test.ts +3 -3
  103. package/src/storage.test.ts.snap +0 -0
  104. package/src/usage-error.ts +9 -0
  105. package/src/utils/parse-type-id.test.ts.md +106 -106
  106. package/src/utils/parse-type-id.test.ts.snap +0 -0
  107. package/src/validate/query.ts +9 -5
  108. package/src/validate/run.ts +6 -1
  109. package/src/validate.test.ts +2 -2
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../../build-info/5c28a997178369051e77758d2ca491ea.json"
3
+ "buildInfo": "../../../../../build-info/9e73e2c5522c7cd3de4f2a592f02e0af.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../../build-info/5c28a997178369051e77758d2ca491ea.json"
3
+ "buildInfo": "../../../../../build-info/9e73e2c5522c7cd3de4f2a592f02e0af.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../../build-info/5c28a997178369051e77758d2ca491ea.json"
3
+ "buildInfo": "../../../../../build-info/9e73e2c5522c7cd3de4f2a592f02e0af.json"
4
4
  }
@@ -0,0 +1,3 @@
1
+ import { Manifest, ProxyDeployment } from '.';
2
+ export declare function addProxyToManifest(kind: ProxyDeployment['kind'], address: string, manifest: Manifest): Promise<void>;
3
+ //# sourceMappingURL=add-proxy-to-manifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-proxy-to-manifest.d.ts","sourceRoot":"","sources":["../src/add-proxy-to-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,QAAQ,EAAE,eAAe,EAAE,MAAM,GAAG,CAAC;AAE1D,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,iBAS1G"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addProxyToManifest = void 0;
4
+ const _1 = require(".");
5
+ async function addProxyToManifest(kind, address, manifest) {
6
+ await manifest.addProxy({ kind, address });
7
+ if (kind !== 'transparent' && (await manifest.getAdmin())) {
8
+ (0, _1.logWarning)(`A proxy admin was previously deployed on this network`, [
9
+ `This is not natively used with the current kind of proxy ('${kind}').`,
10
+ `Changes to the admin will have no effect on this new proxy.`,
11
+ ]);
12
+ }
13
+ }
14
+ exports.addProxyToManifest = addProxyToManifest;
15
+ //# sourceMappingURL=add-proxy-to-manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-proxy-to-manifest.js","sourceRoot":"","sources":["../src/add-proxy-to-manifest.ts"],"names":[],"mappings":";;;AAAA,wBAA0D;AAEnD,KAAK,UAAU,kBAAkB,CAAC,IAA6B,EAAE,OAAe,EAAE,QAAkB;IACzG,MAAM,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAE3C,IAAI,IAAI,KAAK,aAAa,IAAI,CAAC,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE;QACzD,IAAA,aAAU,EAAC,uDAAuD,EAAE;YAClE,8DAA8D,IAAI,KAAK;YACvE,6DAA6D;SAC9D,CAAC,CAAC;KACJ;AACH,CAAC;AATD,gDASC"}
@@ -1,13 +1,44 @@
1
1
  import { EthereumProvider } from './provider';
2
+ import { UpgradesError } from './error';
3
+ import { ManifestField } from './impl-store';
2
4
  export interface Deployment {
3
5
  address: string;
4
6
  txHash?: string;
5
7
  }
6
- export declare function resumeOrDeploy<T extends Deployment>(provider: EthereumProvider, cached: T | undefined, deploy: () => Promise<T>): Promise<T>;
7
- export declare function waitAndValidateDeployment(provider: EthereumProvider, deployment: Deployment): Promise<void>;
8
- export declare class TransactionMinedTimeout extends Error {
8
+ export interface DeployOpts {
9
+ /**
10
+ * Timeout in milliseconds to wait for the transaction confirmation when deploying an implementation contract or proxy admin contract. Use `0` to wait indefinitely.
11
+ */
12
+ timeout?: number;
13
+ /**
14
+ * Polling interval in milliseconds between checks for the transaction confirmation when deploying an implementation contract or proxy admin contract.
15
+ */
16
+ pollingInterval?: number;
17
+ }
18
+ /**
19
+ * Resumes a deployment or deploys a new one, based on whether the cached deployment should continue to be used and is valid
20
+ * (has a valid txHash for the current network or has runtime bytecode).
21
+ * If a cached deployment is not valid, deletes it if using a development network, otherwise throws an InvalidDeployment error.
22
+ *
23
+ * @param provider the Ethereum provider
24
+ * @param cached the cached deployment
25
+ * @param deploy the function to deploy a new deployment if needed
26
+ * @param type the manifest lens type. If merge is true, used for the timeout message if a previous deployment is not
27
+ * confirmed within the timeout period. Otherwise not used.
28
+ * @param opts polling timeout and interval options. If merge is true, used to check a previous deployment for confirmation.
29
+ * Otherwise not used.
30
+ * @param deployment the manifest field for this deployment. Optional for backward compatibility.
31
+ * If not provided, invalid deployments will not be deleted in a dev network (which is not a problem if merge is false,
32
+ * since it will be overwritten with the new deployment).
33
+ * @param merge whether the cached deployment is intended to be merged with the new deployment. Defaults to false.
34
+ * @returns the cached deployment if it should be used, otherwise the new deployment from the deploy function
35
+ * @throws {InvalidDeployment} if the cached deployment is invalid and we are not on a dev network
36
+ */
37
+ export declare function resumeOrDeploy<T extends Deployment>(provider: EthereumProvider, cached: T | undefined, deploy: () => Promise<T>, type?: string, opts?: DeployOpts, deployment?: ManifestField<T>, merge?: boolean): Promise<T>;
38
+ export declare function waitAndValidateDeployment(provider: EthereumProvider, deployment: Deployment, type?: string, opts?: DeployOpts): Promise<void>;
39
+ export declare class TransactionMinedTimeout extends UpgradesError {
9
40
  readonly deployment: Deployment;
10
- constructor(deployment: Deployment);
41
+ constructor(deployment: Deployment, type?: string, configurableTimeout?: boolean);
11
42
  }
12
43
  export declare class InvalidDeployment extends Error {
13
44
  readonly deployment: Deployment;
@@ -1 +1 @@
1
- {"version":3,"file":"deployment.d.ts","sourceRoot":"","sources":["../src/deployment.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,gBAAgB,EAMjB,MAAM,YAAY,CAAC;AAIpB,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,cAAc,CAAC,CAAC,SAAS,UAAU,EACvD,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,EAAE,CAAC,GAAG,SAAS,EACrB,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACvB,OAAO,CAAC,CAAC,CAAC,CA2BZ;AAED,wBAAsB,yBAAyB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA2CjH;AAED,qBAAa,uBAAwB,SAAQ,KAAK;IACpC,QAAQ,CAAC,UAAU,EAAE,UAAU;gBAAtB,UAAU,EAAE,UAAU;CAG5C;AAED,qBAAa,iBAAkB,SAAQ,KAAK;IAG9B,QAAQ,CAAC,UAAU,EAAE,UAAU;IAF3C,OAAO,UAAS;gBAEK,UAAU,EAAE,UAAU;IAO3C,IAAI,OAAO,IAAI,MAAM,CAMpB;CACF"}
1
+ {"version":3,"file":"deployment.d.ts","sourceRoot":"","sources":["../src/deployment.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,gBAAgB,EAQjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAoB,aAAa,EAAE,MAAM,cAAc,CAAC;AAI/D,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,cAAc,CAAC,CAAC,SAAS,UAAU,EACvD,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,EAAE,CAAC,GAAG,SAAS,EACrB,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACxB,IAAI,CAAC,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,UAAU,EACjB,UAAU,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,EAC7B,KAAK,CAAC,EAAE,OAAO,GACd,OAAO,CAAC,CAAC,CAAC,CASZ;AA6DD,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,gBAAgB,EAC1B,UAAU,EAAE,UAAU,EACtB,IAAI,CAAC,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,UAAU,GAChB,OAAO,CAAC,IAAI,CAAC,CA8Cf;AAED,qBAAa,uBAAwB,SAAQ,aAAa;IAC5C,QAAQ,CAAC,UAAU,EAAE,UAAU;gBAAtB,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,OAAO;CAY1F;AAED,qBAAa,iBAAkB,SAAQ,KAAK;IAG9B,QAAQ,CAAC,UAAU,EAAE,UAAU;IAF3C,OAAO,UAAS;gBAEK,UAAU,EAAE,UAAU;IAO3C,IAAI,OAAO,IAAI,MAAM,CAMpB;CACF"}
@@ -8,52 +8,99 @@ const util_1 = require("util");
8
8
  const debug_1 = __importDefault(require("./utils/debug"));
9
9
  const make_non_enumerable_1 = require("./utils/make-non-enumerable");
10
10
  const provider_1 = require("./provider");
11
+ const error_1 = require("./error");
12
+ const impl_store_1 = require("./impl-store");
11
13
  const sleep = (0, util_1.promisify)(setTimeout);
12
- async function resumeOrDeploy(provider, cached, deploy) {
14
+ /**
15
+ * Resumes a deployment or deploys a new one, based on whether the cached deployment should continue to be used and is valid
16
+ * (has a valid txHash for the current network or has runtime bytecode).
17
+ * If a cached deployment is not valid, deletes it if using a development network, otherwise throws an InvalidDeployment error.
18
+ *
19
+ * @param provider the Ethereum provider
20
+ * @param cached the cached deployment
21
+ * @param deploy the function to deploy a new deployment if needed
22
+ * @param type the manifest lens type. If merge is true, used for the timeout message if a previous deployment is not
23
+ * confirmed within the timeout period. Otherwise not used.
24
+ * @param opts polling timeout and interval options. If merge is true, used to check a previous deployment for confirmation.
25
+ * Otherwise not used.
26
+ * @param deployment the manifest field for this deployment. Optional for backward compatibility.
27
+ * If not provided, invalid deployments will not be deleted in a dev network (which is not a problem if merge is false,
28
+ * since it will be overwritten with the new deployment).
29
+ * @param merge whether the cached deployment is intended to be merged with the new deployment. Defaults to false.
30
+ * @returns the cached deployment if it should be used, otherwise the new deployment from the deploy function
31
+ * @throws {InvalidDeployment} if the cached deployment is invalid and we are not on a dev network
32
+ */
33
+ async function resumeOrDeploy(provider, cached, deploy, type, opts, deployment, merge) {
34
+ const validated = await validateCached(cached, provider, type, opts, deployment, merge);
35
+ if (validated === undefined || merge) {
36
+ const deployment = await deploy();
37
+ (0, debug_1.default)('initiated deployment', 'transaction hash:', deployment.txHash, 'merge:', merge);
38
+ return deployment;
39
+ }
40
+ else {
41
+ return validated;
42
+ }
43
+ }
44
+ exports.resumeOrDeploy = resumeOrDeploy;
45
+ async function validateCached(cached, provider, type, opts, deployment, merge) {
13
46
  if (cached !== undefined) {
14
- const { txHash } = cached;
15
- if (txHash === undefined) {
16
- // Nothing to do here without a txHash.
17
- // This is the case for deployments migrated from OpenZeppelin CLI.
18
- return cached;
47
+ try {
48
+ await validateStoredDeployment(cached, provider, type, opts, merge);
49
+ }
50
+ catch (e) {
51
+ if (e instanceof InvalidDeployment && (await (0, provider_1.isDevelopmentNetwork)(provider))) {
52
+ (0, debug_1.default)('ignoring invalid deployment in development network', e.deployment.address);
53
+ if (deployment !== undefined) {
54
+ (0, impl_store_1.deleteDeployment)(deployment);
55
+ }
56
+ return undefined;
57
+ }
58
+ else {
59
+ throw e;
60
+ }
19
61
  }
62
+ }
63
+ return cached;
64
+ }
65
+ async function validateStoredDeployment(stored, provider, type, opts, merge) {
66
+ const { txHash } = stored;
67
+ if (txHash !== undefined) {
20
68
  // If there is a deployment with txHash stored, we look its transaction up. If the
21
69
  // transaction is found, the deployment is reused.
22
70
  (0, debug_1.default)('found previous deployment', txHash);
23
71
  const tx = await (0, provider_1.getTransactionByHash)(provider, txHash);
24
72
  if (tx !== null) {
25
73
  (0, debug_1.default)('resuming previous deployment', txHash);
26
- return cached;
74
+ if (merge) {
75
+ // If merging, wait for the existing deployment to be mined
76
+ waitAndValidateDeployment(provider, stored, type, opts);
77
+ }
27
78
  }
28
- else if (!(await (0, provider_1.isDevelopmentNetwork)(provider))) {
79
+ else {
29
80
  // If the transaction is not found we throw an error, except if we're in
30
81
  // a development network then we simply silently redeploy.
31
- throw new InvalidDeployment(cached);
82
+ // This error should be caught by the caller to determine if we're in a dev network.
83
+ throw new InvalidDeployment(stored);
32
84
  }
33
- else {
34
- (0, debug_1.default)('ignoring invalid deployment in development network', txHash);
85
+ }
86
+ else {
87
+ const existingBytecode = await (0, provider_1.getCode)(provider, stored.address);
88
+ if ((0, provider_1.isEmpty)(existingBytecode)) {
89
+ throw new InvalidDeployment(stored);
35
90
  }
36
91
  }
37
- const deployment = await deploy();
38
- (0, debug_1.default)('initiated deployment', deployment.txHash);
39
- return deployment;
40
92
  }
41
- exports.resumeOrDeploy = resumeOrDeploy;
42
- async function waitAndValidateDeployment(provider, deployment) {
93
+ async function waitAndValidateDeployment(provider, deployment, type, opts) {
94
+ var _a, _b;
43
95
  const { txHash, address } = deployment;
44
- // Poll for 60 seconds with a 5 second poll interval.
45
- // TODO: Make these parameters configurable.
46
- const pollTimeout = 60e3;
47
- const pollInterval = 5e3;
96
+ // Poll for 60 seconds with a 5 second poll interval by default.
97
+ const pollTimeout = (_a = opts === null || opts === void 0 ? void 0 : opts.timeout) !== null && _a !== void 0 ? _a : 60e3;
98
+ const pollInterval = (_b = opts === null || opts === void 0 ? void 0 : opts.pollingInterval) !== null && _b !== void 0 ? _b : 5e3;
99
+ (0, debug_1.default)('polling timeout', pollTimeout, 'polling interval', pollInterval);
48
100
  if (txHash !== undefined) {
49
101
  const startTime = Date.now();
50
102
  // eslint-disable-next-line no-constant-condition
51
103
  while (true) {
52
- const elapsedTime = Date.now() - startTime;
53
- if (elapsedTime >= pollTimeout) {
54
- // A timeout is NOT an InvalidDeployment
55
- throw new TransactionMinedTimeout(deployment);
56
- }
57
104
  (0, debug_1.default)('verifying deployment tx mined', txHash);
58
105
  const receipt = await (0, provider_1.getTransactionReceipt)(provider, txHash);
59
106
  if (receipt && (0, provider_1.isReceiptSuccessful)(receipt)) {
@@ -68,6 +115,13 @@ async function waitAndValidateDeployment(provider, deployment) {
68
115
  (0, debug_1.default)('waiting for deployment tx mined', txHash);
69
116
  await sleep(pollInterval);
70
117
  }
118
+ if (pollTimeout != 0) {
119
+ const elapsedTime = Date.now() - startTime;
120
+ if (elapsedTime >= pollTimeout) {
121
+ // A timeout is NOT an InvalidDeployment
122
+ throw new TransactionMinedTimeout(deployment, type, !!opts);
123
+ }
124
+ }
71
125
  }
72
126
  }
73
127
  (0, debug_1.default)('verifying code in target address', address);
@@ -82,9 +136,12 @@ async function waitAndValidateDeployment(provider, deployment) {
82
136
  (0, debug_1.default)('code in target address found', address);
83
137
  }
84
138
  exports.waitAndValidateDeployment = waitAndValidateDeployment;
85
- class TransactionMinedTimeout extends Error {
86
- constructor(deployment) {
87
- super(`Timed out waiting for transaction ${deployment.txHash}`);
139
+ class TransactionMinedTimeout extends error_1.UpgradesError {
140
+ constructor(deployment, type, configurableTimeout) {
141
+ super(`Timed out waiting for ${type ? type + ' ' : ''}contract deployment to address ${deployment.address} with transaction ${deployment.txHash}`, () => 'Run the function again to continue waiting for the transaction confirmation.' +
142
+ (configurableTimeout
143
+ ? ' If the problem persists, adjust the polling parameters with the timeout and pollingInterval options.'
144
+ : ''));
88
145
  this.deployment = deployment;
89
146
  }
90
147
  }
@@ -1 +1 @@
1
- {"version":3,"file":"deployment.js","sourceRoot":"","sources":["../src/deployment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deployment.js","sourceRoot":"","sources":["../src/deployment.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const ava_1 = __importDefault(require("ava"));
7
7
  const util_1 = require("util");
8
+ const _1 = require(".");
8
9
  const deployment_1 = require("./deployment");
9
10
  const stub_provider_1 = require("./stub-provider");
10
11
  const sleep = (0, util_1.promisify)(setTimeout);
@@ -89,4 +90,26 @@ const sleep = (0, util_1.promisify)(setTimeout);
89
90
  provider.addContract(deployment.address);
90
91
  await (0, deployment_1.waitAndValidateDeployment)(provider, deployment);
91
92
  });
93
+ (0, ava_1.default)('tx mined timeout - no params', async (t) => {
94
+ const provider = (0, stub_provider_1.stubProvider)();
95
+ const deployment = await (0, deployment_1.resumeOrDeploy)(provider, undefined, provider.deploy);
96
+ try {
97
+ throw new _1.TransactionMinedTimeout(deployment);
98
+ }
99
+ catch (e) {
100
+ const EXPECTED = /Timed out waiting for contract deployment to address \S+ with transaction \S+\n\nRun the function again to continue waiting for the transaction confirmation./;
101
+ t.true(EXPECTED.test(e.message), e.message);
102
+ }
103
+ });
104
+ (0, ava_1.default)('tx mined timeout - params', async (t) => {
105
+ const provider = (0, stub_provider_1.stubProvider)();
106
+ const deployment = await (0, deployment_1.resumeOrDeploy)(provider, undefined, provider.deploy);
107
+ try {
108
+ throw new _1.TransactionMinedTimeout(deployment, 'implementation', true);
109
+ }
110
+ catch (e) {
111
+ const EXPECTED = /Timed out waiting for implementation contract deployment to address \S+ with transaction \S+\n\nRun the function again to continue waiting for the transaction confirmation. If the problem persists, adjust the polling parameters with the timeout and pollingInterval options./;
112
+ t.true(EXPECTED.test(e.message), e.message);
113
+ }
114
+ });
92
115
  //# sourceMappingURL=deployment.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"deployment.test.js","sourceRoot":"","sources":["../src/deployment.test.ts"],"names":[],"mappings":";;;;;AAAA,8CAAuB;AACvB,+BAAiC;AAEjC,6CAAqF;AACrF,mDAA+C;AAE/C,MAAM,KAAK,GAAG,IAAA,gBAAS,EAAC,UAAU,CAAC,CAAC;AAEpC,IAAA,aAAI,EAAC,sBAAsB,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IACrC,MAAM,QAAQ,GAAG,IAAA,4BAAY,GAAE,CAAC;IAChC,MAAM,UAAU,GAAG,MAAM,IAAA,2BAAc,EAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9E,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,yCAAyC,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IACxD,MAAM,QAAQ,GAAG,IAAA,4BAAY,GAAE,CAAC;IAChC,MAAM,KAAK,GAAG,MAAM,IAAA,2BAAc,EAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;IAChF,MAAM,MAAM,GAAG,MAAM,IAAA,2BAAc,EAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC7E,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACpB,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,4CAA4C,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IAC3D,MAAM,QAAQ,GAAG,IAAA,4BAAY,GAAE,CAAC;IAChC,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC;IACtC,OAAO,KAAK,CAAC,MAAM,CAAC;IACpB,MAAM,MAAM,GAAG,MAAM,IAAA,2BAAc,EAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC7E,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACpB,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,2BAA2B,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IAC1C,MAAM,QAAQ,GAAG,IAAA,4BAAY,GAAE,CAAC;IAChC,MAAM,cAAc,GAAe;QACjC,OAAO,EAAE,4CAA4C;QACrD,MAAM,EAAE,oEAAoE;KAC7E,CAAC;IACF,MAAM,CAAC,CAAC,WAAW,CAAC,IAAA,2BAAc,EAAC,QAAQ,EAAE,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACjF,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,6CAA6C,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IAC5D,kCAAkC;IAClC,MAAM,QAAQ,GAAG,IAAA,4BAAY,EAAC,KAAK,EAAE,2CAA2C,CAAC,CAAC;IAClF,MAAM,cAAc,GAAe;QACjC,OAAO,EAAE,4CAA4C;QACrD,MAAM,EAAE,oEAAoE;KAC7E,CAAC;IACF,MAAM,UAAU,GAAG,MAAM,IAAA,2BAAc,EAAC,QAAQ,EAAE,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnF,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,0CAA0C,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IACzD,MAAM,QAAQ,GAAG,IAAA,4BAAY,GAAE,CAAC;IAChC,MAAM,UAAU,GAAG,MAAM,IAAA,2BAAc,EAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9E,MAAM,IAAA,sCAAyB,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACtD,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;AAClD,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,6CAA6C,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IAC5D,MAAM,QAAQ,GAAG,IAAA,4BAAY,GAAE,CAAC;IAChC,MAAM,UAAU,GAAG,MAAM,IAAA,2BAAc,EAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9E,OAAO,UAAU,CAAC,MAAM,CAAC;IACzB,MAAM,IAAA,sCAAyB,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACtD,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;AAClD,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,gCAAgC,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IAC/C,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,IAAA,4BAAY,GAAE,CAAC;IAChC,MAAM,UAAU,GAAG,MAAM,IAAA,2BAAc,EAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;IACrF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,IAAA,sCAAyB,EAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACrH,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,CAAC;IAChB,MAAM,IAAA,sCAAyB,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AACxD,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,qCAAqC,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IACpD,MAAM,QAAQ,GAAG,IAAA,4BAAY,GAAE,CAAC;IAChC,MAAM,UAAU,GAAG,MAAM,IAAA,2BAAc,EAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9E,oEAAoE;IACpE,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,MAAO,CAAC,CAAC;IACpC,MAAM,CAAC,CAAC,WAAW,CAAC,IAAA,sCAAyB,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AACvE,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,gDAAgD,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IAC/D,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,IAAA,4BAAY,GAAE,CAAC;IAChC,MAAM,UAAU,GAAG,MAAM,IAAA,2BAAc,EAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9E,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,IAAA,sCAAyB,EAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACrH,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtB,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,IAAA,sCAAyB,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AACxD,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"deployment.test.js","sourceRoot":"","sources":["../src/deployment.test.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { EthereumProvider } from './provider';
2
2
  export declare function isTransparentOrUUPSProxy(provider: EthereumProvider, address: string): Promise<boolean>;
3
+ export declare function isTransparentProxy(provider: EthereumProvider, address: string): Promise<boolean>;
3
4
  export declare function isBeaconProxy(provider: EthereumProvider, address: string): Promise<boolean>;
4
5
  //# sourceMappingURL=eip-1967-type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"eip-1967-type.d.ts","sourceRoot":"","sources":["../src/eip-1967-type.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,wBAAsB,wBAAwB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAY5G;AAED,wBAAsB,aAAa,CAAC,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAYjG"}
1
+ {"version":3,"file":"eip-1967-type.d.ts","sourceRoot":"","sources":["../src/eip-1967-type.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,wBAAsB,wBAAwB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAY5G;AAED,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGtG;AAED,wBAAsB,aAAa,CAAC,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAYjG"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isBeaconProxy = exports.isTransparentOrUUPSProxy = void 0;
3
+ exports.isBeaconProxy = exports.isTransparentProxy = exports.isTransparentOrUUPSProxy = void 0;
4
4
  const eip_1967_1 = require("./eip-1967");
5
5
  async function isTransparentOrUUPSProxy(provider, address) {
6
6
  try {
@@ -18,6 +18,11 @@ async function isTransparentOrUUPSProxy(provider, address) {
18
18
  }
19
19
  }
20
20
  exports.isTransparentOrUUPSProxy = isTransparentOrUUPSProxy;
21
+ async function isTransparentProxy(provider, address) {
22
+ const adminAddress = await (0, eip_1967_1.getAdminAddress)(provider, address);
23
+ return !(0, eip_1967_1.isEmptySlot)(adminAddress);
24
+ }
25
+ exports.isTransparentProxy = isTransparentProxy;
21
26
  async function isBeaconProxy(provider, address) {
22
27
  try {
23
28
  await (0, eip_1967_1.getBeaconAddress)(provider, address);
@@ -1 +1 @@
1
- {"version":3,"file":"eip-1967-type.js","sourceRoot":"","sources":["../src/eip-1967-type.ts"],"names":[],"mappings":";;;AAAA,yCAKoB;AAGb,KAAK,UAAU,wBAAwB,CAAC,QAA0B,EAAE,OAAe;IACxF,IAAI;QACF,MAAM,IAAA,mCAAwB,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAClD,2FAA2F;QAC3F,OAAO,IAAI,CAAC;KACb;IAAC,OAAO,CAAM,EAAE;QACf,IAAI,CAAC,YAAY,wCAA6B,EAAE;YAC9C,OAAO,KAAK,CAAC;SACd;aAAM;YACL,MAAM,CAAC,CAAC;SACT;KACF;AACH,CAAC;AAZD,4DAYC;AAEM,KAAK,UAAU,aAAa,CAAC,QAA0B,EAAE,OAAe;IAC7E,IAAI;QACF,MAAM,IAAA,2BAAgB,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC1C,iFAAiF;QACjF,OAAO,IAAI,CAAC;KACb;IAAC,OAAO,CAAM,EAAE;QACf,IAAI,CAAC,YAAY,gCAAqB,EAAE;YACtC,OAAO,KAAK,CAAC;SACd;aAAM;YACL,MAAM,CAAC,CAAC;SACT;KACF;AACH,CAAC;AAZD,sCAYC"}
1
+ {"version":3,"file":"eip-1967-type.js","sourceRoot":"","sources":["../src/eip-1967-type.ts"],"names":[],"mappings":";;;AAAA,yCAOoB;AAGb,KAAK,UAAU,wBAAwB,CAAC,QAA0B,EAAE,OAAe;IACxF,IAAI;QACF,MAAM,IAAA,mCAAwB,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAClD,2FAA2F;QAC3F,OAAO,IAAI,CAAC;KACb;IAAC,OAAO,CAAM,EAAE;QACf,IAAI,CAAC,YAAY,wCAA6B,EAAE;YAC9C,OAAO,KAAK,CAAC;SACd;aAAM;YACL,MAAM,CAAC,CAAC;SACT;KACF;AACH,CAAC;AAZD,4DAYC;AAEM,KAAK,UAAU,kBAAkB,CAAC,QAA0B,EAAE,OAAe;IAClF,MAAM,YAAY,GAAG,MAAM,IAAA,0BAAe,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9D,OAAO,CAAC,IAAA,sBAAW,EAAC,YAAY,CAAC,CAAC;AACpC,CAAC;AAHD,gDAGC;AAEM,KAAK,UAAU,aAAa,CAAC,QAA0B,EAAE,OAAe;IAC7E,IAAI;QACF,MAAM,IAAA,2BAAgB,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC1C,iFAAiF;QACjF,OAAO,IAAI,CAAC;KACb;IAAC,OAAO,CAAM,EAAE;QACf,IAAI,CAAC,YAAY,gCAAqB,EAAE;YACtC,OAAO,KAAK,CAAC;SACd;aAAM;YACL,MAAM,CAAC,CAAC;SACT;KACF;AACH,CAAC;AAZD,sCAYC"}
@@ -9,4 +9,5 @@ export declare function getImplementationAddress(provider: EthereumProvider, add
9
9
  export declare function getBeaconAddress(provider: EthereumProvider, address: string): Promise<string>;
10
10
  export declare function toFallbackEip1967Hash(label: string): string;
11
11
  export declare function toEip1967Hash(label: string): string;
12
+ export declare function isEmptySlot(storage: string): boolean;
12
13
  //# sourceMappingURL=eip-1967.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"eip-1967.d.ts","sourceRoot":"","sources":["../src/eip-1967.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAgB,MAAM,YAAY,CAAC;AAG5D,qBAAa,6BAA8B,SAAQ,aAAa;CAAG;AAEnE,qBAAa,qBAAsB,SAAQ,aAAa;CAAG;AAE3D,wBAAsB,eAAe,CAAC,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CASlG;AAED,wBAAsB,wBAAwB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAa3G;AAED,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQnG;AAeD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAInD"}
1
+ {"version":3,"file":"eip-1967.d.ts","sourceRoot":"","sources":["../src/eip-1967.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAgB,MAAM,YAAY,CAAC;AAG5D,qBAAa,6BAA8B,SAAQ,aAAa;CAAG;AACnE,qBAAa,qBAAsB,SAAQ,aAAa;CAAG;AAE3D,wBAAsB,eAAe,CAAC,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CASlG;AAED,wBAAsB,wBAAwB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAe3G;AAED,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQnG;AAeD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAInD;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAGpD"}
package/dist/eip-1967.js CHANGED
@@ -3,7 +3,7 @@ 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.toEip1967Hash = exports.toFallbackEip1967Hash = exports.getBeaconAddress = exports.getImplementationAddress = exports.getAdminAddress = exports.EIP1967BeaconNotFound = exports.EIP1967ImplementationNotFound = void 0;
6
+ exports.isEmptySlot = exports.toEip1967Hash = exports.toFallbackEip1967Hash = exports.getBeaconAddress = exports.getImplementationAddress = exports.getAdminAddress = exports.EIP1967BeaconNotFound = exports.EIP1967ImplementationNotFound = void 0;
7
7
  const bn_js_1 = __importDefault(require("bn.js"));
8
8
  const ethereumjs_util_1 = require("ethereumjs-util");
9
9
  const error_1 = require("./error");
@@ -23,7 +23,7 @@ exports.getAdminAddress = getAdminAddress;
23
23
  async function getImplementationAddress(provider, address) {
24
24
  const storage = await getStorageFallback(provider, address, toEip1967Hash('eip1967.proxy.implementation'), toFallbackEip1967Hash('org.zeppelinos.proxy.implementation'));
25
25
  if (isEmptySlot(storage)) {
26
- throw new EIP1967ImplementationNotFound(`Contract at ${address} doesn't look like an administered ERC 1967 proxy`);
26
+ throw new EIP1967ImplementationNotFound(`Contract at ${address} doesn't look like an ERC 1967 proxy with a logic contract address`);
27
27
  }
28
28
  return parseAddressFromStorage(storage);
29
29
  }
@@ -60,6 +60,7 @@ function isEmptySlot(storage) {
60
60
  storage = storage.replace(/^0x/, '');
61
61
  return new bn_js_1.default(storage, 'hex').isZero();
62
62
  }
63
+ exports.isEmptySlot = isEmptySlot;
63
64
  function parseAddressFromStorage(storage) {
64
65
  const address = (0, address_1.parseAddress)(storage);
65
66
  if (address === undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"eip-1967.js","sourceRoot":"","sources":["../src/eip-1967.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eip-1967.js","sourceRoot":"","sources":["../src/eip-1967.ts"],"names":[],"mappings":"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"}
@@ -24,7 +24,7 @@ async function getImplementationAddressFromBeacon(provider, beaconAddress) {
24
24
  catch (e) {
25
25
  if (!(e.message.includes('function selector was not recognized') ||
26
26
  e.message.includes('invalid opcode') ||
27
- e.message.includes('Transaction reverted'))) {
27
+ e.message.includes('revert'))) {
28
28
  throw e;
29
29
  } // otherwise fall through with no result
30
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"impl-address.js","sourceRoot":"","sources":["../src/impl-address.ts"],"names":[],"mappings":";;;AAAA,qDAA4C;AAC5C,wBAOW;AAGX,6CAA+C;AAE/C,MAAa,aAAc,SAAQ,gBAAa;CAAG;AAAnD,sCAAmD;AAEnD;;;;;;GAMG;AACI,KAAK,UAAU,kCAAkC,CACtD,QAA0B,EAC1B,aAAqB;IAErB,MAAM,sBAAsB,GAAG,IAAI,GAAG,IAAA,2BAAS,EAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7G,IAAI,MAA0B,CAAC;IAC/B,IAAI;QACF,MAAM,WAAW,GAAG,MAAM,IAAA,OAAI,EAAC,QAAQ,EAAE,aAAa,EAAE,sBAAsB,CAAC,CAAC;QAChF,MAAM,GAAG,IAAA,sBAAY,EAAC,WAAW,CAAC,CAAC;KACpC;IAAC,OAAO,CAAM,EAAE;QACf,IACE,CAAC,CACC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,sCAAsC,CAAC;YAC1D,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YACpC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAC3C,EACD;YACA,MAAM,CAAC,CAAC;SACT,CAAC,wCAAwC;KAC3C;IACD,IAAI,MAAM,KAAK,SAAS,EAAE;QACxB,MAAM,IAAI,aAAa,CAAC,eAAe,aAAa,6BAA6B,CAAC,CAAC;KACpF;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAxBD,gFAwBC;AAED;;;;GAIG;AACI,KAAK,UAAU,iCAAiC,CACrD,QAA0B,EAC1B,YAAoB;IAEpB,IAAI;QACF,OAAO,MAAM,IAAA,2BAAwB,EAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;KAC/D;IAAC,OAAO,CAAM,EAAE;QACf,IAAI,CAAC,YAAY,gCAA6B,EAAE;YAC9C,IAAI;gBACF,MAAM,aAAa,GAAG,MAAM,IAAA,mBAAgB,EAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;gBACrE,OAAO,MAAM,kCAAkC,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;aAC1E;YAAC,OAAO,CAAM,EAAE;gBACf,IAAI,CAAC,YAAY,wBAAqB,EAAE;oBACtC,OAAO,SAAS,CAAC;iBAClB;qBAAM;oBACL,MAAM,CAAC,CAAC;iBACT;aACF;SACF;aAAM;YACL,MAAM,CAAC,CAAC;SACT;KACF;AACH,CAAC;AAtBD,8EAsBC"}
1
+ {"version":3,"file":"impl-address.js","sourceRoot":"","sources":["../src/impl-address.ts"],"names":[],"mappings":";;;AAAA,qDAA4C;AAC5C,wBAOW;AAGX,6CAA+C;AAE/C,MAAa,aAAc,SAAQ,gBAAa;CAAG;AAAnD,sCAAmD;AAEnD;;;;;;GAMG;AACI,KAAK,UAAU,kCAAkC,CACtD,QAA0B,EAC1B,aAAqB;IAErB,MAAM,sBAAsB,GAAG,IAAI,GAAG,IAAA,2BAAS,EAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7G,IAAI,MAA0B,CAAC;IAC/B,IAAI;QACF,MAAM,WAAW,GAAG,MAAM,IAAA,OAAI,EAAC,QAAQ,EAAE,aAAa,EAAE,sBAAsB,CAAC,CAAC;QAChF,MAAM,GAAG,IAAA,sBAAY,EAAC,WAAW,CAAC,CAAC;KACpC;IAAC,OAAO,CAAM,EAAE;QACf,IACE,CAAC,CACC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,sCAAsC,CAAC;YAC1D,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YACpC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAC7B,EACD;YACA,MAAM,CAAC,CAAC;SACT,CAAC,wCAAwC;KAC3C;IACD,IAAI,MAAM,KAAK,SAAS,EAAE;QACxB,MAAM,IAAI,aAAa,CAAC,eAAe,aAAa,6BAA6B,CAAC,CAAC;KACpF;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAxBD,gFAwBC;AAED;;;;GAIG;AACI,KAAK,UAAU,iCAAiC,CACrD,QAA0B,EAC1B,YAAoB;IAEpB,IAAI;QACF,OAAO,MAAM,IAAA,2BAAwB,EAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;KAC/D;IAAC,OAAO,CAAM,EAAE;QACf,IAAI,CAAC,YAAY,gCAA6B,EAAE;YAC9C,IAAI;gBACF,MAAM,aAAa,GAAG,MAAM,IAAA,mBAAgB,EAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;gBACrE,OAAO,MAAM,kCAAkC,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;aAC1E;YAAC,OAAO,CAAM,EAAE;gBACf,IAAI,CAAC,YAAY,wBAAqB,EAAE;oBACtC,OAAO,SAAS,CAAC;iBAClB;qBAAM;oBACL,MAAM,CAAC,CAAC;iBACT;aACF;SACF;aAAM;YACL,MAAM,CAAC,CAAC;SACT;KACF;AACH,CAAC;AAtBD,8EAsBC"}
@@ -1,7 +1,28 @@
1
1
  import { ImplDeployment } from './manifest';
2
2
  import { EthereumProvider } from './provider';
3
3
  import { Deployment } from './deployment';
4
- import type { Version } from './version';
5
- export declare function fetchOrDeploy(version: Version, provider: EthereumProvider, deploy: () => Promise<ImplDeployment>): Promise<string>;
6
- export declare function fetchOrDeployAdmin(provider: EthereumProvider, deploy: () => Promise<Deployment>): Promise<string>;
4
+ import { Version } from './version';
5
+ import { DeployOpts } from '.';
6
+ export interface ManifestField<T> {
7
+ get(): T | undefined;
8
+ set(value: T | undefined): void;
9
+ merge?(value: T | undefined): void;
10
+ }
11
+ /**
12
+ * Deletes the deployment by setting it to undefined.
13
+ * Should only be used during a manifest run.
14
+ */
15
+ export declare function deleteDeployment(deployment: ManifestField<Deployment>): void;
16
+ export declare function fetchOrDeploy(version: Version, provider: EthereumProvider, deploy: () => Promise<ImplDeployment>, opts?: DeployOpts, merge?: boolean): Promise<string>;
17
+ /**
18
+ * Merge the addresses in the deployments and returns them.
19
+ *
20
+ * @param existing existing deployment
21
+ * @param value deployment to add
22
+ */
23
+ export declare function mergeAddresses(existing: ImplDeployment, value: ImplDeployment): {
24
+ address: string;
25
+ allAddresses: string[];
26
+ };
27
+ export declare function fetchOrDeployAdmin(provider: EthereumProvider, deploy: () => Promise<Deployment>, opts?: DeployOpts): Promise<string>;
7
28
  //# sourceMappingURL=impl-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"impl-store.d.ts","sourceRoot":"","sources":["../src/impl-store.ts"],"names":[],"mappings":"AACA,OAAO,EAA0B,cAAc,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAwB,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,UAAU,EAAgE,MAAM,cAAc,CAAC;AACxG,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6DzC,wBAAsB,aAAa,CACjC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,GACpC,OAAO,CAAC,MAAM,CAAC,CAEjB;AAQD,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,GAChC,OAAO,CAAC,MAAM,CAAC,CAEjB"}
1
+ {"version":3,"file":"impl-store.d.ts","sourceRoot":"","sources":["../src/impl-store.ts"],"names":[],"mappings":"AACA,OAAO,EAA0B,cAAc,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAwB,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,UAAU,EAAgE,MAAM,cAAc,CAAC;AACxG,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC;AAQ/B,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC;IACrB,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;IAChC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;CACpC;AA0ED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,aAAa,CAAC,UAAU,CAAC,QAErE;AAED,wBAAsB,aAAa,CACjC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,EACrC,IAAI,CAAC,EAAE,UAAU,EACjB,KAAK,CAAC,EAAE,OAAO,GACd,OAAO,CAAC,MAAM,CAAC,CAEjB;AAiBD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc;;;EAU7E;AAED,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,EACjC,IAAI,CAAC,EAAE,UAAU,GAChB,OAAO,CAAC,MAAM,CAAC,CAEjB"}