@breeztech/breez-sdk-spark-react-native 0.22.3 → 0.23.1

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.
@@ -2588,13 +2588,20 @@ export type ClaimDepositRequest = {
2588
2588
  txid: string;
2589
2589
  vout: /*u32*/ number;
2590
2590
  maxFee: MaxFee | undefined;
2591
+ /**
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.
2596
+ */
2597
+ maxInstantFeeBps: /*u32*/ number | undefined;
2591
2598
  };
2592
2599
 
2593
2600
  /**
2594
2601
  * Generated factory for {@link ClaimDepositRequest} record objects.
2595
2602
  */
2596
2603
  export const ClaimDepositRequest = (() => {
2597
- const defaults = () => ({ maxFee: undefined });
2604
+ const defaults = () => ({ maxFee: undefined, maxInstantFeeBps: undefined });
2598
2605
  const create = (() => {
2599
2606
  return uniffiCreateRecord<ClaimDepositRequest, ReturnType<typeof defaults>>(
2600
2607
  defaults
@@ -2628,18 +2635,21 @@ const FfiConverterTypeClaimDepositRequest = (() => {
2628
2635
  txid: FfiConverterString.read(from),
2629
2636
  vout: FfiConverterUInt32.read(from),
2630
2637
  maxFee: FfiConverterOptionalTypeMaxFee.read(from),
2638
+ maxInstantFeeBps: FfiConverterOptionalUInt32.read(from),
2631
2639
  };
2632
2640
  }
2633
2641
  write(value: TypeName, into: RustBuffer): void {
2634
2642
  FfiConverterString.write(value.txid, into);
2635
2643
  FfiConverterUInt32.write(value.vout, into);
2636
2644
  FfiConverterOptionalTypeMaxFee.write(value.maxFee, into);
2645
+ FfiConverterOptionalUInt32.write(value.maxInstantFeeBps, into);
2637
2646
  }
2638
2647
  allocationSize(value: TypeName): number {
2639
2648
  return (
2640
2649
  FfiConverterString.allocationSize(value.txid) +
2641
2650
  FfiConverterUInt32.allocationSize(value.vout) +
2642
- FfiConverterOptionalTypeMaxFee.allocationSize(value.maxFee)
2651
+ FfiConverterOptionalTypeMaxFee.allocationSize(value.maxFee) +
2652
+ FfiConverterOptionalUInt32.allocationSize(value.maxInstantFeeBps)
2643
2653
  );
2644
2654
  }
2645
2655
  }
@@ -2647,7 +2657,12 @@ const FfiConverterTypeClaimDepositRequest = (() => {
2647
2657
  })();
2648
2658
 
2649
2659
  export type ClaimDepositResponse = {
2650
- payment: Payment;
2660
+ /**
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`.
2664
+ */
2665
+ payment: Payment | undefined;
2651
2666
  };
2652
2667
 
2653
2668
  /**
@@ -2686,14 +2701,14 @@ const FfiConverterTypeClaimDepositResponse = (() => {
2686
2701
  class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
2687
2702
  read(from: RustBuffer): TypeName {
2688
2703
  return {
2689
- payment: FfiConverterTypePayment.read(from),
2704
+ payment: FfiConverterOptionalTypePayment.read(from),
2690
2705
  };
2691
2706
  }
2692
2707
  write(value: TypeName, into: RustBuffer): void {
2693
- FfiConverterTypePayment.write(value.payment, into);
2708
+ FfiConverterOptionalTypePayment.write(value.payment, into);
2694
2709
  }
2695
2710
  allocationSize(value: TypeName): number {
2696
- return FfiConverterTypePayment.allocationSize(value.payment);
2711
+ return FfiConverterOptionalTypePayment.allocationSize(value.payment);
2697
2712
  }
2698
2713
  }
2699
2714
  return new FFIConverter();
@@ -2884,6 +2899,13 @@ export type Config = {
2884
2899
  network: Network;
2885
2900
  syncIntervalSecs: /*u32*/ number;
2886
2901
  maxDepositClaimFee: MaxFee | undefined;
2902
+ /**
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.
2907
+ */
2908
+ maxInstantDepositClaimFeeBps: /*u32*/ number | undefined;
2887
2909
  /**
2888
2910
  * The domain used for receiving through lnurl-pay and lightning address.
2889
2911
  */
@@ -2894,6 +2916,21 @@ export type Config = {
2894
2916
  * but is at the cost of privacy.
2895
2917
  */
2896
2918
  preferSparkOverLightning: boolean;
2919
+ /**
2920
+ * Whether the data needed to exit a payment unilaterally, without the Spark
2921
+ * operators, is collected as funds arrive. Collection runs in the background,
2922
+ * and a sync waits for a collection pass before returning, so syncing is how
2923
+ * to make that happen at a moment of your choosing. A leaf the operators
2924
+ * cannot complete stays un-exitable until a later attempt succeeds.
2925
+ *
2926
+ * Leave this on unless bandwidth matters more than being able to recover funds
2927
+ * when the operators are unreachable. With it off, chains are only collected
2928
+ * when an exit is prepared, which needs the operators reachable at that
2929
+ * moment: a leaf cannot be exited without them until one is collected.
2930
+ *
2931
+ * Default value is true.
2932
+ */
2933
+ exitChainAutoFetchEnabled: boolean;
2897
2934
  /**
2898
2935
  * A set of external input parsers that are used by [`BreezSdk::parse`](crate::sdk::BreezSdk::parse) when the input
2899
2936
  * is not recognized. See [`ExternalInputParser`] for more details on how to configure
@@ -3038,8 +3075,10 @@ const FfiConverterTypeConfig = (() => {
3038
3075
  network: FfiConverterTypeNetwork.read(from),
3039
3076
  syncIntervalSecs: FfiConverterUInt32.read(from),
3040
3077
  maxDepositClaimFee: FfiConverterOptionalTypeMaxFee.read(from),
3078
+ maxInstantDepositClaimFeeBps: FfiConverterOptionalUInt32.read(from),
3041
3079
  lnurlDomain: FfiConverterOptionalString.read(from),
3042
3080
  preferSparkOverLightning: FfiConverterBool.read(from),
3081
+ exitChainAutoFetchEnabled: FfiConverterBool.read(from),
3043
3082
  externalInputParsers:
3044
3083
  FfiConverterOptionalArrayTypeExternalInputParser.read(from),
3045
3084
  useDefaultExternalInputParsers: FfiConverterBool.read(from),
@@ -3062,8 +3101,13 @@ const FfiConverterTypeConfig = (() => {
3062
3101
  FfiConverterTypeNetwork.write(value.network, into);
3063
3102
  FfiConverterUInt32.write(value.syncIntervalSecs, into);
3064
3103
  FfiConverterOptionalTypeMaxFee.write(value.maxDepositClaimFee, into);
3104
+ FfiConverterOptionalUInt32.write(
3105
+ value.maxInstantDepositClaimFeeBps,
3106
+ into
3107
+ );
3065
3108
  FfiConverterOptionalString.write(value.lnurlDomain, into);
3066
3109
  FfiConverterBool.write(value.preferSparkOverLightning, into);
3110
+ FfiConverterBool.write(value.exitChainAutoFetchEnabled, into);
3067
3111
  FfiConverterOptionalArrayTypeExternalInputParser.write(
3068
3112
  value.externalInputParsers,
3069
3113
  into
@@ -3099,8 +3143,12 @@ const FfiConverterTypeConfig = (() => {
3099
3143
  FfiConverterOptionalTypeMaxFee.allocationSize(
3100
3144
  value.maxDepositClaimFee
3101
3145
  ) +
3146
+ FfiConverterOptionalUInt32.allocationSize(
3147
+ value.maxInstantDepositClaimFeeBps
3148
+ ) +
3102
3149
  FfiConverterOptionalString.allocationSize(value.lnurlDomain) +
3103
3150
  FfiConverterBool.allocationSize(value.preferSparkOverLightning) +
3151
+ FfiConverterBool.allocationSize(value.exitChainAutoFetchEnabled) +
3104
3152
  FfiConverterOptionalArrayTypeExternalInputParser.allocationSize(
3105
3153
  value.externalInputParsers
3106
3154
  ) +
@@ -4514,6 +4562,15 @@ export type CrossChainRoutePair = {
4514
4562
  * may be fronted by multiple source variants on Orchestra).
4515
4563
  */
4516
4564
  supportedSources: Array<SourceAsset>;
4565
+ /**
4566
+ * The chains this route can be paid over, orthogonal to
4567
+ * `supported_sources` (the asset moved).
4568
+ *
4569
+ * This is the actual funding rail, which differs by provider: Boltz routes
4570
+ * are always paid over Lightning. Orchestra send routes report Spark, and
4571
+ * Orchestra payment-link routes report Lightning.
4572
+ */
4573
+ supportedSourceChains: Array<SourceChain>;
4517
4574
  };
4518
4575
 
4519
4576
  /**
@@ -4559,6 +4616,7 @@ const FfiConverterTypeCrossChainRoutePair = (() => {
4559
4616
  decimals: FfiConverterUInt8.read(from),
4560
4617
  exactOutEligible: FfiConverterBool.read(from),
4561
4618
  supportedSources: FfiConverterArrayTypeSourceAsset.read(from),
4619
+ supportedSourceChains: FfiConverterArrayTypeSourceChain.read(from),
4562
4620
  };
4563
4621
  }
4564
4622
  write(value: TypeName, into: RustBuffer): void {
@@ -4570,6 +4628,7 @@ const FfiConverterTypeCrossChainRoutePair = (() => {
4570
4628
  FfiConverterUInt8.write(value.decimals, into);
4571
4629
  FfiConverterBool.write(value.exactOutEligible, into);
4572
4630
  FfiConverterArrayTypeSourceAsset.write(value.supportedSources, into);
4631
+ FfiConverterArrayTypeSourceChain.write(value.supportedSourceChains, into);
4573
4632
  }
4574
4633
  allocationSize(value: TypeName): number {
4575
4634
  return (
@@ -4580,7 +4639,12 @@ const FfiConverterTypeCrossChainRoutePair = (() => {
4580
4639
  FfiConverterOptionalString.allocationSize(value.contractAddress) +
4581
4640
  FfiConverterUInt8.allocationSize(value.decimals) +
4582
4641
  FfiConverterBool.allocationSize(value.exactOutEligible) +
4583
- FfiConverterArrayTypeSourceAsset.allocationSize(value.supportedSources)
4642
+ FfiConverterArrayTypeSourceAsset.allocationSize(
4643
+ value.supportedSources
4644
+ ) +
4645
+ FfiConverterArrayTypeSourceChain.allocationSize(
4646
+ value.supportedSourceChains
4647
+ )
4584
4648
  );
4585
4649
  }
4586
4650
  }
@@ -4671,13 +4735,38 @@ const FfiConverterTypeCurrencyInfo = (() => {
4671
4735
  })();
4672
4736
 
4673
4737
  export type DepositInfo = {
4738
+ /**
4739
+ * Transaction id of the on-chain output the deposit came from.
4740
+ */
4674
4741
  txid: string;
4742
+ /**
4743
+ * Index of that output within its transaction.
4744
+ */
4675
4745
  vout: /*u32*/ number;
4746
+ /**
4747
+ * Deposit value in satoshis.
4748
+ */
4676
4749
  amountSats: /*u64*/ bigint;
4750
+ /**
4751
+ * Whether the deposit has enough confirmations to be claimed.
4752
+ */
4677
4753
  isMature: boolean;
4754
+ /**
4755
+ * Raw refund transaction, once one has been created.
4756
+ */
4678
4757
  refundTx: string | undefined;
4758
+ /**
4759
+ * Transaction id of the refund, once one has been created.
4760
+ */
4679
4761
  refundTxId: string | undefined;
4762
+ /**
4763
+ * Why the last claim attempt failed. Unset while none has failed.
4764
+ */
4680
4765
  claimError: DepositClaimError | undefined;
4766
+ /**
4767
+ * Unset when no instant claim has been attempted.
4768
+ */
4769
+ instantClaimStatus: InstantClaimStatus | undefined;
4681
4770
  };
4682
4771
 
4683
4772
  /**
@@ -4722,6 +4811,8 @@ const FfiConverterTypeDepositInfo = (() => {
4722
4811
  refundTx: FfiConverterOptionalString.read(from),
4723
4812
  refundTxId: FfiConverterOptionalString.read(from),
4724
4813
  claimError: FfiConverterOptionalTypeDepositClaimError.read(from),
4814
+ instantClaimStatus:
4815
+ FfiConverterOptionalTypeInstantClaimStatus.read(from),
4725
4816
  };
4726
4817
  }
4727
4818
  write(value: TypeName, into: RustBuffer): void {
@@ -4732,6 +4823,10 @@ const FfiConverterTypeDepositInfo = (() => {
4732
4823
  FfiConverterOptionalString.write(value.refundTx, into);
4733
4824
  FfiConverterOptionalString.write(value.refundTxId, into);
4734
4825
  FfiConverterOptionalTypeDepositClaimError.write(value.claimError, into);
4826
+ FfiConverterOptionalTypeInstantClaimStatus.write(
4827
+ value.instantClaimStatus,
4828
+ into
4829
+ );
4735
4830
  }
4736
4831
  allocationSize(value: TypeName): number {
4737
4832
  return (
@@ -4743,6 +4838,9 @@ const FfiConverterTypeDepositInfo = (() => {
4743
4838
  FfiConverterOptionalString.allocationSize(value.refundTxId) +
4744
4839
  FfiConverterOptionalTypeDepositClaimError.allocationSize(
4745
4840
  value.claimError
4841
+ ) +
4842
+ FfiConverterOptionalTypeInstantClaimStatus.allocationSize(
4843
+ value.instantClaimStatus
4746
4844
  )
4747
4845
  );
4748
4846
  }
@@ -4964,6 +5062,68 @@ const FfiConverterTypeEcdsaSignatureBytes = (() => {
4964
5062
  return new FFIConverter();
4965
5063
  })();
4966
5064
 
5065
+ /**
5066
+ * Result of `export_unilateral_exit_state`: a self-contained copy of the
5067
+ * wallet's exit state, ready to be stored outside the wallet.
5068
+ */
5069
+ export type ExportUnilateralExitStateResponse = {
5070
+ /**
5071
+ * The serialized exit state, to be handed back to
5072
+ * `import_unilateral_exit_state` unmodified.
5073
+ */
5074
+ exitState: string;
5075
+ };
5076
+
5077
+ /**
5078
+ * Generated factory for {@link ExportUnilateralExitStateResponse} record objects.
5079
+ */
5080
+ export const ExportUnilateralExitStateResponse = (() => {
5081
+ const defaults = () => ({});
5082
+ const create = (() => {
5083
+ return uniffiCreateRecord<
5084
+ ExportUnilateralExitStateResponse,
5085
+ ReturnType<typeof defaults>
5086
+ >(defaults);
5087
+ })();
5088
+ return Object.freeze({
5089
+ /**
5090
+ * Create a frozen instance of {@link ExportUnilateralExitStateResponse}, with defaults specified
5091
+ * in Rust, in the {@link breez_sdk_spark} crate.
5092
+ */
5093
+ create,
5094
+
5095
+ /**
5096
+ * Create a frozen instance of {@link ExportUnilateralExitStateResponse}, with defaults specified
5097
+ * in Rust, in the {@link breez_sdk_spark} crate.
5098
+ */
5099
+ new: create,
5100
+
5101
+ /**
5102
+ * Defaults specified in the {@link breez_sdk_spark} crate.
5103
+ */
5104
+ defaults: () =>
5105
+ Object.freeze(defaults()) as Partial<ExportUnilateralExitStateResponse>,
5106
+ });
5107
+ })();
5108
+
5109
+ const FfiConverterTypeExportUnilateralExitStateResponse = (() => {
5110
+ type TypeName = ExportUnilateralExitStateResponse;
5111
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
5112
+ read(from: RustBuffer): TypeName {
5113
+ return {
5114
+ exitState: FfiConverterString.read(from),
5115
+ };
5116
+ }
5117
+ write(value: TypeName, into: RustBuffer): void {
5118
+ FfiConverterString.write(value.exitState, into);
5119
+ }
5120
+ allocationSize(value: TypeName): number {
5121
+ return FfiConverterString.allocationSize(value.exitState);
5122
+ }
5123
+ }
5124
+ return new FFIConverter();
5125
+ })();
5126
+
4967
5127
  /**
4968
5128
  * FFI-safe representation of `spark_wallet::ClaimLeafInput`.
4969
5129
  */
@@ -8132,6 +8292,155 @@ const FfiConverterTypeIdentifierSignaturePair = (() => {
8132
8292
  return new FFIConverter();
8133
8293
  })();
8134
8294
 
8295
+ /**
8296
+ * Request for `import_unilateral_exit_state`.
8297
+ */
8298
+ export type ImportUnilateralExitStateRequest = {
8299
+ /**
8300
+ * An exit state as returned by `export_unilateral_exit_state`.
8301
+ */
8302
+ exitState: string;
8303
+ };
8304
+
8305
+ /**
8306
+ * Generated factory for {@link ImportUnilateralExitStateRequest} record objects.
8307
+ */
8308
+ export const ImportUnilateralExitStateRequest = (() => {
8309
+ const defaults = () => ({});
8310
+ const create = (() => {
8311
+ return uniffiCreateRecord<
8312
+ ImportUnilateralExitStateRequest,
8313
+ ReturnType<typeof defaults>
8314
+ >(defaults);
8315
+ })();
8316
+ return Object.freeze({
8317
+ /**
8318
+ * Create a frozen instance of {@link ImportUnilateralExitStateRequest}, with defaults specified
8319
+ * in Rust, in the {@link breez_sdk_spark} crate.
8320
+ */
8321
+ create,
8322
+
8323
+ /**
8324
+ * Create a frozen instance of {@link ImportUnilateralExitStateRequest}, with defaults specified
8325
+ * in Rust, in the {@link breez_sdk_spark} crate.
8326
+ */
8327
+ new: create,
8328
+
8329
+ /**
8330
+ * Defaults specified in the {@link breez_sdk_spark} crate.
8331
+ */
8332
+ defaults: () =>
8333
+ Object.freeze(defaults()) as Partial<ImportUnilateralExitStateRequest>,
8334
+ });
8335
+ })();
8336
+
8337
+ const FfiConverterTypeImportUnilateralExitStateRequest = (() => {
8338
+ type TypeName = ImportUnilateralExitStateRequest;
8339
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
8340
+ read(from: RustBuffer): TypeName {
8341
+ return {
8342
+ exitState: FfiConverterString.read(from),
8343
+ };
8344
+ }
8345
+ write(value: TypeName, into: RustBuffer): void {
8346
+ FfiConverterString.write(value.exitState, into);
8347
+ }
8348
+ allocationSize(value: TypeName): number {
8349
+ return FfiConverterString.allocationSize(value.exitState);
8350
+ }
8351
+ }
8352
+ return new FFIConverter();
8353
+ })();
8354
+
8355
+ /**
8356
+ * Result of `import_unilateral_exit_state`.
8357
+ */
8358
+ export type ImportUnilateralExitStateResponse = {
8359
+ /**
8360
+ * Leaves merged into the wallet's exit state, whether or not their exit
8361
+ * data was taken with them.
8362
+ */
8363
+ importedLeaves: /*u32*/ number;
8364
+ /**
8365
+ * Leaves left out because the exit state does not record this wallet as
8366
+ * their owner.
8367
+ */
8368
+ skippedForeignLeaves: /*u32*/ number;
8369
+ /**
8370
+ * Leaves left out because their exit data disagrees with what the wallet
8371
+ * already holds, so none of it could be trusted. The wallet is left without
8372
+ * these leaves.
8373
+ */
8374
+ skippedConflictingLeaves: /*u32*/ number;
8375
+ /**
8376
+ * Leaves the wallet holds whose imported exit data was left out: it is
8377
+ * incomplete, the wallet's own copy can already back an exit, or the leaf
8378
+ * was named more than once. The leaf itself is in the wallet either way.
8379
+ */
8380
+ skippedChains: /*u32*/ number;
8381
+ };
8382
+
8383
+ /**
8384
+ * Generated factory for {@link ImportUnilateralExitStateResponse} record objects.
8385
+ */
8386
+ export const ImportUnilateralExitStateResponse = (() => {
8387
+ const defaults = () => ({});
8388
+ const create = (() => {
8389
+ return uniffiCreateRecord<
8390
+ ImportUnilateralExitStateResponse,
8391
+ ReturnType<typeof defaults>
8392
+ >(defaults);
8393
+ })();
8394
+ return Object.freeze({
8395
+ /**
8396
+ * Create a frozen instance of {@link ImportUnilateralExitStateResponse}, with defaults specified
8397
+ * in Rust, in the {@link breez_sdk_spark} crate.
8398
+ */
8399
+ create,
8400
+
8401
+ /**
8402
+ * Create a frozen instance of {@link ImportUnilateralExitStateResponse}, with defaults specified
8403
+ * in Rust, in the {@link breez_sdk_spark} crate.
8404
+ */
8405
+ new: create,
8406
+
8407
+ /**
8408
+ * Defaults specified in the {@link breez_sdk_spark} crate.
8409
+ */
8410
+ defaults: () =>
8411
+ Object.freeze(defaults()) as Partial<ImportUnilateralExitStateResponse>,
8412
+ });
8413
+ })();
8414
+
8415
+ const FfiConverterTypeImportUnilateralExitStateResponse = (() => {
8416
+ type TypeName = ImportUnilateralExitStateResponse;
8417
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
8418
+ read(from: RustBuffer): TypeName {
8419
+ return {
8420
+ importedLeaves: FfiConverterUInt32.read(from),
8421
+ skippedForeignLeaves: FfiConverterUInt32.read(from),
8422
+ skippedConflictingLeaves: FfiConverterUInt32.read(from),
8423
+ skippedChains: FfiConverterUInt32.read(from),
8424
+ };
8425
+ }
8426
+ write(value: TypeName, into: RustBuffer): void {
8427
+ FfiConverterUInt32.write(value.importedLeaves, into);
8428
+ FfiConverterUInt32.write(value.skippedForeignLeaves, into);
8429
+ FfiConverterUInt32.write(value.skippedConflictingLeaves, into);
8430
+ FfiConverterUInt32.write(value.skippedChains, into);
8431
+ }
8432
+ allocationSize(value: TypeName): number {
8433
+ return (
8434
+ FfiConverterUInt32.allocationSize(value.importedLeaves) +
8435
+ FfiConverterUInt32.allocationSize(value.skippedForeignLeaves) +
8436
+ FfiConverterUInt32.allocationSize(value.skippedConflictingLeaves) +
8437
+ FfiConverterUInt32.allocationSize(value.skippedChains)
8438
+ );
8439
+ }
8440
+ }
8441
+ return new FFIConverter();
8442
+ })();
8443
+
8135
8444
  export type IncomingChange = {
8136
8445
  newState: Record;
8137
8446
  oldState: Record | undefined;
@@ -11229,6 +11538,218 @@ const FfiConverterTypePrepareLnurlPayResponse = (() => {
11229
11538
  return new FFIConverter();
11230
11539
  })();
11231
11540
 
11541
+ /**
11542
+ * Request for a payment link that sends USDC/USDT to an external-chain
11543
+ * recipient, funded by Cash App over Lightning.
11544
+ *
11545
+ * The user pays the returned URL, and the cross-chain provider delivers the
11546
+ * stablecoin to `address`. No funds move through the Spark wallet. Only
11547
+ * available on mainnet.
11548
+ */
11549
+ export type PreparePaymentLinkRequest = {
11550
+ /**
11551
+ * Recipient address on the destination chain (e.g. an EVM `0x...` address).
11552
+ */
11553
+ address: string;
11554
+ /**
11555
+ * The destination route from calling `get_cross_chain_routes()` with the
11556
+ * `CrossChainRouteFilter::PaymentLink` filter. Selects the destination chain
11557
+ * + asset (e.g. USDC on Base).
11558
+ */
11559
+ route: CrossChainRoutePair;
11560
+ /**
11561
+ * Amount in the destination asset's base units, per the route's
11562
+ * `decimals`. These routes deliver USD-pegged stablecoins, so at parity
11563
+ * this is the USD value: `1_000_000` is 1 USDC (6 decimals), about $1.
11564
+ *
11565
+ * With the default fee policy the recipient receives this net amount.
11566
+ * With `FeesIncluded` it is the amount the payer deposits.
11567
+ */
11568
+ amount: U128;
11569
+ /**
11570
+ * Whether fees are added on top of `amount` (`FeesExcluded`, the default)
11571
+ * or deducted from it (`FeesIncluded`).
11572
+ */
11573
+ feePolicy: FeePolicy | undefined;
11574
+ /**
11575
+ * Maximum slippage tolerance in basis points. Falls back to the SDK
11576
+ * default when unset.
11577
+ */
11578
+ maxSlippageBps: /*u32*/ number | undefined;
11579
+ };
11580
+
11581
+ /**
11582
+ * Generated factory for {@link PreparePaymentLinkRequest} record objects.
11583
+ */
11584
+ export const PreparePaymentLinkRequest = (() => {
11585
+ const defaults = () => ({});
11586
+ const create = (() => {
11587
+ return uniffiCreateRecord<
11588
+ PreparePaymentLinkRequest,
11589
+ ReturnType<typeof defaults>
11590
+ >(defaults);
11591
+ })();
11592
+ return Object.freeze({
11593
+ /**
11594
+ * Create a frozen instance of {@link PreparePaymentLinkRequest}, with defaults specified
11595
+ * in Rust, in the {@link breez_sdk_spark} crate.
11596
+ */
11597
+ create,
11598
+
11599
+ /**
11600
+ * Create a frozen instance of {@link PreparePaymentLinkRequest}, with defaults specified
11601
+ * in Rust, in the {@link breez_sdk_spark} crate.
11602
+ */
11603
+ new: create,
11604
+
11605
+ /**
11606
+ * Defaults specified in the {@link breez_sdk_spark} crate.
11607
+ */
11608
+ defaults: () =>
11609
+ Object.freeze(defaults()) as Partial<PreparePaymentLinkRequest>,
11610
+ });
11611
+ })();
11612
+
11613
+ const FfiConverterTypePreparePaymentLinkRequest = (() => {
11614
+ type TypeName = PreparePaymentLinkRequest;
11615
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
11616
+ read(from: RustBuffer): TypeName {
11617
+ return {
11618
+ address: FfiConverterString.read(from),
11619
+ route: FfiConverterTypeCrossChainRoutePair.read(from),
11620
+ amount: FfiConverterTypeu128.read(from),
11621
+ feePolicy: FfiConverterOptionalTypeFeePolicy.read(from),
11622
+ maxSlippageBps: FfiConverterOptionalUInt32.read(from),
11623
+ };
11624
+ }
11625
+ write(value: TypeName, into: RustBuffer): void {
11626
+ FfiConverterString.write(value.address, into);
11627
+ FfiConverterTypeCrossChainRoutePair.write(value.route, into);
11628
+ FfiConverterTypeu128.write(value.amount, into);
11629
+ FfiConverterOptionalTypeFeePolicy.write(value.feePolicy, into);
11630
+ FfiConverterOptionalUInt32.write(value.maxSlippageBps, into);
11631
+ }
11632
+ allocationSize(value: TypeName): number {
11633
+ return (
11634
+ FfiConverterString.allocationSize(value.address) +
11635
+ FfiConverterTypeCrossChainRoutePair.allocationSize(value.route) +
11636
+ FfiConverterTypeu128.allocationSize(value.amount) +
11637
+ FfiConverterOptionalTypeFeePolicy.allocationSize(value.feePolicy) +
11638
+ FfiConverterOptionalUInt32.allocationSize(value.maxSlippageBps)
11639
+ );
11640
+ }
11641
+ }
11642
+ return new FFIConverter();
11643
+ })();
11644
+
11645
+ /**
11646
+ * Response to a [`PreparePaymentLinkRequest`]. Mirrors `BuyBitcoinResponse`
11647
+ * (a payable `url`) plus the quote so the caller can display the expected
11648
+ * delivery and fees.
11649
+ */
11650
+ export type PreparePaymentLinkResponse = {
11651
+ /**
11652
+ * The URL to open in a browser; paying it delivers the stablecoin.
11653
+ */
11654
+ url: string;
11655
+ /**
11656
+ * Sats the payer deposits through the fiat rail.
11657
+ */
11658
+ amountSats: /*u64*/ bigint;
11659
+ /**
11660
+ * Estimated amount delivered to the recipient, in `asset` base units.
11661
+ */
11662
+ estimatedOut: U128;
11663
+ /**
11664
+ * The destination stablecoin symbol (e.g. `USDC`). `estimated_out` is
11665
+ * denominated in it.
11666
+ */
11667
+ asset: string;
11668
+ /**
11669
+ * Provider service fee, in `service_fee_asset` base units.
11670
+ */
11671
+ serviceFeeAmount: U128;
11672
+ /**
11673
+ * Denomination of `service_fee_amount`. `None` means sats: Boltz
11674
+ * denominates its fee in sats, Orchestra in the stablecoin.
11675
+ */
11676
+ serviceFeeAsset: string | undefined;
11677
+ /**
11678
+ * RFC3339 timestamp after which the quote is no longer valid.
11679
+ */
11680
+ expiresAt: string;
11681
+ };
11682
+
11683
+ /**
11684
+ * Generated factory for {@link PreparePaymentLinkResponse} record objects.
11685
+ */
11686
+ export const PreparePaymentLinkResponse = (() => {
11687
+ const defaults = () => ({});
11688
+ const create = (() => {
11689
+ return uniffiCreateRecord<
11690
+ PreparePaymentLinkResponse,
11691
+ ReturnType<typeof defaults>
11692
+ >(defaults);
11693
+ })();
11694
+ return Object.freeze({
11695
+ /**
11696
+ * Create a frozen instance of {@link PreparePaymentLinkResponse}, with defaults specified
11697
+ * in Rust, in the {@link breez_sdk_spark} crate.
11698
+ */
11699
+ create,
11700
+
11701
+ /**
11702
+ * Create a frozen instance of {@link PreparePaymentLinkResponse}, with defaults specified
11703
+ * in Rust, in the {@link breez_sdk_spark} crate.
11704
+ */
11705
+ new: create,
11706
+
11707
+ /**
11708
+ * Defaults specified in the {@link breez_sdk_spark} crate.
11709
+ */
11710
+ defaults: () =>
11711
+ Object.freeze(defaults()) as Partial<PreparePaymentLinkResponse>,
11712
+ });
11713
+ })();
11714
+
11715
+ const FfiConverterTypePreparePaymentLinkResponse = (() => {
11716
+ type TypeName = PreparePaymentLinkResponse;
11717
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
11718
+ read(from: RustBuffer): TypeName {
11719
+ return {
11720
+ url: FfiConverterString.read(from),
11721
+ amountSats: FfiConverterUInt64.read(from),
11722
+ estimatedOut: FfiConverterTypeu128.read(from),
11723
+ asset: FfiConverterString.read(from),
11724
+ serviceFeeAmount: FfiConverterTypeu128.read(from),
11725
+ serviceFeeAsset: FfiConverterOptionalString.read(from),
11726
+ expiresAt: FfiConverterString.read(from),
11727
+ };
11728
+ }
11729
+ write(value: TypeName, into: RustBuffer): void {
11730
+ FfiConverterString.write(value.url, into);
11731
+ FfiConverterUInt64.write(value.amountSats, into);
11732
+ FfiConverterTypeu128.write(value.estimatedOut, into);
11733
+ FfiConverterString.write(value.asset, into);
11734
+ FfiConverterTypeu128.write(value.serviceFeeAmount, into);
11735
+ FfiConverterOptionalString.write(value.serviceFeeAsset, into);
11736
+ FfiConverterString.write(value.expiresAt, into);
11737
+ }
11738
+ allocationSize(value: TypeName): number {
11739
+ return (
11740
+ FfiConverterString.allocationSize(value.url) +
11741
+ FfiConverterUInt64.allocationSize(value.amountSats) +
11742
+ FfiConverterTypeu128.allocationSize(value.estimatedOut) +
11743
+ FfiConverterString.allocationSize(value.asset) +
11744
+ FfiConverterTypeu128.allocationSize(value.serviceFeeAmount) +
11745
+ FfiConverterOptionalString.allocationSize(value.serviceFeeAsset) +
11746
+ FfiConverterString.allocationSize(value.expiresAt)
11747
+ );
11748
+ }
11749
+ }
11750
+ return new FFIConverter();
11751
+ })();
11752
+
11232
11753
  export type PrepareSendBatchRequest = {
11233
11754
  /**
11234
11755
  * The payees, all paid by one transaction. They may span several tokens,
@@ -16021,6 +16542,18 @@ export type TransferAuthorization = {
16021
16542
  * The current owner's signature authorizing the transfer.
16022
16543
  */
16023
16544
  signature: string;
16545
+ /**
16546
+ * The lightning-address domain the authorization is for, taken from the
16547
+ * address being handed over. The signed message names this domain, so an
16548
+ * authorization made for one server does not verify at another.
16549
+ */
16550
+ domain: string;
16551
+ /**
16552
+ * When the authorization was produced, in seconds since the Unix epoch.
16553
+ * Covered by the signature, and valid for 10 minutes: the transferee has
16554
+ * to claim within that window or the current owner authorizes again.
16555
+ */
16556
+ timestamp: /*u64*/ bigint;
16024
16557
  };
16025
16558
 
16026
16559
  /**
@@ -16062,18 +16595,24 @@ const FfiConverterTypeTransferAuthorization = (() => {
16062
16595
  username: FfiConverterString.read(from),
16063
16596
  pubkey: FfiConverterString.read(from),
16064
16597
  signature: FfiConverterString.read(from),
16598
+ domain: FfiConverterString.read(from),
16599
+ timestamp: FfiConverterUInt64.read(from),
16065
16600
  };
16066
16601
  }
16067
16602
  write(value: TypeName, into: RustBuffer): void {
16068
16603
  FfiConverterString.write(value.username, into);
16069
16604
  FfiConverterString.write(value.pubkey, into);
16070
16605
  FfiConverterString.write(value.signature, into);
16606
+ FfiConverterString.write(value.domain, into);
16607
+ FfiConverterUInt64.write(value.timestamp, into);
16071
16608
  }
16072
16609
  allocationSize(value: TypeName): number {
16073
16610
  return (
16074
16611
  FfiConverterString.allocationSize(value.username) +
16075
16612
  FfiConverterString.allocationSize(value.pubkey) +
16076
- FfiConverterString.allocationSize(value.signature)
16613
+ FfiConverterString.allocationSize(value.signature) +
16614
+ FfiConverterString.allocationSize(value.domain) +
16615
+ FfiConverterUInt64.allocationSize(value.timestamp)
16077
16616
  );
16078
16617
  }
16079
16618
  }
@@ -21522,6 +22061,7 @@ const FfiConverterTypeCrossChainProviderContext = (() => {
21522
22061
  export enum CrossChainRouteFilter_Tags {
21523
22062
  Send = 'Send',
21524
22063
  Receive = 'Receive',
22064
+ PaymentLink = 'PaymentLink',
21525
22065
  }
21526
22066
  /**
21527
22067
  * Filter for [`CrossChainService::get_routes`] and the public
@@ -21534,7 +22074,7 @@ export const CrossChainRouteFilter = (() => {
21534
22074
  };
21535
22075
 
21536
22076
  /**
21537
- * Routes for sending from Spark to another chain.
22077
+ * Routes for sending from the Spark wallet to another chain.
21538
22078
  * Filtered by the parsed recipient address details.
21539
22079
  */
21540
22080
  class Send_ extends UniffiEnum implements Send__interface {
@@ -21590,6 +22130,40 @@ export const CrossChainRouteFilter = (() => {
21590
22130
  }
21591
22131
  }
21592
22132
 
22133
+ type PaymentLink__interface = {
22134
+ tag: CrossChainRouteFilter_Tags.PaymentLink;
22135
+ inner: Readonly<{ addressDetails: CrossChainAddressDetails }>;
22136
+ };
22137
+
22138
+ /**
22139
+ * Routes for a payment link that sends a stablecoin funded by an external
22140
+ * rail (Cash App over Lightning) rather than the Spark wallet.
22141
+ * Filtered by the parsed recipient address details.
22142
+ */
22143
+ class PaymentLink_ extends UniffiEnum implements PaymentLink__interface {
22144
+ /**
22145
+ * @private
22146
+ * This field is private and should not be used, use `tag` instead.
22147
+ */
22148
+ readonly [uniffiTypeNameSymbol] = 'CrossChainRouteFilter';
22149
+ readonly tag = CrossChainRouteFilter_Tags.PaymentLink;
22150
+ readonly inner: Readonly<{ addressDetails: CrossChainAddressDetails }>;
22151
+ constructor(inner: { addressDetails: CrossChainAddressDetails }) {
22152
+ super('CrossChainRouteFilter', 'PaymentLink');
22153
+ this.inner = Object.freeze(inner);
22154
+ }
22155
+
22156
+ static new(inner: {
22157
+ addressDetails: CrossChainAddressDetails;
22158
+ }): PaymentLink_ {
22159
+ return new PaymentLink_(inner);
22160
+ }
22161
+
22162
+ static instanceOf(obj: any): obj is PaymentLink_ {
22163
+ return obj.tag === CrossChainRouteFilter_Tags.PaymentLink;
22164
+ }
22165
+ }
22166
+
21593
22167
  function instanceOf(obj: any): obj is CrossChainRouteFilter {
21594
22168
  return obj[uniffiTypeNameSymbol] === 'CrossChainRouteFilter';
21595
22169
  }
@@ -21598,6 +22172,7 @@ export const CrossChainRouteFilter = (() => {
21598
22172
  instanceOf,
21599
22173
  Send: Send_,
21600
22174
  Receive: Receive_,
22175
+ PaymentLink: PaymentLink_,
21601
22176
  });
21602
22177
  })();
21603
22178
 
@@ -21628,6 +22203,10 @@ const FfiConverterTypeCrossChainRouteFilter = (() => {
21628
22203
  return new CrossChainRouteFilter.Receive({
21629
22204
  contractAddress: FfiConverterOptionalString.read(from),
21630
22205
  });
22206
+ case 3:
22207
+ return new CrossChainRouteFilter.PaymentLink({
22208
+ addressDetails: FfiConverterTypeCrossChainAddressDetails.read(from),
22209
+ });
21631
22210
  default:
21632
22211
  throw new UniffiInternalError.UnexpectedEnumCase();
21633
22212
  }
@@ -21649,6 +22228,15 @@ const FfiConverterTypeCrossChainRouteFilter = (() => {
21649
22228
  FfiConverterOptionalString.write(inner.contractAddress, into);
21650
22229
  return;
21651
22230
  }
22231
+ case CrossChainRouteFilter_Tags.PaymentLink: {
22232
+ ordinalConverter.write(3, into);
22233
+ const inner = value.inner;
22234
+ FfiConverterTypeCrossChainAddressDetails.write(
22235
+ inner.addressDetails,
22236
+ into
22237
+ );
22238
+ return;
22239
+ }
21652
22240
  default:
21653
22241
  // Throwing from here means that CrossChainRouteFilter_Tags hasn't matched an ordinal.
21654
22242
  throw new UniffiInternalError.UnexpectedEnumCase();
@@ -21672,6 +22260,14 @@ const FfiConverterTypeCrossChainRouteFilter = (() => {
21672
22260
  );
21673
22261
  return size;
21674
22262
  }
22263
+ case CrossChainRouteFilter_Tags.PaymentLink: {
22264
+ const inner = value.inner;
22265
+ let size = ordinalConverter.allocationSize(3);
22266
+ size += FfiConverterTypeCrossChainAddressDetails.allocationSize(
22267
+ inner.addressDetails
22268
+ );
22269
+ return size;
22270
+ }
21675
22271
  default:
21676
22272
  throw new UniffiInternalError.UnexpectedEnumCase();
21677
22273
  }
@@ -23589,6 +24185,369 @@ const FfiConverterTypeInputType = (() => {
23589
24185
  return new FFIConverter();
23590
24186
  })();
23591
24187
 
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
+ // Enum: InstantClaimStatus
24395
+ export enum InstantClaimStatus_Tags {
24396
+ Declined = 'Declined',
24397
+ Submitted = 'Submitted',
24398
+ }
24399
+ /**
24400
+ * State of an instant (0-conf) claim attempt on a deposit.
24401
+ */
24402
+ export const InstantClaimStatus = (() => {
24403
+ type Declined__interface = {
24404
+ tag: InstantClaimStatus_Tags.Declined;
24405
+ inner: Readonly<{ reason: InstantClaimDeclineReason }>;
24406
+ };
24407
+
24408
+ /**
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`]).
24412
+ */
24413
+ class Declined_ extends UniffiEnum implements Declined__interface {
24414
+ /**
24415
+ * @private
24416
+ * This field is private and should not be used, use `tag` instead.
24417
+ */
24418
+ readonly [uniffiTypeNameSymbol] = 'InstantClaimStatus';
24419
+ readonly tag = InstantClaimStatus_Tags.Declined;
24420
+ readonly inner: Readonly<{ reason: InstantClaimDeclineReason }>;
24421
+ constructor(inner: { reason: InstantClaimDeclineReason }) {
24422
+ super('InstantClaimStatus', 'Declined');
24423
+ this.inner = Object.freeze(inner);
24424
+ }
24425
+
24426
+ static new(inner: { reason: InstantClaimDeclineReason }): Declined_ {
24427
+ return new Declined_(inner);
24428
+ }
24429
+
24430
+ static instanceOf(obj: any): obj is Declined_ {
24431
+ return obj.tag === InstantClaimStatus_Tags.Declined;
24432
+ }
24433
+ }
24434
+
24435
+ type Submitted__interface = {
24436
+ tag: InstantClaimStatus_Tags.Submitted;
24437
+ inner: Readonly<{ claimId: string }>;
24438
+ };
24439
+
24440
+ /**
24441
+ * An instant claim was submitted and is settling. The deposit must not be
24442
+ * re-claimed (instant or normal) until the claim settles and it is reconciled
24443
+ * out. Carries the SSP claim id.
24444
+ */
24445
+ class Submitted_ extends UniffiEnum implements Submitted__interface {
24446
+ /**
24447
+ * @private
24448
+ * This field is private and should not be used, use `tag` instead.
24449
+ */
24450
+ readonly [uniffiTypeNameSymbol] = 'InstantClaimStatus';
24451
+ readonly tag = InstantClaimStatus_Tags.Submitted;
24452
+ readonly inner: Readonly<{ claimId: string }>;
24453
+ constructor(inner: { claimId: string }) {
24454
+ super('InstantClaimStatus', 'Submitted');
24455
+ this.inner = Object.freeze(inner);
24456
+ }
24457
+
24458
+ static new(inner: { claimId: string }): Submitted_ {
24459
+ return new Submitted_(inner);
24460
+ }
24461
+
24462
+ static instanceOf(obj: any): obj is Submitted_ {
24463
+ return obj.tag === InstantClaimStatus_Tags.Submitted;
24464
+ }
24465
+ }
24466
+
24467
+ function instanceOf(obj: any): obj is InstantClaimStatus {
24468
+ return obj[uniffiTypeNameSymbol] === 'InstantClaimStatus';
24469
+ }
24470
+
24471
+ return Object.freeze({
24472
+ instanceOf,
24473
+ Declined: Declined_,
24474
+ Submitted: Submitted_,
24475
+ });
24476
+ })();
24477
+
24478
+ /**
24479
+ * State of an instant (0-conf) claim attempt on a deposit.
24480
+ */
24481
+
24482
+ export type InstantClaimStatus = InstanceType<
24483
+ (typeof InstantClaimStatus)[keyof Omit<
24484
+ typeof InstantClaimStatus,
24485
+ 'instanceOf'
24486
+ >]
24487
+ >;
24488
+
24489
+ // FfiConverter for enum InstantClaimStatus
24490
+ const FfiConverterTypeInstantClaimStatus = (() => {
24491
+ const ordinalConverter = FfiConverterInt32;
24492
+ type TypeName = InstantClaimStatus;
24493
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
24494
+ read(from: RustBuffer): TypeName {
24495
+ switch (ordinalConverter.read(from)) {
24496
+ case 1:
24497
+ return new InstantClaimStatus.Declined({
24498
+ reason: FfiConverterTypeInstantClaimDeclineReason.read(from),
24499
+ });
24500
+ case 2:
24501
+ return new InstantClaimStatus.Submitted({
24502
+ claimId: FfiConverterString.read(from),
24503
+ });
24504
+ default:
24505
+ throw new UniffiInternalError.UnexpectedEnumCase();
24506
+ }
24507
+ }
24508
+ write(value: TypeName, into: RustBuffer): void {
24509
+ switch (value.tag) {
24510
+ case InstantClaimStatus_Tags.Declined: {
24511
+ ordinalConverter.write(1, into);
24512
+ const inner = value.inner;
24513
+ FfiConverterTypeInstantClaimDeclineReason.write(inner.reason, into);
24514
+ return;
24515
+ }
24516
+ case InstantClaimStatus_Tags.Submitted: {
24517
+ ordinalConverter.write(2, into);
24518
+ const inner = value.inner;
24519
+ FfiConverterString.write(inner.claimId, into);
24520
+ return;
24521
+ }
24522
+ default:
24523
+ // Throwing from here means that InstantClaimStatus_Tags hasn't matched an ordinal.
24524
+ throw new UniffiInternalError.UnexpectedEnumCase();
24525
+ }
24526
+ }
24527
+ allocationSize(value: TypeName): number {
24528
+ switch (value.tag) {
24529
+ case InstantClaimStatus_Tags.Declined: {
24530
+ const inner = value.inner;
24531
+ let size = ordinalConverter.allocationSize(1);
24532
+ size += FfiConverterTypeInstantClaimDeclineReason.allocationSize(
24533
+ inner.reason
24534
+ );
24535
+ return size;
24536
+ }
24537
+ case InstantClaimStatus_Tags.Submitted: {
24538
+ const inner = value.inner;
24539
+ let size = ordinalConverter.allocationSize(2);
24540
+ size += FfiConverterString.allocationSize(inner.claimId);
24541
+ return size;
24542
+ }
24543
+ default:
24544
+ throw new UniffiInternalError.UnexpectedEnumCase();
24545
+ }
24546
+ }
24547
+ }
24548
+ return new FFIConverter();
24549
+ })();
24550
+
23592
24551
  // Enum: LnurlCallbackStatus
23593
24552
  export enum LnurlCallbackStatus_Tags {
23594
24553
  Ok = 'Ok',
@@ -27787,6 +28746,7 @@ export const ReceivePaymentMethod = (() => {
27787
28746
  amountSats: /*u64*/ bigint | undefined;
27788
28747
  expirySecs: /*u32*/ number | undefined;
27789
28748
  paymentHash: string | undefined;
28749
+ receiverIdentityPublicKey: string | undefined;
27790
28750
  }>;
27791
28751
  };
27792
28752
 
@@ -27802,6 +28762,7 @@ export const ReceivePaymentMethod = (() => {
27802
28762
  amountSats: /*u64*/ bigint | undefined;
27803
28763
  expirySecs: /*u32*/ number | undefined;
27804
28764
  paymentHash: string | undefined;
28765
+ receiverIdentityPublicKey: string | undefined;
27805
28766
  }>;
27806
28767
  constructor(inner: {
27807
28768
  description: string;
@@ -27814,6 +28775,10 @@ export const ReceivePaymentMethod = (() => {
27814
28775
  * The payer's HTLC will be held until the preimage is provided via
27815
28776
  * `claim_htlc_payment` or the HTLC expires.
27816
28777
  */ paymentHash: string | undefined;
28778
+ /**
28779
+ * Spark identity public key that will receive the payment.
28780
+ * If absent, the connected wallet's identity public key is used.
28781
+ */ receiverIdentityPublicKey: string | undefined;
27817
28782
  }) {
27818
28783
  super('ReceivePaymentMethod', 'Bolt11Invoice');
27819
28784
  this.inner = Object.freeze(inner);
@@ -27830,6 +28795,10 @@ export const ReceivePaymentMethod = (() => {
27830
28795
  * The payer's HTLC will be held until the preimage is provided via
27831
28796
  * `claim_htlc_payment` or the HTLC expires.
27832
28797
  */ paymentHash: string | undefined;
28798
+ /**
28799
+ * Spark identity public key that will receive the payment.
28800
+ * If absent, the connected wallet's identity public key is used.
28801
+ */ receiverIdentityPublicKey: string | undefined;
27833
28802
  }): Bolt11Invoice_ {
27834
28803
  return new Bolt11Invoice_(inner);
27835
28804
  }
@@ -27886,6 +28855,7 @@ const FfiConverterTypeReceivePaymentMethod = (() => {
27886
28855
  amountSats: FfiConverterOptionalUInt64.read(from),
27887
28856
  expirySecs: FfiConverterOptionalUInt32.read(from),
27888
28857
  paymentHash: FfiConverterOptionalString.read(from),
28858
+ receiverIdentityPublicKey: FfiConverterOptionalString.read(from),
27889
28859
  });
27890
28860
  default:
27891
28861
  throw new UniffiInternalError.UnexpectedEnumCase();
@@ -27920,6 +28890,10 @@ const FfiConverterTypeReceivePaymentMethod = (() => {
27920
28890
  FfiConverterOptionalUInt64.write(inner.amountSats, into);
27921
28891
  FfiConverterOptionalUInt32.write(inner.expirySecs, into);
27922
28892
  FfiConverterOptionalString.write(inner.paymentHash, into);
28893
+ FfiConverterOptionalString.write(
28894
+ inner.receiverIdentityPublicKey,
28895
+ into
28896
+ );
27923
28897
  return;
27924
28898
  }
27925
28899
  default:
@@ -27959,6 +28933,9 @@ const FfiConverterTypeReceivePaymentMethod = (() => {
27959
28933
  size += FfiConverterOptionalUInt64.allocationSize(inner.amountSats);
27960
28934
  size += FfiConverterOptionalUInt32.allocationSize(inner.expirySecs);
27961
28935
  size += FfiConverterOptionalString.allocationSize(inner.paymentHash);
28936
+ size += FfiConverterOptionalString.allocationSize(
28937
+ inner.receiverIdentityPublicKey
28938
+ );
27962
28939
  return size;
27963
28940
  }
27964
28941
  default:
@@ -28956,6 +29933,7 @@ export enum SdkEvent_Tags {
28956
29933
  AutoOptimization = 'AutoOptimization',
28957
29934
  LightningAddressChanged = 'LightningAddressChanged',
28958
29935
  NewDeposits = 'NewDeposits',
29936
+ UnilateralExitStateChanged = 'UnilateralExitStateChanged',
28959
29937
  }
28960
29938
  /**
28961
29939
  * Events emitted by the SDK
@@ -28994,7 +29972,8 @@ export const SdkEvent = (() => {
28994
29972
  };
28995
29973
 
28996
29974
  /**
28997
- * Emitted when the SDK was unable to claim deposits
29975
+ * Emitted when the SDK was unable to claim deposits. Each deposit carries a
29976
+ * `claim_error` with the reason.
28998
29977
  */
28999
29978
  class UnclaimedDeposits_
29000
29979
  extends UniffiEnum
@@ -29028,6 +30007,10 @@ export const SdkEvent = (() => {
29028
30007
  inner: Readonly<{ claimedDeposits: Array<DepositInfo> }>;
29029
30008
  };
29030
30009
 
30010
+ /**
30011
+ * Emitted when deposits were claimed into the wallet. The resulting payment
30012
+ * is emitted separately as `PaymentSucceeded`.
30013
+ */
29031
30014
  class ClaimedDeposits_
29032
30015
  extends UniffiEnum
29033
30016
  implements ClaimedDeposits__interface
@@ -29060,6 +30043,10 @@ export const SdkEvent = (() => {
29060
30043
  inner: Readonly<{ payment: Payment }>;
29061
30044
  };
29062
30045
 
30046
+ /**
30047
+ * Emitted when a payment completed. The cached balance is refreshed before
30048
+ * this event, so `get_info` returns the new value.
30049
+ */
29063
30050
  class PaymentSucceeded_
29064
30051
  extends UniffiEnum
29065
30052
  implements PaymentSucceeded__interface
@@ -29090,6 +30077,10 @@ export const SdkEvent = (() => {
29090
30077
  inner: Readonly<{ payment: Payment }>;
29091
30078
  };
29092
30079
 
30080
+ /**
30081
+ * Emitted when a payment is in flight. The same payment is emitted again as
30082
+ * succeeded or failed once it settles.
30083
+ */
29093
30084
  class PaymentPending_
29094
30085
  extends UniffiEnum
29095
30086
  implements PaymentPending__interface
@@ -29120,6 +30111,9 @@ export const SdkEvent = (() => {
29120
30111
  inner: Readonly<{ payment: Payment }>;
29121
30112
  };
29122
30113
 
30114
+ /**
30115
+ * Emitted when a payment failed.
30116
+ */
29123
30117
  class PaymentFailed_ extends UniffiEnum implements PaymentFailed__interface {
29124
30118
  /**
29125
30119
  * @private
@@ -29152,7 +30146,7 @@ export const SdkEvent = (() => {
29152
30146
  *
29153
30147
  * Only fired from the auto path (enabled via
29154
30148
  * `LeafOptimizationConfig::auto_enabled`). Manually-triggered runs
29155
- * via `BreezSdk::optimize_leaves` do not emit events they return an
30149
+ * via `BreezSdk::optimize_leaves` do not emit events: they return an
29156
30150
  * `OptimizationOutcome` instead.
29157
30151
  */
29158
30152
  class AutoOptimization_
@@ -29187,6 +30181,10 @@ export const SdkEvent = (() => {
29187
30181
  inner: Readonly<{ lightningAddress: LightningAddressInfo | undefined }>;
29188
30182
  };
29189
30183
 
30184
+ /**
30185
+ * Emitted when the Lightning address changed on another device. The address
30186
+ * is unset when it was deleted.
30187
+ */
29190
30188
  class LightningAddressChanged_
29191
30189
  extends UniffiEnum
29192
30190
  implements LightningAddressChanged__interface
@@ -29221,6 +30219,10 @@ export const SdkEvent = (() => {
29221
30219
  inner: Readonly<{ newDeposits: Array<DepositInfo> }>;
29222
30220
  };
29223
30221
 
30222
+ /**
30223
+ * Emitted when on-chain deposits are detected. Only deposits whose
30224
+ * `is_mature` is set have enough confirmations to be claimed.
30225
+ */
29224
30226
  class NewDeposits_ extends UniffiEnum implements NewDeposits__interface {
29225
30227
  /**
29226
30228
  * @private
@@ -29243,6 +30245,37 @@ export const SdkEvent = (() => {
29243
30245
  }
29244
30246
  }
29245
30247
 
30248
+ type UnilateralExitStateChanged__interface = {
30249
+ tag: SdkEvent_Tags.UnilateralExitStateChanged;
30250
+ };
30251
+
30252
+ /**
30253
+ * Emitted when the data a unilateral exit is built from has changed, so an
30254
+ * exit state exported earlier is out of date and should be exported again.
30255
+ */
30256
+ class UnilateralExitStateChanged_
30257
+ extends UniffiEnum
30258
+ implements UnilateralExitStateChanged__interface
30259
+ {
30260
+ /**
30261
+ * @private
30262
+ * This field is private and should not be used, use `tag` instead.
30263
+ */
30264
+ readonly [uniffiTypeNameSymbol] = 'SdkEvent';
30265
+ readonly tag = SdkEvent_Tags.UnilateralExitStateChanged;
30266
+ constructor() {
30267
+ super('SdkEvent', 'UnilateralExitStateChanged');
30268
+ }
30269
+
30270
+ static new(): UnilateralExitStateChanged_ {
30271
+ return new UnilateralExitStateChanged_();
30272
+ }
30273
+
30274
+ static instanceOf(obj: any): obj is UnilateralExitStateChanged_ {
30275
+ return obj.tag === SdkEvent_Tags.UnilateralExitStateChanged;
30276
+ }
30277
+ }
30278
+
29246
30279
  function instanceOf(obj: any): obj is SdkEvent {
29247
30280
  return obj[uniffiTypeNameSymbol] === 'SdkEvent';
29248
30281
  }
@@ -29258,6 +30291,7 @@ export const SdkEvent = (() => {
29258
30291
  AutoOptimization: AutoOptimization_,
29259
30292
  LightningAddressChanged: LightningAddressChanged_,
29260
30293
  NewDeposits: NewDeposits_,
30294
+ UnilateralExitStateChanged: UnilateralExitStateChanged_,
29261
30295
  });
29262
30296
  })();
29263
30297
 
@@ -29311,6 +30345,8 @@ const FfiConverterTypeSdkEvent = (() => {
29311
30345
  return new SdkEvent.NewDeposits({
29312
30346
  newDeposits: FfiConverterArrayTypeDepositInfo.read(from),
29313
30347
  });
30348
+ case 10:
30349
+ return new SdkEvent.UnilateralExitStateChanged();
29314
30350
  default:
29315
30351
  throw new UniffiInternalError.UnexpectedEnumCase();
29316
30352
  }
@@ -29375,6 +30411,10 @@ const FfiConverterTypeSdkEvent = (() => {
29375
30411
  FfiConverterArrayTypeDepositInfo.write(inner.newDeposits, into);
29376
30412
  return;
29377
30413
  }
30414
+ case SdkEvent_Tags.UnilateralExitStateChanged: {
30415
+ ordinalConverter.write(10, into);
30416
+ return;
30417
+ }
29378
30418
  default:
29379
30419
  // Throwing from here means that SdkEvent_Tags hasn't matched an ordinal.
29380
30420
  throw new UniffiInternalError.UnexpectedEnumCase();
@@ -29443,6 +30483,9 @@ const FfiConverterTypeSdkEvent = (() => {
29443
30483
  );
29444
30484
  return size;
29445
30485
  }
30486
+ case SdkEvent_Tags.UnilateralExitStateChanged: {
30487
+ return ordinalConverter.allocationSize(10);
30488
+ }
29446
30489
  default:
29447
30490
  throw new UniffiInternalError.UnexpectedEnumCase();
29448
30491
  }
@@ -31822,6 +32865,58 @@ const FfiConverterTypeSourceAsset = (() => {
31822
32865
  return new FFIConverter();
31823
32866
  })();
31824
32867
 
32868
+ /**
32869
+ * The chain a cross-chain route is funded from, orthogonal to the
32870
+ * [`SourceAsset`] that moves.
32871
+ */
32872
+ export enum SourceChain {
32873
+ /**
32874
+ * Paid over Spark, using a Bitcoin or token source asset.
32875
+ */
32876
+ Spark,
32877
+ /**
32878
+ * Paid over Lightning, using a Bitcoin source asset.
32879
+ */
32880
+ Lightning,
32881
+ /**
32882
+ * Paid on-chain to Bitcoin (L1), using a Bitcoin source asset.
32883
+ */
32884
+ Bitcoin,
32885
+ }
32886
+
32887
+ const FfiConverterTypeSourceChain = (() => {
32888
+ const ordinalConverter = FfiConverterInt32;
32889
+ type TypeName = SourceChain;
32890
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
32891
+ read(from: RustBuffer): TypeName {
32892
+ switch (ordinalConverter.read(from)) {
32893
+ case 1:
32894
+ return SourceChain.Spark;
32895
+ case 2:
32896
+ return SourceChain.Lightning;
32897
+ case 3:
32898
+ return SourceChain.Bitcoin;
32899
+ default:
32900
+ throw new UniffiInternalError.UnexpectedEnumCase();
32901
+ }
32902
+ }
32903
+ write(value: TypeName, into: RustBuffer): void {
32904
+ switch (value) {
32905
+ case SourceChain.Spark:
32906
+ return ordinalConverter.write(1, into);
32907
+ case SourceChain.Lightning:
32908
+ return ordinalConverter.write(2, into);
32909
+ case SourceChain.Bitcoin:
32910
+ return ordinalConverter.write(3, into);
32911
+ }
32912
+ }
32913
+ allocationSize(value: TypeName): number {
32914
+ return ordinalConverter.allocationSize(0);
32915
+ }
32916
+ }
32917
+ return new FFIConverter();
32918
+ })();
32919
+
31825
32920
  export enum SparkHtlcStatus {
31826
32921
  /**
31827
32922
  * The HTLC is waiting for the preimage to be shared by the receiver
@@ -34124,6 +35219,7 @@ const FfiConverterTypeUnsignedTransferPackage = (() => {
34124
35219
  export enum UpdateDepositPayload_Tags {
34125
35220
  ClaimError = 'ClaimError',
34126
35221
  Refund = 'Refund',
35222
+ InstantClaim = 'InstantClaim',
34127
35223
  }
34128
35224
  export const UpdateDepositPayload = (() => {
34129
35225
  type ClaimError__interface = {
@@ -34180,6 +35276,33 @@ export const UpdateDepositPayload = (() => {
34180
35276
  }
34181
35277
  }
34182
35278
 
35279
+ type InstantClaim__interface = {
35280
+ tag: UpdateDepositPayload_Tags.InstantClaim;
35281
+ inner: Readonly<{ status: InstantClaimStatus }>;
35282
+ };
35283
+
35284
+ class InstantClaim_ extends UniffiEnum implements InstantClaim__interface {
35285
+ /**
35286
+ * @private
35287
+ * This field is private and should not be used, use `tag` instead.
35288
+ */
35289
+ readonly [uniffiTypeNameSymbol] = 'UpdateDepositPayload';
35290
+ readonly tag = UpdateDepositPayload_Tags.InstantClaim;
35291
+ readonly inner: Readonly<{ status: InstantClaimStatus }>;
35292
+ constructor(inner: { status: InstantClaimStatus }) {
35293
+ super('UpdateDepositPayload', 'InstantClaim');
35294
+ this.inner = Object.freeze(inner);
35295
+ }
35296
+
35297
+ static new(inner: { status: InstantClaimStatus }): InstantClaim_ {
35298
+ return new InstantClaim_(inner);
35299
+ }
35300
+
35301
+ static instanceOf(obj: any): obj is InstantClaim_ {
35302
+ return obj.tag === UpdateDepositPayload_Tags.InstantClaim;
35303
+ }
35304
+ }
35305
+
34183
35306
  function instanceOf(obj: any): obj is UpdateDepositPayload {
34184
35307
  return obj[uniffiTypeNameSymbol] === 'UpdateDepositPayload';
34185
35308
  }
@@ -34188,6 +35311,7 @@ export const UpdateDepositPayload = (() => {
34188
35311
  instanceOf,
34189
35312
  ClaimError: ClaimError_,
34190
35313
  Refund: Refund_,
35314
+ InstantClaim: InstantClaim_,
34191
35315
  });
34192
35316
  })();
34193
35317
 
@@ -34214,6 +35338,10 @@ const FfiConverterTypeUpdateDepositPayload = (() => {
34214
35338
  refundTxid: FfiConverterString.read(from),
34215
35339
  refundTx: FfiConverterString.read(from),
34216
35340
  });
35341
+ case 3:
35342
+ return new UpdateDepositPayload.InstantClaim({
35343
+ status: FfiConverterTypeInstantClaimStatus.read(from),
35344
+ });
34217
35345
  default:
34218
35346
  throw new UniffiInternalError.UnexpectedEnumCase();
34219
35347
  }
@@ -34233,6 +35361,12 @@ const FfiConverterTypeUpdateDepositPayload = (() => {
34233
35361
  FfiConverterString.write(inner.refundTx, into);
34234
35362
  return;
34235
35363
  }
35364
+ case UpdateDepositPayload_Tags.InstantClaim: {
35365
+ ordinalConverter.write(3, into);
35366
+ const inner = value.inner;
35367
+ FfiConverterTypeInstantClaimStatus.write(inner.status, into);
35368
+ return;
35369
+ }
34236
35370
  default:
34237
35371
  // Throwing from here means that UpdateDepositPayload_Tags hasn't matched an ordinal.
34238
35372
  throw new UniffiInternalError.UnexpectedEnumCase();
@@ -34253,6 +35387,14 @@ const FfiConverterTypeUpdateDepositPayload = (() => {
34253
35387
  size += FfiConverterString.allocationSize(inner.refundTx);
34254
35388
  return size;
34255
35389
  }
35390
+ case UpdateDepositPayload_Tags.InstantClaim: {
35391
+ const inner = value.inner;
35392
+ let size = ordinalConverter.allocationSize(3);
35393
+ size += FfiConverterTypeInstantClaimStatus.allocationSize(
35394
+ inner.status
35395
+ );
35396
+ return size;
35397
+ }
34256
35398
  default:
34257
35399
  throw new UniffiInternalError.UnexpectedEnumCase();
34258
35400
  }
@@ -35386,6 +36528,13 @@ export interface BreezSdkInterface {
35386
36528
  request: BuyBitcoinRequest,
35387
36529
  asyncOpts_?: { signal: AbortSignal }
35388
36530
  ): /*throws*/ Promise<BuyBitcoinResponse>;
36531
+ /**
36532
+ * Check whether a username is free for this wallet to register.
36533
+ *
36534
+ * The check is signed with the wallet's identity key, so every call costs
36535
+ * a signing operation and a server round trip: run it when the user
36536
+ * finishes typing, not on every keystroke.
36537
+ */
35389
36538
  checkLightningAddressAvailable(
35390
36539
  req: CheckLightningAddressRequest,
35391
36540
  asyncOpts_?: { signal: AbortSignal }
@@ -35432,6 +36581,14 @@ export interface BreezSdkInterface {
35432
36581
  id: string,
35433
36582
  asyncOpts_?: { signal: AbortSignal }
35434
36583
  ): /*throws*/ Promise<void>;
36584
+ /**
36585
+ * Give up this wallet's lightning address.
36586
+ *
36587
+ * The server holds the address for this wallet afterwards: while the hold
36588
+ * stands only this wallet can register it, so payers who kept the old
36589
+ * address are not redirected to someone else. How long a hold stands is
36590
+ * the server's policy.
36591
+ */
35435
36592
  deleteLightningAddress(asyncOpts_?: {
35436
36593
  signal: AbortSignal;
35437
36594
  }): /*throws*/ Promise<void>;
@@ -35449,6 +36606,17 @@ export interface BreezSdkInterface {
35449
36606
  * Result containing either success or an `SdkError` if the background task couldn't be stopped
35450
36607
  */
35451
36608
  disconnect(asyncOpts_?: { signal: AbortSignal }): /*throws*/ Promise<void>;
36609
+ /**
36610
+ * Serializes everything needed to unilaterally exit this wallet's funds
36611
+ * while the Spark operators are unreachable, so it can be kept somewhere
36612
+ * the wallet's own storage cannot take with it.
36613
+ *
36614
+ * The state goes stale as the wallet is used: export again whenever a
36615
+ * `UnilateralExitStateChanged` event arrives.
36616
+ */
36617
+ exportUnilateralExitState(asyncOpts_?: {
36618
+ signal: AbortSignal;
36619
+ }): /*throws*/ Promise<ExportUnilateralExitStateResponse>;
35452
36620
  fetchConversionLimits(
35453
36621
  request: FetchConversionLimitsRequest,
35454
36622
  asyncOpts_?: { signal: AbortSignal }
@@ -35457,7 +36625,9 @@ export interface BreezSdkInterface {
35457
36625
  * Returns the available cross-chain routes.
35458
36626
  *
35459
36627
  * Use [`CrossChainRouteFilter::Send`] to get routes for sending from Spark
35460
- * (filtered by the parsed recipient address), or
36628
+ * (filtered by the parsed recipient address),
36629
+ * [`CrossChainRouteFilter::PaymentLink`] for routes fundable by an external
36630
+ * fiat rail (`prepare_payment_link`), or
35461
36631
  * [`CrossChainRouteFilter::Receive`] to get routes for receiving into Spark
35462
36632
  * (optionally filtered by a source contract address).
35463
36633
  */
@@ -35503,6 +36673,27 @@ export interface BreezSdkInterface {
35503
36673
  getUserSettings(asyncOpts_?: {
35504
36674
  signal: AbortSignal;
35505
36675
  }): /*throws*/ Promise<UserSettings>;
36676
+ /**
36677
+ * Merges a previously exported exit state back into the wallet, without
36678
+ * contacting the Spark operators. A leaf the exit state does not record
36679
+ * this wallet as the owner of is skipped.
36680
+ *
36681
+ * A leaf the wallet can already exit keeps the data it has: an exit state
36682
+ * carries no mark of when it was taken, so the imported copy is used only
36683
+ * where the wallet has nothing that works. Importing an out of date state
36684
+ * therefore never costs the wallet the ability to exit a leaf.
36685
+ *
36686
+ * The exit state must come from the same network the SDK is configured
36687
+ * for.
36688
+ *
36689
+ * An out of date exit state can restore funds that have since been spent,
36690
+ * so the balance may read high until the next sync reconciles it with the
36691
+ * Spark operators.
36692
+ */
36693
+ importUnilateralExitState(
36694
+ request: ImportUnilateralExitStateRequest,
36695
+ asyncOpts_?: { signal: AbortSignal }
36696
+ ): /*throws*/ Promise<ImportUnilateralExitStateResponse>;
35506
36697
  /**
35507
36698
  * Lists contacts with optional pagination.
35508
36699
  *
@@ -35641,6 +36832,18 @@ export interface BreezSdkInterface {
35641
36832
  request: PrepareLnurlPayRequest,
35642
36833
  asyncOpts_?: { signal: AbortSignal }
35643
36834
  ): /*throws*/ Promise<PrepareLnurlPayResponse>;
36835
+ /**
36836
+ * Prepare a payment link that sends USDC/USDT to an external-chain
36837
+ * recipient, funded by Cash App over Lightning.
36838
+ *
36839
+ * Creates a cross-chain order and returns a `cash.app` deep link the payer
36840
+ * opens. Once paid, the provider delivers the stablecoin to `address`. No
36841
+ * funds move through the Spark wallet. Only available on mainnet.
36842
+ */
36843
+ preparePaymentLink(
36844
+ request: PreparePaymentLinkRequest,
36845
+ asyncOpts_?: { signal: AbortSignal }
36846
+ ): /*throws*/ Promise<PreparePaymentLinkResponse>;
35644
36847
  /**
35645
36848
  * Prepares a send to several payees, all paid by one transaction.
35646
36849
  *
@@ -35769,6 +36972,9 @@ export interface BreezSdkInterface {
35769
36972
  * Signs a message with the wallet's identity key. The message is SHA256
35770
36973
  * hashed before signing. The returned signature will be hex encoded in
35771
36974
  * DER format by default, or compact format if specified.
36975
+ *
36976
+ * Messages in the `breez-lnurl:` namespace are refused: it is reserved for
36977
+ * the SDK's own requests to the Lightning address server.
35772
36978
  */
35773
36979
  signMessage(
35774
36980
  request: SignMessageRequest,
@@ -36175,6 +37381,13 @@ export class BreezSdk
36175
37381
  }
36176
37382
  }
36177
37383
 
37384
+ /**
37385
+ * Check whether a username is free for this wallet to register.
37386
+ *
37387
+ * The check is signed with the wallet's identity key, so every call costs
37388
+ * a signing operation and a server round trip: run it when the user
37389
+ * finishes typing, not on every keystroke.
37390
+ */
36178
37391
  public async checkLightningAddressAvailable(
36179
37392
  req: CheckLightningAddressRequest,
36180
37393
  asyncOpts_?: { signal: AbortSignal }
@@ -36427,6 +37640,14 @@ export class BreezSdk
36427
37640
  }
36428
37641
  }
36429
37642
 
37643
+ /**
37644
+ * Give up this wallet's lightning address.
37645
+ *
37646
+ * The server holds the address for this wallet afterwards: while the hold
37647
+ * stands only this wallet can register it, so payers who kept the old
37648
+ * address are not redirected to someone else. How long a hold stands is
37649
+ * the server's policy.
37650
+ */
36430
37651
  public async deleteLightningAddress(asyncOpts_?: {
36431
37652
  signal: AbortSignal;
36432
37653
  }): Promise<void> /*throws*/ {
@@ -36510,6 +37731,51 @@ export class BreezSdk
36510
37731
  }
36511
37732
  }
36512
37733
 
37734
+ /**
37735
+ * Serializes everything needed to unilaterally exit this wallet's funds
37736
+ * while the Spark operators are unreachable, so it can be kept somewhere
37737
+ * the wallet's own storage cannot take with it.
37738
+ *
37739
+ * The state goes stale as the wallet is used: export again whenever a
37740
+ * `UnilateralExitStateChanged` event arrives.
37741
+ */
37742
+ public async exportUnilateralExitState(asyncOpts_?: {
37743
+ signal: AbortSignal;
37744
+ }): Promise<ExportUnilateralExitStateResponse> /*throws*/ {
37745
+ const __stack = uniffiIsDebug ? new Error().stack : undefined;
37746
+ try {
37747
+ return await uniffiRustCallAsync(
37748
+ /*rustCaller:*/ uniffiCaller,
37749
+ /*rustFutureFunc:*/ () => {
37750
+ return nativeModule().ubrn_uniffi_breez_sdk_spark_fn_method_breezsdk_export_unilateral_exit_state(
37751
+ uniffiTypeBreezSdkObjectFactory.clonePointer(this)
37752
+ );
37753
+ },
37754
+ /*pollFunc:*/ nativeModule()
37755
+ .ubrn_ffi_breez_sdk_spark_rust_future_poll_rust_buffer,
37756
+ /*cancelFunc:*/ nativeModule()
37757
+ .ubrn_ffi_breez_sdk_spark_rust_future_cancel_rust_buffer,
37758
+ /*completeFunc:*/ nativeModule()
37759
+ .ubrn_ffi_breez_sdk_spark_rust_future_complete_rust_buffer,
37760
+ /*freeFunc:*/ nativeModule()
37761
+ .ubrn_ffi_breez_sdk_spark_rust_future_free_rust_buffer,
37762
+ /*liftFunc:*/ FfiConverterTypeExportUnilateralExitStateResponse.lift.bind(
37763
+ FfiConverterTypeExportUnilateralExitStateResponse
37764
+ ),
37765
+ /*liftString:*/ FfiConverterString.lift,
37766
+ /*asyncOpts:*/ asyncOpts_,
37767
+ /*errorHandler:*/ FfiConverterTypeSdkError.lift.bind(
37768
+ FfiConverterTypeSdkError
37769
+ )
37770
+ );
37771
+ } catch (__error: any) {
37772
+ if (uniffiIsDebug && __error instanceof Error) {
37773
+ __error.stack = __stack;
37774
+ }
37775
+ throw __error;
37776
+ }
37777
+ }
37778
+
36513
37779
  public async fetchConversionLimits(
36514
37780
  request: FetchConversionLimitsRequest,
36515
37781
  asyncOpts_?: { signal: AbortSignal }
@@ -36553,7 +37819,9 @@ export class BreezSdk
36553
37819
  * Returns the available cross-chain routes.
36554
37820
  *
36555
37821
  * Use [`CrossChainRouteFilter::Send`] to get routes for sending from Spark
36556
- * (filtered by the parsed recipient address), or
37822
+ * (filtered by the parsed recipient address),
37823
+ * [`CrossChainRouteFilter::PaymentLink`] for routes fundable by an external
37824
+ * fiat rail (`prepare_payment_link`), or
36557
37825
  * [`CrossChainRouteFilter::Receive`] to get routes for receiving into Spark
36558
37826
  * (optionally filtered by a source contract address).
36559
37827
  */
@@ -36820,6 +38088,62 @@ export class BreezSdk
36820
38088
  }
36821
38089
  }
36822
38090
 
38091
+ /**
38092
+ * Merges a previously exported exit state back into the wallet, without
38093
+ * contacting the Spark operators. A leaf the exit state does not record
38094
+ * this wallet as the owner of is skipped.
38095
+ *
38096
+ * A leaf the wallet can already exit keeps the data it has: an exit state
38097
+ * carries no mark of when it was taken, so the imported copy is used only
38098
+ * where the wallet has nothing that works. Importing an out of date state
38099
+ * therefore never costs the wallet the ability to exit a leaf.
38100
+ *
38101
+ * The exit state must come from the same network the SDK is configured
38102
+ * for.
38103
+ *
38104
+ * An out of date exit state can restore funds that have since been spent,
38105
+ * so the balance may read high until the next sync reconciles it with the
38106
+ * Spark operators.
38107
+ */
38108
+ public async importUnilateralExitState(
38109
+ request: ImportUnilateralExitStateRequest,
38110
+ asyncOpts_?: { signal: AbortSignal }
38111
+ ): Promise<ImportUnilateralExitStateResponse> /*throws*/ {
38112
+ const __stack = uniffiIsDebug ? new Error().stack : undefined;
38113
+ try {
38114
+ return await uniffiRustCallAsync(
38115
+ /*rustCaller:*/ uniffiCaller,
38116
+ /*rustFutureFunc:*/ () => {
38117
+ return nativeModule().ubrn_uniffi_breez_sdk_spark_fn_method_breezsdk_import_unilateral_exit_state(
38118
+ uniffiTypeBreezSdkObjectFactory.clonePointer(this),
38119
+ FfiConverterTypeImportUnilateralExitStateRequest.lower(request)
38120
+ );
38121
+ },
38122
+ /*pollFunc:*/ nativeModule()
38123
+ .ubrn_ffi_breez_sdk_spark_rust_future_poll_rust_buffer,
38124
+ /*cancelFunc:*/ nativeModule()
38125
+ .ubrn_ffi_breez_sdk_spark_rust_future_cancel_rust_buffer,
38126
+ /*completeFunc:*/ nativeModule()
38127
+ .ubrn_ffi_breez_sdk_spark_rust_future_complete_rust_buffer,
38128
+ /*freeFunc:*/ nativeModule()
38129
+ .ubrn_ffi_breez_sdk_spark_rust_future_free_rust_buffer,
38130
+ /*liftFunc:*/ FfiConverterTypeImportUnilateralExitStateResponse.lift.bind(
38131
+ FfiConverterTypeImportUnilateralExitStateResponse
38132
+ ),
38133
+ /*liftString:*/ FfiConverterString.lift,
38134
+ /*asyncOpts:*/ asyncOpts_,
38135
+ /*errorHandler:*/ FfiConverterTypeSdkError.lift.bind(
38136
+ FfiConverterTypeSdkError
38137
+ )
38138
+ );
38139
+ } catch (__error: any) {
38140
+ if (uniffiIsDebug && __error instanceof Error) {
38141
+ __error.stack = __stack;
38142
+ }
38143
+ throw __error;
38144
+ }
38145
+ }
38146
+
36823
38147
  /**
36824
38148
  * Lists contacts with optional pagination.
36825
38149
  *
@@ -37375,6 +38699,53 @@ export class BreezSdk
37375
38699
  }
37376
38700
  }
37377
38701
 
38702
+ /**
38703
+ * Prepare a payment link that sends USDC/USDT to an external-chain
38704
+ * recipient, funded by Cash App over Lightning.
38705
+ *
38706
+ * Creates a cross-chain order and returns a `cash.app` deep link the payer
38707
+ * opens. Once paid, the provider delivers the stablecoin to `address`. No
38708
+ * funds move through the Spark wallet. Only available on mainnet.
38709
+ */
38710
+ public async preparePaymentLink(
38711
+ request: PreparePaymentLinkRequest,
38712
+ asyncOpts_?: { signal: AbortSignal }
38713
+ ): Promise<PreparePaymentLinkResponse> /*throws*/ {
38714
+ const __stack = uniffiIsDebug ? new Error().stack : undefined;
38715
+ try {
38716
+ return await uniffiRustCallAsync(
38717
+ /*rustCaller:*/ uniffiCaller,
38718
+ /*rustFutureFunc:*/ () => {
38719
+ return nativeModule().ubrn_uniffi_breez_sdk_spark_fn_method_breezsdk_prepare_payment_link(
38720
+ uniffiTypeBreezSdkObjectFactory.clonePointer(this),
38721
+ FfiConverterTypePreparePaymentLinkRequest.lower(request)
38722
+ );
38723
+ },
38724
+ /*pollFunc:*/ nativeModule()
38725
+ .ubrn_ffi_breez_sdk_spark_rust_future_poll_rust_buffer,
38726
+ /*cancelFunc:*/ nativeModule()
38727
+ .ubrn_ffi_breez_sdk_spark_rust_future_cancel_rust_buffer,
38728
+ /*completeFunc:*/ nativeModule()
38729
+ .ubrn_ffi_breez_sdk_spark_rust_future_complete_rust_buffer,
38730
+ /*freeFunc:*/ nativeModule()
38731
+ .ubrn_ffi_breez_sdk_spark_rust_future_free_rust_buffer,
38732
+ /*liftFunc:*/ FfiConverterTypePreparePaymentLinkResponse.lift.bind(
38733
+ FfiConverterTypePreparePaymentLinkResponse
38734
+ ),
38735
+ /*liftString:*/ FfiConverterString.lift,
38736
+ /*asyncOpts:*/ asyncOpts_,
38737
+ /*errorHandler:*/ FfiConverterTypeSdkError.lift.bind(
38738
+ FfiConverterTypeSdkError
38739
+ )
38740
+ );
38741
+ } catch (__error: any) {
38742
+ if (uniffiIsDebug && __error instanceof Error) {
38743
+ __error.stack = __stack;
38744
+ }
38745
+ throw __error;
38746
+ }
38747
+ }
38748
+
37378
38749
  /**
37379
38750
  * Prepares a send to several payees, all paid by one transaction.
37380
38751
  *
@@ -37986,6 +39357,9 @@ export class BreezSdk
37986
39357
  * Signs a message with the wallet's identity key. The message is SHA256
37987
39358
  * hashed before signing. The returned signature will be hex encoded in
37988
39359
  * DER format by default, or compact format if specified.
39360
+ *
39361
+ * Messages in the `breez-lnurl:` namespace are refused: it is reserved for
39362
+ * the SDK's own requests to the Lightning address server.
37989
39363
  */
37990
39364
  public async signMessage(
37991
39365
  request: SignMessageRequest,
@@ -49965,6 +51339,11 @@ const FfiConverterOptionalTypeFeePolicy = new FfiConverterOptional(
49965
51339
  FfiConverterTypeFeePolicy
49966
51340
  );
49967
51341
 
51342
+ // FfiConverter for InstantClaimStatus | undefined
51343
+ const FfiConverterOptionalTypeInstantClaimStatus = new FfiConverterOptional(
51344
+ FfiConverterTypeInstantClaimStatus
51345
+ );
51346
+
49968
51347
  // FfiConverter for MaxFee | undefined
49969
51348
  const FfiConverterOptionalTypeMaxFee = new FfiConverterOptional(
49970
51349
  FfiConverterTypeMaxFee
@@ -50057,6 +51436,11 @@ const FfiConverterArrayTypeSourceAsset = new FfiConverterArray(
50057
51436
  FfiConverterTypeSourceAsset
50058
51437
  );
50059
51438
 
51439
+ // FfiConverter for Array<SourceChain>
51440
+ const FfiConverterArrayTypeSourceChain = new FfiConverterArray(
51441
+ FfiConverterTypeSourceChain
51442
+ );
51443
+
50060
51444
  // FfiConverter for Array<SparkHtlcStatus>
50061
51445
  const FfiConverterArrayTypeSparkHtlcStatus = new FfiConverterArray(
50062
51446
  FfiConverterTypeSparkHtlcStatus
@@ -50358,7 +51742,7 @@ function uniffiEnsureInitialized() {
50358
51742
  }
50359
51743
  if (
50360
51744
  nativeModule().ubrn_uniffi_breez_sdk_spark_checksum_method_breezsdk_check_lightning_address_available() !==
50361
- 31624
51745
+ 3632
50362
51746
  ) {
50363
51747
  throw new UniffiInternalError.ApiChecksumMismatch(
50364
51748
  'uniffi_breez_sdk_spark_checksum_method_breezsdk_check_lightning_address_available'
@@ -50406,7 +51790,7 @@ function uniffiEnsureInitialized() {
50406
51790
  }
50407
51791
  if (
50408
51792
  nativeModule().ubrn_uniffi_breez_sdk_spark_checksum_method_breezsdk_delete_lightning_address() !==
50409
- 44132
51793
+ 55630
50410
51794
  ) {
50411
51795
  throw new UniffiInternalError.ApiChecksumMismatch(
50412
51796
  'uniffi_breez_sdk_spark_checksum_method_breezsdk_delete_lightning_address'
@@ -50420,6 +51804,14 @@ function uniffiEnsureInitialized() {
50420
51804
  'uniffi_breez_sdk_spark_checksum_method_breezsdk_disconnect'
50421
51805
  );
50422
51806
  }
51807
+ if (
51808
+ nativeModule().ubrn_uniffi_breez_sdk_spark_checksum_method_breezsdk_export_unilateral_exit_state() !==
51809
+ 63178
51810
+ ) {
51811
+ throw new UniffiInternalError.ApiChecksumMismatch(
51812
+ 'uniffi_breez_sdk_spark_checksum_method_breezsdk_export_unilateral_exit_state'
51813
+ );
51814
+ }
50423
51815
  if (
50424
51816
  nativeModule().ubrn_uniffi_breez_sdk_spark_checksum_method_breezsdk_fetch_conversion_limits() !==
50425
51817
  50958
@@ -50430,7 +51822,7 @@ function uniffiEnsureInitialized() {
50430
51822
  }
50431
51823
  if (
50432
51824
  nativeModule().ubrn_uniffi_breez_sdk_spark_checksum_method_breezsdk_get_cross_chain_routes() !==
50433
- 25164
51825
+ 50302
50434
51826
  ) {
50435
51827
  throw new UniffiInternalError.ApiChecksumMismatch(
50436
51828
  'uniffi_breez_sdk_spark_checksum_method_breezsdk_get_cross_chain_routes'
@@ -50484,6 +51876,14 @@ function uniffiEnsureInitialized() {
50484
51876
  'uniffi_breez_sdk_spark_checksum_method_breezsdk_get_user_settings'
50485
51877
  );
50486
51878
  }
51879
+ if (
51880
+ nativeModule().ubrn_uniffi_breez_sdk_spark_checksum_method_breezsdk_import_unilateral_exit_state() !==
51881
+ 62008
51882
+ ) {
51883
+ throw new UniffiInternalError.ApiChecksumMismatch(
51884
+ 'uniffi_breez_sdk_spark_checksum_method_breezsdk_import_unilateral_exit_state'
51885
+ );
51886
+ }
50487
51887
  if (
50488
51888
  nativeModule().ubrn_uniffi_breez_sdk_spark_checksum_method_breezsdk_list_contacts() !==
50489
51889
  2729
@@ -50580,6 +51980,14 @@ function uniffiEnsureInitialized() {
50580
51980
  'uniffi_breez_sdk_spark_checksum_method_breezsdk_prepare_lnurl_pay'
50581
51981
  );
50582
51982
  }
51983
+ if (
51984
+ nativeModule().ubrn_uniffi_breez_sdk_spark_checksum_method_breezsdk_prepare_payment_link() !==
51985
+ 15201
51986
+ ) {
51987
+ throw new UniffiInternalError.ApiChecksumMismatch(
51988
+ 'uniffi_breez_sdk_spark_checksum_method_breezsdk_prepare_payment_link'
51989
+ );
51990
+ }
50583
51991
  if (
50584
51992
  nativeModule().ubrn_uniffi_breez_sdk_spark_checksum_method_breezsdk_prepare_send_batch() !==
50585
51993
  59347
@@ -50694,7 +52102,7 @@ function uniffiEnsureInitialized() {
50694
52102
  }
50695
52103
  if (
50696
52104
  nativeModule().ubrn_uniffi_breez_sdk_spark_checksum_method_breezsdk_sign_message() !==
50697
- 57563
52105
+ 47976
50698
52106
  ) {
50699
52107
  throw new UniffiInternalError.ApiChecksumMismatch(
50700
52108
  'uniffi_breez_sdk_spark_checksum_method_breezsdk_sign_message'
@@ -51688,6 +53096,7 @@ export default Object.freeze({
51688
53096
  FfiConverterTypeEcdsaSignatureBytes,
51689
53097
  FfiConverterTypeErrorKind,
51690
53098
  FfiConverterTypeExitLeafSelection,
53099
+ FfiConverterTypeExportUnilateralExitStateResponse,
51691
53100
  FfiConverterTypeExternalBreezSigner,
51692
53101
  FfiConverterTypeExternalClaimLeafInput,
51693
53102
  FfiConverterTypeExternalFrostCommitments,
@@ -51744,8 +53153,12 @@ export default Object.freeze({
51744
53153
  FfiConverterTypeIdentifierCommitmentPair,
51745
53154
  FfiConverterTypeIdentifierPublicKeyPair,
51746
53155
  FfiConverterTypeIdentifierSignaturePair,
53156
+ FfiConverterTypeImportUnilateralExitStateRequest,
53157
+ FfiConverterTypeImportUnilateralExitStateResponse,
51747
53158
  FfiConverterTypeIncomingChange,
51748
53159
  FfiConverterTypeInputType,
53160
+ FfiConverterTypeInstantClaimDeclineReason,
53161
+ FfiConverterTypeInstantClaimStatus,
51749
53162
  FfiConverterTypeLeafOptimizationConfig,
51750
53163
  FfiConverterTypeLightningAddressDetails,
51751
53164
  FfiConverterTypeLightningAddressInfo,
@@ -51807,6 +53220,8 @@ export default Object.freeze({
51807
53220
  FfiConverterTypePerBranchFunding,
51808
53221
  FfiConverterTypePrepareLnurlPayRequest,
51809
53222
  FfiConverterTypePrepareLnurlPayResponse,
53223
+ FfiConverterTypePreparePaymentLinkRequest,
53224
+ FfiConverterTypePreparePaymentLinkResponse,
51810
53225
  FfiConverterTypePrepareSendBatchRequest,
51811
53226
  FfiConverterTypePrepareSendBatchResponse,
51812
53227
  FfiConverterTypePrepareSendPaymentRequest,
@@ -51876,6 +53291,7 @@ export default Object.freeze({
51876
53291
  FfiConverterTypeSigningOnlyExternalSigners,
51877
53292
  FfiConverterTypeSilentPaymentAddressDetails,
51878
53293
  FfiConverterTypeSourceAsset,
53294
+ FfiConverterTypeSourceChain,
51879
53295
  FfiConverterTypeSparkAddressDetails,
51880
53296
  FfiConverterTypeSparkConfig,
51881
53297
  FfiConverterTypeSparkHtlcDetails,