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
|
@@ -8,6 +8,7 @@ const validation_1 = require("../lib/validation");
|
|
|
8
8
|
const preparationEvidence_1 = require("../lib/preparationEvidence");
|
|
9
9
|
const controlledMulticallAbi_1 = require("../lib/controlledMulticallAbi");
|
|
10
10
|
const ethers_1 = require("ethers");
|
|
11
|
+
const workflow_1 = require("gate-evm-tools/workflow");
|
|
11
12
|
const path_1 = __importDefault(require("path"));
|
|
12
13
|
const authority_1 = require("../lib/authority");
|
|
13
14
|
const deployments_1 = require("../lib/deployments");
|
|
@@ -66,6 +67,7 @@ const proxyReference = (context, step) => {
|
|
|
66
67
|
proxy: {
|
|
67
68
|
kind: stringField(proxyObject, "kind")
|
|
68
69
|
|| (typeof step.proxyKind === "string" ? step.proxyKind : "uups"),
|
|
70
|
+
adminOwner: stringField(proxyObject, "adminOwner"),
|
|
69
71
|
initializer: proxyObject.initializer === false
|
|
70
72
|
? false
|
|
71
73
|
: stringField(proxyObject, "initializer"),
|
|
@@ -131,9 +133,11 @@ const runUpgradeStep = async (context, step) => {
|
|
|
131
133
|
}
|
|
132
134
|
const contractName = String(step.contract);
|
|
133
135
|
const proxy = proxyReference(context, step);
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
136
|
+
const transparent = proxy.proxy.kind === "transparent";
|
|
137
|
+
if (!transparent && (proxy.proxy.kind || "uups") !== "uups")
|
|
138
|
+
throw new Error(`Upgrade step ${step.id} has unsupported proxy kind`);
|
|
139
|
+
if (transparent && !proxy.proxy.adminOwner)
|
|
140
|
+
throw Error("Transparent upgrade requires explicit proxy.adminOwner");
|
|
137
141
|
const sameFork = context.preparations?.assertUpgradeBaseline(proxy.proxyAddress) === true;
|
|
138
142
|
if (sameFork) {
|
|
139
143
|
if (context.mode !== 'simulate' || !context.validation?.sameForkUpgrade)
|
|
@@ -162,16 +166,17 @@ const runUpgradeStep = async (context, step) => {
|
|
|
162
166
|
}
|
|
163
167
|
const constructorArgs = resolveArray(context, step.constructorArgs || proxy.proxy.constructorArgs || [], `Step ${step.id} constructorArgs`);
|
|
164
168
|
const implementationSalt = (0, proxy_1.deriveImplementationSalt)(context.bindings?.derivationSeed ?? context.executionId, contractName, proxy.proxyAddress);
|
|
169
|
+
if (transparent && scheme !== "evm")
|
|
170
|
+
throw Error("Transparent upgrade requires ordinary EVM");
|
|
165
171
|
const request = {
|
|
166
172
|
version: 1,
|
|
167
|
-
kind: "uups-upgrade",
|
|
173
|
+
...(transparent ? { kind: "transparent-upgrade", proxyKind: "transparent", proxyAdmin: (0, workflow_1.transparentAdminAddress)(proxy.proxyAddress), proxyAdminOwner: proxy.proxy.adminOwner } : { kind: "uups-upgrade", proxyKind: "uups" }),
|
|
168
174
|
scheme,
|
|
169
175
|
network: context.runtime.hre.network.name,
|
|
170
176
|
target: context.targetId,
|
|
171
177
|
contract: contractName,
|
|
172
178
|
constructorArgs,
|
|
173
179
|
factory,
|
|
174
|
-
proxyKind: "uups",
|
|
175
180
|
proxy: proxy.proxyAddress,
|
|
176
181
|
implementationSalt,
|
|
177
182
|
...(proxy.proxy.unsafeAllow ? { unsafeAllow: proxy.proxy.unsafeAllow } : {}),
|
|
@@ -201,7 +206,8 @@ const runUpgradeStep = async (context, step) => {
|
|
|
201
206
|
actualContract,
|
|
202
207
|
contractInfoKey: proxy.contractInfoKey,
|
|
203
208
|
strategy: "gate-tool",
|
|
204
|
-
proxyKind: "uups",
|
|
209
|
+
proxyKind: transparent ? "transparent" : "uups",
|
|
210
|
+
...(transparent ? { proxyAdminAddress: prepared.plan.proxyAdmin.address, proxyAdminOwner: prepared.plan.proxyAdmin.owner } : {}),
|
|
205
211
|
proxyAddress: proxy.proxyAddress,
|
|
206
212
|
implementationAddress: implementation.address,
|
|
207
213
|
implementationSalt,
|
|
@@ -220,8 +226,8 @@ const runUpgradeStep = async (context, step) => {
|
|
|
220
226
|
}
|
|
221
227
|
recorder?.prepare(preparedChange);
|
|
222
228
|
(0, preparationEvidence_1.recordPreparedDeployment)(context, preparedChange, prepared, [`${step.id}.implementation`]);
|
|
223
|
-
const proxyContract = await context.runtime.hre.ethers.getContractAt(String(step.abi || contractName), proxy.proxyAddress, context.signer);
|
|
224
|
-
const upgradeAuthority = await (0, authority_1.decideAuthority)(proxyContract, context.target, context.signerAddress);
|
|
229
|
+
const proxyContract = await context.runtime.hre.ethers.getContractAt(transparent ? [...workflow_1.PROXY_ADMIN_INTERFACE.fragments] : String(step.abi || contractName), transparent ? prepared.plan.proxyAdmin.address : proxy.proxyAddress, context.signer);
|
|
230
|
+
const upgradeAuthority = await (0, authority_1.decideAuthority)(proxyContract, transparent ? { ...context.target, admin: proxy.proxy.adminOwner } : context.target, context.signerAddress);
|
|
225
231
|
if (context.mode === "simulate"
|
|
226
232
|
&& !context.configuredSimulationCaller
|
|
227
233
|
&& !context.executionPlanner) {
|
|
@@ -263,6 +269,8 @@ const runUpgradeStep = async (context, step) => {
|
|
|
263
269
|
}
|
|
264
270
|
const upgradeTx = await (0, create2_1.sendPreparedWorkflowTransaction)(transactionEnvelope(proxyUpgradeCall), context.signer);
|
|
265
271
|
await assertUupsChainState(context, proxy.proxyAddress, implementation.address);
|
|
272
|
+
if (transparent)
|
|
273
|
+
await (0, workflow_1.verifyTransparentAdmin)({ hre: context.runtime.hre, proxy: proxy.proxyAddress, admin: prepared.plan.proxyAdmin.address, owner: prepared.plan.proxyAdmin.owner });
|
|
266
274
|
const gateToolSync = context.mode === "execute"
|
|
267
275
|
? await (0, gateToolSync_1.syncGateToolUups)({
|
|
268
276
|
hre: context.runtime.hre,
|
|
@@ -274,6 +282,7 @@ const runUpgradeStep = async (context, step) => {
|
|
|
274
282
|
target: context.targetId,
|
|
275
283
|
manifestDir: context.target.openzeppelin.manifestDir,
|
|
276
284
|
proxy: proxy.proxyAddress,
|
|
285
|
+
...(transparent ? { proxyKind: "transparent", proxyAdminAddress: prepared.plan.proxyAdmin.address, proxyAdminOwner: prepared.plan.proxyAdmin.owner } : {}),
|
|
277
286
|
implementation: implementation.address,
|
|
278
287
|
contract: actualContract,
|
|
279
288
|
constructorArgs,
|
|
@@ -407,8 +416,8 @@ const runUpgradeStep = async (context, step) => {
|
|
|
407
416
|
value: upgradeTransaction.value,
|
|
408
417
|
data: upgradeTransaction.data,
|
|
409
418
|
operation: upgradeTransaction.operation,
|
|
410
|
-
method: "upgradeToAndCall",
|
|
411
|
-
args: [implementation.address],
|
|
419
|
+
method: transparent ? "upgradeAndCall" : "upgradeToAndCall",
|
|
420
|
+
args: transparent ? [proxy.proxyAddress, implementation.address, workflow_1.PROXY_ADMIN_INTERFACE.decodeFunctionData("upgradeAndCall", proxyUpgradeCall.data)[2]] : [implementation.address],
|
|
412
421
|
executor: upgradeTransaction.executor,
|
|
413
422
|
reason: upgradeAuthority.reason,
|
|
414
423
|
});
|
|
@@ -431,6 +440,8 @@ const runUpgradeStep = async (context, step) => {
|
|
|
431
440
|
&& !implementationExternal
|
|
432
441
|
&& upgradeTransaction.route === "operator") {
|
|
433
442
|
await assertUupsChainState(context, proxy.proxyAddress, implementation.address);
|
|
443
|
+
if (transparent)
|
|
444
|
+
await (0, workflow_1.verifyTransparentAdmin)({ hre: context.runtime.hre, proxy: proxy.proxyAddress, admin: prepared.plan.proxyAdmin.address, owner: prepared.plan.proxyAdmin.owner });
|
|
434
445
|
const gateToolSync = await (0, gateToolSync_1.syncGateToolUups)({
|
|
435
446
|
hre: context.runtime.hre,
|
|
436
447
|
root: context.root,
|
|
@@ -441,6 +452,7 @@ const runUpgradeStep = async (context, step) => {
|
|
|
441
452
|
target: context.targetId,
|
|
442
453
|
manifestDir: context.target.openzeppelin.manifestDir,
|
|
443
454
|
proxy: proxy.proxyAddress,
|
|
455
|
+
...(transparent ? { proxyKind: "transparent", proxyAdminAddress: prepared.plan.proxyAdmin.address, proxyAdminOwner: prepared.plan.proxyAdmin.owner } : {}),
|
|
444
456
|
implementation: implementation.address,
|
|
445
457
|
contract: actualContract,
|
|
446
458
|
constructorArgs,
|
|
@@ -455,6 +467,8 @@ const runUpgradeStep = async (context, step) => {
|
|
|
455
467
|
}
|
|
456
468
|
else if (context.mode === "simulate") {
|
|
457
469
|
await assertUupsChainState(context, proxy.proxyAddress, implementation.address);
|
|
470
|
+
if (transparent)
|
|
471
|
+
await (0, workflow_1.verifyTransparentAdmin)({ hre: context.runtime.hre, proxy: proxy.proxyAddress, admin: prepared.plan.proxyAdmin.address, owner: prepared.plan.proxyAdmin.owner });
|
|
458
472
|
}
|
|
459
473
|
context.state.set(`${proxy.saveAs}Upgrade`, {
|
|
460
474
|
proxyAddress: proxy.proxyAddress,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../../runtime/workflow/steps/upgrade.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../../runtime/workflow/steps/upgrade.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,14 +19,20 @@ Qualification performs one fresh compile, bypassing both job filtering and the S
|
|
|
19
19
|
|
|
20
20
|
Every actual artifact read after qualification passes through the owned index. ABI-only interfaces are valid roots; deployment and OZ version computation still require nonempty bytecode. The adapter independently projects stock artifacts and reads confined artifact/debug/build-info files, permitting the standard relative debug pointer only inside `artifacts/build-info`. It compares full persisted input/output/version data with observations, not the noncryptographic build-info ID. Sources, package membership, resolution, files, task registry and compiler configuration are rechecked when taking evidence.
|
|
21
21
|
|
|
22
|
-
`collector.implementation(name, constructorArgs, options)` observes actual official `getDeployData`, recomputes validation from captured main/auxiliary outputs, and checks the first selected run/FQN, unlinked and linked bytecode, constructor version, inheritance/library validation closure, full effective layout and full safety options. Initial UUPS preparation on the owned path obtains one actual DeployData and performs the official safety check. Upgrades observe the existing owned call. Official optional undefined fields use a version-specific persisted projection; general delivery JSON remains strict.
|
|
22
|
+
`collector.implementation(name, constructorArgs, options)` observes actual official `getDeployData`, recomputes validation from captured main/auxiliary outputs, and checks the first selected run/FQN, unlinked and linked bytecode, constructor version, inheritance/library validation closure, full effective layout and full safety options. Initial UUPS/Transparent preparation on the owned path obtains one actual DeployData and performs the official safety check. Upgrades observe the existing owned call. Official optional undefined fields use a version-specific persisted projection; general delivery JSON remains strict.
|
|
23
23
|
|
|
24
24
|
`collector.baseline(address, priorCollector, priorSelection)` accepts only a selection produced by an owned collector. The explicit prior selection binds source, artifact, constructor and version. Historical fresh and independent expected/disk upgrades use the actual pinned core implementation-slot reader and the configured target-manifest reader. The awaited read-only observation binds the unique proxy/implementation record, implementation map key, complete selected entry, raw manifest digest, layout, target, chain, manifest policy and replacement selection. A manifest by itself is insufficient. The pure reuse check requires that complete owned association and executes official storage compatibility validation. Replay performs no compile, preparation or DeployData call and does not change required/reused decisions.
|
|
25
25
|
|
|
26
|
-
Compiler-qualified collection also supports a new initial UUPS deployment followed by an upgrade in the same local fork. Its journal must reference the owned, fully checked initial preparation. Before bypassing the historical source-state guard, the owned adapter verifies proxy absence at the pinned source block, actual local proxy/implementation code and the actual implementation slot. An awaited in-memory baseline port supplies the qualified prior layout to the normal core safety check; no manifest entry is synthesized or written. The plan uses `sameForkBaselineDigest`, strictly exclusive with historical `manifestDigest`. Its stable commitment covers the canonical initial request/plan and full old-layout hash, thereby binding target, chain, proxy, implementation, artifact and constructor to the prior qualified selection. Exact auxiliary compiler evidence remains separate. Both the preparation journal and compiler-evidence parser check the corresponding prior relationship. Unqualified collection keeps the original same-fork refusal.
|
|
26
|
+
Compiler-qualified collection also supports a new initial UUPS or Transparent deployment followed by an upgrade in the same local fork. Its journal must reference the owned, fully checked initial preparation. Before bypassing the historical source-state guard, the owned adapter verifies proxy absence at the pinned source block, actual local proxy/implementation code and the actual implementation slot. An awaited in-memory baseline port supplies the qualified prior layout to the normal core safety check; no manifest entry is synthesized or written. The plan uses `sameForkBaselineDigest`, strictly exclusive with historical `manifestDigest`. Its stable commitment covers the canonical initial request/plan and full old-layout hash, thereby binding target, chain, proxy kind, proxy, implementation, artifact and constructor to the prior qualified selection. Exact auxiliary compiler evidence remains separate. Both the preparation journal and compiler-evidence parser check the corresponding prior relationship. Unqualified collection keeps the original same-fork refusal.
|
|
27
27
|
|
|
28
28
|
The public collector is an immutable opaque handle. `parseCompilerEvidence` checks persisted shape, hashes and relationships; parsing a record cannot obtain collector authority. `collectCompilerQualifiedDeliveryPlan` in the delivery planning runtime requires the actual HRE's owned collector and returns the ordinary collection plus its compiler contribution. The existing source/input/runtime header remains a trusted launcher port. The fixture-only upgrade evidence seam is not qualification authority.
|
|
29
29
|
|
|
30
30
|
`stableDigest` binds original sources/input/settings, actual compiler/toolchain, artifacts and full selected layouts/validation. `exactDigest` additionally binds the actual randomized auxiliary inputs/outputs and exact qualification evidence. Repeated real compilation of nested namespace struct/enum/UDVT fixtures produced equal full selected layouts without type-ID normalization. Auxiliary raw digests must remain outside the future stable aggregate input hash. Evidence snapshots are contributions, not terminal input sealing, aggregate freeze or `release_ready`; those remain the subsequent aggregate stage.
|
|
31
31
|
|
|
32
32
|
This is a supported-runtime contract with ordinary before/after drift detection, not arbitrary JavaScript sandboxing or hostile same-process/concurrent-writer attestation. It sends no transaction. The localhost acceptance harness separately exercises actual preparation and existing fork/reuse behavior.
|
|
33
|
+
|
|
34
|
+
Production final preparation consumes the qualification plan's frozen
|
|
35
|
+
`derivedBindings.derivationSeed`; it retains a distinct executionId for locks,
|
|
36
|
+
records and recovery. This preserves CREATE2 implementation/proxy identities and
|
|
37
|
+
same-fork layout commitments without dropping them from compiler evidence or
|
|
38
|
+
relaxing final input-closure equality.
|
|
@@ -20,6 +20,8 @@ The parent validates each request's actual handoff invocation and unions canonic
|
|
|
20
20
|
|
|
21
21
|
Each target stages once in a fresh fixed package worker, using the original project, config, sources, module resolution, artifacts and cache paths. A separate actual source HRE serves the workflow's reviewed read-only RPC allowlist. The owned fork config extender runs before HRE construction; manifest context is established before OpenZeppelin loads. Configuration evidence preserves the original runner policy while private baseline checks cover the injected fork capability.
|
|
22
22
|
|
|
23
|
+
The source RPC must serve historical code, balances and storage at the pinned block. A successful block/header read alone does not establish that capability. The private target fork starts without Hardhat's default wallets and impersonates only the selected simulation operator. This avoids unrelated historical wallet reads; it does not change the project's recorded runner policy or source network accounts. Worker failures distinguish fork setup, snapshot verification and local signer initialization. Source failures expose only fixed categories for unavailable historical state, denied access, rate limits or other read failures; upstream messages, URLs and credentials are never forwarded. Correct the selected project's RPC and retry the existing execution identity and pinned block. Do not move the block to bypass this check.
|
|
24
|
+
|
|
23
25
|
Earlier workers and compiler collectors remain live while later targets compile. Selected artifact, debug and build-info bytes must survive unchanged; growing whole validation/Solidity caches are not immutable inputs. After all stages, business ports close, every actual contribution is reread, conflicting files reject, and the parent computes one stable input union. Runtime observations and randomized exact compiler evidence remain outside that hash. Every target custom snapshot is included; native-only plans retain `customInputClosure: null`.
|
|
24
26
|
|
|
25
27
|
Binding is private and one-shot. It changes only input/plan/audit hash bindings; transaction IDs/order/bytes, execution-derived values, preparations, verification, references and the captured fork interval remain byte-equivalent. No evaluation, preparation, producer call or send occurs during binding. Any failed target invalidates the whole aggregate. No collection is returned until every target and source child exits successfully and is reaped. IPC session/epoch/request IDs correlate the actual process/channel; they are not hostile-process attestation.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Production calldata review
|
|
2
|
+
|
|
3
|
+
Production preparation captures a review for every frozen transaction. Ordinary calls use the compiled contract interface and independently resolved business arguments. CREATE2, controlled multicall, UUPS and Transparent deployments/upgrades reconstruct intent from preparation requests and compiled artifacts, including constructor and initializer payloads.
|
|
4
|
+
|
|
5
|
+
`collection.calldata` is frozen by the production `artifactHash`. The internal export model retains these records under `calldataReview`, bound to `planHash` and `chainId`. Each record contains transactionId, to, value, operation and its invocation:
|
|
6
|
+
|
|
7
|
+
- `abi`: the JSON ABI fragment for the actual function or constructor, including input names and tuple components.
|
|
8
|
+
- `method` and `selector`: canonical function signature and selector (constructor selector is null).
|
|
9
|
+
- `expectedArguments`: independently resolved intent; ABI integers are decimal strings and tuples are positional arrays.
|
|
10
|
+
- `decodedArguments`: arguments decoded from the complete actual bytes.
|
|
11
|
+
- `data`: complete calldata; constructor data includes its frozen `bytecode`.
|
|
12
|
+
- `payloads`: nested invocations linked by numeric `argumentPath`, e.g. `[0, 1, 2]` selects the second aggregate3 call's callData.
|
|
13
|
+
- `check: matches-frozen-intent`: expected ABI encoding matches every byte, including selector and absence of trailing data.
|
|
14
|
+
|
|
15
|
+
Production inspection and export revalidate complete ordered coverage, transaction bindings, canonical ABI encoding and nested payloads. Missing ABI or inconsistent bytes reject the operation before signing or broadcast. A match verifies consistency with frozen intent; it does not certify business correctness, current permissions or chain completion. Existing production preparations without review must be generated anew.
|
|
16
|
+
|
|
17
|
+
The public delivery is one JSON array. Each outer CALL contains `chains`, `executor`, `to`, `name`, `description`, human-readable function `abi`, and `calldata`; nonzero `value` is decimal wei. The name and description come from the frozen operation or specific call. Known CREATE2, multicall and upgrade payloads add `details` explaining their nested intent. Internal review records, transaction hashes and checks stay out of the public file. No companion Markdown is generated.
|
|
18
|
+
|
|
19
|
+
The authored business description is preserved, followed by an `执行参数:` line containing the actual ABI argument names, types and values from the independently validated frozen invocation. Named tuples and arrays expand recursively; zero, false and full-width decimal integers remain exact. Registered nested payloads show their decoded calls; CREATE2 creation bytecode is represented by initCodeHash and constructor arguments rather than copied into the description. Multicall subcalls, upgrades and initializers use the same formatter in their own descriptions. No additional public parameter field or document is added. Parameter text follows each network's frozen arguments; ABI integer values are raw units and do not imply token decimals. This makes actual values reviewable but does not mechanically prove the authored natural-language business purpose.
|
|
20
|
+
|
|
21
|
+
Public files are optional: ordinary direct-wallet execution keeps the transaction bytes and ABI review internally without publishing a delivery. Dev preparation, execution and reconciliation do not depend on a public file. GateFlow dev publishes when the current transaction requires external execution; explicit offline exports use the original frozen aggregate. Production publishes for the selected export intent or a known external executor. CREATE2 and multicall construction and nested validation remain required even when no public document is generated.
|
|
22
|
+
|
|
23
|
+
When requested, dev and production publish the complete array atomically at `scripts/tasks/<deploymentId>/deliveries/<sha256>/calldata.json`. Both use `delivery-calldata.archiveDeliveryCalls` and `serializeDeliveryCalls`: deterministic keys, two-space indentation, UTF-8 and one trailing newline, with the digest computed over those exact file bytes. The path contains no network or environment; `chains` identifies each transaction's targets. The READY descriptor includes the exact bytes and private source provenance at `.gate-delivery/deliveries/<deploymentId>/<sha256>-<provenanceHash>.json`; dev execution identities and production release references stay in those records. Repeated identical exports reuse the file without replacing earlier deliveries. Multiple targets can be exported with `exportProductionCalldata`, which validates each frozen target before merging equal logical occurrences while preserving every chain's order.
|
|
24
|
+
|
|
25
|
+
An authorized operator transaction follows the existing approval/signing flow. A known external executor produces the full calldata export without signing or sending that external transaction. Missing signing capability or RPC failure remains an error. Exports preserve completed observations and ordering; they do not mark deployment complete.
|
|
26
|
+
|
|
27
|
+
Safe exports additionally record the unsigned `execTransaction` ABI/arguments and MultiSend wrapper ABI. The signature argument is explicitly `0x`, pending external collection. The frozen Safe envelope and packed calls are verified against the original transaction range by the Safe adapter; the production review retains the business call ABIs for that range. The review is not a signed Safe transaction.
|
|
@@ -23,6 +23,12 @@ After finality, all frozen manifest/native or emitted custom `check` calls run t
|
|
|
23
23
|
|
|
24
24
|
Successful assertions permit materialization of `contractInfo.json`, `deploymentInfo.json`, an explicit per-execution `deployment.json`, and the official selected-target OpenZeppelin manifest for UUPS. The native adapter checks actual deployed bytecode, ERC-1967 implementation, official validation data and layout. Registry merges preserve unrelated entries and reject same-instance/base conflicts.
|
|
25
25
|
|
|
26
|
+
These are generated projections with different consumers: `contractInfo.json` is the lightweight current address lookup; `deploymentInfo.json` holds current contract/proxy metadata and points to its originating execution; `deployment.json` retains that execution's parameters, observations and assertions. The shared registration merge and recoverable file transaction own all three. Agents must not independently update the address and metadata files or copy them into a second registry in Markdown.
|
|
27
|
+
|
|
28
|
+
Ordinary dev preparation and direct-wallet execution need no public `calldata.json`. The frozen collection still retains exact transaction bytes and nested ABI/expected-argument validation. GateFlow publishes a public array when the current transaction requires external execution; an explicitly requested offline export can also project the original collection with `delivery-calldata.projectDeliveryCalls` and archive it with `archiveDeliveryCalls`. An optional exported file is not a prerequisite for direct execution or recovery.
|
|
29
|
+
|
|
30
|
+
New deployment tasks reference canonical inputs and actual JSON/code/acceptance evidence in Plan results. They need no separate analysis, requirement, qualification or validation Markdown report. Project-specific decisions or unusual recovery instructions may use one optional task-local README. Previously declared or frozen reports remain bound to their original paths and bytes.
|
|
31
|
+
|
|
26
32
|
`.gate-delivery/materialization/<executionId>.json` contains the exact old/new bytes and hashes for the multi-file intent. A SQLite transaction holds the process mutex; files and intent are atomically renamed and fsynced. The `prepared` journal is durable before the first project-file replacement. Recovery accepts only recognized old/new bytes, finishes remaining file writes, and marks `committed`. A process crash releases the mutex automatically. Conflicting edits or invalid journals fail closed. Do not delete these journals to retry a deployment.
|
|
27
33
|
|
|
28
34
|
CheckCode runs `npm run compile -- --network <target>` and the installed local `gate-tool check --scheme evm --network <target> --config <effective> --output <raw>`. Each new attempt gets a unique private directory. Actual artifacts are checked before and after both compilations. The current raw report must have exactly the expected selected-network keys, matching scheme/contract/address, `matches: true` and `error: null`. UUPS requires both the business implementation entry and `<Alias>_Proxy`.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Delivery export and durable execution records
|
|
2
2
|
|
|
3
|
-
`gate-evm-tools/delivery-export`
|
|
3
|
+
`gate-evm-tools/delivery-export` renders the existing immutable `DeliveryPlan` without running business code, preparation, execution, HRE, a signer or a provider. `renderDeliveryExport(plan)` is a low-level internal renderer, synchronous and without filesystem or chain effects. Its JSON and Markdown contain the same canonical model, including all transactions, references and total-order dependencies, plus a separate current contiguous route/executor segment. Public production delivery uses the reviewed single CALL-array JSON described in [delivery-calldata](delivery-calldata.md), archived under its deployment release. Success means artifact delivery, not deployment or release readiness.
|
|
4
4
|
|
|
5
5
|
Completed progress requires `validateDeliveryProgress({plan, completed, finalized})`, where `completed` contains observation references and `finalized.readFinalized` is a trusted host-owned canonical/finality query. Its live opaque result can be passed to `renderDeliveryExport`. Serialization or copying loses provenance. `exportDelivery` is a convenience wrapper that resolves provenance before rendering. Structural plan/receipt parsing grants no host authorization. No release binding is invented here.
|
|
6
6
|
|
package/docs/delivery-inputs.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Owned delivery business inputs
|
|
2
2
|
|
|
3
|
-
`gate-evm-tools/delivery-inputs` reads an actual
|
|
3
|
+
`gate-evm-tools/delivery-inputs` reads an actual full-project handoff and its business files. It provides an immutable business-input snapshot and owned parameter receipts. It does **not** qualify an aggregate plan, grant an execution action, or create a release. Full effective config/HRE correspondence, runtime package identity and the multi-target staging owner are separate gates.
|
|
4
4
|
|
|
5
5
|
```ts
|
|
6
6
|
import { openDeliveryInputs, consumeDeliveryInputParameters } from 'gate-evm-tools/delivery-inputs';
|
|
@@ -19,19 +19,68 @@ const sameParameters = consumeDeliveryInputParameters(receipt);
|
|
|
19
19
|
|
|
20
20
|
The handoff invocation supplies `deploymentId`, `developmentNetwork` and `releaseTargetNetworks`. The reader derives `scripts/tasks/<deploymentId>/`, the ordered manifest steps, upstream canonical definitions and the selected target set. It accepts no caller steps, hashes, source roots, target objects, parameter overrides or pre-parsed documents. Canonical definitions exclude progress and unrelated tasks. Final rereading checks the current invocation's eligibility and the same business definitions. Dependencies may refer to another deployment package in the same project.
|
|
21
21
|
|
|
22
|
-
`selection: 'development'` requires complete values and provenance for the development target only. `release` requires every declared production target; `all` requires development and every production target. Selection controls data coverage. It does not authorize any additional invocation, environment or target action.
|
|
22
|
+
`selection: 'development'` requires complete effective values and provenance for the development target only. `release` requires every declared production target; `all` requires development and every production target. Effective values may inherit task-owned defaults. Selection controls data coverage. It does not authorize any additional invocation, environment or target action.
|
|
23
23
|
|
|
24
24
|
The new file contract is:
|
|
25
25
|
|
|
26
26
|
| File below the task directory | Shape |
|
|
27
27
|
| --- | --- |
|
|
28
|
-
| `task.yaml` | `{version: 1, id, developmentNetwork, releaseTargetNetworks}`; must match the actual handoff deployment scope |
|
|
28
|
+
| `task.yaml` | `{version: 1, id, requirementRef: {planKey, rev}, productionRequirementRef?, developmentNetwork, releaseTargetNetworks, referenceDeploymentId?}`; must match the actual handoff deployment scope |
|
|
29
29
|
| `manifest.yaml` | `{id, description?, steps}`; steps retain their source order |
|
|
30
30
|
| `parameters.schema.json` | Strict draft-07 schema with the existing leaf policies |
|
|
31
|
-
| `parameters.yaml` | `{params: {<target>: <
|
|
32
|
-
| `parameters.provenance.json` | `{version: 1, producers, targets}` |
|
|
31
|
+
| `parameters.yaml` | `{defaults?: <shared values>, params: {<target>: <network overrides>}}`; without defaults, each selected target supplies complete values |
|
|
32
|
+
| `parameters.provenance.json` | `{version: 1, producers, defaults?: {manual, computed}, targets}` |
|
|
33
33
|
|
|
34
|
-
Each producer definition is `{version, module}`. Its module is a confined project-relative path below this task, for example `scripts/tasks/vault/producers/salt.ts`. Each target provenance entry is `{manual, computed}`, using the existing path maps and exact observation shapes. Copy policies read from the same actual `parameters.yaml` document
|
|
34
|
+
Each producer definition is `{version, module}`. Its module is a confined project-relative path below this task, for example `scripts/tasks/vault/producers/salt.ts`. Each target provenance entry is `{manual, computed}`, using the existing path maps and exact observation shapes. Copy policies read effective network values expanded from the same actual `parameters.yaml` document. There is no `params.global` or `run.targets` override. A manual observation's `source` is only a source label, never proof of human approval.
|
|
35
|
+
|
|
36
|
+
## Shared parameters and network exceptions
|
|
37
|
+
|
|
38
|
+
Keep one task/manifest/script set for a deployment batch. Put common business parameters in `defaults` and only exceptions in `params.<network>`. Network aliases must belong to the task's declared development/release scope; having defaults does not select additional Hardhat networks. For example:
|
|
39
|
+
|
|
40
|
+
```yaml
|
|
41
|
+
defaults:
|
|
42
|
+
owner: "0x1111111111111111111111111111111111111111"
|
|
43
|
+
feeBps: 100
|
|
44
|
+
params:
|
|
45
|
+
bscProd:
|
|
46
|
+
owner: "0x2222222222222222222222222222222222222222"
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
All declared targets inherit `feeBps` and the common owner, except `bscProd`, whose owner is replaced. When `defaults` is present, unchanged networks need no parameter/provenance entry; `params: {}` and `targets: {}` suffice if every value and observation is shared. Both defaults and network overrides are objects. Objects merge recursively; arrays replace completely. Explicit `0`, `false`, empty strings, empty arrays and `null` are preserved; the complete effective value must still satisfy the schema. There is no deletion or fallback on null.
|
|
50
|
+
|
|
51
|
+
Record common observations once in provenance `defaults`, and exceptional observations under `targets.<network>`. With manual policies for the example above:
|
|
52
|
+
|
|
53
|
+
```json
|
|
54
|
+
{
|
|
55
|
+
"version": 1,
|
|
56
|
+
"producers": {},
|
|
57
|
+
"defaults": {
|
|
58
|
+
"manual": {
|
|
59
|
+
"/owner": {"source": "confirmed-requirement", "value": "0x1111111111111111111111111111111111111111"},
|
|
60
|
+
"/feeBps": {"source": "confirmed-requirement", "value": 100}
|
|
61
|
+
},
|
|
62
|
+
"computed": {}
|
|
63
|
+
},
|
|
64
|
+
"targets": {
|
|
65
|
+
"bscProd": {
|
|
66
|
+
"manual": {"/owner": {"source": "confirmed-network-exception", "value": "0x2222222222222222222222222222222222222222"}},
|
|
67
|
+
"computed": {}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
An explicitly overridden leaf needs its own target observation even if its value equals the default. Unchanged siblings inherit their default observations. Array replacement discards the entire default array's observations; supply observations for every replacement leaf (or the array pointer itself for an empty array). Network-specific computed values such as salts/addresses require matching target observations and verified producer inputs. Do not assume CREATE2 values are reusable when factory, constructor inputs, caller or policy differs.
|
|
74
|
+
|
|
75
|
+
Expansion happens only while opening development/qualification business inputs, before the existing schema and provenance checks. Every selected network gets its complete immutable envelope; computed producers are still verified in separate per-target sessions. Input file digests bind the default/exception definitions and their sources, and the sealed evidence binds the complete resolved values and observations. Simulation, execution and calldata preparation use that same envelope. Production consumes frozen values, with no new runtime parameter override mechanism. Historical dev validation keeps shared defaults and dev overrides bound, allowing only the existing bounded prod-target additions/changes.
|
|
76
|
+
|
|
77
|
+
Development and production share one ordered manifest. Reference business values and CREATE2 salt/predicted address through `$param`, and facilities through `$target`. Schemas constrain formats and types; a dev-specific owner constant must not constrain every network. Network exceptions may therefore produce different calldata and CREATE2 addresses.
|
|
78
|
+
|
|
79
|
+
After development acceptance, an additional confirmed analysis task may describe production targets and parameters under the original deployment ID and `requirementRef`. Production tasks directly depend on it and bind its exact revision through `productionRequirementRef`; task.yaml repeats that binding. Original development task definitions, revisions, confirmations and results remain unchanged. This supplement grants no signing authority and cannot change the original operation kinds or contract source.
|
|
80
|
+
|
|
81
|
+
The historical consumer permits declarative literal-to-parameter migration only when the complete resolved development operations remain identical, including order, arguments, value, salt and expected addresses. Existing parameter values and leaf provenance remain bound, new dev parameters must be used by the shared steps, and new or changed dev computations require new acceptance. Custom operations are excluded from this migration. Production is independently schema/provenance checked, simulated and frozen; historical files and acceptance bytes are never rewritten.
|
|
82
|
+
|
|
83
|
+
## Input ownership
|
|
35
84
|
|
|
36
85
|
Before any producer runs, every source step passes the existing strict native parser or the pure custom-step structural parser. Runtime ABI/reference validation still belongs to the engine. Documents reject duplicate members, aliases, anchors, merge keys, non-string mapping keys, unsafe numeric values and non-JSON data. Files must be confined regular single-link files; symlinks and traversal are rejected. This tightens the new delivery input boundary; the previous YAML parser already rejected duplicate mapping keys.
|
|
37
86
|
|
|
@@ -4,7 +4,7 @@ This is the delivery-only development/consumption boundary. It does not replace
|
|
|
4
4
|
|
|
5
5
|
## Development and consumption
|
|
6
6
|
|
|
7
|
-
`gate-evm-tools/delivery-parameters` exports `resolveDeliveryParameters` and `consumeDeliveryParameters`. Development supplies the complete target `values`, including manual values and computed outputs.
|
|
7
|
+
`gate-evm-tools/delivery-parameters` exports `resolveDeliveryParameters` and `consumeDeliveryParameters`. Development supplies the complete target `values`, including manual values and computed outputs. The task-file owner `openDeliveryInputs` can first expand explicit shared defaults and network exceptions; see [the input format](delivery-inputs.md#shared-parameters-and-network-exceptions). This low-level resolver still validates complete values rather than filling defaults, choosing a wallet identity, or silently copying missing target values. The returned version-1 envelope and every nested value are immutable.
|
|
8
8
|
|
|
9
9
|
The production consumer takes only the existing envelope and its independently supplied trusted `identity`. It revalidates schema, observations, provenance and the envelope hash, returns frozen values, and never invokes a producer. There are no overrides or fill-in arguments. The expected identity must come from the caller's trusted development evidence; hashing an arbitrary incoming envelope and trusting that same hash does not authenticate it.
|
|
10
10
|
|
package/docs/delivery-release.md
CHANGED
|
@@ -1,6 +1,30 @@
|
|
|
1
1
|
# Developer production delivery
|
|
2
2
|
|
|
3
|
-
`gate-evm-tools/delivery-release` completes the developer side of the new EVM
|
|
3
|
+
`gate-evm-tools/delivery-release` completes the developer side of the new EVM full delivery flow. Run it from the actual project root using the installed, locked package. It generates qualification through `collectDeliveryAggregate`; callers cannot submit an aggregate or choose upstream roots. Every production target in `scripts/tasks/<deploymentId>/task.yaml` must have one current `prod-qualification` task in the same canonical handoff.
|
|
4
|
+
|
|
5
|
+
## Contract commit and deployment input snapshots
|
|
6
|
+
|
|
7
|
+
Before a production release can be prepared or finalized, project contract sources must be committed. The tool discovers the configured Hardhat source directory and actual compiled local imports, checks their Git tree, index and physical bytes, and rejects staged, uncommitted, untracked (including ignored), deleted or conflicted contract sources. This requirement does not block ordinary development or local simulation.
|
|
8
|
+
|
|
9
|
+
`contractSource.commit` is the full SHA of the most recent source-changing commit on the current first-parent history, including source-changing merges. Later script or documentation commits do not change it. The referenced commit must reproduce the current project source set; the source fingerprint must also match the actual qualified compiler inputs. Installed contract dependencies, compilation configuration and runtime identity remain bound by the existing qualified input evidence. No separate deployment-script commit is required.
|
|
10
|
+
|
|
11
|
+
Preparation writes `scripts/tasks/<deploymentId>/releases/<releaseId>/inputs.snapshot.json` before publishing its candidate. The snapshot preserves exact project input bytes: deployment operations, parameters, custom scripts, parameter producers and their observed local dependencies, contract sources, qualified artifacts/configuration, and existing package/TypeScript configuration and production explanation. Installed `node_modules` payloads are not duplicated here; their existing runtime/package evidence remains authoritative. Signing credentials in Hardhat configuration must use environment references, and environment values are never evaluated into the snapshot.
|
|
12
|
+
|
|
13
|
+
The candidate and final bundle bind the snapshot's content hash and exact byte hash. Finalization and production inspection continue checking the current files against the qualified inputs and snapshot. A frozen release cannot be overwritten; changing deployment logic, parameters or checks requires validation and a new release ID. Changes affecting accepted development semantics also require a new development acceptance. A failed execution with unchanged inputs keeps its existing execution ID and reconciles first.
|
|
14
|
+
|
|
15
|
+
Git submission/history checks run during developer preparation and finalization. An administrator consuming a completed release validates its frozen bytes and existing delivery evidence; this does not require Git metadata or a new script commit.
|
|
16
|
+
|
|
17
|
+
The editable `scripts/tasks/<deploymentId>/` files can advance after release. Historical input recovery reads the original published bundle and snapshot, without substituting the latest task files:
|
|
18
|
+
|
|
19
|
+
```js
|
|
20
|
+
const recovered = release.restoreDeliveryReleaseInputs({
|
|
21
|
+
...scope, releaseRef,
|
|
22
|
+
destination: '/absolute/new-directory-outside-the-current-project',
|
|
23
|
+
});
|
|
24
|
+
// recovered.status === 'inputs-restored'; recovered.contractSource.commit identifies the source version.
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Recovery validates all snapshot bytes before writing, requires a new external directory and never overwrites the current project. It restores inputs only: original handoff/prerequisite/history evidence, locked dependencies and execution records must still be retained for historical execution and verification. Recovery itself grants no release readiness, signing or broadcast authority, and does not alter chain history.
|
|
4
28
|
|
|
5
29
|
## Preserve accepted development before editing production inputs
|
|
6
30
|
|
|
@@ -14,15 +38,33 @@ const development = release.captureDevelopmentReleaseHistory({
|
|
|
14
38
|
// Persist `development` as JSON; it contains confined project-relative file references.
|
|
15
39
|
```
|
|
16
40
|
|
|
17
|
-
Capture reads the actual installed package and refuses any payload that differs from the accepted aggregate.
|
|
41
|
+
Capture reads the actual installed package and refuses any payload that differs from the accepted aggregate. Version-2 history references the single original preparation under `.gate-delivery/development/<executionId>.source.json` and `<executionId>.aggregate.json`. Existing preparation bytes are reused after a complete semantic comparison; changed inputs cannot overwrite the original execution. Standalone callers may persist this preparation earlier with `delivery-development.persistDevelopmentInputs({root, source, aggregate})`.
|
|
42
|
+
|
|
43
|
+
The entire installed producer is retained once as `.gate-delivery/packages/<SHA256-of-archive-bytes>.json.gz`. Identical producer snapshots are shared by executions. History does not create an expanded `package/` tree or a second source/aggregate copy. The consumer verifies each archived member, its path, the complete payload, npm lock provenance and the executable runtime digest directly in memory; it neither extracts nor executes historical code. The archive is an installed-payload snapshot, not an npm distribution tarball. Its observed npm lock integrity remains separate metadata.
|
|
44
|
+
|
|
45
|
+
Only changing input containers are copied into `.gate-delivery/history/<executionId>/inputs/`; the small `READY.json` is written last and binds the original preparation, acceptance, captured containers and shared archive. A completed capture is reusable after a package update, but any missing or changed retained file is refused. Version-1 history descriptors are not accepted or migrated.
|
|
46
|
+
|
|
47
|
+
```text
|
|
48
|
+
.gate-delivery/
|
|
49
|
+
development/<executionId>.source.json
|
|
50
|
+
development/<executionId>.aggregate.json
|
|
51
|
+
development/<executionId>.acceptance.json
|
|
52
|
+
history/<executionId>/READY.json
|
|
53
|
+
history/<executionId>/inputs/...
|
|
54
|
+
packages/<archive-sha256>.json.gz
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
These files are durable deployment evidence, not disposable build cache. Keep task operations, release snapshots, execution results and the optional public calldata under `scripts/tasks/<deploymentId>/`. Do not copy a complete `finalize` or `inspect` result into another validation report: retain the authoritative files and record their paths, hashes and status in the Plan. Inspection remains read-only.
|
|
18
58
|
|
|
19
59
|
Only production-only container additions/completions are compatible with the existing development acceptance. Development parameters and provenance, public target configuration, existing Hardhat network definitions, compiler/plugins, source, artifacts, scripts and custom dependencies remain bound. A custom dependency on an entire changed container is rejected. Historical task definitions retain all fields except the explicit production-target-list extension. Changed development semantics require a new development acceptance.
|
|
20
60
|
|
|
61
|
+
Public facilities resolve as `baseProfile → dev/prod profile → network overrides`. History checks allow changes to `_profiles.prod` and the selected production network entries without invalidating development acceptance. Shared `_profiles.baseProfile`, `_profiles.dev` and all non-production network entries remain bound, and the resolved development target must still match the accepted target. If a development custom script or parameter producer depends on the complete `config.yaml`, its original file digest remains required even for production-only edits.
|
|
62
|
+
|
|
21
63
|
## Complete prerequisites and production inputs
|
|
22
64
|
|
|
23
|
-
Finish all selected production parameter leaves and provenance through the existing strict parameter resolver. Record concrete public executors, operation order, permissions, checks
|
|
65
|
+
Finish all selected production parameter leaves and provenance through the existing strict parameter resolver. Record concrete public executors, operation order, permissions, checks and adaptations in this round's canonical inputs. Requirements, operation intent and input bytes are frozen per round. A shared `docs/prod-execution-plan.md` is neither required nor automatically archived. Recovery resumes the original per-network executionId after reconciliation and preserves submitted transactions and finality evidence.
|
|
24
66
|
|
|
25
|
-
Development and enabled audit dependencies must appear in each qualification's upstream closure. Each current prerequisite must be completed/successful with `adoptedRev === rev`. `
|
|
67
|
+
Development and enabled audit dependencies must appear in each qualification's upstream closure. Each current prerequisite must be completed/successful with `adoptedRev === rev`. Use `release.isDevelopmentAcceptancePrerequisite(task)` to classify development evidence: execution/verification tasks reference actual acceptance or raw CheckCode; completed simulation-only script tasks use report receipts, including script tasks from a referenced earlier round. Simulation-only work cannot replace this round's required verified development acceptance. Other prerequisite skills first produce their actual reports and complete the task with `result.codeRef` and `result.evidence` file refs, then invoke:
|
|
26
68
|
|
|
27
69
|
```js
|
|
28
70
|
release.recordDeliveryPrerequisite({
|
|
@@ -31,7 +73,7 @@ release.recordDeliveryPrerequisite({
|
|
|
31
73
|
});
|
|
32
74
|
```
|
|
33
75
|
|
|
34
|
-
The tool binds the current canonical task/revision/definition, code reference, and
|
|
76
|
+
The tool binds the current canonical task/revision/definition, code reference, and the actual bytes of the union of report refs and declared `expectedArtifacts`. Existing outputs do not need to be added to an already-completed result. Missing or empty files and changed bound bytes still fail. Audit results must explicitly reference `audit-reports/security-audit-report.md`. This receipt establishes provenance and eligibility, not semantic audit quality. Disabled audit lanes do not acquire new requirements. Missing, revised, cancelled, disabled or unsuccessful mandatory prerequisites block readiness.
|
|
35
77
|
|
|
36
78
|
## Two-phase release
|
|
37
79
|
|
|
@@ -53,13 +95,41 @@ const prepared = await release.prepareDeliveryRelease({
|
|
|
53
95
|
|
|
54
96
|
The returned `releaseRef` is preliminary: there is no release-ready marker. The actual owner qualifies every target on an isolated read-only fork, retains preparations, full typed assertions and fork audit, then freezes the current business inputs and prerequisite evidence. Nonces, fees and administrator approval belong to the later execution snapshot.
|
|
55
97
|
|
|
56
|
-
The developer mainAgent
|
|
98
|
+
The developer mainAgent uses canonical Plan commands to create production tasks
|
|
99
|
+
for each selected target in the same handoff. Each task declares
|
|
100
|
+
`purpose: prod-execution`, prod environment, target, revision and the preliminary
|
|
101
|
+
releaseRef. One task can cover all capabilities; split tasks form an explicit
|
|
102
|
+
dependency chain. Each target's graph covers simulate, execute or export-calldata,
|
|
103
|
+
and verify, and depends on its qualification task. Qualification has
|
|
104
|
+
`purpose: prod-qualification`, actions simulate/verify and no releaseRef.
|
|
105
|
+
The deployment Agent implements and qualifies; mainAgent plans and dispatches.
|
|
106
|
+
Split execute/export tasks also allow reconcile or verify so they can observe
|
|
107
|
+
completion after external execution; simulation or calldata delivery alone cannot
|
|
108
|
+
complete those tasks. A merged task including verify completes only on acceptance.
|
|
109
|
+
The production operator later selects these existing tasks.
|
|
57
110
|
|
|
58
111
|
```js
|
|
59
112
|
const ready = await release.finalizeDeliveryRelease({...scope, releaseId: 'vault-2026-10'});
|
|
60
113
|
const inspected = release.inspectDeliveryRelease({...scope, releaseRef: prepared.releaseRef});
|
|
61
114
|
```
|
|
62
115
|
|
|
63
|
-
`sourceDefinitionHash`, `inputsHash`, and `prodTaskGraphHash` are separate. Inputs exclude release definitions, refs, progress and published files. The final bundle binds all three plus its own hash. Classification examines the complete task universe before selecting the desired ref, so wrong-bound,
|
|
116
|
+
`sourceDefinitionHash`, `inputsHash`, and `prodTaskGraphHash` are separate. Inputs exclude release definitions, refs, progress and published files. The final bundle binds all three plus its own hash. Classification examines the complete task universe before selecting the desired ref, so wrong-bound, split bindings or missing capability/dependency coverage cannot hide behind ref filtering. Independently complete other releases remain separate.
|
|
64
117
|
|
|
65
118
|
Finalization rereads current source/input/evidence files and task eligibility after asynchronous work, writes the immutable bundle, verifies everything again, then fsyncs the authoritative `release.json` marker last. An interrupted attempt has no ready marker and can retry finalization from its existing candidate. Inspection performs no writes or business recomputation: absent marker returns `{status:'pending'}`; malformed, incomplete or changed ready content throws. A successful result is `{status:'release_ready', release, bundleHash}`. This denotes developer qualification only; R2 provides no production broadcast or host approval capability.
|
|
119
|
+
|
|
120
|
+
## Agent-planned production tasks
|
|
121
|
+
|
|
122
|
+
New tasks use explicit `scope.deployment.purpose` (`analysis`, `dev-execution`,
|
|
123
|
+
`prod-qualification`, `prod-execution`) and `allowedActions`. A step name is a
|
|
124
|
+
planning label. Each selected production target has one qualification task and
|
|
125
|
+
an ordered production dependency chain; it may be one task covering simulate,
|
|
126
|
+
execute/export and verify. All target tasks bind the same frozen release. Split
|
|
127
|
+
tasks explicitly depend on preceding work and the target qualification.
|
|
128
|
+
|
|
129
|
+
Finalization checks complete action coverage and actual prerequisite evidence,
|
|
130
|
+
not a fixed three-node shape. A merged task that includes verify remains open
|
|
131
|
+
through preparation, transaction finality and export; only accepted business
|
|
132
|
+
verification completes it. GateFlow owns dispatch and authorization; these APIs
|
|
133
|
+
never schedule business tasks or grant signing capabilities.
|
|
134
|
+
|
|
135
|
+
Node/npm only need to be compatible with the project tools; an exact host version is not a release prerequisite. Node/OS/architecture/ABI labels remain in evidence, while execution fingerprints bind actual dependency payloads, module resolution, project TypeScript emission, compiler inputs and artifacts. Production re-simulation also checks released calldata and ABI intent before producing an executable plan. The existing reviewed compiler backend restrictions still apply.
|
package/docs/delivery-safe.md
CHANGED
|
@@ -30,10 +30,13 @@ transaction IDs, EIP-712 hash, explicit finality and zero-refund policy. It neve
|
|
|
30
30
|
allocates a future segment's nonce. Existing published bindings are immutable;
|
|
31
31
|
consumed nonces require reconciliation of the original hash, not rebasing.
|
|
32
32
|
|
|
33
|
-
Pure renderers perform zero provider, signer or broadcast calls.
|
|
34
|
-
|
|
35
|
-
collection.
|
|
36
|
-
|
|
33
|
+
Pure renderers perform zero provider, signer or broadcast calls. The internal model
|
|
34
|
+
retains the full plan and frozen Safe payload, with signatures left for external
|
|
35
|
+
collection. Production delivery publishes one business CALL array JSON, including
|
|
36
|
+
the readable ABI and reviewed nested intent. The low-level Safe envelope renderer
|
|
37
|
+
still exposes its internal envelope model separately. An unprepared current Safe
|
|
38
|
+
segment reports `preparation-required` and still exports the complete CALL array.
|
|
39
|
+
Later segments await preparation when
|
|
37
40
|
executable. The existing host export boundary separately revalidates completed
|
|
38
41
|
progress using readonly RPC; this is distinct from pure rendering.
|
|
39
42
|
|