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
@@ -1,15 +1,14 @@
1
+ import { resolveWorkflowValue, type Create2FieldKind } from './validation';
1
2
  import type { Signer } from "ethers";
2
- import { getAddress, Interface, isAddress } from "ethers";
3
- import { resolveValue, WorkflowStep } from "./parameters";
4
- import type { WorkflowContext } from "../run";
5
-
6
- const CONTROLLED_MULTICALL_INTERFACE = new Interface([
7
- "function aggregate3(tuple(address target,bool allowFailure,bytes callData)[] calls) payable returns (tuple(bool success, bytes returnData)[] returnData)",
8
- "function aggregate3Value(tuple(address target,bool allowFailure,uint256 value,bytes callData)[] calls) payable returns (tuple(bool success, bytes returnData)[] returnData)",
9
- ]);
10
-
11
- export type Create2Scheme = "evm" | "zksync-eravm";
12
-
3
+ import { getAddress, isAddress } from "ethers";
4
+ import { WorkflowStep } from "./parameters";
5
+ import type { WorkflowContext } from "./context";
6
+
7
+ import { prepareControlledMulticallTransaction } from 'gate-evm-tools/workflow';
8
+ import type { PreparedWorkflowTransaction, PreparedControlledMulticallTransaction } from 'gate-evm-tools/workflow';
9
+ export { prepareControlledMulticallTransaction } from 'gate-evm-tools/workflow';
10
+ export type { PreparedWorkflowTransaction, PreparedControlledMulticallTransaction, ControlledMulticallInnerCall } from 'gate-evm-tools/workflow';
11
+ export type Create2Scheme = 'evm' | 'zksync-eravm';
13
12
  export interface Create2Options {
14
13
  scheme: Create2Scheme;
15
14
  factory: string;
@@ -22,106 +21,7 @@ export interface Create2Options {
22
21
  uupsPlaceholderImplementation?: string;
23
22
  }
24
23
 
25
- export interface PreparedWorkflowTransaction {
26
- target: string;
27
- value: string;
28
- data: string;
29
- operation: 0;
30
- scheme?: "zksync-eravm";
31
- factoryDeps?: string[];
32
- }
33
-
34
- export interface ControlledMulticallInnerCall {
35
- target: string;
36
- value: string;
37
- data: string;
38
- factoryDeps?: string[];
39
- }
40
-
41
- export interface PreparedControlledMulticallTransaction
42
- extends PreparedWorkflowTransaction {
43
- method: "aggregate3" | "aggregate3Value";
44
- calls: Array<{
45
- target: string;
46
- allowFailure: false;
47
- value: string;
48
- callData: string;
49
- }>;
50
- }
51
-
52
- interface SentTransaction {
53
- hash: string;
54
- wait: () => Promise<unknown>;
55
- }
56
-
57
- const bigintValue = (value: string | undefined): bigint => {
58
- if (!value || value === "0") return 0n;
59
- const parsed = BigInt(value);
60
- if (parsed < 0n) throw new Error("transaction value must be nonnegative");
61
- return parsed;
62
- };
63
-
64
- const normalizeFactoryDeps = (
65
- input: string[],
66
- label: string,
67
- ): string[] => {
68
- const seen = new Set<string>();
69
- const output: string[] = [];
70
- for (const [index, dependency] of input.entries()) {
71
- if (!/^0x(?:[0-9a-fA-F]{2})+$/.test(dependency)) {
72
- throw new Error(`${label}[${index}] must be non-empty byte-aligned bytecode`);
73
- }
74
- const normalized = dependency.toLowerCase();
75
- if (seen.has(normalized)) continue;
76
- seen.add(normalized);
77
- output.push(normalized);
78
- }
79
- return output;
80
- };
81
-
82
- export const prepareControlledMulticallTransaction = (
83
- controlledMulticall: string,
84
- inputCalls: ControlledMulticallInnerCall[],
85
- scheme: Create2Scheme = "evm",
86
- ): PreparedControlledMulticallTransaction => {
87
- if (!isAddress(controlledMulticall)) {
88
- throw new Error("controlledMulticall must be an EVM address");
89
- }
90
- if (inputCalls.length === 0) {
91
- throw new Error("controlled multicall requires at least one inner call");
92
- }
93
- if (scheme === "evm" && inputCalls.some((call) => call.factoryDeps !== undefined)) {
94
- throw new Error("factoryDeps are only supported for zkSync transactions");
95
- }
96
- if (scheme === "zksync-eravm" && inputCalls.some((call) => call.factoryDeps === undefined)) {
97
- throw new Error("every zkSync GateTool call must include factoryDeps");
98
- }
99
- const calls = inputCalls.map((call) => ({
100
- target: getAddress(call.target),
101
- allowFailure: false as const,
102
- value: bigintValue(call.value).toString(10),
103
- callData: call.data,
104
- }));
105
- const totalValue = calls.reduce((sum, call) => sum + BigInt(call.value), 0n);
106
- const method = totalValue === 0n ? "aggregate3" as const : "aggregate3Value" as const;
107
- const encodedCalls = method === "aggregate3"
108
- ? calls.map(({ value: _value, ...call }) => call)
109
- : calls;
110
- const factoryDeps = scheme === "zksync-eravm"
111
- ? normalizeFactoryDeps(inputCalls.flatMap((call) => call.factoryDeps!), "factoryDeps")
112
- : undefined;
113
- return {
114
- target: getAddress(controlledMulticall),
115
- value: totalValue.toString(10),
116
- data: CONTROLLED_MULTICALL_INTERFACE.encodeFunctionData(method, [encodedCalls]),
117
- operation: 0,
118
- method,
119
- calls,
120
- ...(scheme === "zksync-eravm"
121
- ? { scheme: "zksync-eravm" as const, factoryDeps: factoryDeps! }
122
- : {}),
123
- };
124
- };
24
+ interface SentTransaction { hash:string; wait:()=>Promise<unknown>; }
125
25
 
126
26
  export const sendPreparedWorkflowTransaction = async (
127
27
  prepared: PreparedWorkflowTransaction,
@@ -163,13 +63,10 @@ export const sendPreparedControlledMulticallTransaction = async (
163
63
  const resolveObject = (
164
64
  context: WorkflowContext,
165
65
  value: unknown,
66
+ kind: Create2FieldKind,
166
67
  ): Record<string, unknown> => {
167
- const resolved = resolveValue(value || {}, {
168
- targetId: context.targetId,
169
- target: context.target,
170
- params: context.targetParams,
171
- state: context.state,
172
- });
68
+ const resolved = resolveWorkflowValue(context, value === undefined ? {} : value);
69
+ if (context.validation) return context.validation.create2Fields(resolved, kind);
173
70
  if (!resolved || typeof resolved !== "object" || Array.isArray(resolved)) return {};
174
71
  return resolved as Record<string, unknown>;
175
72
  };
@@ -205,10 +102,10 @@ export const resolveCreate2Options = (
205
102
  step: WorkflowStep,
206
103
  ): Create2Options | undefined => {
207
104
  const strategy = typeof step.strategy === "string" ? step.strategy : undefined;
208
- const stepCreate2 = resolveObject(context, step.create2);
209
- const targetCreate2 = resolveObject(context, context.target.create2);
210
- const targetUups = resolveObject(context, context.target.uups);
211
- const targetMulticall = resolveObject(context, context.target.multicall);
105
+ const stepCreate2 = resolveObject(context, step.create2, "step");
106
+ const targetCreate2 = resolveObject(context, context.target.create2, "target");
107
+ const targetUups = resolveObject(context, context.target.uups, "uups");
108
+ const targetMulticall = resolveObject(context, context.target.multicall, "multicall");
212
109
  if (strategy !== "create2" && Object.keys(stepCreate2).length === 0) return undefined;
213
110
 
214
111
  const rawScheme = stringField(targetCreate2, "scheme") || "evm";
@@ -11,6 +11,8 @@ export interface DeploymentInfoEntry {
11
11
  actualContract: string;
12
12
  proxyKind?: "uups" | "transparent";
13
13
  implementationAddress?: string;
14
+ proxyAdminAddress?: string;
15
+ proxyAdminOwner?: string;
14
16
  source: DeploymentInfoSource;
15
17
  updatedAt: string;
16
18
  }
@@ -114,6 +116,8 @@ const validateEntry = (value: unknown, label: string): DeploymentInfoEntry => {
114
116
  "actualContract",
115
117
  "proxyKind",
116
118
  "implementationAddress",
119
+ "proxyAdminAddress",
120
+ "proxyAdminOwner",
117
121
  "source",
118
122
  "updatedAt",
119
123
  ]);
@@ -140,6 +144,8 @@ const validateEntry = (value: unknown, label: string): DeploymentInfoEntry => {
140
144
  ...(value.implementationAddress
141
145
  ? { implementationAddress: address(value.implementationAddress, `${label}.implementationAddress`) }
142
146
  : {}),
147
+ ...(value.proxyAdminAddress?{proxyAdminAddress:address(value.proxyAdminAddress,`${label}.proxyAdminAddress`)}:{}),
148
+ ...(value.proxyAdminOwner?{proxyAdminOwner:address(value.proxyAdminOwner,`${label}.proxyAdminOwner`)}:{}),
143
149
  source: validateSource(value.source, `${label}.source`),
144
150
  updatedAt: value.updatedAt,
145
151
  };
@@ -243,6 +249,7 @@ export function prepareDeploymentInfoFromRecords(input: {
243
249
  actualContract,
244
250
  ...(proxyKind ? { proxyKind } : {}),
245
251
  ...(implementationAddress ? { implementationAddress } : {}),
252
+ ...(proxyKind === "transparent" ? {proxyAdminAddress:optionalAddress(rawChange.proxyAdminAddress??existing?.proxyAdminAddress,"ProxyAdmin address"),proxyAdminOwner:optionalAddress(rawChange.proxyAdminOwner??existing?.proxyAdminOwner,"ProxyAdmin owner")}:{}),
246
253
  source: {
247
254
  kind: "deployment" as const,
248
255
  deploymentId,
@@ -259,6 +266,7 @@ export function prepareDeploymentInfoFromRecords(input: {
259
266
  ...(existing.implementationAddress
260
267
  ? { implementationAddress: existing.implementationAddress }
261
268
  : {}),
269
+ ...(existing.proxyKind === "transparent" ? {proxyAdminAddress:existing.proxyAdminAddress,proxyAdminOwner:existing.proxyAdminOwner}:{}),
262
270
  source: existing.source,
263
271
  }
264
272
  : undefined;
@@ -63,6 +63,8 @@ export interface DeploymentChange {
63
63
  proxyKind?: string;
64
64
  address?: string;
65
65
  proxyAddress?: string;
66
+ proxyAdminAddress?: string;
67
+ proxyAdminOwner?: string;
66
68
  implementationAddress?: string;
67
69
  preparedImplementationAddress?: string;
68
70
  placeholderImplementationAddress?: string;
@@ -272,7 +274,7 @@ export class DeploymentRecorder {
272
274
  throw new Error("Deployment proxy transactionId is invalid");
273
275
  }
274
276
  const change = this.record.changes.find((entry) => entry.stepId === stepId);
275
- if (!change || change.proxyKind !== "uups") {
277
+ if (!change || (change.proxyKind !== "uups" && change.proxyKind !== "transparent")) {
276
278
  throw new Error(`Cannot bind a proxy transaction for deployment change ${stepId}`);
277
279
  }
278
280
  if (
@@ -1,7 +1,7 @@
1
1
  import fs from "fs";
2
2
  import path from "path";
3
3
  import { isAddress } from "ethers";
4
- import type { WorkflowConfig } from "./config";
4
+ import type { WorkflowConfiguration } from "./context";
5
5
  import { readJsonFile, writeJsonFile } from "./config";
6
6
 
7
7
  export type ContractInfo = Record<string, Record<string, string>>;
@@ -177,16 +177,8 @@ export const actualContractName = (contractName: string): string => {
177
177
  return actual;
178
178
  };
179
179
 
180
- export const deploymentInstanceId = (instanceId: string): string => {
181
- const normalizedInstanceId = instanceId.trim();
182
- if (!normalizedInstanceId) {
183
- throw new Error("Deployment saveAs must not be empty");
184
- }
185
- if (normalizedInstanceId.includes(":")) {
186
- throw new Error(`Deployment saveAs "${normalizedInstanceId}" must not contain ":"`);
187
- }
188
- return normalizedInstanceId;
189
- };
180
+ export { deploymentInstanceId } from "./operationNames";
181
+ import { deploymentInstanceId } from "./operationNames";
190
182
 
191
183
  export const contractInfoKey = (instanceId: string, contractName: string): string => {
192
184
  const normalizedInstanceId = deploymentInstanceId(instanceId);
@@ -196,7 +188,7 @@ export const contractInfoKey = (instanceId: string, contractName: string): strin
196
188
  : `${normalizedInstanceId}:${actual}`;
197
189
  };
198
190
 
199
- export const loadContractInfo = (root: string, _config: WorkflowConfig): ContractInfo => {
191
+ export const loadContractInfo = (root: string, _config: WorkflowConfiguration): ContractInfo => {
200
192
  const filePath = contractInfoPath(root);
201
193
  if (!fs.existsSync(filePath)) return {};
202
194
  return validateContractInfo(readJsonFile<unknown>(filePath));
@@ -255,7 +247,7 @@ export const resolveDeployment = (
255
247
 
256
248
  export const findDeploymentAddress = (
257
249
  root: string,
258
- config: WorkflowConfig,
250
+ config: WorkflowConfiguration,
259
251
  targetId: string,
260
252
  name: string,
261
253
  ): string | undefined => {
@@ -264,7 +256,7 @@ export const findDeploymentAddress = (
264
256
 
265
257
  export const getDeploymentAddress = (
266
258
  root: string,
267
- config: WorkflowConfig,
259
+ config: WorkflowConfiguration,
268
260
  targetId: string,
269
261
  name: string,
270
262
  ): string => {
@@ -0,0 +1,20 @@
1
+ import type { GateToolPreparationRequestV1 } from 'gate-evm-tools/workflow';
2
+ import type { DeploymentChange } from './deploymentRecords';
3
+ import type { PreparedGateToolWorkflow } from './gateTool';
4
+ export interface PreparationMapping { transactionId: string; gateToolTransactionIds: string[]; kind: 'multicall' | 'direct' }
5
+ export interface PreparationInput { stepId: string; change: DeploymentChange; prepared: PreparedGateToolWorkflow; derivedKeys: string[] }
6
+ export interface PreparationSink {
7
+ expected(stepId: string, request: GateToolPreparationRequestV1): PreparedGateToolWorkflow | undefined;
8
+ prepare(input: PreparationInput): void;
9
+ bind(stepId: string, mapping: PreparationMapping): void;
10
+ /** No same-fork upgrade until a complete validated OZ baseline is available. */
11
+ assertUpgradeBaseline(proxy: string): boolean | void;
12
+ }
13
+ export type TypedValue = { type: 'null'; value: null } | { type: 'string' | 'bigint' | 'number' | 'boolean'; value: string | boolean } | { type: 'array'; value: TypedValue[] } | { type: 'object'; value: Record<string, TypedValue> };
14
+ export interface VerificationObservation {
15
+ stepId: string; callIndex: number; assertionId: string; contract: string; abiName: string;
16
+ abi: string[]; address: string; method: string; args: TypedValue;
17
+ definition: { method: string; args: TypedValue; expect: TypedValue };
18
+ actual: TypedValue; expected: TypedValue;
19
+ }
20
+ export interface VerificationSink { record(input: VerificationObservation): void }
@@ -1,24 +1,12 @@
1
+ import { TransactionPlanner, normalizeTransaction } from "./transactionPlanner";
2
+ import type { ReleaseExecutionTransaction, ReleaseExecutionTransactionInput, PlannedExecutionTransaction, CompletedExecutionTransaction } from "./transactionPlanner";
3
+ export { ExecutionSegmentDeferred } from "./transactionPlanner";
4
+ export type { ExecutionRoute, ReleaseExecutionTransaction, ReleaseExecutionTransactionInput, PlannedExecutionTransaction, CompletedExecutionTransaction } from "./transactionPlanner";
1
5
  import crypto from "crypto";
2
6
  import fs from "fs";
3
7
  import path from "path";
4
8
 
5
9
  export type ReleaseKind = "development" | "admin_release";
6
- export type ExecutionRoute = "operator" | "external";
7
-
8
- export interface ReleaseExecutionTransaction {
9
- transactionId: string;
10
- stepId: string;
11
- transactionIndex: number;
12
- route: ExecutionRoute;
13
- executor: string;
14
- to: string;
15
- value: string;
16
- data: string;
17
- operation: 0 | 1;
18
- scheme?: "zksync-eravm";
19
- factoryDeps?: string[];
20
- }
21
-
22
10
  export interface ReleaseExecutionPlan {
23
11
  version: 1;
24
12
  taskId: string;
@@ -33,34 +21,6 @@ export interface ReleaseExecutionPlan {
33
21
 
34
22
  type PlanBody = Omit<ReleaseExecutionPlan, "planHash" | "createdAt">;
35
23
 
36
- export interface ReleaseExecutionTransactionInput {
37
- stepId: string;
38
- executor: string;
39
- to: string;
40
- value: string;
41
- data: string;
42
- operation: 0 | 1;
43
- scheme?: "zksync-eravm";
44
- factoryDeps?: string[];
45
- }
46
-
47
- export interface CompletedExecutionTransaction {
48
- transactionId: string;
49
- transactionHash: string;
50
- }
51
-
52
- export interface PlannedExecutionTransaction extends ReleaseExecutionTransaction {
53
- executionAction: "execute" | "package" | "replay";
54
- transactionHash?: string;
55
- }
56
-
57
- export class ExecutionSegmentDeferred extends Error {
58
- constructor(readonly transactionId: string) {
59
- super(`Execution is waiting for the preceding external segment before ${transactionId}`);
60
- this.name = "ExecutionSegmentDeferred";
61
- }
62
- }
63
-
64
24
  const SAFE_ID = /^[A-Za-z0-9][A-Za-z0-9_-]{0,199}$/;
65
25
  const ADDRESS = /^0x[0-9a-fA-F]{40}$/;
66
26
  const DATA = /^0x(?:[0-9a-fA-F]{2})*$/;
@@ -83,40 +43,6 @@ const address = (value: unknown, label: string): string => {
83
43
  return value.toLowerCase();
84
44
  };
85
45
 
86
- const value = (raw: unknown, label: string): string => {
87
- if (typeof raw !== "string" || !/^(?:0[xX][0-9a-fA-F]+|[0-9]+)$/.test(raw)) {
88
- throw new Error(`${label} must be a nonnegative integer string`);
89
- }
90
- return BigInt(raw).toString(10);
91
- };
92
-
93
- const data = (raw: unknown, label: string): string => {
94
- if (typeof raw !== "string" || !DATA.test(raw)) {
95
- throw new Error(`${label} must be canonical byte calldata`);
96
- }
97
- return raw.toLowerCase();
98
- };
99
-
100
- const factoryDeps = (raw: unknown, label: string): string[] => {
101
- if (!Array.isArray(raw)) throw new Error(`${label} must be an array`);
102
- const seen = new Set<string>();
103
- const normalized: string[] = [];
104
- for (const [index, dependency] of raw.entries()) {
105
- if (typeof dependency !== "string" || !/^0x(?:[0-9a-fA-F]{2})+$/.test(dependency)) {
106
- throw new Error(`${label}[${index}] must be non-empty byte-aligned bytecode`);
107
- }
108
- const value = dependency.toLowerCase();
109
- const hash = crypto
110
- .createHash("sha256")
111
- .update(Buffer.from(value.slice(2), "hex"))
112
- .digest("hex");
113
- if (seen.has(hash)) continue;
114
- seen.add(hash);
115
- normalized.push(value);
116
- }
117
- return normalized;
118
- };
119
-
120
46
  const exactKeys = (value: Record<string, unknown>, expected: string[], label: string): void => {
121
47
  const actual = Object.keys(value).sort();
122
48
  const wanted = [...expected].sort();
@@ -132,62 +58,6 @@ const record = (raw: unknown, label: string): Record<string, unknown> => {
132
58
  return raw as Record<string, unknown>;
133
59
  };
134
60
 
135
- const normalizeTransaction = (
136
- raw: unknown,
137
- index: number,
138
- strict: boolean,
139
- ): ReleaseExecutionTransaction => {
140
- const input = record(raw, `transactions[${index}]`);
141
- const isZkSync = input.scheme === "zksync-eravm";
142
- if (input.scheme !== undefined && !isZkSync) {
143
- throw new Error(`transactions[${index}].scheme must be zksync-eravm when present`);
144
- }
145
- if (isZkSync && input.factoryDeps === undefined) {
146
- throw new Error(`transactions[${index}].factoryDeps is required for zkSync`);
147
- }
148
- if (!isZkSync && input.factoryDeps !== undefined) {
149
- throw new Error(`transactions[${index}].factoryDeps is only supported for zkSync`);
150
- }
151
- if (strict) {
152
- exactKeys(input, [
153
- "transactionId",
154
- "stepId",
155
- "transactionIndex",
156
- "route",
157
- "executor",
158
- "to",
159
- "value",
160
- "data",
161
- "operation",
162
- ...(isZkSync ? ["scheme", "factoryDeps"] : []),
163
- ], `transactions[${index}]`);
164
- }
165
- if (input.transactionIndex !== index) {
166
- throw new Error(`transactions[${index}].transactionIndex must equal ${index}`);
167
- }
168
- if (input.route !== "operator" && input.route !== "external") {
169
- throw new Error(`transactions[${index}].route is invalid`);
170
- }
171
- if (input.operation !== 0 && input.operation !== 1) {
172
- throw new Error(`transactions[${index}].operation must be 0 or 1`);
173
- }
174
- return {
175
- transactionId: safeId(input.transactionId, `transactions[${index}].transactionId`),
176
- stepId: safeId(input.stepId, `transactions[${index}].stepId`),
177
- transactionIndex: index,
178
- route: input.route,
179
- executor: address(input.executor, `transactions[${index}].executor`),
180
- to: address(input.to, `transactions[${index}].to`),
181
- value: value(input.value, `transactions[${index}].value`),
182
- data: data(input.data, `transactions[${index}].data`),
183
- operation: input.operation,
184
- ...(isZkSync ? {
185
- scheme: "zksync-eravm" as const,
186
- factoryDeps: factoryDeps(input.factoryDeps, `transactions[${index}].factoryDeps`),
187
- } : {}),
188
- };
189
- };
190
-
191
61
  const normalizeBody = (raw: unknown, strict: boolean): PlanBody => {
192
62
  const input = record(raw, "execution plan");
193
63
  if (strict) {
@@ -306,148 +176,27 @@ const writeExclusive = (filePath: string, value: unknown): void => {
306
176
 
307
177
  export class ReleaseExecutionPlanner {
308
178
  private readonly body: Omit<PlanBody, "transactions">;
309
- private readonly expected?: PlanBody;
310
- private readonly transactions: ReleaseExecutionTransaction[] = [];
311
- private readonly segmentedExecution: boolean;
312
- private readonly completedTransactions: CompletedExecutionTransaction[];
313
- private readonly segmentEnd: number;
314
-
179
+ private readonly kernel: TransactionPlanner;
315
180
  constructor(input: {
316
- taskId: string;
317
- target: string;
318
- executionId: string;
319
- releaseKind: ReleaseKind;
320
- operator: string;
321
- expectedPlan?: ReleaseExecutionPlan;
322
- segmentedExecution?: boolean;
181
+ taskId: string; target: string; executionId: string; releaseKind: ReleaseKind;
182
+ operator: string; expectedPlan?: ReleaseExecutionPlan; segmentedExecution?: boolean;
323
183
  completedTransactions?: CompletedExecutionTransaction[];
324
184
  }) {
325
- const body = normalizeBody({
326
- version: 1,
327
- taskId: input.taskId,
328
- target: input.target,
329
- executionId: input.executionId,
330
- releaseKind: input.releaseKind,
331
- operator: input.operator,
332
- transactions: [],
333
- }, false);
334
- this.body = {
335
- version: 1,
336
- taskId: body.taskId,
337
- target: body.target,
338
- executionId: body.executionId,
339
- releaseKind: body.releaseKind,
340
- operator: body.operator,
341
- };
342
- if (input.expectedPlan) {
343
- const expected = normalizeBody(input.expectedPlan, false);
185
+ const { transactions: _, ...body } = normalizeBody({ version: 1, ...input, transactions: [] }, false);
186
+ this.body = body;
187
+ const expected = input.expectedPlan ? normalizeBody(input.expectedPlan, false) : undefined;
188
+ if (expected) {
344
189
  for (const key of ["taskId", "target", "executionId", "releaseKind", "operator"] as const) {
345
- if (expected[key] !== this.body[key]) {
346
- throw new Error(`locked execution plan ${key} does not match the runtime`);
347
- }
190
+ if (expected[key] !== body[key]) throw new Error(`locked execution plan ${key} does not match the runtime`);
348
191
  }
349
- this.expected = expected;
350
192
  }
351
- this.segmentedExecution = input.segmentedExecution === true;
352
- this.completedTransactions = input.completedTransactions ?? [];
353
- if (this.segmentedExecution && !this.expected) {
354
- throw new Error("segmented execution requires a locked execution plan");
355
- }
356
- if (!this.segmentedExecution && this.completedTransactions.length > 0) {
357
- throw new Error("completed transactions require segmented execution");
358
- }
359
- if (this.expected) {
360
- if (this.completedTransactions.length > this.expected.transactions.length) {
361
- throw new Error("completed transactions exceed the execution plan");
362
- }
363
- for (const [index, completed] of this.completedTransactions.entries()) {
364
- if (
365
- completed.transactionId !== this.expected.transactions[index]?.transactionId
366
- || typeof completed.transactionHash !== "string"
367
- || !/^0x[0-9a-fA-F]{64}$/.test(completed.transactionHash)
368
- ) {
369
- throw new Error("completed transactions must form a contiguous plan prefix");
370
- }
371
- }
372
- }
373
- const expectedTransactions = this.expected?.transactions ?? [];
374
- let segmentEnd = this.completedTransactions.length;
375
- if (this.segmentedExecution && segmentEnd < expectedTransactions.length) {
376
- if (expectedTransactions[segmentEnd].route === "operator") {
377
- while (
378
- segmentEnd < expectedTransactions.length
379
- && expectedTransactions[segmentEnd].route === "operator"
380
- ) segmentEnd += 1;
381
- }
382
- while (
383
- segmentEnd < expectedTransactions.length
384
- && expectedTransactions[segmentEnd].route === "external"
385
- ) segmentEnd += 1;
386
- } else if (!this.segmentedExecution) {
387
- segmentEnd = Number.MAX_SAFE_INTEGER;
388
- }
389
- this.segmentEnd = segmentEnd;
193
+ this.kernel = new TransactionPlanner({ operator: body.operator, allowExternal: body.releaseKind !== "development",
194
+ expectedTransactions: expected?.transactions, segmentedExecution: input.segmentedExecution,
195
+ completedTransactions: input.completedTransactions });
390
196
  }
391
-
392
- add(input: ReleaseExecutionTransactionInput): PlannedExecutionTransaction {
393
- const index = this.transactions.length;
394
- const stepId = safeId(input.stepId, "planned transaction stepId");
395
- const executor = address(input.executor, "planned transaction executor");
396
- const transaction = normalizeTransaction({
397
- transactionId: `tx-${String(index + 1).padStart(4, "0")}-${stepId}`,
398
- stepId,
399
- transactionIndex: index,
400
- route: executor === this.body.operator ? "operator" : "external",
401
- executor,
402
- to: input.to,
403
- value: input.value,
404
- data: input.data,
405
- operation: input.operation,
406
- ...(input.scheme === undefined ? {} : { scheme: input.scheme }),
407
- ...(input.factoryDeps === undefined ? {} : { factoryDeps: input.factoryDeps }),
408
- }, index, false);
409
- if (this.body.releaseKind === "development" && transaction.route === "external") {
410
- throw new Error("development execution plans cannot contain external transactions");
411
- }
412
- const expected = this.expected?.transactions[index];
413
- if (this.expected && (!expected || JSON.stringify(expected) !== JSON.stringify(transaction))) {
414
- throw new Error(
415
- `transaction ${transaction.transactionId} does not match locked execution plan`,
416
- );
417
- }
418
- if (this.segmentedExecution && index >= this.segmentEnd) {
419
- throw new ExecutionSegmentDeferred(transaction.transactionId);
420
- }
421
- this.transactions.push(transaction);
422
- const completed = this.completedTransactions[index];
423
- if (completed) {
424
- return {
425
- ...transaction,
426
- executionAction: "replay",
427
- transactionHash: completed.transactionHash.toLowerCase(),
428
- };
429
- }
430
- return {
431
- ...transaction,
432
- executionAction: transaction.route === "external" ? "package" : "execute",
433
- };
434
- }
435
-
197
+ add(input: ReleaseExecutionTransactionInput): PlannedExecutionTransaction { return this.kernel.add(input); }
436
198
  complete(options: { allowPartial?: boolean } = {}): PlanBody {
437
- if (
438
- this.expected
439
- && this.transactions.length !== this.expected.transactions.length
440
- && options.allowPartial !== true
441
- ) {
442
- throw new Error("execution did not consume every locked transaction");
443
- }
444
- if (options.allowPartial === true && !this.segmentedExecution) {
445
- throw new Error("partial execution plan completion requires segmented execution");
446
- }
447
- return normalizeBody({
448
- ...this.body,
449
- transactions: this.transactions,
450
- }, false);
199
+ return normalizeBody({ ...this.body, transactions: this.kernel.complete(options) }, false);
451
200
  }
452
201
  }
453
202
 
@@ -790,7 +790,7 @@ export const reconcileExternalExecution = async (input: {
790
790
  orderedMatches.map((match) => [match.transactionId, match]),
791
791
  );
792
792
  for (const change of deployment.changes) {
793
- if (change.proxyKind !== "uups") continue;
793
+ if (change.proxyKind !== "uups" && change.proxyKind !== "transparent") continue;
794
794
  if (
795
795
  !change.proxyAddress
796
796
  || !change.implementationAddress
@@ -846,6 +846,7 @@ export const reconcileExternalExecution = async (input: {
846
846
  target: input.network,
847
847
  manifestDir: target.openzeppelin.manifestDir,
848
848
  proxy: change.proxyAddress,
849
+ ...(change.proxyKind === 'transparent'?{proxyKind:'transparent' as const,proxyAdminAddress:change.proxyAdminAddress,proxyAdminOwner:change.proxyAdminOwner}:{}),
849
850
  implementation: change.implementationAddress,
850
851
  contract: change.actualContract,
851
852
  constructorArgs: change.constructorArgs,