gate-evm-tools 1.0.27 → 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 (641) 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/hardhatAdapters.d.ts +2 -0
  107. package/dist-runtime/config/hardhatAdapters.js +8 -0
  108. package/dist-runtime/config/hardhatAdapters.js.map +1 -1
  109. package/dist-runtime/config/networks.d.ts +25 -1
  110. package/dist-runtime/config/networks.js +8 -2
  111. package/dist-runtime/config/networks.js.map +1 -1
  112. package/dist-runtime/config/openzeppelin.d.ts +2 -1
  113. package/dist-runtime/config/openzeppelin.js +2 -19
  114. package/dist-runtime/config/openzeppelin.js.map +1 -1
  115. package/dist-runtime/delivery/abi.d.ts +14 -0
  116. package/dist-runtime/delivery/abi.js +161 -0
  117. package/dist-runtime/delivery/abi.js.map +1 -0
  118. package/dist-runtime/delivery/aggregate-bootstrap.d.ts +12 -0
  119. package/dist-runtime/delivery/aggregate-bootstrap.js +40 -0
  120. package/dist-runtime/delivery/aggregate-bootstrap.js.map +1 -0
  121. package/dist-runtime/delivery/aggregate-channel.d.ts +28 -0
  122. package/dist-runtime/delivery/aggregate-channel.js +155 -0
  123. package/dist-runtime/delivery/aggregate-channel.js.map +1 -0
  124. package/dist-runtime/delivery/aggregate-inputs.d.ts +168 -0
  125. package/dist-runtime/delivery/aggregate-inputs.js +57 -0
  126. package/dist-runtime/delivery/aggregate-inputs.js.map +1 -0
  127. package/dist-runtime/delivery/aggregate-source.d.ts +25 -0
  128. package/dist-runtime/delivery/aggregate-source.js +79 -0
  129. package/dist-runtime/delivery/aggregate-source.js.map +1 -0
  130. package/dist-runtime/delivery/aggregate-worker.d.ts +1 -0
  131. package/dist-runtime/delivery/aggregate-worker.js +191 -0
  132. package/dist-runtime/delivery/aggregate-worker.js.map +1 -0
  133. package/dist-runtime/delivery/aggregate.d.ts +51 -0
  134. package/dist-runtime/delivery/aggregate.js +190 -0
  135. package/dist-runtime/delivery/aggregate.js.map +1 -0
  136. package/dist-runtime/delivery/bindings.d.ts +21 -0
  137. package/dist-runtime/delivery/bindings.js +53 -0
  138. package/dist-runtime/delivery/bindings.js.map +1 -0
  139. package/dist-runtime/delivery/check-code.d.ts +19 -0
  140. package/dist-runtime/delivery/check-code.js +63 -0
  141. package/dist-runtime/delivery/check-code.js.map +1 -0
  142. package/dist-runtime/delivery/closure-format.d.ts +77 -0
  143. package/dist-runtime/delivery/closure-format.js +225 -0
  144. package/dist-runtime/delivery/closure-format.js.map +1 -0
  145. package/dist-runtime/delivery/codec-pin.d.ts +2 -0
  146. package/dist-runtime/delivery/codec-pin.js +7 -0
  147. package/dist-runtime/delivery/codec-pin.js.map +1 -0
  148. package/dist-runtime/delivery/codec.d.ts +19 -0
  149. package/dist-runtime/delivery/codec.js +73 -0
  150. package/dist-runtime/delivery/codec.js.map +1 -0
  151. package/dist-runtime/delivery/compiler-dependency-pins.d.ts +7 -0
  152. package/dist-runtime/delivery/compiler-dependency-pins.js +1689 -0
  153. package/dist-runtime/delivery/compiler-dependency-pins.js.map +1 -0
  154. package/dist-runtime/delivery/compiler-files.d.ts +40 -0
  155. package/dist-runtime/delivery/compiler-files.js +220 -0
  156. package/dist-runtime/delivery/compiler-files.js.map +1 -0
  157. package/dist-runtime/delivery/compiler-io.d.ts +2 -0
  158. package/dist-runtime/delivery/compiler-io.js +13 -0
  159. package/dist-runtime/delivery/compiler-io.js.map +1 -0
  160. package/dist-runtime/delivery/compiler-pins.d.ts +10 -0
  161. package/dist-runtime/delivery/compiler-pins.js +147 -0
  162. package/dist-runtime/delivery/compiler-pins.js.map +1 -0
  163. package/dist-runtime/delivery/compiler.d.ts +188 -0
  164. package/dist-runtime/delivery/compiler.js +850 -0
  165. package/dist-runtime/delivery/compiler.js.map +1 -0
  166. package/dist-runtime/delivery/config.d.ts +48 -0
  167. package/dist-runtime/delivery/config.js +99 -0
  168. package/dist-runtime/delivery/config.js.map +1 -0
  169. package/dist-runtime/delivery/configuration-definition.d.ts +22 -0
  170. package/dist-runtime/delivery/configuration-definition.js +316 -0
  171. package/dist-runtime/delivery/configuration-definition.js.map +1 -0
  172. package/dist-runtime/delivery/configuration-hre.d.ts +17 -0
  173. package/dist-runtime/delivery/configuration-hre.js +198 -0
  174. package/dist-runtime/delivery/configuration-hre.js.map +1 -0
  175. package/dist-runtime/delivery/configuration-runtime.d.ts +36 -0
  176. package/dist-runtime/delivery/configuration-runtime.js +248 -0
  177. package/dist-runtime/delivery/configuration-runtime.js.map +1 -0
  178. package/dist-runtime/delivery/configuration.d.ts +35 -0
  179. package/dist-runtime/delivery/configuration.js +83 -0
  180. package/dist-runtime/delivery/configuration.js.map +1 -0
  181. package/dist-runtime/delivery/create2.d.ts +3 -0
  182. package/dist-runtime/delivery/create2.js +48 -0
  183. package/dist-runtime/delivery/create2.js.map +1 -0
  184. package/dist-runtime/delivery/custom-closure.d.ts +27 -0
  185. package/dist-runtime/delivery/custom-closure.js +818 -0
  186. package/dist-runtime/delivery/custom-closure.js.map +1 -0
  187. package/dist-runtime/delivery/custom-format.d.ts +35 -0
  188. package/dist-runtime/delivery/custom-format.js +383 -0
  189. package/dist-runtime/delivery/custom-format.js.map +1 -0
  190. package/dist-runtime/delivery/custom.d.ts +32 -0
  191. package/dist-runtime/delivery/custom.js +158 -0
  192. package/dist-runtime/delivery/custom.js.map +1 -0
  193. package/dist-runtime/delivery/data.d.ts +7 -0
  194. package/dist-runtime/delivery/data.js +86 -0
  195. package/dist-runtime/delivery/data.js.map +1 -0
  196. package/dist-runtime/delivery/development.d.ts +91 -0
  197. package/dist-runtime/delivery/development.js +395 -0
  198. package/dist-runtime/delivery/development.js.map +1 -0
  199. package/dist-runtime/delivery/engine.d.ts +9 -0
  200. package/dist-runtime/delivery/engine.js +23 -0
  201. package/dist-runtime/delivery/engine.js.map +1 -0
  202. package/dist-runtime/delivery/eoa-observation.d.ts +43 -0
  203. package/dist-runtime/delivery/eoa-observation.js +145 -0
  204. package/dist-runtime/delivery/eoa-observation.js.map +1 -0
  205. package/dist-runtime/delivery/eoa-signed.d.ts +2 -0
  206. package/dist-runtime/delivery/eoa-signed.js +74 -0
  207. package/dist-runtime/delivery/eoa-signed.js.map +1 -0
  208. package/dist-runtime/delivery/eoa.d.ts +81 -0
  209. package/dist-runtime/delivery/eoa.js +274 -0
  210. package/dist-runtime/delivery/eoa.js.map +1 -0
  211. package/dist-runtime/delivery/execution-db.d.ts +20 -0
  212. package/dist-runtime/delivery/execution-db.js +153 -0
  213. package/dist-runtime/delivery/execution-db.js.map +1 -0
  214. package/dist-runtime/delivery/execution-files.d.ts +9 -0
  215. package/dist-runtime/delivery/execution-files.js +138 -0
  216. package/dist-runtime/delivery/execution-files.js.map +1 -0
  217. package/dist-runtime/delivery/execution-model.d.ts +56 -0
  218. package/dist-runtime/delivery/execution-model.js +66 -0
  219. package/dist-runtime/delivery/execution-model.js.map +1 -0
  220. package/dist-runtime/delivery/execution-store.d.ts +48 -0
  221. package/dist-runtime/delivery/execution-store.js +361 -0
  222. package/dist-runtime/delivery/execution-store.js.map +1 -0
  223. package/dist-runtime/delivery/existing-code.d.ts +37 -0
  224. package/dist-runtime/delivery/existing-code.js +75 -0
  225. package/dist-runtime/delivery/existing-code.js.map +1 -0
  226. package/dist-runtime/delivery/export.d.ts +51 -0
  227. package/dist-runtime/delivery/export.js +69 -0
  228. package/dist-runtime/delivery/export.js.map +1 -0
  229. package/dist-runtime/delivery/forkAudit.d.ts +119 -0
  230. package/dist-runtime/delivery/forkAudit.js +473 -0
  231. package/dist-runtime/delivery/forkAudit.js.map +1 -0
  232. package/dist-runtime/delivery/hardhat.d.ts +3 -0
  233. package/dist-runtime/delivery/hardhat.js +45 -0
  234. package/dist-runtime/delivery/hardhat.js.map +1 -0
  235. package/dist-runtime/delivery/history-registration.d.ts +2 -0
  236. package/dist-runtime/delivery/history-registration.js +17 -0
  237. package/dist-runtime/delivery/history-registration.js.map +1 -0
  238. package/dist-runtime/delivery/identities.d.ts +22 -0
  239. package/dist-runtime/delivery/identities.js +97 -0
  240. package/dist-runtime/delivery/identities.js.map +1 -0
  241. package/dist-runtime/delivery/input-files.d.ts +5 -0
  242. package/dist-runtime/delivery/input-files.js +70 -0
  243. package/dist-runtime/delivery/input-files.js.map +1 -0
  244. package/dist-runtime/delivery/inputs.d.ts +62 -0
  245. package/dist-runtime/delivery/inputs.js +187 -0
  246. package/dist-runtime/delivery/inputs.js.map +1 -0
  247. package/dist-runtime/delivery/journal.d.ts +35 -0
  248. package/dist-runtime/delivery/journal.js +270 -0
  249. package/dist-runtime/delivery/journal.js.map +1 -0
  250. package/dist-runtime/delivery/manifest.d.ts +14 -0
  251. package/dist-runtime/delivery/manifest.js +68 -0
  252. package/dist-runtime/delivery/manifest.js.map +1 -0
  253. package/dist-runtime/delivery/materialization.d.ts +20 -0
  254. package/dist-runtime/delivery/materialization.js +138 -0
  255. package/dist-runtime/delivery/materialization.js.map +1 -0
  256. package/dist-runtime/delivery/observations.d.ts +31 -0
  257. package/dist-runtime/delivery/observations.js +38 -0
  258. package/dist-runtime/delivery/observations.js.map +1 -0
  259. package/dist-runtime/delivery/parameters.d.ts +53 -0
  260. package/dist-runtime/delivery/parameters.js +257 -0
  261. package/dist-runtime/delivery/parameters.js.map +1 -0
  262. package/dist-runtime/delivery/pending.d.ts +70 -0
  263. package/dist-runtime/delivery/pending.js +99 -0
  264. package/dist-runtime/delivery/pending.js.map +1 -0
  265. package/dist-runtime/delivery/plan.d.ts +50 -0
  266. package/dist-runtime/delivery/plan.js +209 -0
  267. package/dist-runtime/delivery/plan.js.map +1 -0
  268. package/dist-runtime/delivery/planning.d.ts +81 -0
  269. package/dist-runtime/delivery/planning.js +302 -0
  270. package/dist-runtime/delivery/planning.js.map +1 -0
  271. package/dist-runtime/delivery/policy.d.ts +4 -0
  272. package/dist-runtime/delivery/policy.js +9 -0
  273. package/dist-runtime/delivery/policy.js.map +1 -0
  274. package/dist-runtime/delivery/preparation.d.ts +6 -0
  275. package/dist-runtime/delivery/preparation.js +158 -0
  276. package/dist-runtime/delivery/preparation.js.map +1 -0
  277. package/dist-runtime/delivery/production-environment.d.ts +2 -0
  278. package/dist-runtime/delivery/production-environment.js +12 -0
  279. package/dist-runtime/delivery/production-environment.js.map +1 -0
  280. package/dist-runtime/delivery/production-finalization.d.ts +86 -0
  281. package/dist-runtime/delivery/production-finalization.js +278 -0
  282. package/dist-runtime/delivery/production-finalization.js.map +1 -0
  283. package/dist-runtime/delivery/production.d.ts +461 -0
  284. package/dist-runtime/delivery/production.js +396 -0
  285. package/dist-runtime/delivery/production.js.map +1 -0
  286. package/dist-runtime/delivery/project-files.d.ts +8 -0
  287. package/dist-runtime/delivery/project-files.js +82 -0
  288. package/dist-runtime/delivery/project-files.js.map +1 -0
  289. package/dist-runtime/delivery/project.d.ts +15 -0
  290. package/dist-runtime/delivery/project.js +157 -0
  291. package/dist-runtime/delivery/project.js.map +1 -0
  292. package/dist-runtime/delivery/protocol.d.ts +49 -0
  293. package/dist-runtime/delivery/protocol.js +112 -0
  294. package/dist-runtime/delivery/protocol.js.map +1 -0
  295. package/dist-runtime/delivery/references.d.ts +19 -0
  296. package/dist-runtime/delivery/references.js +84 -0
  297. package/dist-runtime/delivery/references.js.map +1 -0
  298. package/dist-runtime/delivery/release-graph.d.ts +93 -0
  299. package/dist-runtime/delivery/release-graph.js +106 -0
  300. package/dist-runtime/delivery/release-graph.js.map +1 -0
  301. package/dist-runtime/delivery/release-history-capture.d.ts +7 -0
  302. package/dist-runtime/delivery/release-history-capture.js +76 -0
  303. package/dist-runtime/delivery/release-history-capture.js.map +1 -0
  304. package/dist-runtime/delivery/release-history.d.ts +43 -0
  305. package/dist-runtime/delivery/release-history.js +246 -0
  306. package/dist-runtime/delivery/release-history.js.map +1 -0
  307. package/dist-runtime/delivery/release.d.ts +172 -0
  308. package/dist-runtime/delivery/release.js +209 -0
  309. package/dist-runtime/delivery/release.js.map +1 -0
  310. package/dist-runtime/delivery/safe-manifest.d.ts +9 -0
  311. package/dist-runtime/delivery/safe-manifest.js +13 -0
  312. package/dist-runtime/delivery/safe-manifest.js.map +1 -0
  313. package/dist-runtime/delivery/safe-observation.d.ts +30 -0
  314. package/dist-runtime/delivery/safe-observation.js +487 -0
  315. package/dist-runtime/delivery/safe-observation.js.map +1 -0
  316. package/dist-runtime/delivery/safe-prepare.d.ts +13 -0
  317. package/dist-runtime/delivery/safe-prepare.js +81 -0
  318. package/dist-runtime/delivery/safe-prepare.js.map +1 -0
  319. package/dist-runtime/delivery/safe.d.ts +91 -0
  320. package/dist-runtime/delivery/safe.js +243 -0
  321. package/dist-runtime/delivery/safe.js.map +1 -0
  322. package/dist-runtime/delivery/same-fork-baseline.d.ts +8 -0
  323. package/dist-runtime/delivery/same-fork-baseline.js +20 -0
  324. package/dist-runtime/delivery/same-fork-baseline.js.map +1 -0
  325. package/dist-runtime/delivery/setup.d.ts +31 -0
  326. package/dist-runtime/delivery/setup.js +215 -0
  327. package/dist-runtime/delivery/setup.js.map +1 -0
  328. package/dist-runtime/delivery/source.d.ts +41 -0
  329. package/dist-runtime/delivery/source.js +137 -0
  330. package/dist-runtime/delivery/source.js.map +1 -0
  331. package/dist-runtime/delivery/target-fields.d.ts +2 -0
  332. package/dist-runtime/delivery/target-fields.js +11 -0
  333. package/dist-runtime/delivery/target-fields.js.map +1 -0
  334. package/dist-runtime/delivery/validation.d.ts +9 -0
  335. package/dist-runtime/delivery/validation.js +150 -0
  336. package/dist-runtime/delivery/validation.js.map +1 -0
  337. package/dist-runtime/delivery/verification.d.ts +16 -0
  338. package/dist-runtime/delivery/verification.js +65 -0
  339. package/dist-runtime/delivery/verification.js.map +1 -0
  340. package/dist-runtime/migrate.js +1 -0
  341. package/dist-runtime/migrate.js.map +1 -1
  342. package/dist-runtime/miner/binary.d.ts +2 -0
  343. package/dist-runtime/miner/binary.js +54 -0
  344. package/dist-runtime/miner/binary.js.map +1 -0
  345. package/dist-runtime/miner/cli.d.ts +1 -0
  346. package/dist-runtime/miner/cli.js +131 -0
  347. package/dist-runtime/miner/cli.js.map +1 -0
  348. package/dist-runtime/miner/index.d.ts +5 -0
  349. package/dist-runtime/miner/index.js +13 -0
  350. package/dist-runtime/miner/index.js.map +1 -0
  351. package/dist-runtime/miner/request.d.ts +7 -0
  352. package/dist-runtime/miner/request.js +73 -0
  353. package/dist-runtime/miner/request.js.map +1 -0
  354. package/dist-runtime/miner/runner.d.ts +2 -0
  355. package/dist-runtime/miner/runner.js +131 -0
  356. package/dist-runtime/miner/runner.js.map +1 -0
  357. package/dist-runtime/miner/types.d.ts +89 -0
  358. package/dist-runtime/miner/types.js +3 -0
  359. package/dist-runtime/miner/types.js.map +1 -0
  360. package/dist-runtime/miner/verify.d.ts +2 -0
  361. package/dist-runtime/miner/verify.js +75 -0
  362. package/dist-runtime/miner/verify.js.map +1 -0
  363. package/dist-runtime/runtime-identity.json +2 -2
  364. package/dist-runtime/vendor/plan-codec/index.cjs +820 -0
  365. package/dist-runtime/vendor/plan-codec/index.d.cts +32 -0
  366. package/dist-runtime/vendor/plan-codec/provenance.json +24 -0
  367. package/dist-runtime/workflow/engine.d.ts +14 -0
  368. package/dist-runtime/workflow/engine.js +160 -0
  369. package/dist-runtime/workflow/engine.js.map +1 -0
  370. package/dist-runtime/workflow/lib/authority.d.ts +6 -3
  371. package/dist-runtime/workflow/lib/authority.js.map +1 -1
  372. package/dist-runtime/workflow/lib/calls.d.ts +1 -1
  373. package/dist-runtime/workflow/lib/calls.js +43 -34
  374. package/dist-runtime/workflow/lib/calls.js.map +1 -1
  375. package/dist-runtime/workflow/lib/canonicalData.d.ts +8 -0
  376. package/dist-runtime/workflow/lib/canonicalData.js +68 -0
  377. package/dist-runtime/workflow/lib/canonicalData.js.map +1 -0
  378. package/dist-runtime/workflow/lib/config.d.ts +3 -1
  379. package/dist-runtime/workflow/lib/config.js.map +1 -1
  380. package/dist-runtime/workflow/lib/context.d.ts +76 -0
  381. package/dist-runtime/workflow/lib/context.js +3 -0
  382. package/dist-runtime/workflow/lib/context.js.map +1 -0
  383. package/dist-runtime/workflow/lib/controlledMulticallAbi.d.ts +2 -0
  384. package/dist-runtime/workflow/lib/controlledMulticallAbi.js +10 -0
  385. package/dist-runtime/workflow/lib/controlledMulticallAbi.js.map +1 -0
  386. package/dist-runtime/workflow/lib/create2.d.ts +1 -1
  387. package/dist-runtime/workflow/lib/create2.js +9 -12
  388. package/dist-runtime/workflow/lib/create2.js.map +1 -1
  389. package/dist-runtime/workflow/lib/deployments.d.ts +5 -5
  390. package/dist-runtime/workflow/lib/deployments.js +5 -13
  391. package/dist-runtime/workflow/lib/deployments.js.map +1 -1
  392. package/dist-runtime/workflow/lib/evidencePorts.d.ts +55 -0
  393. package/dist-runtime/workflow/lib/evidencePorts.js +3 -0
  394. package/dist-runtime/workflow/lib/evidencePorts.js.map +1 -0
  395. package/dist-runtime/workflow/lib/executionPlan.d.ts +4 -42
  396. package/dist-runtime/workflow/lib/executionPlan.js +15 -210
  397. package/dist-runtime/workflow/lib/executionPlan.js.map +1 -1
  398. package/dist-runtime/workflow/lib/gateTool.d.ts +6 -2
  399. package/dist-runtime/workflow/lib/gateTool.js +20 -10
  400. package/dist-runtime/workflow/lib/gateTool.js.map +1 -1
  401. package/dist-runtime/workflow/lib/gateToolSync.d.ts +1 -1
  402. package/dist-runtime/workflow/lib/gateToolSync.js +3 -2
  403. package/dist-runtime/workflow/lib/gateToolSync.js.map +1 -1
  404. package/dist-runtime/workflow/lib/operationNames.d.ts +3 -0
  405. package/dist-runtime/workflow/lib/operationNames.js +34 -0
  406. package/dist-runtime/workflow/lib/operationNames.js.map +1 -0
  407. package/dist-runtime/workflow/lib/parameters.d.ts +1 -1
  408. package/dist-runtime/workflow/lib/parameters.js +9 -24
  409. package/dist-runtime/workflow/lib/parameters.js.map +1 -1
  410. package/dist-runtime/workflow/lib/pendingDeploymentReuse.js +18 -52
  411. package/dist-runtime/workflow/lib/pendingDeploymentReuse.js.map +1 -1
  412. package/dist-runtime/workflow/lib/pendingUupsBinding.d.ts +42 -0
  413. package/dist-runtime/workflow/lib/pendingUupsBinding.js +39 -0
  414. package/dist-runtime/workflow/lib/pendingUupsBinding.js.map +1 -0
  415. package/dist-runtime/workflow/lib/plan.d.ts +55 -0
  416. package/dist-runtime/workflow/lib/plan.js +324 -0
  417. package/dist-runtime/workflow/lib/plan.js.map +1 -0
  418. package/dist-runtime/workflow/lib/planCli.d.ts +14 -0
  419. package/dist-runtime/workflow/lib/planCli.js +279 -0
  420. package/dist-runtime/workflow/lib/planCli.js.map +1 -0
  421. package/dist-runtime/workflow/lib/preparationEvidence.d.ts +4 -0
  422. package/dist-runtime/workflow/lib/preparationEvidence.js +19 -0
  423. package/dist-runtime/workflow/lib/preparationEvidence.js.map +1 -0
  424. package/dist-runtime/workflow/lib/proxy.d.ts +3 -2
  425. package/dist-runtime/workflow/lib/proxy.js +3 -4
  426. package/dist-runtime/workflow/lib/proxy.js.map +1 -1
  427. package/dist-runtime/workflow/lib/runtime.d.ts +6 -0
  428. package/dist-runtime/workflow/lib/runtime.js +48 -0
  429. package/dist-runtime/workflow/lib/runtime.js.map +1 -0
  430. package/dist-runtime/workflow/lib/signer.d.ts +3 -2
  431. package/dist-runtime/workflow/lib/signer.js +18 -18
  432. package/dist-runtime/workflow/lib/signer.js.map +1 -1
  433. package/dist-runtime/workflow/lib/simulation.d.ts +13 -6
  434. package/dist-runtime/workflow/lib/simulation.js +39 -31
  435. package/dist-runtime/workflow/lib/simulation.js.map +1 -1
  436. package/dist-runtime/workflow/lib/state.js +3 -3
  437. package/dist-runtime/workflow/lib/state.js.map +1 -1
  438. package/dist-runtime/workflow/lib/staticValidation.d.ts +28 -0
  439. package/dist-runtime/workflow/lib/staticValidation.js +54 -10
  440. package/dist-runtime/workflow/lib/staticValidation.js.map +1 -1
  441. package/dist-runtime/workflow/lib/transactionPlanner.d.ts +62 -0
  442. package/dist-runtime/workflow/lib/transactionPlanner.js +258 -0
  443. package/dist-runtime/workflow/lib/transactionPlanner.js.map +1 -0
  444. package/dist-runtime/workflow/lib/typedValue.d.ts +3 -0
  445. package/dist-runtime/workflow/lib/typedValue.js +76 -0
  446. package/dist-runtime/workflow/lib/typedValue.js.map +1 -0
  447. package/dist-runtime/workflow/lib/validation.d.ts +23 -0
  448. package/dist-runtime/workflow/lib/validation.js +15 -0
  449. package/dist-runtime/workflow/lib/validation.js.map +1 -0
  450. package/dist-runtime/workflow/planAdd.d.ts +1 -0
  451. package/dist-runtime/workflow/planAdd.js +11 -0
  452. package/dist-runtime/workflow/planAdd.js.map +1 -0
  453. package/dist-runtime/workflow/planRead.d.ts +1 -0
  454. package/dist-runtime/workflow/planRead.js +11 -0
  455. package/dist-runtime/workflow/planRead.js.map +1 -0
  456. package/dist-runtime/workflow/planStatus.d.ts +1 -0
  457. package/dist-runtime/workflow/planStatus.js +11 -0
  458. package/dist-runtime/workflow/planStatus.js.map +1 -0
  459. package/dist-runtime/workflow/planWrite.d.ts +1 -0
  460. package/dist-runtime/workflow/planWrite.js +11 -0
  461. package/dist-runtime/workflow/planWrite.js.map +1 -0
  462. package/dist-runtime/workflow/run.d.ts +1 -40
  463. package/dist-runtime/workflow/run.js +68 -136
  464. package/dist-runtime/workflow/run.js.map +1 -1
  465. package/dist-runtime/workflow/staticValidate.js +8 -3
  466. package/dist-runtime/workflow/staticValidate.js.map +1 -1
  467. package/dist-runtime/workflow/steps/call.d.ts +1 -1
  468. package/dist-runtime/workflow/steps/check.d.ts +1 -1
  469. package/dist-runtime/workflow/steps/custom.d.ts +1 -1
  470. package/dist-runtime/workflow/steps/deploy.d.ts +1 -1
  471. package/dist-runtime/workflow/steps/deploy.js +58 -55
  472. package/dist-runtime/workflow/steps/deploy.js.map +1 -1
  473. package/dist-runtime/workflow/steps/upgrade.d.ts +1 -1
  474. package/dist-runtime/workflow/steps/upgrade.js +63 -41
  475. package/dist-runtime/workflow/steps/upgrade.js.map +1 -1
  476. package/dist-runtime/workflow/steps/view.d.ts +1 -1
  477. package/docs/compiler-qualification.md +32 -0
  478. package/docs/configuration-runtime-observation.md +29 -0
  479. package/docs/create2-miner.md +100 -0
  480. package/docs/delivery-aggregate.md +27 -0
  481. package/docs/delivery-custom-input-closure.md +51 -0
  482. package/docs/delivery-development.md +32 -0
  483. package/docs/delivery-eoa.md +46 -0
  484. package/docs/delivery-evm-manifest.md +20 -0
  485. package/docs/delivery-execution-store.md +33 -0
  486. package/docs/delivery-inputs.md +46 -0
  487. package/docs/delivery-parameters.md +65 -0
  488. package/docs/delivery-planning.md +140 -0
  489. package/docs/delivery-release.md +65 -0
  490. package/docs/delivery-safe.md +72 -0
  491. package/docs/delivery-setup.md +146 -0
  492. package/docs/delivery-source.md +67 -0
  493. package/docs/direct-package-acceptance.md +20 -0
  494. package/docs/external-infrastructure-acceptance.md +33 -0
  495. package/docs/network-runtime-acceptance.md +18 -0
  496. package/docs/plans/2026-09-09-workflow-extraction.md +16 -0
  497. package/docs/superpowers/plans/2026-07-22-manifest-bootstrap-transaction.md +50 -0
  498. package/docs/superpowers/plans/2026-07-22-manifest-review-remediation.md +49 -0
  499. package/docs/superpowers/plans/2026-08-17-custody-hardhat-signers.md +227 -0
  500. package/docs/superpowers/plans/2026-09-09-remove-template-infrastructure-contracts.md +11 -0
  501. package/docs/superpowers/plans/2026-09-24-scheme-aware-static-validation.md +193 -0
  502. package/docs/superpowers/plans/2026-10-28-create2-miner.md +82 -0
  503. package/docs/workflow-reference.md +1181 -0
  504. package/docs/workflow-runtime-acceptance.md +17 -0
  505. package/docs/workflow-runtime.md +56 -0
  506. package/package.json +134 -9
  507. package/resources/create2/LICENSE +21 -0
  508. package/resources/create2/README.md +9 -0
  509. package/resources/create2/darwin-arm64/smartflow_miner +0 -0
  510. package/resources/create2/darwin-x64/smartflow_miner +0 -0
  511. package/resources/create2/manifest.json +27 -0
  512. package/runtime/config/hardhatAdapters.ts +8 -0
  513. package/runtime/config/networks.ts +20 -11
  514. package/runtime/config/openzeppelin.ts +3 -21
  515. package/runtime/delivery/abi.ts +225 -0
  516. package/runtime/delivery/aggregate-bootstrap.ts +29 -0
  517. package/runtime/delivery/aggregate-channel.ts +85 -0
  518. package/runtime/delivery/aggregate-inputs.ts +39 -0
  519. package/runtime/delivery/aggregate-source.ts +53 -0
  520. package/runtime/delivery/aggregate-worker.ts +133 -0
  521. package/runtime/delivery/aggregate.ts +139 -0
  522. package/runtime/delivery/bindings.ts +37 -0
  523. package/runtime/delivery/check-code.ts +38 -0
  524. package/runtime/delivery/closure-format.ts +350 -0
  525. package/runtime/delivery/codec-pin.ts +3 -0
  526. package/runtime/delivery/codec.ts +50 -0
  527. package/runtime/delivery/compiler-dependency-pins.ts +1685 -0
  528. package/runtime/delivery/compiler-files.ts +179 -0
  529. package/runtime/delivery/compiler-io.ts +10 -0
  530. package/runtime/delivery/compiler-pins.ts +143 -0
  531. package/runtime/delivery/compiler.ts +700 -0
  532. package/runtime/delivery/config.ts +93 -0
  533. package/runtime/delivery/configuration-definition.ts +133 -0
  534. package/runtime/delivery/configuration-hre.ts +130 -0
  535. package/runtime/delivery/configuration-runtime.ts +163 -0
  536. package/runtime/delivery/configuration.ts +64 -0
  537. package/runtime/delivery/create2.ts +57 -0
  538. package/runtime/delivery/custom-closure.ts +993 -0
  539. package/runtime/delivery/custom-format.ts +464 -0
  540. package/runtime/delivery/custom.ts +219 -0
  541. package/runtime/delivery/data.ts +94 -0
  542. package/runtime/delivery/development.ts +262 -0
  543. package/runtime/delivery/engine.ts +29 -0
  544. package/runtime/delivery/eoa-observation.ts +106 -0
  545. package/runtime/delivery/eoa-signed.ts +55 -0
  546. package/runtime/delivery/eoa.ts +288 -0
  547. package/runtime/delivery/execution-db.ts +131 -0
  548. package/runtime/delivery/execution-files.ts +135 -0
  549. package/runtime/delivery/execution-model.ts +102 -0
  550. package/runtime/delivery/execution-store.ts +411 -0
  551. package/runtime/delivery/existing-code.ts +44 -0
  552. package/runtime/delivery/export.ts +99 -0
  553. package/runtime/delivery/forkAudit.ts +620 -0
  554. package/runtime/delivery/hardhat.ts +38 -0
  555. package/runtime/delivery/history-registration.ts +10 -0
  556. package/runtime/delivery/identities.ts +132 -0
  557. package/runtime/delivery/input-files.ts +46 -0
  558. package/runtime/delivery/inputs.ts +197 -0
  559. package/runtime/delivery/journal.ts +201 -0
  560. package/runtime/delivery/manifest.ts +54 -0
  561. package/runtime/delivery/materialization.ts +53 -0
  562. package/runtime/delivery/observations.ts +60 -0
  563. package/runtime/delivery/parameters.ts +349 -0
  564. package/runtime/delivery/pending.ts +98 -0
  565. package/runtime/delivery/plan.ts +337 -0
  566. package/runtime/delivery/planning.ts +397 -0
  567. package/runtime/delivery/policy.ts +9 -0
  568. package/runtime/delivery/preparation.ts +224 -0
  569. package/runtime/delivery/production-environment.ts +6 -0
  570. package/runtime/delivery/production-finalization.ts +172 -0
  571. package/runtime/delivery/production.ts +375 -0
  572. package/runtime/delivery/project-files.ts +58 -0
  573. package/runtime/delivery/project.ts +117 -0
  574. package/runtime/delivery/protocol.ts +94 -0
  575. package/runtime/delivery/references.ts +106 -0
  576. package/runtime/delivery/release-graph.ts +49 -0
  577. package/runtime/delivery/release-history-capture.ts +32 -0
  578. package/runtime/delivery/release-history.ts +120 -0
  579. package/runtime/delivery/release.ts +128 -0
  580. package/runtime/delivery/safe-manifest.ts +11 -0
  581. package/runtime/delivery/safe-observation.ts +626 -0
  582. package/runtime/delivery/safe-prepare.ts +101 -0
  583. package/runtime/delivery/safe.ts +344 -0
  584. package/runtime/delivery/same-fork-baseline.ts +16 -0
  585. package/runtime/delivery/setup.ts +172 -0
  586. package/runtime/delivery/source.ts +130 -0
  587. package/runtime/delivery/target-fields.ts +7 -0
  588. package/runtime/delivery/validation.ts +247 -0
  589. package/runtime/delivery/verification.ts +47 -0
  590. package/runtime/migrate.ts +1 -0
  591. package/runtime/miner/binary.ts +41 -0
  592. package/runtime/miner/cli.ts +87 -0
  593. package/runtime/miner/index.ts +5 -0
  594. package/runtime/miner/request.ts +54 -0
  595. package/runtime/miner/runner.ts +90 -0
  596. package/runtime/miner/types.ts +71 -0
  597. package/runtime/miner/verify.ts +61 -0
  598. package/runtime/vendor/plan-codec/index.cjs +820 -0
  599. package/runtime/vendor/plan-codec/index.d.cts +32 -0
  600. package/runtime/vendor/plan-codec/provenance.json +24 -0
  601. package/runtime/workflow/engine.ts +174 -0
  602. package/runtime/workflow/lib/authority.ts +3 -3
  603. package/runtime/workflow/lib/calls.ts +46 -37
  604. package/runtime/workflow/lib/canonicalData.ts +45 -0
  605. package/runtime/workflow/lib/config.ts +1 -1
  606. package/runtime/workflow/lib/context.ts +76 -0
  607. package/runtime/workflow/lib/controlledMulticallAbi.ts +6 -0
  608. package/runtime/workflow/lib/create2.ts +10 -12
  609. package/runtime/workflow/lib/deployments.ts +6 -14
  610. package/runtime/workflow/lib/evidencePorts.ts +20 -0
  611. package/runtime/workflow/lib/executionPlan.ts +17 -268
  612. package/runtime/workflow/lib/gateTool.ts +20 -8
  613. package/runtime/workflow/lib/gateToolSync.ts +3 -3
  614. package/runtime/workflow/lib/operationNames.ts +32 -0
  615. package/runtime/workflow/lib/parameters.ts +7 -23
  616. package/runtime/workflow/lib/pendingDeploymentReuse.ts +4 -56
  617. package/runtime/workflow/lib/pendingUupsBinding.ts +43 -0
  618. package/runtime/workflow/lib/plan.ts +334 -0
  619. package/runtime/workflow/lib/planCli.ts +279 -0
  620. package/runtime/workflow/lib/preparationEvidence.ts +14 -0
  621. package/runtime/workflow/lib/proxy.ts +5 -3
  622. package/runtime/workflow/lib/runtime.ts +46 -0
  623. package/runtime/workflow/lib/signer.ts +8 -5
  624. package/runtime/workflow/lib/simulation.ts +41 -17
  625. package/runtime/workflow/lib/state.ts +3 -3
  626. package/runtime/workflow/lib/staticValidation.ts +92 -11
  627. package/runtime/workflow/lib/transactionPlanner.ts +314 -0
  628. package/runtime/workflow/lib/typedValue.ts +46 -0
  629. package/runtime/workflow/lib/validation.ts +50 -0
  630. package/runtime/workflow/planAdd.ts +8 -0
  631. package/runtime/workflow/planRead.ts +8 -0
  632. package/runtime/workflow/planStatus.ts +8 -0
  633. package/runtime/workflow/planWrite.ts +8 -0
  634. package/runtime/workflow/run.ts +41 -174
  635. package/runtime/workflow/staticValidate.ts +8 -3
  636. package/runtime/workflow/steps/call.ts +1 -1
  637. package/runtime/workflow/steps/check.ts +1 -1
  638. package/runtime/workflow/steps/custom.ts +1 -1
  639. package/runtime/workflow/steps/deploy.ts +59 -59
  640. package/runtime/workflow/steps/upgrade.ts +71 -47
  641. 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,12 +1,14 @@
1
+ import { resolveWorkflowValue } from '../lib/validation';
2
+ import { recordPreparedDeployment } from "../lib/preparationEvidence";
3
+ import { CONTROLLED_MULTICALL_AUTHORITY_ABI } from "../lib/controlledMulticallAbi";
1
4
  import path from "path";
2
- import { ethers, network } from "../../projectHardhat";
3
5
  import type {
4
6
  GateToolDeploymentPlan,
5
7
  GateToolPreparationPlanV1,
6
8
  GateToolPreparationRequestV1,
7
9
  GateToolTransactionPlan,
8
10
  } from "gate-evm-tools/workflow";
9
- import type { WorkflowContext } from "../run";
11
+ import type { WorkflowContext } from "../lib/context";
10
12
  import {
11
13
  requireExistingDeploymentPolicy,
12
14
  resolveExistingDeploymentPolicyAction,
@@ -28,27 +30,20 @@ import {
28
30
  } from "../lib/create2";
29
31
  import { assertReusableDeployment } from "../lib/checkCodeReport";
30
32
  import { getERC1967Implementation } from "../lib/erc1967";
31
- import { recordParameterLockImplementationSalts } from "../lib/lock";
32
33
  import {
33
34
  deriveImplementationSalt,
34
35
  FirstUpgradeOptions,
35
36
  ProxyOptions,
36
37
  } from "../lib/proxy";
37
38
  import { decideControlledMulticallAuthority } from "../lib/authority";
38
- import { impersonateWorkflowSimulationSigner } from "../lib/signer";
39
+ import { impersonateLocalForkSigner } from "../lib/runtime";
39
40
  import { prepareGateToolWorkflow } from "../lib/gateTool";
40
41
  import { syncGateToolUups } from "../lib/gateToolSync";
41
- import { resolvePendingUupsReuse } from "../lib/pendingDeploymentReuse";
42
42
 
43
43
  const resolveInContext = (
44
44
  context: WorkflowContext,
45
45
  value: unknown,
46
- ): unknown => resolveValue(value, {
47
- targetId: context.targetId,
48
- target: context.target,
49
- params: context.targetParams,
50
- state: context.state,
51
- });
46
+ ): unknown => resolveWorkflowValue(context, value);
52
47
 
53
48
  const resolveArray = (
54
49
  context: WorkflowContext,
@@ -167,7 +162,7 @@ const applyExistingDeploymentPolicy = async (
167
162
  const existing = findDeploymentAddress(context.root, context.config, context.targetId, saveAs);
168
163
  if (!existing) return { completed: false, create2Options };
169
164
  const policy = requireExistingDeploymentPolicy(context.existingDeploymentPolicies, saveAs);
170
- const implementationAddress = await getERC1967Implementation(ethers.provider, existing);
165
+ const implementationAddress = await getERC1967Implementation(context.runtime.hre.ethers.provider, existing);
171
166
  const action = resolveExistingDeploymentPolicyAction(policy, {
172
167
  instanceId: saveAs,
173
168
  existingAddress: existing,
@@ -187,8 +182,10 @@ const applyExistingDeploymentPolicy = async (
187
182
  address: existing,
188
183
  artifactHash: context.releaseArtifactHash,
189
184
  });
190
- context.deploymentRecorder?.prepare(preparedChange);
191
- 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({
192
189
  ...preparedChange,
193
190
  address: existing,
194
191
  proxyAddress: implementationAddress ? existing : undefined,
@@ -242,10 +239,11 @@ const deploymentForRole = (
242
239
  };
243
240
 
244
241
  const assertDeployedCode = async (
242
+ context: WorkflowContext,
245
243
  label: string,
246
244
  address: string,
247
245
  ): Promise<void> => {
248
- const code = await ethers.provider.getCode(address);
246
+ const code = await context.runtime.hre.ethers.provider.getCode(address);
249
247
  if (!code || code === "0x") {
250
248
  throw new Error(`${label} is missing deployed code at ${address}`);
251
249
  }
@@ -285,8 +283,8 @@ const runGateToolControlledMulticall = async (
285
283
  })),
286
284
  create2.scheme,
287
285
  );
288
- const multicall = await ethers.getContractAt(
289
- "Multicall3",
286
+ const multicall = await context.runtime.hre.ethers.getContractAt(
287
+ CONTROLLED_MULTICALL_AUTHORITY_ABI,
290
288
  create2.controlledMulticall,
291
289
  context.signer,
292
290
  );
@@ -326,6 +324,7 @@ const runGateToolControlledMulticall = async (
326
324
  ...(prepared.scheme === undefined ? {} : { scheme: prepared.scheme }),
327
325
  ...(prepared.factoryDeps === undefined ? {} : { factoryDeps: prepared.factoryDeps }),
328
326
  });
327
+ context.preparations?.bind(step.id, { transactionId: planned.transactionId, gateToolTransactionIds: transactions.map(t => t.id), kind: "multicall" });
329
328
  if (planned.executionAction === "replay") {
330
329
  return {
331
330
  external: planned.route === "external",
@@ -349,9 +348,10 @@ const runGateToolControlledMulticall = async (
349
348
  return { external: true, transactionId: planned.transactionId };
350
349
  }
351
350
  const selectedSigner = planned.route === "external"
352
- ? await impersonateWorkflowSimulationSigner(planned.executor)
351
+ ? await impersonateLocalForkSigner(context.runtime, planned.executor)
353
352
  : context.signer;
354
353
  const transaction = await sendPreparedControlledMulticallTransaction(prepared, selectedSigner);
354
+ context.transactionObserver?.record({ transactionId: planned.transactionId, transactionHash: transaction.hash });
355
355
  if (context.mode === "execute" && planned.route === "operator") {
356
356
  context.operatorReceipts.push({
357
357
  transactionId: planned.transactionId,
@@ -448,31 +448,26 @@ export const runDeployStep = async (
448
448
  );
449
449
  if (existingResolution.completed) return;
450
450
  const effectiveCreate2 = existingResolution.create2Options;
451
- const pendingReuse = context.parameterLockExecutionId
452
- ? await resolvePendingUupsReuse({
453
- root: context.root,
454
- taskDir: context.taskDir,
455
- taskId: context.taskId,
456
- currentExecutionId: context.parameterLockExecutionId,
457
- network: context.targetId,
458
- stepId: step.id,
459
- instanceId: saveAs,
460
- actualContract,
461
- contractInfoKey: registryKey,
462
- scheme: effectiveCreate2.scheme,
463
- factory: effectiveCreate2.factory,
464
- multicall: effectiveCreate2.controlledMulticall!,
465
- proxySalt: effectiveCreate2.salt,
466
- expectedAddress: effectiveCreate2.expectedAddress,
467
- placeholderImplementationAddress: effectiveCreate2.uupsPlaceholderImplementation!,
468
- provider: ethers.provider,
469
- blockTag: context.mode === "simulate"
470
- ? context.simulation.snapshot?.blockNumber
471
- : undefined,
472
- })
473
- : 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
+ });
474
469
  const implementationSalt = pendingReuse?.implementationSalt ?? deriveImplementationSalt(
475
- context.executionId,
470
+ context.bindings?.derivationSeed ?? context.executionId,
476
471
  firstUpgrade.contractName,
477
472
  effectiveCreate2.salt,
478
473
  );
@@ -480,7 +475,7 @@ export const runDeployStep = async (
480
475
  version: 1,
481
476
  kind: "uups-placeholder-deploy",
482
477
  scheme: effectiveCreate2.scheme,
483
- network: network.name,
478
+ network: context.runtime.hre.network.name,
484
479
  target: context.targetId,
485
480
  contract: firstUpgrade.contractName,
486
481
  constructorArgs: firstUpgrade.constructorArgs || [],
@@ -500,10 +495,13 @@ export const runDeployStep = async (
500
495
  : {}),
501
496
  };
502
497
  const prepared = await prepareGateToolWorkflow({
498
+ hre: context.runtime.hre,
499
+ validation: context.validation,
503
500
  root: context.root,
504
501
  evidenceDir: gateToolEvidenceDir(context),
505
502
  evidenceName: step.id,
506
503
  request,
504
+ expected: context.preparations?.expected(step.id, request),
507
505
  readBlockTag: context.mode === "simulate"
508
506
  ? context.simulation.snapshot?.blockNumber
509
507
  : undefined,
@@ -511,8 +509,8 @@ export const runDeployStep = async (
511
509
  const implementation = deploymentForRole(prepared.plan, "implementation");
512
510
  const proxyDeployment = deploymentForRole(prepared.plan, "proxy");
513
511
  if (pendingReuse && (
514
- prepared.plan.transactions.length !== 0
515
- || prepared.plan.artifact.digest !== pendingReuse.evidence.artifactDigest
512
+ (!pendingReuse.binding && prepared.plan.transactions.length !== 0)
513
+ || prepared.plan.artifact.digest !== pendingReuse.artifactDigest
516
514
  || implementation.address.toLowerCase() !== pendingReuse.implementationAddress.toLowerCase()
517
515
  || proxyDeployment.address.toLowerCase() !== pendingReuse.proxyAddress.toLowerCase()
518
516
  )) {
@@ -535,6 +533,7 @@ export const runDeployStep = async (
535
533
  const plannedChange: DeploymentChange = {
536
534
  ...preparedChange,
537
535
  salt: effectiveCreate2.salt,
536
+ expectedAddress: effectiveCreate2.expectedAddress,
538
537
  previousAddress: existingResolution.existingAddress,
539
538
  redeployReason: existingResolution.redeployReason,
540
539
  implementationAddress: implementation.address,
@@ -542,16 +541,11 @@ export const runDeployStep = async (
542
541
  constructorArgs: firstUpgrade.constructorArgs || [],
543
542
  predictedAddress: proxyDeployment.address,
544
543
  gateTool,
545
- ...(pendingReuse ? { pendingReuse: pendingReuse.evidence } : {}),
544
+ ...(pendingReuse?.legacyEvidence ? { pendingReuse: pendingReuse.legacyEvidence } : {}),
546
545
  };
547
- if (context.parameterLockExecutionId) {
548
- recordParameterLockImplementationSalts(
549
- context.taskDir,
550
- context.parameterLockExecutionId,
551
- { [`${step.id}.implementation`]: implementationSalt },
552
- );
553
- }
546
+ context.bindings?.recordOrAssertDerivedValue(`${step.id}.implementation`, implementationSalt);
554
547
  recorder?.prepare(plannedChange);
548
+ recordPreparedDeployment(context, plannedChange, prepared, [`${step.id}.implementation`]);
555
549
  if (context.mode === "execute") {
556
550
  recorder?.stageAddressCandidate(plannedChange, proxyDeployment.address);
557
551
  }
@@ -566,12 +560,13 @@ export const runDeployStep = async (
566
560
  }
567
561
  if (!execution.external) {
568
562
  await assertDeployedCode(
563
+ context,
569
564
  `${firstUpgrade.contractName} implementation`,
570
565
  implementation.address,
571
566
  );
572
- await assertDeployedCode("ERC1967Proxy", proxyDeployment.address);
567
+ await assertDeployedCode(context, "ERC1967Proxy", proxyDeployment.address);
573
568
  const currentImplementation = await getERC1967Implementation(
574
- ethers.provider,
569
+ context.runtime.hre.ethers.provider,
575
570
  proxyDeployment.address,
576
571
  );
577
572
  if (
@@ -587,11 +582,12 @@ export const runDeployStep = async (
587
582
  && !execution.external
588
583
  && proxyDeployment.status !== "reused"
589
584
  ? await syncGateToolUups({
585
+ hre: context.runtime.hre,
590
586
  root: context.root,
591
587
  evidenceDir: gateToolEvidenceDir(context),
592
588
  evidenceName: step.id,
593
589
  scheme: prepared.plan.scheme,
594
- network: network.name,
590
+ network: context.runtime.hre.network.name,
595
591
  target: context.targetId,
596
592
  manifestDir: context.target.openzeppelin.manifestDir,
597
593
  proxy: proxyDeployment.address,
@@ -643,7 +639,7 @@ export const runDeployStep = async (
643
639
  txHash: execution.txHash,
644
640
  gateToolPlan: gateTool.outputPath,
645
641
  gateToolSync: gateToolSync?.outputPath,
646
- pendingReuse: pendingReuse?.evidence,
642
+ pendingReuse: pendingReuse?.legacyEvidence ?? pendingReuse?.binding,
647
643
  });
648
644
  return;
649
645
  }
@@ -678,7 +674,7 @@ export const runDeployStep = async (
678
674
  version: 1,
679
675
  kind: "create2-deploy",
680
676
  scheme: effectiveCreate2.scheme,
681
- network: network.name,
677
+ network: context.runtime.hre.network.name,
682
678
  target: context.targetId,
683
679
  contract: contractName,
684
680
  constructorArgs: args,
@@ -695,10 +691,13 @@ export const runDeployStep = async (
695
691
  : {}),
696
692
  };
697
693
  const prepared = await prepareGateToolWorkflow({
694
+ hre: context.runtime.hre,
695
+ validation: context.validation,
698
696
  root: context.root,
699
697
  evidenceDir: gateToolEvidenceDir(context),
700
698
  evidenceName: step.id,
701
699
  request,
700
+ expected: context.preparations?.expected(step.id, request),
702
701
  readBlockTag: context.mode === "simulate"
703
702
  ? context.simulation.snapshot?.blockNumber
704
703
  : undefined,
@@ -722,6 +721,7 @@ export const runDeployStep = async (
722
721
  gateTool,
723
722
  };
724
723
  recorder?.prepare(preparedChange);
724
+ recordPreparedDeployment(context, preparedChange, prepared, []);
725
725
  if (context.mode === "execute") {
726
726
  recorder?.stageAddressCandidate(preparedChange, deployment.address);
727
727
  }
@@ -732,7 +732,7 @@ export const runDeployStep = async (
732
732
  prepared.plan.transactions,
733
733
  );
734
734
  if (!execution.external) {
735
- await assertDeployedCode(contractName, deployment.address);
735
+ await assertDeployedCode(context, contractName, deployment.address);
736
736
  }
737
737
  if (context.mode === "execute" && !execution.external) {
738
738
  recorder?.applyAddress({