gate-evm-tools 1.0.28 → 1.0.31

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 (618) hide show
  1. package/README.md +16 -1
  2. package/bin/cli.js +3 -0
  3. package/bin/delivery.cjs +51 -0
  4. package/bin/manifest-bootstrap.js +4 -15
  5. package/bin/workflow.cjs +1 -1
  6. package/dist/commands/plan/file-store.d.ts.map +1 -0
  7. package/dist/commands/plan/generate-deployment.d.ts +48 -0
  8. package/dist/commands/plan/generate-deployment.d.ts.map +1 -0
  9. package/dist/commands/plan/generate-deployment.js +211 -0
  10. package/dist/commands/plan/generate-deployment.js.map +1 -0
  11. package/dist/commands/plan/helpers.d.ts.map +1 -0
  12. package/dist/commands/plan/index.d.ts +3 -0
  13. package/dist/commands/plan/index.d.ts.map +1 -0
  14. package/dist/commands/plan/index.js +88 -0
  15. package/dist/commands/plan/index.js.map +1 -0
  16. package/dist/commands/sync.js +1 -1
  17. package/dist/commands/sync.js.map +1 -1
  18. package/dist/core/BytecodeChecker.d.ts.map +1 -1
  19. package/dist/core/BytecodeChecker.js +27 -8
  20. package/dist/core/BytecodeChecker.js.map +1 -1
  21. package/dist/core/preparation/artifacts.d.ts +2 -0
  22. package/dist/core/preparation/artifacts.d.ts.map +1 -1
  23. package/dist/core/preparation/artifacts.js +9 -3
  24. package/dist/core/preparation/artifacts.js.map +1 -1
  25. package/dist/core/preparation/evm.d.ts +38 -2
  26. package/dist/core/preparation/evm.d.ts.map +1 -1
  27. package/dist/core/preparation/evm.js +104 -32
  28. package/dist/core/preparation/evm.js.map +1 -1
  29. package/dist/core/preparation/evmManifestSync.d.ts +63 -0
  30. package/dist/core/preparation/evmManifestSync.d.ts.map +1 -0
  31. package/dist/core/preparation/evmManifestSync.js +146 -0
  32. package/dist/core/preparation/evmManifestSync.js.map +1 -0
  33. package/dist/core/preparation/index.d.ts +40 -2
  34. package/dist/core/preparation/index.d.ts.map +1 -1
  35. package/dist/core/preparation/index.js +3 -3
  36. package/dist/core/preparation/index.js.map +1 -1
  37. package/dist/core/preparation/manifest.d.ts +15 -3
  38. package/dist/core/preparation/manifest.d.ts.map +1 -1
  39. package/dist/core/preparation/manifest.js +21 -26
  40. package/dist/core/preparation/manifest.js.map +1 -1
  41. package/dist/core/preparation/normalize.d.ts.map +1 -1
  42. package/dist/core/preparation/normalize.js +14 -9
  43. package/dist/core/preparation/normalize.js.map +1 -1
  44. package/dist/core/preparation/types.d.ts +7 -2
  45. package/dist/core/preparation/types.d.ts.map +1 -1
  46. package/dist/custody/hardhat-runtime.d.ts.map +1 -1
  47. package/dist/custody/hardhat-runtime.js +2 -0
  48. package/dist/custody/hardhat-runtime.js.map +1 -1
  49. package/dist/custody/hardhat.d.ts +1 -0
  50. package/dist/custody/hardhat.d.ts.map +1 -1
  51. package/dist/custody/hardhat.js +1 -0
  52. package/dist/custody/hardhat.js.map +1 -1
  53. package/dist/custody/index.d.ts +1 -0
  54. package/dist/custody/index.d.ts.map +1 -1
  55. package/dist/custody/index.js +1 -0
  56. package/dist/custody/index.js.map +1 -1
  57. package/dist/custody/provider-wait.d.ts +13 -0
  58. package/dist/custody/provider-wait.d.ts.map +1 -0
  59. package/dist/custody/provider-wait.js +78 -0
  60. package/dist/custody/provider-wait.js.map +1 -0
  61. package/dist/delivery/policy.d.ts +6 -0
  62. package/dist/delivery/policy.d.ts.map +1 -0
  63. package/dist/delivery/policy.js +24 -0
  64. package/dist/delivery/policy.js.map +1 -0
  65. package/dist/index.d.ts.map +1 -1
  66. package/dist/index.js +5 -0
  67. package/dist/index.js.map +1 -1
  68. package/dist/sync/index.d.ts +15 -0
  69. package/dist/sync/index.d.ts.map +1 -1
  70. package/dist/sync/index.js +8 -0
  71. package/dist/sync/index.js.map +1 -1
  72. package/dist/workflow/index.d.ts +6 -1
  73. package/dist/workflow/index.d.ts.map +1 -1
  74. package/dist/workflow/index.js +4 -0
  75. package/dist/workflow/index.js.map +1 -1
  76. package/dist-cjs/core/BytecodeChecker.js +526 -0
  77. package/dist-cjs/core/BytecodeChecker.js.map +1 -0
  78. package/dist-cjs/core/legacyProxyArtifact.js +42 -0
  79. package/dist-cjs/core/legacyProxyArtifact.js.map +1 -0
  80. package/dist-cjs/core/preparation/artifacts.js +11 -4
  81. package/dist-cjs/core/preparation/artifacts.js.map +1 -1
  82. package/dist-cjs/core/preparation/evm.js +105 -32
  83. package/dist-cjs/core/preparation/evm.js.map +1 -1
  84. package/dist-cjs/core/preparation/evmManifestSync.js +155 -0
  85. package/dist-cjs/core/preparation/evmManifestSync.js.map +1 -0
  86. package/dist-cjs/core/preparation/index.js +3 -3
  87. package/dist-cjs/core/preparation/index.js.map +1 -1
  88. package/dist-cjs/core/preparation/manifest.js +23 -28
  89. package/dist-cjs/core/preparation/manifest.js.map +1 -1
  90. package/dist-cjs/core/preparation/normalize.js +14 -9
  91. package/dist-cjs/core/preparation/normalize.js.map +1 -1
  92. package/dist-cjs/custody/hardhat-runtime.js +2 -0
  93. package/dist-cjs/custody/hardhat-runtime.js.map +1 -1
  94. package/dist-cjs/custody/hardhat.js +3 -1
  95. package/dist-cjs/custody/hardhat.js.map +1 -1
  96. package/dist-cjs/custody/index.js +3 -1
  97. package/dist-cjs/custody/index.js.map +1 -1
  98. package/dist-cjs/custody/provider-wait.js +81 -0
  99. package/dist-cjs/custody/provider-wait.js.map +1 -0
  100. package/dist-cjs/delivery/policy.js +29 -0
  101. package/dist-cjs/delivery/policy.js.map +1 -0
  102. package/dist-cjs/sync/index.js +8 -0
  103. package/dist-cjs/sync/index.js.map +1 -1
  104. package/dist-cjs/workflow/index.js +12 -1
  105. package/dist-cjs/workflow/index.js.map +1 -1
  106. package/dist-runtime/config/openzeppelin.d.ts +2 -1
  107. package/dist-runtime/config/openzeppelin.js +2 -19
  108. package/dist-runtime/config/openzeppelin.js.map +1 -1
  109. package/dist-runtime/delivery/abi.d.ts +14 -0
  110. package/dist-runtime/delivery/abi.js +161 -0
  111. package/dist-runtime/delivery/abi.js.map +1 -0
  112. package/dist-runtime/delivery/aggregate-bootstrap.d.ts +12 -0
  113. package/dist-runtime/delivery/aggregate-bootstrap.js +40 -0
  114. package/dist-runtime/delivery/aggregate-bootstrap.js.map +1 -0
  115. package/dist-runtime/delivery/aggregate-channel.d.ts +28 -0
  116. package/dist-runtime/delivery/aggregate-channel.js +155 -0
  117. package/dist-runtime/delivery/aggregate-channel.js.map +1 -0
  118. package/dist-runtime/delivery/aggregate-inputs.d.ts +168 -0
  119. package/dist-runtime/delivery/aggregate-inputs.js +57 -0
  120. package/dist-runtime/delivery/aggregate-inputs.js.map +1 -0
  121. package/dist-runtime/delivery/aggregate-source.d.ts +25 -0
  122. package/dist-runtime/delivery/aggregate-source.js +79 -0
  123. package/dist-runtime/delivery/aggregate-source.js.map +1 -0
  124. package/dist-runtime/delivery/aggregate-worker.d.ts +1 -0
  125. package/dist-runtime/delivery/aggregate-worker.js +191 -0
  126. package/dist-runtime/delivery/aggregate-worker.js.map +1 -0
  127. package/dist-runtime/delivery/aggregate.d.ts +51 -0
  128. package/dist-runtime/delivery/aggregate.js +190 -0
  129. package/dist-runtime/delivery/aggregate.js.map +1 -0
  130. package/dist-runtime/delivery/bindings.d.ts +21 -0
  131. package/dist-runtime/delivery/bindings.js +53 -0
  132. package/dist-runtime/delivery/bindings.js.map +1 -0
  133. package/dist-runtime/delivery/check-code.d.ts +19 -0
  134. package/dist-runtime/delivery/check-code.js +63 -0
  135. package/dist-runtime/delivery/check-code.js.map +1 -0
  136. package/dist-runtime/delivery/closure-format.d.ts +77 -0
  137. package/dist-runtime/delivery/closure-format.js +225 -0
  138. package/dist-runtime/delivery/closure-format.js.map +1 -0
  139. package/dist-runtime/delivery/codec-pin.d.ts +2 -0
  140. package/dist-runtime/delivery/codec-pin.js +7 -0
  141. package/dist-runtime/delivery/codec-pin.js.map +1 -0
  142. package/dist-runtime/delivery/codec.d.ts +19 -0
  143. package/dist-runtime/delivery/codec.js +73 -0
  144. package/dist-runtime/delivery/codec.js.map +1 -0
  145. package/dist-runtime/delivery/compiler-dependency-pins.d.ts +7 -0
  146. package/dist-runtime/delivery/compiler-dependency-pins.js +1689 -0
  147. package/dist-runtime/delivery/compiler-dependency-pins.js.map +1 -0
  148. package/dist-runtime/delivery/compiler-files.d.ts +40 -0
  149. package/dist-runtime/delivery/compiler-files.js +220 -0
  150. package/dist-runtime/delivery/compiler-files.js.map +1 -0
  151. package/dist-runtime/delivery/compiler-io.d.ts +2 -0
  152. package/dist-runtime/delivery/compiler-io.js +13 -0
  153. package/dist-runtime/delivery/compiler-io.js.map +1 -0
  154. package/dist-runtime/delivery/compiler-pins.d.ts +10 -0
  155. package/dist-runtime/delivery/compiler-pins.js +147 -0
  156. package/dist-runtime/delivery/compiler-pins.js.map +1 -0
  157. package/dist-runtime/delivery/compiler.d.ts +188 -0
  158. package/dist-runtime/delivery/compiler.js +850 -0
  159. package/dist-runtime/delivery/compiler.js.map +1 -0
  160. package/dist-runtime/delivery/config.d.ts +48 -0
  161. package/dist-runtime/delivery/config.js +99 -0
  162. package/dist-runtime/delivery/config.js.map +1 -0
  163. package/dist-runtime/delivery/configuration-definition.d.ts +22 -0
  164. package/dist-runtime/delivery/configuration-definition.js +316 -0
  165. package/dist-runtime/delivery/configuration-definition.js.map +1 -0
  166. package/dist-runtime/delivery/configuration-hre.d.ts +17 -0
  167. package/dist-runtime/delivery/configuration-hre.js +198 -0
  168. package/dist-runtime/delivery/configuration-hre.js.map +1 -0
  169. package/dist-runtime/delivery/configuration-runtime.d.ts +36 -0
  170. package/dist-runtime/delivery/configuration-runtime.js +248 -0
  171. package/dist-runtime/delivery/configuration-runtime.js.map +1 -0
  172. package/dist-runtime/delivery/configuration.d.ts +35 -0
  173. package/dist-runtime/delivery/configuration.js +83 -0
  174. package/dist-runtime/delivery/configuration.js.map +1 -0
  175. package/dist-runtime/delivery/create2.d.ts +3 -0
  176. package/dist-runtime/delivery/create2.js +48 -0
  177. package/dist-runtime/delivery/create2.js.map +1 -0
  178. package/dist-runtime/delivery/custom-closure.d.ts +27 -0
  179. package/dist-runtime/delivery/custom-closure.js +818 -0
  180. package/dist-runtime/delivery/custom-closure.js.map +1 -0
  181. package/dist-runtime/delivery/custom-format.d.ts +35 -0
  182. package/dist-runtime/delivery/custom-format.js +383 -0
  183. package/dist-runtime/delivery/custom-format.js.map +1 -0
  184. package/dist-runtime/delivery/custom.d.ts +32 -0
  185. package/dist-runtime/delivery/custom.js +158 -0
  186. package/dist-runtime/delivery/custom.js.map +1 -0
  187. package/dist-runtime/delivery/data.d.ts +7 -0
  188. package/dist-runtime/delivery/data.js +86 -0
  189. package/dist-runtime/delivery/data.js.map +1 -0
  190. package/dist-runtime/delivery/development.d.ts +91 -0
  191. package/dist-runtime/delivery/development.js +395 -0
  192. package/dist-runtime/delivery/development.js.map +1 -0
  193. package/dist-runtime/delivery/engine.d.ts +9 -0
  194. package/dist-runtime/delivery/engine.js +23 -0
  195. package/dist-runtime/delivery/engine.js.map +1 -0
  196. package/dist-runtime/delivery/eoa-observation.d.ts +43 -0
  197. package/dist-runtime/delivery/eoa-observation.js +145 -0
  198. package/dist-runtime/delivery/eoa-observation.js.map +1 -0
  199. package/dist-runtime/delivery/eoa-signed.d.ts +2 -0
  200. package/dist-runtime/delivery/eoa-signed.js +74 -0
  201. package/dist-runtime/delivery/eoa-signed.js.map +1 -0
  202. package/dist-runtime/delivery/eoa.d.ts +81 -0
  203. package/dist-runtime/delivery/eoa.js +274 -0
  204. package/dist-runtime/delivery/eoa.js.map +1 -0
  205. package/dist-runtime/delivery/execution-db.d.ts +20 -0
  206. package/dist-runtime/delivery/execution-db.js +153 -0
  207. package/dist-runtime/delivery/execution-db.js.map +1 -0
  208. package/dist-runtime/delivery/execution-files.d.ts +9 -0
  209. package/dist-runtime/delivery/execution-files.js +138 -0
  210. package/dist-runtime/delivery/execution-files.js.map +1 -0
  211. package/dist-runtime/delivery/execution-model.d.ts +56 -0
  212. package/dist-runtime/delivery/execution-model.js +66 -0
  213. package/dist-runtime/delivery/execution-model.js.map +1 -0
  214. package/dist-runtime/delivery/execution-store.d.ts +48 -0
  215. package/dist-runtime/delivery/execution-store.js +361 -0
  216. package/dist-runtime/delivery/execution-store.js.map +1 -0
  217. package/dist-runtime/delivery/existing-code.d.ts +37 -0
  218. package/dist-runtime/delivery/existing-code.js +75 -0
  219. package/dist-runtime/delivery/existing-code.js.map +1 -0
  220. package/dist-runtime/delivery/export.d.ts +51 -0
  221. package/dist-runtime/delivery/export.js +69 -0
  222. package/dist-runtime/delivery/export.js.map +1 -0
  223. package/dist-runtime/delivery/forkAudit.d.ts +119 -0
  224. package/dist-runtime/delivery/forkAudit.js +473 -0
  225. package/dist-runtime/delivery/forkAudit.js.map +1 -0
  226. package/dist-runtime/delivery/hardhat.d.ts +3 -0
  227. package/dist-runtime/delivery/hardhat.js +45 -0
  228. package/dist-runtime/delivery/hardhat.js.map +1 -0
  229. package/dist-runtime/delivery/history-registration.d.ts +2 -0
  230. package/dist-runtime/delivery/history-registration.js +17 -0
  231. package/dist-runtime/delivery/history-registration.js.map +1 -0
  232. package/dist-runtime/delivery/identities.d.ts +22 -0
  233. package/dist-runtime/delivery/identities.js +97 -0
  234. package/dist-runtime/delivery/identities.js.map +1 -0
  235. package/dist-runtime/delivery/input-files.d.ts +5 -0
  236. package/dist-runtime/delivery/input-files.js +70 -0
  237. package/dist-runtime/delivery/input-files.js.map +1 -0
  238. package/dist-runtime/delivery/inputs.d.ts +62 -0
  239. package/dist-runtime/delivery/inputs.js +187 -0
  240. package/dist-runtime/delivery/inputs.js.map +1 -0
  241. package/dist-runtime/delivery/journal.d.ts +35 -0
  242. package/dist-runtime/delivery/journal.js +270 -0
  243. package/dist-runtime/delivery/journal.js.map +1 -0
  244. package/dist-runtime/delivery/manifest.d.ts +14 -0
  245. package/dist-runtime/delivery/manifest.js +68 -0
  246. package/dist-runtime/delivery/manifest.js.map +1 -0
  247. package/dist-runtime/delivery/materialization.d.ts +20 -0
  248. package/dist-runtime/delivery/materialization.js +138 -0
  249. package/dist-runtime/delivery/materialization.js.map +1 -0
  250. package/dist-runtime/delivery/observations.d.ts +31 -0
  251. package/dist-runtime/delivery/observations.js +38 -0
  252. package/dist-runtime/delivery/observations.js.map +1 -0
  253. package/dist-runtime/delivery/parameters.d.ts +53 -0
  254. package/dist-runtime/delivery/parameters.js +257 -0
  255. package/dist-runtime/delivery/parameters.js.map +1 -0
  256. package/dist-runtime/delivery/pending.d.ts +70 -0
  257. package/dist-runtime/delivery/pending.js +99 -0
  258. package/dist-runtime/delivery/pending.js.map +1 -0
  259. package/dist-runtime/delivery/plan.d.ts +50 -0
  260. package/dist-runtime/delivery/plan.js +209 -0
  261. package/dist-runtime/delivery/plan.js.map +1 -0
  262. package/dist-runtime/delivery/planning.d.ts +81 -0
  263. package/dist-runtime/delivery/planning.js +302 -0
  264. package/dist-runtime/delivery/planning.js.map +1 -0
  265. package/dist-runtime/delivery/policy.d.ts +4 -0
  266. package/dist-runtime/delivery/policy.js +9 -0
  267. package/dist-runtime/delivery/policy.js.map +1 -0
  268. package/dist-runtime/delivery/preparation.d.ts +6 -0
  269. package/dist-runtime/delivery/preparation.js +158 -0
  270. package/dist-runtime/delivery/preparation.js.map +1 -0
  271. package/dist-runtime/delivery/production-environment.d.ts +2 -0
  272. package/dist-runtime/delivery/production-environment.js +12 -0
  273. package/dist-runtime/delivery/production-environment.js.map +1 -0
  274. package/dist-runtime/delivery/production-finalization.d.ts +86 -0
  275. package/dist-runtime/delivery/production-finalization.js +278 -0
  276. package/dist-runtime/delivery/production-finalization.js.map +1 -0
  277. package/dist-runtime/delivery/production.d.ts +461 -0
  278. package/dist-runtime/delivery/production.js +396 -0
  279. package/dist-runtime/delivery/production.js.map +1 -0
  280. package/dist-runtime/delivery/project-files.d.ts +8 -0
  281. package/dist-runtime/delivery/project-files.js +82 -0
  282. package/dist-runtime/delivery/project-files.js.map +1 -0
  283. package/dist-runtime/delivery/project.d.ts +15 -0
  284. package/dist-runtime/delivery/project.js +157 -0
  285. package/dist-runtime/delivery/project.js.map +1 -0
  286. package/dist-runtime/delivery/protocol.d.ts +49 -0
  287. package/dist-runtime/delivery/protocol.js +112 -0
  288. package/dist-runtime/delivery/protocol.js.map +1 -0
  289. package/dist-runtime/delivery/references.d.ts +19 -0
  290. package/dist-runtime/delivery/references.js +84 -0
  291. package/dist-runtime/delivery/references.js.map +1 -0
  292. package/dist-runtime/delivery/release-graph.d.ts +93 -0
  293. package/dist-runtime/delivery/release-graph.js +106 -0
  294. package/dist-runtime/delivery/release-graph.js.map +1 -0
  295. package/dist-runtime/delivery/release-history-capture.d.ts +7 -0
  296. package/dist-runtime/delivery/release-history-capture.js +76 -0
  297. package/dist-runtime/delivery/release-history-capture.js.map +1 -0
  298. package/dist-runtime/delivery/release-history.d.ts +43 -0
  299. package/dist-runtime/delivery/release-history.js +246 -0
  300. package/dist-runtime/delivery/release-history.js.map +1 -0
  301. package/dist-runtime/delivery/release.d.ts +172 -0
  302. package/dist-runtime/delivery/release.js +209 -0
  303. package/dist-runtime/delivery/release.js.map +1 -0
  304. package/dist-runtime/delivery/safe-manifest.d.ts +9 -0
  305. package/dist-runtime/delivery/safe-manifest.js +13 -0
  306. package/dist-runtime/delivery/safe-manifest.js.map +1 -0
  307. package/dist-runtime/delivery/safe-observation.d.ts +30 -0
  308. package/dist-runtime/delivery/safe-observation.js +487 -0
  309. package/dist-runtime/delivery/safe-observation.js.map +1 -0
  310. package/dist-runtime/delivery/safe-prepare.d.ts +13 -0
  311. package/dist-runtime/delivery/safe-prepare.js +81 -0
  312. package/dist-runtime/delivery/safe-prepare.js.map +1 -0
  313. package/dist-runtime/delivery/safe.d.ts +91 -0
  314. package/dist-runtime/delivery/safe.js +243 -0
  315. package/dist-runtime/delivery/safe.js.map +1 -0
  316. package/dist-runtime/delivery/same-fork-baseline.d.ts +8 -0
  317. package/dist-runtime/delivery/same-fork-baseline.js +20 -0
  318. package/dist-runtime/delivery/same-fork-baseline.js.map +1 -0
  319. package/dist-runtime/delivery/setup.d.ts +31 -0
  320. package/dist-runtime/delivery/setup.js +215 -0
  321. package/dist-runtime/delivery/setup.js.map +1 -0
  322. package/dist-runtime/delivery/source.d.ts +41 -0
  323. package/dist-runtime/delivery/source.js +137 -0
  324. package/dist-runtime/delivery/source.js.map +1 -0
  325. package/dist-runtime/delivery/target-fields.d.ts +2 -0
  326. package/dist-runtime/delivery/target-fields.js +11 -0
  327. package/dist-runtime/delivery/target-fields.js.map +1 -0
  328. package/dist-runtime/delivery/validation.d.ts +9 -0
  329. package/dist-runtime/delivery/validation.js +150 -0
  330. package/dist-runtime/delivery/validation.js.map +1 -0
  331. package/dist-runtime/delivery/verification.d.ts +16 -0
  332. package/dist-runtime/delivery/verification.js +65 -0
  333. package/dist-runtime/delivery/verification.js.map +1 -0
  334. package/dist-runtime/migrate.js +1 -0
  335. package/dist-runtime/migrate.js.map +1 -1
  336. package/dist-runtime/miner/binary.d.ts +2 -0
  337. package/dist-runtime/miner/binary.js +54 -0
  338. package/dist-runtime/miner/binary.js.map +1 -0
  339. package/dist-runtime/miner/cli.d.ts +1 -0
  340. package/dist-runtime/miner/cli.js +131 -0
  341. package/dist-runtime/miner/cli.js.map +1 -0
  342. package/dist-runtime/miner/index.d.ts +5 -0
  343. package/dist-runtime/miner/index.js +13 -0
  344. package/dist-runtime/miner/index.js.map +1 -0
  345. package/dist-runtime/miner/request.d.ts +7 -0
  346. package/dist-runtime/miner/request.js +73 -0
  347. package/dist-runtime/miner/request.js.map +1 -0
  348. package/dist-runtime/miner/runner.d.ts +2 -0
  349. package/dist-runtime/miner/runner.js +131 -0
  350. package/dist-runtime/miner/runner.js.map +1 -0
  351. package/dist-runtime/miner/types.d.ts +89 -0
  352. package/dist-runtime/miner/types.js +3 -0
  353. package/dist-runtime/miner/types.js.map +1 -0
  354. package/dist-runtime/miner/verify.d.ts +2 -0
  355. package/dist-runtime/miner/verify.js +75 -0
  356. package/dist-runtime/miner/verify.js.map +1 -0
  357. package/dist-runtime/runtime-identity.json +2 -2
  358. package/dist-runtime/vendor/plan-codec/index.cjs +820 -0
  359. package/dist-runtime/vendor/plan-codec/index.d.cts +32 -0
  360. package/dist-runtime/vendor/plan-codec/provenance.json +24 -0
  361. package/dist-runtime/workflow/engine.d.ts +14 -0
  362. package/dist-runtime/workflow/engine.js +160 -0
  363. package/dist-runtime/workflow/engine.js.map +1 -0
  364. package/dist-runtime/workflow/lib/authority.d.ts +6 -3
  365. package/dist-runtime/workflow/lib/authority.js.map +1 -1
  366. package/dist-runtime/workflow/lib/calls.d.ts +1 -1
  367. package/dist-runtime/workflow/lib/calls.js +43 -34
  368. package/dist-runtime/workflow/lib/calls.js.map +1 -1
  369. package/dist-runtime/workflow/lib/canonicalData.d.ts +8 -0
  370. package/dist-runtime/workflow/lib/canonicalData.js +68 -0
  371. package/dist-runtime/workflow/lib/canonicalData.js.map +1 -0
  372. package/dist-runtime/workflow/lib/config.d.ts +3 -1
  373. package/dist-runtime/workflow/lib/config.js.map +1 -1
  374. package/dist-runtime/workflow/lib/context.d.ts +76 -0
  375. package/dist-runtime/workflow/lib/context.js +3 -0
  376. package/dist-runtime/workflow/lib/context.js.map +1 -0
  377. package/dist-runtime/workflow/lib/create2.d.ts +1 -1
  378. package/dist-runtime/workflow/lib/create2.js +9 -12
  379. package/dist-runtime/workflow/lib/create2.js.map +1 -1
  380. package/dist-runtime/workflow/lib/deployments.d.ts +5 -5
  381. package/dist-runtime/workflow/lib/deployments.js +5 -13
  382. package/dist-runtime/workflow/lib/deployments.js.map +1 -1
  383. package/dist-runtime/workflow/lib/evidencePorts.d.ts +55 -0
  384. package/dist-runtime/workflow/lib/evidencePorts.js +3 -0
  385. package/dist-runtime/workflow/lib/evidencePorts.js.map +1 -0
  386. package/dist-runtime/workflow/lib/executionPlan.d.ts +4 -42
  387. package/dist-runtime/workflow/lib/executionPlan.js +15 -210
  388. package/dist-runtime/workflow/lib/executionPlan.js.map +1 -1
  389. package/dist-runtime/workflow/lib/gateTool.d.ts +6 -2
  390. package/dist-runtime/workflow/lib/gateTool.js +20 -10
  391. package/dist-runtime/workflow/lib/gateTool.js.map +1 -1
  392. package/dist-runtime/workflow/lib/gateToolSync.d.ts +1 -1
  393. package/dist-runtime/workflow/lib/gateToolSync.js +3 -2
  394. package/dist-runtime/workflow/lib/gateToolSync.js.map +1 -1
  395. package/dist-runtime/workflow/lib/operationNames.d.ts +3 -0
  396. package/dist-runtime/workflow/lib/operationNames.js +34 -0
  397. package/dist-runtime/workflow/lib/operationNames.js.map +1 -0
  398. package/dist-runtime/workflow/lib/parameters.d.ts +1 -1
  399. package/dist-runtime/workflow/lib/parameters.js +6 -22
  400. package/dist-runtime/workflow/lib/parameters.js.map +1 -1
  401. package/dist-runtime/workflow/lib/pendingDeploymentReuse.js +18 -52
  402. package/dist-runtime/workflow/lib/pendingDeploymentReuse.js.map +1 -1
  403. package/dist-runtime/workflow/lib/pendingUupsBinding.d.ts +42 -0
  404. package/dist-runtime/workflow/lib/pendingUupsBinding.js +39 -0
  405. package/dist-runtime/workflow/lib/pendingUupsBinding.js.map +1 -0
  406. package/dist-runtime/workflow/lib/plan.d.ts +55 -0
  407. package/dist-runtime/workflow/lib/plan.js +324 -0
  408. package/dist-runtime/workflow/lib/plan.js.map +1 -0
  409. package/dist-runtime/workflow/lib/planCli.d.ts +14 -0
  410. package/dist-runtime/workflow/lib/planCli.js +279 -0
  411. package/dist-runtime/workflow/lib/planCli.js.map +1 -0
  412. package/dist-runtime/workflow/lib/preparationEvidence.d.ts +4 -0
  413. package/dist-runtime/workflow/lib/preparationEvidence.js +19 -0
  414. package/dist-runtime/workflow/lib/preparationEvidence.js.map +1 -0
  415. package/dist-runtime/workflow/lib/proxy.d.ts +3 -2
  416. package/dist-runtime/workflow/lib/proxy.js +3 -4
  417. package/dist-runtime/workflow/lib/proxy.js.map +1 -1
  418. package/dist-runtime/workflow/lib/runtime.d.ts +6 -0
  419. package/dist-runtime/workflow/lib/runtime.js +48 -0
  420. package/dist-runtime/workflow/lib/runtime.js.map +1 -0
  421. package/dist-runtime/workflow/lib/signer.d.ts +3 -2
  422. package/dist-runtime/workflow/lib/signer.js +18 -18
  423. package/dist-runtime/workflow/lib/signer.js.map +1 -1
  424. package/dist-runtime/workflow/lib/simulation.d.ts +13 -6
  425. package/dist-runtime/workflow/lib/simulation.js +39 -31
  426. package/dist-runtime/workflow/lib/simulation.js.map +1 -1
  427. package/dist-runtime/workflow/lib/state.js +3 -3
  428. package/dist-runtime/workflow/lib/state.js.map +1 -1
  429. package/dist-runtime/workflow/lib/staticValidation.d.ts +28 -0
  430. package/dist-runtime/workflow/lib/staticValidation.js +54 -10
  431. package/dist-runtime/workflow/lib/staticValidation.js.map +1 -1
  432. package/dist-runtime/workflow/lib/transactionPlanner.d.ts +62 -0
  433. package/dist-runtime/workflow/lib/transactionPlanner.js +258 -0
  434. package/dist-runtime/workflow/lib/transactionPlanner.js.map +1 -0
  435. package/dist-runtime/workflow/lib/typedValue.d.ts +3 -0
  436. package/dist-runtime/workflow/lib/typedValue.js +76 -0
  437. package/dist-runtime/workflow/lib/typedValue.js.map +1 -0
  438. package/dist-runtime/workflow/lib/validation.d.ts +23 -0
  439. package/dist-runtime/workflow/lib/validation.js +15 -0
  440. package/dist-runtime/workflow/lib/validation.js.map +1 -0
  441. package/dist-runtime/workflow/planAdd.d.ts +1 -0
  442. package/dist-runtime/workflow/planAdd.js +11 -0
  443. package/dist-runtime/workflow/planAdd.js.map +1 -0
  444. package/dist-runtime/workflow/planRead.d.ts +1 -0
  445. package/dist-runtime/workflow/planRead.js +11 -0
  446. package/dist-runtime/workflow/planRead.js.map +1 -0
  447. package/dist-runtime/workflow/planStatus.d.ts +1 -0
  448. package/dist-runtime/workflow/planStatus.js +11 -0
  449. package/dist-runtime/workflow/planStatus.js.map +1 -0
  450. package/dist-runtime/workflow/planWrite.d.ts +1 -0
  451. package/dist-runtime/workflow/planWrite.js +11 -0
  452. package/dist-runtime/workflow/planWrite.js.map +1 -0
  453. package/dist-runtime/workflow/run.d.ts +1 -40
  454. package/dist-runtime/workflow/run.js +68 -136
  455. package/dist-runtime/workflow/run.js.map +1 -1
  456. package/dist-runtime/workflow/staticValidate.js +8 -3
  457. package/dist-runtime/workflow/staticValidate.js.map +1 -1
  458. package/dist-runtime/workflow/steps/call.d.ts +1 -1
  459. package/dist-runtime/workflow/steps/check.d.ts +1 -1
  460. package/dist-runtime/workflow/steps/custom.d.ts +1 -1
  461. package/dist-runtime/workflow/steps/deploy.d.ts +1 -1
  462. package/dist-runtime/workflow/steps/deploy.js +57 -55
  463. package/dist-runtime/workflow/steps/deploy.js.map +1 -1
  464. package/dist-runtime/workflow/steps/upgrade.d.ts +1 -1
  465. package/dist-runtime/workflow/steps/upgrade.js +62 -41
  466. package/dist-runtime/workflow/steps/upgrade.js.map +1 -1
  467. package/dist-runtime/workflow/steps/view.d.ts +1 -1
  468. package/docs/compiler-qualification.md +32 -0
  469. package/docs/configuration-runtime-observation.md +29 -0
  470. package/docs/create2-miner.md +100 -0
  471. package/docs/delivery-aggregate.md +27 -0
  472. package/docs/delivery-custom-input-closure.md +51 -0
  473. package/docs/delivery-development.md +32 -0
  474. package/docs/delivery-eoa.md +46 -0
  475. package/docs/delivery-evm-manifest.md +20 -0
  476. package/docs/delivery-execution-store.md +33 -0
  477. package/docs/delivery-inputs.md +46 -0
  478. package/docs/delivery-parameters.md +65 -0
  479. package/docs/delivery-planning.md +140 -0
  480. package/docs/delivery-release.md +65 -0
  481. package/docs/delivery-safe.md +72 -0
  482. package/docs/delivery-setup.md +146 -0
  483. package/docs/delivery-source.md +67 -0
  484. package/docs/superpowers/plans/2026-09-24-scheme-aware-static-validation.md +193 -0
  485. package/docs/superpowers/plans/2026-10-28-create2-miner.md +82 -0
  486. package/package.json +133 -9
  487. package/resources/create2/LICENSE +21 -0
  488. package/resources/create2/README.md +9 -0
  489. package/resources/create2/darwin-arm64/smartflow_miner +0 -0
  490. package/resources/create2/darwin-x64/smartflow_miner +0 -0
  491. package/resources/create2/manifest.json +27 -0
  492. package/runtime/config/openzeppelin.ts +3 -21
  493. package/runtime/delivery/abi.ts +225 -0
  494. package/runtime/delivery/aggregate-bootstrap.ts +29 -0
  495. package/runtime/delivery/aggregate-channel.ts +85 -0
  496. package/runtime/delivery/aggregate-inputs.ts +39 -0
  497. package/runtime/delivery/aggregate-source.ts +53 -0
  498. package/runtime/delivery/aggregate-worker.ts +133 -0
  499. package/runtime/delivery/aggregate.ts +139 -0
  500. package/runtime/delivery/bindings.ts +37 -0
  501. package/runtime/delivery/check-code.ts +38 -0
  502. package/runtime/delivery/closure-format.ts +350 -0
  503. package/runtime/delivery/codec-pin.ts +3 -0
  504. package/runtime/delivery/codec.ts +50 -0
  505. package/runtime/delivery/compiler-dependency-pins.ts +1685 -0
  506. package/runtime/delivery/compiler-files.ts +179 -0
  507. package/runtime/delivery/compiler-io.ts +10 -0
  508. package/runtime/delivery/compiler-pins.ts +143 -0
  509. package/runtime/delivery/compiler.ts +700 -0
  510. package/runtime/delivery/config.ts +93 -0
  511. package/runtime/delivery/configuration-definition.ts +133 -0
  512. package/runtime/delivery/configuration-hre.ts +130 -0
  513. package/runtime/delivery/configuration-runtime.ts +163 -0
  514. package/runtime/delivery/configuration.ts +64 -0
  515. package/runtime/delivery/create2.ts +57 -0
  516. package/runtime/delivery/custom-closure.ts +993 -0
  517. package/runtime/delivery/custom-format.ts +464 -0
  518. package/runtime/delivery/custom.ts +219 -0
  519. package/runtime/delivery/data.ts +94 -0
  520. package/runtime/delivery/development.ts +262 -0
  521. package/runtime/delivery/engine.ts +29 -0
  522. package/runtime/delivery/eoa-observation.ts +106 -0
  523. package/runtime/delivery/eoa-signed.ts +55 -0
  524. package/runtime/delivery/eoa.ts +288 -0
  525. package/runtime/delivery/execution-db.ts +131 -0
  526. package/runtime/delivery/execution-files.ts +135 -0
  527. package/runtime/delivery/execution-model.ts +102 -0
  528. package/runtime/delivery/execution-store.ts +411 -0
  529. package/runtime/delivery/existing-code.ts +44 -0
  530. package/runtime/delivery/export.ts +99 -0
  531. package/runtime/delivery/forkAudit.ts +620 -0
  532. package/runtime/delivery/hardhat.ts +38 -0
  533. package/runtime/delivery/history-registration.ts +10 -0
  534. package/runtime/delivery/identities.ts +132 -0
  535. package/runtime/delivery/input-files.ts +46 -0
  536. package/runtime/delivery/inputs.ts +197 -0
  537. package/runtime/delivery/journal.ts +201 -0
  538. package/runtime/delivery/manifest.ts +54 -0
  539. package/runtime/delivery/materialization.ts +53 -0
  540. package/runtime/delivery/observations.ts +60 -0
  541. package/runtime/delivery/parameters.ts +349 -0
  542. package/runtime/delivery/pending.ts +98 -0
  543. package/runtime/delivery/plan.ts +337 -0
  544. package/runtime/delivery/planning.ts +397 -0
  545. package/runtime/delivery/policy.ts +9 -0
  546. package/runtime/delivery/preparation.ts +224 -0
  547. package/runtime/delivery/production-environment.ts +6 -0
  548. package/runtime/delivery/production-finalization.ts +172 -0
  549. package/runtime/delivery/production.ts +375 -0
  550. package/runtime/delivery/project-files.ts +58 -0
  551. package/runtime/delivery/project.ts +117 -0
  552. package/runtime/delivery/protocol.ts +94 -0
  553. package/runtime/delivery/references.ts +106 -0
  554. package/runtime/delivery/release-graph.ts +49 -0
  555. package/runtime/delivery/release-history-capture.ts +32 -0
  556. package/runtime/delivery/release-history.ts +120 -0
  557. package/runtime/delivery/release.ts +128 -0
  558. package/runtime/delivery/safe-manifest.ts +11 -0
  559. package/runtime/delivery/safe-observation.ts +626 -0
  560. package/runtime/delivery/safe-prepare.ts +101 -0
  561. package/runtime/delivery/safe.ts +344 -0
  562. package/runtime/delivery/same-fork-baseline.ts +16 -0
  563. package/runtime/delivery/setup.ts +172 -0
  564. package/runtime/delivery/source.ts +130 -0
  565. package/runtime/delivery/target-fields.ts +7 -0
  566. package/runtime/delivery/validation.ts +247 -0
  567. package/runtime/delivery/verification.ts +47 -0
  568. package/runtime/migrate.ts +1 -0
  569. package/runtime/miner/binary.ts +41 -0
  570. package/runtime/miner/cli.ts +87 -0
  571. package/runtime/miner/index.ts +5 -0
  572. package/runtime/miner/request.ts +54 -0
  573. package/runtime/miner/runner.ts +90 -0
  574. package/runtime/miner/types.ts +71 -0
  575. package/runtime/miner/verify.ts +61 -0
  576. package/runtime/vendor/plan-codec/index.cjs +820 -0
  577. package/runtime/vendor/plan-codec/index.d.cts +32 -0
  578. package/runtime/vendor/plan-codec/provenance.json +24 -0
  579. package/runtime/workflow/engine.ts +174 -0
  580. package/runtime/workflow/lib/authority.ts +3 -3
  581. package/runtime/workflow/lib/calls.ts +46 -37
  582. package/runtime/workflow/lib/canonicalData.ts +45 -0
  583. package/runtime/workflow/lib/config.ts +1 -1
  584. package/runtime/workflow/lib/context.ts +76 -0
  585. package/runtime/workflow/lib/create2.ts +10 -12
  586. package/runtime/workflow/lib/deployments.ts +6 -14
  587. package/runtime/workflow/lib/evidencePorts.ts +20 -0
  588. package/runtime/workflow/lib/executionPlan.ts +17 -268
  589. package/runtime/workflow/lib/gateTool.ts +20 -8
  590. package/runtime/workflow/lib/gateToolSync.ts +3 -3
  591. package/runtime/workflow/lib/operationNames.ts +32 -0
  592. package/runtime/workflow/lib/parameters.ts +4 -21
  593. package/runtime/workflow/lib/pendingDeploymentReuse.ts +4 -56
  594. package/runtime/workflow/lib/pendingUupsBinding.ts +43 -0
  595. package/runtime/workflow/lib/plan.ts +334 -0
  596. package/runtime/workflow/lib/planCli.ts +279 -0
  597. package/runtime/workflow/lib/preparationEvidence.ts +14 -0
  598. package/runtime/workflow/lib/proxy.ts +5 -3
  599. package/runtime/workflow/lib/runtime.ts +46 -0
  600. package/runtime/workflow/lib/signer.ts +8 -5
  601. package/runtime/workflow/lib/simulation.ts +41 -17
  602. package/runtime/workflow/lib/state.ts +3 -3
  603. package/runtime/workflow/lib/staticValidation.ts +92 -11
  604. package/runtime/workflow/lib/transactionPlanner.ts +314 -0
  605. package/runtime/workflow/lib/typedValue.ts +46 -0
  606. package/runtime/workflow/lib/validation.ts +50 -0
  607. package/runtime/workflow/planAdd.ts +8 -0
  608. package/runtime/workflow/planRead.ts +8 -0
  609. package/runtime/workflow/planStatus.ts +8 -0
  610. package/runtime/workflow/planWrite.ts +8 -0
  611. package/runtime/workflow/run.ts +41 -174
  612. package/runtime/workflow/staticValidate.ts +8 -3
  613. package/runtime/workflow/steps/call.ts +1 -1
  614. package/runtime/workflow/steps/check.ts +1 -1
  615. package/runtime/workflow/steps/custom.ts +1 -1
  616. package/runtime/workflow/steps/deploy.ts +57 -58
  617. package/runtime/workflow/steps/upgrade.ts +69 -46
  618. package/runtime/workflow/steps/view.ts +1 -1
@@ -1,8 +1,8 @@
1
+ import { resolvePendingUupsReuse } from "./lib/pendingDeploymentReuse";
1
2
  import { bindExecutionRuntime } from "./lib/runtimeVersion";
2
3
  import fs from "fs";
3
4
  import path from "path";
4
- import type { Signer } from "ethers";
5
- import { artifacts, config as hardhatConfig, ethers, network } from "../projectHardhat";
5
+ import hardhat, { artifacts, config as hardhatConfig, ethers, network } from "../projectHardhat";
6
6
  import {
7
7
  loadConfig,
8
8
  resolveAdmin,
@@ -17,6 +17,7 @@ import {
17
17
  ParameterLockExecution,
18
18
  readParameterLockExecution,
19
19
  writeParameterLock,
20
+ recordParameterLockImplementationSalts,
20
21
  } from "./lib/lock";
21
22
  import {
22
23
  loadManifest,
@@ -44,8 +45,6 @@ import {
44
45
  } from "./lib/releaseParameters";
45
46
  import { WorkflowReporter } from "./lib/reporter";
46
47
  import {
47
- ExternalCall,
48
- ExternalExecutionRequired,
49
48
  writeExternalExecutionPackage,
50
49
  } from "./lib/external";
51
50
  import { classifyWorkflowError } from "./lib/errors";
@@ -54,7 +53,6 @@ import {
54
53
  setupSimulationFork,
55
54
  assertSimulationSourceInfrastructure,
56
55
  simulationForkEvidence,
57
- SimulationFork,
58
56
  verifySimulationForkSnapshot,
59
57
  WorkflowMode,
60
58
  } from "./lib/simulation";
@@ -66,14 +64,8 @@ import {
66
64
  import { loadSimulationCallerNetwork } from "./lib/simulationCallers";
67
65
  import { WorkflowState } from "./lib/state";
68
66
  import { DeploymentRecorder } from "./lib/deploymentRecords";
69
- import { runDeployStep } from "./steps/deploy";
70
- import { runCallStep } from "./steps/call";
71
- import { runUpgradeStep } from "./steps/upgrade";
72
- import { runViewStep } from "./steps/view";
73
- import { runCheckStep } from "./steps/check";
74
67
  import { runCustomStep } from "./steps/custom";
75
68
  import {
76
- ExecutionSegmentDeferred,
77
69
  loadReleaseExecutionPlan,
78
70
  ReleaseExecutionPlan,
79
71
  ReleaseExecutionPlanner,
@@ -84,32 +76,9 @@ import {
84
76
  import { writeOperatorExecutionResult } from "./lib/operatorExecution";
85
77
  import { loadCompletedExecutionPrefix } from "./lib/executionProgress";
86
78
 
87
- export interface WorkflowContext {
88
- root: string;
89
- taskId: string;
90
- executionId: string;
91
- taskDir: string;
92
- targetId: string;
93
- target: TargetConfig & Record<string, unknown> & { id: string };
94
- targetParams: Record<string, unknown>;
95
- existingDeploymentPolicies: ExistingDeploymentPolicies;
96
- releaseArtifactHash?: string;
97
- parameterLockExecutionId?: string;
98
- parameterLockOperator?: string;
99
- config: ReturnType<typeof loadConfig>;
100
- mode: WorkflowMode;
101
- simulation: SimulationFork;
102
- signer?: Signer;
103
- signerAddress?: string;
104
- configuredSimulationCaller?: boolean;
105
- state: WorkflowState;
106
- reporter: WorkflowReporter;
107
- deploymentRecorder?: DeploymentRecorder;
108
- executionPlanner?: ReleaseExecutionPlanner;
109
- lockedExecutionPlan?: ReleaseExecutionPlan;
110
- externalCalls: ExternalCall[];
111
- operatorReceipts: Array<{ transactionId: string; transactionHash: string }>;
112
- }
79
+ import type { WorkflowContext } from "./lib/context";
80
+ import { runWorkflowSteps, validateWorkflowStepsForMode } from "./engine";
81
+ export type { WorkflowContext } from "./lib/context";
113
82
 
114
83
  const parseArgs = (argv: string[]): Record<string, string | boolean> => {
115
84
  const args: Record<string, string | boolean> = {};
@@ -186,31 +155,6 @@ const selectSteps = (
186
155
  return steps;
187
156
  };
188
157
 
189
- const runStep = async (context: WorkflowContext, step: WorkflowStep): Promise<void> => {
190
- switch (step.kind) {
191
- case "deploy":
192
- await runDeployStep(context, step);
193
- return;
194
- case "call":
195
- await runCallStep(context, step);
196
- return;
197
- case "upgrade":
198
- await runUpgradeStep(context, step);
199
- return;
200
- case "view":
201
- await runViewStep(context, step);
202
- return;
203
- case "check":
204
- await runCheckStep(context, step);
205
- return;
206
- case "custom":
207
- await runCustomStep(context, step);
208
- return;
209
- default:
210
- throw new Error(`Unsupported step kind: ${step.kind}`);
211
- }
212
- };
213
-
214
158
  interface PreparedReleaseExecution {
215
159
  sourceSuperTaskId: string;
216
160
  mergeCommit: string;
@@ -571,12 +515,7 @@ async function main(): Promise<void> {
571
515
  if (mode === "simulate" && steps.length === 0) {
572
516
  throw new Error("Simulation must select at least one workflow step");
573
517
  }
574
- if (mode === "verify") {
575
- const unsupported = steps.find((step) => step.kind !== "view" && step.kind !== "check");
576
- if (unsupported) {
577
- throw new Error(`verify mode only supports view and check steps; ${unsupported.id} is ${unsupported.kind}`);
578
- }
579
- }
518
+ validateWorkflowStepsForMode(mode, steps);
580
519
  const releaseExecution = await prepareReleaseExecution(
581
520
  args,
582
521
  mode,
@@ -637,17 +576,20 @@ async function main(): Promise<void> {
637
576
  useLock: booleanArg(args, "useLock"),
638
577
  })
639
578
  : undefined;
640
- const simulation = mode === "simulate" ? await setupSimulationFork(targetId) : {};
579
+ const simulation = mode === "simulate" ? await setupSimulationFork(hardhat, targetId, {
580
+ snapshotJson: process.env.GATE_SIMULATION_FORK_SNAPSHOT_JSON,
581
+ sourceRpcUrl: process.env.GATE_SIMULATION_SOURCE_RPC_URL,
582
+ }) : {};
641
583
  if (mode === "simulate") {
642
- await assertSimulationSourceInfrastructure(targetId, target, simulation);
584
+ await assertSimulationSourceInfrastructure(ethers.provider, targetId, target, simulation);
643
585
  }
644
586
  const signer = mode === "verify"
645
587
  ? undefined
646
588
  : mode === "simulate"
647
589
  ? simulationCallerBinding
648
590
  ? undefined
649
- : await impersonateWorkflowSimulationSigner(simulationSignerAddress!)
650
- : await resolveWorkflowSigner(mode, {
591
+ : await impersonateWorkflowSimulationSigner(hardhat, simulationSignerAddress!)
592
+ : await resolveWorkflowSigner(hardhat, mode, {
651
593
  taskAddress: taskMetadata.deploymentSignerAddress,
652
594
  });
653
595
  const signerAddress = simulationCallerBinding?.defaultAddress
@@ -721,7 +663,7 @@ async function main(): Promise<void> {
721
663
  });
722
664
  }
723
665
 
724
- const context: WorkflowContext = {
666
+ const context: WorkflowContext & { executionPlanner?: ReleaseExecutionPlanner } = {
725
667
  root,
726
668
  taskId,
727
669
  executionId,
@@ -733,9 +675,28 @@ async function main(): Promise<void> {
733
675
  ? releaseExecution.existingDeploymentPolicies
734
676
  : parseExistingDeploymentPolicies(args),
735
677
  releaseArtifactHash: releaseExecution?.releaseFingerprint.artifactHash,
736
- parameterLockExecutionId: releaseExecution ? executionId : undefined,
737
- parameterLockOperator: releaseExecution?.lockedExecution?.operator,
678
+ pendingUupsReuse: releaseExecution ? {
679
+ resolve: async (input) => {
680
+ const result = await resolvePendingUupsReuse({ ...input, root, taskDir, currentExecutionId: executionId });
681
+ return result ? { implementationAddress: result.implementationAddress, implementationSalt: result.implementationSalt,
682
+ proxyAddress: result.proxyAddress, artifactDigest: result.evidence.artifactDigest, legacyEvidence: result.evidence } : undefined;
683
+ },
684
+ } : undefined,
738
685
  config,
686
+ runtime: {
687
+ hre: hardhat,
688
+ ...(mode === "simulate" ? {
689
+ localFork: {
690
+ provider: network.provider,
691
+ impersonate: (address) => impersonateWorkflowSimulationSigner(hardhat, address),
692
+ },
693
+ } : {}),
694
+ },
695
+ bindings: releaseExecution ? {
696
+ recordOrAssertDerivedValue: (key, value) => recordParameterLockImplementationSalts(
697
+ taskDir, executionId, { [key]: value },
698
+ ),
699
+ } : undefined,
739
700
  mode,
740
701
  simulation,
741
702
  signer,
@@ -759,7 +720,6 @@ async function main(): Promise<void> {
759
720
  completedTransactions: completedExecutionPrefix,
760
721
  })
761
722
  : undefined,
762
- lockedExecutionPlan,
763
723
  externalCalls: [],
764
724
  operatorReceipts: [],
765
725
  };
@@ -787,103 +747,10 @@ async function main(): Promise<void> {
787
747
  });
788
748
  }
789
749
 
790
- let executionSegmentDeferred = false;
791
- stepLoop: for (const step of steps) {
792
- if (
793
- context.mode === "execute"
794
- && context.externalCalls.length > 0
795
- && (step.kind === "view" || step.kind === "check" || step.kind === "custom")
796
- ) {
797
- reporter.event("step.deferred_until_external_execution", {
798
- stepId: step.id,
799
- kind: step.kind,
800
- });
801
- break;
802
- }
803
- const configuredCaller = simulationCallerBinding?.resolved.find(
804
- (entry) => entry.stepId === step.id,
805
- );
806
- const stepContext: WorkflowContext = configuredCaller
807
- ? {
808
- ...context,
809
- signer: await impersonateWorkflowSimulationSigner(configuredCaller.callerAddress),
810
- signerAddress: configuredCaller.callerAddress,
811
- configuredSimulationCaller: true,
812
- }
813
- : context;
814
- if (configuredCaller) {
815
- reporter.setSimulationCallerAddress(configuredCaller.callerAddress);
816
- }
817
- try {
818
- reporter.event("step.started", { stepId: step.id, kind: step.kind });
819
- try {
820
- await runStep(stepContext, step);
821
- } catch (error) {
822
- if (context.mode === "execute" && error instanceof ExecutionSegmentDeferred) {
823
- executionSegmentDeferred = true;
824
- reporter.event("execution.segment.deferred", {
825
- transactionId: error.transactionId,
826
- });
827
- break stepLoop;
828
- }
829
- if (
830
- context.mode === "execute"
831
- && error instanceof ExternalExecutionRequired
832
- ) {
833
- if (!context.executionPlanner) {
834
- throw new Error(
835
- "External execution requires a locked mixed-authority plan; run final simulation and execute mode",
836
- );
837
- }
838
- for (const call of error.calls) {
839
- let planned;
840
- try {
841
- planned = context.executionPlanner.add({
842
- stepId: call.stepId,
843
- executor: call.executor,
844
- to: call.to,
845
- value: call.value,
846
- data: call.data,
847
- operation: call.operation,
848
- });
849
- } catch (planError) {
850
- if (planError instanceof ExecutionSegmentDeferred) {
851
- executionSegmentDeferred = true;
852
- reporter.event("execution.segment.deferred", {
853
- transactionId: planError.transactionId,
854
- });
855
- break;
856
- }
857
- throw planError;
858
- }
859
- if (planned.route !== "external") {
860
- throw new Error(
861
- `Step ${call.stepId} requested external execution for an operator route`,
862
- );
863
- }
864
- if (planned.executionAction !== "replay") {
865
- context.externalCalls.push({
866
- ...call,
867
- transactionId: planned.transactionId,
868
- stepId: planned.stepId,
869
- executor: planned.executor,
870
- to: planned.to,
871
- value: planned.value,
872
- data: planned.data,
873
- operation: planned.operation,
874
- });
875
- }
876
- }
877
- if (executionSegmentDeferred) break stepLoop;
878
- continue;
879
- }
880
- throw error;
881
- }
882
- reporter.event("step.completed", { stepId: step.id, kind: step.kind });
883
- } finally {
884
- if (configuredCaller) reporter.clearSimulationCallerAddress();
885
- }
886
- }
750
+ const { executionSegmentDeferred } = await runWorkflowSteps(context, steps, {
751
+ simulationCallers: simulationCallerBinding?.resolved,
752
+ runCustomStep,
753
+ });
887
754
 
888
755
  const plannedBody = context.executionPlanner?.complete({
889
756
  allowPartial: executionSegmentDeferred,
@@ -893,7 +760,7 @@ async function main(): Promise<void> {
893
760
  : lockedExecutionPlan;
894
761
 
895
762
  if (mode === "simulate") {
896
- await verifySimulationForkSnapshot(context.simulation);
763
+ await verifySimulationForkSnapshot(hardhat, context.simulation);
897
764
  }
898
765
  if (completedPlan && mode === "execute") {
899
766
  writeOperatorExecutionResult({
@@ -2,8 +2,10 @@ import { runStaticValidation } from "./lib/staticValidation";
2
2
 
3
3
  const taskAt = process.argv.findIndex((item) => item === "--task");
4
4
  const deploymentId = taskAt >= 0 ? process.argv[taskAt + 1] : process.env.WORKFLOW_TASK;
5
- const networkAt = process.argv.findIndex((item) => item === "--network");
6
- const selectedNetwork = networkAt >= 0 ? process.argv[networkAt + 1] : undefined;
5
+ const evmAt = process.argv.findIndex((item) => item === "--evm-network");
6
+ const zkAt = process.argv.findIndex((item) => item === "--zksync-network");
7
+ const evmNetwork = evmAt >= 0 ? process.argv[evmAt + 1] : undefined;
8
+ const zkNetwork = zkAt >= 0 ? process.argv[zkAt + 1] : undefined;
7
9
 
8
10
  if (!deploymentId) {
9
11
  console.error("workflow:static-validate requires --task <deploymentId> or WORKFLOW_TASK");
@@ -12,7 +14,10 @@ if (!deploymentId) {
12
14
  void runStaticValidation({
13
15
  root: process.cwd(),
14
16
  deploymentId,
15
- network: selectedNetwork,
17
+ compileTargets: evmNetwork && zkNetwork ? [
18
+ { scheme: "evm", network: evmNetwork },
19
+ { scheme: "zksync-eravm", network: zkNetwork },
20
+ ] : [],
16
21
  }).then((result) => {
17
22
  console.log(JSON.stringify(result));
18
23
  if (result.status !== "passed") process.exitCode = 1;
@@ -1,4 +1,4 @@
1
- import { WorkflowContext } from "../run";
1
+ import type { WorkflowContext } from "../lib/context";
2
2
  import { WorkflowStep } from "../lib/parameters";
3
3
  import { runContractWriteCalls } from "../lib/calls";
4
4
 
@@ -1,4 +1,4 @@
1
- import { WorkflowContext } from "../run";
1
+ import type { WorkflowContext } from "../lib/context";
2
2
  import { WorkflowStep } from "../lib/parameters";
3
3
  import { runContractCheckCalls } from "../lib/calls";
4
4
 
@@ -1,6 +1,6 @@
1
1
  import path from "path";
2
2
  import { createRequire } from "module";
3
- import type { WorkflowContext } from "../run";
3
+ import type { WorkflowContext } from "../lib/context";
4
4
  import type { WorkflowStep } from "../lib/parameters";
5
5
 
6
6
  type CustomStepRunner = (
@@ -1,13 +1,14 @@
1
+ import { resolveWorkflowValue } from '../lib/validation';
2
+ import { recordPreparedDeployment } from "../lib/preparationEvidence";
1
3
  import { CONTROLLED_MULTICALL_AUTHORITY_ABI } from "../lib/controlledMulticallAbi";
2
4
  import path from "path";
3
- import { ethers, network } from "../../projectHardhat";
4
5
  import type {
5
6
  GateToolDeploymentPlan,
6
7
  GateToolPreparationPlanV1,
7
8
  GateToolPreparationRequestV1,
8
9
  GateToolTransactionPlan,
9
10
  } from "gate-evm-tools/workflow";
10
- import type { WorkflowContext } from "../run";
11
+ import type { WorkflowContext } from "../lib/context";
11
12
  import {
12
13
  requireExistingDeploymentPolicy,
13
14
  resolveExistingDeploymentPolicyAction,
@@ -29,27 +30,20 @@ import {
29
30
  } from "../lib/create2";
30
31
  import { assertReusableDeployment } from "../lib/checkCodeReport";
31
32
  import { getERC1967Implementation } from "../lib/erc1967";
32
- import { recordParameterLockImplementationSalts } from "../lib/lock";
33
33
  import {
34
34
  deriveImplementationSalt,
35
35
  FirstUpgradeOptions,
36
36
  ProxyOptions,
37
37
  } from "../lib/proxy";
38
38
  import { decideControlledMulticallAuthority } from "../lib/authority";
39
- import { impersonateWorkflowSimulationSigner } from "../lib/signer";
39
+ import { impersonateLocalForkSigner } from "../lib/runtime";
40
40
  import { prepareGateToolWorkflow } from "../lib/gateTool";
41
41
  import { syncGateToolUups } from "../lib/gateToolSync";
42
- import { resolvePendingUupsReuse } from "../lib/pendingDeploymentReuse";
43
42
 
44
43
  const resolveInContext = (
45
44
  context: WorkflowContext,
46
45
  value: unknown,
47
- ): unknown => resolveValue(value, {
48
- targetId: context.targetId,
49
- target: context.target,
50
- params: context.targetParams,
51
- state: context.state,
52
- });
46
+ ): unknown => resolveWorkflowValue(context, value);
53
47
 
54
48
  const resolveArray = (
55
49
  context: WorkflowContext,
@@ -168,7 +162,7 @@ const applyExistingDeploymentPolicy = async (
168
162
  const existing = findDeploymentAddress(context.root, context.config, context.targetId, saveAs);
169
163
  if (!existing) return { completed: false, create2Options };
170
164
  const policy = requireExistingDeploymentPolicy(context.existingDeploymentPolicies, saveAs);
171
- const implementationAddress = await getERC1967Implementation(ethers.provider, existing);
165
+ const implementationAddress = await getERC1967Implementation(context.runtime.hre.ethers.provider, existing);
172
166
  const action = resolveExistingDeploymentPolicyAction(policy, {
173
167
  instanceId: saveAs,
174
168
  existingAddress: existing,
@@ -188,8 +182,10 @@ const applyExistingDeploymentPolicy = async (
188
182
  address: existing,
189
183
  artifactHash: context.releaseArtifactHash,
190
184
  });
191
- context.deploymentRecorder?.prepare(preparedChange);
192
- context.deploymentRecorder?.apply({
185
+ if (context.preparations || context.validation) throw new Error("Delivery registry reuse requires bound preparation evidence; cannot omit expected transactions");
186
+ const recorder = context.mode === "execute" ? context.deploymentRecorder : undefined;
187
+ recorder?.prepare(preparedChange);
188
+ recorder?.apply({
193
189
  ...preparedChange,
194
190
  address: existing,
195
191
  proxyAddress: implementationAddress ? existing : undefined,
@@ -243,10 +239,11 @@ const deploymentForRole = (
243
239
  };
244
240
 
245
241
  const assertDeployedCode = async (
242
+ context: WorkflowContext,
246
243
  label: string,
247
244
  address: string,
248
245
  ): Promise<void> => {
249
- const code = await ethers.provider.getCode(address);
246
+ const code = await context.runtime.hre.ethers.provider.getCode(address);
250
247
  if (!code || code === "0x") {
251
248
  throw new Error(`${label} is missing deployed code at ${address}`);
252
249
  }
@@ -286,7 +283,7 @@ const runGateToolControlledMulticall = async (
286
283
  })),
287
284
  create2.scheme,
288
285
  );
289
- const multicall = await ethers.getContractAt(
286
+ const multicall = await context.runtime.hre.ethers.getContractAt(
290
287
  CONTROLLED_MULTICALL_AUTHORITY_ABI,
291
288
  create2.controlledMulticall,
292
289
  context.signer,
@@ -327,6 +324,7 @@ const runGateToolControlledMulticall = async (
327
324
  ...(prepared.scheme === undefined ? {} : { scheme: prepared.scheme }),
328
325
  ...(prepared.factoryDeps === undefined ? {} : { factoryDeps: prepared.factoryDeps }),
329
326
  });
327
+ context.preparations?.bind(step.id, { transactionId: planned.transactionId, gateToolTransactionIds: transactions.map(t => t.id), kind: "multicall" });
330
328
  if (planned.executionAction === "replay") {
331
329
  return {
332
330
  external: planned.route === "external",
@@ -350,9 +348,10 @@ const runGateToolControlledMulticall = async (
350
348
  return { external: true, transactionId: planned.transactionId };
351
349
  }
352
350
  const selectedSigner = planned.route === "external"
353
- ? await impersonateWorkflowSimulationSigner(planned.executor)
351
+ ? await impersonateLocalForkSigner(context.runtime, planned.executor)
354
352
  : context.signer;
355
353
  const transaction = await sendPreparedControlledMulticallTransaction(prepared, selectedSigner);
354
+ context.transactionObserver?.record({ transactionId: planned.transactionId, transactionHash: transaction.hash });
356
355
  if (context.mode === "execute" && planned.route === "operator") {
357
356
  context.operatorReceipts.push({
358
357
  transactionId: planned.transactionId,
@@ -449,31 +448,26 @@ export const runDeployStep = async (
449
448
  );
450
449
  if (existingResolution.completed) return;
451
450
  const effectiveCreate2 = existingResolution.create2Options;
452
- const pendingReuse = context.parameterLockExecutionId
453
- ? await resolvePendingUupsReuse({
454
- root: context.root,
455
- taskDir: context.taskDir,
456
- taskId: context.taskId,
457
- currentExecutionId: context.parameterLockExecutionId,
458
- network: context.targetId,
459
- stepId: step.id,
460
- instanceId: saveAs,
461
- actualContract,
462
- contractInfoKey: registryKey,
463
- scheme: effectiveCreate2.scheme,
464
- factory: effectiveCreate2.factory,
465
- multicall: effectiveCreate2.controlledMulticall!,
466
- proxySalt: effectiveCreate2.salt,
467
- expectedAddress: effectiveCreate2.expectedAddress,
468
- placeholderImplementationAddress: effectiveCreate2.uupsPlaceholderImplementation!,
469
- provider: ethers.provider,
470
- blockTag: context.mode === "simulate"
471
- ? context.simulation.snapshot?.blockNumber
472
- : undefined,
473
- })
474
- : undefined;
451
+ const pendingReuse = await context.pendingUupsReuse?.resolve({
452
+ taskId: context.taskId,
453
+ network: context.targetId,
454
+ stepId: step.id,
455
+ instanceId: saveAs,
456
+ actualContract,
457
+ contractInfoKey: registryKey,
458
+ scheme: effectiveCreate2.scheme,
459
+ factory: effectiveCreate2.factory,
460
+ multicall: effectiveCreate2.controlledMulticall!,
461
+ proxySalt: effectiveCreate2.salt,
462
+ expectedAddress: effectiveCreate2.expectedAddress,
463
+ placeholderImplementationAddress: effectiveCreate2.uupsPlaceholderImplementation!,
464
+ provider: context.runtime.hre.ethers.provider,
465
+ blockTag: context.mode === "simulate"
466
+ ? context.simulation.snapshot?.blockNumber
467
+ : undefined,
468
+ });
475
469
  const implementationSalt = pendingReuse?.implementationSalt ?? deriveImplementationSalt(
476
- context.executionId,
470
+ context.bindings?.derivationSeed ?? context.executionId,
477
471
  firstUpgrade.contractName,
478
472
  effectiveCreate2.salt,
479
473
  );
@@ -481,7 +475,7 @@ export const runDeployStep = async (
481
475
  version: 1,
482
476
  kind: "uups-placeholder-deploy",
483
477
  scheme: effectiveCreate2.scheme,
484
- network: network.name,
478
+ network: context.runtime.hre.network.name,
485
479
  target: context.targetId,
486
480
  contract: firstUpgrade.contractName,
487
481
  constructorArgs: firstUpgrade.constructorArgs || [],
@@ -501,10 +495,13 @@ export const runDeployStep = async (
501
495
  : {}),
502
496
  };
503
497
  const prepared = await prepareGateToolWorkflow({
498
+ hre: context.runtime.hre,
499
+ validation: context.validation,
504
500
  root: context.root,
505
501
  evidenceDir: gateToolEvidenceDir(context),
506
502
  evidenceName: step.id,
507
503
  request,
504
+ expected: context.preparations?.expected(step.id, request),
508
505
  readBlockTag: context.mode === "simulate"
509
506
  ? context.simulation.snapshot?.blockNumber
510
507
  : undefined,
@@ -512,8 +509,8 @@ export const runDeployStep = async (
512
509
  const implementation = deploymentForRole(prepared.plan, "implementation");
513
510
  const proxyDeployment = deploymentForRole(prepared.plan, "proxy");
514
511
  if (pendingReuse && (
515
- prepared.plan.transactions.length !== 0
516
- || prepared.plan.artifact.digest !== pendingReuse.evidence.artifactDigest
512
+ (!pendingReuse.binding && prepared.plan.transactions.length !== 0)
513
+ || prepared.plan.artifact.digest !== pendingReuse.artifactDigest
517
514
  || implementation.address.toLowerCase() !== pendingReuse.implementationAddress.toLowerCase()
518
515
  || proxyDeployment.address.toLowerCase() !== pendingReuse.proxyAddress.toLowerCase()
519
516
  )) {
@@ -536,6 +533,7 @@ export const runDeployStep = async (
536
533
  const plannedChange: DeploymentChange = {
537
534
  ...preparedChange,
538
535
  salt: effectiveCreate2.salt,
536
+ expectedAddress: effectiveCreate2.expectedAddress,
539
537
  previousAddress: existingResolution.existingAddress,
540
538
  redeployReason: existingResolution.redeployReason,
541
539
  implementationAddress: implementation.address,
@@ -543,16 +541,11 @@ export const runDeployStep = async (
543
541
  constructorArgs: firstUpgrade.constructorArgs || [],
544
542
  predictedAddress: proxyDeployment.address,
545
543
  gateTool,
546
- ...(pendingReuse ? { pendingReuse: pendingReuse.evidence } : {}),
544
+ ...(pendingReuse?.legacyEvidence ? { pendingReuse: pendingReuse.legacyEvidence } : {}),
547
545
  };
548
- if (context.parameterLockExecutionId) {
549
- recordParameterLockImplementationSalts(
550
- context.taskDir,
551
- context.parameterLockExecutionId,
552
- { [`${step.id}.implementation`]: implementationSalt },
553
- );
554
- }
546
+ context.bindings?.recordOrAssertDerivedValue(`${step.id}.implementation`, implementationSalt);
555
547
  recorder?.prepare(plannedChange);
548
+ recordPreparedDeployment(context, plannedChange, prepared, [`${step.id}.implementation`]);
556
549
  if (context.mode === "execute") {
557
550
  recorder?.stageAddressCandidate(plannedChange, proxyDeployment.address);
558
551
  }
@@ -567,12 +560,13 @@ export const runDeployStep = async (
567
560
  }
568
561
  if (!execution.external) {
569
562
  await assertDeployedCode(
563
+ context,
570
564
  `${firstUpgrade.contractName} implementation`,
571
565
  implementation.address,
572
566
  );
573
- await assertDeployedCode("ERC1967Proxy", proxyDeployment.address);
567
+ await assertDeployedCode(context, "ERC1967Proxy", proxyDeployment.address);
574
568
  const currentImplementation = await getERC1967Implementation(
575
- ethers.provider,
569
+ context.runtime.hre.ethers.provider,
576
570
  proxyDeployment.address,
577
571
  );
578
572
  if (
@@ -588,11 +582,12 @@ export const runDeployStep = async (
588
582
  && !execution.external
589
583
  && proxyDeployment.status !== "reused"
590
584
  ? await syncGateToolUups({
585
+ hre: context.runtime.hre,
591
586
  root: context.root,
592
587
  evidenceDir: gateToolEvidenceDir(context),
593
588
  evidenceName: step.id,
594
589
  scheme: prepared.plan.scheme,
595
- network: network.name,
590
+ network: context.runtime.hre.network.name,
596
591
  target: context.targetId,
597
592
  manifestDir: context.target.openzeppelin.manifestDir,
598
593
  proxy: proxyDeployment.address,
@@ -644,7 +639,7 @@ export const runDeployStep = async (
644
639
  txHash: execution.txHash,
645
640
  gateToolPlan: gateTool.outputPath,
646
641
  gateToolSync: gateToolSync?.outputPath,
647
- pendingReuse: pendingReuse?.evidence,
642
+ pendingReuse: pendingReuse?.legacyEvidence ?? pendingReuse?.binding,
648
643
  });
649
644
  return;
650
645
  }
@@ -679,7 +674,7 @@ export const runDeployStep = async (
679
674
  version: 1,
680
675
  kind: "create2-deploy",
681
676
  scheme: effectiveCreate2.scheme,
682
- network: network.name,
677
+ network: context.runtime.hre.network.name,
683
678
  target: context.targetId,
684
679
  contract: contractName,
685
680
  constructorArgs: args,
@@ -696,10 +691,13 @@ export const runDeployStep = async (
696
691
  : {}),
697
692
  };
698
693
  const prepared = await prepareGateToolWorkflow({
694
+ hre: context.runtime.hre,
695
+ validation: context.validation,
699
696
  root: context.root,
700
697
  evidenceDir: gateToolEvidenceDir(context),
701
698
  evidenceName: step.id,
702
699
  request,
700
+ expected: context.preparations?.expected(step.id, request),
703
701
  readBlockTag: context.mode === "simulate"
704
702
  ? context.simulation.snapshot?.blockNumber
705
703
  : undefined,
@@ -723,6 +721,7 @@ export const runDeployStep = async (
723
721
  gateTool,
724
722
  };
725
723
  recorder?.prepare(preparedChange);
724
+ recordPreparedDeployment(context, preparedChange, prepared, []);
726
725
  if (context.mode === "execute") {
727
726
  recorder?.stageAddressCandidate(preparedChange, deployment.address);
728
727
  }
@@ -733,7 +732,7 @@ export const runDeployStep = async (
733
732
  prepared.plan.transactions,
734
733
  );
735
734
  if (!execution.external) {
736
- await assertDeployedCode(contractName, deployment.address);
735
+ await assertDeployedCode(context, contractName, deployment.address);
737
736
  }
738
737
  if (context.mode === "execute" && !execution.external) {
739
738
  recorder?.applyAddress({