@sip-protocol/sdk 0.7.2 → 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.
- package/LICENSE +21 -0
- package/README.md +267 -0
- package/dist/{TransportWebUSB-TQ7WZ4LE.mjs → TransportWebUSB-YQMAGJAJ.mjs} +12 -9
- package/dist/browser.d.mts +10 -4
- package/dist/browser.d.ts +10 -4
- package/dist/browser.js +48874 -18336
- package/dist/browser.mjs +674 -48
- package/dist/chunk-4GRJ5MAW.mjs +152 -0
- package/dist/chunk-5D7A3L3W.mjs +717 -0
- package/dist/chunk-64AYA5F5.mjs +7834 -0
- package/dist/chunk-GMDGB22A.mjs +379 -0
- package/dist/chunk-I534WKN7.mjs +328 -0
- package/dist/chunk-IBZVA5Y7.mjs +1003 -0
- package/dist/chunk-PRRZAWJE.mjs +223 -0
- package/dist/{chunk-UJCSKKID.mjs → chunk-XGB3TDIC.mjs} +13 -1
- package/dist/chunk-YWGJ77A2.mjs +33806 -0
- package/dist/{chunk-6WGN57S2.mjs → chunk-Z3K7W5S3.mjs} +48 -0
- package/dist/constants-LHAAUC2T.mjs +51 -0
- package/dist/dist-2OGQ7FED.mjs +3957 -0
- package/dist/dist-IFHPYLDX.mjs +254 -0
- package/dist/fulfillment_proof-ANHVPKTB.mjs +21 -0
- package/dist/funding_proof-ICFZ5LHY.mjs +21 -0
- package/dist/index-DXh2IGkz.d.ts +24681 -0
- package/dist/index-DeE1ZzA4.d.mts +24681 -0
- package/dist/index.d.mts +9 -3
- package/dist/index.d.ts +9 -3
- package/dist/index.js +48676 -17318
- package/dist/index.mjs +583 -19
- package/dist/interface-Bf7w1PLW.d.mts +679 -0
- package/dist/interface-Bf7w1PLW.d.ts +679 -0
- package/dist/{noir-DKfEzWy9.d.mts → noir-kzbLVTei.d.mts} +31 -21
- package/dist/{noir-DKfEzWy9.d.ts → noir-kzbLVTei.d.ts} +31 -21
- package/dist/proofs/halo2.d.mts +151 -0
- package/dist/proofs/halo2.d.ts +151 -0
- package/dist/proofs/halo2.js +350 -0
- package/dist/proofs/halo2.mjs +11 -0
- package/dist/proofs/kimchi.d.mts +160 -0
- package/dist/proofs/kimchi.d.ts +160 -0
- package/dist/proofs/kimchi.js +431 -0
- package/dist/proofs/kimchi.mjs +13 -0
- package/dist/proofs/noir.d.mts +1 -1
- package/dist/proofs/noir.d.ts +1 -1
- package/dist/proofs/noir.js +74 -18
- package/dist/proofs/noir.mjs +84 -24
- package/dist/solana-U3MEGU7W.mjs +280 -0
- package/dist/validity_proof-3POXLPNY.mjs +21 -0
- package/package.json +54 -21
- package/src/adapters/index.ts +41 -0
- package/src/adapters/jupiter.ts +571 -0
- package/src/adapters/near-intents.ts +135 -0
- package/src/advisor/advisor.ts +653 -0
- package/src/advisor/index.ts +54 -0
- package/src/advisor/tools.ts +303 -0
- package/src/advisor/types.ts +164 -0
- package/src/chains/ethereum/announcement.ts +536 -0
- package/src/chains/ethereum/bnb-optimizations.ts +474 -0
- package/src/chains/ethereum/commitment.ts +522 -0
- package/src/chains/ethereum/constants.ts +462 -0
- package/src/chains/ethereum/deployment.ts +596 -0
- package/src/chains/ethereum/gas-estimation.ts +538 -0
- package/src/chains/ethereum/index.ts +268 -0
- package/src/chains/ethereum/optimizations.ts +614 -0
- package/src/chains/ethereum/privacy-adapter.ts +855 -0
- package/src/chains/ethereum/registry.ts +584 -0
- package/src/chains/ethereum/rpc.ts +905 -0
- package/src/chains/ethereum/stealth.ts +491 -0
- package/src/chains/ethereum/token.ts +790 -0
- package/src/chains/ethereum/transfer.ts +637 -0
- package/src/chains/ethereum/types.ts +456 -0
- package/src/chains/ethereum/viewing-key.ts +455 -0
- package/src/chains/near/commitment.ts +608 -0
- package/src/chains/near/constants.ts +284 -0
- package/src/chains/near/function-call.ts +871 -0
- package/src/chains/near/history.ts +654 -0
- package/src/chains/near/implicit-account.ts +840 -0
- package/src/chains/near/index.ts +393 -0
- package/src/chains/near/native-transfer.ts +658 -0
- package/src/chains/near/nep141.ts +775 -0
- package/src/chains/near/privacy-adapter.ts +889 -0
- package/src/chains/near/resolver.ts +971 -0
- package/src/chains/near/rpc.ts +1016 -0
- package/src/chains/near/stealth.ts +419 -0
- package/src/chains/near/types.ts +317 -0
- package/src/chains/near/viewing-key.ts +876 -0
- package/src/chains/solana/anchor-transfer.ts +386 -0
- package/src/chains/solana/commitment.ts +577 -0
- package/src/chains/solana/constants.ts +126 -12
- package/src/chains/solana/ephemeral-keys.ts +543 -0
- package/src/chains/solana/index.ts +276 -1
- package/src/chains/solana/key-derivation.ts +418 -0
- package/src/chains/solana/kit-compat.ts +334 -0
- package/src/chains/solana/optimizations.ts +560 -0
- package/src/chains/solana/privacy-adapter.ts +605 -0
- package/src/chains/solana/providers/generic.ts +201 -0
- package/src/chains/solana/providers/helius-enhanced-types.ts +336 -0
- package/src/chains/solana/providers/helius-enhanced.ts +623 -0
- package/src/chains/solana/providers/helius.ts +402 -0
- package/src/chains/solana/providers/index.ts +85 -0
- package/src/chains/solana/providers/interface.ts +221 -0
- package/src/chains/solana/providers/quicknode.ts +409 -0
- package/src/chains/solana/providers/triton.ts +426 -0
- package/src/chains/solana/providers/webhook.ts +790 -0
- package/src/chains/solana/rpc-client.ts +1150 -0
- package/src/chains/solana/scan.ts +170 -73
- package/src/chains/solana/sol-transfer.ts +732 -0
- package/src/chains/solana/spl-transfer.ts +886 -0
- package/src/chains/solana/stealth-scanner.ts +703 -0
- package/src/chains/solana/sunspot-verifier.ts +453 -0
- package/src/chains/solana/transaction-builder.ts +755 -0
- package/src/chains/solana/transfer.ts +74 -5
- package/src/chains/solana/types.ts +77 -7
- package/src/chains/solana/utils.ts +110 -0
- package/src/chains/solana/viewing-key.ts +807 -0
- package/src/compliance/fireblocks.ts +921 -0
- package/src/compliance/index.ts +37 -0
- package/src/compliance/range-sas.ts +956 -0
- package/src/config/endpoints.ts +100 -0
- package/src/crypto.ts +11 -8
- package/src/errors.ts +82 -0
- package/src/evm/erc4337-relayer.ts +830 -0
- package/src/evm/index.ts +47 -0
- package/src/fees/calculator.ts +396 -0
- package/src/fees/index.ts +87 -0
- package/src/fees/near-contract.ts +429 -0
- package/src/fees/types.ts +268 -0
- package/src/index.ts +785 -1
- package/src/intent.ts +6 -3
- package/src/logger.ts +324 -0
- package/src/network/index.ts +80 -0
- package/src/network/proxy.ts +691 -0
- package/src/optimizations/index.ts +541 -0
- package/src/oracle/types.ts +1 -0
- package/src/privacy-backends/arcium-types.ts +727 -0
- package/src/privacy-backends/arcium.ts +719 -0
- package/src/privacy-backends/combined-privacy.ts +866 -0
- package/src/privacy-backends/cspl-token.ts +595 -0
- package/src/privacy-backends/cspl-types.ts +512 -0
- package/src/privacy-backends/cspl.ts +907 -0
- package/src/privacy-backends/health.ts +488 -0
- package/src/privacy-backends/inco-types.ts +323 -0
- package/src/privacy-backends/inco.ts +616 -0
- package/src/privacy-backends/index.ts +336 -0
- package/src/privacy-backends/interface.ts +906 -0
- package/src/privacy-backends/lru-cache.ts +343 -0
- package/src/privacy-backends/magicblock.ts +458 -0
- package/src/privacy-backends/mock.ts +258 -0
- package/src/privacy-backends/privacycash-types.ts +278 -0
- package/src/privacy-backends/privacycash.ts +456 -0
- package/src/privacy-backends/private-swap.ts +570 -0
- package/src/privacy-backends/rate-limiter.ts +683 -0
- package/src/privacy-backends/registry.ts +690 -0
- package/src/privacy-backends/router.ts +626 -0
- package/src/privacy-backends/shadowwire.ts +449 -0
- package/src/privacy-backends/sip-native.ts +256 -0
- package/src/privacy-logger.ts +191 -0
- package/src/production-safety.ts +373 -0
- package/src/proofs/aggregator.ts +1029 -0
- package/src/proofs/browser-composer.ts +1150 -0
- package/src/proofs/browser.ts +113 -25
- package/src/proofs/cache/index.ts +127 -0
- package/src/proofs/cache/interface.ts +545 -0
- package/src/proofs/cache/key-generator.ts +188 -0
- package/src/proofs/cache/lru-cache.ts +481 -0
- package/src/proofs/cache/multi-tier-cache.ts +575 -0
- package/src/proofs/cache/persistent-cache.ts +788 -0
- package/src/proofs/compliance-proof.ts +872 -0
- package/src/proofs/composer/base.ts +923 -0
- package/src/proofs/composer/index.ts +25 -0
- package/src/proofs/composer/interface.ts +518 -0
- package/src/proofs/composer/types.ts +383 -0
- package/src/proofs/converters/halo2.ts +452 -0
- package/src/proofs/converters/index.ts +208 -0
- package/src/proofs/converters/interface.ts +363 -0
- package/src/proofs/converters/kimchi.ts +462 -0
- package/src/proofs/converters/noir.ts +451 -0
- package/src/proofs/fallback.ts +888 -0
- package/src/proofs/halo2.ts +42 -0
- package/src/proofs/index.ts +471 -0
- package/src/proofs/interface.ts +13 -0
- package/src/proofs/kimchi.ts +42 -0
- package/src/proofs/lazy.ts +1004 -0
- package/src/proofs/mock.ts +25 -1
- package/src/proofs/noir.ts +111 -30
- package/src/proofs/orchestrator.ts +960 -0
- package/src/proofs/parallel/concurrency.ts +297 -0
- package/src/proofs/parallel/dependency-graph.ts +602 -0
- package/src/proofs/parallel/executor.ts +420 -0
- package/src/proofs/parallel/index.ts +131 -0
- package/src/proofs/parallel/interface.ts +685 -0
- package/src/proofs/parallel/worker-pool.ts +644 -0
- package/src/proofs/providers/halo2.ts +560 -0
- package/src/proofs/providers/index.ts +34 -0
- package/src/proofs/providers/kimchi.ts +641 -0
- package/src/proofs/validator.ts +881 -0
- package/src/proofs/verifier.ts +867 -0
- package/src/quantum/index.ts +112 -0
- package/src/quantum/winternitz-vault.ts +639 -0
- package/src/quantum/wots.ts +611 -0
- package/src/settlement/backends/direct-chain.ts +1 -0
- package/src/settlement/index.ts +9 -0
- package/src/settlement/router.ts +732 -46
- package/src/solana/index.ts +72 -0
- package/src/solana/jito-relayer.ts +687 -0
- package/src/solana/noir-verifier-types.ts +430 -0
- package/src/solana/noir-verifier.ts +816 -0
- package/src/stealth/address-derivation.ts +193 -0
- package/src/stealth/ed25519.ts +431 -0
- package/src/stealth/index.ts +233 -0
- package/src/stealth/meta-address.ts +221 -0
- package/src/stealth/secp256k1.ts +368 -0
- package/src/stealth/utils.ts +194 -0
- package/src/stealth.ts +50 -1504
- package/src/surveillance/algorithms/address-reuse.ts +143 -0
- package/src/surveillance/algorithms/cluster.ts +247 -0
- package/src/surveillance/algorithms/exchange.ts +295 -0
- package/src/surveillance/algorithms/temporal.ts +337 -0
- package/src/surveillance/analyzer.ts +442 -0
- package/src/surveillance/index.ts +64 -0
- package/src/surveillance/scoring.ts +372 -0
- package/src/surveillance/types.ts +264 -0
- package/src/sync/index.ts +106 -0
- package/src/sync/manager.ts +504 -0
- package/src/sync/mock-provider.ts +318 -0
- package/src/sync/oblivious.ts +625 -0
- package/src/tokens/index.ts +15 -0
- package/src/tokens/registry.ts +301 -0
- package/src/utils/deprecation.ts +94 -0
- package/src/utils/index.ts +9 -0
- package/src/wallet/ethereum/index.ts +68 -0
- package/src/wallet/ethereum/metamask-privacy.ts +420 -0
- package/src/wallet/ethereum/multi-wallet.ts +646 -0
- package/src/wallet/ethereum/privacy-adapter.ts +700 -0
- package/src/wallet/ethereum/types.ts +3 -1
- package/src/wallet/ethereum/walletconnect-adapter.ts +675 -0
- package/src/wallet/hardware/index.ts +10 -0
- package/src/wallet/hardware/ledger-privacy.ts +414 -0
- package/src/wallet/index.ts +71 -0
- package/src/wallet/near/adapter.ts +626 -0
- package/src/wallet/near/index.ts +86 -0
- package/src/wallet/near/meteor-wallet.ts +1153 -0
- package/src/wallet/near/my-near-wallet.ts +790 -0
- package/src/wallet/near/wallet-selector.ts +702 -0
- package/src/wallet/solana/adapter.ts +6 -4
- package/src/wallet/solana/index.ts +13 -0
- package/src/wallet/solana/privacy-adapter.ts +567 -0
- package/src/wallet/sui/types.ts +6 -4
- package/src/zcash/rpc-client.ts +13 -6
- package/dist/chunk-3INS3PR5.mjs +0 -884
- package/dist/chunk-3OVABDRH.mjs +0 -17096
- package/dist/chunk-DLDWZFYC.mjs +0 -1495
- package/dist/chunk-E6SZWREQ.mjs +0 -57
- package/dist/chunk-G33LB27A.mjs +0 -16166
- package/dist/chunk-HGU6HZRC.mjs +0 -231
- package/dist/chunk-L2K34JCU.mjs +0 -1496
- package/dist/chunk-SN4ZDTVW.mjs +0 -16166
- package/dist/constants-VOI7BSLK.mjs +0 -27
- package/dist/index-BYZbDjal.d.ts +0 -11390
- package/dist/index-CHB3KuOB.d.mts +0 -11859
- package/dist/index-CzWPI6Le.d.ts +0 -11859
- package/dist/index-xbWjohNq.d.mts +0 -11390
- package/dist/solana-5EMCTPTS.mjs +0 -46
- package/dist/solana-Q4NAVBTS.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'
|