@fluxpointstudios/orynq-sdk-midnight-prover 0.1.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 (82) hide show
  1. package/LICENSE +21 -0
  2. package/dist/index.d.ts +78 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +89 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/linking/cardano-anchor-link.d.ts +250 -0
  7. package/dist/linking/cardano-anchor-link.d.ts.map +1 -0
  8. package/dist/linking/cardano-anchor-link.js +447 -0
  9. package/dist/linking/cardano-anchor-link.js.map +1 -0
  10. package/dist/linking/index.d.ts +33 -0
  11. package/dist/linking/index.d.ts.map +1 -0
  12. package/dist/linking/index.js +31 -0
  13. package/dist/linking/index.js.map +1 -0
  14. package/dist/linking/proof-publication.d.ts +217 -0
  15. package/dist/linking/proof-publication.d.ts.map +1 -0
  16. package/dist/linking/proof-publication.js +385 -0
  17. package/dist/linking/proof-publication.js.map +1 -0
  18. package/dist/midnight/index.d.ts +30 -0
  19. package/dist/midnight/index.d.ts.map +1 -0
  20. package/dist/midnight/index.js +27 -0
  21. package/dist/midnight/index.js.map +1 -0
  22. package/dist/midnight/proof-server-client.d.ts +236 -0
  23. package/dist/midnight/proof-server-client.d.ts.map +1 -0
  24. package/dist/midnight/proof-server-client.js +422 -0
  25. package/dist/midnight/proof-server-client.js.map +1 -0
  26. package/dist/midnight/public-inputs.d.ts +134 -0
  27. package/dist/midnight/public-inputs.d.ts.map +1 -0
  28. package/dist/midnight/public-inputs.js +338 -0
  29. package/dist/midnight/public-inputs.js.map +1 -0
  30. package/dist/midnight/witness-builder.d.ts +119 -0
  31. package/dist/midnight/witness-builder.d.ts.map +1 -0
  32. package/dist/midnight/witness-builder.js +238 -0
  33. package/dist/midnight/witness-builder.js.map +1 -0
  34. package/dist/proofs/hash-chain-proof.d.ts +171 -0
  35. package/dist/proofs/hash-chain-proof.d.ts.map +1 -0
  36. package/dist/proofs/hash-chain-proof.js +437 -0
  37. package/dist/proofs/hash-chain-proof.js.map +1 -0
  38. package/dist/proofs/index.d.ts +35 -0
  39. package/dist/proofs/index.d.ts.map +1 -0
  40. package/dist/proofs/index.js +34 -0
  41. package/dist/proofs/index.js.map +1 -0
  42. package/dist/proofs/policy-compliance-proof.d.ts +165 -0
  43. package/dist/proofs/policy-compliance-proof.d.ts.map +1 -0
  44. package/dist/proofs/policy-compliance-proof.js +514 -0
  45. package/dist/proofs/policy-compliance-proof.js.map +1 -0
  46. package/dist/proofs/selective-disclosure.d.ts +213 -0
  47. package/dist/proofs/selective-disclosure.d.ts.map +1 -0
  48. package/dist/proofs/selective-disclosure.js +629 -0
  49. package/dist/proofs/selective-disclosure.js.map +1 -0
  50. package/dist/prover-interface.d.ts +288 -0
  51. package/dist/prover-interface.d.ts.map +1 -0
  52. package/dist/prover-interface.js +114 -0
  53. package/dist/prover-interface.js.map +1 -0
  54. package/dist/prover.d.ts +163 -0
  55. package/dist/prover.d.ts.map +1 -0
  56. package/dist/prover.js +417 -0
  57. package/dist/prover.js.map +1 -0
  58. package/dist/types.d.ts +410 -0
  59. package/dist/types.d.ts.map +1 -0
  60. package/dist/types.js +128 -0
  61. package/dist/types.js.map +1 -0
  62. package/package.json +59 -0
  63. package/src/__tests__/hash-chain-proof.test.ts +709 -0
  64. package/src/__tests__/midnight-prover.test.ts +716 -0
  65. package/src/__tests__/policy-compliance.test.ts +567 -0
  66. package/src/__tests__/proof-publication.test.ts +644 -0
  67. package/src/__tests__/selective-disclosure.test.ts +921 -0
  68. package/src/index.ts +260 -0
  69. package/src/linking/cardano-anchor-link.ts +682 -0
  70. package/src/linking/index.ts +58 -0
  71. package/src/linking/proof-publication.ts +557 -0
  72. package/src/midnight/index.ts +73 -0
  73. package/src/midnight/proof-server-client.ts +595 -0
  74. package/src/midnight/public-inputs.ts +590 -0
  75. package/src/midnight/witness-builder.ts +341 -0
  76. package/src/proofs/hash-chain-proof.ts +610 -0
  77. package/src/proofs/index.ts +77 -0
  78. package/src/proofs/policy-compliance-proof.ts +717 -0
  79. package/src/proofs/selective-disclosure.ts +839 -0
  80. package/src/prover-interface.ts +410 -0
  81. package/src/prover.ts +537 -0
  82. package/src/types.ts +551 -0
@@ -0,0 +1,447 @@
1
+ /**
2
+ * @fileoverview Cross-chain linking between Midnight proofs and Cardano anchors.
3
+ *
4
+ * Location: packages/midnight-prover/src/linking/cardano-anchor-link.ts
5
+ *
6
+ * Summary:
7
+ * This module implements the CardanoAnchorLinker class which creates and verifies
8
+ * bidirectional links between ZK proofs on Midnight and anchor transactions on Cardano.
9
+ * These links enable cross-chain verification of PoI traces.
10
+ *
11
+ * Usage:
12
+ * - Used after proof publication to establish cross-chain references
13
+ * - Integrates with poi-anchors-cardano for anchor verification
14
+ * - Enables verification that a Midnight proof corresponds to a specific Cardano anchor
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * import { CardanoAnchorLinker } from './cardano-anchor-link.js';
19
+ *
20
+ * const linker = new CardanoAnchorLinker();
21
+ *
22
+ * const link = linker.linkToAnchor(proof, cardanoTxHash);
23
+ * console.log('Cross-chain link created:', link.linkId);
24
+ *
25
+ * const isValid = await linker.verifyLink(link);
26
+ * console.log('Link valid:', isValid);
27
+ * ```
28
+ */
29
+ import { MidnightProverError, MidnightProverException, isHashChainProof, isPolicyProof, isAttestationProof, isDisclosureProof, isInferenceProof, } from "../types.js";
30
+ import { canonicalize } from "@fluxpointstudios/orynq-sdk-core/utils";
31
+ /**
32
+ * Domain separation prefixes for link operations.
33
+ */
34
+ const LINK_DOMAIN_PREFIXES = {
35
+ linkId: "poi-link:id:v1|",
36
+ commitment: "poi-link:commitment:v1|",
37
+ publicInputs: "poi-link:public-inputs:v1|",
38
+ };
39
+ // =============================================================================
40
+ // CARDANO ANCHOR LINKER
41
+ // =============================================================================
42
+ /**
43
+ * CardanoAnchorLinker creates and verifies cross-chain links.
44
+ *
45
+ * This class provides:
46
+ * - Creation of bidirectional links between Midnight proofs and Cardano anchors
47
+ * - Cryptographic commitment generation for link verification
48
+ * - Link verification against both chains
49
+ *
50
+ * @example
51
+ * ```typescript
52
+ * const linker = new CardanoAnchorLinker({ debug: true });
53
+ *
54
+ * // Create a link after proof publication
55
+ * const link = linker.linkToAnchor(proof, cardanoTxHash);
56
+ *
57
+ * // Verify the link
58
+ * const result = await linker.verifyLink(link);
59
+ * if (result.valid) {
60
+ * console.log('Cross-chain link verified');
61
+ * }
62
+ * ```
63
+ */
64
+ export class CardanoAnchorLinker {
65
+ options;
66
+ // Cache for created links
67
+ linkCache = new Map();
68
+ /**
69
+ * Create a new CardanoAnchorLinker instance.
70
+ *
71
+ * @param options - Configuration options
72
+ */
73
+ constructor(options = {}) {
74
+ this.options = {
75
+ debug: options.debug ?? false,
76
+ cardanoVerifier: options.cardanoVerifier ?? this.mockCardanoVerifier,
77
+ midnightVerifier: options.midnightVerifier ?? this.mockMidnightVerifier,
78
+ };
79
+ }
80
+ /**
81
+ * Create a cross-chain link between a proof and a Cardano anchor.
82
+ *
83
+ * This method:
84
+ * 1. Extracts relevant data from the proof
85
+ * 2. Generates a unique link ID
86
+ * 3. Creates a cryptographic commitment binding both chains
87
+ * 4. Returns the complete cross-chain link
88
+ *
89
+ * @param proof - The Midnight proof to link
90
+ * @param cardanoTxHash - The Cardano anchor transaction hash
91
+ * @param midnightTxHash - Optional Midnight transaction hash (if already published)
92
+ * @returns The cross-chain link
93
+ */
94
+ linkToAnchor(proof, cardanoTxHash, midnightTxHash) {
95
+ this.debug(`Creating cross-chain link for proof ${proof.proofId}`);
96
+ // Validate inputs
97
+ this.validateProof(proof);
98
+ this.validateTxHash(cardanoTxHash, "Cardano");
99
+ if (midnightTxHash) {
100
+ this.validateTxHash(midnightTxHash, "Midnight");
101
+ }
102
+ // Extract public inputs hash and anchored root hash
103
+ const { publicInputsHash, anchoredRootHash } = this.extractProofData(proof);
104
+ // Verify that the proof's cardanoAnchorTxHash matches the provided one
105
+ const proofCardanoTxHash = this.extractCardanoAnchorTxHash(proof);
106
+ if (normalizeHash(proofCardanoTxHash) !== normalizeHash(cardanoTxHash)) {
107
+ throw new MidnightProverException(MidnightProverError.HASH_MISMATCH, `Proof's cardanoAnchorTxHash (${proofCardanoTxHash}) does not match provided cardanoTxHash (${cardanoTxHash})`);
108
+ }
109
+ // Generate link ID
110
+ const linkId = this.generateLinkId(proof.proofId, cardanoTxHash);
111
+ // Generate link commitment
112
+ const linkCommitment = this.generateLinkCommitmentSync(proof.proofId, cardanoTxHash, publicInputsHash, anchoredRootHash);
113
+ const link = {
114
+ linkId,
115
+ version: "1.0.0",
116
+ midnightProofId: proof.proofId,
117
+ midnightTxHash,
118
+ proofType: proof.proofType,
119
+ publicInputsHash,
120
+ cardanoAnchorTxHash: normalizeHash(cardanoTxHash),
121
+ anchoredRootHash,
122
+ createdAt: new Date().toISOString(),
123
+ linkCommitment,
124
+ };
125
+ // Cache the link
126
+ this.linkCache.set(linkId, link);
127
+ this.debug(`Cross-chain link created: ${linkId}`);
128
+ return link;
129
+ }
130
+ /**
131
+ * Verify a cross-chain link.
132
+ *
133
+ * This method verifies:
134
+ * 1. Link structure and format
135
+ * 2. Link commitment integrity
136
+ * 3. Midnight proof existence (if verifier provided)
137
+ * 4. Cardano anchor existence (if verifier provided)
138
+ *
139
+ * @param link - The cross-chain link to verify
140
+ * @returns Promise resolving to the verification result
141
+ */
142
+ async verifyLink(link) {
143
+ this.debug(`Verifying cross-chain link: ${link.linkId}`);
144
+ const errors = [];
145
+ const warnings = [];
146
+ let midnightVerified = false;
147
+ let cardanoVerified = false;
148
+ let commitmentVerified = false;
149
+ // Verify link structure
150
+ const structureErrors = this.validateLinkStructure(link);
151
+ errors.push(...structureErrors);
152
+ if (structureErrors.length === 0) {
153
+ // Verify commitment
154
+ const expectedCommitment = this.generateLinkCommitmentSync(link.midnightProofId, link.cardanoAnchorTxHash, link.publicInputsHash, link.anchoredRootHash);
155
+ if (expectedCommitment === link.linkCommitment) {
156
+ commitmentVerified = true;
157
+ }
158
+ else {
159
+ errors.push("Link commitment does not match");
160
+ }
161
+ // Verify Midnight proof
162
+ try {
163
+ midnightVerified = await this.options.midnightVerifier(link.midnightProofId, link.midnightTxHash);
164
+ if (!midnightVerified) {
165
+ warnings.push("Midnight proof could not be verified on-chain");
166
+ }
167
+ }
168
+ catch (error) {
169
+ warnings.push(`Midnight verification error: ${String(error)}`);
170
+ }
171
+ // Verify Cardano anchor
172
+ try {
173
+ cardanoVerified = await this.options.cardanoVerifier(link.cardanoAnchorTxHash);
174
+ if (!cardanoVerified) {
175
+ warnings.push("Cardano anchor could not be verified on-chain");
176
+ }
177
+ }
178
+ catch (error) {
179
+ warnings.push(`Cardano verification error: ${String(error)}`);
180
+ }
181
+ }
182
+ const valid = errors.length === 0 && commitmentVerified;
183
+ const result = {
184
+ valid,
185
+ linkId: link.linkId,
186
+ errors,
187
+ warnings,
188
+ verifiedAt: new Date().toISOString(),
189
+ midnightVerified,
190
+ cardanoVerified,
191
+ commitmentVerified,
192
+ };
193
+ this.debug(`Link verification result: ${valid ? "VALID" : "INVALID"}`);
194
+ return result;
195
+ }
196
+ /**
197
+ * Get a cached link by ID.
198
+ *
199
+ * @param linkId - The link identifier
200
+ * @returns The cached link or undefined
201
+ */
202
+ getCachedLink(linkId) {
203
+ return this.linkCache.get(linkId);
204
+ }
205
+ /**
206
+ * Get a link by proof ID.
207
+ *
208
+ * @param proofId - The proof identifier
209
+ * @returns The cached link or undefined
210
+ */
211
+ getLinkByProofId(proofId) {
212
+ for (const link of this.linkCache.values()) {
213
+ if (link.midnightProofId === proofId) {
214
+ return link;
215
+ }
216
+ }
217
+ return undefined;
218
+ }
219
+ /**
220
+ * Get all links for a Cardano anchor.
221
+ *
222
+ * @param cardanoTxHash - The Cardano transaction hash
223
+ * @returns Array of links for this anchor
224
+ */
225
+ getLinksByCardanoAnchor(cardanoTxHash) {
226
+ const normalizedHash = normalizeHash(cardanoTxHash);
227
+ const links = [];
228
+ for (const link of this.linkCache.values()) {
229
+ if (normalizeHash(link.cardanoAnchorTxHash) === normalizedHash) {
230
+ links.push(link);
231
+ }
232
+ }
233
+ return links;
234
+ }
235
+ // ===========================================================================
236
+ // PRIVATE METHODS
237
+ // ===========================================================================
238
+ /**
239
+ * Validate a proof for linking.
240
+ */
241
+ validateProof(proof) {
242
+ if (!proof.proofId) {
243
+ throw new MidnightProverException(MidnightProverError.INVALID_INPUT, "Proof ID is required");
244
+ }
245
+ if (!proof.proofType) {
246
+ throw new MidnightProverException(MidnightProverError.INVALID_INPUT, "Proof type is required");
247
+ }
248
+ if (!proof.proof || proof.proof.length === 0) {
249
+ throw new MidnightProverException(MidnightProverError.INVALID_PROOF_FORMAT, "Proof data is empty");
250
+ }
251
+ }
252
+ /**
253
+ * Validate a transaction hash.
254
+ */
255
+ validateTxHash(txHash, chainName) {
256
+ const normalized = normalizeHash(txHash);
257
+ if (!/^[0-9a-f]{64}$/.test(normalized)) {
258
+ throw new MidnightProverException(MidnightProverError.INVALID_INPUT, `Invalid ${chainName} transaction hash format: ${txHash}`);
259
+ }
260
+ }
261
+ /**
262
+ * Validate link structure.
263
+ */
264
+ validateLinkStructure(link) {
265
+ const errors = [];
266
+ if (!link.linkId) {
267
+ errors.push("Missing linkId");
268
+ }
269
+ if (link.version !== "1.0.0") {
270
+ errors.push(`Unknown link version: ${link.version}`);
271
+ }
272
+ if (!link.midnightProofId) {
273
+ errors.push("Missing midnightProofId");
274
+ }
275
+ if (!link.proofType) {
276
+ errors.push("Missing proofType");
277
+ }
278
+ if (!link.publicInputsHash || !/^[0-9a-f]{64}$/i.test(link.publicInputsHash)) {
279
+ errors.push("Invalid publicInputsHash format");
280
+ }
281
+ if (!link.cardanoAnchorTxHash || !/^[0-9a-f]{64}$/i.test(link.cardanoAnchorTxHash)) {
282
+ errors.push("Invalid cardanoAnchorTxHash format");
283
+ }
284
+ if (!link.anchoredRootHash || !/^[0-9a-f]{64}$/i.test(link.anchoredRootHash)) {
285
+ errors.push("Invalid anchoredRootHash format");
286
+ }
287
+ if (!link.linkCommitment || !/^[0-9a-f]{64}$/i.test(link.linkCommitment)) {
288
+ errors.push("Invalid linkCommitment format");
289
+ }
290
+ if (!link.createdAt) {
291
+ errors.push("Missing createdAt timestamp");
292
+ }
293
+ return errors;
294
+ }
295
+ /**
296
+ * Extract data from proof for linking.
297
+ */
298
+ extractProofData(proof) {
299
+ let publicInputsData;
300
+ let anchoredRootHash;
301
+ if (isHashChainProof(proof)) {
302
+ const p = proof;
303
+ publicInputsData = p.publicInputs;
304
+ anchoredRootHash = p.publicInputs.rootHash;
305
+ }
306
+ else if (isPolicyProof(proof)) {
307
+ const p = proof;
308
+ publicInputsData = p.publicInputs;
309
+ // For policy proofs, use promptHash as the "root"
310
+ anchoredRootHash = p.publicInputs.promptHash;
311
+ }
312
+ else if (isAttestationProof(proof)) {
313
+ const p = proof;
314
+ publicInputsData = p.publicInputs;
315
+ anchoredRootHash = p.publicInputs.boundHash;
316
+ }
317
+ else if (isDisclosureProof(proof)) {
318
+ const p = proof;
319
+ publicInputsData = p.publicInputs;
320
+ anchoredRootHash = p.publicInputs.merkleRoot;
321
+ }
322
+ else if (isInferenceProof(proof)) {
323
+ const p = proof;
324
+ publicInputsData = p.publicInputs;
325
+ anchoredRootHash = p.publicInputs.modelWeightDigest;
326
+ }
327
+ else {
328
+ throw new MidnightProverException(MidnightProverError.INVALID_INPUT, `Unknown proof type: ${proof.proofType}`);
329
+ }
330
+ // Hash public inputs
331
+ const publicInputsHash = this.hashPublicInputsSync(publicInputsData);
332
+ return { publicInputsHash, anchoredRootHash };
333
+ }
334
+ /**
335
+ * Extract Cardano anchor transaction hash from proof.
336
+ */
337
+ extractCardanoAnchorTxHash(proof) {
338
+ const anyProof = proof;
339
+ const txHash = anyProof.publicInputs?.cardanoAnchorTxHash;
340
+ if (!txHash) {
341
+ throw new MidnightProverException(MidnightProverError.MISSING_REQUIRED_FIELD, "Proof must have cardanoAnchorTxHash in public inputs");
342
+ }
343
+ return txHash;
344
+ }
345
+ /**
346
+ * Generate a unique link ID.
347
+ */
348
+ generateLinkId(proofId, cardanoTxHash) {
349
+ // Simple hash-based link ID
350
+ const input = LINK_DOMAIN_PREFIXES.linkId + proofId + "|" + normalizeHash(cardanoTxHash);
351
+ // Use synchronous generation for now (matches existing pattern)
352
+ return `link-${this.simpleHash(input).slice(0, 16)}`;
353
+ }
354
+ /**
355
+ * Generate link commitment synchronously.
356
+ */
357
+ generateLinkCommitmentSync(proofId, cardanoTxHash, publicInputsHash, anchoredRootHash) {
358
+ const input = canonicalize({
359
+ domain: LINK_DOMAIN_PREFIXES.commitment,
360
+ proofId,
361
+ cardanoTxHash: normalizeHash(cardanoTxHash),
362
+ publicInputsHash,
363
+ anchoredRootHash,
364
+ });
365
+ return this.simpleHash(input);
366
+ }
367
+ /**
368
+ * Hash public inputs synchronously.
369
+ */
370
+ hashPublicInputsSync(publicInputs) {
371
+ const input = LINK_DOMAIN_PREFIXES.publicInputs + canonicalize(publicInputs);
372
+ return this.simpleHash(input);
373
+ }
374
+ /**
375
+ * Simple synchronous hash function (for use in sync contexts).
376
+ * Uses a deterministic algorithm suitable for identifiers.
377
+ */
378
+ simpleHash(input) {
379
+ // Simple hash implementation for sync contexts
380
+ // In production, this would use a proper hash function
381
+ let hash = 0x811c9dc5; // FNV offset basis
382
+ for (let i = 0; i < input.length; i++) {
383
+ hash ^= input.charCodeAt(i);
384
+ hash = Math.imul(hash, 0x01000193); // FNV prime
385
+ }
386
+ // Generate a 64-char hex string by repeating the process
387
+ let result = "";
388
+ let state = hash;
389
+ for (let j = 0; j < 8; j++) {
390
+ for (let i = 0; i < input.length; i++) {
391
+ state ^= input.charCodeAt((i + j * 7) % input.length);
392
+ state = Math.imul(state, 0x01000193);
393
+ }
394
+ result += (state >>> 0).toString(16).padStart(8, "0");
395
+ }
396
+ return result;
397
+ }
398
+ /**
399
+ * Mock Cardano verifier (always returns true for valid hashes).
400
+ */
401
+ mockCardanoVerifier = async (txHash) => {
402
+ // Simulate network delay
403
+ await new Promise((resolve) => setTimeout(resolve, 50));
404
+ // In mock mode, accept any valid-looking hash
405
+ return /^[0-9a-f]{64}$/i.test(normalizeHash(txHash));
406
+ };
407
+ /**
408
+ * Mock Midnight verifier (always returns true for non-empty proof IDs).
409
+ */
410
+ mockMidnightVerifier = async (proofId, _txHash) => {
411
+ // Simulate network delay
412
+ await new Promise((resolve) => setTimeout(resolve, 50));
413
+ // In mock mode, accept any non-empty proof ID
414
+ return proofId.length > 0;
415
+ };
416
+ /**
417
+ * Debug logging helper.
418
+ */
419
+ debug(message) {
420
+ if (this.options.debug) {
421
+ console.log(`[CardanoAnchorLinker] ${message}`);
422
+ }
423
+ }
424
+ }
425
+ // =============================================================================
426
+ // UTILITY FUNCTIONS
427
+ // =============================================================================
428
+ /**
429
+ * Normalize a hash to lowercase without 0x prefix.
430
+ */
431
+ function normalizeHash(hash) {
432
+ const cleaned = hash.startsWith("0x") ? hash.slice(2) : hash;
433
+ return cleaned.toLowerCase();
434
+ }
435
+ // =============================================================================
436
+ // FACTORY FUNCTION
437
+ // =============================================================================
438
+ /**
439
+ * Create a new CardanoAnchorLinker instance.
440
+ *
441
+ * @param options - Configuration options
442
+ * @returns New CardanoAnchorLinker instance
443
+ */
444
+ export function createCardanoAnchorLinker(options) {
445
+ return new CardanoAnchorLinker(options);
446
+ }
447
+ //# sourceMappingURL=cardano-anchor-link.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cardano-anchor-link.js","sourceRoot":"","sources":["../../src/linking/cardano-anchor-link.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * @fileoverview Linking module exports for cross-chain operations.
3
+ *
4
+ * Location: packages/midnight-prover/src/linking/index.ts
5
+ *
6
+ * Summary:
7
+ * This file exports all linking-related classes and utilities for:
8
+ * - Publishing proofs to the Midnight network
9
+ * - Creating cross-chain links between Midnight proofs and Cardano anchors
10
+ * - Verifying cross-chain relationships
11
+ *
12
+ * Usage:
13
+ * ```typescript
14
+ * import {
15
+ * ProofPublisher,
16
+ * CardanoAnchorLinker,
17
+ * createProofPublisher,
18
+ * createCardanoAnchorLinker,
19
+ * } from "@fluxpointstudios/orynq-sdk-midnight-prover";
20
+ *
21
+ * const publisher = createProofPublisher({ maxRetries: 3 });
22
+ * const linker = createCardanoAnchorLinker({ debug: true });
23
+ * ```
24
+ *
25
+ * Related files:
26
+ * - proof-publication.ts: Proof publishing to Midnight
27
+ * - cardano-anchor-link.ts: Cross-chain linking utilities
28
+ */
29
+ export type { ProofStatus, ProofStatusInfo, ProofPublisherOptions, } from "./proof-publication.js";
30
+ export { ProofPublisher, createProofPublisher, } from "./proof-publication.js";
31
+ export type { CrossChainLink, LinkVerificationResult, CardanoAnchorLinkerOptions, } from "./cardano-anchor-link.js";
32
+ export { CardanoAnchorLinker, createCardanoAnchorLinker, } from "./cardano-anchor-link.js";
33
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/linking/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAMH,YAAY,EACV,WAAW,EACX,eAAe,EACf,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,cAAc,EACd,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAMhC,YAAY,EACV,cAAc,EACd,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @fileoverview Linking module exports for cross-chain operations.
3
+ *
4
+ * Location: packages/midnight-prover/src/linking/index.ts
5
+ *
6
+ * Summary:
7
+ * This file exports all linking-related classes and utilities for:
8
+ * - Publishing proofs to the Midnight network
9
+ * - Creating cross-chain links between Midnight proofs and Cardano anchors
10
+ * - Verifying cross-chain relationships
11
+ *
12
+ * Usage:
13
+ * ```typescript
14
+ * import {
15
+ * ProofPublisher,
16
+ * CardanoAnchorLinker,
17
+ * createProofPublisher,
18
+ * createCardanoAnchorLinker,
19
+ * } from "@fluxpointstudios/orynq-sdk-midnight-prover";
20
+ *
21
+ * const publisher = createProofPublisher({ maxRetries: 3 });
22
+ * const linker = createCardanoAnchorLinker({ debug: true });
23
+ * ```
24
+ *
25
+ * Related files:
26
+ * - proof-publication.ts: Proof publishing to Midnight
27
+ * - cardano-anchor-link.ts: Cross-chain linking utilities
28
+ */
29
+ export { ProofPublisher, createProofPublisher, } from "./proof-publication.js";
30
+ export { CardanoAnchorLinker, createCardanoAnchorLinker, } from "./cardano-anchor-link.js";
31
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/linking/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAYH,OAAO,EACL,cAAc,EACd,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAYhC,OAAO,EACL,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC"}