gate-evm-tools 1.0.26 → 1.0.27

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 (323) 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 +5 -0
  11. package/dist-runtime/config/hardhatAdapters.js +53 -0
  12. package/dist-runtime/config/hardhatAdapters.js.map +1 -0
  13. package/dist-runtime/config/networks.d.ts +8 -0
  14. package/dist-runtime/config/networks.js +269 -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/create2.d.ts +49 -0
  101. package/dist-runtime/workflow/lib/create2.js +194 -0
  102. package/dist-runtime/workflow/lib/create2.js.map +1 -0
  103. package/dist-runtime/workflow/lib/create2Hashes.d.ts +22 -0
  104. package/dist-runtime/workflow/lib/create2Hashes.js +57 -0
  105. package/dist-runtime/workflow/lib/create2Hashes.js.map +1 -0
  106. package/dist-runtime/workflow/lib/deploymentInfo.d.ts +40 -0
  107. package/dist-runtime/workflow/lib/deploymentInfo.js +240 -0
  108. package/dist-runtime/workflow/lib/deploymentInfo.js.map +1 -0
  109. package/dist-runtime/workflow/lib/deploymentRecords.d.ts +137 -0
  110. package/dist-runtime/workflow/lib/deploymentRecords.js +374 -0
  111. package/dist-runtime/workflow/lib/deploymentRecords.js.map +1 -0
  112. package/dist-runtime/workflow/lib/deployments.d.ts +21 -0
  113. package/dist-runtime/workflow/lib/deployments.js +240 -0
  114. package/dist-runtime/workflow/lib/deployments.js.map +1 -0
  115. package/dist-runtime/workflow/lib/erc1967.d.ts +5 -0
  116. package/dist-runtime/workflow/lib/erc1967.js +29 -0
  117. package/dist-runtime/workflow/lib/erc1967.js.map +1 -0
  118. package/dist-runtime/workflow/lib/errors.d.ts +6 -0
  119. package/dist-runtime/workflow/lib/errors.js +77 -0
  120. package/dist-runtime/workflow/lib/errors.js.map +1 -0
  121. package/dist-runtime/workflow/lib/executionId.d.ts +7 -0
  122. package/dist-runtime/workflow/lib/executionId.js +26 -0
  123. package/dist-runtime/workflow/lib/executionId.js.map +1 -0
  124. package/dist-runtime/workflow/lib/executionPlan.d.ts +85 -0
  125. package/dist-runtime/workflow/lib/executionPlan.js +450 -0
  126. package/dist-runtime/workflow/lib/executionPlan.js.map +1 -0
  127. package/dist-runtime/workflow/lib/executionProgress.d.ts +5 -0
  128. package/dist-runtime/workflow/lib/executionProgress.js +100 -0
  129. package/dist-runtime/workflow/lib/executionProgress.js.map +1 -0
  130. package/dist-runtime/workflow/lib/external.d.ts +62 -0
  131. package/dist-runtime/workflow/lib/external.js +282 -0
  132. package/dist-runtime/workflow/lib/external.js.map +1 -0
  133. package/dist-runtime/workflow/lib/externalExecutionScanner.d.ts +64 -0
  134. package/dist-runtime/workflow/lib/externalExecutionScanner.js +638 -0
  135. package/dist-runtime/workflow/lib/externalExecutionScanner.js.map +1 -0
  136. package/dist-runtime/workflow/lib/forkSnapshot.d.ts +34 -0
  137. package/dist-runtime/workflow/lib/forkSnapshot.js +167 -0
  138. package/dist-runtime/workflow/lib/forkSnapshot.js.map +1 -0
  139. package/dist-runtime/workflow/lib/gateTool.d.ts +16 -0
  140. package/dist-runtime/workflow/lib/gateTool.js +177 -0
  141. package/dist-runtime/workflow/lib/gateTool.js.map +1 -0
  142. package/dist-runtime/workflow/lib/gateToolSync.d.ts +22 -0
  143. package/dist-runtime/workflow/lib/gateToolSync.js +253 -0
  144. package/dist-runtime/workflow/lib/gateToolSync.js.map +1 -0
  145. package/dist-runtime/workflow/lib/lock.d.ts +52 -0
  146. package/dist-runtime/workflow/lib/lock.js +269 -0
  147. package/dist-runtime/workflow/lib/lock.js.map +1 -0
  148. package/dist-runtime/workflow/lib/migrationState.d.ts +103 -0
  149. package/dist-runtime/workflow/lib/migrationState.js +920 -0
  150. package/dist-runtime/workflow/lib/migrationState.js.map +1 -0
  151. package/dist-runtime/workflow/lib/operatorExecution.d.ts +28 -0
  152. package/dist-runtime/workflow/lib/operatorExecution.js +134 -0
  153. package/dist-runtime/workflow/lib/operatorExecution.js.map +1 -0
  154. package/dist-runtime/workflow/lib/parameters.d.ts +58 -0
  155. package/dist-runtime/workflow/lib/parameters.js +322 -0
  156. package/dist-runtime/workflow/lib/parameters.js.map +1 -0
  157. package/dist-runtime/workflow/lib/pendingDeploymentReuse.d.ts +29 -0
  158. package/dist-runtime/workflow/lib/pendingDeploymentReuse.js +277 -0
  159. package/dist-runtime/workflow/lib/pendingDeploymentReuse.js.map +1 -0
  160. package/dist-runtime/workflow/lib/proxy.d.ts +18 -0
  161. package/dist-runtime/workflow/lib/proxy.js +19 -0
  162. package/dist-runtime/workflow/lib/proxy.js.map +1 -0
  163. package/dist-runtime/workflow/lib/registryCommit.d.ts +33 -0
  164. package/dist-runtime/workflow/lib/registryCommit.js +319 -0
  165. package/dist-runtime/workflow/lib/registryCommit.js.map +1 -0
  166. package/dist-runtime/workflow/lib/release.d.ts +57 -0
  167. package/dist-runtime/workflow/lib/release.js +256 -0
  168. package/dist-runtime/workflow/lib/release.js.map +1 -0
  169. package/dist-runtime/workflow/lib/releaseFinalize.d.ts +14 -0
  170. package/dist-runtime/workflow/lib/releaseFinalize.js +571 -0
  171. package/dist-runtime/workflow/lib/releaseFinalize.js.map +1 -0
  172. package/dist-runtime/workflow/lib/releaseParameters.d.ts +43 -0
  173. package/dist-runtime/workflow/lib/releaseParameters.js +184 -0
  174. package/dist-runtime/workflow/lib/releaseParameters.js.map +1 -0
  175. package/dist-runtime/workflow/lib/reporter.d.ts +39 -0
  176. package/dist-runtime/workflow/lib/reporter.js +452 -0
  177. package/dist-runtime/workflow/lib/reporter.js.map +1 -0
  178. package/dist-runtime/workflow/lib/resultPaths.d.ts +17 -0
  179. package/dist-runtime/workflow/lib/resultPaths.js +29 -0
  180. package/dist-runtime/workflow/lib/resultPaths.js.map +1 -0
  181. package/dist-runtime/workflow/lib/runtimeVersion.d.ts +10 -0
  182. package/dist-runtime/workflow/lib/runtimeVersion.js +46 -0
  183. package/dist-runtime/workflow/lib/runtimeVersion.js.map +1 -0
  184. package/dist-runtime/workflow/lib/signer.d.ts +10 -0
  185. package/dist-runtime/workflow/lib/signer.js +105 -0
  186. package/dist-runtime/workflow/lib/signer.js.map +1 -0
  187. package/dist-runtime/workflow/lib/signerIdentity.d.ts +1 -0
  188. package/dist-runtime/workflow/lib/signerIdentity.js +23 -0
  189. package/dist-runtime/workflow/lib/signerIdentity.js.map +1 -0
  190. package/dist-runtime/workflow/lib/simulation.d.ts +35 -0
  191. package/dist-runtime/workflow/lib/simulation.js +282 -0
  192. package/dist-runtime/workflow/lib/simulation.js.map +1 -0
  193. package/dist-runtime/workflow/lib/simulationCallers.d.ts +44 -0
  194. package/dist-runtime/workflow/lib/simulationCallers.js +260 -0
  195. package/dist-runtime/workflow/lib/simulationCallers.js.map +1 -0
  196. package/dist-runtime/workflow/lib/sourceRpcPolicy.d.ts +1 -0
  197. package/dist-runtime/workflow/lib/sourceRpcPolicy.js +43 -0
  198. package/dist-runtime/workflow/lib/sourceRpcPolicy.js.map +1 -0
  199. package/dist-runtime/workflow/lib/state.d.ts +6 -0
  200. package/dist-runtime/workflow/lib/state.js +25 -0
  201. package/dist-runtime/workflow/lib/state.js.map +1 -0
  202. package/dist-runtime/workflow/lib/staticValidation.d.ts +22 -0
  203. package/dist-runtime/workflow/lib/staticValidation.js +124 -0
  204. package/dist-runtime/workflow/lib/staticValidation.js.map +1 -0
  205. package/dist-runtime/workflow/lib/zksyncForkCapability.d.ts +27 -0
  206. package/dist-runtime/workflow/lib/zksyncForkCapability.js +52 -0
  207. package/dist-runtime/workflow/lib/zksyncForkCapability.js.map +1 -0
  208. package/dist-runtime/workflow/lib/zksyncForkRunner.d.ts +57 -0
  209. package/dist-runtime/workflow/lib/zksyncForkRunner.js +344 -0
  210. package/dist-runtime/workflow/lib/zksyncForkRunner.js.map +1 -0
  211. package/dist-runtime/workflow/reconcileExternal.d.ts +1 -0
  212. package/dist-runtime/workflow/reconcileExternal.js +87 -0
  213. package/dist-runtime/workflow/reconcileExternal.js.map +1 -0
  214. package/dist-runtime/workflow/reconcileExternalRun.d.ts +1 -0
  215. package/dist-runtime/workflow/reconcileExternalRun.js +77 -0
  216. package/dist-runtime/workflow/reconcileExternalRun.js.map +1 -0
  217. package/dist-runtime/workflow/releaseFinalize.d.ts +1 -0
  218. package/dist-runtime/workflow/releaseFinalize.js +11 -0
  219. package/dist-runtime/workflow/releaseFinalize.js.map +1 -0
  220. package/dist-runtime/workflow/run.d.ts +40 -0
  221. package/dist-runtime/workflow/run.js +858 -0
  222. package/dist-runtime/workflow/run.js.map +1 -0
  223. package/dist-runtime/workflow/staticValidate.d.ts +1 -0
  224. package/dist-runtime/workflow/staticValidate.js +26 -0
  225. package/dist-runtime/workflow/staticValidate.js.map +1 -0
  226. package/dist-runtime/workflow/steps/call.d.ts +3 -0
  227. package/dist-runtime/workflow/steps/call.js +9 -0
  228. package/dist-runtime/workflow/steps/call.js.map +1 -0
  229. package/dist-runtime/workflow/steps/check.d.ts +3 -0
  230. package/dist-runtime/workflow/steps/check.js +9 -0
  231. package/dist-runtime/workflow/steps/check.js.map +1 -0
  232. package/dist-runtime/workflow/steps/custom.d.ts +3 -0
  233. package/dist-runtime/workflow/steps/custom.js +33 -0
  234. package/dist-runtime/workflow/steps/custom.js.map +1 -0
  235. package/dist-runtime/workflow/steps/deploy.d.ts +3 -0
  236. package/dist-runtime/workflow/steps/deploy.js +595 -0
  237. package/dist-runtime/workflow/steps/deploy.js.map +1 -0
  238. package/dist-runtime/workflow/steps/upgrade.d.ts +3 -0
  239. package/dist-runtime/workflow/steps/upgrade.js +465 -0
  240. package/dist-runtime/workflow/steps/upgrade.js.map +1 -0
  241. package/dist-runtime/workflow/steps/view.d.ts +3 -0
  242. package/dist-runtime/workflow/steps/view.js +9 -0
  243. package/dist-runtime/workflow/steps/view.js.map +1 -0
  244. package/package.json +25 -5
  245. package/runtime/config/hardhatAdapters.ts +50 -0
  246. package/runtime/config/networks.ts +296 -0
  247. package/runtime/config/openzeppelin.ts +173 -0
  248. package/runtime/config/rpc.ts +27 -0
  249. package/runtime/config/zksyncSolcPath.ts +59 -0
  250. package/runtime/hardhat-types.d.ts +2 -0
  251. package/runtime/migrate.ts +154 -0
  252. package/runtime/projectHardhat.ts +10 -0
  253. package/runtime/template-migration.json +293 -0
  254. package/runtime/workflow/checkCode.ts +13 -0
  255. package/runtime/workflow/checkCodeFinalize.ts +8 -0
  256. package/runtime/workflow/checkCodePlan.ts +8 -0
  257. package/runtime/workflow/cli.ts +356 -0
  258. package/runtime/workflow/commitContractInfo.ts +63 -0
  259. package/runtime/workflow/create2Hashes.ts +79 -0
  260. package/runtime/workflow/forkSourceProxy.ts +193 -0
  261. package/runtime/workflow/importState.ts +190 -0
  262. package/runtime/workflow/lib/authority.ts +170 -0
  263. package/runtime/workflow/lib/calldata.ts +9 -0
  264. package/runtime/workflow/lib/calls.ts +407 -0
  265. package/runtime/workflow/lib/checkCode/args.ts +76 -0
  266. package/runtime/workflow/lib/checkCode/command.ts +36 -0
  267. package/runtime/workflow/lib/checkCode/dependencies.ts +112 -0
  268. package/runtime/workflow/lib/checkCode/finalize.ts +198 -0
  269. package/runtime/workflow/lib/checkCode/index.ts +18 -0
  270. package/runtime/workflow/lib/checkCode/plan.ts +163 -0
  271. package/runtime/workflow/lib/checkCodeReport.ts +133 -0
  272. package/runtime/workflow/lib/checkCodeRunner.ts +1225 -0
  273. package/runtime/workflow/lib/cliTool.ts +31 -0
  274. package/runtime/workflow/lib/config.ts +130 -0
  275. package/runtime/workflow/lib/contractInfoCandidates.ts +690 -0
  276. package/runtime/workflow/lib/create2.ts +278 -0
  277. package/runtime/workflow/lib/create2Hashes.ts +83 -0
  278. package/runtime/workflow/lib/deploymentInfo.ts +286 -0
  279. package/runtime/workflow/lib/deploymentRecords.ts +576 -0
  280. package/runtime/workflow/lib/deployments.ts +276 -0
  281. package/runtime/workflow/lib/erc1967.ts +57 -0
  282. package/runtime/workflow/lib/errors.ts +95 -0
  283. package/runtime/workflow/lib/executionId.ts +35 -0
  284. package/runtime/workflow/lib/executionPlan.ts +550 -0
  285. package/runtime/workflow/lib/executionProgress.ts +127 -0
  286. package/runtime/workflow/lib/external.ts +372 -0
  287. package/runtime/workflow/lib/externalExecutionScanner.ts +892 -0
  288. package/runtime/workflow/lib/forkSnapshot.ts +231 -0
  289. package/runtime/workflow/lib/gateTool.ts +261 -0
  290. package/runtime/workflow/lib/gateToolSync.ts +398 -0
  291. package/runtime/workflow/lib/lock.ts +388 -0
  292. package/runtime/workflow/lib/migrationState.ts +1246 -0
  293. package/runtime/workflow/lib/operatorExecution.ts +174 -0
  294. package/runtime/workflow/lib/parameters.ts +437 -0
  295. package/runtime/workflow/lib/pendingDeploymentReuse.ts +428 -0
  296. package/runtime/workflow/lib/proxy.ts +45 -0
  297. package/runtime/workflow/lib/registryCommit.ts +455 -0
  298. package/runtime/workflow/lib/release.ts +329 -0
  299. package/runtime/workflow/lib/releaseFinalize.ts +711 -0
  300. package/runtime/workflow/lib/releaseParameters.ts +248 -0
  301. package/runtime/workflow/lib/reporter.ts +502 -0
  302. package/runtime/workflow/lib/resultPaths.ts +49 -0
  303. package/runtime/workflow/lib/runtimeVersion.ts +28 -0
  304. package/runtime/workflow/lib/signer.ts +124 -0
  305. package/runtime/workflow/lib/signerIdentity.ts +22 -0
  306. package/runtime/workflow/lib/simulation.ts +415 -0
  307. package/runtime/workflow/lib/simulationCallers.ts +335 -0
  308. package/runtime/workflow/lib/sourceRpcPolicy.ts +41 -0
  309. package/runtime/workflow/lib/state.ts +25 -0
  310. package/runtime/workflow/lib/staticValidation.ts +142 -0
  311. package/runtime/workflow/lib/zksyncForkCapability.ts +80 -0
  312. package/runtime/workflow/lib/zksyncForkRunner.ts +505 -0
  313. package/runtime/workflow/reconcileExternal.ts +86 -0
  314. package/runtime/workflow/reconcileExternalRun.ts +88 -0
  315. package/runtime/workflow/releaseFinalize.ts +8 -0
  316. package/runtime/workflow/run.ts +1072 -0
  317. package/runtime/workflow/staticValidate.ts +23 -0
  318. package/runtime/workflow/steps/call.ts +10 -0
  319. package/runtime/workflow/steps/check.ts +10 -0
  320. package/runtime/workflow/steps/custom.ts +43 -0
  321. package/runtime/workflow/steps/deploy.ts +771 -0
  322. package/runtime/workflow/steps/upgrade.ts +598 -0
  323. package/runtime/workflow/steps/view.ts +10 -0
@@ -0,0 +1,441 @@
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.promoteContractInfoCandidates = exports.previewContractInfoCandidates = exports.stageContractInfoCandidate = exports.findExecutionCandidateAddress = exports.validateContractInfoCandidate = void 0;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const config_1 = require("./config");
10
+ const deployments_1 = require("./deployments");
11
+ const executionId_1 = require("./executionId");
12
+ const deploymentInfo_1 = require("./deploymentInfo");
13
+ const release_1 = require("./release");
14
+ const isRecord = (value) => {
15
+ return !!value && typeof value === "object" && !Array.isArray(value);
16
+ };
17
+ const safeNetworkFileId = (value) => {
18
+ const normalized = value.trim();
19
+ if (!/^[A-Za-z0-9][A-Za-z0-9_-]*$/.test(normalized)) {
20
+ throw new Error("network must contain only letters, numbers, underscores, or hyphens");
21
+ }
22
+ return normalized;
23
+ };
24
+ const relativeProjectPath = (root, absolutePath) => {
25
+ const relative = path_1.default.relative(root, absolutePath);
26
+ if (!relative || relative.startsWith("..") || path_1.default.isAbsolute(relative)) {
27
+ throw new Error("Candidate path must stay inside the project root: " + absolutePath);
28
+ }
29
+ return relative.split(path_1.default.sep).join("/");
30
+ };
31
+ const resolveProjectPath = (root, filePath) => {
32
+ const absolute = path_1.default.isAbsolute(filePath) ? path_1.default.resolve(filePath) : path_1.default.resolve(root, filePath);
33
+ const relative = path_1.default.relative(path_1.default.resolve(root), absolute);
34
+ if (!relative || relative.startsWith("..") || path_1.default.isAbsolute(relative)) {
35
+ throw new Error("Candidate path must stay inside the project root: " + filePath);
36
+ }
37
+ return absolute;
38
+ };
39
+ const writeExclusiveJson = (filePath, value) => {
40
+ fs_1.default.mkdirSync(path_1.default.dirname(filePath), { recursive: true });
41
+ let file;
42
+ try {
43
+ file = fs_1.default.openSync(filePath, "wx");
44
+ }
45
+ catch (error) {
46
+ if (isRecord(error) && String(error.code) === "EEXIST") {
47
+ throw new Error("Refusing to overwrite existing contractInfo backup: " + filePath);
48
+ }
49
+ throw error;
50
+ }
51
+ try {
52
+ fs_1.default.writeFileSync(file, JSON.stringify(value, null, 2) + "\n");
53
+ fs_1.default.fsyncSync(file);
54
+ }
55
+ catch (error) {
56
+ fs_1.default.closeSync(file);
57
+ fs_1.default.unlinkSync(filePath);
58
+ throw error;
59
+ }
60
+ fs_1.default.closeSync(file);
61
+ };
62
+ const validateReplacement = (value, label) => {
63
+ if (!isRecord(value))
64
+ throw new Error(label + " must be an object");
65
+ for (const key of ["network", "instanceId", "candidateKey", "candidateAddress"]) {
66
+ if (typeof value[key] !== "string" || !String(value[key]).trim()) {
67
+ throw new Error(label + "." + key + " must be a non-empty string");
68
+ }
69
+ }
70
+ return value;
71
+ };
72
+ const validateContractInfoCandidate = (value) => {
73
+ if (!isRecord(value))
74
+ throw new Error("contractInfo candidate must be an object");
75
+ if (value.version !== 1)
76
+ throw new Error("contractInfo candidate version must be 1");
77
+ if (value.status !== "pending" && value.status !== "promoted") {
78
+ throw new Error("contractInfo candidate status must be pending or promoted");
79
+ }
80
+ for (const key of [
81
+ "deploymentId",
82
+ "network",
83
+ "baseContractInfoHash",
84
+ "backupPath",
85
+ "createdAt",
86
+ "updatedAt",
87
+ ]) {
88
+ if (typeof value[key] !== "string" || !String(value[key]).trim()) {
89
+ throw new Error("contractInfo candidate " + key + " must be a non-empty string");
90
+ }
91
+ }
92
+ (0, executionId_1.validateExecutionId)(value.executionId, "contractInfo candidate executionId");
93
+ if (!Array.isArray(value.replacements)) {
94
+ throw new Error("contractInfo candidate replacements must be an array");
95
+ }
96
+ return {
97
+ ...value,
98
+ replacements: value.replacements.map((item, index) => (validateReplacement(item, "contractInfo candidate replacements[" + index + "]"))),
99
+ contractInfo: (0, deployments_1.validateContractInfo)(value.contractInfo),
100
+ };
101
+ };
102
+ exports.validateContractInfoCandidate = validateContractInfoCandidate;
103
+ const candidateRelativePath = (executionId) => {
104
+ return "contractInfo.pending." + (0, executionId_1.validateExecutionId)(executionId) + ".json";
105
+ };
106
+ const backupAbsolutePath = (options) => {
107
+ const network = safeNetworkFileId(options.network);
108
+ const executionId = (0, executionId_1.validateExecutionId)(options.executionId);
109
+ return path_1.default.join(options.taskDir, "results", network + "." + executionId + ".contractInfo.before.json");
110
+ };
111
+ const readCandidate = (filePath) => {
112
+ return (0, exports.validateContractInfoCandidate)((0, config_1.readJsonFile)(filePath));
113
+ };
114
+ const findExecutionCandidateAddress = (options) => {
115
+ const executionId = (0, executionId_1.validateExecutionId)(options.executionId);
116
+ const filePath = path_1.default.join(options.root, candidateRelativePath(executionId));
117
+ if (!fs_1.default.existsSync(filePath))
118
+ return undefined;
119
+ const candidate = readCandidate(filePath);
120
+ if (candidate.deploymentId !== options.deploymentId
121
+ || candidate.executionId !== executionId
122
+ || candidate.network !== options.network) {
123
+ throw new Error("contractInfo candidate does not match this verification execution");
124
+ }
125
+ const deployment = (0, deployments_1.resolveDeployment)(candidate.contractInfo, options.network, options.name);
126
+ if (!deployment)
127
+ return undefined;
128
+ const replacements = candidate.replacements.filter((replacement) => (replacement.network === options.network
129
+ && replacement.candidateKey === deployment.key
130
+ && replacement.candidateAddress.toLowerCase() === deployment.address.toLowerCase()));
131
+ if (replacements.length > 1) {
132
+ throw new Error("contractInfo candidate contains duplicate replacements for "
133
+ + options.network + "." + options.name);
134
+ }
135
+ return replacements.length === 1 ? deployment.address : undefined;
136
+ };
137
+ exports.findExecutionCandidateAddress = findExecutionCandidateAddress;
138
+ const pendingCandidateFiles = (root) => {
139
+ if (!fs_1.default.existsSync(root))
140
+ return [];
141
+ return fs_1.default.readdirSync(root)
142
+ .filter((name) => {
143
+ const prefix = "contractInfo.pending.";
144
+ const suffix = ".json";
145
+ if (!name.startsWith(prefix) || !name.endsWith(suffix))
146
+ return false;
147
+ try {
148
+ (0, executionId_1.validateExecutionId)(name.slice(prefix.length, -suffix.length));
149
+ return true;
150
+ }
151
+ catch {
152
+ return false;
153
+ }
154
+ })
155
+ .map((name) => path_1.default.join(root, name));
156
+ };
157
+ const assertNoPendingConflict = (root, candidatePath, network, instanceId, supersedeCandidatePath) => {
158
+ for (const filePath of pendingCandidateFiles(root)) {
159
+ if (path_1.default.resolve(filePath) === path_1.default.resolve(candidatePath)
160
+ || (supersedeCandidatePath && path_1.default.resolve(filePath) === path_1.default.resolve(supersedeCandidatePath)))
161
+ continue;
162
+ const candidate = readCandidate(filePath);
163
+ if (candidate.status !== "pending")
164
+ continue;
165
+ const conflict = candidate.replacements.some((replacement) => (replacement.network === network && replacement.instanceId === instanceId));
166
+ if (conflict) {
167
+ throw new Error("pending candidate conflict for " + network + "." + instanceId
168
+ + " in " + path_1.default.basename(filePath));
169
+ }
170
+ }
171
+ };
172
+ const archiveSupersededCandidate = (options, replacement) => {
173
+ if (!options.supersedeCandidatePath)
174
+ return undefined;
175
+ const source = resolveProjectPath(options.root, options.supersedeCandidatePath);
176
+ const archive = path_1.default.join(options.taskDir, "results", "archived-pending-candidates", path_1.default.basename(source));
177
+ const validateSuperseded = (filePath) => {
178
+ const candidate = readCandidate(filePath);
179
+ const matches = candidate.status === "pending"
180
+ && candidate.deploymentId === options.deploymentId
181
+ && candidate.network === options.network
182
+ && candidate.replacements.some((entry) => (entry.network === options.network
183
+ && entry.instanceId === replacement.instanceId
184
+ && entry.candidateAddress.toLowerCase() === replacement.address.toLowerCase()));
185
+ if (!matches)
186
+ throw new Error("Superseded pending candidate identity does not match");
187
+ };
188
+ if (!fs_1.default.existsSync(source)) {
189
+ if (!fs_1.default.existsSync(archive)) {
190
+ throw new Error("Trusted pending candidate disappeared before it could be superseded");
191
+ }
192
+ validateSuperseded(archive);
193
+ return relativeProjectPath(options.root, archive);
194
+ }
195
+ validateSuperseded(source);
196
+ if (fs_1.default.existsSync(archive)) {
197
+ throw new Error("Archived pending candidate already exists: " + archive);
198
+ }
199
+ fs_1.default.mkdirSync(path_1.default.dirname(archive), { recursive: true });
200
+ fs_1.default.renameSync(source, archive);
201
+ return relativeProjectPath(options.root, archive);
202
+ };
203
+ const replacementFor = (contractInfo, network, replacement) => {
204
+ const previous = (0, deployments_1.resolveDeployment)(contractInfo, network, replacement.instanceId);
205
+ const planned = (0, deployments_1.planDeploymentAddress)(contractInfo, network, replacement.instanceId, replacement.contractName, replacement.address);
206
+ return {
207
+ replacement: {
208
+ network,
209
+ instanceId: replacement.instanceId,
210
+ previousKey: previous?.key,
211
+ previousAddress: previous?.address,
212
+ candidateKey: planned.key,
213
+ candidateAddress: replacement.address,
214
+ },
215
+ contractInfo: planned.contractInfo,
216
+ };
217
+ };
218
+ const stageContractInfoCandidate = (options, replacementInput) => {
219
+ (0, executionId_1.validateExecutionId)(options.executionId);
220
+ return (0, deployments_1.withContractInfoLock)(options.root, () => {
221
+ const candidatePath = candidateRelativePath(options.executionId);
222
+ const candidateAbsolute = path_1.default.join(options.root, candidatePath);
223
+ const backupAbsolute = backupAbsolutePath(options);
224
+ const backupPath = relativeProjectPath(options.root, backupAbsolute);
225
+ assertNoPendingConflict(options.root, candidateAbsolute, options.network, replacementInput.instanceId, options.supersedeCandidatePath
226
+ ? resolveProjectPath(options.root, options.supersedeCandidatePath)
227
+ : undefined);
228
+ if (fs_1.default.existsSync(candidateAbsolute)) {
229
+ const existing = readCandidate(candidateAbsolute);
230
+ if (existing.status !== "pending"
231
+ || existing.deploymentId !== options.deploymentId
232
+ || existing.executionId !== options.executionId
233
+ || existing.network !== options.network
234
+ || existing.backupPath !== backupPath) {
235
+ throw new Error("Existing contractInfo candidate does not match this execution");
236
+ }
237
+ const duplicate = existing.replacements.find((item) => (item.network === options.network && item.instanceId === replacementInput.instanceId));
238
+ if (duplicate) {
239
+ if (duplicate.candidateAddress.toLowerCase() !== replacementInput.address.toLowerCase()
240
+ || duplicate.candidateKey !== (0, deployments_1.planDeploymentAddress)(existing.contractInfo, options.network, replacementInput.instanceId, replacementInput.contractName, replacementInput.address).key) {
241
+ throw new Error("Execution candidate already defines a different replacement for "
242
+ + options.network + "." + replacementInput.instanceId);
243
+ }
244
+ return {
245
+ candidate: existing,
246
+ candidatePath,
247
+ backupPath,
248
+ replacement: duplicate,
249
+ archivedCandidatePath: archiveSupersededCandidate(options, replacementInput),
250
+ };
251
+ }
252
+ const next = replacementFor(existing.contractInfo, options.network, replacementInput);
253
+ const updated = {
254
+ ...existing,
255
+ replacements: [...existing.replacements, next.replacement],
256
+ contractInfo: next.contractInfo,
257
+ updatedAt: new Date().toISOString(),
258
+ };
259
+ (0, config_1.writeJsonFile)(candidateAbsolute, updated);
260
+ return {
261
+ candidate: updated,
262
+ candidatePath,
263
+ backupPath,
264
+ replacement: next.replacement,
265
+ archivedCandidatePath: archiveSupersededCandidate(options, replacementInput),
266
+ };
267
+ }
268
+ const archivedCandidatePath = archiveSupersededCandidate(options, replacementInput);
269
+ const current = (0, deployments_1.cloneContractInfo)((0, deployments_1.loadContractInfo)(options.root, options.config));
270
+ const next = replacementFor(current, options.network, replacementInput);
271
+ writeExclusiveJson(backupAbsolute, current);
272
+ const now = new Date().toISOString();
273
+ const candidate = {
274
+ version: 1,
275
+ status: "pending",
276
+ deploymentId: options.deploymentId,
277
+ executionId: options.executionId,
278
+ network: options.network,
279
+ baseContractInfoHash: (0, release_1.hashValue)(current),
280
+ backupPath,
281
+ replacements: [next.replacement],
282
+ contractInfo: next.contractInfo,
283
+ createdAt: now,
284
+ updatedAt: now,
285
+ };
286
+ (0, config_1.writeJsonFile)(candidateAbsolute, candidate);
287
+ return {
288
+ candidate,
289
+ candidatePath,
290
+ backupPath,
291
+ replacement: next.replacement,
292
+ archivedCandidatePath,
293
+ };
294
+ });
295
+ };
296
+ exports.stageContractInfoCandidate = stageContractInfoCandidate;
297
+ const sameDeployment = (left, rightKey, rightAddress) => {
298
+ if (!left || !rightKey || !rightAddress) {
299
+ return left === undefined && rightKey === undefined && rightAddress === undefined;
300
+ }
301
+ return left.key === rightKey && left.address.toLowerCase() === rightAddress.toLowerCase();
302
+ };
303
+ const updateDeploymentRecordAfterPromotion = (root, candidate, contractInfo) => {
304
+ const resultDir = path_1.default.dirname(resolveProjectPath(root, candidate.backupPath));
305
+ const recordPath = path_1.default.join(resultDir, candidate.network + "." + candidate.executionId + ".deployment.json");
306
+ if (!fs_1.default.existsSync(recordPath))
307
+ return;
308
+ const record = (0, config_1.readJsonFile)(recordPath);
309
+ const changes = Array.isArray(record.changes)
310
+ ? record.changes.map((change) => {
311
+ if (!isRecord(change))
312
+ return change;
313
+ const promoted = candidate.replacements.some((replacement) => (replacement.instanceId === change.instanceId
314
+ && replacement.candidateAddress.toLowerCase() === String(change.candidateAddress || change.address).toLowerCase()));
315
+ return promoted ? { ...change, status: "applied" } : change;
316
+ })
317
+ : [];
318
+ const allApplied = changes.every((change) => isRecord(change) && change.status === "applied");
319
+ (0, config_1.writeJsonFile)(recordPath, {
320
+ ...record,
321
+ status: allApplied ? "applied" : record.status,
322
+ candidateStatus: "promoted",
323
+ promotedAt: new Date().toISOString(),
324
+ contractInfo: {
325
+ ...(isRecord(record.contractInfo) ? record.contractInfo : {}),
326
+ after: contractInfo,
327
+ },
328
+ changes,
329
+ updatedAt: new Date().toISOString(),
330
+ });
331
+ };
332
+ const promotionRecord = (root, candidate) => {
333
+ const resultDir = path_1.default.dirname(resolveProjectPath(root, candidate.backupPath));
334
+ const absolutePath = path_1.default.join(resultDir, `${candidate.network}.${candidate.executionId}.deployment.json`);
335
+ return { recordPath: relativeProjectPath(root, absolutePath) };
336
+ };
337
+ const prepareCandidatePromotion = (options) => {
338
+ const uniquePaths = [...new Set(options.candidatePaths)];
339
+ if (uniquePaths.length !== options.candidatePaths.length) {
340
+ throw new Error("Duplicate contractInfo candidate path in promotion request");
341
+ }
342
+ const current = (0, deployments_1.cloneContractInfo)((0, deployments_1.loadContractInfo)(options.root, options.config));
343
+ const currentHash = (0, release_1.hashValue)(current);
344
+ const selected = uniquePaths.map((candidatePath) => {
345
+ const absolutePath = resolveProjectPath(options.root, candidatePath);
346
+ const candidate = readCandidate(absolutePath);
347
+ if (candidate.status === "promoted"
348
+ && candidate.promotedContractInfoHash !== currentHash) {
349
+ throw new Error("promoted contractInfo candidate hash is invalid: " + candidatePath);
350
+ }
351
+ const backup = (0, deployments_1.validateContractInfo)((0, config_1.readJsonFile)(resolveProjectPath(options.root, candidate.backupPath)));
352
+ if ((0, release_1.hashValue)(backup) !== candidate.baseContractInfoHash) {
353
+ throw new Error("contractInfo candidate backup hash changed: " + candidatePath);
354
+ }
355
+ return { candidatePath, absolutePath, candidate, backup };
356
+ });
357
+ let merged = (0, deployments_1.cloneContractInfo)(current);
358
+ const selectedInstances = new Set();
359
+ for (const item of selected) {
360
+ for (const replacement of item.candidate.replacements) {
361
+ const instanceKey = replacement.network + "." + replacement.instanceId;
362
+ if (selectedInstances.has(instanceKey)) {
363
+ throw new Error("Multiple selected candidates replace " + instanceKey);
364
+ }
365
+ selectedInstances.add(instanceKey);
366
+ const backupDeployment = (0, deployments_1.resolveDeployment)(item.backup, replacement.network, replacement.instanceId);
367
+ if (!sameDeployment(backupDeployment, replacement.previousKey, replacement.previousAddress)) {
368
+ throw new Error("candidate backup does not match replacement metadata for " + instanceKey);
369
+ }
370
+ const candidateDeployment = (0, deployments_1.resolveDeployment)(item.candidate.contractInfo, replacement.network, replacement.instanceId);
371
+ if (!sameDeployment(candidateDeployment, replacement.candidateKey, replacement.candidateAddress)) {
372
+ throw new Error("candidate registry does not match replacement metadata for " + instanceKey);
373
+ }
374
+ const currentDeployment = (0, deployments_1.resolveDeployment)(current, replacement.network, replacement.instanceId);
375
+ const currentMatchesBase = sameDeployment(currentDeployment, replacement.previousKey, replacement.previousAddress);
376
+ const currentMatchesCandidate = sameDeployment(currentDeployment, replacement.candidateKey, replacement.candidateAddress);
377
+ if (!currentMatchesBase && !currentMatchesCandidate) {
378
+ throw new Error("candidate base conflict for " + instanceKey);
379
+ }
380
+ merged = (0, deployments_1.planDeploymentAddress)(merged, replacement.network, replacement.instanceId, replacement.candidateKey.split(":").at(-1) || replacement.candidateKey, replacement.candidateAddress).contractInfo;
381
+ }
382
+ }
383
+ return { contractInfo: merged, selected };
384
+ };
385
+ const previewContractInfoCandidates = (options) => {
386
+ return (0, deployments_1.withContractInfoLock)(options.root, () => {
387
+ const prepared = prepareCandidatePromotion(options);
388
+ return {
389
+ contractInfo: prepared.contractInfo,
390
+ candidates: prepared.selected.map((item) => ({
391
+ candidatePath: item.candidatePath,
392
+ candidate: item.candidate,
393
+ })),
394
+ };
395
+ });
396
+ };
397
+ exports.previewContractInfoCandidates = previewContractInfoCandidates;
398
+ const promoteContractInfoCandidates = (options) => {
399
+ if (options.candidatePaths.length === 0) {
400
+ throw new Error("At least one contractInfo candidate is required for promotion");
401
+ }
402
+ return (0, deployments_1.withContractInfoLock)(options.root, () => {
403
+ const prepared = prepareCandidatePromotion(options);
404
+ const merged = prepared.contractInfo;
405
+ const selected = prepared.selected;
406
+ const beforeHash = (0, release_1.hashValue)((0, deployments_1.loadContractInfo)(options.root, options.config));
407
+ const records = selected.map((item) => promotionRecord(options.root, item.candidate));
408
+ const deploymentInfo = (0, deploymentInfo_1.prepareDeploymentInfoFromRecords)({
409
+ root: options.root,
410
+ records,
411
+ expectedContractInfo: merged,
412
+ });
413
+ (0, deployments_1.saveContractInfo)(options.root, merged);
414
+ (0, deploymentInfo_1.saveDeploymentInfo)(options.root, deploymentInfo);
415
+ const promotedAt = new Date().toISOString();
416
+ const promotedHash = (0, release_1.hashValue)(merged);
417
+ const promoted = selected.map((item) => {
418
+ const candidate = {
419
+ ...item.candidate,
420
+ status: "promoted",
421
+ promotedAt,
422
+ promotedContractInfoHash: promotedHash,
423
+ updatedAt: promotedAt,
424
+ };
425
+ (0, config_1.writeJsonFile)(item.absolutePath, candidate);
426
+ updateDeploymentRecordAfterPromotion(options.root, candidate, merged);
427
+ return { candidatePath: item.candidatePath, candidate };
428
+ });
429
+ return {
430
+ contractInfo: merged,
431
+ beforeHash,
432
+ afterHash: promotedHash,
433
+ deploymentInfoPath: "deploymentInfo.json",
434
+ deploymentInfoHash: (0, release_1.hashValue)(deploymentInfo),
435
+ changedEntries: selected.flatMap((item) => item.candidate.replacements),
436
+ promoted,
437
+ };
438
+ });
439
+ };
440
+ exports.promoteContractInfoCandidates = promoteContractInfoCandidates;
441
+ //# sourceMappingURL=contractInfoCandidates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contractInfoCandidates.js","sourceRoot":"","sources":["../../../runtime/workflow/lib/contractInfoCandidates.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import type { Signer } from "ethers";
2
+ import { WorkflowStep } from "./parameters";
3
+ import type { WorkflowContext } from "../run";
4
+ export type Create2Scheme = "evm" | "zksync-eravm";
5
+ export interface Create2Options {
6
+ scheme: Create2Scheme;
7
+ factory: string;
8
+ salt: string;
9
+ controlledMulticall?: string;
10
+ create2ForwardValue?: string;
11
+ callForwardValue?: string;
12
+ expectedAddress?: string;
13
+ leadingZeroBytes?: number;
14
+ uupsPlaceholderImplementation?: string;
15
+ }
16
+ export interface PreparedWorkflowTransaction {
17
+ target: string;
18
+ value: string;
19
+ data: string;
20
+ operation: 0;
21
+ scheme?: "zksync-eravm";
22
+ factoryDeps?: string[];
23
+ }
24
+ export interface ControlledMulticallInnerCall {
25
+ target: string;
26
+ value: string;
27
+ data: string;
28
+ factoryDeps?: string[];
29
+ }
30
+ export interface PreparedControlledMulticallTransaction extends PreparedWorkflowTransaction {
31
+ method: "aggregate3" | "aggregate3Value";
32
+ calls: Array<{
33
+ target: string;
34
+ allowFailure: false;
35
+ value: string;
36
+ callData: string;
37
+ }>;
38
+ }
39
+ interface SentTransaction {
40
+ hash: string;
41
+ wait: () => Promise<unknown>;
42
+ }
43
+ export declare const prepareControlledMulticallTransaction: (controlledMulticall: string, inputCalls: ControlledMulticallInnerCall[], scheme?: Create2Scheme) => PreparedControlledMulticallTransaction;
44
+ export declare const sendPreparedWorkflowTransaction: (prepared: PreparedWorkflowTransaction, signer: Signer) => Promise<SentTransaction>;
45
+ export declare const sendPreparedControlledMulticallTransaction: (prepared: PreparedControlledMulticallTransaction, signer: Signer) => Promise<SentTransaction>;
46
+ export declare const resolveCreate2Options: (context: WorkflowContext, step: WorkflowStep) => Create2Options | undefined;
47
+ export declare const hasLeadingZeroBytes: (address: string, leadingZeroBytes: number) => boolean;
48
+ export declare const assertCreate2AddressPolicy: (label: string, predictedAddress: string, options: Pick<Create2Options, "expectedAddress" | "leadingZeroBytes">) => void;
49
+ export {};