@arcanetech/privacy-sdk-stellar 0.2.0 → 0.2.3

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.
@@ -0,0 +1,1051 @@
1
+ import * as _arcanetech_privacy_sdk_core from '@arcanetech/privacy-sdk-core';
2
+ import { OperationKind, DepositIntent, TransferIntent, WithdrawIntent, createRejectedOperation } from '@arcanetech/privacy-sdk-core';
3
+ export { isPreparedOperation } from '@arcanetech/privacy-sdk-core';
4
+ import * as _arcanetech_privacy_sdk_core_state from '@arcanetech/privacy-sdk-core/state';
5
+ import { StateBridgeAdapter, StateBridgeDefinition } from '@arcanetech/privacy-sdk-core/state';
6
+ import { OnboardingPayload } from 'contract';
7
+ export { OnboardingPayload, PrivateAddressRegistration } from 'contract';
8
+ import { DepositObject, CoinData, AuditPublicKey, PrivacyPoolSDK, StateFile, TransactionAuditParams, InspectKytPassageApproved } from '@auditable/privacy-pool-zk-sdk';
9
+ export { DEFAULT_STEALTH_SIGN_NONCE as DEFAULT_PRIVATE_ADDRESS_SIGN_NONCE } from '@auditable/privacy-pool-zk-sdk';
10
+ import { Buffer as Buffer$1 } from 'buffer';
11
+
12
+ type StellarPrivateRecordStatus = 'pending' | 'finalized' | 'spent';
13
+ interface StellarPrivateCoinNote {
14
+ value: string;
15
+ nullifier: string;
16
+ secret: string;
17
+ commitment: string;
18
+ asset_hi: string;
19
+ asset_lo: string;
20
+ application_id?: string;
21
+ }
22
+ type StellarRegistryStatus = 'registered' | 'unregistered';
23
+ type StellarTrustlineStatus = 'active' | 'inactive' | 'none';
24
+ type StellarTransactionConfirmationStatus = 'pending' | 'success' | 'failed';
25
+ interface StellarAsset {
26
+ id: number;
27
+ assetId: StellarAssetId;
28
+ name: string;
29
+ logoUrl: string | null;
30
+ issuerAddress: string | null;
31
+ clientContract: string | null;
32
+ poolContracts: string[];
33
+ poolContract: string;
34
+ mintable: boolean;
35
+ mintAmount: string | null;
36
+ decimals?: number | null;
37
+ }
38
+ interface StellarAssetsCatalog {
39
+ byId: Record<StellarAssetId, StellarAsset>;
40
+ listOrder: StellarAssetId[];
41
+ }
42
+ interface StellarPublicBalance {
43
+ owner: StellarAddress;
44
+ asset: StellarAssetId;
45
+ balance: string;
46
+ trustlineStatus: StellarTrustlineStatus;
47
+ }
48
+ interface StellarRegistryLookup {
49
+ owner: StellarAddress;
50
+ status: StellarRegistryStatus;
51
+ privateAddressStpl1?: string;
52
+ publicKeyXHex?: string;
53
+ publicKeyYHex?: string;
54
+ updatedAtLedger?: number;
55
+ cachedAt?: string;
56
+ }
57
+ interface StellarWalletPrivateAddressScalar {
58
+ owner: StellarAddress;
59
+ nonce: string;
60
+ scalarHex: string;
61
+ updatedAt?: string;
62
+ }
63
+ interface StellarWalletPrivateAddressRecord {
64
+ owner: StellarAddress;
65
+ nonce: string;
66
+ privateAddress: string;
67
+ createdAt: number;
68
+ }
69
+ interface StellarPoolMerkleState {
70
+ poolContract: string;
71
+ commitments: string[];
72
+ commitmentCount: number;
73
+ merkleRootHex: string;
74
+ updatedAt: number;
75
+ syncedLedger?: number;
76
+ }
77
+ interface StellarLeafEphemeral {
78
+ poolContract: string;
79
+ leafIndex: number;
80
+ xHex: string;
81
+ yHex: string;
82
+ cachedAt?: string;
83
+ }
84
+ interface StellarPendingClaim {
85
+ id: string;
86
+ owner: StellarAddress;
87
+ asset: StellarAssetId;
88
+ amount: bigint;
89
+ createdAt: string;
90
+ poolTxId?: string;
91
+ commitmentHex?: string;
92
+ nullifierHex?: string;
93
+ futureNullifierHashHex?: string;
94
+ assetHiHex?: string;
95
+ assetLoHex?: string;
96
+ nullifierFieldHex?: string;
97
+ secretHex?: string;
98
+ tempPublicKeyXHex?: string;
99
+ tempPublicKeyYHex?: string;
100
+ encryptedRecoveryBase64?: string;
101
+ createdAtLedger?: number;
102
+ }
103
+ interface StellarPendingClaimsPagination {
104
+ total: number;
105
+ page: number;
106
+ pageSize: number;
107
+ hasMore: boolean;
108
+ }
109
+ interface StellarPendingClaimsState {
110
+ items: StellarPendingClaim[];
111
+ pagination?: StellarPendingClaimsPagination;
112
+ }
113
+ interface StellarIncomingDelivery {
114
+ id: number;
115
+ privateAddress: string;
116
+ asset: StellarAssetId;
117
+ ciphertextBase64: string;
118
+ ephemeralKey: string;
119
+ tagBase64: string;
120
+ createdAt: string;
121
+ processed?: boolean;
122
+ }
123
+ interface StellarDeliverySyncState {
124
+ privateAddress: string;
125
+ asset: StellarAssetId;
126
+ bloomM: number;
127
+ bloomK: number;
128
+ bloomBitsBase64?: string;
129
+ lastPage?: number;
130
+ lastPolledAt?: string;
131
+ }
132
+ interface StellarPrivateRecord {
133
+ id: string;
134
+ owner: StellarAddress;
135
+ asset: StellarAssetId;
136
+ amount: bigint;
137
+ consumed: boolean;
138
+ status?: StellarPrivateRecordStatus;
139
+ poolContract?: string;
140
+ commitmentHex?: string;
141
+ nullifierHex?: string;
142
+ amountDisplay?: number;
143
+ deliveryId?: number;
144
+ privateAddress?: string;
145
+ txHash?: string;
146
+ coinNote?: StellarPrivateCoinNote;
147
+ depositScalarHex?: string;
148
+ precommitementHex?: string;
149
+ }
150
+ interface StellarPrivateAssetRow {
151
+ assetId: StellarAssetId;
152
+ poolContract: string;
153
+ totalAmount: bigint;
154
+ totalAmountDisplay: number;
155
+ }
156
+ interface StellarTransactionStatus {
157
+ txHash: string;
158
+ status: StellarTransactionConfirmationStatus;
159
+ ledger?: number;
160
+ createdAt?: string;
161
+ }
162
+ interface StellarAvailablePrivateRecordsFilter {
163
+ owner?: StellarAddress;
164
+ privateAddress?: string;
165
+ asset?: StellarAssetId;
166
+ }
167
+ interface StellarPendingClaimsFilter {
168
+ owner?: StellarAddress;
169
+ asset?: StellarAssetId;
170
+ }
171
+ interface StellarIncomingDeliveriesFilter {
172
+ privateAddress: string;
173
+ asset?: StellarAssetId;
174
+ includeProcessed?: boolean;
175
+ }
176
+
177
+ type AlignedDepositSlot = {
178
+ deposit: DepositObject;
179
+ commitment_hex: string;
180
+ coin: CoinData;
181
+ depositScalarHex: string;
182
+ precommitementHex: string;
183
+ };
184
+ type KytApplicationIdHints = [string, string, string, string];
185
+ type ProofResult = {
186
+ proof_hex: string;
187
+ public_hex: string;
188
+ applicationIdsPlaintext: KytApplicationIdHints;
189
+ };
190
+ type ProofWithChange = ProofResult & {
191
+ changeCoin?: {
192
+ commitment_hex: string;
193
+ coin: CoinData;
194
+ depositScalarHex: string;
195
+ precommitementHex: string;
196
+ };
197
+ };
198
+
199
+ type StellarPendingClaimSource = {
200
+ kind: 'pendingClaim';
201
+ claimId: string;
202
+ } | {
203
+ kind: 'pendingClaim';
204
+ claim: StellarPendingClaim;
205
+ };
206
+ type StellarTransferFromAddress = StellarAddress | StellarPendingClaimSource;
207
+
208
+ interface PoolMerkleStatePort {
209
+ get(poolContract: string): Promise<StellarPoolMerkleState | undefined>;
210
+ set(state: StellarPoolMerkleState): Promise<void>;
211
+ }
212
+ interface LeafEphemeralStatePort {
213
+ get(input: {
214
+ poolContract: string;
215
+ leafIndex: number;
216
+ }): Promise<StellarLeafEphemeral | undefined>;
217
+ set(ephemeral: StellarLeafEphemeral): Promise<void>;
218
+ }
219
+
220
+ type StellarSignTransaction = (input: {
221
+ xdr: string;
222
+ networkPassphrase: string;
223
+ address: string;
224
+ }) => Promise<{
225
+ signedTxXdr: string;
226
+ }>;
227
+
228
+ interface TransferTemporaryRecipientKey {
229
+ temporaryScalarHex: string;
230
+ temporaryPrivateAddressStpl1: string;
231
+ }
232
+ interface TransferOnboardingRecipientNoteInput$1 {
233
+ tokenAddress: string;
234
+ nullifier: string;
235
+ secret: string;
236
+ value: string;
237
+ }
238
+ interface TransferRecipientExecutionContext {
239
+ recipientPrivateAddressStpl1: string;
240
+ recipientStellarAddress?: string;
241
+ temporaryRecipientKey?: TransferTemporaryRecipientKey;
242
+ }
243
+ interface BuildTransferOnboardingAtExecuteInput {
244
+ ownerStellarAddress: string;
245
+ temporaryRecipientKey: TransferTemporaryRecipientKey;
246
+ recipientNote: TransferOnboardingRecipientNoteInput$1;
247
+ }
248
+ interface StellarKytEnvironment {
249
+ apiBaseUrl: string;
250
+ kytPassageRegistryContract: string;
251
+ registerPassageOnChain?: boolean;
252
+ }
253
+ interface StellarTransactEnvironment {
254
+ network: StellarNetworkConfig;
255
+ auditPublicKey?: AuditPublicKey;
256
+ kyt: StellarKytEnvironment;
257
+ signTransaction?: StellarSignTransaction;
258
+ resolveTokenContractId?: (assetId: StellarAssetId) => string | Promise<string>;
259
+ resolveSenderPrivKeyScalarHex?: (privateAddressStpl1: string) => Promise<string>;
260
+ readSenderPrivKeyScalarHex?: (privateAddressStpl1: string) => Promise<string | undefined>;
261
+ ensureSenderPrivKeyScalarHex?: (privateAddressStpl1: string) => Promise<string>;
262
+ resolveSenderPrivKeyScalarFromState?: (input: {
263
+ owner: string;
264
+ privateAddressStpl1: string;
265
+ }) => Promise<string | undefined>;
266
+ resolveTransferRecipientAtExecute?: (input: {
267
+ recipientStellarAddress: string;
268
+ walletPublicKey: string;
269
+ }) => Promise<TransferRecipientExecutionContext>;
270
+ buildTransferOnboardingAtExecute?: (input: BuildTransferOnboardingAtExecuteInput) => Promise<OnboardingPayload>;
271
+ resolveWalletPublicKey?: () => Promise<string>;
272
+ poolMerkleState?: PoolMerkleStatePort;
273
+ leafEphemeral?: LeafEphemeralStatePort;
274
+ }
275
+
276
+ type StellarAddress = string;
277
+ type StellarAssetId = string;
278
+
279
+ type StellarTransferIntent = TransferIntent<StellarTransferFromAddress, StellarAssetId, bigint, StellarAddress>;
280
+
281
+ interface StellarPreparedOperation {
282
+ kind: OperationKind;
283
+ intent: DepositIntent<StellarAddress, StellarAssetId, bigint> | StellarTransferIntent | WithdrawIntent<StellarAddress, StellarAssetId, bigint>;
284
+ consumedRecords: StellarPrivateRecord[];
285
+ outputRecords: StellarPrivateRecord[];
286
+ submissionPayload: StellarSubmissionPayload;
287
+ transactArtifacts?: StellarTransactArtifacts;
288
+ }
289
+ interface StellarSubmissionPayload {
290
+ operationId: string;
291
+ signed: boolean;
292
+ txHash?: string;
293
+ }
294
+ interface StellarTransactArtifacts {
295
+ proofHex?: string;
296
+ publicHex?: string;
297
+ applicationIdsPlaintext?: KytApplicationIdHints;
298
+ tokenAddress?: string;
299
+ depositScalarHex?: string;
300
+ precommitementHex?: string;
301
+ commitmentHex?: string;
302
+ walletPublicKey?: string;
303
+ onboarding?: OnboardingPayload;
304
+ executeFinalizeRequired?: boolean;
305
+ pendingClaim?: StellarPendingClaim;
306
+ spendSource?: 'privateAddress' | 'pendingClaim';
307
+ }
308
+ interface StellarOperationReceipt {
309
+ operationId: string;
310
+ confirmed: boolean;
311
+ }
312
+ interface StellarNetworkConfig {
313
+ id: string;
314
+ rpcUrl: string;
315
+ networkPassphrase: string;
316
+ poolContract: string;
317
+ registryContract: string;
318
+ applicationId: string;
319
+ }
320
+ interface StellarBrowserAssets {
321
+ sdkWasm: ArrayBuffer;
322
+ circuitWasm: ArrayBuffer;
323
+ provingKey: ArrayBuffer;
324
+ }
325
+ interface StellarWalletAdapter {
326
+ getAddress(): Promise<StellarAddress>;
327
+ authorizeMessage(message: Uint8Array | string): Promise<Uint8Array>;
328
+ signTransactionPayload(payload: StellarSubmissionPayload): Promise<StellarSubmissionPayload>;
329
+ }
330
+ /** @internal Bridge-backed storage adapter; consumers pass {@link StateBridgeAdapter} instead. */
331
+ type StellarStateAdapter = StateBridgeAdapter;
332
+ interface StellarPolicyAdapter {
333
+ inspectOperation(kind: OperationKind, intent: DepositIntent<StellarAddress, StellarAssetId, bigint> | StellarTransferIntent | WithdrawIntent<StellarAddress, StellarAssetId, bigint>): Promise<void>;
334
+ }
335
+ interface StellarTransactEngine {
336
+ prepare(prepared: StellarPreparedOperation): Promise<StellarPreparedOperation>;
337
+ submit(prepared: StellarPreparedOperation, signedPayload: StellarSubmissionPayload): Promise<StellarOperationReceipt>;
338
+ }
339
+ interface StellarPrivacyClientConfigBase {
340
+ network: StellarNetworkConfig;
341
+ wallet: StellarWalletAdapter;
342
+ state: StellarStateAdapter;
343
+ auditPublicKeyHex?: string;
344
+ policy?: StellarPolicyAdapter;
345
+ transactEngine?: StellarTransactEngine;
346
+ }
347
+
348
+ interface StellarBrowserPrivacyClientConfig extends StellarPrivacyClientConfigBase {
349
+ assets: StellarBrowserAssets;
350
+ transactEnvironment?: StellarTransactEnvironment;
351
+ }
352
+ /** Browser entrypoint config alias. */
353
+ type StellarPrivacyClientConfig = StellarBrowserPrivacyClientConfig;
354
+ interface ResolvedStellarPrivacyClientConfig extends Omit<StellarPrivacyClientConfigBase, 'transactEngine'> {
355
+ transactEngine: StellarTransactEngine;
356
+ transactEnvironment?: StellarTransactEnvironment;
357
+ }
358
+
359
+ interface FetchContractMerkleResult {
360
+ commitmentCount: number;
361
+ commitments: string[];
362
+ merkleRootHex: string;
363
+ updatedAt: number;
364
+ }
365
+ declare function fetchAndMergeMerkleState(parameters: {
366
+ poolContractId: string;
367
+ walletPublicKey: string;
368
+ transactEnvironment: StellarTransactEnvironment;
369
+ poolMerkleState?: PoolMerkleStatePort;
370
+ }): Promise<FetchContractMerkleResult>;
371
+ declare function readLeafEphemeralHex(parameters: {
372
+ poolContractId: string;
373
+ walletPublicKey: string;
374
+ leafIndex: number;
375
+ transactEnvironment: StellarTransactEnvironment;
376
+ leafEphemeral?: LeafEphemeralStatePort;
377
+ }): Promise<{
378
+ xHex: string;
379
+ yHex: string;
380
+ }>;
381
+
382
+ type StellarTransactionDetails = {
383
+ txHash: string;
384
+ status: StellarTransactionConfirmationStatus;
385
+ ledger?: number;
386
+ createdAt?: string;
387
+ invokedPoolContractId?: string;
388
+ transferAmountRaw?: string;
389
+ };
390
+
391
+ declare function composeStellarPrivacyClient(config: ResolvedStellarPrivacyClientConfig): {
392
+ state: {
393
+ getTransactionStatus(txHash: string): Promise<StellarTransactionStatus | undefined>;
394
+ setTransactionStatus(status: StellarTransactionStatus): Promise<void>;
395
+ clearTransactionStatus(txHash: string): Promise<void>;
396
+ pruneConsumedPrivateRecords: () => Promise<void>;
397
+ getPrivateRecords: () => Promise<StellarPrivateRecord[]>;
398
+ getAvailablePrivateRecords: (filter: StellarAvailablePrivateRecordsFilter) => Promise<StellarPrivateRecord[]>;
399
+ listPrivateRecords: (filter: {
400
+ owner?: StellarAddress;
401
+ privateAddress?: string;
402
+ asset?: StellarAssetId;
403
+ amount?: bigint;
404
+ }) => Promise<StellarPrivateRecord[]>;
405
+ savePrivateRecords: (records: StellarPrivateRecord[]) => Promise<void>;
406
+ upsertPrivateRecords: (records: StellarPrivateRecord[]) => Promise<void>;
407
+ markPrivateRecordsUsed: (records: StellarPrivateRecord[]) => Promise<void>;
408
+ markPrivateRecordsStatus: (records: StellarPrivateRecord[], status: StellarPrivateRecordStatus) => Promise<void>;
409
+ getPrivateBalance: (input: {
410
+ owner: StellarAddress;
411
+ asset: StellarAssetId;
412
+ }) => Promise<bigint>;
413
+ getPrivateAssetRows: (owner: StellarAddress) => Promise<StellarPrivateAssetRow[]>;
414
+ getDeliverySyncState(input: {
415
+ privateAddress: string;
416
+ asset: StellarAssetId;
417
+ }): Promise<StellarDeliverySyncState | undefined>;
418
+ setDeliverySyncState(syncState: StellarDeliverySyncState): Promise<void>;
419
+ getIncomingDeliveries: (filter: StellarIncomingDeliveriesFilter) => Promise<StellarIncomingDelivery[]>;
420
+ upsertIncomingDeliveries: (deliveries: StellarIncomingDelivery[]) => Promise<void>;
421
+ markDeliveryProcessed(id: number): Promise<void>;
422
+ getPendingClaims: (filter?: StellarPendingClaimsFilter) => Promise<StellarPendingClaimsState>;
423
+ getPendingClaimsCount(owner: StellarAddress): Promise<number | undefined>;
424
+ appendPendingClaims: (claims: StellarPendingClaim[], paginationInfo: StellarPendingClaimsPagination) => Promise<void>;
425
+ replacePendingClaimsPage: (input: {
426
+ owner: StellarAddress;
427
+ claims: StellarPendingClaim[];
428
+ paginationInfo: StellarPendingClaimsPagination;
429
+ count?: number;
430
+ }) => Promise<void>;
431
+ upsertPendingClaims: (claims: StellarPendingClaim[]) => Promise<void>;
432
+ removePendingClaims: (ids: string[]) => Promise<void>;
433
+ clearPendingClaims: (input?: {
434
+ owner?: StellarAddress;
435
+ asset?: StellarAssetId;
436
+ }) => Promise<void>;
437
+ setPendingClaimsCount: (owner: StellarAddress, count: number) => Promise<void>;
438
+ getLeafEphemeral(input: {
439
+ poolContract: string;
440
+ leafIndex: number;
441
+ }): Promise<StellarLeafEphemeral | undefined>;
442
+ setLeafEphemeral(ephemeral: StellarLeafEphemeral): Promise<void>;
443
+ getPoolMerkleState(poolContract: string): Promise<StellarPoolMerkleState | undefined>;
444
+ setPoolMerkleState(state: StellarPoolMerkleState): Promise<void>;
445
+ appendPoolCommitments(input: {
446
+ poolContract: string;
447
+ commitments: string[];
448
+ merkleRootHex: string;
449
+ syncedLedger?: number;
450
+ }): Promise<void>;
451
+ getWalletPrivateAddressRecord(input: {
452
+ owner: StellarAddress;
453
+ nonce: string;
454
+ }): Promise<StellarWalletPrivateAddressRecord | undefined>;
455
+ saveWalletPrivateAddressRecord(record: StellarWalletPrivateAddressRecord): Promise<void>;
456
+ getWalletDefaultPrivateAddressNonce(owner: StellarAddress): Promise<string | undefined>;
457
+ setWalletDefaultPrivateAddressNonce(input: {
458
+ owner: StellarAddress;
459
+ nonce: string;
460
+ }): Promise<void>;
461
+ getWalletPrivateAddressScalar(input: {
462
+ owner: StellarAddress;
463
+ nonce: string;
464
+ }): Promise<StellarWalletPrivateAddressScalar | undefined>;
465
+ saveWalletPrivateAddressScalar(scalar: StellarWalletPrivateAddressScalar): Promise<void>;
466
+ deleteWalletPrivateAddressScalar(input: {
467
+ owner: StellarAddress;
468
+ nonce: string;
469
+ }): Promise<void>;
470
+ saveRegistryLookup(lookup: StellarRegistryLookup): Promise<void>;
471
+ saveRegisteredPrivateAddress(input: {
472
+ address: StellarAddress;
473
+ privateAddress: string;
474
+ registered: boolean;
475
+ }): Promise<void>;
476
+ invalidateRegistryLookup: (address: StellarAddress) => Promise<void>;
477
+ invalidateRegisteredAddress(address: StellarAddress): Promise<void>;
478
+ getRegistryLookup: (address: StellarAddress) => Promise<StellarRegistryLookup | undefined>;
479
+ isStellarAddressRegistered(address: StellarAddress): Promise<boolean | undefined>;
480
+ getCachedPrivateAddress: (address: StellarAddress) => Promise<string | undefined>;
481
+ getPublicBalance(input: {
482
+ owner: StellarAddress;
483
+ asset: StellarAssetId;
484
+ }): Promise<StellarPublicBalance | undefined>;
485
+ getPublicBalances(owner: StellarAddress): Promise<StellarPublicBalance[]>;
486
+ setPublicBalance(balance: StellarPublicBalanceInput): Promise<void>;
487
+ setPublicBalances(input: {
488
+ owner: StellarAddress;
489
+ balances: StellarPublicBalanceInput[];
490
+ }): Promise<void>;
491
+ upsertAssets(assets: StellarAsset[]): Promise<void>;
492
+ getAssetsCatalog: () => Promise<StellarAssetsCatalog>;
493
+ getAsset(assetId: StellarAssetId): Promise<StellarAsset | undefined>;
494
+ getAssets(): Promise<StellarAsset[]>;
495
+ getAssetsForPool(poolContract: string): Promise<StellarAsset[]>;
496
+ replaceAssets: (assets: StellarAsset[]) => Promise<void>;
497
+ bridge: _arcanetech_privacy_sdk_core_state.StateBridge;
498
+ };
499
+ operations: {
500
+ deposit: (intent: _arcanetech_privacy_sdk_core.DepositIntent<string, string, bigint>) => Promise<_arcanetech_privacy_sdk_core.OperationResult<"deposit", string, string, bigint, StellarPreparedOperation, StellarOperationReceipt>>;
501
+ withdraw: (intent: _arcanetech_privacy_sdk_core.WithdrawIntent<string, string, bigint>) => Promise<_arcanetech_privacy_sdk_core.OperationResult<"withdraw", string, string, bigint, StellarPreparedOperation, StellarOperationReceipt>>;
502
+ transfer: (intent: StellarTransferIntent) => Promise<_arcanetech_privacy_sdk_core.OperationResult<"transfer", string, string, bigint, StellarPreparedOperation, StellarOperationReceipt>>;
503
+ };
504
+ network: {
505
+ checkPrivateRecordSpendStatus: (spendInput: {
506
+ poolContractId?: string;
507
+ nullifier: string;
508
+ walletPublicKey: string;
509
+ }) => Promise<{
510
+ spent: boolean;
511
+ nullifierHashHex: string;
512
+ }>;
513
+ waitForTransactionConfirmation: (confirmationInput: {
514
+ txHash: string;
515
+ pollIntervalMs?: number;
516
+ timeoutMs?: number;
517
+ }) => Promise<StellarTransactionStatus>;
518
+ fetchTransactionConfirmationStatus: (txHash: string) => Promise<StellarTransactionStatus>;
519
+ getTransactionDetails: (txHash: string) => Promise<StellarTransactionDetails>;
520
+ checkRegistrationStatus: (registrationInput: {
521
+ address: StellarAddress;
522
+ walletPublicKey: string;
523
+ }) => Promise<StellarRegistryLookup>;
524
+ registerPrivateAddress: (registrationInput: {
525
+ owner: StellarAddress;
526
+ walletPublicKey: string;
527
+ privateAddressStpl1: string;
528
+ }) => Promise<StellarTransactionStatus>;
529
+ resolveTransferRecipient: (recipientInput: {
530
+ recipientStellarAddress: StellarAddress;
531
+ walletPublicKey: StellarAddress;
532
+ }) => Promise<TransferRecipientExecutionContext>;
533
+ syncPoolMerkleState: (poolInput: {
534
+ poolContractId: string;
535
+ walletPublicKey: string;
536
+ }) => Promise<FetchContractMerkleResult>;
537
+ syncPoolMerkleStates: (poolInput: {
538
+ poolContractIds: string[];
539
+ walletPublicKey: string;
540
+ }) => Promise<void>;
541
+ readPoolLeafEphemeralHex: (poolInput: {
542
+ poolContractId: string;
543
+ walletPublicKey: string;
544
+ leafIndex: number;
545
+ }) => Promise<{
546
+ xHex: string;
547
+ yHex: string;
548
+ }>;
549
+ };
550
+ transactEnvironment: StellarTransactEnvironment | undefined;
551
+ };
552
+ type ComposedStellarPrivacyClient = ReturnType<typeof composeStellarPrivacyClient>;
553
+
554
+ interface LoadPendingClaimsFromBackendInput {
555
+ backendBaseUrl: string;
556
+ ownerAddress: StellarAddress;
557
+ asset?: StellarAssetId;
558
+ page?: number;
559
+ pageSize?: number;
560
+ }
561
+ interface LoadPendingClaimsCountFromBackendInput {
562
+ backendBaseUrl: string;
563
+ ownerAddress: StellarAddress;
564
+ }
565
+
566
+ declare function readPrivateRecordsFromStateSnapshot(state: unknown): StellarPrivateRecord[];
567
+ declare function readWalletPrivateAddressScalarFromStateSnapshot(input: {
568
+ state: unknown;
569
+ owner: string;
570
+ nonce: string;
571
+ }): StellarWalletPrivateAddressScalar | undefined;
572
+ declare function readWalletPrivateAddressRecordFromStateSnapshot(input: {
573
+ state: unknown;
574
+ owner: string;
575
+ nonce: string;
576
+ }): StellarWalletPrivateAddressRecord | undefined;
577
+ declare function readWalletDefaultPrivateAddressNonceFromStateSnapshot(input: {
578
+ state: unknown;
579
+ owner: string;
580
+ }): string | undefined;
581
+ declare function listWalletPrivateAddressScalarsForOwnerFromStateSnapshot(input: {
582
+ state: unknown;
583
+ owner: string;
584
+ }): StellarWalletPrivateAddressScalar[];
585
+ declare function listWalletPrivateAddressRecordsForOwnerFromStateSnapshot(input: {
586
+ state: unknown;
587
+ owner: string;
588
+ }): StellarWalletPrivateAddressRecord[];
589
+
590
+ declare const stellarStateDefinitions: StateBridgeDefinition[];
591
+
592
+ interface StellarPublicBalanceInput {
593
+ owner: StellarAddress;
594
+ asset: StellarAssetId;
595
+ balance: string;
596
+ trustlineStatus: 'active' | 'inactive' | 'none';
597
+ }
598
+
599
+ declare function composeStellarStateService(adapter: StateBridgeAdapter): {
600
+ getTransactionStatus(txHash: string): Promise<StellarTransactionStatus | undefined>;
601
+ setTransactionStatus(status: StellarTransactionStatus): Promise<void>;
602
+ clearTransactionStatus(txHash: string): Promise<void>;
603
+ pruneConsumedPrivateRecords: () => Promise<void>;
604
+ getPrivateRecords: () => Promise<StellarPrivateRecord[]>;
605
+ getAvailablePrivateRecords: (filter: StellarAvailablePrivateRecordsFilter) => Promise<StellarPrivateRecord[]>;
606
+ listPrivateRecords: (filter: {
607
+ owner?: StellarAddress;
608
+ privateAddress?: string;
609
+ asset?: StellarAssetId;
610
+ amount?: bigint;
611
+ }) => Promise<StellarPrivateRecord[]>;
612
+ savePrivateRecords: (records: StellarPrivateRecord[]) => Promise<void>;
613
+ upsertPrivateRecords: (records: StellarPrivateRecord[]) => Promise<void>;
614
+ markPrivateRecordsUsed: (records: StellarPrivateRecord[]) => Promise<void>;
615
+ markPrivateRecordsStatus: (records: StellarPrivateRecord[], status: StellarPrivateRecordStatus) => Promise<void>;
616
+ getPrivateBalance: (input: {
617
+ owner: StellarAddress;
618
+ asset: StellarAssetId;
619
+ }) => Promise<bigint>;
620
+ getPrivateAssetRows: (owner: StellarAddress) => Promise<StellarPrivateAssetRow[]>;
621
+ getDeliverySyncState(input: {
622
+ privateAddress: string;
623
+ asset: StellarAssetId;
624
+ }): Promise<StellarDeliverySyncState | undefined>;
625
+ setDeliverySyncState(syncState: StellarDeliverySyncState): Promise<void>;
626
+ getIncomingDeliveries: (filter: StellarIncomingDeliveriesFilter) => Promise<StellarIncomingDelivery[]>;
627
+ upsertIncomingDeliveries: (deliveries: StellarIncomingDelivery[]) => Promise<void>;
628
+ markDeliveryProcessed(id: number): Promise<void>;
629
+ getPendingClaims: (filter?: StellarPendingClaimsFilter) => Promise<StellarPendingClaimsState>;
630
+ getPendingClaimsCount(owner: StellarAddress): Promise<number | undefined>;
631
+ appendPendingClaims: (claims: StellarPendingClaim[], paginationInfo: StellarPendingClaimsPagination) => Promise<void>;
632
+ replacePendingClaimsPage: (input: {
633
+ owner: StellarAddress;
634
+ claims: StellarPendingClaim[];
635
+ paginationInfo: StellarPendingClaimsPagination;
636
+ count?: number;
637
+ }) => Promise<void>;
638
+ upsertPendingClaims: (claims: StellarPendingClaim[]) => Promise<void>;
639
+ removePendingClaims: (ids: string[]) => Promise<void>;
640
+ clearPendingClaims: (input?: {
641
+ owner?: StellarAddress;
642
+ asset?: StellarAssetId;
643
+ }) => Promise<void>;
644
+ setPendingClaimsCount: (owner: StellarAddress, count: number) => Promise<void>;
645
+ getLeafEphemeral(input: {
646
+ poolContract: string;
647
+ leafIndex: number;
648
+ }): Promise<StellarLeafEphemeral | undefined>;
649
+ setLeafEphemeral(ephemeral: StellarLeafEphemeral): Promise<void>;
650
+ getPoolMerkleState(poolContract: string): Promise<StellarPoolMerkleState | undefined>;
651
+ setPoolMerkleState(state: StellarPoolMerkleState): Promise<void>;
652
+ appendPoolCommitments(input: {
653
+ poolContract: string;
654
+ commitments: string[];
655
+ merkleRootHex: string;
656
+ syncedLedger?: number;
657
+ }): Promise<void>;
658
+ getWalletPrivateAddressRecord(input: {
659
+ owner: StellarAddress;
660
+ nonce: string;
661
+ }): Promise<StellarWalletPrivateAddressRecord | undefined>;
662
+ saveWalletPrivateAddressRecord(record: StellarWalletPrivateAddressRecord): Promise<void>;
663
+ getWalletDefaultPrivateAddressNonce(owner: StellarAddress): Promise<string | undefined>;
664
+ setWalletDefaultPrivateAddressNonce(input: {
665
+ owner: StellarAddress;
666
+ nonce: string;
667
+ }): Promise<void>;
668
+ getWalletPrivateAddressScalar(input: {
669
+ owner: StellarAddress;
670
+ nonce: string;
671
+ }): Promise<StellarWalletPrivateAddressScalar | undefined>;
672
+ saveWalletPrivateAddressScalar(scalar: StellarWalletPrivateAddressScalar): Promise<void>;
673
+ deleteWalletPrivateAddressScalar(input: {
674
+ owner: StellarAddress;
675
+ nonce: string;
676
+ }): Promise<void>;
677
+ saveRegistryLookup(lookup: StellarRegistryLookup): Promise<void>;
678
+ saveRegisteredPrivateAddress(input: {
679
+ address: StellarAddress;
680
+ privateAddress: string;
681
+ registered: boolean;
682
+ }): Promise<void>;
683
+ invalidateRegistryLookup: (address: StellarAddress) => Promise<void>;
684
+ invalidateRegisteredAddress(address: StellarAddress): Promise<void>;
685
+ getRegistryLookup: (address: StellarAddress) => Promise<StellarRegistryLookup | undefined>;
686
+ isStellarAddressRegistered(address: StellarAddress): Promise<boolean | undefined>;
687
+ getCachedPrivateAddress: (address: StellarAddress) => Promise<string | undefined>;
688
+ getPublicBalance(input: {
689
+ owner: StellarAddress;
690
+ asset: StellarAssetId;
691
+ }): Promise<StellarPublicBalance | undefined>;
692
+ getPublicBalances(owner: StellarAddress): Promise<StellarPublicBalance[]>;
693
+ setPublicBalance(balance: StellarPublicBalanceInput): Promise<void>;
694
+ setPublicBalances(input: {
695
+ owner: StellarAddress;
696
+ balances: StellarPublicBalanceInput[];
697
+ }): Promise<void>;
698
+ upsertAssets(assets: StellarAsset[]): Promise<void>;
699
+ getAssetsCatalog: () => Promise<StellarAssetsCatalog>;
700
+ getAsset(assetId: StellarAssetId): Promise<StellarAsset | undefined>;
701
+ getAssets(): Promise<StellarAsset[]>;
702
+ getAssetsForPool(poolContract: string): Promise<StellarAsset[]>;
703
+ replaceAssets: (assets: StellarAsset[]) => Promise<void>;
704
+ bridge: _arcanetech_privacy_sdk_core_state.StateBridge;
705
+ };
706
+ type ComposedStellarStateService = ReturnType<typeof composeStellarStateService>;
707
+
708
+ type StellarStateService = ComposedStellarStateService;
709
+
710
+ declare function createStateDelegates(state: StellarStateService): {
711
+ getPrivateRecords: () => Promise<StellarPrivateRecord[]>;
712
+ getAvailablePrivateRecords: (filter: Parameters<StellarStateService["getAvailablePrivateRecords"]>[0]) => Promise<StellarPrivateRecord[]>;
713
+ getPrivateBalance: (input: Parameters<StellarStateService["getPrivateBalance"]>[0]) => Promise<bigint>;
714
+ getPrivateAssetRows: (owner: Parameters<StellarStateService["getPrivateAssetRows"]>[0]) => Promise<StellarPrivateAssetRow[]>;
715
+ upsertPrivateRecords: (records: Parameters<StellarStateService["upsertPrivateRecords"]>[0]) => Promise<void>;
716
+ markPrivateRecordsStatus: (records: Parameters<StellarStateService["markPrivateRecordsStatus"]>[0], status: Parameters<StellarStateService["markPrivateRecordsStatus"]>[1]) => Promise<void>;
717
+ pruneConsumedPrivateRecords: () => Promise<void>;
718
+ getTransactionStatus: (txHash: Parameters<StellarStateService["getTransactionStatus"]>[0]) => Promise<StellarTransactionStatus | undefined>;
719
+ setTransactionStatus: (status: Parameters<StellarStateService["setTransactionStatus"]>[0]) => Promise<void>;
720
+ clearTransactionStatus: (txHash: Parameters<StellarStateService["clearTransactionStatus"]>[0]) => Promise<void>;
721
+ getIncomingDeliveries: (filter: Parameters<StellarStateService["getIncomingDeliveries"]>[0]) => Promise<StellarIncomingDelivery[]>;
722
+ upsertIncomingDeliveries: (deliveries: Parameters<StellarStateService["upsertIncomingDeliveries"]>[0]) => Promise<void>;
723
+ markDeliveryProcessed: (id: Parameters<StellarStateService["markDeliveryProcessed"]>[0]) => Promise<void>;
724
+ getDeliverySyncState: (input: Parameters<StellarStateService["getDeliverySyncState"]>[0]) => Promise<StellarDeliverySyncState | undefined>;
725
+ setDeliverySyncState: (syncState: Parameters<StellarStateService["setDeliverySyncState"]>[0]) => Promise<void>;
726
+ appendPendingClaims: (claims: Parameters<StellarStateService["appendPendingClaims"]>[0], paginationInfo: Parameters<StellarStateService["appendPendingClaims"]>[1]) => Promise<void>;
727
+ loadPendingClaimsFromBackend: (input: LoadPendingClaimsFromBackendInput) => Promise<void>;
728
+ loadPendingClaimsCountFromBackend: (input: LoadPendingClaimsCountFromBackendInput) => Promise<void>;
729
+ replacePendingClaimsPage: (input: Parameters<StellarStateService["replacePendingClaimsPage"]>[0]) => Promise<void>;
730
+ upsertPendingClaims: (claims: Parameters<StellarStateService["upsertPendingClaims"]>[0]) => Promise<void>;
731
+ removePendingClaims: (ids: Parameters<StellarStateService["removePendingClaims"]>[0]) => Promise<void>;
732
+ clearPendingClaims: (input?: Parameters<StellarStateService["clearPendingClaims"]>[0]) => Promise<void>;
733
+ getPendingClaims: (filter?: Parameters<StellarStateService["getPendingClaims"]>[0]) => Promise<StellarPendingClaimsState>;
734
+ getPendingClaimsCount: (owner: Parameters<StellarStateService["getPendingClaimsCount"]>[0]) => Promise<number | undefined>;
735
+ setPendingClaimsCount: (owner: Parameters<StellarStateService["setPendingClaimsCount"]>[0], count: Parameters<StellarStateService["setPendingClaimsCount"]>[1]) => Promise<void>;
736
+ getPoolMerkleState: (poolContract: Parameters<StellarStateService["getPoolMerkleState"]>[0]) => Promise<StellarPoolMerkleState | undefined>;
737
+ setPoolMerkleState: (poolState: Parameters<StellarStateService["setPoolMerkleState"]>[0]) => Promise<void>;
738
+ appendPoolCommitments: (input: Parameters<StellarStateService["appendPoolCommitments"]>[0]) => Promise<void>;
739
+ getLeafEphemeral: (input: Parameters<StellarStateService["getLeafEphemeral"]>[0]) => Promise<StellarLeafEphemeral | undefined>;
740
+ setLeafEphemeral: (ephemeral: Parameters<StellarStateService["setLeafEphemeral"]>[0]) => Promise<void>;
741
+ getRegistryLookup: (address: Parameters<StellarStateService["getRegistryLookup"]>[0]) => Promise<StellarRegistryLookup | undefined>;
742
+ isStellarAddressRegistered: (address: Parameters<StellarStateService["isStellarAddressRegistered"]>[0]) => Promise<boolean | undefined>;
743
+ getCachedPrivateAddress: (address: Parameters<StellarStateService["getCachedPrivateAddress"]>[0]) => Promise<string | undefined>;
744
+ saveRegistryLookup: (lookup: Parameters<StellarStateService["saveRegistryLookup"]>[0]) => Promise<void>;
745
+ getWalletPrivateAddressScalar: (input: Parameters<StellarStateService["getWalletPrivateAddressScalar"]>[0]) => Promise<StellarWalletPrivateAddressScalar | undefined>;
746
+ saveWalletPrivateAddressScalar: (scalar: Parameters<StellarStateService["saveWalletPrivateAddressScalar"]>[0]) => Promise<void>;
747
+ getWalletPrivateAddressRecord: (input: Parameters<StellarStateService["getWalletPrivateAddressRecord"]>[0]) => Promise<StellarWalletPrivateAddressRecord | undefined>;
748
+ saveWalletPrivateAddressRecord: (record: Parameters<StellarStateService["saveWalletPrivateAddressRecord"]>[0]) => Promise<void>;
749
+ getWalletDefaultPrivateAddressNonce: (owner: Parameters<StellarStateService["getWalletDefaultPrivateAddressNonce"]>[0]) => Promise<string | undefined>;
750
+ setWalletDefaultPrivateAddressNonce: (input: Parameters<StellarStateService["setWalletDefaultPrivateAddressNonce"]>[0]) => Promise<void>;
751
+ deleteWalletPrivateAddressScalar: (input: Parameters<StellarStateService["deleteWalletPrivateAddressScalar"]>[0]) => Promise<void>;
752
+ saveRegisteredPrivateAddress: (input: Parameters<StellarStateService["saveRegisteredPrivateAddress"]>[0]) => Promise<void>;
753
+ invalidateRegistryLookup: (address: Parameters<StellarStateService["invalidateRegistryLookup"]>[0]) => Promise<void>;
754
+ invalidateRegisteredAddress: (address: Parameters<StellarStateService["invalidateRegisteredAddress"]>[0]) => Promise<void>;
755
+ getAssets: () => Promise<StellarAsset[]>;
756
+ getAssetsCatalog: () => Promise<StellarAssetsCatalog>;
757
+ getAsset: (assetId: Parameters<StellarStateService["getAsset"]>[0]) => Promise<StellarAsset | undefined>;
758
+ getAssetsForPool: (poolContract: string) => Promise<StellarAsset[]>;
759
+ replaceAssets: (assets: Parameters<StellarStateService["replaceAssets"]>[0]) => Promise<void>;
760
+ upsertAssets: (assets: Parameters<StellarStateService["upsertAssets"]>[0]) => Promise<void>;
761
+ getPublicBalance: (input: Parameters<StellarStateService["getPublicBalance"]>[0]) => Promise<StellarPublicBalance | undefined>;
762
+ getPublicBalances: (owner: Parameters<StellarStateService["getPublicBalances"]>[0]) => Promise<StellarPublicBalance[]>;
763
+ setPublicBalance: (balance: Parameters<StellarStateService["setPublicBalance"]>[0]) => Promise<void>;
764
+ setPublicBalances: (input: Parameters<StellarStateService["setPublicBalances"]>[0]) => Promise<void>;
765
+ };
766
+ type StellarPrivacyClientStateDelegates = ReturnType<typeof createStateDelegates>;
767
+
768
+ type StellarPrivacyClientNetwork = ComposedStellarPrivacyClient['network'];
769
+ type StellarPrivacyClientOperations = ComposedStellarPrivacyClient['operations'];
770
+ type StellarPrivacyClient = {
771
+ readonly state: ComposedStellarPrivacyClient['state'];
772
+ deposit: StellarPrivacyClientOperations['deposit'];
773
+ transfer: (intent: StellarTransferIntent) => ReturnType<StellarPrivacyClientOperations['transfer']>;
774
+ withdraw: StellarPrivacyClientOperations['withdraw'];
775
+ syncPoolMerkleState: StellarPrivacyClientNetwork['syncPoolMerkleState'];
776
+ syncPoolMerkleStates: StellarPrivacyClientNetwork['syncPoolMerkleStates'];
777
+ readPoolLeafEphemeralHex: StellarPrivacyClientNetwork['readPoolLeafEphemeralHex'];
778
+ checkRegistrationStatus: StellarPrivacyClientNetwork['checkRegistrationStatus'];
779
+ registerPrivateAddress: StellarPrivacyClientNetwork['registerPrivateAddress'];
780
+ resolveTransferRecipient: StellarPrivacyClientNetwork['resolveTransferRecipient'];
781
+ checkPrivateRecordSpendStatus: StellarPrivacyClientNetwork['checkPrivateRecordSpendStatus'];
782
+ waitForTransactionConfirmation: StellarPrivacyClientNetwork['waitForTransactionConfirmation'];
783
+ fetchTransactionConfirmationStatus: StellarPrivacyClientNetwork['fetchTransactionConfirmationStatus'];
784
+ getTransactionDetails: StellarPrivacyClientNetwork['getTransactionDetails'];
785
+ } & StellarPrivacyClientStateDelegates;
786
+
787
+ type CreateStellarPrivacyClientResult = StellarPrivacyClient | ReturnType<typeof createRejectedOperation>;
788
+ declare function isStellarPrivacyClient(result: CreateStellarPrivacyClientResult): result is StellarPrivacyClient;
789
+ declare function createStellarPrivacyClient(config: StellarBrowserPrivacyClientConfig): Promise<CreateStellarPrivacyClientResult>;
790
+
791
+ declare function resolveStellarPrivacyClientConfig<TConfig extends StellarPrivacyClientConfigBase>(config: TConfig, createEngine: (config: TConfig) => Promise<StellarTransactEngine>): Promise<{
792
+ ok: true;
793
+ config: ResolvedStellarPrivacyClientConfig & TConfig;
794
+ } | {
795
+ ok: false;
796
+ result: ReturnType<typeof createRejectedOperation>;
797
+ }>;
798
+ declare function createStellarPrivacyClientFromResolvedConfig(config: ResolvedStellarPrivacyClientConfig): StellarPrivacyClient;
799
+
800
+ declare function createDefaultTransactEngine(assets: StellarBrowserAssets, transactEnvironment?: StellarTransactEnvironment): Promise<StellarTransactEngine>;
801
+ declare function createStellarPolicyAdapterFromEnvironment(transactEnvironment: StellarTransactEnvironment): {
802
+ inspectOperation: (_kind: StellarPreparedOperation["kind"], _intent: StellarPreparedOperation["intent"]) => Promise<void>;
803
+ };
804
+
805
+ declare class PrivacyPoolService {
806
+ private readonly assets?;
807
+ private readonly applicationId?;
808
+ private readonly auditPublicKey?;
809
+ private sdk;
810
+ private initPromise;
811
+ constructor(assets?: StellarBrowserAssets | undefined, applicationId?: string | undefined, auditPublicKey?: [string, string] | undefined);
812
+ private ensureInit;
813
+ getInitializedSdk(): Promise<PrivacyPoolSDK>;
814
+ getAuditPublicKey(): [string, string] | undefined;
815
+ getApplicationId(): string;
816
+ generatePrivateAddressFromStellarSignature(signature: string): Promise<string>;
817
+ sharedSecretX(recipientScalarHex: string, ephemeralKeyEncoded: string): Promise<string>;
818
+ buildAlignedDepositSlot(parameters: {
819
+ privateAddressStpl1: string;
820
+ amountStroops: bigint;
821
+ tokenAddress: string;
822
+ }): Promise<AlignedDepositSlot>;
823
+ createAlignedShieldCoinData(parameters: {
824
+ privateAddressStpl1: string;
825
+ amountStroops: bigint;
826
+ tokenAddress: string;
827
+ }): Promise<Omit<AlignedDepositSlot, 'deposit'>>;
828
+ prepareDepositTransactProof(parameters: {
829
+ privateAddressStpl1: string;
830
+ coin: CoinData;
831
+ depositScalarHex: string;
832
+ merkleRootBytes: Buffer$1;
833
+ tokenAddress: string;
834
+ }): Promise<ProofResult>;
835
+ calculateNullifierHash(nullifier: string): Promise<string>;
836
+ prepareWithdrawTransactProof(parameters: {
837
+ coin: CoinData;
838
+ state: StateFile;
839
+ destinationStellarAddress: string;
840
+ privKeyScalarHex: string;
841
+ depositorEphemeralKey: string;
842
+ withdrawAmountStroops: bigint;
843
+ changePrivateAddressStpl1: string | undefined;
844
+ tokenAddress: string;
845
+ }): Promise<ProofWithChange>;
846
+ prepareWithdrawTransactProofDual(parameters: {
847
+ coinA: CoinData;
848
+ coinB: CoinData;
849
+ state: StateFile;
850
+ destinationStellarAddress: string;
851
+ privKeyScalarHex: string;
852
+ depositorEphemeralAKey: string;
853
+ depositorEphemeralBKey: string;
854
+ withdrawAmountStroops: bigint;
855
+ changePrivateAddressStpl1: string | undefined;
856
+ tokenAddress: string;
857
+ }): Promise<ProofWithChange>;
858
+ }
859
+
860
+ declare function createPrivacyPoolService(input?: {
861
+ assets?: StellarBrowserAssets;
862
+ applicationId?: string;
863
+ auditPublicKey?: [string, string];
864
+ }): PrivacyPoolService;
865
+ declare function configurePrivacyPoolService(service: PrivacyPoolService): void;
866
+ declare function getPrivacyPoolService(): PrivacyPoolService;
867
+
868
+ declare function parseAuditPublicKeyFromEnvHex(raw: string): AuditPublicKey;
869
+ declare function buildPoolTransactionAuditParameters(input: {
870
+ applicationId: string;
871
+ auditPublicKey?: AuditPublicKey;
872
+ }): TransactionAuditParams;
873
+ declare function resolvePoolApplicationId(applicationId: string | undefined): string;
874
+
875
+ type DecodedPrivateAddress = {
876
+ x: string;
877
+ y: string;
878
+ };
879
+ type PrivateAddressGenerator = (signature: string) => string | Promise<string>;
880
+ type PrivateAddressSdk = {
881
+ generatePrivateAddressFromStellarSignature: PrivateAddressGenerator;
882
+ };
883
+ declare function buildPrivateAddressSignMessage(publicKey: string, nonce: string): string;
884
+ declare function decodePrivateAddress(value: string): DecodedPrivateAddress;
885
+ declare function encodePrivateAddress(decoded: DecodedPrivateAddress): string;
886
+ declare function encodePrivateAddressFromHexCoordinates(publicKeyXHex: string, publicKeyYHex: string): string;
887
+ declare function recipientPublicKeysDecimalFromPrivateAddress(value: string): unknown;
888
+ declare function privateAddressSdk(sdk: PrivacyPoolSDK): PrivateAddressSdk;
889
+
890
+ interface LoadBrowserAssetsInput {
891
+ sdkWasmUrl: string;
892
+ circuitWasmUrl: string;
893
+ provingKeyUrl: string;
894
+ cacheBust?: boolean;
895
+ }
896
+ declare function loadStellarBrowserAssets(input: LoadBrowserAssetsInput): Promise<StellarBrowserAssets>;
897
+ declare function loadDefaultStellarBrowserAssets(options?: {
898
+ cacheBust?: boolean;
899
+ }): Promise<StellarBrowserAssets>;
900
+
901
+ declare function generateTemporaryRecipientPrivateAddress(): Promise<{
902
+ temporaryScalarHex: string;
903
+ temporaryPrivateAddressStpl1: string;
904
+ }>;
905
+
906
+ type TransferOnboardingRecipientNoteInput = {
907
+ tokenAddress: string;
908
+ nullifier: string;
909
+ secret: string;
910
+ value: string;
911
+ };
912
+ type TemporaryRecipientKeyMaterial = {
913
+ temporaryScalarHex: string;
914
+ temporaryPrivateAddressStpl1: string;
915
+ };
916
+ declare function generateRandomDepositScalarHex(): Promise<string>;
917
+ declare function buildOnboardingPayload(parameters: {
918
+ ownerStellarAddress: string;
919
+ temporaryKey: TemporaryRecipientKeyMaterial;
920
+ recipientNotes: TransferOnboardingRecipientNoteInput[];
921
+ permanentPrivateAddressStpl1?: string;
922
+ }): OnboardingPayload;
923
+ declare function buildTransferOnboardingAtExecute(input: BuildTransferOnboardingAtExecuteInput): Promise<OnboardingPayload>;
924
+
925
+ declare class KytInspectError extends Error {
926
+ readonly reasonCode: string;
927
+ readonly decisionId?: string;
928
+ readonly detailAddress?: string;
929
+ constructor(parameters: {
930
+ message: string;
931
+ reasonCode: string;
932
+ decisionId?: string;
933
+ detailAddress?: string;
934
+ });
935
+ }
936
+ declare function parseKytReasonCode(reasonCode: string): {
937
+ code: string;
938
+ address?: string;
939
+ };
940
+
941
+ interface SubmitSorobanDepositInput {
942
+ contractId: string;
943
+ walletPublicKey: string;
944
+ privateAddressStpl1: string;
945
+ coin: CoinData;
946
+ depositScalarHex: string;
947
+ tokenAddress: string;
948
+ networkPassphrase: string;
949
+ sorobanRpcUrl: string;
950
+ privacyPoolService: PrivacyPoolService;
951
+ transactEnvironment: StellarTransactEnvironment;
952
+ }
953
+ declare function submitSorobanDeposit(input: SubmitSorobanDepositInput): Promise<string>;
954
+
955
+ interface SubmitSorobanConfidentialTransferInput {
956
+ contractId: string;
957
+ walletPublicKey: string;
958
+ proofHex: string;
959
+ publicHex: string;
960
+ onboarding?: OnboardingPayload;
961
+ applicationIdsPlaintext?: KytApplicationIdHints;
962
+ networkPassphrase: string;
963
+ sorobanRpcUrl: string;
964
+ transactEnvironment: StellarTransactEnvironment;
965
+ }
966
+ declare function submitSorobanConfidentialTransfer(input: SubmitSorobanConfidentialTransferInput): Promise<string>;
967
+
968
+ declare function tokenAddressToAssetLeg(tokenAddress: string): [string, string];
969
+ declare function assetLegToTokenAddress(assetHi: string, assetLo: string): string;
970
+
971
+ type GeneratedOutputCoin = {
972
+ commitment_hex: string;
973
+ coin: CoinData;
974
+ depositScalarHex: string;
975
+ precommitementHex: string;
976
+ };
977
+
978
+ type PrepareConfidentialTransferProofDualParameters = {
979
+ coinA: CoinData;
980
+ coinB: CoinData;
981
+ state: StateFile;
982
+ senderGAddress: string;
983
+ senderPrivKeyScalarHex: string;
984
+ ephemeralAKey: string;
985
+ ephemeralBKey: string;
986
+ transferStroops: bigint;
987
+ recipientPrivateAddressStpl1: string;
988
+ selfPrivateAddressStpl1ForChange: string | undefined;
989
+ tokenAddress: string;
990
+ };
991
+ type PrepareConfidentialTransferProofDualResult = {
992
+ proof_hex: string;
993
+ public_hex: string;
994
+ applicationIdsPlaintext: KytApplicationIdHints;
995
+ recipientCoin: GeneratedOutputCoin;
996
+ changeCoin?: GeneratedOutputCoin;
997
+ };
998
+ declare function prepareConfidentialTransferProofDual(parameters: PrepareConfidentialTransferProofDualParameters): Promise<PrepareConfidentialTransferProofDualResult>;
999
+
1000
+ type PrepareConfidentialTransferProofParameters = {
1001
+ coin: CoinData;
1002
+ state: StateFile;
1003
+ senderGAddress: string;
1004
+ senderPrivKeyScalarHex: string;
1005
+ depositorEphemeralKey: string;
1006
+ transferStroops: bigint;
1007
+ recipientPrivateAddressStpl1: string;
1008
+ selfPrivateAddressStpl1ForChange: string | undefined;
1009
+ tokenAddress: string;
1010
+ };
1011
+ type PrepareConfidentialTransferProofResult = {
1012
+ proof_hex: string;
1013
+ public_hex: string;
1014
+ applicationIdsPlaintext: KytApplicationIdHints;
1015
+ recipientCoin: GeneratedOutputCoin;
1016
+ changeCoin?: GeneratedOutputCoin;
1017
+ };
1018
+ declare function prepareConfidentialTransferProof(parameters: PrepareConfidentialTransferProofParameters): Promise<PrepareConfidentialTransferProofResult>;
1019
+
1020
+ interface DecryptedKytAuditSlot {
1021
+ slot: number;
1022
+ decryptOk: boolean;
1023
+ auditTagValid: boolean;
1024
+ noteAuditPublicKey?: [string, string];
1025
+ expectedAuditPublicKey?: [string, string];
1026
+ plaintext?: string[];
1027
+ }
1028
+ interface RequestKytPassageForPoolInteractionInput {
1029
+ owner: string;
1030
+ poolContract: string;
1031
+ proofHex: string;
1032
+ publicHex: string;
1033
+ onboarding?: OnboardingPayload;
1034
+ decryptedAuditSlots?: DecryptedKytAuditSlot[];
1035
+ applicationIdsPlaintext?: KytApplicationIdHints;
1036
+ networkPassphrase: string;
1037
+ sorobanRpcUrl: string;
1038
+ transactEnvironment: StellarTransactEnvironment;
1039
+ }
1040
+ declare function requestKytPassageForPoolInteraction(input: RequestKytPassageForPoolInteractionInput): Promise<InspectKytPassageApproved>;
1041
+
1042
+ declare const MIN_CONFIDENTIAL_TRANSFER_STROOPS = 1n;
1043
+ declare const ZERO_STROOPS = 0n;
1044
+
1045
+ declare function frDecimalToPaddedBytes32(decimal: string): Buffer;
1046
+
1047
+ declare function runTtlPreflight(assembledTransaction: unknown): Promise<void>;
1048
+
1049
+ declare function attachPoolStatePorts(transactEnvironment: StellarTransactEnvironment | undefined, state: StateBridgeAdapter): StellarTransactEnvironment | undefined;
1050
+
1051
+ export { type AlignedDepositSlot, type BuildTransferOnboardingAtExecuteInput, type CreateStellarPrivacyClientResult, type KytApplicationIdHints, KytInspectError, type LoadBrowserAssetsInput, type LoadPendingClaimsCountFromBackendInput, type LoadPendingClaimsFromBackendInput, MIN_CONFIDENTIAL_TRANSFER_STROOPS, PrivacyPoolService, type ProofResult, type ProofWithChange, type RequestKytPassageForPoolInteractionInput, type StellarAddress, type StellarAsset, type StellarAssetId, type StellarAssetsCatalog, type StellarAvailablePrivateRecordsFilter, type StellarBrowserAssets, type StellarBrowserPrivacyClientConfig, type StellarDeliverySyncState, type StellarIncomingDeliveriesFilter, type StellarIncomingDelivery, type StellarKytEnvironment, type StellarLeafEphemeral, type StellarNetworkConfig, type StellarOperationReceipt, type StellarPendingClaim, type StellarPendingClaimSource, type StellarPendingClaimsFilter, type StellarPendingClaimsPagination, type StellarPendingClaimsState, type StellarPolicyAdapter, type StellarPoolMerkleState, type StellarPreparedOperation, type StellarPrivacyClient, type StellarPrivacyClientConfig, type StellarPrivateAssetRow, type StellarPrivateRecord, type StellarPrivateRecordStatus, type StellarPublicBalance, type StellarPublicBalanceInput, type StellarRegistryLookup, type StellarStateAdapter, type StellarSubmissionPayload, type StellarTransactEngine, type StellarTransactEnvironment, type StellarTransactionDetails, type StellarTransactionStatus, type StellarTransferFromAddress, type StellarTransferIntent, type TemporaryRecipientKeyMaterial, type TransferOnboardingRecipientNoteInput$1 as TransferOnboardingRecipientNoteInput, type TransferRecipientExecutionContext, type TransferTemporaryRecipientKey, ZERO_STROOPS, assetLegToTokenAddress, attachPoolStatePorts, buildOnboardingPayload, buildPoolTransactionAuditParameters, buildPrivateAddressSignMessage, buildTransferOnboardingAtExecute, configurePrivacyPoolService, createDefaultTransactEngine, createPrivacyPoolService, createStellarPolicyAdapterFromEnvironment, createStellarPrivacyClient, createStellarPrivacyClientFromResolvedConfig, decodePrivateAddress, encodePrivateAddress, encodePrivateAddressFromHexCoordinates, fetchAndMergeMerkleState, frDecimalToPaddedBytes32, generateRandomDepositScalarHex, generateTemporaryRecipientPrivateAddress, getPrivacyPoolService, isStellarPrivacyClient, listWalletPrivateAddressRecordsForOwnerFromStateSnapshot, listWalletPrivateAddressScalarsForOwnerFromStateSnapshot, loadDefaultStellarBrowserAssets, loadStellarBrowserAssets, parseAuditPublicKeyFromEnvHex, parseKytReasonCode, prepareConfidentialTransferProof, prepareConfidentialTransferProofDual, privateAddressSdk, readLeafEphemeralHex, readPrivateRecordsFromStateSnapshot, readWalletDefaultPrivateAddressNonceFromStateSnapshot, readWalletPrivateAddressRecordFromStateSnapshot, readWalletPrivateAddressScalarFromStateSnapshot, recipientPublicKeysDecimalFromPrivateAddress, requestKytPassageForPoolInteraction, resolvePoolApplicationId, resolveStellarPrivacyClientConfig, runTtlPreflight, stellarStateDefinitions, submitSorobanConfidentialTransfer, submitSorobanDeposit, tokenAddressToAssetLeg };