@buildonspark/spark-sdk 0.1.46 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/dist/{chunk-BGGEVUJK.js → chunk-2ENZX6LT.js} +241 -7
  3. package/dist/{chunk-LHRD2WT6.js → chunk-4JD4HIAN.js} +23 -3
  4. package/dist/{chunk-I54FARY2.js → chunk-CDLETEDT.js} +11 -3
  5. package/dist/{chunk-OBFKIEMP.js → chunk-TM6CHQXC.js} +1 -1
  6. package/dist/chunk-UDK3EBE5.js +13514 -0
  7. package/dist/chunk-XYTKKLCV.js +7 -0
  8. package/dist/{RequestLightningSendInput-2cSh_In4.d.cts → client-DKbwpcnl.d.ts} +434 -212
  9. package/dist/{RequestLightningSendInput-CN6BNg_g.d.ts → client-Drs5Lapg.d.cts} +434 -212
  10. package/dist/{services/config.cjs → debug.cjs} +31007 -1003
  11. package/dist/debug.d.cts +126 -0
  12. package/dist/debug.d.ts +126 -0
  13. package/dist/debug.js +21 -0
  14. package/dist/graphql/objects/index.d.cts +4 -11
  15. package/dist/graphql/objects/index.d.ts +4 -11
  16. package/dist/graphql/objects/index.js +2 -4
  17. package/dist/index.cjs +18219 -20818
  18. package/dist/index.d.cts +15 -768
  19. package/dist/index.d.ts +15 -768
  20. package/dist/index.js +82 -76
  21. package/dist/index.node.cjs +23831 -26538
  22. package/dist/index.node.d.cts +191 -33
  23. package/dist/index.node.d.ts +191 -33
  24. package/dist/index.node.js +87 -181
  25. package/dist/native/index.cjs +17835 -20519
  26. package/dist/native/index.d.cts +1466 -1546
  27. package/dist/native/index.d.ts +1466 -1546
  28. package/dist/native/index.js +22605 -25286
  29. package/dist/proto/lrc20.d.cts +2 -2
  30. package/dist/proto/lrc20.d.ts +2 -2
  31. package/dist/proto/lrc20.js +3098 -46
  32. package/dist/proto/spark.cjs +241 -7
  33. package/dist/proto/spark.d.cts +1 -1
  34. package/dist/proto/spark.d.ts +1 -1
  35. package/dist/proto/spark.js +5 -1
  36. package/dist/proto/spark_token.cjs +22 -2
  37. package/dist/proto/spark_token.d.cts +8 -1
  38. package/dist/proto/spark_token.d.ts +8 -1
  39. package/dist/proto/spark_token.js +2 -2
  40. package/dist/{sdk-types-CKBsylfW.d.ts → sdk-types-DCIVdKUT.d.ts} +1 -1
  41. package/dist/{sdk-types-Ct8xmN7l.d.cts → sdk-types-DJ2ve9YY.d.cts} +1 -1
  42. package/dist/{spark-DbzGfse6.d.ts → spark-BUOx3U7Q.d.cts} +103 -5
  43. package/dist/{spark-DbzGfse6.d.cts → spark-BUOx3U7Q.d.ts} +103 -5
  44. package/dist/spark-wallet-CF8Oxjqs.d.ts +935 -0
  45. package/dist/spark-wallet-DOLSa3oF.d.cts +935 -0
  46. package/dist/spark_bindings/native/index.d.cts +1 -1
  47. package/dist/spark_bindings/native/index.d.ts +1 -1
  48. package/dist/spark_bindings/wasm/index.d.cts +1 -1
  49. package/dist/spark_bindings/wasm/index.d.ts +1 -1
  50. package/dist/{services/index.cjs → tests/test-utils.cjs} +9788 -10263
  51. package/dist/tests/test-utils.d.cts +79 -0
  52. package/dist/tests/test-utils.d.ts +79 -0
  53. package/dist/tests/test-utils.js +93 -0
  54. package/dist/types/index.cjs +239 -7
  55. package/dist/types/index.d.cts +5 -9
  56. package/dist/types/index.d.ts +5 -9
  57. package/dist/types/index.js +4 -6
  58. package/dist/{types-C-Rp0Oo7.d.ts → types-BADxR3bm.d.cts} +1 -1
  59. package/dist/{types-C-Rp0Oo7.d.cts → types-BADxR3bm.d.ts} +1 -1
  60. package/dist/{index-COm59SPw.d.ts → xchain-address-C2xMs9nz.d.cts} +6 -94
  61. package/dist/{index-CKL5DodV.d.cts → xchain-address-Ckto9oEz.d.ts} +6 -94
  62. package/package.json +9 -33
  63. package/src/debug.ts +13 -0
  64. package/src/graphql/client.ts +59 -20
  65. package/src/index.node.ts +28 -2
  66. package/src/index.ts +31 -1
  67. package/src/native/index.ts +16 -2
  68. package/src/proto/mock.ts +76 -0
  69. package/src/proto/spark.ts +354 -6
  70. package/src/proto/spark_token.ts +34 -2
  71. package/src/services/config.ts +4 -6
  72. package/src/services/connection.ts +131 -64
  73. package/src/services/coop-exit.ts +6 -3
  74. package/src/services/deposit.ts +9 -8
  75. package/src/services/lightning.ts +4 -3
  76. package/src/services/signing.ts +10 -6
  77. package/src/services/token-transactions.ts +100 -85
  78. package/src/services/transfer.ts +88 -60
  79. package/src/services/tree-creation.ts +17 -9
  80. package/src/services/wallet-config.ts +17 -9
  81. package/src/signer/signer.react-native.ts +5 -10
  82. package/src/signer/signer.ts +269 -339
  83. package/src/signer/types.ts +63 -0
  84. package/src/spark-wallet/spark-wallet.ts +226 -149
  85. package/src/spark-wallet/types.ts +22 -8
  86. package/src/tests/integration/adaptor-signature.test.ts +8 -9
  87. package/src/tests/integration/coop-exit.test.ts +214 -202
  88. package/src/tests/integration/lightning.test.ts +128 -103
  89. package/src/tests/integration/swap.test.ts +116 -84
  90. package/src/tests/integration/transfer.test.ts +291 -214
  91. package/src/tests/integration/tree-creation.test.ts +0 -5
  92. package/src/tests/integration/wallet.test.ts +1 -0
  93. package/src/tests/isHermeticTest.ts +3 -24
  94. package/src/tests/{test-util.ts → test-utils.ts} +13 -11
  95. package/src/tests/token-identifier.test.ts +6 -6
  96. package/src/tests/wrapWithOtelSpan.test.ts +1 -1
  97. package/src/{address → utils}/address.ts +1 -1
  98. package/src/utils/crypto.ts +19 -9
  99. package/src/utils/index.ts +2 -0
  100. package/src/utils/network.ts +17 -0
  101. package/src/utils/secret-sharing.ts +1 -2
  102. package/src/utils/signing.ts +1 -1
  103. package/src/utils/token-identifier.ts +27 -21
  104. package/src/utils/token-transaction-validation.ts +34 -0
  105. package/src/utils/token-transactions.ts +12 -8
  106. package/src/utils/unilateral-exit.ts +32 -0
  107. package/src/utils/xchain-address.ts +1 -1
  108. package/dist/BitcoinNetwork-TnABML0T.d.cts +0 -18
  109. package/dist/BitcoinNetwork-TnABML0T.d.ts +0 -18
  110. package/dist/LightningSendFeeEstimateInput-BgOhEAI-.d.cts +0 -10
  111. package/dist/LightningSendFeeEstimateInput-BgOhEAI-.d.ts +0 -10
  112. package/dist/address/index.cjs +0 -458
  113. package/dist/address/index.d.cts +0 -32
  114. package/dist/address/index.d.ts +0 -32
  115. package/dist/address/index.js +0 -17
  116. package/dist/chunk-4EMV7HHW.js +0 -277
  117. package/dist/chunk-C2S227QR.js +0 -2336
  118. package/dist/chunk-DXR2PXJU.js +0 -1122
  119. package/dist/chunk-GSI4OLXZ.js +0 -117
  120. package/dist/chunk-HHNQ3ZHC.js +0 -170
  121. package/dist/chunk-HMLOC6TE.js +0 -14
  122. package/dist/chunk-HSCLBJEL.js +0 -113
  123. package/dist/chunk-HWJWKEIU.js +0 -75
  124. package/dist/chunk-JB64OQES.js +0 -7095
  125. package/dist/chunk-KMUMFYFX.js +0 -137
  126. package/dist/chunk-N5VZVCGJ.js +0 -622
  127. package/dist/chunk-NSJF5F5O.js +0 -325
  128. package/dist/chunk-NTFKFRQ2.js +0 -3146
  129. package/dist/chunk-OFCJFZ4I.js +0 -24
  130. package/dist/chunk-QNNSEJ4P.js +0 -232
  131. package/dist/chunk-UXDODSDT.js +0 -838
  132. package/dist/chunk-VTUGIIWI.js +0 -0
  133. package/dist/chunk-Z5HIAYFT.js +0 -84
  134. package/dist/network-Css46DAz.d.cts +0 -46
  135. package/dist/network-hynb7iTZ.d.ts +0 -46
  136. package/dist/services/config.d.cts +0 -42
  137. package/dist/services/config.d.ts +0 -42
  138. package/dist/services/config.js +0 -17
  139. package/dist/services/connection.cjs +0 -17691
  140. package/dist/services/connection.d.cts +0 -95
  141. package/dist/services/connection.d.ts +0 -95
  142. package/dist/services/connection.js +0 -11
  143. package/dist/services/index.d.cts +0 -21
  144. package/dist/services/index.d.ts +0 -21
  145. package/dist/services/index.js +0 -58
  146. package/dist/services/lrc-connection.cjs +0 -4713
  147. package/dist/services/lrc-connection.d.cts +0 -34
  148. package/dist/services/lrc-connection.d.ts +0 -34
  149. package/dist/services/lrc-connection.js +0 -11
  150. package/dist/services/token-transactions.cjs +0 -2877
  151. package/dist/services/token-transactions.d.cts +0 -75
  152. package/dist/services/token-transactions.d.ts +0 -75
  153. package/dist/services/token-transactions.js +0 -15
  154. package/dist/services/wallet-config.cjs +0 -340
  155. package/dist/services/wallet-config.d.cts +0 -56
  156. package/dist/services/wallet-config.d.ts +0 -56
  157. package/dist/services/wallet-config.js +0 -33
  158. package/dist/signer/signer.cjs +0 -2004
  159. package/dist/signer/signer.d.cts +0 -10
  160. package/dist/signer/signer.d.ts +0 -10
  161. package/dist/signer/signer.js +0 -24
  162. package/dist/signer-BP6F__oR.d.cts +0 -187
  163. package/dist/signer-BVZJXcq7.d.ts +0 -187
  164. package/dist/utils/index.cjs +0 -2947
  165. package/dist/utils/index.d.cts +0 -18
  166. package/dist/utils/index.d.ts +0 -18
  167. package/dist/utils/index.js +0 -157
  168. package/ios/spark_frost.kt +0 -1900
  169. package/src/address/index.ts +0 -1
  170. package/src/services/lrc-connection.ts +0 -215
  171. /package/dist/{chunk-L3EHBOUX.js → chunk-BYXBJQAS.js} +0 -0
package/src/proto/mock.ts CHANGED
@@ -67,6 +67,11 @@ export interface UpdateNodesStatusRequest {
67
67
  status: string;
68
68
  }
69
69
 
70
+ /** TriggerTaskRequest is used to trigger a scheduled task immediately in hermetic tests. */
71
+ export interface TriggerTaskRequest {
72
+ taskName: string;
73
+ }
74
+
70
75
  function createBaseCleanUpPreimageShareRequest(): CleanUpPreimageShareRequest {
71
76
  return { paymentHash: new Uint8Array(0) };
72
77
  }
@@ -261,6 +266,64 @@ export const UpdateNodesStatusRequest: MessageFns<UpdateNodesStatusRequest> = {
261
266
  },
262
267
  };
263
268
 
269
+ function createBaseTriggerTaskRequest(): TriggerTaskRequest {
270
+ return { taskName: "" };
271
+ }
272
+
273
+ export const TriggerTaskRequest: MessageFns<TriggerTaskRequest> = {
274
+ encode(message: TriggerTaskRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
275
+ if (message.taskName !== "") {
276
+ writer.uint32(10).string(message.taskName);
277
+ }
278
+ return writer;
279
+ },
280
+
281
+ decode(input: BinaryReader | Uint8Array, length?: number): TriggerTaskRequest {
282
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
283
+ const end = length === undefined ? reader.len : reader.pos + length;
284
+ const message = createBaseTriggerTaskRequest();
285
+ while (reader.pos < end) {
286
+ const tag = reader.uint32();
287
+ switch (tag >>> 3) {
288
+ case 1: {
289
+ if (tag !== 10) {
290
+ break;
291
+ }
292
+
293
+ message.taskName = reader.string();
294
+ continue;
295
+ }
296
+ }
297
+ if ((tag & 7) === 4 || tag === 0) {
298
+ break;
299
+ }
300
+ reader.skip(tag & 7);
301
+ }
302
+ return message;
303
+ },
304
+
305
+ fromJSON(object: any): TriggerTaskRequest {
306
+ return { taskName: isSet(object.taskName) ? globalThis.String(object.taskName) : "" };
307
+ },
308
+
309
+ toJSON(message: TriggerTaskRequest): unknown {
310
+ const obj: any = {};
311
+ if (message.taskName !== "") {
312
+ obj.taskName = message.taskName;
313
+ }
314
+ return obj;
315
+ },
316
+
317
+ create(base?: DeepPartial<TriggerTaskRequest>): TriggerTaskRequest {
318
+ return TriggerTaskRequest.fromPartial(base ?? {});
319
+ },
320
+ fromPartial(object: DeepPartial<TriggerTaskRequest>): TriggerTaskRequest {
321
+ const message = createBaseTriggerTaskRequest();
322
+ message.taskName = object.taskName ?? "";
323
+ return message;
324
+ },
325
+ };
326
+
264
327
  export type MockServiceDefinition = typeof MockServiceDefinition;
265
328
  export const MockServiceDefinition = {
266
329
  name: "MockService",
@@ -290,6 +353,15 @@ export const MockServiceDefinition = {
290
353
  responseStream: false,
291
354
  options: {},
292
355
  },
356
+ /** Triggers the execution of a scheduled task immediately by name. Used by hermetic tests */
357
+ trigger_task: {
358
+ name: "trigger_task",
359
+ requestType: TriggerTaskRequest,
360
+ requestStream: false,
361
+ responseType: Empty,
362
+ responseStream: false,
363
+ options: {},
364
+ },
293
365
  },
294
366
  } as const;
295
367
 
@@ -306,6 +378,8 @@ export interface MockServiceImplementation<CallContextExt = {}> {
306
378
  request: UpdateNodesStatusRequest,
307
379
  context: CallContext & CallContextExt,
308
380
  ): Promise<DeepPartial<Empty>>;
381
+ /** Triggers the execution of a scheduled task immediately by name. Used by hermetic tests */
382
+ trigger_task(request: TriggerTaskRequest, context: CallContext & CallContextExt): Promise<DeepPartial<Empty>>;
309
383
  }
310
384
 
311
385
  export interface MockServiceClient<CallOptionsExt = {}> {
@@ -321,6 +395,8 @@ export interface MockServiceClient<CallOptionsExt = {}> {
321
395
  request: DeepPartial<UpdateNodesStatusRequest>,
322
396
  options?: CallOptions & CallOptionsExt,
323
397
  ): Promise<Empty>;
398
+ /** Triggers the execution of a scheduled task immediately by name. Used by hermetic tests */
399
+ trigger_task(request: DeepPartial<TriggerTaskRequest>, options?: CallOptions & CallOptionsExt): Promise<Empty>;
324
400
  }
325
401
 
326
402
  function bytesFromBase64(b64: string): Uint8Array {
@@ -694,6 +694,7 @@ export interface TokenTransactionWithStatus {
694
694
  tokenTransaction: TokenTransaction | undefined;
695
695
  status: TokenTransactionStatus;
696
696
  confirmationMetadata: TokenTransactionConfirmationMetadata | undefined;
697
+ tokenTransactionHash: Uint8Array;
697
698
  }
698
699
 
699
700
  export interface SignatureWithIndex {
@@ -1142,6 +1143,7 @@ export interface RequestedSigningCommitments_SigningNonceCommitmentsEntry {
1142
1143
 
1143
1144
  export interface GetSigningCommitmentsRequest {
1144
1145
  nodeIds: string[];
1146
+ count: number;
1145
1147
  }
1146
1148
 
1147
1149
  export interface GetSigningCommitmentsResponse {
@@ -1467,6 +1469,8 @@ export interface QueryStaticDepositAddressesRequest {
1467
1469
  network: Network;
1468
1470
  limit: number;
1469
1471
  offset: number;
1472
+ /** Optional filter. When specified, only the DepositAddress with this address is returned. */
1473
+ depositAddress?: string | undefined;
1470
1474
  }
1471
1475
 
1472
1476
  export interface DepositAddressQueryResult {
@@ -1517,6 +1521,43 @@ export interface PaymentIntentFields {
1517
1521
  memo?: string | undefined;
1518
1522
  }
1519
1523
 
1524
+ export interface InitiateStaticDepositUtxoRefundRequest {
1525
+ onChainUtxo:
1526
+ | UTXO
1527
+ | undefined;
1528
+ /**
1529
+ * A package that is used for signing L1 Bitcoin transactions using FROST.
1530
+ * SE consumes it to return SigningResult structure, that is used by the user to
1531
+ * construct the final signature for the refund Bitcoin transaction.
1532
+ */
1533
+ refundTxSigningJob:
1534
+ | SigningJob
1535
+ | undefined;
1536
+ /**
1537
+ * Signature of a user statement that authorises the SE to initiate a static
1538
+ * deposit utxo refund to the user.
1539
+ *
1540
+ * The user statement is constructed by concatenating the following fields in order:
1541
+ * 1. Action name: "claim_static_deposit" (UTF-8 string)
1542
+ * 2. Network: lowercase network name (e.g., "bitcoin", "testnet") (UTF-8 string)
1543
+ * 3. Transaction ID: hex-encoded UTXO transaction ID (UTF-8 string)
1544
+ * 4. Output index: UTXO output index (vout) as 4-byte unsigned integer (little-endian)
1545
+ * 5. Request type: 2 for refund (1-byte unsigned integer, little-endian)
1546
+ * 6. Credit amount: amount of satoshis to credit as 8-byte unsigned integer (little-endian)
1547
+ * 7. Signing payload: sighash of spend transaction (UTF-8 string)
1548
+ *
1549
+ * The concatenated payload is then hashed with SHA-256, and the resulting hash
1550
+ * is signed using ECDSA with the user's identity private key to produce this signature.
1551
+ */
1552
+ userSignature: Uint8Array;
1553
+ }
1554
+
1555
+ export interface InitiateStaticDepositUtxoRefundResponse {
1556
+ /** The FROST signing results which must be aggregated by the user to complete signing */
1557
+ refundTxSigningResult: SigningResult | undefined;
1558
+ depositAddress: DepositAddressQueryResult | undefined;
1559
+ }
1560
+
1520
1561
  export interface InitiateUtxoSwapRequest {
1521
1562
  onChainUtxo: UTXO | undefined;
1522
1563
  requestType: UtxoSwapRequestType;
@@ -5118,7 +5159,12 @@ export const TokenTransactionConfirmationMetadata: MessageFns<TokenTransactionCo
5118
5159
  };
5119
5160
 
5120
5161
  function createBaseTokenTransactionWithStatus(): TokenTransactionWithStatus {
5121
- return { tokenTransaction: undefined, status: 0, confirmationMetadata: undefined };
5162
+ return {
5163
+ tokenTransaction: undefined,
5164
+ status: 0,
5165
+ confirmationMetadata: undefined,
5166
+ tokenTransactionHash: new Uint8Array(0),
5167
+ };
5122
5168
  }
5123
5169
 
5124
5170
  export const TokenTransactionWithStatus: MessageFns<TokenTransactionWithStatus> = {
@@ -5132,6 +5178,9 @@ export const TokenTransactionWithStatus: MessageFns<TokenTransactionWithStatus>
5132
5178
  if (message.confirmationMetadata !== undefined) {
5133
5179
  TokenTransactionConfirmationMetadata.encode(message.confirmationMetadata, writer.uint32(26).fork()).join();
5134
5180
  }
5181
+ if (message.tokenTransactionHash.length !== 0) {
5182
+ writer.uint32(34).bytes(message.tokenTransactionHash);
5183
+ }
5135
5184
  return writer;
5136
5185
  },
5137
5186
 
@@ -5166,6 +5215,14 @@ export const TokenTransactionWithStatus: MessageFns<TokenTransactionWithStatus>
5166
5215
  message.confirmationMetadata = TokenTransactionConfirmationMetadata.decode(reader, reader.uint32());
5167
5216
  continue;
5168
5217
  }
5218
+ case 4: {
5219
+ if (tag !== 34) {
5220
+ break;
5221
+ }
5222
+
5223
+ message.tokenTransactionHash = reader.bytes();
5224
+ continue;
5225
+ }
5169
5226
  }
5170
5227
  if ((tag & 7) === 4 || tag === 0) {
5171
5228
  break;
@@ -5182,6 +5239,9 @@ export const TokenTransactionWithStatus: MessageFns<TokenTransactionWithStatus>
5182
5239
  confirmationMetadata: isSet(object.confirmationMetadata)
5183
5240
  ? TokenTransactionConfirmationMetadata.fromJSON(object.confirmationMetadata)
5184
5241
  : undefined,
5242
+ tokenTransactionHash: isSet(object.tokenTransactionHash)
5243
+ ? bytesFromBase64(object.tokenTransactionHash)
5244
+ : new Uint8Array(0),
5185
5245
  };
5186
5246
  },
5187
5247
 
@@ -5196,6 +5256,9 @@ export const TokenTransactionWithStatus: MessageFns<TokenTransactionWithStatus>
5196
5256
  if (message.confirmationMetadata !== undefined) {
5197
5257
  obj.confirmationMetadata = TokenTransactionConfirmationMetadata.toJSON(message.confirmationMetadata);
5198
5258
  }
5259
+ if (message.tokenTransactionHash.length !== 0) {
5260
+ obj.tokenTransactionHash = base64FromBytes(message.tokenTransactionHash);
5261
+ }
5199
5262
  return obj;
5200
5263
  },
5201
5264
 
@@ -5211,6 +5274,7 @@ export const TokenTransactionWithStatus: MessageFns<TokenTransactionWithStatus>
5211
5274
  message.confirmationMetadata = (object.confirmationMetadata !== undefined && object.confirmationMetadata !== null)
5212
5275
  ? TokenTransactionConfirmationMetadata.fromPartial(object.confirmationMetadata)
5213
5276
  : undefined;
5277
+ message.tokenTransactionHash = object.tokenTransactionHash ?? new Uint8Array(0);
5214
5278
  return message;
5215
5279
  },
5216
5280
  };
@@ -10842,7 +10906,7 @@ export const RequestedSigningCommitments_SigningNonceCommitmentsEntry: MessageFn
10842
10906
  };
10843
10907
 
10844
10908
  function createBaseGetSigningCommitmentsRequest(): GetSigningCommitmentsRequest {
10845
- return { nodeIds: [] };
10909
+ return { nodeIds: [], count: 0 };
10846
10910
  }
10847
10911
 
10848
10912
  export const GetSigningCommitmentsRequest: MessageFns<GetSigningCommitmentsRequest> = {
@@ -10850,6 +10914,9 @@ export const GetSigningCommitmentsRequest: MessageFns<GetSigningCommitmentsReque
10850
10914
  for (const v of message.nodeIds) {
10851
10915
  writer.uint32(10).string(v!);
10852
10916
  }
10917
+ if (message.count !== 0) {
10918
+ writer.uint32(16).uint32(message.count);
10919
+ }
10853
10920
  return writer;
10854
10921
  },
10855
10922
 
@@ -10868,6 +10935,14 @@ export const GetSigningCommitmentsRequest: MessageFns<GetSigningCommitmentsReque
10868
10935
  message.nodeIds.push(reader.string());
10869
10936
  continue;
10870
10937
  }
10938
+ case 2: {
10939
+ if (tag !== 16) {
10940
+ break;
10941
+ }
10942
+
10943
+ message.count = reader.uint32();
10944
+ continue;
10945
+ }
10871
10946
  }
10872
10947
  if ((tag & 7) === 4 || tag === 0) {
10873
10948
  break;
@@ -10880,6 +10955,7 @@ export const GetSigningCommitmentsRequest: MessageFns<GetSigningCommitmentsReque
10880
10955
  fromJSON(object: any): GetSigningCommitmentsRequest {
10881
10956
  return {
10882
10957
  nodeIds: globalThis.Array.isArray(object?.nodeIds) ? object.nodeIds.map((e: any) => globalThis.String(e)) : [],
10958
+ count: isSet(object.count) ? globalThis.Number(object.count) : 0,
10883
10959
  };
10884
10960
  },
10885
10961
 
@@ -10888,6 +10964,9 @@ export const GetSigningCommitmentsRequest: MessageFns<GetSigningCommitmentsReque
10888
10964
  if (message.nodeIds?.length) {
10889
10965
  obj.nodeIds = message.nodeIds;
10890
10966
  }
10967
+ if (message.count !== 0) {
10968
+ obj.count = Math.round(message.count);
10969
+ }
10891
10970
  return obj;
10892
10971
  },
10893
10972
 
@@ -10897,6 +10976,7 @@ export const GetSigningCommitmentsRequest: MessageFns<GetSigningCommitmentsReque
10897
10976
  fromPartial(object: DeepPartial<GetSigningCommitmentsRequest>): GetSigningCommitmentsRequest {
10898
10977
  const message = createBaseGetSigningCommitmentsRequest();
10899
10978
  message.nodeIds = object.nodeIds?.map((e) => e) || [];
10979
+ message.count = object.count ?? 0;
10900
10980
  return message;
10901
10981
  },
10902
10982
  };
@@ -14979,7 +15059,7 @@ export const QueryUnusedDepositAddressesRequest: MessageFns<QueryUnusedDepositAd
14979
15059
  };
14980
15060
 
14981
15061
  function createBaseQueryStaticDepositAddressesRequest(): QueryStaticDepositAddressesRequest {
14982
- return { identityPublicKey: new Uint8Array(0), network: 0, limit: 0, offset: 0 };
15062
+ return { identityPublicKey: new Uint8Array(0), network: 0, limit: 0, offset: 0, depositAddress: undefined };
14983
15063
  }
14984
15064
 
14985
15065
  export const QueryStaticDepositAddressesRequest: MessageFns<QueryStaticDepositAddressesRequest> = {
@@ -14996,6 +15076,9 @@ export const QueryStaticDepositAddressesRequest: MessageFns<QueryStaticDepositAd
14996
15076
  if (message.offset !== 0) {
14997
15077
  writer.uint32(40).int64(message.offset);
14998
15078
  }
15079
+ if (message.depositAddress !== undefined) {
15080
+ writer.uint32(50).string(message.depositAddress);
15081
+ }
14999
15082
  return writer;
15000
15083
  },
15001
15084
 
@@ -15038,6 +15121,14 @@ export const QueryStaticDepositAddressesRequest: MessageFns<QueryStaticDepositAd
15038
15121
  message.offset = longToNumber(reader.int64());
15039
15122
  continue;
15040
15123
  }
15124
+ case 6: {
15125
+ if (tag !== 50) {
15126
+ break;
15127
+ }
15128
+
15129
+ message.depositAddress = reader.string();
15130
+ continue;
15131
+ }
15041
15132
  }
15042
15133
  if ((tag & 7) === 4 || tag === 0) {
15043
15134
  break;
@@ -15055,6 +15146,7 @@ export const QueryStaticDepositAddressesRequest: MessageFns<QueryStaticDepositAd
15055
15146
  network: isSet(object.network) ? networkFromJSON(object.network) : 0,
15056
15147
  limit: isSet(object.limit) ? globalThis.Number(object.limit) : 0,
15057
15148
  offset: isSet(object.offset) ? globalThis.Number(object.offset) : 0,
15149
+ depositAddress: isSet(object.depositAddress) ? globalThis.String(object.depositAddress) : undefined,
15058
15150
  };
15059
15151
  },
15060
15152
 
@@ -15072,6 +15164,9 @@ export const QueryStaticDepositAddressesRequest: MessageFns<QueryStaticDepositAd
15072
15164
  if (message.offset !== 0) {
15073
15165
  obj.offset = Math.round(message.offset);
15074
15166
  }
15167
+ if (message.depositAddress !== undefined) {
15168
+ obj.depositAddress = message.depositAddress;
15169
+ }
15075
15170
  return obj;
15076
15171
  },
15077
15172
 
@@ -15084,6 +15179,7 @@ export const QueryStaticDepositAddressesRequest: MessageFns<QueryStaticDepositAd
15084
15179
  message.network = object.network ?? 0;
15085
15180
  message.limit = object.limit ?? 0;
15086
15181
  message.offset = object.offset ?? 0;
15182
+ message.depositAddress = object.depositAddress ?? undefined;
15087
15183
  return message;
15088
15184
  },
15089
15185
  };
@@ -15787,6 +15883,187 @@ export const PaymentIntentFields: MessageFns<PaymentIntentFields> = {
15787
15883
  },
15788
15884
  };
15789
15885
 
15886
+ function createBaseInitiateStaticDepositUtxoRefundRequest(): InitiateStaticDepositUtxoRefundRequest {
15887
+ return { onChainUtxo: undefined, refundTxSigningJob: undefined, userSignature: new Uint8Array(0) };
15888
+ }
15889
+
15890
+ export const InitiateStaticDepositUtxoRefundRequest: MessageFns<InitiateStaticDepositUtxoRefundRequest> = {
15891
+ encode(message: InitiateStaticDepositUtxoRefundRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
15892
+ if (message.onChainUtxo !== undefined) {
15893
+ UTXO.encode(message.onChainUtxo, writer.uint32(10).fork()).join();
15894
+ }
15895
+ if (message.refundTxSigningJob !== undefined) {
15896
+ SigningJob.encode(message.refundTxSigningJob, writer.uint32(26).fork()).join();
15897
+ }
15898
+ if (message.userSignature.length !== 0) {
15899
+ writer.uint32(34).bytes(message.userSignature);
15900
+ }
15901
+ return writer;
15902
+ },
15903
+
15904
+ decode(input: BinaryReader | Uint8Array, length?: number): InitiateStaticDepositUtxoRefundRequest {
15905
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
15906
+ const end = length === undefined ? reader.len : reader.pos + length;
15907
+ const message = createBaseInitiateStaticDepositUtxoRefundRequest();
15908
+ while (reader.pos < end) {
15909
+ const tag = reader.uint32();
15910
+ switch (tag >>> 3) {
15911
+ case 1: {
15912
+ if (tag !== 10) {
15913
+ break;
15914
+ }
15915
+
15916
+ message.onChainUtxo = UTXO.decode(reader, reader.uint32());
15917
+ continue;
15918
+ }
15919
+ case 3: {
15920
+ if (tag !== 26) {
15921
+ break;
15922
+ }
15923
+
15924
+ message.refundTxSigningJob = SigningJob.decode(reader, reader.uint32());
15925
+ continue;
15926
+ }
15927
+ case 4: {
15928
+ if (tag !== 34) {
15929
+ break;
15930
+ }
15931
+
15932
+ message.userSignature = reader.bytes();
15933
+ continue;
15934
+ }
15935
+ }
15936
+ if ((tag & 7) === 4 || tag === 0) {
15937
+ break;
15938
+ }
15939
+ reader.skip(tag & 7);
15940
+ }
15941
+ return message;
15942
+ },
15943
+
15944
+ fromJSON(object: any): InitiateStaticDepositUtxoRefundRequest {
15945
+ return {
15946
+ onChainUtxo: isSet(object.onChainUtxo) ? UTXO.fromJSON(object.onChainUtxo) : undefined,
15947
+ refundTxSigningJob: isSet(object.refundTxSigningJob) ? SigningJob.fromJSON(object.refundTxSigningJob) : undefined,
15948
+ userSignature: isSet(object.userSignature) ? bytesFromBase64(object.userSignature) : new Uint8Array(0),
15949
+ };
15950
+ },
15951
+
15952
+ toJSON(message: InitiateStaticDepositUtxoRefundRequest): unknown {
15953
+ const obj: any = {};
15954
+ if (message.onChainUtxo !== undefined) {
15955
+ obj.onChainUtxo = UTXO.toJSON(message.onChainUtxo);
15956
+ }
15957
+ if (message.refundTxSigningJob !== undefined) {
15958
+ obj.refundTxSigningJob = SigningJob.toJSON(message.refundTxSigningJob);
15959
+ }
15960
+ if (message.userSignature.length !== 0) {
15961
+ obj.userSignature = base64FromBytes(message.userSignature);
15962
+ }
15963
+ return obj;
15964
+ },
15965
+
15966
+ create(base?: DeepPartial<InitiateStaticDepositUtxoRefundRequest>): InitiateStaticDepositUtxoRefundRequest {
15967
+ return InitiateStaticDepositUtxoRefundRequest.fromPartial(base ?? {});
15968
+ },
15969
+ fromPartial(object: DeepPartial<InitiateStaticDepositUtxoRefundRequest>): InitiateStaticDepositUtxoRefundRequest {
15970
+ const message = createBaseInitiateStaticDepositUtxoRefundRequest();
15971
+ message.onChainUtxo = (object.onChainUtxo !== undefined && object.onChainUtxo !== null)
15972
+ ? UTXO.fromPartial(object.onChainUtxo)
15973
+ : undefined;
15974
+ message.refundTxSigningJob = (object.refundTxSigningJob !== undefined && object.refundTxSigningJob !== null)
15975
+ ? SigningJob.fromPartial(object.refundTxSigningJob)
15976
+ : undefined;
15977
+ message.userSignature = object.userSignature ?? new Uint8Array(0);
15978
+ return message;
15979
+ },
15980
+ };
15981
+
15982
+ function createBaseInitiateStaticDepositUtxoRefundResponse(): InitiateStaticDepositUtxoRefundResponse {
15983
+ return { refundTxSigningResult: undefined, depositAddress: undefined };
15984
+ }
15985
+
15986
+ export const InitiateStaticDepositUtxoRefundResponse: MessageFns<InitiateStaticDepositUtxoRefundResponse> = {
15987
+ encode(message: InitiateStaticDepositUtxoRefundResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
15988
+ if (message.refundTxSigningResult !== undefined) {
15989
+ SigningResult.encode(message.refundTxSigningResult, writer.uint32(10).fork()).join();
15990
+ }
15991
+ if (message.depositAddress !== undefined) {
15992
+ DepositAddressQueryResult.encode(message.depositAddress, writer.uint32(18).fork()).join();
15993
+ }
15994
+ return writer;
15995
+ },
15996
+
15997
+ decode(input: BinaryReader | Uint8Array, length?: number): InitiateStaticDepositUtxoRefundResponse {
15998
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
15999
+ const end = length === undefined ? reader.len : reader.pos + length;
16000
+ const message = createBaseInitiateStaticDepositUtxoRefundResponse();
16001
+ while (reader.pos < end) {
16002
+ const tag = reader.uint32();
16003
+ switch (tag >>> 3) {
16004
+ case 1: {
16005
+ if (tag !== 10) {
16006
+ break;
16007
+ }
16008
+
16009
+ message.refundTxSigningResult = SigningResult.decode(reader, reader.uint32());
16010
+ continue;
16011
+ }
16012
+ case 2: {
16013
+ if (tag !== 18) {
16014
+ break;
16015
+ }
16016
+
16017
+ message.depositAddress = DepositAddressQueryResult.decode(reader, reader.uint32());
16018
+ continue;
16019
+ }
16020
+ }
16021
+ if ((tag & 7) === 4 || tag === 0) {
16022
+ break;
16023
+ }
16024
+ reader.skip(tag & 7);
16025
+ }
16026
+ return message;
16027
+ },
16028
+
16029
+ fromJSON(object: any): InitiateStaticDepositUtxoRefundResponse {
16030
+ return {
16031
+ refundTxSigningResult: isSet(object.refundTxSigningResult)
16032
+ ? SigningResult.fromJSON(object.refundTxSigningResult)
16033
+ : undefined,
16034
+ depositAddress: isSet(object.depositAddress)
16035
+ ? DepositAddressQueryResult.fromJSON(object.depositAddress)
16036
+ : undefined,
16037
+ };
16038
+ },
16039
+
16040
+ toJSON(message: InitiateStaticDepositUtxoRefundResponse): unknown {
16041
+ const obj: any = {};
16042
+ if (message.refundTxSigningResult !== undefined) {
16043
+ obj.refundTxSigningResult = SigningResult.toJSON(message.refundTxSigningResult);
16044
+ }
16045
+ if (message.depositAddress !== undefined) {
16046
+ obj.depositAddress = DepositAddressQueryResult.toJSON(message.depositAddress);
16047
+ }
16048
+ return obj;
16049
+ },
16050
+
16051
+ create(base?: DeepPartial<InitiateStaticDepositUtxoRefundResponse>): InitiateStaticDepositUtxoRefundResponse {
16052
+ return InitiateStaticDepositUtxoRefundResponse.fromPartial(base ?? {});
16053
+ },
16054
+ fromPartial(object: DeepPartial<InitiateStaticDepositUtxoRefundResponse>): InitiateStaticDepositUtxoRefundResponse {
16055
+ const message = createBaseInitiateStaticDepositUtxoRefundResponse();
16056
+ message.refundTxSigningResult =
16057
+ (object.refundTxSigningResult !== undefined && object.refundTxSigningResult !== null)
16058
+ ? SigningResult.fromPartial(object.refundTxSigningResult)
16059
+ : undefined;
16060
+ message.depositAddress = (object.depositAddress !== undefined && object.depositAddress !== null)
16061
+ ? DepositAddressQueryResult.fromPartial(object.depositAddress)
16062
+ : undefined;
16063
+ return message;
16064
+ },
16065
+ };
16066
+
15790
16067
  function createBaseInitiateUtxoSwapRequest(): InitiateUtxoSwapRequest {
15791
16068
  return {
15792
16069
  onChainUtxo: undefined,
@@ -17361,6 +17638,14 @@ export const SparkServiceDefinition = {
17361
17638
  responseStream: false,
17362
17639
  options: {},
17363
17640
  },
17641
+ create_tree_v2: {
17642
+ name: "create_tree_v2",
17643
+ requestType: CreateTreeRequest,
17644
+ requestStream: false,
17645
+ responseType: CreateTreeResponse,
17646
+ responseStream: false,
17647
+ options: {},
17648
+ },
17364
17649
  get_signing_operator_list: {
17365
17650
  name: "get_signing_operator_list",
17366
17651
  requestType: Empty,
@@ -17490,7 +17775,28 @@ export const SparkServiceDefinition = {
17490
17775
  responseStream: true,
17491
17776
  options: {},
17492
17777
  },
17493
- /** Claim a deposit to a static address from SSP side */
17778
+ /**
17779
+ * Signs the provided refund transaction which spends the UTXO from a static
17780
+ * deposit address. If successful, the UTXO will no longer be available to claim on
17781
+ * the Spark network, and the refund transaction must be broadcasted on L1 to claim
17782
+ * the funds. Returns an error if the UTXO has already been claimed.
17783
+ */
17784
+ initiate_static_deposit_utxo_refund: {
17785
+ name: "initiate_static_deposit_utxo_refund",
17786
+ requestType: InitiateStaticDepositUtxoRefundRequest,
17787
+ requestStream: false,
17788
+ responseType: InitiateStaticDepositUtxoRefundResponse,
17789
+ responseStream: false,
17790
+ options: {},
17791
+ },
17792
+ /**
17793
+ * DEPRECATED: This unified method is being split for better clarity and type safety
17794
+ *
17795
+ * For swap operations: Use spark_ssp_internal.initiate_static_deposit_utxo_swap()
17796
+ * For refund operations: Use initiate_static_deposit_utxo_refund()
17797
+ *
17798
+ * @deprecated
17799
+ */
17494
17800
  initiate_utxo_swap: {
17495
17801
  name: "initiate_utxo_swap",
17496
17802
  requestType: InitiateUtxoSwapRequest,
@@ -17630,6 +17936,10 @@ export interface SparkServiceImplementation<CallContextExt = {}> {
17630
17936
  request: CreateTreeRequest,
17631
17937
  context: CallContext & CallContextExt,
17632
17938
  ): Promise<DeepPartial<CreateTreeResponse>>;
17939
+ create_tree_v2(
17940
+ request: CreateTreeRequest,
17941
+ context: CallContext & CallContextExt,
17942
+ ): Promise<DeepPartial<CreateTreeResponse>>;
17633
17943
  get_signing_operator_list(
17634
17944
  request: Empty,
17635
17945
  context: CallContext & CallContextExt,
@@ -17695,7 +18005,24 @@ export interface SparkServiceImplementation<CallContextExt = {}> {
17695
18005
  request: SubscribeToEventsRequest,
17696
18006
  context: CallContext & CallContextExt,
17697
18007
  ): ServerStreamingMethodResult<DeepPartial<SubscribeToEventsResponse>>;
17698
- /** Claim a deposit to a static address from SSP side */
18008
+ /**
18009
+ * Signs the provided refund transaction which spends the UTXO from a static
18010
+ * deposit address. If successful, the UTXO will no longer be available to claim on
18011
+ * the Spark network, and the refund transaction must be broadcasted on L1 to claim
18012
+ * the funds. Returns an error if the UTXO has already been claimed.
18013
+ */
18014
+ initiate_static_deposit_utxo_refund(
18015
+ request: InitiateStaticDepositUtxoRefundRequest,
18016
+ context: CallContext & CallContextExt,
18017
+ ): Promise<DeepPartial<InitiateStaticDepositUtxoRefundResponse>>;
18018
+ /**
18019
+ * DEPRECATED: This unified method is being split for better clarity and type safety
18020
+ *
18021
+ * For swap operations: Use spark_ssp_internal.initiate_static_deposit_utxo_swap()
18022
+ * For refund operations: Use initiate_static_deposit_utxo_refund()
18023
+ *
18024
+ * @deprecated
18025
+ */
17699
18026
  initiate_utxo_swap(
17700
18027
  request: InitiateUtxoSwapRequest,
17701
18028
  context: CallContext & CallContextExt,
@@ -17826,6 +18153,10 @@ export interface SparkServiceClient<CallOptionsExt = {}> {
17826
18153
  request: DeepPartial<CreateTreeRequest>,
17827
18154
  options?: CallOptions & CallOptionsExt,
17828
18155
  ): Promise<CreateTreeResponse>;
18156
+ create_tree_v2(
18157
+ request: DeepPartial<CreateTreeRequest>,
18158
+ options?: CallOptions & CallOptionsExt,
18159
+ ): Promise<CreateTreeResponse>;
17829
18160
  get_signing_operator_list(
17830
18161
  request: DeepPartial<Empty>,
17831
18162
  options?: CallOptions & CallOptionsExt,
@@ -17891,7 +18222,24 @@ export interface SparkServiceClient<CallOptionsExt = {}> {
17891
18222
  request: DeepPartial<SubscribeToEventsRequest>,
17892
18223
  options?: CallOptions & CallOptionsExt,
17893
18224
  ): AsyncIterable<SubscribeToEventsResponse>;
17894
- /** Claim a deposit to a static address from SSP side */
18225
+ /**
18226
+ * Signs the provided refund transaction which spends the UTXO from a static
18227
+ * deposit address. If successful, the UTXO will no longer be available to claim on
18228
+ * the Spark network, and the refund transaction must be broadcasted on L1 to claim
18229
+ * the funds. Returns an error if the UTXO has already been claimed.
18230
+ */
18231
+ initiate_static_deposit_utxo_refund(
18232
+ request: DeepPartial<InitiateStaticDepositUtxoRefundRequest>,
18233
+ options?: CallOptions & CallOptionsExt,
18234
+ ): Promise<InitiateStaticDepositUtxoRefundResponse>;
18235
+ /**
18236
+ * DEPRECATED: This unified method is being split for better clarity and type safety
18237
+ *
18238
+ * For swap operations: Use spark_ssp_internal.initiate_static_deposit_utxo_swap()
18239
+ * For refund operations: Use initiate_static_deposit_utxo_refund()
18240
+ *
18241
+ * @deprecated
18242
+ */
17895
18243
  initiate_utxo_swap(
17896
18244
  request: DeepPartial<InitiateUtxoSwapRequest>,
17897
18245
  options?: CallOptions & CallOptionsExt,