@breeztech/breez-sdk-spark-react-native 0.16.1-dev1 → 0.17.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.
@@ -76,8 +76,8 @@ export declare function defaultExternalSigners(mnemonic: string, passphrase: str
76
76
  * explicitly, so an ephemeral SDK instance stays cheap and predictable.
77
77
  *
78
78
  * Config fields whose background services are gated off are reset to their
79
- * inactive shape: `real_time_sync_server_url` is set to `None`, and both
80
- * `leaf_optimization_config.auto_enabled` and
79
+ * inactive shape: `real_time_sync_server_url` and `cross_chain_config` are
80
+ * set to `None`, and both `leaf_optimization_config.auto_enabled` and
81
81
  * `token_optimization_config.auto_enabled` are set to `false`. The SDK
82
82
  * rejects builds where `background_tasks_enabled` is `false` and any of
83
83
  * those fields is left in its active shape, so flip the flag via this
@@ -985,6 +985,16 @@ export type Config = {
985
985
  * `default_server_config` already sets these compatible values.
986
986
  */
987
987
  backgroundTasksEnabled: boolean;
988
+ /**
989
+ * Configuration for cross-chain sends via Orchestra and Boltz.
990
+ *
991
+ * `Some(_)` enables cross-chain sends (sats to USDT on external chains).
992
+ * `None` (default) disables them entirely. Opt in by setting this to
993
+ * [`CrossChainConfig::default`] (or a customized value): the providers
994
+ * run background work (e.g. web sockets), so enabling is left to the
995
+ * caller. Cross-chain sends are only supported on mainnet.
996
+ */
997
+ crossChainConfig: CrossChainConfig | undefined;
988
998
  };
989
999
  /**
990
1000
  * Generated factory for {@link Config} record objects.
@@ -1174,24 +1184,108 @@ export declare const Contact: Readonly<{
1174
1184
  defaults: () => Partial<Contact>;
1175
1185
  }>;
1176
1186
  /**
1177
- * Outlines the steps involved in a conversion.
1187
+ * A single conversion in a payment's conversion chain.
1188
+ */
1189
+ export type Conversion = {
1190
+ /**
1191
+ * The provider that performed this conversion
1192
+ */
1193
+ provider: ConversionProvider;
1194
+ /**
1195
+ * Status of this specific conversion step
1196
+ */
1197
+ status: ConversionStatus;
1198
+ /**
1199
+ * Source side of the conversion
1200
+ */
1201
+ from: ConversionSide;
1202
+ /**
1203
+ * Destination side of the conversion
1204
+ */
1205
+ to: ConversionSide;
1206
+ /**
1207
+ * Reason the conversion amount was adjusted, if applicable (AMM only)
1208
+ */
1209
+ amountAdjustment: AmountAdjustmentReason | undefined;
1210
+ };
1211
+ /**
1212
+ * Generated factory for {@link Conversion} record objects.
1213
+ */
1214
+ export declare const Conversion: Readonly<{
1215
+ /**
1216
+ * Create a frozen instance of {@link Conversion}, with defaults specified
1217
+ * in Rust, in the {@link breez_sdk_spark} crate.
1218
+ */
1219
+ create: (partial: Partial<Conversion> & Required<Omit<Conversion, never>>) => Conversion;
1220
+ /**
1221
+ * Create a frozen instance of {@link Conversion}, with defaults specified
1222
+ * in Rust, in the {@link breez_sdk_spark} crate.
1223
+ */
1224
+ new: (partial: Partial<Conversion> & Required<Omit<Conversion, never>>) => Conversion;
1225
+ /**
1226
+ * Defaults specified in the {@link breez_sdk_spark} crate.
1227
+ */
1228
+ defaults: () => Partial<Conversion>;
1229
+ }>;
1230
+ /**
1231
+ * The asset on a [`ConversionSide`] — groups the ticker, stable identifier,
1232
+ * and decimals that always travel together.
1233
+ */
1234
+ export type ConversionAsset = {
1235
+ /**
1236
+ * Ticker (e.g. `"BTC"`, `"USDB"`, `"USDC"`, `"USDT"`). Tickers alone
1237
+ * are ambiguous across chains — pair with [`Self::identifier`] for a
1238
+ * hard match.
1239
+ */
1240
+ ticker: string;
1241
+ /**
1242
+ * Stable identifier: a Spark token identifier for Spark tokens, or a
1243
+ * contract/mint address for cross-chain assets. `None` for BTC/sats.
1244
+ */
1245
+ identifier: string | undefined;
1246
+ /**
1247
+ * Number of decimals for the asset.
1248
+ * `0` for BTC/sats sides (amount is already in the smallest unit,
1249
+ * so no scaling is needed); non-zero for token assets (e.g. `6` for
1250
+ * USDC/USDT/USDB).
1251
+ */
1252
+ decimals: number;
1253
+ };
1254
+ /**
1255
+ * Generated factory for {@link ConversionAsset} record objects.
1256
+ */
1257
+ export declare const ConversionAsset: Readonly<{
1258
+ /**
1259
+ * Create a frozen instance of {@link ConversionAsset}, with defaults specified
1260
+ * in Rust, in the {@link breez_sdk_spark} crate.
1261
+ */
1262
+ create: (partial: Partial<ConversionAsset> & Required<Omit<ConversionAsset, never>>) => ConversionAsset;
1263
+ /**
1264
+ * Create a frozen instance of {@link ConversionAsset}, with defaults specified
1265
+ * in Rust, in the {@link breez_sdk_spark} crate.
1266
+ */
1267
+ new: (partial: Partial<ConversionAsset> & Required<Omit<ConversionAsset, never>>) => ConversionAsset;
1268
+ /**
1269
+ * Defaults specified in the {@link breez_sdk_spark} crate.
1270
+ */
1271
+ defaults: () => Partial<ConversionAsset>;
1272
+ }>;
1273
+ /**
1274
+ * Outlines the steps involved in one or more conversions on a payment.
1178
1275
  *
1179
1276
  * Built progressively: `status` is available immediately from payment metadata,
1180
- * while `from`/`to` steps are enriched later from child payments.
1277
+ * while `conversions` are enriched later from child payments and conversion info.
1181
1278
  */
1182
1279
  export type ConversionDetails = {
1183
1280
  /**
1184
- * Current status of the conversion
1281
+ * Overall status of the conversion (persisted in storage)
1185
1282
  */
1186
1283
  status: ConversionStatus;
1187
1284
  /**
1188
- * The send step of the conversion (e.g., sats sent to Flashnet)
1189
- */
1190
- from: ConversionStep | undefined;
1191
- /**
1192
- * The receive step of the conversion (e.g., tokens received from Flashnet)
1285
+ * Ordered list of conversion steps. For sends: [AMM, cross-chain].
1286
+ * For receives: [cross-chain, AMM]. Rebuilt on retrieval, not persisted.
1193
1287
  */
1194
- to: ConversionStep | undefined;
1288
+ conversions: Array<Conversion>;
1195
1289
  };
1196
1290
  /**
1197
1291
  * Generated factory for {@link ConversionDetails} record objects.
@@ -1261,52 +1355,6 @@ export declare const ConversionEstimate: Readonly<{
1261
1355
  */
1262
1356
  defaults: () => Partial<ConversionEstimate>;
1263
1357
  }>;
1264
- export type ConversionInfo = {
1265
- /**
1266
- * The pool id associated with the conversion
1267
- */
1268
- poolId: string;
1269
- /**
1270
- * The conversion id shared by both sides of the conversion
1271
- */
1272
- conversionId: string;
1273
- /**
1274
- * The status of the conversion
1275
- */
1276
- status: ConversionStatus;
1277
- /**
1278
- * The fee paid for the conversion
1279
- * Denominated in satoshis if converting from Bitcoin, otherwise in the token base units.
1280
- */
1281
- fee: U128 | undefined;
1282
- /**
1283
- * The purpose of the conversion
1284
- */
1285
- purpose: ConversionPurpose | undefined;
1286
- /**
1287
- * The reason the conversion amount was adjusted, if applicable.
1288
- */
1289
- amountAdjustment: AmountAdjustmentReason | undefined;
1290
- };
1291
- /**
1292
- * Generated factory for {@link ConversionInfo} record objects.
1293
- */
1294
- export declare const ConversionInfo: Readonly<{
1295
- /**
1296
- * Create a frozen instance of {@link ConversionInfo}, with defaults specified
1297
- * in Rust, in the {@link breez_sdk_spark} crate.
1298
- */
1299
- create: (partial: Partial<ConversionInfo> & Required<Omit<ConversionInfo, never>>) => ConversionInfo;
1300
- /**
1301
- * Create a frozen instance of {@link ConversionInfo}, with defaults specified
1302
- * in Rust, in the {@link breez_sdk_spark} crate.
1303
- */
1304
- new: (partial: Partial<ConversionInfo> & Required<Omit<ConversionInfo, never>>) => ConversionInfo;
1305
- /**
1306
- * Defaults specified in the {@link breez_sdk_spark} crate.
1307
- */
1308
- defaults: () => Partial<ConversionInfo>;
1309
- }>;
1310
1358
  /**
1311
1359
  * Options for conversion when fulfilling a payment. When set, the SDK will
1312
1360
  * perform a conversion before fulfilling the payment. If not set, the payment
@@ -1352,53 +1400,44 @@ export declare const ConversionOptions: Readonly<{
1352
1400
  defaults: () => Partial<ConversionOptions>;
1353
1401
  }>;
1354
1402
  /**
1355
- * A single step in a conversion
1403
+ * One side (source or destination) of a conversion.
1356
1404
  */
1357
- export type ConversionStep = {
1358
- /**
1359
- * The underlying payment id of the conversion step
1360
- */
1361
- paymentId: string;
1405
+ export type ConversionSide = {
1362
1406
  /**
1363
- * Payment amount in satoshis or token base units
1407
+ * The chain or network for this side.
1364
1408
  */
1365
- amount: U128;
1366
- /**
1367
- * Fee paid in satoshis or token base units
1368
- * This represents the payment fee + the conversion fee
1369
- */
1370
- fee: U128;
1409
+ chain: ConversionChain;
1371
1410
  /**
1372
- * Method of payment
1411
+ * The asset being converted on this side.
1373
1412
  */
1374
- method: PaymentMethod;
1413
+ asset: ConversionAsset;
1375
1414
  /**
1376
- * Token metadata if a token is used for payment
1415
+ * Amount in base units (satoshis or token base units)
1377
1416
  */
1378
- tokenMetadata: TokenMetadata | undefined;
1417
+ amount: U128;
1379
1418
  /**
1380
- * The reason the conversion amount was adjusted, if applicable.
1419
+ * Fee in the same base units
1381
1420
  */
1382
- amountAdjustment: AmountAdjustmentReason | undefined;
1421
+ fee: U128;
1383
1422
  };
1384
1423
  /**
1385
- * Generated factory for {@link ConversionStep} record objects.
1424
+ * Generated factory for {@link ConversionSide} record objects.
1386
1425
  */
1387
- export declare const ConversionStep: Readonly<{
1426
+ export declare const ConversionSide: Readonly<{
1388
1427
  /**
1389
- * Create a frozen instance of {@link ConversionStep}, with defaults specified
1428
+ * Create a frozen instance of {@link ConversionSide}, with defaults specified
1390
1429
  * in Rust, in the {@link breez_sdk_spark} crate.
1391
1430
  */
1392
- create: (partial: Partial<ConversionStep> & Required<Omit<ConversionStep, never>>) => ConversionStep;
1431
+ create: (partial: Partial<ConversionSide> & Required<Omit<ConversionSide, never>>) => ConversionSide;
1393
1432
  /**
1394
- * Create a frozen instance of {@link ConversionStep}, with defaults specified
1433
+ * Create a frozen instance of {@link ConversionSide}, with defaults specified
1395
1434
  * in Rust, in the {@link breez_sdk_spark} crate.
1396
1435
  */
1397
- new: (partial: Partial<ConversionStep> & Required<Omit<ConversionStep, never>>) => ConversionStep;
1436
+ new: (partial: Partial<ConversionSide> & Required<Omit<ConversionSide, never>>) => ConversionSide;
1398
1437
  /**
1399
1438
  * Defaults specified in the {@link breez_sdk_spark} crate.
1400
1439
  */
1401
- defaults: () => Partial<ConversionStep>;
1440
+ defaults: () => Partial<ConversionSide>;
1402
1441
  }>;
1403
1442
  export type CreateIssuerTokenRequest = {
1404
1443
  name: string;
@@ -1449,6 +1488,137 @@ export declare const Credentials: Readonly<{
1449
1488
  */
1450
1489
  defaults: () => Partial<Credentials>;
1451
1490
  }>;
1491
+ export type CrossChainAddressDetails = {
1492
+ address: string;
1493
+ addressFamily: CrossChainAddressFamily;
1494
+ contractAddress: string | undefined;
1495
+ chainId: /*u64*/ bigint | undefined;
1496
+ amount: U128 | undefined;
1497
+ };
1498
+ /**
1499
+ * Generated factory for {@link CrossChainAddressDetails} record objects.
1500
+ */
1501
+ export declare const CrossChainAddressDetails: Readonly<{
1502
+ /**
1503
+ * Create a frozen instance of {@link CrossChainAddressDetails}, with defaults specified
1504
+ * in Rust, in the {@link breez_sdk_spark} crate.
1505
+ */
1506
+ create: (partial: Partial<CrossChainAddressDetails> & Required<Omit<CrossChainAddressDetails, never>>) => CrossChainAddressDetails;
1507
+ /**
1508
+ * Create a frozen instance of {@link CrossChainAddressDetails}, with defaults specified
1509
+ * in Rust, in the {@link breez_sdk_spark} crate.
1510
+ */
1511
+ new: (partial: Partial<CrossChainAddressDetails> & Required<Omit<CrossChainAddressDetails, never>>) => CrossChainAddressDetails;
1512
+ /**
1513
+ * Defaults specified in the {@link breez_sdk_spark} crate.
1514
+ */
1515
+ defaults: () => Partial<CrossChainAddressDetails>;
1516
+ }>;
1517
+ /**
1518
+ * Configuration for cross-chain sends.
1519
+ *
1520
+ * The presence of this struct on [`Config::cross_chain_config`] enables
1521
+ * cross-chain providers; `None` disables them.
1522
+ */
1523
+ export type CrossChainConfig = {
1524
+ /**
1525
+ * Default maximum slippage in basis points used when
1526
+ * [`PaymentRequest::CrossChain::max_slippage_bps`] is not set on the
1527
+ * prepare request. Must be in `10..=500`. Falls back to 100 bps (1%)
1528
+ * when this field is `None`.
1529
+ */
1530
+ defaultSlippageBps: /*u32*/ number | undefined;
1531
+ /**
1532
+ * Default target-overpay pad in basis points applied to the user's
1533
+ * destination amount on `FeesExcluded` conversion sends. Bumps the
1534
+ * target upward before quoting so the recipient lands at or above the
1535
+ * requested amount despite provider slippage. Must be in `0..=500`.
1536
+ * Falls back to 15 bps when `None`.
1537
+ */
1538
+ defaultTargetOverpayBps: /*u32*/ number | undefined;
1539
+ };
1540
+ /**
1541
+ * Generated factory for {@link CrossChainConfig} record objects.
1542
+ */
1543
+ export declare const CrossChainConfig: Readonly<{
1544
+ /**
1545
+ * Create a frozen instance of {@link CrossChainConfig}, with defaults specified
1546
+ * in Rust, in the {@link breez_sdk_spark} crate.
1547
+ */
1548
+ create: (partial: Partial<CrossChainConfig> & Required<Omit<CrossChainConfig, "defaultSlippageBps" | "defaultTargetOverpayBps">>) => CrossChainConfig;
1549
+ /**
1550
+ * Create a frozen instance of {@link CrossChainConfig}, with defaults specified
1551
+ * in Rust, in the {@link breez_sdk_spark} crate.
1552
+ */
1553
+ new: (partial: Partial<CrossChainConfig> & Required<Omit<CrossChainConfig, "defaultSlippageBps" | "defaultTargetOverpayBps">>) => CrossChainConfig;
1554
+ /**
1555
+ * Defaults specified in the {@link breez_sdk_spark} crate.
1556
+ */
1557
+ defaults: () => Partial<CrossChainConfig>;
1558
+ }>;
1559
+ /**
1560
+ * A single route available for cross-chain transfers, tagged with the provider
1561
+ * that offers it. Returned by `get_cross_chain_routes()`.
1562
+ */
1563
+ export type CrossChainRoutePair = {
1564
+ /**
1565
+ * Which provider offers this route.
1566
+ */
1567
+ provider: CrossChainProvider;
1568
+ /**
1569
+ * Destination blockchain (e.g. `"base"`, `"solana"`, `"tron"`).
1570
+ */
1571
+ chain: string;
1572
+ /**
1573
+ * Stable chain identifier (e.g. EVM `chainId` as a decimal string).
1574
+ * `None` for non-EVM chains that don't expose one, or when the
1575
+ * provider doesn't surface it.
1576
+ */
1577
+ chainId: string | undefined;
1578
+ /**
1579
+ * Destination asset symbol (e.g. `"USDC"`, `"USDT"`).
1580
+ */
1581
+ asset: string;
1582
+ /**
1583
+ * Token contract / mint address on the destination chain.
1584
+ */
1585
+ contractAddress: string | undefined;
1586
+ /**
1587
+ * Decimal places for the destination asset.
1588
+ */
1589
+ decimals: number;
1590
+ /**
1591
+ * Whether the route supports exact-out mode.
1592
+ */
1593
+ exactOutEligible: boolean;
1594
+ /**
1595
+ * The source assets this route accepts on the Spark side.
1596
+ *
1597
+ * Boltz routes accept `[SourceAsset::Bitcoin]`. Orchestra routes accept
1598
+ * one or more of `Bitcoin` / `Token(...)` (a given destination endpoint
1599
+ * may be fronted by multiple source variants on Orchestra).
1600
+ */
1601
+ supportedSources: Array<SourceAsset>;
1602
+ };
1603
+ /**
1604
+ * Generated factory for {@link CrossChainRoutePair} record objects.
1605
+ */
1606
+ export declare const CrossChainRoutePair: Readonly<{
1607
+ /**
1608
+ * Create a frozen instance of {@link CrossChainRoutePair}, with defaults specified
1609
+ * in Rust, in the {@link breez_sdk_spark} crate.
1610
+ */
1611
+ create: (partial: Partial<CrossChainRoutePair> & Required<Omit<CrossChainRoutePair, never>>) => CrossChainRoutePair;
1612
+ /**
1613
+ * Create a frozen instance of {@link CrossChainRoutePair}, with defaults specified
1614
+ * in Rust, in the {@link breez_sdk_spark} crate.
1615
+ */
1616
+ new: (partial: Partial<CrossChainRoutePair> & Required<Omit<CrossChainRoutePair, never>>) => CrossChainRoutePair;
1617
+ /**
1618
+ * Defaults specified in the {@link breez_sdk_spark} crate.
1619
+ */
1620
+ defaults: () => Partial<CrossChainRoutePair>;
1621
+ }>;
1452
1622
  /**
1453
1623
  * Details about a supported currency in the fiat rate feed
1454
1624
  */
@@ -4105,6 +4275,10 @@ export type PaymentMetadata = {
4105
4275
  lnurlPayInfo: LnurlPayInfo | undefined;
4106
4276
  lnurlWithdrawInfo: LnurlWithdrawInfo | undefined;
4107
4277
  lnurlDescription: string | undefined;
4278
+ /**
4279
+ * Conversion info for this payment. Defaults `"type"` to `"amm"` when the
4280
+ * tag is missing (pre-migration sync records).
4281
+ */
4108
4282
  conversionInfo: ConversionInfo | undefined;
4109
4283
  conversionStatus: ConversionStatus | undefined;
4110
4284
  };
@@ -4168,7 +4342,7 @@ export type PrepareLnurlPayRequest = {
4168
4342
  */
4169
4343
  conversionOptions: ConversionOptions | undefined;
4170
4344
  /**
4171
- * How fees should be handled. Defaults to `FeesExcluded` (fees added on top).
4345
+ * How fees are handled. See [`FeePolicy`]. Defaults to `FeesExcluded`.
4172
4346
  */
4173
4347
  feePolicy: FeePolicy | undefined;
4174
4348
  };
@@ -4213,7 +4387,9 @@ export type PrepareLnurlPayResponse = {
4213
4387
  */
4214
4388
  conversionEstimate: ConversionEstimate | undefined;
4215
4389
  /**
4216
- * How fees are handled for this payment.
4390
+ * The fee policy actually applied. May differ from the request — e.g.,
4391
+ * LNURL sends with `token_identifier` set + conversion are always
4392
+ * `FeesIncluded` (explicit `FeesExcluded` is rejected).
4217
4393
  */
4218
4394
  feePolicy: FeePolicy;
4219
4395
  };
@@ -4237,7 +4413,7 @@ export declare const PrepareLnurlPayResponse: Readonly<{
4237
4413
  defaults: () => Partial<PrepareLnurlPayResponse>;
4238
4414
  }>;
4239
4415
  export type PrepareSendPaymentRequest = {
4240
- paymentRequest: string;
4416
+ paymentRequest: PaymentRequest;
4241
4417
  /**
4242
4418
  * The amount to send.
4243
4419
  * Optional for payment requests with embedded amounts (e.g., Spark/Bolt11 invoices with amounts).
@@ -4255,7 +4431,13 @@ export type PrepareSendPaymentRequest = {
4255
4431
  */
4256
4432
  conversionOptions: ConversionOptions | undefined;
4257
4433
  /**
4258
- * How fees should be handled. Defaults to `FeesExcluded` (fees added on top).
4434
+ * How fees are handled. See [`FeePolicy`]. Defaults to `FeesExcluded`.
4435
+ *
4436
+ * Ignored on cross-chain AMM-conversion sends (whether the conversion was
4437
+ * explicitly requested or auto-injected by stable balance) — fees come
4438
+ * out of the converted sats. Bolt11 and Bitcoin AMM-conversion sends
4439
+ * still respect this field by sizing the conversion to cover fees. The
4440
+ * prepare response's `fee_policy` reflects what was actually applied.
4259
4441
  */
4260
4442
  feePolicy: FeePolicy | undefined;
4261
4443
  };
@@ -4297,7 +4479,8 @@ export type PrepareSendPaymentResponse = {
4297
4479
  */
4298
4480
  conversionEstimate: ConversionEstimate | undefined;
4299
4481
  /**
4300
- * How fees are handled for this payment.
4482
+ * The fee policy actually applied. May differ from the request — e.g.,
4483
+ * cross-chain AMM-conversion sends are always `FeesIncluded`.
4301
4484
  */
4302
4485
  feePolicy: FeePolicy;
4303
4486
  };
@@ -4966,7 +5149,8 @@ export type SendPaymentRequest = {
4966
5149
  prepareResponse: PrepareSendPaymentResponse;
4967
5150
  options: SendPaymentOptions | undefined;
4968
5151
  /**
4969
- * The optional idempotency key for all Spark based transfers (excludes token payments).
5152
+ * The optional idempotency key for all Spark based transfers (excludes token payments
5153
+ * and cross-chain sends).
4970
5154
  * If set, providing the same idempotency key for multiple requests will ensure that only one
4971
5155
  * payment is made. If an idempotency key is re-used, the same payment will be returned.
4972
5156
  * The idempotency key must be a valid UUID.
@@ -5514,6 +5698,13 @@ export type SparkSigningOperator = {
5514
5698
  * Hex-encoded compressed public key of the operator.
5515
5699
  */
5516
5700
  identityPublicKey: string;
5701
+ /**
5702
+ * Optional PEM-encoded CA certificate for TLS verification.
5703
+ * When set, the SDK uses this CA to verify the operator's TLS certificate
5704
+ * instead of the system/default roots. Useful for local development with
5705
+ * self-signed certificates.
5706
+ */
5707
+ caCertPem: string | undefined;
5517
5708
  };
5518
5709
  /**
5519
5710
  * Generated factory for {@link SparkSigningOperator} record objects.
@@ -5734,6 +5925,64 @@ export declare const StorageListPaymentsRequest: Readonly<{
5734
5925
  */
5735
5926
  defaults: () => Partial<StorageListPaymentsRequest>;
5736
5927
  }>;
5928
+ /**
5929
+ * A cross-chain swap row as persisted and synced. Shared across providers
5930
+ * (Boltz, Orchestra, future) so each provider's adapter writes opaque
5931
+ * JSON into `data` and (optionally) opaque ciphertext into `secrets`.
5932
+ *
5933
+ * For providers with money-critical secrets, the adapter lifts them out of
5934
+ * the swap JSON, ECIES-encrypts them, and carries only the ciphertext in
5935
+ * `secrets`. The storage layer treats both fields as opaque, so it needs
5936
+ * no signer.
5937
+ */
5938
+ export type StoredCrossChainSwap = {
5939
+ /**
5940
+ * Provider tag (e.g. `"boltz"`, `"orchestra"`).
5941
+ */
5942
+ provider: string;
5943
+ /**
5944
+ * Provider-scoped swap id (boltz swap id, orchestra quote-or-order id).
5945
+ */
5946
+ id: string;
5947
+ /**
5948
+ * Lifted from the underlying swap's terminal flag into an indexed column
5949
+ * so `list_active_cross_chain_swaps` filters without parsing `data`.
5950
+ */
5951
+ isTerminal: boolean;
5952
+ /**
5953
+ * Lifted from the underlying swap's `updated_at` into a column so the
5954
+ * row's freshness is inspectable without parsing `data`.
5955
+ */
5956
+ updatedAt: bigint;
5957
+ /**
5958
+ * Serialized JSON owned by the cross-chain provider's storage adapter.
5959
+ */
5960
+ data: string;
5961
+ /**
5962
+ * Base64 of the ECIES ciphertext of the provider's lifted secrets.
5963
+ * Empty for providers with no money-critical secrets to protect at rest.
5964
+ */
5965
+ secrets: string;
5966
+ };
5967
+ /**
5968
+ * Generated factory for {@link StoredCrossChainSwap} record objects.
5969
+ */
5970
+ export declare const StoredCrossChainSwap: Readonly<{
5971
+ /**
5972
+ * Create a frozen instance of {@link StoredCrossChainSwap}, with defaults specified
5973
+ * in Rust, in the {@link breez_sdk_spark} crate.
5974
+ */
5975
+ create: (partial: Partial<StoredCrossChainSwap> & Required<Omit<StoredCrossChainSwap, never>>) => StoredCrossChainSwap;
5976
+ /**
5977
+ * Create a frozen instance of {@link StoredCrossChainSwap}, with defaults specified
5978
+ * in Rust, in the {@link breez_sdk_spark} crate.
5979
+ */
5980
+ new: (partial: Partial<StoredCrossChainSwap> & Required<Omit<StoredCrossChainSwap, never>>) => StoredCrossChainSwap;
5981
+ /**
5982
+ * Defaults specified in the {@link breez_sdk_spark} crate.
5983
+ */
5984
+ defaults: () => Partial<StoredCrossChainSwap>;
5985
+ }>;
5737
5986
  /**
5738
5987
  * Settings for the symbol representation of a currency
5739
5988
  */
@@ -7290,93 +7539,770 @@ export declare const ChainServiceError: Readonly<{
7290
7539
  };
7291
7540
  }>;
7292
7541
  export type ChainServiceError = InstanceType<(typeof ChainServiceError)[keyof Omit<typeof ChainServiceError, 'instanceOf'>]>;
7293
- export declare enum ConversionPurpose_Tags {
7294
- OngoingPayment = "OngoingPayment",
7295
- SelfTransfer = "SelfTransfer",
7296
- AutoConversion = "AutoConversion"
7542
+ export declare enum ConversionChain_Tags {
7543
+ Spark = "Spark",
7544
+ Lightning = "Lightning",
7545
+ External = "External"
7297
7546
  }
7298
7547
  /**
7299
- * The purpose of the conversion, which is used to provide context for the conversion
7300
- * if its related to an ongoing payment or a self-transfer.
7548
+ * The chain or network that a [`ConversionSide`] lives on.
7301
7549
  */
7302
- export declare const ConversionPurpose: Readonly<{
7303
- instanceOf: (obj: any) => obj is ConversionPurpose;
7304
- OngoingPayment: {
7305
- new (inner: {
7306
- /**
7307
- * The payment request of the ongoing payment
7308
- */ paymentRequest: string;
7309
- }): {
7310
- readonly tag: ConversionPurpose_Tags.OngoingPayment;
7311
- readonly inner: Readonly<{
7312
- paymentRequest: string;
7313
- }>;
7550
+ export declare const ConversionChain: Readonly<{
7551
+ instanceOf: (obj: any) => obj is ConversionChain;
7552
+ Spark: {
7553
+ new (): {
7554
+ readonly tag: ConversionChain_Tags.Spark;
7314
7555
  /**
7315
7556
  * @private
7316
7557
  * This field is private and should not be used, use `tag` instead.
7317
7558
  */
7318
- readonly [uniffiTypeNameSymbol]: "ConversionPurpose";
7559
+ readonly [uniffiTypeNameSymbol]: "ConversionChain";
7319
7560
  };
7320
- "new"(inner: {
7321
- /**
7322
- * The payment request of the ongoing payment
7323
- */ paymentRequest: string;
7324
- }): {
7325
- readonly tag: ConversionPurpose_Tags.OngoingPayment;
7326
- readonly inner: Readonly<{
7327
- paymentRequest: string;
7328
- }>;
7561
+ "new"(): {
7562
+ readonly tag: ConversionChain_Tags.Spark;
7329
7563
  /**
7330
7564
  * @private
7331
7565
  * This field is private and should not be used, use `tag` instead.
7332
7566
  */
7333
- readonly [uniffiTypeNameSymbol]: "ConversionPurpose";
7567
+ readonly [uniffiTypeNameSymbol]: "ConversionChain";
7334
7568
  };
7335
7569
  instanceOf(obj: any): obj is {
7336
- readonly tag: ConversionPurpose_Tags.OngoingPayment;
7337
- readonly inner: Readonly<{
7338
- paymentRequest: string;
7339
- }>;
7570
+ readonly tag: ConversionChain_Tags.Spark;
7340
7571
  /**
7341
7572
  * @private
7342
7573
  * This field is private and should not be used, use `tag` instead.
7343
7574
  */
7344
- readonly [uniffiTypeNameSymbol]: "ConversionPurpose";
7575
+ readonly [uniffiTypeNameSymbol]: "ConversionChain";
7345
7576
  };
7346
7577
  };
7347
- SelfTransfer: {
7578
+ Lightning: {
7348
7579
  new (): {
7349
- readonly tag: ConversionPurpose_Tags.SelfTransfer;
7580
+ readonly tag: ConversionChain_Tags.Lightning;
7350
7581
  /**
7351
7582
  * @private
7352
7583
  * This field is private and should not be used, use `tag` instead.
7353
7584
  */
7354
- readonly [uniffiTypeNameSymbol]: "ConversionPurpose";
7585
+ readonly [uniffiTypeNameSymbol]: "ConversionChain";
7355
7586
  };
7356
7587
  "new"(): {
7357
- readonly tag: ConversionPurpose_Tags.SelfTransfer;
7588
+ readonly tag: ConversionChain_Tags.Lightning;
7358
7589
  /**
7359
7590
  * @private
7360
7591
  * This field is private and should not be used, use `tag` instead.
7361
7592
  */
7362
- readonly [uniffiTypeNameSymbol]: "ConversionPurpose";
7593
+ readonly [uniffiTypeNameSymbol]: "ConversionChain";
7363
7594
  };
7364
7595
  instanceOf(obj: any): obj is {
7365
- readonly tag: ConversionPurpose_Tags.SelfTransfer;
7596
+ readonly tag: ConversionChain_Tags.Lightning;
7366
7597
  /**
7367
7598
  * @private
7368
7599
  * This field is private and should not be used, use `tag` instead.
7369
7600
  */
7370
- readonly [uniffiTypeNameSymbol]: "ConversionPurpose";
7601
+ readonly [uniffiTypeNameSymbol]: "ConversionChain";
7371
7602
  };
7372
7603
  };
7373
- AutoConversion: {
7374
- new (): {
7375
- readonly tag: ConversionPurpose_Tags.AutoConversion;
7604
+ External: {
7605
+ new (inner: {
7376
7606
  /**
7377
- * @private
7378
- * This field is private and should not be used, use `tag` instead.
7379
- */
7607
+ * Human-readable chain name (e.g. `"base"`, `"solana"`, `"arbitrum"`).
7608
+ */ name: string;
7609
+ /**
7610
+ * Stable chain identifier (e.g. EVM `chainId` as a decimal string,
7611
+ * or a chain-native identifier). `None` when the provider does not
7612
+ * expose one for this route.
7613
+ */ chainId: string | undefined;
7614
+ }): {
7615
+ readonly tag: ConversionChain_Tags.External;
7616
+ readonly inner: Readonly<{
7617
+ name: string;
7618
+ chainId: string | undefined;
7619
+ }>;
7620
+ /**
7621
+ * @private
7622
+ * This field is private and should not be used, use `tag` instead.
7623
+ */
7624
+ readonly [uniffiTypeNameSymbol]: "ConversionChain";
7625
+ };
7626
+ "new"(inner: {
7627
+ /**
7628
+ * Human-readable chain name (e.g. `"base"`, `"solana"`, `"arbitrum"`).
7629
+ */ name: string;
7630
+ /**
7631
+ * Stable chain identifier (e.g. EVM `chainId` as a decimal string,
7632
+ * or a chain-native identifier). `None` when the provider does not
7633
+ * expose one for this route.
7634
+ */ chainId: string | undefined;
7635
+ }): {
7636
+ readonly tag: ConversionChain_Tags.External;
7637
+ readonly inner: Readonly<{
7638
+ name: string;
7639
+ chainId: string | undefined;
7640
+ }>;
7641
+ /**
7642
+ * @private
7643
+ * This field is private and should not be used, use `tag` instead.
7644
+ */
7645
+ readonly [uniffiTypeNameSymbol]: "ConversionChain";
7646
+ };
7647
+ instanceOf(obj: any): obj is {
7648
+ readonly tag: ConversionChain_Tags.External;
7649
+ readonly inner: Readonly<{
7650
+ name: string;
7651
+ chainId: string | undefined;
7652
+ }>;
7653
+ /**
7654
+ * @private
7655
+ * This field is private and should not be used, use `tag` instead.
7656
+ */
7657
+ readonly [uniffiTypeNameSymbol]: "ConversionChain";
7658
+ };
7659
+ };
7660
+ }>;
7661
+ /**
7662
+ * The chain or network that a [`ConversionSide`] lives on.
7663
+ */
7664
+ export type ConversionChain = InstanceType<(typeof ConversionChain)[keyof Omit<typeof ConversionChain, 'instanceOf'>]>;
7665
+ /**
7666
+ * Selects payments by conversion type + status for background tasks.
7667
+ */
7668
+ export declare enum ConversionFilter {
7669
+ /**
7670
+ * AMM conversions that need a refund (clawback).
7671
+ */
7672
+ AmmRefundNeeded = 0,
7673
+ /**
7674
+ * Orchestra orders that have not yet reached a terminal state.
7675
+ */
7676
+ OrchestraPending = 1,
7677
+ /**
7678
+ * Boltz reverse swaps that have not yet reached a terminal state. Lives on
7679
+ * the Lightning leg (the hold-invoice pay), so it is selected via the
7680
+ * [`StoragePaymentDetailsFilter::Lightning`] filter.
7681
+ */
7682
+ BoltzPending = 2
7683
+ }
7684
+ export declare enum ConversionInfo_Tags {
7685
+ Amm = "Amm",
7686
+ Orchestra = "Orchestra",
7687
+ Boltz = "Boltz"
7688
+ }
7689
+ /**
7690
+ * Details of the asset conversion attached to a payment, when the payment
7691
+ * involves a swap or cross-chain bridge in addition to the on-Spark transfer.
7692
+ *
7693
+ * The variant identifies which provider handled the conversion:
7694
+ * - [`ConversionInfo::Amm`] for Spark token swaps via Flashnet AMM pools.
7695
+ * - [`ConversionInfo::Orchestra`] for cross-chain sends via Flashnet
7696
+ * Orchestra (Spark → external chain).
7697
+ * - [`ConversionInfo::Boltz`] for sats → stable-coin reverse swaps via Boltz.
7698
+ */
7699
+ export declare const ConversionInfo: Readonly<{
7700
+ instanceOf: (obj: any) => obj is ConversionInfo;
7701
+ Amm: {
7702
+ new (inner: {
7703
+ /**
7704
+ * The pool id associated with the conversion
7705
+ */ poolId: string;
7706
+ /**
7707
+ * The conversion id shared by both sides of the conversion
7708
+ */ conversionId: string;
7709
+ /**
7710
+ * The status of the conversion
7711
+ */ status: ConversionStatus;
7712
+ /**
7713
+ * The fee paid for the conversion.
7714
+ * Denominated in satoshis if converting from Bitcoin, otherwise in the token base units.
7715
+ */ fee: U128 | undefined;
7716
+ /**
7717
+ * The purpose of the conversion
7718
+ */ purpose: ConversionPurpose | undefined;
7719
+ /**
7720
+ * The reason the conversion amount was adjusted, if applicable.
7721
+ */ amountAdjustment: AmountAdjustmentReason | undefined;
7722
+ }): {
7723
+ readonly tag: ConversionInfo_Tags.Amm;
7724
+ readonly inner: Readonly<{
7725
+ poolId: string;
7726
+ conversionId: string;
7727
+ status: ConversionStatus;
7728
+ fee: U128 | undefined;
7729
+ purpose: ConversionPurpose | undefined;
7730
+ amountAdjustment: AmountAdjustmentReason | undefined;
7731
+ }>;
7732
+ /**
7733
+ * @private
7734
+ * This field is private and should not be used, use `tag` instead.
7735
+ */
7736
+ readonly [uniffiTypeNameSymbol]: "ConversionInfo";
7737
+ };
7738
+ "new"(inner: {
7739
+ /**
7740
+ * The pool id associated with the conversion
7741
+ */ poolId: string;
7742
+ /**
7743
+ * The conversion id shared by both sides of the conversion
7744
+ */ conversionId: string;
7745
+ /**
7746
+ * The status of the conversion
7747
+ */ status: ConversionStatus;
7748
+ /**
7749
+ * The fee paid for the conversion.
7750
+ * Denominated in satoshis if converting from Bitcoin, otherwise in the token base units.
7751
+ */ fee: U128 | undefined;
7752
+ /**
7753
+ * The purpose of the conversion
7754
+ */ purpose: ConversionPurpose | undefined;
7755
+ /**
7756
+ * The reason the conversion amount was adjusted, if applicable.
7757
+ */ amountAdjustment: AmountAdjustmentReason | undefined;
7758
+ }): {
7759
+ readonly tag: ConversionInfo_Tags.Amm;
7760
+ readonly inner: Readonly<{
7761
+ poolId: string;
7762
+ conversionId: string;
7763
+ status: ConversionStatus;
7764
+ fee: U128 | undefined;
7765
+ purpose: ConversionPurpose | undefined;
7766
+ amountAdjustment: AmountAdjustmentReason | undefined;
7767
+ }>;
7768
+ /**
7769
+ * @private
7770
+ * This field is private and should not be used, use `tag` instead.
7771
+ */
7772
+ readonly [uniffiTypeNameSymbol]: "ConversionInfo";
7773
+ };
7774
+ instanceOf(obj: any): obj is {
7775
+ readonly tag: ConversionInfo_Tags.Amm;
7776
+ readonly inner: Readonly<{
7777
+ poolId: string;
7778
+ conversionId: string;
7779
+ status: ConversionStatus;
7780
+ fee: U128 | undefined;
7781
+ purpose: ConversionPurpose | undefined;
7782
+ amountAdjustment: AmountAdjustmentReason | undefined;
7783
+ }>;
7784
+ /**
7785
+ * @private
7786
+ * This field is private and should not be used, use `tag` instead.
7787
+ */
7788
+ readonly [uniffiTypeNameSymbol]: "ConversionInfo";
7789
+ };
7790
+ };
7791
+ Orchestra: {
7792
+ new (inner: {
7793
+ /**
7794
+ * The Orchestra order id returned by `/v1/orchestration/submit`.
7795
+ */ orderId: string;
7796
+ /**
7797
+ * The Orchestra quote id used to create this order.
7798
+ */ quoteId: string;
7799
+ /**
7800
+ * Opaque token required for querying order status.
7801
+ */ readToken: string | undefined;
7802
+ /**
7803
+ * Chain name (e.g. `"base"`, `"solana"`, `"tron"`).
7804
+ */ chain: string;
7805
+ /**
7806
+ * Stable chain identifier (e.g. EVM `chainId` decimal string `"8453"`
7807
+ * for Base, SLIP-44 or similar for other chains). `None` if the
7808
+ * provider doesn't expose one for this route.
7809
+ */ chainId: string | undefined;
7810
+ /**
7811
+ * Asset ticker (e.g. `"USDC"`, `"USDT"`).
7812
+ */ asset: string;
7813
+ /**
7814
+ * Recipient address on the target chain.
7815
+ */ recipientAddress: string;
7816
+ /**
7817
+ * Amount in expressed in the cross-chain asset's base units, via
7818
+ * the rate the SDK used at prepare time.
7819
+ */ assetAmountIn: U128 | undefined;
7820
+ /**
7821
+ * Estimated recipient amount, frozen at prepare time.
7822
+ */ estimatedOut: U128;
7823
+ /**
7824
+ * Actual delivered amount, Unset until the order reaches a terminal state.
7825
+ */ deliveredAmount: U128 | undefined;
7826
+ status: ConversionStatus;
7827
+ /**
7828
+ * Best-available total fee in destination asset base units.
7829
+ * Prepare-time estimate while pending, realized fee when Completed.
7830
+ */ feeAmount: U128 | undefined;
7831
+ /**
7832
+ * Orchestra service fee.
7833
+ */ serviceFeeAmount: U128 | undefined;
7834
+ /**
7835
+ * Asset the service fee is denominated in. Unset means BTC sats.
7836
+ */ serviceFeeAsset: string | undefined;
7837
+ /**
7838
+ * Asset decimals (e.g. 6 for USDC).
7839
+ */ assetDecimals: number;
7840
+ /**
7841
+ * Token contract / mint address. Unset for native-asset destinations.
7842
+ */ assetContract: string | undefined;
7843
+ }): {
7844
+ readonly tag: ConversionInfo_Tags.Orchestra;
7845
+ readonly inner: Readonly<{
7846
+ orderId: string;
7847
+ quoteId: string;
7848
+ readToken: string | undefined;
7849
+ chain: string;
7850
+ chainId: string | undefined;
7851
+ asset: string;
7852
+ recipientAddress: string;
7853
+ assetAmountIn: U128 | undefined;
7854
+ estimatedOut: U128;
7855
+ deliveredAmount: U128 | undefined;
7856
+ status: ConversionStatus;
7857
+ feeAmount: U128 | undefined;
7858
+ serviceFeeAmount: U128 | undefined;
7859
+ serviceFeeAsset: string | undefined;
7860
+ assetDecimals: number;
7861
+ assetContract: string | undefined;
7862
+ }>;
7863
+ /**
7864
+ * @private
7865
+ * This field is private and should not be used, use `tag` instead.
7866
+ */
7867
+ readonly [uniffiTypeNameSymbol]: "ConversionInfo";
7868
+ };
7869
+ "new"(inner: {
7870
+ /**
7871
+ * The Orchestra order id returned by `/v1/orchestration/submit`.
7872
+ */ orderId: string;
7873
+ /**
7874
+ * The Orchestra quote id used to create this order.
7875
+ */ quoteId: string;
7876
+ /**
7877
+ * Opaque token required for querying order status.
7878
+ */ readToken: string | undefined;
7879
+ /**
7880
+ * Chain name (e.g. `"base"`, `"solana"`, `"tron"`).
7881
+ */ chain: string;
7882
+ /**
7883
+ * Stable chain identifier (e.g. EVM `chainId` decimal string `"8453"`
7884
+ * for Base, SLIP-44 or similar for other chains). `None` if the
7885
+ * provider doesn't expose one for this route.
7886
+ */ chainId: string | undefined;
7887
+ /**
7888
+ * Asset ticker (e.g. `"USDC"`, `"USDT"`).
7889
+ */ asset: string;
7890
+ /**
7891
+ * Recipient address on the target chain.
7892
+ */ recipientAddress: string;
7893
+ /**
7894
+ * Amount in expressed in the cross-chain asset's base units, via
7895
+ * the rate the SDK used at prepare time.
7896
+ */ assetAmountIn: U128 | undefined;
7897
+ /**
7898
+ * Estimated recipient amount, frozen at prepare time.
7899
+ */ estimatedOut: U128;
7900
+ /**
7901
+ * Actual delivered amount, Unset until the order reaches a terminal state.
7902
+ */ deliveredAmount: U128 | undefined;
7903
+ status: ConversionStatus;
7904
+ /**
7905
+ * Best-available total fee in destination asset base units.
7906
+ * Prepare-time estimate while pending, realized fee when Completed.
7907
+ */ feeAmount: U128 | undefined;
7908
+ /**
7909
+ * Orchestra service fee.
7910
+ */ serviceFeeAmount: U128 | undefined;
7911
+ /**
7912
+ * Asset the service fee is denominated in. Unset means BTC sats.
7913
+ */ serviceFeeAsset: string | undefined;
7914
+ /**
7915
+ * Asset decimals (e.g. 6 for USDC).
7916
+ */ assetDecimals: number;
7917
+ /**
7918
+ * Token contract / mint address. Unset for native-asset destinations.
7919
+ */ assetContract: string | undefined;
7920
+ }): {
7921
+ readonly tag: ConversionInfo_Tags.Orchestra;
7922
+ readonly inner: Readonly<{
7923
+ orderId: string;
7924
+ quoteId: string;
7925
+ readToken: string | undefined;
7926
+ chain: string;
7927
+ chainId: string | undefined;
7928
+ asset: string;
7929
+ recipientAddress: string;
7930
+ assetAmountIn: U128 | undefined;
7931
+ estimatedOut: U128;
7932
+ deliveredAmount: U128 | undefined;
7933
+ status: ConversionStatus;
7934
+ feeAmount: U128 | undefined;
7935
+ serviceFeeAmount: U128 | undefined;
7936
+ serviceFeeAsset: string | undefined;
7937
+ assetDecimals: number;
7938
+ assetContract: string | undefined;
7939
+ }>;
7940
+ /**
7941
+ * @private
7942
+ * This field is private and should not be used, use `tag` instead.
7943
+ */
7944
+ readonly [uniffiTypeNameSymbol]: "ConversionInfo";
7945
+ };
7946
+ instanceOf(obj: any): obj is {
7947
+ readonly tag: ConversionInfo_Tags.Orchestra;
7948
+ readonly inner: Readonly<{
7949
+ orderId: string;
7950
+ quoteId: string;
7951
+ readToken: string | undefined;
7952
+ chain: string;
7953
+ chainId: string | undefined;
7954
+ asset: string;
7955
+ recipientAddress: string;
7956
+ assetAmountIn: U128 | undefined;
7957
+ estimatedOut: U128;
7958
+ deliveredAmount: U128 | undefined;
7959
+ status: ConversionStatus;
7960
+ feeAmount: U128 | undefined;
7961
+ serviceFeeAmount: U128 | undefined;
7962
+ serviceFeeAsset: string | undefined;
7963
+ assetDecimals: number;
7964
+ assetContract: string | undefined;
7965
+ }>;
7966
+ /**
7967
+ * @private
7968
+ * This field is private and should not be used, use `tag` instead.
7969
+ */
7970
+ readonly [uniffiTypeNameSymbol]: "ConversionInfo";
7971
+ };
7972
+ };
7973
+ Boltz: {
7974
+ new (inner: {
7975
+ /**
7976
+ * The Boltz swap id returned by `POST /swap/reverse`.
7977
+ */ swapId: string;
7978
+ /**
7979
+ * The BOLT11 hold invoice paid on the Spark/Lightning side.
7980
+ */ invoice: string;
7981
+ /**
7982
+ * Amount of the hold invoice in sats.
7983
+ */ invoiceAmountSats: bigint;
7984
+ /**
7985
+ * Cross-chain bridge tracking handle for bridged swaps: a `LayerZero`
7986
+ * message GUID for OFT (USDT0) routes, or a CCTP reference for USDC
7987
+ * routes. `None` for same-chain (Arbitrum-direct) delivery.
7988
+ */ bridgeRef: string | undefined;
7989
+ /**
7990
+ * DEX slippage tolerance (basis points) committed at prepare time.
7991
+ */ maxSlippageBps: number;
7992
+ /**
7993
+ * Whether the claim-time DEX quote drifted beyond `max_slippage_bps`.
7994
+ */ quoteDegraded: boolean;
7995
+ /**
7996
+ * Chain name (e.g. `"arbitrum"`, `"solana"`, `"tron"`).
7997
+ */ chain: string;
7998
+ /**
7999
+ * Stable chain identifier (e.g. EVM `chainId` decimal string `"42161"`
8000
+ * for Arbitrum). `None` if the provider doesn't expose one for this
8001
+ * route.
8002
+ */ chainId: string | undefined;
8003
+ /**
8004
+ * Asset ticker (e.g. `"USDT"`, `"USDT0"`).
8005
+ */ asset: string;
8006
+ /**
8007
+ * Recipient address on the target chain.
8008
+ */ recipientAddress: string;
8009
+ /**
8010
+ * Estimated amount in the asset's base units, frozen at prepare time.
8011
+ */ estimatedOut: U128;
8012
+ /**
8013
+ * Actual amount delivered. `None` until the claim receipt is processed.
8014
+ */ deliveredAmount: U128 | undefined;
8015
+ /**
8016
+ * Current status of the reverse swap.
8017
+ */ status: ConversionStatus;
8018
+ /**
8019
+ * Amount in expressed in the cross-chain asset's base units, via the
8020
+ * BTC/USD rate the SDK used at prepare time.
8021
+ */ assetAmountIn: U128 | undefined;
8022
+ /**
8023
+ * Best-available total fee in destination asset base units.
8024
+ * Prepare-time estimate while pending, realized fee on Completed.
8025
+ */ feeAmount: U128 | undefined;
8026
+ /**
8027
+ * Boltz spread in sats.
8028
+ */ serviceFeeAmount: U128 | undefined;
8029
+ /**
8030
+ * Asset service fee is denominated in. Unset means BTC sats.
8031
+ */ serviceFeeAsset: string | undefined;
8032
+ /**
8033
+ * Asset decimals (e.g. 6 for USDT).
8034
+ */ assetDecimals: number;
8035
+ /**
8036
+ * Token contract / mint address. Unset for native-asset destinations.
8037
+ */ assetContract: string | undefined;
8038
+ }): {
8039
+ readonly tag: ConversionInfo_Tags.Boltz;
8040
+ readonly inner: Readonly<{
8041
+ swapId: string;
8042
+ invoice: string;
8043
+ invoiceAmountSats: bigint;
8044
+ bridgeRef: string | undefined;
8045
+ maxSlippageBps: number;
8046
+ quoteDegraded: boolean;
8047
+ chain: string;
8048
+ chainId: string | undefined;
8049
+ asset: string;
8050
+ recipientAddress: string;
8051
+ estimatedOut: U128;
8052
+ deliveredAmount: U128 | undefined;
8053
+ status: ConversionStatus;
8054
+ assetAmountIn: U128 | undefined;
8055
+ feeAmount: U128 | undefined;
8056
+ serviceFeeAmount: U128 | undefined;
8057
+ serviceFeeAsset: string | undefined;
8058
+ assetDecimals: number;
8059
+ assetContract: string | undefined;
8060
+ }>;
8061
+ /**
8062
+ * @private
8063
+ * This field is private and should not be used, use `tag` instead.
8064
+ */
8065
+ readonly [uniffiTypeNameSymbol]: "ConversionInfo";
8066
+ };
8067
+ "new"(inner: {
8068
+ /**
8069
+ * The Boltz swap id returned by `POST /swap/reverse`.
8070
+ */ swapId: string;
8071
+ /**
8072
+ * The BOLT11 hold invoice paid on the Spark/Lightning side.
8073
+ */ invoice: string;
8074
+ /**
8075
+ * Amount of the hold invoice in sats.
8076
+ */ invoiceAmountSats: bigint;
8077
+ /**
8078
+ * Cross-chain bridge tracking handle for bridged swaps: a `LayerZero`
8079
+ * message GUID for OFT (USDT0) routes, or a CCTP reference for USDC
8080
+ * routes. `None` for same-chain (Arbitrum-direct) delivery.
8081
+ */ bridgeRef: string | undefined;
8082
+ /**
8083
+ * DEX slippage tolerance (basis points) committed at prepare time.
8084
+ */ maxSlippageBps: number;
8085
+ /**
8086
+ * Whether the claim-time DEX quote drifted beyond `max_slippage_bps`.
8087
+ */ quoteDegraded: boolean;
8088
+ /**
8089
+ * Chain name (e.g. `"arbitrum"`, `"solana"`, `"tron"`).
8090
+ */ chain: string;
8091
+ /**
8092
+ * Stable chain identifier (e.g. EVM `chainId` decimal string `"42161"`
8093
+ * for Arbitrum). `None` if the provider doesn't expose one for this
8094
+ * route.
8095
+ */ chainId: string | undefined;
8096
+ /**
8097
+ * Asset ticker (e.g. `"USDT"`, `"USDT0"`).
8098
+ */ asset: string;
8099
+ /**
8100
+ * Recipient address on the target chain.
8101
+ */ recipientAddress: string;
8102
+ /**
8103
+ * Estimated amount in the asset's base units, frozen at prepare time.
8104
+ */ estimatedOut: U128;
8105
+ /**
8106
+ * Actual amount delivered. `None` until the claim receipt is processed.
8107
+ */ deliveredAmount: U128 | undefined;
8108
+ /**
8109
+ * Current status of the reverse swap.
8110
+ */ status: ConversionStatus;
8111
+ /**
8112
+ * Amount in expressed in the cross-chain asset's base units, via the
8113
+ * BTC/USD rate the SDK used at prepare time.
8114
+ */ assetAmountIn: U128 | undefined;
8115
+ /**
8116
+ * Best-available total fee in destination asset base units.
8117
+ * Prepare-time estimate while pending, realized fee on Completed.
8118
+ */ feeAmount: U128 | undefined;
8119
+ /**
8120
+ * Boltz spread in sats.
8121
+ */ serviceFeeAmount: U128 | undefined;
8122
+ /**
8123
+ * Asset service fee is denominated in. Unset means BTC sats.
8124
+ */ serviceFeeAsset: string | undefined;
8125
+ /**
8126
+ * Asset decimals (e.g. 6 for USDT).
8127
+ */ assetDecimals: number;
8128
+ /**
8129
+ * Token contract / mint address. Unset for native-asset destinations.
8130
+ */ assetContract: string | undefined;
8131
+ }): {
8132
+ readonly tag: ConversionInfo_Tags.Boltz;
8133
+ readonly inner: Readonly<{
8134
+ swapId: string;
8135
+ invoice: string;
8136
+ invoiceAmountSats: bigint;
8137
+ bridgeRef: string | undefined;
8138
+ maxSlippageBps: number;
8139
+ quoteDegraded: boolean;
8140
+ chain: string;
8141
+ chainId: string | undefined;
8142
+ asset: string;
8143
+ recipientAddress: string;
8144
+ estimatedOut: U128;
8145
+ deliveredAmount: U128 | undefined;
8146
+ status: ConversionStatus;
8147
+ assetAmountIn: U128 | undefined;
8148
+ feeAmount: U128 | undefined;
8149
+ serviceFeeAmount: U128 | undefined;
8150
+ serviceFeeAsset: string | undefined;
8151
+ assetDecimals: number;
8152
+ assetContract: string | undefined;
8153
+ }>;
8154
+ /**
8155
+ * @private
8156
+ * This field is private and should not be used, use `tag` instead.
8157
+ */
8158
+ readonly [uniffiTypeNameSymbol]: "ConversionInfo";
8159
+ };
8160
+ instanceOf(obj: any): obj is {
8161
+ readonly tag: ConversionInfo_Tags.Boltz;
8162
+ readonly inner: Readonly<{
8163
+ swapId: string;
8164
+ invoice: string;
8165
+ invoiceAmountSats: bigint;
8166
+ bridgeRef: string | undefined;
8167
+ maxSlippageBps: number;
8168
+ quoteDegraded: boolean;
8169
+ chain: string;
8170
+ chainId: string | undefined;
8171
+ asset: string;
8172
+ recipientAddress: string;
8173
+ estimatedOut: U128;
8174
+ deliveredAmount: U128 | undefined;
8175
+ status: ConversionStatus;
8176
+ assetAmountIn: U128 | undefined;
8177
+ feeAmount: U128 | undefined;
8178
+ serviceFeeAmount: U128 | undefined;
8179
+ serviceFeeAsset: string | undefined;
8180
+ assetDecimals: number;
8181
+ assetContract: string | undefined;
8182
+ }>;
8183
+ /**
8184
+ * @private
8185
+ * This field is private and should not be used, use `tag` instead.
8186
+ */
8187
+ readonly [uniffiTypeNameSymbol]: "ConversionInfo";
8188
+ };
8189
+ };
8190
+ }>;
8191
+ /**
8192
+ * Details of the asset conversion attached to a payment, when the payment
8193
+ * involves a swap or cross-chain bridge in addition to the on-Spark transfer.
8194
+ *
8195
+ * The variant identifies which provider handled the conversion:
8196
+ * - [`ConversionInfo::Amm`] for Spark token swaps via Flashnet AMM pools.
8197
+ * - [`ConversionInfo::Orchestra`] for cross-chain sends via Flashnet
8198
+ * Orchestra (Spark → external chain).
8199
+ * - [`ConversionInfo::Boltz`] for sats → stable-coin reverse swaps via Boltz.
8200
+ */
8201
+ export type ConversionInfo = InstanceType<(typeof ConversionInfo)[keyof Omit<typeof ConversionInfo, 'instanceOf'>]>;
8202
+ /**
8203
+ * The provider that performed a conversion.
8204
+ */
8205
+ export declare enum ConversionProvider {
8206
+ /**
8207
+ * AMM (Flashnet pool) conversion between token and BTC on Spark
8208
+ */
8209
+ Amm = 0,
8210
+ /**
8211
+ * Orchestra cross-chain conversion
8212
+ */
8213
+ Orchestra = 1,
8214
+ /**
8215
+ * Boltz reverse-swap cross-chain conversion
8216
+ */
8217
+ Boltz = 2
8218
+ }
8219
+ export declare enum ConversionPurpose_Tags {
8220
+ OngoingPayment = "OngoingPayment",
8221
+ SelfTransfer = "SelfTransfer",
8222
+ AutoConversion = "AutoConversion"
8223
+ }
8224
+ /**
8225
+ * The purpose of the conversion, which is used to provide context for the conversion
8226
+ * if its related to an ongoing payment or a self-transfer.
8227
+ */
8228
+ export declare const ConversionPurpose: Readonly<{
8229
+ instanceOf: (obj: any) => obj is ConversionPurpose;
8230
+ OngoingPayment: {
8231
+ new (inner: {
8232
+ /**
8233
+ * The payment request of the ongoing payment
8234
+ */ paymentRequest: string;
8235
+ }): {
8236
+ readonly tag: ConversionPurpose_Tags.OngoingPayment;
8237
+ readonly inner: Readonly<{
8238
+ paymentRequest: string;
8239
+ }>;
8240
+ /**
8241
+ * @private
8242
+ * This field is private and should not be used, use `tag` instead.
8243
+ */
8244
+ readonly [uniffiTypeNameSymbol]: "ConversionPurpose";
8245
+ };
8246
+ "new"(inner: {
8247
+ /**
8248
+ * The payment request of the ongoing payment
8249
+ */ paymentRequest: string;
8250
+ }): {
8251
+ readonly tag: ConversionPurpose_Tags.OngoingPayment;
8252
+ readonly inner: Readonly<{
8253
+ paymentRequest: string;
8254
+ }>;
8255
+ /**
8256
+ * @private
8257
+ * This field is private and should not be used, use `tag` instead.
8258
+ */
8259
+ readonly [uniffiTypeNameSymbol]: "ConversionPurpose";
8260
+ };
8261
+ instanceOf(obj: any): obj is {
8262
+ readonly tag: ConversionPurpose_Tags.OngoingPayment;
8263
+ readonly inner: Readonly<{
8264
+ paymentRequest: string;
8265
+ }>;
8266
+ /**
8267
+ * @private
8268
+ * This field is private and should not be used, use `tag` instead.
8269
+ */
8270
+ readonly [uniffiTypeNameSymbol]: "ConversionPurpose";
8271
+ };
8272
+ };
8273
+ SelfTransfer: {
8274
+ new (): {
8275
+ readonly tag: ConversionPurpose_Tags.SelfTransfer;
8276
+ /**
8277
+ * @private
8278
+ * This field is private and should not be used, use `tag` instead.
8279
+ */
8280
+ readonly [uniffiTypeNameSymbol]: "ConversionPurpose";
8281
+ };
8282
+ "new"(): {
8283
+ readonly tag: ConversionPurpose_Tags.SelfTransfer;
8284
+ /**
8285
+ * @private
8286
+ * This field is private and should not be used, use `tag` instead.
8287
+ */
8288
+ readonly [uniffiTypeNameSymbol]: "ConversionPurpose";
8289
+ };
8290
+ instanceOf(obj: any): obj is {
8291
+ readonly tag: ConversionPurpose_Tags.SelfTransfer;
8292
+ /**
8293
+ * @private
8294
+ * This field is private and should not be used, use `tag` instead.
8295
+ */
8296
+ readonly [uniffiTypeNameSymbol]: "ConversionPurpose";
8297
+ };
8298
+ };
8299
+ AutoConversion: {
8300
+ new (): {
8301
+ readonly tag: ConversionPurpose_Tags.AutoConversion;
8302
+ /**
8303
+ * @private
8304
+ * This field is private and should not be used, use `tag` instead.
8305
+ */
7380
8306
  readonly [uniffiTypeNameSymbol]: "ConversionPurpose";
7381
8307
  };
7382
8308
  "new"(): {
@@ -7479,28 +8405,292 @@ export declare const ConversionType: Readonly<{
7479
8405
  }): {
7480
8406
  readonly tag: ConversionType_Tags.ToBitcoin;
7481
8407
  readonly inner: Readonly<{
7482
- fromTokenIdentifier: string;
8408
+ fromTokenIdentifier: string;
8409
+ }>;
8410
+ /**
8411
+ * @private
8412
+ * This field is private and should not be used, use `tag` instead.
8413
+ */
8414
+ readonly [uniffiTypeNameSymbol]: "ConversionType";
8415
+ };
8416
+ instanceOf(obj: any): obj is {
8417
+ readonly tag: ConversionType_Tags.ToBitcoin;
8418
+ readonly inner: Readonly<{
8419
+ fromTokenIdentifier: string;
8420
+ }>;
8421
+ /**
8422
+ * @private
8423
+ * This field is private and should not be used, use `tag` instead.
8424
+ */
8425
+ readonly [uniffiTypeNameSymbol]: "ConversionType";
8426
+ };
8427
+ };
8428
+ }>;
8429
+ export type ConversionType = InstanceType<(typeof ConversionType)[keyof Omit<typeof ConversionType, 'instanceOf'>]>;
8430
+ export declare enum CrossChainAddressFamily {
8431
+ Evm = 0,
8432
+ Solana = 1,
8433
+ Tron = 2
8434
+ }
8435
+ /**
8436
+ * How the caller wants fees handled against the request `amount`.
8437
+ *
8438
+ * - `FeesExcluded`: `amount` is the provider invoice/deposit target; the
8439
+ * wallet pays `amount + source_transfer_fee_sats` in total.
8440
+ * - `FeesIncluded`: `amount` is the wallet's total sats budget; the provider
8441
+ * leg is sized so `amount_in + source_transfer_fee_sats <= amount`.
8442
+ */
8443
+ export declare enum CrossChainFeeMode {
8444
+ FeesExcluded = 0,
8445
+ FeesIncluded = 1
8446
+ }
8447
+ export declare enum CrossChainProvider {
8448
+ Orchestra = 0,
8449
+ Boltz = 1
8450
+ }
8451
+ export declare enum CrossChainProviderContext_Tags {
8452
+ Orchestra = "Orchestra",
8453
+ Boltz = "Boltz"
8454
+ }
8455
+ /**
8456
+ * Provider-internal state produced by `prepare` and consumed by `send`.
8457
+ * Typed per provider so the send stage can resume without re-quoting and
8458
+ * without a serde round-trip. Callers should round-trip this value as-is.
8459
+ */
8460
+ export declare const CrossChainProviderContext: Readonly<{
8461
+ instanceOf: (obj: any) => obj is CrossChainProviderContext;
8462
+ Orchestra: {
8463
+ new (inner: {
8464
+ /**
8465
+ * Orchestra quote id, passed back on `/submit`.
8466
+ */ quoteId: string;
8467
+ /**
8468
+ * Spark address Orchestra expects the deposit transfer to land on.
8469
+ */ depositAddress: string;
8470
+ /**
8471
+ * Spark-side deposit amount in the route's source-asset base units.
8472
+ */ depositAmount: U128;
8473
+ }): {
8474
+ readonly tag: CrossChainProviderContext_Tags.Orchestra;
8475
+ readonly inner: Readonly<{
8476
+ quoteId: string;
8477
+ depositAddress: string;
8478
+ depositAmount: U128;
8479
+ }>;
8480
+ /**
8481
+ * @private
8482
+ * This field is private and should not be used, use `tag` instead.
8483
+ */
8484
+ readonly [uniffiTypeNameSymbol]: "CrossChainProviderContext";
8485
+ };
8486
+ "new"(inner: {
8487
+ /**
8488
+ * Orchestra quote id, passed back on `/submit`.
8489
+ */ quoteId: string;
8490
+ /**
8491
+ * Spark address Orchestra expects the deposit transfer to land on.
8492
+ */ depositAddress: string;
8493
+ /**
8494
+ * Spark-side deposit amount in the route's source-asset base units.
8495
+ */ depositAmount: U128;
8496
+ }): {
8497
+ readonly tag: CrossChainProviderContext_Tags.Orchestra;
8498
+ readonly inner: Readonly<{
8499
+ quoteId: string;
8500
+ depositAddress: string;
8501
+ depositAmount: U128;
8502
+ }>;
8503
+ /**
8504
+ * @private
8505
+ * This field is private and should not be used, use `tag` instead.
8506
+ */
8507
+ readonly [uniffiTypeNameSymbol]: "CrossChainProviderContext";
8508
+ };
8509
+ instanceOf(obj: any): obj is {
8510
+ readonly tag: CrossChainProviderContext_Tags.Orchestra;
8511
+ readonly inner: Readonly<{
8512
+ quoteId: string;
8513
+ depositAddress: string;
8514
+ depositAmount: U128;
8515
+ }>;
8516
+ /**
8517
+ * @private
8518
+ * This field is private and should not be used, use `tag` instead.
8519
+ */
8520
+ readonly [uniffiTypeNameSymbol]: "CrossChainProviderContext";
8521
+ };
8522
+ };
8523
+ Boltz: {
8524
+ new (inner: {
8525
+ /**
8526
+ * Boltz swap id.
8527
+ */ swapId: string;
8528
+ /**
8529
+ * Hold invoice to pay.
8530
+ */ invoice: string;
8531
+ /**
8532
+ * Hold invoice amount in sats.
8533
+ */ invoiceAmountSats: bigint;
8534
+ /**
8535
+ * Slippage tolerance in basis points.
8536
+ */ maxSlippageBps: number;
8537
+ }): {
8538
+ readonly tag: CrossChainProviderContext_Tags.Boltz;
8539
+ readonly inner: Readonly<{
8540
+ swapId: string;
8541
+ invoice: string;
8542
+ invoiceAmountSats: bigint;
8543
+ maxSlippageBps: number;
8544
+ }>;
8545
+ /**
8546
+ * @private
8547
+ * This field is private and should not be used, use `tag` instead.
8548
+ */
8549
+ readonly [uniffiTypeNameSymbol]: "CrossChainProviderContext";
8550
+ };
8551
+ "new"(inner: {
8552
+ /**
8553
+ * Boltz swap id.
8554
+ */ swapId: string;
8555
+ /**
8556
+ * Hold invoice to pay.
8557
+ */ invoice: string;
8558
+ /**
8559
+ * Hold invoice amount in sats.
8560
+ */ invoiceAmountSats: bigint;
8561
+ /**
8562
+ * Slippage tolerance in basis points.
8563
+ */ maxSlippageBps: number;
8564
+ }): {
8565
+ readonly tag: CrossChainProviderContext_Tags.Boltz;
8566
+ readonly inner: Readonly<{
8567
+ swapId: string;
8568
+ invoice: string;
8569
+ invoiceAmountSats: bigint;
8570
+ maxSlippageBps: number;
8571
+ }>;
8572
+ /**
8573
+ * @private
8574
+ * This field is private and should not be used, use `tag` instead.
8575
+ */
8576
+ readonly [uniffiTypeNameSymbol]: "CrossChainProviderContext";
8577
+ };
8578
+ instanceOf(obj: any): obj is {
8579
+ readonly tag: CrossChainProviderContext_Tags.Boltz;
8580
+ readonly inner: Readonly<{
8581
+ swapId: string;
8582
+ invoice: string;
8583
+ invoiceAmountSats: bigint;
8584
+ maxSlippageBps: number;
8585
+ }>;
8586
+ /**
8587
+ * @private
8588
+ * This field is private and should not be used, use `tag` instead.
8589
+ */
8590
+ readonly [uniffiTypeNameSymbol]: "CrossChainProviderContext";
8591
+ };
8592
+ };
8593
+ }>;
8594
+ /**
8595
+ * Provider-internal state produced by `prepare` and consumed by `send`.
8596
+ * Typed per provider so the send stage can resume without re-quoting and
8597
+ * without a serde round-trip. Callers should round-trip this value as-is.
8598
+ */
8599
+ export type CrossChainProviderContext = InstanceType<(typeof CrossChainProviderContext)[keyof Omit<typeof CrossChainProviderContext, 'instanceOf'>]>;
8600
+ export declare enum CrossChainRouteFilter_Tags {
8601
+ Send = "Send",
8602
+ Receive = "Receive"
8603
+ }
8604
+ /**
8605
+ * Filter for [`CrossChainService::get_routes`] and the public
8606
+ * `get_cross_chain_routes()` API.
8607
+ */
8608
+ export declare const CrossChainRouteFilter: Readonly<{
8609
+ instanceOf: (obj: any) => obj is CrossChainRouteFilter;
8610
+ Send: {
8611
+ new (inner: {
8612
+ addressDetails: CrossChainAddressDetails;
8613
+ }): {
8614
+ readonly tag: CrossChainRouteFilter_Tags.Send;
8615
+ readonly inner: Readonly<{
8616
+ addressDetails: CrossChainAddressDetails;
8617
+ }>;
8618
+ /**
8619
+ * @private
8620
+ * This field is private and should not be used, use `tag` instead.
8621
+ */
8622
+ readonly [uniffiTypeNameSymbol]: "CrossChainRouteFilter";
8623
+ };
8624
+ "new"(inner: {
8625
+ addressDetails: CrossChainAddressDetails;
8626
+ }): {
8627
+ readonly tag: CrossChainRouteFilter_Tags.Send;
8628
+ readonly inner: Readonly<{
8629
+ addressDetails: CrossChainAddressDetails;
8630
+ }>;
8631
+ /**
8632
+ * @private
8633
+ * This field is private and should not be used, use `tag` instead.
8634
+ */
8635
+ readonly [uniffiTypeNameSymbol]: "CrossChainRouteFilter";
8636
+ };
8637
+ instanceOf(obj: any): obj is {
8638
+ readonly tag: CrossChainRouteFilter_Tags.Send;
8639
+ readonly inner: Readonly<{
8640
+ addressDetails: CrossChainAddressDetails;
8641
+ }>;
8642
+ /**
8643
+ * @private
8644
+ * This field is private and should not be used, use `tag` instead.
8645
+ */
8646
+ readonly [uniffiTypeNameSymbol]: "CrossChainRouteFilter";
8647
+ };
8648
+ };
8649
+ Receive: {
8650
+ new (inner: {
8651
+ contractAddress: string | undefined;
8652
+ }): {
8653
+ readonly tag: CrossChainRouteFilter_Tags.Receive;
8654
+ readonly inner: Readonly<{
8655
+ contractAddress: string | undefined;
8656
+ }>;
8657
+ /**
8658
+ * @private
8659
+ * This field is private and should not be used, use `tag` instead.
8660
+ */
8661
+ readonly [uniffiTypeNameSymbol]: "CrossChainRouteFilter";
8662
+ };
8663
+ "new"(inner: {
8664
+ contractAddress: string | undefined;
8665
+ }): {
8666
+ readonly tag: CrossChainRouteFilter_Tags.Receive;
8667
+ readonly inner: Readonly<{
8668
+ contractAddress: string | undefined;
7483
8669
  }>;
7484
8670
  /**
7485
8671
  * @private
7486
8672
  * This field is private and should not be used, use `tag` instead.
7487
8673
  */
7488
- readonly [uniffiTypeNameSymbol]: "ConversionType";
8674
+ readonly [uniffiTypeNameSymbol]: "CrossChainRouteFilter";
7489
8675
  };
7490
8676
  instanceOf(obj: any): obj is {
7491
- readonly tag: ConversionType_Tags.ToBitcoin;
8677
+ readonly tag: CrossChainRouteFilter_Tags.Receive;
7492
8678
  readonly inner: Readonly<{
7493
- fromTokenIdentifier: string;
8679
+ contractAddress: string | undefined;
7494
8680
  }>;
7495
8681
  /**
7496
8682
  * @private
7497
8683
  * This field is private and should not be used, use `tag` instead.
7498
8684
  */
7499
- readonly [uniffiTypeNameSymbol]: "ConversionType";
8685
+ readonly [uniffiTypeNameSymbol]: "CrossChainRouteFilter";
7500
8686
  };
7501
8687
  };
7502
8688
  }>;
7503
- export type ConversionType = InstanceType<(typeof ConversionType)[keyof Omit<typeof ConversionType, 'instanceOf'>]>;
8689
+ /**
8690
+ * Filter for [`CrossChainService::get_routes`] and the public
8691
+ * `get_cross_chain_routes()` API.
8692
+ */
8693
+ export type CrossChainRouteFilter = InstanceType<(typeof CrossChainRouteFilter)[keyof Omit<typeof CrossChainRouteFilter, 'instanceOf'>]>;
7504
8694
  export declare enum DepositClaimError_Tags {
7505
8695
  MaxDepositClaimFeeExceeded = "MaxDepositClaimFeeExceeded",
7506
8696
  MissingUtxo = "MissingUtxo",
@@ -8078,16 +9268,24 @@ export declare const Fee: Readonly<{
8078
9268
  export type Fee = InstanceType<(typeof Fee)[keyof Omit<typeof Fee, 'instanceOf'>]>;
8079
9269
  /**
8080
9270
  * Specifies how fees are handled in a payment.
9271
+ *
9272
+ * "Fees" are the wallet's sender-paid fees (Lightning routing, on-chain,
9273
+ * Spark transfer). They do not include provider spreads or destination-chain
9274
+ * costs on cross-chain routes; those are reported separately via
9275
+ * `estimated_out` on the prepare response and are not deterministic.
9276
+ * `FeePolicy` only controls the wallet's spend accounting.
8081
9277
  */
8082
9278
  export declare enum FeePolicy {
8083
9279
  /**
8084
- * Fees are added on top of the specified amount (default behavior).
8085
- * The receiver gets the exact amount specified.
9280
+ * Fees are added on top of `amount`. Wallet's total spend is
9281
+ * `amount + fees`. For direct sat sends, the recipient receives exactly
9282
+ * `amount`. Default.
8086
9283
  */
8087
9284
  FeesExcluded = 0,
8088
9285
  /**
8089
- * Fees are deducted from the specified amount.
8090
- * The receiver gets the amount minus fees.
9286
+ * Fees are deducted from `amount`. Wallet's total spend is `amount`.
9287
+ * Use this to drain a balance — pass `amount = balance` and the wallet
9288
+ * spends exactly that.
8091
9289
  */
8092
9290
  FeesIncluded = 1
8093
9291
  }
@@ -8105,7 +9303,8 @@ export declare enum InputType_Tags {
8105
9303
  Bolt12InvoiceRequest = "Bolt12InvoiceRequest",
8106
9304
  LnurlWithdraw = "LnurlWithdraw",
8107
9305
  SparkAddress = "SparkAddress",
8108
- SparkInvoice = "SparkInvoice"
9306
+ SparkInvoice = "SparkInvoice",
9307
+ CrossChainAddress = "CrossChainAddress"
8109
9308
  }
8110
9309
  export declare const InputType: Readonly<{
8111
9310
  instanceOf: (obj: any) => obj is InputType;
@@ -8515,6 +9714,35 @@ export declare const InputType: Readonly<{
8515
9714
  readonly [uniffiTypeNameSymbol]: "InputType";
8516
9715
  };
8517
9716
  };
9717
+ CrossChainAddress: {
9718
+ new (v0: CrossChainAddressDetails): {
9719
+ readonly tag: InputType_Tags.CrossChainAddress;
9720
+ readonly inner: Readonly<[CrossChainAddressDetails]>;
9721
+ /**
9722
+ * @private
9723
+ * This field is private and should not be used, use `tag` instead.
9724
+ */
9725
+ readonly [uniffiTypeNameSymbol]: "InputType";
9726
+ };
9727
+ "new"(v0: CrossChainAddressDetails): {
9728
+ readonly tag: InputType_Tags.CrossChainAddress;
9729
+ readonly inner: Readonly<[CrossChainAddressDetails]>;
9730
+ /**
9731
+ * @private
9732
+ * This field is private and should not be used, use `tag` instead.
9733
+ */
9734
+ readonly [uniffiTypeNameSymbol]: "InputType";
9735
+ };
9736
+ instanceOf(obj: any): obj is {
9737
+ readonly tag: InputType_Tags.CrossChainAddress;
9738
+ readonly inner: Readonly<[CrossChainAddressDetails]>;
9739
+ /**
9740
+ * @private
9741
+ * This field is private and should not be used, use `tag` instead.
9742
+ */
9743
+ readonly [uniffiTypeNameSymbol]: "InputType";
9744
+ };
9745
+ };
8518
9746
  }>;
8519
9747
  export type InputType = InstanceType<(typeof InputType)[keyof Omit<typeof InputType, 'instanceOf'>]>;
8520
9748
  export declare enum LnurlCallbackStatus_Tags {
@@ -9846,6 +11074,11 @@ export declare const PaymentDetails: Readonly<{
9846
11074
  /**
9847
11075
  * Lnurl receive information if this was a received lnurl payment.
9848
11076
  */ lnurlReceiveMetadata: LnurlReceiveMetadata | undefined;
11077
+ /**
11078
+ * The information for a conversion — populated when this Lightning
11079
+ * payment is the source leg of a cross-chain conversion (e.g. a
11080
+ * Boltz reverse swap paying a hold invoice).
11081
+ */ conversionInfo: ConversionInfo | undefined;
9849
11082
  }): {
9850
11083
  readonly tag: PaymentDetails_Tags.Lightning;
9851
11084
  readonly inner: Readonly<{
@@ -9856,6 +11089,7 @@ export declare const PaymentDetails: Readonly<{
9856
11089
  lnurlPayInfo: LnurlPayInfo | undefined;
9857
11090
  lnurlWithdrawInfo: LnurlWithdrawInfo | undefined;
9858
11091
  lnurlReceiveMetadata: LnurlReceiveMetadata | undefined;
11092
+ conversionInfo: ConversionInfo | undefined;
9859
11093
  }>;
9860
11094
  /**
9861
11095
  * @private
@@ -9887,6 +11121,11 @@ export declare const PaymentDetails: Readonly<{
9887
11121
  /**
9888
11122
  * Lnurl receive information if this was a received lnurl payment.
9889
11123
  */ lnurlReceiveMetadata: LnurlReceiveMetadata | undefined;
11124
+ /**
11125
+ * The information for a conversion — populated when this Lightning
11126
+ * payment is the source leg of a cross-chain conversion (e.g. a
11127
+ * Boltz reverse swap paying a hold invoice).
11128
+ */ conversionInfo: ConversionInfo | undefined;
9890
11129
  }): {
9891
11130
  readonly tag: PaymentDetails_Tags.Lightning;
9892
11131
  readonly inner: Readonly<{
@@ -9897,6 +11136,7 @@ export declare const PaymentDetails: Readonly<{
9897
11136
  lnurlPayInfo: LnurlPayInfo | undefined;
9898
11137
  lnurlWithdrawInfo: LnurlWithdrawInfo | undefined;
9899
11138
  lnurlReceiveMetadata: LnurlReceiveMetadata | undefined;
11139
+ conversionInfo: ConversionInfo | undefined;
9900
11140
  }>;
9901
11141
  /**
9902
11142
  * @private
@@ -9914,6 +11154,7 @@ export declare const PaymentDetails: Readonly<{
9914
11154
  lnurlPayInfo: LnurlPayInfo | undefined;
9915
11155
  lnurlWithdrawInfo: LnurlWithdrawInfo | undefined;
9916
11156
  lnurlReceiveMetadata: LnurlReceiveMetadata | undefined;
11157
+ conversionInfo: ConversionInfo | undefined;
9917
11158
  }>;
9918
11159
  /**
9919
11160
  * @private
@@ -10330,6 +11571,141 @@ export declare const PaymentObserverError: Readonly<{
10330
11571
  };
10331
11572
  }>;
10332
11573
  export type PaymentObserverError = InstanceType<(typeof PaymentObserverError)[keyof Omit<typeof PaymentObserverError, 'instanceOf'>]>;
11574
+ export declare enum PaymentRequest_Tags {
11575
+ Input = "Input",
11576
+ CrossChain = "CrossChain"
11577
+ }
11578
+ /**
11579
+ * The payment destination. Either a raw string (bolt11, spark address, BIP-21,
11580
+ * cross-chain URI, etc.) that is parsed internally, or a structured
11581
+ * cross-chain destination with explicit chain + asset selection.
11582
+ */
11583
+ export declare const PaymentRequest: Readonly<{
11584
+ instanceOf: (obj: any) => obj is PaymentRequest;
11585
+ Input: {
11586
+ new (inner: {
11587
+ input: string;
11588
+ }): {
11589
+ readonly tag: PaymentRequest_Tags.Input;
11590
+ readonly inner: Readonly<{
11591
+ input: string;
11592
+ }>;
11593
+ /**
11594
+ * @private
11595
+ * This field is private and should not be used, use `tag` instead.
11596
+ */
11597
+ readonly [uniffiTypeNameSymbol]: "PaymentRequest";
11598
+ };
11599
+ "new"(inner: {
11600
+ input: string;
11601
+ }): {
11602
+ readonly tag: PaymentRequest_Tags.Input;
11603
+ readonly inner: Readonly<{
11604
+ input: string;
11605
+ }>;
11606
+ /**
11607
+ * @private
11608
+ * This field is private and should not be used, use `tag` instead.
11609
+ */
11610
+ readonly [uniffiTypeNameSymbol]: "PaymentRequest";
11611
+ };
11612
+ instanceOf(obj: any): obj is {
11613
+ readonly tag: PaymentRequest_Tags.Input;
11614
+ readonly inner: Readonly<{
11615
+ input: string;
11616
+ }>;
11617
+ /**
11618
+ * @private
11619
+ * This field is private and should not be used, use `tag` instead.
11620
+ */
11621
+ readonly [uniffiTypeNameSymbol]: "PaymentRequest";
11622
+ };
11623
+ };
11624
+ CrossChain: {
11625
+ new (inner: {
11626
+ address: string;
11627
+ route: CrossChainRoutePair;
11628
+ /**
11629
+ * Maximum slippage tolerance in basis points (1/100 of a percent)
11630
+ * for the cross-chain quote. Must be in `10..=500`. Falls back to
11631
+ * [`Config::default_slippage_bps`] when `None`, which itself
11632
+ * defaults to 100 bps (1%) when unset.
11633
+ */ maxSlippageBps: /*u32*/ number | undefined;
11634
+ /**
11635
+ * Target-overpay pad in basis points applied on `FeesExcluded`
11636
+ * conversion sends. Inflates the destination target before quoting
11637
+ * so the recipient lands at or above the user's requested amount
11638
+ * despite provider slippage. Must be in `0..=500`. Falls back to
11639
+ * [`CrossChainConfig::default_target_overpay_bps`] when `None`,
11640
+ * which itself defaults to 15 bps.
11641
+ */ targetOverpayBps: /*u32*/ number | undefined;
11642
+ }): {
11643
+ readonly tag: PaymentRequest_Tags.CrossChain;
11644
+ readonly inner: Readonly<{
11645
+ address: string;
11646
+ route: CrossChainRoutePair;
11647
+ maxSlippageBps: /*u32*/ number | undefined;
11648
+ targetOverpayBps: /*u32*/ number | undefined;
11649
+ }>;
11650
+ /**
11651
+ * @private
11652
+ * This field is private and should not be used, use `tag` instead.
11653
+ */
11654
+ readonly [uniffiTypeNameSymbol]: "PaymentRequest";
11655
+ };
11656
+ "new"(inner: {
11657
+ address: string;
11658
+ route: CrossChainRoutePair;
11659
+ /**
11660
+ * Maximum slippage tolerance in basis points (1/100 of a percent)
11661
+ * for the cross-chain quote. Must be in `10..=500`. Falls back to
11662
+ * [`Config::default_slippage_bps`] when `None`, which itself
11663
+ * defaults to 100 bps (1%) when unset.
11664
+ */ maxSlippageBps: /*u32*/ number | undefined;
11665
+ /**
11666
+ * Target-overpay pad in basis points applied on `FeesExcluded`
11667
+ * conversion sends. Inflates the destination target before quoting
11668
+ * so the recipient lands at or above the user's requested amount
11669
+ * despite provider slippage. Must be in `0..=500`. Falls back to
11670
+ * [`CrossChainConfig::default_target_overpay_bps`] when `None`,
11671
+ * which itself defaults to 15 bps.
11672
+ */ targetOverpayBps: /*u32*/ number | undefined;
11673
+ }): {
11674
+ readonly tag: PaymentRequest_Tags.CrossChain;
11675
+ readonly inner: Readonly<{
11676
+ address: string;
11677
+ route: CrossChainRoutePair;
11678
+ maxSlippageBps: /*u32*/ number | undefined;
11679
+ targetOverpayBps: /*u32*/ number | undefined;
11680
+ }>;
11681
+ /**
11682
+ * @private
11683
+ * This field is private and should not be used, use `tag` instead.
11684
+ */
11685
+ readonly [uniffiTypeNameSymbol]: "PaymentRequest";
11686
+ };
11687
+ instanceOf(obj: any): obj is {
11688
+ readonly tag: PaymentRequest_Tags.CrossChain;
11689
+ readonly inner: Readonly<{
11690
+ address: string;
11691
+ route: CrossChainRoutePair;
11692
+ maxSlippageBps: /*u32*/ number | undefined;
11693
+ targetOverpayBps: /*u32*/ number | undefined;
11694
+ }>;
11695
+ /**
11696
+ * @private
11697
+ * This field is private and should not be used, use `tag` instead.
11698
+ */
11699
+ readonly [uniffiTypeNameSymbol]: "PaymentRequest";
11700
+ };
11701
+ };
11702
+ }>;
11703
+ /**
11704
+ * The payment destination. Either a raw string (bolt11, spark address, BIP-21,
11705
+ * cross-chain URI, etc.) that is parsed internally, or a structured
11706
+ * cross-chain destination with explicit chain + asset selection.
11707
+ */
11708
+ export type PaymentRequest = InstanceType<(typeof PaymentRequest)[keyof Omit<typeof PaymentRequest, 'instanceOf'>]>;
10333
11709
  /**
10334
11710
  * The status of a payment
10335
11711
  */
@@ -12895,7 +14271,8 @@ export declare enum SendPaymentMethod_Tags {
12895
14271
  BitcoinAddress = "BitcoinAddress",
12896
14272
  Bolt11Invoice = "Bolt11Invoice",
12897
14273
  SparkAddress = "SparkAddress",
12898
- SparkInvoice = "SparkInvoice"
14274
+ SparkInvoice = "SparkInvoice",
14275
+ CrossChainAddress = "CrossChainAddress"
12899
14276
  }
12900
14277
  export declare const SendPaymentMethod: Readonly<{
12901
14278
  instanceOf: (obj: any) => obj is SendPaymentMethod;
@@ -13114,6 +14491,168 @@ export declare const SendPaymentMethod: Readonly<{
13114
14491
  readonly [uniffiTypeNameSymbol]: "SendPaymentMethod";
13115
14492
  };
13116
14493
  };
14494
+ CrossChainAddress: {
14495
+ new (inner: {
14496
+ /**
14497
+ * The route selected for this cross-chain send (includes provider, chain, asset).
14498
+ */ route: CrossChainRoutePair;
14499
+ /**
14500
+ * Raw destination address (e.g. `0xabc...`).
14501
+ */ recipientAddress: string;
14502
+ /**
14503
+ * Amount routed to the provider, in the route's source-asset units
14504
+ * (Boltz invoice sats; Orchestra deposit sats/token). On the
14505
+ * token-conversion path (both `FeesIncluded` and `FeesExcluded`)
14506
+ * the dispatcher overrides this with the wallet-side token debit
14507
+ * when the source token and destination asset form a USD-stable pair.
14508
+ */ amountIn: U128;
14509
+ /**
14510
+ * `amount_in` expressed in the cross-chain (destination) asset's
14511
+ * base units, via the same rate the SDK used at prepare time.
14512
+ */ assetAmountIn: U128;
14513
+ /**
14514
+ * Estimated recipient amount in cross-chain asset base units.
14515
+ */ estimatedOut: U128;
14516
+ /**
14517
+ * Prepare-time total user-visible fee in cross-chain asset base units.
14518
+ * Covers provider spread + bridge/gas + DEX slippage. On the
14519
+ * token-conversion path it also rolls in the LN routing budget; on
14520
+ * the direct path that budget lives separately in
14521
+ * `source_transfer_fee_sats`.
14522
+ */ feeAmount: U128;
14523
+ /**
14524
+ * Provider's own service fee/spread in its native denomination.
14525
+ */ serviceFeeAmount: U128;
14526
+ /**
14527
+ * Asset which service fee is denominated in. Unset means BTC sats.
14528
+ */ serviceFeeAsset: string | undefined;
14529
+ /**
14530
+ * Sats budget for moving the amount in from the wallet to the provider.
14531
+ */ sourceTransferFeeSats: bigint;
14532
+ /**
14533
+ * Fee mode the prepare ran under; the send stage matches.
14534
+ */ feeMode: CrossChainFeeMode;
14535
+ /**
14536
+ * ISO8601 timestamp after which the quote is no longer valid.
14537
+ */ expiresAt: string;
14538
+ /**
14539
+ * Provider-internal state, produced when preparing and consumed
14540
+ * when sending.
14541
+ */ providerContext: CrossChainProviderContext;
14542
+ }): {
14543
+ readonly tag: SendPaymentMethod_Tags.CrossChainAddress;
14544
+ readonly inner: Readonly<{
14545
+ route: CrossChainRoutePair;
14546
+ recipientAddress: string;
14547
+ amountIn: U128;
14548
+ assetAmountIn: U128;
14549
+ estimatedOut: U128;
14550
+ feeAmount: U128;
14551
+ serviceFeeAmount: U128;
14552
+ serviceFeeAsset: string | undefined;
14553
+ sourceTransferFeeSats: bigint;
14554
+ feeMode: CrossChainFeeMode;
14555
+ expiresAt: string;
14556
+ providerContext: CrossChainProviderContext;
14557
+ }>;
14558
+ /**
14559
+ * @private
14560
+ * This field is private and should not be used, use `tag` instead.
14561
+ */
14562
+ readonly [uniffiTypeNameSymbol]: "SendPaymentMethod";
14563
+ };
14564
+ "new"(inner: {
14565
+ /**
14566
+ * The route selected for this cross-chain send (includes provider, chain, asset).
14567
+ */ route: CrossChainRoutePair;
14568
+ /**
14569
+ * Raw destination address (e.g. `0xabc...`).
14570
+ */ recipientAddress: string;
14571
+ /**
14572
+ * Amount routed to the provider, in the route's source-asset units
14573
+ * (Boltz invoice sats; Orchestra deposit sats/token). On the
14574
+ * token-conversion path (both `FeesIncluded` and `FeesExcluded`)
14575
+ * the dispatcher overrides this with the wallet-side token debit
14576
+ * when the source token and destination asset form a USD-stable pair.
14577
+ */ amountIn: U128;
14578
+ /**
14579
+ * `amount_in` expressed in the cross-chain (destination) asset's
14580
+ * base units, via the same rate the SDK used at prepare time.
14581
+ */ assetAmountIn: U128;
14582
+ /**
14583
+ * Estimated recipient amount in cross-chain asset base units.
14584
+ */ estimatedOut: U128;
14585
+ /**
14586
+ * Prepare-time total user-visible fee in cross-chain asset base units.
14587
+ * Covers provider spread + bridge/gas + DEX slippage. On the
14588
+ * token-conversion path it also rolls in the LN routing budget; on
14589
+ * the direct path that budget lives separately in
14590
+ * `source_transfer_fee_sats`.
14591
+ */ feeAmount: U128;
14592
+ /**
14593
+ * Provider's own service fee/spread in its native denomination.
14594
+ */ serviceFeeAmount: U128;
14595
+ /**
14596
+ * Asset which service fee is denominated in. Unset means BTC sats.
14597
+ */ serviceFeeAsset: string | undefined;
14598
+ /**
14599
+ * Sats budget for moving the amount in from the wallet to the provider.
14600
+ */ sourceTransferFeeSats: bigint;
14601
+ /**
14602
+ * Fee mode the prepare ran under; the send stage matches.
14603
+ */ feeMode: CrossChainFeeMode;
14604
+ /**
14605
+ * ISO8601 timestamp after which the quote is no longer valid.
14606
+ */ expiresAt: string;
14607
+ /**
14608
+ * Provider-internal state, produced when preparing and consumed
14609
+ * when sending.
14610
+ */ providerContext: CrossChainProviderContext;
14611
+ }): {
14612
+ readonly tag: SendPaymentMethod_Tags.CrossChainAddress;
14613
+ readonly inner: Readonly<{
14614
+ route: CrossChainRoutePair;
14615
+ recipientAddress: string;
14616
+ amountIn: U128;
14617
+ assetAmountIn: U128;
14618
+ estimatedOut: U128;
14619
+ feeAmount: U128;
14620
+ serviceFeeAmount: U128;
14621
+ serviceFeeAsset: string | undefined;
14622
+ sourceTransferFeeSats: bigint;
14623
+ feeMode: CrossChainFeeMode;
14624
+ expiresAt: string;
14625
+ providerContext: CrossChainProviderContext;
14626
+ }>;
14627
+ /**
14628
+ * @private
14629
+ * This field is private and should not be used, use `tag` instead.
14630
+ */
14631
+ readonly [uniffiTypeNameSymbol]: "SendPaymentMethod";
14632
+ };
14633
+ instanceOf(obj: any): obj is {
14634
+ readonly tag: SendPaymentMethod_Tags.CrossChainAddress;
14635
+ readonly inner: Readonly<{
14636
+ route: CrossChainRoutePair;
14637
+ recipientAddress: string;
14638
+ amountIn: U128;
14639
+ assetAmountIn: U128;
14640
+ estimatedOut: U128;
14641
+ feeAmount: U128;
14642
+ serviceFeeAmount: U128;
14643
+ serviceFeeAsset: string | undefined;
14644
+ sourceTransferFeeSats: bigint;
14645
+ feeMode: CrossChainFeeMode;
14646
+ expiresAt: string;
14647
+ providerContext: CrossChainProviderContext;
14648
+ }>;
14649
+ /**
14650
+ * @private
14651
+ * This field is private and should not be used, use `tag` instead.
14652
+ */
14653
+ readonly [uniffiTypeNameSymbol]: "SendPaymentMethod";
14654
+ };
14655
+ };
13117
14656
  }>;
13118
14657
  export type SendPaymentMethod = InstanceType<(typeof SendPaymentMethod)[keyof Omit<typeof SendPaymentMethod, 'instanceOf'>]>;
13119
14658
  export declare enum SendPaymentOptions_Tags {
@@ -14687,6 +16226,85 @@ export declare const SignerError: Readonly<{
14687
16226
  * Error type for signer operations
14688
16227
  */
14689
16228
  export type SignerError = InstanceType<(typeof SignerError)[keyof Omit<typeof SignerError, 'instanceOf'>]>;
16229
+ export declare enum SourceAsset_Tags {
16230
+ Bitcoin = "Bitcoin",
16231
+ Token = "Token"
16232
+ }
16233
+ /**
16234
+ * The source asset a cross-chain route accepts as input on the Spark side.
16235
+ */
16236
+ export declare const SourceAsset: Readonly<{
16237
+ instanceOf: (obj: any) => obj is SourceAsset;
16238
+ Bitcoin: {
16239
+ new (): {
16240
+ readonly tag: SourceAsset_Tags.Bitcoin;
16241
+ /**
16242
+ * @private
16243
+ * This field is private and should not be used, use `tag` instead.
16244
+ */
16245
+ readonly [uniffiTypeNameSymbol]: "SourceAsset";
16246
+ };
16247
+ "new"(): {
16248
+ readonly tag: SourceAsset_Tags.Bitcoin;
16249
+ /**
16250
+ * @private
16251
+ * This field is private and should not be used, use `tag` instead.
16252
+ */
16253
+ readonly [uniffiTypeNameSymbol]: "SourceAsset";
16254
+ };
16255
+ instanceOf(obj: any): obj is {
16256
+ readonly tag: SourceAsset_Tags.Bitcoin;
16257
+ /**
16258
+ * @private
16259
+ * This field is private and should not be used, use `tag` instead.
16260
+ */
16261
+ readonly [uniffiTypeNameSymbol]: "SourceAsset";
16262
+ };
16263
+ };
16264
+ Token: {
16265
+ new (inner: {
16266
+ tokenIdentifier: string;
16267
+ }): {
16268
+ readonly tag: SourceAsset_Tags.Token;
16269
+ readonly inner: Readonly<{
16270
+ tokenIdentifier: string;
16271
+ }>;
16272
+ /**
16273
+ * @private
16274
+ * This field is private and should not be used, use `tag` instead.
16275
+ */
16276
+ readonly [uniffiTypeNameSymbol]: "SourceAsset";
16277
+ };
16278
+ "new"(inner: {
16279
+ tokenIdentifier: string;
16280
+ }): {
16281
+ readonly tag: SourceAsset_Tags.Token;
16282
+ readonly inner: Readonly<{
16283
+ tokenIdentifier: string;
16284
+ }>;
16285
+ /**
16286
+ * @private
16287
+ * This field is private and should not be used, use `tag` instead.
16288
+ */
16289
+ readonly [uniffiTypeNameSymbol]: "SourceAsset";
16290
+ };
16291
+ instanceOf(obj: any): obj is {
16292
+ readonly tag: SourceAsset_Tags.Token;
16293
+ readonly inner: Readonly<{
16294
+ tokenIdentifier: string;
16295
+ }>;
16296
+ /**
16297
+ * @private
16298
+ * This field is private and should not be used, use `tag` instead.
16299
+ */
16300
+ readonly [uniffiTypeNameSymbol]: "SourceAsset";
16301
+ };
16302
+ };
16303
+ }>;
16304
+ /**
16305
+ * The source asset a cross-chain route accepts as input on the Spark side.
16306
+ */
16307
+ export type SourceAsset = InstanceType<(typeof SourceAsset)[keyof Omit<typeof SourceAsset, 'instanceOf'>]>;
14690
16308
  export declare enum SparkHtlcStatus {
14691
16309
  /**
14692
16310
  * The HTLC is waiting for the preimage to be shared by the receiver
@@ -15148,12 +16766,12 @@ export declare const StoragePaymentDetailsFilter: Readonly<{
15148
16766
  Spark: {
15149
16767
  new (inner: {
15150
16768
  htlcStatus: Array<SparkHtlcStatus> | undefined;
15151
- conversionRefundNeeded: boolean | undefined;
16769
+ conversionFilter: ConversionFilter | undefined;
15152
16770
  }): {
15153
16771
  readonly tag: StoragePaymentDetailsFilter_Tags.Spark;
15154
16772
  readonly inner: Readonly<{
15155
16773
  htlcStatus: Array<SparkHtlcStatus> | undefined;
15156
- conversionRefundNeeded: boolean | undefined;
16774
+ conversionFilter: ConversionFilter | undefined;
15157
16775
  }>;
15158
16776
  /**
15159
16777
  * @private
@@ -15163,12 +16781,12 @@ export declare const StoragePaymentDetailsFilter: Readonly<{
15163
16781
  };
15164
16782
  "new"(inner: {
15165
16783
  htlcStatus: Array<SparkHtlcStatus> | undefined;
15166
- conversionRefundNeeded: boolean | undefined;
16784
+ conversionFilter: ConversionFilter | undefined;
15167
16785
  }): {
15168
16786
  readonly tag: StoragePaymentDetailsFilter_Tags.Spark;
15169
16787
  readonly inner: Readonly<{
15170
16788
  htlcStatus: Array<SparkHtlcStatus> | undefined;
15171
- conversionRefundNeeded: boolean | undefined;
16789
+ conversionFilter: ConversionFilter | undefined;
15172
16790
  }>;
15173
16791
  /**
15174
16792
  * @private
@@ -15180,7 +16798,7 @@ export declare const StoragePaymentDetailsFilter: Readonly<{
15180
16798
  readonly tag: StoragePaymentDetailsFilter_Tags.Spark;
15181
16799
  readonly inner: Readonly<{
15182
16800
  htlcStatus: Array<SparkHtlcStatus> | undefined;
15183
- conversionRefundNeeded: boolean | undefined;
16801
+ conversionFilter: ConversionFilter | undefined;
15184
16802
  }>;
15185
16803
  /**
15186
16804
  * @private
@@ -15191,13 +16809,13 @@ export declare const StoragePaymentDetailsFilter: Readonly<{
15191
16809
  };
15192
16810
  Token: {
15193
16811
  new (inner: {
15194
- conversionRefundNeeded: boolean | undefined;
16812
+ conversionFilter: ConversionFilter | undefined;
15195
16813
  txHash: string | undefined;
15196
16814
  txType: TokenTransactionType | undefined;
15197
16815
  }): {
15198
16816
  readonly tag: StoragePaymentDetailsFilter_Tags.Token;
15199
16817
  readonly inner: Readonly<{
15200
- conversionRefundNeeded: boolean | undefined;
16818
+ conversionFilter: ConversionFilter | undefined;
15201
16819
  txHash: string | undefined;
15202
16820
  txType: TokenTransactionType | undefined;
15203
16821
  }>;
@@ -15208,13 +16826,13 @@ export declare const StoragePaymentDetailsFilter: Readonly<{
15208
16826
  readonly [uniffiTypeNameSymbol]: "StoragePaymentDetailsFilter";
15209
16827
  };
15210
16828
  "new"(inner: {
15211
- conversionRefundNeeded: boolean | undefined;
16829
+ conversionFilter: ConversionFilter | undefined;
15212
16830
  txHash: string | undefined;
15213
16831
  txType: TokenTransactionType | undefined;
15214
16832
  }): {
15215
16833
  readonly tag: StoragePaymentDetailsFilter_Tags.Token;
15216
16834
  readonly inner: Readonly<{
15217
- conversionRefundNeeded: boolean | undefined;
16835
+ conversionFilter: ConversionFilter | undefined;
15218
16836
  txHash: string | undefined;
15219
16837
  txType: TokenTransactionType | undefined;
15220
16838
  }>;
@@ -15227,7 +16845,7 @@ export declare const StoragePaymentDetailsFilter: Readonly<{
15227
16845
  instanceOf(obj: any): obj is {
15228
16846
  readonly tag: StoragePaymentDetailsFilter_Tags.Token;
15229
16847
  readonly inner: Readonly<{
15230
- conversionRefundNeeded: boolean | undefined;
16848
+ conversionFilter: ConversionFilter | undefined;
15231
16849
  txHash: string | undefined;
15232
16850
  txType: TokenTransactionType | undefined;
15233
16851
  }>;
@@ -15241,10 +16859,12 @@ export declare const StoragePaymentDetailsFilter: Readonly<{
15241
16859
  Lightning: {
15242
16860
  new (inner: {
15243
16861
  htlcStatus: Array<SparkHtlcStatus> | undefined;
16862
+ conversionFilter: ConversionFilter | undefined;
15244
16863
  }): {
15245
16864
  readonly tag: StoragePaymentDetailsFilter_Tags.Lightning;
15246
16865
  readonly inner: Readonly<{
15247
16866
  htlcStatus: Array<SparkHtlcStatus> | undefined;
16867
+ conversionFilter: ConversionFilter | undefined;
15248
16868
  }>;
15249
16869
  /**
15250
16870
  * @private
@@ -15254,10 +16874,12 @@ export declare const StoragePaymentDetailsFilter: Readonly<{
15254
16874
  };
15255
16875
  "new"(inner: {
15256
16876
  htlcStatus: Array<SparkHtlcStatus> | undefined;
16877
+ conversionFilter: ConversionFilter | undefined;
15257
16878
  }): {
15258
16879
  readonly tag: StoragePaymentDetailsFilter_Tags.Lightning;
15259
16880
  readonly inner: Readonly<{
15260
16881
  htlcStatus: Array<SparkHtlcStatus> | undefined;
16882
+ conversionFilter: ConversionFilter | undefined;
15261
16883
  }>;
15262
16884
  /**
15263
16885
  * @private
@@ -15269,6 +16891,7 @@ export declare const StoragePaymentDetailsFilter: Readonly<{
15269
16891
  readonly tag: StoragePaymentDetailsFilter_Tags.Lightning;
15270
16892
  readonly inner: Readonly<{
15271
16893
  htlcStatus: Array<SparkHtlcStatus> | undefined;
16894
+ conversionFilter: ConversionFilter | undefined;
15272
16895
  }>;
15273
16896
  /**
15274
16897
  * @private
@@ -15967,6 +17590,17 @@ export interface BreezSdkInterface {
15967
17590
  fetchConversionLimits(request: FetchConversionLimitsRequest, asyncOpts_?: {
15968
17591
  signal: AbortSignal;
15969
17592
  }): Promise<FetchConversionLimitsResponse>;
17593
+ /**
17594
+ * Returns the available cross-chain routes.
17595
+ *
17596
+ * Use [`CrossChainRouteFilter::Send`] to get routes for sending from Spark
17597
+ * (filtered by the parsed recipient address), or
17598
+ * [`CrossChainRouteFilter::Receive`] to get routes for receiving into Spark
17599
+ * (optionally filtered by a source contract address).
17600
+ */
17601
+ getCrossChainRoutes(filter: CrossChainRouteFilter, asyncOpts_?: {
17602
+ signal: AbortSignal;
17603
+ }): Promise<Array<CrossChainRoutePair>>;
15970
17604
  /**
15971
17605
  * Returns the balance of the wallet in satoshis
15972
17606
  */
@@ -16374,6 +18008,17 @@ export declare class BreezSdk extends UniffiAbstractObject implements BreezSdkIn
16374
18008
  fetchConversionLimits(request: FetchConversionLimitsRequest, asyncOpts_?: {
16375
18009
  signal: AbortSignal;
16376
18010
  }): Promise<FetchConversionLimitsResponse>;
18011
+ /**
18012
+ * Returns the available cross-chain routes.
18013
+ *
18014
+ * Use [`CrossChainRouteFilter::Send`] to get routes for sending from Spark
18015
+ * (filtered by the parsed recipient address), or
18016
+ * [`CrossChainRouteFilter::Receive`] to get routes for receiving into Spark
18017
+ * (optionally filtered by a source contract address).
18018
+ */
18019
+ getCrossChainRoutes(filter: CrossChainRouteFilter, asyncOpts_?: {
18020
+ signal: AbortSignal;
18021
+ }): Promise<Array<CrossChainRoutePair>>;
16377
18022
  /**
16378
18023
  * Returns the balance of the wallet in satoshis
16379
18024
  */
@@ -18144,6 +19789,25 @@ export interface Storage {
18144
19789
  deleteContact(id: string, asyncOpts_?: {
18145
19790
  signal: AbortSignal;
18146
19791
  }): Promise<void>;
19792
+ /**
19793
+ * Inserts or overwrites a cross-chain swap row (upsert by `(provider, id)`).
19794
+ */
19795
+ setCrossChainSwap(swap: StoredCrossChainSwap, asyncOpts_?: {
19796
+ signal: AbortSignal;
19797
+ }): Promise<void>;
19798
+ /**
19799
+ * Gets a single cross-chain swap row by its `(provider, id)`, or `None` if absent.
19800
+ */
19801
+ getCrossChainSwap(provider: string, id: string, asyncOpts_?: {
19802
+ signal: AbortSignal;
19803
+ }): Promise<StoredCrossChainSwap | undefined>;
19804
+ /**
19805
+ * Lists all non-terminal cross-chain swap rows for a single provider
19806
+ * (`provider = ? AND is_terminal = false`).
19807
+ */
19808
+ listActiveCrossChainSwaps(provider: string, asyncOpts_?: {
19809
+ signal: AbortSignal;
19810
+ }): Promise<Array<StoredCrossChainSwap>>;
18147
19811
  addOutgoingChange(record: UnversionedRecordChange, asyncOpts_?: {
18148
19812
  signal: AbortSignal;
18149
19813
  }): Promise</*u64*/ bigint>;
@@ -18376,6 +20040,25 @@ export declare class StorageImpl extends UniffiAbstractObject implements Storage
18376
20040
  deleteContact(id: string, asyncOpts_?: {
18377
20041
  signal: AbortSignal;
18378
20042
  }): Promise<void>;
20043
+ /**
20044
+ * Inserts or overwrites a cross-chain swap row (upsert by `(provider, id)`).
20045
+ */
20046
+ setCrossChainSwap(swap: StoredCrossChainSwap, asyncOpts_?: {
20047
+ signal: AbortSignal;
20048
+ }): Promise<void>;
20049
+ /**
20050
+ * Gets a single cross-chain swap row by its `(provider, id)`, or `None` if absent.
20051
+ */
20052
+ getCrossChainSwap(provider: string, id: string, asyncOpts_?: {
20053
+ signal: AbortSignal;
20054
+ }): Promise<StoredCrossChainSwap | undefined>;
20055
+ /**
20056
+ * Lists all non-terminal cross-chain swap rows for a single provider
20057
+ * (`provider = ? AND is_terminal = false`).
20058
+ */
20059
+ listActiveCrossChainSwaps(provider: string, asyncOpts_?: {
20060
+ signal: AbortSignal;
20061
+ }): Promise<Array<StoredCrossChainSwap>>;
18379
20062
  addOutgoingChange(record: UnversionedRecordChange, asyncOpts_?: {
18380
20063
  signal: AbortSignal;
18381
20064
  }): Promise</*u64*/ bigint>;
@@ -18998,6 +20681,27 @@ declare const _default: Readonly<{
18998
20681
  lift(value: UniffiByteArray): Contact;
18999
20682
  lower(value: Contact): UniffiByteArray;
19000
20683
  };
20684
+ FfiConverterTypeConversion: {
20685
+ read(from: RustBuffer): Conversion;
20686
+ write(value: Conversion, into: RustBuffer): void;
20687
+ allocationSize(value: Conversion): number;
20688
+ lift(value: UniffiByteArray): Conversion;
20689
+ lower(value: Conversion): UniffiByteArray;
20690
+ };
20691
+ FfiConverterTypeConversionAsset: {
20692
+ read(from: RustBuffer): ConversionAsset;
20693
+ write(value: ConversionAsset, into: RustBuffer): void;
20694
+ allocationSize(value: ConversionAsset): number;
20695
+ lift(value: UniffiByteArray): ConversionAsset;
20696
+ lower(value: ConversionAsset): UniffiByteArray;
20697
+ };
20698
+ FfiConverterTypeConversionChain: {
20699
+ read(from: RustBuffer): ConversionChain;
20700
+ write(value: ConversionChain, into: RustBuffer): void;
20701
+ allocationSize(value: ConversionChain): number;
20702
+ lift(value: UniffiByteArray): ConversionChain;
20703
+ lower(value: ConversionChain): UniffiByteArray;
20704
+ };
19001
20705
  FfiConverterTypeConversionDetails: {
19002
20706
  read(from: RustBuffer): ConversionDetails;
19003
20707
  write(value: ConversionDetails, into: RustBuffer): void;
@@ -19012,6 +20716,13 @@ declare const _default: Readonly<{
19012
20716
  lift(value: UniffiByteArray): ConversionEstimate;
19013
20717
  lower(value: ConversionEstimate): UniffiByteArray;
19014
20718
  };
20719
+ FfiConverterTypeConversionFilter: {
20720
+ read(from: RustBuffer): ConversionFilter;
20721
+ write(value: ConversionFilter, into: RustBuffer): void;
20722
+ allocationSize(value: ConversionFilter): number;
20723
+ lift(value: UniffiByteArray): ConversionFilter;
20724
+ lower(value: ConversionFilter): UniffiByteArray;
20725
+ };
19015
20726
  FfiConverterTypeConversionInfo: {
19016
20727
  read(from: RustBuffer): ConversionInfo;
19017
20728
  write(value: ConversionInfo, into: RustBuffer): void;
@@ -19026,6 +20737,13 @@ declare const _default: Readonly<{
19026
20737
  lift(value: UniffiByteArray): ConversionOptions;
19027
20738
  lower(value: ConversionOptions): UniffiByteArray;
19028
20739
  };
20740
+ FfiConverterTypeConversionProvider: {
20741
+ read(from: RustBuffer): ConversionProvider;
20742
+ write(value: ConversionProvider, into: RustBuffer): void;
20743
+ allocationSize(value: ConversionProvider): number;
20744
+ lift(value: UniffiByteArray): ConversionProvider;
20745
+ lower(value: ConversionProvider): UniffiByteArray;
20746
+ };
19029
20747
  FfiConverterTypeConversionPurpose: {
19030
20748
  read(from: RustBuffer): ConversionPurpose;
19031
20749
  write(value: ConversionPurpose, into: RustBuffer): void;
@@ -19033,6 +20751,13 @@ declare const _default: Readonly<{
19033
20751
  lift(value: UniffiByteArray): ConversionPurpose;
19034
20752
  lower(value: ConversionPurpose): UniffiByteArray;
19035
20753
  };
20754
+ FfiConverterTypeConversionSide: {
20755
+ read(from: RustBuffer): ConversionSide;
20756
+ write(value: ConversionSide, into: RustBuffer): void;
20757
+ allocationSize(value: ConversionSide): number;
20758
+ lift(value: UniffiByteArray): ConversionSide;
20759
+ lower(value: ConversionSide): UniffiByteArray;
20760
+ };
19036
20761
  FfiConverterTypeConversionStatus: {
19037
20762
  read(from: RustBuffer): ConversionStatus;
19038
20763
  write(value: ConversionStatus, into: RustBuffer): void;
@@ -19040,13 +20765,6 @@ declare const _default: Readonly<{
19040
20765
  lift(value: UniffiByteArray): ConversionStatus;
19041
20766
  lower(value: ConversionStatus): UniffiByteArray;
19042
20767
  };
19043
- FfiConverterTypeConversionStep: {
19044
- read(from: RustBuffer): ConversionStep;
19045
- write(value: ConversionStep, into: RustBuffer): void;
19046
- allocationSize(value: ConversionStep): number;
19047
- lift(value: UniffiByteArray): ConversionStep;
19048
- lower(value: ConversionStep): UniffiByteArray;
19049
- };
19050
20768
  FfiConverterTypeConversionType: {
19051
20769
  read(from: RustBuffer): ConversionType;
19052
20770
  write(value: ConversionType, into: RustBuffer): void;
@@ -19068,6 +20786,62 @@ declare const _default: Readonly<{
19068
20786
  lift(value: UniffiByteArray): Credentials;
19069
20787
  lower(value: Credentials): UniffiByteArray;
19070
20788
  };
20789
+ FfiConverterTypeCrossChainAddressDetails: {
20790
+ read(from: RustBuffer): CrossChainAddressDetails;
20791
+ write(value: CrossChainAddressDetails, into: RustBuffer): void;
20792
+ allocationSize(value: CrossChainAddressDetails): number;
20793
+ lift(value: UniffiByteArray): CrossChainAddressDetails;
20794
+ lower(value: CrossChainAddressDetails): UniffiByteArray;
20795
+ };
20796
+ FfiConverterTypeCrossChainAddressFamily: {
20797
+ read(from: RustBuffer): CrossChainAddressFamily;
20798
+ write(value: CrossChainAddressFamily, into: RustBuffer): void;
20799
+ allocationSize(value: CrossChainAddressFamily): number;
20800
+ lift(value: UniffiByteArray): CrossChainAddressFamily;
20801
+ lower(value: CrossChainAddressFamily): UniffiByteArray;
20802
+ };
20803
+ FfiConverterTypeCrossChainConfig: {
20804
+ read(from: RustBuffer): CrossChainConfig;
20805
+ write(value: CrossChainConfig, into: RustBuffer): void;
20806
+ allocationSize(value: CrossChainConfig): number;
20807
+ lift(value: UniffiByteArray): CrossChainConfig;
20808
+ lower(value: CrossChainConfig): UniffiByteArray;
20809
+ };
20810
+ FfiConverterTypeCrossChainFeeMode: {
20811
+ read(from: RustBuffer): CrossChainFeeMode;
20812
+ write(value: CrossChainFeeMode, into: RustBuffer): void;
20813
+ allocationSize(value: CrossChainFeeMode): number;
20814
+ lift(value: UniffiByteArray): CrossChainFeeMode;
20815
+ lower(value: CrossChainFeeMode): UniffiByteArray;
20816
+ };
20817
+ FfiConverterTypeCrossChainProvider: {
20818
+ read(from: RustBuffer): CrossChainProvider;
20819
+ write(value: CrossChainProvider, into: RustBuffer): void;
20820
+ allocationSize(value: CrossChainProvider): number;
20821
+ lift(value: UniffiByteArray): CrossChainProvider;
20822
+ lower(value: CrossChainProvider): UniffiByteArray;
20823
+ };
20824
+ FfiConverterTypeCrossChainProviderContext: {
20825
+ read(from: RustBuffer): CrossChainProviderContext;
20826
+ write(value: CrossChainProviderContext, into: RustBuffer): void;
20827
+ allocationSize(value: CrossChainProviderContext): number;
20828
+ lift(value: UniffiByteArray): CrossChainProviderContext;
20829
+ lower(value: CrossChainProviderContext): UniffiByteArray;
20830
+ };
20831
+ FfiConverterTypeCrossChainRouteFilter: {
20832
+ read(from: RustBuffer): CrossChainRouteFilter;
20833
+ write(value: CrossChainRouteFilter, into: RustBuffer): void;
20834
+ allocationSize(value: CrossChainRouteFilter): number;
20835
+ lift(value: UniffiByteArray): CrossChainRouteFilter;
20836
+ lower(value: CrossChainRouteFilter): UniffiByteArray;
20837
+ };
20838
+ FfiConverterTypeCrossChainRoutePair: {
20839
+ read(from: RustBuffer): CrossChainRoutePair;
20840
+ write(value: CrossChainRoutePair, into: RustBuffer): void;
20841
+ allocationSize(value: CrossChainRoutePair): number;
20842
+ lift(value: UniffiByteArray): CrossChainRoutePair;
20843
+ lower(value: CrossChainRoutePair): UniffiByteArray;
20844
+ };
19071
20845
  FfiConverterTypeCurrencyInfo: {
19072
20846
  read(from: RustBuffer): CurrencyInfo;
19073
20847
  write(value: CurrencyInfo, into: RustBuffer): void;
@@ -19851,6 +21625,13 @@ declare const _default: Readonly<{
19851
21625
  lift(value: UniffiByteArray): PaymentObserverError;
19852
21626
  lower(value: PaymentObserverError): UniffiByteArray;
19853
21627
  };
21628
+ FfiConverterTypePaymentRequest: {
21629
+ read(from: RustBuffer): PaymentRequest;
21630
+ write(value: PaymentRequest, into: RustBuffer): void;
21631
+ allocationSize(value: PaymentRequest): number;
21632
+ lift(value: UniffiByteArray): PaymentRequest;
21633
+ lower(value: PaymentRequest): UniffiByteArray;
21634
+ };
19854
21635
  FfiConverterTypePaymentRequestSource: {
19855
21636
  read(from: RustBuffer): PaymentRequestSource;
19856
21637
  write(value: PaymentRequestSource, into: RustBuffer): void;
@@ -20222,6 +22003,13 @@ declare const _default: Readonly<{
20222
22003
  lift(value: UniffiByteArray): SilentPaymentAddressDetails;
20223
22004
  lower(value: SilentPaymentAddressDetails): UniffiByteArray;
20224
22005
  };
22006
+ FfiConverterTypeSourceAsset: {
22007
+ read(from: RustBuffer): SourceAsset;
22008
+ write(value: SourceAsset, into: RustBuffer): void;
22009
+ allocationSize(value: SourceAsset): number;
22010
+ lift(value: UniffiByteArray): SourceAsset;
22011
+ lower(value: SourceAsset): UniffiByteArray;
22012
+ };
20225
22013
  FfiConverterTypeSparkAddressDetails: {
20226
22014
  read(from: RustBuffer): SparkAddressDetails;
20227
22015
  write(value: SparkAddressDetails, into: RustBuffer): void;
@@ -20336,6 +22124,13 @@ declare const _default: Readonly<{
20336
22124
  lift(value: UniffiByteArray): StoragePaymentDetailsFilter;
20337
22125
  lower(value: StoragePaymentDetailsFilter): UniffiByteArray;
20338
22126
  };
22127
+ FfiConverterTypeStoredCrossChainSwap: {
22128
+ read(from: RustBuffer): StoredCrossChainSwap;
22129
+ write(value: StoredCrossChainSwap, into: RustBuffer): void;
22130
+ allocationSize(value: StoredCrossChainSwap): number;
22131
+ lift(value: UniffiByteArray): StoredCrossChainSwap;
22132
+ lower(value: StoredCrossChainSwap): UniffiByteArray;
22133
+ };
20339
22134
  FfiConverterTypeSuccessAction: {
20340
22135
  read(from: RustBuffer): SuccessAction;
20341
22136
  write(value: SuccessAction, into: RustBuffer): void;