@buildonspark/spark-sdk 0.2.8 → 0.2.10

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 (54) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/bare/index.cjs +32 -32
  3. package/dist/bare/index.d.cts +182 -182
  4. package/dist/bare/index.d.ts +182 -182
  5. package/dist/bare/index.js +32 -32
  6. package/dist/{chunk-HMJO7LPI.js → chunk-JXLWOQK5.js} +32 -32
  7. package/dist/{chunk-G2RIVSSI.js → chunk-MWBK6QBF.js} +1 -1
  8. package/dist/{client-TLqKGhj8.d.cts → client-B9CAWKWz.d.cts} +1 -1
  9. package/dist/{client-B5vlztPA.d.ts → client-Dd3QnxQu.d.ts} +1 -1
  10. package/dist/debug.cjs +32 -32
  11. package/dist/debug.d.cts +5 -5
  12. package/dist/debug.d.ts +5 -5
  13. package/dist/debug.js +1 -1
  14. package/dist/graphql/objects/index.d.cts +3 -3
  15. package/dist/graphql/objects/index.d.ts +3 -3
  16. package/dist/index.cjs +32 -32
  17. package/dist/index.d.cts +6 -6
  18. package/dist/index.d.ts +6 -6
  19. package/dist/index.js +2 -2
  20. package/dist/index.node.cjs +32 -32
  21. package/dist/index.node.d.cts +6 -6
  22. package/dist/index.node.d.ts +6 -6
  23. package/dist/index.node.js +1 -1
  24. package/dist/native/index.cjs +32 -32
  25. package/dist/native/index.d.cts +2 -2
  26. package/dist/native/index.d.ts +2 -2
  27. package/dist/native/index.js +32 -32
  28. package/dist/proto/spark.d.cts +1 -1
  29. package/dist/proto/spark.d.ts +1 -1
  30. package/dist/proto/spark_token.d.cts +1 -1
  31. package/dist/proto/spark_token.d.ts +1 -1
  32. package/dist/{spark-CBBjw5AY.d.cts → spark-CtGJPkx4.d.cts} +1 -1
  33. package/dist/{spark-CBBjw5AY.d.ts → spark-CtGJPkx4.d.ts} +1 -1
  34. package/dist/{spark-wallet-CIuHgbSR.d.cts → spark-wallet-Cp3yv6cK.d.ts} +4 -4
  35. package/dist/{spark-wallet-CrNWPa9p.d.ts → spark-wallet-yc2KhsVY.d.cts} +4 -4
  36. package/dist/{spark-wallet.node-BvfiSwh_.d.cts → spark-wallet.node-D0Qw5Wb4.d.cts} +1 -1
  37. package/dist/{spark-wallet.node-pnKSb-aa.d.ts → spark-wallet.node-D4IovOHu.d.ts} +1 -1
  38. package/dist/tests/test-utils.cjs +1 -1
  39. package/dist/tests/test-utils.d.cts +5 -5
  40. package/dist/tests/test-utils.d.ts +5 -5
  41. package/dist/tests/test-utils.js +2 -2
  42. package/dist/{token-transactions-e8UUOjFk.d.ts → token-transactions-0nmR9mQO.d.ts} +4 -4
  43. package/dist/{token-transactions-ChvD_wLe.d.cts → token-transactions-CwhlOgIP.d.cts} +4 -4
  44. package/dist/types/index.d.cts +2 -2
  45. package/dist/types/index.d.ts +2 -2
  46. package/dist/{xchain-address-CDnNobbB.d.ts → xchain-address-BPwpnmuY.d.ts} +3 -3
  47. package/dist/{xchain-address-CtqVOuWz.d.cts → xchain-address-CNQEwLjR.d.cts} +3 -3
  48. package/package.json +1 -1
  49. package/src/services/token-transactions.ts +36 -31
  50. package/src/spark-wallet/spark-wallet.ts +7 -11
  51. package/src/tests/integration/lightning.test.ts +2 -2
  52. package/src/tests/integration/ssp/static-deposit-validation.test.ts +1 -1
  53. package/src/tests/integration/swap.test.ts +2 -2
  54. package/src/tests/integration/transfer.test.ts +20 -16
@@ -575,7 +575,7 @@ import * as ecies from "eciesjs";
575
575
  import { isNode, isBare } from "@lightsparkdev/core";
576
576
  var isReactNative = typeof navigator !== "undefined" && navigator.product === "ReactNative";
577
577
  var isBun = globalThis.Bun !== void 0;
578
- var packageVersion = true ? "0.2.8" : "unknown";
578
+ var packageVersion = true ? "0.2.10" : "unknown";
579
579
  var baseEnvStr = "unknown";
580
580
  if (isBun) {
581
581
  const bunVersion = "version" in globalThis.Bun ? globalThis.Bun.version : "unknown-version";
@@ -7279,27 +7279,32 @@ var TokenTransactionService = class {
7279
7279
  };
7280
7280
  try {
7281
7281
  const response = await sparkClient.query_token_transactions(queryParams);
7282
- return response.tokenTransactionsWithStatus.map((tx) => {
7283
- const v1TokenTransaction = {
7284
- version: 1,
7285
- network: tx.tokenTransaction.network,
7286
- tokenInputs: tx.tokenTransaction.tokenInputs,
7287
- tokenOutputs: tx.tokenTransaction.tokenOutputs,
7288
- sparkOperatorIdentityPublicKeys: tx.tokenTransaction.sparkOperatorIdentityPublicKeys,
7289
- expiryTime: void 0,
7290
- // V0 doesn't have expiry time
7291
- invoiceAttachments: [],
7292
- clientCreatedTimestamp: tx.tokenTransaction?.tokenInputs?.$case === "mintInput" ? new Date(
7293
- tx.tokenTransaction.tokenInputs.mintInput.issuerProvidedTimestamp * 1e3
7294
- ) : /* @__PURE__ */ new Date()
7295
- };
7296
- return {
7297
- tokenTransaction: v1TokenTransaction,
7298
- status: tx.status,
7299
- confirmationMetadata: tx.confirmationMetadata,
7300
- tokenTransactionHash: tx.tokenTransactionHash
7301
- };
7302
- });
7282
+ return {
7283
+ tokenTransactionsWithStatus: response.tokenTransactionsWithStatus.map(
7284
+ (tx) => {
7285
+ const v1TokenTransaction = {
7286
+ version: 1,
7287
+ network: tx.tokenTransaction.network,
7288
+ tokenInputs: tx.tokenTransaction.tokenInputs,
7289
+ tokenOutputs: tx.tokenTransaction.tokenOutputs,
7290
+ sparkOperatorIdentityPublicKeys: tx.tokenTransaction.sparkOperatorIdentityPublicKeys,
7291
+ expiryTime: void 0,
7292
+ // V0 doesn't have expiry time
7293
+ clientCreatedTimestamp: tx.tokenTransaction?.tokenInputs?.$case === "mintInput" ? new Date(
7294
+ tx.tokenTransaction.tokenInputs.mintInput.issuerProvidedTimestamp * 1e3
7295
+ ) : /* @__PURE__ */ new Date(),
7296
+ invoiceAttachments: []
7297
+ };
7298
+ return {
7299
+ tokenTransaction: v1TokenTransaction,
7300
+ status: tx.status,
7301
+ confirmationMetadata: tx.confirmationMetadata,
7302
+ tokenTransactionHash: tx.tokenTransactionHash
7303
+ };
7304
+ }
7305
+ ),
7306
+ offset: response.offset
7307
+ };
7303
7308
  } catch (error) {
7304
7309
  throw new NetworkError(
7305
7310
  "Failed to query token transactions",
@@ -7341,8 +7346,7 @@ var TokenTransactionService = class {
7341
7346
  offset
7342
7347
  };
7343
7348
  try {
7344
- const response = await tokenClient.query_token_transactions(queryParams);
7345
- return response.tokenTransactionsWithStatus;
7349
+ return await tokenClient.query_token_transactions(queryParams);
7346
7350
  } catch (error) {
7347
7351
  throw new NetworkError(
7348
7352
  "Failed to query token transactions",
@@ -12367,7 +12371,7 @@ var SparkWallet = class _SparkWallet extends EventEmitter {
12367
12371
  throw new Error("targetAmount or leaves must be provided");
12368
12372
  }
12369
12373
  leavesToSwap.sort((a, b) => a.value - b.value);
12370
- const batches = chunkArray(leavesToSwap, 100);
12374
+ const batches = chunkArray(leavesToSwap, 64);
12371
12375
  const results = [];
12372
12376
  for (const batch of batches) {
12373
12377
  const result = await this.processSwapBatch(batch, targetAmounts);
@@ -13610,11 +13614,11 @@ var SparkWallet = class _SparkWallet extends EventEmitter {
13610
13614
  field: "receiverSparkAddress"
13611
13615
  });
13612
13616
  }
13613
- const addressData = decodeSparkAddress(
13617
+ const receiverAddress = decodeSparkAddress(
13614
13618
  receiverSparkAddress,
13615
13619
  this.config.getNetworkType()
13616
13620
  );
13617
- if (addressData.sparkInvoiceFields) {
13621
+ if (receiverAddress.sparkInvoiceFields) {
13618
13622
  throw new ValidationError(
13619
13623
  "Spark address is a Spark invoice. Use fulfillSparkInvoice instead.",
13620
13624
  {
@@ -13636,10 +13640,6 @@ var SparkWallet = class _SparkWallet extends EventEmitter {
13636
13640
  value: amountSats
13637
13641
  });
13638
13642
  }
13639
- const receiverAddress = decodeSparkAddress(
13640
- receiverSparkAddress,
13641
- this.config.getNetworkType()
13642
- );
13643
13643
  const signerIdentityPublicKey = await this.config.signer.getIdentityPublicKey();
13644
13644
  const isSelfTransfer = equalBytes6(
13645
13645
  signerIdentityPublicKey,
@@ -15213,7 +15213,7 @@ var SparkWallet = class _SparkWallet extends EventEmitter {
15213
15213
  });
15214
15214
  Object.assign(aggregatedNodes, response.nodes ?? {});
15215
15215
  const received = Object.keys(response.nodes ?? {}).length;
15216
- if (received < pageSize) {
15216
+ if (received < pageSize || baseRequest.source?.$case === "nodeIds") {
15217
15217
  return {
15218
15218
  nodes: aggregatedNodes,
15219
15219
  offset: response.offset
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  SparkWallet,
3
3
  setCrypto
4
- } from "./chunk-HMJO7LPI.js";
4
+ } from "./chunk-JXLWOQK5.js";
5
5
 
6
6
  // src/spark-wallet/spark-wallet.browser.ts
7
7
  import { WebTracerProvider } from "@opentelemetry/sdk-trace-web";
@@ -2,7 +2,7 @@ import { Query } from '@lightsparkdev/core';
2
2
  import { Transaction } from '@scure/btc-signer';
3
3
  import { HDKey } from '@scure/bip32';
4
4
  import { a as ISigningCommitment } from './types-B3hMoTYO.cjs';
5
- import { S as SigningKeyshare, N as Network, h as TransferStatus, i as TransferType, c as TreeNode, j as TransferLeaf, b as Transfer$1 } from './spark-CBBjw5AY.cjs';
5
+ import { S as SigningKeyshare, N as Network, g as TransferStatus, h as TransferType, b as TreeNode, i as TransferLeaf, a as Transfer$1 } from './spark-CtGJPkx4.cjs';
6
6
 
7
7
  type Polynomial = {
8
8
  fieldModulus: bigint;
@@ -2,7 +2,7 @@ import { Query } from '@lightsparkdev/core';
2
2
  import { Transaction } from '@scure/btc-signer';
3
3
  import { HDKey } from '@scure/bip32';
4
4
  import { a as ISigningCommitment } from './types-B3hMoTYO.js';
5
- import { S as SigningKeyshare, N as Network, h as TransferStatus, i as TransferType, c as TreeNode, j as TransferLeaf, b as Transfer$1 } from './spark-CBBjw5AY.js';
5
+ import { S as SigningKeyshare, N as Network, g as TransferStatus, h as TransferType, b as TreeNode, i as TransferLeaf, a as Transfer$1 } from './spark-CtGJPkx4.js';
6
6
 
7
7
  type Polynomial = {
8
8
  fieldModulus: bigint;
package/dist/debug.cjs CHANGED
@@ -17684,7 +17684,7 @@ init_buffer();
17684
17684
  var import_core10 = require("@lightsparkdev/core");
17685
17685
  var isReactNative = typeof navigator !== "undefined" && navigator.product === "ReactNative";
17686
17686
  var isBun = globalThis.Bun !== void 0;
17687
- var packageVersion = true ? "0.2.8" : "unknown";
17687
+ var packageVersion = true ? "0.2.10" : "unknown";
17688
17688
  var baseEnvStr = "unknown";
17689
17689
  if (isBun) {
17690
17690
  const bunVersion = "version" in globalThis.Bun ? globalThis.Bun.version : "unknown-version";
@@ -29722,27 +29722,32 @@ var TokenTransactionService = class {
29722
29722
  };
29723
29723
  try {
29724
29724
  const response = await sparkClient.query_token_transactions(queryParams);
29725
- return response.tokenTransactionsWithStatus.map((tx) => {
29726
- const v1TokenTransaction = {
29727
- version: 1,
29728
- network: tx.tokenTransaction.network,
29729
- tokenInputs: tx.tokenTransaction.tokenInputs,
29730
- tokenOutputs: tx.tokenTransaction.tokenOutputs,
29731
- sparkOperatorIdentityPublicKeys: tx.tokenTransaction.sparkOperatorIdentityPublicKeys,
29732
- expiryTime: void 0,
29733
- // V0 doesn't have expiry time
29734
- invoiceAttachments: [],
29735
- clientCreatedTimestamp: tx.tokenTransaction?.tokenInputs?.$case === "mintInput" ? new Date(
29736
- tx.tokenTransaction.tokenInputs.mintInput.issuerProvidedTimestamp * 1e3
29737
- ) : /* @__PURE__ */ new Date()
29738
- };
29739
- return {
29740
- tokenTransaction: v1TokenTransaction,
29741
- status: tx.status,
29742
- confirmationMetadata: tx.confirmationMetadata,
29743
- tokenTransactionHash: tx.tokenTransactionHash
29744
- };
29745
- });
29725
+ return {
29726
+ tokenTransactionsWithStatus: response.tokenTransactionsWithStatus.map(
29727
+ (tx) => {
29728
+ const v1TokenTransaction = {
29729
+ version: 1,
29730
+ network: tx.tokenTransaction.network,
29731
+ tokenInputs: tx.tokenTransaction.tokenInputs,
29732
+ tokenOutputs: tx.tokenTransaction.tokenOutputs,
29733
+ sparkOperatorIdentityPublicKeys: tx.tokenTransaction.sparkOperatorIdentityPublicKeys,
29734
+ expiryTime: void 0,
29735
+ // V0 doesn't have expiry time
29736
+ clientCreatedTimestamp: tx.tokenTransaction?.tokenInputs?.$case === "mintInput" ? new Date(
29737
+ tx.tokenTransaction.tokenInputs.mintInput.issuerProvidedTimestamp * 1e3
29738
+ ) : /* @__PURE__ */ new Date(),
29739
+ invoiceAttachments: []
29740
+ };
29741
+ return {
29742
+ tokenTransaction: v1TokenTransaction,
29743
+ status: tx.status,
29744
+ confirmationMetadata: tx.confirmationMetadata,
29745
+ tokenTransactionHash: tx.tokenTransactionHash
29746
+ };
29747
+ }
29748
+ ),
29749
+ offset: response.offset
29750
+ };
29746
29751
  } catch (error) {
29747
29752
  throw new NetworkError(
29748
29753
  "Failed to query token transactions",
@@ -29784,8 +29789,7 @@ var TokenTransactionService = class {
29784
29789
  offset
29785
29790
  };
29786
29791
  try {
29787
- const response = await tokenClient.query_token_transactions(queryParams);
29788
- return response.tokenTransactionsWithStatus;
29792
+ return await tokenClient.query_token_transactions(queryParams);
29789
29793
  } catch (error) {
29790
29794
  throw new NetworkError(
29791
29795
  "Failed to query token transactions",
@@ -31453,7 +31457,7 @@ var SparkWallet = class _SparkWallet extends import_eventemitter3.EventEmitter {
31453
31457
  throw new Error("targetAmount or leaves must be provided");
31454
31458
  }
31455
31459
  leavesToSwap.sort((a, b) => a.value - b.value);
31456
- const batches = chunkArray(leavesToSwap, 100);
31460
+ const batches = chunkArray(leavesToSwap, 64);
31457
31461
  const results = [];
31458
31462
  for (const batch of batches) {
31459
31463
  const result = await this.processSwapBatch(batch, targetAmounts);
@@ -32696,11 +32700,11 @@ var SparkWallet = class _SparkWallet extends import_eventemitter3.EventEmitter {
32696
32700
  field: "receiverSparkAddress"
32697
32701
  });
32698
32702
  }
32699
- const addressData = decodeSparkAddress(
32703
+ const receiverAddress = decodeSparkAddress(
32700
32704
  receiverSparkAddress,
32701
32705
  this.config.getNetworkType()
32702
32706
  );
32703
- if (addressData.sparkInvoiceFields) {
32707
+ if (receiverAddress.sparkInvoiceFields) {
32704
32708
  throw new ValidationError(
32705
32709
  "Spark address is a Spark invoice. Use fulfillSparkInvoice instead.",
32706
32710
  {
@@ -32722,10 +32726,6 @@ var SparkWallet = class _SparkWallet extends import_eventemitter3.EventEmitter {
32722
32726
  value: amountSats
32723
32727
  });
32724
32728
  }
32725
- const receiverAddress = decodeSparkAddress(
32726
- receiverSparkAddress,
32727
- this.config.getNetworkType()
32728
- );
32729
32729
  const signerIdentityPublicKey = await this.config.signer.getIdentityPublicKey();
32730
32730
  const isSelfTransfer = (0, import_utils23.equalBytes)(
32731
32731
  signerIdentityPublicKey,
@@ -34299,7 +34299,7 @@ var SparkWallet = class _SparkWallet extends import_eventemitter3.EventEmitter {
34299
34299
  });
34300
34300
  Object.assign(aggregatedNodes, response.nodes ?? {});
34301
34301
  const received = Object.keys(response.nodes ?? {}).length;
34302
- if (received < pageSize) {
34302
+ if (received < pageSize || baseRequest.source?.$case === "nodeIds") {
34303
34303
  return {
34304
34304
  nodes: aggregatedNodes,
34305
34305
  offset: response.offset
package/dist/debug.d.cts CHANGED
@@ -1,14 +1,14 @@
1
- import { B as Bech32mTokenIdentifier, r as Bech32mTokenIdentifierData, D as DecodedSparkAddressData, L as LRC_WALLET_NETWORK, N as Network, m as NetworkToProto, l as NetworkType, c as SparkAddressData, S as SparkAddressFormat, k as bech32mDecode, u as decodeBech32mTokenIdentifier, f as decodeSparkAddress, s as encodeBech32mTokenIdentifier, e as encodeSparkAddress, d as encodeSparkAddressWithSignature, n as getNetwork, o as getNetworkFromAddress, w as getNetworkFromBech32mTokenIdentifier, j as getNetworkFromSparkAddress, q as getNetworkFromString, g as isValidPublicKey, i as isValidSparkAddress, p as protoToNetwork, t as toProtoTimestamp, v as validateSparkInvoiceFields, h as validateSparkInvoiceSignature, H as SparkWallet, b as ConfigOptions } from './spark-wallet-CIuHgbSR.cjs';
2
- import { ab as BroadcastConfig, ac as BroadcastResult, Q as DEFAULT_FEE_SATS, M as DIRECT_TIMELOCK_OFFSET, a9 as FeeBumpTxChain, a8 as FeeBumpTxPackage, a7 as FeeRate, O as INITIAL_DIRECT_SEQUENCE, N as INITIAL_SEQUENCE, a5 as LeafInfo, P as TEST_UNILATERAL_DIRECT_SEQUENCE, T as TEST_UNILATERAL_SEQUENCE, aa as TxChain, a6 as Utxo, q as addPrivateKeys, o as addPublicKeys, b as applyAdaptorToSignature, p as applyAdditiveTweakToPublicKey, J as checkIfSelectedOutputsAreAvailable, a1 as checkIfValidSequence, z as collectResponses, c as computeTaprootKeyNoScript, ag as constructFeeBumpTx, af as constructUnilateralExitFeeBumpPackages, ae as constructUnilateralExitTxs, _ as createConnectorRefundTransactions, X as createLeafNodeTx, V as createNodeTx, W as createNodeTxs, Y as createRefundTx, Z as createRefundTxs, S as createRootTx, F as createSigningCommitment, B as createSigningNonce, U as createSplitTx, H as decodeBytesToSigningCommitment, E as decodeBytesToSigningNonce, a2 as doesLeafNeedRefresh, G as encodeSigningCommitmentToBytes, D as encodeSigningNonceToBytes, K as filterTokenBalanceForTokenIdentifier, a as generateAdaptorFromSignature, g as generateSignatureFromExistingAdaptor, $ as getCurrentTimelock, a4 as getEphemeralAnchorOutput, w as getLatestDepositTxId, a3 as getNextTransactionSequence, f as getP2TRAddressFromPkScript, e as getP2TRAddressFromPublicKey, d as getP2TRScriptFromPublicKey, h as getP2WPKHAddressFromPublicKey, A as getRandomSigningNonce, k as getSigHashFromTx, C as getSigningCommitmentFromNonce, ah as getSparkAddressFromTaproot, a0 as getTransactionSequence, L as getTransferPackageSigningPayload, n as getTxEstimatedVbytesSizeByNumberOfInputsOutputs, j as getTxFromRawTxBytes, i as getTxFromRawTxHex, l as getTxId, m as getTxIdNoReverse, ad as isEphemeralAnchorOutput, x as isTxBroadcast, u as lastKeyWithTarget, R as maybeApplyFee, y as proofOfPossessionMessageHashForDepositAddress, r as subtractPrivateKeys, s as subtractPublicKeys, I as sumAvailableTokens, t as sumOfPrivateKeys, v as validateOutboundAdaptorSignature } from './xchain-address-CtqVOuWz.cjs';
3
- import { V as VerifiableSecretShare, h as bigIntToPrivateKey, c as computerLagrangeCoefficients, e as evaluatePolynomial, f as fieldDiv, b as generatePolynomialForSecretSharing, g as getRandomBigInt, m as modInverse, r as recoverSecret, s as splitSecret, d as splitSecretWithProofs, v as validateShare } from './client-TLqKGhj8.cjs';
4
- import './spark-CBBjw5AY.cjs';
1
+ import { B as Bech32mTokenIdentifier, r as Bech32mTokenIdentifierData, D as DecodedSparkAddressData, L as LRC_WALLET_NETWORK, N as Network, m as NetworkToProto, l as NetworkType, c as SparkAddressData, S as SparkAddressFormat, k as bech32mDecode, u as decodeBech32mTokenIdentifier, f as decodeSparkAddress, s as encodeBech32mTokenIdentifier, e as encodeSparkAddress, d as encodeSparkAddressWithSignature, n as getNetwork, o as getNetworkFromAddress, w as getNetworkFromBech32mTokenIdentifier, j as getNetworkFromSparkAddress, q as getNetworkFromString, g as isValidPublicKey, i as isValidSparkAddress, p as protoToNetwork, t as toProtoTimestamp, v as validateSparkInvoiceFields, h as validateSparkInvoiceSignature, H as SparkWallet, b as ConfigOptions } from './spark-wallet-yc2KhsVY.cjs';
2
+ import { ab as BroadcastConfig, ac as BroadcastResult, Q as DEFAULT_FEE_SATS, M as DIRECT_TIMELOCK_OFFSET, a9 as FeeBumpTxChain, a8 as FeeBumpTxPackage, a7 as FeeRate, O as INITIAL_DIRECT_SEQUENCE, N as INITIAL_SEQUENCE, a5 as LeafInfo, P as TEST_UNILATERAL_DIRECT_SEQUENCE, T as TEST_UNILATERAL_SEQUENCE, aa as TxChain, a6 as Utxo, q as addPrivateKeys, o as addPublicKeys, b as applyAdaptorToSignature, p as applyAdditiveTweakToPublicKey, J as checkIfSelectedOutputsAreAvailable, a1 as checkIfValidSequence, z as collectResponses, c as computeTaprootKeyNoScript, ag as constructFeeBumpTx, af as constructUnilateralExitFeeBumpPackages, ae as constructUnilateralExitTxs, _ as createConnectorRefundTransactions, X as createLeafNodeTx, V as createNodeTx, W as createNodeTxs, Y as createRefundTx, Z as createRefundTxs, S as createRootTx, F as createSigningCommitment, B as createSigningNonce, U as createSplitTx, H as decodeBytesToSigningCommitment, E as decodeBytesToSigningNonce, a2 as doesLeafNeedRefresh, G as encodeSigningCommitmentToBytes, D as encodeSigningNonceToBytes, K as filterTokenBalanceForTokenIdentifier, a as generateAdaptorFromSignature, g as generateSignatureFromExistingAdaptor, $ as getCurrentTimelock, a4 as getEphemeralAnchorOutput, w as getLatestDepositTxId, a3 as getNextTransactionSequence, f as getP2TRAddressFromPkScript, e as getP2TRAddressFromPublicKey, d as getP2TRScriptFromPublicKey, h as getP2WPKHAddressFromPublicKey, A as getRandomSigningNonce, k as getSigHashFromTx, C as getSigningCommitmentFromNonce, ah as getSparkAddressFromTaproot, a0 as getTransactionSequence, L as getTransferPackageSigningPayload, n as getTxEstimatedVbytesSizeByNumberOfInputsOutputs, j as getTxFromRawTxBytes, i as getTxFromRawTxHex, l as getTxId, m as getTxIdNoReverse, ad as isEphemeralAnchorOutput, x as isTxBroadcast, u as lastKeyWithTarget, R as maybeApplyFee, y as proofOfPossessionMessageHashForDepositAddress, r as subtractPrivateKeys, s as subtractPublicKeys, I as sumAvailableTokens, t as sumOfPrivateKeys, v as validateOutboundAdaptorSignature } from './xchain-address-CNQEwLjR.cjs';
3
+ import { V as VerifiableSecretShare, h as bigIntToPrivateKey, c as computerLagrangeCoefficients, e as evaluatePolynomial, f as fieldDiv, b as generatePolynomialForSecretSharing, g as getRandomBigInt, m as modInverse, r as recoverSecret, s as splitSecret, d as splitSecretWithProofs, v as validateShare } from './client-B9CAWKWz.cjs';
4
+ import './spark-CtGJPkx4.cjs';
5
5
  import '@bufbuild/protobuf/wire';
6
6
  import 'nice-grpc-common';
7
+ import './proto/spark_token.cjs';
7
8
  import '@scure/btc-signer';
8
9
  import 'bitcoinjs-lib';
9
10
  import 'nice-grpc';
10
11
  import 'nice-grpc-web';
11
- import './proto/spark_token.cjs';
12
12
  import '@opentelemetry/sdk-trace-base';
13
13
  import 'eventemitter3';
14
14
  import '@scure/base';
package/dist/debug.d.ts CHANGED
@@ -1,14 +1,14 @@
1
- import { B as Bech32mTokenIdentifier, r as Bech32mTokenIdentifierData, D as DecodedSparkAddressData, L as LRC_WALLET_NETWORK, N as Network, m as NetworkToProto, l as NetworkType, c as SparkAddressData, S as SparkAddressFormat, k as bech32mDecode, u as decodeBech32mTokenIdentifier, f as decodeSparkAddress, s as encodeBech32mTokenIdentifier, e as encodeSparkAddress, d as encodeSparkAddressWithSignature, n as getNetwork, o as getNetworkFromAddress, w as getNetworkFromBech32mTokenIdentifier, j as getNetworkFromSparkAddress, q as getNetworkFromString, g as isValidPublicKey, i as isValidSparkAddress, p as protoToNetwork, t as toProtoTimestamp, v as validateSparkInvoiceFields, h as validateSparkInvoiceSignature, H as SparkWallet, b as ConfigOptions } from './spark-wallet-CrNWPa9p.js';
2
- import { ab as BroadcastConfig, ac as BroadcastResult, Q as DEFAULT_FEE_SATS, M as DIRECT_TIMELOCK_OFFSET, a9 as FeeBumpTxChain, a8 as FeeBumpTxPackage, a7 as FeeRate, O as INITIAL_DIRECT_SEQUENCE, N as INITIAL_SEQUENCE, a5 as LeafInfo, P as TEST_UNILATERAL_DIRECT_SEQUENCE, T as TEST_UNILATERAL_SEQUENCE, aa as TxChain, a6 as Utxo, q as addPrivateKeys, o as addPublicKeys, b as applyAdaptorToSignature, p as applyAdditiveTweakToPublicKey, J as checkIfSelectedOutputsAreAvailable, a1 as checkIfValidSequence, z as collectResponses, c as computeTaprootKeyNoScript, ag as constructFeeBumpTx, af as constructUnilateralExitFeeBumpPackages, ae as constructUnilateralExitTxs, _ as createConnectorRefundTransactions, X as createLeafNodeTx, V as createNodeTx, W as createNodeTxs, Y as createRefundTx, Z as createRefundTxs, S as createRootTx, F as createSigningCommitment, B as createSigningNonce, U as createSplitTx, H as decodeBytesToSigningCommitment, E as decodeBytesToSigningNonce, a2 as doesLeafNeedRefresh, G as encodeSigningCommitmentToBytes, D as encodeSigningNonceToBytes, K as filterTokenBalanceForTokenIdentifier, a as generateAdaptorFromSignature, g as generateSignatureFromExistingAdaptor, $ as getCurrentTimelock, a4 as getEphemeralAnchorOutput, w as getLatestDepositTxId, a3 as getNextTransactionSequence, f as getP2TRAddressFromPkScript, e as getP2TRAddressFromPublicKey, d as getP2TRScriptFromPublicKey, h as getP2WPKHAddressFromPublicKey, A as getRandomSigningNonce, k as getSigHashFromTx, C as getSigningCommitmentFromNonce, ah as getSparkAddressFromTaproot, a0 as getTransactionSequence, L as getTransferPackageSigningPayload, n as getTxEstimatedVbytesSizeByNumberOfInputsOutputs, j as getTxFromRawTxBytes, i as getTxFromRawTxHex, l as getTxId, m as getTxIdNoReverse, ad as isEphemeralAnchorOutput, x as isTxBroadcast, u as lastKeyWithTarget, R as maybeApplyFee, y as proofOfPossessionMessageHashForDepositAddress, r as subtractPrivateKeys, s as subtractPublicKeys, I as sumAvailableTokens, t as sumOfPrivateKeys, v as validateOutboundAdaptorSignature } from './xchain-address-CDnNobbB.js';
3
- import { V as VerifiableSecretShare, h as bigIntToPrivateKey, c as computerLagrangeCoefficients, e as evaluatePolynomial, f as fieldDiv, b as generatePolynomialForSecretSharing, g as getRandomBigInt, m as modInverse, r as recoverSecret, s as splitSecret, d as splitSecretWithProofs, v as validateShare } from './client-B5vlztPA.js';
4
- import './spark-CBBjw5AY.js';
1
+ import { B as Bech32mTokenIdentifier, r as Bech32mTokenIdentifierData, D as DecodedSparkAddressData, L as LRC_WALLET_NETWORK, N as Network, m as NetworkToProto, l as NetworkType, c as SparkAddressData, S as SparkAddressFormat, k as bech32mDecode, u as decodeBech32mTokenIdentifier, f as decodeSparkAddress, s as encodeBech32mTokenIdentifier, e as encodeSparkAddress, d as encodeSparkAddressWithSignature, n as getNetwork, o as getNetworkFromAddress, w as getNetworkFromBech32mTokenIdentifier, j as getNetworkFromSparkAddress, q as getNetworkFromString, g as isValidPublicKey, i as isValidSparkAddress, p as protoToNetwork, t as toProtoTimestamp, v as validateSparkInvoiceFields, h as validateSparkInvoiceSignature, H as SparkWallet, b as ConfigOptions } from './spark-wallet-Cp3yv6cK.js';
2
+ import { ab as BroadcastConfig, ac as BroadcastResult, Q as DEFAULT_FEE_SATS, M as DIRECT_TIMELOCK_OFFSET, a9 as FeeBumpTxChain, a8 as FeeBumpTxPackage, a7 as FeeRate, O as INITIAL_DIRECT_SEQUENCE, N as INITIAL_SEQUENCE, a5 as LeafInfo, P as TEST_UNILATERAL_DIRECT_SEQUENCE, T as TEST_UNILATERAL_SEQUENCE, aa as TxChain, a6 as Utxo, q as addPrivateKeys, o as addPublicKeys, b as applyAdaptorToSignature, p as applyAdditiveTweakToPublicKey, J as checkIfSelectedOutputsAreAvailable, a1 as checkIfValidSequence, z as collectResponses, c as computeTaprootKeyNoScript, ag as constructFeeBumpTx, af as constructUnilateralExitFeeBumpPackages, ae as constructUnilateralExitTxs, _ as createConnectorRefundTransactions, X as createLeafNodeTx, V as createNodeTx, W as createNodeTxs, Y as createRefundTx, Z as createRefundTxs, S as createRootTx, F as createSigningCommitment, B as createSigningNonce, U as createSplitTx, H as decodeBytesToSigningCommitment, E as decodeBytesToSigningNonce, a2 as doesLeafNeedRefresh, G as encodeSigningCommitmentToBytes, D as encodeSigningNonceToBytes, K as filterTokenBalanceForTokenIdentifier, a as generateAdaptorFromSignature, g as generateSignatureFromExistingAdaptor, $ as getCurrentTimelock, a4 as getEphemeralAnchorOutput, w as getLatestDepositTxId, a3 as getNextTransactionSequence, f as getP2TRAddressFromPkScript, e as getP2TRAddressFromPublicKey, d as getP2TRScriptFromPublicKey, h as getP2WPKHAddressFromPublicKey, A as getRandomSigningNonce, k as getSigHashFromTx, C as getSigningCommitmentFromNonce, ah as getSparkAddressFromTaproot, a0 as getTransactionSequence, L as getTransferPackageSigningPayload, n as getTxEstimatedVbytesSizeByNumberOfInputsOutputs, j as getTxFromRawTxBytes, i as getTxFromRawTxHex, l as getTxId, m as getTxIdNoReverse, ad as isEphemeralAnchorOutput, x as isTxBroadcast, u as lastKeyWithTarget, R as maybeApplyFee, y as proofOfPossessionMessageHashForDepositAddress, r as subtractPrivateKeys, s as subtractPublicKeys, I as sumAvailableTokens, t as sumOfPrivateKeys, v as validateOutboundAdaptorSignature } from './xchain-address-BPwpnmuY.js';
3
+ import { V as VerifiableSecretShare, h as bigIntToPrivateKey, c as computerLagrangeCoefficients, e as evaluatePolynomial, f as fieldDiv, b as generatePolynomialForSecretSharing, g as getRandomBigInt, m as modInverse, r as recoverSecret, s as splitSecret, d as splitSecretWithProofs, v as validateShare } from './client-Dd3QnxQu.js';
4
+ import './spark-CtGJPkx4.js';
5
5
  import '@bufbuild/protobuf/wire';
6
6
  import 'nice-grpc-common';
7
+ import './proto/spark_token.js';
7
8
  import '@scure/btc-signer';
8
9
  import 'bitcoinjs-lib';
9
10
  import 'nice-grpc';
10
11
  import 'nice-grpc-web';
11
- import './proto/spark_token.js';
12
12
  import '@opentelemetry/sdk-trace-base';
13
13
  import 'eventemitter3';
14
14
  import '@scure/base';
package/dist/debug.js CHANGED
@@ -2,7 +2,7 @@ import {
2
2
  SparkWallet,
3
3
  WalletConfig,
4
4
  utils_exports
5
- } from "./chunk-HMJO7LPI.js";
5
+ } from "./chunk-JXLWOQK5.js";
6
6
  import "./chunk-6CMNEDBK.js";
7
7
  import "./chunk-76SYPHOC.js";
8
8
  import "./chunk-A5M55UR3.js";
@@ -1,7 +1,7 @@
1
- import { B as BitcoinNetwork, P as PageInfo, J as SspClient } from '../../client-TLqKGhj8.cjs';
2
- export { O as ClaimStaticDeposit, C as ClaimStaticDepositOutput, Q as ClaimStaticDepositStatus, R as CompleteCoopExitInput, X as CompleteLeavesSwapInput, Y as CoopExitFeeEstimate, Z as CoopExitFeeEstimatesInput, _ as CoopExitFeeEstimatesOutput, F as CoopExitFeeQuote, a0 as CoopExitFeeQuoteInput, G as CoopExitRequest, a2 as CurrencyAmount, a3 as CurrencyUnit, E as ExitSpeed, a4 as GetChallengeOutput, a5 as Invoice, a6 as Leaf, L as LeavesSwapFeeEstimateOutput, a8 as LeavesSwapRequest, x as LightningReceiveRequest, aa as LightningReceiveRequestStatus, z as LightningSendFeeEstimateInput, ab as LightningSendFeeEstimateOutput, y as LightningSendRequest, ad as LightningSendRequestStatus, ae as RequestCoopExitInput, af as RequestLeavesSwapInput, ag as RequestLightningReceiveInput, ah as RequestLightningSendInput, ai as SparkCoopExitRequestStatus, aj as SparkLeavesSwapRequestStatus, ak as SparkTransferToLeavesConnection, al as StaticDepositQuoteInput, u as StaticDepositQuoteOutput, am as SwapLeaf, an as Transfer, ao as UserLeafInput, ap as VerifyChallengeOutput, N as getClaimStaticDepositQuery, $ as getCoopExitFeeQuoteQuery, a1 as getCoopExitRequestQuery, a7 as getLeavesSwapRequestQuery, a9 as getLightningReceiveRequestQuery, ac as getLightningSendRequestQuery } from '../../client-TLqKGhj8.cjs';
1
+ import { B as BitcoinNetwork, P as PageInfo, J as SspClient } from '../../client-B9CAWKWz.cjs';
2
+ export { O as ClaimStaticDeposit, C as ClaimStaticDepositOutput, Q as ClaimStaticDepositStatus, R as CompleteCoopExitInput, X as CompleteLeavesSwapInput, Y as CoopExitFeeEstimate, Z as CoopExitFeeEstimatesInput, _ as CoopExitFeeEstimatesOutput, F as CoopExitFeeQuote, a0 as CoopExitFeeQuoteInput, G as CoopExitRequest, a2 as CurrencyAmount, a3 as CurrencyUnit, E as ExitSpeed, a4 as GetChallengeOutput, a5 as Invoice, a6 as Leaf, L as LeavesSwapFeeEstimateOutput, a8 as LeavesSwapRequest, x as LightningReceiveRequest, aa as LightningReceiveRequestStatus, z as LightningSendFeeEstimateInput, ab as LightningSendFeeEstimateOutput, y as LightningSendRequest, ad as LightningSendRequestStatus, ae as RequestCoopExitInput, af as RequestLeavesSwapInput, ag as RequestLightningReceiveInput, ah as RequestLightningSendInput, ai as SparkCoopExitRequestStatus, aj as SparkLeavesSwapRequestStatus, ak as SparkTransferToLeavesConnection, al as StaticDepositQuoteInput, u as StaticDepositQuoteOutput, am as SwapLeaf, an as Transfer, ao as UserLeafInput, ap as VerifyChallengeOutput, N as getClaimStaticDepositQuery, $ as getCoopExitFeeQuoteQuery, a1 as getCoopExitRequestQuery, a7 as getLeavesSwapRequestQuery, a9 as getLightningReceiveRequestQuery, ac as getLightningSendRequestQuery } from '../../client-B9CAWKWz.cjs';
3
3
  import { Query } from '@lightsparkdev/core';
4
- import '../../spark-CBBjw5AY.cjs';
4
+ import '../../spark-CtGJPkx4.cjs';
5
5
  import '@scure/btc-signer';
6
6
  import '@scure/bip32';
7
7
  import '../../types-B3hMoTYO.cjs';
@@ -1,7 +1,7 @@
1
- import { B as BitcoinNetwork, P as PageInfo, J as SspClient } from '../../client-B5vlztPA.js';
2
- export { O as ClaimStaticDeposit, C as ClaimStaticDepositOutput, Q as ClaimStaticDepositStatus, R as CompleteCoopExitInput, X as CompleteLeavesSwapInput, Y as CoopExitFeeEstimate, Z as CoopExitFeeEstimatesInput, _ as CoopExitFeeEstimatesOutput, F as CoopExitFeeQuote, a0 as CoopExitFeeQuoteInput, G as CoopExitRequest, a2 as CurrencyAmount, a3 as CurrencyUnit, E as ExitSpeed, a4 as GetChallengeOutput, a5 as Invoice, a6 as Leaf, L as LeavesSwapFeeEstimateOutput, a8 as LeavesSwapRequest, x as LightningReceiveRequest, aa as LightningReceiveRequestStatus, z as LightningSendFeeEstimateInput, ab as LightningSendFeeEstimateOutput, y as LightningSendRequest, ad as LightningSendRequestStatus, ae as RequestCoopExitInput, af as RequestLeavesSwapInput, ag as RequestLightningReceiveInput, ah as RequestLightningSendInput, ai as SparkCoopExitRequestStatus, aj as SparkLeavesSwapRequestStatus, ak as SparkTransferToLeavesConnection, al as StaticDepositQuoteInput, u as StaticDepositQuoteOutput, am as SwapLeaf, an as Transfer, ao as UserLeafInput, ap as VerifyChallengeOutput, N as getClaimStaticDepositQuery, $ as getCoopExitFeeQuoteQuery, a1 as getCoopExitRequestQuery, a7 as getLeavesSwapRequestQuery, a9 as getLightningReceiveRequestQuery, ac as getLightningSendRequestQuery } from '../../client-B5vlztPA.js';
1
+ import { B as BitcoinNetwork, P as PageInfo, J as SspClient } from '../../client-Dd3QnxQu.js';
2
+ export { O as ClaimStaticDeposit, C as ClaimStaticDepositOutput, Q as ClaimStaticDepositStatus, R as CompleteCoopExitInput, X as CompleteLeavesSwapInput, Y as CoopExitFeeEstimate, Z as CoopExitFeeEstimatesInput, _ as CoopExitFeeEstimatesOutput, F as CoopExitFeeQuote, a0 as CoopExitFeeQuoteInput, G as CoopExitRequest, a2 as CurrencyAmount, a3 as CurrencyUnit, E as ExitSpeed, a4 as GetChallengeOutput, a5 as Invoice, a6 as Leaf, L as LeavesSwapFeeEstimateOutput, a8 as LeavesSwapRequest, x as LightningReceiveRequest, aa as LightningReceiveRequestStatus, z as LightningSendFeeEstimateInput, ab as LightningSendFeeEstimateOutput, y as LightningSendRequest, ad as LightningSendRequestStatus, ae as RequestCoopExitInput, af as RequestLeavesSwapInput, ag as RequestLightningReceiveInput, ah as RequestLightningSendInput, ai as SparkCoopExitRequestStatus, aj as SparkLeavesSwapRequestStatus, ak as SparkTransferToLeavesConnection, al as StaticDepositQuoteInput, u as StaticDepositQuoteOutput, am as SwapLeaf, an as Transfer, ao as UserLeafInput, ap as VerifyChallengeOutput, N as getClaimStaticDepositQuery, $ as getCoopExitFeeQuoteQuery, a1 as getCoopExitRequestQuery, a7 as getLeavesSwapRequestQuery, a9 as getLightningReceiveRequestQuery, ac as getLightningSendRequestQuery } from '../../client-Dd3QnxQu.js';
3
3
  import { Query } from '@lightsparkdev/core';
4
- import '../../spark-CBBjw5AY.js';
4
+ import '../../spark-CtGJPkx4.js';
5
5
  import '@scure/btc-signer';
6
6
  import '@scure/bip32';
7
7
  import '../../types-B3hMoTYO.js';
package/dist/index.cjs CHANGED
@@ -19301,7 +19301,7 @@ init_buffer();
19301
19301
  var import_core8 = require("@lightsparkdev/core");
19302
19302
  var isReactNative = typeof navigator !== "undefined" && navigator.product === "ReactNative";
19303
19303
  var isBun = globalThis.Bun !== void 0;
19304
- var packageVersion = true ? "0.2.8" : "unknown";
19304
+ var packageVersion = true ? "0.2.10" : "unknown";
19305
19305
  var baseEnvStr = "unknown";
19306
19306
  if (isBun) {
19307
19307
  const bunVersion = "version" in globalThis.Bun ? globalThis.Bun.version : "unknown-version";
@@ -30688,27 +30688,32 @@ var TokenTransactionService = class {
30688
30688
  };
30689
30689
  try {
30690
30690
  const response = await sparkClient.query_token_transactions(queryParams);
30691
- return response.tokenTransactionsWithStatus.map((tx) => {
30692
- const v1TokenTransaction = {
30693
- version: 1,
30694
- network: tx.tokenTransaction.network,
30695
- tokenInputs: tx.tokenTransaction.tokenInputs,
30696
- tokenOutputs: tx.tokenTransaction.tokenOutputs,
30697
- sparkOperatorIdentityPublicKeys: tx.tokenTransaction.sparkOperatorIdentityPublicKeys,
30698
- expiryTime: void 0,
30699
- // V0 doesn't have expiry time
30700
- invoiceAttachments: [],
30701
- clientCreatedTimestamp: tx.tokenTransaction?.tokenInputs?.$case === "mintInput" ? new Date(
30702
- tx.tokenTransaction.tokenInputs.mintInput.issuerProvidedTimestamp * 1e3
30703
- ) : /* @__PURE__ */ new Date()
30704
- };
30705
- return {
30706
- tokenTransaction: v1TokenTransaction,
30707
- status: tx.status,
30708
- confirmationMetadata: tx.confirmationMetadata,
30709
- tokenTransactionHash: tx.tokenTransactionHash
30710
- };
30711
- });
30691
+ return {
30692
+ tokenTransactionsWithStatus: response.tokenTransactionsWithStatus.map(
30693
+ (tx) => {
30694
+ const v1TokenTransaction = {
30695
+ version: 1,
30696
+ network: tx.tokenTransaction.network,
30697
+ tokenInputs: tx.tokenTransaction.tokenInputs,
30698
+ tokenOutputs: tx.tokenTransaction.tokenOutputs,
30699
+ sparkOperatorIdentityPublicKeys: tx.tokenTransaction.sparkOperatorIdentityPublicKeys,
30700
+ expiryTime: void 0,
30701
+ // V0 doesn't have expiry time
30702
+ clientCreatedTimestamp: tx.tokenTransaction?.tokenInputs?.$case === "mintInput" ? new Date(
30703
+ tx.tokenTransaction.tokenInputs.mintInput.issuerProvidedTimestamp * 1e3
30704
+ ) : /* @__PURE__ */ new Date(),
30705
+ invoiceAttachments: []
30706
+ };
30707
+ return {
30708
+ tokenTransaction: v1TokenTransaction,
30709
+ status: tx.status,
30710
+ confirmationMetadata: tx.confirmationMetadata,
30711
+ tokenTransactionHash: tx.tokenTransactionHash
30712
+ };
30713
+ }
30714
+ ),
30715
+ offset: response.offset
30716
+ };
30712
30717
  } catch (error) {
30713
30718
  throw new NetworkError(
30714
30719
  "Failed to query token transactions",
@@ -30750,8 +30755,7 @@ var TokenTransactionService = class {
30750
30755
  offset
30751
30756
  };
30752
30757
  try {
30753
- const response = await tokenClient.query_token_transactions(queryParams);
30754
- return response.tokenTransactionsWithStatus;
30758
+ return await tokenClient.query_token_transactions(queryParams);
30755
30759
  } catch (error) {
30756
30760
  throw new NetworkError(
30757
30761
  "Failed to query token transactions",
@@ -32240,7 +32244,7 @@ var SparkWallet = class _SparkWallet extends import_eventemitter3.EventEmitter {
32240
32244
  throw new Error("targetAmount or leaves must be provided");
32241
32245
  }
32242
32246
  leavesToSwap.sort((a, b) => a.value - b.value);
32243
- const batches = chunkArray(leavesToSwap, 100);
32247
+ const batches = chunkArray(leavesToSwap, 64);
32244
32248
  const results = [];
32245
32249
  for (const batch of batches) {
32246
32250
  const result = await this.processSwapBatch(batch, targetAmounts);
@@ -33483,11 +33487,11 @@ var SparkWallet = class _SparkWallet extends import_eventemitter3.EventEmitter {
33483
33487
  field: "receiverSparkAddress"
33484
33488
  });
33485
33489
  }
33486
- const addressData = decodeSparkAddress(
33490
+ const receiverAddress = decodeSparkAddress(
33487
33491
  receiverSparkAddress,
33488
33492
  this.config.getNetworkType()
33489
33493
  );
33490
- if (addressData.sparkInvoiceFields) {
33494
+ if (receiverAddress.sparkInvoiceFields) {
33491
33495
  throw new ValidationError(
33492
33496
  "Spark address is a Spark invoice. Use fulfillSparkInvoice instead.",
33493
33497
  {
@@ -33509,10 +33513,6 @@ var SparkWallet = class _SparkWallet extends import_eventemitter3.EventEmitter {
33509
33513
  value: amountSats
33510
33514
  });
33511
33515
  }
33512
- const receiverAddress = decodeSparkAddress(
33513
- receiverSparkAddress,
33514
- this.config.getNetworkType()
33515
- );
33516
33516
  const signerIdentityPublicKey = await this.config.signer.getIdentityPublicKey();
33517
33517
  const isSelfTransfer = (0, import_utils24.equalBytes)(
33518
33518
  signerIdentityPublicKey,
@@ -35086,7 +35086,7 @@ var SparkWallet = class _SparkWallet extends import_eventemitter3.EventEmitter {
35086
35086
  });
35087
35087
  Object.assign(aggregatedNodes, response.nodes ?? {});
35088
35088
  const received = Object.keys(response.nodes ?? {}).length;
35089
- if (received < pageSize) {
35089
+ if (received < pageSize || baseRequest.source?.$case === "nodeIds") {
35090
35090
  return {
35091
35091
  nodes: aggregatedNodes,
35092
35092
  offset: response.offset
package/dist/index.d.cts CHANGED
@@ -1,10 +1,10 @@
1
- export { A as AuthenticationError, C as ConfigurationError, I as InternalValidationError, N as NetworkError, a as NotImplementedError, R as RPCError, S as SparkSDKError, T as TokenTransactionService, V as ValidationError } from './token-transactions-ChvD_wLe.cjs';
2
- import { H as SparkWallet, F as SparkWalletProps } from './spark-wallet-CIuHgbSR.cjs';
3
- export { B as Bech32mTokenIdentifier, r as Bech32mTokenIdentifierData, b as ConfigOptions, C as ConnectionManager, x as CreateLightningInvoiceParams, D as DecodedSparkAddressData, y as DepositParams, I as InitWalletResponse, L as LRC_WALLET_NETWORK, N as Network, m as NetworkToProto, l as NetworkType, P as PayLightningInvoiceParams, R as RawTokenIdentifierHex, c as SparkAddressData, S as SparkAddressFormat, G as SparkWalletEvents, z as TokenBalanceMap, E as TokenMetadataMap, A as TokenOutputsMap, T as TransferParams, U as UserTokenMetadata, a as WalletConfig, W as WalletConfigService, k as bech32mDecode, u as decodeBech32mTokenIdentifier, f as decodeSparkAddress, s as encodeBech32mTokenIdentifier, e as encodeSparkAddress, d as encodeSparkAddressWithSignature, n as getNetwork, o as getNetworkFromAddress, w as getNetworkFromBech32mTokenIdentifier, j as getNetworkFromSparkAddress, q as getNetworkFromString, g as isValidPublicKey, i as isValidSparkAddress, p as protoToNetwork, t as toProtoTimestamp, v as validateSparkInvoiceFields, h as validateSparkInvoiceSignature } from './spark-wallet-CIuHgbSR.cjs';
4
- export { ab as BroadcastConfig, ac as BroadcastResult, Q as DEFAULT_FEE_SATS, M as DIRECT_TIMELOCK_OFFSET, a9 as FeeBumpTxChain, a8 as FeeBumpTxPackage, a7 as FeeRate, O as INITIAL_DIRECT_SEQUENCE, N as INITIAL_SEQUENCE, a5 as LeafInfo, P as TEST_UNILATERAL_DIRECT_SEQUENCE, T as TEST_UNILATERAL_SEQUENCE, aa as TxChain, a6 as Utxo, q as addPrivateKeys, o as addPublicKeys, b as applyAdaptorToSignature, p as applyAdditiveTweakToPublicKey, J as checkIfSelectedOutputsAreAvailable, a1 as checkIfValidSequence, z as collectResponses, c as computeTaprootKeyNoScript, ag as constructFeeBumpTx, af as constructUnilateralExitFeeBumpPackages, ae as constructUnilateralExitTxs, _ as createConnectorRefundTransactions, X as createLeafNodeTx, V as createNodeTx, W as createNodeTxs, Y as createRefundTx, Z as createRefundTxs, S as createRootTx, F as createSigningCommitment, B as createSigningNonce, U as createSplitTx, H as decodeBytesToSigningCommitment, E as decodeBytesToSigningNonce, a2 as doesLeafNeedRefresh, G as encodeSigningCommitmentToBytes, D as encodeSigningNonceToBytes, K as filterTokenBalanceForTokenIdentifier, a as generateAdaptorFromSignature, g as generateSignatureFromExistingAdaptor, $ as getCurrentTimelock, a4 as getEphemeralAnchorOutput, w as getLatestDepositTxId, a3 as getNextTransactionSequence, f as getP2TRAddressFromPkScript, e as getP2TRAddressFromPublicKey, d as getP2TRScriptFromPublicKey, h as getP2WPKHAddressFromPublicKey, A as getRandomSigningNonce, k as getSigHashFromTx, C as getSigningCommitmentFromNonce, ah as getSparkAddressFromTaproot, a0 as getTransactionSequence, L as getTransferPackageSigningPayload, n as getTxEstimatedVbytesSizeByNumberOfInputsOutputs, j as getTxFromRawTxBytes, i as getTxFromRawTxHex, l as getTxId, m as getTxIdNoReverse, ad as isEphemeralAnchorOutput, x as isTxBroadcast, u as lastKeyWithTarget, R as maybeApplyFee, y as proofOfPossessionMessageHashForDepositAddress, r as subtractPrivateKeys, s as subtractPublicKeys, I as sumAvailableTokens, t as sumOfPrivateKeys, v as validateOutboundAdaptorSignature } from './xchain-address-CtqVOuWz.cjs';
5
- export { A as AggregateFrostParams, D as DefaultSparkSigner, p as DerivedHDKey, l as KeyDerivation, K as KeyDerivationType, q as KeyPair, n as SignFrostParams, k as SigningCommitment, i as SigningCommitmentWithOptionalNonce, j as SigningNonce, S as SparkSigner, o as SplitSecretWithProofsParams, T as TaprootOutputKeysGenerator, a as TaprootSparkSigner, U as UnsafeStatelessSparkSigner, V as VerifiableSecretShare, h as bigIntToPrivateKey, c as computerLagrangeCoefficients, e as evaluatePolynomial, f as fieldDiv, b as generatePolynomialForSecretSharing, g as getRandomBigInt, m as modInverse, r as recoverSecret, s as splitSecret, d as splitSecretWithProofs, v as validateShare } from './client-TLqKGhj8.cjs';
1
+ export { A as AuthenticationError, C as ConfigurationError, I as InternalValidationError, N as NetworkError, a as NotImplementedError, R as RPCError, S as SparkSDKError, T as TokenTransactionService, V as ValidationError } from './token-transactions-CwhlOgIP.cjs';
2
+ import { H as SparkWallet, F as SparkWalletProps } from './spark-wallet-yc2KhsVY.cjs';
3
+ export { B as Bech32mTokenIdentifier, r as Bech32mTokenIdentifierData, b as ConfigOptions, C as ConnectionManager, x as CreateLightningInvoiceParams, D as DecodedSparkAddressData, y as DepositParams, I as InitWalletResponse, L as LRC_WALLET_NETWORK, N as Network, m as NetworkToProto, l as NetworkType, P as PayLightningInvoiceParams, R as RawTokenIdentifierHex, c as SparkAddressData, S as SparkAddressFormat, G as SparkWalletEvents, z as TokenBalanceMap, E as TokenMetadataMap, A as TokenOutputsMap, T as TransferParams, U as UserTokenMetadata, a as WalletConfig, W as WalletConfigService, k as bech32mDecode, u as decodeBech32mTokenIdentifier, f as decodeSparkAddress, s as encodeBech32mTokenIdentifier, e as encodeSparkAddress, d as encodeSparkAddressWithSignature, n as getNetwork, o as getNetworkFromAddress, w as getNetworkFromBech32mTokenIdentifier, j as getNetworkFromSparkAddress, q as getNetworkFromString, g as isValidPublicKey, i as isValidSparkAddress, p as protoToNetwork, t as toProtoTimestamp, v as validateSparkInvoiceFields, h as validateSparkInvoiceSignature } from './spark-wallet-yc2KhsVY.cjs';
4
+ export { ab as BroadcastConfig, ac as BroadcastResult, Q as DEFAULT_FEE_SATS, M as DIRECT_TIMELOCK_OFFSET, a9 as FeeBumpTxChain, a8 as FeeBumpTxPackage, a7 as FeeRate, O as INITIAL_DIRECT_SEQUENCE, N as INITIAL_SEQUENCE, a5 as LeafInfo, P as TEST_UNILATERAL_DIRECT_SEQUENCE, T as TEST_UNILATERAL_SEQUENCE, aa as TxChain, a6 as Utxo, q as addPrivateKeys, o as addPublicKeys, b as applyAdaptorToSignature, p as applyAdditiveTweakToPublicKey, J as checkIfSelectedOutputsAreAvailable, a1 as checkIfValidSequence, z as collectResponses, c as computeTaprootKeyNoScript, ag as constructFeeBumpTx, af as constructUnilateralExitFeeBumpPackages, ae as constructUnilateralExitTxs, _ as createConnectorRefundTransactions, X as createLeafNodeTx, V as createNodeTx, W as createNodeTxs, Y as createRefundTx, Z as createRefundTxs, S as createRootTx, F as createSigningCommitment, B as createSigningNonce, U as createSplitTx, H as decodeBytesToSigningCommitment, E as decodeBytesToSigningNonce, a2 as doesLeafNeedRefresh, G as encodeSigningCommitmentToBytes, D as encodeSigningNonceToBytes, K as filterTokenBalanceForTokenIdentifier, a as generateAdaptorFromSignature, g as generateSignatureFromExistingAdaptor, $ as getCurrentTimelock, a4 as getEphemeralAnchorOutput, w as getLatestDepositTxId, a3 as getNextTransactionSequence, f as getP2TRAddressFromPkScript, e as getP2TRAddressFromPublicKey, d as getP2TRScriptFromPublicKey, h as getP2WPKHAddressFromPublicKey, A as getRandomSigningNonce, k as getSigHashFromTx, C as getSigningCommitmentFromNonce, ah as getSparkAddressFromTaproot, a0 as getTransactionSequence, L as getTransferPackageSigningPayload, n as getTxEstimatedVbytesSizeByNumberOfInputsOutputs, j as getTxFromRawTxBytes, i as getTxFromRawTxHex, l as getTxId, m as getTxIdNoReverse, ad as isEphemeralAnchorOutput, x as isTxBroadcast, u as lastKeyWithTarget, R as maybeApplyFee, y as proofOfPossessionMessageHashForDepositAddress, r as subtractPrivateKeys, s as subtractPublicKeys, I as sumAvailableTokens, t as sumOfPrivateKeys, v as validateOutboundAdaptorSignature } from './xchain-address-CNQEwLjR.cjs';
5
+ export { A as AggregateFrostParams, D as DefaultSparkSigner, p as DerivedHDKey, l as KeyDerivation, K as KeyDerivationType, q as KeyPair, n as SignFrostParams, k as SigningCommitment, i as SigningCommitmentWithOptionalNonce, j as SigningNonce, S as SparkSigner, o as SplitSecretWithProofsParams, T as TaprootOutputKeysGenerator, a as TaprootSparkSigner, U as UnsafeStatelessSparkSigner, V as VerifiableSecretShare, h as bigIntToPrivateKey, c as computerLagrangeCoefficients, e as evaluatePolynomial, f as fieldDiv, b as generatePolynomialForSecretSharing, g as getRandomBigInt, m as modInverse, r as recoverSecret, s as splitSecret, d as splitSecretWithProofs, v as validateShare } from './client-B9CAWKWz.cjs';
6
6
  export { I as IKeyPackage } from './types-B3hMoTYO.cjs';
7
- import './spark-CBBjw5AY.cjs';
7
+ import './spark-CtGJPkx4.cjs';
8
8
  import '@bufbuild/protobuf/wire';
9
9
  import 'nice-grpc-common';
10
10
  import './proto/spark_token.cjs';
package/dist/index.d.ts CHANGED
@@ -1,10 +1,10 @@
1
- export { A as AuthenticationError, C as ConfigurationError, I as InternalValidationError, N as NetworkError, a as NotImplementedError, R as RPCError, S as SparkSDKError, T as TokenTransactionService, V as ValidationError } from './token-transactions-e8UUOjFk.js';
2
- import { H as SparkWallet, F as SparkWalletProps } from './spark-wallet-CrNWPa9p.js';
3
- export { B as Bech32mTokenIdentifier, r as Bech32mTokenIdentifierData, b as ConfigOptions, C as ConnectionManager, x as CreateLightningInvoiceParams, D as DecodedSparkAddressData, y as DepositParams, I as InitWalletResponse, L as LRC_WALLET_NETWORK, N as Network, m as NetworkToProto, l as NetworkType, P as PayLightningInvoiceParams, R as RawTokenIdentifierHex, c as SparkAddressData, S as SparkAddressFormat, G as SparkWalletEvents, z as TokenBalanceMap, E as TokenMetadataMap, A as TokenOutputsMap, T as TransferParams, U as UserTokenMetadata, a as WalletConfig, W as WalletConfigService, k as bech32mDecode, u as decodeBech32mTokenIdentifier, f as decodeSparkAddress, s as encodeBech32mTokenIdentifier, e as encodeSparkAddress, d as encodeSparkAddressWithSignature, n as getNetwork, o as getNetworkFromAddress, w as getNetworkFromBech32mTokenIdentifier, j as getNetworkFromSparkAddress, q as getNetworkFromString, g as isValidPublicKey, i as isValidSparkAddress, p as protoToNetwork, t as toProtoTimestamp, v as validateSparkInvoiceFields, h as validateSparkInvoiceSignature } from './spark-wallet-CrNWPa9p.js';
4
- export { ab as BroadcastConfig, ac as BroadcastResult, Q as DEFAULT_FEE_SATS, M as DIRECT_TIMELOCK_OFFSET, a9 as FeeBumpTxChain, a8 as FeeBumpTxPackage, a7 as FeeRate, O as INITIAL_DIRECT_SEQUENCE, N as INITIAL_SEQUENCE, a5 as LeafInfo, P as TEST_UNILATERAL_DIRECT_SEQUENCE, T as TEST_UNILATERAL_SEQUENCE, aa as TxChain, a6 as Utxo, q as addPrivateKeys, o as addPublicKeys, b as applyAdaptorToSignature, p as applyAdditiveTweakToPublicKey, J as checkIfSelectedOutputsAreAvailable, a1 as checkIfValidSequence, z as collectResponses, c as computeTaprootKeyNoScript, ag as constructFeeBumpTx, af as constructUnilateralExitFeeBumpPackages, ae as constructUnilateralExitTxs, _ as createConnectorRefundTransactions, X as createLeafNodeTx, V as createNodeTx, W as createNodeTxs, Y as createRefundTx, Z as createRefundTxs, S as createRootTx, F as createSigningCommitment, B as createSigningNonce, U as createSplitTx, H as decodeBytesToSigningCommitment, E as decodeBytesToSigningNonce, a2 as doesLeafNeedRefresh, G as encodeSigningCommitmentToBytes, D as encodeSigningNonceToBytes, K as filterTokenBalanceForTokenIdentifier, a as generateAdaptorFromSignature, g as generateSignatureFromExistingAdaptor, $ as getCurrentTimelock, a4 as getEphemeralAnchorOutput, w as getLatestDepositTxId, a3 as getNextTransactionSequence, f as getP2TRAddressFromPkScript, e as getP2TRAddressFromPublicKey, d as getP2TRScriptFromPublicKey, h as getP2WPKHAddressFromPublicKey, A as getRandomSigningNonce, k as getSigHashFromTx, C as getSigningCommitmentFromNonce, ah as getSparkAddressFromTaproot, a0 as getTransactionSequence, L as getTransferPackageSigningPayload, n as getTxEstimatedVbytesSizeByNumberOfInputsOutputs, j as getTxFromRawTxBytes, i as getTxFromRawTxHex, l as getTxId, m as getTxIdNoReverse, ad as isEphemeralAnchorOutput, x as isTxBroadcast, u as lastKeyWithTarget, R as maybeApplyFee, y as proofOfPossessionMessageHashForDepositAddress, r as subtractPrivateKeys, s as subtractPublicKeys, I as sumAvailableTokens, t as sumOfPrivateKeys, v as validateOutboundAdaptorSignature } from './xchain-address-CDnNobbB.js';
5
- export { A as AggregateFrostParams, D as DefaultSparkSigner, p as DerivedHDKey, l as KeyDerivation, K as KeyDerivationType, q as KeyPair, n as SignFrostParams, k as SigningCommitment, i as SigningCommitmentWithOptionalNonce, j as SigningNonce, S as SparkSigner, o as SplitSecretWithProofsParams, T as TaprootOutputKeysGenerator, a as TaprootSparkSigner, U as UnsafeStatelessSparkSigner, V as VerifiableSecretShare, h as bigIntToPrivateKey, c as computerLagrangeCoefficients, e as evaluatePolynomial, f as fieldDiv, b as generatePolynomialForSecretSharing, g as getRandomBigInt, m as modInverse, r as recoverSecret, s as splitSecret, d as splitSecretWithProofs, v as validateShare } from './client-B5vlztPA.js';
1
+ export { A as AuthenticationError, C as ConfigurationError, I as InternalValidationError, N as NetworkError, a as NotImplementedError, R as RPCError, S as SparkSDKError, T as TokenTransactionService, V as ValidationError } from './token-transactions-0nmR9mQO.js';
2
+ import { H as SparkWallet, F as SparkWalletProps } from './spark-wallet-Cp3yv6cK.js';
3
+ export { B as Bech32mTokenIdentifier, r as Bech32mTokenIdentifierData, b as ConfigOptions, C as ConnectionManager, x as CreateLightningInvoiceParams, D as DecodedSparkAddressData, y as DepositParams, I as InitWalletResponse, L as LRC_WALLET_NETWORK, N as Network, m as NetworkToProto, l as NetworkType, P as PayLightningInvoiceParams, R as RawTokenIdentifierHex, c as SparkAddressData, S as SparkAddressFormat, G as SparkWalletEvents, z as TokenBalanceMap, E as TokenMetadataMap, A as TokenOutputsMap, T as TransferParams, U as UserTokenMetadata, a as WalletConfig, W as WalletConfigService, k as bech32mDecode, u as decodeBech32mTokenIdentifier, f as decodeSparkAddress, s as encodeBech32mTokenIdentifier, e as encodeSparkAddress, d as encodeSparkAddressWithSignature, n as getNetwork, o as getNetworkFromAddress, w as getNetworkFromBech32mTokenIdentifier, j as getNetworkFromSparkAddress, q as getNetworkFromString, g as isValidPublicKey, i as isValidSparkAddress, p as protoToNetwork, t as toProtoTimestamp, v as validateSparkInvoiceFields, h as validateSparkInvoiceSignature } from './spark-wallet-Cp3yv6cK.js';
4
+ export { ab as BroadcastConfig, ac as BroadcastResult, Q as DEFAULT_FEE_SATS, M as DIRECT_TIMELOCK_OFFSET, a9 as FeeBumpTxChain, a8 as FeeBumpTxPackage, a7 as FeeRate, O as INITIAL_DIRECT_SEQUENCE, N as INITIAL_SEQUENCE, a5 as LeafInfo, P as TEST_UNILATERAL_DIRECT_SEQUENCE, T as TEST_UNILATERAL_SEQUENCE, aa as TxChain, a6 as Utxo, q as addPrivateKeys, o as addPublicKeys, b as applyAdaptorToSignature, p as applyAdditiveTweakToPublicKey, J as checkIfSelectedOutputsAreAvailable, a1 as checkIfValidSequence, z as collectResponses, c as computeTaprootKeyNoScript, ag as constructFeeBumpTx, af as constructUnilateralExitFeeBumpPackages, ae as constructUnilateralExitTxs, _ as createConnectorRefundTransactions, X as createLeafNodeTx, V as createNodeTx, W as createNodeTxs, Y as createRefundTx, Z as createRefundTxs, S as createRootTx, F as createSigningCommitment, B as createSigningNonce, U as createSplitTx, H as decodeBytesToSigningCommitment, E as decodeBytesToSigningNonce, a2 as doesLeafNeedRefresh, G as encodeSigningCommitmentToBytes, D as encodeSigningNonceToBytes, K as filterTokenBalanceForTokenIdentifier, a as generateAdaptorFromSignature, g as generateSignatureFromExistingAdaptor, $ as getCurrentTimelock, a4 as getEphemeralAnchorOutput, w as getLatestDepositTxId, a3 as getNextTransactionSequence, f as getP2TRAddressFromPkScript, e as getP2TRAddressFromPublicKey, d as getP2TRScriptFromPublicKey, h as getP2WPKHAddressFromPublicKey, A as getRandomSigningNonce, k as getSigHashFromTx, C as getSigningCommitmentFromNonce, ah as getSparkAddressFromTaproot, a0 as getTransactionSequence, L as getTransferPackageSigningPayload, n as getTxEstimatedVbytesSizeByNumberOfInputsOutputs, j as getTxFromRawTxBytes, i as getTxFromRawTxHex, l as getTxId, m as getTxIdNoReverse, ad as isEphemeralAnchorOutput, x as isTxBroadcast, u as lastKeyWithTarget, R as maybeApplyFee, y as proofOfPossessionMessageHashForDepositAddress, r as subtractPrivateKeys, s as subtractPublicKeys, I as sumAvailableTokens, t as sumOfPrivateKeys, v as validateOutboundAdaptorSignature } from './xchain-address-BPwpnmuY.js';
5
+ export { A as AggregateFrostParams, D as DefaultSparkSigner, p as DerivedHDKey, l as KeyDerivation, K as KeyDerivationType, q as KeyPair, n as SignFrostParams, k as SigningCommitment, i as SigningCommitmentWithOptionalNonce, j as SigningNonce, S as SparkSigner, o as SplitSecretWithProofsParams, T as TaprootOutputKeysGenerator, a as TaprootSparkSigner, U as UnsafeStatelessSparkSigner, V as VerifiableSecretShare, h as bigIntToPrivateKey, c as computerLagrangeCoefficients, e as evaluatePolynomial, f as fieldDiv, b as generatePolynomialForSecretSharing, g as getRandomBigInt, m as modInverse, r as recoverSecret, s as splitSecret, d as splitSecretWithProofs, v as validateShare } from './client-Dd3QnxQu.js';
6
6
  export { I as IKeyPackage } from './types-B3hMoTYO.js';
7
- import './spark-CBBjw5AY.js';
7
+ import './spark-CtGJPkx4.js';
8
8
  import '@bufbuild/protobuf/wire';
9
9
  import 'nice-grpc-common';
10
10
  import './proto/spark_token.js';
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  SparkWalletBrowser,
3
3
  initializeTracerEnvBrowser
4
- } from "./chunk-G2RIVSSI.js";
4
+ } from "./chunk-MWBK6QBF.js";
5
5
  import "./chunk-BYXBJQAS.js";
6
6
  import {
7
7
  AuthenticationError,
@@ -114,7 +114,7 @@ import {
114
114
  validateShare,
115
115
  validateSparkInvoiceFields,
116
116
  validateSparkInvoiceSignature
117
- } from "./chunk-HMJO7LPI.js";
117
+ } from "./chunk-JXLWOQK5.js";
118
118
  import "./chunk-6CMNEDBK.js";
119
119
  import "./chunk-76SYPHOC.js";
120
120
  import "./chunk-A5M55UR3.js";