gate-evm-tools 1.0.28 → 1.0.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (618) hide show
  1. package/README.md +16 -1
  2. package/bin/cli.js +3 -0
  3. package/bin/delivery.cjs +51 -0
  4. package/bin/manifest-bootstrap.js +4 -15
  5. package/bin/workflow.cjs +1 -1
  6. package/dist/commands/plan/file-store.d.ts.map +1 -0
  7. package/dist/commands/plan/generate-deployment.d.ts +48 -0
  8. package/dist/commands/plan/generate-deployment.d.ts.map +1 -0
  9. package/dist/commands/plan/generate-deployment.js +211 -0
  10. package/dist/commands/plan/generate-deployment.js.map +1 -0
  11. package/dist/commands/plan/helpers.d.ts.map +1 -0
  12. package/dist/commands/plan/index.d.ts +3 -0
  13. package/dist/commands/plan/index.d.ts.map +1 -0
  14. package/dist/commands/plan/index.js +88 -0
  15. package/dist/commands/plan/index.js.map +1 -0
  16. package/dist/commands/sync.js +1 -1
  17. package/dist/commands/sync.js.map +1 -1
  18. package/dist/core/BytecodeChecker.d.ts.map +1 -1
  19. package/dist/core/BytecodeChecker.js +27 -8
  20. package/dist/core/BytecodeChecker.js.map +1 -1
  21. package/dist/core/preparation/artifacts.d.ts +2 -0
  22. package/dist/core/preparation/artifacts.d.ts.map +1 -1
  23. package/dist/core/preparation/artifacts.js +9 -3
  24. package/dist/core/preparation/artifacts.js.map +1 -1
  25. package/dist/core/preparation/evm.d.ts +38 -2
  26. package/dist/core/preparation/evm.d.ts.map +1 -1
  27. package/dist/core/preparation/evm.js +104 -32
  28. package/dist/core/preparation/evm.js.map +1 -1
  29. package/dist/core/preparation/evmManifestSync.d.ts +63 -0
  30. package/dist/core/preparation/evmManifestSync.d.ts.map +1 -0
  31. package/dist/core/preparation/evmManifestSync.js +146 -0
  32. package/dist/core/preparation/evmManifestSync.js.map +1 -0
  33. package/dist/core/preparation/index.d.ts +40 -2
  34. package/dist/core/preparation/index.d.ts.map +1 -1
  35. package/dist/core/preparation/index.js +3 -3
  36. package/dist/core/preparation/index.js.map +1 -1
  37. package/dist/core/preparation/manifest.d.ts +15 -3
  38. package/dist/core/preparation/manifest.d.ts.map +1 -1
  39. package/dist/core/preparation/manifest.js +21 -26
  40. package/dist/core/preparation/manifest.js.map +1 -1
  41. package/dist/core/preparation/normalize.d.ts.map +1 -1
  42. package/dist/core/preparation/normalize.js +14 -9
  43. package/dist/core/preparation/normalize.js.map +1 -1
  44. package/dist/core/preparation/types.d.ts +7 -2
  45. package/dist/core/preparation/types.d.ts.map +1 -1
  46. package/dist/custody/hardhat-runtime.d.ts.map +1 -1
  47. package/dist/custody/hardhat-runtime.js +2 -0
  48. package/dist/custody/hardhat-runtime.js.map +1 -1
  49. package/dist/custody/hardhat.d.ts +1 -0
  50. package/dist/custody/hardhat.d.ts.map +1 -1
  51. package/dist/custody/hardhat.js +1 -0
  52. package/dist/custody/hardhat.js.map +1 -1
  53. package/dist/custody/index.d.ts +1 -0
  54. package/dist/custody/index.d.ts.map +1 -1
  55. package/dist/custody/index.js +1 -0
  56. package/dist/custody/index.js.map +1 -1
  57. package/dist/custody/provider-wait.d.ts +13 -0
  58. package/dist/custody/provider-wait.d.ts.map +1 -0
  59. package/dist/custody/provider-wait.js +78 -0
  60. package/dist/custody/provider-wait.js.map +1 -0
  61. package/dist/delivery/policy.d.ts +6 -0
  62. package/dist/delivery/policy.d.ts.map +1 -0
  63. package/dist/delivery/policy.js +24 -0
  64. package/dist/delivery/policy.js.map +1 -0
  65. package/dist/index.d.ts.map +1 -1
  66. package/dist/index.js +5 -0
  67. package/dist/index.js.map +1 -1
  68. package/dist/sync/index.d.ts +15 -0
  69. package/dist/sync/index.d.ts.map +1 -1
  70. package/dist/sync/index.js +8 -0
  71. package/dist/sync/index.js.map +1 -1
  72. package/dist/workflow/index.d.ts +6 -1
  73. package/dist/workflow/index.d.ts.map +1 -1
  74. package/dist/workflow/index.js +4 -0
  75. package/dist/workflow/index.js.map +1 -1
  76. package/dist-cjs/core/BytecodeChecker.js +526 -0
  77. package/dist-cjs/core/BytecodeChecker.js.map +1 -0
  78. package/dist-cjs/core/legacyProxyArtifact.js +42 -0
  79. package/dist-cjs/core/legacyProxyArtifact.js.map +1 -0
  80. package/dist-cjs/core/preparation/artifacts.js +11 -4
  81. package/dist-cjs/core/preparation/artifacts.js.map +1 -1
  82. package/dist-cjs/core/preparation/evm.js +105 -32
  83. package/dist-cjs/core/preparation/evm.js.map +1 -1
  84. package/dist-cjs/core/preparation/evmManifestSync.js +155 -0
  85. package/dist-cjs/core/preparation/evmManifestSync.js.map +1 -0
  86. package/dist-cjs/core/preparation/index.js +3 -3
  87. package/dist-cjs/core/preparation/index.js.map +1 -1
  88. package/dist-cjs/core/preparation/manifest.js +23 -28
  89. package/dist-cjs/core/preparation/manifest.js.map +1 -1
  90. package/dist-cjs/core/preparation/normalize.js +14 -9
  91. package/dist-cjs/core/preparation/normalize.js.map +1 -1
  92. package/dist-cjs/custody/hardhat-runtime.js +2 -0
  93. package/dist-cjs/custody/hardhat-runtime.js.map +1 -1
  94. package/dist-cjs/custody/hardhat.js +3 -1
  95. package/dist-cjs/custody/hardhat.js.map +1 -1
  96. package/dist-cjs/custody/index.js +3 -1
  97. package/dist-cjs/custody/index.js.map +1 -1
  98. package/dist-cjs/custody/provider-wait.js +81 -0
  99. package/dist-cjs/custody/provider-wait.js.map +1 -0
  100. package/dist-cjs/delivery/policy.js +29 -0
  101. package/dist-cjs/delivery/policy.js.map +1 -0
  102. package/dist-cjs/sync/index.js +8 -0
  103. package/dist-cjs/sync/index.js.map +1 -1
  104. package/dist-cjs/workflow/index.js +12 -1
  105. package/dist-cjs/workflow/index.js.map +1 -1
  106. package/dist-runtime/config/openzeppelin.d.ts +2 -1
  107. package/dist-runtime/config/openzeppelin.js +2 -19
  108. package/dist-runtime/config/openzeppelin.js.map +1 -1
  109. package/dist-runtime/delivery/abi.d.ts +14 -0
  110. package/dist-runtime/delivery/abi.js +161 -0
  111. package/dist-runtime/delivery/abi.js.map +1 -0
  112. package/dist-runtime/delivery/aggregate-bootstrap.d.ts +12 -0
  113. package/dist-runtime/delivery/aggregate-bootstrap.js +40 -0
  114. package/dist-runtime/delivery/aggregate-bootstrap.js.map +1 -0
  115. package/dist-runtime/delivery/aggregate-channel.d.ts +28 -0
  116. package/dist-runtime/delivery/aggregate-channel.js +155 -0
  117. package/dist-runtime/delivery/aggregate-channel.js.map +1 -0
  118. package/dist-runtime/delivery/aggregate-inputs.d.ts +168 -0
  119. package/dist-runtime/delivery/aggregate-inputs.js +57 -0
  120. package/dist-runtime/delivery/aggregate-inputs.js.map +1 -0
  121. package/dist-runtime/delivery/aggregate-source.d.ts +25 -0
  122. package/dist-runtime/delivery/aggregate-source.js +79 -0
  123. package/dist-runtime/delivery/aggregate-source.js.map +1 -0
  124. package/dist-runtime/delivery/aggregate-worker.d.ts +1 -0
  125. package/dist-runtime/delivery/aggregate-worker.js +191 -0
  126. package/dist-runtime/delivery/aggregate-worker.js.map +1 -0
  127. package/dist-runtime/delivery/aggregate.d.ts +51 -0
  128. package/dist-runtime/delivery/aggregate.js +190 -0
  129. package/dist-runtime/delivery/aggregate.js.map +1 -0
  130. package/dist-runtime/delivery/bindings.d.ts +21 -0
  131. package/dist-runtime/delivery/bindings.js +53 -0
  132. package/dist-runtime/delivery/bindings.js.map +1 -0
  133. package/dist-runtime/delivery/check-code.d.ts +19 -0
  134. package/dist-runtime/delivery/check-code.js +63 -0
  135. package/dist-runtime/delivery/check-code.js.map +1 -0
  136. package/dist-runtime/delivery/closure-format.d.ts +77 -0
  137. package/dist-runtime/delivery/closure-format.js +225 -0
  138. package/dist-runtime/delivery/closure-format.js.map +1 -0
  139. package/dist-runtime/delivery/codec-pin.d.ts +2 -0
  140. package/dist-runtime/delivery/codec-pin.js +7 -0
  141. package/dist-runtime/delivery/codec-pin.js.map +1 -0
  142. package/dist-runtime/delivery/codec.d.ts +19 -0
  143. package/dist-runtime/delivery/codec.js +73 -0
  144. package/dist-runtime/delivery/codec.js.map +1 -0
  145. package/dist-runtime/delivery/compiler-dependency-pins.d.ts +7 -0
  146. package/dist-runtime/delivery/compiler-dependency-pins.js +1689 -0
  147. package/dist-runtime/delivery/compiler-dependency-pins.js.map +1 -0
  148. package/dist-runtime/delivery/compiler-files.d.ts +40 -0
  149. package/dist-runtime/delivery/compiler-files.js +220 -0
  150. package/dist-runtime/delivery/compiler-files.js.map +1 -0
  151. package/dist-runtime/delivery/compiler-io.d.ts +2 -0
  152. package/dist-runtime/delivery/compiler-io.js +13 -0
  153. package/dist-runtime/delivery/compiler-io.js.map +1 -0
  154. package/dist-runtime/delivery/compiler-pins.d.ts +10 -0
  155. package/dist-runtime/delivery/compiler-pins.js +147 -0
  156. package/dist-runtime/delivery/compiler-pins.js.map +1 -0
  157. package/dist-runtime/delivery/compiler.d.ts +188 -0
  158. package/dist-runtime/delivery/compiler.js +850 -0
  159. package/dist-runtime/delivery/compiler.js.map +1 -0
  160. package/dist-runtime/delivery/config.d.ts +48 -0
  161. package/dist-runtime/delivery/config.js +99 -0
  162. package/dist-runtime/delivery/config.js.map +1 -0
  163. package/dist-runtime/delivery/configuration-definition.d.ts +22 -0
  164. package/dist-runtime/delivery/configuration-definition.js +316 -0
  165. package/dist-runtime/delivery/configuration-definition.js.map +1 -0
  166. package/dist-runtime/delivery/configuration-hre.d.ts +17 -0
  167. package/dist-runtime/delivery/configuration-hre.js +198 -0
  168. package/dist-runtime/delivery/configuration-hre.js.map +1 -0
  169. package/dist-runtime/delivery/configuration-runtime.d.ts +36 -0
  170. package/dist-runtime/delivery/configuration-runtime.js +248 -0
  171. package/dist-runtime/delivery/configuration-runtime.js.map +1 -0
  172. package/dist-runtime/delivery/configuration.d.ts +35 -0
  173. package/dist-runtime/delivery/configuration.js +83 -0
  174. package/dist-runtime/delivery/configuration.js.map +1 -0
  175. package/dist-runtime/delivery/create2.d.ts +3 -0
  176. package/dist-runtime/delivery/create2.js +48 -0
  177. package/dist-runtime/delivery/create2.js.map +1 -0
  178. package/dist-runtime/delivery/custom-closure.d.ts +27 -0
  179. package/dist-runtime/delivery/custom-closure.js +818 -0
  180. package/dist-runtime/delivery/custom-closure.js.map +1 -0
  181. package/dist-runtime/delivery/custom-format.d.ts +35 -0
  182. package/dist-runtime/delivery/custom-format.js +383 -0
  183. package/dist-runtime/delivery/custom-format.js.map +1 -0
  184. package/dist-runtime/delivery/custom.d.ts +32 -0
  185. package/dist-runtime/delivery/custom.js +158 -0
  186. package/dist-runtime/delivery/custom.js.map +1 -0
  187. package/dist-runtime/delivery/data.d.ts +7 -0
  188. package/dist-runtime/delivery/data.js +86 -0
  189. package/dist-runtime/delivery/data.js.map +1 -0
  190. package/dist-runtime/delivery/development.d.ts +91 -0
  191. package/dist-runtime/delivery/development.js +395 -0
  192. package/dist-runtime/delivery/development.js.map +1 -0
  193. package/dist-runtime/delivery/engine.d.ts +9 -0
  194. package/dist-runtime/delivery/engine.js +23 -0
  195. package/dist-runtime/delivery/engine.js.map +1 -0
  196. package/dist-runtime/delivery/eoa-observation.d.ts +43 -0
  197. package/dist-runtime/delivery/eoa-observation.js +145 -0
  198. package/dist-runtime/delivery/eoa-observation.js.map +1 -0
  199. package/dist-runtime/delivery/eoa-signed.d.ts +2 -0
  200. package/dist-runtime/delivery/eoa-signed.js +74 -0
  201. package/dist-runtime/delivery/eoa-signed.js.map +1 -0
  202. package/dist-runtime/delivery/eoa.d.ts +81 -0
  203. package/dist-runtime/delivery/eoa.js +274 -0
  204. package/dist-runtime/delivery/eoa.js.map +1 -0
  205. package/dist-runtime/delivery/execution-db.d.ts +20 -0
  206. package/dist-runtime/delivery/execution-db.js +153 -0
  207. package/dist-runtime/delivery/execution-db.js.map +1 -0
  208. package/dist-runtime/delivery/execution-files.d.ts +9 -0
  209. package/dist-runtime/delivery/execution-files.js +138 -0
  210. package/dist-runtime/delivery/execution-files.js.map +1 -0
  211. package/dist-runtime/delivery/execution-model.d.ts +56 -0
  212. package/dist-runtime/delivery/execution-model.js +66 -0
  213. package/dist-runtime/delivery/execution-model.js.map +1 -0
  214. package/dist-runtime/delivery/execution-store.d.ts +48 -0
  215. package/dist-runtime/delivery/execution-store.js +361 -0
  216. package/dist-runtime/delivery/execution-store.js.map +1 -0
  217. package/dist-runtime/delivery/existing-code.d.ts +37 -0
  218. package/dist-runtime/delivery/existing-code.js +75 -0
  219. package/dist-runtime/delivery/existing-code.js.map +1 -0
  220. package/dist-runtime/delivery/export.d.ts +51 -0
  221. package/dist-runtime/delivery/export.js +69 -0
  222. package/dist-runtime/delivery/export.js.map +1 -0
  223. package/dist-runtime/delivery/forkAudit.d.ts +119 -0
  224. package/dist-runtime/delivery/forkAudit.js +473 -0
  225. package/dist-runtime/delivery/forkAudit.js.map +1 -0
  226. package/dist-runtime/delivery/hardhat.d.ts +3 -0
  227. package/dist-runtime/delivery/hardhat.js +45 -0
  228. package/dist-runtime/delivery/hardhat.js.map +1 -0
  229. package/dist-runtime/delivery/history-registration.d.ts +2 -0
  230. package/dist-runtime/delivery/history-registration.js +17 -0
  231. package/dist-runtime/delivery/history-registration.js.map +1 -0
  232. package/dist-runtime/delivery/identities.d.ts +22 -0
  233. package/dist-runtime/delivery/identities.js +97 -0
  234. package/dist-runtime/delivery/identities.js.map +1 -0
  235. package/dist-runtime/delivery/input-files.d.ts +5 -0
  236. package/dist-runtime/delivery/input-files.js +70 -0
  237. package/dist-runtime/delivery/input-files.js.map +1 -0
  238. package/dist-runtime/delivery/inputs.d.ts +62 -0
  239. package/dist-runtime/delivery/inputs.js +187 -0
  240. package/dist-runtime/delivery/inputs.js.map +1 -0
  241. package/dist-runtime/delivery/journal.d.ts +35 -0
  242. package/dist-runtime/delivery/journal.js +270 -0
  243. package/dist-runtime/delivery/journal.js.map +1 -0
  244. package/dist-runtime/delivery/manifest.d.ts +14 -0
  245. package/dist-runtime/delivery/manifest.js +68 -0
  246. package/dist-runtime/delivery/manifest.js.map +1 -0
  247. package/dist-runtime/delivery/materialization.d.ts +20 -0
  248. package/dist-runtime/delivery/materialization.js +138 -0
  249. package/dist-runtime/delivery/materialization.js.map +1 -0
  250. package/dist-runtime/delivery/observations.d.ts +31 -0
  251. package/dist-runtime/delivery/observations.js +38 -0
  252. package/dist-runtime/delivery/observations.js.map +1 -0
  253. package/dist-runtime/delivery/parameters.d.ts +53 -0
  254. package/dist-runtime/delivery/parameters.js +257 -0
  255. package/dist-runtime/delivery/parameters.js.map +1 -0
  256. package/dist-runtime/delivery/pending.d.ts +70 -0
  257. package/dist-runtime/delivery/pending.js +99 -0
  258. package/dist-runtime/delivery/pending.js.map +1 -0
  259. package/dist-runtime/delivery/plan.d.ts +50 -0
  260. package/dist-runtime/delivery/plan.js +209 -0
  261. package/dist-runtime/delivery/plan.js.map +1 -0
  262. package/dist-runtime/delivery/planning.d.ts +81 -0
  263. package/dist-runtime/delivery/planning.js +302 -0
  264. package/dist-runtime/delivery/planning.js.map +1 -0
  265. package/dist-runtime/delivery/policy.d.ts +4 -0
  266. package/dist-runtime/delivery/policy.js +9 -0
  267. package/dist-runtime/delivery/policy.js.map +1 -0
  268. package/dist-runtime/delivery/preparation.d.ts +6 -0
  269. package/dist-runtime/delivery/preparation.js +158 -0
  270. package/dist-runtime/delivery/preparation.js.map +1 -0
  271. package/dist-runtime/delivery/production-environment.d.ts +2 -0
  272. package/dist-runtime/delivery/production-environment.js +12 -0
  273. package/dist-runtime/delivery/production-environment.js.map +1 -0
  274. package/dist-runtime/delivery/production-finalization.d.ts +86 -0
  275. package/dist-runtime/delivery/production-finalization.js +278 -0
  276. package/dist-runtime/delivery/production-finalization.js.map +1 -0
  277. package/dist-runtime/delivery/production.d.ts +461 -0
  278. package/dist-runtime/delivery/production.js +396 -0
  279. package/dist-runtime/delivery/production.js.map +1 -0
  280. package/dist-runtime/delivery/project-files.d.ts +8 -0
  281. package/dist-runtime/delivery/project-files.js +82 -0
  282. package/dist-runtime/delivery/project-files.js.map +1 -0
  283. package/dist-runtime/delivery/project.d.ts +15 -0
  284. package/dist-runtime/delivery/project.js +157 -0
  285. package/dist-runtime/delivery/project.js.map +1 -0
  286. package/dist-runtime/delivery/protocol.d.ts +49 -0
  287. package/dist-runtime/delivery/protocol.js +112 -0
  288. package/dist-runtime/delivery/protocol.js.map +1 -0
  289. package/dist-runtime/delivery/references.d.ts +19 -0
  290. package/dist-runtime/delivery/references.js +84 -0
  291. package/dist-runtime/delivery/references.js.map +1 -0
  292. package/dist-runtime/delivery/release-graph.d.ts +93 -0
  293. package/dist-runtime/delivery/release-graph.js +106 -0
  294. package/dist-runtime/delivery/release-graph.js.map +1 -0
  295. package/dist-runtime/delivery/release-history-capture.d.ts +7 -0
  296. package/dist-runtime/delivery/release-history-capture.js +76 -0
  297. package/dist-runtime/delivery/release-history-capture.js.map +1 -0
  298. package/dist-runtime/delivery/release-history.d.ts +43 -0
  299. package/dist-runtime/delivery/release-history.js +246 -0
  300. package/dist-runtime/delivery/release-history.js.map +1 -0
  301. package/dist-runtime/delivery/release.d.ts +172 -0
  302. package/dist-runtime/delivery/release.js +209 -0
  303. package/dist-runtime/delivery/release.js.map +1 -0
  304. package/dist-runtime/delivery/safe-manifest.d.ts +9 -0
  305. package/dist-runtime/delivery/safe-manifest.js +13 -0
  306. package/dist-runtime/delivery/safe-manifest.js.map +1 -0
  307. package/dist-runtime/delivery/safe-observation.d.ts +30 -0
  308. package/dist-runtime/delivery/safe-observation.js +487 -0
  309. package/dist-runtime/delivery/safe-observation.js.map +1 -0
  310. package/dist-runtime/delivery/safe-prepare.d.ts +13 -0
  311. package/dist-runtime/delivery/safe-prepare.js +81 -0
  312. package/dist-runtime/delivery/safe-prepare.js.map +1 -0
  313. package/dist-runtime/delivery/safe.d.ts +91 -0
  314. package/dist-runtime/delivery/safe.js +243 -0
  315. package/dist-runtime/delivery/safe.js.map +1 -0
  316. package/dist-runtime/delivery/same-fork-baseline.d.ts +8 -0
  317. package/dist-runtime/delivery/same-fork-baseline.js +20 -0
  318. package/dist-runtime/delivery/same-fork-baseline.js.map +1 -0
  319. package/dist-runtime/delivery/setup.d.ts +31 -0
  320. package/dist-runtime/delivery/setup.js +215 -0
  321. package/dist-runtime/delivery/setup.js.map +1 -0
  322. package/dist-runtime/delivery/source.d.ts +41 -0
  323. package/dist-runtime/delivery/source.js +137 -0
  324. package/dist-runtime/delivery/source.js.map +1 -0
  325. package/dist-runtime/delivery/target-fields.d.ts +2 -0
  326. package/dist-runtime/delivery/target-fields.js +11 -0
  327. package/dist-runtime/delivery/target-fields.js.map +1 -0
  328. package/dist-runtime/delivery/validation.d.ts +9 -0
  329. package/dist-runtime/delivery/validation.js +150 -0
  330. package/dist-runtime/delivery/validation.js.map +1 -0
  331. package/dist-runtime/delivery/verification.d.ts +16 -0
  332. package/dist-runtime/delivery/verification.js +65 -0
  333. package/dist-runtime/delivery/verification.js.map +1 -0
  334. package/dist-runtime/migrate.js +1 -0
  335. package/dist-runtime/migrate.js.map +1 -1
  336. package/dist-runtime/miner/binary.d.ts +2 -0
  337. package/dist-runtime/miner/binary.js +54 -0
  338. package/dist-runtime/miner/binary.js.map +1 -0
  339. package/dist-runtime/miner/cli.d.ts +1 -0
  340. package/dist-runtime/miner/cli.js +131 -0
  341. package/dist-runtime/miner/cli.js.map +1 -0
  342. package/dist-runtime/miner/index.d.ts +5 -0
  343. package/dist-runtime/miner/index.js +13 -0
  344. package/dist-runtime/miner/index.js.map +1 -0
  345. package/dist-runtime/miner/request.d.ts +7 -0
  346. package/dist-runtime/miner/request.js +73 -0
  347. package/dist-runtime/miner/request.js.map +1 -0
  348. package/dist-runtime/miner/runner.d.ts +2 -0
  349. package/dist-runtime/miner/runner.js +131 -0
  350. package/dist-runtime/miner/runner.js.map +1 -0
  351. package/dist-runtime/miner/types.d.ts +89 -0
  352. package/dist-runtime/miner/types.js +3 -0
  353. package/dist-runtime/miner/types.js.map +1 -0
  354. package/dist-runtime/miner/verify.d.ts +2 -0
  355. package/dist-runtime/miner/verify.js +75 -0
  356. package/dist-runtime/miner/verify.js.map +1 -0
  357. package/dist-runtime/runtime-identity.json +2 -2
  358. package/dist-runtime/vendor/plan-codec/index.cjs +820 -0
  359. package/dist-runtime/vendor/plan-codec/index.d.cts +32 -0
  360. package/dist-runtime/vendor/plan-codec/provenance.json +24 -0
  361. package/dist-runtime/workflow/engine.d.ts +14 -0
  362. package/dist-runtime/workflow/engine.js +160 -0
  363. package/dist-runtime/workflow/engine.js.map +1 -0
  364. package/dist-runtime/workflow/lib/authority.d.ts +6 -3
  365. package/dist-runtime/workflow/lib/authority.js.map +1 -1
  366. package/dist-runtime/workflow/lib/calls.d.ts +1 -1
  367. package/dist-runtime/workflow/lib/calls.js +43 -34
  368. package/dist-runtime/workflow/lib/calls.js.map +1 -1
  369. package/dist-runtime/workflow/lib/canonicalData.d.ts +8 -0
  370. package/dist-runtime/workflow/lib/canonicalData.js +68 -0
  371. package/dist-runtime/workflow/lib/canonicalData.js.map +1 -0
  372. package/dist-runtime/workflow/lib/config.d.ts +3 -1
  373. package/dist-runtime/workflow/lib/config.js.map +1 -1
  374. package/dist-runtime/workflow/lib/context.d.ts +76 -0
  375. package/dist-runtime/workflow/lib/context.js +3 -0
  376. package/dist-runtime/workflow/lib/context.js.map +1 -0
  377. package/dist-runtime/workflow/lib/create2.d.ts +1 -1
  378. package/dist-runtime/workflow/lib/create2.js +9 -12
  379. package/dist-runtime/workflow/lib/create2.js.map +1 -1
  380. package/dist-runtime/workflow/lib/deployments.d.ts +5 -5
  381. package/dist-runtime/workflow/lib/deployments.js +5 -13
  382. package/dist-runtime/workflow/lib/deployments.js.map +1 -1
  383. package/dist-runtime/workflow/lib/evidencePorts.d.ts +55 -0
  384. package/dist-runtime/workflow/lib/evidencePorts.js +3 -0
  385. package/dist-runtime/workflow/lib/evidencePorts.js.map +1 -0
  386. package/dist-runtime/workflow/lib/executionPlan.d.ts +4 -42
  387. package/dist-runtime/workflow/lib/executionPlan.js +15 -210
  388. package/dist-runtime/workflow/lib/executionPlan.js.map +1 -1
  389. package/dist-runtime/workflow/lib/gateTool.d.ts +6 -2
  390. package/dist-runtime/workflow/lib/gateTool.js +20 -10
  391. package/dist-runtime/workflow/lib/gateTool.js.map +1 -1
  392. package/dist-runtime/workflow/lib/gateToolSync.d.ts +1 -1
  393. package/dist-runtime/workflow/lib/gateToolSync.js +3 -2
  394. package/dist-runtime/workflow/lib/gateToolSync.js.map +1 -1
  395. package/dist-runtime/workflow/lib/operationNames.d.ts +3 -0
  396. package/dist-runtime/workflow/lib/operationNames.js +34 -0
  397. package/dist-runtime/workflow/lib/operationNames.js.map +1 -0
  398. package/dist-runtime/workflow/lib/parameters.d.ts +1 -1
  399. package/dist-runtime/workflow/lib/parameters.js +6 -22
  400. package/dist-runtime/workflow/lib/parameters.js.map +1 -1
  401. package/dist-runtime/workflow/lib/pendingDeploymentReuse.js +18 -52
  402. package/dist-runtime/workflow/lib/pendingDeploymentReuse.js.map +1 -1
  403. package/dist-runtime/workflow/lib/pendingUupsBinding.d.ts +42 -0
  404. package/dist-runtime/workflow/lib/pendingUupsBinding.js +39 -0
  405. package/dist-runtime/workflow/lib/pendingUupsBinding.js.map +1 -0
  406. package/dist-runtime/workflow/lib/plan.d.ts +55 -0
  407. package/dist-runtime/workflow/lib/plan.js +324 -0
  408. package/dist-runtime/workflow/lib/plan.js.map +1 -0
  409. package/dist-runtime/workflow/lib/planCli.d.ts +14 -0
  410. package/dist-runtime/workflow/lib/planCli.js +279 -0
  411. package/dist-runtime/workflow/lib/planCli.js.map +1 -0
  412. package/dist-runtime/workflow/lib/preparationEvidence.d.ts +4 -0
  413. package/dist-runtime/workflow/lib/preparationEvidence.js +19 -0
  414. package/dist-runtime/workflow/lib/preparationEvidence.js.map +1 -0
  415. package/dist-runtime/workflow/lib/proxy.d.ts +3 -2
  416. package/dist-runtime/workflow/lib/proxy.js +3 -4
  417. package/dist-runtime/workflow/lib/proxy.js.map +1 -1
  418. package/dist-runtime/workflow/lib/runtime.d.ts +6 -0
  419. package/dist-runtime/workflow/lib/runtime.js +48 -0
  420. package/dist-runtime/workflow/lib/runtime.js.map +1 -0
  421. package/dist-runtime/workflow/lib/signer.d.ts +3 -2
  422. package/dist-runtime/workflow/lib/signer.js +18 -18
  423. package/dist-runtime/workflow/lib/signer.js.map +1 -1
  424. package/dist-runtime/workflow/lib/simulation.d.ts +13 -6
  425. package/dist-runtime/workflow/lib/simulation.js +39 -31
  426. package/dist-runtime/workflow/lib/simulation.js.map +1 -1
  427. package/dist-runtime/workflow/lib/state.js +3 -3
  428. package/dist-runtime/workflow/lib/state.js.map +1 -1
  429. package/dist-runtime/workflow/lib/staticValidation.d.ts +28 -0
  430. package/dist-runtime/workflow/lib/staticValidation.js +54 -10
  431. package/dist-runtime/workflow/lib/staticValidation.js.map +1 -1
  432. package/dist-runtime/workflow/lib/transactionPlanner.d.ts +62 -0
  433. package/dist-runtime/workflow/lib/transactionPlanner.js +258 -0
  434. package/dist-runtime/workflow/lib/transactionPlanner.js.map +1 -0
  435. package/dist-runtime/workflow/lib/typedValue.d.ts +3 -0
  436. package/dist-runtime/workflow/lib/typedValue.js +76 -0
  437. package/dist-runtime/workflow/lib/typedValue.js.map +1 -0
  438. package/dist-runtime/workflow/lib/validation.d.ts +23 -0
  439. package/dist-runtime/workflow/lib/validation.js +15 -0
  440. package/dist-runtime/workflow/lib/validation.js.map +1 -0
  441. package/dist-runtime/workflow/planAdd.d.ts +1 -0
  442. package/dist-runtime/workflow/planAdd.js +11 -0
  443. package/dist-runtime/workflow/planAdd.js.map +1 -0
  444. package/dist-runtime/workflow/planRead.d.ts +1 -0
  445. package/dist-runtime/workflow/planRead.js +11 -0
  446. package/dist-runtime/workflow/planRead.js.map +1 -0
  447. package/dist-runtime/workflow/planStatus.d.ts +1 -0
  448. package/dist-runtime/workflow/planStatus.js +11 -0
  449. package/dist-runtime/workflow/planStatus.js.map +1 -0
  450. package/dist-runtime/workflow/planWrite.d.ts +1 -0
  451. package/dist-runtime/workflow/planWrite.js +11 -0
  452. package/dist-runtime/workflow/planWrite.js.map +1 -0
  453. package/dist-runtime/workflow/run.d.ts +1 -40
  454. package/dist-runtime/workflow/run.js +68 -136
  455. package/dist-runtime/workflow/run.js.map +1 -1
  456. package/dist-runtime/workflow/staticValidate.js +8 -3
  457. package/dist-runtime/workflow/staticValidate.js.map +1 -1
  458. package/dist-runtime/workflow/steps/call.d.ts +1 -1
  459. package/dist-runtime/workflow/steps/check.d.ts +1 -1
  460. package/dist-runtime/workflow/steps/custom.d.ts +1 -1
  461. package/dist-runtime/workflow/steps/deploy.d.ts +1 -1
  462. package/dist-runtime/workflow/steps/deploy.js +57 -55
  463. package/dist-runtime/workflow/steps/deploy.js.map +1 -1
  464. package/dist-runtime/workflow/steps/upgrade.d.ts +1 -1
  465. package/dist-runtime/workflow/steps/upgrade.js +62 -41
  466. package/dist-runtime/workflow/steps/upgrade.js.map +1 -1
  467. package/dist-runtime/workflow/steps/view.d.ts +1 -1
  468. package/docs/compiler-qualification.md +32 -0
  469. package/docs/configuration-runtime-observation.md +29 -0
  470. package/docs/create2-miner.md +100 -0
  471. package/docs/delivery-aggregate.md +27 -0
  472. package/docs/delivery-custom-input-closure.md +51 -0
  473. package/docs/delivery-development.md +32 -0
  474. package/docs/delivery-eoa.md +46 -0
  475. package/docs/delivery-evm-manifest.md +20 -0
  476. package/docs/delivery-execution-store.md +33 -0
  477. package/docs/delivery-inputs.md +46 -0
  478. package/docs/delivery-parameters.md +65 -0
  479. package/docs/delivery-planning.md +140 -0
  480. package/docs/delivery-release.md +65 -0
  481. package/docs/delivery-safe.md +72 -0
  482. package/docs/delivery-setup.md +146 -0
  483. package/docs/delivery-source.md +67 -0
  484. package/docs/superpowers/plans/2026-09-24-scheme-aware-static-validation.md +193 -0
  485. package/docs/superpowers/plans/2026-10-28-create2-miner.md +82 -0
  486. package/package.json +133 -9
  487. package/resources/create2/LICENSE +21 -0
  488. package/resources/create2/README.md +9 -0
  489. package/resources/create2/darwin-arm64/smartflow_miner +0 -0
  490. package/resources/create2/darwin-x64/smartflow_miner +0 -0
  491. package/resources/create2/manifest.json +27 -0
  492. package/runtime/config/openzeppelin.ts +3 -21
  493. package/runtime/delivery/abi.ts +225 -0
  494. package/runtime/delivery/aggregate-bootstrap.ts +29 -0
  495. package/runtime/delivery/aggregate-channel.ts +85 -0
  496. package/runtime/delivery/aggregate-inputs.ts +39 -0
  497. package/runtime/delivery/aggregate-source.ts +53 -0
  498. package/runtime/delivery/aggregate-worker.ts +133 -0
  499. package/runtime/delivery/aggregate.ts +139 -0
  500. package/runtime/delivery/bindings.ts +37 -0
  501. package/runtime/delivery/check-code.ts +38 -0
  502. package/runtime/delivery/closure-format.ts +350 -0
  503. package/runtime/delivery/codec-pin.ts +3 -0
  504. package/runtime/delivery/codec.ts +50 -0
  505. package/runtime/delivery/compiler-dependency-pins.ts +1685 -0
  506. package/runtime/delivery/compiler-files.ts +179 -0
  507. package/runtime/delivery/compiler-io.ts +10 -0
  508. package/runtime/delivery/compiler-pins.ts +143 -0
  509. package/runtime/delivery/compiler.ts +700 -0
  510. package/runtime/delivery/config.ts +93 -0
  511. package/runtime/delivery/configuration-definition.ts +133 -0
  512. package/runtime/delivery/configuration-hre.ts +130 -0
  513. package/runtime/delivery/configuration-runtime.ts +163 -0
  514. package/runtime/delivery/configuration.ts +64 -0
  515. package/runtime/delivery/create2.ts +57 -0
  516. package/runtime/delivery/custom-closure.ts +993 -0
  517. package/runtime/delivery/custom-format.ts +464 -0
  518. package/runtime/delivery/custom.ts +219 -0
  519. package/runtime/delivery/data.ts +94 -0
  520. package/runtime/delivery/development.ts +262 -0
  521. package/runtime/delivery/engine.ts +29 -0
  522. package/runtime/delivery/eoa-observation.ts +106 -0
  523. package/runtime/delivery/eoa-signed.ts +55 -0
  524. package/runtime/delivery/eoa.ts +288 -0
  525. package/runtime/delivery/execution-db.ts +131 -0
  526. package/runtime/delivery/execution-files.ts +135 -0
  527. package/runtime/delivery/execution-model.ts +102 -0
  528. package/runtime/delivery/execution-store.ts +411 -0
  529. package/runtime/delivery/existing-code.ts +44 -0
  530. package/runtime/delivery/export.ts +99 -0
  531. package/runtime/delivery/forkAudit.ts +620 -0
  532. package/runtime/delivery/hardhat.ts +38 -0
  533. package/runtime/delivery/history-registration.ts +10 -0
  534. package/runtime/delivery/identities.ts +132 -0
  535. package/runtime/delivery/input-files.ts +46 -0
  536. package/runtime/delivery/inputs.ts +197 -0
  537. package/runtime/delivery/journal.ts +201 -0
  538. package/runtime/delivery/manifest.ts +54 -0
  539. package/runtime/delivery/materialization.ts +53 -0
  540. package/runtime/delivery/observations.ts +60 -0
  541. package/runtime/delivery/parameters.ts +349 -0
  542. package/runtime/delivery/pending.ts +98 -0
  543. package/runtime/delivery/plan.ts +337 -0
  544. package/runtime/delivery/planning.ts +397 -0
  545. package/runtime/delivery/policy.ts +9 -0
  546. package/runtime/delivery/preparation.ts +224 -0
  547. package/runtime/delivery/production-environment.ts +6 -0
  548. package/runtime/delivery/production-finalization.ts +172 -0
  549. package/runtime/delivery/production.ts +375 -0
  550. package/runtime/delivery/project-files.ts +58 -0
  551. package/runtime/delivery/project.ts +117 -0
  552. package/runtime/delivery/protocol.ts +94 -0
  553. package/runtime/delivery/references.ts +106 -0
  554. package/runtime/delivery/release-graph.ts +49 -0
  555. package/runtime/delivery/release-history-capture.ts +32 -0
  556. package/runtime/delivery/release-history.ts +120 -0
  557. package/runtime/delivery/release.ts +128 -0
  558. package/runtime/delivery/safe-manifest.ts +11 -0
  559. package/runtime/delivery/safe-observation.ts +626 -0
  560. package/runtime/delivery/safe-prepare.ts +101 -0
  561. package/runtime/delivery/safe.ts +344 -0
  562. package/runtime/delivery/same-fork-baseline.ts +16 -0
  563. package/runtime/delivery/setup.ts +172 -0
  564. package/runtime/delivery/source.ts +130 -0
  565. package/runtime/delivery/target-fields.ts +7 -0
  566. package/runtime/delivery/validation.ts +247 -0
  567. package/runtime/delivery/verification.ts +47 -0
  568. package/runtime/migrate.ts +1 -0
  569. package/runtime/miner/binary.ts +41 -0
  570. package/runtime/miner/cli.ts +87 -0
  571. package/runtime/miner/index.ts +5 -0
  572. package/runtime/miner/request.ts +54 -0
  573. package/runtime/miner/runner.ts +90 -0
  574. package/runtime/miner/types.ts +71 -0
  575. package/runtime/miner/verify.ts +61 -0
  576. package/runtime/vendor/plan-codec/index.cjs +820 -0
  577. package/runtime/vendor/plan-codec/index.d.cts +32 -0
  578. package/runtime/vendor/plan-codec/provenance.json +24 -0
  579. package/runtime/workflow/engine.ts +174 -0
  580. package/runtime/workflow/lib/authority.ts +3 -3
  581. package/runtime/workflow/lib/calls.ts +46 -37
  582. package/runtime/workflow/lib/canonicalData.ts +45 -0
  583. package/runtime/workflow/lib/config.ts +1 -1
  584. package/runtime/workflow/lib/context.ts +76 -0
  585. package/runtime/workflow/lib/create2.ts +10 -12
  586. package/runtime/workflow/lib/deployments.ts +6 -14
  587. package/runtime/workflow/lib/evidencePorts.ts +20 -0
  588. package/runtime/workflow/lib/executionPlan.ts +17 -268
  589. package/runtime/workflow/lib/gateTool.ts +20 -8
  590. package/runtime/workflow/lib/gateToolSync.ts +3 -3
  591. package/runtime/workflow/lib/operationNames.ts +32 -0
  592. package/runtime/workflow/lib/parameters.ts +4 -21
  593. package/runtime/workflow/lib/pendingDeploymentReuse.ts +4 -56
  594. package/runtime/workflow/lib/pendingUupsBinding.ts +43 -0
  595. package/runtime/workflow/lib/plan.ts +334 -0
  596. package/runtime/workflow/lib/planCli.ts +279 -0
  597. package/runtime/workflow/lib/preparationEvidence.ts +14 -0
  598. package/runtime/workflow/lib/proxy.ts +5 -3
  599. package/runtime/workflow/lib/runtime.ts +46 -0
  600. package/runtime/workflow/lib/signer.ts +8 -5
  601. package/runtime/workflow/lib/simulation.ts +41 -17
  602. package/runtime/workflow/lib/state.ts +3 -3
  603. package/runtime/workflow/lib/staticValidation.ts +92 -11
  604. package/runtime/workflow/lib/transactionPlanner.ts +314 -0
  605. package/runtime/workflow/lib/typedValue.ts +46 -0
  606. package/runtime/workflow/lib/validation.ts +50 -0
  607. package/runtime/workflow/planAdd.ts +8 -0
  608. package/runtime/workflow/planRead.ts +8 -0
  609. package/runtime/workflow/planStatus.ts +8 -0
  610. package/runtime/workflow/planWrite.ts +8 -0
  611. package/runtime/workflow/run.ts +41 -174
  612. package/runtime/workflow/staticValidate.ts +8 -3
  613. package/runtime/workflow/steps/call.ts +1 -1
  614. package/runtime/workflow/steps/check.ts +1 -1
  615. package/runtime/workflow/steps/custom.ts +1 -1
  616. package/runtime/workflow/steps/deploy.ts +57 -58
  617. package/runtime/workflow/steps/upgrade.ts +69 -46
  618. package/runtime/workflow/steps/view.ts +1 -1
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EoaRpcFailure = void 0;
4
+ exports.executionContext = executionContext;
5
+ exports.rpcQuantity = rpcQuantity;
6
+ exports.verifyEoaChain = verifyEoaChain;
7
+ exports.verifyEoaCode = verifyEoaCode;
8
+ exports.eoaObservationReference = eoaObservationReference;
9
+ exports.observeEoaTransaction = observeEoaTransaction;
10
+ const canonicalData_1 = require("../workflow/lib/canonicalData");
11
+ const export_1 = require("./export");
12
+ const data_1 = require("./data");
13
+ const execution_model_1 = require("./execution-model");
14
+ const eoa_signed_1 = require("./eoa-signed");
15
+ const observations_1 = require("./observations");
16
+ class EoaRpcFailure extends Error {
17
+ constructor(cause) { super(`EOA RPC failed: ${cause instanceof Error ? cause.message : String(cause)}`, { cause }); }
18
+ }
19
+ exports.EoaRpcFailure = EoaRpcFailure;
20
+ function executionContext(raw, plan) {
21
+ const c = (0, canonicalData_1.exactObject)((0, data_1.strictData)(raw), ['executionId', 'planHash', 'releaseHash', 'operator', 'policyHash', 'chainId', 'target', 'finality'], 'EOA execution context');
22
+ for (const key of ['executionId', 'planHash', 'operator', 'chainId', 'target'])
23
+ if (c[key] !== plan[key])
24
+ throw new Error(`Execution context ${key} mismatch`);
25
+ (0, canonicalData_1.digest)(c.releaseHash, 'release');
26
+ (0, canonicalData_1.digest)(c.policyHash, 'policy');
27
+ const f = c.finality;
28
+ (0, canonicalData_1.exactObject)(f, f?.kind === 'rpc_finalized' ? ['kind'] : ['kind', 'depth'], 'finality policy');
29
+ if (f.kind !== 'rpc_finalized' && (f.kind !== 'confirmations' || BigInt((0, observations_1.uint256)(f.depth, 'confirmation depth')) < 1n))
30
+ throw new Error('Invalid explicit finality policy');
31
+ return (0, canonicalData_1.deepFreeze)(c);
32
+ }
33
+ function object(v, label) { if (!v || typeof v !== 'object' || Array.isArray(v))
34
+ throw new Error(`Invalid RPC ${label}`); return v; }
35
+ function rpcQuantity(v) {
36
+ // Some providers zero-pad hex quantities. Parse exactly with BigInt, never Number.
37
+ if (typeof v !== 'string' || !/^0x[0-9a-fA-F]+$/.test(v))
38
+ throw new Error('Invalid RPC quantity');
39
+ return (0, observations_1.uint256)(BigInt(v).toString(), 'RPC quantity');
40
+ }
41
+ function address(v) { if (typeof v !== 'string' || !/^0x[0-9a-fA-F]{40}$/.test(v))
42
+ throw new Error('Invalid RPC address'); return v.toLowerCase(); }
43
+ function bytes(v) { if (typeof v !== 'string' || !/^0x(?:[0-9a-fA-F]{2})*$/.test(v))
44
+ throw new Error('Invalid RPC bytes'); return v.toLowerCase(); }
45
+ function hash(v) { return (0, observations_1.hash32)(bytes(v), 'RPC hash'); }
46
+ const tag = (v) => '0x' + BigInt(v).toString(16);
47
+ async function verifyEoaChain(provider, context) {
48
+ if (rpcQuantity(await provider.request('eth_chainId', [])) !== context.chainId)
49
+ throw new Error('RPC chain identity mismatch');
50
+ }
51
+ async function verifyEoaCode(provider, executor, block) {
52
+ if (await provider.request('eth_getCode', [executor, block]) !== '0x')
53
+ throw new Error('Unsupported executor: EOA with empty code required');
54
+ }
55
+ function rpcEnvelope(tx) {
56
+ const typeString = rpcQuantity(tx.type);
57
+ if (!['0', '1', '2'].includes(typeString))
58
+ throw new Error('Unsupported RPC transaction type');
59
+ const type = Number(typeString);
60
+ const accessList = type === 0 ? [] : (() => {
61
+ if (!Array.isArray(tx.accessList))
62
+ throw new Error('Missing RPC access list');
63
+ return tx.accessList.map(item => { const a = object(item, 'access list'); if (!Array.isArray(a.storageKeys))
64
+ throw new Error('Invalid RPC storage keys'); return { address: address(a.address), storageKeys: a.storageKeys.map(hash) }; });
65
+ })();
66
+ if (type === 0 && tx.accessList !== undefined && !(0, execution_model_1.same)(tx.accessList, []))
67
+ throw new Error('Legacy RPC access list mismatch');
68
+ let chainId;
69
+ if (type === 0) {
70
+ // EIP-155 legacy JSON-RPC responses need not expose chainId. The protected
71
+ // signature's v is the chain identity; never substitute the current RPC chain.
72
+ const v = BigInt(rpcQuantity(tx.v));
73
+ if (v < 37n)
74
+ throw new Error('Unprotected legacy RPC chain identity');
75
+ chainId = ((v - 35n) / 2n).toString();
76
+ if (tx.chainId !== undefined && rpcQuantity(tx.chainId) !== chainId)
77
+ throw new Error('Legacy RPC chainId/v mismatch');
78
+ }
79
+ else
80
+ chainId = rpcQuantity(tx.chainId);
81
+ return { chainId, signer: address(tx.from), nonce: rpcQuantity(tx.nonce), to: address(tx.to), value: rpcQuantity(tx.value), data: bytes(tx.input), operation: 0, type, gasLimit: rpcQuantity(tx.gas), gasPrice: type === 2 ? null : rpcQuantity(tx.gasPrice), maxFeePerGas: type === 2 ? rpcQuantity(tx.maxFeePerGas) : null, maxPriorityFeePerGas: type === 2 ? rpcQuantity(tx.maxPriorityFeePerGas) : null, accessList };
82
+ }
83
+ function eoaObservationReference(transactionId, transactionHash) { return `${transactionId}@${(0, observations_1.hash32)(transactionHash, 'transaction hash')}`; }
84
+ /** Finite, read-only hash query. Missing RPC results remain pending. No block scanning or fallback finality. */
85
+ async function observeEoaTransaction(input) {
86
+ const plan = (0, export_1.immutableDeliveryPlan)(input.plan), context = executionContext(input.context, plan), { index } = input;
87
+ const provider = { async request(method, params) { try {
88
+ return await input.provider.request(method, params);
89
+ }
90
+ catch (error) {
91
+ throw new EoaRpcFailure(error);
92
+ } } };
93
+ const expected = plan.transactions[index], transactionHash = (0, observations_1.hash32)(input.transactionHash, 'transaction hash');
94
+ if (!expected)
95
+ throw new Error('Unknown plan transaction index');
96
+ if (expected.operation !== 0)
97
+ throw new Error('Unsupported EOA operation');
98
+ await verifyEoaChain(provider, context);
99
+ const txRaw = await provider.request('eth_getTransactionByHash', [transactionHash]);
100
+ const receiptRaw = await provider.request('eth_getTransactionReceipt', [transactionHash]);
101
+ if (txRaw === null || receiptRaw === null)
102
+ return;
103
+ const tx = object(txRaw, 'transaction'), receipt = object(receiptRaw, 'receipt'), actual = rpcEnvelope(tx);
104
+ if (hash(tx.hash) !== transactionHash || hash(receipt.transactionHash) !== transactionHash || actual.chainId !== plan.chainId || actual.signer !== expected.executor || actual.to !== expected.to || actual.value !== expected.value || actual.data !== expected.data || address(receipt.from) !== expected.executor || address(receipt.to) !== expected.to)
105
+ throw new Error('RPC transaction/receipt identity mismatch');
106
+ if (input.original) {
107
+ const signed = (0, eoa_signed_1.verifyEoaSigned)(input.original.signed.rawTransaction, input.original.unsigned);
108
+ if (!(0, execution_model_1.same)(signed, input.original.signed) || signed.transactionHash !== transactionHash || !(0, execution_model_1.same)(actual, input.original.unsigned))
109
+ throw new Error('RPC transaction differs from original signed envelope');
110
+ }
111
+ if (tx.blockHash === null || tx.blockNumber === null || tx.transactionIndex === null)
112
+ return;
113
+ const blockHash = hash(receipt.blockHash), blockNumber = rpcQuantity(receipt.blockNumber), indexString = rpcQuantity(receipt.transactionIndex);
114
+ if (hash(tx.blockHash) !== blockHash || rpcQuantity(tx.blockNumber) !== blockNumber || rpcQuantity(tx.transactionIndex) !== indexString)
115
+ throw new Error('RPC inclusion identity mismatch');
116
+ const canonicalRaw = await provider.request('eth_getBlockByNumber', [tag(blockNumber), false]);
117
+ if (canonicalRaw === null)
118
+ return;
119
+ const canonical = object(canonicalRaw, 'canonical block');
120
+ if (hash(canonical.hash) !== blockHash)
121
+ return; // Unfinalized reorg: reread the same hash later.
122
+ if (rpcQuantity(canonical.number) !== blockNumber || !Array.isArray(canonical.transactions) || BigInt(indexString) >= BigInt(canonical.transactions.length) || hash(canonical.transactions[Number(indexString)]) !== transactionHash)
123
+ throw new Error('RPC canonical inclusion mismatch');
124
+ await verifyEoaCode(provider, expected.executor, tag(blockNumber));
125
+ const headRaw = await provider.request('eth_getBlockByNumber', [context.finality.kind === 'rpc_finalized' ? 'finalized' : 'latest', false]);
126
+ if (headRaw === null)
127
+ return;
128
+ const head = object(headRaw, 'finality block'), headNumber = rpcQuantity(head.number), headHash = hash(head.hash);
129
+ const headCanonicalRaw = await provider.request('eth_getBlockByNumber', [tag(headNumber), false]);
130
+ if (headCanonicalRaw === null)
131
+ return;
132
+ const headCanonical = object(headCanonicalRaw, 'canonical finality block');
133
+ if (hash(headCanonical.hash) !== headHash || rpcQuantity(headCanonical.number) !== headNumber)
134
+ return;
135
+ // Close the observation window by rereading inclusion after finality/code queries.
136
+ const endRaw = await provider.request('eth_getBlockByNumber', [tag(blockNumber), false]);
137
+ if (endRaw === null || hash(object(endRaw, 'canonical block').hash) !== blockHash)
138
+ return;
139
+ const finalized = context.finality.kind === 'rpc_finalized' ? BigInt(headNumber) >= BigInt(blockNumber) : BigInt(headNumber) - BigInt(blockNumber) + 1n >= BigInt(context.finality.depth);
140
+ const status = rpcQuantity(receipt.status);
141
+ if (status !== '0' && status !== '1')
142
+ throw new Error('Invalid RPC receipt status');
143
+ return (0, canonicalData_1.deepFreeze)({ observationId: eoaObservationReference(expected.transactionId, transactionHash), executionId: plan.executionId, planHash: plan.planHash, chainId: plan.chainId, target: plan.target, transaction: expected, transactionHash, state: finalized ? status === '1' ? 'finalized-success' : 'finalized-reverted' : 'included-unfinalized', blockNumber, blockHash });
144
+ }
145
+ //# sourceMappingURL=eoa-observation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eoa-observation.js","sourceRoot":"","sources":["../../runtime/delivery/eoa-observation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { type UnsignedEnvelope, type SignedRecord } from './execution-model';
2
+ export declare function verifyEoaSigned(raw: unknown, frozen: UnsignedEnvelope): SignedRecord;
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.verifyEoaSigned = verifyEoaSigned;
4
+ /** Exact EIP-155 / EIP-2930 / EIP-1559 signed bytes. No Number conversion of quantities. */
5
+ const ethers_1 = require("ethers");
6
+ const execution_model_1 = require("./execution-model");
7
+ const observations_1 = require("./observations");
8
+ function list(v, length) {
9
+ if (!Array.isArray(v) || (length !== undefined && v.length !== length))
10
+ throw new Error('Invalid signed RLP list');
11
+ return v;
12
+ }
13
+ function bytes(v) {
14
+ if (typeof v !== 'string' || !/^0x(?:[0-9a-f]{2})*$/.test(v))
15
+ throw new Error('Invalid signed RLP bytes');
16
+ return v;
17
+ }
18
+ function quantity(v) {
19
+ const b = bytes(v);
20
+ if (b.startsWith('0x00'))
21
+ throw new Error('Noncanonical signed quantity');
22
+ return (0, observations_1.uint256)(b === '0x' ? '0' : BigInt(b).toString(), 'signed quantity');
23
+ }
24
+ function address(v) {
25
+ const b = bytes(v);
26
+ if (!/^0x[0-9a-f]{40}$/.test(b))
27
+ throw new Error('Invalid signed destination/address');
28
+ return b;
29
+ }
30
+ function rlpQuantity(n) { const s = n.toString(16); return n === 0n ? '0x' : '0x' + (s.length % 2 ? '0' : '') + s; }
31
+ function verifyEoaSigned(raw, frozen) {
32
+ if (frozen.operation !== 0)
33
+ throw new Error('Unsupported EOA operation');
34
+ if (typeof raw !== 'string' || !/^0x(?:[0-9a-f]{2})+$/.test(raw))
35
+ throw new Error('Invalid signed bytes');
36
+ const first = parseInt(raw.slice(2, 4), 16), type = first >= 0xc0 ? 0 : first;
37
+ if (![0, 1, 2].includes(type))
38
+ throw new Error('Unsupported signed transaction type');
39
+ const prefix = type ? raw.slice(0, 4) : '0x', payload = type ? '0x' + raw.slice(4) : raw;
40
+ const fields = list((0, ethers_1.decodeRlp)(payload), type === 0 ? 9 : type === 1 ? 11 : 12);
41
+ if ((0, ethers_1.encodeRlp)(fields) !== payload)
42
+ throw new Error('Noncanonical signed RLP');
43
+ const unsigned = fields.slice(0, -3), [v, r, s] = fields.slice(-3).map(quantity);
44
+ let parity, chainId;
45
+ if (type === 0) {
46
+ if (BigInt(v) < 35n)
47
+ throw new Error('Signed legacy transaction requires EIP-155 chain identity');
48
+ parity = (BigInt(v) - 35n) % 2n;
49
+ chainId = ((BigInt(v) - 35n) / 2n).toString();
50
+ unsigned.push(rlpQuantity(BigInt(chainId)), '0x', '0x');
51
+ }
52
+ else {
53
+ chainId = quantity(fields[0]);
54
+ parity = BigInt(v);
55
+ }
56
+ if (parity > 1n)
57
+ throw new Error('Invalid signed parity');
58
+ const signingHash = (0, ethers_1.keccak256)(prefix + (0, ethers_1.encodeRlp)(unsigned).slice(2));
59
+ const signer = (0, ethers_1.recoverAddress)(signingHash, { r: '0x' + BigInt(r).toString(16).padStart(64, '0'), s: '0x' + BigInt(s).toString(16).padStart(64, '0'), yParity: Number(parity) }).toLowerCase();
60
+ const offset = type ? 1 : 0, gasIndex = type === 2 ? 4 : offset + 2;
61
+ const accessList = type === 0 ? [] : list(fields[gasIndex + 4]).map(entry => {
62
+ const [a, keys] = list(entry, 2);
63
+ return { address: address(a), storageKeys: list(keys).map(k => { const b = bytes(k); if (!/^0x[0-9a-f]{64}$/.test(b))
64
+ throw new Error('Invalid signed storage key'); return b; }) };
65
+ });
66
+ const actual = {
67
+ chainId, signer, nonce: quantity(fields[offset]), to: address(fields[gasIndex + 1]), value: quantity(fields[gasIndex + 2]), data: bytes(fields[gasIndex + 3]), operation: 0, type: type,
68
+ gasLimit: quantity(fields[gasIndex]), gasPrice: type === 2 ? null : quantity(fields[offset + 1]), maxFeePerGas: type === 2 ? quantity(fields[3]) : null, maxPriorityFeePerGas: type === 2 ? quantity(fields[2]) : null, accessList,
69
+ };
70
+ if (!(0, execution_model_1.same)(actual, frozen))
71
+ throw new Error('Actual signed transaction differs from frozen approval snapshot');
72
+ return { rawTransaction: raw, transactionHash: (0, ethers_1.keccak256)(raw), unsignedDigest: (0, execution_model_1.unsignedHash)(frozen) };
73
+ }
74
+ //# sourceMappingURL=eoa-signed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eoa-signed.js","sourceRoot":"","sources":["../../runtime/delivery/eoa-signed.ts"],"names":[],"mappings":";;AAyBA,0CA6BC;AAtDD,4FAA4F;AAC5F,mCAAyE;AACzE,uDAAiG;AACjG,iDAAyC;AAGzC,SAAS,IAAI,CAAC,CAAM,EAAE,MAAe;IACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IACnH,OAAO,CAAC,CAAC;AACb,CAAC;AACD,SAAS,KAAK,CAAC,CAAM;IACjB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC1G,OAAO,CAAC,CAAC;AACb,CAAC;AACD,SAAS,QAAQ,CAAC,CAAM;IACpB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACnB,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC1E,OAAO,IAAA,sBAAO,EAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,iBAAiB,CAAC,CAAC;AAC/E,CAAC;AACD,SAAS,OAAO,CAAC,CAAM;IACnB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACnB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACvF,OAAO,CAAC,CAAC;AACb,CAAC;AACD,SAAS,WAAW,CAAC,CAAS,IAAY,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACpI,SAAgB,eAAe,CAAC,GAAY,EAAE,MAAwB;IAClE,IAAI,MAAM,CAAC,SAAS,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACzE,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1G,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9E,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACtF,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACzF,MAAM,MAAM,GAAG,IAAI,CAAC,IAAA,kBAAS,EAAC,OAAO,CAAQ,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACtF,IAAI,IAAA,kBAAS,EAAC,MAAM,CAAC,KAAK,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC9E,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACjF,IAAI,MAAc,EAAE,OAAe,CAAC;IACpC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QACb,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAClG,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;QAAC,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC/E,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5D,CAAC;SAAM,CAAC;QAAC,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;IAC7D,IAAI,MAAM,GAAG,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC1D,MAAM,WAAW,GAAG,IAAA,kBAAS,EAAC,MAAM,GAAG,IAAA,kBAAS,EAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACrE,MAAM,MAAM,GAAG,IAAA,uBAAc,EAAC,WAAW,EAAE,EAAE,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAU,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACvM,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACpE,MAAM,UAAU,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QACxE,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACjC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACxL,CAAC,CAAC,CAAC;IACH,MAAM,MAAM,GAAqB;QAC7B,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,IAAiB;QACpM,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,oBAAoB,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU;KACrO,CAAC;IACF,IAAI,CAAC,IAAA,sBAAI,EAAC,MAAM,EAAE,MAAM,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;IAC9G,OAAO,EAAE,cAAc,EAAE,GAAG,EAAE,eAAe,EAAE,IAAA,kBAAS,EAAC,GAAG,CAAC,EAAE,cAAc,EAAE,IAAA,8BAAY,EAAC,MAAM,CAAC,EAAE,CAAC;AAC1G,CAAC"}
@@ -0,0 +1,81 @@
1
+ import { type ExecutionSnapshot, type UnsignedEnvelope } from './execution-model';
2
+ import type { ExecutionStore } from './execution-store';
3
+ import { type TransactionObservation } from './observations';
4
+ import { type EoaExecutionContext, type EoaRpc } from './eoa-observation';
5
+ export { verifyEoaSigned } from './eoa-signed';
6
+ export { observeEoaTransaction, eoaObservationReference } from './eoa-observation';
7
+ export type { EoaRpc, EoaExecutionContext, EoaFinality, EoaObservationRequest } from './eoa-observation';
8
+ export interface EoaApprovalSnapshot {
9
+ context: EoaExecutionContext;
10
+ transaction: ExecutionSnapshot['plan']['transactions'][number];
11
+ unsigned: UnsignedEnvelope;
12
+ signingRequestId: string;
13
+ }
14
+ /** Supplied only by controlled trusted host code. JSON flags and agent-provided functions confer no authority. */
15
+ export interface EoaApprovalCapability {
16
+ withApproval<T>(snapshot: EoaApprovalSnapshot, controlledWork: () => Promise<T>): Promise<T>;
17
+ }
18
+ export interface EoaSignOnlySigner {
19
+ address: string;
20
+ /** Must sign only, retain the result under this immutable request ID, and NEVER broadcast. */
21
+ sign(signingRequestId: string, unsigned: UnsignedEnvelope): Promise<string>;
22
+ /** Read-only original-result lookup. Never start new signing when the intent is uncertain. */
23
+ recover?(signingRequestId: string): Promise<string | undefined>;
24
+ }
25
+ export interface EoaExecutionOptions {
26
+ plan: unknown;
27
+ context: EoaExecutionContext;
28
+ store: ExecutionStore;
29
+ provider: EoaRpc;
30
+ signer?: EoaSignOnlySigner;
31
+ approval?: EoaApprovalCapability;
32
+ }
33
+ export interface EoaExecutionResult {
34
+ status: 'submitted' | 'pending' | 'advanced' | 'complete' | 'reverted' | 'signing-result-unavailable';
35
+ snapshot: ExecutionSnapshot;
36
+ }
37
+ /** Explicit finite hash sets by plan transaction ID. No discovery, scanning, or implicit resend. */
38
+ export type EoaHashReferences = Readonly<Record<string, readonly string[]>>;
39
+ export declare function createDeliveryEoaExecution(options: EoaExecutionOptions): Readonly<{
40
+ /** Current segment only; an existing frozen payload is returned without nonce rebasing. */
41
+ prepareSafe(rawProfile: unknown): Promise<{
42
+ envelope: import("./safe").SafeEnvelope;
43
+ snapshot: ExecutionSnapshot;
44
+ }>;
45
+ /** One active operator transaction per call. Frozen envelopes are explicit; no implicit gas/nonce defaults. */
46
+ execute(rawUnsigned?: unknown): Promise<EoaExecutionResult>;
47
+ reconcile(references?: EoaHashReferences): Promise<EoaExecutionResult>;
48
+ /** Revalidates the durable contiguous prefix under the claim before producing trusted export progress. */
49
+ export(): Promise<{
50
+ model: {
51
+ safeEnvelopes: {
52
+ schema: string;
53
+ version: number;
54
+ status: string;
55
+ plan: import("./plan").DeliveryPlan;
56
+ envelope: import("./safe").SafeEnvelope;
57
+ unsignedExecTransaction: string;
58
+ }[];
59
+ safePreparation: string;
60
+ version: 1;
61
+ schema: "gate-delivery-export";
62
+ status: "artifact-delivered";
63
+ plan: import("./plan").DeliveryPlan;
64
+ fullRange: {
65
+ start: number;
66
+ end: number;
67
+ };
68
+ actionableRange: {
69
+ start: number;
70
+ end: number;
71
+ } | null;
72
+ completed: TransactionObservation[];
73
+ dependencies: {
74
+ transactionId: string;
75
+ after: string[];
76
+ }[];
77
+ };
78
+ json: string;
79
+ markdown: string;
80
+ }>;
81
+ }>;
@@ -0,0 +1,274 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.eoaObservationReference = exports.observeEoaTransaction = exports.verifyEoaSigned = void 0;
4
+ exports.createDeliveryEoaExecution = createDeliveryEoaExecution;
5
+ /** Host-injected EOA execution kernel. It is not a production host or Safe adapter. */
6
+ const safe_observation_1 = require("./safe-observation");
7
+ const safe_prepare_1 = require("./safe-prepare");
8
+ const safe_1 = require("./safe");
9
+ const canonicalData_1 = require("../workflow/lib/canonicalData");
10
+ const export_1 = require("./export");
11
+ const execution_model_1 = require("./execution-model");
12
+ const observations_1 = require("./observations");
13
+ const eoa_observation_1 = require("./eoa-observation");
14
+ const eoa_signed_1 = require("./eoa-signed");
15
+ var eoa_signed_2 = require("./eoa-signed");
16
+ Object.defineProperty(exports, "verifyEoaSigned", { enumerable: true, get: function () { return eoa_signed_2.verifyEoaSigned; } });
17
+ var eoa_observation_2 = require("./eoa-observation");
18
+ Object.defineProperty(exports, "observeEoaTransaction", { enumerable: true, get: function () { return eoa_observation_2.observeEoaTransaction; } });
19
+ Object.defineProperty(exports, "eoaObservationReference", { enumerable: true, get: function () { return eoa_observation_2.eoaObservationReference; } });
20
+ function createDeliveryEoaExecution(options) {
21
+ const plan = (0, export_1.immutableDeliveryPlan)(options.plan), context = (0, eoa_observation_1.executionContext)(options.context, plan);
22
+ const contextHash = (0, canonicalData_1.semanticHash)({ schema: 'gate-delivery-eoa-context', version: 1, context });
23
+ const { store, provider, signer, approval } = options;
24
+ async function claim(work) {
25
+ const previous = await store.readExecution(plan.executionId);
26
+ return store.withExecutionClaim({ plan, contextHash, expectedRevision: previous?.revision ?? null }, async (c, s) => {
27
+ if (s.blockedReason !== null)
28
+ throw new Error(`Execution blocked: ${s.blockedReason}`);
29
+ await verifyPrefix(c, s);
30
+ return work(c, s);
31
+ });
32
+ }
33
+ function read(tx, transactionHash) {
34
+ return (0, eoa_observation_1.observeEoaTransaction)({ plan, context, provider, index: tx.index, transactionHash, original: tx.signed && tx.unsigned ? { unsigned: tx.unsigned, signed: tx.signed } : undefined });
35
+ }
36
+ async function verifyPrefix(c, s) {
37
+ const completed = [], hashes = new Set(), batches = new Map();
38
+ for (const tx of s.transactions.slice(0, s.completedCount)) {
39
+ // Transport errors stop this invocation. A successful query showing lost evidence is durable finality loss.
40
+ let current;
41
+ try {
42
+ if (tx.observation?.safe) {
43
+ const id = tx.observation.safe.envelopeId, e = s.safeEnvelopes.find(e => e.envelopeId === id);
44
+ if (!e)
45
+ throw Error('Missing frozen Safe prefix');
46
+ let rows = batches.get(id);
47
+ if (!rows) {
48
+ rows = await (0, safe_observation_1.observeSafeTransaction)({ plan, envelope: e, provider, transactionHash: tx.observation.transactionHash });
49
+ if (rows)
50
+ batches.set(id, rows);
51
+ }
52
+ current = rows?.[tx.observation.safe.innerCallIndex];
53
+ }
54
+ else
55
+ current = await read(tx, tx.observation.transactionHash);
56
+ }
57
+ catch (error) {
58
+ if (error instanceof eoa_observation_1.EoaRpcFailure)
59
+ throw error;
60
+ store.blockExecution(c, s.revision, 'Previously finalized execution identity no longer verifies');
61
+ throw new Error('Previously finalized execution identity no longer verifies; execution blocked', { cause: error });
62
+ }
63
+ if (!current || current.state !== 'finalized-success' || !(0, execution_model_1.same)(current, tx.observation) || (hashes.has(current.transactionHash) && (!current.safe || current.safe.innerCallIndex === 0))) {
64
+ store.blockExecution(c, s.revision, 'Previously finalized execution progress lost canonical finality');
65
+ throw new Error('Previously finalized execution progress lost canonical finality; execution blocked');
66
+ }
67
+ hashes.add(current.transactionHash);
68
+ completed.push(current);
69
+ }
70
+ return completed;
71
+ }
72
+ async function reconcileActive(c, s, references) {
73
+ const start = s.completedCount;
74
+ while (s.completedCount < s.transactions.length) {
75
+ const tx = s.transactions[s.completedCount];
76
+ if (tx.state === 'finalized-reverted')
77
+ return { status: 'reverted', snapshot: s };
78
+ if (tx.state === 'blocked')
79
+ throw new Error('Transaction blocked');
80
+ const safe = s.safeEnvelopes.find(e => e.start === tx.index);
81
+ if (safe) {
82
+ const supplied = safe.transactionIds.flatMap(id => references[id] ?? []), candidates = [...new Set(supplied)];
83
+ if (candidates.length > 1)
84
+ throw Error('Supply one original outer Safe hash per envelope');
85
+ if (!candidates.length)
86
+ break;
87
+ const hash = (0, observations_1.hash32)(candidates[0], 'Safe original hash');
88
+ if (s.transactions.some(t => t.observation?.transactionHash === hash))
89
+ throw Error('Safe hash already consumed');
90
+ const rows = await (0, safe_observation_1.observeSafeTransaction)({ plan, envelope: safe, provider, transactionHash: hash });
91
+ if (!rows)
92
+ break;
93
+ if (rows[0].state === 'finalized-reverted')
94
+ return { status: 'reverted', snapshot: s };
95
+ if (rows[0].state !== 'finalized-success')
96
+ break;
97
+ s = await store.recordSafeObservations(c, s.revision, safe.envelopeId, { readSafeObservations: async () => rows });
98
+ await verifyPrefix(c, s);
99
+ continue;
100
+ }
101
+ const supplied = references[tx.transactionId] ?? [];
102
+ if (!Array.isArray(supplied))
103
+ throw new Error('Expected explicit transaction hash set');
104
+ const candidates = tx.signed ? [tx.signed.transactionHash] : [...new Set([...supplied, ...(tx.observation ? [tx.observation.transactionHash] : [])])];
105
+ if (tx.signed && supplied.some(h => h !== tx.signed.transactionHash))
106
+ throw new Error('Hash reference differs from original signed identity');
107
+ // Signing intent without durable bytes may only recover the original signature first.
108
+ if (tx.state === 'signing')
109
+ return { status: 'signing-result-unavailable', snapshot: s };
110
+ let selected;
111
+ for (const hash of candidates) {
112
+ (0, observations_1.hash32)(hash, 'explicit transaction hash');
113
+ if (s.transactions.slice(0, s.completedCount).some(t => t.observation?.transactionHash === hash))
114
+ throw new Error('Duplicate hash already completed a plan entry');
115
+ const observation = await read(tx, hash);
116
+ if (!observation)
117
+ continue;
118
+ if (selected && selected.transactionHash !== observation.transactionHash)
119
+ throw new Error('Ambiguous matching transaction hash set; supply one reference');
120
+ selected = observation;
121
+ }
122
+ if (!selected)
123
+ break;
124
+ const observed = selected;
125
+ s = await store.recordObservation(c, s.revision, observed.observationId, { readObservation: async () => observed });
126
+ if (observed.state === 'finalized-reverted')
127
+ return { status: 'reverted', snapshot: s };
128
+ if (observed.state !== 'finalized-success')
129
+ break;
130
+ // Recheck the entire accepted prefix before a subsequent advancement.
131
+ await verifyPrefix(c, s);
132
+ }
133
+ return { status: s.completedCount === s.transactions.length ? 'complete' : s.completedCount > start ? 'advanced' : 'pending', snapshot: s };
134
+ }
135
+ async function approved(snapshot, work) {
136
+ if (typeof approval?.withApproval !== 'function')
137
+ throw new Error('Trusted host approval capability unavailable');
138
+ let started = false, accepting = true, pending;
139
+ try {
140
+ await approval.withApproval(snapshot, () => {
141
+ if (!accepting || started)
142
+ throw new Error('Approval work is revoked or already consumed');
143
+ started = true;
144
+ pending = work(() => {
145
+ if (!accepting)
146
+ throw new Error('Host approval scope revoked');
147
+ });
148
+ return pending;
149
+ });
150
+ accepting = false;
151
+ if (!pending)
152
+ throw new Error('Host approval did not authorize controlled work');
153
+ return await pending;
154
+ }
155
+ finally {
156
+ accepting = false;
157
+ if (pending)
158
+ await pending.catch(() => undefined);
159
+ }
160
+ }
161
+ return Object.freeze({
162
+ /** Current segment only; an existing frozen payload is returned without nonce rebasing. */
163
+ async prepareSafe(rawProfile) {
164
+ const profile = (0, safe_prepare_1.parseSafeTarget)(rawProfile);
165
+ return claim(async (c, s) => {
166
+ const prior = s.safeEnvelopes.find(e => e.start === s.completedCount);
167
+ if (prior) {
168
+ if (prior.adapter !== profile.adapter || prior.multiSend !== profile.multiSendCallOnly || prior.safeTxGas !== profile.safeTxGas || !(0, execution_model_1.same)(prior.submitter, profile.submitterPolicy) || !(0, execution_model_1.same)(prior.finality, context.finality))
169
+ throw Error('Frozen Safe policy conflict');
170
+ const live = await (0, safe_prepare_1.prepareSafeEnvelope)(plan, s.completedCount, profile, provider, context.finality);
171
+ if (live.nonce !== prior.nonce)
172
+ throw Error('Frozen Safe nonce consumed; reconcile the original hash without rebasing');
173
+ if (!(0, execution_model_1.same)(live, prior))
174
+ throw Error('Frozen Safe execution identity changed');
175
+ return { envelope: prior, snapshot: s };
176
+ }
177
+ const envelope = await (0, safe_prepare_1.prepareSafeEnvelope)(plan, s.completedCount, profile, provider, context.finality);
178
+ s = store.freezeSafeEnvelope(c, s.revision, envelope);
179
+ return { envelope, snapshot: s };
180
+ });
181
+ },
182
+ /** One active operator transaction per call. Frozen envelopes are explicit; no implicit gas/nonce defaults. */
183
+ async execute(rawUnsigned) {
184
+ return claim(async (c, initial) => {
185
+ let s = initial, tx = s.transactions[s.completedCount];
186
+ if (!tx)
187
+ return { status: 'complete', snapshot: s };
188
+ if (tx.state === 'finalized-reverted' || tx.state === 'blocked')
189
+ throw new Error('Reverted or blocked transaction');
190
+ if (['submission-uncertain', 'included-unfinalized'].includes(tx.state))
191
+ return reconcileActive(c, s, {});
192
+ const planned = plan.transactions[tx.index];
193
+ if (planned.operation !== 0)
194
+ throw new Error('Unsupported EOA operation');
195
+ if (planned.route !== 'operator' || planned.executor !== context.operator)
196
+ throw new Error('Only active operator-route executor may sign');
197
+ if (!signer || typeof signer.sign !== 'function' || signer.address !== context.operator)
198
+ throw new Error('Approved EOA signer unavailable or mismatched');
199
+ if (typeof approval?.withApproval !== 'function')
200
+ throw new Error('Trusted host approval capability unavailable');
201
+ await (0, eoa_observation_1.verifyEoaChain)(provider, context);
202
+ await (0, eoa_observation_1.verifyEoaCode)(provider, planned.executor, 'latest');
203
+ const unsigned = rawUnsigned === undefined ? tx.unsigned : (0, execution_model_1.parseUnsigned)(rawUnsigned, plan, tx.index);
204
+ if (!unsigned)
205
+ throw new Error('Complete explicit unsigned approval snapshot required');
206
+ if (tx.unsigned && !(0, execution_model_1.same)(unsigned, tx.unsigned))
207
+ throw new Error('Frozen approval snapshot mismatch');
208
+ s = store.freezeAndReserve(c, s.revision, tx.transactionId, unsigned);
209
+ tx = s.transactions[s.completedCount];
210
+ const signingRequestId = (0, canonicalData_1.semanticHash)({ schema: 'gate-delivery-eoa-signing-request', version: 1, context, transaction: planned, unsigned });
211
+ if (tx.signingRequestId && tx.signingRequestId !== signingRequestId)
212
+ throw new Error('Stable signing request identity mismatch');
213
+ const approvalSnapshot = (0, canonicalData_1.deepFreeze)({ context, transaction: planned, unsigned, signingRequestId });
214
+ return approved(approvalSnapshot, async (assertApproval) => {
215
+ // Approval may await user interaction; revalidate chain and finalized prefix immediately before controlled signing/send.
216
+ await verifyPrefix(c, s);
217
+ await (0, eoa_observation_1.verifyEoaChain)(provider, context);
218
+ await (0, eoa_observation_1.verifyEoaCode)(provider, planned.executor, 'latest');
219
+ assertApproval();
220
+ if (tx.state === 'claimed') {
221
+ s = store.markSigning(c, s.revision, signingRequestId);
222
+ const raw = await signer.sign(signingRequestId, unsigned);
223
+ assertApproval();
224
+ s = store.commitSigned(c, s.revision, (0, eoa_signed_1.verifyEoaSigned)(raw, unsigned));
225
+ }
226
+ else if (tx.state === 'signing') {
227
+ const recovered = await signer.recover?.(signingRequestId);
228
+ assertApproval();
229
+ if (recovered === undefined)
230
+ return { status: 'signing-result-unavailable', snapshot: s };
231
+ s = store.commitSigned(c, s.revision, (0, eoa_signed_1.verifyEoaSigned)(recovered, unsigned));
232
+ }
233
+ tx = s.transactions[s.completedCount];
234
+ if (tx.state !== 'signed' || !tx.signed)
235
+ throw new Error('Original durable signed bytes required');
236
+ const signed = (0, eoa_signed_1.verifyEoaSigned)(tx.signed.rawTransaction, unsigned);
237
+ if (!(0, execution_model_1.same)(signed, tx.signed))
238
+ throw new Error('Durable signed identity mismatch');
239
+ await verifyPrefix(c, s);
240
+ await (0, eoa_observation_1.verifyEoaChain)(provider, context);
241
+ await (0, eoa_observation_1.verifyEoaCode)(provider, planned.executor, 'latest');
242
+ assertApproval();
243
+ s = store.recordSubmissionIntent(c, s.revision);
244
+ const returnedHash = await provider.request('eth_sendRawTransaction', [signed.rawTransaction]);
245
+ if (returnedHash !== signed.transactionHash)
246
+ throw new Error('Broadcast returned wrong hash; original submission remains uncertain');
247
+ return { status: 'submitted', snapshot: s };
248
+ });
249
+ });
250
+ },
251
+ async reconcile(references = {}) {
252
+ // Copy only explicit data before any awaited calls; caller mutation cannot change the route/hash set.
253
+ const refs = (0, canonicalData_1.deepFreeze)(JSON.parse(JSON.stringify(references)));
254
+ for (const [id, hashes] of Object.entries(refs)) {
255
+ if (!plan.transactions.some(tx => tx.transactionId === id) || !Array.isArray(hashes))
256
+ throw new Error('Unknown transaction hash reference');
257
+ hashes.forEach(h => (0, observations_1.hash32)(h, 'explicit transaction hash'));
258
+ }
259
+ return claim((c, s) => reconcileActive(c, s, refs));
260
+ },
261
+ /** Revalidates the durable contiguous prefix under the claim before producing trusted export progress. */
262
+ async export() {
263
+ return claim(async (c, s) => {
264
+ const completed = await verifyPrefix(c, s), byId = new Map(completed.map(o => [o.observationId, o]));
265
+ const progress = await (0, export_1.validateDeliveryProgress)({ plan, completed: completed.map(o => o.observationId), finalized: { readFinalized: async (ref) => byId.get(ref) } });
266
+ const exported = (0, export_1.renderDeliveryExport)(plan, progress);
267
+ const model = (0, canonicalData_1.deepFreeze)({ ...exported.model, safeEnvelopes: s.safeEnvelopes.map(e => (0, safe_1.renderSafeExport)(plan, e).model), safePreparation: plan.transactions[s.completedCount]?.route !== 'external' ? 'not-applicable' : s.safeEnvelopes.some(e => e.start === s.completedCount) ? 'ready' : 'preparation-required' });
268
+ const json = JSON.stringify(model);
269
+ return (0, canonicalData_1.deepFreeze)({ model, json, markdown: `# Delivery calldata\n\nFrozen Safe envelopes cover only prepared segments. Future segments remain pending.\n\n\`\`\`json\n${json}\n\`\`\`\n` });
270
+ });
271
+ },
272
+ });
273
+ }
274
+ //# sourceMappingURL=eoa.js.map