@breeztech/breez-sdk-spark-react-native 0.13.10-dev → 0.13.12-dev1

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.
@@ -37,6 +37,7 @@ import nativeModule, {
37
37
  type UniffiVTableCallbackInterfacePasskeyPrfProvider,
38
38
  type UniffiVTableCallbackInterfacePaymentObserver,
39
39
  type UniffiVTableCallbackInterfaceRestClient,
40
+ type UniffiVTableCallbackInterfaceSessionManager,
40
41
  type UniffiVTableCallbackInterfaceStorage,
41
42
  } from './breez_sdk_spark-ffi';
42
43
  import {
@@ -305,6 +306,84 @@ export function initLogging(
305
306
  /*liftString:*/ FfiConverterString.lift
306
307
  );
307
308
  }
309
+ /**
310
+ * Creates a new shareable [`ConnectionManager`].
311
+ *
312
+ * `connections_per_operator` controls per-operator connection pooling:
313
+ * `None` keeps a single connection per operator (suitable for almost every
314
+ * deployment); `Some(n)` opens `n` connections per operator and balances
315
+ * requests across them.
316
+ */
317
+ export function newConnectionManager(
318
+ connectionsPerOperator: /*u32*/ number | undefined
319
+ ): ConnectionManagerInterface {
320
+ return FfiConverterTypeConnectionManager.lift(
321
+ uniffiCaller.rustCall(
322
+ /*caller:*/ (callStatus) => {
323
+ return nativeModule().ubrn_uniffi_breez_sdk_spark_fn_func_new_connection_manager(
324
+ FfiConverterOptionalUInt32.lower(connectionsPerOperator),
325
+ callStatus
326
+ );
327
+ },
328
+ /*liftString:*/ FfiConverterString.lift
329
+ )
330
+ );
331
+ }
332
+ /**
333
+ * Constructs a shareable REST-based [`BitcoinChainService`].
334
+ *
335
+ * Pass the returned `Arc` to multiple [`SdkBuilder`](crate::SdkBuilder)s via
336
+ * [`SdkBuilder::with_chain_service`](crate::SdkBuilder::with_chain_service)
337
+ * to reuse a single underlying HTTP client (and its connection pool) across
338
+ * SDK instances. All SDKs sharing the service must use the same `network`.
339
+ *
340
+ * For one-off, non-shared use, prefer
341
+ * [`SdkBuilder::with_rest_chain_service`](crate::SdkBuilder::with_rest_chain_service).
342
+ */
343
+ export function newRestChainService(
344
+ url: string,
345
+ network: Network,
346
+ apiType: ChainApiType,
347
+ credentials: Credentials | undefined
348
+ ): BitcoinChainService {
349
+ return FfiConverterTypeBitcoinChainService.lift(
350
+ uniffiCaller.rustCall(
351
+ /*caller:*/ (callStatus) => {
352
+ return nativeModule().ubrn_uniffi_breez_sdk_spark_fn_func_new_rest_chain_service(
353
+ FfiConverterString.lower(url),
354
+ FfiConverterTypeNetwork.lower(network),
355
+ FfiConverterTypeChainApiType.lower(apiType),
356
+ FfiConverterOptionalTypeCredentials.lower(credentials),
357
+ callStatus
358
+ );
359
+ },
360
+ /*liftString:*/ FfiConverterString.lift
361
+ )
362
+ );
363
+ }
364
+ /**
365
+ * Construct a new shared SSP connection manager.
366
+ *
367
+ * Pass the returned `Arc<SspConnectionManager>` to
368
+ * [`SdkBuilder::with_ssp_connection_manager`](crate::SdkBuilder::with_ssp_connection_manager)
369
+ * when building each SDK instance that should share the underlying HTTP
370
+ * connection pool.
371
+ */
372
+ export function newSspConnectionManager(
373
+ userAgent: string | undefined
374
+ ): SspConnectionManagerInterface {
375
+ return FfiConverterTypeSspConnectionManager.lift(
376
+ uniffiCaller.rustCall(
377
+ /*caller:*/ (callStatus) => {
378
+ return nativeModule().ubrn_uniffi_breez_sdk_spark_fn_func_new_ssp_connection_manager(
379
+ FfiConverterOptionalString.lower(userAgent),
380
+ callStatus
381
+ );
382
+ },
383
+ /*liftString:*/ FfiConverterString.lift
384
+ )
385
+ );
386
+ }
308
387
 
309
388
  /**
310
389
  * Trait for event listeners
@@ -9358,6 +9437,65 @@ const FfiConverterTypeSendPaymentResponse = (() => {
9358
9437
  return new FFIConverter();
9359
9438
  })();
9360
9439
 
9440
+ /**
9441
+ * Cached authentication session for a single backend service identity.
9442
+ */
9443
+ export type Session = {
9444
+ token: string;
9445
+ expiration: /*u64*/ bigint;
9446
+ };
9447
+
9448
+ /**
9449
+ * Generated factory for {@link Session} record objects.
9450
+ */
9451
+ export const Session = (() => {
9452
+ const defaults = () => ({});
9453
+ const create = (() => {
9454
+ return uniffiCreateRecord<Session, ReturnType<typeof defaults>>(defaults);
9455
+ })();
9456
+ return Object.freeze({
9457
+ /**
9458
+ * Create a frozen instance of {@link Session}, with defaults specified
9459
+ * in Rust, in the {@link breez_sdk_spark} crate.
9460
+ */
9461
+ create,
9462
+
9463
+ /**
9464
+ * Create a frozen instance of {@link Session}, with defaults specified
9465
+ * in Rust, in the {@link breez_sdk_spark} crate.
9466
+ */
9467
+ new: create,
9468
+
9469
+ /**
9470
+ * Defaults specified in the {@link breez_sdk_spark} crate.
9471
+ */
9472
+ defaults: () => Object.freeze(defaults()) as Partial<Session>,
9473
+ });
9474
+ })();
9475
+
9476
+ const FfiConverterTypeSession = (() => {
9477
+ type TypeName = Session;
9478
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
9479
+ read(from: RustBuffer): TypeName {
9480
+ return {
9481
+ token: FfiConverterString.read(from),
9482
+ expiration: FfiConverterUInt64.read(from),
9483
+ };
9484
+ }
9485
+ write(value: TypeName, into: RustBuffer): void {
9486
+ FfiConverterString.write(value.token, into);
9487
+ FfiConverterUInt64.write(value.expiration, into);
9488
+ }
9489
+ allocationSize(value: TypeName): number {
9490
+ return (
9491
+ FfiConverterString.allocationSize(value.token) +
9492
+ FfiConverterUInt64.allocationSize(value.expiration)
9493
+ );
9494
+ }
9495
+ }
9496
+ return new FFIConverter();
9497
+ })();
9498
+
9361
9499
  export type SetLnurlMetadataItem = {
9362
9500
  paymentHash: string;
9363
9501
  senderComment: string | undefined;
@@ -11728,6 +11866,14 @@ const stringConverter = {
11728
11866
  };
11729
11867
  const FfiConverterString = uniffiCreateFfiConverterString(stringConverter);
11730
11868
 
11869
+ /**
11870
+ * Typealias from the type name used in the UDL file to the builtin type. This
11871
+ * is needed because the UDL type name is used in function/method signatures.
11872
+ */
11873
+ export type PublicKey = string;
11874
+ // FfiConverter for PublicKey, a type alias for string.
11875
+ const FfiConverterTypePublicKey = FfiConverterString;
11876
+
11731
11877
  /**
11732
11878
  * Typealias from the type name used in the UDL file to the custom type. This
11733
11879
  * is needed because the UDL type name is used in function/method signatures.
@@ -20528,6 +20674,146 @@ const FfiConverterTypeServiceStatus = (() => {
20528
20674
  return new FFIConverter();
20529
20675
  })();
20530
20676
 
20677
+ // Error type: SessionManagerError
20678
+
20679
+ // Enum: SessionManagerError
20680
+ export enum SessionManagerError_Tags {
20681
+ NotFound = 'NotFound',
20682
+ Generic = 'Generic',
20683
+ }
20684
+ export const SessionManagerError = (() => {
20685
+ type NotFound__interface = {
20686
+ tag: SessionManagerError_Tags.NotFound;
20687
+ };
20688
+
20689
+ class NotFound_ extends UniffiError implements NotFound__interface {
20690
+ /**
20691
+ * @private
20692
+ * This field is private and should not be used, use `tag` instead.
20693
+ */
20694
+ readonly [uniffiTypeNameSymbol] = 'SessionManagerError';
20695
+ readonly tag = SessionManagerError_Tags.NotFound;
20696
+ constructor() {
20697
+ super('SessionManagerError', 'NotFound');
20698
+ }
20699
+
20700
+ static new(): NotFound_ {
20701
+ return new NotFound_();
20702
+ }
20703
+
20704
+ static instanceOf(obj: any): obj is NotFound_ {
20705
+ return obj.tag === SessionManagerError_Tags.NotFound;
20706
+ }
20707
+
20708
+ static hasInner(obj: any): obj is NotFound_ {
20709
+ return false;
20710
+ }
20711
+ }
20712
+
20713
+ type Generic__interface = {
20714
+ tag: SessionManagerError_Tags.Generic;
20715
+ inner: Readonly<[string]>;
20716
+ };
20717
+
20718
+ class Generic_ extends UniffiError implements Generic__interface {
20719
+ /**
20720
+ * @private
20721
+ * This field is private and should not be used, use `tag` instead.
20722
+ */
20723
+ readonly [uniffiTypeNameSymbol] = 'SessionManagerError';
20724
+ readonly tag = SessionManagerError_Tags.Generic;
20725
+ readonly inner: Readonly<[string]>;
20726
+ constructor(v0: string) {
20727
+ super('SessionManagerError', 'Generic');
20728
+ this.inner = Object.freeze([v0]);
20729
+ }
20730
+
20731
+ static new(v0: string): Generic_ {
20732
+ return new Generic_(v0);
20733
+ }
20734
+
20735
+ static instanceOf(obj: any): obj is Generic_ {
20736
+ return obj.tag === SessionManagerError_Tags.Generic;
20737
+ }
20738
+
20739
+ static hasInner(obj: any): obj is Generic_ {
20740
+ return Generic_.instanceOf(obj);
20741
+ }
20742
+
20743
+ static getInner(obj: Generic_): Readonly<[string]> {
20744
+ return obj.inner;
20745
+ }
20746
+ }
20747
+
20748
+ function instanceOf(obj: any): obj is SessionManagerError {
20749
+ return obj[uniffiTypeNameSymbol] === 'SessionManagerError';
20750
+ }
20751
+
20752
+ return Object.freeze({
20753
+ instanceOf,
20754
+ NotFound: NotFound_,
20755
+ Generic: Generic_,
20756
+ });
20757
+ })();
20758
+
20759
+ export type SessionManagerError = InstanceType<
20760
+ (typeof SessionManagerError)[keyof Omit<
20761
+ typeof SessionManagerError,
20762
+ 'instanceOf'
20763
+ >]
20764
+ >;
20765
+
20766
+ // FfiConverter for enum SessionManagerError
20767
+ const FfiConverterTypeSessionManagerError = (() => {
20768
+ const ordinalConverter = FfiConverterInt32;
20769
+ type TypeName = SessionManagerError;
20770
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
20771
+ read(from: RustBuffer): TypeName {
20772
+ switch (ordinalConverter.read(from)) {
20773
+ case 1:
20774
+ return new SessionManagerError.NotFound();
20775
+ case 2:
20776
+ return new SessionManagerError.Generic(FfiConverterString.read(from));
20777
+ default:
20778
+ throw new UniffiInternalError.UnexpectedEnumCase();
20779
+ }
20780
+ }
20781
+ write(value: TypeName, into: RustBuffer): void {
20782
+ switch (value.tag) {
20783
+ case SessionManagerError_Tags.NotFound: {
20784
+ ordinalConverter.write(1, into);
20785
+ return;
20786
+ }
20787
+ case SessionManagerError_Tags.Generic: {
20788
+ ordinalConverter.write(2, into);
20789
+ const inner = value.inner;
20790
+ FfiConverterString.write(inner[0], into);
20791
+ return;
20792
+ }
20793
+ default:
20794
+ // Throwing from here means that SessionManagerError_Tags hasn't matched an ordinal.
20795
+ throw new UniffiInternalError.UnexpectedEnumCase();
20796
+ }
20797
+ }
20798
+ allocationSize(value: TypeName): number {
20799
+ switch (value.tag) {
20800
+ case SessionManagerError_Tags.NotFound: {
20801
+ return ordinalConverter.allocationSize(1);
20802
+ }
20803
+ case SessionManagerError_Tags.Generic: {
20804
+ const inner = value.inner;
20805
+ let size = ordinalConverter.allocationSize(2);
20806
+ size += FfiConverterString.allocationSize(inner[0]);
20807
+ return size;
20808
+ }
20809
+ default:
20810
+ throw new UniffiInternalError.UnexpectedEnumCase();
20811
+ }
20812
+ }
20813
+ }
20814
+ return new FFIConverter();
20815
+ })();
20816
+
20531
20817
  // Error type: SignerError
20532
20818
 
20533
20819
  // Enum: SignerError
@@ -25483,6 +25769,136 @@ const FfiConverterTypeBreezSdk = new FfiConverterObject(
25483
25769
  uniffiTypeBreezSdkObjectFactory
25484
25770
  );
25485
25771
 
25772
+ /**
25773
+ * A shareable manager for gRPC connections to the Spark operators.
25774
+ *
25775
+ * Construct one via [`new_connection_manager`] and pass the same `Arc` to
25776
+ * multiple [`SdkBuilder`](crate::SdkBuilder)s via
25777
+ * [`SdkBuilder::with_connection_manager`](crate::SdkBuilder::with_connection_manager).
25778
+ * Connections close when the last `Arc<ConnectionManager>` is dropped;
25779
+ * [`BreezSdk::disconnect`](crate::BreezSdk::disconnect) does not affect them.
25780
+ *
25781
+ * All SDK instances sharing a `ConnectionManager` must be configured for the
25782
+ * same network and operator pool. The TLS settings and user agent of the
25783
+ * first SDK to connect to a given operator are reused for everyone afterwards.
25784
+ */
25785
+ export interface ConnectionManagerInterface {}
25786
+
25787
+ /**
25788
+ * A shareable manager for gRPC connections to the Spark operators.
25789
+ *
25790
+ * Construct one via [`new_connection_manager`] and pass the same `Arc` to
25791
+ * multiple [`SdkBuilder`](crate::SdkBuilder)s via
25792
+ * [`SdkBuilder::with_connection_manager`](crate::SdkBuilder::with_connection_manager).
25793
+ * Connections close when the last `Arc<ConnectionManager>` is dropped;
25794
+ * [`BreezSdk::disconnect`](crate::BreezSdk::disconnect) does not affect them.
25795
+ *
25796
+ * All SDK instances sharing a `ConnectionManager` must be configured for the
25797
+ * same network and operator pool. The TLS settings and user agent of the
25798
+ * first SDK to connect to a given operator are reused for everyone afterwards.
25799
+ */
25800
+ export class ConnectionManager
25801
+ extends UniffiAbstractObject
25802
+ implements ConnectionManagerInterface
25803
+ {
25804
+ readonly [uniffiTypeNameSymbol] = 'ConnectionManager';
25805
+ readonly [destructorGuardSymbol]: UniffiRustArcPtr;
25806
+ readonly [pointerLiteralSymbol]: UnsafeMutableRawPointer;
25807
+ // No primary constructor declared for this class.
25808
+ private constructor(pointer: UnsafeMutableRawPointer) {
25809
+ super();
25810
+ this[pointerLiteralSymbol] = pointer;
25811
+ this[destructorGuardSymbol] =
25812
+ uniffiTypeConnectionManagerObjectFactory.bless(pointer);
25813
+ }
25814
+
25815
+ /**
25816
+ * {@inheritDoc uniffi-bindgen-react-native#UniffiAbstractObject.uniffiDestroy}
25817
+ */
25818
+ uniffiDestroy(): void {
25819
+ const ptr = (this as any)[destructorGuardSymbol];
25820
+ if (ptr !== undefined) {
25821
+ const pointer = uniffiTypeConnectionManagerObjectFactory.pointer(this);
25822
+ uniffiTypeConnectionManagerObjectFactory.freePointer(pointer);
25823
+ uniffiTypeConnectionManagerObjectFactory.unbless(ptr);
25824
+ delete (this as any)[destructorGuardSymbol];
25825
+ }
25826
+ }
25827
+
25828
+ static instanceOf(obj: any): obj is ConnectionManager {
25829
+ return uniffiTypeConnectionManagerObjectFactory.isConcreteType(obj);
25830
+ }
25831
+ }
25832
+
25833
+ const uniffiTypeConnectionManagerObjectFactory: UniffiObjectFactory<ConnectionManagerInterface> =
25834
+ (() => {
25835
+ return {
25836
+ create(pointer: UnsafeMutableRawPointer): ConnectionManagerInterface {
25837
+ const instance = Object.create(ConnectionManager.prototype);
25838
+ instance[pointerLiteralSymbol] = pointer;
25839
+ instance[destructorGuardSymbol] = this.bless(pointer);
25840
+ instance[uniffiTypeNameSymbol] = 'ConnectionManager';
25841
+ return instance;
25842
+ },
25843
+
25844
+ bless(p: UnsafeMutableRawPointer): UniffiRustArcPtr {
25845
+ return uniffiCaller.rustCall(
25846
+ /*caller:*/ (status) =>
25847
+ nativeModule().ubrn_uniffi_internal_fn_method_connectionmanager_ffi__bless_pointer(
25848
+ p,
25849
+ status
25850
+ ),
25851
+ /*liftString:*/ FfiConverterString.lift
25852
+ );
25853
+ },
25854
+
25855
+ unbless(ptr: UniffiRustArcPtr) {
25856
+ ptr.markDestroyed();
25857
+ },
25858
+
25859
+ pointer(obj: ConnectionManagerInterface): UnsafeMutableRawPointer {
25860
+ if ((obj as any)[destructorGuardSymbol] === undefined) {
25861
+ throw new UniffiInternalError.UnexpectedNullPointer();
25862
+ }
25863
+ return (obj as any)[pointerLiteralSymbol];
25864
+ },
25865
+
25866
+ clonePointer(obj: ConnectionManagerInterface): UnsafeMutableRawPointer {
25867
+ const pointer = this.pointer(obj);
25868
+ return uniffiCaller.rustCall(
25869
+ /*caller:*/ (callStatus) =>
25870
+ nativeModule().ubrn_uniffi_breez_sdk_spark_fn_clone_connectionmanager(
25871
+ pointer,
25872
+ callStatus
25873
+ ),
25874
+ /*liftString:*/ FfiConverterString.lift
25875
+ );
25876
+ },
25877
+
25878
+ freePointer(pointer: UnsafeMutableRawPointer): void {
25879
+ uniffiCaller.rustCall(
25880
+ /*caller:*/ (callStatus) =>
25881
+ nativeModule().ubrn_uniffi_breez_sdk_spark_fn_free_connectionmanager(
25882
+ pointer,
25883
+ callStatus
25884
+ ),
25885
+ /*liftString:*/ FfiConverterString.lift
25886
+ );
25887
+ },
25888
+
25889
+ isConcreteType(obj: any): obj is ConnectionManagerInterface {
25890
+ return (
25891
+ obj[destructorGuardSymbol] &&
25892
+ obj[uniffiTypeNameSymbol] === 'ConnectionManager'
25893
+ );
25894
+ },
25895
+ };
25896
+ })();
25897
+ // FfiConverter for ConnectionManagerInterface
25898
+ const FfiConverterTypeConnectionManager = new FfiConverterObject(
25899
+ uniffiTypeConnectionManagerObjectFactory
25900
+ );
25901
+
25486
25902
  /**
25487
25903
  * External signer trait that can be implemented by users and passed to the SDK.
25488
25904
  *
@@ -29669,6 +30085,15 @@ export interface SdkBuilderInterface {
29669
30085
  chainService: BitcoinChainService,
29670
30086
  asyncOpts_?: { signal: AbortSignal }
29671
30087
  ): Promise<void>;
30088
+ /**
30089
+ * Sets a shared connection manager to be reused across SDK instances.
30090
+ * Arguments:
30091
+ * - `connection_manager`: The shared connection manager.
30092
+ */
30093
+ withConnectionManager(
30094
+ connectionManager: ConnectionManagerInterface,
30095
+ asyncOpts_?: { signal: AbortSignal }
30096
+ ): Promise<void>;
29672
30097
  /**
29673
30098
  * Sets the root storage directory to initialize the default storage with.
29674
30099
  * This initializes both storage and real-time sync storage with the
@@ -29724,6 +30149,26 @@ export interface SdkBuilderInterface {
29724
30149
  credentials: Credentials | undefined,
29725
30150
  asyncOpts_?: { signal: AbortSignal }
29726
30151
  ): Promise<void>;
30152
+ /**
30153
+ * Sets a custom session manager used to persist authentication sessions.
30154
+ *
30155
+ * Provide a shared, persistent implementation (e.g. backed by `PostgreSQL`
30156
+ * or Redis) to let multiple SDK instances share authentication state and
30157
+ * bootstrap quickly. If not set, an in-memory session manager is used.
30158
+ */
30159
+ withSessionManager(
30160
+ sessionManager: SessionManager,
30161
+ asyncOpts_?: { signal: AbortSignal }
30162
+ ): Promise<void>;
30163
+ /**
30164
+ * Sets a shared SSP connection manager to be reused across SDK instances.
30165
+ * Arguments:
30166
+ * - `manager`: The shared SSP connection manager.
30167
+ */
30168
+ withSspConnectionManager(
30169
+ manager: SspConnectionManagerInterface,
30170
+ asyncOpts_?: { signal: AbortSignal }
30171
+ ): Promise<void>;
29727
30172
  /**
29728
30173
  * Sets the storage implementation to be used by the SDK.
29729
30174
  * Arguments:
@@ -29847,6 +30292,45 @@ export class SdkBuilder
29847
30292
  }
29848
30293
  }
29849
30294
 
30295
+ /**
30296
+ * Sets a shared connection manager to be reused across SDK instances.
30297
+ * Arguments:
30298
+ * - `connection_manager`: The shared connection manager.
30299
+ */
30300
+ public async withConnectionManager(
30301
+ connectionManager: ConnectionManagerInterface,
30302
+ asyncOpts_?: { signal: AbortSignal }
30303
+ ): Promise<void> {
30304
+ const __stack = uniffiIsDebug ? new Error().stack : undefined;
30305
+ try {
30306
+ return await uniffiRustCallAsync(
30307
+ /*rustCaller:*/ uniffiCaller,
30308
+ /*rustFutureFunc:*/ () => {
30309
+ return nativeModule().ubrn_uniffi_breez_sdk_spark_fn_method_sdkbuilder_with_connection_manager(
30310
+ uniffiTypeSdkBuilderObjectFactory.clonePointer(this),
30311
+ FfiConverterTypeConnectionManager.lower(connectionManager)
30312
+ );
30313
+ },
30314
+ /*pollFunc:*/ nativeModule()
30315
+ .ubrn_ffi_breez_sdk_spark_rust_future_poll_void,
30316
+ /*cancelFunc:*/ nativeModule()
30317
+ .ubrn_ffi_breez_sdk_spark_rust_future_cancel_void,
30318
+ /*completeFunc:*/ nativeModule()
30319
+ .ubrn_ffi_breez_sdk_spark_rust_future_complete_void,
30320
+ /*freeFunc:*/ nativeModule()
30321
+ .ubrn_ffi_breez_sdk_spark_rust_future_free_void,
30322
+ /*liftFunc:*/ (_v) => {},
30323
+ /*liftString:*/ FfiConverterString.lift,
30324
+ /*asyncOpts:*/ asyncOpts_
30325
+ );
30326
+ } catch (__error: any) {
30327
+ if (uniffiIsDebug && __error instanceof Error) {
30328
+ __error.stack = __stack;
30329
+ }
30330
+ throw __error;
30331
+ }
30332
+ }
30333
+
29850
30334
  /**
29851
30335
  * Sets the root storage directory to initialize the default storage with.
29852
30336
  * This initializes both storage and real-time sync storage with the
@@ -30084,6 +30568,86 @@ export class SdkBuilder
30084
30568
  }
30085
30569
  }
30086
30570
 
30571
+ /**
30572
+ * Sets a custom session manager used to persist authentication sessions.
30573
+ *
30574
+ * Provide a shared, persistent implementation (e.g. backed by `PostgreSQL`
30575
+ * or Redis) to let multiple SDK instances share authentication state and
30576
+ * bootstrap quickly. If not set, an in-memory session manager is used.
30577
+ */
30578
+ public async withSessionManager(
30579
+ sessionManager: SessionManager,
30580
+ asyncOpts_?: { signal: AbortSignal }
30581
+ ): Promise<void> {
30582
+ const __stack = uniffiIsDebug ? new Error().stack : undefined;
30583
+ try {
30584
+ return await uniffiRustCallAsync(
30585
+ /*rustCaller:*/ uniffiCaller,
30586
+ /*rustFutureFunc:*/ () => {
30587
+ return nativeModule().ubrn_uniffi_breez_sdk_spark_fn_method_sdkbuilder_with_session_manager(
30588
+ uniffiTypeSdkBuilderObjectFactory.clonePointer(this),
30589
+ FfiConverterTypeSessionManager.lower(sessionManager)
30590
+ );
30591
+ },
30592
+ /*pollFunc:*/ nativeModule()
30593
+ .ubrn_ffi_breez_sdk_spark_rust_future_poll_void,
30594
+ /*cancelFunc:*/ nativeModule()
30595
+ .ubrn_ffi_breez_sdk_spark_rust_future_cancel_void,
30596
+ /*completeFunc:*/ nativeModule()
30597
+ .ubrn_ffi_breez_sdk_spark_rust_future_complete_void,
30598
+ /*freeFunc:*/ nativeModule()
30599
+ .ubrn_ffi_breez_sdk_spark_rust_future_free_void,
30600
+ /*liftFunc:*/ (_v) => {},
30601
+ /*liftString:*/ FfiConverterString.lift,
30602
+ /*asyncOpts:*/ asyncOpts_
30603
+ );
30604
+ } catch (__error: any) {
30605
+ if (uniffiIsDebug && __error instanceof Error) {
30606
+ __error.stack = __stack;
30607
+ }
30608
+ throw __error;
30609
+ }
30610
+ }
30611
+
30612
+ /**
30613
+ * Sets a shared SSP connection manager to be reused across SDK instances.
30614
+ * Arguments:
30615
+ * - `manager`: The shared SSP connection manager.
30616
+ */
30617
+ public async withSspConnectionManager(
30618
+ manager: SspConnectionManagerInterface,
30619
+ asyncOpts_?: { signal: AbortSignal }
30620
+ ): Promise<void> {
30621
+ const __stack = uniffiIsDebug ? new Error().stack : undefined;
30622
+ try {
30623
+ return await uniffiRustCallAsync(
30624
+ /*rustCaller:*/ uniffiCaller,
30625
+ /*rustFutureFunc:*/ () => {
30626
+ return nativeModule().ubrn_uniffi_breez_sdk_spark_fn_method_sdkbuilder_with_ssp_connection_manager(
30627
+ uniffiTypeSdkBuilderObjectFactory.clonePointer(this),
30628
+ FfiConverterTypeSspConnectionManager.lower(manager)
30629
+ );
30630
+ },
30631
+ /*pollFunc:*/ nativeModule()
30632
+ .ubrn_ffi_breez_sdk_spark_rust_future_poll_void,
30633
+ /*cancelFunc:*/ nativeModule()
30634
+ .ubrn_ffi_breez_sdk_spark_rust_future_cancel_void,
30635
+ /*completeFunc:*/ nativeModule()
30636
+ .ubrn_ffi_breez_sdk_spark_rust_future_complete_void,
30637
+ /*freeFunc:*/ nativeModule()
30638
+ .ubrn_ffi_breez_sdk_spark_rust_future_free_void,
30639
+ /*liftFunc:*/ (_v) => {},
30640
+ /*liftString:*/ FfiConverterString.lift,
30641
+ /*asyncOpts:*/ asyncOpts_
30642
+ );
30643
+ } catch (__error: any) {
30644
+ if (uniffiIsDebug && __error instanceof Error) {
30645
+ __error.stack = __stack;
30646
+ }
30647
+ throw __error;
30648
+ }
30649
+ }
30650
+
30087
30651
  /**
30088
30652
  * Sets the storage implementation to be used by the SDK.
30089
30653
  * Arguments:
@@ -30210,6 +30774,464 @@ const FfiConverterTypeSdkBuilder = new FfiConverterObject(
30210
30774
  uniffiTypeSdkBuilderObjectFactory
30211
30775
  );
30212
30776
 
30777
+ /**
30778
+ * Persistent storage for authentication sessions, keyed by the service's
30779
+ * identity public key. Implementations should be thread-safe and may be
30780
+ * backed by an in-memory map (default) or a shared database for cross-pod
30781
+ * auth sharing.
30782
+ */
30783
+ export interface SessionManager {
30784
+ getSession(
30785
+ serviceIdentityKey: PublicKey,
30786
+ asyncOpts_?: { signal: AbortSignal }
30787
+ ): /*throws*/ Promise<Session>;
30788
+ setSession(
30789
+ serviceIdentityKey: PublicKey,
30790
+ session: Session,
30791
+ asyncOpts_?: { signal: AbortSignal }
30792
+ ): /*throws*/ Promise<void>;
30793
+ }
30794
+
30795
+ /**
30796
+ * Persistent storage for authentication sessions, keyed by the service's
30797
+ * identity public key. Implementations should be thread-safe and may be
30798
+ * backed by an in-memory map (default) or a shared database for cross-pod
30799
+ * auth sharing.
30800
+ */
30801
+ export class SessionManagerImpl
30802
+ extends UniffiAbstractObject
30803
+ implements SessionManager
30804
+ {
30805
+ readonly [uniffiTypeNameSymbol] = 'SessionManagerImpl';
30806
+ readonly [destructorGuardSymbol]: UniffiRustArcPtr;
30807
+ readonly [pointerLiteralSymbol]: UnsafeMutableRawPointer;
30808
+ // No primary constructor declared for this class.
30809
+ private constructor(pointer: UnsafeMutableRawPointer) {
30810
+ super();
30811
+ this[pointerLiteralSymbol] = pointer;
30812
+ this[destructorGuardSymbol] =
30813
+ uniffiTypeSessionManagerImplObjectFactory.bless(pointer);
30814
+ }
30815
+
30816
+ public async getSession(
30817
+ serviceIdentityKey: PublicKey,
30818
+ asyncOpts_?: { signal: AbortSignal }
30819
+ ): Promise<Session> /*throws*/ {
30820
+ const __stack = uniffiIsDebug ? new Error().stack : undefined;
30821
+ try {
30822
+ return await uniffiRustCallAsync(
30823
+ /*rustCaller:*/ uniffiCaller,
30824
+ /*rustFutureFunc:*/ () => {
30825
+ return nativeModule().ubrn_uniffi_breez_sdk_spark_fn_method_sessionmanager_get_session(
30826
+ uniffiTypeSessionManagerImplObjectFactory.clonePointer(this),
30827
+ FfiConverterTypePublicKey.lower(serviceIdentityKey)
30828
+ );
30829
+ },
30830
+ /*pollFunc:*/ nativeModule()
30831
+ .ubrn_ffi_breez_sdk_spark_rust_future_poll_rust_buffer,
30832
+ /*cancelFunc:*/ nativeModule()
30833
+ .ubrn_ffi_breez_sdk_spark_rust_future_cancel_rust_buffer,
30834
+ /*completeFunc:*/ nativeModule()
30835
+ .ubrn_ffi_breez_sdk_spark_rust_future_complete_rust_buffer,
30836
+ /*freeFunc:*/ nativeModule()
30837
+ .ubrn_ffi_breez_sdk_spark_rust_future_free_rust_buffer,
30838
+ /*liftFunc:*/ FfiConverterTypeSession.lift.bind(
30839
+ FfiConverterTypeSession
30840
+ ),
30841
+ /*liftString:*/ FfiConverterString.lift,
30842
+ /*asyncOpts:*/ asyncOpts_,
30843
+ /*errorHandler:*/ FfiConverterTypeSessionManagerError.lift.bind(
30844
+ FfiConverterTypeSessionManagerError
30845
+ )
30846
+ );
30847
+ } catch (__error: any) {
30848
+ if (uniffiIsDebug && __error instanceof Error) {
30849
+ __error.stack = __stack;
30850
+ }
30851
+ throw __error;
30852
+ }
30853
+ }
30854
+
30855
+ public async setSession(
30856
+ serviceIdentityKey: PublicKey,
30857
+ session: Session,
30858
+ asyncOpts_?: { signal: AbortSignal }
30859
+ ): Promise<void> /*throws*/ {
30860
+ const __stack = uniffiIsDebug ? new Error().stack : undefined;
30861
+ try {
30862
+ return await uniffiRustCallAsync(
30863
+ /*rustCaller:*/ uniffiCaller,
30864
+ /*rustFutureFunc:*/ () => {
30865
+ return nativeModule().ubrn_uniffi_breez_sdk_spark_fn_method_sessionmanager_set_session(
30866
+ uniffiTypeSessionManagerImplObjectFactory.clonePointer(this),
30867
+ FfiConverterTypePublicKey.lower(serviceIdentityKey),
30868
+ FfiConverterTypeSession.lower(session)
30869
+ );
30870
+ },
30871
+ /*pollFunc:*/ nativeModule()
30872
+ .ubrn_ffi_breez_sdk_spark_rust_future_poll_void,
30873
+ /*cancelFunc:*/ nativeModule()
30874
+ .ubrn_ffi_breez_sdk_spark_rust_future_cancel_void,
30875
+ /*completeFunc:*/ nativeModule()
30876
+ .ubrn_ffi_breez_sdk_spark_rust_future_complete_void,
30877
+ /*freeFunc:*/ nativeModule()
30878
+ .ubrn_ffi_breez_sdk_spark_rust_future_free_void,
30879
+ /*liftFunc:*/ (_v) => {},
30880
+ /*liftString:*/ FfiConverterString.lift,
30881
+ /*asyncOpts:*/ asyncOpts_,
30882
+ /*errorHandler:*/ FfiConverterTypeSessionManagerError.lift.bind(
30883
+ FfiConverterTypeSessionManagerError
30884
+ )
30885
+ );
30886
+ } catch (__error: any) {
30887
+ if (uniffiIsDebug && __error instanceof Error) {
30888
+ __error.stack = __stack;
30889
+ }
30890
+ throw __error;
30891
+ }
30892
+ }
30893
+
30894
+ /**
30895
+ * {@inheritDoc uniffi-bindgen-react-native#UniffiAbstractObject.uniffiDestroy}
30896
+ */
30897
+ uniffiDestroy(): void {
30898
+ const ptr = (this as any)[destructorGuardSymbol];
30899
+ if (ptr !== undefined) {
30900
+ const pointer = uniffiTypeSessionManagerImplObjectFactory.pointer(this);
30901
+ uniffiTypeSessionManagerImplObjectFactory.freePointer(pointer);
30902
+ uniffiTypeSessionManagerImplObjectFactory.unbless(ptr);
30903
+ delete (this as any)[destructorGuardSymbol];
30904
+ }
30905
+ }
30906
+
30907
+ static instanceOf(obj: any): obj is SessionManagerImpl {
30908
+ return uniffiTypeSessionManagerImplObjectFactory.isConcreteType(obj);
30909
+ }
30910
+ }
30911
+
30912
+ const uniffiTypeSessionManagerImplObjectFactory: UniffiObjectFactory<SessionManager> =
30913
+ (() => {
30914
+ return {
30915
+ create(pointer: UnsafeMutableRawPointer): SessionManager {
30916
+ const instance = Object.create(SessionManagerImpl.prototype);
30917
+ instance[pointerLiteralSymbol] = pointer;
30918
+ instance[destructorGuardSymbol] = this.bless(pointer);
30919
+ instance[uniffiTypeNameSymbol] = 'SessionManagerImpl';
30920
+ return instance;
30921
+ },
30922
+
30923
+ bless(p: UnsafeMutableRawPointer): UniffiRustArcPtr {
30924
+ return uniffiCaller.rustCall(
30925
+ /*caller:*/ (status) =>
30926
+ nativeModule().ubrn_uniffi_internal_fn_method_sessionmanager_ffi__bless_pointer(
30927
+ p,
30928
+ status
30929
+ ),
30930
+ /*liftString:*/ FfiConverterString.lift
30931
+ );
30932
+ },
30933
+
30934
+ unbless(ptr: UniffiRustArcPtr) {
30935
+ ptr.markDestroyed();
30936
+ },
30937
+
30938
+ pointer(obj: SessionManager): UnsafeMutableRawPointer {
30939
+ if ((obj as any)[destructorGuardSymbol] === undefined) {
30940
+ throw new UniffiInternalError.UnexpectedNullPointer();
30941
+ }
30942
+ return (obj as any)[pointerLiteralSymbol];
30943
+ },
30944
+
30945
+ clonePointer(obj: SessionManager): UnsafeMutableRawPointer {
30946
+ const pointer = this.pointer(obj);
30947
+ return uniffiCaller.rustCall(
30948
+ /*caller:*/ (callStatus) =>
30949
+ nativeModule().ubrn_uniffi_breez_sdk_spark_fn_clone_sessionmanager(
30950
+ pointer,
30951
+ callStatus
30952
+ ),
30953
+ /*liftString:*/ FfiConverterString.lift
30954
+ );
30955
+ },
30956
+
30957
+ freePointer(pointer: UnsafeMutableRawPointer): void {
30958
+ uniffiCaller.rustCall(
30959
+ /*caller:*/ (callStatus) =>
30960
+ nativeModule().ubrn_uniffi_breez_sdk_spark_fn_free_sessionmanager(
30961
+ pointer,
30962
+ callStatus
30963
+ ),
30964
+ /*liftString:*/ FfiConverterString.lift
30965
+ );
30966
+ },
30967
+
30968
+ isConcreteType(obj: any): obj is SessionManager {
30969
+ return (
30970
+ obj[destructorGuardSymbol] &&
30971
+ obj[uniffiTypeNameSymbol] === 'SessionManagerImpl'
30972
+ );
30973
+ },
30974
+ };
30975
+ })();
30976
+ // FfiConverter for SessionManager
30977
+ const FfiConverterTypeSessionManager = new FfiConverterObjectWithCallbacks(
30978
+ uniffiTypeSessionManagerImplObjectFactory
30979
+ );
30980
+
30981
+ // Add a vtavble for the callbacks that go in SessionManager.
30982
+
30983
+ // Put the implementation in a struct so we don't pollute the top-level namespace
30984
+ const uniffiCallbackInterfaceSessionManager: {
30985
+ vtable: UniffiVTableCallbackInterfaceSessionManager;
30986
+ register: () => void;
30987
+ } = {
30988
+ // Create the VTable using a series of closures.
30989
+ // ts automatically converts these into C callback functions.
30990
+ vtable: {
30991
+ getSession: (
30992
+ uniffiHandle: bigint,
30993
+ serviceIdentityKey: Uint8Array,
30994
+ uniffiFutureCallback: UniffiForeignFutureCompleteRustBuffer,
30995
+ uniffiCallbackData: bigint
30996
+ ) => {
30997
+ const uniffiMakeCall = async (signal: AbortSignal): Promise<Session> => {
30998
+ const jsCallback = FfiConverterTypeSessionManager.lift(uniffiHandle);
30999
+ return await jsCallback.getSession(
31000
+ FfiConverterTypePublicKey.lift(serviceIdentityKey),
31001
+ { signal }
31002
+ );
31003
+ };
31004
+ const uniffiHandleSuccess = (returnValue: Session) => {
31005
+ uniffiFutureCallback.call(
31006
+ uniffiFutureCallback,
31007
+ uniffiCallbackData,
31008
+ /* UniffiForeignFutureStructRustBuffer */ {
31009
+ returnValue: FfiConverterTypeSession.lower(returnValue),
31010
+ callStatus: uniffiCaller.createCallStatus(),
31011
+ }
31012
+ );
31013
+ };
31014
+ const uniffiHandleError = (code: number, errorBuf: UniffiByteArray) => {
31015
+ uniffiFutureCallback.call(
31016
+ uniffiFutureCallback,
31017
+ uniffiCallbackData,
31018
+ /* UniffiForeignFutureStructRustBuffer */ {
31019
+ returnValue: /*empty*/ new Uint8Array(0),
31020
+ // TODO create callstatus with error.
31021
+ callStatus: uniffiCaller.createErrorStatus(code, errorBuf),
31022
+ }
31023
+ );
31024
+ };
31025
+ const uniffiForeignFuture = uniffiTraitInterfaceCallAsyncWithError(
31026
+ /*makeCall:*/ uniffiMakeCall,
31027
+ /*handleSuccess:*/ uniffiHandleSuccess,
31028
+ /*handleError:*/ uniffiHandleError,
31029
+ /*isErrorType:*/ SessionManagerError.instanceOf,
31030
+ /*lowerError:*/ FfiConverterTypeSessionManagerError.lower.bind(
31031
+ FfiConverterTypeSessionManagerError
31032
+ ),
31033
+ /*lowerString:*/ FfiConverterString.lower
31034
+ );
31035
+ return uniffiForeignFuture;
31036
+ },
31037
+ setSession: (
31038
+ uniffiHandle: bigint,
31039
+ serviceIdentityKey: Uint8Array,
31040
+ session: Uint8Array,
31041
+ uniffiFutureCallback: UniffiForeignFutureCompleteVoid,
31042
+ uniffiCallbackData: bigint
31043
+ ) => {
31044
+ const uniffiMakeCall = async (signal: AbortSignal): Promise<void> => {
31045
+ const jsCallback = FfiConverterTypeSessionManager.lift(uniffiHandle);
31046
+ return await jsCallback.setSession(
31047
+ FfiConverterTypePublicKey.lift(serviceIdentityKey),
31048
+ FfiConverterTypeSession.lift(session),
31049
+ { signal }
31050
+ );
31051
+ };
31052
+ const uniffiHandleSuccess = (returnValue: void) => {
31053
+ uniffiFutureCallback.call(
31054
+ uniffiFutureCallback,
31055
+ uniffiCallbackData,
31056
+ /* UniffiForeignFutureStructVoid */ {
31057
+ callStatus: uniffiCaller.createCallStatus(),
31058
+ }
31059
+ );
31060
+ };
31061
+ const uniffiHandleError = (code: number, errorBuf: UniffiByteArray) => {
31062
+ uniffiFutureCallback.call(
31063
+ uniffiFutureCallback,
31064
+ uniffiCallbackData,
31065
+ /* UniffiForeignFutureStructVoid */ {
31066
+ // TODO create callstatus with error.
31067
+ callStatus: uniffiCaller.createErrorStatus(code, errorBuf),
31068
+ }
31069
+ );
31070
+ };
31071
+ const uniffiForeignFuture = uniffiTraitInterfaceCallAsyncWithError(
31072
+ /*makeCall:*/ uniffiMakeCall,
31073
+ /*handleSuccess:*/ uniffiHandleSuccess,
31074
+ /*handleError:*/ uniffiHandleError,
31075
+ /*isErrorType:*/ SessionManagerError.instanceOf,
31076
+ /*lowerError:*/ FfiConverterTypeSessionManagerError.lower.bind(
31077
+ FfiConverterTypeSessionManagerError
31078
+ ),
31079
+ /*lowerString:*/ FfiConverterString.lower
31080
+ );
31081
+ return uniffiForeignFuture;
31082
+ },
31083
+ uniffiFree: (uniffiHandle: UniffiHandle): void => {
31084
+ // SessionManager: this will throw a stale handle error if the handle isn't found.
31085
+ FfiConverterTypeSessionManager.drop(uniffiHandle);
31086
+ },
31087
+ },
31088
+ register: () => {
31089
+ nativeModule().ubrn_uniffi_breez_sdk_spark_fn_init_callback_vtable_sessionmanager(
31090
+ uniffiCallbackInterfaceSessionManager.vtable
31091
+ );
31092
+ },
31093
+ };
31094
+
31095
+ /**
31096
+ * A shared HTTP transport for SSP GraphQL traffic.
31097
+ *
31098
+ * All SDK instances that are built with the same `SspConnectionManager` send
31099
+ * SSP requests over the same pooled `reqwest::Client`. This means each
31100
+ * process opens at most one TCP+TLS+HTTP/2 connection to the SSP regardless
31101
+ * of how many wallets are loaded — useful for multi-tenant servers running
31102
+ * many SDK instances.
31103
+ *
31104
+ * # Caveats
31105
+ *
31106
+ * - The user-agent of the first SDK to construct this manager is reused for
31107
+ * all subsequent instances. This is rarely a problem since SDK instances
31108
+ * in one process typically share a build version.
31109
+ * - Connections close when the last `Arc<SspConnectionManager>` is dropped.
31110
+ * `BreezSdk::disconnect` does not close them.
31111
+ */
31112
+ export interface SspConnectionManagerInterface {}
31113
+
31114
+ /**
31115
+ * A shared HTTP transport for SSP GraphQL traffic.
31116
+ *
31117
+ * All SDK instances that are built with the same `SspConnectionManager` send
31118
+ * SSP requests over the same pooled `reqwest::Client`. This means each
31119
+ * process opens at most one TCP+TLS+HTTP/2 connection to the SSP regardless
31120
+ * of how many wallets are loaded — useful for multi-tenant servers running
31121
+ * many SDK instances.
31122
+ *
31123
+ * # Caveats
31124
+ *
31125
+ * - The user-agent of the first SDK to construct this manager is reused for
31126
+ * all subsequent instances. This is rarely a problem since SDK instances
31127
+ * in one process typically share a build version.
31128
+ * - Connections close when the last `Arc<SspConnectionManager>` is dropped.
31129
+ * `BreezSdk::disconnect` does not close them.
31130
+ */
31131
+ export class SspConnectionManager
31132
+ extends UniffiAbstractObject
31133
+ implements SspConnectionManagerInterface
31134
+ {
31135
+ readonly [uniffiTypeNameSymbol] = 'SspConnectionManager';
31136
+ readonly [destructorGuardSymbol]: UniffiRustArcPtr;
31137
+ readonly [pointerLiteralSymbol]: UnsafeMutableRawPointer;
31138
+ // No primary constructor declared for this class.
31139
+ private constructor(pointer: UnsafeMutableRawPointer) {
31140
+ super();
31141
+ this[pointerLiteralSymbol] = pointer;
31142
+ this[destructorGuardSymbol] =
31143
+ uniffiTypeSspConnectionManagerObjectFactory.bless(pointer);
31144
+ }
31145
+
31146
+ /**
31147
+ * {@inheritDoc uniffi-bindgen-react-native#UniffiAbstractObject.uniffiDestroy}
31148
+ */
31149
+ uniffiDestroy(): void {
31150
+ const ptr = (this as any)[destructorGuardSymbol];
31151
+ if (ptr !== undefined) {
31152
+ const pointer = uniffiTypeSspConnectionManagerObjectFactory.pointer(this);
31153
+ uniffiTypeSspConnectionManagerObjectFactory.freePointer(pointer);
31154
+ uniffiTypeSspConnectionManagerObjectFactory.unbless(ptr);
31155
+ delete (this as any)[destructorGuardSymbol];
31156
+ }
31157
+ }
31158
+
31159
+ static instanceOf(obj: any): obj is SspConnectionManager {
31160
+ return uniffiTypeSspConnectionManagerObjectFactory.isConcreteType(obj);
31161
+ }
31162
+ }
31163
+
31164
+ const uniffiTypeSspConnectionManagerObjectFactory: UniffiObjectFactory<SspConnectionManagerInterface> =
31165
+ (() => {
31166
+ return {
31167
+ create(pointer: UnsafeMutableRawPointer): SspConnectionManagerInterface {
31168
+ const instance = Object.create(SspConnectionManager.prototype);
31169
+ instance[pointerLiteralSymbol] = pointer;
31170
+ instance[destructorGuardSymbol] = this.bless(pointer);
31171
+ instance[uniffiTypeNameSymbol] = 'SspConnectionManager';
31172
+ return instance;
31173
+ },
31174
+
31175
+ bless(p: UnsafeMutableRawPointer): UniffiRustArcPtr {
31176
+ return uniffiCaller.rustCall(
31177
+ /*caller:*/ (status) =>
31178
+ nativeModule().ubrn_uniffi_internal_fn_method_sspconnectionmanager_ffi__bless_pointer(
31179
+ p,
31180
+ status
31181
+ ),
31182
+ /*liftString:*/ FfiConverterString.lift
31183
+ );
31184
+ },
31185
+
31186
+ unbless(ptr: UniffiRustArcPtr) {
31187
+ ptr.markDestroyed();
31188
+ },
31189
+
31190
+ pointer(obj: SspConnectionManagerInterface): UnsafeMutableRawPointer {
31191
+ if ((obj as any)[destructorGuardSymbol] === undefined) {
31192
+ throw new UniffiInternalError.UnexpectedNullPointer();
31193
+ }
31194
+ return (obj as any)[pointerLiteralSymbol];
31195
+ },
31196
+
31197
+ clonePointer(
31198
+ obj: SspConnectionManagerInterface
31199
+ ): UnsafeMutableRawPointer {
31200
+ const pointer = this.pointer(obj);
31201
+ return uniffiCaller.rustCall(
31202
+ /*caller:*/ (callStatus) =>
31203
+ nativeModule().ubrn_uniffi_breez_sdk_spark_fn_clone_sspconnectionmanager(
31204
+ pointer,
31205
+ callStatus
31206
+ ),
31207
+ /*liftString:*/ FfiConverterString.lift
31208
+ );
31209
+ },
31210
+
31211
+ freePointer(pointer: UnsafeMutableRawPointer): void {
31212
+ uniffiCaller.rustCall(
31213
+ /*caller:*/ (callStatus) =>
31214
+ nativeModule().ubrn_uniffi_breez_sdk_spark_fn_free_sspconnectionmanager(
31215
+ pointer,
31216
+ callStatus
31217
+ ),
31218
+ /*liftString:*/ FfiConverterString.lift
31219
+ );
31220
+ },
31221
+
31222
+ isConcreteType(obj: any): obj is SspConnectionManagerInterface {
31223
+ return (
31224
+ obj[destructorGuardSymbol] &&
31225
+ obj[uniffiTypeNameSymbol] === 'SspConnectionManager'
31226
+ );
31227
+ },
31228
+ };
31229
+ })();
31230
+ // FfiConverter for SspConnectionManagerInterface
31231
+ const FfiConverterTypeSspConnectionManager = new FfiConverterObject(
31232
+ uniffiTypeSspConnectionManagerObjectFactory
31233
+ );
31234
+
30213
31235
  /**
30214
31236
  * Trait for persistent storage
30215
31237
  */
@@ -34065,6 +35087,30 @@ function uniffiEnsureInitialized() {
34065
35087
  'uniffi_breez_sdk_spark_checksum_func_init_logging'
34066
35088
  );
34067
35089
  }
35090
+ if (
35091
+ nativeModule().ubrn_uniffi_breez_sdk_spark_checksum_func_new_connection_manager() !==
35092
+ 25164
35093
+ ) {
35094
+ throw new UniffiInternalError.ApiChecksumMismatch(
35095
+ 'uniffi_breez_sdk_spark_checksum_func_new_connection_manager'
35096
+ );
35097
+ }
35098
+ if (
35099
+ nativeModule().ubrn_uniffi_breez_sdk_spark_checksum_func_new_rest_chain_service() !==
35100
+ 62980
35101
+ ) {
35102
+ throw new UniffiInternalError.ApiChecksumMismatch(
35103
+ 'uniffi_breez_sdk_spark_checksum_func_new_rest_chain_service'
35104
+ );
35105
+ }
35106
+ if (
35107
+ nativeModule().ubrn_uniffi_breez_sdk_spark_checksum_func_new_ssp_connection_manager() !==
35108
+ 15222
35109
+ ) {
35110
+ throw new UniffiInternalError.ApiChecksumMismatch(
35111
+ 'uniffi_breez_sdk_spark_checksum_func_new_ssp_connection_manager'
35112
+ );
35113
+ }
34068
35114
  if (
34069
35115
  nativeModule().ubrn_uniffi_breez_sdk_spark_checksum_method_bitcoinchainservice_get_address_utxos() !==
34070
35116
  20959
@@ -34729,6 +35775,14 @@ function uniffiEnsureInitialized() {
34729
35775
  'uniffi_breez_sdk_spark_checksum_method_sdkbuilder_with_chain_service'
34730
35776
  );
34731
35777
  }
35778
+ if (
35779
+ nativeModule().ubrn_uniffi_breez_sdk_spark_checksum_method_sdkbuilder_with_connection_manager() !==
35780
+ 51797
35781
+ ) {
35782
+ throw new UniffiInternalError.ApiChecksumMismatch(
35783
+ 'uniffi_breez_sdk_spark_checksum_method_sdkbuilder_with_connection_manager'
35784
+ );
35785
+ }
34732
35786
  if (
34733
35787
  nativeModule().ubrn_uniffi_breez_sdk_spark_checksum_method_sdkbuilder_with_default_storage() !==
34734
35788
  14543
@@ -34777,6 +35831,22 @@ function uniffiEnsureInitialized() {
34777
35831
  'uniffi_breez_sdk_spark_checksum_method_sdkbuilder_with_rest_chain_service'
34778
35832
  );
34779
35833
  }
35834
+ if (
35835
+ nativeModule().ubrn_uniffi_breez_sdk_spark_checksum_method_sdkbuilder_with_session_manager() !==
35836
+ 64189
35837
+ ) {
35838
+ throw new UniffiInternalError.ApiChecksumMismatch(
35839
+ 'uniffi_breez_sdk_spark_checksum_method_sdkbuilder_with_session_manager'
35840
+ );
35841
+ }
35842
+ if (
35843
+ nativeModule().ubrn_uniffi_breez_sdk_spark_checksum_method_sdkbuilder_with_ssp_connection_manager() !==
35844
+ 65505
35845
+ ) {
35846
+ throw new UniffiInternalError.ApiChecksumMismatch(
35847
+ 'uniffi_breez_sdk_spark_checksum_method_sdkbuilder_with_ssp_connection_manager'
35848
+ );
35849
+ }
34780
35850
  if (
34781
35851
  nativeModule().ubrn_uniffi_breez_sdk_spark_checksum_method_sdkbuilder_with_storage() !==
34782
35852
  59400
@@ -34785,6 +35855,22 @@ function uniffiEnsureInitialized() {
34785
35855
  'uniffi_breez_sdk_spark_checksum_method_sdkbuilder_with_storage'
34786
35856
  );
34787
35857
  }
35858
+ if (
35859
+ nativeModule().ubrn_uniffi_breez_sdk_spark_checksum_method_sessionmanager_get_session() !==
35860
+ 64481
35861
+ ) {
35862
+ throw new UniffiInternalError.ApiChecksumMismatch(
35863
+ 'uniffi_breez_sdk_spark_checksum_method_sessionmanager_get_session'
35864
+ );
35865
+ }
35866
+ if (
35867
+ nativeModule().ubrn_uniffi_breez_sdk_spark_checksum_method_sessionmanager_set_session() !==
35868
+ 55262
35869
+ ) {
35870
+ throw new UniffiInternalError.ApiChecksumMismatch(
35871
+ 'uniffi_breez_sdk_spark_checksum_method_sessionmanager_set_session'
35872
+ );
35873
+ }
34788
35874
  if (
34789
35875
  nativeModule().ubrn_uniffi_breez_sdk_spark_checksum_method_storage_delete_cached_item() !==
34790
35876
  6883
@@ -35098,6 +36184,7 @@ function uniffiEnsureInitialized() {
35098
36184
  uniffiCallbackInterfacePasskeyPrfProvider.register();
35099
36185
  uniffiCallbackInterfacePaymentObserver.register();
35100
36186
  uniffiCallbackInterfaceRestClient.register();
36187
+ uniffiCallbackInterfaceSessionManager.register();
35101
36188
  uniffiCallbackInterfaceStorage.register();
35102
36189
  }
35103
36190
 
@@ -35142,6 +36229,7 @@ export default Object.freeze({
35142
36229
  FfiConverterTypeConfig,
35143
36230
  FfiConverterTypeConnectRequest,
35144
36231
  FfiConverterTypeConnectWithSignerRequest,
36232
+ FfiConverterTypeConnectionManager,
35145
36233
  FfiConverterTypeContact,
35146
36234
  FfiConverterTypeConversionDetails,
35147
36235
  FfiConverterTypeConversionEstimate,
@@ -35251,6 +36339,7 @@ export default Object.freeze({
35251
36339
  FfiConverterTypePrepareSendPaymentResponse,
35252
36340
  FfiConverterTypeProvisionalPayment,
35253
36341
  FfiConverterTypeProvisionalPaymentDetails,
36342
+ FfiConverterTypePublicKey,
35254
36343
  FfiConverterTypePublicKeyBytes,
35255
36344
  FfiConverterTypeRate,
35256
36345
  FfiConverterTypeReceivePaymentMethod,
@@ -35282,6 +36371,9 @@ export default Object.freeze({
35282
36371
  FfiConverterTypeSendPaymentResponse,
35283
36372
  FfiConverterTypeServiceConnectivityError,
35284
36373
  FfiConverterTypeServiceStatus,
36374
+ FfiConverterTypeSession,
36375
+ FfiConverterTypeSessionManager,
36376
+ FfiConverterTypeSessionManagerError,
35285
36377
  FfiConverterTypeSetLnurlMetadataItem,
35286
36378
  FfiConverterTypeSignMessageRequest,
35287
36379
  FfiConverterTypeSignMessageResponse,
@@ -35297,6 +36389,7 @@ export default Object.freeze({
35297
36389
  FfiConverterTypeSparkSigningOperator,
35298
36390
  FfiConverterTypeSparkSspConfig,
35299
36391
  FfiConverterTypeSparkStatus,
36392
+ FfiConverterTypeSspConnectionManager,
35300
36393
  FfiConverterTypeStableBalanceActiveLabel,
35301
36394
  FfiConverterTypeStableBalanceConfig,
35302
36395
  FfiConverterTypeStableBalanceToken,