@buildonspark/spark-sdk 0.0.9 → 0.0.11

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 (82) hide show
  1. package/dist/services/config.d.ts +20 -16
  2. package/dist/services/config.js +26 -18
  3. package/dist/services/config.js.map +1 -1
  4. package/dist/services/connection.js +1 -1
  5. package/dist/services/connection.js.map +1 -1
  6. package/dist/services/deposit.js +2 -2
  7. package/dist/services/deposit.js.map +1 -1
  8. package/dist/services/lightning.js +4 -4
  9. package/dist/services/lightning.js.map +1 -1
  10. package/dist/services/token-transactions.js +8 -7
  11. package/dist/services/token-transactions.js.map +1 -1
  12. package/dist/services/transfer.js +12 -10
  13. package/dist/services/transfer.js.map +1 -1
  14. package/dist/spark-sdk.d.ts +2 -3
  15. package/dist/spark-sdk.js +2 -7
  16. package/dist/spark-sdk.js.map +1 -1
  17. package/dist/tests/coop-exit.test.js +8 -5
  18. package/dist/tests/coop-exit.test.js.map +1 -1
  19. package/dist/tests/deposit.test.js +8 -10
  20. package/dist/tests/deposit.test.js.map +1 -1
  21. package/dist/tests/keys.test.js +0 -1
  22. package/dist/tests/keys.test.js.map +1 -1
  23. package/dist/tests/lightning.test.js +10 -7
  24. package/dist/tests/lightning.test.js.map +1 -1
  25. package/dist/tests/swap.test.js +8 -5
  26. package/dist/tests/swap.test.js.map +1 -1
  27. package/dist/tests/test-util.d.ts +8 -44
  28. package/dist/tests/test-util.js +10 -7
  29. package/dist/tests/test-util.js.map +1 -1
  30. package/dist/tests/transfer.test.js +30 -19
  31. package/dist/tests/transfer.test.js.map +1 -1
  32. package/package.json +2 -2
  33. package/dist/LightningSendRequest-CNJFhLVc.d.cts +0 -374
  34. package/dist/LightningSendRequest-CNJFhLVc.d.ts +0 -374
  35. package/dist/auto-bind.d.ts +0 -7
  36. package/dist/auto-bind.js +0 -41
  37. package/dist/auto-bind.js.map +0 -1
  38. package/dist/chunk-5SAJ52IV.js +0 -10309
  39. package/dist/chunk-COXVABEU.js +0 -1524
  40. package/dist/chunk-F4JW24C4.js +0 -78
  41. package/dist/chunk-H4A2WXR3.js +0 -331
  42. package/dist/chunk-HTNOFUHX.js +0 -1547
  43. package/dist/chunk-JQFHUW4I.js +0 -21
  44. package/dist/chunk-K3Y7DVLD.js +0 -19
  45. package/dist/chunk-NDKNVHGP.js +0 -127
  46. package/dist/chunk-PMVJGQCP.js +0 -627
  47. package/dist/chunk-QX3ZJH2S.js +0 -527
  48. package/dist/chunk-SL2YOBVM.js +0 -127
  49. package/dist/chunk-SWCOMKD6.js +0 -333
  50. package/dist/chunk-SWFFNBSR.js +0 -1244
  51. package/dist/chunk-WLK5POBV.js +0 -527
  52. package/dist/chunk-WZ74TD7N.js +0 -660
  53. package/dist/chunk-WZYVI3M3.js +0 -1244
  54. package/dist/chunk-ZGU3XW7W.js +0 -78
  55. package/dist/connection-BgWj7Hnd.d.cts +0 -77
  56. package/dist/connection-BgbVJtzh.d.ts +0 -77
  57. package/dist/connection-DX-9yFl8.d.ts +0 -77
  58. package/dist/connection-hITj9Mgk.d.cts +0 -77
  59. package/dist/graphql/objects/index.cjs +0 -626
  60. package/dist/graphql/objects/index.d.cts +0 -140
  61. package/dist/index.cjs +0 -17202
  62. package/dist/index.d.cts +0 -413
  63. package/dist/index.d.ts +0 -413
  64. package/dist/index.js +0 -3390
  65. package/dist/proto/spark.cjs +0 -10451
  66. package/dist/proto/spark.d.cts +0 -3
  67. package/dist/services/index.cjs +0 -12503
  68. package/dist/services/index.d.cts +0 -23
  69. package/dist/services/index.d.ts +0 -23
  70. package/dist/services/index.js +0 -17
  71. package/dist/signer/signer.cjs +0 -894
  72. package/dist/signer/signer.d.cts +0 -5
  73. package/dist/signer-BaC_ZP1g.d.ts +0 -138
  74. package/dist/signer-C6h1OnSQ.d.cts +0 -138
  75. package/dist/signer-CO4owhHI.d.ts +0 -154
  76. package/dist/signer-DDkpXvNZ.d.cts +0 -154
  77. package/dist/spark-BUTdOtMz.d.cts +0 -1170
  78. package/dist/spark-BUTdOtMz.d.ts +0 -1170
  79. package/dist/tests/test-util.cjs +0 -12269
  80. package/dist/tests/test-util.d.cts +0 -90
  81. package/dist/utils/index.cjs +0 -1825
  82. package/dist/utils/index.d.cts +0 -280
@@ -1,1825 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod2, isNodeMode, target) => (target = mod2 != null ? __create(__getProtoOf(mod2)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod2 || !mod2.__esModule ? __defProp(target, "default", { value: mod2, enumerable: true }) : target,
26
- mod2
27
- ));
28
- var __toCommonJS = (mod2) => __copyProps(__defProp({}, "__esModule", { value: true }), mod2);
29
-
30
- // src/utils/index.ts
31
- var utils_exports = {};
32
- __export(utils_exports, {
33
- Network: () => Network2,
34
- NetworkToProto: () => NetworkToProto,
35
- addPrivateKeys: () => addPrivateKeys,
36
- addPublicKeys: () => addPublicKeys,
37
- aggregateFrost: () => aggregateFrost,
38
- applyAdaptorToSignature: () => applyAdaptorToSignature,
39
- applyAdditiveTweakToPublicKey: () => applyAdditiveTweakToPublicKey,
40
- bigIntToPrivateKey: () => bigIntToPrivateKey,
41
- computeTaprootKeyNoScript: () => computeTaprootKeyNoScript,
42
- computerLagrangeCoefficients: () => computerLagrangeCoefficients,
43
- constructNodeTx: () => constructNodeTx,
44
- constructRefundTx: () => constructRefundTx,
45
- constructSplitTx: () => constructSplitTx,
46
- createDummyTx: () => createDummyTx,
47
- createRefundTx: () => createRefundTx,
48
- createSigningCommitment: () => createSigningCommitment,
49
- createSigningNonce: () => createSigningNonce,
50
- createWasmSigningCommitment: () => createWasmSigningCommitment,
51
- createWasmSigningNonce: () => createWasmSigningNonce,
52
- decodeBytesToSigningCommitment: () => decodeBytesToSigningCommitment,
53
- decodeBytesToSigningNonce: () => decodeBytesToSigningNonce,
54
- decryptEcies: () => decryptEcies,
55
- encodeSigningCommitmentToBytes: () => encodeSigningCommitmentToBytes,
56
- encodeSigningNonceToBytes: () => encodeSigningNonceToBytes,
57
- encryptEcies: () => encryptEcies,
58
- evaluatePolynomial: () => evaluatePolynomial,
59
- fieldDiv: () => fieldDiv,
60
- generateAdaptorFromSignature: () => generateAdaptorFromSignature,
61
- generatePolynomialForSecretSharing: () => generatePolynomialForSecretSharing,
62
- generateSignatureFromExistingAdaptor: () => generateSignatureFromExistingAdaptor,
63
- getEphemeralAnchorOutput: () => getEphemeralAnchorOutput,
64
- getNetwork: () => getNetwork,
65
- getNextTransactionSequence: () => getNextTransactionSequence,
66
- getP2TRAddressFromPkScript: () => getP2TRAddressFromPkScript,
67
- getP2TRAddressFromPublicKey: () => getP2TRAddressFromPublicKey,
68
- getP2TRScriptFromPublicKey: () => getP2TRScriptFromPublicKey,
69
- getRandomBigInt: () => getRandomBigInt,
70
- getRandomSigningNonce: () => getRandomSigningNonce,
71
- getSigHashFromTx: () => getSigHashFromTx,
72
- getSigningCommitmentFromNonce: () => getSigningCommitmentFromNonce,
73
- getTxFromRawTxBytes: () => getTxFromRawTxBytes,
74
- getTxFromRawTxHex: () => getTxFromRawTxHex,
75
- getTxId: () => getTxId,
76
- getTxIdNoReverse: () => getTxIdNoReverse,
77
- initWasm: () => initWasm,
78
- lastKeyWithTarget: () => lastKeyWithTarget,
79
- modInverse: () => modInverse,
80
- proofOfPossessionMessageHashForDepositAddress: () => proofOfPossessionMessageHashForDepositAddress,
81
- recoverSecret: () => recoverSecret,
82
- signFrost: () => signFrost,
83
- splitSecret: () => splitSecret,
84
- splitSecretWithProofs: () => splitSecretWithProofs,
85
- subtractPrivateKeys: () => subtractPrivateKeys,
86
- subtractPublicKeys: () => subtractPublicKeys,
87
- sumOfPrivateKeys: () => sumOfPrivateKeys,
88
- validateOutboundAdaptorSignature: () => validateOutboundAdaptorSignature,
89
- validateResponses: () => validateResponses,
90
- validateShare: () => validateShare
91
- });
92
- module.exports = __toCommonJS(utils_exports);
93
-
94
- // src/utils/adaptor-signature.ts
95
- var import_modular = require("@noble/curves/abstract/modular");
96
- var import_utils = require("@noble/curves/abstract/utils");
97
- var import_secp256k1 = require("@noble/curves/secp256k1");
98
- function generateSignatureFromExistingAdaptor(signature, adaptorPrivateKeyBytes) {
99
- const { r, s } = parseSignature(signature);
100
- const sBigInt = (0, import_utils.bytesToNumberBE)(s);
101
- const tBigInt = (0, import_utils.bytesToNumberBE)(adaptorPrivateKeyBytes);
102
- const newS = (0, import_modular.mod)(sBigInt - tBigInt, import_secp256k1.secp256k1.CURVE.n);
103
- const newSignature = new Uint8Array([...r, ...(0, import_utils.numberToBytesBE)(newS, 32)]);
104
- return newSignature;
105
- }
106
- function generateAdaptorFromSignature(signature) {
107
- const adaptorPrivateKey = import_secp256k1.secp256k1.utils.randomPrivateKey();
108
- const { r, s } = parseSignature(signature);
109
- const sBigInt = (0, import_utils.bytesToNumberBE)(s);
110
- const tBigInt = (0, import_utils.bytesToNumberBE)(adaptorPrivateKey);
111
- const newS = (0, import_modular.mod)(sBigInt - tBigInt, import_secp256k1.secp256k1.CURVE.n);
112
- const newSignature = new Uint8Array([...r, ...(0, import_utils.numberToBytesBE)(newS, 32)]);
113
- return {
114
- adaptorSignature: newSignature,
115
- adaptorPrivateKey
116
- };
117
- }
118
- function validateOutboundAdaptorSignature(pubkey, hash, signature, adaptorPubkey) {
119
- return schnorrVerifyWithAdaptor(
120
- signature,
121
- hash,
122
- pubkey,
123
- adaptorPubkey,
124
- false
125
- );
126
- }
127
- function applyAdaptorToSignature(pubkey, hash, signature, adaptorPrivateKeyBytes) {
128
- const { r, s } = parseSignature(signature);
129
- const sBigInt = (0, import_utils.bytesToNumberBE)(s);
130
- const adaptorPrivateKey = (0, import_utils.bytesToNumberBE)(adaptorPrivateKeyBytes);
131
- const newS = (0, import_modular.mod)(sBigInt + adaptorPrivateKey, import_secp256k1.secp256k1.CURVE.n);
132
- const newSig = new Uint8Array([...r, ...(0, import_utils.numberToBytesBE)(newS, 32)]);
133
- if (import_secp256k1.schnorr.verify(newSig, hash, pubkey)) {
134
- return newSig;
135
- }
136
- const altS = (0, import_modular.mod)(sBigInt - adaptorPrivateKey, import_secp256k1.secp256k1.CURVE.n);
137
- const altSig = new Uint8Array([...r, ...(0, import_utils.numberToBytesBE)(altS, 32)]);
138
- if (import_secp256k1.schnorr.verify(altSig, hash, pubkey)) {
139
- return altSig;
140
- }
141
- throw new Error("Cannot apply adaptor to signature");
142
- }
143
- function schnorrVerifyWithAdaptor(signature, hash, pubKeyBytes, adaptorPubkey, inbound) {
144
- if (hash.length !== 32) {
145
- throw new Error(`wrong size for message (got ${hash.length}, want 32)`);
146
- }
147
- const pubKey = import_secp256k1.schnorr.utils.lift_x((0, import_utils.bytesToNumberBE)(pubKeyBytes));
148
- pubKey.assertValidity();
149
- const { r, s } = parseSignature(signature);
150
- const commitmenet = import_secp256k1.schnorr.utils.taggedHash(
151
- "BIP0340/challenge",
152
- r,
153
- pubKey.toRawBytes().slice(1),
154
- hash
155
- );
156
- if (commitmenet.length > 32) {
157
- throw new Error("hash of (r || P || m) too big");
158
- }
159
- const e = (0, import_modular.mod)((0, import_utils.bytesToNumberBE)(commitmenet), import_secp256k1.secp256k1.CURVE.n);
160
- const negE = (0, import_modular.mod)(-e, import_secp256k1.secp256k1.CURVE.n);
161
- const R = import_secp256k1.secp256k1.ProjectivePoint.BASE.multiplyAndAddUnsafe(
162
- pubKey,
163
- (0, import_utils.bytesToNumberBE)(s),
164
- negE
165
- );
166
- if (!R) {
167
- throw new Error("R is undefined");
168
- }
169
- R.assertValidity();
170
- const adaptorPoint = import_secp256k1.secp256k1.ProjectivePoint.fromHex(adaptorPubkey);
171
- const newR = R.add(adaptorPoint);
172
- if (!inbound && newR.equals(import_secp256k1.secp256k1.ProjectivePoint.ZERO)) {
173
- throw new Error("calculated R point is the point at infinity");
174
- }
175
- newR.assertValidity();
176
- if (!newR.hasEvenY()) {
177
- throw new Error("calculated R y-value is odd");
178
- }
179
- const rNum = (0, import_utils.bytesToNumberBE)(r);
180
- if (newR.toAffine().x !== rNum) {
181
- throw new Error("calculated R point was not given R");
182
- }
183
- return true;
184
- }
185
- function parseSignature(signature) {
186
- if (signature.length < 64) {
187
- throw new Error(`malformed signature: too short: ${signature.length} < 64`);
188
- }
189
- if (signature.length > 64) {
190
- throw new Error(`malformed signature: too long: ${signature.length} > 64`);
191
- }
192
- const r = signature.slice(0, 32);
193
- const s = signature.slice(32, 64);
194
- if ((0, import_utils.bytesToNumberBE)(r) >= import_secp256k1.secp256k1.CURVE.Fp.ORDER) {
195
- throw new Error(`invalid signature: r >= field prime`);
196
- }
197
- if ((0, import_utils.bytesToNumberBE)(s) >= import_secp256k1.secp256k1.CURVE.n) {
198
- throw new Error(`invalid signature: s >= group order`);
199
- }
200
- return { r, s };
201
- }
202
-
203
- // src/utils/bitcoin.ts
204
- var import_utils2 = require("@noble/curves/abstract/utils");
205
- var import_secp256k12 = require("@noble/curves/secp256k1");
206
- var btc2 = __toESM(require("@scure/btc-signer"), 1);
207
- var import_utils3 = require("@scure/btc-signer/utils");
208
-
209
- // src/utils/network.ts
210
- var btc = __toESM(require("@scure/btc-signer"), 1);
211
- var Network2 = /* @__PURE__ */ ((Network4) => {
212
- Network4[Network4["MAINNET"] = 0] = "MAINNET";
213
- Network4[Network4["TESTNET"] = 1] = "TESTNET";
214
- Network4[Network4["SIGNET"] = 2] = "SIGNET";
215
- Network4[Network4["REGTEST"] = 3] = "REGTEST";
216
- Network4[Network4["LOCAL"] = 4] = "LOCAL";
217
- return Network4;
218
- })(Network2 || {});
219
- var NetworkToProto = {
220
- [0 /* MAINNET */]: 0 /* MAINNET */,
221
- [1 /* TESTNET */]: 2 /* TESTNET */,
222
- [2 /* SIGNET */]: 3 /* SIGNET */,
223
- [3 /* REGTEST */]: 1 /* REGTEST */,
224
- [4 /* LOCAL */]: 1 /* REGTEST */
225
- };
226
- var NetworkConfig = {
227
- [0 /* MAINNET */]: btc.NETWORK,
228
- [1 /* TESTNET */]: btc.TEST_NETWORK,
229
- [2 /* SIGNET */]: btc.TEST_NETWORK,
230
- [3 /* REGTEST */]: { ...btc.TEST_NETWORK, bech32: "bcrt" },
231
- [4 /* LOCAL */]: { ...btc.TEST_NETWORK, bech32: "bcrt" }
232
- };
233
- var getNetwork = (network) => NetworkConfig[network];
234
-
235
- // src/utils/bitcoin.ts
236
- function computeTaprootKeyNoScript(pubkey) {
237
- if (pubkey.length !== 32) {
238
- throw new Error("Public key must be 32 bytes");
239
- }
240
- const taggedHash = import_secp256k12.schnorr.utils.taggedHash("TapTweak", pubkey);
241
- const tweak = (0, import_utils2.bytesToNumberBE)(taggedHash);
242
- const P = import_secp256k12.schnorr.utils.lift_x(import_secp256k12.schnorr.utils.bytesToNumberBE(pubkey));
243
- const Q = P.add(import_secp256k12.secp256k1.ProjectivePoint.fromPrivateKey(tweak));
244
- return Q.toRawBytes();
245
- }
246
- function getP2TRScriptFromPublicKey(pubKey, network) {
247
- if (pubKey.length !== 33) {
248
- throw new Error("Public key must be 33 bytes");
249
- }
250
- const internalKey = import_secp256k12.secp256k1.ProjectivePoint.fromHex(pubKey);
251
- const script = btc2.p2tr(
252
- internalKey.toRawBytes().slice(1, 33),
253
- void 0,
254
- getNetwork(network)
255
- ).script;
256
- if (!script) {
257
- throw new Error("Failed to get P2TR address");
258
- }
259
- return script;
260
- }
261
- function getP2TRAddressFromPublicKey(pubKey, network) {
262
- if (pubKey.length !== 33) {
263
- throw new Error("Public key must be 33 bytes");
264
- }
265
- const internalKey = import_secp256k12.secp256k1.ProjectivePoint.fromHex(pubKey);
266
- const address = btc2.p2tr(
267
- internalKey.toRawBytes().slice(1, 33),
268
- void 0,
269
- getNetwork(network)
270
- ).address;
271
- if (!address) {
272
- throw new Error("Failed to get P2TR address");
273
- }
274
- return address;
275
- }
276
- function getP2TRAddressFromPkScript(pkScript, network) {
277
- if (pkScript.length !== 34 || pkScript[0] !== 81 || pkScript[1] !== 32) {
278
- throw new Error("Invalid pkscript");
279
- }
280
- const parsedScript = btc2.OutScript.decode(pkScript);
281
- return btc2.Address(getNetwork(network)).encode(parsedScript);
282
- }
283
- function getTxFromRawTxHex(rawTxHex) {
284
- const txBytes = (0, import_utils2.hexToBytes)(rawTxHex);
285
- const tx = btc2.Transaction.fromRaw(txBytes, {
286
- allowUnknownOutputs: true
287
- });
288
- if (!tx) {
289
- throw new Error("Failed to parse transaction");
290
- }
291
- return tx;
292
- }
293
- function getTxFromRawTxBytes(rawTxBytes) {
294
- const tx = btc2.Transaction.fromRaw(rawTxBytes, {
295
- allowUnknownOutputs: true
296
- });
297
- if (!tx) {
298
- throw new Error("Failed to parse transaction");
299
- }
300
- return tx;
301
- }
302
- function getSigHashFromTx(tx, inputIndex, prevOutput) {
303
- const prevScript = prevOutput.script;
304
- if (!prevScript) {
305
- throw new Error("No script found in prevOutput");
306
- }
307
- const amount = prevOutput.amount;
308
- if (!amount) {
309
- throw new Error("No amount found in prevOutput");
310
- }
311
- return tx.preimageWitnessV1(
312
- inputIndex,
313
- new Array(tx.inputsLength).fill(prevScript),
314
- btc2.SigHash.DEFAULT,
315
- new Array(tx.inputsLength).fill(amount)
316
- );
317
- }
318
- function getTxId(tx) {
319
- return (0, import_utils2.bytesToHex)((0, import_utils3.sha256)((0, import_utils3.sha256)(tx.unsignedTx)).reverse());
320
- }
321
- function getTxIdNoReverse(tx) {
322
- return (0, import_utils2.bytesToHex)((0, import_utils3.sha256)((0, import_utils3.sha256)(tx.unsignedTx)));
323
- }
324
-
325
- // src/utils/keys.ts
326
- var import_secp256k13 = require("@noble/curves/secp256k1");
327
- var import_utils4 = require("@noble/curves/abstract/utils");
328
- function addPublicKeys(a, b) {
329
- if (a.length !== 33 || b.length !== 33) {
330
- throw new Error("Public keys must be 33 bytes");
331
- }
332
- const pubkeyA = import_secp256k13.secp256k1.ProjectivePoint.fromHex(a);
333
- const pubkeyB = import_secp256k13.secp256k1.ProjectivePoint.fromHex(b);
334
- return pubkeyA.add(pubkeyB).toRawBytes(true);
335
- }
336
- function applyAdditiveTweakToPublicKey(pubkey, tweak) {
337
- if (pubkey.length !== 33) {
338
- throw new Error("Public key must be 33 bytes");
339
- }
340
- if (tweak.length !== 32) {
341
- throw new Error("Tweak must be 32 bytes");
342
- }
343
- const pubkeyPoint = import_secp256k13.secp256k1.ProjectivePoint.fromHex(pubkey);
344
- const privTweek = import_secp256k13.secp256k1.utils.normPrivateKeyToScalar(tweak);
345
- const pubTweek = import_secp256k13.secp256k1.getPublicKey(privTweek, true);
346
- const tweekPoint = import_secp256k13.secp256k1.ProjectivePoint.fromHex(pubTweek);
347
- return pubkeyPoint.add(tweekPoint).toRawBytes(true);
348
- }
349
- function subtractPublicKeys(a, b) {
350
- if (a.length !== 33 || b.length !== 33) {
351
- throw new Error("Public keys must be 33 bytes");
352
- }
353
- const pubkeyA = import_secp256k13.secp256k1.ProjectivePoint.fromHex(a);
354
- const pubkeyB = import_secp256k13.secp256k1.ProjectivePoint.fromHex(b);
355
- return pubkeyA.subtract(pubkeyB).toRawBytes(true);
356
- }
357
- function addPrivateKeys(a, b) {
358
- if (a.length !== 32 || b.length !== 32) {
359
- throw new Error("Private keys must be 32 bytes");
360
- }
361
- const privA = import_secp256k13.secp256k1.utils.normPrivateKeyToScalar(a);
362
- const privB = import_secp256k13.secp256k1.utils.normPrivateKeyToScalar(b);
363
- const sum = (privA + privB) % import_secp256k13.secp256k1.CURVE.n;
364
- return (0, import_utils4.numberToBytesBE)(sum, 32);
365
- }
366
- function subtractPrivateKeys(a, b) {
367
- if (a.length !== 32 || b.length !== 32) {
368
- throw new Error("Private keys must be 32 bytes");
369
- }
370
- const privA = import_secp256k13.secp256k1.utils.normPrivateKeyToScalar(a);
371
- const privB = import_secp256k13.secp256k1.utils.normPrivateKeyToScalar(b);
372
- const sum = (import_secp256k13.secp256k1.CURVE.n - privB + privA) % import_secp256k13.secp256k1.CURVE.n;
373
- return (0, import_utils4.numberToBytesBE)(sum, 32);
374
- }
375
- function sumOfPrivateKeys(keys) {
376
- return keys.reduce((sum, key) => {
377
- if (key.length !== 32) {
378
- throw new Error("Private keys must be 32 bytes");
379
- }
380
- return addPrivateKeys(sum, key);
381
- });
382
- }
383
- function lastKeyWithTarget(target, keys) {
384
- if (target.length !== 32) {
385
- throw new Error("Target must be 32 bytes");
386
- }
387
- const sum = sumOfPrivateKeys(keys);
388
- return subtractPrivateKeys(target, sum);
389
- }
390
-
391
- // src/utils/response-validation.ts
392
- function validateResponses(responses) {
393
- const successfulResponses = responses.filter(
394
- (result) => result.status === "fulfilled"
395
- ).map((result) => result.value);
396
- if (successfulResponses.length === 0) {
397
- const errors = responses.filter(
398
- (result) => result.status === "rejected"
399
- ).map((result) => result.reason).join("\n");
400
- throw new Error(
401
- `All requests failed.
402
- Errors:
403
- ${errors}`
404
- );
405
- }
406
- return successfulResponses;
407
- }
408
-
409
- // src/utils/proof.ts
410
- var import_utils5 = require("@scure/btc-signer/utils");
411
- function proofOfPossessionMessageHashForDepositAddress(userPubkey, operatorPubkey, depositAddress) {
412
- const encoder = new TextEncoder();
413
- const depositAddressBytes = encoder.encode(depositAddress);
414
- const proofMsg = new Uint8Array([
415
- ...userPubkey,
416
- ...operatorPubkey,
417
- ...depositAddressBytes
418
- ]);
419
- return (0, import_utils5.sha256)(proofMsg);
420
- }
421
-
422
- // src/utils/secret-sharing.ts
423
- var import_utils6 = require("@noble/curves/abstract/utils");
424
- var import_secp256k14 = require("@noble/curves/secp256k1");
425
-
426
- // src/utils/crypto.ts
427
- var import_crypto = __toESM(require("crypto"), 1);
428
- var getCrypto = () => {
429
- if (typeof window !== "undefined" && window.crypto) {
430
- return window.crypto;
431
- }
432
- if (typeof global !== "undefined" && global.crypto) {
433
- return global.crypto;
434
- }
435
- return import_crypto.default;
436
- };
437
-
438
- // src/utils/secret-sharing.ts
439
- var crypto2 = getCrypto();
440
- function getRandomBigInt(max) {
441
- const byteLength = max.toString(2).length + 7 >> 3;
442
- const maxBigInt = max;
443
- const mask = (1n << BigInt(max.toString(2).length)) - 1n;
444
- while (true) {
445
- const randBytes = crypto2.getRandomValues(new Uint8Array(byteLength + 1));
446
- const randValue = BigInt("0x" + (0, import_utils6.bytesToHex)(randBytes)) & mask;
447
- if (randValue < maxBigInt) {
448
- return randValue;
449
- }
450
- }
451
- }
452
- function modInverse(a, m) {
453
- a = (a % m + m) % m;
454
- let [old_r, r] = [a, m];
455
- let [old_s, s] = [1n, 0n];
456
- let [old_t, t] = [0n, 1n];
457
- while (r !== 0n) {
458
- const quotient = old_r / r;
459
- [old_r, r] = [r, old_r - quotient * r];
460
- [old_s, s] = [s, old_s - quotient * s];
461
- [old_t, t] = [t, old_t - quotient * t];
462
- }
463
- if (old_r !== 1n) {
464
- throw new Error("Modular inverse does not exist");
465
- }
466
- return (old_s % m + m) % m;
467
- }
468
- function evaluatePolynomial(polynomial, x) {
469
- let result = 0n;
470
- for (let i = 0; i < polynomial.coefficients.length; i++) {
471
- const coeff = polynomial.coefficients[i];
472
- if (!coeff) {
473
- throw new Error("Coefficient is undefined");
474
- }
475
- const xPow = x ** BigInt(i) % polynomial.fieldModulus;
476
- result = (result + xPow * coeff) % polynomial.fieldModulus;
477
- }
478
- return result;
479
- }
480
- function fieldDiv(numerator, denominator, fieldModulus) {
481
- if (denominator === 0n) {
482
- throw new Error("Division by zero");
483
- }
484
- const inverse = modInverse(denominator, fieldModulus);
485
- return numerator * inverse % fieldModulus;
486
- }
487
- function computerLagrangeCoefficients(index, points) {
488
- let numerator = 1n;
489
- let denominator = 1n;
490
- let fieldModulus = points[0]?.fieldModulus;
491
- if (!fieldModulus) {
492
- throw new Error("Field modulus is undefined");
493
- }
494
- for (const point of points) {
495
- if (point.index === index) {
496
- continue;
497
- }
498
- numerator = numerator * point.index;
499
- const value = point.index - index;
500
- denominator = denominator * value;
501
- }
502
- return fieldDiv(numerator, denominator, fieldModulus);
503
- }
504
- function generatePolynomialForSecretSharing(fieldModulus, secret, degree) {
505
- const coefficients = new Array(degree);
506
- const proofs = new Array(degree);
507
- coefficients[0] = secret;
508
- proofs[0] = import_secp256k14.secp256k1.ProjectivePoint.fromPrivateKey(secret).toRawBytes(true);
509
- for (let i = 1; i < degree; i++) {
510
- const coefficient = getRandomBigInt(fieldModulus);
511
- coefficients[i] = coefficient;
512
- proofs[i] = import_secp256k14.secp256k1.ProjectivePoint.fromPrivateKey(coefficient).toRawBytes(true);
513
- }
514
- return {
515
- fieldModulus,
516
- coefficients,
517
- proofs
518
- };
519
- }
520
- function splitSecret(fieldModulus, secret, threshold, numberOfShares) {
521
- const polynomial = generatePolynomialForSecretSharing(
522
- fieldModulus,
523
- secret,
524
- threshold
525
- );
526
- const shares = [];
527
- for (let i = 1; i <= numberOfShares; i++) {
528
- const share = evaluatePolynomial(polynomial, BigInt(i));
529
- shares.push({
530
- fieldModulus,
531
- threshold,
532
- index: BigInt(i),
533
- share
534
- });
535
- }
536
- return shares;
537
- }
538
- function splitSecretWithProofs(secret, fieldModulus, threshold, numberOfShares) {
539
- const polynomial = generatePolynomialForSecretSharing(
540
- fieldModulus,
541
- secret,
542
- threshold - 1
543
- );
544
- const shares = [];
545
- for (let i = 1; i <= numberOfShares; i++) {
546
- const share = evaluatePolynomial(polynomial, BigInt(i));
547
- shares.push({
548
- fieldModulus,
549
- threshold,
550
- index: BigInt(i),
551
- share,
552
- proofs: polynomial.proofs
553
- });
554
- }
555
- return shares;
556
- }
557
- function recoverSecret(shares) {
558
- if (shares.length === 0) return 0n;
559
- const threshold = shares[0]?.threshold;
560
- const fieldModulus = shares[0]?.fieldModulus;
561
- if (!threshold || !fieldModulus) {
562
- throw new Error("Shares are not valid");
563
- }
564
- if (shares.length < threshold) {
565
- throw new Error("Not enough shares to recover secret");
566
- }
567
- let result = 0n;
568
- for (const share of shares) {
569
- const coeff = computerLagrangeCoefficients(share.index, shares);
570
- const item = share.share * coeff % fieldModulus;
571
- result = (result + item) % fieldModulus;
572
- }
573
- return result;
574
- }
575
- function validateShare(share) {
576
- const targetPubkey = import_secp256k14.secp256k1.ProjectivePoint.fromPrivateKey(
577
- share.share
578
- ).toRawBytes(true);
579
- let resultPubkey = share.proofs[0];
580
- if (!resultPubkey) {
581
- throw new Error("Result pubkey is not valid");
582
- }
583
- for (let i = 1; i < share.proofs.length; i++) {
584
- const pubkey = share.proofs[i];
585
- if (!pubkey) {
586
- throw new Error("Pubkey is not valid");
587
- }
588
- const value = share.index ** BigInt(i) % share.fieldModulus;
589
- const scaledPoint = import_secp256k14.secp256k1.ProjectivePoint.fromHex(pubkey).multiply(value);
590
- resultPubkey = import_secp256k14.secp256k1.ProjectivePoint.fromHex(resultPubkey).add(scaledPoint).toRawBytes(true);
591
- }
592
- if (!(0, import_utils6.equalBytes)(resultPubkey, targetPubkey)) {
593
- throw new Error("Share is not valid");
594
- }
595
- }
596
- function bigIntToPrivateKey(value) {
597
- const hex = value.toString(16).padStart(64, "0");
598
- const bytes = new Uint8Array(32);
599
- for (let i = 0; i < 32; i++) {
600
- bytes[i] = parseInt(hex.slice(i * 2, i * 2 + 2), 16);
601
- }
602
- return bytes;
603
- }
604
-
605
- // src/utils/signing.ts
606
- var import_secp256k15 = require("@noble/curves/secp256k1");
607
-
608
- // src/wasm/spark_bindings.js
609
- var import_meta = {};
610
- var wasm;
611
- var WASM_VECTOR_LEN = 0;
612
- var cachedUint8ArrayMemory0 = null;
613
- function getUint8ArrayMemory0() {
614
- if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {
615
- cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);
616
- }
617
- return cachedUint8ArrayMemory0;
618
- }
619
- var cachedTextEncoder = typeof TextEncoder !== "undefined" ? new TextEncoder("utf-8") : { encode: () => {
620
- throw Error("TextEncoder not available");
621
- } };
622
- var encodeString = typeof cachedTextEncoder.encodeInto === "function" ? function(arg, view) {
623
- return cachedTextEncoder.encodeInto(arg, view);
624
- } : function(arg, view) {
625
- const buf = cachedTextEncoder.encode(arg);
626
- view.set(buf);
627
- return {
628
- read: arg.length,
629
- written: buf.length
630
- };
631
- };
632
- function passStringToWasm0(arg, malloc, realloc) {
633
- if (realloc === void 0) {
634
- const buf = cachedTextEncoder.encode(arg);
635
- const ptr2 = malloc(buf.length, 1) >>> 0;
636
- getUint8ArrayMemory0().subarray(ptr2, ptr2 + buf.length).set(buf);
637
- WASM_VECTOR_LEN = buf.length;
638
- return ptr2;
639
- }
640
- let len = arg.length;
641
- let ptr = malloc(len, 1) >>> 0;
642
- const mem = getUint8ArrayMemory0();
643
- let offset = 0;
644
- for (; offset < len; offset++) {
645
- const code = arg.charCodeAt(offset);
646
- if (code > 127) break;
647
- mem[ptr + offset] = code;
648
- }
649
- if (offset !== len) {
650
- if (offset !== 0) {
651
- arg = arg.slice(offset);
652
- }
653
- ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;
654
- const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);
655
- const ret = encodeString(arg, view);
656
- offset += ret.written;
657
- ptr = realloc(ptr, len, offset, 1) >>> 0;
658
- }
659
- WASM_VECTOR_LEN = offset;
660
- return ptr;
661
- }
662
- var cachedDataViewMemory0 = null;
663
- function getDataViewMemory0() {
664
- if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || cachedDataViewMemory0.buffer.detached === void 0 && cachedDataViewMemory0.buffer !== wasm.memory.buffer) {
665
- cachedDataViewMemory0 = new DataView(wasm.memory.buffer);
666
- }
667
- return cachedDataViewMemory0;
668
- }
669
- function addToExternrefTable0(obj) {
670
- const idx = wasm.__externref_table_alloc();
671
- wasm.__wbindgen_export_4.set(idx, obj);
672
- return idx;
673
- }
674
- function handleError(f, args) {
675
- try {
676
- return f.apply(this, args);
677
- } catch (e) {
678
- const idx = addToExternrefTable0(e);
679
- wasm.__wbindgen_exn_store(idx);
680
- }
681
- }
682
- var cachedTextDecoder = typeof TextDecoder !== "undefined" ? new TextDecoder("utf-8", { ignoreBOM: true, fatal: true }) : { decode: () => {
683
- throw Error("TextDecoder not available");
684
- } };
685
- if (typeof TextDecoder !== "undefined") {
686
- cachedTextDecoder.decode();
687
- }
688
- function getStringFromWasm0(ptr, len) {
689
- ptr = ptr >>> 0;
690
- return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));
691
- }
692
- function isLikeNone(x) {
693
- return x === void 0 || x === null;
694
- }
695
- function debugString(val) {
696
- const type = typeof val;
697
- if (type == "number" || type == "boolean" || val == null) {
698
- return `${val}`;
699
- }
700
- if (type == "string") {
701
- return `"${val}"`;
702
- }
703
- if (type == "symbol") {
704
- const description = val.description;
705
- if (description == null) {
706
- return "Symbol";
707
- } else {
708
- return `Symbol(${description})`;
709
- }
710
- }
711
- if (type == "function") {
712
- const name = val.name;
713
- if (typeof name == "string" && name.length > 0) {
714
- return `Function(${name})`;
715
- } else {
716
- return "Function";
717
- }
718
- }
719
- if (Array.isArray(val)) {
720
- const length = val.length;
721
- let debug = "[";
722
- if (length > 0) {
723
- debug += debugString(val[0]);
724
- }
725
- for (let i = 1; i < length; i++) {
726
- debug += ", " + debugString(val[i]);
727
- }
728
- debug += "]";
729
- return debug;
730
- }
731
- const builtInMatches = /\[object ([^\]]+)\]/.exec(toString.call(val));
732
- let className;
733
- if (builtInMatches && builtInMatches.length > 1) {
734
- className = builtInMatches[1];
735
- } else {
736
- return toString.call(val);
737
- }
738
- if (className == "Object") {
739
- try {
740
- return "Object(" + JSON.stringify(val) + ")";
741
- } catch (_) {
742
- return "Object";
743
- }
744
- }
745
- if (val instanceof Error) {
746
- return `${val.name}: ${val.message}
747
- ${val.stack}`;
748
- }
749
- return className;
750
- }
751
- function getArrayU8FromWasm0(ptr, len) {
752
- ptr = ptr >>> 0;
753
- return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);
754
- }
755
- function passArray8ToWasm0(arg, malloc) {
756
- const ptr = malloc(arg.length * 1, 1) >>> 0;
757
- getUint8ArrayMemory0().set(arg, ptr / 1);
758
- WASM_VECTOR_LEN = arg.length;
759
- return ptr;
760
- }
761
- function _assertClass(instance, klass) {
762
- if (!(instance instanceof klass)) {
763
- throw new Error(`expected instance of ${klass.name}`);
764
- }
765
- }
766
- function takeFromExternrefTable0(idx) {
767
- const value = wasm.__wbindgen_export_4.get(idx);
768
- wasm.__externref_table_dealloc(idx);
769
- return value;
770
- }
771
- function wasm_sign_frost(msg, key_package, nonce, self_commitment, statechain_commitments, adaptor_public_key) {
772
- const ptr0 = passArray8ToWasm0(msg, wasm.__wbindgen_malloc);
773
- const len0 = WASM_VECTOR_LEN;
774
- _assertClass(key_package, KeyPackage);
775
- var ptr1 = key_package.__destroy_into_raw();
776
- _assertClass(nonce, SigningNonce);
777
- var ptr2 = nonce.__destroy_into_raw();
778
- _assertClass(self_commitment, SigningCommitment2);
779
- var ptr3 = self_commitment.__destroy_into_raw();
780
- var ptr4 = isLikeNone(adaptor_public_key) ? 0 : passArray8ToWasm0(adaptor_public_key, wasm.__wbindgen_malloc);
781
- var len4 = WASM_VECTOR_LEN;
782
- const ret = wasm.wasm_sign_frost(ptr0, len0, ptr1, ptr2, ptr3, statechain_commitments, ptr4, len4);
783
- if (ret[3]) {
784
- throw takeFromExternrefTable0(ret[2]);
785
- }
786
- var v6 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
787
- wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
788
- return v6;
789
- }
790
- function wasm_aggregate_frost(msg, statechain_commitments, self_commitment, statechain_signatures, self_signature, statechain_public_keys, self_public_key, verifying_key, adaptor_public_key) {
791
- const ptr0 = passArray8ToWasm0(msg, wasm.__wbindgen_malloc);
792
- const len0 = WASM_VECTOR_LEN;
793
- _assertClass(self_commitment, SigningCommitment2);
794
- var ptr1 = self_commitment.__destroy_into_raw();
795
- const ptr2 = passArray8ToWasm0(self_signature, wasm.__wbindgen_malloc);
796
- const len2 = WASM_VECTOR_LEN;
797
- const ptr3 = passArray8ToWasm0(self_public_key, wasm.__wbindgen_malloc);
798
- const len3 = WASM_VECTOR_LEN;
799
- const ptr4 = passArray8ToWasm0(verifying_key, wasm.__wbindgen_malloc);
800
- const len4 = WASM_VECTOR_LEN;
801
- var ptr5 = isLikeNone(adaptor_public_key) ? 0 : passArray8ToWasm0(adaptor_public_key, wasm.__wbindgen_malloc);
802
- var len5 = WASM_VECTOR_LEN;
803
- const ret = wasm.wasm_aggregate_frost(ptr0, len0, statechain_commitments, ptr1, statechain_signatures, ptr2, len2, statechain_public_keys, ptr3, len3, ptr4, len4, ptr5, len5);
804
- if (ret[3]) {
805
- throw takeFromExternrefTable0(ret[2]);
806
- }
807
- var v7 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
808
- wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
809
- return v7;
810
- }
811
- function construct_node_tx(tx, vout, address, locktime) {
812
- const ptr0 = passArray8ToWasm0(tx, wasm.__wbindgen_malloc);
813
- const len0 = WASM_VECTOR_LEN;
814
- const ptr1 = passStringToWasm0(address, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
815
- const len1 = WASM_VECTOR_LEN;
816
- const ret = wasm.construct_node_tx(ptr0, len0, vout, ptr1, len1, locktime);
817
- if (ret[2]) {
818
- throw takeFromExternrefTable0(ret[1]);
819
- }
820
- return TransactionResult.__wrap(ret[0]);
821
- }
822
- function construct_refund_tx(tx, vout, pubkey, network, locktime) {
823
- const ptr0 = passArray8ToWasm0(tx, wasm.__wbindgen_malloc);
824
- const len0 = WASM_VECTOR_LEN;
825
- const ptr1 = passArray8ToWasm0(pubkey, wasm.__wbindgen_malloc);
826
- const len1 = WASM_VECTOR_LEN;
827
- const ptr2 = passStringToWasm0(network, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
828
- const len2 = WASM_VECTOR_LEN;
829
- const ret = wasm.construct_refund_tx(ptr0, len0, vout, ptr1, len1, ptr2, len2, locktime);
830
- if (ret[2]) {
831
- throw takeFromExternrefTable0(ret[1]);
832
- }
833
- return TransactionResult.__wrap(ret[0]);
834
- }
835
- function passArrayJsValueToWasm0(array, malloc) {
836
- const ptr = malloc(array.length * 4, 4) >>> 0;
837
- for (let i = 0; i < array.length; i++) {
838
- const add = addToExternrefTable0(array[i]);
839
- getDataViewMemory0().setUint32(ptr + 4 * i, add, true);
840
- }
841
- WASM_VECTOR_LEN = array.length;
842
- return ptr;
843
- }
844
- function construct_split_tx(tx, vout, addresses, locktime) {
845
- const ptr0 = passArray8ToWasm0(tx, wasm.__wbindgen_malloc);
846
- const len0 = WASM_VECTOR_LEN;
847
- const ptr1 = passArrayJsValueToWasm0(addresses, wasm.__wbindgen_malloc);
848
- const len1 = WASM_VECTOR_LEN;
849
- const ret = wasm.construct_split_tx(ptr0, len0, vout, ptr1, len1, locktime);
850
- if (ret[2]) {
851
- throw takeFromExternrefTable0(ret[1]);
852
- }
853
- return TransactionResult.__wrap(ret[0]);
854
- }
855
- function create_dummy_tx(address, amount_sats) {
856
- const ptr0 = passStringToWasm0(address, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
857
- const len0 = WASM_VECTOR_LEN;
858
- const ret = wasm.create_dummy_tx(ptr0, len0, amount_sats);
859
- if (ret[2]) {
860
- throw takeFromExternrefTable0(ret[1]);
861
- }
862
- return DummyTx.__wrap(ret[0]);
863
- }
864
- function encrypt_ecies(msg, public_key_bytes) {
865
- const ptr0 = passArray8ToWasm0(msg, wasm.__wbindgen_malloc);
866
- const len0 = WASM_VECTOR_LEN;
867
- const ptr1 = passArray8ToWasm0(public_key_bytes, wasm.__wbindgen_malloc);
868
- const len1 = WASM_VECTOR_LEN;
869
- const ret = wasm.encrypt_ecies(ptr0, len0, ptr1, len1);
870
- if (ret[3]) {
871
- throw takeFromExternrefTable0(ret[2]);
872
- }
873
- var v3 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
874
- wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
875
- return v3;
876
- }
877
- function decrypt_ecies(encrypted_msg, private_key_bytes) {
878
- const ptr0 = passArray8ToWasm0(encrypted_msg, wasm.__wbindgen_malloc);
879
- const len0 = WASM_VECTOR_LEN;
880
- const ptr1 = passArray8ToWasm0(private_key_bytes, wasm.__wbindgen_malloc);
881
- const len1 = WASM_VECTOR_LEN;
882
- const ret = wasm.decrypt_ecies(ptr0, len0, ptr1, len1);
883
- if (ret[3]) {
884
- throw takeFromExternrefTable0(ret[2]);
885
- }
886
- var v3 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
887
- wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
888
- return v3;
889
- }
890
- var DummyTxFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
891
- }, unregister: () => {
892
- } } : new FinalizationRegistry((ptr) => wasm.__wbg_dummytx_free(ptr >>> 0, 1));
893
- var DummyTx = class _DummyTx {
894
- static __wrap(ptr) {
895
- ptr = ptr >>> 0;
896
- const obj = Object.create(_DummyTx.prototype);
897
- obj.__wbg_ptr = ptr;
898
- DummyTxFinalization.register(obj, obj.__wbg_ptr, obj);
899
- return obj;
900
- }
901
- __destroy_into_raw() {
902
- const ptr = this.__wbg_ptr;
903
- this.__wbg_ptr = 0;
904
- DummyTxFinalization.unregister(this);
905
- return ptr;
906
- }
907
- free() {
908
- const ptr = this.__destroy_into_raw();
909
- wasm.__wbg_dummytx_free(ptr, 0);
910
- }
911
- /**
912
- * @returns {Uint8Array}
913
- */
914
- get tx() {
915
- const ret = wasm.__wbg_get_dummytx_tx(this.__wbg_ptr);
916
- var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
917
- wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
918
- return v1;
919
- }
920
- /**
921
- * @param {Uint8Array} arg0
922
- */
923
- set tx(arg0) {
924
- const ptr0 = passArray8ToWasm0(arg0, wasm.__wbindgen_malloc);
925
- const len0 = WASM_VECTOR_LEN;
926
- wasm.__wbg_set_dummytx_tx(this.__wbg_ptr, ptr0, len0);
927
- }
928
- /**
929
- * @returns {string}
930
- */
931
- get txid() {
932
- let deferred1_0;
933
- let deferred1_1;
934
- try {
935
- const ret = wasm.__wbg_get_dummytx_txid(this.__wbg_ptr);
936
- deferred1_0 = ret[0];
937
- deferred1_1 = ret[1];
938
- return getStringFromWasm0(ret[0], ret[1]);
939
- } finally {
940
- wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
941
- }
942
- }
943
- /**
944
- * @param {string} arg0
945
- */
946
- set txid(arg0) {
947
- const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
948
- const len0 = WASM_VECTOR_LEN;
949
- wasm.__wbg_set_dummytx_txid(this.__wbg_ptr, ptr0, len0);
950
- }
951
- };
952
- var KeyPackageFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
953
- }, unregister: () => {
954
- } } : new FinalizationRegistry((ptr) => wasm.__wbg_keypackage_free(ptr >>> 0, 1));
955
- var KeyPackage = class {
956
- __destroy_into_raw() {
957
- const ptr = this.__wbg_ptr;
958
- this.__wbg_ptr = 0;
959
- KeyPackageFinalization.unregister(this);
960
- return ptr;
961
- }
962
- free() {
963
- const ptr = this.__destroy_into_raw();
964
- wasm.__wbg_keypackage_free(ptr, 0);
965
- }
966
- /**
967
- * @returns {Uint8Array}
968
- */
969
- get secret_key() {
970
- const ret = wasm.__wbg_get_keypackage_secret_key(this.__wbg_ptr);
971
- var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
972
- wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
973
- return v1;
974
- }
975
- /**
976
- * @param {Uint8Array} arg0
977
- */
978
- set secret_key(arg0) {
979
- const ptr0 = passArray8ToWasm0(arg0, wasm.__wbindgen_malloc);
980
- const len0 = WASM_VECTOR_LEN;
981
- wasm.__wbg_set_dummytx_tx(this.__wbg_ptr, ptr0, len0);
982
- }
983
- /**
984
- * @returns {Uint8Array}
985
- */
986
- get public_key() {
987
- const ret = wasm.__wbg_get_keypackage_public_key(this.__wbg_ptr);
988
- var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
989
- wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
990
- return v1;
991
- }
992
- /**
993
- * @param {Uint8Array} arg0
994
- */
995
- set public_key(arg0) {
996
- const ptr0 = passArray8ToWasm0(arg0, wasm.__wbindgen_malloc);
997
- const len0 = WASM_VECTOR_LEN;
998
- wasm.__wbg_set_dummytx_txid(this.__wbg_ptr, ptr0, len0);
999
- }
1000
- /**
1001
- * @returns {Uint8Array}
1002
- */
1003
- get verifying_key() {
1004
- const ret = wasm.__wbg_get_keypackage_verifying_key(this.__wbg_ptr);
1005
- var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
1006
- wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
1007
- return v1;
1008
- }
1009
- /**
1010
- * @param {Uint8Array} arg0
1011
- */
1012
- set verifying_key(arg0) {
1013
- const ptr0 = passArray8ToWasm0(arg0, wasm.__wbindgen_malloc);
1014
- const len0 = WASM_VECTOR_LEN;
1015
- wasm.__wbg_set_keypackage_verifying_key(this.__wbg_ptr, ptr0, len0);
1016
- }
1017
- /**
1018
- * @param {Uint8Array} secret_key
1019
- * @param {Uint8Array} public_key
1020
- * @param {Uint8Array} verifying_key
1021
- */
1022
- constructor(secret_key, public_key, verifying_key) {
1023
- const ptr0 = passArray8ToWasm0(secret_key, wasm.__wbindgen_malloc);
1024
- const len0 = WASM_VECTOR_LEN;
1025
- const ptr1 = passArray8ToWasm0(public_key, wasm.__wbindgen_malloc);
1026
- const len1 = WASM_VECTOR_LEN;
1027
- const ptr2 = passArray8ToWasm0(verifying_key, wasm.__wbindgen_malloc);
1028
- const len2 = WASM_VECTOR_LEN;
1029
- const ret = wasm.keypackage_new(ptr0, len0, ptr1, len1, ptr2, len2);
1030
- this.__wbg_ptr = ret >>> 0;
1031
- KeyPackageFinalization.register(this, this.__wbg_ptr, this);
1032
- return this;
1033
- }
1034
- };
1035
- var NonceResultFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
1036
- }, unregister: () => {
1037
- } } : new FinalizationRegistry((ptr) => wasm.__wbg_nonceresult_free(ptr >>> 0, 1));
1038
- var SigningCommitmentFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
1039
- }, unregister: () => {
1040
- } } : new FinalizationRegistry((ptr) => wasm.__wbg_signingcommitment_free(ptr >>> 0, 1));
1041
- var SigningCommitment2 = class _SigningCommitment {
1042
- static __wrap(ptr) {
1043
- ptr = ptr >>> 0;
1044
- const obj = Object.create(_SigningCommitment.prototype);
1045
- obj.__wbg_ptr = ptr;
1046
- SigningCommitmentFinalization.register(obj, obj.__wbg_ptr, obj);
1047
- return obj;
1048
- }
1049
- __destroy_into_raw() {
1050
- const ptr = this.__wbg_ptr;
1051
- this.__wbg_ptr = 0;
1052
- SigningCommitmentFinalization.unregister(this);
1053
- return ptr;
1054
- }
1055
- free() {
1056
- const ptr = this.__destroy_into_raw();
1057
- wasm.__wbg_signingcommitment_free(ptr, 0);
1058
- }
1059
- /**
1060
- * @returns {Uint8Array}
1061
- */
1062
- get hiding() {
1063
- const ret = wasm.__wbg_get_signingcommitment_hiding(this.__wbg_ptr);
1064
- var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
1065
- wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
1066
- return v1;
1067
- }
1068
- /**
1069
- * @param {Uint8Array} arg0
1070
- */
1071
- set hiding(arg0) {
1072
- const ptr0 = passArray8ToWasm0(arg0, wasm.__wbindgen_malloc);
1073
- const len0 = WASM_VECTOR_LEN;
1074
- wasm.__wbg_set_dummytx_tx(this.__wbg_ptr, ptr0, len0);
1075
- }
1076
- /**
1077
- * @returns {Uint8Array}
1078
- */
1079
- get binding() {
1080
- const ret = wasm.__wbg_get_signingcommitment_binding(this.__wbg_ptr);
1081
- var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
1082
- wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
1083
- return v1;
1084
- }
1085
- /**
1086
- * @param {Uint8Array} arg0
1087
- */
1088
- set binding(arg0) {
1089
- const ptr0 = passArray8ToWasm0(arg0, wasm.__wbindgen_malloc);
1090
- const len0 = WASM_VECTOR_LEN;
1091
- wasm.__wbg_set_dummytx_txid(this.__wbg_ptr, ptr0, len0);
1092
- }
1093
- /**
1094
- * @param {Uint8Array} hiding
1095
- * @param {Uint8Array} binding
1096
- */
1097
- constructor(hiding, binding) {
1098
- const ptr0 = passArray8ToWasm0(hiding, wasm.__wbindgen_malloc);
1099
- const len0 = WASM_VECTOR_LEN;
1100
- const ptr1 = passArray8ToWasm0(binding, wasm.__wbindgen_malloc);
1101
- const len1 = WASM_VECTOR_LEN;
1102
- const ret = wasm.signingcommitment_new(ptr0, len0, ptr1, len1);
1103
- this.__wbg_ptr = ret >>> 0;
1104
- SigningCommitmentFinalization.register(this, this.__wbg_ptr, this);
1105
- return this;
1106
- }
1107
- };
1108
- var SigningNonceFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
1109
- }, unregister: () => {
1110
- } } : new FinalizationRegistry((ptr) => wasm.__wbg_signingnonce_free(ptr >>> 0, 1));
1111
- var SigningNonce = class _SigningNonce {
1112
- static __wrap(ptr) {
1113
- ptr = ptr >>> 0;
1114
- const obj = Object.create(_SigningNonce.prototype);
1115
- obj.__wbg_ptr = ptr;
1116
- SigningNonceFinalization.register(obj, obj.__wbg_ptr, obj);
1117
- return obj;
1118
- }
1119
- __destroy_into_raw() {
1120
- const ptr = this.__wbg_ptr;
1121
- this.__wbg_ptr = 0;
1122
- SigningNonceFinalization.unregister(this);
1123
- return ptr;
1124
- }
1125
- free() {
1126
- const ptr = this.__destroy_into_raw();
1127
- wasm.__wbg_signingnonce_free(ptr, 0);
1128
- }
1129
- /**
1130
- * @returns {Uint8Array}
1131
- */
1132
- get hiding() {
1133
- const ret = wasm.__wbg_get_signingnonce_hiding(this.__wbg_ptr);
1134
- var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
1135
- wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
1136
- return v1;
1137
- }
1138
- /**
1139
- * @param {Uint8Array} arg0
1140
- */
1141
- set hiding(arg0) {
1142
- const ptr0 = passArray8ToWasm0(arg0, wasm.__wbindgen_malloc);
1143
- const len0 = WASM_VECTOR_LEN;
1144
- wasm.__wbg_set_dummytx_tx(this.__wbg_ptr, ptr0, len0);
1145
- }
1146
- /**
1147
- * @returns {Uint8Array}
1148
- */
1149
- get binding() {
1150
- const ret = wasm.__wbg_get_signingnonce_binding(this.__wbg_ptr);
1151
- var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
1152
- wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
1153
- return v1;
1154
- }
1155
- /**
1156
- * @param {Uint8Array} arg0
1157
- */
1158
- set binding(arg0) {
1159
- const ptr0 = passArray8ToWasm0(arg0, wasm.__wbindgen_malloc);
1160
- const len0 = WASM_VECTOR_LEN;
1161
- wasm.__wbg_set_dummytx_txid(this.__wbg_ptr, ptr0, len0);
1162
- }
1163
- /**
1164
- * @param {Uint8Array} hiding
1165
- * @param {Uint8Array} binding
1166
- */
1167
- constructor(hiding, binding) {
1168
- const ptr0 = passArray8ToWasm0(hiding, wasm.__wbindgen_malloc);
1169
- const len0 = WASM_VECTOR_LEN;
1170
- const ptr1 = passArray8ToWasm0(binding, wasm.__wbindgen_malloc);
1171
- const len1 = WASM_VECTOR_LEN;
1172
- const ret = wasm.signingcommitment_new(ptr0, len0, ptr1, len1);
1173
- this.__wbg_ptr = ret >>> 0;
1174
- SigningNonceFinalization.register(this, this.__wbg_ptr, this);
1175
- return this;
1176
- }
1177
- };
1178
- var TransactionResultFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
1179
- }, unregister: () => {
1180
- } } : new FinalizationRegistry((ptr) => wasm.__wbg_transactionresult_free(ptr >>> 0, 1));
1181
- var TransactionResult = class _TransactionResult {
1182
- static __wrap(ptr) {
1183
- ptr = ptr >>> 0;
1184
- const obj = Object.create(_TransactionResult.prototype);
1185
- obj.__wbg_ptr = ptr;
1186
- TransactionResultFinalization.register(obj, obj.__wbg_ptr, obj);
1187
- return obj;
1188
- }
1189
- __destroy_into_raw() {
1190
- const ptr = this.__wbg_ptr;
1191
- this.__wbg_ptr = 0;
1192
- TransactionResultFinalization.unregister(this);
1193
- return ptr;
1194
- }
1195
- free() {
1196
- const ptr = this.__destroy_into_raw();
1197
- wasm.__wbg_transactionresult_free(ptr, 0);
1198
- }
1199
- /**
1200
- * @returns {Uint8Array}
1201
- */
1202
- get tx() {
1203
- const ret = wasm.__wbg_get_transactionresult_tx(this.__wbg_ptr);
1204
- var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
1205
- wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
1206
- return v1;
1207
- }
1208
- /**
1209
- * @param {Uint8Array} arg0
1210
- */
1211
- set tx(arg0) {
1212
- const ptr0 = passArray8ToWasm0(arg0, wasm.__wbindgen_malloc);
1213
- const len0 = WASM_VECTOR_LEN;
1214
- wasm.__wbg_set_dummytx_tx(this.__wbg_ptr, ptr0, len0);
1215
- }
1216
- /**
1217
- * @returns {Uint8Array}
1218
- */
1219
- get sighash() {
1220
- const ret = wasm.__wbg_get_transactionresult_sighash(this.__wbg_ptr);
1221
- var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
1222
- wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
1223
- return v1;
1224
- }
1225
- /**
1226
- * @param {Uint8Array} arg0
1227
- */
1228
- set sighash(arg0) {
1229
- const ptr0 = passArray8ToWasm0(arg0, wasm.__wbindgen_malloc);
1230
- const len0 = WASM_VECTOR_LEN;
1231
- wasm.__wbg_set_dummytx_txid(this.__wbg_ptr, ptr0, len0);
1232
- }
1233
- };
1234
- async function __wbg_load(module2, imports) {
1235
- if (typeof Response === "function" && module2 instanceof Response) {
1236
- if (typeof WebAssembly.instantiateStreaming === "function") {
1237
- try {
1238
- return await WebAssembly.instantiateStreaming(module2, imports);
1239
- } catch (e) {
1240
- if (module2.headers.get("Content-Type") != "application/wasm") {
1241
- console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", e);
1242
- } else {
1243
- throw e;
1244
- }
1245
- }
1246
- }
1247
- const bytes = await module2.arrayBuffer();
1248
- return await WebAssembly.instantiate(bytes, imports);
1249
- } else {
1250
- const instance = await WebAssembly.instantiate(module2, imports);
1251
- if (instance instanceof WebAssembly.Instance) {
1252
- return { instance, module: module2 };
1253
- } else {
1254
- return instance;
1255
- }
1256
- }
1257
- }
1258
- function __wbg_get_imports() {
1259
- const imports = {};
1260
- imports.wbg = {};
1261
- imports.wbg.__wbg_String_8f0eb39a4a4c2f66 = function(arg0, arg1) {
1262
- const ret = String(arg1);
1263
- const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
1264
- const len1 = WASM_VECTOR_LEN;
1265
- getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
1266
- getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
1267
- };
1268
- imports.wbg.__wbg_buffer_609cc3eee51ed158 = function(arg0) {
1269
- const ret = arg0.buffer;
1270
- return ret;
1271
- };
1272
- imports.wbg.__wbg_call_672a4d21634d4a24 = function() {
1273
- return handleError(function(arg0, arg1) {
1274
- const ret = arg0.call(arg1);
1275
- return ret;
1276
- }, arguments);
1277
- };
1278
- imports.wbg.__wbg_call_7cccdd69e0791ae2 = function() {
1279
- return handleError(function(arg0, arg1, arg2) {
1280
- const ret = arg0.call(arg1, arg2);
1281
- return ret;
1282
- }, arguments);
1283
- };
1284
- imports.wbg.__wbg_crypto_dd1b8f71596b161a = function(arg0) {
1285
- const ret = arg0.crypto;
1286
- return ret;
1287
- };
1288
- imports.wbg.__wbg_done_769e5ede4b31c67b = function(arg0) {
1289
- const ret = arg0.done;
1290
- return ret;
1291
- };
1292
- imports.wbg.__wbg_entries_3265d4158b33e5dc = function(arg0) {
1293
- const ret = Object.entries(arg0);
1294
- return ret;
1295
- };
1296
- imports.wbg.__wbg_getRandomValues_760c8e927227643e = function() {
1297
- return handleError(function(arg0, arg1) {
1298
- arg0.getRandomValues(arg1);
1299
- }, arguments);
1300
- };
1301
- imports.wbg.__wbg_get_67b2ba62fc30de12 = function() {
1302
- return handleError(function(arg0, arg1) {
1303
- const ret = Reflect.get(arg0, arg1);
1304
- return ret;
1305
- }, arguments);
1306
- };
1307
- imports.wbg.__wbg_get_b9b93047fe3cf45b = function(arg0, arg1) {
1308
- const ret = arg0[arg1 >>> 0];
1309
- return ret;
1310
- };
1311
- imports.wbg.__wbg_getwithrefkey_1dc361bd10053bfe = function(arg0, arg1) {
1312
- const ret = arg0[arg1];
1313
- return ret;
1314
- };
1315
- imports.wbg.__wbg_instanceof_ArrayBuffer_e14585432e3737fc = function(arg0) {
1316
- let result;
1317
- try {
1318
- result = arg0 instanceof ArrayBuffer;
1319
- } catch (_) {
1320
- result = false;
1321
- }
1322
- const ret = result;
1323
- return ret;
1324
- };
1325
- imports.wbg.__wbg_instanceof_Uint8Array_17156bcf118086a9 = function(arg0) {
1326
- let result;
1327
- try {
1328
- result = arg0 instanceof Uint8Array;
1329
- } catch (_) {
1330
- result = false;
1331
- }
1332
- const ret = result;
1333
- return ret;
1334
- };
1335
- imports.wbg.__wbg_isArray_a1eab7e0d067391b = function(arg0) {
1336
- const ret = Array.isArray(arg0);
1337
- return ret;
1338
- };
1339
- imports.wbg.__wbg_isSafeInteger_343e2beeeece1bb0 = function(arg0) {
1340
- const ret = Number.isSafeInteger(arg0);
1341
- return ret;
1342
- };
1343
- imports.wbg.__wbg_iterator_9a24c88df860dc65 = function() {
1344
- const ret = Symbol.iterator;
1345
- return ret;
1346
- };
1347
- imports.wbg.__wbg_length_a446193dc22c12f8 = function(arg0) {
1348
- const ret = arg0.length;
1349
- return ret;
1350
- };
1351
- imports.wbg.__wbg_length_e2d2a49132c1b256 = function(arg0) {
1352
- const ret = arg0.length;
1353
- return ret;
1354
- };
1355
- imports.wbg.__wbg_msCrypto_60a4979188f6b80b = function(arg0) {
1356
- const ret = arg0.msCrypto;
1357
- return ret;
1358
- };
1359
- imports.wbg.__wbg_new_a12002a7f91c75be = function(arg0) {
1360
- const ret = new Uint8Array(arg0);
1361
- return ret;
1362
- };
1363
- imports.wbg.__wbg_newnoargs_105ed471475aaf50 = function(arg0, arg1) {
1364
- const ret = new Function(getStringFromWasm0(arg0, arg1));
1365
- return ret;
1366
- };
1367
- imports.wbg.__wbg_newwithbyteoffsetandlength_d97e637ebe145a9a = function(arg0, arg1, arg2) {
1368
- const ret = new Uint8Array(arg0, arg1 >>> 0, arg2 >>> 0);
1369
- return ret;
1370
- };
1371
- imports.wbg.__wbg_newwithlength_a381634e90c276d4 = function(arg0) {
1372
- const ret = new Uint8Array(arg0 >>> 0);
1373
- return ret;
1374
- };
1375
- imports.wbg.__wbg_next_25feadfc0913fea9 = function(arg0) {
1376
- const ret = arg0.next;
1377
- return ret;
1378
- };
1379
- imports.wbg.__wbg_next_6574e1a8a62d1055 = function() {
1380
- return handleError(function(arg0) {
1381
- const ret = arg0.next();
1382
- return ret;
1383
- }, arguments);
1384
- };
1385
- imports.wbg.__wbg_node_0deadde112ce24bb = function(arg0) {
1386
- const ret = arg0.node;
1387
- return ret;
1388
- };
1389
- imports.wbg.__wbg_process_0caa4f154b97e834 = function(arg0) {
1390
- const ret = arg0.process;
1391
- return ret;
1392
- };
1393
- imports.wbg.__wbg_randomFillSync_82e8b56b81896e30 = function() {
1394
- return handleError(function(arg0, arg1) {
1395
- arg0.randomFillSync(arg1);
1396
- }, arguments);
1397
- };
1398
- imports.wbg.__wbg_require_1a22b236558b5786 = function() {
1399
- return handleError(function() {
1400
- const ret = module.require;
1401
- return ret;
1402
- }, arguments);
1403
- };
1404
- imports.wbg.__wbg_set_65595bdd868b3009 = function(arg0, arg1, arg2) {
1405
- arg0.set(arg1, arg2 >>> 0);
1406
- };
1407
- imports.wbg.__wbg_static_accessor_GLOBAL_88a902d13a557d07 = function() {
1408
- const ret = typeof global === "undefined" ? null : global;
1409
- return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);
1410
- };
1411
- imports.wbg.__wbg_static_accessor_GLOBAL_THIS_56578be7e9f832b0 = function() {
1412
- const ret = typeof globalThis === "undefined" ? null : globalThis;
1413
- return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);
1414
- };
1415
- imports.wbg.__wbg_static_accessor_SELF_37c5d418e4bf5819 = function() {
1416
- const ret = typeof self === "undefined" ? null : self;
1417
- return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);
1418
- };
1419
- imports.wbg.__wbg_static_accessor_WINDOW_5de37043a91a9c40 = function() {
1420
- const ret = typeof window === "undefined" ? null : window;
1421
- return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);
1422
- };
1423
- imports.wbg.__wbg_subarray_aa9065fa9dc5df96 = function(arg0, arg1, arg2) {
1424
- const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);
1425
- return ret;
1426
- };
1427
- imports.wbg.__wbg_value_cd1ffa7b1ab794f1 = function(arg0) {
1428
- const ret = arg0.value;
1429
- return ret;
1430
- };
1431
- imports.wbg.__wbg_versions_134d8f3c6de79566 = function(arg0) {
1432
- const ret = arg0.versions;
1433
- return ret;
1434
- };
1435
- imports.wbg.__wbindgen_as_number = function(arg0) {
1436
- const ret = +arg0;
1437
- return ret;
1438
- };
1439
- imports.wbg.__wbindgen_boolean_get = function(arg0) {
1440
- const v = arg0;
1441
- const ret = typeof v === "boolean" ? v ? 1 : 0 : 2;
1442
- return ret;
1443
- };
1444
- imports.wbg.__wbindgen_debug_string = function(arg0, arg1) {
1445
- const ret = debugString(arg1);
1446
- const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
1447
- const len1 = WASM_VECTOR_LEN;
1448
- getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
1449
- getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
1450
- };
1451
- imports.wbg.__wbindgen_error_new = function(arg0, arg1) {
1452
- const ret = new Error(getStringFromWasm0(arg0, arg1));
1453
- return ret;
1454
- };
1455
- imports.wbg.__wbindgen_in = function(arg0, arg1) {
1456
- const ret = arg0 in arg1;
1457
- return ret;
1458
- };
1459
- imports.wbg.__wbindgen_init_externref_table = function() {
1460
- const table = wasm.__wbindgen_export_4;
1461
- const offset = table.grow(4);
1462
- table.set(0, void 0);
1463
- table.set(offset + 0, void 0);
1464
- table.set(offset + 1, null);
1465
- table.set(offset + 2, true);
1466
- table.set(offset + 3, false);
1467
- ;
1468
- };
1469
- imports.wbg.__wbindgen_is_function = function(arg0) {
1470
- const ret = typeof arg0 === "function";
1471
- return ret;
1472
- };
1473
- imports.wbg.__wbindgen_is_object = function(arg0) {
1474
- const val = arg0;
1475
- const ret = typeof val === "object" && val !== null;
1476
- return ret;
1477
- };
1478
- imports.wbg.__wbindgen_is_string = function(arg0) {
1479
- const ret = typeof arg0 === "string";
1480
- return ret;
1481
- };
1482
- imports.wbg.__wbindgen_is_undefined = function(arg0) {
1483
- const ret = arg0 === void 0;
1484
- return ret;
1485
- };
1486
- imports.wbg.__wbindgen_jsval_loose_eq = function(arg0, arg1) {
1487
- const ret = arg0 == arg1;
1488
- return ret;
1489
- };
1490
- imports.wbg.__wbindgen_memory = function() {
1491
- const ret = wasm.memory;
1492
- return ret;
1493
- };
1494
- imports.wbg.__wbindgen_number_get = function(arg0, arg1) {
1495
- const obj = arg1;
1496
- const ret = typeof obj === "number" ? obj : void 0;
1497
- getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);
1498
- getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);
1499
- };
1500
- imports.wbg.__wbindgen_string_get = function(arg0, arg1) {
1501
- const obj = arg1;
1502
- const ret = typeof obj === "string" ? obj : void 0;
1503
- var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
1504
- var len1 = WASM_VECTOR_LEN;
1505
- getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
1506
- getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
1507
- };
1508
- imports.wbg.__wbindgen_string_new = function(arg0, arg1) {
1509
- const ret = getStringFromWasm0(arg0, arg1);
1510
- return ret;
1511
- };
1512
- imports.wbg.__wbindgen_throw = function(arg0, arg1) {
1513
- throw new Error(getStringFromWasm0(arg0, arg1));
1514
- };
1515
- return imports;
1516
- }
1517
- function __wbg_init_memory(imports, memory) {
1518
- }
1519
- function __wbg_finalize_init(instance, module2) {
1520
- wasm = instance.exports;
1521
- __wbg_init.__wbindgen_wasm_module = module2;
1522
- cachedDataViewMemory0 = null;
1523
- cachedUint8ArrayMemory0 = null;
1524
- wasm.__wbindgen_start();
1525
- return wasm;
1526
- }
1527
- async function __wbg_init(module_or_path) {
1528
- if (wasm !== void 0) return wasm;
1529
- if (typeof module_or_path !== "undefined") {
1530
- if (Object.getPrototypeOf(module_or_path) === Object.prototype) {
1531
- ({ module_or_path } = module_or_path);
1532
- } else {
1533
- console.warn("using deprecated parameters for the initialization function; pass a single object instead");
1534
- }
1535
- }
1536
- if (typeof module_or_path === "undefined") {
1537
- module_or_path = new URL("spark_bindings_bg.wasm", import_meta.url);
1538
- }
1539
- const imports = __wbg_get_imports();
1540
- if (typeof module_or_path === "string" || typeof Request === "function" && module_or_path instanceof Request || typeof URL === "function" && module_or_path instanceof URL) {
1541
- module_or_path = fetch(module_or_path);
1542
- }
1543
- __wbg_init_memory(imports);
1544
- const { instance, module: module2 } = await __wbg_load(await module_or_path, imports);
1545
- return __wbg_finalize_init(instance, module2);
1546
- }
1547
- var spark_bindings_default = __wbg_init;
1548
-
1549
- // src/utils/signing.ts
1550
- function getRandomSigningNonce() {
1551
- const binding = import_secp256k15.secp256k1.utils.randomPrivateKey();
1552
- const hiding = import_secp256k15.secp256k1.utils.randomPrivateKey();
1553
- return createSigningNonce(binding, hiding);
1554
- }
1555
- function createSigningNonce(binding, hiding) {
1556
- if (binding.length !== 32 || hiding.length !== 32) {
1557
- throw new Error("Invalid nonce length");
1558
- }
1559
- return {
1560
- binding,
1561
- hiding
1562
- };
1563
- }
1564
- function getSigningCommitmentFromNonce(nonce) {
1565
- const bindingPubKey = import_secp256k15.secp256k1.getPublicKey(nonce.binding, true);
1566
- const hidingPubKey = import_secp256k15.secp256k1.getPublicKey(nonce.hiding, true);
1567
- return {
1568
- binding: bindingPubKey,
1569
- hiding: hidingPubKey
1570
- };
1571
- }
1572
- function encodeSigningNonceToBytes(nonce) {
1573
- return new Uint8Array([...nonce.binding, ...nonce.hiding]);
1574
- }
1575
- function decodeBytesToSigningNonce(bytes) {
1576
- if (bytes.length !== 64) {
1577
- throw new Error("Invalid nonce length");
1578
- }
1579
- return {
1580
- binding: bytes.slice(32, 64),
1581
- hiding: bytes.slice(0, 32)
1582
- };
1583
- }
1584
- function createSigningCommitment(binding, hiding) {
1585
- if (binding.length !== 33 || hiding.length !== 33) {
1586
- throw new Error("Invalid nonce commitment length");
1587
- }
1588
- return {
1589
- binding,
1590
- hiding
1591
- };
1592
- }
1593
- function encodeSigningCommitmentToBytes(commitment) {
1594
- if (commitment.binding.length !== 33 || commitment.hiding.length !== 33) {
1595
- throw new Error("Invalid nonce commitment length");
1596
- }
1597
- return new Uint8Array([...commitment.binding, ...commitment.hiding]);
1598
- }
1599
- function decodeBytesToSigningCommitment(bytes) {
1600
- if (bytes.length !== 66) {
1601
- throw new Error("Invalid nonce commitment length");
1602
- }
1603
- return {
1604
- binding: bytes.slice(33, 66),
1605
- hiding: bytes.slice(0, 33)
1606
- };
1607
- }
1608
- function createWasmSigningNonce(nonce) {
1609
- return new SigningNonce(nonce.hiding, nonce.binding);
1610
- }
1611
- function createWasmSigningCommitment(commitment) {
1612
- return new SigningCommitment2(commitment.hiding, commitment.binding);
1613
- }
1614
-
1615
- // src/utils/transaction.ts
1616
- var import_btc_signer = require("@scure/btc-signer");
1617
- var TIME_LOCK_INTERVAL = 100;
1618
- function createRefundTx(sequence, nodeOutPoint, amountSats, receivingPubkey, network) {
1619
- const newRefundTx = new import_btc_signer.Transaction({ allowUnknownOutputs: true });
1620
- newRefundTx.addInput({
1621
- ...nodeOutPoint,
1622
- sequence
1623
- });
1624
- const refundPkScript = getP2TRScriptFromPublicKey(receivingPubkey, network);
1625
- newRefundTx.addOutput({
1626
- script: refundPkScript,
1627
- amount: amountSats
1628
- });
1629
- newRefundTx.addOutput(getEphemeralAnchorOutput());
1630
- return newRefundTx;
1631
- }
1632
- function getNextTransactionSequence(currSequence) {
1633
- const currentTimelock = (currSequence || 0) & 65535;
1634
- if (currentTimelock - TIME_LOCK_INTERVAL <= 0) {
1635
- throw new Error("timelock interval is less or equal to 0");
1636
- }
1637
- return 1 << 30 | currentTimelock - TIME_LOCK_INTERVAL;
1638
- }
1639
- function getEphemeralAnchorOutput() {
1640
- return {
1641
- script: new Uint8Array([81]),
1642
- // OP_TRUE
1643
- amount: 0n
1644
- };
1645
- }
1646
-
1647
- // src/utils/wasm-wrapper.ts
1648
- var import_meta2 = {};
1649
- async function initWasm() {
1650
- let wasmModule;
1651
- try {
1652
- if (typeof window === "undefined") {
1653
- const fs = await import("fs/promises");
1654
- const path = await import("path");
1655
- const { fileURLToPath } = await import("url");
1656
- const __filename = fileURLToPath(import_meta2.url);
1657
- const __dirname = path.dirname(__filename);
1658
- const wasmPath = path.resolve(
1659
- __dirname,
1660
- "../wasm/spark_bindings_bg.wasm"
1661
- );
1662
- const wasmBuffer = await fs.readFile(wasmPath);
1663
- wasmModule = await spark_bindings_default({ module_or_path: wasmBuffer }).catch((e) => {
1664
- console.error("WASM initialization error:", e);
1665
- throw e;
1666
- });
1667
- return wasmModule;
1668
- } else {
1669
- wasmModule = await spark_bindings_default();
1670
- }
1671
- } catch (e) {
1672
- console.error("WASM initialization error:", e);
1673
- throw e;
1674
- }
1675
- if (!wasmModule || typeof wasmModule !== "object") {
1676
- throw new Error("WASM module not properly initialized");
1677
- }
1678
- return wasmModule;
1679
- }
1680
-
1681
- // src/utils/wasm.ts
1682
- function signFrost({
1683
- msg,
1684
- keyPackage,
1685
- nonce,
1686
- selfCommitment,
1687
- statechainCommitments,
1688
- adaptorPubKey
1689
- }) {
1690
- return wasm_sign_frost(
1691
- msg,
1692
- keyPackage,
1693
- nonce,
1694
- selfCommitment,
1695
- statechainCommitments,
1696
- adaptorPubKey
1697
- );
1698
- }
1699
- function aggregateFrost({
1700
- msg,
1701
- statechainCommitments,
1702
- selfCommitment,
1703
- statechainSignatures,
1704
- selfSignature,
1705
- statechainPublicKeys,
1706
- selfPublicKey,
1707
- verifyingKey,
1708
- adaptorPubKey
1709
- }) {
1710
- return wasm_aggregate_frost(
1711
- msg,
1712
- statechainCommitments,
1713
- selfCommitment,
1714
- statechainSignatures,
1715
- selfSignature,
1716
- statechainPublicKeys,
1717
- selfPublicKey,
1718
- verifyingKey,
1719
- adaptorPubKey
1720
- );
1721
- }
1722
- function constructNodeTx({
1723
- tx,
1724
- vout,
1725
- address,
1726
- locktime
1727
- }) {
1728
- return construct_node_tx(tx, vout, address, locktime);
1729
- }
1730
- function constructRefundTx({
1731
- tx,
1732
- vout,
1733
- pubkey,
1734
- network,
1735
- locktime
1736
- }) {
1737
- return construct_refund_tx(tx, vout, pubkey, network, locktime);
1738
- }
1739
- function constructSplitTx({
1740
- tx,
1741
- vout,
1742
- addresses,
1743
- locktime
1744
- }) {
1745
- return construct_split_tx(tx, vout, addresses, locktime);
1746
- }
1747
- function createDummyTx({
1748
- address,
1749
- amountSats
1750
- }) {
1751
- return create_dummy_tx(address, amountSats);
1752
- }
1753
- function encryptEcies({
1754
- msg,
1755
- publicKey
1756
- }) {
1757
- return encrypt_ecies(msg, publicKey);
1758
- }
1759
- function decryptEcies({
1760
- encryptedMsg,
1761
- privateKey
1762
- }) {
1763
- return decrypt_ecies(encryptedMsg, privateKey);
1764
- }
1765
- // Annotate the CommonJS export names for ESM import in node:
1766
- 0 && (module.exports = {
1767
- Network,
1768
- NetworkToProto,
1769
- addPrivateKeys,
1770
- addPublicKeys,
1771
- aggregateFrost,
1772
- applyAdaptorToSignature,
1773
- applyAdditiveTweakToPublicKey,
1774
- bigIntToPrivateKey,
1775
- computeTaprootKeyNoScript,
1776
- computerLagrangeCoefficients,
1777
- constructNodeTx,
1778
- constructRefundTx,
1779
- constructSplitTx,
1780
- createDummyTx,
1781
- createRefundTx,
1782
- createSigningCommitment,
1783
- createSigningNonce,
1784
- createWasmSigningCommitment,
1785
- createWasmSigningNonce,
1786
- decodeBytesToSigningCommitment,
1787
- decodeBytesToSigningNonce,
1788
- decryptEcies,
1789
- encodeSigningCommitmentToBytes,
1790
- encodeSigningNonceToBytes,
1791
- encryptEcies,
1792
- evaluatePolynomial,
1793
- fieldDiv,
1794
- generateAdaptorFromSignature,
1795
- generatePolynomialForSecretSharing,
1796
- generateSignatureFromExistingAdaptor,
1797
- getEphemeralAnchorOutput,
1798
- getNetwork,
1799
- getNextTransactionSequence,
1800
- getP2TRAddressFromPkScript,
1801
- getP2TRAddressFromPublicKey,
1802
- getP2TRScriptFromPublicKey,
1803
- getRandomBigInt,
1804
- getRandomSigningNonce,
1805
- getSigHashFromTx,
1806
- getSigningCommitmentFromNonce,
1807
- getTxFromRawTxBytes,
1808
- getTxFromRawTxHex,
1809
- getTxId,
1810
- getTxIdNoReverse,
1811
- initWasm,
1812
- lastKeyWithTarget,
1813
- modInverse,
1814
- proofOfPossessionMessageHashForDepositAddress,
1815
- recoverSecret,
1816
- signFrost,
1817
- splitSecret,
1818
- splitSecretWithProofs,
1819
- subtractPrivateKeys,
1820
- subtractPublicKeys,
1821
- sumOfPrivateKeys,
1822
- validateOutboundAdaptorSignature,
1823
- validateResponses,
1824
- validateShare
1825
- });