gate-evm-tools 1.0.25 → 1.0.27
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 +33 -11
- package/bin/workflow.cjs +19 -0
- package/dist/commands/check.d.ts.map +1 -1
- package/dist/commands/check.js +21 -57
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/checkBatch.d.ts +4 -0
- package/dist/commands/checkBatch.d.ts.map +1 -0
- package/dist/commands/checkBatch.js +57 -0
- package/dist/commands/checkBatch.js.map +1 -0
- package/dist/commands/checkOptions.d.ts +3 -0
- package/dist/commands/checkOptions.d.ts.map +1 -1
- package/dist/commands/checkOptions.js +10 -1
- package/dist/commands/checkOptions.js.map +1 -1
- package/dist/commands/prepare.d.ts +1 -2
- package/dist/commands/prepare.d.ts.map +1 -1
- package/dist/commands/prepare.js +2 -17
- package/dist/commands/prepare.js.map +1 -1
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +2 -17
- package/dist/commands/sync.js.map +1 -1
- package/dist/commands/validate.d.ts.map +1 -1
- package/dist/commands/validate.js +2 -17
- package/dist/commands/validate.js.map +1 -1
- package/dist/core/BytecodeChecker.d.ts.map +1 -1
- package/dist/core/BytecodeChecker.js +16 -1
- package/dist/core/BytecodeChecker.js.map +1 -1
- package/dist/core/legacyProxyArtifact.d.ts +6 -0
- package/dist/core/legacyProxyArtifact.d.ts.map +1 -0
- package/dist/core/legacyProxyArtifact.js +36 -0
- package/dist/core/legacyProxyArtifact.js.map +1 -0
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +2 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/hardhat.d.ts +4 -0
- package/dist/utils/hardhat.d.ts.map +1 -0
- package/dist/utils/hardhat.js +9 -0
- package/dist/utils/hardhat.js.map +1 -0
- package/dist-runtime/config/hardhatAdapters.d.ts +5 -0
- package/dist-runtime/config/hardhatAdapters.js +53 -0
- package/dist-runtime/config/hardhatAdapters.js.map +1 -0
- package/dist-runtime/config/networks.d.ts +8 -0
- package/dist-runtime/config/networks.js +269 -0
- package/dist-runtime/config/networks.js.map +1 -0
- package/dist-runtime/config/openzeppelin.d.ts +28 -0
- package/dist-runtime/config/openzeppelin.js +144 -0
- package/dist-runtime/config/openzeppelin.js.map +1 -0
- package/dist-runtime/config/rpc.d.ts +7 -0
- package/dist-runtime/config/rpc.js +19 -0
- package/dist-runtime/config/rpc.js.map +1 -0
- package/dist-runtime/config/zksyncSolcPath.d.ts +1 -0
- package/dist-runtime/config/zksyncSolcPath.js +61 -0
- package/dist-runtime/config/zksyncSolcPath.js.map +1 -0
- package/dist-runtime/migrate.d.ts +13 -0
- package/dist-runtime/migrate.js +208 -0
- package/dist-runtime/migrate.js.map +1 -0
- package/dist-runtime/package.json +1 -0
- package/dist-runtime/projectHardhat.d.ts +4 -0
- package/dist-runtime/projectHardhat.js +16 -0
- package/dist-runtime/projectHardhat.js.map +1 -0
- package/dist-runtime/runtime-identity.json +4 -0
- package/dist-runtime/template-migration.json +293 -0
- package/dist-runtime/workflow/checkCode.d.ts +1 -0
- package/dist-runtime/workflow/checkCode.js +16 -0
- package/dist-runtime/workflow/checkCode.js.map +1 -0
- package/dist-runtime/workflow/checkCodeFinalize.d.ts +1 -0
- package/dist-runtime/workflow/checkCodeFinalize.js +11 -0
- package/dist-runtime/workflow/checkCodeFinalize.js.map +1 -0
- package/dist-runtime/workflow/checkCodePlan.d.ts +1 -0
- package/dist-runtime/workflow/checkCodePlan.js +11 -0
- package/dist-runtime/workflow/checkCodePlan.js.map +1 -0
- package/dist-runtime/workflow/cli.d.ts +1 -0
- package/dist-runtime/workflow/cli.js +302 -0
- package/dist-runtime/workflow/cli.js.map +1 -0
- package/dist-runtime/workflow/commitContractInfo.d.ts +1 -0
- package/dist-runtime/workflow/commitContractInfo.js +64 -0
- package/dist-runtime/workflow/commitContractInfo.js.map +1 -0
- package/dist-runtime/workflow/create2Hashes.d.ts +1 -0
- package/dist-runtime/workflow/create2Hashes.js +76 -0
- package/dist-runtime/workflow/create2Hashes.js.map +1 -0
- package/dist-runtime/workflow/forkSourceProxy.d.ts +1 -0
- package/dist-runtime/workflow/forkSourceProxy.js +151 -0
- package/dist-runtime/workflow/forkSourceProxy.js.map +1 -0
- package/dist-runtime/workflow/importState.d.ts +1 -0
- package/dist-runtime/workflow/importState.js +193 -0
- package/dist-runtime/workflow/importState.js.map +1 -0
- package/dist-runtime/workflow/lib/authority.d.ts +28 -0
- package/dist-runtime/workflow/lib/authority.js +122 -0
- package/dist-runtime/workflow/lib/authority.js.map +1 -0
- package/dist-runtime/workflow/lib/calldata.d.ts +2 -0
- package/dist-runtime/workflow/lib/calldata.js +8 -0
- package/dist-runtime/workflow/lib/calldata.js.map +1 -0
- package/dist-runtime/workflow/lib/calls.d.ts +23 -0
- package/dist-runtime/workflow/lib/calls.js +316 -0
- package/dist-runtime/workflow/lib/calls.js.map +1 -0
- package/dist-runtime/workflow/lib/checkCode/args.d.ts +2 -0
- package/dist-runtime/workflow/lib/checkCode/args.js +68 -0
- package/dist-runtime/workflow/lib/checkCode/args.js.map +1 -0
- package/dist-runtime/workflow/lib/checkCode/command.d.ts +5 -0
- package/dist-runtime/workflow/lib/checkCode/command.js +35 -0
- package/dist-runtime/workflow/lib/checkCode/command.js.map +1 -0
- package/dist-runtime/workflow/lib/checkCode/dependencies.d.ts +6 -0
- package/dist-runtime/workflow/lib/checkCode/dependencies.js +125 -0
- package/dist-runtime/workflow/lib/checkCode/dependencies.js.map +1 -0
- package/dist-runtime/workflow/lib/checkCode/finalize.d.ts +17 -0
- package/dist-runtime/workflow/lib/checkCode/finalize.js +174 -0
- package/dist-runtime/workflow/lib/checkCode/finalize.js.map +1 -0
- package/dist-runtime/workflow/lib/checkCode/index.d.ts +3 -0
- package/dist-runtime/workflow/lib/checkCode/index.js +20 -0
- package/dist-runtime/workflow/lib/checkCode/index.js.map +1 -0
- package/dist-runtime/workflow/lib/checkCode/plan.d.ts +22 -0
- package/dist-runtime/workflow/lib/checkCode/plan.js +145 -0
- package/dist-runtime/workflow/lib/checkCode/plan.js.map +1 -0
- package/dist-runtime/workflow/lib/checkCodeReport.d.ts +25 -0
- package/dist-runtime/workflow/lib/checkCodeReport.js +102 -0
- package/dist-runtime/workflow/lib/checkCodeReport.js.map +1 -0
- package/dist-runtime/workflow/lib/checkCodeRunner.d.ts +87 -0
- package/dist-runtime/workflow/lib/checkCodeRunner.js +964 -0
- package/dist-runtime/workflow/lib/checkCodeRunner.js.map +1 -0
- package/dist-runtime/workflow/lib/cliTool.d.ts +10 -0
- package/dist-runtime/workflow/lib/cliTool.js +25 -0
- package/dist-runtime/workflow/lib/cliTool.js.map +1 -0
- package/dist-runtime/workflow/lib/config.d.ts +33 -0
- package/dist-runtime/workflow/lib/config.js +100 -0
- package/dist-runtime/workflow/lib/config.js.map +1 -0
- package/dist-runtime/workflow/lib/contractInfoCandidates.d.ts +82 -0
- package/dist-runtime/workflow/lib/contractInfoCandidates.js +441 -0
- package/dist-runtime/workflow/lib/contractInfoCandidates.js.map +1 -0
- package/dist-runtime/workflow/lib/create2.d.ts +49 -0
- package/dist-runtime/workflow/lib/create2.js +194 -0
- package/dist-runtime/workflow/lib/create2.js.map +1 -0
- package/dist-runtime/workflow/lib/create2Hashes.d.ts +22 -0
- package/dist-runtime/workflow/lib/create2Hashes.js +57 -0
- package/dist-runtime/workflow/lib/create2Hashes.js.map +1 -0
- package/dist-runtime/workflow/lib/deploymentInfo.d.ts +40 -0
- package/dist-runtime/workflow/lib/deploymentInfo.js +240 -0
- package/dist-runtime/workflow/lib/deploymentInfo.js.map +1 -0
- package/dist-runtime/workflow/lib/deploymentRecords.d.ts +137 -0
- package/dist-runtime/workflow/lib/deploymentRecords.js +374 -0
- package/dist-runtime/workflow/lib/deploymentRecords.js.map +1 -0
- package/dist-runtime/workflow/lib/deployments.d.ts +21 -0
- package/dist-runtime/workflow/lib/deployments.js +240 -0
- package/dist-runtime/workflow/lib/deployments.js.map +1 -0
- package/dist-runtime/workflow/lib/erc1967.d.ts +5 -0
- package/dist-runtime/workflow/lib/erc1967.js +29 -0
- package/dist-runtime/workflow/lib/erc1967.js.map +1 -0
- package/dist-runtime/workflow/lib/errors.d.ts +6 -0
- package/dist-runtime/workflow/lib/errors.js +77 -0
- package/dist-runtime/workflow/lib/errors.js.map +1 -0
- package/dist-runtime/workflow/lib/executionId.d.ts +7 -0
- package/dist-runtime/workflow/lib/executionId.js +26 -0
- package/dist-runtime/workflow/lib/executionId.js.map +1 -0
- package/dist-runtime/workflow/lib/executionPlan.d.ts +85 -0
- package/dist-runtime/workflow/lib/executionPlan.js +450 -0
- package/dist-runtime/workflow/lib/executionPlan.js.map +1 -0
- package/dist-runtime/workflow/lib/executionProgress.d.ts +5 -0
- package/dist-runtime/workflow/lib/executionProgress.js +100 -0
- package/dist-runtime/workflow/lib/executionProgress.js.map +1 -0
- package/dist-runtime/workflow/lib/external.d.ts +62 -0
- package/dist-runtime/workflow/lib/external.js +282 -0
- package/dist-runtime/workflow/lib/external.js.map +1 -0
- package/dist-runtime/workflow/lib/externalExecutionScanner.d.ts +64 -0
- package/dist-runtime/workflow/lib/externalExecutionScanner.js +638 -0
- package/dist-runtime/workflow/lib/externalExecutionScanner.js.map +1 -0
- package/dist-runtime/workflow/lib/forkSnapshot.d.ts +34 -0
- package/dist-runtime/workflow/lib/forkSnapshot.js +167 -0
- package/dist-runtime/workflow/lib/forkSnapshot.js.map +1 -0
- package/dist-runtime/workflow/lib/gateTool.d.ts +16 -0
- package/dist-runtime/workflow/lib/gateTool.js +177 -0
- package/dist-runtime/workflow/lib/gateTool.js.map +1 -0
- package/dist-runtime/workflow/lib/gateToolSync.d.ts +22 -0
- package/dist-runtime/workflow/lib/gateToolSync.js +253 -0
- package/dist-runtime/workflow/lib/gateToolSync.js.map +1 -0
- package/dist-runtime/workflow/lib/lock.d.ts +52 -0
- package/dist-runtime/workflow/lib/lock.js +269 -0
- package/dist-runtime/workflow/lib/lock.js.map +1 -0
- package/dist-runtime/workflow/lib/migrationState.d.ts +103 -0
- package/dist-runtime/workflow/lib/migrationState.js +920 -0
- package/dist-runtime/workflow/lib/migrationState.js.map +1 -0
- package/dist-runtime/workflow/lib/operatorExecution.d.ts +28 -0
- package/dist-runtime/workflow/lib/operatorExecution.js +134 -0
- package/dist-runtime/workflow/lib/operatorExecution.js.map +1 -0
- package/dist-runtime/workflow/lib/parameters.d.ts +58 -0
- package/dist-runtime/workflow/lib/parameters.js +322 -0
- package/dist-runtime/workflow/lib/parameters.js.map +1 -0
- package/dist-runtime/workflow/lib/pendingDeploymentReuse.d.ts +29 -0
- package/dist-runtime/workflow/lib/pendingDeploymentReuse.js +277 -0
- package/dist-runtime/workflow/lib/pendingDeploymentReuse.js.map +1 -0
- package/dist-runtime/workflow/lib/proxy.d.ts +18 -0
- package/dist-runtime/workflow/lib/proxy.js +19 -0
- package/dist-runtime/workflow/lib/proxy.js.map +1 -0
- package/dist-runtime/workflow/lib/registryCommit.d.ts +33 -0
- package/dist-runtime/workflow/lib/registryCommit.js +319 -0
- package/dist-runtime/workflow/lib/registryCommit.js.map +1 -0
- package/dist-runtime/workflow/lib/release.d.ts +57 -0
- package/dist-runtime/workflow/lib/release.js +256 -0
- package/dist-runtime/workflow/lib/release.js.map +1 -0
- package/dist-runtime/workflow/lib/releaseFinalize.d.ts +14 -0
- package/dist-runtime/workflow/lib/releaseFinalize.js +571 -0
- package/dist-runtime/workflow/lib/releaseFinalize.js.map +1 -0
- package/dist-runtime/workflow/lib/releaseParameters.d.ts +43 -0
- package/dist-runtime/workflow/lib/releaseParameters.js +184 -0
- package/dist-runtime/workflow/lib/releaseParameters.js.map +1 -0
- package/dist-runtime/workflow/lib/reporter.d.ts +39 -0
- package/dist-runtime/workflow/lib/reporter.js +452 -0
- package/dist-runtime/workflow/lib/reporter.js.map +1 -0
- package/dist-runtime/workflow/lib/resultPaths.d.ts +17 -0
- package/dist-runtime/workflow/lib/resultPaths.js +29 -0
- package/dist-runtime/workflow/lib/resultPaths.js.map +1 -0
- package/dist-runtime/workflow/lib/runtimeVersion.d.ts +10 -0
- package/dist-runtime/workflow/lib/runtimeVersion.js +46 -0
- package/dist-runtime/workflow/lib/runtimeVersion.js.map +1 -0
- package/dist-runtime/workflow/lib/signer.d.ts +10 -0
- package/dist-runtime/workflow/lib/signer.js +105 -0
- package/dist-runtime/workflow/lib/signer.js.map +1 -0
- package/dist-runtime/workflow/lib/signerIdentity.d.ts +1 -0
- package/dist-runtime/workflow/lib/signerIdentity.js +23 -0
- package/dist-runtime/workflow/lib/signerIdentity.js.map +1 -0
- package/dist-runtime/workflow/lib/simulation.d.ts +35 -0
- package/dist-runtime/workflow/lib/simulation.js +282 -0
- package/dist-runtime/workflow/lib/simulation.js.map +1 -0
- package/dist-runtime/workflow/lib/simulationCallers.d.ts +44 -0
- package/dist-runtime/workflow/lib/simulationCallers.js +260 -0
- package/dist-runtime/workflow/lib/simulationCallers.js.map +1 -0
- package/dist-runtime/workflow/lib/sourceRpcPolicy.d.ts +1 -0
- package/dist-runtime/workflow/lib/sourceRpcPolicy.js +43 -0
- package/dist-runtime/workflow/lib/sourceRpcPolicy.js.map +1 -0
- package/dist-runtime/workflow/lib/state.d.ts +6 -0
- package/dist-runtime/workflow/lib/state.js +25 -0
- package/dist-runtime/workflow/lib/state.js.map +1 -0
- package/dist-runtime/workflow/lib/staticValidation.d.ts +22 -0
- package/dist-runtime/workflow/lib/staticValidation.js +124 -0
- package/dist-runtime/workflow/lib/staticValidation.js.map +1 -0
- package/dist-runtime/workflow/lib/zksyncForkCapability.d.ts +27 -0
- package/dist-runtime/workflow/lib/zksyncForkCapability.js +52 -0
- package/dist-runtime/workflow/lib/zksyncForkCapability.js.map +1 -0
- package/dist-runtime/workflow/lib/zksyncForkRunner.d.ts +57 -0
- package/dist-runtime/workflow/lib/zksyncForkRunner.js +344 -0
- package/dist-runtime/workflow/lib/zksyncForkRunner.js.map +1 -0
- package/dist-runtime/workflow/reconcileExternal.d.ts +1 -0
- package/dist-runtime/workflow/reconcileExternal.js +87 -0
- package/dist-runtime/workflow/reconcileExternal.js.map +1 -0
- package/dist-runtime/workflow/reconcileExternalRun.d.ts +1 -0
- package/dist-runtime/workflow/reconcileExternalRun.js +77 -0
- package/dist-runtime/workflow/reconcileExternalRun.js.map +1 -0
- package/dist-runtime/workflow/releaseFinalize.d.ts +1 -0
- package/dist-runtime/workflow/releaseFinalize.js +11 -0
- package/dist-runtime/workflow/releaseFinalize.js.map +1 -0
- package/dist-runtime/workflow/run.d.ts +40 -0
- package/dist-runtime/workflow/run.js +858 -0
- package/dist-runtime/workflow/run.js.map +1 -0
- package/dist-runtime/workflow/staticValidate.d.ts +1 -0
- package/dist-runtime/workflow/staticValidate.js +26 -0
- package/dist-runtime/workflow/staticValidate.js.map +1 -0
- package/dist-runtime/workflow/steps/call.d.ts +3 -0
- package/dist-runtime/workflow/steps/call.js +9 -0
- package/dist-runtime/workflow/steps/call.js.map +1 -0
- package/dist-runtime/workflow/steps/check.d.ts +3 -0
- package/dist-runtime/workflow/steps/check.js +9 -0
- package/dist-runtime/workflow/steps/check.js.map +1 -0
- package/dist-runtime/workflow/steps/custom.d.ts +3 -0
- package/dist-runtime/workflow/steps/custom.js +33 -0
- package/dist-runtime/workflow/steps/custom.js.map +1 -0
- package/dist-runtime/workflow/steps/deploy.d.ts +3 -0
- package/dist-runtime/workflow/steps/deploy.js +595 -0
- package/dist-runtime/workflow/steps/deploy.js.map +1 -0
- package/dist-runtime/workflow/steps/upgrade.d.ts +3 -0
- package/dist-runtime/workflow/steps/upgrade.js +465 -0
- package/dist-runtime/workflow/steps/upgrade.js.map +1 -0
- package/dist-runtime/workflow/steps/view.d.ts +3 -0
- package/dist-runtime/workflow/steps/view.js +9 -0
- package/dist-runtime/workflow/steps/view.js.map +1 -0
- package/package.json +26 -5
- package/runtime/config/hardhatAdapters.ts +50 -0
- package/runtime/config/networks.ts +296 -0
- package/runtime/config/openzeppelin.ts +173 -0
- package/runtime/config/rpc.ts +27 -0
- package/runtime/config/zksyncSolcPath.ts +59 -0
- package/runtime/hardhat-types.d.ts +2 -0
- package/runtime/migrate.ts +154 -0
- package/runtime/projectHardhat.ts +10 -0
- package/runtime/template-migration.json +293 -0
- package/runtime/workflow/checkCode.ts +13 -0
- package/runtime/workflow/checkCodeFinalize.ts +8 -0
- package/runtime/workflow/checkCodePlan.ts +8 -0
- package/runtime/workflow/cli.ts +356 -0
- package/runtime/workflow/commitContractInfo.ts +63 -0
- package/runtime/workflow/create2Hashes.ts +79 -0
- package/runtime/workflow/forkSourceProxy.ts +193 -0
- package/runtime/workflow/importState.ts +190 -0
- package/runtime/workflow/lib/authority.ts +170 -0
- package/runtime/workflow/lib/calldata.ts +9 -0
- package/runtime/workflow/lib/calls.ts +407 -0
- package/runtime/workflow/lib/checkCode/args.ts +76 -0
- package/runtime/workflow/lib/checkCode/command.ts +36 -0
- package/runtime/workflow/lib/checkCode/dependencies.ts +112 -0
- package/runtime/workflow/lib/checkCode/finalize.ts +198 -0
- package/runtime/workflow/lib/checkCode/index.ts +18 -0
- package/runtime/workflow/lib/checkCode/plan.ts +163 -0
- package/runtime/workflow/lib/checkCodeReport.ts +133 -0
- package/runtime/workflow/lib/checkCodeRunner.ts +1225 -0
- package/runtime/workflow/lib/cliTool.ts +31 -0
- package/runtime/workflow/lib/config.ts +130 -0
- package/runtime/workflow/lib/contractInfoCandidates.ts +690 -0
- package/runtime/workflow/lib/create2.ts +278 -0
- package/runtime/workflow/lib/create2Hashes.ts +83 -0
- package/runtime/workflow/lib/deploymentInfo.ts +286 -0
- package/runtime/workflow/lib/deploymentRecords.ts +576 -0
- package/runtime/workflow/lib/deployments.ts +276 -0
- package/runtime/workflow/lib/erc1967.ts +57 -0
- package/runtime/workflow/lib/errors.ts +95 -0
- package/runtime/workflow/lib/executionId.ts +35 -0
- package/runtime/workflow/lib/executionPlan.ts +550 -0
- package/runtime/workflow/lib/executionProgress.ts +127 -0
- package/runtime/workflow/lib/external.ts +372 -0
- package/runtime/workflow/lib/externalExecutionScanner.ts +892 -0
- package/runtime/workflow/lib/forkSnapshot.ts +231 -0
- package/runtime/workflow/lib/gateTool.ts +261 -0
- package/runtime/workflow/lib/gateToolSync.ts +398 -0
- package/runtime/workflow/lib/lock.ts +388 -0
- package/runtime/workflow/lib/migrationState.ts +1246 -0
- package/runtime/workflow/lib/operatorExecution.ts +174 -0
- package/runtime/workflow/lib/parameters.ts +437 -0
- package/runtime/workflow/lib/pendingDeploymentReuse.ts +428 -0
- package/runtime/workflow/lib/proxy.ts +45 -0
- package/runtime/workflow/lib/registryCommit.ts +455 -0
- package/runtime/workflow/lib/release.ts +329 -0
- package/runtime/workflow/lib/releaseFinalize.ts +711 -0
- package/runtime/workflow/lib/releaseParameters.ts +248 -0
- package/runtime/workflow/lib/reporter.ts +502 -0
- package/runtime/workflow/lib/resultPaths.ts +49 -0
- package/runtime/workflow/lib/runtimeVersion.ts +28 -0
- package/runtime/workflow/lib/signer.ts +124 -0
- package/runtime/workflow/lib/signerIdentity.ts +22 -0
- package/runtime/workflow/lib/simulation.ts +415 -0
- package/runtime/workflow/lib/simulationCallers.ts +335 -0
- package/runtime/workflow/lib/sourceRpcPolicy.ts +41 -0
- package/runtime/workflow/lib/state.ts +25 -0
- package/runtime/workflow/lib/staticValidation.ts +142 -0
- package/runtime/workflow/lib/zksyncForkCapability.ts +80 -0
- package/runtime/workflow/lib/zksyncForkRunner.ts +505 -0
- package/runtime/workflow/reconcileExternal.ts +86 -0
- package/runtime/workflow/reconcileExternalRun.ts +88 -0
- package/runtime/workflow/releaseFinalize.ts +8 -0
- package/runtime/workflow/run.ts +1072 -0
- package/runtime/workflow/staticValidate.ts +23 -0
- package/runtime/workflow/steps/call.ts +10 -0
- package/runtime/workflow/steps/check.ts +10 -0
- package/runtime/workflow/steps/custom.ts +43 -0
- package/runtime/workflow/steps/deploy.ts +771 -0
- package/runtime/workflow/steps/upgrade.ts +598 -0
- package/runtime/workflow/steps/view.ts +10 -0
|
@@ -0,0 +1,174 @@
|
|
|
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.runDevelopmentCheckCodeFinalizeCli = exports.finalizeDevelopmentCheckCode = void 0;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const checkCodeRunner_1 = require("../checkCodeRunner");
|
|
10
|
+
const SAFE_ID = /^[A-Za-z0-9][A-Za-z0-9_-]{0,199}$/;
|
|
11
|
+
const safeId = (value, label) => {
|
|
12
|
+
if (!SAFE_ID.test(value))
|
|
13
|
+
throw new Error(`${label} is invalid`);
|
|
14
|
+
return value;
|
|
15
|
+
};
|
|
16
|
+
const readObject = (filePath, label) => {
|
|
17
|
+
const value = JSON.parse(fs_1.default.readFileSync(filePath, "utf8"));
|
|
18
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
19
|
+
throw new Error(`${label} must be an object`);
|
|
20
|
+
}
|
|
21
|
+
return value;
|
|
22
|
+
};
|
|
23
|
+
const object = (value) => (value && typeof value === "object" && !Array.isArray(value)
|
|
24
|
+
? value
|
|
25
|
+
: {});
|
|
26
|
+
const writeAtomic = (filePath, contents) => {
|
|
27
|
+
fs_1.default.mkdirSync(path_1.default.dirname(filePath), { recursive: true });
|
|
28
|
+
const temporary = `${filePath}.${process.pid}.${Date.now()}.tmp`;
|
|
29
|
+
try {
|
|
30
|
+
fs_1.default.writeFileSync(temporary, contents);
|
|
31
|
+
fs_1.default.renameSync(temporary, filePath);
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
if (fs_1.default.existsSync(temporary))
|
|
35
|
+
fs_1.default.unlinkSync(temporary);
|
|
36
|
+
throw error;
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
const writeJsonAtomic = (filePath, value) => {
|
|
40
|
+
writeAtomic(filePath, JSON.stringify(value, null, 2) + "\n");
|
|
41
|
+
};
|
|
42
|
+
const finalizeDevelopmentCheckCode = (input) => {
|
|
43
|
+
const deploymentId = safeId(input.deploymentId, "deploymentId");
|
|
44
|
+
const sourceSuperTaskId = safeId(input.sourceSuperTaskId, "sourceSuperTaskId");
|
|
45
|
+
const developmentNetwork = safeId(input.developmentNetwork, "developmentNetwork");
|
|
46
|
+
const executionId = safeId(input.executionId, "executionId");
|
|
47
|
+
const runId = safeId(input.runId, "CheckCode runId");
|
|
48
|
+
const updatedAt = (input.now || (() => new Date().toISOString()))();
|
|
49
|
+
if (!Number.isFinite(Date.parse(updatedAt)))
|
|
50
|
+
throw new Error("Finalize timestamp is invalid");
|
|
51
|
+
const taskBase = `scripts/tasks/${deploymentId}`;
|
|
52
|
+
const reportPath = `scripts/checkcode/runs/${runId}/report.json`;
|
|
53
|
+
const statusPath = `${taskBase}/status.json`;
|
|
54
|
+
const handoffPath = `${taskBase}/handoff.json`;
|
|
55
|
+
const documentPath = `${taskBase}/docs/checkcode-report.md`;
|
|
56
|
+
const absolute = (relative) => path_1.default.join(input.root, ...relative.split("/"));
|
|
57
|
+
const report = (0, checkCodeRunner_1.validateCheckCodeRunReport)(readObject(absolute(reportPath), "CheckCode report"));
|
|
58
|
+
if (report.status !== "succeeded"
|
|
59
|
+
|| report.runId !== runId
|
|
60
|
+
|| report.reportPath !== reportPath) {
|
|
61
|
+
throw new Error("Development CheckCode requires the selected canonical succeeded report");
|
|
62
|
+
}
|
|
63
|
+
const status = readObject(absolute(statusPath), "status.json");
|
|
64
|
+
const phases = object(status.phases);
|
|
65
|
+
const networks = object(status.networks);
|
|
66
|
+
const network = object(networks[developmentNetwork]);
|
|
67
|
+
if (status.sourceSuperTaskId !== sourceSuperTaskId
|
|
68
|
+
|| status.developmentNetwork !== developmentNetwork
|
|
69
|
+
|| network.registryExecutionId !== executionId
|
|
70
|
+
|| network.deployStatus !== "deployed_pending_code_audit") {
|
|
71
|
+
throw new Error("Development CheckCode status identity is invalid");
|
|
72
|
+
}
|
|
73
|
+
const nextStatus = {
|
|
74
|
+
...status,
|
|
75
|
+
status: "code_checked",
|
|
76
|
+
phases: {
|
|
77
|
+
...phases,
|
|
78
|
+
checkCode: {
|
|
79
|
+
networks: [developmentNetwork],
|
|
80
|
+
status: "succeeded",
|
|
81
|
+
report: reportPath,
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
networks: {
|
|
85
|
+
...networks,
|
|
86
|
+
[developmentNetwork]: {
|
|
87
|
+
...network,
|
|
88
|
+
deployStatus: "deployed_pending_code_audit",
|
|
89
|
+
checkCodeStatus: "succeeded",
|
|
90
|
+
checkCodeRunId: runId,
|
|
91
|
+
checkCodeReportPath: reportPath,
|
|
92
|
+
updatedAt,
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
updatedAt,
|
|
96
|
+
};
|
|
97
|
+
const existingHandoff = readObject(absolute(handoffPath), "handoff.json");
|
|
98
|
+
const { checkCodeReport: _legacyCheckCodeReport, ...handoff } = existingHandoff;
|
|
99
|
+
const nextHandoff = {
|
|
100
|
+
...handoff,
|
|
101
|
+
stageKind: "check_code",
|
|
102
|
+
status: "code_checked",
|
|
103
|
+
sourceSuperTaskId,
|
|
104
|
+
deploymentId,
|
|
105
|
+
developmentNetwork,
|
|
106
|
+
executionId,
|
|
107
|
+
networks: [developmentNetwork],
|
|
108
|
+
development_deployed: true,
|
|
109
|
+
checkCode: {
|
|
110
|
+
runId,
|
|
111
|
+
reportPath,
|
|
112
|
+
artifactHash: report.artifactHash,
|
|
113
|
+
},
|
|
114
|
+
updatedAt,
|
|
115
|
+
};
|
|
116
|
+
const lines = [
|
|
117
|
+
"# CheckCode Report",
|
|
118
|
+
"",
|
|
119
|
+
`sourceSuperTaskId: ${sourceSuperTaskId}`,
|
|
120
|
+
`deploymentId: ${deploymentId}`,
|
|
121
|
+
`developmentNetwork: ${developmentNetwork}`,
|
|
122
|
+
`executionId: ${executionId}`,
|
|
123
|
+
`runId: ${runId}`,
|
|
124
|
+
`artifactHash: ${report.artifactHash}`,
|
|
125
|
+
`reportPath: ${reportPath}`,
|
|
126
|
+
`status: ${report.status}`,
|
|
127
|
+
`startedAt: ${report.startedAt}`,
|
|
128
|
+
`completedAt: ${report.completedAt}`,
|
|
129
|
+
"",
|
|
130
|
+
"## Commands",
|
|
131
|
+
...report.commands.map((command) => (`- ${command.command} ${command.args.join(" ")} — exit ${command.status}`)),
|
|
132
|
+
"",
|
|
133
|
+
];
|
|
134
|
+
writeJsonAtomic(absolute(statusPath), nextStatus);
|
|
135
|
+
writeJsonAtomic(absolute(handoffPath), nextHandoff);
|
|
136
|
+
writeAtomic(absolute(documentPath), lines.join("\n"));
|
|
137
|
+
return { reportPath, handoffPath, statusPath, documentPath };
|
|
138
|
+
};
|
|
139
|
+
exports.finalizeDevelopmentCheckCode = finalizeDevelopmentCheckCode;
|
|
140
|
+
const runDevelopmentCheckCodeFinalizeCli = (argv, defaultRoot = process.cwd()) => {
|
|
141
|
+
const values = new Map();
|
|
142
|
+
for (let index = 0; index < argv.length; index += 1) {
|
|
143
|
+
const item = argv[index];
|
|
144
|
+
if (!item.startsWith("--"))
|
|
145
|
+
continue;
|
|
146
|
+
const equalAt = item.indexOf("=");
|
|
147
|
+
const key = item.slice(2, equalAt > 2 ? equalAt : undefined);
|
|
148
|
+
const next = argv[index + 1];
|
|
149
|
+
const value = equalAt > 2 ? item.slice(equalAt + 1) : next;
|
|
150
|
+
if (!value || value.startsWith("--"))
|
|
151
|
+
throw new Error(`--${key} requires a value`);
|
|
152
|
+
if (values.has(key))
|
|
153
|
+
throw new Error(`--${key} may be provided only once`);
|
|
154
|
+
values.set(key, value.trim());
|
|
155
|
+
if (equalAt < 0)
|
|
156
|
+
index += 1;
|
|
157
|
+
}
|
|
158
|
+
const required = (key) => {
|
|
159
|
+
const value = values.get(key);
|
|
160
|
+
if (!value)
|
|
161
|
+
throw new Error(`--${key} is required`);
|
|
162
|
+
return value;
|
|
163
|
+
};
|
|
164
|
+
return (0, exports.finalizeDevelopmentCheckCode)({
|
|
165
|
+
root: path_1.default.resolve(values.get("root") || defaultRoot),
|
|
166
|
+
deploymentId: required("deploymentId"),
|
|
167
|
+
sourceSuperTaskId: required("sourceSuperTaskId"),
|
|
168
|
+
developmentNetwork: required("developmentNetwork"),
|
|
169
|
+
executionId: required("executionId"),
|
|
170
|
+
runId: required("runId"),
|
|
171
|
+
});
|
|
172
|
+
};
|
|
173
|
+
exports.runDevelopmentCheckCodeFinalizeCli = runDevelopmentCheckCodeFinalizeCli;
|
|
174
|
+
//# sourceMappingURL=finalize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"finalize.js","sourceRoot":"","sources":["../../../../runtime/workflow/lib/checkCode/finalize.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runCheckCodeWorkflow = exports.parseCheckCodeOptions = void 0;
|
|
4
|
+
const checkCodeRunner_1 = require("../checkCodeRunner");
|
|
5
|
+
const args_1 = require("./args");
|
|
6
|
+
const dependencies_1 = require("./dependencies");
|
|
7
|
+
var args_2 = require("./args");
|
|
8
|
+
Object.defineProperty(exports, "parseCheckCodeOptions", { enumerable: true, get: function () { return args_2.parseCheckCodeOptions; } });
|
|
9
|
+
const runCheckCodeWorkflow = async (argv = process.argv.slice(2), defaultRoot = process.cwd()) => {
|
|
10
|
+
const options = (0, args_1.parseCheckCodeOptions)(argv, defaultRoot);
|
|
11
|
+
const runtime = (0, dependencies_1.createCheckCodeDependencies)(options.root);
|
|
12
|
+
try {
|
|
13
|
+
return await (0, checkCodeRunner_1.runCheckCode)(options, runtime.dependencies);
|
|
14
|
+
}
|
|
15
|
+
finally {
|
|
16
|
+
runtime.dispose();
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
exports.runCheckCodeWorkflow = runCheckCodeWorkflow;
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../runtime/workflow/lib/checkCode/index.ts"],"names":[],"mappings":";;;AAAA,wDAA2E;AAC3E,iCAA+C;AAC/C,iDAA6D;AAE7D,+BAA+C;AAAtC,6GAAA,qBAAqB,OAAA;AAEvB,MAAM,oBAAoB,GAAG,KAAK,EACvC,OAAiB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EACtC,cAAsB,OAAO,CAAC,GAAG,EAAE,EACN,EAAE;IAC/B,MAAM,OAAO,GAAG,IAAA,4BAAqB,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,IAAA,0CAA2B,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,IAAI,CAAC;QACH,OAAO,MAAM,IAAA,8BAAY,EAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC3D,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,OAAO,EAAE,CAAC;IACpB,CAAC;AACH,CAAC,CAAC;AAXW,QAAA,oBAAoB,wBAW/B"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export interface CheckCodePlanTarget {
|
|
2
|
+
network: string;
|
|
3
|
+
manifestDir: string;
|
|
4
|
+
contracts: string[];
|
|
5
|
+
}
|
|
6
|
+
export interface CheckCodePlanInput {
|
|
7
|
+
root: string;
|
|
8
|
+
runId: string;
|
|
9
|
+
artifactHash: string;
|
|
10
|
+
deploymentId?: string;
|
|
11
|
+
sourceSuperTaskId?: string;
|
|
12
|
+
developmentNetwork?: string;
|
|
13
|
+
executionId?: string;
|
|
14
|
+
targets: CheckCodePlanTarget[];
|
|
15
|
+
}
|
|
16
|
+
export interface CheckCodePlanResult {
|
|
17
|
+
planPath: string;
|
|
18
|
+
runId: string;
|
|
19
|
+
artifactHash: string;
|
|
20
|
+
}
|
|
21
|
+
export declare const prepareCheckCodePlan: (input: CheckCodePlanInput) => CheckCodePlanResult;
|
|
22
|
+
export declare const runCheckCodePlanCli: (argv: string[], defaultRoot?: string) => CheckCodePlanResult;
|
|
@@ -0,0 +1,145 @@
|
|
|
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.runCheckCodePlanCli = exports.prepareCheckCodePlan = void 0;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const SAFE_ID = /^[A-Za-z0-9][A-Za-z0-9_-]{0,199}$/;
|
|
10
|
+
const HASH = /^[0-9a-f]{64}$/;
|
|
11
|
+
const MANIFEST_DIR = /^\.openzeppelin(?:\.[a-z0-9][a-z0-9-]*)?$/;
|
|
12
|
+
const safeId = (value, label) => {
|
|
13
|
+
if (!SAFE_ID.test(value))
|
|
14
|
+
throw new Error(`${label} is invalid`);
|
|
15
|
+
return value;
|
|
16
|
+
};
|
|
17
|
+
const superTaskIdentity = (input) => {
|
|
18
|
+
const values = [
|
|
19
|
+
input.deploymentId,
|
|
20
|
+
input.sourceSuperTaskId,
|
|
21
|
+
input.developmentNetwork,
|
|
22
|
+
input.executionId,
|
|
23
|
+
];
|
|
24
|
+
if (values.every(Boolean))
|
|
25
|
+
return true;
|
|
26
|
+
if (values.some(Boolean)) {
|
|
27
|
+
throw new Error("SuperTask CheckCode plan requires deploymentId, sourceSuperTaskId, developmentNetwork, and executionId together");
|
|
28
|
+
}
|
|
29
|
+
return false;
|
|
30
|
+
};
|
|
31
|
+
const writeTextAtomic = (filePath, contents) => {
|
|
32
|
+
fs_1.default.mkdirSync(path_1.default.dirname(filePath), { recursive: true });
|
|
33
|
+
const temporary = `${filePath}.${process.pid}.${Date.now()}.tmp`;
|
|
34
|
+
try {
|
|
35
|
+
fs_1.default.writeFileSync(temporary, contents);
|
|
36
|
+
fs_1.default.renameSync(temporary, filePath);
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
if (fs_1.default.existsSync(temporary))
|
|
40
|
+
fs_1.default.unlinkSync(temporary);
|
|
41
|
+
throw error;
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
const prepareCheckCodePlan = (input) => {
|
|
45
|
+
const runId = safeId(input.runId, "CheckCode runId");
|
|
46
|
+
if (!HASH.test(input.artifactHash))
|
|
47
|
+
throw new Error("CheckCode artifactHash is invalid");
|
|
48
|
+
const isSuperTask = superTaskIdentity(input);
|
|
49
|
+
const targets = [...input.targets]
|
|
50
|
+
.map((target) => ({
|
|
51
|
+
network: safeId(target.network, "CheckCode target network"),
|
|
52
|
+
manifestDir: target.manifestDir,
|
|
53
|
+
contracts: [...new Set(target.contracts.map((item) => item.trim()).filter(Boolean))].sort(),
|
|
54
|
+
}))
|
|
55
|
+
.sort((left, right) => left.network.localeCompare(right.network));
|
|
56
|
+
if (targets.length === 0)
|
|
57
|
+
throw new Error("CheckCode plan requires at least one target");
|
|
58
|
+
if (new Set(targets.map((target) => target.network)).size !== targets.length) {
|
|
59
|
+
throw new Error("CheckCode plan target networks must be unique");
|
|
60
|
+
}
|
|
61
|
+
for (const target of targets) {
|
|
62
|
+
if (!MANIFEST_DIR.test(target.manifestDir)) {
|
|
63
|
+
throw new Error(`CheckCode manifestDir is invalid for ${target.network}`);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
if (isSuperTask && (targets.length !== 1 || targets[0].network !== input.developmentNetwork)) {
|
|
67
|
+
throw new Error("SuperTask CheckCode plan must target only developmentNetwork");
|
|
68
|
+
}
|
|
69
|
+
const relativePath = isSuperTask
|
|
70
|
+
? `scripts/tasks/${safeId(input.deploymentId, "deploymentId")}/docs/checkcode-plan.md`
|
|
71
|
+
: "docs/checkcode-plan.md";
|
|
72
|
+
const lines = [
|
|
73
|
+
"# CheckCode Plan",
|
|
74
|
+
"",
|
|
75
|
+
`runId: ${runId}`,
|
|
76
|
+
`artifactHash: ${input.artifactHash}`,
|
|
77
|
+
...(isSuperTask ? [
|
|
78
|
+
`deploymentId: ${safeId(input.deploymentId, "deploymentId")}`,
|
|
79
|
+
`sourceSuperTaskId: ${safeId(input.sourceSuperTaskId, "sourceSuperTaskId")}`,
|
|
80
|
+
`developmentNetwork: ${safeId(input.developmentNetwork, "developmentNetwork")}`,
|
|
81
|
+
`executionId: ${safeId(input.executionId, "executionId")}`,
|
|
82
|
+
] : []),
|
|
83
|
+
"",
|
|
84
|
+
"## Targets",
|
|
85
|
+
...targets.flatMap((target) => [
|
|
86
|
+
`- network: ${target.network}`,
|
|
87
|
+
` manifestDir: ${target.manifestDir}`,
|
|
88
|
+
` contracts: ${target.contracts.join(", ") || "<all>"}`,
|
|
89
|
+
]),
|
|
90
|
+
"",
|
|
91
|
+
];
|
|
92
|
+
writeTextAtomic(path_1.default.join(input.root, ...relativePath.split("/")), lines.join("\n"));
|
|
93
|
+
return { planPath: relativePath, runId, artifactHash: input.artifactHash };
|
|
94
|
+
};
|
|
95
|
+
exports.prepareCheckCodePlan = prepareCheckCodePlan;
|
|
96
|
+
const runCheckCodePlanCli = (argv, defaultRoot = process.cwd()) => {
|
|
97
|
+
const values = new Map();
|
|
98
|
+
for (let index = 0; index < argv.length; index += 1) {
|
|
99
|
+
const item = argv[index];
|
|
100
|
+
if (!item.startsWith("--"))
|
|
101
|
+
continue;
|
|
102
|
+
const equalAt = item.indexOf("=");
|
|
103
|
+
const key = item.slice(2, equalAt > 2 ? equalAt : undefined);
|
|
104
|
+
const next = argv[index + 1];
|
|
105
|
+
const value = equalAt > 2 ? item.slice(equalAt + 1) : next;
|
|
106
|
+
if (!value || value.startsWith("--"))
|
|
107
|
+
throw new Error(`--${key} requires a value`);
|
|
108
|
+
if (equalAt < 0)
|
|
109
|
+
index += 1;
|
|
110
|
+
const current = values.get(key) || [];
|
|
111
|
+
current.push(value);
|
|
112
|
+
values.set(key, current);
|
|
113
|
+
}
|
|
114
|
+
const one = (key, required = false) => {
|
|
115
|
+
const items = values.get(key) || [];
|
|
116
|
+
if (items.length > 1)
|
|
117
|
+
throw new Error(`--${key} may be provided only once`);
|
|
118
|
+
if (required && !items[0]?.trim())
|
|
119
|
+
throw new Error(`--${key} is required`);
|
|
120
|
+
return items[0]?.trim() || undefined;
|
|
121
|
+
};
|
|
122
|
+
const developmentNetwork = one("developmentNetwork");
|
|
123
|
+
const network = one("network") || developmentNetwork;
|
|
124
|
+
if (!network)
|
|
125
|
+
throw new Error("--network or --developmentNetwork is required");
|
|
126
|
+
return (0, exports.prepareCheckCodePlan)({
|
|
127
|
+
root: path_1.default.resolve(one("root") || defaultRoot),
|
|
128
|
+
runId: one("runId", true),
|
|
129
|
+
artifactHash: one("artifactHash", true),
|
|
130
|
+
deploymentId: one("deploymentId"),
|
|
131
|
+
sourceSuperTaskId: one("sourceSuperTaskId"),
|
|
132
|
+
developmentNetwork,
|
|
133
|
+
executionId: one("executionId"),
|
|
134
|
+
targets: [{
|
|
135
|
+
network,
|
|
136
|
+
manifestDir: one("manifestDir", true),
|
|
137
|
+
contracts: (values.get("contract") || [])
|
|
138
|
+
.flatMap((item) => item.split(","))
|
|
139
|
+
.map((item) => item.trim())
|
|
140
|
+
.filter(Boolean),
|
|
141
|
+
}],
|
|
142
|
+
});
|
|
143
|
+
};
|
|
144
|
+
exports.runCheckCodePlanCli = runCheckCodePlanCli;
|
|
145
|
+
//# sourceMappingURL=plan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../../runtime/workflow/lib/checkCode/plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export interface CheckCodeEvidenceEntry {
|
|
2
|
+
status: "passed";
|
|
3
|
+
network: string;
|
|
4
|
+
scheme: "evm" | "zksync-eravm";
|
|
5
|
+
instanceId: string;
|
|
6
|
+
contractInfoKey: string;
|
|
7
|
+
address: string;
|
|
8
|
+
artifactHash: string;
|
|
9
|
+
runId: string;
|
|
10
|
+
checkedAt: string;
|
|
11
|
+
}
|
|
12
|
+
export interface CheckCodeEvidenceIndex {
|
|
13
|
+
version: 1;
|
|
14
|
+
entries: Record<string, CheckCodeEvidenceEntry>;
|
|
15
|
+
}
|
|
16
|
+
export interface ReusableDeploymentExpectation {
|
|
17
|
+
network: string;
|
|
18
|
+
scheme: "evm" | "zksync-eravm";
|
|
19
|
+
instanceId: string;
|
|
20
|
+
address: string;
|
|
21
|
+
artifactHash: string;
|
|
22
|
+
}
|
|
23
|
+
export declare const loadCheckCodeEvidenceIndex: (root: string) => CheckCodeEvidenceIndex;
|
|
24
|
+
export declare const assertReusableDeployment: (root: string, expected: ReusableDeploymentExpectation) => CheckCodeEvidenceEntry;
|
|
25
|
+
export declare const updateCheckCodeEvidenceIndex: (root: string, evidenceEntries: CheckCodeEvidenceEntry[]) => CheckCodeEvidenceIndex;
|
|
@@ -0,0 +1,102 @@
|
|
|
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.updateCheckCodeEvidenceIndex = exports.assertReusableDeployment = exports.loadCheckCodeEvidenceIndex = void 0;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const isRecord = (value) => {
|
|
10
|
+
return !!value && typeof value === "object" && !Array.isArray(value);
|
|
11
|
+
};
|
|
12
|
+
const evidenceIndexPath = (root) => {
|
|
13
|
+
return path_1.default.join(root, "scripts", "checkcode", "index.json");
|
|
14
|
+
};
|
|
15
|
+
const writeJsonAtomic = (filePath, value) => {
|
|
16
|
+
fs_1.default.mkdirSync(path_1.default.dirname(filePath), { recursive: true });
|
|
17
|
+
const temporary = filePath + "." + process.pid + "." + Date.now() + ".tmp";
|
|
18
|
+
try {
|
|
19
|
+
fs_1.default.writeFileSync(temporary, JSON.stringify(value, null, 2) + "\n");
|
|
20
|
+
fs_1.default.renameSync(temporary, filePath);
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
if (fs_1.default.existsSync(temporary))
|
|
24
|
+
fs_1.default.unlinkSync(temporary);
|
|
25
|
+
throw error;
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
const loadCheckCodeEvidenceIndex = (root) => {
|
|
29
|
+
const filePath = evidenceIndexPath(root);
|
|
30
|
+
if (!fs_1.default.existsSync(filePath)) {
|
|
31
|
+
throw new Error("Existing deployment has no passed CheckCode evidence index");
|
|
32
|
+
}
|
|
33
|
+
let parsed;
|
|
34
|
+
try {
|
|
35
|
+
parsed = JSON.parse(fs_1.default.readFileSync(filePath, "utf8"));
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
throw new Error("CheckCode evidence index must contain valid JSON: "
|
|
39
|
+
+ (error instanceof Error ? error.message : String(error)));
|
|
40
|
+
}
|
|
41
|
+
if (!isRecord(parsed) || parsed.version !== 1 || !isRecord(parsed.entries)) {
|
|
42
|
+
throw new Error("CheckCode evidence index must contain version 1 entries");
|
|
43
|
+
}
|
|
44
|
+
const entries = {};
|
|
45
|
+
for (const [key, entryValue] of Object.entries(parsed.entries)) {
|
|
46
|
+
if (!isRecord(entryValue) || entryValue.status !== "passed") {
|
|
47
|
+
throw new Error("CheckCode evidence entry " + key + " must have passed status");
|
|
48
|
+
}
|
|
49
|
+
for (const field of [
|
|
50
|
+
"network",
|
|
51
|
+
"scheme",
|
|
52
|
+
"instanceId",
|
|
53
|
+
"contractInfoKey",
|
|
54
|
+
"address",
|
|
55
|
+
"artifactHash",
|
|
56
|
+
"runId",
|
|
57
|
+
"checkedAt",
|
|
58
|
+
]) {
|
|
59
|
+
if (typeof entryValue[field] !== "string" || !String(entryValue[field]).trim()) {
|
|
60
|
+
throw new Error("CheckCode evidence entry " + key + "." + field + " is required");
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
entries[key] = entryValue;
|
|
64
|
+
}
|
|
65
|
+
return { version: 1, entries };
|
|
66
|
+
};
|
|
67
|
+
exports.loadCheckCodeEvidenceIndex = loadCheckCodeEvidenceIndex;
|
|
68
|
+
const assertReusableDeployment = (root, expected) => {
|
|
69
|
+
const index = (0, exports.loadCheckCodeEvidenceIndex)(root);
|
|
70
|
+
const evidence = Object.values(index.entries).find((entry) => (entry.network === expected.network && entry.instanceId === expected.instanceId));
|
|
71
|
+
if (!evidence) {
|
|
72
|
+
throw new Error("Existing deployment " + expected.network + "." + expected.instanceId
|
|
73
|
+
+ " has no passed CheckCode evidence");
|
|
74
|
+
}
|
|
75
|
+
if (evidence.address.toLowerCase() !== expected.address.toLowerCase()) {
|
|
76
|
+
throw new Error("CheckCode address does not match the existing deployment");
|
|
77
|
+
}
|
|
78
|
+
if (evidence.scheme !== expected.scheme) {
|
|
79
|
+
throw new Error("CheckCode scheme does not match the existing deployment");
|
|
80
|
+
}
|
|
81
|
+
if (evidence.artifactHash !== expected.artifactHash) {
|
|
82
|
+
throw new Error("CheckCode artifactHash does not match the execution artifactHash");
|
|
83
|
+
}
|
|
84
|
+
return evidence;
|
|
85
|
+
};
|
|
86
|
+
exports.assertReusableDeployment = assertReusableDeployment;
|
|
87
|
+
const updateCheckCodeEvidenceIndex = (root, evidenceEntries) => {
|
|
88
|
+
const filePath = evidenceIndexPath(root);
|
|
89
|
+
let current = { version: 1, entries: {} };
|
|
90
|
+
if (fs_1.default.existsSync(filePath)) {
|
|
91
|
+
current = (0, exports.loadCheckCodeEvidenceIndex)(root);
|
|
92
|
+
}
|
|
93
|
+
const entries = { ...current.entries };
|
|
94
|
+
for (const evidence of evidenceEntries) {
|
|
95
|
+
entries[evidence.network + "." + evidence.instanceId] = evidence;
|
|
96
|
+
}
|
|
97
|
+
const next = { version: 1, entries };
|
|
98
|
+
writeJsonAtomic(filePath, next);
|
|
99
|
+
return next;
|
|
100
|
+
};
|
|
101
|
+
exports.updateCheckCodeEvidenceIndex = updateCheckCodeEvidenceIndex;
|
|
102
|
+
//# sourceMappingURL=checkCodeReport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkCodeReport.js","sourceRoot":"","sources":["../../../runtime/workflow/lib/checkCodeReport.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import type { DeploymentInfo } from "./deploymentInfo";
|
|
2
|
+
export type ManifestSyncStatus = "not_required" | "already_current" | "synced" | "proxy_kind_unknown" | "failed";
|
|
3
|
+
export type CheckCodeStatus = "compile_failed" | "check_failed" | "sync_partial" | "succeeded";
|
|
4
|
+
export type DeploymentScheme = "evm" | "zksync-eravm";
|
|
5
|
+
export type EffectiveContractInfo = Record<string, Record<string, string>>;
|
|
6
|
+
export interface CheckCodeOptions {
|
|
7
|
+
root: string;
|
|
8
|
+
runId: string;
|
|
9
|
+
artifactHash: string;
|
|
10
|
+
networks?: string[];
|
|
11
|
+
contracts?: string[];
|
|
12
|
+
deploymentAudit?: {
|
|
13
|
+
deploymentId: string;
|
|
14
|
+
registryCommitId: string;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export interface CheckCodeDeploymentAuditEvidence {
|
|
18
|
+
deploymentId: string;
|
|
19
|
+
registryCommitId: string;
|
|
20
|
+
registryCommitPath: string;
|
|
21
|
+
registryCommitHash: string;
|
|
22
|
+
selections: Array<{
|
|
23
|
+
network: string;
|
|
24
|
+
executionId: string;
|
|
25
|
+
}>;
|
|
26
|
+
}
|
|
27
|
+
export interface CommandResult {
|
|
28
|
+
status: number;
|
|
29
|
+
error?: string;
|
|
30
|
+
}
|
|
31
|
+
export interface CommandEvidence {
|
|
32
|
+
command: string;
|
|
33
|
+
args: string[];
|
|
34
|
+
status: number;
|
|
35
|
+
network: string;
|
|
36
|
+
scheme: DeploymentScheme;
|
|
37
|
+
manifestDir?: string;
|
|
38
|
+
manifestFile?: string;
|
|
39
|
+
error?: string;
|
|
40
|
+
}
|
|
41
|
+
export interface CheckCodeEntry {
|
|
42
|
+
network: string;
|
|
43
|
+
scheme: DeploymentScheme;
|
|
44
|
+
instanceId: string;
|
|
45
|
+
contractInfoKey: string;
|
|
46
|
+
actualContract: string;
|
|
47
|
+
address: string;
|
|
48
|
+
proxyKind?: string;
|
|
49
|
+
implementationAddress?: string;
|
|
50
|
+
manifestDir: string;
|
|
51
|
+
manifestFile: string;
|
|
52
|
+
syncStatus: ManifestSyncStatus;
|
|
53
|
+
beforeHash: string;
|
|
54
|
+
afterHash: string;
|
|
55
|
+
}
|
|
56
|
+
export interface CheckCodeRunReport {
|
|
57
|
+
version: 1;
|
|
58
|
+
runId: string;
|
|
59
|
+
status: CheckCodeStatus;
|
|
60
|
+
artifactHash: string;
|
|
61
|
+
sourceContractInfoPath: "contractInfo.json";
|
|
62
|
+
deploymentAudit?: CheckCodeDeploymentAuditEvidence;
|
|
63
|
+
effectiveContractInfoPath?: string;
|
|
64
|
+
rawCheckReportPath?: string;
|
|
65
|
+
entries: CheckCodeEntry[];
|
|
66
|
+
commands: CommandEvidence[];
|
|
67
|
+
startedAt: string;
|
|
68
|
+
completedAt: string;
|
|
69
|
+
error?: string;
|
|
70
|
+
reportPath: string;
|
|
71
|
+
}
|
|
72
|
+
export interface CheckCodeDependencies {
|
|
73
|
+
runCommand: (command: string, args: string[], options?: {
|
|
74
|
+
cwd: string;
|
|
75
|
+
env?: NodeJS.ProcessEnv;
|
|
76
|
+
}) => Promise<CommandResult> | CommandResult;
|
|
77
|
+
loadContractInfo: () => EffectiveContractInfo;
|
|
78
|
+
loadDeploymentInfo: () => DeploymentInfo;
|
|
79
|
+
resolveScheme: (network: string) => DeploymentScheme;
|
|
80
|
+
resolveManifestDir: (network: string) => string;
|
|
81
|
+
resolveManifestFile: (network: string, manifestDir: string) => Promise<string> | string;
|
|
82
|
+
getImplementation: (network: string, address: string) => Promise<string | undefined>;
|
|
83
|
+
getStorageLayoutHash: (contractName: string) => Promise<string>;
|
|
84
|
+
now?: () => string;
|
|
85
|
+
}
|
|
86
|
+
export declare const validateCheckCodeRunReport: (value: unknown) => CheckCodeRunReport;
|
|
87
|
+
export declare const runCheckCode: (options: CheckCodeOptions, dependencies: CheckCodeDependencies) => Promise<CheckCodeRunReport>;
|