gate-evm-tools 1.0.31 → 1.2.1
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 +34 -20
- package/bin/cli.js +3 -0
- package/bin/delivery.cjs +8 -7
- package/dist/commands/check.d.ts.map +1 -1
- package/dist/commands/check.js +26 -2
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/plan/index.d.ts.map +1 -1
- package/dist/commands/plan/index.js +1 -1
- package/dist/commands/plan/index.js.map +1 -1
- package/dist/core/preparation/batch.d.ts +26 -0
- package/dist/core/preparation/batch.d.ts.map +1 -0
- package/dist/core/preparation/batch.js +72 -0
- package/dist/core/preparation/batch.js.map +1 -0
- package/dist/core/preparation/evm.d.ts +23 -4
- package/dist/core/preparation/evm.d.ts.map +1 -1
- package/dist/core/preparation/evm.js +19 -3
- package/dist/core/preparation/evm.js.map +1 -1
- package/dist/core/preparation/evmManifestSync.d.ts +5 -0
- package/dist/core/preparation/evmManifestSync.d.ts.map +1 -1
- package/dist/core/preparation/evmManifestSync.js +15 -7
- package/dist/core/preparation/evmManifestSync.js.map +1 -1
- package/dist/core/preparation/index.d.ts +2 -2
- package/dist/core/preparation/index.d.ts.map +1 -1
- package/dist/core/preparation/manifest.d.ts +2 -0
- package/dist/core/preparation/manifest.d.ts.map +1 -1
- package/dist/core/preparation/manifest.js +2 -2
- package/dist/core/preparation/manifest.js.map +1 -1
- package/dist/core/preparation/normalize.d.ts.map +1 -1
- package/dist/core/preparation/normalize.js +53 -11
- package/dist/core/preparation/normalize.js.map +1 -1
- package/dist/core/preparation/transparent.d.ts +23 -0
- package/dist/core/preparation/transparent.d.ts.map +1 -0
- package/dist/core/preparation/transparent.js +103 -0
- package/dist/core/preparation/transparent.js.map +1 -0
- package/dist/core/preparation/types.d.ts +47 -5
- package/dist/core/preparation/types.d.ts.map +1 -1
- package/dist/core/preparation/zksync.d.ts.map +1 -1
- package/dist/core/preparation/zksync.js +2 -0
- package/dist/core/preparation/zksync.js.map +1 -1
- package/dist/custody/credential.d.ts.map +1 -1
- package/dist/custody/credential.js +1 -6
- package/dist/custody/credential.js.map +1 -1
- package/dist/deployment-evm/index.d.ts +4 -0
- package/dist/deployment-evm/index.d.ts.map +1 -0
- package/dist/deployment-evm/index.js +3 -0
- package/dist/deployment-evm/index.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/sync/index.d.ts.map +1 -1
- package/dist/sync/index.js +5 -0
- package/dist/sync/index.js.map +1 -1
- package/dist/types.d.ts +3 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/workflow/index.d.ts +4 -1
- package/dist/workflow/index.d.ts.map +1 -1
- package/dist/workflow/index.js +2 -0
- package/dist/workflow/index.js.map +1 -1
- package/dist-cjs/core/preparation/batch.js +76 -0
- package/dist-cjs/core/preparation/batch.js.map +1 -0
- package/dist-cjs/core/preparation/evm.js +25 -7
- package/dist-cjs/core/preparation/evm.js.map +1 -1
- package/dist-cjs/core/preparation/evmManifestSync.js +15 -7
- package/dist-cjs/core/preparation/evmManifestSync.js.map +1 -1
- package/dist-cjs/core/preparation/manifest.js +2 -2
- package/dist-cjs/core/preparation/manifest.js.map +1 -1
- package/dist-cjs/core/preparation/normalize.js +53 -11
- package/dist-cjs/core/preparation/normalize.js.map +1 -1
- package/dist-cjs/core/preparation/transparent.js +110 -0
- package/dist-cjs/core/preparation/transparent.js.map +1 -0
- package/dist-cjs/core/preparation/zksync.js +2 -0
- package/dist-cjs/core/preparation/zksync.js.map +1 -1
- package/dist-cjs/custody/credential.js +1 -6
- package/dist-cjs/custody/credential.js.map +1 -1
- package/dist-cjs/deployment-evm/index.js +10 -0
- package/dist-cjs/deployment-evm/index.js.map +1 -0
- package/dist-cjs/sync/index.js +5 -0
- package/dist-cjs/sync/index.js.map +1 -1
- package/dist-cjs/workflow/index.js +11 -1
- package/dist-cjs/workflow/index.js.map +1 -1
- package/dist-runtime/config/hardhatAdapters.js +2 -1
- package/dist-runtime/config/hardhatAdapters.js.map +1 -1
- package/dist-runtime/delivery/aggregate-bootstrap.js +3 -1
- package/dist-runtime/delivery/aggregate-bootstrap.js.map +1 -1
- package/dist-runtime/delivery/aggregate-channel.js +7 -3
- package/dist-runtime/delivery/aggregate-channel.js.map +1 -1
- package/dist-runtime/delivery/aggregate-diagnostics.d.ts +14 -0
- package/dist-runtime/delivery/aggregate-diagnostics.js +73 -0
- package/dist-runtime/delivery/aggregate-diagnostics.js.map +1 -0
- package/dist-runtime/delivery/aggregate-inputs.d.ts +13 -9
- package/dist-runtime/delivery/aggregate-source.js +11 -3
- package/dist-runtime/delivery/aggregate-source.js.map +1 -1
- package/dist-runtime/delivery/aggregate-worker.js +12 -4
- package/dist-runtime/delivery/aggregate-worker.js.map +1 -1
- package/dist-runtime/delivery/aggregate.js +2 -2
- package/dist-runtime/delivery/aggregate.js.map +1 -1
- package/dist-runtime/delivery/business-extension.d.ts +10 -0
- package/dist-runtime/delivery/business-extension.js +38 -0
- package/dist-runtime/delivery/business-extension.js.map +1 -0
- package/dist-runtime/delivery/calldata-archive.d.ts +18 -0
- package/dist-runtime/delivery/calldata-archive.js +31 -0
- package/dist-runtime/delivery/calldata-archive.js.map +1 -0
- package/dist-runtime/delivery/calldata-details.d.ts +47 -0
- package/dist-runtime/delivery/calldata-details.js +94 -0
- package/dist-runtime/delivery/calldata-details.js.map +1 -0
- package/dist-runtime/delivery/calldata-format.d.ts +4 -0
- package/dist-runtime/delivery/calldata-format.js +17 -0
- package/dist-runtime/delivery/calldata-format.js.map +1 -0
- package/dist-runtime/delivery/calldata-preparations.d.ts +13 -0
- package/dist-runtime/delivery/calldata-preparations.js +85 -0
- package/dist-runtime/delivery/calldata-preparations.js.map +1 -0
- package/dist-runtime/delivery/calldata-review.d.ts +44 -0
- package/dist-runtime/delivery/calldata-review.js +131 -0
- package/dist-runtime/delivery/calldata-review.js.map +1 -0
- package/dist-runtime/delivery/codec-pin.d.ts +2 -2
- package/dist-runtime/delivery/codec-pin.js +4 -4
- package/dist-runtime/delivery/codec-pin.js.map +1 -1
- package/dist-runtime/delivery/compiler-files.js +3 -1
- package/dist-runtime/delivery/compiler-files.js.map +1 -1
- package/dist-runtime/delivery/compiler-pins.js +1 -1
- package/dist-runtime/delivery/compiler.js +17 -16
- package/dist-runtime/delivery/compiler.js.map +1 -1
- package/dist-runtime/delivery/config.d.ts +1 -1
- package/dist-runtime/delivery/config.js +27 -2
- package/dist-runtime/delivery/config.js.map +1 -1
- package/dist-runtime/delivery/configuration-definition.d.ts +9 -0
- package/dist-runtime/delivery/configuration-definition.js +33 -6
- package/dist-runtime/delivery/configuration-definition.js.map +1 -1
- package/dist-runtime/delivery/configuration.js +7 -4
- package/dist-runtime/delivery/configuration.js.map +1 -1
- package/dist-runtime/delivery/contract-source.d.ts +14 -0
- package/dist-runtime/delivery/contract-source.js +138 -0
- package/dist-runtime/delivery/contract-source.js.map +1 -0
- package/dist-runtime/delivery/custom-format.js +51 -24
- package/dist-runtime/delivery/custom-format.js.map +1 -1
- package/dist-runtime/delivery/development-inputs.d.ts +14 -0
- package/dist-runtime/delivery/development-inputs.js +76 -0
- package/dist-runtime/delivery/development-inputs.js.map +1 -0
- package/dist-runtime/delivery/development.d.ts +3 -1
- package/dist-runtime/delivery/development.js +24 -10
- package/dist-runtime/delivery/development.js.map +1 -1
- package/dist-runtime/delivery/eoa.d.ts +1 -0
- package/dist-runtime/delivery/execution-identity.d.ts +15 -0
- package/dist-runtime/delivery/execution-identity.js +33 -0
- package/dist-runtime/delivery/execution-identity.js.map +1 -0
- package/dist-runtime/delivery/existing-code.js +14 -6
- package/dist-runtime/delivery/existing-code.js.map +1 -1
- package/dist-runtime/delivery/history-package.d.ts +2 -0
- package/dist-runtime/delivery/history-package.js +70 -0
- package/dist-runtime/delivery/history-package.js.map +1 -0
- package/dist-runtime/delivery/history-registration.d.ts +1 -1
- package/dist-runtime/delivery/inputs.js +22 -15
- package/dist-runtime/delivery/inputs.js.map +1 -1
- package/dist-runtime/delivery/journal.js +18 -10
- package/dist-runtime/delivery/journal.js.map +1 -1
- package/dist-runtime/delivery/parameter-defaults.d.ts +10 -0
- package/dist-runtime/delivery/parameter-defaults.js +86 -0
- package/dist-runtime/delivery/parameter-defaults.js.map +1 -0
- package/dist-runtime/delivery/parameters.d.ts +2 -0
- package/dist-runtime/delivery/parameters.js +22 -0
- package/dist-runtime/delivery/parameters.js.map +1 -1
- package/dist-runtime/delivery/planning.d.ts +4 -1
- package/dist-runtime/delivery/planning.js +19 -3
- package/dist-runtime/delivery/planning.js.map +1 -1
- package/dist-runtime/delivery/preparation.js +43 -23
- package/dist-runtime/delivery/preparation.js.map +1 -1
- package/dist-runtime/delivery/production-environment.js +2 -1
- package/dist-runtime/delivery/production-environment.js.map +1 -1
- package/dist-runtime/delivery/production-finalization.js +23 -9
- package/dist-runtime/delivery/production-finalization.js.map +1 -1
- package/dist-runtime/delivery/production-intent.d.ts +2 -0
- package/dist-runtime/delivery/production-intent.js +16 -0
- package/dist-runtime/delivery/production-intent.js.map +1 -0
- package/dist-runtime/delivery/production.d.ts +129 -8
- package/dist-runtime/delivery/production.js +60 -11
- package/dist-runtime/delivery/production.js.map +1 -1
- package/dist-runtime/delivery/project-files.d.ts +3 -3
- package/dist-runtime/delivery/project-files.js +19 -14
- package/dist-runtime/delivery/project-files.js.map +1 -1
- package/dist-runtime/delivery/project-rpc.d.ts +19 -0
- package/dist-runtime/delivery/project-rpc.js +138 -0
- package/dist-runtime/delivery/project-rpc.js.map +1 -0
- package/dist-runtime/delivery/project.d.ts +3 -1
- package/dist-runtime/delivery/project.js +21 -8
- package/dist-runtime/delivery/project.js.map +1 -1
- package/dist-runtime/delivery/public-calldata.d.ts +25 -0
- package/dist-runtime/delivery/public-calldata.js +97 -0
- package/dist-runtime/delivery/public-calldata.js.map +1 -0
- package/dist-runtime/delivery/release-graph.d.ts +7 -3
- package/dist-runtime/delivery/release-graph.js +58 -25
- package/dist-runtime/delivery/release-graph.js.map +1 -1
- package/dist-runtime/delivery/release-history-capture.js +22 -26
- package/dist-runtime/delivery/release-history-capture.js.map +1 -1
- package/dist-runtime/delivery/release-history.d.ts +3 -2
- package/dist-runtime/delivery/release-history.js +97 -50
- package/dist-runtime/delivery/release-history.js.map +1 -1
- package/dist-runtime/delivery/release-inputs.d.ts +33 -0
- package/dist-runtime/delivery/release-inputs.js +129 -0
- package/dist-runtime/delivery/release-inputs.js.map +1 -0
- package/dist-runtime/delivery/release.d.ts +38 -14
- package/dist-runtime/delivery/release.js +81 -29
- package/dist-runtime/delivery/release.js.map +1 -1
- package/dist-runtime/delivery/safe.d.ts +1 -0
- package/dist-runtime/delivery/safe.js +13 -2
- package/dist-runtime/delivery/safe.js.map +1 -1
- package/dist-runtime/delivery/same-fork-baseline.d.ts +1 -1
- package/dist-runtime/delivery/same-fork-baseline.js +5 -4
- package/dist-runtime/delivery/same-fork-baseline.js.map +1 -1
- package/dist-runtime/delivery/setup.d.ts +1 -1
- package/dist-runtime/delivery/setup.js +21 -6
- package/dist-runtime/delivery/setup.js.map +1 -1
- package/dist-runtime/delivery/source.d.ts +1 -0
- package/dist-runtime/delivery/source.js +12 -10
- package/dist-runtime/delivery/source.js.map +1 -1
- package/dist-runtime/delivery/task-identity.d.ts +23 -0
- package/dist-runtime/delivery/task-identity.js +109 -0
- package/dist-runtime/delivery/task-identity.js.map +1 -0
- package/dist-runtime/delivery/toolchain.d.ts +3 -0
- package/dist-runtime/delivery/toolchain.js +52 -0
- package/dist-runtime/delivery/toolchain.js.map +1 -0
- package/dist-runtime/delivery/validation.js +7 -2
- package/dist-runtime/delivery/validation.js.map +1 -1
- package/dist-runtime/runtime-identity.json +2 -2
- package/dist-runtime/vendor/plan-codec/index.cjs +97 -20
- package/dist-runtime/vendor/plan-codec/index.d.cts +6 -0
- package/dist-runtime/vendor/plan-codec/provenance.json +9 -8
- package/dist-runtime/workflow/lib/calls.js +1 -0
- package/dist-runtime/workflow/lib/calls.js.map +1 -1
- package/dist-runtime/workflow/lib/checkCodeRunner.js +7 -4
- package/dist-runtime/workflow/lib/checkCodeRunner.js.map +1 -1
- package/dist-runtime/workflow/lib/context.d.ts +1 -0
- package/dist-runtime/workflow/lib/create2.d.ts +4 -26
- package/dist-runtime/workflow/lib/create2.js +2 -67
- package/dist-runtime/workflow/lib/create2.js.map +1 -1
- package/dist-runtime/workflow/lib/deploymentInfo.d.ts +2 -0
- package/dist-runtime/workflow/lib/deploymentInfo.js +6 -0
- package/dist-runtime/workflow/lib/deploymentInfo.js.map +1 -1
- package/dist-runtime/workflow/lib/deploymentRecords.d.ts +2 -0
- package/dist-runtime/workflow/lib/deploymentRecords.js +1 -1
- package/dist-runtime/workflow/lib/deploymentRecords.js.map +1 -1
- package/dist-runtime/workflow/lib/externalExecutionScanner.js +2 -1
- package/dist-runtime/workflow/lib/externalExecutionScanner.js.map +1 -1
- package/dist-runtime/workflow/lib/gateTool.js +2 -2
- package/dist-runtime/workflow/lib/gateTool.js.map +1 -1
- package/dist-runtime/workflow/lib/gateToolSync.d.ts +3 -0
- package/dist-runtime/workflow/lib/gateToolSync.js +5 -0
- package/dist-runtime/workflow/lib/gateToolSync.js.map +1 -1
- package/dist-runtime/workflow/lib/parameters.js +5 -0
- package/dist-runtime/workflow/lib/parameters.js.map +1 -1
- package/dist-runtime/workflow/lib/proxy.d.ts +1 -0
- package/dist-runtime/workflow/lib/proxy.js.map +1 -1
- package/dist-runtime/workflow/run.js +1 -3
- package/dist-runtime/workflow/run.js.map +1 -1
- package/dist-runtime/workflow/steps/deploy.js +53 -0
- package/dist-runtime/workflow/steps/deploy.js.map +1 -1
- package/dist-runtime/workflow/steps/upgrade.js +24 -10
- package/dist-runtime/workflow/steps/upgrade.js.map +1 -1
- package/docs/compiler-qualification.md +8 -2
- package/docs/delivery-aggregate.md +2 -0
- package/docs/delivery-calldata.md +27 -0
- package/docs/delivery-development.md +6 -0
- package/docs/delivery-execution-store.md +1 -1
- package/docs/delivery-inputs.md +55 -6
- package/docs/delivery-parameters.md +1 -1
- package/docs/delivery-release.md +77 -7
- package/docs/delivery-safe.md +7 -4
- package/docs/delivery-setup.md +72 -20
- package/docs/delivery-source.md +8 -8
- package/docs/direct-package-acceptance.md +2 -0
- package/docs/openzeppelin-acceptance.md +86 -0
- package/docs/openzeppelin-baseline.json +27 -0
- package/docs/openzeppelin-integration.md +115 -0
- package/docs/plans/2026-10-28-openzeppelin-toolkit-consolidation.md +396 -0
- package/docs/plans/2026-11-02-transparent-proxy-delivery.md +78 -0
- package/docs/superpowers/plans/2026-08-17-custody-hardhat-signers.md +1 -1
- package/docs/workflow-reference.md +12 -4
- package/docs/workflow-runtime.md +6 -0
- package/package.json +19 -5
- package/runtime/config/hardhatAdapters.ts +2 -1
- package/runtime/delivery/aggregate-bootstrap.ts +3 -1
- package/runtime/delivery/aggregate-channel.ts +6 -3
- package/runtime/delivery/aggregate-diagnostics.ts +63 -0
- package/runtime/delivery/aggregate-source.ts +6 -2
- package/runtime/delivery/aggregate-worker.ts +15 -5
- package/runtime/delivery/aggregate.ts +2 -2
- package/runtime/delivery/business-extension.ts +33 -0
- package/runtime/delivery/calldata-archive.ts +25 -0
- package/runtime/delivery/calldata-details.ts +90 -0
- package/runtime/delivery/calldata-format.ts +14 -0
- package/runtime/delivery/calldata-preparations.ts +76 -0
- package/runtime/delivery/calldata-review.ts +126 -0
- package/runtime/delivery/codec-pin.ts +3 -3
- package/runtime/delivery/compiler-files.ts +3 -1
- package/runtime/delivery/compiler-pins.ts +1 -1
- package/runtime/delivery/compiler.ts +18 -17
- package/runtime/delivery/config.ts +25 -2
- package/runtime/delivery/configuration-definition.ts +34 -7
- package/runtime/delivery/configuration.ts +8 -5
- package/runtime/delivery/contract-source.ts +112 -0
- package/runtime/delivery/custom-format.ts +20 -5
- package/runtime/delivery/development-inputs.ts +42 -0
- package/runtime/delivery/development.ts +14 -11
- package/runtime/delivery/execution-identity.ts +32 -0
- package/runtime/delivery/existing-code.ts +7 -6
- package/runtime/delivery/history-package.ts +50 -0
- package/runtime/delivery/inputs.ts +18 -11
- package/runtime/delivery/journal.ts +14 -10
- package/runtime/delivery/parameter-defaults.ts +75 -0
- package/runtime/delivery/parameters.ts +18 -0
- package/runtime/delivery/planning.ts +19 -5
- package/runtime/delivery/preparation.ts +17 -1
- package/runtime/delivery/production-environment.ts +2 -1
- package/runtime/delivery/production-finalization.ts +19 -10
- package/runtime/delivery/production-intent.ts +14 -0
- package/runtime/delivery/production.ts +51 -11
- package/runtime/delivery/project-files.ts +16 -11
- package/runtime/delivery/project-rpc.ts +116 -0
- package/runtime/delivery/project.ts +19 -7
- package/runtime/delivery/public-calldata.ts +74 -0
- package/runtime/delivery/release-graph.ts +44 -14
- package/runtime/delivery/release-history-capture.ts +19 -9
- package/runtime/delivery/release-history.ts +76 -22
- package/runtime/delivery/release-inputs.ts +107 -0
- package/runtime/delivery/release.ts +56 -18
- package/runtime/delivery/safe.ts +14 -3
- package/runtime/delivery/same-fork-baseline.ts +5 -4
- package/runtime/delivery/setup.ts +20 -8
- package/runtime/delivery/source.ts +10 -10
- package/runtime/delivery/task-identity.ts +85 -0
- package/runtime/delivery/toolchain.ts +48 -0
- package/runtime/delivery/validation.ts +7 -2
- package/runtime/vendor/plan-codec/index.cjs +97 -20
- package/runtime/vendor/plan-codec/index.d.cts +6 -0
- package/runtime/vendor/plan-codec/provenance.json +9 -8
- package/runtime/workflow/lib/calls.ts +1 -0
- package/runtime/workflow/lib/checkCodeRunner.ts +7 -3
- package/runtime/workflow/lib/context.ts +1 -0
- package/runtime/workflow/lib/create2.ts +7 -108
- package/runtime/workflow/lib/deploymentInfo.ts +8 -0
- package/runtime/workflow/lib/deploymentRecords.ts +3 -1
- package/runtime/workflow/lib/externalExecutionScanner.ts +2 -1
- package/runtime/workflow/lib/gateTool.ts +2 -2
- package/runtime/workflow/lib/gateToolSync.ts +8 -0
- package/runtime/workflow/lib/parameters.ts +4 -0
- package/runtime/workflow/lib/proxy.ts +1 -0
- package/runtime/workflow/run.ts +1 -2
- package/runtime/workflow/steps/deploy.ts +42 -0
- package/runtime/workflow/steps/upgrade.ts +19 -11
- package/bin/workflow.cjs +0 -19
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-files.js","sourceRoot":"","sources":["../../runtime/delivery/project-files.ts"],"names":[],"mappings":";;;;;AAKA,oBAKC;AACD,oCAaC;AACD,kCAMC;AACD,4BAGC;AACD,
|
|
1
|
+
{"version":3,"file":"project-files.js","sourceRoot":"","sources":["../../runtime/delivery/project-files.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/** Fixed template RPC syntax. Inspection reads local env data without evaluating project code. */
|
|
2
|
+
import ts from 'typescript';
|
|
3
|
+
export declare const PROJECT_ENV_BOOTSTRAP = "for (const file of [\"rpc.env\", \".env\"]) {\n const envFile = join(__dirname, file);\n if (existsSync(envFile)) {\n try {\n process.loadEnvFile(envFile);\n } catch (error) {\n if (file !== \".env\" || ![\"ENOENT\", \"EPERM\", \"EACCES\"].includes((error as NodeJS.ErrnoException).code ?? \"\")) throw error;\n console.warn(\"Project credentials are unavailable; compilation and public checks can continue. Use the application host for credential-bearing delivery operations.\");\n }\n }\n}";
|
|
4
|
+
export declare const PROJECT_RPC_HELPER: string;
|
|
5
|
+
export declare function projectRpcSyntax(file: ts.SourceFile): {
|
|
6
|
+
statements: Set<ts.Statement>;
|
|
7
|
+
bootstrap: boolean;
|
|
8
|
+
helper: boolean;
|
|
9
|
+
};
|
|
10
|
+
export declare function projectRpcOptions(node: ts.CallExpression): {
|
|
11
|
+
route: string;
|
|
12
|
+
publicFallback: ts.Expression;
|
|
13
|
+
useBaseRpc: boolean;
|
|
14
|
+
};
|
|
15
|
+
export declare function resolveProjectRpc(route: string, publicFallback: string | undefined, useBaseRpc: boolean, env: NodeJS.ProcessEnv): string;
|
|
16
|
+
/** Static diagnostics never access the credential file, even when it is readable. */
|
|
17
|
+
export declare function projectPublicRpcEnvironment(root: string, source: string, env: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
|
|
18
|
+
/** Actual runtime observation must retain the same environment semantics as Hardhat. */
|
|
19
|
+
export declare function projectRpcEnvironment(root: string, source: string, env: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
|
|
@@ -0,0 +1,138 @@
|
|
|
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.PROJECT_RPC_HELPER = exports.PROJECT_ENV_BOOTSTRAP = void 0;
|
|
7
|
+
exports.projectRpcSyntax = projectRpcSyntax;
|
|
8
|
+
exports.projectRpcOptions = projectRpcOptions;
|
|
9
|
+
exports.resolveProjectRpc = resolveProjectRpc;
|
|
10
|
+
exports.projectPublicRpcEnvironment = projectPublicRpcEnvironment;
|
|
11
|
+
exports.projectRpcEnvironment = projectRpcEnvironment;
|
|
12
|
+
/** Fixed template RPC syntax. Inspection reads local env data without evaluating project code. */
|
|
13
|
+
const typescript_1 = __importDefault(require("typescript"));
|
|
14
|
+
const node_util_1 = require("node:util");
|
|
15
|
+
const project_files_1 = require("./project-files");
|
|
16
|
+
exports.PROJECT_ENV_BOOTSTRAP = `for (const file of ["rpc.env", ".env"]) {
|
|
17
|
+
const envFile = join(__dirname, file);
|
|
18
|
+
if (existsSync(envFile)) {
|
|
19
|
+
try {
|
|
20
|
+
process.loadEnvFile(envFile);
|
|
21
|
+
} catch (error) {
|
|
22
|
+
if (file !== ".env" || !["ENOENT", "EPERM", "EACCES"].includes((error as NodeJS.ErrnoException).code ?? "")) throw error;
|
|
23
|
+
console.warn("Project credentials are unavailable; compilation and public checks can continue. Use the application host for credential-bearing delivery operations.");
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}`;
|
|
27
|
+
exports.PROJECT_RPC_HELPER = [
|
|
28
|
+
"function rpcUrl(options: { route: string; publicFallback: string | undefined; useBaseRpc: boolean }): string {",
|
|
29
|
+
" const fallback = options.publicFallback?.trim() || \"\";",
|
|
30
|
+
" const base = process.env.BASE_RPC_URI?.trim();",
|
|
31
|
+
" if (!options.useBaseRpc || !base) return fallback;",
|
|
32
|
+
" return `${base.replace(/\\/+$/, \"\")}/${options.route}/`;",
|
|
33
|
+
"}",
|
|
34
|
+
].join('\n');
|
|
35
|
+
const printer = typescript_1.default.createPrinter({ removeComments: true });
|
|
36
|
+
function syntax(node, file) {
|
|
37
|
+
return printer.printNode(typescript_1.default.EmitHint.Unspecified, node, file);
|
|
38
|
+
}
|
|
39
|
+
function statement(source) {
|
|
40
|
+
const file = typescript_1.default.createSourceFile('rpc.ts', source, typescript_1.default.ScriptTarget.Latest, true, typescript_1.default.ScriptKind.TS);
|
|
41
|
+
return syntax(file.statements[0], file);
|
|
42
|
+
}
|
|
43
|
+
const bootstrapSyntax = statement(exports.PROJECT_ENV_BOOTSTRAP), helperSyntax = statement(exports.PROJECT_RPC_HELPER);
|
|
44
|
+
function projectRpcSyntax(file) {
|
|
45
|
+
const statements = new Set();
|
|
46
|
+
let bootstrap = false, helper = false;
|
|
47
|
+
const imports = new Set();
|
|
48
|
+
for (const node of file.statements) {
|
|
49
|
+
if (typescript_1.default.isImportDeclaration(node) && typescript_1.default.isStringLiteral(node.moduleSpecifier)
|
|
50
|
+
&& ['node:fs', 'node:path'].includes(node.moduleSpecifier.text)) {
|
|
51
|
+
const name = node.moduleSpecifier.text, clause = node.importClause;
|
|
52
|
+
const wanted = name === 'node:fs' ? 'existsSync' : 'join';
|
|
53
|
+
if (imports.has(name) || node.attributes || !clause || clause.name || clause.isTypeOnly
|
|
54
|
+
|| !clause.namedBindings || !typescript_1.default.isNamedImports(clause.namedBindings)
|
|
55
|
+
|| clause.namedBindings.elements.length !== 1 || clause.namedBindings.elements[0].name.text !== wanted
|
|
56
|
+
|| clause.namedBindings.elements[0].propertyName)
|
|
57
|
+
throw Error('Unsupported project RPC import');
|
|
58
|
+
imports.add(name);
|
|
59
|
+
statements.add(node);
|
|
60
|
+
}
|
|
61
|
+
else if (typescript_1.default.isForOfStatement(node) && syntax(node, file) === bootstrapSyntax) {
|
|
62
|
+
if (bootstrap)
|
|
63
|
+
throw Error('Duplicate project RPC loader');
|
|
64
|
+
bootstrap = true;
|
|
65
|
+
statements.add(node);
|
|
66
|
+
}
|
|
67
|
+
else if (typescript_1.default.isFunctionDeclaration(node) && node.name?.text === 'rpcUrl') {
|
|
68
|
+
if (helper || syntax(node, file) !== helperSyntax)
|
|
69
|
+
throw Error('Unsupported project RPC helper');
|
|
70
|
+
helper = true;
|
|
71
|
+
statements.add(node);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
if (bootstrap !== (imports.size === 2) || (!bootstrap && imports.size))
|
|
75
|
+
throw Error('Incomplete project RPC loader');
|
|
76
|
+
const config = file.statements.findIndex(node => typescript_1.default.isVariableStatement(node) || typescript_1.default.isExportAssignment(node));
|
|
77
|
+
if (bootstrap && config >= 0 && [...statements].some(node => typescript_1.default.isForOfStatement(node) && file.statements.indexOf(node) > config))
|
|
78
|
+
throw Error('Project RPC loader must precede configuration');
|
|
79
|
+
return { statements, bootstrap, helper };
|
|
80
|
+
}
|
|
81
|
+
function projectRpcOptions(node) {
|
|
82
|
+
if (!typescript_1.default.isIdentifier(node.expression) || node.expression.text !== 'rpcUrl' || node.arguments.length !== 1 || node.typeArguments)
|
|
83
|
+
throw Error('Unsupported project RPC call');
|
|
84
|
+
const options = node.arguments[0];
|
|
85
|
+
if (!typescript_1.default.isObjectLiteralExpression(options))
|
|
86
|
+
throw Error('Unsupported project RPC options');
|
|
87
|
+
const fields = new Map();
|
|
88
|
+
for (const property of options.properties) {
|
|
89
|
+
if (!typescript_1.default.isPropertyAssignment(property) || (!typescript_1.default.isIdentifier(property.name) && !typescript_1.default.isStringLiteral(property.name)))
|
|
90
|
+
throw Error('Unsupported project RPC option');
|
|
91
|
+
const name = property.name.text;
|
|
92
|
+
if (!['route', 'publicFallback', 'useBaseRpc'].includes(name) || fields.has(name))
|
|
93
|
+
throw Error('Unsupported project RPC option');
|
|
94
|
+
fields.set(name, property.initializer);
|
|
95
|
+
}
|
|
96
|
+
const route = fields.get('route'), useBaseRpc = fields.get('useBaseRpc'), publicFallback = fields.get('publicFallback');
|
|
97
|
+
if (!route || !typescript_1.default.isStringLiteral(route) || !/^[a-zA-Z0-9][a-zA-Z0-9-]*$/.test(route.text))
|
|
98
|
+
throw Error('Unsupported project RPC route');
|
|
99
|
+
if (!publicFallback || !useBaseRpc || ![typescript_1.default.SyntaxKind.TrueKeyword, typescript_1.default.SyntaxKind.FalseKeyword].includes(useBaseRpc.kind))
|
|
100
|
+
throw Error('Project RPC requires a literal useBaseRpc boolean and publicFallback');
|
|
101
|
+
return { route: route.text, publicFallback, useBaseRpc: useBaseRpc.kind === typescript_1.default.SyntaxKind.TrueKeyword };
|
|
102
|
+
}
|
|
103
|
+
function resolveProjectRpc(route, publicFallback, useBaseRpc, env) {
|
|
104
|
+
const base = env.BASE_RPC_URI?.trim();
|
|
105
|
+
return useBaseRpc && base ? `${base.replace(/\/+$/, '')}/${route}/` : publicFallback?.trim() || '';
|
|
106
|
+
}
|
|
107
|
+
function projectEnvironment(root, source, env, files) {
|
|
108
|
+
const file = typescript_1.default.createSourceFile('hardhat.config.ts', source, typescript_1.default.ScriptTarget.Latest, true, typescript_1.default.ScriptKind.TS);
|
|
109
|
+
if (!projectRpcSyntax(file).bootstrap)
|
|
110
|
+
return env;
|
|
111
|
+
const effective = { ...env };
|
|
112
|
+
for (const name of files) {
|
|
113
|
+
try {
|
|
114
|
+
const contents = (0, project_files_1.readFile)(root, name);
|
|
115
|
+
if (contents === undefined)
|
|
116
|
+
continue;
|
|
117
|
+
for (const [key, value] of Object.entries((0, node_util_1.parseEnv)(contents)))
|
|
118
|
+
if (effective[key] === undefined)
|
|
119
|
+
effective[key] = value;
|
|
120
|
+
}
|
|
121
|
+
catch (error) {
|
|
122
|
+
if (name === '.env' && ['EPERM', 'EACCES'].includes(error.code ?? '')) {
|
|
123
|
+
throw Error('Project credential environment is protected; run credential-bearing delivery operations through the trusted application host. Configure public RPCs in rpc.env.');
|
|
124
|
+
}
|
|
125
|
+
throw Error(`Cannot read local project RPC environment (${name})`);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
return effective;
|
|
129
|
+
}
|
|
130
|
+
/** Static diagnostics never access the credential file, even when it is readable. */
|
|
131
|
+
function projectPublicRpcEnvironment(root, source, env) {
|
|
132
|
+
return projectEnvironment(root, source, env, ['rpc.env']);
|
|
133
|
+
}
|
|
134
|
+
/** Actual runtime observation must retain the same environment semantics as Hardhat. */
|
|
135
|
+
function projectRpcEnvironment(root, source, env) {
|
|
136
|
+
return projectEnvironment(root, source, env, ['rpc.env', '.env']);
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=project-rpc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-rpc.js","sourceRoot":"","sources":["../../runtime/delivery/project-rpc.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import ts from 'typescript';
|
|
2
2
|
import { type ProjectNetworkSnapshot } from './protocol';
|
|
3
|
-
export { stat, confinedFile, projectRoot, readFile,
|
|
3
|
+
export { stat, confinedFile, projectRoot, readFile, deliveryProjectMarker } from './project-files';
|
|
4
4
|
export declare function parseProjectConfig(source: string): {
|
|
5
5
|
file: ts.SourceFile;
|
|
6
6
|
networks: Map<string, ts.Expression>;
|
|
@@ -10,6 +10,8 @@ export declare function projectSourcesDirectory(root: string): string;
|
|
|
10
10
|
export declare function projectDefaultNetwork(root: string): string;
|
|
11
11
|
/** Read the project-owned definitions without evaluating the config, plugins or HRE. */
|
|
12
12
|
export declare function readProjectNetworkSnapshots(root: string, aliases: string[], env?: NodeJS.ProcessEnv): ProjectNetworkSnapshot[];
|
|
13
|
+
/** Public preflight only: RPCs must be in rpc.env or the supplied environment, never .env. */
|
|
14
|
+
export declare function readPublicProjectNetworkSnapshots(root: string, aliases: string[], env?: NodeJS.ProcessEnv): ProjectNetworkSnapshot[];
|
|
13
15
|
/** Parse one captured project definition without rereading files or evaluating plugins/HRE. */
|
|
14
16
|
export declare function parseProjectNetworkSnapshots(source: string, aliases: string[], env?: NodeJS.ProcessEnv): ProjectNetworkSnapshot[];
|
|
15
17
|
export declare function integratedConfig(source: string): string;
|
|
@@ -3,11 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.deliveryProjectMarker = exports.readFile = exports.projectRoot = exports.confinedFile = exports.stat = void 0;
|
|
7
7
|
exports.parseProjectConfig = parseProjectConfig;
|
|
8
8
|
exports.projectSourcesDirectory = projectSourcesDirectory;
|
|
9
9
|
exports.projectDefaultNetwork = projectDefaultNetwork;
|
|
10
10
|
exports.readProjectNetworkSnapshots = readProjectNetworkSnapshots;
|
|
11
|
+
exports.readPublicProjectNetworkSnapshots = readPublicProjectNetworkSnapshots;
|
|
11
12
|
exports.parseProjectNetworkSnapshots = parseProjectNetworkSnapshots;
|
|
12
13
|
exports.integratedConfig = integratedConfig;
|
|
13
14
|
const node_path_1 = __importDefault(require("node:path"));
|
|
@@ -19,8 +20,9 @@ Object.defineProperty(exports, "stat", { enumerable: true, get: function () { re
|
|
|
19
20
|
Object.defineProperty(exports, "confinedFile", { enumerable: true, get: function () { return project_files_1.confinedFile; } });
|
|
20
21
|
Object.defineProperty(exports, "projectRoot", { enumerable: true, get: function () { return project_files_1.projectRoot; } });
|
|
21
22
|
Object.defineProperty(exports, "readFile", { enumerable: true, get: function () { return project_files_1.readFile; } });
|
|
22
|
-
Object.defineProperty(exports, "
|
|
23
|
+
Object.defineProperty(exports, "deliveryProjectMarker", { enumerable: true, get: function () { return project_files_1.deliveryProjectMarker; } });
|
|
23
24
|
const project_files_2 = require("./project-files");
|
|
25
|
+
const project_rpc_1 = require("./project-rpc");
|
|
24
26
|
function unwrap(node) {
|
|
25
27
|
while (typescript_1.default.isParenthesizedExpression(node) || typescript_1.default.isAsExpression(node) || typescript_1.default.isSatisfiesExpression(node))
|
|
26
28
|
node = node.expression;
|
|
@@ -92,7 +94,7 @@ function projectDefaultNetwork(root) {
|
|
|
92
94
|
throw new Error('Project defaultNetwork must be a static string for delivery routing');
|
|
93
95
|
return (0, policy_1.validateNetworkAlias)(network.text, 'defaultNetwork');
|
|
94
96
|
}
|
|
95
|
-
function rpcValue(node, env) {
|
|
97
|
+
function rpcValue(node, env, helper) {
|
|
96
98
|
node = unwrap(node);
|
|
97
99
|
if (typescript_1.default.isStringLiteral(node))
|
|
98
100
|
return node.text;
|
|
@@ -105,19 +107,30 @@ function rpcValue(node, env) {
|
|
|
105
107
|
&& node.expression.name.text === 'env' && typescript_1.default.isStringLiteral(node.argumentExpression))
|
|
106
108
|
return env[node.argumentExpression.text];
|
|
107
109
|
if (typescript_1.default.isBinaryExpression(node) && [typescript_1.default.SyntaxKind.BarBarToken, typescript_1.default.SyntaxKind.QuestionQuestionToken].includes(node.operatorToken.kind)) {
|
|
108
|
-
const left = rpcValue(node.left, env);
|
|
110
|
+
const left = rpcValue(node.left, env, helper);
|
|
109
111
|
return node.operatorToken.kind === typescript_1.default.SyntaxKind.QuestionQuestionToken
|
|
110
|
-
? left ?? rpcValue(node.right, env) : left || rpcValue(node.right, env);
|
|
112
|
+
? left ?? rpcValue(node.right, env, helper) : left || rpcValue(node.right, env, helper);
|
|
113
|
+
}
|
|
114
|
+
if (helper && typescript_1.default.isCallExpression(node)) {
|
|
115
|
+
const options = (0, project_rpc_1.projectRpcOptions)(node);
|
|
116
|
+
return (0, project_rpc_1.resolveProjectRpc)(options.route, rpcValue(options.publicFallback, env, false), options.useBaseRpc, env);
|
|
111
117
|
}
|
|
112
118
|
throw new Error('Selected network URL must be a literal or process.env reference');
|
|
113
119
|
}
|
|
114
120
|
/** Read the project-owned definitions without evaluating the config, plugins or HRE. */
|
|
115
121
|
function readProjectNetworkSnapshots(root, aliases, env = process.env) {
|
|
116
|
-
|
|
122
|
+
const source = (0, project_files_2.readFile)(root, 'hardhat.config.ts') ?? '';
|
|
123
|
+
return parseProjectNetworkSnapshots(source, aliases, (0, project_rpc_1.projectRpcEnvironment)(root, source, env));
|
|
124
|
+
}
|
|
125
|
+
/** Public preflight only: RPCs must be in rpc.env or the supplied environment, never .env. */
|
|
126
|
+
function readPublicProjectNetworkSnapshots(root, aliases, env = process.env) {
|
|
127
|
+
const source = (0, project_files_2.readFile)(root, 'hardhat.config.ts') ?? '';
|
|
128
|
+
return parseProjectNetworkSnapshots(source, aliases, (0, project_rpc_1.projectPublicRpcEnvironment)(root, source, env));
|
|
117
129
|
}
|
|
118
130
|
/** Parse one captured project definition without rereading files or evaluating plugins/HRE. */
|
|
119
131
|
function parseProjectNetworkSnapshots(source, aliases, env = process.env) {
|
|
120
|
-
const { networks } = parseProjectConfig(source);
|
|
132
|
+
const { file, networks } = parseProjectConfig(source);
|
|
133
|
+
const { helper } = (0, project_rpc_1.projectRpcSyntax)(file);
|
|
121
134
|
return aliases.map(network => {
|
|
122
135
|
(0, policy_1.validateNetworkAlias)(network, 'network', false);
|
|
123
136
|
const selected = networks.get(network);
|
|
@@ -132,7 +145,7 @@ function parseProjectNetworkSnapshots(source, aliases, env = process.env) {
|
|
|
132
145
|
const url = fields.get('url');
|
|
133
146
|
if (!url)
|
|
134
147
|
throw new Error(`Selected network ${network} requires an RPC URL definition`);
|
|
135
|
-
return { network, chainId: (0, protocol_1.positiveInteger)(Number(chainId.text), 'network chainId'), url: rpcValue(url, env) ?? '' };
|
|
148
|
+
return { network, chainId: (0, protocol_1.positiveInteger)(Number(chainId.text), 'network chainId'), url: rpcValue(url, env, helper) ?? '' };
|
|
136
149
|
});
|
|
137
150
|
}
|
|
138
151
|
function integratedConfig(source) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../runtime/delivery/project.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../runtime/delivery/project.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type ExpandedDetails } from './calldata-details';
|
|
2
|
+
import type { WorkflowStep } from '../workflow/lib/parameters';
|
|
3
|
+
export { archiveDeliveryCalls } from './calldata-archive';
|
|
4
|
+
export { serializeDeliveryCalls, deliveryCalldataPath } from './calldata-format';
|
|
5
|
+
export interface DeliveryCall {
|
|
6
|
+
chains: string[];
|
|
7
|
+
executor: string;
|
|
8
|
+
to: string;
|
|
9
|
+
name: string;
|
|
10
|
+
description: string;
|
|
11
|
+
abi: string[];
|
|
12
|
+
calldata: string;
|
|
13
|
+
value?: string;
|
|
14
|
+
details?: ExpandedDetails;
|
|
15
|
+
}
|
|
16
|
+
export interface PublicCalldataInput {
|
|
17
|
+
plan: unknown;
|
|
18
|
+
calldata: unknown;
|
|
19
|
+
operations: readonly WorkflowStep[];
|
|
20
|
+
preparations?: unknown;
|
|
21
|
+
}
|
|
22
|
+
/** Frozen parameters independently re-encode and compare before any public projection. */
|
|
23
|
+
export declare function projectDeliveryCalls(input: PublicCalldataInput): readonly DeliveryCall[];
|
|
24
|
+
/** Merge matching logical occurrences, never globally deduplicate calldata. */
|
|
25
|
+
export declare function mergeDeliveryCalls(inputs: readonly PublicCalldataInput[]): readonly DeliveryCall[];
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.deliveryCalldataPath = exports.serializeDeliveryCalls = exports.archiveDeliveryCalls = void 0;
|
|
4
|
+
exports.projectDeliveryCalls = projectDeliveryCalls;
|
|
5
|
+
exports.mergeDeliveryCalls = mergeDeliveryCalls;
|
|
6
|
+
/** Public business projection. Internal provenance and runtime progress stay separate. */
|
|
7
|
+
const export_1 = require("./export");
|
|
8
|
+
const calldata_review_1 = require("./calldata-review");
|
|
9
|
+
const calldata_details_1 = require("./calldata-details");
|
|
10
|
+
const canonicalData_1 = require("../workflow/lib/canonicalData");
|
|
11
|
+
var calldata_archive_1 = require("./calldata-archive");
|
|
12
|
+
Object.defineProperty(exports, "archiveDeliveryCalls", { enumerable: true, get: function () { return calldata_archive_1.archiveDeliveryCalls; } });
|
|
13
|
+
var calldata_format_1 = require("./calldata-format");
|
|
14
|
+
Object.defineProperty(exports, "serializeDeliveryCalls", { enumerable: true, get: function () { return calldata_format_1.serializeDeliveryCalls; } });
|
|
15
|
+
Object.defineProperty(exports, "deliveryCalldataPath", { enumerable: true, get: function () { return calldata_format_1.deliveryCalldataPath; } });
|
|
16
|
+
/** Frozen parameters independently re-encode and compare before any public projection. */
|
|
17
|
+
function projectDeliveryCalls(input) {
|
|
18
|
+
const plan = (0, export_1.immutableDeliveryPlan)(input.plan);
|
|
19
|
+
const reviews = (0, calldata_review_1.parseCalldataReviews)(input.calldata, plan.transactions);
|
|
20
|
+
const journal = input.preparations ?? [];
|
|
21
|
+
const preparations = Array.isArray(journal) && !journal.length && !plan.deploymentBindings.length ? []
|
|
22
|
+
: require('./journal').parsePreparationJournal(journal, plan.transactions, plan.derivedBindings, { target: plan.target, chainId: plan.chainId, expectedStepIds: plan.deploymentBindings.map(d => d.stepId) });
|
|
23
|
+
return (0, canonicalData_1.deepFreeze)(plan.transactions.map((tx, index) => {
|
|
24
|
+
if (tx.operation !== 0)
|
|
25
|
+
throw Error('Public calldata supports ordinary CALL only');
|
|
26
|
+
const binding = plan.transactionBindings[index], operation = plan.operationBindings.find(o => o.stepId === binding.stepId);
|
|
27
|
+
if (!operation)
|
|
28
|
+
throw Error('Public calldata operation binding missing');
|
|
29
|
+
const source = operation.operationId === null ? input.operations.find(s => s.id === operation.sourceStepId)
|
|
30
|
+
: plan.customBindings.find(s => s.sourceStepId === operation.sourceStepId)?.operations.find(s => s.id === operation.operationId);
|
|
31
|
+
if (!source)
|
|
32
|
+
throw Error('Frozen operation intent missing');
|
|
33
|
+
const call = binding.callIndex === null ? undefined : source.calls?.[binding.callIndex];
|
|
34
|
+
const name = (0, canonicalData_1.nonempty)(call?.name ?? source.name, 'operation name');
|
|
35
|
+
const description = (0, canonicalData_1.nonempty)(call?.description ?? source.description, 'operation description');
|
|
36
|
+
const invocation = reviews[index].invocation;
|
|
37
|
+
if (invocation.kind !== 'function')
|
|
38
|
+
throw Error('Outer public transaction requires function ABI');
|
|
39
|
+
const entry = preparations.find(p => p.mappings.some(m => m.transactionId === tx.transactionId));
|
|
40
|
+
const details = (0, calldata_details_1.expandDeliveryInvocation)(invocation, tx.to, { name, description }, entry);
|
|
41
|
+
return { chains: [plan.chainId], executor: tx.executor, to: tx.to, name, description: (0, calldata_details_1.describeDeliveryInvocation)(description, invocation),
|
|
42
|
+
abi: (0, calldata_details_1.readableInvocationAbi)(invocation), calldata: tx.data, ...(BigInt(tx.value) === 0n ? {} : { value: tx.value }), ...(details ? { details } : {}) };
|
|
43
|
+
}));
|
|
44
|
+
}
|
|
45
|
+
/** Merge matching logical occurrences, never globally deduplicate calldata. */
|
|
46
|
+
function mergeDeliveryCalls(inputs) {
|
|
47
|
+
if (!inputs.length)
|
|
48
|
+
throw Error('At least one independently frozen network is required');
|
|
49
|
+
const chains = new Set(), sequences = [];
|
|
50
|
+
const nodes = new Map();
|
|
51
|
+
for (const input of inputs) {
|
|
52
|
+
const plan = (0, export_1.immutableDeliveryPlan)(input.plan), chain = plan.chainId, calls = projectDeliveryCalls(input);
|
|
53
|
+
if (chains.has(chain))
|
|
54
|
+
throw Error('Duplicate chain projection');
|
|
55
|
+
chains.add(chain);
|
|
56
|
+
const keys = calls.map((call, index) => {
|
|
57
|
+
const binding = plan.transactionBindings[index], operation = plan.operationBindings.find(o => o.stepId === binding.stepId);
|
|
58
|
+
const { chains: _, ...content } = call;
|
|
59
|
+
const key = (0, canonicalData_1.semanticHash)({ logical: [operation.sourceStepId, operation.operationId, binding.role, binding.callIndex], content });
|
|
60
|
+
const existing = nodes.get(key);
|
|
61
|
+
if (existing) {
|
|
62
|
+
if (existing.call.chains.includes(chain))
|
|
63
|
+
throw Error('Duplicate logical occurrence on one chain');
|
|
64
|
+
existing.call.chains.push(chain);
|
|
65
|
+
}
|
|
66
|
+
else
|
|
67
|
+
nodes.set(key, { call: { ...call, chains: [chain] }, next: new Set(), incoming: 0 });
|
|
68
|
+
return key;
|
|
69
|
+
});
|
|
70
|
+
sequences.push({ chain, calls, keys });
|
|
71
|
+
for (let i = 1; i < keys.length; i++) {
|
|
72
|
+
const a = nodes.get(keys[i - 1]), b = nodes.get(keys[i]);
|
|
73
|
+
if (!a.next.has(keys[i])) {
|
|
74
|
+
a.next.add(keys[i]);
|
|
75
|
+
b.incoming++;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
const queue = [...nodes].filter(([, n]) => n.incoming === 0).map(([key]) => key), ordered = [];
|
|
80
|
+
for (let at = 0; at < queue.length; at++) {
|
|
81
|
+
const node = nodes.get(queue[at]);
|
|
82
|
+
ordered.push(node.call);
|
|
83
|
+
for (const key of node.next) {
|
|
84
|
+
const next = nodes.get(key);
|
|
85
|
+
if (--next.incoming === 0)
|
|
86
|
+
queue.push(key);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
// Conflicting cross-chain ordering cannot share occurrences; keep exact per-chain sequences.
|
|
90
|
+
const result = ordered.length === nodes.size ? ordered : sequences.flatMap(s => s.calls.map(call => ({ ...call, chains: [s.chain] })));
|
|
91
|
+
const content = (call) => { const { chains: _, ...rest } = call; return rest; };
|
|
92
|
+
for (const sequence of sequences)
|
|
93
|
+
if ((0, canonicalData_1.canonicalJson)(result.filter(c => c.chains.includes(sequence.chain)).map(content)) !== (0, canonicalData_1.canonicalJson)(sequence.calls.map(content)))
|
|
94
|
+
throw Error('Merged calldata changed per-chain order or coverage');
|
|
95
|
+
return (0, canonicalData_1.deepFreeze)(result);
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=public-calldata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public-calldata.js","sourceRoot":"","sources":["../../runtime/delivery/public-calldata.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
/** Actual-file release graph classification. No caller-selected roots or target subsets. */
|
|
2
|
+
import { deploymentPurpose } from './source';
|
|
1
3
|
export interface ReleaseGraphOptions {
|
|
2
4
|
workspaceRoot: string;
|
|
3
5
|
projectRoot: string;
|
|
@@ -11,6 +13,8 @@ export interface ReleaseGraphOptions {
|
|
|
11
13
|
};
|
|
12
14
|
}
|
|
13
15
|
export declare const sameReleaseData: (a: unknown, b: unknown, label: string) => void;
|
|
16
|
+
/** A completed simulation-only script task supplies reports, never on-chain acceptance. */
|
|
17
|
+
export declare function isDevelopmentAcceptancePrerequisite(task: Parameters<typeof deploymentPurpose>[0]): any;
|
|
14
18
|
export declare function readReleaseUniverse(input: Omit<ReleaseGraphOptions, 'releaseRef'>): {
|
|
15
19
|
workspace: string;
|
|
16
20
|
root: string;
|
|
@@ -50,13 +54,13 @@ export declare function readReleaseGraph(input: ReleaseGraphOptions): {
|
|
|
50
54
|
readonly tasks: readonly {
|
|
51
55
|
readonly planKey: string;
|
|
52
56
|
readonly rev: number;
|
|
53
|
-
readonly objective: string;
|
|
54
|
-
readonly acceptance: readonly string[];
|
|
55
|
-
readonly dependsOn: readonly string[];
|
|
56
57
|
readonly step?: string | undefined;
|
|
57
58
|
readonly scope?: {
|
|
58
59
|
readonly [x: string]: unknown;
|
|
59
60
|
} | undefined;
|
|
61
|
+
readonly objective: string;
|
|
62
|
+
readonly acceptance: readonly string[];
|
|
63
|
+
readonly dependsOn: readonly string[];
|
|
60
64
|
readonly parameters?: readonly unknown[] | undefined;
|
|
61
65
|
readonly expectedArtifacts?: readonly string[] | undefined;
|
|
62
66
|
readonly allowedChanges?: readonly string[] | undefined;
|