gate-evm-tools 1.0.26 → 1.0.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (338) hide show
  1. package/README.md +14 -0
  2. package/bin/workflow.cjs +19 -0
  3. package/dist/core/BytecodeChecker.d.ts.map +1 -1
  4. package/dist/core/BytecodeChecker.js +16 -1
  5. package/dist/core/BytecodeChecker.js.map +1 -1
  6. package/dist/core/legacyProxyArtifact.d.ts +6 -0
  7. package/dist/core/legacyProxyArtifact.d.ts.map +1 -0
  8. package/dist/core/legacyProxyArtifact.js +36 -0
  9. package/dist/core/legacyProxyArtifact.js.map +1 -0
  10. package/dist-runtime/config/hardhatAdapters.d.ts +7 -0
  11. package/dist-runtime/config/hardhatAdapters.js +61 -0
  12. package/dist-runtime/config/hardhatAdapters.js.map +1 -0
  13. package/dist-runtime/config/networks.d.ts +32 -0
  14. package/dist-runtime/config/networks.js +275 -0
  15. package/dist-runtime/config/networks.js.map +1 -0
  16. package/dist-runtime/config/openzeppelin.d.ts +28 -0
  17. package/dist-runtime/config/openzeppelin.js +144 -0
  18. package/dist-runtime/config/openzeppelin.js.map +1 -0
  19. package/dist-runtime/config/rpc.d.ts +7 -0
  20. package/dist-runtime/config/rpc.js +19 -0
  21. package/dist-runtime/config/rpc.js.map +1 -0
  22. package/dist-runtime/config/zksyncSolcPath.d.ts +1 -0
  23. package/dist-runtime/config/zksyncSolcPath.js +61 -0
  24. package/dist-runtime/config/zksyncSolcPath.js.map +1 -0
  25. package/dist-runtime/migrate.d.ts +13 -0
  26. package/dist-runtime/migrate.js +208 -0
  27. package/dist-runtime/migrate.js.map +1 -0
  28. package/dist-runtime/package.json +1 -0
  29. package/dist-runtime/projectHardhat.d.ts +4 -0
  30. package/dist-runtime/projectHardhat.js +16 -0
  31. package/dist-runtime/projectHardhat.js.map +1 -0
  32. package/dist-runtime/runtime-identity.json +4 -0
  33. package/dist-runtime/template-migration.json +293 -0
  34. package/dist-runtime/workflow/checkCode.d.ts +1 -0
  35. package/dist-runtime/workflow/checkCode.js +16 -0
  36. package/dist-runtime/workflow/checkCode.js.map +1 -0
  37. package/dist-runtime/workflow/checkCodeFinalize.d.ts +1 -0
  38. package/dist-runtime/workflow/checkCodeFinalize.js +11 -0
  39. package/dist-runtime/workflow/checkCodeFinalize.js.map +1 -0
  40. package/dist-runtime/workflow/checkCodePlan.d.ts +1 -0
  41. package/dist-runtime/workflow/checkCodePlan.js +11 -0
  42. package/dist-runtime/workflow/checkCodePlan.js.map +1 -0
  43. package/dist-runtime/workflow/cli.d.ts +1 -0
  44. package/dist-runtime/workflow/cli.js +302 -0
  45. package/dist-runtime/workflow/cli.js.map +1 -0
  46. package/dist-runtime/workflow/commitContractInfo.d.ts +1 -0
  47. package/dist-runtime/workflow/commitContractInfo.js +64 -0
  48. package/dist-runtime/workflow/commitContractInfo.js.map +1 -0
  49. package/dist-runtime/workflow/create2Hashes.d.ts +1 -0
  50. package/dist-runtime/workflow/create2Hashes.js +76 -0
  51. package/dist-runtime/workflow/create2Hashes.js.map +1 -0
  52. package/dist-runtime/workflow/forkSourceProxy.d.ts +1 -0
  53. package/dist-runtime/workflow/forkSourceProxy.js +151 -0
  54. package/dist-runtime/workflow/forkSourceProxy.js.map +1 -0
  55. package/dist-runtime/workflow/importState.d.ts +1 -0
  56. package/dist-runtime/workflow/importState.js +193 -0
  57. package/dist-runtime/workflow/importState.js.map +1 -0
  58. package/dist-runtime/workflow/lib/authority.d.ts +28 -0
  59. package/dist-runtime/workflow/lib/authority.js +122 -0
  60. package/dist-runtime/workflow/lib/authority.js.map +1 -0
  61. package/dist-runtime/workflow/lib/calldata.d.ts +2 -0
  62. package/dist-runtime/workflow/lib/calldata.js +8 -0
  63. package/dist-runtime/workflow/lib/calldata.js.map +1 -0
  64. package/dist-runtime/workflow/lib/calls.d.ts +23 -0
  65. package/dist-runtime/workflow/lib/calls.js +316 -0
  66. package/dist-runtime/workflow/lib/calls.js.map +1 -0
  67. package/dist-runtime/workflow/lib/checkCode/args.d.ts +2 -0
  68. package/dist-runtime/workflow/lib/checkCode/args.js +68 -0
  69. package/dist-runtime/workflow/lib/checkCode/args.js.map +1 -0
  70. package/dist-runtime/workflow/lib/checkCode/command.d.ts +5 -0
  71. package/dist-runtime/workflow/lib/checkCode/command.js +35 -0
  72. package/dist-runtime/workflow/lib/checkCode/command.js.map +1 -0
  73. package/dist-runtime/workflow/lib/checkCode/dependencies.d.ts +6 -0
  74. package/dist-runtime/workflow/lib/checkCode/dependencies.js +125 -0
  75. package/dist-runtime/workflow/lib/checkCode/dependencies.js.map +1 -0
  76. package/dist-runtime/workflow/lib/checkCode/finalize.d.ts +17 -0
  77. package/dist-runtime/workflow/lib/checkCode/finalize.js +174 -0
  78. package/dist-runtime/workflow/lib/checkCode/finalize.js.map +1 -0
  79. package/dist-runtime/workflow/lib/checkCode/index.d.ts +3 -0
  80. package/dist-runtime/workflow/lib/checkCode/index.js +20 -0
  81. package/dist-runtime/workflow/lib/checkCode/index.js.map +1 -0
  82. package/dist-runtime/workflow/lib/checkCode/plan.d.ts +22 -0
  83. package/dist-runtime/workflow/lib/checkCode/plan.js +145 -0
  84. package/dist-runtime/workflow/lib/checkCode/plan.js.map +1 -0
  85. package/dist-runtime/workflow/lib/checkCodeReport.d.ts +25 -0
  86. package/dist-runtime/workflow/lib/checkCodeReport.js +102 -0
  87. package/dist-runtime/workflow/lib/checkCodeReport.js.map +1 -0
  88. package/dist-runtime/workflow/lib/checkCodeRunner.d.ts +87 -0
  89. package/dist-runtime/workflow/lib/checkCodeRunner.js +964 -0
  90. package/dist-runtime/workflow/lib/checkCodeRunner.js.map +1 -0
  91. package/dist-runtime/workflow/lib/cliTool.d.ts +10 -0
  92. package/dist-runtime/workflow/lib/cliTool.js +25 -0
  93. package/dist-runtime/workflow/lib/cliTool.js.map +1 -0
  94. package/dist-runtime/workflow/lib/config.d.ts +33 -0
  95. package/dist-runtime/workflow/lib/config.js +100 -0
  96. package/dist-runtime/workflow/lib/config.js.map +1 -0
  97. package/dist-runtime/workflow/lib/contractInfoCandidates.d.ts +82 -0
  98. package/dist-runtime/workflow/lib/contractInfoCandidates.js +441 -0
  99. package/dist-runtime/workflow/lib/contractInfoCandidates.js.map +1 -0
  100. package/dist-runtime/workflow/lib/controlledMulticallAbi.d.ts +2 -0
  101. package/dist-runtime/workflow/lib/controlledMulticallAbi.js +10 -0
  102. package/dist-runtime/workflow/lib/controlledMulticallAbi.js.map +1 -0
  103. package/dist-runtime/workflow/lib/create2.d.ts +49 -0
  104. package/dist-runtime/workflow/lib/create2.js +194 -0
  105. package/dist-runtime/workflow/lib/create2.js.map +1 -0
  106. package/dist-runtime/workflow/lib/create2Hashes.d.ts +22 -0
  107. package/dist-runtime/workflow/lib/create2Hashes.js +57 -0
  108. package/dist-runtime/workflow/lib/create2Hashes.js.map +1 -0
  109. package/dist-runtime/workflow/lib/deploymentInfo.d.ts +40 -0
  110. package/dist-runtime/workflow/lib/deploymentInfo.js +240 -0
  111. package/dist-runtime/workflow/lib/deploymentInfo.js.map +1 -0
  112. package/dist-runtime/workflow/lib/deploymentRecords.d.ts +137 -0
  113. package/dist-runtime/workflow/lib/deploymentRecords.js +374 -0
  114. package/dist-runtime/workflow/lib/deploymentRecords.js.map +1 -0
  115. package/dist-runtime/workflow/lib/deployments.d.ts +21 -0
  116. package/dist-runtime/workflow/lib/deployments.js +240 -0
  117. package/dist-runtime/workflow/lib/deployments.js.map +1 -0
  118. package/dist-runtime/workflow/lib/erc1967.d.ts +5 -0
  119. package/dist-runtime/workflow/lib/erc1967.js +29 -0
  120. package/dist-runtime/workflow/lib/erc1967.js.map +1 -0
  121. package/dist-runtime/workflow/lib/errors.d.ts +6 -0
  122. package/dist-runtime/workflow/lib/errors.js +77 -0
  123. package/dist-runtime/workflow/lib/errors.js.map +1 -0
  124. package/dist-runtime/workflow/lib/executionId.d.ts +7 -0
  125. package/dist-runtime/workflow/lib/executionId.js +26 -0
  126. package/dist-runtime/workflow/lib/executionId.js.map +1 -0
  127. package/dist-runtime/workflow/lib/executionPlan.d.ts +85 -0
  128. package/dist-runtime/workflow/lib/executionPlan.js +450 -0
  129. package/dist-runtime/workflow/lib/executionPlan.js.map +1 -0
  130. package/dist-runtime/workflow/lib/executionProgress.d.ts +5 -0
  131. package/dist-runtime/workflow/lib/executionProgress.js +100 -0
  132. package/dist-runtime/workflow/lib/executionProgress.js.map +1 -0
  133. package/dist-runtime/workflow/lib/external.d.ts +62 -0
  134. package/dist-runtime/workflow/lib/external.js +282 -0
  135. package/dist-runtime/workflow/lib/external.js.map +1 -0
  136. package/dist-runtime/workflow/lib/externalExecutionScanner.d.ts +64 -0
  137. package/dist-runtime/workflow/lib/externalExecutionScanner.js +638 -0
  138. package/dist-runtime/workflow/lib/externalExecutionScanner.js.map +1 -0
  139. package/dist-runtime/workflow/lib/forkSnapshot.d.ts +34 -0
  140. package/dist-runtime/workflow/lib/forkSnapshot.js +167 -0
  141. package/dist-runtime/workflow/lib/forkSnapshot.js.map +1 -0
  142. package/dist-runtime/workflow/lib/gateTool.d.ts +16 -0
  143. package/dist-runtime/workflow/lib/gateTool.js +177 -0
  144. package/dist-runtime/workflow/lib/gateTool.js.map +1 -0
  145. package/dist-runtime/workflow/lib/gateToolSync.d.ts +22 -0
  146. package/dist-runtime/workflow/lib/gateToolSync.js +253 -0
  147. package/dist-runtime/workflow/lib/gateToolSync.js.map +1 -0
  148. package/dist-runtime/workflow/lib/lock.d.ts +52 -0
  149. package/dist-runtime/workflow/lib/lock.js +269 -0
  150. package/dist-runtime/workflow/lib/lock.js.map +1 -0
  151. package/dist-runtime/workflow/lib/migrationState.d.ts +103 -0
  152. package/dist-runtime/workflow/lib/migrationState.js +920 -0
  153. package/dist-runtime/workflow/lib/migrationState.js.map +1 -0
  154. package/dist-runtime/workflow/lib/operatorExecution.d.ts +28 -0
  155. package/dist-runtime/workflow/lib/operatorExecution.js +134 -0
  156. package/dist-runtime/workflow/lib/operatorExecution.js.map +1 -0
  157. package/dist-runtime/workflow/lib/parameters.d.ts +58 -0
  158. package/dist-runtime/workflow/lib/parameters.js +323 -0
  159. package/dist-runtime/workflow/lib/parameters.js.map +1 -0
  160. package/dist-runtime/workflow/lib/pendingDeploymentReuse.d.ts +29 -0
  161. package/dist-runtime/workflow/lib/pendingDeploymentReuse.js +277 -0
  162. package/dist-runtime/workflow/lib/pendingDeploymentReuse.js.map +1 -0
  163. package/dist-runtime/workflow/lib/proxy.d.ts +18 -0
  164. package/dist-runtime/workflow/lib/proxy.js +19 -0
  165. package/dist-runtime/workflow/lib/proxy.js.map +1 -0
  166. package/dist-runtime/workflow/lib/registryCommit.d.ts +33 -0
  167. package/dist-runtime/workflow/lib/registryCommit.js +319 -0
  168. package/dist-runtime/workflow/lib/registryCommit.js.map +1 -0
  169. package/dist-runtime/workflow/lib/release.d.ts +57 -0
  170. package/dist-runtime/workflow/lib/release.js +256 -0
  171. package/dist-runtime/workflow/lib/release.js.map +1 -0
  172. package/dist-runtime/workflow/lib/releaseFinalize.d.ts +14 -0
  173. package/dist-runtime/workflow/lib/releaseFinalize.js +571 -0
  174. package/dist-runtime/workflow/lib/releaseFinalize.js.map +1 -0
  175. package/dist-runtime/workflow/lib/releaseParameters.d.ts +43 -0
  176. package/dist-runtime/workflow/lib/releaseParameters.js +184 -0
  177. package/dist-runtime/workflow/lib/releaseParameters.js.map +1 -0
  178. package/dist-runtime/workflow/lib/reporter.d.ts +39 -0
  179. package/dist-runtime/workflow/lib/reporter.js +452 -0
  180. package/dist-runtime/workflow/lib/reporter.js.map +1 -0
  181. package/dist-runtime/workflow/lib/resultPaths.d.ts +17 -0
  182. package/dist-runtime/workflow/lib/resultPaths.js +29 -0
  183. package/dist-runtime/workflow/lib/resultPaths.js.map +1 -0
  184. package/dist-runtime/workflow/lib/runtimeVersion.d.ts +10 -0
  185. package/dist-runtime/workflow/lib/runtimeVersion.js +46 -0
  186. package/dist-runtime/workflow/lib/runtimeVersion.js.map +1 -0
  187. package/dist-runtime/workflow/lib/signer.d.ts +10 -0
  188. package/dist-runtime/workflow/lib/signer.js +105 -0
  189. package/dist-runtime/workflow/lib/signer.js.map +1 -0
  190. package/dist-runtime/workflow/lib/signerIdentity.d.ts +1 -0
  191. package/dist-runtime/workflow/lib/signerIdentity.js +23 -0
  192. package/dist-runtime/workflow/lib/signerIdentity.js.map +1 -0
  193. package/dist-runtime/workflow/lib/simulation.d.ts +35 -0
  194. package/dist-runtime/workflow/lib/simulation.js +282 -0
  195. package/dist-runtime/workflow/lib/simulation.js.map +1 -0
  196. package/dist-runtime/workflow/lib/simulationCallers.d.ts +44 -0
  197. package/dist-runtime/workflow/lib/simulationCallers.js +260 -0
  198. package/dist-runtime/workflow/lib/simulationCallers.js.map +1 -0
  199. package/dist-runtime/workflow/lib/sourceRpcPolicy.d.ts +1 -0
  200. package/dist-runtime/workflow/lib/sourceRpcPolicy.js +43 -0
  201. package/dist-runtime/workflow/lib/sourceRpcPolicy.js.map +1 -0
  202. package/dist-runtime/workflow/lib/state.d.ts +6 -0
  203. package/dist-runtime/workflow/lib/state.js +25 -0
  204. package/dist-runtime/workflow/lib/state.js.map +1 -0
  205. package/dist-runtime/workflow/lib/staticValidation.d.ts +22 -0
  206. package/dist-runtime/workflow/lib/staticValidation.js +124 -0
  207. package/dist-runtime/workflow/lib/staticValidation.js.map +1 -0
  208. package/dist-runtime/workflow/lib/zksyncForkCapability.d.ts +27 -0
  209. package/dist-runtime/workflow/lib/zksyncForkCapability.js +52 -0
  210. package/dist-runtime/workflow/lib/zksyncForkCapability.js.map +1 -0
  211. package/dist-runtime/workflow/lib/zksyncForkRunner.d.ts +57 -0
  212. package/dist-runtime/workflow/lib/zksyncForkRunner.js +344 -0
  213. package/dist-runtime/workflow/lib/zksyncForkRunner.js.map +1 -0
  214. package/dist-runtime/workflow/reconcileExternal.d.ts +1 -0
  215. package/dist-runtime/workflow/reconcileExternal.js +87 -0
  216. package/dist-runtime/workflow/reconcileExternal.js.map +1 -0
  217. package/dist-runtime/workflow/reconcileExternalRun.d.ts +1 -0
  218. package/dist-runtime/workflow/reconcileExternalRun.js +77 -0
  219. package/dist-runtime/workflow/reconcileExternalRun.js.map +1 -0
  220. package/dist-runtime/workflow/releaseFinalize.d.ts +1 -0
  221. package/dist-runtime/workflow/releaseFinalize.js +11 -0
  222. package/dist-runtime/workflow/releaseFinalize.js.map +1 -0
  223. package/dist-runtime/workflow/run.d.ts +40 -0
  224. package/dist-runtime/workflow/run.js +858 -0
  225. package/dist-runtime/workflow/run.js.map +1 -0
  226. package/dist-runtime/workflow/staticValidate.d.ts +1 -0
  227. package/dist-runtime/workflow/staticValidate.js +26 -0
  228. package/dist-runtime/workflow/staticValidate.js.map +1 -0
  229. package/dist-runtime/workflow/steps/call.d.ts +3 -0
  230. package/dist-runtime/workflow/steps/call.js +9 -0
  231. package/dist-runtime/workflow/steps/call.js.map +1 -0
  232. package/dist-runtime/workflow/steps/check.d.ts +3 -0
  233. package/dist-runtime/workflow/steps/check.js +9 -0
  234. package/dist-runtime/workflow/steps/check.js.map +1 -0
  235. package/dist-runtime/workflow/steps/custom.d.ts +3 -0
  236. package/dist-runtime/workflow/steps/custom.js +33 -0
  237. package/dist-runtime/workflow/steps/custom.js.map +1 -0
  238. package/dist-runtime/workflow/steps/deploy.d.ts +3 -0
  239. package/dist-runtime/workflow/steps/deploy.js +596 -0
  240. package/dist-runtime/workflow/steps/deploy.js.map +1 -0
  241. package/dist-runtime/workflow/steps/upgrade.d.ts +3 -0
  242. package/dist-runtime/workflow/steps/upgrade.js +466 -0
  243. package/dist-runtime/workflow/steps/upgrade.js.map +1 -0
  244. package/dist-runtime/workflow/steps/view.d.ts +3 -0
  245. package/dist-runtime/workflow/steps/view.js +9 -0
  246. package/dist-runtime/workflow/steps/view.js.map +1 -0
  247. package/docs/direct-package-acceptance.md +20 -0
  248. package/docs/external-infrastructure-acceptance.md +33 -0
  249. package/docs/network-runtime-acceptance.md +18 -0
  250. package/docs/plans/2026-09-09-workflow-extraction.md +16 -0
  251. package/docs/superpowers/plans/2026-07-22-manifest-bootstrap-transaction.md +50 -0
  252. package/docs/superpowers/plans/2026-07-22-manifest-review-remediation.md +49 -0
  253. package/docs/superpowers/plans/2026-08-17-custody-hardhat-signers.md +227 -0
  254. package/docs/superpowers/plans/2026-09-09-remove-template-infrastructure-contracts.md +11 -0
  255. package/docs/workflow-reference.md +1181 -0
  256. package/docs/workflow-runtime-acceptance.md +17 -0
  257. package/docs/workflow-runtime.md +56 -0
  258. package/package.json +26 -5
  259. package/runtime/config/hardhatAdapters.ts +58 -0
  260. package/runtime/config/networks.ts +305 -0
  261. package/runtime/config/openzeppelin.ts +173 -0
  262. package/runtime/config/rpc.ts +27 -0
  263. package/runtime/config/zksyncSolcPath.ts +59 -0
  264. package/runtime/hardhat-types.d.ts +2 -0
  265. package/runtime/migrate.ts +154 -0
  266. package/runtime/projectHardhat.ts +10 -0
  267. package/runtime/template-migration.json +293 -0
  268. package/runtime/workflow/checkCode.ts +13 -0
  269. package/runtime/workflow/checkCodeFinalize.ts +8 -0
  270. package/runtime/workflow/checkCodePlan.ts +8 -0
  271. package/runtime/workflow/cli.ts +356 -0
  272. package/runtime/workflow/commitContractInfo.ts +63 -0
  273. package/runtime/workflow/create2Hashes.ts +79 -0
  274. package/runtime/workflow/forkSourceProxy.ts +193 -0
  275. package/runtime/workflow/importState.ts +190 -0
  276. package/runtime/workflow/lib/authority.ts +170 -0
  277. package/runtime/workflow/lib/calldata.ts +9 -0
  278. package/runtime/workflow/lib/calls.ts +407 -0
  279. package/runtime/workflow/lib/checkCode/args.ts +76 -0
  280. package/runtime/workflow/lib/checkCode/command.ts +36 -0
  281. package/runtime/workflow/lib/checkCode/dependencies.ts +112 -0
  282. package/runtime/workflow/lib/checkCode/finalize.ts +198 -0
  283. package/runtime/workflow/lib/checkCode/index.ts +18 -0
  284. package/runtime/workflow/lib/checkCode/plan.ts +163 -0
  285. package/runtime/workflow/lib/checkCodeReport.ts +133 -0
  286. package/runtime/workflow/lib/checkCodeRunner.ts +1225 -0
  287. package/runtime/workflow/lib/cliTool.ts +31 -0
  288. package/runtime/workflow/lib/config.ts +130 -0
  289. package/runtime/workflow/lib/contractInfoCandidates.ts +690 -0
  290. package/runtime/workflow/lib/controlledMulticallAbi.ts +6 -0
  291. package/runtime/workflow/lib/create2.ts +278 -0
  292. package/runtime/workflow/lib/create2Hashes.ts +83 -0
  293. package/runtime/workflow/lib/deploymentInfo.ts +286 -0
  294. package/runtime/workflow/lib/deploymentRecords.ts +576 -0
  295. package/runtime/workflow/lib/deployments.ts +276 -0
  296. package/runtime/workflow/lib/erc1967.ts +57 -0
  297. package/runtime/workflow/lib/errors.ts +95 -0
  298. package/runtime/workflow/lib/executionId.ts +35 -0
  299. package/runtime/workflow/lib/executionPlan.ts +550 -0
  300. package/runtime/workflow/lib/executionProgress.ts +127 -0
  301. package/runtime/workflow/lib/external.ts +372 -0
  302. package/runtime/workflow/lib/externalExecutionScanner.ts +892 -0
  303. package/runtime/workflow/lib/forkSnapshot.ts +231 -0
  304. package/runtime/workflow/lib/gateTool.ts +261 -0
  305. package/runtime/workflow/lib/gateToolSync.ts +398 -0
  306. package/runtime/workflow/lib/lock.ts +388 -0
  307. package/runtime/workflow/lib/migrationState.ts +1246 -0
  308. package/runtime/workflow/lib/operatorExecution.ts +174 -0
  309. package/runtime/workflow/lib/parameters.ts +438 -0
  310. package/runtime/workflow/lib/pendingDeploymentReuse.ts +428 -0
  311. package/runtime/workflow/lib/proxy.ts +45 -0
  312. package/runtime/workflow/lib/registryCommit.ts +455 -0
  313. package/runtime/workflow/lib/release.ts +329 -0
  314. package/runtime/workflow/lib/releaseFinalize.ts +711 -0
  315. package/runtime/workflow/lib/releaseParameters.ts +248 -0
  316. package/runtime/workflow/lib/reporter.ts +502 -0
  317. package/runtime/workflow/lib/resultPaths.ts +49 -0
  318. package/runtime/workflow/lib/runtimeVersion.ts +28 -0
  319. package/runtime/workflow/lib/signer.ts +124 -0
  320. package/runtime/workflow/lib/signerIdentity.ts +22 -0
  321. package/runtime/workflow/lib/simulation.ts +415 -0
  322. package/runtime/workflow/lib/simulationCallers.ts +335 -0
  323. package/runtime/workflow/lib/sourceRpcPolicy.ts +41 -0
  324. package/runtime/workflow/lib/state.ts +25 -0
  325. package/runtime/workflow/lib/staticValidation.ts +142 -0
  326. package/runtime/workflow/lib/zksyncForkCapability.ts +80 -0
  327. package/runtime/workflow/lib/zksyncForkRunner.ts +505 -0
  328. package/runtime/workflow/reconcileExternal.ts +86 -0
  329. package/runtime/workflow/reconcileExternalRun.ts +88 -0
  330. package/runtime/workflow/releaseFinalize.ts +8 -0
  331. package/runtime/workflow/run.ts +1072 -0
  332. package/runtime/workflow/staticValidate.ts +23 -0
  333. package/runtime/workflow/steps/call.ts +10 -0
  334. package/runtime/workflow/steps/check.ts +10 -0
  335. package/runtime/workflow/steps/custom.ts +43 -0
  336. package/runtime/workflow/steps/deploy.ts +772 -0
  337. package/runtime/workflow/steps/upgrade.ts +599 -0
  338. package/runtime/workflow/steps/view.ts +10 -0
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.runDevelopmentCheckCodeFinalizeCli = exports.finalizeDevelopmentCheckCode = void 0;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const checkCodeRunner_1 = require("../checkCodeRunner");
10
+ const SAFE_ID = /^[A-Za-z0-9][A-Za-z0-9_-]{0,199}$/;
11
+ const safeId = (value, label) => {
12
+ if (!SAFE_ID.test(value))
13
+ throw new Error(`${label} is invalid`);
14
+ return value;
15
+ };
16
+ const readObject = (filePath, label) => {
17
+ const value = JSON.parse(fs_1.default.readFileSync(filePath, "utf8"));
18
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
19
+ throw new Error(`${label} must be an object`);
20
+ }
21
+ return value;
22
+ };
23
+ const object = (value) => (value && typeof value === "object" && !Array.isArray(value)
24
+ ? value
25
+ : {});
26
+ const writeAtomic = (filePath, contents) => {
27
+ fs_1.default.mkdirSync(path_1.default.dirname(filePath), { recursive: true });
28
+ const temporary = `${filePath}.${process.pid}.${Date.now()}.tmp`;
29
+ try {
30
+ fs_1.default.writeFileSync(temporary, contents);
31
+ fs_1.default.renameSync(temporary, filePath);
32
+ }
33
+ catch (error) {
34
+ if (fs_1.default.existsSync(temporary))
35
+ fs_1.default.unlinkSync(temporary);
36
+ throw error;
37
+ }
38
+ };
39
+ const writeJsonAtomic = (filePath, value) => {
40
+ writeAtomic(filePath, JSON.stringify(value, null, 2) + "\n");
41
+ };
42
+ const finalizeDevelopmentCheckCode = (input) => {
43
+ const deploymentId = safeId(input.deploymentId, "deploymentId");
44
+ const sourceSuperTaskId = safeId(input.sourceSuperTaskId, "sourceSuperTaskId");
45
+ const developmentNetwork = safeId(input.developmentNetwork, "developmentNetwork");
46
+ const executionId = safeId(input.executionId, "executionId");
47
+ const runId = safeId(input.runId, "CheckCode runId");
48
+ const updatedAt = (input.now || (() => new Date().toISOString()))();
49
+ if (!Number.isFinite(Date.parse(updatedAt)))
50
+ throw new Error("Finalize timestamp is invalid");
51
+ const taskBase = `scripts/tasks/${deploymentId}`;
52
+ const reportPath = `scripts/checkcode/runs/${runId}/report.json`;
53
+ const statusPath = `${taskBase}/status.json`;
54
+ const handoffPath = `${taskBase}/handoff.json`;
55
+ const documentPath = `${taskBase}/docs/checkcode-report.md`;
56
+ const absolute = (relative) => path_1.default.join(input.root, ...relative.split("/"));
57
+ const report = (0, checkCodeRunner_1.validateCheckCodeRunReport)(readObject(absolute(reportPath), "CheckCode report"));
58
+ if (report.status !== "succeeded"
59
+ || report.runId !== runId
60
+ || report.reportPath !== reportPath) {
61
+ throw new Error("Development CheckCode requires the selected canonical succeeded report");
62
+ }
63
+ const status = readObject(absolute(statusPath), "status.json");
64
+ const phases = object(status.phases);
65
+ const networks = object(status.networks);
66
+ const network = object(networks[developmentNetwork]);
67
+ if (status.sourceSuperTaskId !== sourceSuperTaskId
68
+ || status.developmentNetwork !== developmentNetwork
69
+ || network.registryExecutionId !== executionId
70
+ || network.deployStatus !== "deployed_pending_code_audit") {
71
+ throw new Error("Development CheckCode status identity is invalid");
72
+ }
73
+ const nextStatus = {
74
+ ...status,
75
+ status: "code_checked",
76
+ phases: {
77
+ ...phases,
78
+ checkCode: {
79
+ networks: [developmentNetwork],
80
+ status: "succeeded",
81
+ report: reportPath,
82
+ },
83
+ },
84
+ networks: {
85
+ ...networks,
86
+ [developmentNetwork]: {
87
+ ...network,
88
+ deployStatus: "deployed_pending_code_audit",
89
+ checkCodeStatus: "succeeded",
90
+ checkCodeRunId: runId,
91
+ checkCodeReportPath: reportPath,
92
+ updatedAt,
93
+ },
94
+ },
95
+ updatedAt,
96
+ };
97
+ const existingHandoff = readObject(absolute(handoffPath), "handoff.json");
98
+ const { checkCodeReport: _legacyCheckCodeReport, ...handoff } = existingHandoff;
99
+ const nextHandoff = {
100
+ ...handoff,
101
+ stageKind: "check_code",
102
+ status: "code_checked",
103
+ sourceSuperTaskId,
104
+ deploymentId,
105
+ developmentNetwork,
106
+ executionId,
107
+ networks: [developmentNetwork],
108
+ development_deployed: true,
109
+ checkCode: {
110
+ runId,
111
+ reportPath,
112
+ artifactHash: report.artifactHash,
113
+ },
114
+ updatedAt,
115
+ };
116
+ const lines = [
117
+ "# CheckCode Report",
118
+ "",
119
+ `sourceSuperTaskId: ${sourceSuperTaskId}`,
120
+ `deploymentId: ${deploymentId}`,
121
+ `developmentNetwork: ${developmentNetwork}`,
122
+ `executionId: ${executionId}`,
123
+ `runId: ${runId}`,
124
+ `artifactHash: ${report.artifactHash}`,
125
+ `reportPath: ${reportPath}`,
126
+ `status: ${report.status}`,
127
+ `startedAt: ${report.startedAt}`,
128
+ `completedAt: ${report.completedAt}`,
129
+ "",
130
+ "## Commands",
131
+ ...report.commands.map((command) => (`- ${command.command} ${command.args.join(" ")} — exit ${command.status}`)),
132
+ "",
133
+ ];
134
+ writeJsonAtomic(absolute(statusPath), nextStatus);
135
+ writeJsonAtomic(absolute(handoffPath), nextHandoff);
136
+ writeAtomic(absolute(documentPath), lines.join("\n"));
137
+ return { reportPath, handoffPath, statusPath, documentPath };
138
+ };
139
+ exports.finalizeDevelopmentCheckCode = finalizeDevelopmentCheckCode;
140
+ const runDevelopmentCheckCodeFinalizeCli = (argv, defaultRoot = process.cwd()) => {
141
+ const values = new Map();
142
+ for (let index = 0; index < argv.length; index += 1) {
143
+ const item = argv[index];
144
+ if (!item.startsWith("--"))
145
+ continue;
146
+ const equalAt = item.indexOf("=");
147
+ const key = item.slice(2, equalAt > 2 ? equalAt : undefined);
148
+ const next = argv[index + 1];
149
+ const value = equalAt > 2 ? item.slice(equalAt + 1) : next;
150
+ if (!value || value.startsWith("--"))
151
+ throw new Error(`--${key} requires a value`);
152
+ if (values.has(key))
153
+ throw new Error(`--${key} may be provided only once`);
154
+ values.set(key, value.trim());
155
+ if (equalAt < 0)
156
+ index += 1;
157
+ }
158
+ const required = (key) => {
159
+ const value = values.get(key);
160
+ if (!value)
161
+ throw new Error(`--${key} is required`);
162
+ return value;
163
+ };
164
+ return (0, exports.finalizeDevelopmentCheckCode)({
165
+ root: path_1.default.resolve(values.get("root") || defaultRoot),
166
+ deploymentId: required("deploymentId"),
167
+ sourceSuperTaskId: required("sourceSuperTaskId"),
168
+ developmentNetwork: required("developmentNetwork"),
169
+ executionId: required("executionId"),
170
+ runId: required("runId"),
171
+ });
172
+ };
173
+ exports.runDevelopmentCheckCodeFinalizeCli = runDevelopmentCheckCodeFinalizeCli;
174
+ //# sourceMappingURL=finalize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"finalize.js","sourceRoot":"","sources":["../../../../runtime/workflow/lib/checkCode/finalize.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type CheckCodeRunReport } from "../checkCodeRunner";
2
+ export { parseCheckCodeOptions } from "./args";
3
+ export declare const runCheckCodeWorkflow: (argv?: string[], defaultRoot?: string) => Promise<CheckCodeRunReport>;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runCheckCodeWorkflow = exports.parseCheckCodeOptions = void 0;
4
+ const checkCodeRunner_1 = require("../checkCodeRunner");
5
+ const args_1 = require("./args");
6
+ const dependencies_1 = require("./dependencies");
7
+ var args_2 = require("./args");
8
+ Object.defineProperty(exports, "parseCheckCodeOptions", { enumerable: true, get: function () { return args_2.parseCheckCodeOptions; } });
9
+ const runCheckCodeWorkflow = async (argv = process.argv.slice(2), defaultRoot = process.cwd()) => {
10
+ const options = (0, args_1.parseCheckCodeOptions)(argv, defaultRoot);
11
+ const runtime = (0, dependencies_1.createCheckCodeDependencies)(options.root);
12
+ try {
13
+ return await (0, checkCodeRunner_1.runCheckCode)(options, runtime.dependencies);
14
+ }
15
+ finally {
16
+ runtime.dispose();
17
+ }
18
+ };
19
+ exports.runCheckCodeWorkflow = runCheckCodeWorkflow;
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../runtime/workflow/lib/checkCode/index.ts"],"names":[],"mappings":";;;AAAA,wDAA2E;AAC3E,iCAA+C;AAC/C,iDAA6D;AAE7D,+BAA+C;AAAtC,6GAAA,qBAAqB,OAAA;AAEvB,MAAM,oBAAoB,GAAG,KAAK,EACvC,OAAiB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EACtC,cAAsB,OAAO,CAAC,GAAG,EAAE,EACN,EAAE;IAC/B,MAAM,OAAO,GAAG,IAAA,4BAAqB,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,IAAA,0CAA2B,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,IAAI,CAAC;QACH,OAAO,MAAM,IAAA,8BAAY,EAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC3D,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,OAAO,EAAE,CAAC;IACpB,CAAC;AACH,CAAC,CAAC;AAXW,QAAA,oBAAoB,wBAW/B"}
@@ -0,0 +1,22 @@
1
+ export interface CheckCodePlanTarget {
2
+ network: string;
3
+ manifestDir: string;
4
+ contracts: string[];
5
+ }
6
+ export interface CheckCodePlanInput {
7
+ root: string;
8
+ runId: string;
9
+ artifactHash: string;
10
+ deploymentId?: string;
11
+ sourceSuperTaskId?: string;
12
+ developmentNetwork?: string;
13
+ executionId?: string;
14
+ targets: CheckCodePlanTarget[];
15
+ }
16
+ export interface CheckCodePlanResult {
17
+ planPath: string;
18
+ runId: string;
19
+ artifactHash: string;
20
+ }
21
+ export declare const prepareCheckCodePlan: (input: CheckCodePlanInput) => CheckCodePlanResult;
22
+ export declare const runCheckCodePlanCli: (argv: string[], defaultRoot?: string) => CheckCodePlanResult;
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.runCheckCodePlanCli = exports.prepareCheckCodePlan = void 0;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const SAFE_ID = /^[A-Za-z0-9][A-Za-z0-9_-]{0,199}$/;
10
+ const HASH = /^[0-9a-f]{64}$/;
11
+ const MANIFEST_DIR = /^\.openzeppelin(?:\.[a-z0-9][a-z0-9-]*)?$/;
12
+ const safeId = (value, label) => {
13
+ if (!SAFE_ID.test(value))
14
+ throw new Error(`${label} is invalid`);
15
+ return value;
16
+ };
17
+ const superTaskIdentity = (input) => {
18
+ const values = [
19
+ input.deploymentId,
20
+ input.sourceSuperTaskId,
21
+ input.developmentNetwork,
22
+ input.executionId,
23
+ ];
24
+ if (values.every(Boolean))
25
+ return true;
26
+ if (values.some(Boolean)) {
27
+ throw new Error("SuperTask CheckCode plan requires deploymentId, sourceSuperTaskId, developmentNetwork, and executionId together");
28
+ }
29
+ return false;
30
+ };
31
+ const writeTextAtomic = (filePath, contents) => {
32
+ fs_1.default.mkdirSync(path_1.default.dirname(filePath), { recursive: true });
33
+ const temporary = `${filePath}.${process.pid}.${Date.now()}.tmp`;
34
+ try {
35
+ fs_1.default.writeFileSync(temporary, contents);
36
+ fs_1.default.renameSync(temporary, filePath);
37
+ }
38
+ catch (error) {
39
+ if (fs_1.default.existsSync(temporary))
40
+ fs_1.default.unlinkSync(temporary);
41
+ throw error;
42
+ }
43
+ };
44
+ const prepareCheckCodePlan = (input) => {
45
+ const runId = safeId(input.runId, "CheckCode runId");
46
+ if (!HASH.test(input.artifactHash))
47
+ throw new Error("CheckCode artifactHash is invalid");
48
+ const isSuperTask = superTaskIdentity(input);
49
+ const targets = [...input.targets]
50
+ .map((target) => ({
51
+ network: safeId(target.network, "CheckCode target network"),
52
+ manifestDir: target.manifestDir,
53
+ contracts: [...new Set(target.contracts.map((item) => item.trim()).filter(Boolean))].sort(),
54
+ }))
55
+ .sort((left, right) => left.network.localeCompare(right.network));
56
+ if (targets.length === 0)
57
+ throw new Error("CheckCode plan requires at least one target");
58
+ if (new Set(targets.map((target) => target.network)).size !== targets.length) {
59
+ throw new Error("CheckCode plan target networks must be unique");
60
+ }
61
+ for (const target of targets) {
62
+ if (!MANIFEST_DIR.test(target.manifestDir)) {
63
+ throw new Error(`CheckCode manifestDir is invalid for ${target.network}`);
64
+ }
65
+ }
66
+ if (isSuperTask && (targets.length !== 1 || targets[0].network !== input.developmentNetwork)) {
67
+ throw new Error("SuperTask CheckCode plan must target only developmentNetwork");
68
+ }
69
+ const relativePath = isSuperTask
70
+ ? `scripts/tasks/${safeId(input.deploymentId, "deploymentId")}/docs/checkcode-plan.md`
71
+ : "docs/checkcode-plan.md";
72
+ const lines = [
73
+ "# CheckCode Plan",
74
+ "",
75
+ `runId: ${runId}`,
76
+ `artifactHash: ${input.artifactHash}`,
77
+ ...(isSuperTask ? [
78
+ `deploymentId: ${safeId(input.deploymentId, "deploymentId")}`,
79
+ `sourceSuperTaskId: ${safeId(input.sourceSuperTaskId, "sourceSuperTaskId")}`,
80
+ `developmentNetwork: ${safeId(input.developmentNetwork, "developmentNetwork")}`,
81
+ `executionId: ${safeId(input.executionId, "executionId")}`,
82
+ ] : []),
83
+ "",
84
+ "## Targets",
85
+ ...targets.flatMap((target) => [
86
+ `- network: ${target.network}`,
87
+ ` manifestDir: ${target.manifestDir}`,
88
+ ` contracts: ${target.contracts.join(", ") || "<all>"}`,
89
+ ]),
90
+ "",
91
+ ];
92
+ writeTextAtomic(path_1.default.join(input.root, ...relativePath.split("/")), lines.join("\n"));
93
+ return { planPath: relativePath, runId, artifactHash: input.artifactHash };
94
+ };
95
+ exports.prepareCheckCodePlan = prepareCheckCodePlan;
96
+ const runCheckCodePlanCli = (argv, defaultRoot = process.cwd()) => {
97
+ const values = new Map();
98
+ for (let index = 0; index < argv.length; index += 1) {
99
+ const item = argv[index];
100
+ if (!item.startsWith("--"))
101
+ continue;
102
+ const equalAt = item.indexOf("=");
103
+ const key = item.slice(2, equalAt > 2 ? equalAt : undefined);
104
+ const next = argv[index + 1];
105
+ const value = equalAt > 2 ? item.slice(equalAt + 1) : next;
106
+ if (!value || value.startsWith("--"))
107
+ throw new Error(`--${key} requires a value`);
108
+ if (equalAt < 0)
109
+ index += 1;
110
+ const current = values.get(key) || [];
111
+ current.push(value);
112
+ values.set(key, current);
113
+ }
114
+ const one = (key, required = false) => {
115
+ const items = values.get(key) || [];
116
+ if (items.length > 1)
117
+ throw new Error(`--${key} may be provided only once`);
118
+ if (required && !items[0]?.trim())
119
+ throw new Error(`--${key} is required`);
120
+ return items[0]?.trim() || undefined;
121
+ };
122
+ const developmentNetwork = one("developmentNetwork");
123
+ const network = one("network") || developmentNetwork;
124
+ if (!network)
125
+ throw new Error("--network or --developmentNetwork is required");
126
+ return (0, exports.prepareCheckCodePlan)({
127
+ root: path_1.default.resolve(one("root") || defaultRoot),
128
+ runId: one("runId", true),
129
+ artifactHash: one("artifactHash", true),
130
+ deploymentId: one("deploymentId"),
131
+ sourceSuperTaskId: one("sourceSuperTaskId"),
132
+ developmentNetwork,
133
+ executionId: one("executionId"),
134
+ targets: [{
135
+ network,
136
+ manifestDir: one("manifestDir", true),
137
+ contracts: (values.get("contract") || [])
138
+ .flatMap((item) => item.split(","))
139
+ .map((item) => item.trim())
140
+ .filter(Boolean),
141
+ }],
142
+ });
143
+ };
144
+ exports.runCheckCodePlanCli = runCheckCodePlanCli;
145
+ //# sourceMappingURL=plan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../../runtime/workflow/lib/checkCode/plan.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ export interface CheckCodeEvidenceEntry {
2
+ status: "passed";
3
+ network: string;
4
+ scheme: "evm" | "zksync-eravm";
5
+ instanceId: string;
6
+ contractInfoKey: string;
7
+ address: string;
8
+ artifactHash: string;
9
+ runId: string;
10
+ checkedAt: string;
11
+ }
12
+ export interface CheckCodeEvidenceIndex {
13
+ version: 1;
14
+ entries: Record<string, CheckCodeEvidenceEntry>;
15
+ }
16
+ export interface ReusableDeploymentExpectation {
17
+ network: string;
18
+ scheme: "evm" | "zksync-eravm";
19
+ instanceId: string;
20
+ address: string;
21
+ artifactHash: string;
22
+ }
23
+ export declare const loadCheckCodeEvidenceIndex: (root: string) => CheckCodeEvidenceIndex;
24
+ export declare const assertReusableDeployment: (root: string, expected: ReusableDeploymentExpectation) => CheckCodeEvidenceEntry;
25
+ export declare const updateCheckCodeEvidenceIndex: (root: string, evidenceEntries: CheckCodeEvidenceEntry[]) => CheckCodeEvidenceIndex;
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.updateCheckCodeEvidenceIndex = exports.assertReusableDeployment = exports.loadCheckCodeEvidenceIndex = void 0;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const isRecord = (value) => {
10
+ return !!value && typeof value === "object" && !Array.isArray(value);
11
+ };
12
+ const evidenceIndexPath = (root) => {
13
+ return path_1.default.join(root, "scripts", "checkcode", "index.json");
14
+ };
15
+ const writeJsonAtomic = (filePath, value) => {
16
+ fs_1.default.mkdirSync(path_1.default.dirname(filePath), { recursive: true });
17
+ const temporary = filePath + "." + process.pid + "." + Date.now() + ".tmp";
18
+ try {
19
+ fs_1.default.writeFileSync(temporary, JSON.stringify(value, null, 2) + "\n");
20
+ fs_1.default.renameSync(temporary, filePath);
21
+ }
22
+ catch (error) {
23
+ if (fs_1.default.existsSync(temporary))
24
+ fs_1.default.unlinkSync(temporary);
25
+ throw error;
26
+ }
27
+ };
28
+ const loadCheckCodeEvidenceIndex = (root) => {
29
+ const filePath = evidenceIndexPath(root);
30
+ if (!fs_1.default.existsSync(filePath)) {
31
+ throw new Error("Existing deployment has no passed CheckCode evidence index");
32
+ }
33
+ let parsed;
34
+ try {
35
+ parsed = JSON.parse(fs_1.default.readFileSync(filePath, "utf8"));
36
+ }
37
+ catch (error) {
38
+ throw new Error("CheckCode evidence index must contain valid JSON: "
39
+ + (error instanceof Error ? error.message : String(error)));
40
+ }
41
+ if (!isRecord(parsed) || parsed.version !== 1 || !isRecord(parsed.entries)) {
42
+ throw new Error("CheckCode evidence index must contain version 1 entries");
43
+ }
44
+ const entries = {};
45
+ for (const [key, entryValue] of Object.entries(parsed.entries)) {
46
+ if (!isRecord(entryValue) || entryValue.status !== "passed") {
47
+ throw new Error("CheckCode evidence entry " + key + " must have passed status");
48
+ }
49
+ for (const field of [
50
+ "network",
51
+ "scheme",
52
+ "instanceId",
53
+ "contractInfoKey",
54
+ "address",
55
+ "artifactHash",
56
+ "runId",
57
+ "checkedAt",
58
+ ]) {
59
+ if (typeof entryValue[field] !== "string" || !String(entryValue[field]).trim()) {
60
+ throw new Error("CheckCode evidence entry " + key + "." + field + " is required");
61
+ }
62
+ }
63
+ entries[key] = entryValue;
64
+ }
65
+ return { version: 1, entries };
66
+ };
67
+ exports.loadCheckCodeEvidenceIndex = loadCheckCodeEvidenceIndex;
68
+ const assertReusableDeployment = (root, expected) => {
69
+ const index = (0, exports.loadCheckCodeEvidenceIndex)(root);
70
+ const evidence = Object.values(index.entries).find((entry) => (entry.network === expected.network && entry.instanceId === expected.instanceId));
71
+ if (!evidence) {
72
+ throw new Error("Existing deployment " + expected.network + "." + expected.instanceId
73
+ + " has no passed CheckCode evidence");
74
+ }
75
+ if (evidence.address.toLowerCase() !== expected.address.toLowerCase()) {
76
+ throw new Error("CheckCode address does not match the existing deployment");
77
+ }
78
+ if (evidence.scheme !== expected.scheme) {
79
+ throw new Error("CheckCode scheme does not match the existing deployment");
80
+ }
81
+ if (evidence.artifactHash !== expected.artifactHash) {
82
+ throw new Error("CheckCode artifactHash does not match the execution artifactHash");
83
+ }
84
+ return evidence;
85
+ };
86
+ exports.assertReusableDeployment = assertReusableDeployment;
87
+ const updateCheckCodeEvidenceIndex = (root, evidenceEntries) => {
88
+ const filePath = evidenceIndexPath(root);
89
+ let current = { version: 1, entries: {} };
90
+ if (fs_1.default.existsSync(filePath)) {
91
+ current = (0, exports.loadCheckCodeEvidenceIndex)(root);
92
+ }
93
+ const entries = { ...current.entries };
94
+ for (const evidence of evidenceEntries) {
95
+ entries[evidence.network + "." + evidence.instanceId] = evidence;
96
+ }
97
+ const next = { version: 1, entries };
98
+ writeJsonAtomic(filePath, next);
99
+ return next;
100
+ };
101
+ exports.updateCheckCodeEvidenceIndex = updateCheckCodeEvidenceIndex;
102
+ //# sourceMappingURL=checkCodeReport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkCodeReport.js","sourceRoot":"","sources":["../../../runtime/workflow/lib/checkCodeReport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ import type { DeploymentInfo } from "./deploymentInfo";
2
+ export type ManifestSyncStatus = "not_required" | "already_current" | "synced" | "proxy_kind_unknown" | "failed";
3
+ export type CheckCodeStatus = "compile_failed" | "check_failed" | "sync_partial" | "succeeded";
4
+ export type DeploymentScheme = "evm" | "zksync-eravm";
5
+ export type EffectiveContractInfo = Record<string, Record<string, string>>;
6
+ export interface CheckCodeOptions {
7
+ root: string;
8
+ runId: string;
9
+ artifactHash: string;
10
+ networks?: string[];
11
+ contracts?: string[];
12
+ deploymentAudit?: {
13
+ deploymentId: string;
14
+ registryCommitId: string;
15
+ };
16
+ }
17
+ export interface CheckCodeDeploymentAuditEvidence {
18
+ deploymentId: string;
19
+ registryCommitId: string;
20
+ registryCommitPath: string;
21
+ registryCommitHash: string;
22
+ selections: Array<{
23
+ network: string;
24
+ executionId: string;
25
+ }>;
26
+ }
27
+ export interface CommandResult {
28
+ status: number;
29
+ error?: string;
30
+ }
31
+ export interface CommandEvidence {
32
+ command: string;
33
+ args: string[];
34
+ status: number;
35
+ network: string;
36
+ scheme: DeploymentScheme;
37
+ manifestDir?: string;
38
+ manifestFile?: string;
39
+ error?: string;
40
+ }
41
+ export interface CheckCodeEntry {
42
+ network: string;
43
+ scheme: DeploymentScheme;
44
+ instanceId: string;
45
+ contractInfoKey: string;
46
+ actualContract: string;
47
+ address: string;
48
+ proxyKind?: string;
49
+ implementationAddress?: string;
50
+ manifestDir: string;
51
+ manifestFile: string;
52
+ syncStatus: ManifestSyncStatus;
53
+ beforeHash: string;
54
+ afterHash: string;
55
+ }
56
+ export interface CheckCodeRunReport {
57
+ version: 1;
58
+ runId: string;
59
+ status: CheckCodeStatus;
60
+ artifactHash: string;
61
+ sourceContractInfoPath: "contractInfo.json";
62
+ deploymentAudit?: CheckCodeDeploymentAuditEvidence;
63
+ effectiveContractInfoPath?: string;
64
+ rawCheckReportPath?: string;
65
+ entries: CheckCodeEntry[];
66
+ commands: CommandEvidence[];
67
+ startedAt: string;
68
+ completedAt: string;
69
+ error?: string;
70
+ reportPath: string;
71
+ }
72
+ export interface CheckCodeDependencies {
73
+ runCommand: (command: string, args: string[], options?: {
74
+ cwd: string;
75
+ env?: NodeJS.ProcessEnv;
76
+ }) => Promise<CommandResult> | CommandResult;
77
+ loadContractInfo: () => EffectiveContractInfo;
78
+ loadDeploymentInfo: () => DeploymentInfo;
79
+ resolveScheme: (network: string) => DeploymentScheme;
80
+ resolveManifestDir: (network: string) => string;
81
+ resolveManifestFile: (network: string, manifestDir: string) => Promise<string> | string;
82
+ getImplementation: (network: string, address: string) => Promise<string | undefined>;
83
+ getStorageLayoutHash: (contractName: string) => Promise<string>;
84
+ now?: () => string;
85
+ }
86
+ export declare const validateCheckCodeRunReport: (value: unknown) => CheckCodeRunReport;
87
+ export declare const runCheckCode: (options: CheckCodeOptions, dependencies: CheckCodeDependencies) => Promise<CheckCodeRunReport>;