@sip-protocol/sdk 0.7.3 → 0.7.4

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 (264) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +267 -0
  3. package/dist/{TransportWebUSB-TQ7WZ4LE.mjs → TransportWebUSB-YQMAGJAJ.mjs} +12 -9
  4. package/dist/browser.d.mts +10 -4
  5. package/dist/browser.d.ts +10 -4
  6. package/dist/browser.js +47556 -19603
  7. package/dist/browser.mjs +628 -48
  8. package/dist/chunk-4GRJ5MAW.mjs +152 -0
  9. package/dist/chunk-5D7A3L3W.mjs +717 -0
  10. package/dist/chunk-64AYA5F5.mjs +7834 -0
  11. package/dist/chunk-GMDGB22A.mjs +379 -0
  12. package/dist/chunk-I534WKN7.mjs +328 -0
  13. package/dist/chunk-IBZVA5Y7.mjs +1003 -0
  14. package/dist/chunk-PRRZAWJE.mjs +223 -0
  15. package/dist/{chunk-UJCSKKID.mjs → chunk-XGB3TDIC.mjs} +13 -1
  16. package/dist/{chunk-3M3HNQCW.mjs → chunk-YWGJ77A2.mjs} +28656 -13103
  17. package/dist/{chunk-6WGN57S2.mjs → chunk-Z3K7W5S3.mjs} +48 -0
  18. package/dist/constants-LHAAUC2T.mjs +51 -0
  19. package/dist/dist-2OGQ7FED.mjs +3957 -0
  20. package/dist/dist-IFHPYLDX.mjs +254 -0
  21. package/dist/fulfillment_proof-ANHVPKTB.mjs +21 -0
  22. package/dist/funding_proof-ICFZ5LHY.mjs +21 -0
  23. package/dist/{index-DIBZHOOQ.d.ts → index-DXh2IGkz.d.ts} +21239 -10304
  24. package/dist/{index-8MQz13eJ.d.mts → index-DeE1ZzA4.d.mts} +21239 -10304
  25. package/dist/index.d.mts +9 -3
  26. package/dist/index.d.ts +9 -3
  27. package/dist/index.js +48396 -19623
  28. package/dist/index.mjs +537 -19
  29. package/dist/interface-Bf7w1PLW.d.mts +679 -0
  30. package/dist/interface-Bf7w1PLW.d.ts +679 -0
  31. package/dist/{noir-DKfEzWy9.d.mts → noir-kzbLVTei.d.mts} +31 -21
  32. package/dist/{noir-DKfEzWy9.d.ts → noir-kzbLVTei.d.ts} +31 -21
  33. package/dist/proofs/halo2.d.mts +151 -0
  34. package/dist/proofs/halo2.d.ts +151 -0
  35. package/dist/proofs/halo2.js +350 -0
  36. package/dist/proofs/halo2.mjs +11 -0
  37. package/dist/proofs/kimchi.d.mts +160 -0
  38. package/dist/proofs/kimchi.d.ts +160 -0
  39. package/dist/proofs/kimchi.js +431 -0
  40. package/dist/proofs/kimchi.mjs +13 -0
  41. package/dist/proofs/noir.d.mts +1 -1
  42. package/dist/proofs/noir.d.ts +1 -1
  43. package/dist/proofs/noir.js +74 -18
  44. package/dist/proofs/noir.mjs +84 -24
  45. package/dist/solana-U3MEGU7W.mjs +280 -0
  46. package/dist/validity_proof-3POXLPNY.mjs +21 -0
  47. package/package.json +54 -21
  48. package/src/adapters/index.ts +41 -0
  49. package/src/adapters/jupiter.ts +571 -0
  50. package/src/adapters/near-intents.ts +135 -0
  51. package/src/advisor/advisor.ts +653 -0
  52. package/src/advisor/index.ts +54 -0
  53. package/src/advisor/tools.ts +303 -0
  54. package/src/advisor/types.ts +164 -0
  55. package/src/chains/ethereum/announcement.ts +536 -0
  56. package/src/chains/ethereum/bnb-optimizations.ts +474 -0
  57. package/src/chains/ethereum/commitment.ts +522 -0
  58. package/src/chains/ethereum/constants.ts +462 -0
  59. package/src/chains/ethereum/deployment.ts +596 -0
  60. package/src/chains/ethereum/gas-estimation.ts +538 -0
  61. package/src/chains/ethereum/index.ts +268 -0
  62. package/src/chains/ethereum/optimizations.ts +614 -0
  63. package/src/chains/ethereum/privacy-adapter.ts +855 -0
  64. package/src/chains/ethereum/registry.ts +584 -0
  65. package/src/chains/ethereum/rpc.ts +905 -0
  66. package/src/chains/ethereum/stealth.ts +491 -0
  67. package/src/chains/ethereum/token.ts +790 -0
  68. package/src/chains/ethereum/transfer.ts +637 -0
  69. package/src/chains/ethereum/types.ts +456 -0
  70. package/src/chains/ethereum/viewing-key.ts +455 -0
  71. package/src/chains/near/commitment.ts +608 -0
  72. package/src/chains/near/constants.ts +284 -0
  73. package/src/chains/near/function-call.ts +871 -0
  74. package/src/chains/near/history.ts +654 -0
  75. package/src/chains/near/implicit-account.ts +840 -0
  76. package/src/chains/near/index.ts +393 -0
  77. package/src/chains/near/native-transfer.ts +658 -0
  78. package/src/chains/near/nep141.ts +775 -0
  79. package/src/chains/near/privacy-adapter.ts +889 -0
  80. package/src/chains/near/resolver.ts +971 -0
  81. package/src/chains/near/rpc.ts +1016 -0
  82. package/src/chains/near/stealth.ts +419 -0
  83. package/src/chains/near/types.ts +317 -0
  84. package/src/chains/near/viewing-key.ts +876 -0
  85. package/src/chains/solana/anchor-transfer.ts +386 -0
  86. package/src/chains/solana/commitment.ts +577 -0
  87. package/src/chains/solana/constants.ts +126 -12
  88. package/src/chains/solana/ephemeral-keys.ts +543 -0
  89. package/src/chains/solana/index.ts +252 -1
  90. package/src/chains/solana/key-derivation.ts +418 -0
  91. package/src/chains/solana/kit-compat.ts +334 -0
  92. package/src/chains/solana/optimizations.ts +560 -0
  93. package/src/chains/solana/privacy-adapter.ts +605 -0
  94. package/src/chains/solana/providers/generic.ts +47 -6
  95. package/src/chains/solana/providers/helius-enhanced-types.ts +336 -0
  96. package/src/chains/solana/providers/helius-enhanced.ts +623 -0
  97. package/src/chains/solana/providers/helius.ts +186 -33
  98. package/src/chains/solana/providers/index.ts +31 -0
  99. package/src/chains/solana/providers/interface.ts +61 -18
  100. package/src/chains/solana/providers/quicknode.ts +409 -0
  101. package/src/chains/solana/providers/triton.ts +426 -0
  102. package/src/chains/solana/providers/webhook.ts +338 -67
  103. package/src/chains/solana/rpc-client.ts +1150 -0
  104. package/src/chains/solana/scan.ts +83 -66
  105. package/src/chains/solana/sol-transfer.ts +732 -0
  106. package/src/chains/solana/spl-transfer.ts +886 -0
  107. package/src/chains/solana/stealth-scanner.ts +703 -0
  108. package/src/chains/solana/sunspot-verifier.ts +453 -0
  109. package/src/chains/solana/transaction-builder.ts +755 -0
  110. package/src/chains/solana/transfer.ts +74 -5
  111. package/src/chains/solana/types.ts +57 -6
  112. package/src/chains/solana/utils.ts +110 -0
  113. package/src/chains/solana/viewing-key.ts +807 -0
  114. package/src/compliance/fireblocks.ts +921 -0
  115. package/src/compliance/index.ts +23 -0
  116. package/src/compliance/range-sas.ts +398 -33
  117. package/src/config/endpoints.ts +100 -0
  118. package/src/crypto.ts +11 -8
  119. package/src/errors.ts +82 -0
  120. package/src/evm/erc4337-relayer.ts +830 -0
  121. package/src/evm/index.ts +47 -0
  122. package/src/fees/calculator.ts +396 -0
  123. package/src/fees/index.ts +87 -0
  124. package/src/fees/near-contract.ts +429 -0
  125. package/src/fees/types.ts +268 -0
  126. package/src/index.ts +686 -1
  127. package/src/intent.ts +6 -3
  128. package/src/logger.ts +324 -0
  129. package/src/network/index.ts +80 -0
  130. package/src/network/proxy.ts +691 -0
  131. package/src/optimizations/index.ts +541 -0
  132. package/src/oracle/types.ts +1 -0
  133. package/src/privacy-backends/arcium-types.ts +727 -0
  134. package/src/privacy-backends/arcium.ts +719 -0
  135. package/src/privacy-backends/combined-privacy.ts +866 -0
  136. package/src/privacy-backends/cspl-token.ts +595 -0
  137. package/src/privacy-backends/cspl-types.ts +512 -0
  138. package/src/privacy-backends/cspl.ts +907 -0
  139. package/src/privacy-backends/health.ts +488 -0
  140. package/src/privacy-backends/inco-types.ts +323 -0
  141. package/src/privacy-backends/inco.ts +616 -0
  142. package/src/privacy-backends/index.ts +254 -4
  143. package/src/privacy-backends/interface.ts +649 -6
  144. package/src/privacy-backends/lru-cache.ts +343 -0
  145. package/src/privacy-backends/magicblock.ts +458 -0
  146. package/src/privacy-backends/mock.ts +258 -0
  147. package/src/privacy-backends/privacycash.ts +13 -17
  148. package/src/privacy-backends/private-swap.ts +570 -0
  149. package/src/privacy-backends/rate-limiter.ts +683 -0
  150. package/src/privacy-backends/registry.ts +414 -2
  151. package/src/privacy-backends/router.ts +283 -3
  152. package/src/privacy-backends/shadowwire.ts +449 -0
  153. package/src/privacy-backends/sip-native.ts +3 -0
  154. package/src/privacy-logger.ts +191 -0
  155. package/src/production-safety.ts +373 -0
  156. package/src/proofs/aggregator.ts +1029 -0
  157. package/src/proofs/browser-composer.ts +1150 -0
  158. package/src/proofs/browser.ts +113 -25
  159. package/src/proofs/cache/index.ts +127 -0
  160. package/src/proofs/cache/interface.ts +545 -0
  161. package/src/proofs/cache/key-generator.ts +188 -0
  162. package/src/proofs/cache/lru-cache.ts +481 -0
  163. package/src/proofs/cache/multi-tier-cache.ts +575 -0
  164. package/src/proofs/cache/persistent-cache.ts +788 -0
  165. package/src/proofs/compliance-proof.ts +872 -0
  166. package/src/proofs/composer/base.ts +923 -0
  167. package/src/proofs/composer/index.ts +25 -0
  168. package/src/proofs/composer/interface.ts +518 -0
  169. package/src/proofs/composer/types.ts +383 -0
  170. package/src/proofs/converters/halo2.ts +452 -0
  171. package/src/proofs/converters/index.ts +208 -0
  172. package/src/proofs/converters/interface.ts +363 -0
  173. package/src/proofs/converters/kimchi.ts +462 -0
  174. package/src/proofs/converters/noir.ts +451 -0
  175. package/src/proofs/fallback.ts +888 -0
  176. package/src/proofs/halo2.ts +42 -0
  177. package/src/proofs/index.ts +471 -0
  178. package/src/proofs/interface.ts +13 -0
  179. package/src/proofs/kimchi.ts +42 -0
  180. package/src/proofs/lazy.ts +1004 -0
  181. package/src/proofs/mock.ts +25 -1
  182. package/src/proofs/noir.ts +110 -29
  183. package/src/proofs/orchestrator.ts +960 -0
  184. package/src/proofs/parallel/concurrency.ts +297 -0
  185. package/src/proofs/parallel/dependency-graph.ts +602 -0
  186. package/src/proofs/parallel/executor.ts +420 -0
  187. package/src/proofs/parallel/index.ts +131 -0
  188. package/src/proofs/parallel/interface.ts +685 -0
  189. package/src/proofs/parallel/worker-pool.ts +644 -0
  190. package/src/proofs/providers/halo2.ts +560 -0
  191. package/src/proofs/providers/index.ts +34 -0
  192. package/src/proofs/providers/kimchi.ts +641 -0
  193. package/src/proofs/validator.ts +881 -0
  194. package/src/proofs/verifier.ts +867 -0
  195. package/src/quantum/index.ts +112 -0
  196. package/src/quantum/winternitz-vault.ts +639 -0
  197. package/src/quantum/wots.ts +611 -0
  198. package/src/settlement/backends/direct-chain.ts +1 -0
  199. package/src/settlement/index.ts +9 -0
  200. package/src/settlement/router.ts +732 -46
  201. package/src/solana/index.ts +72 -0
  202. package/src/solana/jito-relayer.ts +687 -0
  203. package/src/solana/noir-verifier-types.ts +430 -0
  204. package/src/solana/noir-verifier.ts +816 -0
  205. package/src/stealth/address-derivation.ts +193 -0
  206. package/src/stealth/ed25519.ts +431 -0
  207. package/src/stealth/index.ts +233 -0
  208. package/src/stealth/meta-address.ts +221 -0
  209. package/src/stealth/secp256k1.ts +368 -0
  210. package/src/stealth/utils.ts +194 -0
  211. package/src/stealth.ts +50 -1504
  212. package/src/sync/index.ts +106 -0
  213. package/src/sync/manager.ts +504 -0
  214. package/src/sync/mock-provider.ts +318 -0
  215. package/src/sync/oblivious.ts +625 -0
  216. package/src/tokens/index.ts +15 -0
  217. package/src/tokens/registry.ts +301 -0
  218. package/src/utils/deprecation.ts +94 -0
  219. package/src/utils/index.ts +9 -0
  220. package/src/wallet/ethereum/index.ts +68 -0
  221. package/src/wallet/ethereum/metamask-privacy.ts +420 -0
  222. package/src/wallet/ethereum/multi-wallet.ts +646 -0
  223. package/src/wallet/ethereum/privacy-adapter.ts +700 -0
  224. package/src/wallet/ethereum/types.ts +3 -1
  225. package/src/wallet/ethereum/walletconnect-adapter.ts +675 -0
  226. package/src/wallet/hardware/index.ts +10 -0
  227. package/src/wallet/hardware/ledger-privacy.ts +414 -0
  228. package/src/wallet/index.ts +71 -0
  229. package/src/wallet/near/adapter.ts +626 -0
  230. package/src/wallet/near/index.ts +86 -0
  231. package/src/wallet/near/meteor-wallet.ts +1153 -0
  232. package/src/wallet/near/my-near-wallet.ts +790 -0
  233. package/src/wallet/near/wallet-selector.ts +702 -0
  234. package/src/wallet/solana/adapter.ts +6 -4
  235. package/src/wallet/solana/index.ts +13 -0
  236. package/src/wallet/solana/privacy-adapter.ts +567 -0
  237. package/src/wallet/sui/types.ts +6 -4
  238. package/src/zcash/rpc-client.ts +13 -6
  239. package/dist/chunk-2XIVXWHA.mjs +0 -1930
  240. package/dist/chunk-3INS3PR5.mjs +0 -884
  241. package/dist/chunk-3OVABDRH.mjs +0 -17096
  242. package/dist/chunk-7RFRWDCW.mjs +0 -1504
  243. package/dist/chunk-DLDWZFYC.mjs +0 -1495
  244. package/dist/chunk-E6SZWREQ.mjs +0 -57
  245. package/dist/chunk-F6F73W35.mjs +0 -16166
  246. package/dist/chunk-G33LB27A.mjs +0 -16166
  247. package/dist/chunk-HGU6HZRC.mjs +0 -231
  248. package/dist/chunk-L2K34JCU.mjs +0 -1496
  249. package/dist/chunk-OFDBEIEK.mjs +0 -16166
  250. package/dist/chunk-SF7YSLF5.mjs +0 -1515
  251. package/dist/chunk-SN4ZDTVW.mjs +0 -16166
  252. package/dist/chunk-WWUSGOXE.mjs +0 -17129
  253. package/dist/constants-VOI7BSLK.mjs +0 -27
  254. package/dist/index-B71aXVzk.d.ts +0 -13264
  255. package/dist/index-BYZbDjal.d.ts +0 -11390
  256. package/dist/index-CHB3KuOB.d.mts +0 -11859
  257. package/dist/index-CzWPI6Le.d.ts +0 -11859
  258. package/dist/index-pOIIuwfV.d.mts +0 -13264
  259. package/dist/index-xbWjohNq.d.mts +0 -11390
  260. package/dist/solana-4O4K45VU.mjs +0 -46
  261. package/dist/solana-5EMCTPTS.mjs +0 -46
  262. package/dist/solana-NDABAZ6P.mjs +0 -56
  263. package/dist/solana-Q4NAVBTS.mjs +0 -46
  264. package/dist/solana-ZYO63LY5.mjs +0 -46
@@ -0,0 +1,383 @@
1
+ /**
2
+ * Proof Composer SDK Types
3
+ *
4
+ * SDK-specific types for the proof composition system.
5
+ * These extend the base types from @sip-protocol/types with
6
+ * implementation-specific details.
7
+ *
8
+ * @packageDocumentation
9
+ */
10
+
11
+ import type {
12
+ ProofSystem,
13
+ ProofAggregationStrategy,
14
+ SingleProof,
15
+ ComposedProof,
16
+ ProofCompositionConfig,
17
+ ProofProviderCapabilities,
18
+ CompositionResult,
19
+ VerificationResult,
20
+ CompositionEventListener,
21
+ } from '@sip-protocol/types'
22
+ import type { HexString, ZKProof } from '@sip-protocol/types'
23
+
24
+ // ─── Provider Registration ──────────────────────────────────────────────────
25
+
26
+ /**
27
+ * Registration entry for a proof provider
28
+ */
29
+ export interface ProofProviderRegistration {
30
+ /** Unique identifier for this provider instance */
31
+ id: string
32
+ /** The proof system */
33
+ system: ProofSystem
34
+ /** Provider capabilities */
35
+ capabilities: ProofProviderCapabilities
36
+ /** Priority for provider selection (higher = preferred) */
37
+ priority: number
38
+ /** Whether this provider is enabled */
39
+ enabled: boolean
40
+ }
41
+
42
+ /**
43
+ * Options for registering a proof provider
44
+ */
45
+ export interface RegisterProviderOptions {
46
+ /** Override existing provider with same system */
47
+ override?: boolean
48
+ /** Priority for this provider */
49
+ priority?: number
50
+ /** Enable immediately */
51
+ enabled?: boolean
52
+ }
53
+
54
+ // ─── Proof Generation ───────────────────────────────────────────────────────
55
+
56
+ /**
57
+ * Request to generate a proof
58
+ */
59
+ export interface ProofGenerationRequest {
60
+ /** Circuit to use */
61
+ circuitId: string
62
+ /** Private inputs (not revealed) */
63
+ privateInputs: Record<string, unknown>
64
+ /** Public inputs (revealed in proof) */
65
+ publicInputs: Record<string, unknown>
66
+ /** Optional: specific provider to use */
67
+ providerId?: string
68
+ /** Optional: specific proof system to use */
69
+ system?: ProofSystem
70
+ /** Optional: timeout override */
71
+ timeoutMs?: number
72
+ }
73
+
74
+ /**
75
+ * Result of proof generation
76
+ */
77
+ export interface ProofGenerationResult {
78
+ /** Whether generation was successful */
79
+ success: boolean
80
+ /** The generated proof (if successful) */
81
+ proof?: SingleProof
82
+ /** Error message (if failed) */
83
+ error?: string
84
+ /** Generation time in milliseconds */
85
+ timeMs: number
86
+ /** Provider that generated the proof */
87
+ providerId: string
88
+ }
89
+
90
+ // ─── Composition Options ────────────────────────────────────────────────────
91
+
92
+ /**
93
+ * Options for composing proofs
94
+ */
95
+ export interface ComposeProofsOptions {
96
+ /** Proofs to compose */
97
+ proofs: SingleProof[]
98
+ /** Override default strategy */
99
+ strategy?: ProofAggregationStrategy
100
+ /** Override default config */
101
+ config?: Partial<ProofCompositionConfig>
102
+ /** Event listener for progress updates */
103
+ onProgress?: CompositionEventListener
104
+ /** Abort signal for cancellation */
105
+ abortSignal?: AbortSignal
106
+ }
107
+
108
+ /**
109
+ * Options for verifying a composed proof
110
+ */
111
+ export interface VerifyComposedProofOptions {
112
+ /** The composed proof to verify */
113
+ composedProof: ComposedProof
114
+ /** Whether to verify individual proofs */
115
+ verifyIndividual?: boolean
116
+ /** Whether to use batch verification if available */
117
+ useBatchVerification?: boolean
118
+ /** Timeout for verification */
119
+ timeoutMs?: number
120
+ }
121
+
122
+ // ─── Aggregation ────────────────────────────────────────────────────────────
123
+
124
+ /**
125
+ * Options for aggregating proofs
126
+ */
127
+ export interface AggregateProofsOptions {
128
+ /** Proofs to aggregate */
129
+ proofs: SingleProof[]
130
+ /** Target proof system for aggregated proof */
131
+ targetSystem: ProofSystem
132
+ /** Whether to verify before aggregating */
133
+ verifyFirst?: boolean
134
+ /** Maximum recursion depth */
135
+ maxRecursionDepth?: number
136
+ }
137
+
138
+ /**
139
+ * Result of proof aggregation
140
+ */
141
+ export interface AggregationResult {
142
+ /** Whether aggregation was successful */
143
+ success: boolean
144
+ /** The aggregated proof (if successful) */
145
+ aggregatedProof?: HexString
146
+ /** Error message (if failed) */
147
+ error?: string
148
+ /** Aggregation metrics */
149
+ metrics: {
150
+ inputProofCount: number
151
+ outputProofSize: number
152
+ timeMs: number
153
+ recursionDepth: number
154
+ }
155
+ }
156
+
157
+ // ─── Conversion ─────────────────────────────────────────────────────────────
158
+
159
+ /**
160
+ * Options for converting proof formats
161
+ */
162
+ export interface ConvertProofOptions {
163
+ /** Source proof */
164
+ proof: SingleProof
165
+ /** Target proof system */
166
+ targetSystem: ProofSystem
167
+ /** Whether to preserve metadata */
168
+ preserveMetadata?: boolean
169
+ }
170
+
171
+ /**
172
+ * Result of proof conversion
173
+ */
174
+ export interface ConversionResult {
175
+ /** Whether conversion was successful */
176
+ success: boolean
177
+ /** The converted proof (if successful) */
178
+ convertedProof?: SingleProof
179
+ /** Error message (if failed) */
180
+ error?: string
181
+ /** Whether conversion was lossless */
182
+ lossless: boolean
183
+ }
184
+
185
+ // ─── Caching ────────────────────────────────────────────────────────────────
186
+
187
+ /**
188
+ * Cache entry for a proof
189
+ */
190
+ export interface ProofCacheEntry {
191
+ /** The cached proof */
192
+ proof: SingleProof | ComposedProof
193
+ /** When the entry was created */
194
+ createdAt: number
195
+ /** When the entry expires */
196
+ expiresAt: number
197
+ /** Number of times this entry was accessed */
198
+ accessCount: number
199
+ /** Last access timestamp */
200
+ lastAccessedAt: number
201
+ /** Size in bytes */
202
+ sizeBytes: number
203
+ }
204
+
205
+ /**
206
+ * Cache statistics
207
+ */
208
+ export interface CacheStats {
209
+ /** Total entries in cache */
210
+ entryCount: number
211
+ /** Total size in bytes */
212
+ totalSizeBytes: number
213
+ /** Hit rate (0-1) */
214
+ hitRate: number
215
+ /** Number of cache hits */
216
+ hits: number
217
+ /** Number of cache misses */
218
+ misses: number
219
+ /** Number of evictions */
220
+ evictions: number
221
+ }
222
+
223
+ // ─── Worker Pool ────────────────────────────────────────────────────────────
224
+
225
+ /**
226
+ * Configuration for the worker pool
227
+ */
228
+ export interface WorkerPoolConfig {
229
+ /** Minimum number of workers */
230
+ minWorkers: number
231
+ /** Maximum number of workers */
232
+ maxWorkers: number
233
+ /** Worker idle timeout (milliseconds) */
234
+ idleTimeoutMs: number
235
+ /** Task queue size limit */
236
+ maxQueueSize: number
237
+ /** Whether to use shared array buffers */
238
+ useSharedMemory: boolean
239
+ }
240
+
241
+ /**
242
+ * Status of the worker pool
243
+ */
244
+ export interface WorkerPoolStatus {
245
+ /** Number of active workers */
246
+ activeWorkers: number
247
+ /** Number of idle workers */
248
+ idleWorkers: number
249
+ /** Number of tasks in queue */
250
+ queuedTasks: number
251
+ /** Number of tasks being processed */
252
+ processingTasks: number
253
+ /** Average task completion time (milliseconds) */
254
+ avgTaskTimeMs: number
255
+ }
256
+
257
+ // ─── Cross-System Compatibility ─────────────────────────────────────────────
258
+
259
+ /**
260
+ * Compatibility matrix entry
261
+ */
262
+ export interface SystemCompatibility {
263
+ /** Source system */
264
+ source: ProofSystem
265
+ /** Target system */
266
+ target: ProofSystem
267
+ /** Whether conversion is supported */
268
+ conversionSupported: boolean
269
+ /** Whether aggregation is supported */
270
+ aggregationSupported: boolean
271
+ /** Compatibility notes */
272
+ notes?: string
273
+ }
274
+
275
+ /**
276
+ * Full compatibility matrix
277
+ */
278
+ export type CompatibilityMatrix = Record<ProofSystem, Record<ProofSystem, SystemCompatibility>>
279
+
280
+ // ─── Fallback Configuration ─────────────────────────────────────────────────
281
+
282
+ /**
283
+ * Fallback strategy configuration
284
+ */
285
+ export interface FallbackConfig {
286
+ /** Primary proof system */
287
+ primary: ProofSystem
288
+ /** Fallback chain (in order of preference) */
289
+ fallbackChain: ProofSystem[]
290
+ /** Whether to retry on failure */
291
+ retryOnFailure: boolean
292
+ /** Maximum retry attempts */
293
+ maxRetries: number
294
+ /** Delay between retries (milliseconds) */
295
+ retryDelayMs: number
296
+ /** Whether to use exponential backoff */
297
+ exponentialBackoff: boolean
298
+ }
299
+
300
+ // ─── Telemetry ──────────────────────────────────────────────────────────────
301
+
302
+ /**
303
+ * Telemetry data for proof operations
304
+ */
305
+ export interface ProofTelemetry {
306
+ /** Operation type */
307
+ operation: 'generate' | 'verify' | 'compose' | 'aggregate' | 'convert'
308
+ /** Proof system used */
309
+ system: ProofSystem
310
+ /** Circuit ID */
311
+ circuitId: string
312
+ /** Duration in milliseconds */
313
+ durationMs: number
314
+ /** Whether operation succeeded */
315
+ success: boolean
316
+ /** Error code (if failed) */
317
+ errorCode?: string
318
+ /** Memory usage (bytes) */
319
+ memoryUsage?: number
320
+ /** Timestamp */
321
+ timestamp: number
322
+ }
323
+
324
+ /**
325
+ * Telemetry collector interface
326
+ */
327
+ export interface TelemetryCollector {
328
+ /** Record a telemetry event */
329
+ record(telemetry: ProofTelemetry): void
330
+ /** Flush pending telemetry */
331
+ flush(): Promise<void>
332
+ /** Get aggregated metrics */
333
+ getMetrics(): ProofTelemetryMetrics
334
+ }
335
+
336
+ /**
337
+ * Aggregated telemetry metrics
338
+ */
339
+ export interface ProofTelemetryMetrics {
340
+ /** Operations by type */
341
+ operationCounts: Record<string, number>
342
+ /** Average duration by operation type */
343
+ avgDurationMs: Record<string, number>
344
+ /** Success rate by operation type */
345
+ successRates: Record<string, number>
346
+ /** Total operations */
347
+ totalOperations: number
348
+ /** Time window for these metrics */
349
+ timeWindowMs: number
350
+ }
351
+
352
+ // ─── Re-exports for Convenience ─────────────────────────────────────────────
353
+
354
+ // Enums (must be exported as values, not types)
355
+ export {
356
+ ProofAggregationStrategy,
357
+ ComposedProofStatus,
358
+ CompositionErrorCode,
359
+ DEFAULT_COMPOSITION_CONFIG,
360
+ } from '@sip-protocol/types'
361
+
362
+ // Types
363
+ export type {
364
+ ProofSystem,
365
+ SingleProof,
366
+ ComposedProof,
367
+ ProofMetadata,
368
+ CompositionMetadata,
369
+ ProofCompositionConfig,
370
+ ProofProviderCapabilities,
371
+ ProofProviderStatus,
372
+ ProofProviderMetrics,
373
+ CompositionResult,
374
+ CompositionError,
375
+ CompositionMetrics,
376
+ VerificationResult,
377
+ IndividualVerificationResult,
378
+ VerificationHints,
379
+ CompositionEventType,
380
+ CompositionEvent,
381
+ CompositionProgressEvent,
382
+ CompositionEventListener,
383
+ } from '@sip-protocol/types'