@breeztech/breez-sdk-spark-react-native 0.23.1 → 0.24.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.
@@ -538,15 +538,18 @@ export function defaultStorage(storageDir: string): StorageBackend {
538
538
  * This function queries the Spark status API and returns the worst status
539
539
  * across the Spark Operators and SSP services.
540
540
  */
541
- export async function getSparkStatus(asyncOpts_?: {
542
- signal: AbortSignal;
543
- }): Promise<SparkStatus> /*throws*/ {
541
+ export async function getSparkStatus(
542
+ request: GetSparkStatusRequest,
543
+ asyncOpts_?: { signal: AbortSignal }
544
+ ): Promise<SparkStatus> /*throws*/ {
544
545
  const __stack = uniffiIsDebug ? new Error().stack : undefined;
545
546
  try {
546
547
  return await uniffiRustCallAsync(
547
548
  /*rustCaller:*/ uniffiCaller,
548
549
  /*rustFutureFunc:*/ () => {
549
- return nativeModule().ubrn_uniffi_breez_sdk_spark_fn_func_get_spark_status();
550
+ return nativeModule().ubrn_uniffi_breez_sdk_spark_fn_func_get_spark_status(
551
+ FfiConverterTypeGetSparkStatusRequest.lower(request)
552
+ );
550
553
  },
551
554
  /*pollFunc:*/ nativeModule()
552
555
  .ubrn_ffi_breez_sdk_spark_rust_future_poll_rust_buffer,
@@ -599,15 +602,17 @@ export function initLogging(
599
602
  * SDK instances. All SDKs sharing the service must use the same `network`.
600
603
  *
601
604
  * For one-off, non-shared use, prefer
602
- * [`SdkBuilder::with_rest_chain_service`](crate::SdkBuilder::with_rest_chain_service).
605
+ * [`SdkBuilder::with_rest_chain_service`](crate::SdkBuilder::with_rest_chain_service),
606
+ * which builds on the SDK's own client and inherits its proxy automatically.
603
607
  */
604
608
  export async function newRestChainService(
605
609
  url: string,
606
610
  network: Network,
607
611
  apiType: ChainApiType,
608
612
  credentials: Credentials | undefined,
613
+ request: NewRestChainServiceRequest,
609
614
  asyncOpts_?: { signal: AbortSignal }
610
- ): Promise<BitcoinChainService> {
615
+ ): Promise<BitcoinChainService> /*throws*/ {
611
616
  const __stack = uniffiIsDebug ? new Error().stack : undefined;
612
617
  try {
613
618
  return await uniffiRustCallAsync(
@@ -617,7 +622,8 @@ export async function newRestChainService(
617
622
  FfiConverterString.lower(url),
618
623
  FfiConverterTypeNetwork.lower(network),
619
624
  FfiConverterTypeChainApiType.lower(apiType),
620
- FfiConverterOptionalTypeCredentials.lower(credentials)
625
+ FfiConverterOptionalTypeCredentials.lower(credentials),
626
+ FfiConverterTypeNewRestChainServiceRequest.lower(request)
621
627
  );
622
628
  },
623
629
  /*pollFunc:*/ nativeModule()
@@ -632,7 +638,10 @@ export async function newRestChainService(
632
638
  FfiConverterTypeBitcoinChainService
633
639
  ),
634
640
  /*liftString:*/ FfiConverterString.lift,
635
- /*asyncOpts:*/ asyncOpts_
641
+ /*asyncOpts:*/ asyncOpts_,
642
+ /*errorHandler:*/ FfiConverterTypeSdkError.lift.bind(
643
+ FfiConverterTypeSdkError
644
+ )
636
645
  );
637
646
  } catch (__error: any) {
638
647
  if (uniffiIsDebug && __error instanceof Error) {
@@ -2584,24 +2593,114 @@ const FfiConverterTypeCheckMessageResponse = (() => {
2584
2593
  return new FFIConverter();
2585
2594
  })();
2586
2595
 
2596
+ /**
2597
+ * What one way of claiming a deposit costs.
2598
+ */
2599
+ export type ClaimDepositQuote = {
2600
+ /**
2601
+ * The depth this becomes claimable at, as a total confirmation count on the
2602
+ * deposit tx and not a number still to wait. A deposit already at or past
2603
+ * this depth can be claimed.
2604
+ */
2605
+ confirmationsRequired: /*u32*/ number;
2606
+ /**
2607
+ * What reaches the balance.
2608
+ */
2609
+ creditAmountSats: /*u64*/ bigint;
2610
+ /**
2611
+ * The deposit value less the credit.
2612
+ */
2613
+ feeSats: /*u64*/ bigint;
2614
+ /**
2615
+ * `fee_sats` as a fee rate over the claim transaction, so it is comparable
2616
+ * with a max fee expressed as a rate.
2617
+ */
2618
+ feeRateSatPerVbyte: /*u64*/ bigint;
2619
+ /**
2620
+ * The provider would not quote this yet, so the fee is derived from current
2621
+ * on-chain fees and the real one may differ.
2622
+ */
2623
+ isEstimate: boolean;
2624
+ };
2625
+
2626
+ /**
2627
+ * Generated factory for {@link ClaimDepositQuote} record objects.
2628
+ */
2629
+ export const ClaimDepositQuote = (() => {
2630
+ const defaults = () => ({});
2631
+ const create = (() => {
2632
+ return uniffiCreateRecord<ClaimDepositQuote, ReturnType<typeof defaults>>(
2633
+ defaults
2634
+ );
2635
+ })();
2636
+ return Object.freeze({
2637
+ /**
2638
+ * Create a frozen instance of {@link ClaimDepositQuote}, with defaults specified
2639
+ * in Rust, in the {@link breez_sdk_spark} crate.
2640
+ */
2641
+ create,
2642
+
2643
+ /**
2644
+ * Create a frozen instance of {@link ClaimDepositQuote}, with defaults specified
2645
+ * in Rust, in the {@link breez_sdk_spark} crate.
2646
+ */
2647
+ new: create,
2648
+
2649
+ /**
2650
+ * Defaults specified in the {@link breez_sdk_spark} crate.
2651
+ */
2652
+ defaults: () => Object.freeze(defaults()) as Partial<ClaimDepositQuote>,
2653
+ });
2654
+ })();
2655
+
2656
+ const FfiConverterTypeClaimDepositQuote = (() => {
2657
+ type TypeName = ClaimDepositQuote;
2658
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
2659
+ read(from: RustBuffer): TypeName {
2660
+ return {
2661
+ confirmationsRequired: FfiConverterUInt32.read(from),
2662
+ creditAmountSats: FfiConverterUInt64.read(from),
2663
+ feeSats: FfiConverterUInt64.read(from),
2664
+ feeRateSatPerVbyte: FfiConverterUInt64.read(from),
2665
+ isEstimate: FfiConverterBool.read(from),
2666
+ };
2667
+ }
2668
+ write(value: TypeName, into: RustBuffer): void {
2669
+ FfiConverterUInt32.write(value.confirmationsRequired, into);
2670
+ FfiConverterUInt64.write(value.creditAmountSats, into);
2671
+ FfiConverterUInt64.write(value.feeSats, into);
2672
+ FfiConverterUInt64.write(value.feeRateSatPerVbyte, into);
2673
+ FfiConverterBool.write(value.isEstimate, into);
2674
+ }
2675
+ allocationSize(value: TypeName): number {
2676
+ return (
2677
+ FfiConverterUInt32.allocationSize(value.confirmationsRequired) +
2678
+ FfiConverterUInt64.allocationSize(value.creditAmountSats) +
2679
+ FfiConverterUInt64.allocationSize(value.feeSats) +
2680
+ FfiConverterUInt64.allocationSize(value.feeRateSatPerVbyte) +
2681
+ FfiConverterBool.allocationSize(value.isEstimate)
2682
+ );
2683
+ }
2684
+ }
2685
+ return new FFIConverter();
2686
+ })();
2687
+
2587
2688
  export type ClaimDepositRequest = {
2588
2689
  txid: string;
2589
2690
  vout: /*u32*/ number;
2590
- maxFee: MaxFee | undefined;
2591
2691
  /**
2592
- * Set to request an instant (0-conf) claim instead of waiting for the
2593
- * deposit to mature, bounding the SSP spread at this many basis points of
2594
- * the deposit value (100 bps = 1%). When set, the call takes the instant
2595
- * path and `max_fee` is ignored.
2692
+ * Caps what the claim may cost. A deposit that has not matured is claimed
2693
+ * instantly when the provider's spread fits within this, so the same ceiling
2694
+ * governs both. Falls back to the configured max deposit claim fee.
2596
2695
  */
2597
- maxInstantFeeBps: /*u32*/ number | undefined;
2696
+ maxFee: MaxFee | undefined;
2598
2697
  };
2599
2698
 
2600
2699
  /**
2601
2700
  * Generated factory for {@link ClaimDepositRequest} record objects.
2602
2701
  */
2603
2702
  export const ClaimDepositRequest = (() => {
2604
- const defaults = () => ({ maxFee: undefined, maxInstantFeeBps: undefined });
2703
+ const defaults = () => ({ maxFee: undefined });
2605
2704
  const create = (() => {
2606
2705
  return uniffiCreateRecord<ClaimDepositRequest, ReturnType<typeof defaults>>(
2607
2706
  defaults
@@ -2635,21 +2734,18 @@ const FfiConverterTypeClaimDepositRequest = (() => {
2635
2734
  txid: FfiConverterString.read(from),
2636
2735
  vout: FfiConverterUInt32.read(from),
2637
2736
  maxFee: FfiConverterOptionalTypeMaxFee.read(from),
2638
- maxInstantFeeBps: FfiConverterOptionalUInt32.read(from),
2639
2737
  };
2640
2738
  }
2641
2739
  write(value: TypeName, into: RustBuffer): void {
2642
2740
  FfiConverterString.write(value.txid, into);
2643
2741
  FfiConverterUInt32.write(value.vout, into);
2644
2742
  FfiConverterOptionalTypeMaxFee.write(value.maxFee, into);
2645
- FfiConverterOptionalUInt32.write(value.maxInstantFeeBps, into);
2646
2743
  }
2647
2744
  allocationSize(value: TypeName): number {
2648
2745
  return (
2649
2746
  FfiConverterString.allocationSize(value.txid) +
2650
2747
  FfiConverterUInt32.allocationSize(value.vout) +
2651
- FfiConverterOptionalTypeMaxFee.allocationSize(value.maxFee) +
2652
- FfiConverterOptionalUInt32.allocationSize(value.maxInstantFeeBps)
2748
+ FfiConverterOptionalTypeMaxFee.allocationSize(value.maxFee)
2653
2749
  );
2654
2750
  }
2655
2751
  }
@@ -2658,9 +2754,12 @@ const FfiConverterTypeClaimDepositRequest = (() => {
2658
2754
 
2659
2755
  export type ClaimDepositResponse = {
2660
2756
  /**
2661
- * The settled claim payment. Present for a standard claim, which completes
2662
- * synchronously. Absent for an instant claim, whose transfer settles
2663
- * asynchronously: watch for the payment via events or `list_payments`.
2757
+ * The settled claim payment, present when the deposit was claimed at maturity,
2758
+ * which completes synchronously. Absent when it was claimed before maturity,
2759
+ * whose transfer settles asynchronously: watch for the payment via events or
2760
+ * `list_payments`. Which of the two happens follows from the deposit's maturity
2761
+ * and the fee ceiling, not from anything the caller asks for, so treat the
2762
+ * payment as optional on every claim.
2664
2763
  */
2665
2764
  payment: Payment | undefined;
2666
2765
  };
@@ -2898,14 +2997,13 @@ export type Config = {
2898
2997
  apiKey: string | undefined;
2899
2998
  network: Network;
2900
2999
  syncIntervalSecs: /*u32*/ number;
2901
- maxDepositClaimFee: MaxFee | undefined;
2902
3000
  /**
2903
- * Maximum instant (0-conf) static deposit claim fee, as basis points of the
2904
- * deposit value (100 bps = 1%), capping the SSP spread for the instant
2905
- * credit. Opt-in: while unset, no 0-conf claim is attempted. Small deposits,
2906
- * whose spread is proportionally larger, fall through to the normal claim.
3001
+ * The maximum fee that can be paid to claim an on-chain deposit. It also caps
3002
+ * the provider's spread for crediting a deposit before it matures, so raising
3003
+ * it is what allows deposits to be claimed early. Unset disables claiming
3004
+ * rather than allowing any fee.
2907
3005
  */
2908
- maxInstantDepositClaimFeeBps: /*u32*/ number | undefined;
3006
+ maxDepositClaimFee: MaxFee | undefined;
2909
3007
  /**
2910
3008
  * The domain used for receiving through lnurl-pay and lightning address.
2911
3009
  */
@@ -3026,6 +3124,17 @@ export type Config = {
3026
3124
  * `default_server_config` already sets these compatible values.
3027
3125
  */
3028
3126
  backgroundTasksEnabled: boolean;
3127
+ /**
3128
+ * Routes the connections the SDK opens through a SOCKS5 proxy.
3129
+ *
3130
+ * Covers HTTP and gRPC alike, and resolves hostnames at the proxy so no
3131
+ * DNS query leaks the destination. `None` (default) connects directly.
3132
+ *
3133
+ * When an [`SdkContext`](crate::SdkContext) is supplied to the builder,
3134
+ * its proxy must match this one: the context owns the shared clients, so
3135
+ * a disagreement would mean part of the traffic bypassed the proxy.
3136
+ */
3137
+ proxy: ProxyConfig | undefined;
3029
3138
  /**
3030
3139
  * Configuration for cross-chain sends via Orchestra and Boltz.
3031
3140
  *
@@ -3075,7 +3184,6 @@ const FfiConverterTypeConfig = (() => {
3075
3184
  network: FfiConverterTypeNetwork.read(from),
3076
3185
  syncIntervalSecs: FfiConverterUInt32.read(from),
3077
3186
  maxDepositClaimFee: FfiConverterOptionalTypeMaxFee.read(from),
3078
- maxInstantDepositClaimFeeBps: FfiConverterOptionalUInt32.read(from),
3079
3187
  lnurlDomain: FfiConverterOptionalString.read(from),
3080
3188
  preferSparkOverLightning: FfiConverterBool.read(from),
3081
3189
  exitChainAutoFetchEnabled: FfiConverterBool.read(from),
@@ -3093,6 +3201,7 @@ const FfiConverterTypeConfig = (() => {
3093
3201
  maxConcurrentClaims: FfiConverterUInt32.read(from),
3094
3202
  sparkConfig: FfiConverterOptionalTypeSparkConfig.read(from),
3095
3203
  backgroundTasksEnabled: FfiConverterBool.read(from),
3204
+ proxy: FfiConverterOptionalTypeProxyConfig.read(from),
3096
3205
  crossChainConfig: FfiConverterOptionalTypeCrossChainConfig.read(from),
3097
3206
  };
3098
3207
  }
@@ -3101,10 +3210,6 @@ const FfiConverterTypeConfig = (() => {
3101
3210
  FfiConverterTypeNetwork.write(value.network, into);
3102
3211
  FfiConverterUInt32.write(value.syncIntervalSecs, into);
3103
3212
  FfiConverterOptionalTypeMaxFee.write(value.maxDepositClaimFee, into);
3104
- FfiConverterOptionalUInt32.write(
3105
- value.maxInstantDepositClaimFeeBps,
3106
- into
3107
- );
3108
3213
  FfiConverterOptionalString.write(value.lnurlDomain, into);
3109
3214
  FfiConverterBool.write(value.preferSparkOverLightning, into);
3110
3215
  FfiConverterBool.write(value.exitChainAutoFetchEnabled, into);
@@ -3130,6 +3235,7 @@ const FfiConverterTypeConfig = (() => {
3130
3235
  FfiConverterUInt32.write(value.maxConcurrentClaims, into);
3131
3236
  FfiConverterOptionalTypeSparkConfig.write(value.sparkConfig, into);
3132
3237
  FfiConverterBool.write(value.backgroundTasksEnabled, into);
3238
+ FfiConverterOptionalTypeProxyConfig.write(value.proxy, into);
3133
3239
  FfiConverterOptionalTypeCrossChainConfig.write(
3134
3240
  value.crossChainConfig,
3135
3241
  into
@@ -3143,9 +3249,6 @@ const FfiConverterTypeConfig = (() => {
3143
3249
  FfiConverterOptionalTypeMaxFee.allocationSize(
3144
3250
  value.maxDepositClaimFee
3145
3251
  ) +
3146
- FfiConverterOptionalUInt32.allocationSize(
3147
- value.maxInstantDepositClaimFeeBps
3148
- ) +
3149
3252
  FfiConverterOptionalString.allocationSize(value.lnurlDomain) +
3150
3253
  FfiConverterBool.allocationSize(value.preferSparkOverLightning) +
3151
3254
  FfiConverterBool.allocationSize(value.exitChainAutoFetchEnabled) +
@@ -3167,6 +3270,7 @@ const FfiConverterTypeConfig = (() => {
3167
3270
  FfiConverterUInt32.allocationSize(value.maxConcurrentClaims) +
3168
3271
  FfiConverterOptionalTypeSparkConfig.allocationSize(value.sparkConfig) +
3169
3272
  FfiConverterBool.allocationSize(value.backgroundTasksEnabled) +
3273
+ FfiConverterOptionalTypeProxyConfig.allocationSize(value.proxy) +
3170
3274
  FfiConverterOptionalTypeCrossChainConfig.allocationSize(
3171
3275
  value.crossChainConfig
3172
3276
  )
@@ -4759,6 +4863,11 @@ export type DepositInfo = {
4759
4863
  * Transaction id of the refund, once one has been created.
4760
4864
  */
4761
4865
  refundTxId: string | undefined;
4866
+ /**
4867
+ * How far the refund has got towards the network. Unset when no refund has
4868
+ * been created, and on refunds created before this field existed.
4869
+ */
4870
+ refundState: RefundState | undefined;
4762
4871
  /**
4763
4872
  * Why the last claim attempt failed. Unset while none has failed.
4764
4873
  */
@@ -4810,6 +4919,7 @@ const FfiConverterTypeDepositInfo = (() => {
4810
4919
  isMature: FfiConverterBool.read(from),
4811
4920
  refundTx: FfiConverterOptionalString.read(from),
4812
4921
  refundTxId: FfiConverterOptionalString.read(from),
4922
+ refundState: FfiConverterOptionalTypeRefundState.read(from),
4813
4923
  claimError: FfiConverterOptionalTypeDepositClaimError.read(from),
4814
4924
  instantClaimStatus:
4815
4925
  FfiConverterOptionalTypeInstantClaimStatus.read(from),
@@ -4822,6 +4932,7 @@ const FfiConverterTypeDepositInfo = (() => {
4822
4932
  FfiConverterBool.write(value.isMature, into);
4823
4933
  FfiConverterOptionalString.write(value.refundTx, into);
4824
4934
  FfiConverterOptionalString.write(value.refundTxId, into);
4935
+ FfiConverterOptionalTypeRefundState.write(value.refundState, into);
4825
4936
  FfiConverterOptionalTypeDepositClaimError.write(value.claimError, into);
4826
4937
  FfiConverterOptionalTypeInstantClaimStatus.write(
4827
4938
  value.instantClaimStatus,
@@ -4836,6 +4947,7 @@ const FfiConverterTypeDepositInfo = (() => {
4836
4947
  FfiConverterBool.allocationSize(value.isMature) +
4837
4948
  FfiConverterOptionalString.allocationSize(value.refundTx) +
4838
4949
  FfiConverterOptionalString.allocationSize(value.refundTxId) +
4950
+ FfiConverterOptionalTypeRefundState.allocationSize(value.refundState) +
4839
4951
  FfiConverterOptionalTypeDepositClaimError.allocationSize(
4840
4952
  value.claimError
4841
4953
  ) +
@@ -7385,6 +7497,157 @@ const FfiConverterTypeExternalTreeNodeId = (() => {
7385
7497
  return new FFIConverter();
7386
7498
  })();
7387
7499
 
7500
+ export type FetchClaimDepositQuoteRequest = {
7501
+ txid: string;
7502
+ vout: /*u32*/ number;
7503
+ };
7504
+
7505
+ /**
7506
+ * Generated factory for {@link FetchClaimDepositQuoteRequest} record objects.
7507
+ */
7508
+ export const FetchClaimDepositQuoteRequest = (() => {
7509
+ const defaults = () => ({});
7510
+ const create = (() => {
7511
+ return uniffiCreateRecord<
7512
+ FetchClaimDepositQuoteRequest,
7513
+ ReturnType<typeof defaults>
7514
+ >(defaults);
7515
+ })();
7516
+ return Object.freeze({
7517
+ /**
7518
+ * Create a frozen instance of {@link FetchClaimDepositQuoteRequest}, with defaults specified
7519
+ * in Rust, in the {@link breez_sdk_spark} crate.
7520
+ */
7521
+ create,
7522
+
7523
+ /**
7524
+ * Create a frozen instance of {@link FetchClaimDepositQuoteRequest}, with defaults specified
7525
+ * in Rust, in the {@link breez_sdk_spark} crate.
7526
+ */
7527
+ new: create,
7528
+
7529
+ /**
7530
+ * Defaults specified in the {@link breez_sdk_spark} crate.
7531
+ */
7532
+ defaults: () =>
7533
+ Object.freeze(defaults()) as Partial<FetchClaimDepositQuoteRequest>,
7534
+ });
7535
+ })();
7536
+
7537
+ const FfiConverterTypeFetchClaimDepositQuoteRequest = (() => {
7538
+ type TypeName = FetchClaimDepositQuoteRequest;
7539
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
7540
+ read(from: RustBuffer): TypeName {
7541
+ return {
7542
+ txid: FfiConverterString.read(from),
7543
+ vout: FfiConverterUInt32.read(from),
7544
+ };
7545
+ }
7546
+ write(value: TypeName, into: RustBuffer): void {
7547
+ FfiConverterString.write(value.txid, into);
7548
+ FfiConverterUInt32.write(value.vout, into);
7549
+ }
7550
+ allocationSize(value: TypeName): number {
7551
+ return (
7552
+ FfiConverterString.allocationSize(value.txid) +
7553
+ FfiConverterUInt32.allocationSize(value.vout)
7554
+ );
7555
+ }
7556
+ }
7557
+ return new FFIConverter();
7558
+ })();
7559
+
7560
+ export type FetchClaimDepositQuoteResponse = {
7561
+ amountSats: /*u64*/ bigint;
7562
+ /**
7563
+ * Confirmations the deposit has now, 0 while unconfirmed.
7564
+ */
7565
+ confirmations: /*u32*/ number;
7566
+ /**
7567
+ * Claiming ahead of maturity, for a spread. Absent when the provider offers
7568
+ * no such option for this deposit, and when claiming early would not actually
7569
+ * be earlier: a deposit that has already matured, or a plan crediting no
7570
+ * sooner than maturity would, is only ever the more expensive way to wait.
7571
+ *
7572
+ * Also absent when the provider could not be reached for a quote, which is not
7573
+ * distinguished here from having nothing to offer: both mean there is no early
7574
+ * claim to show right now, and the one worth retrying is the transient one.
7575
+ *
7576
+ * Priced regardless of the configured maximum claim fee, which is usually far
7577
+ * below a spread. It is quoted so it can be offered, so claiming it needs a max
7578
+ * fee of at least its `fee_sats`. Below that the claim fails with
7579
+ * `MaxDepositClaimFeeExceeded` and the deposit waits for maturity.
7580
+ */
7581
+ instant: ClaimDepositQuote | undefined;
7582
+ /**
7583
+ * Claiming once the deposit matures.
7584
+ */
7585
+ mature: ClaimDepositQuote;
7586
+ };
7587
+
7588
+ /**
7589
+ * Generated factory for {@link FetchClaimDepositQuoteResponse} record objects.
7590
+ */
7591
+ export const FetchClaimDepositQuoteResponse = (() => {
7592
+ const defaults = () => ({});
7593
+ const create = (() => {
7594
+ return uniffiCreateRecord<
7595
+ FetchClaimDepositQuoteResponse,
7596
+ ReturnType<typeof defaults>
7597
+ >(defaults);
7598
+ })();
7599
+ return Object.freeze({
7600
+ /**
7601
+ * Create a frozen instance of {@link FetchClaimDepositQuoteResponse}, with defaults specified
7602
+ * in Rust, in the {@link breez_sdk_spark} crate.
7603
+ */
7604
+ create,
7605
+
7606
+ /**
7607
+ * Create a frozen instance of {@link FetchClaimDepositQuoteResponse}, with defaults specified
7608
+ * in Rust, in the {@link breez_sdk_spark} crate.
7609
+ */
7610
+ new: create,
7611
+
7612
+ /**
7613
+ * Defaults specified in the {@link breez_sdk_spark} crate.
7614
+ */
7615
+ defaults: () =>
7616
+ Object.freeze(defaults()) as Partial<FetchClaimDepositQuoteResponse>,
7617
+ });
7618
+ })();
7619
+
7620
+ const FfiConverterTypeFetchClaimDepositQuoteResponse = (() => {
7621
+ type TypeName = FetchClaimDepositQuoteResponse;
7622
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
7623
+ read(from: RustBuffer): TypeName {
7624
+ return {
7625
+ amountSats: FfiConverterUInt64.read(from),
7626
+ confirmations: FfiConverterUInt32.read(from),
7627
+ instant: FfiConverterOptionalTypeClaimDepositQuote.read(from),
7628
+ mature: FfiConverterTypeClaimDepositQuote.read(from),
7629
+ };
7630
+ }
7631
+ write(value: TypeName, into: RustBuffer): void {
7632
+ FfiConverterUInt64.write(value.amountSats, into);
7633
+ FfiConverterUInt32.write(value.confirmations, into);
7634
+ FfiConverterOptionalTypeClaimDepositQuote.write(value.instant, into);
7635
+ FfiConverterTypeClaimDepositQuote.write(value.mature, into);
7636
+ }
7637
+ allocationSize(value: TypeName): number {
7638
+ return (
7639
+ FfiConverterUInt64.allocationSize(value.amountSats) +
7640
+ FfiConverterUInt32.allocationSize(value.confirmations) +
7641
+ FfiConverterOptionalTypeClaimDepositQuote.allocationSize(
7642
+ value.instant
7643
+ ) +
7644
+ FfiConverterTypeClaimDepositQuote.allocationSize(value.mature)
7645
+ );
7646
+ }
7647
+ }
7648
+ return new FFIConverter();
7649
+ })();
7650
+
7388
7651
  export type FetchConversionLimitsRequest = {
7389
7652
  /**
7390
7653
  * The type of conversion, either from or to Bitcoin.
@@ -7937,6 +8200,67 @@ const FfiConverterTypeGetPaymentResponse = (() => {
7937
8200
  return new FFIConverter();
7938
8201
  })();
7939
8202
 
8203
+ /**
8204
+ * Options for [`get_spark_status`].
8205
+ */
8206
+ export type GetSparkStatusRequest = {
8207
+ /**
8208
+ * Routes the status request through a SOCKS5 proxy. Pass the same value as
8209
+ * [`Config::proxy`]: this call runs without an SDK instance, so it cannot
8210
+ * pick the setting up on its own.
8211
+ */
8212
+ proxy: ProxyConfig | undefined;
8213
+ };
8214
+
8215
+ /**
8216
+ * Generated factory for {@link GetSparkStatusRequest} record objects.
8217
+ */
8218
+ export const GetSparkStatusRequest = (() => {
8219
+ const defaults = () => ({ proxy: undefined });
8220
+ const create = (() => {
8221
+ return uniffiCreateRecord<
8222
+ GetSparkStatusRequest,
8223
+ ReturnType<typeof defaults>
8224
+ >(defaults);
8225
+ })();
8226
+ return Object.freeze({
8227
+ /**
8228
+ * Create a frozen instance of {@link GetSparkStatusRequest}, with defaults specified
8229
+ * in Rust, in the {@link breez_sdk_spark} crate.
8230
+ */
8231
+ create,
8232
+
8233
+ /**
8234
+ * Create a frozen instance of {@link GetSparkStatusRequest}, with defaults specified
8235
+ * in Rust, in the {@link breez_sdk_spark} crate.
8236
+ */
8237
+ new: create,
8238
+
8239
+ /**
8240
+ * Defaults specified in the {@link breez_sdk_spark} crate.
8241
+ */
8242
+ defaults: () => Object.freeze(defaults()) as Partial<GetSparkStatusRequest>,
8243
+ });
8244
+ })();
8245
+
8246
+ const FfiConverterTypeGetSparkStatusRequest = (() => {
8247
+ type TypeName = GetSparkStatusRequest;
8248
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
8249
+ read(from: RustBuffer): TypeName {
8250
+ return {
8251
+ proxy: FfiConverterOptionalTypeProxyConfig.read(from),
8252
+ };
8253
+ }
8254
+ write(value: TypeName, into: RustBuffer): void {
8255
+ FfiConverterOptionalTypeProxyConfig.write(value.proxy, into);
8256
+ }
8257
+ allocationSize(value: TypeName): number {
8258
+ return FfiConverterOptionalTypeProxyConfig.allocationSize(value.proxy);
8259
+ }
8260
+ }
8261
+ return new FFIConverter();
8262
+ })();
8263
+
7940
8264
  export type GetTokensMetadataRequest = {
7941
8265
  tokenIdentifiers: Array<string>;
7942
8266
  };
@@ -9179,7 +9503,7 @@ const FfiConverterTypeListUnclaimedDepositsResponse = (() => {
9179
9503
  })();
9180
9504
 
9181
9505
  /**
9182
- * Wrapped in a [`InputType::LnurlAuth`], this is the result of [`parse`](breez_sdk_common::input::parse) when given a LNURL-auth endpoint.
9506
+ * Wrapped in a [`InputType::LnurlAuth`], this is the result of parsing a LNURL-auth endpoint.
9183
9507
  *
9184
9508
  * It represents the endpoint's parameters for the LNURL workflow.
9185
9509
  *
@@ -9995,13 +10319,20 @@ export type LnurlWithdrawRequestDetails = {
9995
10319
  * The maximum amount, in millisats, that this LNURL-withdraw endpoint accepts
9996
10320
  */
9997
10321
  maxWithdrawable: /*u64*/ bigint;
10322
+ /**
10323
+ * The URL of the LNURL-withdraw endpoint these details were fetched from.
10324
+ * Set when the details come from parsing an input; determines how far the
10325
+ * withdraw flow trusts the endpoint-chosen `callback`. Absent or empty
10326
+ * means no exemption: the callback is held to the public-host rules.
10327
+ */
10328
+ url: string;
9998
10329
  };
9999
10330
 
10000
10331
  /**
10001
10332
  * Generated factory for {@link LnurlWithdrawRequestDetails} record objects.
10002
10333
  */
10003
10334
  export const LnurlWithdrawRequestDetails = (() => {
10004
- const defaults = () => ({});
10335
+ const defaults = () => ({ url: '' });
10005
10336
  const create = (() => {
10006
10337
  return uniffiCreateRecord<
10007
10338
  LnurlWithdrawRequestDetails,
@@ -10039,6 +10370,7 @@ const FfiConverterTypeLnurlWithdrawRequestDetails = (() => {
10039
10370
  defaultDescription: FfiConverterString.read(from),
10040
10371
  minWithdrawable: FfiConverterUInt64.read(from),
10041
10372
  maxWithdrawable: FfiConverterUInt64.read(from),
10373
+ url: FfiConverterString.read(from),
10042
10374
  };
10043
10375
  }
10044
10376
  write(value: TypeName, into: RustBuffer): void {
@@ -10047,6 +10379,7 @@ const FfiConverterTypeLnurlWithdrawRequestDetails = (() => {
10047
10379
  FfiConverterString.write(value.defaultDescription, into);
10048
10380
  FfiConverterUInt64.write(value.minWithdrawable, into);
10049
10381
  FfiConverterUInt64.write(value.maxWithdrawable, into);
10382
+ FfiConverterString.write(value.url, into);
10050
10383
  }
10051
10384
  allocationSize(value: TypeName): number {
10052
10385
  return (
@@ -10054,7 +10387,8 @@ const FfiConverterTypeLnurlWithdrawRequestDetails = (() => {
10054
10387
  FfiConverterString.allocationSize(value.k1) +
10055
10388
  FfiConverterString.allocationSize(value.defaultDescription) +
10056
10389
  FfiConverterUInt64.allocationSize(value.minWithdrawable) +
10057
- FfiConverterUInt64.allocationSize(value.maxWithdrawable)
10390
+ FfiConverterUInt64.allocationSize(value.maxWithdrawable) +
10391
+ FfiConverterString.allocationSize(value.url)
10058
10392
  );
10059
10393
  }
10060
10394
  }
@@ -10468,6 +10802,68 @@ const FfiConverterTypeMintIssuerTokenRequest = (() => {
10468
10802
  return new FFIConverter();
10469
10803
  })();
10470
10804
 
10805
+ /**
10806
+ * Options for [`new_rest_chain_service`].
10807
+ */
10808
+ export type NewRestChainServiceRequest = {
10809
+ /**
10810
+ * Routes the chain service through a SOCKS5 proxy. Pass the same value as
10811
+ * [`Config::proxy`](crate::Config::proxy): this service is built outside
10812
+ * the SDK, so it cannot pick the setting up on its own.
10813
+ */
10814
+ proxy: ProxyConfig | undefined;
10815
+ };
10816
+
10817
+ /**
10818
+ * Generated factory for {@link NewRestChainServiceRequest} record objects.
10819
+ */
10820
+ export const NewRestChainServiceRequest = (() => {
10821
+ const defaults = () => ({ proxy: undefined });
10822
+ const create = (() => {
10823
+ return uniffiCreateRecord<
10824
+ NewRestChainServiceRequest,
10825
+ ReturnType<typeof defaults>
10826
+ >(defaults);
10827
+ })();
10828
+ return Object.freeze({
10829
+ /**
10830
+ * Create a frozen instance of {@link NewRestChainServiceRequest}, with defaults specified
10831
+ * in Rust, in the {@link breez_sdk_spark} crate.
10832
+ */
10833
+ create,
10834
+
10835
+ /**
10836
+ * Create a frozen instance of {@link NewRestChainServiceRequest}, with defaults specified
10837
+ * in Rust, in the {@link breez_sdk_spark} crate.
10838
+ */
10839
+ new: create,
10840
+
10841
+ /**
10842
+ * Defaults specified in the {@link breez_sdk_spark} crate.
10843
+ */
10844
+ defaults: () =>
10845
+ Object.freeze(defaults()) as Partial<NewRestChainServiceRequest>,
10846
+ });
10847
+ })();
10848
+
10849
+ const FfiConverterTypeNewRestChainServiceRequest = (() => {
10850
+ type TypeName = NewRestChainServiceRequest;
10851
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
10852
+ read(from: RustBuffer): TypeName {
10853
+ return {
10854
+ proxy: FfiConverterOptionalTypeProxyConfig.read(from),
10855
+ };
10856
+ }
10857
+ write(value: TypeName, into: RustBuffer): void {
10858
+ FfiConverterOptionalTypeProxyConfig.write(value.proxy, into);
10859
+ }
10860
+ allocationSize(value: TypeName): number {
10861
+ return FfiConverterOptionalTypeProxyConfig.allocationSize(value.proxy);
10862
+ }
10863
+ }
10864
+ return new FFIConverter();
10865
+ })();
10866
+
10471
10867
  /**
10472
10868
  * Request for [`BreezSdk::optimize_leaves`]. Defaults to
10473
10869
  * [`OptimizationMode::Full`].
@@ -10661,6 +11057,17 @@ export type PasskeyConfig = {
10661
11057
  * provider.
10662
11058
  */
10663
11059
  providerOptions: PasskeyProviderOptions | undefined;
11060
+ /**
11061
+ * Routes the Nostr relay connections that store wallet labels through a
11062
+ * SOCKS5 proxy. Pass the same value as [`Config::proxy`](crate::Config::proxy):
11063
+ * the passkey client is built before the SDK, so it cannot pick the setting
11064
+ * up on its own.
11065
+ *
11066
+ * Relay connections do not support proxy authentication, so a proxy
11067
+ * carrying a username and password is rejected when the client is
11068
+ * built.
11069
+ */
11070
+ proxy: ProxyConfig | undefined;
10664
11071
  };
10665
11072
 
10666
11073
  /**
@@ -10670,6 +11077,7 @@ export const PasskeyConfig = (() => {
10670
11077
  const defaults = () => ({
10671
11078
  defaultLabel: undefined,
10672
11079
  providerOptions: undefined,
11080
+ proxy: undefined,
10673
11081
  });
10674
11082
  const create = (() => {
10675
11083
  return uniffiCreateRecord<PasskeyConfig, ReturnType<typeof defaults>>(
@@ -10704,6 +11112,7 @@ const FfiConverterTypePasskeyConfig = (() => {
10704
11112
  defaultLabel: FfiConverterOptionalString.read(from),
10705
11113
  providerOptions:
10706
11114
  FfiConverterOptionalTypePasskeyProviderOptions.read(from),
11115
+ proxy: FfiConverterOptionalTypeProxyConfig.read(from),
10707
11116
  };
10708
11117
  }
10709
11118
  write(value: TypeName, into: RustBuffer): void {
@@ -10712,13 +11121,15 @@ const FfiConverterTypePasskeyConfig = (() => {
10712
11121
  value.providerOptions,
10713
11122
  into
10714
11123
  );
11124
+ FfiConverterOptionalTypeProxyConfig.write(value.proxy, into);
10715
11125
  }
10716
11126
  allocationSize(value: TypeName): number {
10717
11127
  return (
10718
11128
  FfiConverterOptionalString.allocationSize(value.defaultLabel) +
10719
11129
  FfiConverterOptionalTypePasskeyProviderOptions.allocationSize(
10720
11130
  value.providerOptions
10721
- )
11131
+ ) +
11132
+ FfiConverterOptionalTypeProxyConfig.allocationSize(value.proxy)
10722
11133
  );
10723
11134
  }
10724
11135
  }
@@ -12341,6 +12752,92 @@ const FfiConverterTypeProvisionalPayment = (() => {
12341
12752
  return new FFIConverter();
12342
12753
  })();
12343
12754
 
12755
+ /**
12756
+ * A SOCKS5 proxy carrying the connections the SDK opens.
12757
+ *
12758
+ * Hostnames are resolved by the proxy rather than locally, so a DNS query
12759
+ * never discloses which host is being reached. A connection that cannot be
12760
+ * established through the proxy fails: the SDK never falls back to a direct
12761
+ * one.
12762
+ *
12763
+ * Not supported on WASM, where the browser owns connection setup and exposes
12764
+ * no proxy control. In Node, route the SDK by installing a proxy dispatcher
12765
+ * on the global `fetch` instead.
12766
+ */
12767
+ export type ProxyConfig = {
12768
+ /**
12769
+ * Proxy host. An IP address, or a name resolvable locally: reaching the
12770
+ * proxy is the one lookup that cannot itself go through the proxy.
12771
+ */
12772
+ host: string;
12773
+ port: /*u16*/ number;
12774
+ /**
12775
+ * Username for SOCKS5 username/password authentication. Authentication is
12776
+ * only offered when both this and `password` are set.
12777
+ */
12778
+ username: string | undefined;
12779
+ password: string | undefined;
12780
+ };
12781
+
12782
+ /**
12783
+ * Generated factory for {@link ProxyConfig} record objects.
12784
+ */
12785
+ export const ProxyConfig = (() => {
12786
+ const defaults = () => ({ username: undefined, password: undefined });
12787
+ const create = (() => {
12788
+ return uniffiCreateRecord<ProxyConfig, ReturnType<typeof defaults>>(
12789
+ defaults
12790
+ );
12791
+ })();
12792
+ return Object.freeze({
12793
+ /**
12794
+ * Create a frozen instance of {@link ProxyConfig}, with defaults specified
12795
+ * in Rust, in the {@link breez_sdk_spark} crate.
12796
+ */
12797
+ create,
12798
+
12799
+ /**
12800
+ * Create a frozen instance of {@link ProxyConfig}, with defaults specified
12801
+ * in Rust, in the {@link breez_sdk_spark} crate.
12802
+ */
12803
+ new: create,
12804
+
12805
+ /**
12806
+ * Defaults specified in the {@link breez_sdk_spark} crate.
12807
+ */
12808
+ defaults: () => Object.freeze(defaults()) as Partial<ProxyConfig>,
12809
+ });
12810
+ })();
12811
+
12812
+ const FfiConverterTypeProxyConfig = (() => {
12813
+ type TypeName = ProxyConfig;
12814
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
12815
+ read(from: RustBuffer): TypeName {
12816
+ return {
12817
+ host: FfiConverterString.read(from),
12818
+ port: FfiConverterUInt16.read(from),
12819
+ username: FfiConverterOptionalString.read(from),
12820
+ password: FfiConverterOptionalString.read(from),
12821
+ };
12822
+ }
12823
+ write(value: TypeName, into: RustBuffer): void {
12824
+ FfiConverterString.write(value.host, into);
12825
+ FfiConverterUInt16.write(value.port, into);
12826
+ FfiConverterOptionalString.write(value.username, into);
12827
+ FfiConverterOptionalString.write(value.password, into);
12828
+ }
12829
+ allocationSize(value: TypeName): number {
12830
+ return (
12831
+ FfiConverterString.allocationSize(value.host) +
12832
+ FfiConverterUInt16.allocationSize(value.port) +
12833
+ FfiConverterOptionalString.allocationSize(value.username) +
12834
+ FfiConverterOptionalString.allocationSize(value.password)
12835
+ );
12836
+ }
12837
+ }
12838
+ return new FFIConverter();
12839
+ })();
12840
+
12344
12841
  /**
12345
12842
  * FFI-safe representation of a secp256k1 public key (33 bytes compressed)
12346
12843
  */
@@ -13762,6 +14259,12 @@ export type SdkContextConfig = {
13762
14259
  * requests across them.
13763
14260
  */
13764
14261
  connectionsPerOperator: /*u32*/ number | undefined;
14262
+ /**
14263
+ * Routes the connections opened by this context's shared clients through
14264
+ * a SOCKS5 proxy. Must match the `proxy` on the `Config` of every SDK
14265
+ * built from this context.
14266
+ */
14267
+ proxy: ProxyConfig | undefined;
13765
14268
  /**
13766
14269
  * Shared storage backend for SDKs built from this context. When set,
13767
14270
  * every SDK built from the context reuses it (and its database
@@ -13781,6 +14284,7 @@ export const SdkContextConfig = (() => {
13781
14284
  const defaults = () => ({
13782
14285
  apiKey: undefined,
13783
14286
  connectionsPerOperator: undefined,
14287
+ proxy: undefined,
13784
14288
  storage: undefined,
13785
14289
  });
13786
14290
  const create = (() => {
@@ -13816,6 +14320,7 @@ const FfiConverterTypeSdkContextConfig = (() => {
13816
14320
  network: FfiConverterTypeNetwork.read(from),
13817
14321
  apiKey: FfiConverterOptionalString.read(from),
13818
14322
  connectionsPerOperator: FfiConverterOptionalUInt32.read(from),
14323
+ proxy: FfiConverterOptionalTypeProxyConfig.read(from),
13819
14324
  storage: FfiConverterOptionalTypeStorageBackend.read(from),
13820
14325
  };
13821
14326
  }
@@ -13823,6 +14328,7 @@ const FfiConverterTypeSdkContextConfig = (() => {
13823
14328
  FfiConverterTypeNetwork.write(value.network, into);
13824
14329
  FfiConverterOptionalString.write(value.apiKey, into);
13825
14330
  FfiConverterOptionalUInt32.write(value.connectionsPerOperator, into);
14331
+ FfiConverterOptionalTypeProxyConfig.write(value.proxy, into);
13826
14332
  FfiConverterOptionalTypeStorageBackend.write(value.storage, into);
13827
14333
  }
13828
14334
  allocationSize(value: TypeName): number {
@@ -13832,6 +14338,7 @@ const FfiConverterTypeSdkContextConfig = (() => {
13832
14338
  FfiConverterOptionalUInt32.allocationSize(
13833
14339
  value.connectionsPerOperator
13834
14340
  ) +
14341
+ FfiConverterOptionalTypeProxyConfig.allocationSize(value.proxy) +
13835
14342
  FfiConverterOptionalTypeStorageBackend.allocationSize(value.storage)
13836
14343
  );
13837
14344
  }
@@ -16680,13 +17187,19 @@ export type TurnkeyConfig = {
16680
17187
  * greater than 0 when set: 0 is rejected at connect.
16681
17188
  */
16682
17189
  maxRps: /*u32*/ number | undefined;
17190
+ /**
17191
+ * Routes Turnkey requests through a SOCKS5 proxy. Pass the same value as
17192
+ * [`Config::proxy`](crate::Config::proxy): the signer is built before the
17193
+ * SDK, so it cannot pick the setting up on its own.
17194
+ */
17195
+ proxy: ProxyConfig | undefined;
16683
17196
  };
16684
17197
 
16685
17198
  /**
16686
17199
  * Generated factory for {@link TurnkeyConfig} record objects.
16687
17200
  */
16688
17201
  export const TurnkeyConfig = (() => {
16689
- const defaults = () => ({ maxRps: undefined });
17202
+ const defaults = () => ({ maxRps: undefined, proxy: undefined });
16690
17203
  const create = (() => {
16691
17204
  return uniffiCreateRecord<TurnkeyConfig, ReturnType<typeof defaults>>(
16692
17205
  defaults
@@ -16727,6 +17240,7 @@ const FfiConverterTypeTurnkeyConfig = (() => {
16727
17240
  identityPublicKey: FfiConverterOptionalString.read(from),
16728
17241
  retry: FfiConverterOptionalTypeTurnkeyRetryConfig.read(from),
16729
17242
  maxRps: FfiConverterOptionalUInt32.read(from),
17243
+ proxy: FfiConverterOptionalTypeProxyConfig.read(from),
16730
17244
  };
16731
17245
  }
16732
17246
  write(value: TypeName, into: RustBuffer): void {
@@ -16740,6 +17254,7 @@ const FfiConverterTypeTurnkeyConfig = (() => {
16740
17254
  FfiConverterOptionalString.write(value.identityPublicKey, into);
16741
17255
  FfiConverterOptionalTypeTurnkeyRetryConfig.write(value.retry, into);
16742
17256
  FfiConverterOptionalUInt32.write(value.maxRps, into);
17257
+ FfiConverterOptionalTypeProxyConfig.write(value.proxy, into);
16743
17258
  }
16744
17259
  allocationSize(value: TypeName): number {
16745
17260
  return (
@@ -16752,7 +17267,8 @@ const FfiConverterTypeTurnkeyConfig = (() => {
16752
17267
  FfiConverterOptionalUInt32.allocationSize(value.accountNumber) +
16753
17268
  FfiConverterOptionalString.allocationSize(value.identityPublicKey) +
16754
17269
  FfiConverterOptionalTypeTurnkeyRetryConfig.allocationSize(value.retry) +
16755
- FfiConverterOptionalUInt32.allocationSize(value.maxRps)
17270
+ FfiConverterOptionalUInt32.allocationSize(value.maxRps) +
17271
+ FfiConverterOptionalTypeProxyConfig.allocationSize(value.proxy)
16756
17272
  );
16757
17273
  }
16758
17274
  }
@@ -24185,230 +24701,28 @@ const FfiConverterTypeInputType = (() => {
24185
24701
  return new FFIConverter();
24186
24702
  })();
24187
24703
 
24188
- // Enum: InstantClaimDeclineReason
24189
- export enum InstantClaimDeclineReason_Tags {
24190
- NoPlan = 'NoPlan',
24191
- FeeExceeded = 'FeeExceeded',
24192
- SubmissionFailed = 'SubmissionFailed',
24193
- }
24194
- /**
24195
- * Why an instant (0-conf) claim was declined.
24196
- */
24197
- export const InstantClaimDeclineReason = (() => {
24198
- type NoPlan__interface = {
24199
- tag: InstantClaimDeclineReason_Tags.NoPlan;
24200
- };
24201
-
24202
- /**
24203
- * The SSP offered no 0-conf fulfillment plan for the deposit.
24204
- */
24205
- class NoPlan_ extends UniffiEnum implements NoPlan__interface {
24206
- /**
24207
- * @private
24208
- * This field is private and should not be used, use `tag` instead.
24209
- */
24210
- readonly [uniffiTypeNameSymbol] = 'InstantClaimDeclineReason';
24211
- readonly tag = InstantClaimDeclineReason_Tags.NoPlan;
24212
- constructor() {
24213
- super('InstantClaimDeclineReason', 'NoPlan');
24214
- }
24215
-
24216
- static new(): NoPlan_ {
24217
- return new NoPlan_();
24218
- }
24219
-
24220
- static instanceOf(obj: any): obj is NoPlan_ {
24221
- return obj.tag === InstantClaimDeclineReason_Tags.NoPlan;
24222
- }
24223
- }
24224
-
24225
- type FeeExceeded__interface = {
24226
- tag: InstantClaimDeclineReason_Tags.FeeExceeded;
24227
- inner: Readonly<{
24228
- maxBps: /*u32*/ number;
24229
- quotedBps: /*u32*/ number;
24230
- quotedSats: /*u64*/ bigint;
24231
- }>;
24232
- };
24233
-
24234
- /**
24235
- * The SSP spread exceeded the ceiling (`max_bps`). The instant claim can be
24236
- * retried with a higher ceiling. `quoted_bps` / `quoted_sats` are the spread
24237
- * the SSP quoted at the time.
24238
- */
24239
- class FeeExceeded_ extends UniffiEnum implements FeeExceeded__interface {
24240
- /**
24241
- * @private
24242
- * This field is private and should not be used, use `tag` instead.
24243
- */
24244
- readonly [uniffiTypeNameSymbol] = 'InstantClaimDeclineReason';
24245
- readonly tag = InstantClaimDeclineReason_Tags.FeeExceeded;
24246
- readonly inner: Readonly<{
24247
- maxBps: /*u32*/ number;
24248
- quotedBps: /*u32*/ number;
24249
- quotedSats: /*u64*/ bigint;
24250
- }>;
24251
- constructor(inner: {
24252
- maxBps: /*u32*/ number;
24253
- quotedBps: /*u32*/ number;
24254
- quotedSats: /*u64*/ bigint;
24255
- }) {
24256
- super('InstantClaimDeclineReason', 'FeeExceeded');
24257
- this.inner = Object.freeze(inner);
24258
- }
24259
-
24260
- static new(inner: {
24261
- maxBps: /*u32*/ number;
24262
- quotedBps: /*u32*/ number;
24263
- quotedSats: /*u64*/ bigint;
24264
- }): FeeExceeded_ {
24265
- return new FeeExceeded_(inner);
24266
- }
24267
-
24268
- static instanceOf(obj: any): obj is FeeExceeded_ {
24269
- return obj.tag === InstantClaimDeclineReason_Tags.FeeExceeded;
24270
- }
24271
- }
24272
-
24273
- type SubmissionFailed__interface = {
24274
- tag: InstantClaimDeclineReason_Tags.SubmissionFailed;
24275
- };
24276
-
24277
- /**
24278
- * The claim submission failed with an unknown outcome.
24279
- */
24280
- class SubmissionFailed_
24281
- extends UniffiEnum
24282
- implements SubmissionFailed__interface
24283
- {
24284
- /**
24285
- * @private
24286
- * This field is private and should not be used, use `tag` instead.
24287
- */
24288
- readonly [uniffiTypeNameSymbol] = 'InstantClaimDeclineReason';
24289
- readonly tag = InstantClaimDeclineReason_Tags.SubmissionFailed;
24290
- constructor() {
24291
- super('InstantClaimDeclineReason', 'SubmissionFailed');
24292
- }
24293
-
24294
- static new(): SubmissionFailed_ {
24295
- return new SubmissionFailed_();
24296
- }
24297
-
24298
- static instanceOf(obj: any): obj is SubmissionFailed_ {
24299
- return obj.tag === InstantClaimDeclineReason_Tags.SubmissionFailed;
24300
- }
24301
- }
24302
-
24303
- function instanceOf(obj: any): obj is InstantClaimDeclineReason {
24304
- return obj[uniffiTypeNameSymbol] === 'InstantClaimDeclineReason';
24305
- }
24306
-
24307
- return Object.freeze({
24308
- instanceOf,
24309
- NoPlan: NoPlan_,
24310
- FeeExceeded: FeeExceeded_,
24311
- SubmissionFailed: SubmissionFailed_,
24312
- });
24313
- })();
24314
-
24315
- /**
24316
- * Why an instant (0-conf) claim was declined.
24317
- */
24318
-
24319
- export type InstantClaimDeclineReason = InstanceType<
24320
- (typeof InstantClaimDeclineReason)[keyof Omit<
24321
- typeof InstantClaimDeclineReason,
24322
- 'instanceOf'
24323
- >]
24324
- >;
24325
-
24326
- // FfiConverter for enum InstantClaimDeclineReason
24327
- const FfiConverterTypeInstantClaimDeclineReason = (() => {
24328
- const ordinalConverter = FfiConverterInt32;
24329
- type TypeName = InstantClaimDeclineReason;
24330
- class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
24331
- read(from: RustBuffer): TypeName {
24332
- switch (ordinalConverter.read(from)) {
24333
- case 1:
24334
- return new InstantClaimDeclineReason.NoPlan();
24335
- case 2:
24336
- return new InstantClaimDeclineReason.FeeExceeded({
24337
- maxBps: FfiConverterUInt32.read(from),
24338
- quotedBps: FfiConverterUInt32.read(from),
24339
- quotedSats: FfiConverterUInt64.read(from),
24340
- });
24341
- case 3:
24342
- return new InstantClaimDeclineReason.SubmissionFailed();
24343
- default:
24344
- throw new UniffiInternalError.UnexpectedEnumCase();
24345
- }
24346
- }
24347
- write(value: TypeName, into: RustBuffer): void {
24348
- switch (value.tag) {
24349
- case InstantClaimDeclineReason_Tags.NoPlan: {
24350
- ordinalConverter.write(1, into);
24351
- return;
24352
- }
24353
- case InstantClaimDeclineReason_Tags.FeeExceeded: {
24354
- ordinalConverter.write(2, into);
24355
- const inner = value.inner;
24356
- FfiConverterUInt32.write(inner.maxBps, into);
24357
- FfiConverterUInt32.write(inner.quotedBps, into);
24358
- FfiConverterUInt64.write(inner.quotedSats, into);
24359
- return;
24360
- }
24361
- case InstantClaimDeclineReason_Tags.SubmissionFailed: {
24362
- ordinalConverter.write(3, into);
24363
- return;
24364
- }
24365
- default:
24366
- // Throwing from here means that InstantClaimDeclineReason_Tags hasn't matched an ordinal.
24367
- throw new UniffiInternalError.UnexpectedEnumCase();
24368
- }
24369
- }
24370
- allocationSize(value: TypeName): number {
24371
- switch (value.tag) {
24372
- case InstantClaimDeclineReason_Tags.NoPlan: {
24373
- return ordinalConverter.allocationSize(1);
24374
- }
24375
- case InstantClaimDeclineReason_Tags.FeeExceeded: {
24376
- const inner = value.inner;
24377
- let size = ordinalConverter.allocationSize(2);
24378
- size += FfiConverterUInt32.allocationSize(inner.maxBps);
24379
- size += FfiConverterUInt32.allocationSize(inner.quotedBps);
24380
- size += FfiConverterUInt64.allocationSize(inner.quotedSats);
24381
- return size;
24382
- }
24383
- case InstantClaimDeclineReason_Tags.SubmissionFailed: {
24384
- return ordinalConverter.allocationSize(3);
24385
- }
24386
- default:
24387
- throw new UniffiInternalError.UnexpectedEnumCase();
24388
- }
24389
- }
24390
- }
24391
- return new FFIConverter();
24392
- })();
24393
-
24394
24704
  // Enum: InstantClaimStatus
24395
24705
  export enum InstantClaimStatus_Tags {
24396
24706
  Declined = 'Declined',
24397
24707
  Submitted = 'Submitted',
24398
24708
  }
24399
24709
  /**
24400
- * State of an instant (0-conf) claim attempt on a deposit.
24710
+ * State of an instant claim attempt on a deposit.
24401
24711
  */
24402
24712
  export const InstantClaimStatus = (() => {
24403
24713
  type Declined__interface = {
24404
24714
  tag: InstantClaimStatus_Tags.Declined;
24405
- inner: Readonly<{ reason: InstantClaimDeclineReason }>;
24715
+ inner: Readonly<{
24716
+ maxFeeSats: /*u64*/ bigint | undefined;
24717
+ confirmations: /*u32*/ number;
24718
+ }>;
24406
24719
  };
24407
24720
 
24408
24721
  /**
24409
- * The instant claim was declined. The deposit falls through to the normal
24410
- * claim once it matures; the background sync may re-attempt an instant claim
24411
- * only when the reason permits (see [`InstantClaimDeclineReason`]).
24722
+ * The early claim was declined and the deposit falls through to the claim at
24723
+ * maturity. `max_fee_sats` is the ceiling that declined it, unset when the
24724
+ * decline was for a reason no ceiling will fix. `confirmations` is the depth
24725
+ * it was declined at.
24412
24726
  */
24413
24727
  class Declined_ extends UniffiEnum implements Declined__interface {
24414
24728
  /**
@@ -24417,13 +24731,22 @@ export const InstantClaimStatus = (() => {
24417
24731
  */
24418
24732
  readonly [uniffiTypeNameSymbol] = 'InstantClaimStatus';
24419
24733
  readonly tag = InstantClaimStatus_Tags.Declined;
24420
- readonly inner: Readonly<{ reason: InstantClaimDeclineReason }>;
24421
- constructor(inner: { reason: InstantClaimDeclineReason }) {
24734
+ readonly inner: Readonly<{
24735
+ maxFeeSats: /*u64*/ bigint | undefined;
24736
+ confirmations: /*u32*/ number;
24737
+ }>;
24738
+ constructor(inner: {
24739
+ maxFeeSats: /*u64*/ bigint | undefined;
24740
+ confirmations: /*u32*/ number;
24741
+ }) {
24422
24742
  super('InstantClaimStatus', 'Declined');
24423
24743
  this.inner = Object.freeze(inner);
24424
24744
  }
24425
24745
 
24426
- static new(inner: { reason: InstantClaimDeclineReason }): Declined_ {
24746
+ static new(inner: {
24747
+ maxFeeSats: /*u64*/ bigint | undefined;
24748
+ confirmations: /*u32*/ number;
24749
+ }): Declined_ {
24427
24750
  return new Declined_(inner);
24428
24751
  }
24429
24752
 
@@ -24476,7 +24799,7 @@ export const InstantClaimStatus = (() => {
24476
24799
  })();
24477
24800
 
24478
24801
  /**
24479
- * State of an instant (0-conf) claim attempt on a deposit.
24802
+ * State of an instant claim attempt on a deposit.
24480
24803
  */
24481
24804
 
24482
24805
  export type InstantClaimStatus = InstanceType<
@@ -24495,7 +24818,8 @@ const FfiConverterTypeInstantClaimStatus = (() => {
24495
24818
  switch (ordinalConverter.read(from)) {
24496
24819
  case 1:
24497
24820
  return new InstantClaimStatus.Declined({
24498
- reason: FfiConverterTypeInstantClaimDeclineReason.read(from),
24821
+ maxFeeSats: FfiConverterOptionalUInt64.read(from),
24822
+ confirmations: FfiConverterUInt32.read(from),
24499
24823
  });
24500
24824
  case 2:
24501
24825
  return new InstantClaimStatus.Submitted({
@@ -24510,7 +24834,8 @@ const FfiConverterTypeInstantClaimStatus = (() => {
24510
24834
  case InstantClaimStatus_Tags.Declined: {
24511
24835
  ordinalConverter.write(1, into);
24512
24836
  const inner = value.inner;
24513
- FfiConverterTypeInstantClaimDeclineReason.write(inner.reason, into);
24837
+ FfiConverterOptionalUInt64.write(inner.maxFeeSats, into);
24838
+ FfiConverterUInt32.write(inner.confirmations, into);
24514
24839
  return;
24515
24840
  }
24516
24841
  case InstantClaimStatus_Tags.Submitted: {
@@ -24529,9 +24854,8 @@ const FfiConverterTypeInstantClaimStatus = (() => {
24529
24854
  case InstantClaimStatus_Tags.Declined: {
24530
24855
  const inner = value.inner;
24531
24856
  let size = ordinalConverter.allocationSize(1);
24532
- size += FfiConverterTypeInstantClaimDeclineReason.allocationSize(
24533
- inner.reason
24534
- );
24857
+ size += FfiConverterOptionalUInt64.allocationSize(inner.maxFeeSats);
24858
+ size += FfiConverterUInt32.allocationSize(inner.confirmations);
24535
24859
  return size;
24536
24860
  }
24537
24861
  case InstantClaimStatus_Tags.Submitted: {
@@ -25595,6 +25919,7 @@ export enum PasskeyError_Tags {
25595
25919
  MnemonicError = 'MnemonicError',
25596
25920
  InvalidSalt = 'InvalidSalt',
25597
25921
  CreatedButNotDerived = 'CreatedButNotDerived',
25922
+ InvalidConfig = 'InvalidConfig',
25598
25923
  Generic = 'Generic',
25599
25924
  }
25600
25925
  /**
@@ -25962,6 +26287,46 @@ export const PasskeyError = (() => {
25962
26287
  }
25963
26288
  }
25964
26289
 
26290
+ type InvalidConfig__interface = {
26291
+ tag: PasskeyError_Tags.InvalidConfig;
26292
+ inner: Readonly<[string]>;
26293
+ };
26294
+
26295
+ /**
26296
+ * The client was configured in a way it cannot honour, so no
26297
+ * operation would succeed. Not retryable until the integrator
26298
+ * changes the configuration.
26299
+ */
26300
+ class InvalidConfig_ extends UniffiError implements InvalidConfig__interface {
26301
+ /**
26302
+ * @private
26303
+ * This field is private and should not be used, use `tag` instead.
26304
+ */
26305
+ readonly [uniffiTypeNameSymbol] = 'PasskeyError';
26306
+ readonly tag = PasskeyError_Tags.InvalidConfig;
26307
+ readonly inner: Readonly<[string]>;
26308
+ constructor(v0: string) {
26309
+ super('PasskeyError', 'InvalidConfig');
26310
+ this.inner = Object.freeze([v0]);
26311
+ }
26312
+
26313
+ static new(v0: string): InvalidConfig_ {
26314
+ return new InvalidConfig_(v0);
26315
+ }
26316
+
26317
+ static instanceOf(obj: any): obj is InvalidConfig_ {
26318
+ return obj.tag === PasskeyError_Tags.InvalidConfig;
26319
+ }
26320
+
26321
+ static hasInner(obj: any): obj is InvalidConfig_ {
26322
+ return InvalidConfig_.instanceOf(obj);
26323
+ }
26324
+
26325
+ static getInner(obj: InvalidConfig_): Readonly<[string]> {
26326
+ return obj.inner;
26327
+ }
26328
+ }
26329
+
25965
26330
  type Generic__interface = {
25966
26331
  tag: PasskeyError_Tags.Generic;
25967
26332
  inner: Readonly<[string]>;
@@ -26012,6 +26377,7 @@ export const PasskeyError = (() => {
26012
26377
  MnemonicError: MnemonicError_,
26013
26378
  InvalidSalt: InvalidSalt_,
26014
26379
  CreatedButNotDerived: CreatedButNotDerived_,
26380
+ InvalidConfig: InvalidConfig_,
26015
26381
  Generic: Generic_,
26016
26382
  });
26017
26383
  })();
@@ -26065,6 +26431,8 @@ const FfiConverterTypePasskeyError = (() => {
26065
26431
  source: FfiConverterTypePrfProviderError.read(from),
26066
26432
  });
26067
26433
  case 10:
26434
+ return new PasskeyError.InvalidConfig(FfiConverterString.read(from));
26435
+ case 11:
26068
26436
  return new PasskeyError.Generic(FfiConverterString.read(from));
26069
26437
  default:
26070
26438
  throw new UniffiInternalError.UnexpectedEnumCase();
@@ -26127,12 +26495,18 @@ const FfiConverterTypePasskeyError = (() => {
26127
26495
  FfiConverterTypePrfProviderError.write(inner.source, into);
26128
26496
  return;
26129
26497
  }
26130
- case PasskeyError_Tags.Generic: {
26498
+ case PasskeyError_Tags.InvalidConfig: {
26131
26499
  ordinalConverter.write(10, into);
26132
26500
  const inner = value.inner;
26133
26501
  FfiConverterString.write(inner[0], into);
26134
26502
  return;
26135
26503
  }
26504
+ case PasskeyError_Tags.Generic: {
26505
+ ordinalConverter.write(11, into);
26506
+ const inner = value.inner;
26507
+ FfiConverterString.write(inner[0], into);
26508
+ return;
26509
+ }
26136
26510
  default:
26137
26511
  // Throwing from here means that PasskeyError_Tags hasn't matched an ordinal.
26138
26512
  throw new UniffiInternalError.UnexpectedEnumCase();
@@ -26195,12 +26569,18 @@ const FfiConverterTypePasskeyError = (() => {
26195
26569
  size += FfiConverterTypePrfProviderError.allocationSize(inner.source);
26196
26570
  return size;
26197
26571
  }
26198
- case PasskeyError_Tags.Generic: {
26572
+ case PasskeyError_Tags.InvalidConfig: {
26199
26573
  const inner = value.inner;
26200
26574
  let size = ordinalConverter.allocationSize(10);
26201
26575
  size += FfiConverterString.allocationSize(inner[0]);
26202
26576
  return size;
26203
26577
  }
26578
+ case PasskeyError_Tags.Generic: {
26579
+ const inner = value.inner;
26580
+ let size = ordinalConverter.allocationSize(11);
26581
+ size += FfiConverterString.allocationSize(inner[0]);
26582
+ return size;
26583
+ }
26204
26584
  default:
26205
26585
  throw new UniffiInternalError.UnexpectedEnumCase();
26206
26586
  }
@@ -28946,6 +29326,151 @@ const FfiConverterTypeReceivePaymentMethod = (() => {
28946
29326
  return new FFIConverter();
28947
29327
  })();
28948
29328
 
29329
+ // Enum: RefundState
29330
+ export enum RefundState_Tags {
29331
+ BroadcastPending = 'BroadcastPending',
29332
+ Broadcast = 'Broadcast',
29333
+ }
29334
+ /**
29335
+ * State of the deposit refund broadcast.
29336
+ */
29337
+ export const RefundState = (() => {
29338
+ type BroadcastPending__interface = {
29339
+ tag: RefundState_Tags.BroadcastPending;
29340
+ inner: Readonly<{ lastError: string | undefined }>;
29341
+ };
29342
+
29343
+ /**
29344
+ * The refund is signed and stored but has not been seen on the network.
29345
+ * `last_error` carries the reason the most recent broadcast was refused,
29346
+ * unset while none has been refused. A refund whose fee is under the
29347
+ * network's current minimum stays here until it is re-created at a higher
29348
+ * fee.
29349
+ */
29350
+ class BroadcastPending_
29351
+ extends UniffiEnum
29352
+ implements BroadcastPending__interface
29353
+ {
29354
+ /**
29355
+ * @private
29356
+ * This field is private and should not be used, use `tag` instead.
29357
+ */
29358
+ readonly [uniffiTypeNameSymbol] = 'RefundState';
29359
+ readonly tag = RefundState_Tags.BroadcastPending;
29360
+ readonly inner: Readonly<{ lastError: string | undefined }>;
29361
+ constructor(inner: { lastError: string | undefined }) {
29362
+ super('RefundState', 'BroadcastPending');
29363
+ this.inner = Object.freeze(inner);
29364
+ }
29365
+
29366
+ static new(inner: { lastError: string | undefined }): BroadcastPending_ {
29367
+ return new BroadcastPending_(inner);
29368
+ }
29369
+
29370
+ static instanceOf(obj: any): obj is BroadcastPending_ {
29371
+ return obj.tag === RefundState_Tags.BroadcastPending;
29372
+ }
29373
+ }
29374
+
29375
+ type Broadcast__interface = {
29376
+ tag: RefundState_Tags.Broadcast;
29377
+ };
29378
+
29379
+ /**
29380
+ * The refund has been accepted by the network and is waiting to confirm.
29381
+ */
29382
+ class Broadcast_ extends UniffiEnum implements Broadcast__interface {
29383
+ /**
29384
+ * @private
29385
+ * This field is private and should not be used, use `tag` instead.
29386
+ */
29387
+ readonly [uniffiTypeNameSymbol] = 'RefundState';
29388
+ readonly tag = RefundState_Tags.Broadcast;
29389
+ constructor() {
29390
+ super('RefundState', 'Broadcast');
29391
+ }
29392
+
29393
+ static new(): Broadcast_ {
29394
+ return new Broadcast_();
29395
+ }
29396
+
29397
+ static instanceOf(obj: any): obj is Broadcast_ {
29398
+ return obj.tag === RefundState_Tags.Broadcast;
29399
+ }
29400
+ }
29401
+
29402
+ function instanceOf(obj: any): obj is RefundState {
29403
+ return obj[uniffiTypeNameSymbol] === 'RefundState';
29404
+ }
29405
+
29406
+ return Object.freeze({
29407
+ instanceOf,
29408
+ BroadcastPending: BroadcastPending_,
29409
+ Broadcast: Broadcast_,
29410
+ });
29411
+ })();
29412
+
29413
+ /**
29414
+ * State of the deposit refund broadcast.
29415
+ */
29416
+
29417
+ export type RefundState = InstanceType<
29418
+ (typeof RefundState)[keyof Omit<typeof RefundState, 'instanceOf'>]
29419
+ >;
29420
+
29421
+ // FfiConverter for enum RefundState
29422
+ const FfiConverterTypeRefundState = (() => {
29423
+ const ordinalConverter = FfiConverterInt32;
29424
+ type TypeName = RefundState;
29425
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
29426
+ read(from: RustBuffer): TypeName {
29427
+ switch (ordinalConverter.read(from)) {
29428
+ case 1:
29429
+ return new RefundState.BroadcastPending({
29430
+ lastError: FfiConverterOptionalString.read(from),
29431
+ });
29432
+ case 2:
29433
+ return new RefundState.Broadcast();
29434
+ default:
29435
+ throw new UniffiInternalError.UnexpectedEnumCase();
29436
+ }
29437
+ }
29438
+ write(value: TypeName, into: RustBuffer): void {
29439
+ switch (value.tag) {
29440
+ case RefundState_Tags.BroadcastPending: {
29441
+ ordinalConverter.write(1, into);
29442
+ const inner = value.inner;
29443
+ FfiConverterOptionalString.write(inner.lastError, into);
29444
+ return;
29445
+ }
29446
+ case RefundState_Tags.Broadcast: {
29447
+ ordinalConverter.write(2, into);
29448
+ return;
29449
+ }
29450
+ default:
29451
+ // Throwing from here means that RefundState_Tags hasn't matched an ordinal.
29452
+ throw new UniffiInternalError.UnexpectedEnumCase();
29453
+ }
29454
+ }
29455
+ allocationSize(value: TypeName): number {
29456
+ switch (value.tag) {
29457
+ case RefundState_Tags.BroadcastPending: {
29458
+ const inner = value.inner;
29459
+ let size = ordinalConverter.allocationSize(1);
29460
+ size += FfiConverterOptionalString.allocationSize(inner.lastError);
29461
+ return size;
29462
+ }
29463
+ case RefundState_Tags.Broadcast: {
29464
+ return ordinalConverter.allocationSize(2);
29465
+ }
29466
+ default:
29467
+ throw new UniffiInternalError.UnexpectedEnumCase();
29468
+ }
29469
+ }
29470
+ }
29471
+ return new FFIConverter();
29472
+ })();
29473
+
28949
29474
  // Error type: SdkError
28950
29475
 
28951
29476
  // Enum: SdkError
@@ -28959,6 +29484,8 @@ export enum SdkError_Tags {
28959
29484
  ChainServiceError = 'ChainServiceError',
28960
29485
  MaxDepositClaimFeeExceeded = 'MaxDepositClaimFeeExceeded',
28961
29486
  MissingUtxo = 'MissingUtxo',
29487
+ DepositClaimInProgress = 'DepositClaimInProgress',
29488
+ RefundReplacementFeeTooLow = 'RefundReplacementFeeTooLow',
28962
29489
  LnurlError = 'LnurlError',
28963
29490
  Signer = 'Signer',
28964
29491
  OptimizationAlreadyRunning = 'OptimizationAlreadyRunning',
@@ -29350,6 +29877,111 @@ export const SdkError = (() => {
29350
29877
  }
29351
29878
  }
29352
29879
 
29880
+ type DepositClaimInProgress__interface = {
29881
+ tag: SdkError_Tags.DepositClaimInProgress;
29882
+ inner: Readonly<{ tx: string; vout: /*u32*/ number }>;
29883
+ };
29884
+
29885
+ /**
29886
+ * Another claim on this deposit is already running.
29887
+ */
29888
+ class DepositClaimInProgress_
29889
+ extends UniffiError
29890
+ implements DepositClaimInProgress__interface
29891
+ {
29892
+ /**
29893
+ * @private
29894
+ * This field is private and should not be used, use `tag` instead.
29895
+ */
29896
+ readonly [uniffiTypeNameSymbol] = 'SdkError';
29897
+ readonly tag = SdkError_Tags.DepositClaimInProgress;
29898
+ readonly inner: Readonly<{ tx: string; vout: /*u32*/ number }>;
29899
+ constructor(inner: { tx: string; vout: /*u32*/ number }) {
29900
+ super('SdkError', 'DepositClaimInProgress');
29901
+ this.inner = Object.freeze(inner);
29902
+ }
29903
+
29904
+ static new(inner: {
29905
+ tx: string;
29906
+ vout: /*u32*/ number;
29907
+ }): DepositClaimInProgress_ {
29908
+ return new DepositClaimInProgress_(inner);
29909
+ }
29910
+
29911
+ static instanceOf(obj: any): obj is DepositClaimInProgress_ {
29912
+ return obj.tag === SdkError_Tags.DepositClaimInProgress;
29913
+ }
29914
+
29915
+ static hasInner(obj: any): obj is DepositClaimInProgress_ {
29916
+ return DepositClaimInProgress_.instanceOf(obj);
29917
+ }
29918
+
29919
+ static getInner(
29920
+ obj: DepositClaimInProgress_
29921
+ ): Readonly<{ tx: string; vout: /*u32*/ number }> {
29922
+ return obj.inner;
29923
+ }
29924
+ }
29925
+
29926
+ type RefundReplacementFeeTooLow__interface = {
29927
+ tag: SdkError_Tags.RefundReplacementFeeTooLow;
29928
+ inner: Readonly<{
29929
+ pendingFeeSats: /*u64*/ bigint;
29930
+ requiredFeeSats: /*u64*/ bigint;
29931
+ }>;
29932
+ };
29933
+
29934
+ /**
29935
+ * A refund for this deposit is already on the network, and the requested
29936
+ * replacement does not pay enough to displace it.
29937
+ */
29938
+ class RefundReplacementFeeTooLow_
29939
+ extends UniffiError
29940
+ implements RefundReplacementFeeTooLow__interface
29941
+ {
29942
+ /**
29943
+ * @private
29944
+ * This field is private and should not be used, use `tag` instead.
29945
+ */
29946
+ readonly [uniffiTypeNameSymbol] = 'SdkError';
29947
+ readonly tag = SdkError_Tags.RefundReplacementFeeTooLow;
29948
+ readonly inner: Readonly<{
29949
+ pendingFeeSats: /*u64*/ bigint;
29950
+ requiredFeeSats: /*u64*/ bigint;
29951
+ }>;
29952
+ constructor(inner: {
29953
+ pendingFeeSats: /*u64*/ bigint;
29954
+ requiredFeeSats: /*u64*/ bigint;
29955
+ }) {
29956
+ super('SdkError', 'RefundReplacementFeeTooLow');
29957
+ this.inner = Object.freeze(inner);
29958
+ }
29959
+
29960
+ static new(inner: {
29961
+ pendingFeeSats: /*u64*/ bigint;
29962
+ requiredFeeSats: /*u64*/ bigint;
29963
+ }): RefundReplacementFeeTooLow_ {
29964
+ return new RefundReplacementFeeTooLow_(inner);
29965
+ }
29966
+
29967
+ static instanceOf(obj: any): obj is RefundReplacementFeeTooLow_ {
29968
+ return obj.tag === SdkError_Tags.RefundReplacementFeeTooLow;
29969
+ }
29970
+
29971
+ static hasInner(obj: any): obj is RefundReplacementFeeTooLow_ {
29972
+ return RefundReplacementFeeTooLow_.instanceOf(obj);
29973
+ }
29974
+
29975
+ static getInner(
29976
+ obj: RefundReplacementFeeTooLow_
29977
+ ): Readonly<{
29978
+ pendingFeeSats: /*u64*/ bigint;
29979
+ requiredFeeSats: /*u64*/ bigint;
29980
+ }> {
29981
+ return obj.inner;
29982
+ }
29983
+ }
29984
+
29353
29985
  type LnurlError__interface = {
29354
29986
  tag: SdkError_Tags.LnurlError;
29355
29987
  inner: Readonly<[string]>;
@@ -29630,6 +30262,8 @@ export const SdkError = (() => {
29630
30262
  ChainServiceError: ChainServiceError_,
29631
30263
  MaxDepositClaimFeeExceeded: MaxDepositClaimFeeExceeded_,
29632
30264
  MissingUtxo: MissingUtxo_,
30265
+ DepositClaimInProgress: DepositClaimInProgress_,
30266
+ RefundReplacementFeeTooLow: RefundReplacementFeeTooLow_,
29633
30267
  LnurlError: LnurlError_,
29634
30268
  Signer: Signer_,
29635
30269
  OptimizationAlreadyRunning: OptimizationAlreadyRunning_,
@@ -29685,23 +30319,33 @@ const FfiConverterTypeSdkError = (() => {
29685
30319
  vout: FfiConverterUInt32.read(from),
29686
30320
  });
29687
30321
  case 10:
29688
- return new SdkError.LnurlError(FfiConverterString.read(from));
30322
+ return new SdkError.DepositClaimInProgress({
30323
+ tx: FfiConverterString.read(from),
30324
+ vout: FfiConverterUInt32.read(from),
30325
+ });
29689
30326
  case 11:
29690
- return new SdkError.Signer(FfiConverterString.read(from));
30327
+ return new SdkError.RefundReplacementFeeTooLow({
30328
+ pendingFeeSats: FfiConverterUInt64.read(from),
30329
+ requiredFeeSats: FfiConverterUInt64.read(from),
30330
+ });
29691
30331
  case 12:
29692
- return new SdkError.OptimizationAlreadyRunning();
30332
+ return new SdkError.LnurlError(FfiConverterString.read(from));
29693
30333
  case 13:
29694
- return new SdkError.OptimizationCancelled();
30334
+ return new SdkError.Signer(FfiConverterString.read(from));
29695
30335
  case 14:
30336
+ return new SdkError.OptimizationAlreadyRunning();
30337
+ case 15:
30338
+ return new SdkError.OptimizationCancelled();
30339
+ case 16:
29696
30340
  return new SdkError.InsufficientCpfpFunds({
29697
30341
  requiredSat: FfiConverterUInt64.read(from),
29698
30342
  });
29699
- case 15:
30343
+ case 17:
29700
30344
  return new SdkError.FundingUtxoConflict({
29701
30345
  txid: FfiConverterString.read(from),
29702
30346
  vout: FfiConverterUInt32.read(from),
29703
30347
  });
29704
- case 16:
30348
+ case 18:
29705
30349
  return new SdkError.Generic(FfiConverterString.read(from));
29706
30350
  default:
29707
30351
  throw new UniffiInternalError.UnexpectedEnumCase();
@@ -29768,41 +30412,55 @@ const FfiConverterTypeSdkError = (() => {
29768
30412
  FfiConverterUInt32.write(inner.vout, into);
29769
30413
  return;
29770
30414
  }
29771
- case SdkError_Tags.LnurlError: {
30415
+ case SdkError_Tags.DepositClaimInProgress: {
29772
30416
  ordinalConverter.write(10, into);
29773
30417
  const inner = value.inner;
30418
+ FfiConverterString.write(inner.tx, into);
30419
+ FfiConverterUInt32.write(inner.vout, into);
30420
+ return;
30421
+ }
30422
+ case SdkError_Tags.RefundReplacementFeeTooLow: {
30423
+ ordinalConverter.write(11, into);
30424
+ const inner = value.inner;
30425
+ FfiConverterUInt64.write(inner.pendingFeeSats, into);
30426
+ FfiConverterUInt64.write(inner.requiredFeeSats, into);
30427
+ return;
30428
+ }
30429
+ case SdkError_Tags.LnurlError: {
30430
+ ordinalConverter.write(12, into);
30431
+ const inner = value.inner;
29774
30432
  FfiConverterString.write(inner[0], into);
29775
30433
  return;
29776
30434
  }
29777
30435
  case SdkError_Tags.Signer: {
29778
- ordinalConverter.write(11, into);
30436
+ ordinalConverter.write(13, into);
29779
30437
  const inner = value.inner;
29780
30438
  FfiConverterString.write(inner[0], into);
29781
30439
  return;
29782
30440
  }
29783
30441
  case SdkError_Tags.OptimizationAlreadyRunning: {
29784
- ordinalConverter.write(12, into);
30442
+ ordinalConverter.write(14, into);
29785
30443
  return;
29786
30444
  }
29787
30445
  case SdkError_Tags.OptimizationCancelled: {
29788
- ordinalConverter.write(13, into);
30446
+ ordinalConverter.write(15, into);
29789
30447
  return;
29790
30448
  }
29791
30449
  case SdkError_Tags.InsufficientCpfpFunds: {
29792
- ordinalConverter.write(14, into);
30450
+ ordinalConverter.write(16, into);
29793
30451
  const inner = value.inner;
29794
30452
  FfiConverterUInt64.write(inner.requiredSat, into);
29795
30453
  return;
29796
30454
  }
29797
30455
  case SdkError_Tags.FundingUtxoConflict: {
29798
- ordinalConverter.write(15, into);
30456
+ ordinalConverter.write(17, into);
29799
30457
  const inner = value.inner;
29800
30458
  FfiConverterString.write(inner.txid, into);
29801
30459
  FfiConverterUInt32.write(inner.vout, into);
29802
30460
  return;
29803
30461
  }
29804
30462
  case SdkError_Tags.Generic: {
29805
- ordinalConverter.write(16, into);
30463
+ ordinalConverter.write(18, into);
29806
30464
  const inner = value.inner;
29807
30465
  FfiConverterString.write(inner[0], into);
29808
30466
  return;
@@ -29877,40 +30535,54 @@ const FfiConverterTypeSdkError = (() => {
29877
30535
  size += FfiConverterUInt32.allocationSize(inner.vout);
29878
30536
  return size;
29879
30537
  }
29880
- case SdkError_Tags.LnurlError: {
30538
+ case SdkError_Tags.DepositClaimInProgress: {
29881
30539
  const inner = value.inner;
29882
30540
  let size = ordinalConverter.allocationSize(10);
30541
+ size += FfiConverterString.allocationSize(inner.tx);
30542
+ size += FfiConverterUInt32.allocationSize(inner.vout);
30543
+ return size;
30544
+ }
30545
+ case SdkError_Tags.RefundReplacementFeeTooLow: {
30546
+ const inner = value.inner;
30547
+ let size = ordinalConverter.allocationSize(11);
30548
+ size += FfiConverterUInt64.allocationSize(inner.pendingFeeSats);
30549
+ size += FfiConverterUInt64.allocationSize(inner.requiredFeeSats);
30550
+ return size;
30551
+ }
30552
+ case SdkError_Tags.LnurlError: {
30553
+ const inner = value.inner;
30554
+ let size = ordinalConverter.allocationSize(12);
29883
30555
  size += FfiConverterString.allocationSize(inner[0]);
29884
30556
  return size;
29885
30557
  }
29886
30558
  case SdkError_Tags.Signer: {
29887
30559
  const inner = value.inner;
29888
- let size = ordinalConverter.allocationSize(11);
30560
+ let size = ordinalConverter.allocationSize(13);
29889
30561
  size += FfiConverterString.allocationSize(inner[0]);
29890
30562
  return size;
29891
30563
  }
29892
30564
  case SdkError_Tags.OptimizationAlreadyRunning: {
29893
- return ordinalConverter.allocationSize(12);
30565
+ return ordinalConverter.allocationSize(14);
29894
30566
  }
29895
30567
  case SdkError_Tags.OptimizationCancelled: {
29896
- return ordinalConverter.allocationSize(13);
30568
+ return ordinalConverter.allocationSize(15);
29897
30569
  }
29898
30570
  case SdkError_Tags.InsufficientCpfpFunds: {
29899
30571
  const inner = value.inner;
29900
- let size = ordinalConverter.allocationSize(14);
30572
+ let size = ordinalConverter.allocationSize(16);
29901
30573
  size += FfiConverterUInt64.allocationSize(inner.requiredSat);
29902
30574
  return size;
29903
30575
  }
29904
30576
  case SdkError_Tags.FundingUtxoConflict: {
29905
30577
  const inner = value.inner;
29906
- let size = ordinalConverter.allocationSize(15);
30578
+ let size = ordinalConverter.allocationSize(17);
29907
30579
  size += FfiConverterString.allocationSize(inner.txid);
29908
30580
  size += FfiConverterUInt32.allocationSize(inner.vout);
29909
30581
  return size;
29910
30582
  }
29911
30583
  case SdkError_Tags.Generic: {
29912
30584
  const inner = value.inner;
29913
- let size = ordinalConverter.allocationSize(16);
30585
+ let size = ordinalConverter.allocationSize(18);
29914
30586
  size += FfiConverterString.allocationSize(inner[0]);
29915
30587
  return size;
29916
30588
  }
@@ -35220,6 +35892,7 @@ export enum UpdateDepositPayload_Tags {
35220
35892
  ClaimError = 'ClaimError',
35221
35893
  Refund = 'Refund',
35222
35894
  InstantClaim = 'InstantClaim',
35895
+ RefundBroadcastState = 'RefundBroadcastState',
35223
35896
  }
35224
35897
  export const UpdateDepositPayload = (() => {
35225
35898
  type ClaimError__interface = {
@@ -35251,7 +35924,11 @@ export const UpdateDepositPayload = (() => {
35251
35924
 
35252
35925
  type Refund__interface = {
35253
35926
  tag: UpdateDepositPayload_Tags.Refund;
35254
- inner: Readonly<{ refundTxid: string; refundTx: string }>;
35927
+ inner: Readonly<{
35928
+ refundTxid: string;
35929
+ refundTx: string;
35930
+ state: RefundState;
35931
+ }>;
35255
35932
  };
35256
35933
 
35257
35934
  class Refund_ extends UniffiEnum implements Refund__interface {
@@ -35261,13 +35938,25 @@ export const UpdateDepositPayload = (() => {
35261
35938
  */
35262
35939
  readonly [uniffiTypeNameSymbol] = 'UpdateDepositPayload';
35263
35940
  readonly tag = UpdateDepositPayload_Tags.Refund;
35264
- readonly inner: Readonly<{ refundTxid: string; refundTx: string }>;
35265
- constructor(inner: { refundTxid: string; refundTx: string }) {
35941
+ readonly inner: Readonly<{
35942
+ refundTxid: string;
35943
+ refundTx: string;
35944
+ state: RefundState;
35945
+ }>;
35946
+ constructor(inner: {
35947
+ refundTxid: string;
35948
+ refundTx: string;
35949
+ state: RefundState;
35950
+ }) {
35266
35951
  super('UpdateDepositPayload', 'Refund');
35267
35952
  this.inner = Object.freeze(inner);
35268
35953
  }
35269
35954
 
35270
- static new(inner: { refundTxid: string; refundTx: string }): Refund_ {
35955
+ static new(inner: {
35956
+ refundTxid: string;
35957
+ refundTx: string;
35958
+ state: RefundState;
35959
+ }): Refund_ {
35271
35960
  return new Refund_(inner);
35272
35961
  }
35273
35962
 
@@ -35303,6 +35992,45 @@ export const UpdateDepositPayload = (() => {
35303
35992
  }
35304
35993
  }
35305
35994
 
35995
+ type RefundBroadcastState__interface = {
35996
+ tag: UpdateDepositPayload_Tags.RefundBroadcastState;
35997
+ inner: Readonly<{ refundTxid: string; state: RefundState }>;
35998
+ };
35999
+
36000
+ /**
36001
+ * Moves an existing refund between states without touching the refund
36002
+ * itself or the last claim error. Applies only while `refund_txid` is still
36003
+ * the stored refund, so a state decided against one refund cannot land on a
36004
+ * newer one.
36005
+ */
36006
+ class RefundBroadcastState_
36007
+ extends UniffiEnum
36008
+ implements RefundBroadcastState__interface
36009
+ {
36010
+ /**
36011
+ * @private
36012
+ * This field is private and should not be used, use `tag` instead.
36013
+ */
36014
+ readonly [uniffiTypeNameSymbol] = 'UpdateDepositPayload';
36015
+ readonly tag = UpdateDepositPayload_Tags.RefundBroadcastState;
36016
+ readonly inner: Readonly<{ refundTxid: string; state: RefundState }>;
36017
+ constructor(inner: { refundTxid: string; state: RefundState }) {
36018
+ super('UpdateDepositPayload', 'RefundBroadcastState');
36019
+ this.inner = Object.freeze(inner);
36020
+ }
36021
+
36022
+ static new(inner: {
36023
+ refundTxid: string;
36024
+ state: RefundState;
36025
+ }): RefundBroadcastState_ {
36026
+ return new RefundBroadcastState_(inner);
36027
+ }
36028
+
36029
+ static instanceOf(obj: any): obj is RefundBroadcastState_ {
36030
+ return obj.tag === UpdateDepositPayload_Tags.RefundBroadcastState;
36031
+ }
36032
+ }
36033
+
35306
36034
  function instanceOf(obj: any): obj is UpdateDepositPayload {
35307
36035
  return obj[uniffiTypeNameSymbol] === 'UpdateDepositPayload';
35308
36036
  }
@@ -35312,6 +36040,7 @@ export const UpdateDepositPayload = (() => {
35312
36040
  ClaimError: ClaimError_,
35313
36041
  Refund: Refund_,
35314
36042
  InstantClaim: InstantClaim_,
36043
+ RefundBroadcastState: RefundBroadcastState_,
35315
36044
  });
35316
36045
  })();
35317
36046
 
@@ -35337,11 +36066,17 @@ const FfiConverterTypeUpdateDepositPayload = (() => {
35337
36066
  return new UpdateDepositPayload.Refund({
35338
36067
  refundTxid: FfiConverterString.read(from),
35339
36068
  refundTx: FfiConverterString.read(from),
36069
+ state: FfiConverterTypeRefundState.read(from),
35340
36070
  });
35341
36071
  case 3:
35342
36072
  return new UpdateDepositPayload.InstantClaim({
35343
36073
  status: FfiConverterTypeInstantClaimStatus.read(from),
35344
36074
  });
36075
+ case 4:
36076
+ return new UpdateDepositPayload.RefundBroadcastState({
36077
+ refundTxid: FfiConverterString.read(from),
36078
+ state: FfiConverterTypeRefundState.read(from),
36079
+ });
35345
36080
  default:
35346
36081
  throw new UniffiInternalError.UnexpectedEnumCase();
35347
36082
  }
@@ -35359,6 +36094,7 @@ const FfiConverterTypeUpdateDepositPayload = (() => {
35359
36094
  const inner = value.inner;
35360
36095
  FfiConverterString.write(inner.refundTxid, into);
35361
36096
  FfiConverterString.write(inner.refundTx, into);
36097
+ FfiConverterTypeRefundState.write(inner.state, into);
35362
36098
  return;
35363
36099
  }
35364
36100
  case UpdateDepositPayload_Tags.InstantClaim: {
@@ -35367,6 +36103,13 @@ const FfiConverterTypeUpdateDepositPayload = (() => {
35367
36103
  FfiConverterTypeInstantClaimStatus.write(inner.status, into);
35368
36104
  return;
35369
36105
  }
36106
+ case UpdateDepositPayload_Tags.RefundBroadcastState: {
36107
+ ordinalConverter.write(4, into);
36108
+ const inner = value.inner;
36109
+ FfiConverterString.write(inner.refundTxid, into);
36110
+ FfiConverterTypeRefundState.write(inner.state, into);
36111
+ return;
36112
+ }
35370
36113
  default:
35371
36114
  // Throwing from here means that UpdateDepositPayload_Tags hasn't matched an ordinal.
35372
36115
  throw new UniffiInternalError.UnexpectedEnumCase();
@@ -35385,6 +36128,7 @@ const FfiConverterTypeUpdateDepositPayload = (() => {
35385
36128
  let size = ordinalConverter.allocationSize(2);
35386
36129
  size += FfiConverterString.allocationSize(inner.refundTxid);
35387
36130
  size += FfiConverterString.allocationSize(inner.refundTx);
36131
+ size += FfiConverterTypeRefundState.allocationSize(inner.state);
35388
36132
  return size;
35389
36133
  }
35390
36134
  case UpdateDepositPayload_Tags.InstantClaim: {
@@ -35395,6 +36139,13 @@ const FfiConverterTypeUpdateDepositPayload = (() => {
35395
36139
  );
35396
36140
  return size;
35397
36141
  }
36142
+ case UpdateDepositPayload_Tags.RefundBroadcastState: {
36143
+ const inner = value.inner;
36144
+ let size = ordinalConverter.allocationSize(4);
36145
+ size += FfiConverterString.allocationSize(inner.refundTxid);
36146
+ size += FfiConverterTypeRefundState.allocationSize(inner.state);
36147
+ return size;
36148
+ }
35398
36149
  default:
35399
36150
  throw new UniffiInternalError.UnexpectedEnumCase();
35400
36151
  }
@@ -35696,6 +36447,14 @@ export interface BitcoinChainService {
35696
36447
  txid: string,
35697
36448
  asyncOpts_?: { signal: AbortSignal }
35698
36449
  ): /*throws*/ Promise<TxStatus>;
36450
+ /**
36451
+ * Height of the chain tip. Paired with a transaction's
36452
+ * [`TxStatus::block_height`] it gives that transaction's confirmation count,
36453
+ * which no single call reports.
36454
+ */
36455
+ tipHeight(asyncOpts_?: {
36456
+ signal: AbortSignal;
36457
+ }): /*throws*/ Promise</*u32*/ number>;
35699
36458
  getTransactionHex(
35700
36459
  txid: string,
35701
36460
  asyncOpts_?: { signal: AbortSignal }
@@ -35852,6 +36611,46 @@ export class BitcoinChainServiceImpl
35852
36611
  }
35853
36612
  }
35854
36613
 
36614
+ /**
36615
+ * Height of the chain tip. Paired with a transaction's
36616
+ * [`TxStatus::block_height`] it gives that transaction's confirmation count,
36617
+ * which no single call reports.
36618
+ */
36619
+ public async tipHeight(asyncOpts_?: {
36620
+ signal: AbortSignal;
36621
+ }): Promise</*u32*/ number> /*throws*/ {
36622
+ const __stack = uniffiIsDebug ? new Error().stack : undefined;
36623
+ try {
36624
+ return await uniffiRustCallAsync(
36625
+ /*rustCaller:*/ uniffiCaller,
36626
+ /*rustFutureFunc:*/ () => {
36627
+ return nativeModule().ubrn_uniffi_breez_sdk_spark_fn_method_bitcoinchainservice_tip_height(
36628
+ uniffiTypeBitcoinChainServiceImplObjectFactory.clonePointer(this)
36629
+ );
36630
+ },
36631
+ /*pollFunc:*/ nativeModule()
36632
+ .ubrn_ffi_breez_sdk_spark_rust_future_poll_u32,
36633
+ /*cancelFunc:*/ nativeModule()
36634
+ .ubrn_ffi_breez_sdk_spark_rust_future_cancel_u32,
36635
+ /*completeFunc:*/ nativeModule()
36636
+ .ubrn_ffi_breez_sdk_spark_rust_future_complete_u32,
36637
+ /*freeFunc:*/ nativeModule()
36638
+ .ubrn_ffi_breez_sdk_spark_rust_future_free_u32,
36639
+ /*liftFunc:*/ FfiConverterUInt32.lift.bind(FfiConverterUInt32),
36640
+ /*liftString:*/ FfiConverterString.lift,
36641
+ /*asyncOpts:*/ asyncOpts_,
36642
+ /*errorHandler:*/ FfiConverterTypeChainServiceError.lift.bind(
36643
+ FfiConverterTypeChainServiceError
36644
+ )
36645
+ );
36646
+ } catch (__error: any) {
36647
+ if (uniffiIsDebug && __error instanceof Error) {
36648
+ __error.stack = __stack;
36649
+ }
36650
+ throw __error;
36651
+ }
36652
+ }
36653
+
35855
36654
  public async getTransactionHex(
35856
36655
  txid: string,
35857
36656
  asyncOpts_?: { signal: AbortSignal }
@@ -36247,6 +37046,51 @@ const uniffiCallbackInterfaceBitcoinChainService: {
36247
37046
  );
36248
37047
  return uniffiForeignFuture;
36249
37048
  },
37049
+ tipHeight: (
37050
+ uniffiHandle: bigint,
37051
+ uniffiFutureCallback: UniffiForeignFutureCompleteU32,
37052
+ uniffiCallbackData: bigint
37053
+ ) => {
37054
+ const uniffiMakeCall = async (
37055
+ signal: AbortSignal
37056
+ ): Promise</*u32*/ number> => {
37057
+ const jsCallback =
37058
+ FfiConverterTypeBitcoinChainService.lift(uniffiHandle);
37059
+ return await jsCallback.tipHeight({ signal });
37060
+ };
37061
+ const uniffiHandleSuccess = (returnValue: /*u32*/ number) => {
37062
+ uniffiFutureCallback.call(
37063
+ uniffiFutureCallback,
37064
+ uniffiCallbackData,
37065
+ /* UniffiForeignFutureStructU32 */ {
37066
+ returnValue: FfiConverterUInt32.lower(returnValue),
37067
+ callStatus: uniffiCaller.createCallStatus(),
37068
+ }
37069
+ );
37070
+ };
37071
+ const uniffiHandleError = (code: number, errorBuf: UniffiByteArray) => {
37072
+ uniffiFutureCallback.call(
37073
+ uniffiFutureCallback,
37074
+ uniffiCallbackData,
37075
+ /* UniffiForeignFutureStructU32 */ {
37076
+ returnValue: 0,
37077
+ // TODO create callstatus with error.
37078
+ callStatus: uniffiCaller.createErrorStatus(code, errorBuf),
37079
+ }
37080
+ );
37081
+ };
37082
+ const uniffiForeignFuture = uniffiTraitInterfaceCallAsyncWithError(
37083
+ /*makeCall:*/ uniffiMakeCall,
37084
+ /*handleSuccess:*/ uniffiHandleSuccess,
37085
+ /*handleError:*/ uniffiHandleError,
37086
+ /*isErrorType:*/ ChainServiceError.instanceOf,
37087
+ /*lowerError:*/ FfiConverterTypeChainServiceError.lower.bind(
37088
+ FfiConverterTypeChainServiceError
37089
+ ),
37090
+ /*lowerString:*/ FfiConverterString.lower
37091
+ );
37092
+ return uniffiForeignFuture;
37093
+ },
36250
37094
  getTransactionHex: (
36251
37095
  uniffiHandle: bigint,
36252
37096
  txid: Uint8Array,
@@ -36617,6 +37461,18 @@ export interface BreezSdkInterface {
36617
37461
  exportUnilateralExitState(asyncOpts_?: {
36618
37462
  signal: AbortSignal;
36619
37463
  }): /*throws*/ Promise<ExportUnilateralExitStateResponse>;
37464
+ /**
37465
+ * Quotes both ways of claiming a deposit, so the caller can offer a choice
37466
+ * between claiming ahead of maturity for a spread and waiting for the cheaper
37467
+ * claim at maturity.
37468
+ *
37469
+ * The early quote is requested from the provider on each call rather than read
37470
+ * from cache, so call this when a user is deciding, not on a timer.
37471
+ */
37472
+ fetchClaimDepositQuote(
37473
+ request: FetchClaimDepositQuoteRequest,
37474
+ asyncOpts_?: { signal: AbortSignal }
37475
+ ): /*throws*/ Promise<FetchClaimDepositQuoteResponse>;
36620
37476
  fetchConversionLimits(
36621
37477
  request: FetchConversionLimitsRequest,
36622
37478
  asyncOpts_?: { signal: AbortSignal }
@@ -37776,6 +38632,53 @@ export class BreezSdk
37776
38632
  }
37777
38633
  }
37778
38634
 
38635
+ /**
38636
+ * Quotes both ways of claiming a deposit, so the caller can offer a choice
38637
+ * between claiming ahead of maturity for a spread and waiting for the cheaper
38638
+ * claim at maturity.
38639
+ *
38640
+ * The early quote is requested from the provider on each call rather than read
38641
+ * from cache, so call this when a user is deciding, not on a timer.
38642
+ */
38643
+ public async fetchClaimDepositQuote(
38644
+ request: FetchClaimDepositQuoteRequest,
38645
+ asyncOpts_?: { signal: AbortSignal }
38646
+ ): Promise<FetchClaimDepositQuoteResponse> /*throws*/ {
38647
+ const __stack = uniffiIsDebug ? new Error().stack : undefined;
38648
+ try {
38649
+ return await uniffiRustCallAsync(
38650
+ /*rustCaller:*/ uniffiCaller,
38651
+ /*rustFutureFunc:*/ () => {
38652
+ return nativeModule().ubrn_uniffi_breez_sdk_spark_fn_method_breezsdk_fetch_claim_deposit_quote(
38653
+ uniffiTypeBreezSdkObjectFactory.clonePointer(this),
38654
+ FfiConverterTypeFetchClaimDepositQuoteRequest.lower(request)
38655
+ );
38656
+ },
38657
+ /*pollFunc:*/ nativeModule()
38658
+ .ubrn_ffi_breez_sdk_spark_rust_future_poll_rust_buffer,
38659
+ /*cancelFunc:*/ nativeModule()
38660
+ .ubrn_ffi_breez_sdk_spark_rust_future_cancel_rust_buffer,
38661
+ /*completeFunc:*/ nativeModule()
38662
+ .ubrn_ffi_breez_sdk_spark_rust_future_complete_rust_buffer,
38663
+ /*freeFunc:*/ nativeModule()
38664
+ .ubrn_ffi_breez_sdk_spark_rust_future_free_rust_buffer,
38665
+ /*liftFunc:*/ FfiConverterTypeFetchClaimDepositQuoteResponse.lift.bind(
38666
+ FfiConverterTypeFetchClaimDepositQuoteResponse
38667
+ ),
38668
+ /*liftString:*/ FfiConverterString.lift,
38669
+ /*asyncOpts:*/ asyncOpts_,
38670
+ /*errorHandler:*/ FfiConverterTypeSdkError.lift.bind(
38671
+ FfiConverterTypeSdkError
38672
+ )
38673
+ );
38674
+ } catch (__error: any) {
38675
+ if (uniffiIsDebug && __error instanceof Error) {
38676
+ __error.stack = __stack;
38677
+ }
38678
+ throw __error;
38679
+ }
38680
+ }
38681
+
37779
38682
  public async fetchConversionLimits(
37780
38683
  request: FetchConversionLimitsRequest,
37781
38684
  asyncOpts_?: { signal: AbortSignal }
@@ -43769,14 +44672,21 @@ export class PasskeyClient
43769
44672
  readonly [pointerLiteralSymbol]: UnsafeMutableRawPointer;
43770
44673
  /**
43771
44674
  * Construct with the default Nostr-backed label store.
44675
+ *
44676
+ * Fails when `config` carries a proxy the relay transport cannot
44677
+ * honour, rather than letting a wallet be created whose label can
44678
+ * never be published.
43772
44679
  */
43773
44680
  constructor(
43774
44681
  prfProvider: PrfProvider,
43775
44682
  breezApiKey: string | undefined,
43776
44683
  config: PasskeyConfig | undefined
43777
- ) {
44684
+ ) /*throws*/ {
43778
44685
  super();
43779
- const pointer = uniffiCaller.rustCall(
44686
+ const pointer = uniffiCaller.rustCallWithError(
44687
+ /*liftError:*/ FfiConverterTypePasskeyError.lift.bind(
44688
+ FfiConverterTypePasskeyError
44689
+ ),
43780
44690
  /*caller:*/ (callStatus) => {
43781
44691
  return nativeModule().ubrn_uniffi_breez_sdk_spark_fn_constructor_passkeyclient_new(
43782
44692
  FfiConverterTypePrfProvider.lower(prfProvider),
@@ -50929,6 +51839,11 @@ const FfiConverterOptionalTypeLogger = new FfiConverterOptional(
50929
51839
  FfiConverterTypeLogger
50930
51840
  );
50931
51841
 
51842
+ // FfiConverter for ClaimDepositQuote | undefined
51843
+ const FfiConverterOptionalTypeClaimDepositQuote = new FfiConverterOptional(
51844
+ FfiConverterTypeClaimDepositQuote
51845
+ );
51846
+
50932
51847
  // FfiConverter for ConversionDetails | undefined
50933
51848
  const FfiConverterOptionalTypeConversionDetails = new FfiConverterOptional(
50934
51849
  FfiConverterTypeConversionDetails
@@ -51004,6 +51919,11 @@ const FfiConverterOptionalTypePayment = new FfiConverterOptional(
51004
51919
  FfiConverterTypePayment
51005
51920
  );
51006
51921
 
51922
+ // FfiConverter for ProxyConfig | undefined
51923
+ const FfiConverterOptionalTypeProxyConfig = new FfiConverterOptional(
51924
+ FfiConverterTypeProxyConfig
51925
+ );
51926
+
51007
51927
  // FfiConverter for Record | undefined
51008
51928
  const FfiConverterOptionalTypeRecord = new FfiConverterOptional(
51009
51929
  FfiConverterTypeRecord
@@ -51354,6 +52274,11 @@ const FfiConverterOptionalTypePaymentDetails = new FfiConverterOptional(
51354
52274
  FfiConverterTypePaymentDetails
51355
52275
  );
51356
52276
 
52277
+ // FfiConverter for RefundState | undefined
52278
+ const FfiConverterOptionalTypeRefundState = new FfiConverterOptional(
52279
+ FfiConverterTypeRefundState
52280
+ );
52281
+
51357
52282
  // FfiConverter for SendPaymentOptions | undefined
51358
52283
  const FfiConverterOptionalTypeSendPaymentOptions = new FfiConverterOptional(
51359
52284
  FfiConverterTypeSendPaymentOptions
@@ -51590,7 +52515,7 @@ function uniffiEnsureInitialized() {
51590
52515
  }
51591
52516
  if (
51592
52517
  nativeModule().ubrn_uniffi_breez_sdk_spark_checksum_func_get_spark_status() !==
51593
- 62888
52518
+ 51200
51594
52519
  ) {
51595
52520
  throw new UniffiInternalError.ApiChecksumMismatch(
51596
52521
  'uniffi_breez_sdk_spark_checksum_func_get_spark_status'
@@ -51606,7 +52531,7 @@ function uniffiEnsureInitialized() {
51606
52531
  }
51607
52532
  if (
51608
52533
  nativeModule().ubrn_uniffi_breez_sdk_spark_checksum_func_new_rest_chain_service() !==
51609
- 23177
52534
+ 53269
51610
52535
  ) {
51611
52536
  throw new UniffiInternalError.ApiChecksumMismatch(
51612
52537
  'uniffi_breez_sdk_spark_checksum_func_new_rest_chain_service'
@@ -51652,9 +52577,17 @@ function uniffiEnsureInitialized() {
51652
52577
  'uniffi_breez_sdk_spark_checksum_method_bitcoinchainservice_get_transaction_status'
51653
52578
  );
51654
52579
  }
52580
+ if (
52581
+ nativeModule().ubrn_uniffi_breez_sdk_spark_checksum_method_bitcoinchainservice_tip_height() !==
52582
+ 5182
52583
+ ) {
52584
+ throw new UniffiInternalError.ApiChecksumMismatch(
52585
+ 'uniffi_breez_sdk_spark_checksum_method_bitcoinchainservice_tip_height'
52586
+ );
52587
+ }
51655
52588
  if (
51656
52589
  nativeModule().ubrn_uniffi_breez_sdk_spark_checksum_method_bitcoinchainservice_get_transaction_hex() !==
51657
- 16866
52590
+ 35307
51658
52591
  ) {
51659
52592
  throw new UniffiInternalError.ApiChecksumMismatch(
51660
52593
  'uniffi_breez_sdk_spark_checksum_method_bitcoinchainservice_get_transaction_hex'
@@ -51662,7 +52595,7 @@ function uniffiEnsureInitialized() {
51662
52595
  }
51663
52596
  if (
51664
52597
  nativeModule().ubrn_uniffi_breez_sdk_spark_checksum_method_bitcoinchainservice_get_outspend() !==
51665
- 42521
52598
+ 49726
51666
52599
  ) {
51667
52600
  throw new UniffiInternalError.ApiChecksumMismatch(
51668
52601
  'uniffi_breez_sdk_spark_checksum_method_bitcoinchainservice_get_outspend'
@@ -51670,7 +52603,7 @@ function uniffiEnsureInitialized() {
51670
52603
  }
51671
52604
  if (
51672
52605
  nativeModule().ubrn_uniffi_breez_sdk_spark_checksum_method_bitcoinchainservice_broadcast_transaction() !==
51673
- 13500
52606
+ 54160
51674
52607
  ) {
51675
52608
  throw new UniffiInternalError.ApiChecksumMismatch(
51676
52609
  'uniffi_breez_sdk_spark_checksum_method_bitcoinchainservice_broadcast_transaction'
@@ -51678,7 +52611,7 @@ function uniffiEnsureInitialized() {
51678
52611
  }
51679
52612
  if (
51680
52613
  nativeModule().ubrn_uniffi_breez_sdk_spark_checksum_method_bitcoinchainservice_recommended_fees() !==
51681
- 50885
52614
+ 31747
51682
52615
  ) {
51683
52616
  throw new UniffiInternalError.ApiChecksumMismatch(
51684
52617
  'uniffi_breez_sdk_spark_checksum_method_bitcoinchainservice_recommended_fees'
@@ -51812,6 +52745,14 @@ function uniffiEnsureInitialized() {
51812
52745
  'uniffi_breez_sdk_spark_checksum_method_breezsdk_export_unilateral_exit_state'
51813
52746
  );
51814
52747
  }
52748
+ if (
52749
+ nativeModule().ubrn_uniffi_breez_sdk_spark_checksum_method_breezsdk_fetch_claim_deposit_quote() !==
52750
+ 30349
52751
+ ) {
52752
+ throw new UniffiInternalError.ApiChecksumMismatch(
52753
+ 'uniffi_breez_sdk_spark_checksum_method_breezsdk_fetch_claim_deposit_quote'
52754
+ );
52755
+ }
51815
52756
  if (
51816
52757
  nativeModule().ubrn_uniffi_breez_sdk_spark_checksum_method_breezsdk_fetch_conversion_limits() !==
51817
52758
  50958
@@ -52942,7 +53883,7 @@ function uniffiEnsureInitialized() {
52942
53883
  }
52943
53884
  if (
52944
53885
  nativeModule().ubrn_uniffi_breez_sdk_spark_checksum_constructor_passkeyclient_new() !==
52945
- 51278
53886
+ 2983
52946
53887
  ) {
52947
53888
  throw new UniffiInternalError.ApiChecksumMismatch(
52948
53889
  'uniffi_breez_sdk_spark_checksum_constructor_passkeyclient_new'
@@ -53047,6 +53988,7 @@ export default Object.freeze({
53047
53988
  FfiConverterTypeCheckLightningAddressRequest,
53048
53989
  FfiConverterTypeCheckMessageRequest,
53049
53990
  FfiConverterTypeCheckMessageResponse,
53991
+ FfiConverterTypeClaimDepositQuote,
53050
53992
  FfiConverterTypeClaimDepositRequest,
53051
53993
  FfiConverterTypeClaimDepositResponse,
53052
53994
  FfiConverterTypeClaimHtlcPaymentRequest,
@@ -53137,6 +54079,8 @@ export default Object.freeze({
53137
54079
  FfiConverterTypeExternalTreeNodeId,
53138
54080
  FfiConverterTypeFee,
53139
54081
  FfiConverterTypeFeePolicy,
54082
+ FfiConverterTypeFetchClaimDepositQuoteRequest,
54083
+ FfiConverterTypeFetchClaimDepositQuoteResponse,
53140
54084
  FfiConverterTypeFetchConversionLimitsRequest,
53141
54085
  FfiConverterTypeFetchConversionLimitsResponse,
53142
54086
  FfiConverterTypeFiatCurrency,
@@ -53147,6 +54091,7 @@ export default Object.freeze({
53147
54091
  FfiConverterTypeGetInfoResponse,
53148
54092
  FfiConverterTypeGetPaymentRequest,
53149
54093
  FfiConverterTypeGetPaymentResponse,
54094
+ FfiConverterTypeGetSparkStatusRequest,
53150
54095
  FfiConverterTypeGetTokensMetadataRequest,
53151
54096
  FfiConverterTypeGetTokensMetadataResponse,
53152
54097
  FfiConverterTypeHashedMessageBytes,
@@ -53157,7 +54102,6 @@ export default Object.freeze({
53157
54102
  FfiConverterTypeImportUnilateralExitStateResponse,
53158
54103
  FfiConverterTypeIncomingChange,
53159
54104
  FfiConverterTypeInputType,
53160
- FfiConverterTypeInstantClaimDeclineReason,
53161
54105
  FfiConverterTypeInstantClaimStatus,
53162
54106
  FfiConverterTypeLeafOptimizationConfig,
53163
54107
  FfiConverterTypeLightningAddressDetails,
@@ -53191,6 +54135,7 @@ export default Object.freeze({
53191
54135
  FfiConverterTypeMessageSuccessActionData,
53192
54136
  FfiConverterTypeMintIssuerTokenRequest,
53193
54137
  FfiConverterTypeNetwork,
54138
+ FfiConverterTypeNewRestChainServiceRequest,
53194
54139
  FfiConverterTypeOnchainConfirmationSpeed,
53195
54140
  FfiConverterTypeOptimizationMode,
53196
54141
  FfiConverterTypeOptimizationOutcome,
@@ -53232,6 +54177,7 @@ export default Object.freeze({
53232
54177
  FfiConverterTypePrfProviderError,
53233
54178
  FfiConverterTypeProvisionalPayment,
53234
54179
  FfiConverterTypeProvisionalPaymentDetails,
54180
+ FfiConverterTypeProxyConfig,
53235
54181
  FfiConverterTypePublicKey,
53236
54182
  FfiConverterTypePublicKeyBytes,
53237
54183
  FfiConverterTypePublishSignedLnurlPayPackageRequest,
@@ -53250,6 +54196,7 @@ export default Object.freeze({
53250
54196
  FfiConverterTypeRefundDepositRequest,
53251
54197
  FfiConverterTypeRefundDepositResponse,
53252
54198
  FfiConverterTypeRefundPendingConversionsResponse,
54199
+ FfiConverterTypeRefundState,
53253
54200
  FfiConverterTypeRegisterLightningAddressRequest,
53254
54201
  FfiConverterTypeRegisterRequest,
53255
54202
  FfiConverterTypeRegisterResponse,