@buildonspark/spark-sdk 0.3.4 → 0.3.6

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.
Files changed (101) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/bare/index.cjs +547 -1238
  3. package/dist/bare/index.d.cts +676 -79
  4. package/dist/bare/index.d.ts +676 -79
  5. package/dist/bare/index.js +543 -1058
  6. package/dist/chunk-EHKP3Y65.js +140 -0
  7. package/dist/chunk-FJ7LTA2O.js +605 -0
  8. package/dist/chunk-LIZFXQWK.js +7 -0
  9. package/dist/{chunk-KIQTO4FX.js → chunk-XPHYQ2L6.js} +8128 -8727
  10. package/dist/{client-DWml6sjL.d.cts → client-AHn11NHe.d.cts} +1 -1
  11. package/dist/{client-DBZ43pJT.d.ts → client-GOlkXliC.d.ts} +1 -1
  12. package/dist/debug.cjs +581 -1222
  13. package/dist/debug.d.cts +8 -8
  14. package/dist/debug.d.ts +8 -8
  15. package/dist/debug.js +5 -3
  16. package/dist/graphql/objects/index.d.cts +3 -3
  17. package/dist/graphql/objects/index.d.ts +3 -3
  18. package/dist/index.cjs +531 -1231
  19. package/dist/index.d.cts +7 -18
  20. package/dist/index.d.ts +7 -18
  21. package/dist/index.js +5 -4
  22. package/dist/index.node.cjs +1200 -1441
  23. package/dist/index.node.d.cts +6 -7
  24. package/dist/index.node.d.ts +6 -7
  25. package/dist/index.node.js +7 -66
  26. package/dist/{logging-BUpzk4Z6.d.cts → logging-CW3kwBaM.d.cts} +3 -3
  27. package/dist/{logging-Dt2ooQiP.d.ts → logging-D7ukPwRA.d.ts} +3 -3
  28. package/dist/native/{chunk-D3SZRO65.js → chunk-X2QXUON7.js} +15 -0
  29. package/dist/native/index.cjs +702 -1214
  30. package/dist/native/index.d.cts +1077 -477
  31. package/dist/native/index.d.ts +1077 -477
  32. package/dist/native/index.js +700 -1042
  33. package/dist/native/{wasm-KT5NZXRN.js → wasm-GKEDPGTM.js} +1 -2
  34. package/dist/proto/spark.d.cts +1 -1
  35. package/dist/proto/spark.d.ts +1 -1
  36. package/dist/proto/spark_token.d.cts +1 -1
  37. package/dist/proto/spark_token.d.ts +1 -1
  38. package/dist/{spark-DasxuVfm.d.cts → spark-WA_4wcBr.d.cts} +1 -1
  39. package/dist/{spark-DasxuVfm.d.ts → spark-WA_4wcBr.d.ts} +1 -1
  40. package/dist/{spark-wallet-jlC0XN5f.d.ts → spark-wallet-NxG55m7K.d.cts} +105 -74
  41. package/dist/{spark-wallet-BoMIOPWW.d.cts → spark-wallet-jwNvWvpK.d.ts} +105 -74
  42. package/dist/spark-wallet.browser-Cg4fB-Nm.d.ts +26 -0
  43. package/dist/spark-wallet.browser-Db7Y95Kt.d.cts +26 -0
  44. package/dist/spark-wallet.node-DB3ZqtJG.d.ts +90 -0
  45. package/dist/spark-wallet.node-HEG2ahNd.d.cts +90 -0
  46. package/dist/tests/test-utils.cjs +17560 -7615
  47. package/dist/tests/test-utils.d.cts +7 -21
  48. package/dist/tests/test-utils.d.ts +7 -21
  49. package/dist/tests/test-utils.js +30 -4
  50. package/dist/{token-transactions-DscJaJOE.d.ts → token-transactions-B2-BO7Oz.d.ts} +2 -2
  51. package/dist/{token-transactions-BDzCrQSk.d.cts → token-transactions-BAN68xwg.d.cts} +2 -2
  52. package/dist/types/index.d.cts +2 -2
  53. package/dist/types/index.d.ts +2 -2
  54. package/package.json +7 -13
  55. package/src/bare/index.ts +1 -1
  56. package/src/debug.ts +1 -1
  57. package/src/index.node.ts +2 -1
  58. package/src/index.ts +2 -1
  59. package/src/native/index.ts +3 -2
  60. package/src/services/connection/connection.browser.ts +130 -0
  61. package/src/services/connection/connection.node.ts +158 -0
  62. package/src/services/{connection.ts → connection/connection.ts} +48 -259
  63. package/src/services/coop-exit.ts +3 -3
  64. package/src/services/deposit.ts +1 -1
  65. package/src/services/index.ts +1 -1
  66. package/src/services/lightning.ts +1 -1
  67. package/src/services/token-transactions.ts +1 -1
  68. package/src/services/transfer.ts +1 -1
  69. package/src/spark-wallet/spark-wallet.bare.ts +12 -0
  70. package/src/spark-wallet/spark-wallet.browser.ts +10 -24
  71. package/src/spark-wallet/spark-wallet.node.ts +4 -24
  72. package/src/spark-wallet/spark-wallet.react-native.ts +15 -0
  73. package/src/spark-wallet/spark-wallet.ts +87 -75
  74. package/src/spark-wallet/types.ts +4 -2
  75. package/src/tests/integration/coop-exit.test.ts +3 -3
  76. package/src/tests/integration/lightning.test.ts +4 -4
  77. package/src/tests/integration/ssp/coop-exit-validation.test.ts +3 -5
  78. package/src/tests/integration/ssp/coop-exit.test.ts +3 -5
  79. package/src/tests/integration/ssp/lightning.test.ts +1 -1
  80. package/src/tests/integration/ssp/static-deposit-validation.test.ts +2 -2
  81. package/src/tests/integration/ssp/static_deposit.test.ts +49 -66
  82. package/src/tests/integration/ssp/swap.test.ts +4 -5
  83. package/src/tests/integration/ssp/transfers.test.ts +10 -11
  84. package/src/tests/integration/static_deposit.test.ts +4 -4
  85. package/src/tests/integration/token-output.test.ts +2 -2
  86. package/src/tests/integration/transfer.test.ts +30 -26
  87. package/src/tests/integration/watchtower.test.ts +3 -3
  88. package/src/tests/spark-wallet/queryNodes.test.ts +1 -2
  89. package/src/tests/test-utils.ts +3 -3
  90. package/src/tests/token-outputs.test.ts +1 -1
  91. package/src/tests/utils/spark-testing-wallet.ts +18 -58
  92. package/src/tests/utils/utils.ts +63 -0
  93. package/src/tests/wrapWithOtelSpan.test.ts +7 -0
  94. package/src/utils/network.ts +11 -10
  95. package/dist/bare/xhr-transport-EEEC7FYA.js +0 -165
  96. package/dist/chunk-YH7MDVTT.js +0 -70
  97. package/dist/native/chunk-C3WN3D4O.js +0 -19
  98. package/dist/native/xhr-transport-TNCG4HTW.js +0 -168
  99. package/dist/spark-wallet.node-07PksUHH.d.cts +0 -12
  100. package/dist/spark-wallet.node-CdWkKMSq.d.ts +0 -12
  101. package/dist/xhr-transport-IWJPYF7F.js +0 -167
@@ -3,13 +3,13 @@ import * as btc from '@scure/btc-signer';
3
3
  import { Transaction } from '@scure/btc-signer';
4
4
  import { HDKey } from '@scure/bip32';
5
5
  import { BinaryWriter, BinaryReader } from '@bufbuild/protobuf/wire';
6
- import { CallOptions } from 'nice-grpc-common';
7
- import * as bitcoin from 'bitcoinjs-lib';
6
+ import { CallOptions, ClientMiddlewareCall, Metadata } from 'nice-grpc-common';
8
7
  import { Channel } from 'nice-grpc';
9
- import { Channel as Channel$1 } from 'nice-grpc-web';
8
+ import { Channel as Channel$1, createChannel } from 'nice-grpc-web';
10
9
  import * as _scure_base from '@scure/base';
11
10
  import { SpanProcessor } from '@opentelemetry/sdk-trace-base';
12
11
  import { EventEmitter } from 'eventemitter3';
12
+ import * as nice_grpc_web_lib_client_Transport_js from 'nice-grpc-web/lib/client/Transport.js';
13
13
  import { TransactionOutput, TransactionInput } from '@scure/btc-signer/psbt';
14
14
 
15
15
  declare class SparkSDKError extends Error {
@@ -2162,6 +2162,495 @@ interface TokenTransfer {
2162
2162
  finalTokenTransactionHash: Uint8Array;
2163
2163
  }
2164
2164
  declare const TokenTransfer: MessageFns$2<TokenTransfer>;
2165
+ type SparkServiceDefinition = typeof SparkServiceDefinition;
2166
+ declare const SparkServiceDefinition: {
2167
+ readonly name: "SparkService";
2168
+ readonly fullName: "spark.SparkService";
2169
+ readonly methods: {
2170
+ readonly generate_deposit_address: {
2171
+ readonly name: "generate_deposit_address";
2172
+ readonly requestType: MessageFns$2<GenerateDepositAddressRequest>;
2173
+ readonly requestStream: false;
2174
+ readonly responseType: MessageFns$2<GenerateDepositAddressResponse>;
2175
+ readonly responseStream: false;
2176
+ readonly options: {};
2177
+ };
2178
+ /** Generates a new static deposit address of the user or returns the existing one for the specified network. */
2179
+ readonly generate_static_deposit_address: {
2180
+ readonly name: "generate_static_deposit_address";
2181
+ readonly requestType: MessageFns$2<GenerateStaticDepositAddressRequest>;
2182
+ readonly requestStream: false;
2183
+ readonly responseType: MessageFns$2<GenerateStaticDepositAddressResponse>;
2184
+ readonly responseStream: false;
2185
+ readonly options: {};
2186
+ };
2187
+ readonly start_deposit_tree_creation: {
2188
+ readonly name: "start_deposit_tree_creation";
2189
+ readonly requestType: MessageFns$2<StartDepositTreeCreationRequest>;
2190
+ readonly requestStream: false;
2191
+ readonly responseType: MessageFns$2<StartDepositTreeCreationResponse>;
2192
+ readonly responseStream: false;
2193
+ readonly options: {};
2194
+ };
2195
+ /**
2196
+ * This is deprecated, please use start_deposit_tree_creation instead.
2197
+ *
2198
+ * @deprecated
2199
+ */
2200
+ readonly start_tree_creation: {
2201
+ readonly name: "start_tree_creation";
2202
+ readonly requestType: MessageFns$2<StartTreeCreationRequest>;
2203
+ readonly requestStream: false;
2204
+ readonly responseType: MessageFns$2<StartTreeCreationResponse>;
2205
+ readonly responseStream: false;
2206
+ readonly options: {};
2207
+ };
2208
+ readonly finalize_node_signatures: {
2209
+ readonly name: "finalize_node_signatures";
2210
+ readonly requestType: MessageFns$2<FinalizeNodeSignaturesRequest>;
2211
+ readonly requestStream: false;
2212
+ readonly responseType: MessageFns$2<FinalizeNodeSignaturesResponse>;
2213
+ readonly responseStream: false;
2214
+ readonly options: {};
2215
+ };
2216
+ readonly start_transfer: {
2217
+ readonly name: "start_transfer";
2218
+ readonly requestType: MessageFns$2<StartTransferRequest>;
2219
+ readonly requestStream: false;
2220
+ readonly responseType: MessageFns$2<StartTransferResponse>;
2221
+ readonly responseStream: false;
2222
+ readonly options: {};
2223
+ };
2224
+ /**
2225
+ * This is deprecated, please use finalize_transfer_with_transfer_package instead.
2226
+ *
2227
+ * @deprecated
2228
+ */
2229
+ readonly finalize_transfer: {
2230
+ readonly name: "finalize_transfer";
2231
+ readonly requestType: MessageFns$2<FinalizeTransferRequest>;
2232
+ readonly requestStream: false;
2233
+ readonly responseType: MessageFns$2<FinalizeTransferResponse>;
2234
+ readonly responseStream: false;
2235
+ readonly options: {};
2236
+ };
2237
+ readonly finalize_transfer_with_transfer_package: {
2238
+ readonly name: "finalize_transfer_with_transfer_package";
2239
+ readonly requestType: MessageFns$2<FinalizeTransferWithTransferPackageRequest>;
2240
+ readonly requestStream: false;
2241
+ readonly responseType: MessageFns$2<FinalizeTransferResponse>;
2242
+ readonly responseStream: false;
2243
+ readonly options: {};
2244
+ };
2245
+ readonly cancel_transfer: {
2246
+ readonly name: "cancel_transfer";
2247
+ readonly requestType: MessageFns$2<CancelTransferRequest>;
2248
+ readonly requestStream: false;
2249
+ readonly responseType: MessageFns$2<CancelTransferResponse>;
2250
+ readonly responseStream: false;
2251
+ readonly options: {};
2252
+ };
2253
+ readonly query_pending_transfers: {
2254
+ readonly name: "query_pending_transfers";
2255
+ readonly requestType: MessageFns$2<TransferFilter>;
2256
+ readonly requestStream: false;
2257
+ readonly responseType: MessageFns$2<QueryTransfersResponse>;
2258
+ readonly responseStream: false;
2259
+ readonly options: {};
2260
+ };
2261
+ readonly query_all_transfers: {
2262
+ readonly name: "query_all_transfers";
2263
+ readonly requestType: MessageFns$2<TransferFilter>;
2264
+ readonly requestStream: false;
2265
+ readonly responseType: MessageFns$2<QueryTransfersResponse>;
2266
+ readonly responseStream: false;
2267
+ readonly options: {};
2268
+ };
2269
+ readonly claim_transfer_tweak_keys: {
2270
+ readonly name: "claim_transfer_tweak_keys";
2271
+ readonly requestType: MessageFns$2<ClaimTransferTweakKeysRequest>;
2272
+ readonly requestStream: false;
2273
+ readonly responseType: MessageFns$4<Empty>;
2274
+ readonly responseStream: false;
2275
+ readonly options: {};
2276
+ };
2277
+ readonly claim_transfer_sign_refunds: {
2278
+ readonly name: "claim_transfer_sign_refunds";
2279
+ readonly requestType: MessageFns$2<ClaimTransferSignRefundsRequest>;
2280
+ readonly requestStream: false;
2281
+ readonly responseType: MessageFns$2<ClaimTransferSignRefundsResponse>;
2282
+ readonly responseStream: false;
2283
+ readonly options: {};
2284
+ };
2285
+ readonly store_preimage_share: {
2286
+ readonly name: "store_preimage_share";
2287
+ readonly requestType: MessageFns$2<StorePreimageShareRequest>;
2288
+ readonly requestStream: false;
2289
+ readonly responseType: MessageFns$4<Empty>;
2290
+ readonly responseStream: false;
2291
+ readonly options: {};
2292
+ };
2293
+ readonly get_signing_commitments: {
2294
+ readonly name: "get_signing_commitments";
2295
+ readonly requestType: MessageFns$2<GetSigningCommitmentsRequest>;
2296
+ readonly requestStream: false;
2297
+ readonly responseType: MessageFns$2<GetSigningCommitmentsResponse>;
2298
+ readonly responseStream: false;
2299
+ readonly options: {};
2300
+ };
2301
+ readonly cooperative_exit: {
2302
+ readonly name: "cooperative_exit";
2303
+ readonly requestType: MessageFns$2<CooperativeExitRequest>;
2304
+ readonly requestStream: false;
2305
+ readonly responseType: MessageFns$2<CooperativeExitResponse>;
2306
+ readonly responseStream: false;
2307
+ readonly options: {};
2308
+ };
2309
+ readonly initiate_preimage_swap: {
2310
+ readonly name: "initiate_preimage_swap";
2311
+ readonly requestType: MessageFns$2<InitiatePreimageSwapRequest>;
2312
+ readonly requestStream: false;
2313
+ readonly responseType: MessageFns$2<InitiatePreimageSwapResponse>;
2314
+ readonly responseStream: false;
2315
+ readonly options: {};
2316
+ };
2317
+ readonly provide_preimage: {
2318
+ readonly name: "provide_preimage";
2319
+ readonly requestType: MessageFns$2<ProvidePreimageRequest>;
2320
+ readonly requestStream: false;
2321
+ readonly responseType: MessageFns$2<ProvidePreimageResponse>;
2322
+ readonly responseStream: false;
2323
+ readonly options: {};
2324
+ };
2325
+ /**
2326
+ * This is the exact same as start_transfer, but expresses to the SO
2327
+ * this transfer is specifically for a leaf swap.
2328
+ */
2329
+ readonly start_leaf_swap: {
2330
+ readonly name: "start_leaf_swap";
2331
+ readonly requestType: MessageFns$2<StartTransferRequest>;
2332
+ readonly requestStream: false;
2333
+ readonly responseType: MessageFns$2<StartTransferResponse>;
2334
+ readonly responseStream: false;
2335
+ readonly options: {};
2336
+ };
2337
+ /**
2338
+ * This is deprecated, please use counter_leaf_swap instead.
2339
+ *
2340
+ * @deprecated
2341
+ */
2342
+ readonly leaf_swap: {
2343
+ readonly name: "leaf_swap";
2344
+ readonly requestType: MessageFns$2<CounterLeafSwapRequest>;
2345
+ readonly requestStream: false;
2346
+ readonly responseType: MessageFns$2<CounterLeafSwapResponse>;
2347
+ readonly responseStream: false;
2348
+ readonly options: {};
2349
+ };
2350
+ /**
2351
+ * This is the exact same as start_leaf_swap, but signs with
2352
+ * an adaptor public key after a counterparty has begun the swap via start_leaf_swap.
2353
+ */
2354
+ readonly counter_leaf_swap: {
2355
+ readonly name: "counter_leaf_swap";
2356
+ readonly requestType: MessageFns$2<CounterLeafSwapRequest>;
2357
+ readonly requestStream: false;
2358
+ readonly responseType: MessageFns$2<CounterLeafSwapResponse>;
2359
+ readonly responseStream: false;
2360
+ readonly options: {};
2361
+ };
2362
+ readonly refresh_timelock: {
2363
+ readonly name: "refresh_timelock";
2364
+ readonly requestType: MessageFns$2<RefreshTimelockRequest>;
2365
+ readonly requestStream: false;
2366
+ readonly responseType: MessageFns$2<RefreshTimelockResponse>;
2367
+ readonly responseStream: false;
2368
+ readonly options: {};
2369
+ };
2370
+ readonly extend_leaf: {
2371
+ readonly name: "extend_leaf";
2372
+ readonly requestType: MessageFns$2<ExtendLeafRequest>;
2373
+ readonly requestStream: false;
2374
+ readonly responseType: MessageFns$2<ExtendLeafResponse>;
2375
+ readonly responseStream: false;
2376
+ readonly options: {};
2377
+ };
2378
+ /**
2379
+ * Resets the timelocks for a leaf's transactions. Can be used to reset the
2380
+ * refund transaction timelock for a leaf (when the node transaction
2381
+ * timelock is still > 300) or reset the node and refund transaction
2382
+ * timelock. Returns an error if a leaf is not yet eligible to renew the
2383
+ * timelocks, see RenewLeafRequest for more details.
2384
+ */
2385
+ readonly renew_leaf: {
2386
+ readonly name: "renew_leaf";
2387
+ readonly requestType: MessageFns$2<RenewLeafRequest>;
2388
+ readonly requestStream: false;
2389
+ readonly responseType: MessageFns$2<RenewLeafResponse>;
2390
+ readonly responseStream: false;
2391
+ readonly options: {};
2392
+ };
2393
+ readonly get_signing_operator_list: {
2394
+ readonly name: "get_signing_operator_list";
2395
+ readonly requestType: MessageFns$4<Empty>;
2396
+ readonly requestStream: false;
2397
+ readonly responseType: MessageFns$2<GetSigningOperatorListResponse>;
2398
+ readonly responseStream: false;
2399
+ readonly options: {};
2400
+ };
2401
+ readonly query_nodes: {
2402
+ readonly name: "query_nodes";
2403
+ readonly requestType: MessageFns$2<QueryNodesRequest>;
2404
+ readonly requestStream: false;
2405
+ readonly responseType: MessageFns$2<QueryNodesResponse>;
2406
+ readonly responseStream: false;
2407
+ readonly options: {};
2408
+ };
2409
+ readonly query_nodes_distribution: {
2410
+ readonly name: "query_nodes_distribution";
2411
+ readonly requestType: MessageFns$2<QueryNodesDistributionRequest>;
2412
+ readonly requestStream: false;
2413
+ readonly responseType: MessageFns$2<QueryNodesDistributionResponse>;
2414
+ readonly responseStream: false;
2415
+ readonly options: {};
2416
+ };
2417
+ readonly query_nodes_by_value: {
2418
+ readonly name: "query_nodes_by_value";
2419
+ readonly requestType: MessageFns$2<QueryNodesByValueRequest>;
2420
+ readonly requestStream: false;
2421
+ readonly responseType: MessageFns$2<QueryNodesByValueResponse>;
2422
+ readonly responseStream: false;
2423
+ readonly options: {};
2424
+ };
2425
+ readonly query_balance: {
2426
+ readonly name: "query_balance";
2427
+ readonly requestType: MessageFns$2<QueryBalanceRequest>;
2428
+ readonly requestStream: false;
2429
+ readonly responseType: MessageFns$2<QueryBalanceResponse>;
2430
+ readonly responseStream: false;
2431
+ readonly options: {};
2432
+ };
2433
+ readonly query_user_signed_refunds: {
2434
+ readonly name: "query_user_signed_refunds";
2435
+ readonly requestType: MessageFns$2<QueryUserSignedRefundsRequest>;
2436
+ readonly requestStream: false;
2437
+ readonly responseType: MessageFns$2<QueryUserSignedRefundsResponse>;
2438
+ readonly responseStream: false;
2439
+ readonly options: {};
2440
+ };
2441
+ /** Token RPCs */
2442
+ readonly start_token_transaction: {
2443
+ readonly name: "start_token_transaction";
2444
+ readonly requestType: MessageFns$2<StartTokenTransactionRequest>;
2445
+ readonly requestStream: false;
2446
+ readonly responseType: MessageFns$2<StartTokenTransactionResponse>;
2447
+ readonly responseStream: false;
2448
+ readonly options: {};
2449
+ };
2450
+ readonly sign_token_transaction: {
2451
+ readonly name: "sign_token_transaction";
2452
+ readonly requestType: MessageFns$2<SignTokenTransactionRequest>;
2453
+ readonly requestStream: false;
2454
+ readonly responseType: MessageFns$2<SignTokenTransactionResponse>;
2455
+ readonly responseStream: false;
2456
+ readonly options: {};
2457
+ };
2458
+ readonly finalize_token_transaction: {
2459
+ readonly name: "finalize_token_transaction";
2460
+ readonly requestType: MessageFns$2<FinalizeTokenTransactionRequest>;
2461
+ readonly requestStream: false;
2462
+ readonly responseType: MessageFns$4<Empty>;
2463
+ readonly responseStream: false;
2464
+ readonly options: {};
2465
+ };
2466
+ readonly freeze_tokens: {
2467
+ readonly name: "freeze_tokens";
2468
+ readonly requestType: MessageFns$2<FreezeTokensRequest$1>;
2469
+ readonly requestStream: false;
2470
+ readonly responseType: MessageFns$2<FreezeTokensResponse$1>;
2471
+ readonly responseStream: false;
2472
+ readonly options: {};
2473
+ };
2474
+ readonly query_token_outputs: {
2475
+ readonly name: "query_token_outputs";
2476
+ readonly requestType: MessageFns$2<QueryTokenOutputsRequest$1>;
2477
+ readonly requestStream: false;
2478
+ readonly responseType: MessageFns$2<QueryTokenOutputsResponse$1>;
2479
+ readonly responseStream: false;
2480
+ readonly options: {};
2481
+ };
2482
+ readonly query_token_transactions: {
2483
+ readonly name: "query_token_transactions";
2484
+ readonly requestType: MessageFns$2<QueryTokenTransactionsRequest$1>;
2485
+ readonly requestStream: false;
2486
+ readonly responseType: MessageFns$2<QueryTokenTransactionsResponse$1>;
2487
+ readonly responseStream: false;
2488
+ readonly options: {};
2489
+ };
2490
+ readonly return_lightning_payment: {
2491
+ readonly name: "return_lightning_payment";
2492
+ readonly requestType: MessageFns$2<ReturnLightningPaymentRequest>;
2493
+ readonly requestStream: false;
2494
+ readonly responseType: MessageFns$4<Empty>;
2495
+ readonly responseStream: false;
2496
+ readonly options: {};
2497
+ };
2498
+ readonly query_unused_deposit_addresses: {
2499
+ readonly name: "query_unused_deposit_addresses";
2500
+ readonly requestType: MessageFns$2<QueryUnusedDepositAddressesRequest>;
2501
+ readonly requestStream: false;
2502
+ readonly responseType: MessageFns$2<QueryUnusedDepositAddressesResponse>;
2503
+ readonly responseStream: false;
2504
+ readonly options: {};
2505
+ };
2506
+ readonly query_static_deposit_addresses: {
2507
+ readonly name: "query_static_deposit_addresses";
2508
+ readonly requestType: MessageFns$2<QueryStaticDepositAddressesRequest>;
2509
+ readonly requestStream: false;
2510
+ readonly responseType: MessageFns$2<QueryStaticDepositAddressesResponse>;
2511
+ readonly responseStream: false;
2512
+ readonly options: {};
2513
+ };
2514
+ readonly subscribe_to_events: {
2515
+ readonly name: "subscribe_to_events";
2516
+ readonly requestType: MessageFns$2<SubscribeToEventsRequest>;
2517
+ readonly requestStream: false;
2518
+ readonly responseType: MessageFns$2<SubscribeToEventsResponse>;
2519
+ readonly responseStream: true;
2520
+ readonly options: {};
2521
+ };
2522
+ /**
2523
+ * Signs the provided refund transaction which spends the UTXO from a static
2524
+ * deposit address. If successful, the UTXO will no longer be available to claim on
2525
+ * the Spark network, and the refund transaction must be broadcasted on L1 to claim
2526
+ * the funds. Returns an error if the UTXO has already been claimed.
2527
+ */
2528
+ readonly initiate_static_deposit_utxo_refund: {
2529
+ readonly name: "initiate_static_deposit_utxo_refund";
2530
+ readonly requestType: MessageFns$2<InitiateStaticDepositUtxoRefundRequest>;
2531
+ readonly requestStream: false;
2532
+ readonly responseType: MessageFns$2<InitiateStaticDepositUtxoRefundResponse>;
2533
+ readonly responseStream: false;
2534
+ readonly options: {};
2535
+ };
2536
+ /**
2537
+ * DEPRECATED: This unified method is being split for better clarity and type safety
2538
+ *
2539
+ * For swap operations: Use spark_ssp_internal.initiate_static_deposit_utxo_swap()
2540
+ * For refund operations: Use initiate_static_deposit_utxo_refund()
2541
+ *
2542
+ * @deprecated
2543
+ */
2544
+ readonly initiate_utxo_swap: {
2545
+ readonly name: "initiate_utxo_swap";
2546
+ readonly requestType: MessageFns$2<InitiateUtxoSwapRequest>;
2547
+ readonly requestStream: false;
2548
+ readonly responseType: MessageFns$2<InitiateUtxoSwapResponse>;
2549
+ readonly responseStream: false;
2550
+ readonly options: {};
2551
+ };
2552
+ readonly exit_single_node_trees: {
2553
+ readonly name: "exit_single_node_trees";
2554
+ readonly requestType: MessageFns$2<ExitSingleNodeTreesRequest>;
2555
+ readonly requestStream: false;
2556
+ readonly responseType: MessageFns$2<ExitSingleNodeTreesResponse>;
2557
+ readonly responseStream: false;
2558
+ readonly options: {};
2559
+ };
2560
+ /**
2561
+ * The following endpoints enforce inclusion of Direct Transactions used
2562
+ * for unilateral exits
2563
+ */
2564
+ readonly cooperative_exit_v2: {
2565
+ readonly name: "cooperative_exit_v2";
2566
+ readonly requestType: MessageFns$2<CooperativeExitRequest>;
2567
+ readonly requestStream: false;
2568
+ readonly responseType: MessageFns$2<CooperativeExitResponse>;
2569
+ readonly responseStream: false;
2570
+ readonly options: {};
2571
+ };
2572
+ readonly extend_leaf_v2: {
2573
+ readonly name: "extend_leaf_v2";
2574
+ readonly requestType: MessageFns$2<ExtendLeafRequest>;
2575
+ readonly requestStream: false;
2576
+ readonly responseType: MessageFns$2<ExtendLeafResponse>;
2577
+ readonly responseStream: false;
2578
+ readonly options: {};
2579
+ };
2580
+ readonly claim_transfer_sign_refunds_v2: {
2581
+ readonly name: "claim_transfer_sign_refunds_v2";
2582
+ readonly requestType: MessageFns$2<ClaimTransferSignRefundsRequest>;
2583
+ readonly requestStream: false;
2584
+ readonly responseType: MessageFns$2<ClaimTransferSignRefundsResponse>;
2585
+ readonly responseStream: false;
2586
+ readonly options: {};
2587
+ };
2588
+ readonly finalize_node_signatures_v2: {
2589
+ readonly name: "finalize_node_signatures_v2";
2590
+ readonly requestType: MessageFns$2<FinalizeNodeSignaturesRequest>;
2591
+ readonly requestStream: false;
2592
+ readonly responseType: MessageFns$2<FinalizeNodeSignaturesResponse>;
2593
+ readonly responseStream: false;
2594
+ readonly options: {};
2595
+ };
2596
+ readonly initiate_preimage_swap_v2: {
2597
+ readonly name: "initiate_preimage_swap_v2";
2598
+ readonly requestType: MessageFns$2<InitiatePreimageSwapRequest>;
2599
+ readonly requestStream: false;
2600
+ readonly responseType: MessageFns$2<InitiatePreimageSwapResponse>;
2601
+ readonly responseStream: false;
2602
+ readonly options: {};
2603
+ };
2604
+ readonly start_leaf_swap_v2: {
2605
+ readonly name: "start_leaf_swap_v2";
2606
+ readonly requestType: MessageFns$2<StartTransferRequest>;
2607
+ readonly requestStream: false;
2608
+ readonly responseType: MessageFns$2<StartTransferResponse>;
2609
+ readonly responseStream: false;
2610
+ readonly options: {};
2611
+ };
2612
+ readonly counter_leaf_swap_v2: {
2613
+ readonly name: "counter_leaf_swap_v2";
2614
+ readonly requestType: MessageFns$2<CounterLeafSwapRequest>;
2615
+ readonly requestStream: false;
2616
+ readonly responseType: MessageFns$2<CounterLeafSwapResponse>;
2617
+ readonly responseStream: false;
2618
+ readonly options: {};
2619
+ };
2620
+ readonly start_transfer_v2: {
2621
+ readonly name: "start_transfer_v2";
2622
+ readonly requestType: MessageFns$2<StartTransferRequest>;
2623
+ readonly requestStream: false;
2624
+ readonly responseType: MessageFns$2<StartTransferResponse>;
2625
+ readonly responseStream: false;
2626
+ readonly options: {};
2627
+ };
2628
+ readonly refresh_timelock_v2: {
2629
+ readonly name: "refresh_timelock_v2";
2630
+ readonly requestType: MessageFns$2<RefreshTimelockRequest>;
2631
+ readonly requestStream: false;
2632
+ readonly responseType: MessageFns$2<RefreshTimelockResponse>;
2633
+ readonly responseStream: false;
2634
+ readonly options: {};
2635
+ };
2636
+ readonly get_utxos_for_address: {
2637
+ readonly name: "get_utxos_for_address";
2638
+ readonly requestType: MessageFns$2<GetUtxosForAddressRequest>;
2639
+ readonly requestStream: false;
2640
+ readonly responseType: MessageFns$2<GetUtxosForAddressResponse>;
2641
+ readonly responseStream: false;
2642
+ readonly options: {};
2643
+ };
2644
+ readonly query_spark_invoices: {
2645
+ readonly name: "query_spark_invoices";
2646
+ readonly requestType: MessageFns$2<QuerySparkInvoicesRequest>;
2647
+ readonly requestStream: false;
2648
+ readonly responseType: MessageFns$2<QuerySparkInvoicesResponse>;
2649
+ readonly responseStream: false;
2650
+ readonly options: {};
2651
+ };
2652
+ };
2653
+ };
2165
2654
  interface SparkServiceClient<CallOptionsExt = {}> {
2166
2655
  generate_deposit_address(request: DeepPartial$2<GenerateDepositAddressRequest>, options?: CallOptions & CallOptionsExt): Promise<GenerateDepositAddressResponse>;
2167
2656
  /** Generates a new static deposit address of the user or returns the existing one for the specified network. */
@@ -2854,6 +3343,69 @@ interface FreezeTokensResponse {
2854
3343
  impactedTokenAmount: Uint8Array;
2855
3344
  }
2856
3345
  declare const FreezeTokensResponse: MessageFns$1<FreezeTokensResponse>;
3346
+ type SparkTokenServiceDefinition = typeof SparkTokenServiceDefinition;
3347
+ declare const SparkTokenServiceDefinition: {
3348
+ readonly name: "SparkTokenService";
3349
+ readonly fullName: "spark_token.SparkTokenService";
3350
+ readonly methods: {
3351
+ /**
3352
+ * Start process to create final token transaction with all inputs required
3353
+ * from user and SOs (including revocation secret commitment)
3354
+ */
3355
+ readonly start_transaction: {
3356
+ readonly name: "start_transaction";
3357
+ readonly requestType: MessageFns$1<StartTransactionRequest>;
3358
+ readonly requestStream: false;
3359
+ readonly responseType: MessageFns$1<StartTransactionResponse>;
3360
+ readonly responseStream: false;
3361
+ readonly options: {};
3362
+ };
3363
+ /**
3364
+ * Complete the transaction and commit it with all SOs. This will be
3365
+ * coordinated by one SO.
3366
+ */
3367
+ readonly commit_transaction: {
3368
+ readonly name: "commit_transaction";
3369
+ readonly requestType: MessageFns$1<CommitTransactionRequest>;
3370
+ readonly requestStream: false;
3371
+ readonly responseType: MessageFns$1<CommitTransactionResponse>;
3372
+ readonly responseStream: false;
3373
+ readonly options: {};
3374
+ };
3375
+ readonly query_token_metadata: {
3376
+ readonly name: "query_token_metadata";
3377
+ readonly requestType: MessageFns$1<QueryTokenMetadataRequest>;
3378
+ readonly requestStream: false;
3379
+ readonly responseType: MessageFns$1<QueryTokenMetadataResponse>;
3380
+ readonly responseStream: false;
3381
+ readonly options: {};
3382
+ };
3383
+ readonly query_token_transactions: {
3384
+ readonly name: "query_token_transactions";
3385
+ readonly requestType: MessageFns$1<QueryTokenTransactionsRequest>;
3386
+ readonly requestStream: false;
3387
+ readonly responseType: MessageFns$1<QueryTokenTransactionsResponse>;
3388
+ readonly responseStream: false;
3389
+ readonly options: {};
3390
+ };
3391
+ readonly query_token_outputs: {
3392
+ readonly name: "query_token_outputs";
3393
+ readonly requestType: MessageFns$1<QueryTokenOutputsRequest>;
3394
+ readonly requestStream: false;
3395
+ readonly responseType: MessageFns$1<QueryTokenOutputsResponse>;
3396
+ readonly responseStream: false;
3397
+ readonly options: {};
3398
+ };
3399
+ readonly freeze_tokens: {
3400
+ readonly name: "freeze_tokens";
3401
+ readonly requestType: MessageFns$1<FreezeTokensRequest>;
3402
+ readonly requestStream: false;
3403
+ readonly responseType: MessageFns$1<FreezeTokensResponse>;
3404
+ readonly responseStream: false;
3405
+ readonly options: {};
3406
+ };
3407
+ };
3408
+ };
2857
3409
  interface SparkTokenServiceClient<CallOptionsExt = {}> {
2858
3410
  /**
2859
3411
  * Start process to create final token transaction with all inputs required
@@ -2900,13 +3452,6 @@ type NetworkType = keyof typeof Network;
2900
3452
  declare const NetworkToProto: Record<Network, Network$1>;
2901
3453
  declare const protoToNetwork: (protoNetwork: Network$1) => Network | undefined;
2902
3454
  declare const getNetwork: (network: Network) => typeof btc.NETWORK;
2903
- declare const LRC_WALLET_NETWORK: Readonly<{
2904
- 0: bitcoin.networks.Network;
2905
- 1: bitcoin.networks.Network;
2906
- 2: bitcoin.networks.Network;
2907
- 3: bitcoin.networks.Network;
2908
- 4: bitcoin.networks.Network;
2909
- }>;
2910
3455
  /**
2911
3456
  * Utility function to determine the network from a Bitcoin address.
2912
3457
  *
@@ -2971,50 +3516,83 @@ declare class WalletConfigService implements HasSspClientOptions {
2971
3516
  getConsoleOptions(): ConsoleOptions;
2972
3517
  }
2973
3518
 
2974
- declare enum InterruptTransferRequest_InterruptTransferAction {
2975
- NONE = 0,
2976
- INTERRUPT = 1,
2977
- RESUME = 2,
2978
- UNRECOGNIZED = -1
2979
- }
2980
- declare enum InterruptCoopExitRequest_InterruptCoopExitAction {
2981
- NONE = 0,
2982
- INTERRUPT = 1,
2983
- RESUME = 2,
2984
- UNRECOGNIZED = -1
2985
- }
2986
- interface CleanUpPreimageShareRequest {
2987
- paymentHash: Uint8Array;
2988
- }
2989
- declare const CleanUpPreimageShareRequest: MessageFns<CleanUpPreimageShareRequest>;
2990
- interface InterruptTransferRequest {
2991
- action: InterruptTransferRequest_InterruptTransferAction;
3519
+ /** Challenge represents the core challenge data */
3520
+ interface Challenge {
3521
+ /** Protocol version for backward compatibility */
3522
+ version: number;
3523
+ /** Timestamp when challenge was issued (UTC Unix seconds) */
3524
+ timestamp: number;
3525
+ /** Random nonce to prevent replay attacks (32 bytes) */
3526
+ nonce: Uint8Array;
3527
+ /** The public key this challenge is intended for (uncompressed secp256k1 public key) */
3528
+ publicKey: Uint8Array;
2992
3529
  }
2993
- declare const InterruptTransferRequest: MessageFns<InterruptTransferRequest>;
2994
- interface UpdateNodesStatusRequest {
2995
- nodeIds: string[];
2996
- status: string;
3530
+ declare const Challenge: MessageFns<Challenge>;
3531
+ /** ProtectedChallenge wraps a Challenge with a server HMAC */
3532
+ interface ProtectedChallenge {
3533
+ /** Protocol version for backward compatibility */
3534
+ version: number;
3535
+ /** The core challenge data */
3536
+ challenge: Challenge | undefined;
3537
+ /** Server's HMAC of the Challenge */
3538
+ serverHmac: Uint8Array;
3539
+ }
3540
+ declare const ProtectedChallenge: MessageFns<ProtectedChallenge>;
3541
+ /** Request to initiate an authentication challenge */
3542
+ interface GetChallengeRequest {
3543
+ /** Client's public key (uncompressed secp256k1 public key) */
3544
+ publicKey: Uint8Array;
2997
3545
  }
2998
- declare const UpdateNodesStatusRequest: MessageFns<UpdateNodesStatusRequest>;
2999
- /** TriggerTaskRequest is used to trigger a scheduled task immediately in hermetic tests. */
3000
- interface TriggerTaskRequest {
3001
- taskName: string;
3002
- }
3003
- declare const TriggerTaskRequest: MessageFns<TriggerTaskRequest>;
3004
- interface InterruptCoopExitRequest {
3005
- action: InterruptCoopExitRequest_InterruptCoopExitAction;
3006
- /** optional, defaults to MockAction.TargetOperatorID */
3007
- targetOperator: string;
3008
- }
3009
- declare const InterruptCoopExitRequest: MessageFns<InterruptCoopExitRequest>;
3010
- interface MockServiceClient<CallOptionsExt = {}> {
3011
- clean_up_preimage_share(request: DeepPartial<CleanUpPreimageShareRequest>, options?: CallOptions & CallOptionsExt): Promise<Empty>;
3012
- interrupt_transfer(request: DeepPartial<InterruptTransferRequest>, options?: CallOptions & CallOptionsExt): Promise<Empty>;
3013
- interrupt_coop_exit(request: DeepPartial<InterruptCoopExitRequest>, options?: CallOptions & CallOptionsExt): Promise<Empty>;
3014
- update_nodes_status(request: DeepPartial<UpdateNodesStatusRequest>, options?: CallOptions & CallOptionsExt): Promise<Empty>;
3015
- /** Triggers the execution of a scheduled task immediately by name. Used by hermetic tests */
3016
- trigger_task(request: DeepPartial<TriggerTaskRequest>, options?: CallOptions & CallOptionsExt): Promise<Empty>;
3546
+ declare const GetChallengeRequest: MessageFns<GetChallengeRequest>;
3547
+ /** Response containing the protected challenge */
3548
+ interface GetChallengeResponse {
3549
+ /** The protected challenge from the server */
3550
+ protectedChallenge: ProtectedChallenge | undefined;
3551
+ }
3552
+ declare const GetChallengeResponse: MessageFns<GetChallengeResponse>;
3553
+ /** Request to verify a signed challenge */
3554
+ interface VerifyChallengeRequest {
3555
+ /** The protected challenge from the server */
3556
+ protectedChallenge: ProtectedChallenge | undefined;
3557
+ /** Client's secp256k1 signature of the Challenge */
3558
+ signature: Uint8Array;
3559
+ /** Client's public key (uncompressed secp256k1 public key) */
3560
+ publicKey: Uint8Array;
3017
3561
  }
3562
+ declare const VerifyChallengeRequest: MessageFns<VerifyChallengeRequest>;
3563
+ /** Response after successful authentication */
3564
+ interface VerifyChallengeResponse {
3565
+ /** Session token for subsequent API calls */
3566
+ sessionToken: string;
3567
+ /** Token expiration timestamp (UTC Unix seconds) */
3568
+ expirationTimestamp: number;
3569
+ }
3570
+ declare const VerifyChallengeResponse: MessageFns<VerifyChallengeResponse>;
3571
+ type SparkAuthnServiceDefinition = typeof SparkAuthnServiceDefinition;
3572
+ declare const SparkAuthnServiceDefinition: {
3573
+ readonly name: "SparkAuthnService";
3574
+ readonly fullName: "spark_authn.SparkAuthnService";
3575
+ readonly methods: {
3576
+ /** Request a new authentication challenge for a public key */
3577
+ readonly get_challenge: {
3578
+ readonly name: "get_challenge";
3579
+ readonly requestType: MessageFns<GetChallengeRequest>;
3580
+ readonly requestStream: false;
3581
+ readonly responseType: MessageFns<GetChallengeResponse>;
3582
+ readonly responseStream: false;
3583
+ readonly options: {};
3584
+ };
3585
+ /** Verify a signed challenge and return a session token */
3586
+ readonly verify_challenge: {
3587
+ readonly name: "verify_challenge";
3588
+ readonly requestType: MessageFns<VerifyChallengeRequest>;
3589
+ readonly requestStream: false;
3590
+ readonly responseType: MessageFns<VerifyChallengeResponse>;
3591
+ readonly responseStream: false;
3592
+ readonly options: {};
3593
+ };
3594
+ };
3595
+ };
3018
3596
  type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
3019
3597
  type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {
3020
3598
  $case: string;
@@ -3034,19 +3612,27 @@ interface MessageFns<T> {
3034
3612
  fromPartial(object: DeepPartial<T>): T;
3035
3613
  }
3036
3614
 
3615
+ interface RetryOptions {
3616
+ retry?: boolean;
3617
+ retryMaxAttempts?: number;
3618
+ }
3619
+ type SparkCallOptions = CallOptions & RetryOptions;
3620
+
3037
3621
  declare class ConnectionManager {
3038
3622
  private config;
3039
- private clients;
3623
+ protected clients: Map<string, {
3624
+ client: SparkServiceClient & {
3625
+ close?: () => void;
3626
+ };
3627
+ authToken: string;
3628
+ }>;
3040
3629
  private tokenClients;
3041
3630
  private streamClients;
3042
3631
  private authPromises;
3043
3632
  constructor(config: WalletConfigService);
3044
3633
  createClients(): Promise<void>;
3045
3634
  closeConnections(): Promise<void>;
3046
- createMockClient(address: string): Promise<MockServiceClient & {
3047
- close: () => void;
3048
- }>;
3049
- private createChannelWithTLS;
3635
+ protected createChannelWithTLS(address: string, certPath?: string): Promise<Channel | Channel$1>;
3050
3636
  createSparkStreamClient(address: string, certPath?: string): Promise<SparkServiceClient & {
3051
3637
  close?: () => void;
3052
3638
  }>;
@@ -3059,12 +3645,12 @@ declare class ConnectionManager {
3059
3645
  getStreamChannel(address: string): Promise<Channel | Channel$1 | undefined>;
3060
3646
  private authenticate;
3061
3647
  private createSparkAuthnGrpcConnection;
3062
- private createAuthnMiddleware;
3063
- private createMiddleware;
3064
- private handleMiddlewareError;
3065
- private createNodeMiddleware;
3066
- private createBrowserMiddleware;
3067
- private createGrpcClient;
3648
+ protected createAuthnMiddleware(): (call: ClientMiddlewareCall<any, any>, options: SparkCallOptions) => AsyncGenerator<any, any, undefined>;
3649
+ protected createMiddleware(address: string, authToken: string): ((call: ClientMiddlewareCall<any, any>, options: SparkCallOptions) => AsyncGenerator<any, any, undefined>) | undefined;
3650
+ protected handleMiddlewareError(error: unknown, address: string, call: ClientMiddlewareCall<any, any>, metadata: Metadata, options: SparkCallOptions): AsyncGenerator<any, any, undefined>;
3651
+ protected createGrpcClient<T>(defintion: SparkAuthnServiceDefinition | SparkServiceDefinition | SparkTokenServiceDefinition, channel: Channel | Channel$1, withRetries: boolean, middleware?: any): Promise<T & {
3652
+ close?: () => void;
3653
+ }>;
3068
3654
  }
3069
3655
 
3070
3656
  declare const AddressNetwork: Record<NetworkType, string>;
@@ -3289,8 +3875,9 @@ type TokenBalanceMap = Map<Bech32mTokenIdentifier, {
3289
3875
  }>;
3290
3876
  type TokenOutputsMap = Map<Bech32mTokenIdentifier, OutputWithPreviousTransactionData$1[]>;
3291
3877
  type TokenMetadataMap = Map<Bech32mTokenIdentifier, TokenMetadata>;
3292
- type InitWalletResponse = {
3293
- mnemonic?: string | undefined;
3878
+ type InitWalletResponse<T extends SparkWallet = SparkWallet> = {
3879
+ wallet: T;
3880
+ mnemonic: string | undefined;
3294
3881
  };
3295
3882
  interface SparkWalletProps {
3296
3883
  mnemonicOrSeed?: Uint8Array | string;
@@ -3325,7 +3912,7 @@ interface SparkWalletEvents {
3325
3912
  * It provides methods for creating and managing wallets, handling deposits, executing transfers,
3326
3913
  * and interacting with the Lightning Network.
3327
3914
  */
3328
- declare class SparkWallet extends EventEmitter<SparkWalletEvents> {
3915
+ declare abstract class SparkWallet extends EventEmitter<SparkWalletEvents> {
3329
3916
  protected config: WalletConfigService;
3330
3917
  protected connectionManager: ConnectionManager;
3331
3918
  protected transferService: TransferService;
@@ -3348,13 +3935,11 @@ declare class SparkWallet extends EventEmitter<SparkWalletEvents> {
3348
3935
  protected tokenOutputs: TokenOutputsMap;
3349
3936
  private claimTransfersInterval;
3350
3937
  private tracer;
3351
- protected constructor(options?: ConfigOptions, signer?: SparkSigner);
3352
- static initialize({ mnemonicOrSeed, accountNumber, signer, options, }: SparkWalletProps): Promise<{
3353
- mnemonic?: string | undefined;
3354
- wallet: SparkWallet;
3355
- }>;
3356
- private initializeWallet;
3938
+ constructor(options?: ConfigOptions, signer?: SparkSigner);
3939
+ static initialize<T extends SparkWallet>(this: new (options?: ConfigOptions, signer?: SparkSigner) => T, { mnemonicOrSeed, accountNumber, signer, options }: SparkWalletProps): Promise<InitWalletResponse<T>>;
3940
+ private createClientsAndSyncWallet;
3357
3941
  private getSspClient;
3942
+ protected buildConnectionManager(config: WalletConfigService): ConnectionManager;
3358
3943
  private handleStreamEvent;
3359
3944
  protected setupBackgroundStream(): Promise<void>;
3360
3945
  getLeaves(isBalanceCheck?: boolean): Promise<TreeNode[]>;
@@ -3427,11 +4012,10 @@ declare class SparkWallet extends EventEmitter<SparkWalletEvents> {
3427
4012
  *
3428
4013
  * @returns {Promise<Object>} Object containing:
3429
4014
  * - mnemonic: The mnemonic if one was generated (undefined for raw seed)
3430
- * - balance: The wallet's initial balance in satoshis
3431
- * - tokenBalance: Map of token balances
4015
+ * - wallet: The wallet instance
3432
4016
  * @private
3433
4017
  */
3434
- protected initWallet(mnemonicOrSeed?: Uint8Array | string, accountNumber?: number): Promise<InitWalletResponse | undefined>;
4018
+ protected initWallet(mnemonicOrSeed?: Uint8Array | string, accountNumber?: number, options?: ConfigOptions): Promise<InitWalletResponse<this>>;
3435
4019
  /**
3436
4020
  * Initializes the wallet without a seed. Meant for use with a signer with pre-existing keys.
3437
4021
  * @private
@@ -3942,14 +4526,27 @@ declare class SparkWallet extends EventEmitter<SparkWalletEvents> {
3942
4526
  private wrapSparkWalletMethodsWithTracing;
3943
4527
  }
3944
4528
 
3945
- declare class SparkWalletBrowser extends SparkWallet {
3946
- static initialize({ mnemonicOrSeed, accountNumber, signer, options, }: SparkWalletProps): Promise<{
3947
- mnemonic?: string | undefined;
3948
- wallet: SparkWalletBrowser;
4529
+ type Transport = NonNullable<Parameters<typeof createChannel>[1]>;
4530
+ declare class ConnectionManagerBrowser extends ConnectionManager {
4531
+ protected transport: Transport;
4532
+ constructor(config: WalletConfigService, transport?: nice_grpc_web_lib_client_Transport_js.Transport);
4533
+ protected createChannelWithTLS(address: string, certPath?: string): Promise<Channel$1>;
4534
+ protected createAuthnMiddleware(): (call: ClientMiddlewareCall<any, any>, options: SparkCallOptions) => AsyncGenerator<any, any, undefined>;
4535
+ protected createMiddleware(address: string, initialAuthToken: string): (call: ClientMiddlewareCall<any, any>, options: SparkCallOptions) => AsyncGenerator<any, any, undefined>;
4536
+ protected createGrpcClient<T>(defintion: SparkAuthnServiceDefinition | SparkServiceDefinition | SparkTokenServiceDefinition, channel: Channel$1, withRetries: boolean, middleware?: any): Promise<T & {
4537
+ close: undefined;
3949
4538
  }>;
4539
+ }
4540
+
4541
+ declare class SparkWalletBrowser extends SparkWallet {
4542
+ protected buildConnectionManager(config: WalletConfigService): ConnectionManagerBrowser;
3950
4543
  protected initializeTracerEnv({ spanProcessors, traceUrls, }: Parameters<SparkWallet["initializeTracerEnv"]>[0]): void;
3951
4544
  }
3952
4545
 
4546
+ declare class SparkWalletBare extends SparkWalletBrowser {
4547
+ protected buildConnectionManager(config: WalletConfigService): ConnectionManagerBrowser;
4548
+ }
4549
+
3953
4550
  /**
3954
4551
  * @deprecated Use `SparkWallet.getUtxosForDepositAddress()` instead.
3955
4552
  * Retrieves the most recent transaction that pays to the given deposit address
@@ -4135,4 +4732,4 @@ declare class SparkSdkLogger {
4135
4732
  static setAllEnabled(enabled: boolean): void;
4136
4733
  }
4137
4734
 
4138
- export { type AggregateFrostParams, AuthenticationError, type Bech32mTokenIdentifier, type Bech32mTokenIdentifierData, type BroadcastConfig, type BroadcastResult, ConfigurationError, DEFAULT_FEE_SATS, DIRECT_TIMELOCK_OFFSET, type DecodedSparkAddressData, DefaultSparkSigner, type FeeBumpTxChain, type FeeBumpTxPackage, type FeeRate, type IKeyPackage, INITIAL_DIRECT_SEQUENCE, INITIAL_SEQUENCE, InternalValidationError, LOGGER_NAMES, LRC_WALLET_NETWORK, type LeafInfo, type LegacySparkAddressFormat, type LoggerName, Network, NetworkError, NetworkToProto, type NetworkType, NotImplementedError, RPCError, type SignFrostParams, type SparkAddressData, type SparkAddressFormat, SparkSDKError, SparkSdkLogger, type SparkSigner, SparkWalletBrowser as SparkWallet, TEST_UNILATERAL_DIRECT_SEQUENCE, TEST_UNILATERAL_SEQUENCE, TaprootOutputKeysGenerator, TaprootSparkSigner, type TxChain, UnsafeStatelessSparkSigner, type Utxo, ValidationError, type VerifiableSecretShare, addPrivateKeys, addPublicKeys, applyAdaptorToSignature, applyAdditiveTweakToPublicKey, assertBech32, bech32mDecode, bigIntToPrivateKey, checkIfSelectedOutputsAreAvailable, checkIfValidSequence, collectResponses, computeTaprootKeyNoScript, computerLagrangeCoefficients, constructFeeBumpTx, constructUnilateralExitFeeBumpPackages, constructUnilateralExitTxs, createConnectorRefundTransactions, createLeafNodeTx, createNodeTx, createNodeTxs, createRefundTx, createRefundTxs, createRootTx, createSigningCommitment, createSigningNonce, createSplitTx, decodeBech32mTokenIdentifier, decodeBytesToSigningCommitment, decodeBytesToSigningNonce, decodeSparkAddress, doesLeafNeedRefresh, encodeBech32mTokenIdentifier, encodeSigningCommitmentToBytes, encodeSigningNonceToBytes, encodeSparkAddress, encodeSparkAddressWithSignature, evaluatePolynomial, fieldDiv, filterTokenBalanceForTokenIdentifier, generateAdaptorFromSignature, generatePolynomialForSecretSharing, generateSignatureFromExistingAdaptor, getCurrentTimelock, getEphemeralAnchorOutput, getLatestDepositTxId, getNetwork, getNetworkFromAddress, getNetworkFromBech32mTokenIdentifier, getNetworkFromSparkAddress, getNetworkFromString, getNextTransactionSequence, getP2TRAddressFromPkScript, getP2TRAddressFromPublicKey, getP2TRScriptFromPublicKey, getP2WPKHAddressFromPublicKey, getRandomBigInt, getRandomSigningNonce, getSigHashFromTx, getSigningCommitmentFromNonce, getSparkAddressFromTaproot, getTransactionSequence, getTransferPackageSigningPayload, getTxEstimatedVbytesSizeByNumberOfInputsOutputs, getTxFromRawTxBytes, getTxFromRawTxHex, getTxId, getTxIdNoReverse, isEphemeralAnchorOutput, isLegacySparkAddress, isSafeForNumber, isTxBroadcast, isValidPublicKey, isValidSparkAddress, lastKeyWithTarget, maybeApplyFee, modInverse, proofOfPossessionMessageHashForDepositAddress, protoToNetwork, recoverSecret, splitSecret, splitSecretWithProofs, subtractPrivateKeys, subtractPublicKeys, sumAvailableTokens, sumOfPrivateKeys, toProtoTimestamp, validateOutboundAdaptorSignature, validateShare, validateSparkInvoiceFields, validateSparkInvoiceSignature };
4735
+ export { type AggregateFrostParams, AuthenticationError, type Bech32mTokenIdentifier, type Bech32mTokenIdentifierData, type BroadcastConfig, type BroadcastResult, ConfigurationError, DEFAULT_FEE_SATS, DIRECT_TIMELOCK_OFFSET, type DecodedSparkAddressData, DefaultSparkSigner, type FeeBumpTxChain, type FeeBumpTxPackage, type FeeRate, type IKeyPackage, INITIAL_DIRECT_SEQUENCE, INITIAL_SEQUENCE, InternalValidationError, LOGGER_NAMES, type LeafInfo, type LegacySparkAddressFormat, type LoggerName, Network, NetworkError, NetworkToProto, type NetworkType, NotImplementedError, RPCError, type SignFrostParams, type SparkAddressData, type SparkAddressFormat, SparkSDKError, SparkSdkLogger, type SparkSigner, SparkWalletBare as SparkWallet, TEST_UNILATERAL_DIRECT_SEQUENCE, TEST_UNILATERAL_SEQUENCE, TaprootOutputKeysGenerator, TaprootSparkSigner, type TxChain, UnsafeStatelessSparkSigner, type Utxo, ValidationError, type VerifiableSecretShare, addPrivateKeys, addPublicKeys, applyAdaptorToSignature, applyAdditiveTweakToPublicKey, assertBech32, bech32mDecode, bigIntToPrivateKey, checkIfSelectedOutputsAreAvailable, checkIfValidSequence, collectResponses, computeTaprootKeyNoScript, computerLagrangeCoefficients, constructFeeBumpTx, constructUnilateralExitFeeBumpPackages, constructUnilateralExitTxs, createConnectorRefundTransactions, createLeafNodeTx, createNodeTx, createNodeTxs, createRefundTx, createRefundTxs, createRootTx, createSigningCommitment, createSigningNonce, createSplitTx, decodeBech32mTokenIdentifier, decodeBytesToSigningCommitment, decodeBytesToSigningNonce, decodeSparkAddress, doesLeafNeedRefresh, encodeBech32mTokenIdentifier, encodeSigningCommitmentToBytes, encodeSigningNonceToBytes, encodeSparkAddress, encodeSparkAddressWithSignature, evaluatePolynomial, fieldDiv, filterTokenBalanceForTokenIdentifier, generateAdaptorFromSignature, generatePolynomialForSecretSharing, generateSignatureFromExistingAdaptor, getCurrentTimelock, getEphemeralAnchorOutput, getLatestDepositTxId, getNetwork, getNetworkFromAddress, getNetworkFromBech32mTokenIdentifier, getNetworkFromSparkAddress, getNetworkFromString, getNextTransactionSequence, getP2TRAddressFromPkScript, getP2TRAddressFromPublicKey, getP2TRScriptFromPublicKey, getP2WPKHAddressFromPublicKey, getRandomBigInt, getRandomSigningNonce, getSigHashFromTx, getSigningCommitmentFromNonce, getSparkAddressFromTaproot, getTransactionSequence, getTransferPackageSigningPayload, getTxEstimatedVbytesSizeByNumberOfInputsOutputs, getTxFromRawTxBytes, getTxFromRawTxHex, getTxId, getTxIdNoReverse, isEphemeralAnchorOutput, isLegacySparkAddress, isSafeForNumber, isTxBroadcast, isValidPublicKey, isValidSparkAddress, lastKeyWithTarget, maybeApplyFee, modInverse, proofOfPossessionMessageHashForDepositAddress, protoToNetwork, recoverSecret, splitSecret, splitSecretWithProofs, subtractPrivateKeys, subtractPublicKeys, sumAvailableTokens, sumOfPrivateKeys, toProtoTimestamp, validateOutboundAdaptorSignature, validateShare, validateSparkInvoiceFields, validateSparkInvoiceSignature };