gate-evm-tools 1.0.23 → 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.
- package/README.md +64 -5
- package/bin/manifest-bootstrap.js +109 -3
- package/dist/commands/prepare.d.ts +8 -0
- package/dist/commands/prepare.d.ts.map +1 -0
- package/dist/commands/prepare.js +78 -0
- package/dist/commands/prepare.js.map +1 -0
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +11 -28
- package/dist/commands/sync.js.map +1 -1
- package/dist/core/preparation/artifacts.d.ts +21 -0
- package/dist/core/preparation/artifacts.d.ts.map +1 -0
- package/dist/core/preparation/artifacts.js +80 -0
- package/dist/core/preparation/artifacts.js.map +1 -0
- package/dist/core/preparation/evm.d.ts +39 -0
- package/dist/core/preparation/evm.d.ts.map +1 -0
- package/dist/core/preparation/evm.js +290 -0
- package/dist/core/preparation/evm.js.map +1 -0
- package/dist/core/preparation/index.d.ts +9 -0
- package/dist/core/preparation/index.d.ts.map +1 -0
- package/dist/core/preparation/index.js +15 -0
- package/dist/core/preparation/index.js.map +1 -0
- package/dist/core/preparation/manifest.d.ts +43 -0
- package/dist/core/preparation/manifest.d.ts.map +1 -0
- package/dist/core/preparation/manifest.js +169 -0
- package/dist/core/preparation/manifest.js.map +1 -0
- package/dist/core/preparation/normalize.d.ts +7 -0
- package/dist/core/preparation/normalize.d.ts.map +1 -0
- package/dist/core/preparation/normalize.js +496 -0
- package/dist/core/preparation/normalize.js.map +1 -0
- package/dist/core/preparation/types.d.ts +111 -0
- package/dist/core/preparation/types.d.ts.map +1 -0
- package/dist/core/preparation/types.js +2 -0
- package/dist/core/preparation/types.js.map +1 -0
- package/dist/core/preparation/zkManifestSync.d.ts +49 -0
- package/dist/core/preparation/zkManifestSync.d.ts.map +1 -0
- package/dist/core/preparation/zkManifestSync.js +159 -0
- package/dist/core/preparation/zkManifestSync.js.map +1 -0
- package/dist/core/preparation/zkUpgradeValidation.d.ts +37 -0
- package/dist/core/preparation/zkUpgradeValidation.d.ts.map +1 -0
- package/dist/core/preparation/zkUpgradeValidation.js +91 -0
- package/dist/core/preparation/zkUpgradeValidation.js.map +1 -0
- package/dist/core/preparation/zksync.d.ts +28 -0
- package/dist/core/preparation/zksync.d.ts.map +1 -0
- package/dist/core/preparation/zksync.js +248 -0
- package/dist/core/preparation/zksync.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -1
- package/dist/sync/index.d.ts +31 -0
- package/dist/sync/index.d.ts.map +1 -0
- package/dist/sync/index.js +57 -0
- package/dist/sync/index.js.map +1 -0
- package/dist/types.d.ts +9 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/workflow/index.d.ts +5 -0
- package/dist/workflow/index.d.ts.map +1 -0
- package/dist/workflow/index.js +3 -0
- package/dist/workflow/index.js.map +1 -0
- package/dist-cjs/core/preparation/artifacts.js +89 -0
- package/dist-cjs/core/preparation/artifacts.js.map +1 -0
- package/dist-cjs/core/preparation/evm.js +297 -0
- package/dist-cjs/core/preparation/evm.js.map +1 -0
- package/dist-cjs/core/preparation/index.js +19 -0
- package/dist-cjs/core/preparation/index.js.map +1 -0
- package/dist-cjs/core/preparation/manifest.js +180 -0
- package/dist-cjs/core/preparation/manifest.js.map +1 -0
- package/dist-cjs/core/preparation/normalize.js +507 -0
- package/dist-cjs/core/preparation/normalize.js.map +1 -0
- package/dist-cjs/core/preparation/types.js +3 -0
- package/dist-cjs/core/preparation/types.js.map +1 -0
- package/dist-cjs/core/preparation/zkManifestSync.js +166 -0
- package/dist-cjs/core/preparation/zkManifestSync.js.map +1 -0
- package/dist-cjs/core/preparation/zkUpgradeValidation.js +101 -0
- package/dist-cjs/core/preparation/zkUpgradeValidation.js.map +1 -0
- package/dist-cjs/core/preparation/zksync.js +252 -0
- package/dist-cjs/core/preparation/zksync.js.map +1 -0
- package/dist-cjs/core/syncUpgradeJson.js +315 -0
- package/dist-cjs/core/syncUpgradeJson.js.map +1 -0
- package/dist-cjs/sync/index.js +60 -0
- package/dist-cjs/sync/index.js.map +1 -0
- package/dist-cjs/types.js +3 -0
- package/dist-cjs/types.js.map +1 -0
- package/dist-cjs/utils/manifestTransaction.js +302 -0
- package/dist-cjs/utils/manifestTransaction.js.map +1 -0
- package/dist-cjs/utils/openzeppelin.js +57 -0
- package/dist-cjs/utils/openzeppelin.js.map +1 -0
- package/dist-cjs/workflow/index.js +12 -0
- package/dist-cjs/workflow/index.js.map +1 -0
- package/package.json +42 -2
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
import { concat, ContractFactory, getAddress, getCreate2Address, Interface, keccak256, } from 'ethers';
|
|
2
|
+
import crypto from 'node:crypto';
|
|
3
|
+
import fs from 'node:fs';
|
|
4
|
+
import { Manifest } from '@openzeppelin/upgrades-core';
|
|
5
|
+
import { getDeployData } from '@openzeppelin/hardhat-upgrades/dist/utils/deploy-impl.js';
|
|
6
|
+
import { artifactIdentity, assertArtifactScheme } from './artifacts.js';
|
|
7
|
+
import { canonicalPreparationJson, hashPreparationRequest, normalizePreparationPlan, } from './normalize.js';
|
|
8
|
+
const ERC1967_PROXY_ARTIFACT = '@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol:ERC1967Proxy';
|
|
9
|
+
const FACTORY_INTERFACE = new Interface([
|
|
10
|
+
'function deploy(bytes32 salt, bytes initCode, bytes data, uint256 create2ForwardValue, uint256 callForwardValue) payable returns (address)',
|
|
11
|
+
]);
|
|
12
|
+
const UPGRADE_INTERFACE = new Interface([
|
|
13
|
+
'function upgradeToAndCall(address newImplementation, bytes data) payable',
|
|
14
|
+
]);
|
|
15
|
+
const sha256Json = (value) => crypto
|
|
16
|
+
.createHash('sha256')
|
|
17
|
+
.update(canonicalPreparationJson(JSON.parse(JSON.stringify(value))))
|
|
18
|
+
.digest('hex');
|
|
19
|
+
const loadDefaultUpgradeEvidence = async (hre, request, factory, validationOptions) => {
|
|
20
|
+
const getImplementationAddress = hre.upgrades?.erc1967?.getImplementationAddress;
|
|
21
|
+
if (!getImplementationAddress) {
|
|
22
|
+
throw new Error('OpenZeppelin ERC-1967 implementation lookup is required');
|
|
23
|
+
}
|
|
24
|
+
if (!hre.network.provider)
|
|
25
|
+
throw new Error('Hardhat network provider is required');
|
|
26
|
+
const currentImplementation = await getImplementationAddress(request.proxy);
|
|
27
|
+
const deployData = await getDeployData(hre, factory, validationOptions);
|
|
28
|
+
const manifest = await Manifest.forNetwork(hre.network.provider);
|
|
29
|
+
const oldDeployment = await manifest.getDeploymentFromAddress(currentImplementation);
|
|
30
|
+
const hasCanonical = fs.existsSync(manifest.file);
|
|
31
|
+
const hasFallback = manifest.fallbackFile !== manifest.file && fs.existsSync(manifest.fallbackFile);
|
|
32
|
+
if (hasCanonical && hasFallback) {
|
|
33
|
+
throw new Error('OpenZeppelin manifest canonical/fallback files are ambiguous');
|
|
34
|
+
}
|
|
35
|
+
const manifestFile = hasCanonical ? manifest.file : hasFallback ? manifest.fallbackFile : undefined;
|
|
36
|
+
if (!manifestFile)
|
|
37
|
+
throw new Error('OpenZeppelin manifest file is missing');
|
|
38
|
+
return {
|
|
39
|
+
currentImplementation,
|
|
40
|
+
oldLayoutHash: sha256Json(oldDeployment.layout),
|
|
41
|
+
newLayoutHash: sha256Json(deployData.layout),
|
|
42
|
+
manifestDigest: crypto.createHash('sha256').update(fs.readFileSync(manifestFile)).digest('hex'),
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
const assertAddressPolicy = (predictedAddress, policy, label) => {
|
|
46
|
+
if (!policy)
|
|
47
|
+
return;
|
|
48
|
+
const normalized = getAddress(predictedAddress);
|
|
49
|
+
if (policy.expectedAddress && normalized !== getAddress(policy.expectedAddress)) {
|
|
50
|
+
throw new Error(`${label} predicted ${normalized} but expected ${policy.expectedAddress}`);
|
|
51
|
+
}
|
|
52
|
+
if (policy.leadingZeroBytes !== undefined
|
|
53
|
+
&& !normalized.slice(2).toLowerCase().startsWith('00'.repeat(policy.leadingZeroBytes))) {
|
|
54
|
+
throw new Error(`${label} does not satisfy leadingZeroBytes=${policy.leadingZeroBytes}`);
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
const buildDeployment = async (input) => {
|
|
58
|
+
assertArtifactScheme(input.artifact, 'evm');
|
|
59
|
+
const factory = new ContractFactory(input.artifact.abi, input.artifact.bytecode);
|
|
60
|
+
const constructorInput = factory.interface.encodeDeploy(input.constructorArgs);
|
|
61
|
+
const initCode = concat([input.artifact.bytecode, constructorInput]);
|
|
62
|
+
const initCodeHash = keccak256(initCode);
|
|
63
|
+
const predictedAddress = getCreate2Address(input.factory, input.salt, initCodeHash);
|
|
64
|
+
assertAddressPolicy(predictedAddress, input.policy, input.role);
|
|
65
|
+
const code = await input.hre.ethers.provider.getCode(predictedAddress);
|
|
66
|
+
const status = code && code !== '0x' ? 'reused' : 'required';
|
|
67
|
+
const deployment = {
|
|
68
|
+
role: input.role,
|
|
69
|
+
address: predictedAddress,
|
|
70
|
+
salt: input.salt,
|
|
71
|
+
status,
|
|
72
|
+
constructorInput,
|
|
73
|
+
initCodeHash,
|
|
74
|
+
};
|
|
75
|
+
if (status === 'reused')
|
|
76
|
+
return { deployment, initCode, factory };
|
|
77
|
+
const purpose = input.role === 'contract'
|
|
78
|
+
? 'deploy-contract'
|
|
79
|
+
: input.role === 'implementation'
|
|
80
|
+
? 'deploy-implementation'
|
|
81
|
+
: 'deploy-proxy';
|
|
82
|
+
return {
|
|
83
|
+
deployment,
|
|
84
|
+
initCode,
|
|
85
|
+
factory,
|
|
86
|
+
transaction: {
|
|
87
|
+
id: purpose,
|
|
88
|
+
purpose,
|
|
89
|
+
to: input.factory,
|
|
90
|
+
value: '0',
|
|
91
|
+
data: FACTORY_INTERFACE.encodeFunctionData('deploy', [
|
|
92
|
+
input.salt,
|
|
93
|
+
initCode,
|
|
94
|
+
'0x',
|
|
95
|
+
0,
|
|
96
|
+
0,
|
|
97
|
+
]),
|
|
98
|
+
operation: 0,
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
};
|
|
102
|
+
const preparePlain = async (hre, request, artifact) => {
|
|
103
|
+
const prepared = await buildDeployment({
|
|
104
|
+
hre,
|
|
105
|
+
role: 'contract',
|
|
106
|
+
artifact,
|
|
107
|
+
constructorArgs: request.constructorArgs,
|
|
108
|
+
factory: request.factory,
|
|
109
|
+
salt: request.salt,
|
|
110
|
+
policy: request.addressPolicy,
|
|
111
|
+
});
|
|
112
|
+
const create2ForwardValue = BigInt(request.create2ForwardValue ?? '0');
|
|
113
|
+
const callForwardValue = BigInt(request.callForwardValue ?? '0');
|
|
114
|
+
const transactions = prepared.transaction
|
|
115
|
+
? [{
|
|
116
|
+
...prepared.transaction,
|
|
117
|
+
value: (create2ForwardValue + callForwardValue).toString(10),
|
|
118
|
+
data: FACTORY_INTERFACE.encodeFunctionData('deploy', [
|
|
119
|
+
request.salt,
|
|
120
|
+
prepared.initCode,
|
|
121
|
+
'0x',
|
|
122
|
+
create2ForwardValue,
|
|
123
|
+
callForwardValue,
|
|
124
|
+
]),
|
|
125
|
+
}]
|
|
126
|
+
: [];
|
|
127
|
+
const network = await hre.ethers.provider.getNetwork();
|
|
128
|
+
return normalizePreparationPlan({
|
|
129
|
+
version: 1,
|
|
130
|
+
requestHash: hashPreparationRequest(request),
|
|
131
|
+
kind: request.kind,
|
|
132
|
+
scheme: request.scheme,
|
|
133
|
+
network: request.network,
|
|
134
|
+
target: request.target,
|
|
135
|
+
chainId: network.chainId.toString(),
|
|
136
|
+
contract: request.contract,
|
|
137
|
+
artifact: artifactIdentity(artifact, 'evm'),
|
|
138
|
+
validation: {
|
|
139
|
+
kind: 'artifact',
|
|
140
|
+
engine: 'hardhat-artifact',
|
|
141
|
+
artifactFormat: 'hh-sol-artifact-1',
|
|
142
|
+
},
|
|
143
|
+
deployments: [prepared.deployment],
|
|
144
|
+
transactions,
|
|
145
|
+
});
|
|
146
|
+
};
|
|
147
|
+
const prepareUupsInitial = async (hre, request, artifact) => {
|
|
148
|
+
const implementationFactory = new ContractFactory(artifact.abi, artifact.bytecode);
|
|
149
|
+
const validateImplementation = hre.upgrades?.validateImplementation;
|
|
150
|
+
if (!validateImplementation) {
|
|
151
|
+
throw new Error('OpenZeppelin validateImplementation is required for UUPS preparation');
|
|
152
|
+
}
|
|
153
|
+
const validationOptions = {
|
|
154
|
+
kind: 'uups',
|
|
155
|
+
constructorArgs: request.constructorArgs,
|
|
156
|
+
};
|
|
157
|
+
if (request.unsafeAllow)
|
|
158
|
+
validationOptions.unsafeAllow = request.unsafeAllow;
|
|
159
|
+
await validateImplementation(implementationFactory, validationOptions);
|
|
160
|
+
const implementation = await buildDeployment({
|
|
161
|
+
hre,
|
|
162
|
+
role: 'implementation',
|
|
163
|
+
artifact,
|
|
164
|
+
constructorArgs: request.constructorArgs,
|
|
165
|
+
factory: request.factory,
|
|
166
|
+
salt: request.implementationSalt,
|
|
167
|
+
});
|
|
168
|
+
const proxyArtifact = await hre.artifacts.readArtifact(ERC1967_PROXY_ARTIFACT);
|
|
169
|
+
const proxy = await buildDeployment({
|
|
170
|
+
hre,
|
|
171
|
+
role: 'proxy',
|
|
172
|
+
artifact: proxyArtifact,
|
|
173
|
+
constructorArgs: [request.placeholderImplementation, '0x'],
|
|
174
|
+
factory: request.factory,
|
|
175
|
+
salt: request.proxySalt,
|
|
176
|
+
policy: request.proxyAddressPolicy,
|
|
177
|
+
});
|
|
178
|
+
const initData = request.call
|
|
179
|
+
? implementation.factory.interface.encodeFunctionData(request.call.method, request.call.args)
|
|
180
|
+
: '0x';
|
|
181
|
+
const transactions = [implementation.transaction, proxy.transaction]
|
|
182
|
+
.filter((transaction) => transaction !== undefined);
|
|
183
|
+
transactions.push({
|
|
184
|
+
id: 'upgrade-proxy',
|
|
185
|
+
purpose: 'upgrade-proxy',
|
|
186
|
+
to: proxy.deployment.address,
|
|
187
|
+
value: '0',
|
|
188
|
+
data: UPGRADE_INTERFACE.encodeFunctionData('upgradeToAndCall', [
|
|
189
|
+
implementation.deployment.address,
|
|
190
|
+
initData,
|
|
191
|
+
]),
|
|
192
|
+
operation: 0,
|
|
193
|
+
});
|
|
194
|
+
const network = await hre.ethers.provider.getNetwork();
|
|
195
|
+
return normalizePreparationPlan({
|
|
196
|
+
version: 1,
|
|
197
|
+
requestHash: hashPreparationRequest(request),
|
|
198
|
+
kind: request.kind,
|
|
199
|
+
scheme: request.scheme,
|
|
200
|
+
network: request.network,
|
|
201
|
+
target: request.target,
|
|
202
|
+
chainId: network.chainId.toString(),
|
|
203
|
+
contract: request.contract,
|
|
204
|
+
proxyKind: 'uups',
|
|
205
|
+
artifact: artifactIdentity(artifact, 'evm'),
|
|
206
|
+
validation: {
|
|
207
|
+
kind: 'uups-initial',
|
|
208
|
+
engine: 'openzeppelin',
|
|
209
|
+
artifactFormat: 'hh-sol-artifact-1',
|
|
210
|
+
implementationSafe: true,
|
|
211
|
+
},
|
|
212
|
+
deployments: [implementation.deployment, proxy.deployment],
|
|
213
|
+
transactions,
|
|
214
|
+
});
|
|
215
|
+
};
|
|
216
|
+
const prepareUupsUpgrade = async (hre, request, artifact, dependencies) => {
|
|
217
|
+
const implementationFactory = new ContractFactory(artifact.abi, artifact.bytecode);
|
|
218
|
+
const validateUpgrade = hre.upgrades?.validateUpgrade;
|
|
219
|
+
if (!validateUpgrade) {
|
|
220
|
+
throw new Error('OpenZeppelin validateUpgrade is required for UUPS preparation');
|
|
221
|
+
}
|
|
222
|
+
const validationOptions = {
|
|
223
|
+
kind: 'uups',
|
|
224
|
+
constructorArgs: request.constructorArgs,
|
|
225
|
+
};
|
|
226
|
+
if (request.unsafeAllow)
|
|
227
|
+
validationOptions.unsafeAllow = request.unsafeAllow;
|
|
228
|
+
await validateUpgrade(request.proxy, implementationFactory, validationOptions);
|
|
229
|
+
const evidence = await (dependencies.loadUpgradeEvidence ?? loadDefaultUpgradeEvidence)(hre, request, implementationFactory, validationOptions);
|
|
230
|
+
const implementation = await buildDeployment({
|
|
231
|
+
hre,
|
|
232
|
+
role: 'implementation',
|
|
233
|
+
artifact,
|
|
234
|
+
constructorArgs: request.constructorArgs,
|
|
235
|
+
factory: request.factory,
|
|
236
|
+
salt: request.implementationSalt,
|
|
237
|
+
policy: request.implementationAddressPolicy,
|
|
238
|
+
});
|
|
239
|
+
const initData = request.call
|
|
240
|
+
? implementation.factory.interface.encodeFunctionData(request.call.method, request.call.args)
|
|
241
|
+
: '0x';
|
|
242
|
+
const transactions = implementation.transaction ? [implementation.transaction] : [];
|
|
243
|
+
transactions.push({
|
|
244
|
+
id: 'upgrade-proxy',
|
|
245
|
+
purpose: 'upgrade-proxy',
|
|
246
|
+
to: request.proxy,
|
|
247
|
+
value: '0',
|
|
248
|
+
data: UPGRADE_INTERFACE.encodeFunctionData('upgradeToAndCall', [
|
|
249
|
+
implementation.deployment.address,
|
|
250
|
+
initData,
|
|
251
|
+
]),
|
|
252
|
+
operation: 0,
|
|
253
|
+
});
|
|
254
|
+
const network = await hre.ethers.provider.getNetwork();
|
|
255
|
+
return normalizePreparationPlan({
|
|
256
|
+
version: 1,
|
|
257
|
+
requestHash: hashPreparationRequest(request),
|
|
258
|
+
kind: request.kind,
|
|
259
|
+
scheme: request.scheme,
|
|
260
|
+
network: request.network,
|
|
261
|
+
target: request.target,
|
|
262
|
+
chainId: network.chainId.toString(),
|
|
263
|
+
contract: request.contract,
|
|
264
|
+
proxyKind: 'uups',
|
|
265
|
+
artifact: artifactIdentity(artifact, 'evm'),
|
|
266
|
+
validation: {
|
|
267
|
+
kind: 'uups-upgrade',
|
|
268
|
+
engine: 'openzeppelin',
|
|
269
|
+
artifactFormat: 'hh-sol-artifact-1',
|
|
270
|
+
implementationSafe: true,
|
|
271
|
+
storageLayoutCompatible: true,
|
|
272
|
+
...evidence,
|
|
273
|
+
},
|
|
274
|
+
deployments: [implementation.deployment],
|
|
275
|
+
transactions,
|
|
276
|
+
});
|
|
277
|
+
};
|
|
278
|
+
export const prepareEvm = async (hre, request, dependencies = {}) => {
|
|
279
|
+
if (request.scheme !== 'evm')
|
|
280
|
+
throw new Error('EVM adapter received a non-EVM request');
|
|
281
|
+
const artifact = await hre.artifacts.readArtifact(request.contract);
|
|
282
|
+
assertArtifactScheme(artifact, 'evm');
|
|
283
|
+
if (request.kind === 'create2-deploy')
|
|
284
|
+
return preparePlain(hre, request, artifact);
|
|
285
|
+
if (request.kind === 'uups-placeholder-deploy') {
|
|
286
|
+
return prepareUupsInitial(hre, request, artifact);
|
|
287
|
+
}
|
|
288
|
+
return prepareUupsUpgrade(hre, request, artifact, dependencies);
|
|
289
|
+
};
|
|
290
|
+
//# 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,9 @@
|
|
|
1
|
+
import type { GateToolPreparationPlanV1 } from './types.js';
|
|
2
|
+
export interface GateToolPreparationHre {
|
|
3
|
+
network: {
|
|
4
|
+
name: string;
|
|
5
|
+
};
|
|
6
|
+
run(task: string, options?: Record<string, unknown>): Promise<unknown>;
|
|
7
|
+
}
|
|
8
|
+
export declare const prepareWorkflow: (hre: GateToolPreparationHre, rawRequest: unknown) => Promise<GateToolPreparationPlanV1>;
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/preparation/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,yBAAyB,EAE1B,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1B,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACxE;AAED,eAAO,MAAM,eAAe,GAC1B,KAAK,sBAAsB,EAC3B,YAAY,OAAO,KAClB,OAAO,CAAC,yBAAyB,CAYnC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { prepareEvm } from './evm.js';
|
|
2
|
+
import { prepareZkSync } from './zksync.js';
|
|
3
|
+
import { normalizePreparationRequest } from './normalize.js';
|
|
4
|
+
export const prepareWorkflow = async (hre, rawRequest) => {
|
|
5
|
+
const request = normalizePreparationRequest(rawRequest);
|
|
6
|
+
if (hre.network.name !== request.network) {
|
|
7
|
+
throw new Error(`preparation request network ${request.network} does not match Hardhat network ${hre.network.name}`);
|
|
8
|
+
}
|
|
9
|
+
await hre.run('compile', { quiet: true });
|
|
10
|
+
if (request.scheme === 'evm') {
|
|
11
|
+
return prepareEvm(hre, request);
|
|
12
|
+
}
|
|
13
|
+
return prepareZkSync(hre, request);
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/preparation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAW7D,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAClC,GAA2B,EAC3B,UAAmB,EACiB,EAAE;IACtC,MAAM,OAAO,GAAiC,2BAA2B,CAAC,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,UAAU,CAAC,GAAkD,EAAE,OAAO,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,aAAa,CAAC,GAAqD,EAAE,OAAO,CAAC,CAAC;AACvF,CAAC,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { type StorageLayout } from '@openzeppelin/upgrades-core';
|
|
2
|
+
export interface TargetManifestPaths {
|
|
3
|
+
root: string;
|
|
4
|
+
target: string;
|
|
5
|
+
manifestDir: string;
|
|
6
|
+
file: string;
|
|
7
|
+
fallbackFile: string;
|
|
8
|
+
}
|
|
9
|
+
export interface TargetManifestData {
|
|
10
|
+
manifestVersion: string;
|
|
11
|
+
impls: Record<string, {
|
|
12
|
+
address: string;
|
|
13
|
+
txHash?: string;
|
|
14
|
+
allAddresses?: string[];
|
|
15
|
+
layout: StorageLayout;
|
|
16
|
+
} | undefined>;
|
|
17
|
+
proxies: Array<{
|
|
18
|
+
address: string;
|
|
19
|
+
txHash?: string;
|
|
20
|
+
kind: 'uups' | 'transparent' | 'beacon';
|
|
21
|
+
}>;
|
|
22
|
+
admin?: unknown;
|
|
23
|
+
}
|
|
24
|
+
export interface RegisteredZkUpgradeState {
|
|
25
|
+
manifest: TargetManifestData;
|
|
26
|
+
paths: TargetManifestPaths;
|
|
27
|
+
bytes: Buffer;
|
|
28
|
+
digest: string;
|
|
29
|
+
oldLayout: StorageLayout;
|
|
30
|
+
}
|
|
31
|
+
export declare const resolveTargetManifestDirectory: (root: string, target: string, env?: NodeJS.ProcessEnv) => string;
|
|
32
|
+
export declare const resolveTargetManifestPaths: (root: string, target: string, chainId: number, env?: NodeJS.ProcessEnv) => TargetManifestPaths;
|
|
33
|
+
export declare const parseTargetManifest: (bytes: Buffer) => TargetManifestData;
|
|
34
|
+
export declare const readRegisteredZkUpgradeState: (input: {
|
|
35
|
+
root: string;
|
|
36
|
+
target: string;
|
|
37
|
+
chainId: number;
|
|
38
|
+
proxy: string;
|
|
39
|
+
currentImplementation: string;
|
|
40
|
+
env?: NodeJS.ProcessEnv;
|
|
41
|
+
}) => RegisteredZkUpgradeState;
|
|
42
|
+
export declare const hashStorageLayout: (layout: StorageLayout) => string;
|
|
43
|
+
//# sourceMappingURL=manifest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../../src/core/preparation/manifest.ts"],"names":[],"mappings":"AAIA,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAa/E,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,MAAM,EAAE,aAAa,CAAC;KACvB,GAAG,SAAS,CAAC,CAAC;IACf,OAAO,EAAE,KAAK,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,QAAQ,CAAC;KACzC,CAAC,CAAC;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,KAAK,EAAE,mBAAmB,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,aAAa,CAAC;CAC1B;AA8BD,eAAO,MAAM,8BAA8B,GACzC,MAAM,MAAM,EACZ,QAAQ,MAAM,EACd,MAAK,MAAM,CAAC,UAAwB,KACnC,MA2CF,CAAC;AAEF,eAAO,MAAM,0BAA0B,GACrC,MAAM,MAAM,EACZ,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,MAAK,MAAM,CAAC,UAAwB,KACnC,mBAgBF,CAAC;AAeF,eAAO,MAAM,mBAAmB,GAAI,OAAO,MAAM,KAAG,kBAsBnD,CAAC;AAeF,eAAO,MAAM,4BAA4B,GAAI,OAAO;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB,EAAE,MAAM,CAAC;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB,KAAG,wBA2BH,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,QAAQ,aAAa,KAAG,MAG1C,CAAC"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import crypto from 'node:crypto';
|
|
2
|
+
import fs from 'node:fs';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import YAML from 'yaml';
|
|
5
|
+
import { networkNames } from '@openzeppelin/upgrades-core';
|
|
6
|
+
import { canonicalPreparationJson } from './normalize.js';
|
|
7
|
+
const SAFE_TARGET = /^[A-Za-z0-9][A-Za-z0-9_-]{0,199}$/;
|
|
8
|
+
const SAFE_MANIFEST_DIR = /^\.openzeppelin(?:\.[a-z0-9][a-z0-9-]*)?$/;
|
|
9
|
+
const ENVIRONMENTS = new Set(['local', 'development', 'production']);
|
|
10
|
+
const regularFile = (filePath, label) => {
|
|
11
|
+
if (!fs.existsSync(filePath))
|
|
12
|
+
throw new Error(`${label} is missing: ${filePath}`);
|
|
13
|
+
const stat = fs.lstatSync(filePath);
|
|
14
|
+
if (stat.isSymbolicLink())
|
|
15
|
+
throw new Error(`${label} cannot be a symlink`);
|
|
16
|
+
if (!stat.isFile())
|
|
17
|
+
throw new Error(`${label} must be a regular file`);
|
|
18
|
+
};
|
|
19
|
+
const assertManifestDirectory = (root, manifestDir) => {
|
|
20
|
+
if (!SAFE_MANIFEST_DIR.test(manifestDir) || manifestDir === '.upgradable') {
|
|
21
|
+
throw new Error(`unsafe OpenZeppelin manifest directory: ${manifestDir}`);
|
|
22
|
+
}
|
|
23
|
+
const resolvedRoot = path.resolve(root);
|
|
24
|
+
const candidate = path.resolve(resolvedRoot, manifestDir);
|
|
25
|
+
if (path.dirname(candidate) !== resolvedRoot) {
|
|
26
|
+
throw new Error(`OpenZeppelin manifest directory escapes the project: ${manifestDir}`);
|
|
27
|
+
}
|
|
28
|
+
if (fs.existsSync(candidate)) {
|
|
29
|
+
const stat = fs.lstatSync(candidate);
|
|
30
|
+
if (stat.isSymbolicLink()) {
|
|
31
|
+
throw new Error(`OpenZeppelin manifest directory cannot be a symlink: ${manifestDir}`);
|
|
32
|
+
}
|
|
33
|
+
if (!stat.isDirectory()) {
|
|
34
|
+
throw new Error(`OpenZeppelin manifest path must be a directory: ${manifestDir}`);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return candidate;
|
|
38
|
+
};
|
|
39
|
+
export const resolveTargetManifestDirectory = (root, target, env = process.env) => {
|
|
40
|
+
if (!SAFE_TARGET.test(target) || target.startsWith('_')) {
|
|
41
|
+
throw new Error(`invalid manifest target: ${target}`);
|
|
42
|
+
}
|
|
43
|
+
const resolvedRoot = path.resolve(root);
|
|
44
|
+
const configFile = path.join(resolvedRoot, 'config.yaml');
|
|
45
|
+
regularFile(configFile, 'config.yaml');
|
|
46
|
+
const parsed = YAML.parse(fs.readFileSync(configFile, 'utf8'), { merge: true });
|
|
47
|
+
if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {
|
|
48
|
+
throw new Error('config.yaml must define target keys at the top level');
|
|
49
|
+
}
|
|
50
|
+
const selected = parsed[target];
|
|
51
|
+
if (!selected || typeof selected !== 'object' || Array.isArray(selected)) {
|
|
52
|
+
throw new Error(`config.yaml has no target ${target}`);
|
|
53
|
+
}
|
|
54
|
+
const config = selected;
|
|
55
|
+
if (!ENVIRONMENTS.has(String(config.environment))) {
|
|
56
|
+
throw new Error(`config.yaml target ${target} has an invalid environment`);
|
|
57
|
+
}
|
|
58
|
+
const manifestDir = config.openzeppelin?.manifestDir;
|
|
59
|
+
if (typeof manifestDir !== 'string') {
|
|
60
|
+
throw new Error(`config.yaml target ${target} must define openzeppelin.manifestDir`);
|
|
61
|
+
}
|
|
62
|
+
if (config.environment === 'production' && manifestDir !== '.openzeppelin') {
|
|
63
|
+
throw new Error(`production target ${target} must use .openzeppelin`);
|
|
64
|
+
}
|
|
65
|
+
if (config.environment !== 'production' && manifestDir === '.openzeppelin') {
|
|
66
|
+
throw new Error(`non-production target ${target} must not use .openzeppelin`);
|
|
67
|
+
}
|
|
68
|
+
assertManifestDirectory(resolvedRoot, manifestDir);
|
|
69
|
+
const configuredEnvironment = env.MANIFEST_DEFAULT_DIR?.trim();
|
|
70
|
+
if (configuredEnvironment && configuredEnvironment !== manifestDir) {
|
|
71
|
+
throw new Error(`MANIFEST_DEFAULT_DIR conflict for ${target}: expected ${manifestDir}, received ${configuredEnvironment}`);
|
|
72
|
+
}
|
|
73
|
+
const configuredTarget = env.GATE_WORKFLOW_TARGET?.trim();
|
|
74
|
+
if (configuredTarget && configuredTarget !== target) {
|
|
75
|
+
throw new Error(`GATE_WORKFLOW_TARGET conflict: expected ${target}, received ${configuredTarget}`);
|
|
76
|
+
}
|
|
77
|
+
return manifestDir;
|
|
78
|
+
};
|
|
79
|
+
export const resolveTargetManifestPaths = (root, target, chainId, env = process.env) => {
|
|
80
|
+
if (!Number.isSafeInteger(chainId) || chainId <= 0) {
|
|
81
|
+
throw new Error(`invalid manifest chainId: ${chainId}`);
|
|
82
|
+
}
|
|
83
|
+
const resolvedRoot = path.resolve(root);
|
|
84
|
+
const manifestDir = resolveTargetManifestDirectory(resolvedRoot, target, env);
|
|
85
|
+
const directory = path.join(resolvedRoot, manifestDir);
|
|
86
|
+
const fallbackName = `unknown-${chainId}.json`;
|
|
87
|
+
const canonicalName = `${networkNames[chainId] ?? `unknown-${chainId}`}.json`;
|
|
88
|
+
return {
|
|
89
|
+
root: resolvedRoot,
|
|
90
|
+
target,
|
|
91
|
+
manifestDir,
|
|
92
|
+
file: path.join(directory, canonicalName),
|
|
93
|
+
fallbackFile: path.join(directory, fallbackName),
|
|
94
|
+
};
|
|
95
|
+
};
|
|
96
|
+
const readManifestBytes = (paths) => {
|
|
97
|
+
const canonicalExists = fs.existsSync(paths.file);
|
|
98
|
+
const distinctFallback = paths.file !== paths.fallbackFile;
|
|
99
|
+
const fallbackExists = distinctFallback && fs.existsSync(paths.fallbackFile);
|
|
100
|
+
if (canonicalExists && fallbackExists) {
|
|
101
|
+
throw new Error('OpenZeppelin canonical and fallback manifests are ambiguous');
|
|
102
|
+
}
|
|
103
|
+
const selected = canonicalExists ? paths.file : fallbackExists ? paths.fallbackFile : undefined;
|
|
104
|
+
if (!selected)
|
|
105
|
+
throw new Error(`OpenZeppelin manifest is missing for target ${paths.target}`);
|
|
106
|
+
regularFile(selected, 'OpenZeppelin manifest');
|
|
107
|
+
return fs.readFileSync(selected);
|
|
108
|
+
};
|
|
109
|
+
export const parseTargetManifest = (bytes) => {
|
|
110
|
+
let raw;
|
|
111
|
+
try {
|
|
112
|
+
raw = JSON.parse(bytes.toString('utf8'));
|
|
113
|
+
}
|
|
114
|
+
catch (error) {
|
|
115
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
116
|
+
throw new Error(`OpenZeppelin manifest is invalid JSON: ${message}`);
|
|
117
|
+
}
|
|
118
|
+
if (!raw || typeof raw !== 'object' || Array.isArray(raw)) {
|
|
119
|
+
throw new Error('OpenZeppelin manifest must be an object');
|
|
120
|
+
}
|
|
121
|
+
const value = raw;
|
|
122
|
+
if (value.manifestVersion !== '3.2') {
|
|
123
|
+
throw new Error('OpenZeppelin manifest version must be 3.2');
|
|
124
|
+
}
|
|
125
|
+
if (!value.impls || typeof value.impls !== 'object' || Array.isArray(value.impls)) {
|
|
126
|
+
throw new Error('OpenZeppelin manifest impls must be an object');
|
|
127
|
+
}
|
|
128
|
+
if (!Array.isArray(value.proxies)) {
|
|
129
|
+
throw new Error('OpenZeppelin manifest proxies must be an array');
|
|
130
|
+
}
|
|
131
|
+
return value;
|
|
132
|
+
};
|
|
133
|
+
const matchingImplementation = (manifest, implementation) => {
|
|
134
|
+
const expected = implementation.toLowerCase();
|
|
135
|
+
for (const entry of Object.values(manifest.impls)) {
|
|
136
|
+
if (!entry)
|
|
137
|
+
continue;
|
|
138
|
+
const addresses = [entry.address, ...(entry.allAddresses ?? [])];
|
|
139
|
+
if (addresses.some((address) => address.toLowerCase() === expected))
|
|
140
|
+
return entry.layout;
|
|
141
|
+
}
|
|
142
|
+
return undefined;
|
|
143
|
+
};
|
|
144
|
+
export const readRegisteredZkUpgradeState = (input) => {
|
|
145
|
+
const paths = resolveTargetManifestPaths(input.root, input.target, input.chainId, input.env);
|
|
146
|
+
const bytes = readManifestBytes(paths);
|
|
147
|
+
const manifest = parseTargetManifest(bytes);
|
|
148
|
+
const proxyEntry = manifest.proxies.find((entry) => entry.address.toLowerCase() === input.proxy.toLowerCase());
|
|
149
|
+
if (!proxyEntry)
|
|
150
|
+
throw new Error(`proxy ${input.proxy} is not registered in the target manifest`);
|
|
151
|
+
if (proxyEntry.kind !== 'uups')
|
|
152
|
+
throw new Error(`proxy ${input.proxy} is not registered as UUPS`);
|
|
153
|
+
const oldLayout = matchingImplementation(manifest, input.currentImplementation);
|
|
154
|
+
if (!oldLayout) {
|
|
155
|
+
throw new Error(`current implementation ${input.currentImplementation} is not registered in the target manifest`);
|
|
156
|
+
}
|
|
157
|
+
return {
|
|
158
|
+
manifest,
|
|
159
|
+
paths,
|
|
160
|
+
bytes,
|
|
161
|
+
digest: crypto.createHash('sha256').update(bytes).digest('hex'),
|
|
162
|
+
oldLayout,
|
|
163
|
+
};
|
|
164
|
+
};
|
|
165
|
+
export const hashStorageLayout = (layout) => crypto
|
|
166
|
+
.createHash('sha256')
|
|
167
|
+
.update(canonicalPreparationJson(layout))
|
|
168
|
+
.digest('hex');
|
|
169
|
+
//# 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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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { GateToolPreparationPlanV1, GateToolPreparationRequestV1 } from './types.js';
|
|
2
|
+
export declare const normalizePreparationRequest: (raw: unknown) => GateToolPreparationRequestV1;
|
|
3
|
+
export declare const canonicalPreparationJson: (raw: unknown) => string;
|
|
4
|
+
export declare const hashPreparationRequest: (raw: unknown) => string;
|
|
5
|
+
export declare const normalizePreparationPlan: (raw: unknown) => GateToolPreparationPlanV1;
|
|
6
|
+
export declare const writePreparationPlanAtomic: (filePath: string, raw: unknown, root?: string) => GateToolPreparationPlanV1;
|
|
7
|
+
//# sourceMappingURL=normalize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../src/core/preparation/normalize.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAOV,yBAAyB,EACzB,4BAA4B,EAK7B,MAAM,YAAY,CAAC;AAmLpB,eAAO,MAAM,2BAA2B,GACtC,KAAK,OAAO,KACX,4BA+EF,CAAC;AAaF,eAAO,MAAM,wBAAwB,GAAI,KAAK,OAAO,KAAG,MAEvD,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,KAAK,OAAO,KAAG,MAGrD,CAAC;AA2MF,eAAO,MAAM,wBAAwB,GAAI,KAAK,OAAO,KAAG,yBA2CvD,CAAC;AAkBF,eAAO,MAAM,0BAA0B,GACrC,UAAU,MAAM,EAChB,KAAK,OAAO,EACZ,aAAoB,KACnB,yBAaF,CAAC"}
|