@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
@@ -0,0 +1,205 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const fs = __importStar(require("fs/promises"));
37
+ const os = __importStar(require("os"));
38
+ const path = __importStar(require("path"));
39
+ const child_process_1 = require("child_process");
40
+ const util_1 = require("util");
41
+ const provenance_1 = require("../provenance");
42
+ const execFileAsync = (0, util_1.promisify)(child_process_1.execFile);
43
+ async function git(cwd, args) {
44
+ const result = await execFileAsync('git', args, { cwd });
45
+ return String(result.stdout).trim();
46
+ }
47
+ async function writeFile(filePath, content) {
48
+ await fs.mkdir(path.dirname(filePath), { recursive: true });
49
+ await fs.writeFile(filePath, content);
50
+ }
51
+ function sourceYaml(repo, commit, build) {
52
+ return `
53
+ type: source
54
+ build_info:
55
+ "./stage1.json":
56
+ repo: ${JSON.stringify(repo)}
57
+ commit: ${JSON.stringify(commit)}
58
+ build: ${JSON.stringify(build)}
59
+ `;
60
+ }
61
+ function jobYaml(name, dependsOn = []) {
62
+ const depends = dependsOn.length > 0 ? `depends_on: ${JSON.stringify(dependsOn)}\n` : '';
63
+ return `
64
+ name: ${JSON.stringify(name)}
65
+ version: "1.0.0"
66
+ ${depends}actions:
67
+ - name: "noop"
68
+ type: "static"
69
+ arguments:
70
+ value: true
71
+ `;
72
+ }
73
+ describe('source provenance operations', () => {
74
+ let tempDir;
75
+ beforeEach(async () => {
76
+ tempDir = await fs.mkdtemp(path.join(os.tmpdir(), 'catapult-provenance-test-'));
77
+ });
78
+ afterEach(async () => {
79
+ await fs.rm(tempDir, { recursive: true, force: true });
80
+ });
81
+ it('collects source provenance entries even when build-info is missing', async () => {
82
+ const projectRoot = path.join(tempDir, 'project');
83
+ const sourcePath = path.join(projectRoot, 'jobs', 'demo', 'build-info', 'source.yaml');
84
+ await writeFile(sourcePath, sourceYaml('https://github.com/example/repo', 'abc123', 'forge build --build-info'));
85
+ const result = await (0, provenance_1.collectSourceProvenanceEntries)(projectRoot);
86
+ expect(result.warnings).toEqual([]);
87
+ expect(result.entries).toHaveLength(1);
88
+ expect(result.entries[0]).toMatchObject({
89
+ sourceDocumentPath: sourcePath,
90
+ buildInfoRef: './stage1.json',
91
+ buildInfoPath: path.join(projectRoot, 'jobs', 'demo', 'build-info', 'stage1.json')
92
+ });
93
+ });
94
+ it('can scope provenance entries to a job and its dependencies', async () => {
95
+ const projectRoot = path.join(tempDir, 'project');
96
+ await writeFile(path.join(projectRoot, 'jobs', 'base.yaml'), jobYaml('base'));
97
+ await writeFile(path.join(projectRoot, 'jobs', 'child.yaml'), jobYaml('child', ['base']));
98
+ await writeFile(path.join(projectRoot, 'jobs', 'base', 'build-info', 'source.yaml'), sourceYaml('https://github.com/example/base', 'abc123', 'build-base'));
99
+ await writeFile(path.join(projectRoot, 'jobs', 'child', 'build-info', 'source.yaml'), sourceYaml('https://github.com/example/child', 'def456', 'build-child'));
100
+ const childOnly = await (0, provenance_1.collectSourceProvenanceEntries)(projectRoot, {
101
+ jobs: ['child'],
102
+ loadStdTemplates: false
103
+ });
104
+ const withDependencies = await (0, provenance_1.collectSourceProvenanceEntries)(projectRoot, {
105
+ jobs: ['child'],
106
+ includeDependencies: true,
107
+ loadStdTemplates: false
108
+ });
109
+ expect(childOnly.entries.map(entry => entry.provenance.repo)).toEqual(['https://github.com/example/child']);
110
+ expect(withDependencies.entries.map(entry => entry.provenance.repo).sort()).toEqual([
111
+ 'https://github.com/example/base',
112
+ 'https://github.com/example/child'
113
+ ]);
114
+ });
115
+ it('generates missing build-info from a local Git provenance repo', async () => {
116
+ const { projectRoot, expectedBuildInfo } = await createProjectWithLocalProvenanceRepo();
117
+ const result = await (0, provenance_1.generateBuildInfoFromSourceProvenance)(projectRoot);
118
+ const generatedPath = path.join(projectRoot, 'jobs', 'demo', 'build-info', 'stage1.json');
119
+ const generatedJson = JSON.parse(await fs.readFile(generatedPath, 'utf-8'));
120
+ expect(result.results).toHaveLength(1);
121
+ expect(result.results[0].status).toBe('generated');
122
+ expect(generatedJson).toEqual(expectedBuildInfo);
123
+ });
124
+ it('verifies generated build-info and reports mismatches', async () => {
125
+ const { projectRoot } = await createProjectWithLocalProvenanceRepo();
126
+ const targetPath = path.join(projectRoot, 'jobs', 'demo', 'build-info', 'stage1.json');
127
+ await (0, provenance_1.generateBuildInfoFromSourceProvenance)(projectRoot);
128
+ const verified = await (0, provenance_1.verifySourceProvenance)(projectRoot);
129
+ expect(verified.results[0].status).toBe('verified');
130
+ const changed = JSON.parse(await fs.readFile(targetPath, 'utf-8'));
131
+ changed.solcVersion = '0.8.1';
132
+ await fs.writeFile(targetPath, JSON.stringify(changed, null, 2));
133
+ const mismatch = await (0, provenance_1.verifySourceProvenance)(projectRoot);
134
+ expect(mismatch.results[0].status).toBe('failed');
135
+ expect(mismatch.results[0].message).toContain('does not match');
136
+ expect(mismatch.results[0].message).toContain('$.solcVersion');
137
+ });
138
+ it('normalizes checkout-local build-info paths and top-level ids while verifying', async () => {
139
+ const { projectRoot } = await createProjectWithLocalProvenanceRepo({ checkoutSensitiveBuildInfo: true });
140
+ const targetPath = path.join(projectRoot, 'jobs', 'demo', 'build-info', 'stage1.json');
141
+ await (0, provenance_1.generateBuildInfoFromSourceProvenance)(projectRoot);
142
+ const generatedJson = JSON.parse(await fs.readFile(targetPath, 'utf-8'));
143
+ expect(generatedJson.id).toContain('catapult-provenance-');
144
+ expect(generatedJson.input.basePath).toContain('catapult-provenance-');
145
+ const verified = await (0, provenance_1.verifySourceProvenance)(projectRoot);
146
+ expect(verified.results[0].status).toBe('verified');
147
+ });
148
+ async function createProjectWithLocalProvenanceRepo(options = {}) {
149
+ const sourceRepo = path.join(tempDir, 'source-repo');
150
+ const projectRoot = path.join(tempDir, 'project');
151
+ await fs.mkdir(sourceRepo, { recursive: true });
152
+ const expectedBuildInfo = {
153
+ _format: 'hh-sol-build-info-1',
154
+ id: 'stage1',
155
+ solcVersion: '0.8.0',
156
+ input: {
157
+ language: 'Solidity',
158
+ sources: {}
159
+ },
160
+ output: {
161
+ contracts: {}
162
+ }
163
+ };
164
+ const buildInfoScript = options.checkoutSensitiveBuildInfo
165
+ ? `
166
+ const fs = require('fs')
167
+ const path = require('path')
168
+ const buildInfo = {
169
+ _format: 'hh-sol-build-info-1',
170
+ id: path.basename(path.dirname(__dirname)),
171
+ solcVersion: '0.8.0',
172
+ input: {
173
+ language: 'Solidity',
174
+ basePath: __dirname,
175
+ allowPaths: [__dirname, path.join(__dirname, 'lib')],
176
+ includePaths: [__dirname],
177
+ sources: {}
178
+ },
179
+ output: {
180
+ contracts: {}
181
+ }
182
+ }
183
+ fs.mkdirSync(path.join(__dirname, 'out', 'build-info'), { recursive: true })
184
+ fs.writeFileSync(path.join(__dirname, 'out', 'build-info', 'stage1.json'), JSON.stringify(buildInfo, null, 2))
185
+ `
186
+ : `
187
+ const fs = require('fs')
188
+ const path = require('path')
189
+ fs.mkdirSync(path.join(__dirname, 'out', 'build-info'), { recursive: true })
190
+ fs.writeFileSync(path.join(__dirname, 'out', 'build-info', 'stage1.json'), JSON.stringify(${JSON.stringify(expectedBuildInfo)}, null, 2))
191
+ `;
192
+ await writeFile(path.join(sourceRepo, 'build-info.js'), `
193
+ ${buildInfoScript.trim()}
194
+ `);
195
+ await git(sourceRepo, ['init']);
196
+ await git(sourceRepo, ['config', 'user.email', 'catapult@example.com']);
197
+ await git(sourceRepo, ['config', 'user.name', 'Catapult Test']);
198
+ await git(sourceRepo, ['add', 'build-info.js']);
199
+ await git(sourceRepo, ['commit', '-m', 'add build script']);
200
+ const commit = await git(sourceRepo, ['rev-parse', 'HEAD']);
201
+ await writeFile(path.join(projectRoot, 'jobs', 'demo', 'build-info', 'source.yaml'), sourceYaml(sourceRepo, commit, 'node build-info.js'));
202
+ return { projectRoot, expectedBuildInfo };
203
+ }
204
+ });
205
+ //# sourceMappingURL=provenance.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provenance.spec.js","sourceRoot":"","sources":["../../../src/lib/__tests__/provenance.spec.ts"],"names":[],"mappings":"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"}
@@ -36,6 +36,63 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  const fs = __importStar(require("fs/promises"));
37
37
  const path = __importStar(require("path"));
38
38
  const repository_1 = require("../repository");
39
+ function buildInfoContent() {
40
+ return JSON.stringify({
41
+ _format: 'hh-sol-build-info-1',
42
+ id: 'test-build-id',
43
+ solcVersion: '0.8.0',
44
+ solcLongVersion: '0.8.0+commit.c7dfd78e',
45
+ input: {
46
+ language: 'Solidity',
47
+ sources: {
48
+ 'src/Stage1Module.sol': {
49
+ content: 'contract Stage1Module {}'
50
+ },
51
+ 'src/Stage2Module.sol': {
52
+ content: 'contract Stage2Module {}'
53
+ }
54
+ },
55
+ settings: {
56
+ outputSelection: {
57
+ '*': {
58
+ '*': ['abi', 'evm.bytecode', 'evm.deployedBytecode']
59
+ }
60
+ }
61
+ }
62
+ },
63
+ output: {
64
+ contracts: {
65
+ 'src/Stage1Module.sol': {
66
+ Stage1Module: {
67
+ abi: [],
68
+ evm: {
69
+ bytecode: {
70
+ object: '0x608060405234801561001057600080fd5b50111111'
71
+ },
72
+ deployedBytecode: {
73
+ object: '0x608060405234801561001057600080fd5b50111112'
74
+ }
75
+ }
76
+ }
77
+ },
78
+ 'src/Stage2Module.sol': {
79
+ Stage2Module: {
80
+ abi: [],
81
+ evm: {
82
+ bytecode: {
83
+ object: '0x608060405234801561001057600080fd5b50222222'
84
+ },
85
+ deployedBytecode: {
86
+ object: '0x608060405234801561001057600080fd5b50222223'
87
+ }
88
+ }
89
+ }
90
+ }
91
+ },
92
+ sources: {}
93
+ }
94
+ });
95
+ }
39
96
  describe('ContractRepository', () => {
40
97
  let repository;
41
98
  let tempDir;
@@ -128,6 +185,192 @@ describe('ContractRepository', () => {
128
185
  expect(contract.source).toBe('contract TestContract { function test() public {} }');
129
186
  expect(contract._sources.has(buildInfoPath)).toBe(true);
130
187
  });
188
+ it('should attach source provenance from build-info sidecars', async () => {
189
+ const buildInfoDir = path.join(tempDir, 'build-info', 'rc-5');
190
+ await fs.mkdir(buildInfoDir, { recursive: true });
191
+ const buildInfoPath = path.join(buildInfoDir, 'stage1.json');
192
+ const sourcePath = path.join(buildInfoDir, 'source.yaml');
193
+ await fs.writeFile(buildInfoPath, buildInfoContent());
194
+ await fs.writeFile(sourcePath, `
195
+ type: source
196
+ build_info:
197
+ "./stage1.json":
198
+ repo: "https://github.com/0xsequence/wallet-contracts-v3"
199
+ ref: "v3.0.0-rc.5"
200
+ commit: "0d9061f229da73edae890e6fdd1fbf753028df6d"
201
+ build: "forge build --build-info"
202
+ contracts:
203
+ "src/Stage1Module.sol:Stage1Module":
204
+ ref: "stage1-special"
205
+ `);
206
+ await repository.loadFrom(tempDir);
207
+ const stage1 = repository.lookup(`${buildInfoPath}:Stage1Module`);
208
+ const stage2 = repository.lookup(`${buildInfoPath}:Stage2Module`);
209
+ expect(stage1).not.toBeNull();
210
+ expect(stage2).not.toBeNull();
211
+ expect(stage1.sourceProvenance).toMatchObject({
212
+ repo: 'https://github.com/0xsequence/wallet-contracts-v3',
213
+ ref: 'stage1-special',
214
+ commit: '0d9061f229da73edae890e6fdd1fbf753028df6d',
215
+ build: 'forge build --build-info',
216
+ sourceDocumentPath: sourcePath,
217
+ buildInfoPath
218
+ });
219
+ expect(stage2.sourceProvenance).toMatchObject({
220
+ repo: 'https://github.com/0xsequence/wallet-contracts-v3',
221
+ ref: 'v3.0.0-rc.5',
222
+ commit: '0d9061f229da73edae890e6fdd1fbf753028df6d'
223
+ });
224
+ expect(stage1._sourceProvenance?.get(buildInfoPath)?.ref).toBe('stage1-special');
225
+ });
226
+ it('should skip source sidecars that point to missing build-info files', async () => {
227
+ const buildInfoDir = path.join(tempDir, 'build-info', 'rc-5');
228
+ await fs.mkdir(buildInfoDir, { recursive: true });
229
+ const warnSpy = jest.spyOn(console, 'warn').mockImplementation(() => undefined);
230
+ await fs.writeFile(path.join(buildInfoDir, 'source.yaml'), `
231
+ type: source
232
+ build_info:
233
+ "./missing.json":
234
+ repo: "https://github.com/0xsequence/wallet-contracts-v3"
235
+ `);
236
+ try {
237
+ await expect(repository.loadFrom(tempDir)).resolves.toBeUndefined();
238
+ expect(warnSpy).toHaveBeenCalledWith(expect.stringContaining('does not exist'));
239
+ }
240
+ finally {
241
+ warnSpy.mockRestore();
242
+ }
243
+ });
244
+ it('should skip malformed source sidecars without blocking build-info loading', async () => {
245
+ const buildInfoDir = path.join(tempDir, 'build-info', 'rc-5');
246
+ await fs.mkdir(buildInfoDir, { recursive: true });
247
+ const buildInfoPath = path.join(buildInfoDir, 'stage1.json');
248
+ const warnSpy = jest.spyOn(console, 'warn').mockImplementation(() => undefined);
249
+ await fs.writeFile(buildInfoPath, buildInfoContent());
250
+ await fs.writeFile(path.join(buildInfoDir, 'source.yaml'), `
251
+ type: source
252
+ build_info:
253
+ "./stage1.json":
254
+ ref: "v3.0.0-rc.5"
255
+ `);
256
+ try {
257
+ await repository.loadFrom(tempDir);
258
+ }
259
+ finally {
260
+ warnSpy.mockRestore();
261
+ }
262
+ const stage1 = repository.lookup(`${buildInfoPath}:Stage1Module`);
263
+ expect(stage1).not.toBeNull();
264
+ expect(stage1.sourceProvenance).toBeUndefined();
265
+ });
266
+ it('should keep valid source sidecar entries when sibling entries are invalid', async () => {
267
+ const buildInfoDir = path.join(tempDir, 'build-info', 'rc-5');
268
+ await fs.mkdir(buildInfoDir, { recursive: true });
269
+ const buildInfoPath = path.join(buildInfoDir, 'stage1.json');
270
+ const warnSpy = jest.spyOn(console, 'warn').mockImplementation(() => undefined);
271
+ await fs.writeFile(buildInfoPath, buildInfoContent());
272
+ await fs.writeFile(path.join(buildInfoDir, 'source.yaml'), `
273
+ type: source
274
+ build_info:
275
+ "./stage1.json":
276
+ repo: "https://github.com/0xsequence/wallet-contracts-v3"
277
+ commit: "0d9061f229da73edae890e6fdd1fbf753028df6d"
278
+ "./bad.json":
279
+ typo_field: true
280
+ `);
281
+ try {
282
+ await repository.loadFrom(tempDir);
283
+ const stage1 = repository.lookup(`${buildInfoPath}:Stage1Module`);
284
+ expect(stage1).not.toBeNull();
285
+ expect(stage1.sourceProvenance).toMatchObject({
286
+ repo: 'https://github.com/0xsequence/wallet-contracts-v3',
287
+ commit: '0d9061f229da73edae890e6fdd1fbf753028df6d'
288
+ });
289
+ expect(warnSpy).toHaveBeenCalledWith(expect.stringContaining('typo_field is not supported'));
290
+ }
291
+ finally {
292
+ warnSpy.mockRestore();
293
+ }
294
+ });
295
+ it('should skip source sidecar entries that do not point to build-info JSON', async () => {
296
+ const buildInfoDir = path.join(tempDir, 'build-info', 'rc-5');
297
+ await fs.mkdir(buildInfoDir, { recursive: true });
298
+ const buildInfoPath = path.join(buildInfoDir, 'stage1.json');
299
+ const warnSpy = jest.spyOn(console, 'warn').mockImplementation(() => undefined);
300
+ await fs.writeFile(buildInfoPath, buildInfoContent());
301
+ await fs.writeFile(path.join(buildInfoDir, 'source.yaml'), `
302
+ type: source
303
+ build_info:
304
+ "./stage1.txt":
305
+ repo: "https://github.com/0xsequence/wallet-contracts-v3"
306
+ `);
307
+ try {
308
+ await repository.loadFrom(tempDir);
309
+ const stage1 = repository.lookup(`${buildInfoPath}:Stage1Module`);
310
+ expect(stage1).not.toBeNull();
311
+ expect(stage1.sourceProvenance).toBeUndefined();
312
+ expect(warnSpy).toHaveBeenCalledWith(expect.stringContaining('does not point to a build-info JSON file'));
313
+ }
314
+ finally {
315
+ warnSpy.mockRestore();
316
+ }
317
+ });
318
+ it('should skip duplicate source provenance entries for the same build-info file', async () => {
319
+ const buildInfoDir = path.join(tempDir, 'build-info', 'rc-5');
320
+ await fs.mkdir(buildInfoDir, { recursive: true });
321
+ const buildInfoPath = path.join(buildInfoDir, 'stage1.json');
322
+ const warnSpy = jest.spyOn(console, 'warn').mockImplementation(() => undefined);
323
+ await fs.writeFile(buildInfoPath, buildInfoContent());
324
+ await fs.writeFile(path.join(buildInfoDir, 'source.yaml'), `
325
+ type: source
326
+ build_info:
327
+ "./stage1.json":
328
+ repo: "https://github.com/0xsequence/wallet-contracts-v3-a"
329
+ `);
330
+ await fs.writeFile(path.join(buildInfoDir, 'source.yml'), `
331
+ type: source
332
+ build_info:
333
+ "./stage1.json":
334
+ repo: "https://github.com/0xsequence/wallet-contracts-v3-b"
335
+ `);
336
+ try {
337
+ await repository.loadFrom(tempDir);
338
+ const stage1 = repository.lookup(`${buildInfoPath}:Stage1Module`);
339
+ expect(stage1).not.toBeNull();
340
+ expect(stage1._sourceProvenance?.size).toBe(1);
341
+ expect(warnSpy).toHaveBeenCalledWith(expect.stringContaining('duplicate provenance'));
342
+ }
343
+ finally {
344
+ warnSpy.mockRestore();
345
+ }
346
+ });
347
+ it('should select preferred source provenance deterministically for duplicate bytecode', async () => {
348
+ const olderBuildInfoDir = path.join(tempDir, 'build-info', 'b-release');
349
+ const newerBuildInfoDir = path.join(tempDir, 'build-info', 'a-release');
350
+ await fs.mkdir(olderBuildInfoDir, { recursive: true });
351
+ await fs.mkdir(newerBuildInfoDir, { recursive: true });
352
+ const olderBuildInfoPath = path.join(olderBuildInfoDir, 'stage1.json');
353
+ const newerBuildInfoPath = path.join(newerBuildInfoDir, 'stage1.json');
354
+ await fs.writeFile(olderBuildInfoPath, buildInfoContent());
355
+ await fs.writeFile(newerBuildInfoPath, buildInfoContent());
356
+ await fs.writeFile(path.join(olderBuildInfoDir, 'source.yaml'), `
357
+ type: source
358
+ build_info:
359
+ "./stage1.json":
360
+ repo: "https://github.com/0xsequence/wallet-contracts-v3-old"
361
+ `);
362
+ await fs.writeFile(path.join(newerBuildInfoDir, 'source.yaml'), `
363
+ type: source
364
+ build_info:
365
+ "./stage1.json":
366
+ repo: "https://github.com/0xsequence/wallet-contracts-v3-new"
367
+ `);
368
+ await repository.loadFrom(tempDir);
369
+ const stage1 = repository.lookup(`${newerBuildInfoPath}:Stage1Module`);
370
+ expect(stage1).not.toBeNull();
371
+ expect(stage1._sourceProvenance?.size).toBe(2);
372
+ expect(stage1.sourceProvenance?.repo).toBe('https://github.com/0xsequence/wallet-contracts-v3-new');
373
+ });
131
374
  it('should hydrate contracts from multiple source files', async () => {
132
375
  const artifactContent = JSON.stringify({
133
376
  contractName: 'TestContract',
@@ -1 +1 @@
1
- {"version":3,"file":"repository.spec.js","sourceRoot":"","sources":["../../../../src/lib/contracts/__tests__/repository.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repository.spec.js","sourceRoot":"","sources":["../../../../src/lib/contracts/__tests__/repository.spec.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,15 @@
1
1
  import { Contract } from '../types/contracts';
2
+ import { SourceProvenance } from '../types/source';
2
3
  export declare class ContractRepository {
3
4
  private contracts;
4
5
  private referenceMap;
5
6
  private ambiguousReferences;
7
+ private sourceProvenanceByBuildInfoPath;
6
8
  loadFrom(projectRoot: string): Promise<void>;
7
9
  private parseAndHydrateFromFile;
8
10
  private hydrateContract;
11
+ private getSourceProvenance;
12
+ private selectPreferredSourceProvenance;
9
13
  disambiguateReferences(): void;
10
14
  lookup(reference: string, contextPath?: string): Contract | null;
11
15
  getAll(): Contract[];
@@ -19,9 +23,13 @@ export declare class ContractRepository {
19
23
  source?: string;
20
24
  compiler?: any;
21
25
  buildInfoId?: string;
26
+ sourceProvenance?: SourceProvenance;
22
27
  _path: string;
23
28
  _hash: string;
24
29
  }): void;
25
- private findContractFiles;
30
+ private findProjectFiles;
31
+ private loadSourceProvenanceFiles;
32
+ private pathExists;
33
+ private warnSourceProvenance;
26
34
  }
27
35
  //# sourceMappingURL=repository.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../../src/lib/contracts/repository.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAI7C,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,YAAY,CAAmC;IACvD,OAAO,CAAC,mBAAmB,CAAyB;IAKvC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAqB3C,uBAAuB;IAuCrC,OAAO,CAAC,eAAe;IA8DhB,sBAAsB,IAAI,IAAI;IAwD9B,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAsDhE,MAAM,IAAI,QAAQ,EAAE;IAOpB,sBAAsB,IAAI,MAAM,EAAE;IAQlC,aAAa,CAAC,YAAY,EAAE;QACjC,YAAY,EAAE,MAAM,CAAA;QACpB,GAAG,EAAE,GAAG,EAAE,CAAA;QACV,QAAQ,EAAE,MAAM,CAAA;QAChB,gBAAgB,CAAC,EAAE,MAAM,CAAA;QACzB,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,QAAQ,CAAC,EAAE,GAAG,CAAA;QACd,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,KAAK,EAAE,MAAM,CAAA;QACb,KAAK,EAAE,MAAM,CAAA;KACd,GAAG,IAAI;YAmBM,iBAAiB;CAoBhC"}
1
+ {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../../src/lib/contracts/repository.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAA6B,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAK7E,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,YAAY,CAAmC;IACvD,OAAO,CAAC,mBAAmB,CAAyB;IACpD,OAAO,CAAC,+BAA+B,CAAoD;IAK9E,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAoB3C,uBAAuB;IAyCrC,OAAO,CAAC,eAAe;IAqEvB,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,+BAA+B;IAQhC,sBAAsB,IAAI,IAAI;IAwD9B,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAsDhE,MAAM,IAAI,QAAQ,EAAE;IAOpB,sBAAsB,IAAI,MAAM,EAAE;IAQlC,aAAa,CAAC,YAAY,EAAE;QACjC,YAAY,EAAE,MAAM,CAAA;QACpB,GAAG,EAAE,GAAG,EAAE,CAAA;QACV,QAAQ,EAAE,MAAM,CAAA;QAChB,gBAAgB,CAAC,EAAE,MAAM,CAAA;QACzB,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,QAAQ,CAAC,EAAE,GAAG,CAAA;QACd,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;QACnC,KAAK,EAAE,MAAM,CAAA;QACb,KAAK,EAAE,MAAM,CAAA;KACd,GAAG,IAAI;YAiBM,gBAAgB;YA+BhB,yBAAyB;YAgDzB,UAAU;IASxB,OAAO,CAAC,oBAAoB;CAG7B"}