@0xsequence/catapult 1.3.17 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (232) hide show
  1. package/README.md +276 -0
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +1 -0
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/index.d.ts +1 -0
  6. package/dist/commands/index.d.ts.map +1 -1
  7. package/dist/commands/index.js +1 -0
  8. package/dist/commands/index.js.map +1 -1
  9. package/dist/commands/list.d.ts.map +1 -1
  10. package/dist/commands/list.js +12 -0
  11. package/dist/commands/list.js.map +1 -1
  12. package/dist/commands/provenance.d.ts +3 -0
  13. package/dist/commands/provenance.d.ts.map +1 -0
  14. package/dist/commands/provenance.js +138 -0
  15. package/dist/commands/provenance.js.map +1 -0
  16. package/dist/lib/__tests__/deployer.spec.js +118 -1
  17. package/dist/lib/__tests__/deployer.spec.js.map +1 -1
  18. package/dist/lib/__tests__/network-loader.spec.js.map +1 -1
  19. package/dist/lib/__tests__/provenance.spec.d.ts +2 -0
  20. package/dist/lib/__tests__/provenance.spec.d.ts.map +1 -0
  21. package/dist/lib/__tests__/provenance.spec.js +205 -0
  22. package/dist/lib/__tests__/provenance.spec.js.map +1 -0
  23. package/dist/lib/contracts/__tests__/repository.spec.js +243 -0
  24. package/dist/lib/contracts/__tests__/repository.spec.js.map +1 -1
  25. package/dist/lib/contracts/repository.d.ts +9 -1
  26. package/dist/lib/contracts/repository.d.ts.map +1 -1
  27. package/dist/lib/contracts/repository.js +93 -7
  28. package/dist/lib/contracts/repository.js.map +1 -1
  29. package/dist/lib/core/__tests__/assert-action.spec.d.ts +2 -0
  30. package/dist/lib/core/__tests__/assert-action.spec.d.ts.map +1 -0
  31. package/dist/lib/core/__tests__/assert-action.spec.js +377 -0
  32. package/dist/lib/core/__tests__/assert-action.spec.js.map +1 -0
  33. package/dist/lib/core/__tests__/engine.spec.js +80 -0
  34. package/dist/lib/core/__tests__/engine.spec.js.map +1 -1
  35. package/dist/lib/core/__tests__/loader.spec.js +29 -0
  36. package/dist/lib/core/__tests__/loader.spec.js.map +1 -1
  37. package/dist/lib/core/__tests__/resolver.spec.js +405 -0
  38. package/dist/lib/core/__tests__/resolver.spec.js.map +1 -1
  39. package/dist/lib/core/__tests__/sign-actions.spec.d.ts +2 -0
  40. package/dist/lib/core/__tests__/sign-actions.spec.d.ts.map +1 -0
  41. package/dist/lib/core/__tests__/sign-actions.spec.js +128 -0
  42. package/dist/lib/core/__tests__/sign-actions.spec.js.map +1 -0
  43. package/dist/lib/core/__tests__/signer.spec.d.ts +2 -0
  44. package/dist/lib/core/__tests__/signer.spec.d.ts.map +1 -0
  45. package/dist/lib/core/__tests__/signer.spec.js +40 -0
  46. package/dist/lib/core/__tests__/signer.spec.js.map +1 -0
  47. package/dist/lib/core/context.d.ts +3 -2
  48. package/dist/lib/core/context.d.ts.map +1 -1
  49. package/dist/lib/core/context.js +3 -2
  50. package/dist/lib/core/context.js.map +1 -1
  51. package/dist/lib/core/engine.d.ts +4 -0
  52. package/dist/lib/core/engine.d.ts.map +1 -1
  53. package/dist/lib/core/engine.js +206 -0
  54. package/dist/lib/core/engine.js.map +1 -1
  55. package/dist/lib/core/loader.d.ts +1 -0
  56. package/dist/lib/core/loader.d.ts.map +1 -1
  57. package/dist/lib/core/loader.js +6 -1
  58. package/dist/lib/core/loader.js.map +1 -1
  59. package/dist/lib/core/resolver.d.ts +2 -0
  60. package/dist/lib/core/resolver.d.ts.map +1 -1
  61. package/dist/lib/core/resolver.js +89 -0
  62. package/dist/lib/core/resolver.js.map +1 -1
  63. package/dist/lib/core/signer.d.ts +7 -0
  64. package/dist/lib/core/signer.d.ts.map +1 -0
  65. package/dist/lib/core/signer.js +60 -0
  66. package/dist/lib/core/signer.js.map +1 -0
  67. package/dist/lib/deployer.d.ts.map +1 -1
  68. package/dist/lib/deployer.js +21 -4
  69. package/dist/lib/deployer.js.map +1 -1
  70. package/dist/lib/index.d.ts +1 -0
  71. package/dist/lib/index.d.ts.map +1 -1
  72. package/dist/lib/index.js +1 -0
  73. package/dist/lib/index.js.map +1 -1
  74. package/dist/lib/parsers/__tests__/job.spec.js +77 -0
  75. package/dist/lib/parsers/__tests__/job.spec.js.map +1 -1
  76. package/dist/lib/parsers/__tests__/source.spec.d.ts +2 -0
  77. package/dist/lib/parsers/__tests__/source.spec.d.ts.map +1 -0
  78. package/dist/lib/parsers/__tests__/source.spec.js +158 -0
  79. package/dist/lib/parsers/__tests__/source.spec.js.map +1 -0
  80. package/dist/lib/parsers/index.d.ts +1 -0
  81. package/dist/lib/parsers/index.d.ts.map +1 -1
  82. package/dist/lib/parsers/index.js +1 -0
  83. package/dist/lib/parsers/index.js.map +1 -1
  84. package/dist/lib/parsers/job.d.ts.map +1 -1
  85. package/dist/lib/parsers/job.js +11 -0
  86. package/dist/lib/parsers/job.js.map +1 -1
  87. package/dist/lib/parsers/source.d.ts +4 -0
  88. package/dist/lib/parsers/source.d.ts.map +1 -0
  89. package/dist/lib/parsers/source.js +107 -0
  90. package/dist/lib/parsers/source.js.map +1 -0
  91. package/dist/lib/provenance.d.ts +34 -0
  92. package/dist/lib/provenance.d.ts.map +1 -0
  93. package/dist/lib/provenance.js +694 -0
  94. package/dist/lib/provenance.js.map +1 -0
  95. package/dist/lib/types/actions.d.ts +42 -2
  96. package/dist/lib/types/actions.d.ts.map +1 -1
  97. package/dist/lib/types/actions.js +4 -0
  98. package/dist/lib/types/actions.js.map +1 -1
  99. package/dist/lib/types/contracts.d.ts +3 -0
  100. package/dist/lib/types/contracts.d.ts.map +1 -1
  101. package/dist/lib/types/definitions.d.ts +1 -0
  102. package/dist/lib/types/definitions.d.ts.map +1 -1
  103. package/dist/lib/types/index.d.ts +1 -0
  104. package/dist/lib/types/index.d.ts.map +1 -1
  105. package/dist/lib/types/index.js +1 -0
  106. package/dist/lib/types/index.js.map +1 -1
  107. package/dist/lib/types/source.d.ts +26 -0
  108. package/dist/lib/types/source.d.ts.map +1 -0
  109. package/dist/lib/types/source.js +3 -0
  110. package/dist/lib/types/source.js.map +1 -0
  111. package/dist/lib/types/values.d.ts +33 -1
  112. package/dist/lib/types/values.d.ts.map +1 -1
  113. package/package.json +4 -1
  114. package/.eslintrc.json +0 -29
  115. package/.github/workflows/ci.yml +0 -181
  116. package/CONCEPT.md +0 -24
  117. package/contracts/checked-call.huff +0 -65
  118. package/eslint.config.js +0 -48
  119. package/examples/jobs/guards-v1.yaml +0 -17
  120. package/examples/jobs/sequence-seq-0001-patch.yaml +0 -59
  121. package/examples/jobs/sequence-v1.yaml +0 -59
  122. package/examples/templates/sequence-factory-v1.yaml +0 -56
  123. package/jest.config.js +0 -25
  124. package/src/cli.ts +0 -17
  125. package/src/commands/common.ts +0 -61
  126. package/src/commands/dry.ts +0 -209
  127. package/src/commands/etherscan.ts +0 -360
  128. package/src/commands/index.ts +0 -5
  129. package/src/commands/list.ts +0 -249
  130. package/src/commands/run.ts +0 -146
  131. package/src/commands/utils.ts +0 -215
  132. package/src/index.ts +0 -67
  133. package/src/lib/__tests__/deployer-events.spec.ts +0 -338
  134. package/src/lib/__tests__/deployer.spec.ts +0 -2093
  135. package/src/lib/__tests__/network-loader.spec.ts +0 -150
  136. package/src/lib/__tests__/network-selection.spec.ts +0 -41
  137. package/src/lib/__tests__/network-utils.spec.ts +0 -230
  138. package/src/lib/artifacts/__tests__/fixtures/contract1.json +0 -19
  139. package/src/lib/artifacts/__tests__/fixtures/contract2.json +0 -19
  140. package/src/lib/artifacts/__tests__/fixtures/duplicate-name.json +0 -19
  141. package/src/lib/artifacts/__tests__/fixtures/nested/nested-contract.json +0 -18
  142. package/src/lib/artifacts/__tests__/fixtures/not-an-artifact.json +0 -8
  143. package/src/lib/artifacts/__tests__/fixtures/readme.txt +0 -2
  144. package/src/lib/contracts/__tests__/repository.spec.ts +0 -344
  145. package/src/lib/contracts/repository.ts +0 -313
  146. package/src/lib/core/__tests__/context.spec.ts +0 -37
  147. package/src/lib/core/__tests__/engine.spec.ts +0 -1889
  148. package/src/lib/core/__tests__/graph.spec.ts +0 -125
  149. package/src/lib/core/__tests__/json-integration.spec.ts +0 -425
  150. package/src/lib/core/__tests__/loader.spec.ts +0 -334
  151. package/src/lib/core/__tests__/multi-platform-verification.spec.ts +0 -406
  152. package/src/lib/core/__tests__/resolver.spec.ts +0 -2053
  153. package/src/lib/core/__tests__/static-action.spec.ts +0 -172
  154. package/src/lib/core/context.ts +0 -127
  155. package/src/lib/core/engine.ts +0 -1782
  156. package/src/lib/core/graph.ts +0 -252
  157. package/src/lib/core/loader.ts +0 -247
  158. package/src/lib/core/resolver.ts +0 -757
  159. package/src/lib/deployer.ts +0 -981
  160. package/src/lib/events/__tests__/event-system.spec.ts +0 -392
  161. package/src/lib/events/cli-adapter.ts +0 -369
  162. package/src/lib/events/emitter.ts +0 -62
  163. package/src/lib/events/index.ts +0 -3
  164. package/src/lib/events/types.ts +0 -520
  165. package/src/lib/index.ts +0 -14
  166. package/src/lib/network-loader.ts +0 -90
  167. package/src/lib/network-selection.ts +0 -73
  168. package/src/lib/network-utils.ts +0 -64
  169. package/src/lib/parsers/__tests__/buildinfo.spec.ts +0 -122
  170. package/src/lib/parsers/__tests__/fixtures/buildinfo/invalid-bytecode-buildinfo.json +0 -62
  171. package/src/lib/parsers/__tests__/fixtures/buildinfo/invalid-json.txt +0 -2
  172. package/src/lib/parsers/__tests__/fixtures/buildinfo/multi-contract-buildinfo.json +0 -89
  173. package/src/lib/parsers/__tests__/fixtures/buildinfo/no-contracts-buildinfo.json +0 -17
  174. package/src/lib/parsers/__tests__/fixtures/buildinfo/simple-buildinfo.json +0 -63
  175. package/src/lib/parsers/__tests__/fixtures/buildinfo/wrong-format.json +0 -4
  176. package/src/lib/parsers/__tests__/job.spec.ts +0 -358
  177. package/src/lib/parsers/__tests__/template.spec.ts +0 -111
  178. package/src/lib/parsers/artifact/__tests__/artifact.spec.ts +0 -117
  179. package/src/lib/parsers/artifact/__tests__/fixtures/empty-bytecode.json +0 -5
  180. package/src/lib/parsers/artifact/__tests__/fixtures/hardhat-artifact.json +0 -67
  181. package/src/lib/parsers/artifact/__tests__/fixtures/invalid-bytecode.json +0 -5
  182. package/src/lib/parsers/artifact/__tests__/fixtures/invalid-json.txt +0 -11
  183. package/src/lib/parsers/artifact/__tests__/fixtures/minimal-artifact.json +0 -5
  184. package/src/lib/parsers/artifact/__tests__/fixtures/missing-abi.json +0 -4
  185. package/src/lib/parsers/artifact/__tests__/fixtures/missing-bytecode.json +0 -11
  186. package/src/lib/parsers/artifact/__tests__/fixtures/missing-contract-name.json +0 -11
  187. package/src/lib/parsers/artifact/__tests__/fixtures/simple-artifact.json +0 -40
  188. package/src/lib/parsers/artifact/__tests__/fixtures/wrong-types.json +0 -7
  189. package/src/lib/parsers/artifact/foundry-1.2.ts +0 -72
  190. package/src/lib/parsers/artifact/index.ts +0 -27
  191. package/src/lib/parsers/artifact/types.ts +0 -9
  192. package/src/lib/parsers/buildinfo.ts +0 -127
  193. package/src/lib/parsers/constants.ts +0 -56
  194. package/src/lib/parsers/index.ts +0 -5
  195. package/src/lib/parsers/job.ts +0 -148
  196. package/src/lib/parsers/template.ts +0 -135
  197. package/src/lib/std/templates/arachnid-deterministic-deployment-proxy.yaml +0 -68
  198. package/src/lib/std/templates/assured-deployment.yaml +0 -46
  199. package/src/lib/std/templates/era-evm-predeploy.yaml +0 -35
  200. package/src/lib/std/templates/erc-2470.yaml +0 -70
  201. package/src/lib/std/templates/min-balance.yaml +0 -35
  202. package/src/lib/std/templates/nano-universal-deployer.yaml +0 -61
  203. package/src/lib/std/templates/raw-erc-2470.yaml +0 -62
  204. package/src/lib/std/templates/raw-nano-universal-deployer.yaml +0 -54
  205. package/src/lib/std/templates/raw-sequence-universal-deployer-2.yaml +0 -52
  206. package/src/lib/std/templates/sequence-universal-deployer-2.yaml +0 -61
  207. package/src/lib/types/__tests__/json-request-action.spec.ts +0 -243
  208. package/src/lib/types/__tests__/read-json-value.spec.ts +0 -278
  209. package/src/lib/types/__tests__/resolve-json-value.spec.ts +0 -769
  210. package/src/lib/types/actions.ts +0 -127
  211. package/src/lib/types/artifacts.ts +0 -21
  212. package/src/lib/types/buildinfo.ts +0 -116
  213. package/src/lib/types/conditions.ts +0 -50
  214. package/src/lib/types/contracts.ts +0 -23
  215. package/src/lib/types/definitions.ts +0 -70
  216. package/src/lib/types/index.ts +0 -8
  217. package/src/lib/types/network.ts +0 -33
  218. package/src/lib/types/project.ts +0 -9
  219. package/src/lib/types/task.ts +0 -9
  220. package/src/lib/types/values.ts +0 -150
  221. package/src/lib/utils/assertion.ts +0 -24
  222. package/src/lib/utils/validation.ts +0 -116
  223. package/src/lib/validation/contract-references.ts +0 -210
  224. package/src/lib/validation/index.ts +0 -1
  225. package/src/lib/verification/__tests__/etherscan.spec.ts +0 -710
  226. package/src/lib/verification/__tests__/sourcify.spec.ts +0 -288
  227. package/src/lib/verification/etherscan.ts +0 -547
  228. package/src/lib/verification/sourcify.ts +0 -248
  229. package/test_validation/artifacts/TestContract.json +0 -9
  230. package/test_validation/jobs/test-missing.yaml +0 -16
  231. package/test_validation/networks.yaml +0 -3
  232. package/tsconfig.json +0 -36
package/README.md CHANGED
@@ -513,6 +513,22 @@ catapult etherscan source -n 1 -a 0xdAC17F958D2ee523a2206206994597C13D831ec7 --e
513
513
  catapult etherscan source -n mainnet -a 0xdAC17F... --etherscan-api-key $ETHERSCAN_API_KEY
514
514
  ```
515
515
 
516
+ Source provenance helpers:
517
+
518
+ ```bash
519
+ # Verify every source.yaml provenance entry in the project
520
+ catapult provenance verify
521
+
522
+ # Verify only one job's provenance entries
523
+ catapult provenance verify my-job
524
+
525
+ # Verify a job and the jobs it depends on
526
+ catapult provenance verify my-job --include-dependencies
527
+
528
+ # Generate missing build-info JSON files from source.yaml provenance
529
+ catapult provenance generate
530
+ ```
531
+
516
532
  ## Built-in Actions
517
533
 
518
534
  Catapult provides several built-in primitive actions:
@@ -591,6 +607,40 @@ Make an HTTP JSON request and use the result downstream:
591
607
  method: "GET"
592
608
  ```
593
609
 
610
+ ### `assert`
611
+ Assert an on-chain invariant or value comparison. Evaluates a condition and throws a clear error if it doesn't hold (no broadcast, ever).
612
+
613
+ The action provides two ways to obtain the **ACTUAL** value:
614
+
615
+ 1. **`to` + `signature`** — performs an `eth_call` (like the `call` value resolver)
616
+ 2. **`actual`** — resolves any Value resolver (e.g. `read-balance`, `static`, etc.)
617
+
618
+ Then provide **exactly one** comparator key (`eq`, `neq`, `gt`, `lt`, `gte`, `lte`) whose value is the **EXPECTED** result. If the comparison is `false`, the action throws an error that fails the run.
619
+
620
+ Example — call a view function and compare:
621
+
622
+ ```yaml
623
+ - type: assert
624
+ name: check-deposit-manager
625
+ arguments:
626
+ to: "{{some-proxy}}"
627
+ signature: "depositManager() returns (address)"
628
+ eq: "{{expected-deposit-manager}}"
629
+ ```
630
+
631
+ Example — resolve a value and compare:
632
+
633
+ ```yaml
634
+ - type: assert
635
+ name: check-balance
636
+ arguments:
637
+ actual: { type: read-balance, arguments: { address: "{{deployer}}" } }
638
+ gte: "1000000000000000000"
639
+ message: "deployer underfunded"
640
+ ```
641
+
642
+ An optional `message` field is included in the error output for clarity.
643
+
594
644
  ## Value Resolvers
595
645
 
596
646
  Catapult includes powerful value resolvers for computing complex values:
@@ -676,6 +726,99 @@ result:
676
726
  values: []
677
727
  ```
678
728
 
729
+ ### `get-storage-at`
730
+ Read a raw EVM storage slot via `eth_getStorageAt`:
731
+
732
+ ```yaml
733
+ storageValue:
734
+ type: "get-storage-at"
735
+ arguments:
736
+ address: "{{contract.address}}"
737
+ slot: "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc" # EIP-1967 implementation slot
738
+ ```
739
+
740
+ The slot can be a hex string, a number, or a reference to another value. Returns the 32-byte storage value as a hex string.
741
+
742
+ ### `compute-slot`
743
+ Compute EVM storage slots for the common Solidity storage layouts. The result is always a 32-byte, `0x`-prefixed hex string, so it can be fed directly into `get-storage-at` or nested as the `slot` of another `compute-slot` (e.g. for nested mappings). Select a layout with `kind`:
744
+
745
+ **`mapping`** — value slot of `mapping[key]` (`keccak256(h(key) . slot)`):
746
+
747
+ ```yaml
748
+ slot:
749
+ type: "compute-slot"
750
+ arguments:
751
+ kind: "mapping"
752
+ slot: 0 # declaration slot of the mapping
753
+ key: "{{owner}}"
754
+ keyType: "address" # optional, default "uint256"; "string"/"bytes" keys are packed
755
+ ```
756
+
757
+ Nested mappings (`balances[a][b]`) are expressed by nesting `compute-slot` in the `slot` field:
758
+
759
+ ```yaml
760
+ slot:
761
+ type: "compute-slot"
762
+ arguments:
763
+ kind: "mapping"
764
+ key: "{{spender}}"
765
+ keyType: "address"
766
+ slot:
767
+ type: "compute-slot"
768
+ arguments:
769
+ kind: "mapping"
770
+ slot: 1
771
+ key: "{{owner}}"
772
+ keyType: "address"
773
+ ```
774
+
775
+ **`dynamic-array`** — element slot of a dynamic array (`keccak256(slot) + index * elementSize`). The array length lives at `slot` itself:
776
+
777
+ ```yaml
778
+ slot:
779
+ type: "compute-slot"
780
+ arguments:
781
+ kind: "dynamic-array"
782
+ slot: 3
783
+ index: 4 # optional, default 0
784
+ elementSize: 1 # optional slots-per-element, default 1
785
+ ```
786
+
787
+ **`struct-field`** — a struct field or fixed-array element (`slot + offset`):
788
+
789
+ ```yaml
790
+ slot:
791
+ type: "compute-slot"
792
+ arguments:
793
+ kind: "struct-field"
794
+ slot: "{{structBase}}"
795
+ offset: 2
796
+ ```
797
+
798
+ **`erc7201`** — ERC-7201 namespaced storage root (`keccak256(abi.encode(uint256(keccak256(id)) - 1)) & ~0xff`):
799
+
800
+ ```yaml
801
+ slot:
802
+ type: "compute-slot"
803
+ arguments:
804
+ kind: "erc7201"
805
+ id: "openzeppelin.storage.Ownable"
806
+ ```
807
+
808
+ **`eip1967`** — well-known EIP-1967 proxy slot (`keccak256("eip1967.proxy.<name>") - 1`), where `name` is `implementation`, `admin`, or `beacon`:
809
+
810
+ ```yaml
811
+ implementation:
812
+ type: "get-storage-at"
813
+ arguments:
814
+ address: "{{proxy.address}}"
815
+ slot:
816
+ type: "compute-slot"
817
+ arguments:
818
+ kind: "eip1967"
819
+ name: "implementation"
820
+ ```
821
+
679
822
  ### `verify-contract`
680
823
  ### `read-json`
681
824
  Read a value from a JSON object at a given path:
@@ -755,6 +898,53 @@ skip_condition:
755
898
  job: "prerequisite-job"
756
899
  ```
757
900
 
901
+ ### `skip_if` (pure gate, no post-execution check)
902
+
903
+ In addition to `skip_condition`, jobs support a `skip_if` field for **pure gate** semantics:
904
+
905
+ - Evaluated ONCE, BEFORE the job runs (the pre-skip decision)
906
+ - If ANY condition in `skip_if` is true → skip the whole job (status `skipped`)
907
+ - **NEVER** post-execution-checked (this is the key difference from `skip_condition`)
908
+
909
+ Use `skip_if` for jobs that generate artifacts (e.g., Safe/multisig transaction payloads for human execution out-of-band) and should skip when already in the desired state, without requiring convergence within the run itself.
910
+
911
+ ```yaml
912
+ name: "generate-upgrade-payload"
913
+ version: "1.0.0"
914
+ skip_if:
915
+ - type: "contract-exists"
916
+ arguments:
917
+ address: "{{computed_upgrade_address}}"
918
+ actions:
919
+ - name: "generate"
920
+ type: "static"
921
+ arguments:
922
+ value: "upgrade-payload-data"
923
+ ```
924
+
925
+ **Combining `skip_condition` and `skip_if`:**
926
+
927
+ If both are present, the job is skipped if ANY condition in either array is true at pre-skip time. Only `skip_condition` is post-execution-checked.
928
+
929
+ ```yaml
930
+ name: "hybrid-job"
931
+ version: "1.0.0"
932
+ skip_condition:
933
+ - type: "contract-exists"
934
+ arguments:
935
+ address: "{{deployed_address}}"
936
+ skip_if:
937
+ - type: "job-completed"
938
+ arguments:
939
+ job: "setup-job"
940
+ actions:
941
+ - name: "deploy"
942
+ template: "erc-2470"
943
+ arguments:
944
+ creationCode: "{{Contract(MyContract).creationCode}}"
945
+ salt: "0"
946
+ ```
947
+
758
948
  ## Standard Templates
759
949
 
760
950
  Catapult includes several standard templates:
@@ -785,6 +975,92 @@ creationCode: "{{Contract(path/to/MyContract).creationCode}}"
785
975
  creationCode: "{{Contract(0x1234...hash).creationCode}}"
786
976
  ```
787
977
 
978
+ Build-info files can carry optional source provenance through a nearby `source.yaml`
979
+ sidecar. Deployment runs still use committed artifacts; Catapult does not rebuild
980
+ from the source repository during `catapult run`.
981
+
982
+ ```text
983
+ jobs/my-stack/build-info/rc-5/
984
+ ├── stage1.json
985
+ └── source.yaml
986
+ ```
987
+
988
+ ```yaml
989
+ type: source
990
+
991
+ build_info:
992
+ "./stage1.json":
993
+ repo: "https://github.com/0xsequence/wallet-contracts-v3"
994
+ ref: "v3.0.0-rc.5"
995
+ commit: "0d9061f229da73edae890e6fdd1fbf753028df6d"
996
+ build: "forge build --build-info"
997
+ ```
998
+
999
+ Catapult can use the same provenance to rebuild and compare build-info files on
1000
+ demand:
1001
+
1002
+ ```bash
1003
+ # Rebuild each source provenance entry and compare it with the committed file
1004
+ catapult provenance verify
1005
+
1006
+ # Scope to one job, or include that job's dependencies
1007
+ catapult provenance verify my-job
1008
+ catapult provenance verify my-job --include-dependencies
1009
+
1010
+ # Clone/build from provenance and write missing build-info files
1011
+ catapult provenance generate
1012
+ catapult provenance generate my-job --include-dependencies
1013
+ ```
1014
+
1015
+ `provenance generate` skips existing build-info files by default; pass `--force`
1016
+ to overwrite them. Both commands clone the configured `repo`, check out `ref` or
1017
+ `commit`, run the `build` command in that checkout, and look for generated
1018
+ `build-info/*.json` files. If the build produces more than one build-info file,
1019
+ Catapult selects by matching the committed build-info `id`, then by filename; if
1020
+ neither is unique, the entry fails with an ambiguity error.
1021
+
1022
+ ### Pinning the build toolchain with `image`
1023
+
1024
+ Because provenance compares the *entire* build-info JSON (including compiler
1025
+ settings such as `evmVersion`), the rebuild must use the same toolchain that
1026
+ produced the committed file. Add an optional `image` field to run the `build`
1027
+ command inside a pinned Docker image instead of on the host:
1028
+
1029
+ ```yaml
1030
+ type: source
1031
+
1032
+ build_info:
1033
+ "./stage1.json":
1034
+ repo: "https://github.com/0xsequence/wallet-contracts-v3"
1035
+ commit: "0d9061f229da73edae890e6fdd1fbf753028df6d"
1036
+ image: "ghcr.io/foundry-rs/foundry:v1.5.1"
1037
+ build: "forge build --build-info"
1038
+ ```
1039
+
1040
+ When `image` is set, Catapult runs `docker run <image>` with the checkout
1041
+ bind-mounted at `/workspace` (also the working directory and `$HOME`), the build
1042
+ command executed via `sh -c`, and — on POSIX hosts — the container running as the
1043
+ caller's `uid:gid` so the generated files are owned by you and the temporary
1044
+ checkout can be cleaned up. This keeps the toolchain pinned per entry (different
1045
+ build-info files can use different images) and leaves the host/runner untouched;
1046
+ it requires Docker to be installed and running. The `image` field is also
1047
+ supported in per-contract `contracts` overrides.
1048
+
1049
+ If a build-info file needs a per-contract override, key it by fully-qualified
1050
+ contract name:
1051
+
1052
+ ```yaml
1053
+ type: source
1054
+
1055
+ build_info:
1056
+ "./stage1.json":
1057
+ repo: "https://github.com/0xsequence/wallet-contracts-v3"
1058
+ commit: "0d9061f229da73edae890e6fdd1fbf753028df6d"
1059
+ contracts:
1060
+ "src/Stage1Module.sol:Stage1Module":
1061
+ ref: "stage1-special"
1062
+ ```
1063
+
788
1064
  ## Output Format
789
1065
 
790
1066
  After successful deployment, Catapult generates JSON files in the `output/` directory for each job. The output format is optimized to reduce repetition:
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAInC,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAYpD"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAInC,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAapD"}
package/dist/cli.js CHANGED
@@ -12,5 +12,6 @@ function setupCommands(program) {
12
12
  program.addCommand((0, commands_1.makeListCommand)());
13
13
  program.addCommand((0, commands_1.makeUtilsCommand)());
14
14
  program.addCommand((0, etherscan_1.makeEtherscanCommand)());
15
+ program.addCommand((0, commands_1.makeProvenanceCommand)());
15
16
  }
16
17
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;AAIA,sCAYC;AAfD,yCAAiG;AACjG,oDAA2D;AAE3D,SAAgB,aAAa,CAAC,OAAgB;IAE5C,OAAO,CAAC,UAAU,CAAC,IAAA,yBAAc,GAAE,EAAE;QACnC,SAAS,EAAE,IAAI;QACf,MAAM,EAAE,KAAK;KACd,CAAC,CAAA;IAGF,OAAO,CAAC,UAAU,CAAC,IAAA,4BAAiB,GAAE,CAAC,CAAA;IACvC,OAAO,CAAC,UAAU,CAAC,IAAA,0BAAe,GAAE,CAAC,CAAA;IACrC,OAAO,CAAC,UAAU,CAAC,IAAA,2BAAgB,GAAE,CAAC,CAAA;IACtC,OAAO,CAAC,UAAU,CAAC,IAAA,gCAAoB,GAAE,CAAC,CAAA;AAC5C,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;AAIA,sCAaC;AAhBD,yCAAwH;AACxH,oDAA2D;AAE3D,SAAgB,aAAa,CAAC,OAAgB;IAE5C,OAAO,CAAC,UAAU,CAAC,IAAA,yBAAc,GAAE,EAAE;QACnC,SAAS,EAAE,IAAI;QACf,MAAM,EAAE,KAAK;KACd,CAAC,CAAA;IAGF,OAAO,CAAC,UAAU,CAAC,IAAA,4BAAiB,GAAE,CAAC,CAAA;IACvC,OAAO,CAAC,UAAU,CAAC,IAAA,0BAAe,GAAE,CAAC,CAAA;IACrC,OAAO,CAAC,UAAU,CAAC,IAAA,2BAAgB,GAAE,CAAC,CAAA;IACtC,OAAO,CAAC,UAAU,CAAC,IAAA,gCAAoB,GAAE,CAAC,CAAA;IAC1C,OAAO,CAAC,UAAU,CAAC,IAAA,gCAAqB,GAAE,CAAC,CAAA;AAC7C,CAAC"}
@@ -3,4 +3,5 @@ export * from './dry';
3
3
  export * from './list';
4
4
  export * from './utils';
5
5
  export * from './etherscan';
6
+ export * from './provenance';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAA;AACrB,cAAc,OAAO,CAAA;AACrB,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAA;AACrB,cAAc,OAAO,CAAA;AACrB,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA"}
@@ -19,4 +19,5 @@ __exportStar(require("./dry"), exports);
19
19
  __exportStar(require("./list"), exports);
20
20
  __exportStar(require("./utils"), exports);
21
21
  __exportStar(require("./etherscan"), exports);
22
+ __exportStar(require("./provenance"), exports);
22
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAqB;AACrB,wCAAqB;AACrB,yCAAsB;AACtB,0CAAuB;AACvB,8CAA2B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAqB;AACrB,wCAAqB;AACrB,yCAAsB;AACtB,0CAAuB;AACvB,8CAA2B;AAC3B,+CAA4B"}
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAoBnC,wBAAgB,eAAe,IAAI,OAAO,CAoOzC"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA2BnC,wBAAgB,eAAe,IAAI,OAAO,CA0OzC"}
@@ -43,6 +43,12 @@ const path = __importStar(require("path"));
43
43
  const common_1 = require("./common");
44
44
  const network_loader_1 = require("../lib/network-loader");
45
45
  const index_1 = require("../index");
46
+ function formatSourceProvenance(provenance) {
47
+ const ref = provenance.commit || provenance.ref;
48
+ const suffix = ref ? ` @ ${ref}` : '';
49
+ const build = provenance.build ? ` (${provenance.build})` : '';
50
+ return `${provenance.repo}${suffix}${build}`;
51
+ }
46
52
  function makeListCommand() {
47
53
  const list = new commander_1.Command('list')
48
54
  .description('List project resources like jobs, contracts, and networks');
@@ -101,6 +107,12 @@ function makeListCommand() {
101
107
  if (contract.buildInfoId) {
102
108
  console.log(` ${chalk_1.default.gray('Build Info ID:')} ${contract.buildInfoId}`);
103
109
  }
110
+ if (contract._sourceProvenance && contract._sourceProvenance.size > 0) {
111
+ for (const [buildInfoPath, provenance] of contract._sourceProvenance.entries()) {
112
+ const relativeBuildInfoPath = path.relative(options.project, buildInfoPath);
113
+ console.log(` ${chalk_1.default.gray('Provenance:')} ${formatSourceProvenance(provenance)} ${chalk_1.default.gray(`[${relativeBuildInfoPath}]`)}`);
114
+ }
115
+ }
104
116
  console.log(` ${chalk_1.default.gray('Sources:')} ${Array.from(contract._sources).map(p => path.relative(options.project, p)).join(', ')}`);
105
117
  }
106
118
  }
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function makeProvenanceCommand(): Command;
3
+ //# sourceMappingURL=provenance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provenance.d.ts","sourceRoot":"","sources":["../../src/commands/provenance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAoBnC,wBAAgB,qBAAqB,IAAI,OAAO,CAuD/C"}
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.makeProvenanceCommand = makeProvenanceCommand;
40
+ const commander_1 = require("commander");
41
+ const chalk_1 = __importDefault(require("chalk"));
42
+ const path = __importStar(require("path"));
43
+ const common_1 = require("./common");
44
+ const index_1 = require("../index");
45
+ const provenance_1 = require("../lib/provenance");
46
+ function makeProvenanceCommand() {
47
+ const provenance = new commander_1.Command('provenance')
48
+ .description('Work with build-info source provenance');
49
+ const verify = new commander_1.Command('verify')
50
+ .description('Verify committed build-info files against source provenance')
51
+ .argument('[jobs...]', 'Optional job names or patterns to verify. Without jobs, verifies all provenance in the project.')
52
+ .option('--include-dependencies', 'When jobs are provided, include their dependency jobs too.', false);
53
+ (0, common_1.projectOption)(verify);
54
+ (0, common_1.noStdOption)(verify);
55
+ (0, common_1.verbosityOption)(verify);
56
+ verify.action(async (jobs, options) => {
57
+ try {
58
+ (0, index_1.setVerbosity)(options.verbose);
59
+ const result = await (0, provenance_1.verifySourceProvenance)(options.project, {
60
+ jobs,
61
+ includeDependencies: options.includeDependencies === true,
62
+ loadStdTemplates: options.std !== false
63
+ });
64
+ printRunResult('verify', options.project, result);
65
+ exitIfFailed(result);
66
+ }
67
+ catch (error) {
68
+ console.error(chalk_1.default.red('Error verifying provenance:'), error instanceof Error ? error.message : String(error));
69
+ process.exit(1);
70
+ }
71
+ });
72
+ const generate = new commander_1.Command('generate')
73
+ .description('Generate missing build-info files from source provenance')
74
+ .argument('[jobs...]', 'Optional job names or patterns to generate. Without jobs, generates for all provenance in the project.')
75
+ .option('--include-dependencies', 'When jobs are provided, include their dependency jobs too.', false)
76
+ .option('--force', 'Overwrite existing build-info files.', false);
77
+ (0, common_1.projectOption)(generate);
78
+ (0, common_1.noStdOption)(generate);
79
+ (0, common_1.verbosityOption)(generate);
80
+ generate.action(async (jobs, options) => {
81
+ try {
82
+ (0, index_1.setVerbosity)(options.verbose);
83
+ const result = await (0, provenance_1.generateBuildInfoFromSourceProvenance)(options.project, {
84
+ jobs,
85
+ includeDependencies: options.includeDependencies === true,
86
+ loadStdTemplates: options.std !== false,
87
+ force: options.force === true
88
+ });
89
+ printRunResult('generate', options.project, result);
90
+ exitIfFailed(result);
91
+ }
92
+ catch (error) {
93
+ console.error(chalk_1.default.red('Error generating build-info from provenance:'), error instanceof Error ? error.message : String(error));
94
+ process.exit(1);
95
+ }
96
+ });
97
+ provenance.addCommand(verify);
98
+ provenance.addCommand(generate);
99
+ return provenance;
100
+ }
101
+ function printRunResult(command, projectRoot, result) {
102
+ for (const warning of result.warnings) {
103
+ console.warn(chalk_1.default.yellow(warning));
104
+ }
105
+ if (result.entries.length === 0) {
106
+ console.log(chalk_1.default.yellow('No source provenance entries found.'));
107
+ return;
108
+ }
109
+ for (const item of result.results) {
110
+ printOperationResult(projectRoot, item);
111
+ }
112
+ const failed = result.results.filter(item => item.status === 'failed').length;
113
+ const skipped = result.results.filter(item => item.status === 'skipped').length;
114
+ const completed = result.results.length - failed - skipped;
115
+ const verb = command === 'verify' ? 'verified' : 'generated';
116
+ if (failed > 0) {
117
+ console.log(chalk_1.default.red(`Provenance ${command} completed with ${failed} failure(s), ${completed} ${verb}, ${skipped} skipped.`));
118
+ }
119
+ else {
120
+ console.log(chalk_1.default.green(`Provenance ${command} completed: ${completed} ${verb}, ${skipped} skipped.`));
121
+ }
122
+ }
123
+ function printOperationResult(projectRoot, result) {
124
+ const target = path.relative(projectRoot, result.entry.buildInfoPath);
125
+ const source = path.relative(projectRoot, result.entry.sourceDocumentPath);
126
+ const prefix = result.status === 'failed'
127
+ ? chalk_1.default.red('failed')
128
+ : result.status === 'skipped'
129
+ ? chalk_1.default.yellow('skipped')
130
+ : chalk_1.default.green(result.status);
131
+ console.log(`${prefix} ${target} ${chalk_1.default.gray(`[${source}]`)} - ${result.message}`);
132
+ }
133
+ function exitIfFailed(result) {
134
+ if (result.results.some(item => item.status === 'failed')) {
135
+ process.exit(1);
136
+ }
137
+ }
138
+ //# sourceMappingURL=provenance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provenance.js","sourceRoot":"","sources":["../../src/commands/provenance.ts"],"names":[],"mappings":"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"}