@sip-protocol/sdk 0.7.3 → 0.8.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.
- 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 +47556 -19603
- package/dist/browser.mjs +628 -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-3M3HNQCW.mjs → chunk-YWGJ77A2.mjs} +28656 -13103
- 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-DIBZHOOQ.d.ts → index-DXh2IGkz.d.ts} +21239 -10304
- package/dist/{index-8MQz13eJ.d.mts → index-DeE1ZzA4.d.mts} +21239 -10304
- package/dist/index.d.mts +9 -3
- package/dist/index.d.ts +9 -3
- package/dist/index.js +48396 -19623
- package/dist/index.mjs +537 -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 +44 -11
- 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 +252 -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 +47 -6
- 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 +186 -33
- package/src/chains/solana/providers/index.ts +31 -0
- package/src/chains/solana/providers/interface.ts +61 -18
- 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 +338 -67
- package/src/chains/solana/rpc-client.ts +1150 -0
- package/src/chains/solana/scan.ts +83 -66
- 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 +57 -6
- 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 +23 -0
- package/src/compliance/range-sas.ts +398 -33
- 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 +686 -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 +254 -4
- package/src/privacy-backends/interface.ts +649 -6
- 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.ts +13 -17
- package/src/privacy-backends/private-swap.ts +570 -0
- package/src/privacy-backends/rate-limiter.ts +683 -0
- package/src/privacy-backends/registry.ts +414 -2
- package/src/privacy-backends/router.ts +283 -3
- package/src/privacy-backends/shadowwire.ts +449 -0
- package/src/privacy-backends/sip-native.ts +3 -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 +110 -29
- 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/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-2XIVXWHA.mjs +0 -1930
- package/dist/chunk-3INS3PR5.mjs +0 -884
- package/dist/chunk-3OVABDRH.mjs +0 -17096
- package/dist/chunk-7RFRWDCW.mjs +0 -1504
- package/dist/chunk-DLDWZFYC.mjs +0 -1495
- package/dist/chunk-E6SZWREQ.mjs +0 -57
- package/dist/chunk-F6F73W35.mjs +0 -16166
- package/dist/chunk-G33LB27A.mjs +0 -16166
- package/dist/chunk-HGU6HZRC.mjs +0 -231
- package/dist/chunk-L2K34JCU.mjs +0 -1496
- package/dist/chunk-OFDBEIEK.mjs +0 -16166
- package/dist/chunk-SF7YSLF5.mjs +0 -1515
- package/dist/chunk-SN4ZDTVW.mjs +0 -16166
- package/dist/chunk-WWUSGOXE.mjs +0 -17129
- package/dist/constants-VOI7BSLK.mjs +0 -27
- package/dist/index-B71aXVzk.d.ts +0 -13264
- 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-pOIIuwfV.d.mts +0 -13264
- package/dist/index-xbWjohNq.d.mts +0 -11390
- package/dist/solana-4O4K45VU.mjs +0 -46
- package/dist/solana-5EMCTPTS.mjs +0 -46
- package/dist/solana-NDABAZ6P.mjs +0 -56
- package/dist/solana-Q4NAVBTS.mjs +0 -46
- package/dist/solana-ZYO63LY5.mjs +0 -46
package/src/proofs/mock.ts
CHANGED
|
@@ -25,6 +25,9 @@ import type {
|
|
|
25
25
|
} from './interface'
|
|
26
26
|
import { ProofGenerationError } from './interface'
|
|
27
27
|
import { ProofError, ErrorCode } from '../errors'
|
|
28
|
+
import { createLogger } from '../logger'
|
|
29
|
+
|
|
30
|
+
const log = createLogger('proofs/mock')
|
|
28
31
|
|
|
29
32
|
/**
|
|
30
33
|
* Mock proof marker - all mock proofs start with this prefix
|
|
@@ -107,12 +110,33 @@ export class MockProofProvider implements ProofProvider {
|
|
|
107
110
|
*/
|
|
108
111
|
async initialize(): Promise<void> {
|
|
109
112
|
if (!this._warningShown && !this._silent) {
|
|
110
|
-
|
|
113
|
+
log.warn(
|
|
114
|
+
{ framework: 'mock' },
|
|
115
|
+
'MockProofProvider initialized - NOT FOR PRODUCTION USE. Mock proofs provide NO cryptographic security.'
|
|
116
|
+
)
|
|
111
117
|
this._warningShown = true
|
|
112
118
|
}
|
|
113
119
|
this._isReady = true
|
|
114
120
|
}
|
|
115
121
|
|
|
122
|
+
/**
|
|
123
|
+
* Wait for the provider to be ready, with optional timeout
|
|
124
|
+
*
|
|
125
|
+
* For MockProofProvider, initialization is instant so this always resolves immediately.
|
|
126
|
+
*
|
|
127
|
+
* @param timeoutMs - Maximum time to wait (ignored for mock provider)
|
|
128
|
+
*/
|
|
129
|
+
async waitUntilReady(timeoutMs?: number): Promise<void> {
|
|
130
|
+
// Suppress unused variable warning
|
|
131
|
+
void timeoutMs
|
|
132
|
+
|
|
133
|
+
if (this._isReady) {
|
|
134
|
+
return
|
|
135
|
+
}
|
|
136
|
+
// Initialize if not already done
|
|
137
|
+
await this.initialize()
|
|
138
|
+
}
|
|
139
|
+
|
|
116
140
|
/**
|
|
117
141
|
* Generate a mock funding proof
|
|
118
142
|
*
|
package/src/proofs/noir.ts
CHANGED
|
@@ -26,17 +26,20 @@ import { ProofError, ErrorCode } from '../errors'
|
|
|
26
26
|
// Import Noir JS (dynamically loaded to support both Node and browser)
|
|
27
27
|
import { Noir } from '@noir-lang/noir_js'
|
|
28
28
|
import type { CompiledCircuit } from '@noir-lang/types'
|
|
29
|
-
import { UltraHonkBackend } from '@aztec/bb.js'
|
|
29
|
+
import { UltraHonkBackend, Barretenberg } from '@aztec/bb.js'
|
|
30
30
|
import { secp256k1 } from '@noble/curves/secp256k1'
|
|
31
31
|
|
|
32
32
|
// Import compiled circuit artifacts
|
|
33
|
-
//
|
|
33
|
+
// Circuit JSON files are typed via CompiledCircuit assertion
|
|
34
34
|
import fundingCircuitArtifact from './circuits/funding_proof.json'
|
|
35
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
36
35
|
import validityCircuitArtifact from './circuits/validity_proof.json'
|
|
37
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
38
36
|
import fulfillmentCircuitArtifact from './circuits/fulfillment_proof.json'
|
|
39
37
|
|
|
38
|
+
// Type assertion for circuit artifacts (JSON modules)
|
|
39
|
+
const fundingCircuit = fundingCircuitArtifact as unknown as CompiledCircuit
|
|
40
|
+
const validityCircuit = validityCircuitArtifact as unknown as CompiledCircuit
|
|
41
|
+
const fulfillmentCircuit = fulfillmentCircuitArtifact as unknown as CompiledCircuit
|
|
42
|
+
|
|
40
43
|
/**
|
|
41
44
|
* Public key coordinates for secp256k1
|
|
42
45
|
*/
|
|
@@ -113,11 +116,19 @@ export interface NoirProviderConfig {
|
|
|
113
116
|
* })
|
|
114
117
|
* ```
|
|
115
118
|
*/
|
|
119
|
+
/** Default initialization timeout in milliseconds */
|
|
120
|
+
const DEFAULT_INIT_TIMEOUT_MS = 30000
|
|
121
|
+
|
|
116
122
|
export class NoirProofProvider implements ProofProvider {
|
|
117
123
|
readonly framework: ProofFramework = 'noir'
|
|
118
124
|
private _isReady = false
|
|
125
|
+
private _initPromise: Promise<void> | null = null
|
|
126
|
+
private _initError: Error | null = null
|
|
119
127
|
private config: NoirProviderConfig
|
|
120
128
|
|
|
129
|
+
// Barretenberg instance (shared by all backends)
|
|
130
|
+
private barretenberg: Barretenberg | null = null
|
|
131
|
+
|
|
121
132
|
// Circuit instances
|
|
122
133
|
private fundingNoir: Noir | null = null
|
|
123
134
|
private fundingBackend: UltraHonkBackend | null = null
|
|
@@ -185,21 +196,94 @@ export class NoirProofProvider implements ProofProvider {
|
|
|
185
196
|
* Loads circuit artifacts and initializes the proving backend.
|
|
186
197
|
*/
|
|
187
198
|
async initialize(): Promise<void> {
|
|
199
|
+
// If already ready, return immediately
|
|
188
200
|
if (this._isReady) {
|
|
189
201
|
return
|
|
190
202
|
}
|
|
191
203
|
|
|
204
|
+
// If initialization is in progress, wait for it
|
|
205
|
+
if (this._initPromise) {
|
|
206
|
+
return this._initPromise
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
// If a previous initialization failed, rethrow the error
|
|
210
|
+
if (this._initError) {
|
|
211
|
+
throw this._initError
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
// Start initialization and track the promise
|
|
215
|
+
this._initPromise = this._doInitialize()
|
|
216
|
+
|
|
217
|
+
try {
|
|
218
|
+
await this._initPromise
|
|
219
|
+
} catch (error) {
|
|
220
|
+
// Store error for future calls
|
|
221
|
+
this._initError = error instanceof Error ? error : new Error(String(error))
|
|
222
|
+
this._initPromise = null
|
|
223
|
+
throw error
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
/**
|
|
228
|
+
* Wait for the provider to be ready, with optional timeout
|
|
229
|
+
*
|
|
230
|
+
* This method blocks until initialization is complete or the timeout is reached.
|
|
231
|
+
* If initialization is already complete, resolves immediately.
|
|
232
|
+
* If initialization hasn't started, this method will start it.
|
|
233
|
+
*
|
|
234
|
+
* @param timeoutMs - Maximum time to wait in milliseconds (default: 30000)
|
|
235
|
+
* @throws ProofError if timeout is reached before ready
|
|
236
|
+
* @throws ProofError if initialization fails
|
|
237
|
+
*/
|
|
238
|
+
async waitUntilReady(timeoutMs: number = DEFAULT_INIT_TIMEOUT_MS): Promise<void> {
|
|
239
|
+
if (this._isReady) {
|
|
240
|
+
return
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
// If there was a previous error, throw it
|
|
244
|
+
if (this._initError) {
|
|
245
|
+
throw new ProofError(
|
|
246
|
+
`NoirProofProvider initialization failed: ${this._initError.message}`,
|
|
247
|
+
ErrorCode.PROOF_PROVIDER_NOT_READY,
|
|
248
|
+
{ context: { error: this._initError } }
|
|
249
|
+
)
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
// Start initialization if not already started
|
|
253
|
+
const initPromise = this._initPromise ?? this.initialize()
|
|
254
|
+
|
|
255
|
+
// Race between initialization and timeout
|
|
256
|
+
const timeoutPromise = new Promise<never>((_, reject) => {
|
|
257
|
+
setTimeout(() => {
|
|
258
|
+
reject(new ProofError(
|
|
259
|
+
`NoirProofProvider initialization timed out after ${timeoutMs}ms`,
|
|
260
|
+
ErrorCode.PROOF_PROVIDER_NOT_READY
|
|
261
|
+
))
|
|
262
|
+
}, timeoutMs)
|
|
263
|
+
})
|
|
264
|
+
|
|
265
|
+
await Promise.race([initPromise, timeoutPromise])
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
/**
|
|
269
|
+
* Internal initialization logic
|
|
270
|
+
*/
|
|
271
|
+
private async _doInitialize(): Promise<void> {
|
|
192
272
|
try {
|
|
193
273
|
if (this.config.verbose) {
|
|
194
274
|
console.log('[NoirProofProvider] Initializing...')
|
|
195
275
|
}
|
|
196
276
|
|
|
197
|
-
// Initialize
|
|
198
|
-
|
|
199
|
-
|
|
277
|
+
// Initialize Barretenberg (bb.js 3.x requires shared instance)
|
|
278
|
+
this.barretenberg = await Barretenberg.new()
|
|
279
|
+
|
|
280
|
+
if (this.config.verbose) {
|
|
281
|
+
console.log('[NoirProofProvider] Barretenberg initialized')
|
|
282
|
+
}
|
|
200
283
|
|
|
201
|
-
//
|
|
202
|
-
|
|
284
|
+
// Initialize Funding Proof circuit
|
|
285
|
+
// Create backend for proof generation (bb.js 3.x requires Barretenberg instance)
|
|
286
|
+
this.fundingBackend = new UltraHonkBackend(fundingCircuit.bytecode, this.barretenberg)
|
|
203
287
|
|
|
204
288
|
// Create Noir instance for witness generation
|
|
205
289
|
this.fundingNoir = new Noir(fundingCircuit)
|
|
@@ -212,10 +296,8 @@ export class NoirProofProvider implements ProofProvider {
|
|
|
212
296
|
}
|
|
213
297
|
|
|
214
298
|
// Initialize Validity Proof circuit
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
// Create backend for validity proof generation
|
|
218
|
-
this.validityBackend = new UltraHonkBackend(validityCircuit.bytecode)
|
|
299
|
+
// Create backend for validity proof generation (bb.js 3.x requires Barretenberg instance)
|
|
300
|
+
this.validityBackend = new UltraHonkBackend(validityCircuit.bytecode, this.barretenberg)
|
|
219
301
|
|
|
220
302
|
// Create Noir instance for validity witness generation
|
|
221
303
|
this.validityNoir = new Noir(validityCircuit)
|
|
@@ -225,10 +307,8 @@ export class NoirProofProvider implements ProofProvider {
|
|
|
225
307
|
}
|
|
226
308
|
|
|
227
309
|
// Initialize Fulfillment Proof circuit
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
// Create backend for fulfillment proof generation
|
|
231
|
-
this.fulfillmentBackend = new UltraHonkBackend(fulfillmentCircuit.bytecode)
|
|
310
|
+
// Create backend for fulfillment proof generation (bb.js 3.x requires Barretenberg instance)
|
|
311
|
+
this.fulfillmentBackend = new UltraHonkBackend(fulfillmentCircuit.bytecode, this.barretenberg)
|
|
232
312
|
|
|
233
313
|
// Create Noir instance for fulfillment witness generation
|
|
234
314
|
this.fulfillmentNoir = new Noir(fulfillmentCircuit)
|
|
@@ -819,21 +899,22 @@ export class NoirProofProvider implements ProofProvider {
|
|
|
819
899
|
* Destroy the provider and free resources
|
|
820
900
|
*/
|
|
821
901
|
async destroy(): Promise<void> {
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
this.validityBackend = null
|
|
829
|
-
}
|
|
830
|
-
if (this.fulfillmentBackend) {
|
|
831
|
-
await this.fulfillmentBackend.destroy()
|
|
832
|
-
this.fulfillmentBackend = null
|
|
833
|
-
}
|
|
902
|
+
// Clear backend references (bb.js 3.x backends don't have destroy method)
|
|
903
|
+
this.fundingBackend = null
|
|
904
|
+
this.validityBackend = null
|
|
905
|
+
this.fulfillmentBackend = null
|
|
906
|
+
|
|
907
|
+
// Clear Noir instances
|
|
834
908
|
this.fundingNoir = null
|
|
835
909
|
this.validityNoir = null
|
|
836
910
|
this.fulfillmentNoir = null
|
|
911
|
+
|
|
912
|
+
// Destroy shared Barretenberg instance (bb.js 3.x)
|
|
913
|
+
if (this.barretenberg) {
|
|
914
|
+
await this.barretenberg.destroy()
|
|
915
|
+
this.barretenberg = null
|
|
916
|
+
}
|
|
917
|
+
|
|
837
918
|
this._isReady = false
|
|
838
919
|
}
|
|
839
920
|
|