gate-evm-tools 1.0.31 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (338) hide show
  1. package/README.md +34 -20
  2. package/bin/cli.js +3 -0
  3. package/bin/delivery.cjs +8 -7
  4. package/dist/commands/check.d.ts.map +1 -1
  5. package/dist/commands/check.js +26 -2
  6. package/dist/commands/check.js.map +1 -1
  7. package/dist/commands/plan/index.d.ts.map +1 -1
  8. package/dist/commands/plan/index.js +1 -1
  9. package/dist/commands/plan/index.js.map +1 -1
  10. package/dist/core/preparation/batch.d.ts +26 -0
  11. package/dist/core/preparation/batch.d.ts.map +1 -0
  12. package/dist/core/preparation/batch.js +72 -0
  13. package/dist/core/preparation/batch.js.map +1 -0
  14. package/dist/core/preparation/evm.d.ts +23 -4
  15. package/dist/core/preparation/evm.d.ts.map +1 -1
  16. package/dist/core/preparation/evm.js +19 -3
  17. package/dist/core/preparation/evm.js.map +1 -1
  18. package/dist/core/preparation/evmManifestSync.d.ts +5 -0
  19. package/dist/core/preparation/evmManifestSync.d.ts.map +1 -1
  20. package/dist/core/preparation/evmManifestSync.js +15 -7
  21. package/dist/core/preparation/evmManifestSync.js.map +1 -1
  22. package/dist/core/preparation/index.d.ts +2 -2
  23. package/dist/core/preparation/index.d.ts.map +1 -1
  24. package/dist/core/preparation/manifest.d.ts +2 -0
  25. package/dist/core/preparation/manifest.d.ts.map +1 -1
  26. package/dist/core/preparation/manifest.js +2 -2
  27. package/dist/core/preparation/manifest.js.map +1 -1
  28. package/dist/core/preparation/normalize.d.ts.map +1 -1
  29. package/dist/core/preparation/normalize.js +53 -11
  30. package/dist/core/preparation/normalize.js.map +1 -1
  31. package/dist/core/preparation/transparent.d.ts +23 -0
  32. package/dist/core/preparation/transparent.d.ts.map +1 -0
  33. package/dist/core/preparation/transparent.js +103 -0
  34. package/dist/core/preparation/transparent.js.map +1 -0
  35. package/dist/core/preparation/types.d.ts +47 -5
  36. package/dist/core/preparation/types.d.ts.map +1 -1
  37. package/dist/core/preparation/zksync.d.ts.map +1 -1
  38. package/dist/core/preparation/zksync.js +2 -0
  39. package/dist/core/preparation/zksync.js.map +1 -1
  40. package/dist/custody/credential.d.ts.map +1 -1
  41. package/dist/custody/credential.js +1 -6
  42. package/dist/custody/credential.js.map +1 -1
  43. package/dist/deployment-evm/index.d.ts +4 -0
  44. package/dist/deployment-evm/index.d.ts.map +1 -0
  45. package/dist/deployment-evm/index.js +3 -0
  46. package/dist/deployment-evm/index.js.map +1 -0
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +4 -0
  49. package/dist/index.js.map +1 -1
  50. package/dist/sync/index.d.ts.map +1 -1
  51. package/dist/sync/index.js +5 -0
  52. package/dist/sync/index.js.map +1 -1
  53. package/dist/types.d.ts +3 -0
  54. package/dist/types.d.ts.map +1 -1
  55. package/dist/workflow/index.d.ts +4 -1
  56. package/dist/workflow/index.d.ts.map +1 -1
  57. package/dist/workflow/index.js +2 -0
  58. package/dist/workflow/index.js.map +1 -1
  59. package/dist-cjs/core/preparation/batch.js +76 -0
  60. package/dist-cjs/core/preparation/batch.js.map +1 -0
  61. package/dist-cjs/core/preparation/evm.js +25 -7
  62. package/dist-cjs/core/preparation/evm.js.map +1 -1
  63. package/dist-cjs/core/preparation/evmManifestSync.js +15 -7
  64. package/dist-cjs/core/preparation/evmManifestSync.js.map +1 -1
  65. package/dist-cjs/core/preparation/manifest.js +2 -2
  66. package/dist-cjs/core/preparation/manifest.js.map +1 -1
  67. package/dist-cjs/core/preparation/normalize.js +53 -11
  68. package/dist-cjs/core/preparation/normalize.js.map +1 -1
  69. package/dist-cjs/core/preparation/transparent.js +110 -0
  70. package/dist-cjs/core/preparation/transparent.js.map +1 -0
  71. package/dist-cjs/core/preparation/zksync.js +2 -0
  72. package/dist-cjs/core/preparation/zksync.js.map +1 -1
  73. package/dist-cjs/custody/credential.js +1 -6
  74. package/dist-cjs/custody/credential.js.map +1 -1
  75. package/dist-cjs/deployment-evm/index.js +10 -0
  76. package/dist-cjs/deployment-evm/index.js.map +1 -0
  77. package/dist-cjs/sync/index.js +5 -0
  78. package/dist-cjs/sync/index.js.map +1 -1
  79. package/dist-cjs/workflow/index.js +11 -1
  80. package/dist-cjs/workflow/index.js.map +1 -1
  81. package/dist-runtime/config/hardhatAdapters.js +2 -1
  82. package/dist-runtime/config/hardhatAdapters.js.map +1 -1
  83. package/dist-runtime/delivery/aggregate-bootstrap.js +3 -1
  84. package/dist-runtime/delivery/aggregate-bootstrap.js.map +1 -1
  85. package/dist-runtime/delivery/aggregate-channel.js +7 -3
  86. package/dist-runtime/delivery/aggregate-channel.js.map +1 -1
  87. package/dist-runtime/delivery/aggregate-diagnostics.d.ts +14 -0
  88. package/dist-runtime/delivery/aggregate-diagnostics.js +73 -0
  89. package/dist-runtime/delivery/aggregate-diagnostics.js.map +1 -0
  90. package/dist-runtime/delivery/aggregate-inputs.d.ts +13 -9
  91. package/dist-runtime/delivery/aggregate-source.js +11 -3
  92. package/dist-runtime/delivery/aggregate-source.js.map +1 -1
  93. package/dist-runtime/delivery/aggregate-worker.js +12 -4
  94. package/dist-runtime/delivery/aggregate-worker.js.map +1 -1
  95. package/dist-runtime/delivery/aggregate.js +2 -2
  96. package/dist-runtime/delivery/aggregate.js.map +1 -1
  97. package/dist-runtime/delivery/business-extension.d.ts +10 -0
  98. package/dist-runtime/delivery/business-extension.js +38 -0
  99. package/dist-runtime/delivery/business-extension.js.map +1 -0
  100. package/dist-runtime/delivery/calldata-archive.d.ts +18 -0
  101. package/dist-runtime/delivery/calldata-archive.js +31 -0
  102. package/dist-runtime/delivery/calldata-archive.js.map +1 -0
  103. package/dist-runtime/delivery/calldata-details.d.ts +47 -0
  104. package/dist-runtime/delivery/calldata-details.js +94 -0
  105. package/dist-runtime/delivery/calldata-details.js.map +1 -0
  106. package/dist-runtime/delivery/calldata-format.d.ts +4 -0
  107. package/dist-runtime/delivery/calldata-format.js +17 -0
  108. package/dist-runtime/delivery/calldata-format.js.map +1 -0
  109. package/dist-runtime/delivery/calldata-preparations.d.ts +13 -0
  110. package/dist-runtime/delivery/calldata-preparations.js +85 -0
  111. package/dist-runtime/delivery/calldata-preparations.js.map +1 -0
  112. package/dist-runtime/delivery/calldata-review.d.ts +44 -0
  113. package/dist-runtime/delivery/calldata-review.js +131 -0
  114. package/dist-runtime/delivery/calldata-review.js.map +1 -0
  115. package/dist-runtime/delivery/codec-pin.d.ts +2 -2
  116. package/dist-runtime/delivery/codec-pin.js +4 -4
  117. package/dist-runtime/delivery/codec-pin.js.map +1 -1
  118. package/dist-runtime/delivery/compiler-files.js +3 -1
  119. package/dist-runtime/delivery/compiler-files.js.map +1 -1
  120. package/dist-runtime/delivery/compiler-pins.js +1 -1
  121. package/dist-runtime/delivery/compiler.js +17 -16
  122. package/dist-runtime/delivery/compiler.js.map +1 -1
  123. package/dist-runtime/delivery/config.d.ts +1 -1
  124. package/dist-runtime/delivery/config.js +27 -2
  125. package/dist-runtime/delivery/config.js.map +1 -1
  126. package/dist-runtime/delivery/configuration-definition.d.ts +9 -0
  127. package/dist-runtime/delivery/configuration-definition.js +33 -6
  128. package/dist-runtime/delivery/configuration-definition.js.map +1 -1
  129. package/dist-runtime/delivery/configuration.js +7 -4
  130. package/dist-runtime/delivery/configuration.js.map +1 -1
  131. package/dist-runtime/delivery/contract-source.d.ts +14 -0
  132. package/dist-runtime/delivery/contract-source.js +138 -0
  133. package/dist-runtime/delivery/contract-source.js.map +1 -0
  134. package/dist-runtime/delivery/custom-format.js +51 -24
  135. package/dist-runtime/delivery/custom-format.js.map +1 -1
  136. package/dist-runtime/delivery/development.d.ts +2 -1
  137. package/dist-runtime/delivery/development.js +21 -10
  138. package/dist-runtime/delivery/development.js.map +1 -1
  139. package/dist-runtime/delivery/eoa.d.ts +1 -0
  140. package/dist-runtime/delivery/execution-identity.d.ts +15 -0
  141. package/dist-runtime/delivery/execution-identity.js +33 -0
  142. package/dist-runtime/delivery/execution-identity.js.map +1 -0
  143. package/dist-runtime/delivery/existing-code.js +14 -6
  144. package/dist-runtime/delivery/existing-code.js.map +1 -1
  145. package/dist-runtime/delivery/history-registration.d.ts +1 -1
  146. package/dist-runtime/delivery/inputs.js +22 -15
  147. package/dist-runtime/delivery/inputs.js.map +1 -1
  148. package/dist-runtime/delivery/journal.js +18 -10
  149. package/dist-runtime/delivery/journal.js.map +1 -1
  150. package/dist-runtime/delivery/parameter-defaults.d.ts +10 -0
  151. package/dist-runtime/delivery/parameter-defaults.js +86 -0
  152. package/dist-runtime/delivery/parameter-defaults.js.map +1 -0
  153. package/dist-runtime/delivery/parameters.d.ts +2 -0
  154. package/dist-runtime/delivery/parameters.js +22 -0
  155. package/dist-runtime/delivery/parameters.js.map +1 -1
  156. package/dist-runtime/delivery/planning.d.ts +4 -1
  157. package/dist-runtime/delivery/planning.js +19 -3
  158. package/dist-runtime/delivery/planning.js.map +1 -1
  159. package/dist-runtime/delivery/preparation.js +43 -23
  160. package/dist-runtime/delivery/preparation.js.map +1 -1
  161. package/dist-runtime/delivery/production-environment.js +2 -1
  162. package/dist-runtime/delivery/production-environment.js.map +1 -1
  163. package/dist-runtime/delivery/production-finalization.js +23 -9
  164. package/dist-runtime/delivery/production-finalization.js.map +1 -1
  165. package/dist-runtime/delivery/production-intent.d.ts +2 -0
  166. package/dist-runtime/delivery/production-intent.js +16 -0
  167. package/dist-runtime/delivery/production-intent.js.map +1 -0
  168. package/dist-runtime/delivery/production.d.ts +129 -8
  169. package/dist-runtime/delivery/production.js +60 -11
  170. package/dist-runtime/delivery/production.js.map +1 -1
  171. package/dist-runtime/delivery/project-files.d.ts +3 -3
  172. package/dist-runtime/delivery/project-files.js +19 -14
  173. package/dist-runtime/delivery/project-files.js.map +1 -1
  174. package/dist-runtime/delivery/project-rpc.d.ts +19 -0
  175. package/dist-runtime/delivery/project-rpc.js +138 -0
  176. package/dist-runtime/delivery/project-rpc.js.map +1 -0
  177. package/dist-runtime/delivery/project.d.ts +3 -1
  178. package/dist-runtime/delivery/project.js +21 -8
  179. package/dist-runtime/delivery/project.js.map +1 -1
  180. package/dist-runtime/delivery/public-calldata.d.ts +25 -0
  181. package/dist-runtime/delivery/public-calldata.js +97 -0
  182. package/dist-runtime/delivery/public-calldata.js.map +1 -0
  183. package/dist-runtime/delivery/release-graph.d.ts +7 -3
  184. package/dist-runtime/delivery/release-graph.js +58 -25
  185. package/dist-runtime/delivery/release-graph.js.map +1 -1
  186. package/dist-runtime/delivery/release-history.d.ts +1 -1
  187. package/dist-runtime/delivery/release-history.js +86 -10
  188. package/dist-runtime/delivery/release-history.js.map +1 -1
  189. package/dist-runtime/delivery/release-inputs.d.ts +33 -0
  190. package/dist-runtime/delivery/release-inputs.js +129 -0
  191. package/dist-runtime/delivery/release-inputs.js.map +1 -0
  192. package/dist-runtime/delivery/release.d.ts +38 -14
  193. package/dist-runtime/delivery/release.js +81 -29
  194. package/dist-runtime/delivery/release.js.map +1 -1
  195. package/dist-runtime/delivery/safe.d.ts +1 -0
  196. package/dist-runtime/delivery/safe.js +13 -2
  197. package/dist-runtime/delivery/safe.js.map +1 -1
  198. package/dist-runtime/delivery/same-fork-baseline.d.ts +1 -1
  199. package/dist-runtime/delivery/same-fork-baseline.js +5 -4
  200. package/dist-runtime/delivery/same-fork-baseline.js.map +1 -1
  201. package/dist-runtime/delivery/setup.d.ts +1 -1
  202. package/dist-runtime/delivery/setup.js +21 -6
  203. package/dist-runtime/delivery/setup.js.map +1 -1
  204. package/dist-runtime/delivery/source.d.ts +1 -0
  205. package/dist-runtime/delivery/source.js +12 -10
  206. package/dist-runtime/delivery/source.js.map +1 -1
  207. package/dist-runtime/delivery/task-identity.d.ts +23 -0
  208. package/dist-runtime/delivery/task-identity.js +109 -0
  209. package/dist-runtime/delivery/task-identity.js.map +1 -0
  210. package/dist-runtime/delivery/toolchain.d.ts +3 -0
  211. package/dist-runtime/delivery/toolchain.js +52 -0
  212. package/dist-runtime/delivery/toolchain.js.map +1 -0
  213. package/dist-runtime/delivery/validation.js +7 -2
  214. package/dist-runtime/delivery/validation.js.map +1 -1
  215. package/dist-runtime/runtime-identity.json +2 -2
  216. package/dist-runtime/vendor/plan-codec/index.cjs +97 -20
  217. package/dist-runtime/vendor/plan-codec/index.d.cts +6 -0
  218. package/dist-runtime/vendor/plan-codec/provenance.json +9 -8
  219. package/dist-runtime/workflow/lib/calls.js +1 -0
  220. package/dist-runtime/workflow/lib/calls.js.map +1 -1
  221. package/dist-runtime/workflow/lib/checkCodeRunner.js +7 -4
  222. package/dist-runtime/workflow/lib/checkCodeRunner.js.map +1 -1
  223. package/dist-runtime/workflow/lib/context.d.ts +1 -0
  224. package/dist-runtime/workflow/lib/create2.d.ts +4 -26
  225. package/dist-runtime/workflow/lib/create2.js +2 -67
  226. package/dist-runtime/workflow/lib/create2.js.map +1 -1
  227. package/dist-runtime/workflow/lib/deploymentInfo.d.ts +2 -0
  228. package/dist-runtime/workflow/lib/deploymentInfo.js +6 -0
  229. package/dist-runtime/workflow/lib/deploymentInfo.js.map +1 -1
  230. package/dist-runtime/workflow/lib/deploymentRecords.d.ts +2 -0
  231. package/dist-runtime/workflow/lib/deploymentRecords.js +1 -1
  232. package/dist-runtime/workflow/lib/deploymentRecords.js.map +1 -1
  233. package/dist-runtime/workflow/lib/externalExecutionScanner.js +2 -1
  234. package/dist-runtime/workflow/lib/externalExecutionScanner.js.map +1 -1
  235. package/dist-runtime/workflow/lib/gateTool.js +2 -2
  236. package/dist-runtime/workflow/lib/gateTool.js.map +1 -1
  237. package/dist-runtime/workflow/lib/gateToolSync.d.ts +3 -0
  238. package/dist-runtime/workflow/lib/gateToolSync.js +5 -0
  239. package/dist-runtime/workflow/lib/gateToolSync.js.map +1 -1
  240. package/dist-runtime/workflow/lib/parameters.js +5 -0
  241. package/dist-runtime/workflow/lib/parameters.js.map +1 -1
  242. package/dist-runtime/workflow/lib/proxy.d.ts +1 -0
  243. package/dist-runtime/workflow/lib/proxy.js.map +1 -1
  244. package/dist-runtime/workflow/run.js +1 -3
  245. package/dist-runtime/workflow/run.js.map +1 -1
  246. package/dist-runtime/workflow/steps/deploy.js +53 -0
  247. package/dist-runtime/workflow/steps/deploy.js.map +1 -1
  248. package/dist-runtime/workflow/steps/upgrade.js +24 -10
  249. package/dist-runtime/workflow/steps/upgrade.js.map +1 -1
  250. package/docs/compiler-qualification.md +8 -2
  251. package/docs/delivery-aggregate.md +2 -0
  252. package/docs/delivery-calldata.md +27 -0
  253. package/docs/delivery-development.md +6 -0
  254. package/docs/delivery-execution-store.md +1 -1
  255. package/docs/delivery-inputs.md +55 -6
  256. package/docs/delivery-parameters.md +1 -1
  257. package/docs/delivery-release.md +60 -6
  258. package/docs/delivery-safe.md +7 -4
  259. package/docs/delivery-setup.md +72 -20
  260. package/docs/delivery-source.md +8 -8
  261. package/docs/direct-package-acceptance.md +2 -0
  262. package/docs/openzeppelin-acceptance.md +86 -0
  263. package/docs/openzeppelin-baseline.json +27 -0
  264. package/docs/openzeppelin-integration.md +115 -0
  265. package/docs/plans/2026-10-28-openzeppelin-toolkit-consolidation.md +396 -0
  266. package/docs/plans/2026-11-02-transparent-proxy-delivery.md +78 -0
  267. package/docs/superpowers/plans/2026-08-17-custody-hardhat-signers.md +1 -1
  268. package/docs/workflow-reference.md +12 -4
  269. package/docs/workflow-runtime.md +6 -0
  270. package/package.json +19 -5
  271. package/runtime/config/hardhatAdapters.ts +2 -1
  272. package/runtime/delivery/aggregate-bootstrap.ts +3 -1
  273. package/runtime/delivery/aggregate-channel.ts +6 -3
  274. package/runtime/delivery/aggregate-diagnostics.ts +63 -0
  275. package/runtime/delivery/aggregate-source.ts +6 -2
  276. package/runtime/delivery/aggregate-worker.ts +15 -5
  277. package/runtime/delivery/aggregate.ts +2 -2
  278. package/runtime/delivery/business-extension.ts +33 -0
  279. package/runtime/delivery/calldata-archive.ts +25 -0
  280. package/runtime/delivery/calldata-details.ts +90 -0
  281. package/runtime/delivery/calldata-format.ts +14 -0
  282. package/runtime/delivery/calldata-preparations.ts +76 -0
  283. package/runtime/delivery/calldata-review.ts +126 -0
  284. package/runtime/delivery/codec-pin.ts +3 -3
  285. package/runtime/delivery/compiler-files.ts +3 -1
  286. package/runtime/delivery/compiler-pins.ts +1 -1
  287. package/runtime/delivery/compiler.ts +18 -17
  288. package/runtime/delivery/config.ts +25 -2
  289. package/runtime/delivery/configuration-definition.ts +34 -7
  290. package/runtime/delivery/configuration.ts +8 -5
  291. package/runtime/delivery/contract-source.ts +112 -0
  292. package/runtime/delivery/custom-format.ts +20 -5
  293. package/runtime/delivery/development.ts +13 -11
  294. package/runtime/delivery/execution-identity.ts +32 -0
  295. package/runtime/delivery/existing-code.ts +7 -6
  296. package/runtime/delivery/inputs.ts +18 -11
  297. package/runtime/delivery/journal.ts +14 -10
  298. package/runtime/delivery/parameter-defaults.ts +75 -0
  299. package/runtime/delivery/parameters.ts +18 -0
  300. package/runtime/delivery/planning.ts +19 -5
  301. package/runtime/delivery/preparation.ts +17 -1
  302. package/runtime/delivery/production-environment.ts +2 -1
  303. package/runtime/delivery/production-finalization.ts +19 -10
  304. package/runtime/delivery/production-intent.ts +14 -0
  305. package/runtime/delivery/production.ts +51 -11
  306. package/runtime/delivery/project-files.ts +16 -11
  307. package/runtime/delivery/project-rpc.ts +116 -0
  308. package/runtime/delivery/project.ts +19 -7
  309. package/runtime/delivery/public-calldata.ts +74 -0
  310. package/runtime/delivery/release-graph.ts +44 -14
  311. package/runtime/delivery/release-history.ts +66 -8
  312. package/runtime/delivery/release-inputs.ts +107 -0
  313. package/runtime/delivery/release.ts +56 -18
  314. package/runtime/delivery/safe.ts +14 -3
  315. package/runtime/delivery/same-fork-baseline.ts +5 -4
  316. package/runtime/delivery/setup.ts +20 -8
  317. package/runtime/delivery/source.ts +10 -10
  318. package/runtime/delivery/task-identity.ts +85 -0
  319. package/runtime/delivery/toolchain.ts +48 -0
  320. package/runtime/delivery/validation.ts +7 -2
  321. package/runtime/vendor/plan-codec/index.cjs +97 -20
  322. package/runtime/vendor/plan-codec/index.d.cts +6 -0
  323. package/runtime/vendor/plan-codec/provenance.json +9 -8
  324. package/runtime/workflow/lib/calls.ts +1 -0
  325. package/runtime/workflow/lib/checkCodeRunner.ts +7 -3
  326. package/runtime/workflow/lib/context.ts +1 -0
  327. package/runtime/workflow/lib/create2.ts +7 -108
  328. package/runtime/workflow/lib/deploymentInfo.ts +8 -0
  329. package/runtime/workflow/lib/deploymentRecords.ts +3 -1
  330. package/runtime/workflow/lib/externalExecutionScanner.ts +2 -1
  331. package/runtime/workflow/lib/gateTool.ts +2 -2
  332. package/runtime/workflow/lib/gateToolSync.ts +8 -0
  333. package/runtime/workflow/lib/parameters.ts +4 -0
  334. package/runtime/workflow/lib/proxy.ts +1 -0
  335. package/runtime/workflow/run.ts +1 -2
  336. package/runtime/workflow/steps/deploy.ts +42 -0
  337. package/runtime/workflow/steps/upgrade.ts +19 -11
  338. 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
- if ((proxy.proxy.kind || "uups") !== "uups") {
135
- throw new Error(`Upgrade step ${step.id} only supports UUPS proxies`);
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` exports the existing immutable `DeliveryPlan` without running business code, preparation, execution, HRE, a signer or a provider. `renderDeliveryExport(plan)` is synchronous and has no filesystem or chain effects. JSON and Markdown contain the same complete canonical model, including all transactions, references and total-order dependencies, plus a separate current contiguous route/executor segment. Success means artifact delivery, not deployment or release readiness.
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
 
@@ -1,6 +1,6 @@
1
1
  # Owned delivery business inputs
2
2
 
3
- `gate-evm-tools/delivery-inputs` reads an actual core-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.
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>: <complete values>}}` |
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; there is no implicit global merge or `run.targets` override. A manual observation's `source` is only a source label, never proof of human approval.
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. Resolution validates 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.
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
 
@@ -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 core 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 `deploy-test` task in the same canonical handoff.
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
 
@@ -18,11 +42,13 @@ Capture reads the actual installed package and refuses any payload that differs
18
42
 
19
43
  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
44
 
45
+ 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.
46
+
21
47
  ## Complete prerequisites and production inputs
22
48
 
23
- Finish all selected production parameter leaves and provenance through the existing strict parameter resolver. Record concrete public executors, operation order, permissions, checks, adaptations, and recovery instructions in the canonical manifest and parameters. `docs/prod-execution-plan.md` explains these canonical inputs, references `manifest.yaml` and `parameters.yaml`, and includes a `recovery` section. It is not another executable business plan.
49
+ 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
50
 
25
- Development and enabled audit dependencies must appear in each qualification's upstream closure. Each current prerequisite must be completed/successful with `adoptedRev === rev`. `deploy` references its actual acceptance file; `check-code` references the actual raw CheckCode file. Other prerequisite skills first produce their actual reports and complete the task with `result.codeRef` and `result.evidence` file refs, then invoke:
51
+ 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
52
 
27
53
  ```js
28
54
  release.recordDeliveryPrerequisite({
@@ -31,7 +57,7 @@ release.recordDeliveryPrerequisite({
31
57
  });
32
58
  ```
33
59
 
34
- The tool binds the current canonical task/revision/definition, code reference, and every declared report's actual bytes. Audit tasks require `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.
60
+ 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
61
 
36
62
  ## Two-phase release
37
63
 
@@ -53,13 +79,41 @@ const prepared = await release.prepareDeliveryRelease({
53
79
 
54
80
  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
81
 
56
- The developer mainAgent now uses the canonical Plan commands to create **all** `release-prepare → release-execute → release-verify` tasks for **each** selected target in the same handoff. Each has exact `environment: prod`, target, current revision, scope, and `prepared.releaseRef`. `release-prepare` depends on its target's qualification task; the next two stages depend on the preceding stage. Allowed actions are respectively `['simulate']`, `['execute','export-calldata','reconcile']`, and `['verify']`. Qualification tasks have `['simulate','verify']` and no releaseRef. The deployment agent implements and qualifies; mainAgent plans and dispatches. Admin later selects these existing tasks.
82
+ The developer mainAgent uses canonical Plan commands to create production tasks
83
+ for each selected target in the same handoff. Each task declares
84
+ `purpose: prod-execution`, prod environment, target, revision and the preliminary
85
+ releaseRef. One task can cover all capabilities; split tasks form an explicit
86
+ dependency chain. Each target's graph covers simulate, execute or export-calldata,
87
+ and verify, and depends on its qualification task. Qualification has
88
+ `purpose: prod-qualification`, actions simulate/verify and no releaseRef.
89
+ The deployment Agent implements and qualifies; mainAgent plans and dispatches.
90
+ Split execute/export tasks also allow reconcile or verify so they can observe
91
+ completion after external execution; simulation or calldata delivery alone cannot
92
+ complete those tasks. A merged task including verify completes only on acceptance.
93
+ The production operator later selects these existing tasks.
57
94
 
58
95
  ```js
59
96
  const ready = await release.finalizeDeliveryRelease({...scope, releaseId: 'vault-2026-10'});
60
97
  const inspected = release.inspectDeliveryRelease({...scope, releaseRef: prepared.releaseRef});
61
98
  ```
62
99
 
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, duplicate, split or missing stages cannot hide behind ref filtering. Independently complete other releases remain separate.
100
+ `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
101
 
65
102
  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.
103
+
104
+ ## Agent-planned production tasks
105
+
106
+ New tasks use explicit `scope.deployment.purpose` (`analysis`, `dev-execution`,
107
+ `prod-qualification`, `prod-execution`) and `allowedActions`. A step name is a
108
+ planning label. Each selected production target has one qualification task and
109
+ an ordered production dependency chain; it may be one task covering simulate,
110
+ execute/export and verify. All target tasks bind the same frozen release. Split
111
+ tasks explicitly depend on preceding work and the target qualification.
112
+
113
+ Finalization checks complete action coverage and actual prerequisite evidence,
114
+ not a fixed three-node shape. A merged task that includes verify remains open
115
+ through preparation, transaction finality and export; only accepted business
116
+ verification completes it. GateFlow owns dispatch and authorization; these APIs
117
+ never schedule business tasks or grant signing capabilities.
118
+
119
+ 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.
@@ -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. JSON and Markdown
34
- contain the full plan and frozen Safe payload, with signatures left for external
35
- collection. An unprepared current Safe segment reports `preparation-required` and
36
- still exports the complete ordinary plan. Later segments await preparation when
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