@breeztech/breez-sdk-spark 0.18.0-dev4 → 0.19.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.
@@ -18,6 +18,8 @@ export const bitcoinchainservicehandle_recommendedFees: (a: number) => any;
18
18
  export const breezsdk_addContact: (a: number, b: any) => any;
19
19
  export const breezsdk_addEventListener: (a: number, b: any) => any;
20
20
  export const breezsdk_authorizeLightningAddressTransfer: (a: number, b: any) => any;
21
+ export const breezsdk_buildUnsignedLnurlPayPackage: (a: number, b: any) => any;
22
+ export const breezsdk_buildUnsignedTransferPackage: (a: number, b: any) => any;
21
23
  export const breezsdk_buyBitcoin: (a: number, b: any) => any;
22
24
  export const breezsdk_checkLightningAddressAvailable: (a: number, b: any) => any;
23
25
  export const breezsdk_checkMessage: (a: number, b: any) => any;
@@ -48,6 +50,8 @@ export const breezsdk_optimizeLeaves: (a: number, b: any) => any;
48
50
  export const breezsdk_parse: (a: number, b: number, c: number) => any;
49
51
  export const breezsdk_prepareLnurlPay: (a: number, b: any) => any;
50
52
  export const breezsdk_prepareSendPayment: (a: number, b: any) => any;
53
+ export const breezsdk_publishSignedLnurlPayPackage: (a: number, b: any) => any;
54
+ export const breezsdk_publishSignedTransferPackage: (a: number, b: any) => any;
51
55
  export const breezsdk_receivePayment: (a: number, b: any) => any;
52
56
  export const breezsdk_recommendedFees: (a: number) => any;
53
57
  export const breezsdk_refundDeposit: (a: number, b: any) => any;
@@ -63,13 +67,18 @@ export const breezsdk_updateContact: (a: number, b: any) => any;
63
67
  export const breezsdk_updateUserSettings: (a: number, b: any) => any;
64
68
  export const connect: (a: any) => any;
65
69
  export const connectWithSigner: (a: any, b: any, c: any, d: number, e: number) => any;
70
+ export const connectWithSigningOnlySigner: (a: any, b: any, c: any, d: number, e: number) => any;
66
71
  export const createTurnkeySigner: (a: any) => any;
72
+ export const createTurnkeySigningOnlySigner: (a: any) => any;
67
73
  export const defaultConfig: (a: any) => any;
68
74
  export const defaultExternalSigners: (a: number, b: number, c: number, d: number, e: any, f: number) => [number, number, number];
69
75
  export const defaultMysqlStorageConfig: (a: number, b: number) => any;
70
76
  export const defaultPostgresStorageConfig: (a: number, b: number) => any;
71
77
  export const defaultServerConfig: (a: any) => any;
78
+ export const defaultSessionStore: (a: number, b: any, c: number, d: number) => any;
72
79
  export const defaultStorage: (a: number, b: number) => number;
80
+ export const defaultsessionstore_getSession: (a: number, b: number, c: number) => any;
81
+ export const defaultsessionstore_setSession: (a: number, b: number, c: number, d: any) => any;
73
82
  export const externalbreezsignerhandle_decryptEcies: (a: number, b: number, c: number, d: number, e: number) => any;
74
83
  export const externalbreezsignerhandle_derivePublicKey: (a: number, b: number, c: number) => any;
75
84
  export const externalbreezsignerhandle_encryptEcies: (a: number, b: number, c: number, d: number, e: number) => any;
@@ -79,6 +88,10 @@ export const externalbreezsignerhandle_signEcdsaRecoverable: (a: number, b: any,
79
88
  export const externalbreezsignerhandle_signHashSchnorr: (a: number, b: number, c: number, d: number, e: number) => any;
80
89
  export const externalsigners_breezSigner: (a: number) => number;
81
90
  export const externalsigners_sparkSigner: (a: number) => number;
91
+ export const externalsigningsignerhandle_derivePublicKey: (a: number, b: number, c: number) => any;
92
+ export const externalsigningsignerhandle_signEcdsa: (a: number, b: any, c: number, d: number) => any;
93
+ export const externalsigningsignerhandle_signEcdsaRecoverable: (a: number, b: any, c: number, d: number) => any;
94
+ export const externalsigningsignerhandle_signHashSchnorr: (a: number, b: number, c: number, d: number, e: number) => any;
82
95
  export const externalsparksignerhandle_getIdentityPublicKey: (a: number) => any;
83
96
  export const externalsparksignerhandle_getPublicKeyForLeaf: (a: number, b: any) => any;
84
97
  export const externalsparksignerhandle_getStaticDepositPublicKey: (a: number, b: number) => any;
@@ -110,6 +123,7 @@ export const postgresStorage: (a: any) => number;
110
123
  export const sdkbuilder_build: (a: number) => any;
111
124
  export const sdkbuilder_new: (a: any, b: any) => number;
112
125
  export const sdkbuilder_newWithSigner: (a: any, b: any, c: any) => number;
126
+ export const sdkbuilder_newWithSigningOnlySigner: (a: any, b: any, c: any) => number;
113
127
  export const sdkbuilder_withAccountNumber: (a: number, b: number) => number;
114
128
  export const sdkbuilder_withChainService: (a: number, b: any) => number;
115
129
  export const sdkbuilder_withDefaultStorage: (a: number, b: number, c: number) => any;
@@ -119,6 +133,7 @@ export const sdkbuilder_withMysqlBackend: (a: number, b: any) => [number, number
119
133
  export const sdkbuilder_withPaymentObserver: (a: number, b: any) => number;
120
134
  export const sdkbuilder_withPostgresBackend: (a: number, b: any) => [number, number, number];
121
135
  export const sdkbuilder_withRestChainService: (a: number, b: number, c: number, d: any, e: number) => number;
136
+ export const sdkbuilder_withSessionStore: (a: number, b: any) => number;
122
137
  export const sdkbuilder_withSharedContext: (a: number, b: number) => number;
123
138
  export const sdkbuilder_withStorage: (a: number, b: any) => number;
124
139
  export const sdkbuilder_withStorageBackend: (a: number, b: number) => number;
@@ -149,12 +164,17 @@ export const intounderlyingsink_write: (a: number, b: any) => any;
149
164
  export const intounderlyingsource_cancel: (a: number) => void;
150
165
  export const intounderlyingsource_pull: (a: number, b: any) => any;
151
166
  export const __wbg_externalbreezsignerhandle_free: (a: number, b: number) => void;
167
+ export const __wbg_defaultsessionstore_free: (a: number, b: number) => void;
168
+ export const __wbg_externalsigningsignerhandle_free: (a: number, b: number) => void;
152
169
  export const __wbg_externalsparksignerhandle_free: (a: number, b: number) => void;
153
- export const wasm_bindgen__convert__closures_____invoke__h039d35996dc01d12: (a: number, b: number, c: any) => [number, number];
154
- export const wasm_bindgen__convert__closures_____invoke__h039d35996dc01d12_6: (a: number, b: number, c: any) => [number, number];
155
- export const wasm_bindgen__convert__closures_____invoke__h039d35996dc01d12_7: (a: number, b: number, c: any) => [number, number];
156
- export const wasm_bindgen__convert__closures_____invoke__h039d35996dc01d12_8: (a: number, b: number, c: any) => [number, number];
157
- export const wasm_bindgen__convert__closures_____invoke__h039d35996dc01d12_9: (a: number, b: number, c: any) => [number, number];
170
+ export const __wbg_signingonlyexternalsigners_free: (a: number, b: number) => void;
171
+ export const signingonlyexternalsigners_breezSigner: (a: number) => number;
172
+ export const signingonlyexternalsigners_sparkSigner: (a: number) => number;
173
+ export const wasm_bindgen__convert__closures_____invoke__h21f6855640435575: (a: number, b: number, c: any) => [number, number];
174
+ export const wasm_bindgen__convert__closures_____invoke__h21f6855640435575_6: (a: number, b: number, c: any) => [number, number];
175
+ export const wasm_bindgen__convert__closures_____invoke__h21f6855640435575_7: (a: number, b: number, c: any) => [number, number];
176
+ export const wasm_bindgen__convert__closures_____invoke__h21f6855640435575_8: (a: number, b: number, c: any) => [number, number];
177
+ export const wasm_bindgen__convert__closures_____invoke__h21f6855640435575_9: (a: number, b: number, c: any) => [number, number];
158
178
  export const wasm_bindgen__convert__closures_____invoke__h41057d61edf43a32: (a: number, b: number, c: any, d: any) => void;
159
179
  export const wasm_bindgen__convert__closures_____invoke__h3120db8c4a8a92b2: (a: number, b: number, c: any) => void;
160
180
  export const wasm_bindgen__convert__closures_____invoke__h3120db8c4a8a92b2_2: (a: number, b: number, c: any) => void;
@@ -39,16 +39,24 @@ type ReserveResult =
39
39
  | { type: 'insufficientFunds' }
40
40
  | { type: 'waitForPending'; needed: number; available: number; pending: number };
41
41
 
42
+ type LeafSelection =
43
+ | { type: 'exact'; leaves: TreeNode[] }
44
+ | { type: 'swapNeeded'; leaves: TreeNode[] }
45
+ | { type: 'insufficientFunds' };
46
+
42
47
  export interface TreeStore {
43
48
  addLeaves: (leaves: TreeNode[]) => Promise<void>;
44
49
  getLeaves: () => Promise<Leaves>;
45
50
  getAvailableBalance: () => Promise<bigint>;
51
+ getVerifiedLeafKeys: () => Promise<[string, string, string][]>;
46
52
  setLeaves: (leaves: TreeNode[], missingLeaves: TreeNode[], refreshStartedAtMs: number) => Promise<void>;
47
53
  cancelReservation: (id: string, leavesToKeep: TreeNode[]) => Promise<void>;
48
54
  finalizeReservation: (id: string, newLeaves: TreeNode[] | null) => Promise<void>;
49
55
  tryReserveLeaves: (targetAmounts: TargetAmounts | null, exactOnly: boolean, purpose: string) => Promise<ReserveResult>;
50
56
  now: () => Promise<number>;
51
57
  updateReservation: (reservationId: string, reservedLeaves: TreeNode[], changeLeaves: TreeNode[]) => Promise<LeavesReservation>;
58
+ tryReserveLeavesByIds: (leafIds: string[], purpose: string) => Promise<LeavesReservation>;
59
+ trySelectLeaves: (targetAmounts: TargetAmounts | null) => Promise<LeafSelection>;
52
60
  }
53
61
 
54
62
 
@@ -123,6 +131,17 @@ export interface TokenStore {
123
131
  preferredOutputs: WasmTokenOutputWithPrevOut[] | null,
124
132
  selectionStrategy: string | null
125
133
  ) => Promise<WasmTokenOutputsReservation>;
134
+ selectTokenOutputs: (
135
+ tokenIdentifier: string,
136
+ target: WasmReservationTarget,
137
+ preferredOutputs: WasmTokenOutputWithPrevOut[] | null,
138
+ selectionStrategy: string | null
139
+ ) => Promise<WasmTokenOutputs>;
140
+ reserveTokenOutputsByOutpoints: (
141
+ tokenIdentifier: string,
142
+ outpoints: { prevTxHash: string; prevTxVout: number }[],
143
+ purpose: string
144
+ ) => Promise<WasmTokenOutputsReservation>;
126
145
  cancelReservation: (id: string) => Promise<void>;
127
146
  finalizeReservation: (id: string) => Promise<void>;
128
147
  now: () => Promise<number>;
@@ -536,6 +555,15 @@ export interface Bolt12OfferDetails {
536
555
  signingPubkey?: string;
537
556
  }
538
557
 
558
+ export interface BuildUnsignedLnurlPayPackageRequest {
559
+ prepareResponse: PrepareLnurlPayResponse;
560
+ }
561
+
562
+ export interface BuildUnsignedTransferPackageRequest {
563
+ prepareResponse: PrepareSendPaymentResponse;
564
+ options?: BuildTransferPackageOptions;
565
+ }
566
+
539
567
  export interface BurnIssuerTokenRequest {
540
568
  amount: bigint;
541
569
  }
@@ -886,6 +914,13 @@ export interface ExternalSigningCommitments {
886
914
  binding: number[];
887
915
  }
888
916
 
917
+ export interface ExternalSigningSigner {
918
+ derivePublicKey(path: string): Promise<PublicKeyBytes>;
919
+ signEcdsa(message: MessageBytes, path: string): Promise<EcdsaSignatureBytes>;
920
+ signEcdsaRecoverable(message: MessageBytes, path: string): Promise<RecoverableEcdsaSignatureBytes>;
921
+ signHashSchnorr(hash: Uint8Array, path: string): Promise<SchnorrSignatureBytes>;
922
+ }
923
+
889
924
  export interface ExternalSparkSigner {
890
925
  getIdentityPublicKey(): Promise<PublicKeyBytes>;
891
926
  getPublicKeyForLeaf(leafId: ExternalTreeNodeId): Promise<PublicKeyBytes>;
@@ -1071,6 +1106,12 @@ export interface LnurlInfo {
1071
1106
  bech32: string;
1072
1107
  }
1073
1108
 
1109
+ export interface LnurlPayContext {
1110
+ payRequest: LnurlPayRequestDetails;
1111
+ comment?: string;
1112
+ successAction?: SuccessAction;
1113
+ }
1114
+
1074
1115
  export interface LnurlPayInfo {
1075
1116
  lnAddress?: string;
1076
1117
  comment?: string;
@@ -1260,6 +1301,14 @@ export interface PublicKeyBytes {
1260
1301
  bytes: number[];
1261
1302
  }
1262
1303
 
1304
+ export interface PublishSignedLnurlPayPackageRequest {
1305
+ signedPackage: SignedTransferPackage;
1306
+ }
1307
+
1308
+ export interface PublishSignedTransferPackageRequest {
1309
+ signedPackage: SignedTransferPackage;
1310
+ }
1311
+
1263
1312
  export interface Rate {
1264
1313
  coin: string;
1265
1314
  value: number;
@@ -1401,6 +1450,11 @@ export interface SignMessageResponse {
1401
1450
  signature: string;
1402
1451
  }
1403
1452
 
1453
+ export interface SignedTransferPackage {
1454
+ unsigned: UnsignedTransferPackage;
1455
+ signature: TransferSignature;
1456
+ }
1457
+
1404
1458
  export interface SilentPaymentAddressDetails {
1405
1459
  address: string;
1406
1460
  network: BitcoinNetwork;
@@ -1421,6 +1475,7 @@ export interface SparkConfig {
1421
1475
  sspConfig: SparkSspConfig;
1422
1476
  expectedWithdrawBondSats: number;
1423
1477
  expectedWithdrawRelativeBlockLocktime: number;
1478
+ maxTokenTransactionInputs?: number;
1424
1479
  }
1425
1480
 
1426
1481
  export interface SparkHtlcDetails {
@@ -1590,7 +1645,9 @@ export interface TurnkeyConfig {
1590
1645
  walletId: string;
1591
1646
  network: Network;
1592
1647
  accountNumber?: number;
1648
+ identityPublicKey?: string;
1593
1649
  retry?: TurnkeyRetryConfig;
1650
+ maxRps?: number;
1594
1651
  }
1595
1652
 
1596
1653
  export interface TurnkeyRetryConfig {
@@ -1673,6 +1730,8 @@ export type AutoOptimizationEvent = { type: "started"; totalRounds: number } | {
1673
1730
 
1674
1731
  export type BitcoinNetwork = "bitcoin" | "testnet3" | "testnet4" | "signet" | "regtest";
1675
1732
 
1733
+ export type BuildTransferPackageOptions = { type: "bitcoinAddress"; confirmationSpeed: OnchainConfirmationSpeed } | { type: "bolt11Invoice"; preferSpark: boolean; completionTimeoutSecs?: number };
1734
+
1676
1735
  export type BuyBitcoinRequest = { type: "moonpay"; lockedAmountSat?: number; redirectUrl?: string } | { type: "cashApp"; amountSats: number };
1677
1736
 
1678
1737
  export type ChainApiType = "esplora" | "mempoolSpace";
@@ -1741,6 +1800,10 @@ export type PaymentType = "send" | "receive";
1741
1800
 
1742
1801
  export type ProvisionalPaymentDetails = { type: "bitcoin"; withdrawalAddress: string } | { type: "lightning"; invoice: string } | { type: "spark"; payRequest: string } | { type: "token"; tokenId: string; payRequest: string };
1743
1802
 
1803
+ export type PublishSignedLnurlPayResponse = { type: "swapCompleted" } | { type: "paymentSent"; response: LnurlPayResponse };
1804
+
1805
+ export type PublishSignedTransferPackageResponse = { type: "swapCompleted" } | { type: "paymentSent"; payment: Payment };
1806
+
1744
1807
  export type ReceivePaymentMethod = { type: "sparkAddress" } | { type: "sparkInvoice"; amount?: string; tokenIdentifier?: string; expiryTime?: number; description?: string; senderPublicKey?: string } | { type: "bitcoinAddress"; newAddress?: boolean } | { type: "bolt11Invoice"; description: string; amountSats?: number; expirySecs?: number; paymentHash?: string };
1745
1808
 
1746
1809
  export type SdkEvent = { type: "synced" } | { type: "unclaimedDeposits"; unclaimedDeposits: DepositInfo[] } | { type: "claimedDeposits"; claimedDeposits: DepositInfo[] } | { type: "paymentSucceeded"; payment: Payment } | { type: "paymentPending"; payment: Payment } | { type: "paymentFailed"; payment: Payment } | { type: "autoOptimization"; optimizationEvent: AutoOptimizationEvent } | { type: "lightningAddressChanged"; lightningAddress?: LightningAddressInfo } | { type: "newDeposits"; newDeposits: DepositInfo[] };
@@ -1769,6 +1832,12 @@ export type SuccessActionProcessed = { type: "aes"; result: AesSuccessActionData
1769
1832
 
1770
1833
  export type TokenTransactionType = "transfer" | "mint" | "burn";
1771
1834
 
1835
+ export type TransferSignature = { type: "transfer"; signed: ExternalPreparedTransfer } | { type: "token"; signed: ExternalPreparedTokenTransaction };
1836
+
1837
+ export type TransferTarget = { type: "spark"; address: string; sparkInvoice?: string } | { type: "lightning"; bolt11: string; lnurlPay?: LnurlPayContext; feePolicy: FeePolicy; completionTimeoutSecs?: number } | { type: "coopExit"; address: string; feeQuote: SendOnchainFeeQuote; confirmationSpeed: OnchainConfirmationSpeed };
1838
+
1839
+ export type UnsignedTransferPackage = { type: "swap"; prepareTransfer: ExternalPrepareTransferRequest; targetAmounts: number[]; amountSat: number; feeSat: number } | { type: "transfer"; prepareTransfer: ExternalPrepareTransferRequest; amountSat: number; feeSat: number; target: TransferTarget } | { type: "token"; prepareTokenTransaction: ExternalPrepareTokenTransactionRequest; tokenContext: number[]; tokenIdentifier: string; amount: string; fee: string; isSwap: boolean };
1840
+
1772
1841
  export type UpdateDepositPayload = { type: "claimError"; error: DepositClaimError } | { type: "refund"; refundTxid: string; refundTx: string };
1773
1842
 
1774
1843
  export type WebhookEventType = { type: "lightningReceiveFinished" } | { type: "lightningSendFinished" } | { type: "coopExitFinished" } | { type: "staticDepositFinished" } | ({ type: "unknown" } & string);
@@ -1800,6 +1869,8 @@ export class BreezSdk {
1800
1869
  addContact(request: AddContactRequest): Promise<Contact>;
1801
1870
  addEventListener(listener: EventListener): Promise<string>;
1802
1871
  authorizeLightningAddressTransfer(request: AuthorizeTransferRequest): Promise<TransferAuthorization>;
1872
+ buildUnsignedLnurlPayPackage(request: BuildUnsignedLnurlPayPackageRequest): Promise<UnsignedTransferPackage>;
1873
+ buildUnsignedTransferPackage(request: BuildUnsignedTransferPackageRequest): Promise<UnsignedTransferPackage>;
1803
1874
  buyBitcoin(request: BuyBitcoinRequest): Promise<BuyBitcoinResponse>;
1804
1875
  checkLightningAddressAvailable(request: CheckLightningAddressRequest): Promise<boolean>;
1805
1876
  checkMessage(request: CheckMessageRequest): Promise<CheckMessageResponse>;
@@ -1830,6 +1901,8 @@ export class BreezSdk {
1830
1901
  parse(input: string): Promise<InputType>;
1831
1902
  prepareLnurlPay(request: PrepareLnurlPayRequest): Promise<PrepareLnurlPayResponse>;
1832
1903
  prepareSendPayment(request: PrepareSendPaymentRequest): Promise<PrepareSendPaymentResponse>;
1904
+ publishSignedLnurlPayPackage(request: PublishSignedLnurlPayPackageRequest): Promise<PublishSignedLnurlPayResponse>;
1905
+ publishSignedTransferPackage(request: PublishSignedTransferPackageRequest): Promise<PublishSignedTransferPackageResponse>;
1833
1906
  receivePayment(request: ReceivePaymentRequest): Promise<ReceivePaymentResponse>;
1834
1907
  recommendedFees(): Promise<RecommendedFees>;
1835
1908
  refundDeposit(request: RefundDepositRequest): Promise<RefundDepositResponse>;
@@ -1845,6 +1918,21 @@ export class BreezSdk {
1845
1918
  updateUserSettings(request: UpdateUserSettingsRequest): Promise<void>;
1846
1919
  }
1847
1920
 
1921
+ /**
1922
+ * A JS handle to a backend's own session store (from `defaultSessionStore`),
1923
+ * exposing the same `getSession` / `setSession` interface. Wrap it in a JS
1924
+ * `SessionStore` decorator and pass that to `SdkBuilder.withSessionStore` to
1925
+ * transform tokens while keeping the backend's persistence: for example
1926
+ * at-rest encryption, which the SDK does not apply itself.
1927
+ */
1928
+ export class DefaultSessionStore {
1929
+ private constructor();
1930
+ free(): void;
1931
+ [Symbol.dispose](): void;
1932
+ getSession(service_identity_key: string): Promise<Session>;
1933
+ setSession(service_identity_key: string, session: Session): Promise<void>;
1934
+ }
1935
+
1848
1936
  /**
1849
1937
  * A Rust-backed [`ExternalBreezSigner`] surfaced to JS as a signer object that
1850
1938
  * can be passed to `connectWithSigner` or `SdkBuilder.newWithSigner`. Produced
@@ -1885,6 +1973,24 @@ export class ExternalSigners {
1885
1973
  readonly sparkSigner: ExternalSparkSignerHandle;
1886
1974
  }
1887
1975
 
1976
+ /**
1977
+ * A Rust-backed [`ExternalSigningSigner`] surfaced to JS as a signer object
1978
+ * that can be passed to `connectWithSigningOnlySigner` or
1979
+ * `SdkBuilder.newWithSigningOnlySigner`. Produced by
1980
+ * `createTurnkeySigningOnlySigner`.
1981
+ *
1982
+ * [`ExternalSigningSigner`]: breez_sdk_spark::signer::ExternalSigningSigner
1983
+ */
1984
+ export class ExternalSigningSignerHandle {
1985
+ private constructor();
1986
+ free(): void;
1987
+ [Symbol.dispose](): void;
1988
+ derivePublicKey(path: string): Promise<PublicKeyBytes>;
1989
+ signEcdsa(message: MessageBytes, path: string): Promise<EcdsaSignatureBytes>;
1990
+ signEcdsaRecoverable(message: MessageBytes, path: string): Promise<RecoverableEcdsaSignatureBytes>;
1991
+ signHashSchnorr(hash: Uint8Array, path: string): Promise<SchnorrSignatureBytes>;
1992
+ }
1993
+
1888
1994
  /**
1889
1995
  * A Rust-backed [`ExternalSparkSigner`] surfaced to JS as a signer object that
1890
1996
  * can be passed to `connectWithSigner` or `SdkBuilder.newWithSigner`. Produced
@@ -2004,6 +2110,13 @@ export class SdkBuilder {
2004
2110
  build(): Promise<BreezSdk>;
2005
2111
  static new(config: Config, seed: Seed): SdkBuilder;
2006
2112
  static newWithSigner(config: Config, breez_signer: ExternalBreezSigner, spark_signer: ExternalSparkSigner): SdkBuilder;
2113
+ /**
2114
+ * Creates a new `SdkBuilder` with a signing-only external signer, for a
2115
+ * signer that can't perform the SDK's local ECIES/HMAC operations. The SDK
2116
+ * keeps session tokens in plaintext and disables the features that rely on
2117
+ * ECIES/HMAC.
2118
+ */
2119
+ static newWithSigningOnlySigner(config: Config, breez_signer: ExternalSigningSigner, spark_signer: ExternalSparkSigner): SdkBuilder;
2007
2120
  withAccountNumber(account_number: number): SdkBuilder;
2008
2121
  withChainService(chain_service: BitcoinChainService): SdkBuilder;
2009
2122
  withDefaultStorage(storage_dir: string): Promise<SdkBuilder>;
@@ -2019,6 +2132,13 @@ export class SdkBuilder {
2019
2132
  */
2020
2133
  withPostgresBackend(config: PostgresStorageConfig): SdkBuilder;
2021
2134
  withRestChainService(url: string, api_type: ChainApiType, credentials?: Credentials | null): SdkBuilder;
2135
+ /**
2136
+ * Overrides the session store used to cache auth tokens, replacing the one
2137
+ * the backend provides. Pass any `SessionStore`: for example one that wraps
2138
+ * the backend's own store from `defaultSessionStore` to add at-rest
2139
+ * encryption, which the SDK does not apply itself.
2140
+ */
2141
+ withSessionStore(session_store: SessionStore): SdkBuilder;
2022
2142
  /**
2023
2143
  * Threads a shared [`WasmSdkContext`] into the builder.
2024
2144
  *
@@ -2037,6 +2157,25 @@ export class SdkBuilder {
2037
2157
  withStorageBackend(config: WasmStorageConfig): SdkBuilder;
2038
2158
  }
2039
2159
 
2160
+ /**
2161
+ * The signing-only external signers for the SDK's signer-based connect.
2162
+ * Returned by `createTurnkeySigningOnlySigner`; pass both halves to
2163
+ * `connectWithSigningOnlySigner` or `SdkBuilder.newWithSigningOnlySigner`.
2164
+ */
2165
+ export class SigningOnlyExternalSigners {
2166
+ private constructor();
2167
+ free(): void;
2168
+ [Symbol.dispose](): void;
2169
+ /**
2170
+ * Signing-only external signer for non-Spark SDK signing.
2171
+ */
2172
+ readonly breezSigner: ExternalSigningSignerHandle;
2173
+ /**
2174
+ * External high-level Spark signer for the Spark wallet flows.
2175
+ */
2176
+ readonly sparkSigner: ExternalSparkSignerHandle;
2177
+ }
2178
+
2040
2179
  export class TokenIssuer {
2041
2180
  private constructor();
2042
2181
  free(): void;
@@ -2079,6 +2218,13 @@ export function connect(request: ConnectRequest): Promise<BreezSdk>;
2079
2218
 
2080
2219
  export function connectWithSigner(config: Config, breez_signer: ExternalBreezSigner, spark_signer: ExternalSparkSigner, storage_dir: string): Promise<BreezSdk>;
2081
2220
 
2221
+ /**
2222
+ * Connects using a signing-only external signer, for a signer that can't
2223
+ * perform the SDK's local ECIES/HMAC operations. The SDK keeps session tokens
2224
+ * in plaintext and disables the features that rely on ECIES/HMAC.
2225
+ */
2226
+ export function connectWithSigningOnlySigner(config: Config, breez_signer: ExternalSigningSigner, spark_signer: ExternalSparkSigner, storage_dir: string): Promise<BreezSdk>;
2227
+
2082
2228
  /**
2083
2229
  * Builds the Turnkey-backed signers from `config`, then pass
2084
2230
  * `signers.breezSigner` and `signers.sparkSigner` to `connectWithSigner`,
@@ -2086,6 +2232,14 @@ export function connectWithSigner(config: Config, breez_signer: ExternalBreezSig
2086
2232
  */
2087
2233
  export function createTurnkeySigner(config: TurnkeyConfig): Promise<ExternalSigners>;
2088
2234
 
2235
+ /**
2236
+ * Builds the signing-only Turnkey-backed signers from `config` (for a wallet
2237
+ * under a deny-export policy), then pass `signers.breezSigner` and
2238
+ * `signers.sparkSigner` to `connectWithSigningOnlySigner`. The Breez half
2239
+ * performs signing only and never exports a key.
2240
+ */
2241
+ export function createTurnkeySigningOnlySigner(config: TurnkeyConfig): Promise<SigningOnlyExternalSigners>;
2242
+
2089
2243
  export function defaultConfig(network: Network): Config;
2090
2244
 
2091
2245
  /**
@@ -2119,6 +2273,14 @@ export function defaultPostgresStorageConfig(connection_string: string): Postgre
2119
2273
 
2120
2274
  export function defaultServerConfig(network: Network): Config;
2121
2275
 
2276
+ /**
2277
+ * The session store the `config`'s backend provides for `identity` (the wallet
2278
+ * identity public key, hex), as a handle to wrap in a `SessionStore` decorator
2279
+ * and pass to `SdkBuilder.withSessionStore`, keeping the backend's persistence.
2280
+ * A typical use is at-rest encryption, which the SDK does not apply itself.
2281
+ */
2282
+ export function defaultSessionStore(config: WasmStorageConfig, network: Network, identity: string): Promise<DefaultSessionStore>;
2283
+
2122
2284
  /**
2123
2285
  * File-based storage rooted at `storageDir` — IndexedDB in the browser,
2124
2286
  * SQLite under Node.js.