gate-evm-tools 1.0.22 → 1.0.24

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 (132) hide show
  1. package/README.md +111 -5
  2. package/bin/manifest-bootstrap.js +109 -3
  3. package/dist/commands/prepare.d.ts +8 -0
  4. package/dist/commands/prepare.d.ts.map +1 -0
  5. package/dist/commands/prepare.js +78 -0
  6. package/dist/commands/prepare.js.map +1 -0
  7. package/dist/commands/sync.d.ts.map +1 -1
  8. package/dist/commands/sync.js +11 -28
  9. package/dist/commands/sync.js.map +1 -1
  10. package/dist/core/preparation/artifacts.d.ts +21 -0
  11. package/dist/core/preparation/artifacts.d.ts.map +1 -0
  12. package/dist/core/preparation/artifacts.js +80 -0
  13. package/dist/core/preparation/artifacts.js.map +1 -0
  14. package/dist/core/preparation/evm.d.ts +39 -0
  15. package/dist/core/preparation/evm.d.ts.map +1 -0
  16. package/dist/core/preparation/evm.js +290 -0
  17. package/dist/core/preparation/evm.js.map +1 -0
  18. package/dist/core/preparation/index.d.ts +9 -0
  19. package/dist/core/preparation/index.d.ts.map +1 -0
  20. package/dist/core/preparation/index.js +15 -0
  21. package/dist/core/preparation/index.js.map +1 -0
  22. package/dist/core/preparation/manifest.d.ts +43 -0
  23. package/dist/core/preparation/manifest.d.ts.map +1 -0
  24. package/dist/core/preparation/manifest.js +169 -0
  25. package/dist/core/preparation/manifest.js.map +1 -0
  26. package/dist/core/preparation/normalize.d.ts +7 -0
  27. package/dist/core/preparation/normalize.d.ts.map +1 -0
  28. package/dist/core/preparation/normalize.js +496 -0
  29. package/dist/core/preparation/normalize.js.map +1 -0
  30. package/dist/core/preparation/types.d.ts +111 -0
  31. package/dist/core/preparation/types.d.ts.map +1 -0
  32. package/dist/core/preparation/types.js +2 -0
  33. package/dist/core/preparation/types.js.map +1 -0
  34. package/dist/core/preparation/zkManifestSync.d.ts +49 -0
  35. package/dist/core/preparation/zkManifestSync.d.ts.map +1 -0
  36. package/dist/core/preparation/zkManifestSync.js +159 -0
  37. package/dist/core/preparation/zkManifestSync.js.map +1 -0
  38. package/dist/core/preparation/zkUpgradeValidation.d.ts +37 -0
  39. package/dist/core/preparation/zkUpgradeValidation.d.ts.map +1 -0
  40. package/dist/core/preparation/zkUpgradeValidation.js +91 -0
  41. package/dist/core/preparation/zkUpgradeValidation.js.map +1 -0
  42. package/dist/core/preparation/zksync.d.ts +28 -0
  43. package/dist/core/preparation/zksync.d.ts.map +1 -0
  44. package/dist/core/preparation/zksync.js +248 -0
  45. package/dist/core/preparation/zksync.js.map +1 -0
  46. package/dist/custody/credential.d.ts +16 -0
  47. package/dist/custody/credential.d.ts.map +1 -0
  48. package/dist/custody/credential.js +68 -0
  49. package/dist/custody/credential.js.map +1 -0
  50. package/dist/custody/hardhat-runtime.d.ts +16 -0
  51. package/dist/custody/hardhat-runtime.d.ts.map +1 -0
  52. package/dist/custody/hardhat-runtime.js +101 -0
  53. package/dist/custody/hardhat-runtime.js.map +1 -0
  54. package/dist/custody/hardhat.d.ts +3 -0
  55. package/dist/custody/hardhat.d.ts.map +1 -0
  56. package/dist/custody/hardhat.js +8 -0
  57. package/dist/custody/hardhat.js.map +1 -0
  58. package/dist/custody/index.d.ts +6 -0
  59. package/dist/custody/index.d.ts.map +1 -0
  60. package/dist/custody/index.js +6 -0
  61. package/dist/custody/index.js.map +1 -0
  62. package/dist/custody/service.d.ts +16 -0
  63. package/dist/custody/service.d.ts.map +1 -0
  64. package/dist/custody/service.js +100 -0
  65. package/dist/custody/service.js.map +1 -0
  66. package/dist/custody/signer.d.ts +13 -0
  67. package/dist/custody/signer.d.ts.map +1 -0
  68. package/dist/custody/signer.js +258 -0
  69. package/dist/custody/signer.js.map +1 -0
  70. package/dist/custody/version.d.ts +4 -0
  71. package/dist/custody/version.d.ts.map +1 -0
  72. package/dist/custody/version.js +13 -0
  73. package/dist/custody/version.js.map +1 -0
  74. package/dist/index.d.ts.map +1 -1
  75. package/dist/index.js +20 -0
  76. package/dist/index.js.map +1 -1
  77. package/dist/sync/index.d.ts +31 -0
  78. package/dist/sync/index.d.ts.map +1 -0
  79. package/dist/sync/index.js +57 -0
  80. package/dist/sync/index.js.map +1 -0
  81. package/dist/types.d.ts +9 -1
  82. package/dist/types.d.ts.map +1 -1
  83. package/dist/workflow/index.d.ts +5 -0
  84. package/dist/workflow/index.d.ts.map +1 -0
  85. package/dist/workflow/index.js +3 -0
  86. package/dist/workflow/index.js.map +1 -0
  87. package/dist-cjs/core/preparation/artifacts.js +89 -0
  88. package/dist-cjs/core/preparation/artifacts.js.map +1 -0
  89. package/dist-cjs/core/preparation/evm.js +297 -0
  90. package/dist-cjs/core/preparation/evm.js.map +1 -0
  91. package/dist-cjs/core/preparation/index.js +19 -0
  92. package/dist-cjs/core/preparation/index.js.map +1 -0
  93. package/dist-cjs/core/preparation/manifest.js +180 -0
  94. package/dist-cjs/core/preparation/manifest.js.map +1 -0
  95. package/dist-cjs/core/preparation/normalize.js +507 -0
  96. package/dist-cjs/core/preparation/normalize.js.map +1 -0
  97. package/dist-cjs/core/preparation/types.js +3 -0
  98. package/dist-cjs/core/preparation/types.js.map +1 -0
  99. package/dist-cjs/core/preparation/zkManifestSync.js +166 -0
  100. package/dist-cjs/core/preparation/zkManifestSync.js.map +1 -0
  101. package/dist-cjs/core/preparation/zkUpgradeValidation.js +101 -0
  102. package/dist-cjs/core/preparation/zkUpgradeValidation.js.map +1 -0
  103. package/dist-cjs/core/preparation/zksync.js +252 -0
  104. package/dist-cjs/core/preparation/zksync.js.map +1 -0
  105. package/dist-cjs/core/syncUpgradeJson.js +315 -0
  106. package/dist-cjs/core/syncUpgradeJson.js.map +1 -0
  107. package/dist-cjs/custody/credential.js +74 -0
  108. package/dist-cjs/custody/credential.js.map +1 -0
  109. package/dist-cjs/custody/hardhat-runtime.js +104 -0
  110. package/dist-cjs/custody/hardhat-runtime.js.map +1 -0
  111. package/dist-cjs/custody/hardhat.js +15 -0
  112. package/dist-cjs/custody/hardhat.js.map +1 -0
  113. package/dist-cjs/custody/index.js +18 -0
  114. package/dist-cjs/custody/index.js.map +1 -0
  115. package/dist-cjs/custody/service.js +105 -0
  116. package/dist-cjs/custody/service.js.map +1 -0
  117. package/dist-cjs/custody/signer.js +261 -0
  118. package/dist-cjs/custody/signer.js.map +1 -0
  119. package/dist-cjs/custody/version.js +16 -0
  120. package/dist-cjs/custody/version.js.map +1 -0
  121. package/dist-cjs/package.json +3 -0
  122. package/dist-cjs/sync/index.js +60 -0
  123. package/dist-cjs/sync/index.js.map +1 -0
  124. package/dist-cjs/types.js +3 -0
  125. package/dist-cjs/types.js.map +1 -0
  126. package/dist-cjs/utils/manifestTransaction.js +302 -0
  127. package/dist-cjs/utils/manifestTransaction.js.map +1 -0
  128. package/dist-cjs/utils/openzeppelin.js +57 -0
  129. package/dist-cjs/utils/openzeppelin.js.map +1 -0
  130. package/dist-cjs/workflow/index.js +12 -0
  131. package/dist-cjs/workflow/index.js.map +1 -0
  132. package/package.json +73 -5
@@ -0,0 +1,297 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.prepareEvm = void 0;
7
+ const ethers_1 = require("ethers");
8
+ const node_crypto_1 = __importDefault(require("node:crypto"));
9
+ const node_fs_1 = __importDefault(require("node:fs"));
10
+ const upgrades_core_1 = require("@openzeppelin/upgrades-core");
11
+ const deploy_impl_js_1 = require("@openzeppelin/hardhat-upgrades/dist/utils/deploy-impl.js");
12
+ const artifacts_js_1 = require("./artifacts.js");
13
+ const normalize_js_1 = require("./normalize.js");
14
+ const ERC1967_PROXY_ARTIFACT = '@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol:ERC1967Proxy';
15
+ const FACTORY_INTERFACE = new ethers_1.Interface([
16
+ 'function deploy(bytes32 salt, bytes initCode, bytes data, uint256 create2ForwardValue, uint256 callForwardValue) payable returns (address)',
17
+ ]);
18
+ const UPGRADE_INTERFACE = new ethers_1.Interface([
19
+ 'function upgradeToAndCall(address newImplementation, bytes data) payable',
20
+ ]);
21
+ const sha256Json = (value) => node_crypto_1.default
22
+ .createHash('sha256')
23
+ .update((0, normalize_js_1.canonicalPreparationJson)(JSON.parse(JSON.stringify(value))))
24
+ .digest('hex');
25
+ const loadDefaultUpgradeEvidence = async (hre, request, factory, validationOptions) => {
26
+ const getImplementationAddress = hre.upgrades?.erc1967?.getImplementationAddress;
27
+ if (!getImplementationAddress) {
28
+ throw new Error('OpenZeppelin ERC-1967 implementation lookup is required');
29
+ }
30
+ if (!hre.network.provider)
31
+ throw new Error('Hardhat network provider is required');
32
+ const currentImplementation = await getImplementationAddress(request.proxy);
33
+ const deployData = await (0, deploy_impl_js_1.getDeployData)(hre, factory, validationOptions);
34
+ const manifest = await upgrades_core_1.Manifest.forNetwork(hre.network.provider);
35
+ const oldDeployment = await manifest.getDeploymentFromAddress(currentImplementation);
36
+ const hasCanonical = node_fs_1.default.existsSync(manifest.file);
37
+ const hasFallback = manifest.fallbackFile !== manifest.file && node_fs_1.default.existsSync(manifest.fallbackFile);
38
+ if (hasCanonical && hasFallback) {
39
+ throw new Error('OpenZeppelin manifest canonical/fallback files are ambiguous');
40
+ }
41
+ const manifestFile = hasCanonical ? manifest.file : hasFallback ? manifest.fallbackFile : undefined;
42
+ if (!manifestFile)
43
+ throw new Error('OpenZeppelin manifest file is missing');
44
+ return {
45
+ currentImplementation,
46
+ oldLayoutHash: sha256Json(oldDeployment.layout),
47
+ newLayoutHash: sha256Json(deployData.layout),
48
+ manifestDigest: node_crypto_1.default.createHash('sha256').update(node_fs_1.default.readFileSync(manifestFile)).digest('hex'),
49
+ };
50
+ };
51
+ const assertAddressPolicy = (predictedAddress, policy, label) => {
52
+ if (!policy)
53
+ return;
54
+ const normalized = (0, ethers_1.getAddress)(predictedAddress);
55
+ if (policy.expectedAddress && normalized !== (0, ethers_1.getAddress)(policy.expectedAddress)) {
56
+ throw new Error(`${label} predicted ${normalized} but expected ${policy.expectedAddress}`);
57
+ }
58
+ if (policy.leadingZeroBytes !== undefined
59
+ && !normalized.slice(2).toLowerCase().startsWith('00'.repeat(policy.leadingZeroBytes))) {
60
+ throw new Error(`${label} does not satisfy leadingZeroBytes=${policy.leadingZeroBytes}`);
61
+ }
62
+ };
63
+ const buildDeployment = async (input) => {
64
+ (0, artifacts_js_1.assertArtifactScheme)(input.artifact, 'evm');
65
+ const factory = new ethers_1.ContractFactory(input.artifact.abi, input.artifact.bytecode);
66
+ const constructorInput = factory.interface.encodeDeploy(input.constructorArgs);
67
+ const initCode = (0, ethers_1.concat)([input.artifact.bytecode, constructorInput]);
68
+ const initCodeHash = (0, ethers_1.keccak256)(initCode);
69
+ const predictedAddress = (0, ethers_1.getCreate2Address)(input.factory, input.salt, initCodeHash);
70
+ assertAddressPolicy(predictedAddress, input.policy, input.role);
71
+ const code = await input.hre.ethers.provider.getCode(predictedAddress);
72
+ const status = code && code !== '0x' ? 'reused' : 'required';
73
+ const deployment = {
74
+ role: input.role,
75
+ address: predictedAddress,
76
+ salt: input.salt,
77
+ status,
78
+ constructorInput,
79
+ initCodeHash,
80
+ };
81
+ if (status === 'reused')
82
+ return { deployment, initCode, factory };
83
+ const purpose = input.role === 'contract'
84
+ ? 'deploy-contract'
85
+ : input.role === 'implementation'
86
+ ? 'deploy-implementation'
87
+ : 'deploy-proxy';
88
+ return {
89
+ deployment,
90
+ initCode,
91
+ factory,
92
+ transaction: {
93
+ id: purpose,
94
+ purpose,
95
+ to: input.factory,
96
+ value: '0',
97
+ data: FACTORY_INTERFACE.encodeFunctionData('deploy', [
98
+ input.salt,
99
+ initCode,
100
+ '0x',
101
+ 0,
102
+ 0,
103
+ ]),
104
+ operation: 0,
105
+ },
106
+ };
107
+ };
108
+ const preparePlain = async (hre, request, artifact) => {
109
+ const prepared = await buildDeployment({
110
+ hre,
111
+ role: 'contract',
112
+ artifact,
113
+ constructorArgs: request.constructorArgs,
114
+ factory: request.factory,
115
+ salt: request.salt,
116
+ policy: request.addressPolicy,
117
+ });
118
+ const create2ForwardValue = BigInt(request.create2ForwardValue ?? '0');
119
+ const callForwardValue = BigInt(request.callForwardValue ?? '0');
120
+ const transactions = prepared.transaction
121
+ ? [{
122
+ ...prepared.transaction,
123
+ value: (create2ForwardValue + callForwardValue).toString(10),
124
+ data: FACTORY_INTERFACE.encodeFunctionData('deploy', [
125
+ request.salt,
126
+ prepared.initCode,
127
+ '0x',
128
+ create2ForwardValue,
129
+ callForwardValue,
130
+ ]),
131
+ }]
132
+ : [];
133
+ const network = await hre.ethers.provider.getNetwork();
134
+ return (0, normalize_js_1.normalizePreparationPlan)({
135
+ version: 1,
136
+ requestHash: (0, normalize_js_1.hashPreparationRequest)(request),
137
+ kind: request.kind,
138
+ scheme: request.scheme,
139
+ network: request.network,
140
+ target: request.target,
141
+ chainId: network.chainId.toString(),
142
+ contract: request.contract,
143
+ artifact: (0, artifacts_js_1.artifactIdentity)(artifact, 'evm'),
144
+ validation: {
145
+ kind: 'artifact',
146
+ engine: 'hardhat-artifact',
147
+ artifactFormat: 'hh-sol-artifact-1',
148
+ },
149
+ deployments: [prepared.deployment],
150
+ transactions,
151
+ });
152
+ };
153
+ const prepareUupsInitial = async (hre, request, artifact) => {
154
+ const implementationFactory = new ethers_1.ContractFactory(artifact.abi, artifact.bytecode);
155
+ const validateImplementation = hre.upgrades?.validateImplementation;
156
+ if (!validateImplementation) {
157
+ throw new Error('OpenZeppelin validateImplementation is required for UUPS preparation');
158
+ }
159
+ const validationOptions = {
160
+ kind: 'uups',
161
+ constructorArgs: request.constructorArgs,
162
+ };
163
+ if (request.unsafeAllow)
164
+ validationOptions.unsafeAllow = request.unsafeAllow;
165
+ await validateImplementation(implementationFactory, validationOptions);
166
+ const implementation = await buildDeployment({
167
+ hre,
168
+ role: 'implementation',
169
+ artifact,
170
+ constructorArgs: request.constructorArgs,
171
+ factory: request.factory,
172
+ salt: request.implementationSalt,
173
+ });
174
+ const proxyArtifact = await hre.artifacts.readArtifact(ERC1967_PROXY_ARTIFACT);
175
+ const proxy = await buildDeployment({
176
+ hre,
177
+ role: 'proxy',
178
+ artifact: proxyArtifact,
179
+ constructorArgs: [request.placeholderImplementation, '0x'],
180
+ factory: request.factory,
181
+ salt: request.proxySalt,
182
+ policy: request.proxyAddressPolicy,
183
+ });
184
+ const initData = request.call
185
+ ? implementation.factory.interface.encodeFunctionData(request.call.method, request.call.args)
186
+ : '0x';
187
+ const transactions = [implementation.transaction, proxy.transaction]
188
+ .filter((transaction) => transaction !== undefined);
189
+ transactions.push({
190
+ id: 'upgrade-proxy',
191
+ purpose: 'upgrade-proxy',
192
+ to: proxy.deployment.address,
193
+ value: '0',
194
+ data: UPGRADE_INTERFACE.encodeFunctionData('upgradeToAndCall', [
195
+ implementation.deployment.address,
196
+ initData,
197
+ ]),
198
+ operation: 0,
199
+ });
200
+ const network = await hre.ethers.provider.getNetwork();
201
+ return (0, normalize_js_1.normalizePreparationPlan)({
202
+ version: 1,
203
+ requestHash: (0, normalize_js_1.hashPreparationRequest)(request),
204
+ kind: request.kind,
205
+ scheme: request.scheme,
206
+ network: request.network,
207
+ target: request.target,
208
+ chainId: network.chainId.toString(),
209
+ contract: request.contract,
210
+ proxyKind: 'uups',
211
+ artifact: (0, artifacts_js_1.artifactIdentity)(artifact, 'evm'),
212
+ validation: {
213
+ kind: 'uups-initial',
214
+ engine: 'openzeppelin',
215
+ artifactFormat: 'hh-sol-artifact-1',
216
+ implementationSafe: true,
217
+ },
218
+ deployments: [implementation.deployment, proxy.deployment],
219
+ transactions,
220
+ });
221
+ };
222
+ const prepareUupsUpgrade = async (hre, request, artifact, dependencies) => {
223
+ const implementationFactory = new ethers_1.ContractFactory(artifact.abi, artifact.bytecode);
224
+ const validateUpgrade = hre.upgrades?.validateUpgrade;
225
+ if (!validateUpgrade) {
226
+ throw new Error('OpenZeppelin validateUpgrade is required for UUPS preparation');
227
+ }
228
+ const validationOptions = {
229
+ kind: 'uups',
230
+ constructorArgs: request.constructorArgs,
231
+ };
232
+ if (request.unsafeAllow)
233
+ validationOptions.unsafeAllow = request.unsafeAllow;
234
+ await validateUpgrade(request.proxy, implementationFactory, validationOptions);
235
+ const evidence = await (dependencies.loadUpgradeEvidence ?? loadDefaultUpgradeEvidence)(hre, request, implementationFactory, validationOptions);
236
+ const implementation = await buildDeployment({
237
+ hre,
238
+ role: 'implementation',
239
+ artifact,
240
+ constructorArgs: request.constructorArgs,
241
+ factory: request.factory,
242
+ salt: request.implementationSalt,
243
+ policy: request.implementationAddressPolicy,
244
+ });
245
+ const initData = request.call
246
+ ? implementation.factory.interface.encodeFunctionData(request.call.method, request.call.args)
247
+ : '0x';
248
+ const transactions = implementation.transaction ? [implementation.transaction] : [];
249
+ transactions.push({
250
+ id: 'upgrade-proxy',
251
+ purpose: 'upgrade-proxy',
252
+ to: request.proxy,
253
+ value: '0',
254
+ data: UPGRADE_INTERFACE.encodeFunctionData('upgradeToAndCall', [
255
+ implementation.deployment.address,
256
+ initData,
257
+ ]),
258
+ operation: 0,
259
+ });
260
+ const network = await hre.ethers.provider.getNetwork();
261
+ return (0, normalize_js_1.normalizePreparationPlan)({
262
+ version: 1,
263
+ requestHash: (0, normalize_js_1.hashPreparationRequest)(request),
264
+ kind: request.kind,
265
+ scheme: request.scheme,
266
+ network: request.network,
267
+ target: request.target,
268
+ chainId: network.chainId.toString(),
269
+ contract: request.contract,
270
+ proxyKind: 'uups',
271
+ artifact: (0, artifacts_js_1.artifactIdentity)(artifact, 'evm'),
272
+ validation: {
273
+ kind: 'uups-upgrade',
274
+ engine: 'openzeppelin',
275
+ artifactFormat: 'hh-sol-artifact-1',
276
+ implementationSafe: true,
277
+ storageLayoutCompatible: true,
278
+ ...evidence,
279
+ },
280
+ deployments: [implementation.deployment],
281
+ transactions,
282
+ });
283
+ };
284
+ const prepareEvm = async (hre, request, dependencies = {}) => {
285
+ if (request.scheme !== 'evm')
286
+ throw new Error('EVM adapter received a non-EVM request');
287
+ const artifact = await hre.artifacts.readArtifact(request.contract);
288
+ (0, artifacts_js_1.assertArtifactScheme)(artifact, 'evm');
289
+ if (request.kind === 'create2-deploy')
290
+ return preparePlain(hre, request, artifact);
291
+ if (request.kind === 'uups-placeholder-deploy') {
292
+ return prepareUupsInitial(hre, request, artifact);
293
+ }
294
+ return prepareUupsUpgrade(hre, request, artifact, dependencies);
295
+ };
296
+ exports.prepareEvm = prepareEvm;
297
+ //# sourceMappingURL=evm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evm.js","sourceRoot":"","sources":["../../../src/core/preparation/evm.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.prepareWorkflow = void 0;
4
+ const evm_js_1 = require("./evm.js");
5
+ const zksync_js_1 = require("./zksync.js");
6
+ const normalize_js_1 = require("./normalize.js");
7
+ const prepareWorkflow = async (hre, rawRequest) => {
8
+ const request = (0, normalize_js_1.normalizePreparationRequest)(rawRequest);
9
+ if (hre.network.name !== request.network) {
10
+ throw new Error(`preparation request network ${request.network} does not match Hardhat network ${hre.network.name}`);
11
+ }
12
+ await hre.run('compile', { quiet: true });
13
+ if (request.scheme === 'evm') {
14
+ return (0, evm_js_1.prepareEvm)(hre, request);
15
+ }
16
+ return (0, zksync_js_1.prepareZkSync)(hre, request);
17
+ };
18
+ exports.prepareWorkflow = prepareWorkflow;
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/preparation/index.ts"],"names":[],"mappings":";;;AAAA,qCAAsC;AACtC,2CAA4C;AAC5C,iDAA6D;AAWtD,MAAM,eAAe,GAAG,KAAK,EAClC,GAA2B,EAC3B,UAAmB,EACiB,EAAE;IACtC,MAAM,OAAO,GAAiC,IAAA,0CAA2B,EAAC,UAAU,CAAC,CAAC;IACtF,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CACb,+BAA+B,OAAO,CAAC,OAAO,mCAAmC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CACpG,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;QAC7B,OAAO,IAAA,mBAAU,EAAC,GAAkD,EAAE,OAAO,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,IAAA,yBAAa,EAAC,GAAqD,EAAE,OAAO,CAAC,CAAC;AACvF,CAAC,CAAC;AAfW,QAAA,eAAe,mBAe1B"}
@@ -0,0 +1,180 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.hashStorageLayout = exports.readRegisteredZkUpgradeState = exports.parseTargetManifest = exports.resolveTargetManifestPaths = exports.resolveTargetManifestDirectory = void 0;
7
+ const node_crypto_1 = __importDefault(require("node:crypto"));
8
+ const node_fs_1 = __importDefault(require("node:fs"));
9
+ const node_path_1 = __importDefault(require("node:path"));
10
+ const yaml_1 = __importDefault(require("yaml"));
11
+ const upgrades_core_1 = require("@openzeppelin/upgrades-core");
12
+ const normalize_js_1 = require("./normalize.js");
13
+ const SAFE_TARGET = /^[A-Za-z0-9][A-Za-z0-9_-]{0,199}$/;
14
+ const SAFE_MANIFEST_DIR = /^\.openzeppelin(?:\.[a-z0-9][a-z0-9-]*)?$/;
15
+ const ENVIRONMENTS = new Set(['local', 'development', 'production']);
16
+ const regularFile = (filePath, label) => {
17
+ if (!node_fs_1.default.existsSync(filePath))
18
+ throw new Error(`${label} is missing: ${filePath}`);
19
+ const stat = node_fs_1.default.lstatSync(filePath);
20
+ if (stat.isSymbolicLink())
21
+ throw new Error(`${label} cannot be a symlink`);
22
+ if (!stat.isFile())
23
+ throw new Error(`${label} must be a regular file`);
24
+ };
25
+ const assertManifestDirectory = (root, manifestDir) => {
26
+ if (!SAFE_MANIFEST_DIR.test(manifestDir) || manifestDir === '.upgradable') {
27
+ throw new Error(`unsafe OpenZeppelin manifest directory: ${manifestDir}`);
28
+ }
29
+ const resolvedRoot = node_path_1.default.resolve(root);
30
+ const candidate = node_path_1.default.resolve(resolvedRoot, manifestDir);
31
+ if (node_path_1.default.dirname(candidate) !== resolvedRoot) {
32
+ throw new Error(`OpenZeppelin manifest directory escapes the project: ${manifestDir}`);
33
+ }
34
+ if (node_fs_1.default.existsSync(candidate)) {
35
+ const stat = node_fs_1.default.lstatSync(candidate);
36
+ if (stat.isSymbolicLink()) {
37
+ throw new Error(`OpenZeppelin manifest directory cannot be a symlink: ${manifestDir}`);
38
+ }
39
+ if (!stat.isDirectory()) {
40
+ throw new Error(`OpenZeppelin manifest path must be a directory: ${manifestDir}`);
41
+ }
42
+ }
43
+ return candidate;
44
+ };
45
+ const resolveTargetManifestDirectory = (root, target, env = process.env) => {
46
+ if (!SAFE_TARGET.test(target) || target.startsWith('_')) {
47
+ throw new Error(`invalid manifest target: ${target}`);
48
+ }
49
+ const resolvedRoot = node_path_1.default.resolve(root);
50
+ const configFile = node_path_1.default.join(resolvedRoot, 'config.yaml');
51
+ regularFile(configFile, 'config.yaml');
52
+ const parsed = yaml_1.default.parse(node_fs_1.default.readFileSync(configFile, 'utf8'), { merge: true });
53
+ if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {
54
+ throw new Error('config.yaml must define target keys at the top level');
55
+ }
56
+ const selected = parsed[target];
57
+ if (!selected || typeof selected !== 'object' || Array.isArray(selected)) {
58
+ throw new Error(`config.yaml has no target ${target}`);
59
+ }
60
+ const config = selected;
61
+ if (!ENVIRONMENTS.has(String(config.environment))) {
62
+ throw new Error(`config.yaml target ${target} has an invalid environment`);
63
+ }
64
+ const manifestDir = config.openzeppelin?.manifestDir;
65
+ if (typeof manifestDir !== 'string') {
66
+ throw new Error(`config.yaml target ${target} must define openzeppelin.manifestDir`);
67
+ }
68
+ if (config.environment === 'production' && manifestDir !== '.openzeppelin') {
69
+ throw new Error(`production target ${target} must use .openzeppelin`);
70
+ }
71
+ if (config.environment !== 'production' && manifestDir === '.openzeppelin') {
72
+ throw new Error(`non-production target ${target} must not use .openzeppelin`);
73
+ }
74
+ assertManifestDirectory(resolvedRoot, manifestDir);
75
+ const configuredEnvironment = env.MANIFEST_DEFAULT_DIR?.trim();
76
+ if (configuredEnvironment && configuredEnvironment !== manifestDir) {
77
+ throw new Error(`MANIFEST_DEFAULT_DIR conflict for ${target}: expected ${manifestDir}, received ${configuredEnvironment}`);
78
+ }
79
+ const configuredTarget = env.GATE_WORKFLOW_TARGET?.trim();
80
+ if (configuredTarget && configuredTarget !== target) {
81
+ throw new Error(`GATE_WORKFLOW_TARGET conflict: expected ${target}, received ${configuredTarget}`);
82
+ }
83
+ return manifestDir;
84
+ };
85
+ exports.resolveTargetManifestDirectory = resolveTargetManifestDirectory;
86
+ const resolveTargetManifestPaths = (root, target, chainId, env = process.env) => {
87
+ if (!Number.isSafeInteger(chainId) || chainId <= 0) {
88
+ throw new Error(`invalid manifest chainId: ${chainId}`);
89
+ }
90
+ const resolvedRoot = node_path_1.default.resolve(root);
91
+ const manifestDir = (0, exports.resolveTargetManifestDirectory)(resolvedRoot, target, env);
92
+ const directory = node_path_1.default.join(resolvedRoot, manifestDir);
93
+ const fallbackName = `unknown-${chainId}.json`;
94
+ const canonicalName = `${upgrades_core_1.networkNames[chainId] ?? `unknown-${chainId}`}.json`;
95
+ return {
96
+ root: resolvedRoot,
97
+ target,
98
+ manifestDir,
99
+ file: node_path_1.default.join(directory, canonicalName),
100
+ fallbackFile: node_path_1.default.join(directory, fallbackName),
101
+ };
102
+ };
103
+ exports.resolveTargetManifestPaths = resolveTargetManifestPaths;
104
+ const readManifestBytes = (paths) => {
105
+ const canonicalExists = node_fs_1.default.existsSync(paths.file);
106
+ const distinctFallback = paths.file !== paths.fallbackFile;
107
+ const fallbackExists = distinctFallback && node_fs_1.default.existsSync(paths.fallbackFile);
108
+ if (canonicalExists && fallbackExists) {
109
+ throw new Error('OpenZeppelin canonical and fallback manifests are ambiguous');
110
+ }
111
+ const selected = canonicalExists ? paths.file : fallbackExists ? paths.fallbackFile : undefined;
112
+ if (!selected)
113
+ throw new Error(`OpenZeppelin manifest is missing for target ${paths.target}`);
114
+ regularFile(selected, 'OpenZeppelin manifest');
115
+ return node_fs_1.default.readFileSync(selected);
116
+ };
117
+ const parseTargetManifest = (bytes) => {
118
+ let raw;
119
+ try {
120
+ raw = JSON.parse(bytes.toString('utf8'));
121
+ }
122
+ catch (error) {
123
+ const message = error instanceof Error ? error.message : String(error);
124
+ throw new Error(`OpenZeppelin manifest is invalid JSON: ${message}`);
125
+ }
126
+ if (!raw || typeof raw !== 'object' || Array.isArray(raw)) {
127
+ throw new Error('OpenZeppelin manifest must be an object');
128
+ }
129
+ const value = raw;
130
+ if (value.manifestVersion !== '3.2') {
131
+ throw new Error('OpenZeppelin manifest version must be 3.2');
132
+ }
133
+ if (!value.impls || typeof value.impls !== 'object' || Array.isArray(value.impls)) {
134
+ throw new Error('OpenZeppelin manifest impls must be an object');
135
+ }
136
+ if (!Array.isArray(value.proxies)) {
137
+ throw new Error('OpenZeppelin manifest proxies must be an array');
138
+ }
139
+ return value;
140
+ };
141
+ exports.parseTargetManifest = parseTargetManifest;
142
+ const matchingImplementation = (manifest, implementation) => {
143
+ const expected = implementation.toLowerCase();
144
+ for (const entry of Object.values(manifest.impls)) {
145
+ if (!entry)
146
+ continue;
147
+ const addresses = [entry.address, ...(entry.allAddresses ?? [])];
148
+ if (addresses.some((address) => address.toLowerCase() === expected))
149
+ return entry.layout;
150
+ }
151
+ return undefined;
152
+ };
153
+ const readRegisteredZkUpgradeState = (input) => {
154
+ const paths = (0, exports.resolveTargetManifestPaths)(input.root, input.target, input.chainId, input.env);
155
+ const bytes = readManifestBytes(paths);
156
+ const manifest = (0, exports.parseTargetManifest)(bytes);
157
+ const proxyEntry = manifest.proxies.find((entry) => entry.address.toLowerCase() === input.proxy.toLowerCase());
158
+ if (!proxyEntry)
159
+ throw new Error(`proxy ${input.proxy} is not registered in the target manifest`);
160
+ if (proxyEntry.kind !== 'uups')
161
+ throw new Error(`proxy ${input.proxy} is not registered as UUPS`);
162
+ const oldLayout = matchingImplementation(manifest, input.currentImplementation);
163
+ if (!oldLayout) {
164
+ throw new Error(`current implementation ${input.currentImplementation} is not registered in the target manifest`);
165
+ }
166
+ return {
167
+ manifest,
168
+ paths,
169
+ bytes,
170
+ digest: node_crypto_1.default.createHash('sha256').update(bytes).digest('hex'),
171
+ oldLayout,
172
+ };
173
+ };
174
+ exports.readRegisteredZkUpgradeState = readRegisteredZkUpgradeState;
175
+ const hashStorageLayout = (layout) => node_crypto_1.default
176
+ .createHash('sha256')
177
+ .update((0, normalize_js_1.canonicalPreparationJson)(layout))
178
+ .digest('hex');
179
+ exports.hashStorageLayout = hashStorageLayout;
180
+ //# sourceMappingURL=manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/core/preparation/manifest.ts"],"names":[],"mappings":"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"}