gate-evm-tools 1.0.28 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (742) hide show
  1. package/README.md +47 -18
  2. package/bin/cli.js +6 -0
  3. package/bin/delivery.cjs +52 -0
  4. package/bin/manifest-bootstrap.js +4 -15
  5. package/dist/commands/check.d.ts.map +1 -1
  6. package/dist/commands/check.js +26 -2
  7. package/dist/commands/check.js.map +1 -1
  8. package/dist/commands/plan/file-store.d.ts.map +1 -0
  9. package/dist/commands/plan/generate-deployment.d.ts +48 -0
  10. package/dist/commands/plan/generate-deployment.d.ts.map +1 -0
  11. package/dist/commands/plan/generate-deployment.js +211 -0
  12. package/dist/commands/plan/generate-deployment.js.map +1 -0
  13. package/dist/commands/plan/helpers.d.ts.map +1 -0
  14. package/dist/commands/plan/index.d.ts +3 -0
  15. package/dist/commands/plan/index.d.ts.map +1 -0
  16. package/dist/commands/plan/index.js +88 -0
  17. package/dist/commands/plan/index.js.map +1 -0
  18. package/dist/commands/sync.js +1 -1
  19. package/dist/commands/sync.js.map +1 -1
  20. package/dist/core/BytecodeChecker.d.ts.map +1 -1
  21. package/dist/core/BytecodeChecker.js +27 -8
  22. package/dist/core/BytecodeChecker.js.map +1 -1
  23. package/dist/core/preparation/artifacts.d.ts +2 -0
  24. package/dist/core/preparation/artifacts.d.ts.map +1 -1
  25. package/dist/core/preparation/artifacts.js +9 -3
  26. package/dist/core/preparation/artifacts.js.map +1 -1
  27. package/dist/core/preparation/batch.d.ts +26 -0
  28. package/dist/core/preparation/batch.d.ts.map +1 -0
  29. package/dist/core/preparation/batch.js +72 -0
  30. package/dist/core/preparation/batch.js.map +1 -0
  31. package/dist/core/preparation/evm.d.ts +61 -6
  32. package/dist/core/preparation/evm.d.ts.map +1 -1
  33. package/dist/core/preparation/evm.js +122 -34
  34. package/dist/core/preparation/evm.js.map +1 -1
  35. package/dist/core/preparation/evmManifestSync.d.ts +68 -0
  36. package/dist/core/preparation/evmManifestSync.d.ts.map +1 -0
  37. package/dist/core/preparation/evmManifestSync.js +154 -0
  38. package/dist/core/preparation/evmManifestSync.js.map +1 -0
  39. package/dist/core/preparation/index.d.ts +40 -2
  40. package/dist/core/preparation/index.d.ts.map +1 -1
  41. package/dist/core/preparation/index.js +3 -3
  42. package/dist/core/preparation/index.js.map +1 -1
  43. package/dist/core/preparation/manifest.d.ts +17 -3
  44. package/dist/core/preparation/manifest.d.ts.map +1 -1
  45. package/dist/core/preparation/manifest.js +23 -28
  46. package/dist/core/preparation/manifest.js.map +1 -1
  47. package/dist/core/preparation/normalize.d.ts.map +1 -1
  48. package/dist/core/preparation/normalize.js +67 -20
  49. package/dist/core/preparation/normalize.js.map +1 -1
  50. package/dist/core/preparation/transparent.d.ts +23 -0
  51. package/dist/core/preparation/transparent.d.ts.map +1 -0
  52. package/dist/core/preparation/transparent.js +103 -0
  53. package/dist/core/preparation/transparent.js.map +1 -0
  54. package/dist/core/preparation/types.d.ts +54 -7
  55. package/dist/core/preparation/types.d.ts.map +1 -1
  56. package/dist/core/preparation/zksync.d.ts.map +1 -1
  57. package/dist/core/preparation/zksync.js +2 -0
  58. package/dist/core/preparation/zksync.js.map +1 -1
  59. package/dist/custody/credential.d.ts.map +1 -1
  60. package/dist/custody/credential.js +1 -6
  61. package/dist/custody/credential.js.map +1 -1
  62. package/dist/custody/hardhat-runtime.d.ts.map +1 -1
  63. package/dist/custody/hardhat-runtime.js +2 -0
  64. package/dist/custody/hardhat-runtime.js.map +1 -1
  65. package/dist/custody/hardhat.d.ts +1 -0
  66. package/dist/custody/hardhat.d.ts.map +1 -1
  67. package/dist/custody/hardhat.js +1 -0
  68. package/dist/custody/hardhat.js.map +1 -1
  69. package/dist/custody/index.d.ts +1 -0
  70. package/dist/custody/index.d.ts.map +1 -1
  71. package/dist/custody/index.js +1 -0
  72. package/dist/custody/index.js.map +1 -1
  73. package/dist/custody/provider-wait.d.ts +13 -0
  74. package/dist/custody/provider-wait.d.ts.map +1 -0
  75. package/dist/custody/provider-wait.js +78 -0
  76. package/dist/custody/provider-wait.js.map +1 -0
  77. package/dist/delivery/policy.d.ts +6 -0
  78. package/dist/delivery/policy.d.ts.map +1 -0
  79. package/dist/delivery/policy.js +24 -0
  80. package/dist/delivery/policy.js.map +1 -0
  81. package/dist/deployment-evm/index.d.ts +4 -0
  82. package/dist/deployment-evm/index.d.ts.map +1 -0
  83. package/dist/deployment-evm/index.js +3 -0
  84. package/dist/deployment-evm/index.js.map +1 -0
  85. package/dist/index.d.ts.map +1 -1
  86. package/dist/index.js +9 -0
  87. package/dist/index.js.map +1 -1
  88. package/dist/sync/index.d.ts +15 -0
  89. package/dist/sync/index.d.ts.map +1 -1
  90. package/dist/sync/index.js +13 -0
  91. package/dist/sync/index.js.map +1 -1
  92. package/dist/types.d.ts +3 -0
  93. package/dist/types.d.ts.map +1 -1
  94. package/dist/workflow/index.d.ts +10 -2
  95. package/dist/workflow/index.d.ts.map +1 -1
  96. package/dist/workflow/index.js +6 -0
  97. package/dist/workflow/index.js.map +1 -1
  98. package/dist-cjs/core/BytecodeChecker.js +526 -0
  99. package/dist-cjs/core/BytecodeChecker.js.map +1 -0
  100. package/dist-cjs/core/legacyProxyArtifact.js +42 -0
  101. package/dist-cjs/core/legacyProxyArtifact.js.map +1 -0
  102. package/dist-cjs/core/preparation/artifacts.js +11 -4
  103. package/dist-cjs/core/preparation/artifacts.js.map +1 -1
  104. package/dist-cjs/core/preparation/batch.js +76 -0
  105. package/dist-cjs/core/preparation/batch.js.map +1 -0
  106. package/dist-cjs/core/preparation/evm.js +128 -37
  107. package/dist-cjs/core/preparation/evm.js.map +1 -1
  108. package/dist-cjs/core/preparation/evmManifestSync.js +163 -0
  109. package/dist-cjs/core/preparation/evmManifestSync.js.map +1 -0
  110. package/dist-cjs/core/preparation/index.js +3 -3
  111. package/dist-cjs/core/preparation/index.js.map +1 -1
  112. package/dist-cjs/core/preparation/manifest.js +25 -30
  113. package/dist-cjs/core/preparation/manifest.js.map +1 -1
  114. package/dist-cjs/core/preparation/normalize.js +67 -20
  115. package/dist-cjs/core/preparation/normalize.js.map +1 -1
  116. package/dist-cjs/core/preparation/transparent.js +110 -0
  117. package/dist-cjs/core/preparation/transparent.js.map +1 -0
  118. package/dist-cjs/core/preparation/zksync.js +2 -0
  119. package/dist-cjs/core/preparation/zksync.js.map +1 -1
  120. package/dist-cjs/custody/credential.js +1 -6
  121. package/dist-cjs/custody/credential.js.map +1 -1
  122. package/dist-cjs/custody/hardhat-runtime.js +2 -0
  123. package/dist-cjs/custody/hardhat-runtime.js.map +1 -1
  124. package/dist-cjs/custody/hardhat.js +3 -1
  125. package/dist-cjs/custody/hardhat.js.map +1 -1
  126. package/dist-cjs/custody/index.js +3 -1
  127. package/dist-cjs/custody/index.js.map +1 -1
  128. package/dist-cjs/custody/provider-wait.js +81 -0
  129. package/dist-cjs/custody/provider-wait.js.map +1 -0
  130. package/dist-cjs/delivery/policy.js +29 -0
  131. package/dist-cjs/delivery/policy.js.map +1 -0
  132. package/dist-cjs/deployment-evm/index.js +10 -0
  133. package/dist-cjs/deployment-evm/index.js.map +1 -0
  134. package/dist-cjs/sync/index.js +13 -0
  135. package/dist-cjs/sync/index.js.map +1 -1
  136. package/dist-cjs/workflow/index.js +22 -1
  137. package/dist-cjs/workflow/index.js.map +1 -1
  138. package/dist-runtime/config/hardhatAdapters.js +2 -1
  139. package/dist-runtime/config/hardhatAdapters.js.map +1 -1
  140. package/dist-runtime/config/openzeppelin.d.ts +2 -1
  141. package/dist-runtime/config/openzeppelin.js +2 -19
  142. package/dist-runtime/config/openzeppelin.js.map +1 -1
  143. package/dist-runtime/delivery/abi.d.ts +14 -0
  144. package/dist-runtime/delivery/abi.js +161 -0
  145. package/dist-runtime/delivery/abi.js.map +1 -0
  146. package/dist-runtime/delivery/aggregate-bootstrap.d.ts +12 -0
  147. package/dist-runtime/delivery/aggregate-bootstrap.js +42 -0
  148. package/dist-runtime/delivery/aggregate-bootstrap.js.map +1 -0
  149. package/dist-runtime/delivery/aggregate-channel.d.ts +28 -0
  150. package/dist-runtime/delivery/aggregate-channel.js +159 -0
  151. package/dist-runtime/delivery/aggregate-channel.js.map +1 -0
  152. package/dist-runtime/delivery/aggregate-diagnostics.d.ts +14 -0
  153. package/dist-runtime/delivery/aggregate-diagnostics.js +73 -0
  154. package/dist-runtime/delivery/aggregate-diagnostics.js.map +1 -0
  155. package/dist-runtime/delivery/aggregate-inputs.d.ts +172 -0
  156. package/dist-runtime/delivery/aggregate-inputs.js +57 -0
  157. package/dist-runtime/delivery/aggregate-inputs.js.map +1 -0
  158. package/dist-runtime/delivery/aggregate-source.d.ts +25 -0
  159. package/dist-runtime/delivery/aggregate-source.js +87 -0
  160. package/dist-runtime/delivery/aggregate-source.js.map +1 -0
  161. package/dist-runtime/delivery/aggregate-worker.d.ts +1 -0
  162. package/dist-runtime/delivery/aggregate-worker.js +199 -0
  163. package/dist-runtime/delivery/aggregate-worker.js.map +1 -0
  164. package/dist-runtime/delivery/aggregate.d.ts +51 -0
  165. package/dist-runtime/delivery/aggregate.js +190 -0
  166. package/dist-runtime/delivery/aggregate.js.map +1 -0
  167. package/dist-runtime/delivery/bindings.d.ts +21 -0
  168. package/dist-runtime/delivery/bindings.js +53 -0
  169. package/dist-runtime/delivery/bindings.js.map +1 -0
  170. package/dist-runtime/delivery/business-extension.d.ts +10 -0
  171. package/dist-runtime/delivery/business-extension.js +38 -0
  172. package/dist-runtime/delivery/business-extension.js.map +1 -0
  173. package/dist-runtime/delivery/calldata-archive.d.ts +18 -0
  174. package/dist-runtime/delivery/calldata-archive.js +31 -0
  175. package/dist-runtime/delivery/calldata-archive.js.map +1 -0
  176. package/dist-runtime/delivery/calldata-details.d.ts +47 -0
  177. package/dist-runtime/delivery/calldata-details.js +94 -0
  178. package/dist-runtime/delivery/calldata-details.js.map +1 -0
  179. package/dist-runtime/delivery/calldata-format.d.ts +4 -0
  180. package/dist-runtime/delivery/calldata-format.js +17 -0
  181. package/dist-runtime/delivery/calldata-format.js.map +1 -0
  182. package/dist-runtime/delivery/calldata-preparations.d.ts +13 -0
  183. package/dist-runtime/delivery/calldata-preparations.js +85 -0
  184. package/dist-runtime/delivery/calldata-preparations.js.map +1 -0
  185. package/dist-runtime/delivery/calldata-review.d.ts +44 -0
  186. package/dist-runtime/delivery/calldata-review.js +131 -0
  187. package/dist-runtime/delivery/calldata-review.js.map +1 -0
  188. package/dist-runtime/delivery/check-code.d.ts +19 -0
  189. package/dist-runtime/delivery/check-code.js +63 -0
  190. package/dist-runtime/delivery/check-code.js.map +1 -0
  191. package/dist-runtime/delivery/closure-format.d.ts +77 -0
  192. package/dist-runtime/delivery/closure-format.js +225 -0
  193. package/dist-runtime/delivery/closure-format.js.map +1 -0
  194. package/dist-runtime/delivery/codec-pin.d.ts +2 -0
  195. package/dist-runtime/delivery/codec-pin.js +7 -0
  196. package/dist-runtime/delivery/codec-pin.js.map +1 -0
  197. package/dist-runtime/delivery/codec.d.ts +19 -0
  198. package/dist-runtime/delivery/codec.js +73 -0
  199. package/dist-runtime/delivery/codec.js.map +1 -0
  200. package/dist-runtime/delivery/compiler-dependency-pins.d.ts +7 -0
  201. package/dist-runtime/delivery/compiler-dependency-pins.js +1689 -0
  202. package/dist-runtime/delivery/compiler-dependency-pins.js.map +1 -0
  203. package/dist-runtime/delivery/compiler-files.d.ts +40 -0
  204. package/dist-runtime/delivery/compiler-files.js +222 -0
  205. package/dist-runtime/delivery/compiler-files.js.map +1 -0
  206. package/dist-runtime/delivery/compiler-io.d.ts +2 -0
  207. package/dist-runtime/delivery/compiler-io.js +13 -0
  208. package/dist-runtime/delivery/compiler-io.js.map +1 -0
  209. package/dist-runtime/delivery/compiler-pins.d.ts +10 -0
  210. package/dist-runtime/delivery/compiler-pins.js +147 -0
  211. package/dist-runtime/delivery/compiler-pins.js.map +1 -0
  212. package/dist-runtime/delivery/compiler.d.ts +188 -0
  213. package/dist-runtime/delivery/compiler.js +851 -0
  214. package/dist-runtime/delivery/compiler.js.map +1 -0
  215. package/dist-runtime/delivery/config.d.ts +48 -0
  216. package/dist-runtime/delivery/config.js +124 -0
  217. package/dist-runtime/delivery/config.js.map +1 -0
  218. package/dist-runtime/delivery/configuration-definition.d.ts +31 -0
  219. package/dist-runtime/delivery/configuration-definition.js +343 -0
  220. package/dist-runtime/delivery/configuration-definition.js.map +1 -0
  221. package/dist-runtime/delivery/configuration-hre.d.ts +17 -0
  222. package/dist-runtime/delivery/configuration-hre.js +198 -0
  223. package/dist-runtime/delivery/configuration-hre.js.map +1 -0
  224. package/dist-runtime/delivery/configuration-runtime.d.ts +36 -0
  225. package/dist-runtime/delivery/configuration-runtime.js +248 -0
  226. package/dist-runtime/delivery/configuration-runtime.js.map +1 -0
  227. package/dist-runtime/delivery/configuration.d.ts +35 -0
  228. package/dist-runtime/delivery/configuration.js +86 -0
  229. package/dist-runtime/delivery/configuration.js.map +1 -0
  230. package/dist-runtime/delivery/contract-source.d.ts +14 -0
  231. package/dist-runtime/delivery/contract-source.js +138 -0
  232. package/dist-runtime/delivery/contract-source.js.map +1 -0
  233. package/dist-runtime/delivery/create2.d.ts +3 -0
  234. package/dist-runtime/delivery/create2.js +48 -0
  235. package/dist-runtime/delivery/create2.js.map +1 -0
  236. package/dist-runtime/delivery/custom-closure.d.ts +27 -0
  237. package/dist-runtime/delivery/custom-closure.js +818 -0
  238. package/dist-runtime/delivery/custom-closure.js.map +1 -0
  239. package/dist-runtime/delivery/custom-format.d.ts +35 -0
  240. package/dist-runtime/delivery/custom-format.js +410 -0
  241. package/dist-runtime/delivery/custom-format.js.map +1 -0
  242. package/dist-runtime/delivery/custom.d.ts +32 -0
  243. package/dist-runtime/delivery/custom.js +158 -0
  244. package/dist-runtime/delivery/custom.js.map +1 -0
  245. package/dist-runtime/delivery/data.d.ts +7 -0
  246. package/dist-runtime/delivery/data.js +86 -0
  247. package/dist-runtime/delivery/data.js.map +1 -0
  248. package/dist-runtime/delivery/development.d.ts +92 -0
  249. package/dist-runtime/delivery/development.js +406 -0
  250. package/dist-runtime/delivery/development.js.map +1 -0
  251. package/dist-runtime/delivery/engine.d.ts +9 -0
  252. package/dist-runtime/delivery/engine.js +23 -0
  253. package/dist-runtime/delivery/engine.js.map +1 -0
  254. package/dist-runtime/delivery/eoa-observation.d.ts +43 -0
  255. package/dist-runtime/delivery/eoa-observation.js +145 -0
  256. package/dist-runtime/delivery/eoa-observation.js.map +1 -0
  257. package/dist-runtime/delivery/eoa-signed.d.ts +2 -0
  258. package/dist-runtime/delivery/eoa-signed.js +74 -0
  259. package/dist-runtime/delivery/eoa-signed.js.map +1 -0
  260. package/dist-runtime/delivery/eoa.d.ts +82 -0
  261. package/dist-runtime/delivery/eoa.js +274 -0
  262. package/dist-runtime/delivery/eoa.js.map +1 -0
  263. package/dist-runtime/delivery/execution-db.d.ts +20 -0
  264. package/dist-runtime/delivery/execution-db.js +153 -0
  265. package/dist-runtime/delivery/execution-db.js.map +1 -0
  266. package/dist-runtime/delivery/execution-files.d.ts +9 -0
  267. package/dist-runtime/delivery/execution-files.js +138 -0
  268. package/dist-runtime/delivery/execution-files.js.map +1 -0
  269. package/dist-runtime/delivery/execution-identity.d.ts +15 -0
  270. package/dist-runtime/delivery/execution-identity.js +33 -0
  271. package/dist-runtime/delivery/execution-identity.js.map +1 -0
  272. package/dist-runtime/delivery/execution-model.d.ts +56 -0
  273. package/dist-runtime/delivery/execution-model.js +66 -0
  274. package/dist-runtime/delivery/execution-model.js.map +1 -0
  275. package/dist-runtime/delivery/execution-store.d.ts +48 -0
  276. package/dist-runtime/delivery/execution-store.js +361 -0
  277. package/dist-runtime/delivery/execution-store.js.map +1 -0
  278. package/dist-runtime/delivery/existing-code.d.ts +37 -0
  279. package/dist-runtime/delivery/existing-code.js +83 -0
  280. package/dist-runtime/delivery/existing-code.js.map +1 -0
  281. package/dist-runtime/delivery/export.d.ts +51 -0
  282. package/dist-runtime/delivery/export.js +69 -0
  283. package/dist-runtime/delivery/export.js.map +1 -0
  284. package/dist-runtime/delivery/forkAudit.d.ts +119 -0
  285. package/dist-runtime/delivery/forkAudit.js +473 -0
  286. package/dist-runtime/delivery/forkAudit.js.map +1 -0
  287. package/dist-runtime/delivery/hardhat.d.ts +3 -0
  288. package/dist-runtime/delivery/hardhat.js +45 -0
  289. package/dist-runtime/delivery/hardhat.js.map +1 -0
  290. package/dist-runtime/delivery/history-registration.d.ts +2 -0
  291. package/dist-runtime/delivery/history-registration.js +17 -0
  292. package/dist-runtime/delivery/history-registration.js.map +1 -0
  293. package/dist-runtime/delivery/identities.d.ts +22 -0
  294. package/dist-runtime/delivery/identities.js +97 -0
  295. package/dist-runtime/delivery/identities.js.map +1 -0
  296. package/dist-runtime/delivery/input-files.d.ts +5 -0
  297. package/dist-runtime/delivery/input-files.js +70 -0
  298. package/dist-runtime/delivery/input-files.js.map +1 -0
  299. package/dist-runtime/delivery/inputs.d.ts +62 -0
  300. package/dist-runtime/delivery/inputs.js +194 -0
  301. package/dist-runtime/delivery/inputs.js.map +1 -0
  302. package/dist-runtime/delivery/journal.d.ts +35 -0
  303. package/dist-runtime/delivery/journal.js +278 -0
  304. package/dist-runtime/delivery/journal.js.map +1 -0
  305. package/dist-runtime/delivery/manifest.d.ts +14 -0
  306. package/dist-runtime/delivery/manifest.js +68 -0
  307. package/dist-runtime/delivery/manifest.js.map +1 -0
  308. package/dist-runtime/delivery/materialization.d.ts +20 -0
  309. package/dist-runtime/delivery/materialization.js +138 -0
  310. package/dist-runtime/delivery/materialization.js.map +1 -0
  311. package/dist-runtime/delivery/observations.d.ts +31 -0
  312. package/dist-runtime/delivery/observations.js +38 -0
  313. package/dist-runtime/delivery/observations.js.map +1 -0
  314. package/dist-runtime/delivery/parameter-defaults.d.ts +10 -0
  315. package/dist-runtime/delivery/parameter-defaults.js +86 -0
  316. package/dist-runtime/delivery/parameter-defaults.js.map +1 -0
  317. package/dist-runtime/delivery/parameters.d.ts +55 -0
  318. package/dist-runtime/delivery/parameters.js +279 -0
  319. package/dist-runtime/delivery/parameters.js.map +1 -0
  320. package/dist-runtime/delivery/pending.d.ts +70 -0
  321. package/dist-runtime/delivery/pending.js +99 -0
  322. package/dist-runtime/delivery/pending.js.map +1 -0
  323. package/dist-runtime/delivery/plan.d.ts +50 -0
  324. package/dist-runtime/delivery/plan.js +209 -0
  325. package/dist-runtime/delivery/plan.js.map +1 -0
  326. package/dist-runtime/delivery/planning.d.ts +84 -0
  327. package/dist-runtime/delivery/planning.js +318 -0
  328. package/dist-runtime/delivery/planning.js.map +1 -0
  329. package/dist-runtime/delivery/policy.d.ts +4 -0
  330. package/dist-runtime/delivery/policy.js +9 -0
  331. package/dist-runtime/delivery/policy.js.map +1 -0
  332. package/dist-runtime/delivery/preparation.d.ts +6 -0
  333. package/dist-runtime/delivery/preparation.js +178 -0
  334. package/dist-runtime/delivery/preparation.js.map +1 -0
  335. package/dist-runtime/delivery/production-environment.d.ts +2 -0
  336. package/dist-runtime/delivery/production-environment.js +13 -0
  337. package/dist-runtime/delivery/production-environment.js.map +1 -0
  338. package/dist-runtime/delivery/production-finalization.d.ts +86 -0
  339. package/dist-runtime/delivery/production-finalization.js +292 -0
  340. package/dist-runtime/delivery/production-finalization.js.map +1 -0
  341. package/dist-runtime/delivery/production-intent.d.ts +2 -0
  342. package/dist-runtime/delivery/production-intent.js +16 -0
  343. package/dist-runtime/delivery/production-intent.js.map +1 -0
  344. package/dist-runtime/delivery/production.d.ts +582 -0
  345. package/dist-runtime/delivery/production.js +445 -0
  346. package/dist-runtime/delivery/production.js.map +1 -0
  347. package/dist-runtime/delivery/project-files.d.ts +8 -0
  348. package/dist-runtime/delivery/project-files.js +87 -0
  349. package/dist-runtime/delivery/project-files.js.map +1 -0
  350. package/dist-runtime/delivery/project-rpc.d.ts +19 -0
  351. package/dist-runtime/delivery/project-rpc.js +138 -0
  352. package/dist-runtime/delivery/project-rpc.js.map +1 -0
  353. package/dist-runtime/delivery/project.d.ts +17 -0
  354. package/dist-runtime/delivery/project.js +170 -0
  355. package/dist-runtime/delivery/project.js.map +1 -0
  356. package/dist-runtime/delivery/protocol.d.ts +49 -0
  357. package/dist-runtime/delivery/protocol.js +112 -0
  358. package/dist-runtime/delivery/protocol.js.map +1 -0
  359. package/dist-runtime/delivery/public-calldata.d.ts +25 -0
  360. package/dist-runtime/delivery/public-calldata.js +97 -0
  361. package/dist-runtime/delivery/public-calldata.js.map +1 -0
  362. package/dist-runtime/delivery/references.d.ts +19 -0
  363. package/dist-runtime/delivery/references.js +84 -0
  364. package/dist-runtime/delivery/references.js.map +1 -0
  365. package/dist-runtime/delivery/release-graph.d.ts +97 -0
  366. package/dist-runtime/delivery/release-graph.js +139 -0
  367. package/dist-runtime/delivery/release-graph.js.map +1 -0
  368. package/dist-runtime/delivery/release-history-capture.d.ts +7 -0
  369. package/dist-runtime/delivery/release-history-capture.js +76 -0
  370. package/dist-runtime/delivery/release-history-capture.js.map +1 -0
  371. package/dist-runtime/delivery/release-history.d.ts +43 -0
  372. package/dist-runtime/delivery/release-history.js +322 -0
  373. package/dist-runtime/delivery/release-history.js.map +1 -0
  374. package/dist-runtime/delivery/release-inputs.d.ts +33 -0
  375. package/dist-runtime/delivery/release-inputs.js +129 -0
  376. package/dist-runtime/delivery/release-inputs.js.map +1 -0
  377. package/dist-runtime/delivery/release.d.ts +196 -0
  378. package/dist-runtime/delivery/release.js +261 -0
  379. package/dist-runtime/delivery/release.js.map +1 -0
  380. package/dist-runtime/delivery/safe-manifest.d.ts +9 -0
  381. package/dist-runtime/delivery/safe-manifest.js +13 -0
  382. package/dist-runtime/delivery/safe-manifest.js.map +1 -0
  383. package/dist-runtime/delivery/safe-observation.d.ts +30 -0
  384. package/dist-runtime/delivery/safe-observation.js +487 -0
  385. package/dist-runtime/delivery/safe-observation.js.map +1 -0
  386. package/dist-runtime/delivery/safe-prepare.d.ts +13 -0
  387. package/dist-runtime/delivery/safe-prepare.js +81 -0
  388. package/dist-runtime/delivery/safe-prepare.js.map +1 -0
  389. package/dist-runtime/delivery/safe.d.ts +92 -0
  390. package/dist-runtime/delivery/safe.js +254 -0
  391. package/dist-runtime/delivery/safe.js.map +1 -0
  392. package/dist-runtime/delivery/same-fork-baseline.d.ts +8 -0
  393. package/dist-runtime/delivery/same-fork-baseline.js +21 -0
  394. package/dist-runtime/delivery/same-fork-baseline.js.map +1 -0
  395. package/dist-runtime/delivery/setup.d.ts +31 -0
  396. package/dist-runtime/delivery/setup.js +230 -0
  397. package/dist-runtime/delivery/setup.js.map +1 -0
  398. package/dist-runtime/delivery/source.d.ts +42 -0
  399. package/dist-runtime/delivery/source.js +139 -0
  400. package/dist-runtime/delivery/source.js.map +1 -0
  401. package/dist-runtime/delivery/target-fields.d.ts +2 -0
  402. package/dist-runtime/delivery/target-fields.js +11 -0
  403. package/dist-runtime/delivery/target-fields.js.map +1 -0
  404. package/dist-runtime/delivery/task-identity.d.ts +23 -0
  405. package/dist-runtime/delivery/task-identity.js +109 -0
  406. package/dist-runtime/delivery/task-identity.js.map +1 -0
  407. package/dist-runtime/delivery/toolchain.d.ts +3 -0
  408. package/dist-runtime/delivery/toolchain.js +52 -0
  409. package/dist-runtime/delivery/toolchain.js.map +1 -0
  410. package/dist-runtime/delivery/validation.d.ts +9 -0
  411. package/dist-runtime/delivery/validation.js +155 -0
  412. package/dist-runtime/delivery/validation.js.map +1 -0
  413. package/dist-runtime/delivery/verification.d.ts +16 -0
  414. package/dist-runtime/delivery/verification.js +65 -0
  415. package/dist-runtime/delivery/verification.js.map +1 -0
  416. package/dist-runtime/migrate.js +1 -0
  417. package/dist-runtime/migrate.js.map +1 -1
  418. package/dist-runtime/miner/binary.d.ts +2 -0
  419. package/dist-runtime/miner/binary.js +54 -0
  420. package/dist-runtime/miner/binary.js.map +1 -0
  421. package/dist-runtime/miner/cli.d.ts +1 -0
  422. package/dist-runtime/miner/cli.js +131 -0
  423. package/dist-runtime/miner/cli.js.map +1 -0
  424. package/dist-runtime/miner/index.d.ts +5 -0
  425. package/dist-runtime/miner/index.js +13 -0
  426. package/dist-runtime/miner/index.js.map +1 -0
  427. package/dist-runtime/miner/request.d.ts +7 -0
  428. package/dist-runtime/miner/request.js +73 -0
  429. package/dist-runtime/miner/request.js.map +1 -0
  430. package/dist-runtime/miner/runner.d.ts +2 -0
  431. package/dist-runtime/miner/runner.js +131 -0
  432. package/dist-runtime/miner/runner.js.map +1 -0
  433. package/dist-runtime/miner/types.d.ts +89 -0
  434. package/dist-runtime/miner/types.js +3 -0
  435. package/dist-runtime/miner/types.js.map +1 -0
  436. package/dist-runtime/miner/verify.d.ts +2 -0
  437. package/dist-runtime/miner/verify.js +75 -0
  438. package/dist-runtime/miner/verify.js.map +1 -0
  439. package/dist-runtime/runtime-identity.json +2 -2
  440. package/dist-runtime/vendor/plan-codec/index.cjs +897 -0
  441. package/dist-runtime/vendor/plan-codec/index.d.cts +38 -0
  442. package/dist-runtime/vendor/plan-codec/provenance.json +25 -0
  443. package/dist-runtime/workflow/engine.d.ts +14 -0
  444. package/dist-runtime/workflow/engine.js +160 -0
  445. package/dist-runtime/workflow/engine.js.map +1 -0
  446. package/dist-runtime/workflow/lib/authority.d.ts +6 -3
  447. package/dist-runtime/workflow/lib/authority.js.map +1 -1
  448. package/dist-runtime/workflow/lib/calls.d.ts +1 -1
  449. package/dist-runtime/workflow/lib/calls.js +44 -34
  450. package/dist-runtime/workflow/lib/calls.js.map +1 -1
  451. package/dist-runtime/workflow/lib/canonicalData.d.ts +8 -0
  452. package/dist-runtime/workflow/lib/canonicalData.js +68 -0
  453. package/dist-runtime/workflow/lib/canonicalData.js.map +1 -0
  454. package/dist-runtime/workflow/lib/checkCodeRunner.js +7 -4
  455. package/dist-runtime/workflow/lib/checkCodeRunner.js.map +1 -1
  456. package/dist-runtime/workflow/lib/config.d.ts +3 -1
  457. package/dist-runtime/workflow/lib/config.js.map +1 -1
  458. package/dist-runtime/workflow/lib/context.d.ts +77 -0
  459. package/dist-runtime/workflow/lib/context.js +3 -0
  460. package/dist-runtime/workflow/lib/context.js.map +1 -0
  461. package/dist-runtime/workflow/lib/create2.d.ts +5 -27
  462. package/dist-runtime/workflow/lib/create2.js +11 -79
  463. package/dist-runtime/workflow/lib/create2.js.map +1 -1
  464. package/dist-runtime/workflow/lib/deploymentInfo.d.ts +2 -0
  465. package/dist-runtime/workflow/lib/deploymentInfo.js +6 -0
  466. package/dist-runtime/workflow/lib/deploymentInfo.js.map +1 -1
  467. package/dist-runtime/workflow/lib/deploymentRecords.d.ts +2 -0
  468. package/dist-runtime/workflow/lib/deploymentRecords.js +1 -1
  469. package/dist-runtime/workflow/lib/deploymentRecords.js.map +1 -1
  470. package/dist-runtime/workflow/lib/deployments.d.ts +5 -5
  471. package/dist-runtime/workflow/lib/deployments.js +5 -13
  472. package/dist-runtime/workflow/lib/deployments.js.map +1 -1
  473. package/dist-runtime/workflow/lib/evidencePorts.d.ts +55 -0
  474. package/dist-runtime/workflow/lib/evidencePorts.js +3 -0
  475. package/dist-runtime/workflow/lib/evidencePorts.js.map +1 -0
  476. package/dist-runtime/workflow/lib/executionPlan.d.ts +4 -42
  477. package/dist-runtime/workflow/lib/executionPlan.js +15 -210
  478. package/dist-runtime/workflow/lib/executionPlan.js.map +1 -1
  479. package/dist-runtime/workflow/lib/externalExecutionScanner.js +2 -1
  480. package/dist-runtime/workflow/lib/externalExecutionScanner.js.map +1 -1
  481. package/dist-runtime/workflow/lib/gateTool.d.ts +6 -2
  482. package/dist-runtime/workflow/lib/gateTool.js +22 -12
  483. package/dist-runtime/workflow/lib/gateTool.js.map +1 -1
  484. package/dist-runtime/workflow/lib/gateToolSync.d.ts +4 -1
  485. package/dist-runtime/workflow/lib/gateToolSync.js +8 -2
  486. package/dist-runtime/workflow/lib/gateToolSync.js.map +1 -1
  487. package/dist-runtime/workflow/lib/operationNames.d.ts +3 -0
  488. package/dist-runtime/workflow/lib/operationNames.js +34 -0
  489. package/dist-runtime/workflow/lib/operationNames.js.map +1 -0
  490. package/dist-runtime/workflow/lib/parameters.d.ts +1 -1
  491. package/dist-runtime/workflow/lib/parameters.js +11 -22
  492. package/dist-runtime/workflow/lib/parameters.js.map +1 -1
  493. package/dist-runtime/workflow/lib/pendingDeploymentReuse.js +18 -52
  494. package/dist-runtime/workflow/lib/pendingDeploymentReuse.js.map +1 -1
  495. package/dist-runtime/workflow/lib/pendingUupsBinding.d.ts +42 -0
  496. package/dist-runtime/workflow/lib/pendingUupsBinding.js +39 -0
  497. package/dist-runtime/workflow/lib/pendingUupsBinding.js.map +1 -0
  498. package/dist-runtime/workflow/lib/plan.d.ts +55 -0
  499. package/dist-runtime/workflow/lib/plan.js +324 -0
  500. package/dist-runtime/workflow/lib/plan.js.map +1 -0
  501. package/dist-runtime/workflow/lib/planCli.d.ts +14 -0
  502. package/dist-runtime/workflow/lib/planCli.js +279 -0
  503. package/dist-runtime/workflow/lib/planCli.js.map +1 -0
  504. package/dist-runtime/workflow/lib/preparationEvidence.d.ts +4 -0
  505. package/dist-runtime/workflow/lib/preparationEvidence.js +19 -0
  506. package/dist-runtime/workflow/lib/preparationEvidence.js.map +1 -0
  507. package/dist-runtime/workflow/lib/proxy.d.ts +4 -2
  508. package/dist-runtime/workflow/lib/proxy.js +3 -4
  509. package/dist-runtime/workflow/lib/proxy.js.map +1 -1
  510. package/dist-runtime/workflow/lib/runtime.d.ts +6 -0
  511. package/dist-runtime/workflow/lib/runtime.js +48 -0
  512. package/dist-runtime/workflow/lib/runtime.js.map +1 -0
  513. package/dist-runtime/workflow/lib/signer.d.ts +3 -2
  514. package/dist-runtime/workflow/lib/signer.js +18 -18
  515. package/dist-runtime/workflow/lib/signer.js.map +1 -1
  516. package/dist-runtime/workflow/lib/simulation.d.ts +13 -6
  517. package/dist-runtime/workflow/lib/simulation.js +39 -31
  518. package/dist-runtime/workflow/lib/simulation.js.map +1 -1
  519. package/dist-runtime/workflow/lib/state.js +3 -3
  520. package/dist-runtime/workflow/lib/state.js.map +1 -1
  521. package/dist-runtime/workflow/lib/staticValidation.d.ts +28 -0
  522. package/dist-runtime/workflow/lib/staticValidation.js +54 -10
  523. package/dist-runtime/workflow/lib/staticValidation.js.map +1 -1
  524. package/dist-runtime/workflow/lib/transactionPlanner.d.ts +62 -0
  525. package/dist-runtime/workflow/lib/transactionPlanner.js +258 -0
  526. package/dist-runtime/workflow/lib/transactionPlanner.js.map +1 -0
  527. package/dist-runtime/workflow/lib/typedValue.d.ts +3 -0
  528. package/dist-runtime/workflow/lib/typedValue.js +76 -0
  529. package/dist-runtime/workflow/lib/typedValue.js.map +1 -0
  530. package/dist-runtime/workflow/lib/validation.d.ts +23 -0
  531. package/dist-runtime/workflow/lib/validation.js +15 -0
  532. package/dist-runtime/workflow/lib/validation.js.map +1 -0
  533. package/dist-runtime/workflow/planAdd.d.ts +1 -0
  534. package/dist-runtime/workflow/planAdd.js +11 -0
  535. package/dist-runtime/workflow/planAdd.js.map +1 -0
  536. package/dist-runtime/workflow/planRead.d.ts +1 -0
  537. package/dist-runtime/workflow/planRead.js +11 -0
  538. package/dist-runtime/workflow/planRead.js.map +1 -0
  539. package/dist-runtime/workflow/planStatus.d.ts +1 -0
  540. package/dist-runtime/workflow/planStatus.js +11 -0
  541. package/dist-runtime/workflow/planStatus.js.map +1 -0
  542. package/dist-runtime/workflow/planWrite.d.ts +1 -0
  543. package/dist-runtime/workflow/planWrite.js +11 -0
  544. package/dist-runtime/workflow/planWrite.js.map +1 -0
  545. package/dist-runtime/workflow/run.d.ts +1 -40
  546. package/dist-runtime/workflow/run.js +69 -139
  547. package/dist-runtime/workflow/run.js.map +1 -1
  548. package/dist-runtime/workflow/staticValidate.js +8 -3
  549. package/dist-runtime/workflow/staticValidate.js.map +1 -1
  550. package/dist-runtime/workflow/steps/call.d.ts +1 -1
  551. package/dist-runtime/workflow/steps/check.d.ts +1 -1
  552. package/dist-runtime/workflow/steps/custom.d.ts +1 -1
  553. package/dist-runtime/workflow/steps/deploy.d.ts +1 -1
  554. package/dist-runtime/workflow/steps/deploy.js +110 -55
  555. package/dist-runtime/workflow/steps/deploy.js.map +1 -1
  556. package/dist-runtime/workflow/steps/upgrade.d.ts +1 -1
  557. package/dist-runtime/workflow/steps/upgrade.js +84 -49
  558. package/dist-runtime/workflow/steps/upgrade.js.map +1 -1
  559. package/dist-runtime/workflow/steps/view.d.ts +1 -1
  560. package/docs/compiler-qualification.md +38 -0
  561. package/docs/configuration-runtime-observation.md +29 -0
  562. package/docs/create2-miner.md +100 -0
  563. package/docs/delivery-aggregate.md +29 -0
  564. package/docs/delivery-calldata.md +27 -0
  565. package/docs/delivery-custom-input-closure.md +51 -0
  566. package/docs/delivery-development.md +38 -0
  567. package/docs/delivery-eoa.md +46 -0
  568. package/docs/delivery-evm-manifest.md +20 -0
  569. package/docs/delivery-execution-store.md +33 -0
  570. package/docs/delivery-inputs.md +95 -0
  571. package/docs/delivery-parameters.md +65 -0
  572. package/docs/delivery-planning.md +140 -0
  573. package/docs/delivery-release.md +119 -0
  574. package/docs/delivery-safe.md +75 -0
  575. package/docs/delivery-setup.md +198 -0
  576. package/docs/delivery-source.md +67 -0
  577. package/docs/direct-package-acceptance.md +2 -0
  578. package/docs/openzeppelin-acceptance.md +86 -0
  579. package/docs/openzeppelin-baseline.json +27 -0
  580. package/docs/openzeppelin-integration.md +115 -0
  581. package/docs/plans/2026-10-28-openzeppelin-toolkit-consolidation.md +396 -0
  582. package/docs/plans/2026-11-02-transparent-proxy-delivery.md +78 -0
  583. package/docs/superpowers/plans/2026-08-17-custody-hardhat-signers.md +1 -1
  584. package/docs/superpowers/plans/2026-09-24-scheme-aware-static-validation.md +193 -0
  585. package/docs/superpowers/plans/2026-10-28-create2-miner.md +82 -0
  586. package/docs/workflow-reference.md +12 -4
  587. package/docs/workflow-runtime.md +6 -0
  588. package/package.json +148 -10
  589. package/resources/create2/LICENSE +21 -0
  590. package/resources/create2/README.md +9 -0
  591. package/resources/create2/darwin-arm64/smartflow_miner +0 -0
  592. package/resources/create2/darwin-x64/smartflow_miner +0 -0
  593. package/resources/create2/manifest.json +27 -0
  594. package/runtime/config/hardhatAdapters.ts +2 -1
  595. package/runtime/config/openzeppelin.ts +3 -21
  596. package/runtime/delivery/abi.ts +225 -0
  597. package/runtime/delivery/aggregate-bootstrap.ts +31 -0
  598. package/runtime/delivery/aggregate-channel.ts +88 -0
  599. package/runtime/delivery/aggregate-diagnostics.ts +63 -0
  600. package/runtime/delivery/aggregate-inputs.ts +39 -0
  601. package/runtime/delivery/aggregate-source.ts +57 -0
  602. package/runtime/delivery/aggregate-worker.ts +143 -0
  603. package/runtime/delivery/aggregate.ts +139 -0
  604. package/runtime/delivery/bindings.ts +37 -0
  605. package/runtime/delivery/business-extension.ts +33 -0
  606. package/runtime/delivery/calldata-archive.ts +25 -0
  607. package/runtime/delivery/calldata-details.ts +90 -0
  608. package/runtime/delivery/calldata-format.ts +14 -0
  609. package/runtime/delivery/calldata-preparations.ts +76 -0
  610. package/runtime/delivery/calldata-review.ts +126 -0
  611. package/runtime/delivery/check-code.ts +38 -0
  612. package/runtime/delivery/closure-format.ts +350 -0
  613. package/runtime/delivery/codec-pin.ts +3 -0
  614. package/runtime/delivery/codec.ts +50 -0
  615. package/runtime/delivery/compiler-dependency-pins.ts +1685 -0
  616. package/runtime/delivery/compiler-files.ts +181 -0
  617. package/runtime/delivery/compiler-io.ts +10 -0
  618. package/runtime/delivery/compiler-pins.ts +143 -0
  619. package/runtime/delivery/compiler.ts +701 -0
  620. package/runtime/delivery/config.ts +116 -0
  621. package/runtime/delivery/configuration-definition.ts +160 -0
  622. package/runtime/delivery/configuration-hre.ts +130 -0
  623. package/runtime/delivery/configuration-runtime.ts +163 -0
  624. package/runtime/delivery/configuration.ts +67 -0
  625. package/runtime/delivery/contract-source.ts +112 -0
  626. package/runtime/delivery/create2.ts +57 -0
  627. package/runtime/delivery/custom-closure.ts +993 -0
  628. package/runtime/delivery/custom-format.ts +479 -0
  629. package/runtime/delivery/custom.ts +219 -0
  630. package/runtime/delivery/data.ts +94 -0
  631. package/runtime/delivery/development.ts +264 -0
  632. package/runtime/delivery/engine.ts +29 -0
  633. package/runtime/delivery/eoa-observation.ts +106 -0
  634. package/runtime/delivery/eoa-signed.ts +55 -0
  635. package/runtime/delivery/eoa.ts +288 -0
  636. package/runtime/delivery/execution-db.ts +131 -0
  637. package/runtime/delivery/execution-files.ts +135 -0
  638. package/runtime/delivery/execution-identity.ts +32 -0
  639. package/runtime/delivery/execution-model.ts +102 -0
  640. package/runtime/delivery/execution-store.ts +411 -0
  641. package/runtime/delivery/existing-code.ts +45 -0
  642. package/runtime/delivery/export.ts +99 -0
  643. package/runtime/delivery/forkAudit.ts +620 -0
  644. package/runtime/delivery/hardhat.ts +38 -0
  645. package/runtime/delivery/history-registration.ts +10 -0
  646. package/runtime/delivery/identities.ts +132 -0
  647. package/runtime/delivery/input-files.ts +46 -0
  648. package/runtime/delivery/inputs.ts +204 -0
  649. package/runtime/delivery/journal.ts +205 -0
  650. package/runtime/delivery/manifest.ts +54 -0
  651. package/runtime/delivery/materialization.ts +53 -0
  652. package/runtime/delivery/observations.ts +60 -0
  653. package/runtime/delivery/parameter-defaults.ts +75 -0
  654. package/runtime/delivery/parameters.ts +367 -0
  655. package/runtime/delivery/pending.ts +98 -0
  656. package/runtime/delivery/plan.ts +337 -0
  657. package/runtime/delivery/planning.ts +411 -0
  658. package/runtime/delivery/policy.ts +9 -0
  659. package/runtime/delivery/preparation.ts +240 -0
  660. package/runtime/delivery/production-environment.ts +7 -0
  661. package/runtime/delivery/production-finalization.ts +181 -0
  662. package/runtime/delivery/production-intent.ts +14 -0
  663. package/runtime/delivery/production.ts +415 -0
  664. package/runtime/delivery/project-files.ts +63 -0
  665. package/runtime/delivery/project-rpc.ts +116 -0
  666. package/runtime/delivery/project.ts +129 -0
  667. package/runtime/delivery/protocol.ts +94 -0
  668. package/runtime/delivery/public-calldata.ts +74 -0
  669. package/runtime/delivery/references.ts +106 -0
  670. package/runtime/delivery/release-graph.ts +79 -0
  671. package/runtime/delivery/release-history-capture.ts +32 -0
  672. package/runtime/delivery/release-history.ts +178 -0
  673. package/runtime/delivery/release-inputs.ts +107 -0
  674. package/runtime/delivery/release.ts +166 -0
  675. package/runtime/delivery/safe-manifest.ts +11 -0
  676. package/runtime/delivery/safe-observation.ts +626 -0
  677. package/runtime/delivery/safe-prepare.ts +101 -0
  678. package/runtime/delivery/safe.ts +355 -0
  679. package/runtime/delivery/same-fork-baseline.ts +17 -0
  680. package/runtime/delivery/setup.ts +184 -0
  681. package/runtime/delivery/source.ts +130 -0
  682. package/runtime/delivery/target-fields.ts +7 -0
  683. package/runtime/delivery/task-identity.ts +85 -0
  684. package/runtime/delivery/toolchain.ts +48 -0
  685. package/runtime/delivery/validation.ts +252 -0
  686. package/runtime/delivery/verification.ts +47 -0
  687. package/runtime/migrate.ts +1 -0
  688. package/runtime/miner/binary.ts +41 -0
  689. package/runtime/miner/cli.ts +87 -0
  690. package/runtime/miner/index.ts +5 -0
  691. package/runtime/miner/request.ts +54 -0
  692. package/runtime/miner/runner.ts +90 -0
  693. package/runtime/miner/types.ts +71 -0
  694. package/runtime/miner/verify.ts +61 -0
  695. package/runtime/vendor/plan-codec/index.cjs +897 -0
  696. package/runtime/vendor/plan-codec/index.d.cts +38 -0
  697. package/runtime/vendor/plan-codec/provenance.json +25 -0
  698. package/runtime/workflow/engine.ts +174 -0
  699. package/runtime/workflow/lib/authority.ts +3 -3
  700. package/runtime/workflow/lib/calls.ts +47 -37
  701. package/runtime/workflow/lib/canonicalData.ts +45 -0
  702. package/runtime/workflow/lib/checkCodeRunner.ts +7 -3
  703. package/runtime/workflow/lib/config.ts +1 -1
  704. package/runtime/workflow/lib/context.ts +77 -0
  705. package/runtime/workflow/lib/create2.ts +18 -121
  706. package/runtime/workflow/lib/deploymentInfo.ts +8 -0
  707. package/runtime/workflow/lib/deploymentRecords.ts +3 -1
  708. package/runtime/workflow/lib/deployments.ts +6 -14
  709. package/runtime/workflow/lib/evidencePorts.ts +20 -0
  710. package/runtime/workflow/lib/executionPlan.ts +17 -268
  711. package/runtime/workflow/lib/externalExecutionScanner.ts +2 -1
  712. package/runtime/workflow/lib/gateTool.ts +22 -10
  713. package/runtime/workflow/lib/gateToolSync.ts +11 -3
  714. package/runtime/workflow/lib/operationNames.ts +32 -0
  715. package/runtime/workflow/lib/parameters.ts +8 -21
  716. package/runtime/workflow/lib/pendingDeploymentReuse.ts +4 -56
  717. package/runtime/workflow/lib/pendingUupsBinding.ts +43 -0
  718. package/runtime/workflow/lib/plan.ts +334 -0
  719. package/runtime/workflow/lib/planCli.ts +279 -0
  720. package/runtime/workflow/lib/preparationEvidence.ts +14 -0
  721. package/runtime/workflow/lib/proxy.ts +6 -3
  722. package/runtime/workflow/lib/runtime.ts +46 -0
  723. package/runtime/workflow/lib/signer.ts +8 -5
  724. package/runtime/workflow/lib/simulation.ts +41 -17
  725. package/runtime/workflow/lib/state.ts +3 -3
  726. package/runtime/workflow/lib/staticValidation.ts +92 -11
  727. package/runtime/workflow/lib/transactionPlanner.ts +314 -0
  728. package/runtime/workflow/lib/typedValue.ts +46 -0
  729. package/runtime/workflow/lib/validation.ts +50 -0
  730. package/runtime/workflow/planAdd.ts +8 -0
  731. package/runtime/workflow/planRead.ts +8 -0
  732. package/runtime/workflow/planStatus.ts +8 -0
  733. package/runtime/workflow/planWrite.ts +8 -0
  734. package/runtime/workflow/run.ts +42 -176
  735. package/runtime/workflow/staticValidate.ts +8 -3
  736. package/runtime/workflow/steps/call.ts +1 -1
  737. package/runtime/workflow/steps/check.ts +1 -1
  738. package/runtime/workflow/steps/custom.ts +1 -1
  739. package/runtime/workflow/steps/deploy.ts +99 -58
  740. package/runtime/workflow/steps/upgrade.ts +88 -57
  741. package/runtime/workflow/steps/view.ts +1 -1
  742. package/bin/workflow.cjs +0 -19
@@ -0,0 +1,38 @@
1
+ export const SCHEMA: 'gateflow-plan/v2'
2
+ export const SCHEMA_V1: 'gateflow-plan/v1'
3
+ export const SAFE_KEY: RegExp
4
+ export const SKILL_NAME: RegExp
5
+ export const TASK_STATUSES: readonly ['pending', 'running', 'blocked', 'completed', 'failed', 'cancelled']
6
+ export const FAILURE_CATEGORIES: readonly ['execution_error', 'acceptance_failed', 'review_rejected', 'input_missing']
7
+ export const DEFINITION_CONTRACT: 'gateflow-plan/definition@1'
8
+ export class PlanError extends Error { code: string; constructor(message: string, code?: string) }
9
+ export interface PlanTask {
10
+ no: number; planKey: string; rev: number; title: string; objective: string; acceptance: string[]; dependsOn: string[]
11
+ step?: string; scope?: Record<string, unknown>; parameters?: unknown[]; expectedArtifacts?: string[]; allowedChanges?: string[]
12
+ tools?: string[]; toolsOptional?: string[]; skills?: string[]; status: typeof TASK_STATUSES[number]; adoptedRev?: number
13
+ blockedReason?: string; cancelReason?: string; result?: Record<string, unknown>; previousResult?: Record<string, unknown>
14
+ requirementConfirmation?: { rev: number; confirmedAt: string }
15
+ }
16
+ export interface PlanLane { name: string; state: 'enabled' | 'disabled'; reason?: string; skill?: string; steps?: { id: string; name: string }[] }
17
+ export interface Plan {
18
+ schema: typeof SCHEMA; taskId: string; title: string; flow?: string; revision: number; progressSeq: number; updatedAt: string
19
+ lanes: Record<string, PlanLane>; goal: string; notes: Record<string, string>; tasks: Record<string, PlanTask[]>; history: Record<string, unknown>[]
20
+ }
21
+ export type DeepReadonly<T> = T extends object ? { readonly [P in keyof T]: DeepReadonly<T[P]> } : T
22
+ export interface DefinitionSelection { roots: string[]; mode: 'upstream' | 'full' }
23
+ export interface DefinitionSnapshot {
24
+ contract: typeof DEFINITION_CONTRACT; schema: typeof SCHEMA; taskId: string; flow?: string; roots: string[]
25
+ lanes: Record<string, { state: 'enabled' | 'disabled'; skill?: string; steps: string[] }>
26
+ tasks: (Pick<PlanTask, 'planKey' | 'rev' | 'objective' | 'acceptance' | 'dependsOn' | 'step' | 'scope' | 'parameters' | 'expectedArtifacts' | 'allowedChanges'> & { lane: string })[]
27
+ }
28
+ export function parsePlan(text: string): Plan
29
+ export function detectSchema(text: string): string | null
30
+ export function projectDefinitions(text: string, selection: DefinitionSelection): Readonly<{ snapshot: DeepReadonly<DefinitionSnapshot>; bytes: string }>
31
+ export function skillNames(value: unknown, where: string): string[]
32
+ export function toolRefs(value: unknown, where: string): string[]
33
+ export function validateEvmContracts(plan: { flow?: string; lanes: Record<string, { skill?: string }>; tasks: Record<string, { planKey: string; step?: string; scope?: Record<string, unknown> }[]> }, fail: (message: string) => never): void
34
+
35
+ export type DeploymentPurpose = 'analysis' | 'dev-execution' | 'prod-qualification' | 'prod-execution'
36
+ export function deploymentPurpose(task: {step?: string; scope?: Record<string, unknown>}): DeploymentPurpose | undefined
37
+ export function productionActionAllowed(task: {step?: string; scope?: Record<string, unknown>}, intent: string): boolean
38
+ export function deploymentRequirementIssue(plan: { tasks: Record<string, {planKey:string;rev:number;status:string;step?:string;scope?:Record<string,unknown>;requirementConfirmation?:{rev:number;confirmedAt:string}}[]> }, task: Pick<PlanTask, 'step' | 'scope' | 'dependsOn'>): string | null
@@ -0,0 +1,25 @@
1
+ {
2
+ "formatVersion": 1,
3
+ "name": "gateflow-plan-read-only",
4
+ "version": 1,
5
+ "schema": "gateflow-plan/v2",
6
+ "definitionContract": "gateflow-plan/definition@1",
7
+ "sourceCommit": "ee0f90991ca1a94c3f58c8893df16d0c8c41b230",
8
+ "sourceMode": "working-tree",
9
+ "sources": {
10
+ "builtin-skills/gateflow-plan/scripts/lib/evm-contract.mjs": "c41dd9e6d630ea033001dd0922911bf365ff2baaa894107f6a80a3019eca1c17",
11
+ "builtin-skills/gateflow-plan/scripts/lib/handoff-v2.mjs": "05c89b794b65d6c73dc2427df8dc1b21f06c377c30f2c3baf8517459b8df56e0",
12
+ "builtin-skills/gateflow-plan/scripts/lib/read-only.d.mts": "716d1252adf79d5c7e6c3b7ed17984203ae3e1853695dc04fa9e769c9ac24c50",
13
+ "builtin-skills/gateflow-plan/scripts/lib/read-only.mjs": "1cb928d76ce14b07028efe002e624d91d36168494b5cc2cc0ba35153a311ff3e",
14
+ "builtin-skills/gateflow-plan/scripts/lib/yaml-lite.mjs": "b53b8322b27bb73bbbf2a4254be4698ee43ec79c27828068954afd6d05902784",
15
+ "scripts/build-plan-codec.mjs": "048e647687da5a55a9f1899af510b9f1b0eb0872876e5eef278ede89c53c5d75"
16
+ },
17
+ "builder": {
18
+ "name": "esbuild",
19
+ "version": "0.21.5"
20
+ },
21
+ "artifacts": {
22
+ "index.cjs": "1014b59dad45b47510602791e426eaf2ee6d58720583670134fa14431b935d0d",
23
+ "index.d.cts": "716d1252adf79d5c7e6c3b7ed17984203ae3e1853695dc04fa9e769c9ac24c50"
24
+ }
25
+ }
@@ -0,0 +1,174 @@
1
+ import type { WorkflowContext } from "./lib/context";
2
+ import type { WorkflowStep } from "./lib/parameters";
3
+ import type { WorkflowMode } from "./lib/simulation";
4
+ import { assertLocalForkRuntime, assertLocalForkSigner, impersonateLocalForkSigner } from "./lib/runtime";
5
+ import { ExternalExecutionRequired } from "./lib/external";
6
+ import { ExecutionSegmentDeferred } from "./lib/transactionPlanner";
7
+ import { runDeployStep } from "./steps/deploy";
8
+ import { runCallStep } from "./steps/call";
9
+ import { runUpgradeStep } from "./steps/upgrade";
10
+ import { runViewStep } from "./steps/view";
11
+ import { runCheckStep } from "./steps/check";
12
+
13
+ export interface WorkflowEngineOptions {
14
+ simulationCallers?: readonly { stepId: string; callerAddress: string }[];
15
+ runCustomStep?: (context: WorkflowContext, step: WorkflowStep) => Promise<void>;
16
+ }
17
+
18
+ export const validateWorkflowStepsForMode = (
19
+ mode: WorkflowMode,
20
+ steps: readonly WorkflowStep[],
21
+ ): void => {
22
+ if (!["simulate", "verify", "execute"].includes(mode)) throw new Error(`Unsupported workflow mode: ${mode}`);
23
+ if (mode === "verify") {
24
+ const unsupported = steps.find((step) => step.kind !== "view" && step.kind !== "check");
25
+ if (unsupported) throw new Error(`verify mode only supports view and check steps; ${unsupported.id} is ${unsupported.kind}`);
26
+ }
27
+ };
28
+
29
+ const dispatchStep = async (context: WorkflowContext, step: WorkflowStep, options: WorkflowEngineOptions): Promise<void> => {
30
+ switch (step.kind) {
31
+ case "deploy":
32
+ await runDeployStep(context, step);
33
+ return;
34
+ case "call":
35
+ await runCallStep(context, step);
36
+ return;
37
+ case "upgrade":
38
+ await runUpgradeStep(context, step);
39
+ return;
40
+ case "view":
41
+ await runViewStep(context, step);
42
+ return;
43
+ case "check":
44
+ await runCheckStep(context, step);
45
+ return;
46
+ case "custom":
47
+ if (!options.runCustomStep) throw new Error("Custom steps require an explicit legacy or planning adapter");
48
+ await options.runCustomStep(context, step);
49
+ return;
50
+ default:
51
+ throw new Error(`Unsupported step kind: ${step.kind}`);
52
+ }
53
+ };
54
+
55
+ export const runWorkflowSteps = async (
56
+ context: WorkflowContext,
57
+ steps: readonly WorkflowStep[],
58
+ options: WorkflowEngineOptions = {},
59
+ ): Promise<{ executionSegmentDeferred: boolean }> => {
60
+ // Validate the entire selection before a read, custom adapter, or signer runs.
61
+ validateWorkflowStepsForMode(context.mode, steps);
62
+ if (
63
+ context.mode === "verify"
64
+ && context.signer
65
+ && (!context.signer.provider || context.signer.provider !== context.runtime.hre.ethers.provider)
66
+ ) {
67
+ throw new Error("Verify signer must be connected to the explicit runtime provider");
68
+ }
69
+ if (context.mode === "simulate") {
70
+ assertLocalForkRuntime(context.runtime);
71
+ if (context.signer) assertLocalForkSigner(context.runtime, context.signer);
72
+ } else if (options.simulationCallers?.length) {
73
+ throw new Error("Simulation callers are only available in simulate mode");
74
+ }
75
+ const reporter = context.reporter;
76
+ let executionSegmentDeferred = false;
77
+ stepLoop: for (const step of steps) {
78
+ if (
79
+ context.mode === "execute"
80
+ && context.externalCalls.length > 0
81
+ && (step.kind === "view" || step.kind === "check" || step.kind === "custom")
82
+ ) {
83
+ reporter.event("step.deferred_until_external_execution", {
84
+ stepId: step.id,
85
+ kind: step.kind,
86
+ });
87
+ break;
88
+ }
89
+ const configuredCaller = options.simulationCallers?.find(
90
+ (entry) => entry.stepId === step.id,
91
+ );
92
+ const stepContext: WorkflowContext = configuredCaller
93
+ ? {
94
+ ...context,
95
+ signer: await impersonateLocalForkSigner(context.runtime, configuredCaller.callerAddress),
96
+ signerAddress: configuredCaller.callerAddress,
97
+ configuredSimulationCaller: true,
98
+ }
99
+ : context;
100
+ if (configuredCaller) {
101
+ reporter.setSimulationCallerAddress?.(configuredCaller.callerAddress);
102
+ }
103
+ try {
104
+ reporter.event("step.started", { stepId: step.id, kind: step.kind });
105
+ try {
106
+ await dispatchStep(stepContext, step, options);
107
+ } catch (error) {
108
+ if (context.mode === "execute" && error instanceof ExecutionSegmentDeferred) {
109
+ executionSegmentDeferred = true;
110
+ reporter.event("execution.segment.deferred", {
111
+ transactionId: error.transactionId,
112
+ });
113
+ break stepLoop;
114
+ }
115
+ if (
116
+ context.mode === "execute"
117
+ && error instanceof ExternalExecutionRequired
118
+ ) {
119
+ if (!context.executionPlanner) {
120
+ throw new Error(
121
+ "External execution requires a locked mixed-authority plan; run final simulation and execute mode",
122
+ );
123
+ }
124
+ for (const call of error.calls) {
125
+ let planned;
126
+ try {
127
+ planned = context.executionPlanner.add({
128
+ stepId: call.stepId,
129
+ executor: call.executor,
130
+ to: call.to,
131
+ value: call.value,
132
+ data: call.data,
133
+ operation: call.operation,
134
+ });
135
+ } catch (planError) {
136
+ if (planError instanceof ExecutionSegmentDeferred) {
137
+ executionSegmentDeferred = true;
138
+ reporter.event("execution.segment.deferred", {
139
+ transactionId: planError.transactionId,
140
+ });
141
+ break;
142
+ }
143
+ throw planError;
144
+ }
145
+ if (planned.route !== "external") {
146
+ throw new Error(
147
+ `Step ${call.stepId} requested external execution for an operator route`,
148
+ );
149
+ }
150
+ if (planned.executionAction !== "replay") {
151
+ context.externalCalls.push({
152
+ ...call,
153
+ transactionId: planned.transactionId,
154
+ stepId: planned.stepId,
155
+ executor: planned.executor,
156
+ to: planned.to,
157
+ value: planned.value,
158
+ data: planned.data,
159
+ operation: planned.operation,
160
+ });
161
+ }
162
+ }
163
+ if (executionSegmentDeferred) break stepLoop;
164
+ continue;
165
+ }
166
+ throw error;
167
+ }
168
+ reporter.event("step.completed", { stepId: step.id, kind: step.kind });
169
+ } finally {
170
+ if (configuredCaller) reporter.clearSimulationCallerAddress?.();
171
+ }
172
+ }
173
+ return { executionSegmentDeferred };
174
+ };
@@ -1,6 +1,6 @@
1
1
  import type { BaseContract } from "ethers";
2
2
  import { getAddress, isAddress } from "ethers";
3
- import { TargetConfig, resolveAdmin } from "./config";
3
+ import { resolveAdmin } from "./config";
4
4
 
5
5
  export interface AuthorityDecision {
6
6
  mode: "execute" | "calldata";
@@ -61,7 +61,7 @@ interface ControlledMulticallAuthorityContract {
61
61
  export const decideControlledMulticallAuthority = async (
62
62
  contract: ControlledMulticallAuthorityContract,
63
63
  factory: string,
64
- target: TargetConfig,
64
+ target: { admin?: string },
65
65
  signerAddress: string,
66
66
  blockTag?: number,
67
67
  ): Promise<AuthorityDecision> => {
@@ -122,7 +122,7 @@ export const decideControlledMulticallAuthority = async (
122
122
 
123
123
  export const decideAuthority = async (
124
124
  contract: BaseContract,
125
- target: TargetConfig,
125
+ target: { admin?: string },
126
126
  signerAddress: string,
127
127
  blockTag?: number,
128
128
  ): Promise<AuthorityDecision> => {
@@ -1,6 +1,7 @@
1
+ import { resolveWorkflowValue } from './validation';
2
+ import { typedValue } from "./typedValue";
1
3
  import type { BaseContract } from "ethers";
2
4
  import { getAddress, isAddress } from "ethers";
3
- import { ethers } from "../../projectHardhat";
4
5
  import {
5
6
  assertSelectedSimulationSignerAuthorized,
6
7
  decideAuthority,
@@ -9,9 +10,9 @@ import { encodeCall } from "./calldata";
9
10
  import { findExecutionCandidateAddress } from "./contractInfoCandidates";
10
11
  import { getDeploymentAddress } from "./deployments";
11
12
  import { ExternalCall, ExternalExecutionRequired } from "./external";
12
- import { resolveValue, WorkflowStep } from "./parameters";
13
- import type { WorkflowContext } from "../run";
14
- import { impersonateWorkflowSimulationSigner } from "./signer";
13
+ import { WorkflowStep } from "./parameters";
14
+ import type { WorkflowContext } from "./context";
15
+ import { impersonateLocalForkSigner } from "./runtime";
15
16
 
16
17
  export interface ContractCall {
17
18
  method: string;
@@ -52,7 +53,7 @@ const findStateAddress = (
52
53
  ): string | undefined => {
53
54
  for (const pathExpression of [`${name}.address`, `${name}.proxyAddress`]) {
54
55
  try {
55
- const value = context.state.get(pathExpression);
56
+ const value = context.validation ? context.validation.resolve({ $ref: `state.${pathExpression}` }) : context.state.get(pathExpression);
56
57
  if (typeof value === "string" && value) {
57
58
  return value;
58
59
  }
@@ -85,14 +86,9 @@ export const resolveContract = async (
85
86
  deploymentName ||
86
87
  stringStepField(step, "saveAs") ||
87
88
  contractName;
88
- const address = String(
89
+ const rawAddress = (
89
90
  step.address
90
- ? resolveValue(step.address, {
91
- targetId: context.targetId,
92
- target: context.target,
93
- params: context.targetParams,
94
- state: context.state,
95
- })
91
+ ? resolveWorkflowValue(context, step.address)
96
92
  : findStateAddress(context, lookupName) ||
97
93
  findExecutionCandidateAddress({
98
94
  root: context.root,
@@ -101,9 +97,11 @@ export const resolveContract = async (
101
97
  network: context.targetId,
102
98
  name: lookupName,
103
99
  }) ||
104
- getDeploymentAddress(context.root, context.config, context.targetId, lookupName),
100
+ getDeploymentAddress(context.root, context.config, context.targetId, lookupName)
105
101
  );
106
- const contract = await ethers.getContractAt(abiName, address, context.signer);
102
+ context.validation?.address(rawAddress);
103
+ const address = String(rawAddress);
104
+ const contract = await context.runtime.hre.ethers.getContractAt(abiName, address, context.signer);
107
105
 
108
106
  return {
109
107
  contractName,
@@ -125,12 +123,7 @@ export const resolveCallArgs = (
125
123
  context: WorkflowContext,
126
124
  call: ContractCall,
127
125
  ): unknown[] => {
128
- const args = resolveValue(call.args || [], {
129
- targetId: context.targetId,
130
- target: context.target,
131
- params: context.targetParams,
132
- state: context.state,
133
- });
126
+ const args = resolveWorkflowValue(context, context.validation ? (call.args === undefined ? [] : call.args) : (call.args || []));
134
127
 
135
128
  if (!Array.isArray(args)) {
136
129
  throw new Error(`Call ${call.method} args must resolve to an array`);
@@ -186,7 +179,8 @@ export const runContractWriteCalls = async (
186
179
  ): Promise<void> => {
187
180
  const resolved = await resolveContract(context, step);
188
181
  const calls = resolveStepCalls(step);
189
- const callValues = calls.map((call) => normalizeCallValue(call.value));
182
+ const rawCallValues = calls.map((call) => resolveWorkflowValue(context, call.value === undefined ? 0 : call.value));
183
+ const callValues = rawCallValues.map(normalizeCallValue);
190
184
  if (!context.signerAddress) {
191
185
  throw new Error(`Call step ${step.id} requires a signer address`);
192
186
  }
@@ -215,7 +209,8 @@ export const runContractWriteCalls = async (
215
209
  const externalExecutor = authority.executor;
216
210
  const externalCalls: ExternalCall[] = calls.map((call, index) => {
217
211
  const args = resolveCallArgs(context, call);
218
- const stepId = calldataStepId(step, call, index, calls);
212
+ context.validation?.callInterface(resolved.contract.interface.fragments, call.method, args);
213
+ const stepId = context.transactionIdentity?.transactionStepId(step.id, "call", index) ?? calldataStepId(step, call, index, calls);
219
214
  return {
220
215
  transactionId: stepId,
221
216
  stepId,
@@ -234,10 +229,12 @@ export const runContractWriteCalls = async (
234
229
 
235
230
  for (const [index, call] of calls.entries()) {
236
231
  const args = resolveCallArgs(context, call);
232
+ await context.validation?.call(resolved.abiName, call.method, args, rawCallValues[index]);
233
+ context.validation?.callInterface(resolved.contract.interface.fragments, call.method, args);
237
234
  const value = callValues[index];
238
235
 
239
236
  if (context.executionPlanner) {
240
- const stepId = calldataStepId(step, call, index, calls);
237
+ const stepId = context.transactionIdentity?.transactionStepId(step.id, "call", index) ?? calldataStepId(step, call, index, calls);
241
238
  const executor = authority.mode === "execute"
242
239
  ? context.signerAddress
243
240
  : authority.executor;
@@ -255,6 +252,7 @@ export const runContractWriteCalls = async (
255
252
  operation: 0,
256
253
  ...(zkSync ? { scheme: "zksync-eravm" as const, factoryDeps: [] } : {}),
257
254
  });
255
+ context.calldataReview?.record(planned, { abi: resolved.contract.interface.fragments, method: call.method, args });
258
256
  if (planned.executionAction === "replay") {
259
257
  context.reporter.result("execution", {
260
258
  stepId: planned.stepId,
@@ -290,10 +288,10 @@ export const runContractWriteCalls = async (
290
288
  }
291
289
 
292
290
  const selectedContract = planned.route === "external"
293
- ? await ethers.getContractAt(
291
+ ? await context.runtime.hre.ethers.getContractAt(
294
292
  resolved.abiName,
295
293
  resolved.address,
296
- await impersonateWorkflowSimulationSigner(planned.executor),
294
+ await impersonateLocalForkSigner(context.runtime, planned.executor),
297
295
  )
298
296
  : resolved.contract;
299
297
  const txArgs = value !== "0" ? [...args, { value }] : args;
@@ -301,6 +299,7 @@ export const runContractWriteCalls = async (
301
299
  hash: string;
302
300
  wait: () => Promise<unknown>;
303
301
  };
302
+ context.transactionObserver?.record({ transactionId: planned.transactionId, transactionHash: tx.hash });
304
303
  await tx.wait();
305
304
  if (context.mode === "execute" && planned.route === "operator") {
306
305
  context.operatorReceipts.push({
@@ -354,8 +353,10 @@ export const runContractViewCalls = async (
354
353
 
355
354
  for (const [index, call] of calls.entries()) {
356
355
  const args = resolveCallArgs(context, call);
357
- const value = await methodOf(resolved.contract, call.method)(...args);
358
- results[resultKey(call, index, calls)] = stringifyCallResult(value);
356
+ await context.validation?.call(resolved.abiName, call.method, args, call.value === undefined ? undefined : resolveWorkflowValue(context, call.value));
357
+ context.validation?.callInterface(resolved.contract.interface.fragments, call.method, args);
358
+ const value = await resolved.contract.getFunction(call.method).staticCall(...args);
359
+ results[resultKey(call, index, calls)] = context.validation ? context.validation.stringify(value) : stringifyCallResult(value);
359
360
  }
360
361
 
361
362
  context.reporter.result("view", {
@@ -377,16 +378,18 @@ export const runContractCheckCalls = async (
377
378
 
378
379
  for (const [index, call] of calls.entries()) {
379
380
  const args = resolveCallArgs(context, call);
380
- const actualValue = await methodOf(resolved.contract, call.method)(...args);
381
- const expectedValue = resolveValue(call.expect, {
382
- targetId: context.targetId,
383
- target: context.target,
384
- params: context.targetParams,
385
- state: context.state,
386
- });
387
- const actual = stringifyCallResult(actualValue);
388
- const expected = stringifyCallResult(expectedValue);
389
- const comparable = comparableCallResults(actual, expected);
381
+ await context.validation?.call(resolved.abiName, call.method, args, call.value === undefined ? undefined : resolveWorkflowValue(context, call.value));
382
+ context.validation?.callInterface(resolved.contract.interface.fragments, call.method, args);
383
+ let expectedValue: unknown;
384
+ if (context.validation) {
385
+ expectedValue = resolveWorkflowValue(context, call.expect);
386
+ context.validation.check(resolved.contract.interface.fragments, call.method, expectedValue);
387
+ }
388
+ const actualValue = await resolved.contract.getFunction(call.method).staticCall(...args);
389
+ if (!context.validation) expectedValue = resolveWorkflowValue(context, call.expect);
390
+ const comparable = context.validation
391
+ ? context.validation.compare(resolved.contract.interface.fragments, call.method, actualValue, expectedValue)
392
+ : comparableCallResults(stringifyCallResult(actualValue), stringifyCallResult(expectedValue));
390
393
 
391
394
  if (comparable.actual !== comparable.expected) {
392
395
  throw new Error(
@@ -394,6 +397,13 @@ export const runContractCheckCalls = async (
394
397
  );
395
398
  }
396
399
 
400
+ context.verification?.record({
401
+ stepId: step.id, callIndex: index, assertionId: `${step.id}:${index}`,
402
+ contract: resolved.contractName, abiName: resolved.abiName, abi: resolved.contract.interface.format(true),
403
+ address: resolved.address, method: call.method, args: typedValue(args),
404
+ definition: { method: call.method, args: typedValue(call.args ?? []), expect: typedValue(call.expect) },
405
+ actual: typedValue(actualValue), expected: typedValue(expectedValue),
406
+ });
397
407
  results[resultKey(call, index, calls)] = comparable;
398
408
  }
399
409
 
@@ -0,0 +1,45 @@
1
+ import { createHash } from 'node:crypto';
2
+
3
+ /** Only own enumerable data is semantic. Never invokes getters/toJSON or resolves prototypes. */
4
+ export function canonicalData(value: unknown, label = 'data'): unknown {
5
+ if (value === null || typeof value === 'string' || typeof value === 'boolean') return value;
6
+ if (typeof value === 'number' && Number.isSafeInteger(value)) return value;
7
+ if (!value || typeof value !== 'object') throw new Error(`${label} must contain canonical JSON data`);
8
+ if (Array.isArray(value)) {
9
+ if (Object.keys(value).length !== value.length) throw new Error(`${label} has sparse or extra array data`);
10
+ return Array.from({ length: value.length }, (_, i) => canonicalData(own(value, String(i), label), `${label}[${i}]`));
11
+ }
12
+ if (![Object.prototype, null].includes(Object.getPrototypeOf(value))) throw new Error(`${label} must contain own plain data`);
13
+ if (Object.getOwnPropertySymbols(value).length) throw new Error(`${label} contains symbol fields`);
14
+ const result: Record<string, unknown> = {};
15
+ for (const key of Object.getOwnPropertyNames(value).sort()) {
16
+ Object.defineProperty(result, key, { value: canonicalData(own(value, key, label), `${label}.${key}`), enumerable: true, writable: true, configurable: true });
17
+ }
18
+ return result;
19
+ }
20
+ function own(value: object, key: string, label: string): unknown {
21
+ const d = Object.getOwnPropertyDescriptor(value, key);
22
+ if (!d || !d.enumerable || !('value' in d)) throw new Error(`${label}.${key} must be own enumerable data`);
23
+ return d.value;
24
+ }
25
+ export function canonicalJson(value: unknown): string { return JSON.stringify(canonicalData(value)); }
26
+ export function semanticHash(value: unknown): string { return createHash('sha256').update(canonicalJson(value)).digest('hex'); }
27
+ export function deepFreeze<T>(value: T): T {
28
+ if (value && typeof value === 'object') { Object.values(value).forEach(deepFreeze); Object.freeze(value); }
29
+ return value;
30
+ }
31
+ export function exactObject(value: unknown, keys: readonly string[], label: string): Record<string, unknown> {
32
+ const data = canonicalData(value, label);
33
+ if (!data || typeof data !== 'object' || Array.isArray(data)) throw new Error(`${label} must be an object`);
34
+ const actual = Object.keys(data).sort(), wanted = [...keys].sort();
35
+ if (actual.length !== wanted.length || actual.some((k, i) => k !== wanted[i])) throw new Error(`${label} contains unsupported or missing fields`);
36
+ return data as Record<string, unknown>;
37
+ }
38
+ export function digest(value: unknown, label: string): string {
39
+ if (typeof value !== 'string' || !/^[a-f0-9]{64}$/.test(value)) throw new Error(`Invalid ${label} digest`);
40
+ return value;
41
+ }
42
+ export function nonempty(value: unknown, label: string): string {
43
+ if (typeof value !== 'string' || !value || value.trim() !== value) throw new Error(`Invalid ${label}`);
44
+ return value;
45
+ }
@@ -657,6 +657,7 @@ const manifestIsCurrent = (input: {
657
657
  proxyAddress: string;
658
658
  implementationAddress: string;
659
659
  storageLayoutHash: string;
660
+ proxyKind?: string;
660
661
  }): boolean => {
661
662
  const proxy = input.proxyAddress.toLowerCase();
662
663
  const implementation = input.implementationAddress.toLowerCase();
@@ -669,6 +670,7 @@ const manifestIsCurrent = (input: {
669
670
  isRecord(item)
670
671
  && typeof item.address === "string"
671
672
  && item.address.toLowerCase() === proxy
673
+ && (input.proxyKind === undefined || item.kind === input.proxyKind)
672
674
  ));
673
675
  }
674
676
  if (isRecord(document.impls)) {
@@ -1114,7 +1116,7 @@ export const runCheckCode = async (
1114
1116
  manifestFile: exactManifest.relative,
1115
1117
  beforeHash,
1116
1118
  };
1117
- if (metadata?.proxyKind === "uups" && !implementationAddress) {
1119
+ if ((metadata?.proxyKind === "uups" || metadata?.proxyKind === "transparent") && !implementationAddress) {
1118
1120
  entries.push({ ...base, syncStatus: "failed", afterHash: directoryHash(directory) });
1119
1121
  continue;
1120
1122
  }
@@ -1135,11 +1137,11 @@ export const runCheckCode = async (
1135
1137
  }
1136
1138
  continue;
1137
1139
  }
1138
- if (!implementationAddress || metadata?.proxyKind && metadata.proxyKind !== "uups") {
1140
+ if (!implementationAddress || metadata?.proxyKind && metadata.proxyKind !== "uups" && metadata.proxyKind !== "transparent") {
1139
1141
  entries.push({ ...base, syncStatus: "not_required", afterHash: directoryHash(directory) });
1140
1142
  continue;
1141
1143
  }
1142
- if (!metadata || metadata.proxyKind !== "uups") {
1144
+ if (!metadata || (metadata.proxyKind !== "uups" && metadata.proxyKind !== "transparent")) {
1143
1145
  entries.push({ ...base, syncStatus: "proxy_kind_unknown", afterHash: directoryHash(directory) });
1144
1146
  continue;
1145
1147
  }
@@ -1159,6 +1161,7 @@ export const runCheckCode = async (
1159
1161
  proxyAddress: selected.address,
1160
1162
  implementationAddress,
1161
1163
  storageLayoutHash,
1164
+ proxyKind:metadata.proxyKind,
1162
1165
  })) {
1163
1166
  entries.push({ ...base, syncStatus: "already_current", afterHash: beforeHash });
1164
1167
  continue;
@@ -1178,6 +1181,7 @@ export const runCheckCode = async (
1178
1181
  "--target",
1179
1182
  selected.network,
1180
1183
  "--skip-tx-hash",
1184
+ ...(metadata.proxyKind === "transparent" ? ["--proxy-kind","transparent","--proxy-admin-address",metadata.proxyAdminAddress??"","--proxy-admin-owner",metadata.proxyAdminOwner??""] : []),
1181
1185
  ], {
1182
1186
  network: selected.network,
1183
1187
  scheme,
@@ -116,7 +116,7 @@ export const resolveTarget = (config: WorkflowConfig, networkName: string): Targ
116
116
  return target;
117
117
  };
118
118
 
119
- export const resolveAdmin = (target: TargetConfig, signerAddress: string): string => {
119
+ export const resolveAdmin = (target: { admin?: string }, signerAddress: string): string => {
120
120
  const admin = target.admin?.trim();
121
121
  if (!admin || admin.toLowerCase() === "deployer") {
122
122
  return getAddress(signerAddress);
@@ -0,0 +1,77 @@
1
+ import type { WorkflowValidationPort } from './validation';
2
+ import type { PendingUupsResolverPort } from "./pendingUupsBinding";
3
+ import type { PreparationSink, VerificationSink } from "./evidencePorts";
4
+ import type { TransactionPlannerPort } from "./transactionPlanner";
5
+ import type { Signer } from "ethers";
6
+ import type { TargetConfig } from "./config";
7
+ import type { ExistingDeploymentPolicies } from "./parameters";
8
+ import type { SimulationFork, WorkflowMode } from "./simulation";
9
+ import type { WorkflowState } from "./state";
10
+ import type { DeploymentRecorder } from "./deploymentRecords";
11
+ import type { ExternalCall } from "./external";
12
+ import type { WorkflowResultName } from "./resultPaths";
13
+
14
+ // Type-only: importing shared steps must never initialize a project Hardhat runtime.
15
+ export type WorkflowHre = typeof import("hardhat");
16
+
17
+ export interface LocalForkCapability {
18
+ provider: WorkflowHre["network"]["provider"];
19
+ impersonate(address: string): Promise<Signer>;
20
+ }
21
+
22
+ export interface WorkflowRuntime {
23
+ hre: WorkflowHre;
24
+ localFork?: LocalForkCapability;
25
+ }
26
+
27
+ export interface WorkflowReporterPort {
28
+ event(type: string, payload?: Record<string, unknown>): void;
29
+ result(name: WorkflowResultName, payload: Record<string, unknown>): void;
30
+ setSimulationCallerAddress?(address: string): void;
31
+ clearSimulationCallerAddress?(): void;
32
+ }
33
+
34
+ export interface ExecutionBindings {
35
+ readonly derivationSeed?: string;
36
+ recordOrAssertDerivedValue(key: string, value: string): void;
37
+ }
38
+
39
+ // Only the fields used by step algorithms; environment interpretation belongs
40
+ // to each launcher. A delivery target does not have to pass the legacy parser.
41
+ export type WorkflowTarget = Pick<TargetConfig,
42
+ "openzeppelin" | "finality" | "admin" | "create2" | "uups" | "multicall"
43
+ > & Record<string, unknown> & { id: string };
44
+ export type WorkflowConfiguration = Readonly<Record<string, unknown>>;
45
+
46
+ export interface WorkflowContext {
47
+ root: string;
48
+ taskId: string;
49
+ executionId: string;
50
+ taskDir: string;
51
+ targetId: string;
52
+ target: WorkflowTarget;
53
+ targetParams: Record<string, unknown>;
54
+ existingDeploymentPolicies: ExistingDeploymentPolicies;
55
+ releaseArtifactHash?: string;
56
+ config: WorkflowConfiguration;
57
+ runtime: WorkflowRuntime;
58
+ mode: WorkflowMode;
59
+ simulation: SimulationFork;
60
+ signer?: Signer;
61
+ signerAddress?: string;
62
+ configuredSimulationCaller?: boolean;
63
+ state: WorkflowState;
64
+ reporter: WorkflowReporterPort;
65
+ bindings?: ExecutionBindings;
66
+ preparations?: PreparationSink;
67
+ validation?: WorkflowValidationPort;
68
+ pendingUupsReuse?: PendingUupsResolverPort;
69
+ verification?: VerificationSink;
70
+ calldataReview?: import('../../delivery/calldata-review').CalldataReviewSink;
71
+ deploymentRecorder?: DeploymentRecorder;
72
+ executionPlanner?: TransactionPlannerPort;
73
+ externalCalls: ExternalCall[];
74
+ transactionIdentity?: { transactionStepId(stepId: string, role: "call", ordinal: number): string };
75
+ transactionObserver?: { record(observation: { transactionId: string; transactionHash: string }): void };
76
+ operatorReceipts: Array<{ transactionId: string; transactionHash: string }>;
77
+ }