@bitgo-beta/sdk-coin-kaspa 0.0.1-beta.21 → 0.0.1-beta.211

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 (49) hide show
  1. package/README.md +224 -33
  2. package/dist/src/kaspa.d.ts +86 -18
  3. package/dist/src/kaspa.d.ts.map +1 -1
  4. package/dist/src/kaspa.js +119 -31
  5. package/dist/src/lib/constants.d.ts +38 -0
  6. package/dist/src/lib/constants.d.ts.map +1 -1
  7. package/dist/src/lib/constants.js +56 -5
  8. package/dist/src/lib/iface.d.ts +28 -17
  9. package/dist/src/lib/iface.d.ts.map +1 -1
  10. package/dist/src/lib/iface.js +1 -1
  11. package/dist/src/lib/index.d.ts +2 -0
  12. package/dist/src/lib/index.d.ts.map +1 -1
  13. package/dist/src/lib/index.js +4 -2
  14. package/dist/src/lib/keyPair.d.ts +6 -2
  15. package/dist/src/lib/keyPair.d.ts.map +1 -1
  16. package/dist/src/lib/keyPair.js +7 -4
  17. package/dist/src/lib/pskt.d.ts +257 -0
  18. package/dist/src/lib/pskt.d.ts.map +1 -0
  19. package/dist/src/lib/pskt.js +439 -0
  20. package/dist/src/lib/sighash.d.ts +34 -13
  21. package/dist/src/lib/sighash.d.ts.map +1 -1
  22. package/dist/src/lib/sighash.js +115 -56
  23. package/dist/src/lib/transaction.d.ts +94 -6
  24. package/dist/src/lib/transaction.d.ts.map +1 -1
  25. package/dist/src/lib/transaction.js +199 -21
  26. package/dist/src/lib/transactionBuilder.d.ts +22 -0
  27. package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
  28. package/dist/src/lib/transactionBuilder.js +53 -5
  29. package/dist/src/lib/transactionBuilderFactory.d.ts +8 -3
  30. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  31. package/dist/src/lib/transactionBuilderFactory.js +14 -4
  32. package/dist/src/lib/utils.d.ts +17 -3
  33. package/dist/src/lib/utils.d.ts.map +1 -1
  34. package/dist/src/lib/utils.js +45 -11
  35. package/dist/src/register.js +2 -2
  36. package/dist/test/fixtures/kaspa.fixtures.d.ts +12 -0
  37. package/dist/test/fixtures/kaspa.fixtures.d.ts.map +1 -1
  38. package/dist/test/fixtures/kaspa.fixtures.js +76 -11
  39. package/dist/test/unit/coin.test.js +129 -9
  40. package/dist/test/unit/keyPair.test.js +35 -1
  41. package/dist/test/unit/pskt.test.d.ts +15 -0
  42. package/dist/test/unit/pskt.test.d.ts.map +1 -0
  43. package/dist/test/unit/pskt.test.js +383 -0
  44. package/dist/test/unit/transaction.test.js +291 -11
  45. package/dist/test/unit/transactionBuilder.test.js +16 -3
  46. package/dist/test/unit/transactionFlow.test.js +67 -2
  47. package/dist/test/unit/utils.test.js +63 -4
  48. package/dist/tsconfig.tsbuildinfo +1 -1
  49. package/package.json +6 -5
package/dist/src/kaspa.js CHANGED
@@ -33,37 +33,38 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.Kaspa = void 0;
36
+ exports.Tkaspa = exports.Kaspa = exports.AbstractKaspaLikeCoin = void 0;
37
37
  const statics_1 = require("@bitgo-beta/statics");
38
38
  const sdk_core_1 = require("@bitgo-beta/sdk-core");
39
+ const abstract_utxo_1 = require("@bitgo-beta/abstract-utxo");
39
40
  const KaspaLib = __importStar(require("./lib"));
40
41
  const utils_1 = require("./lib/utils");
41
- class Kaspa extends sdk_core_1.BaseCoin {
42
- constructor(bitgo, staticsCoin) {
43
- super(bitgo);
44
- if (!staticsCoin) {
45
- throw new Error('missing required constructor parameter staticsCoin');
46
- }
47
- this._staticsCoin = staticsCoin;
48
- }
49
- static createInstance(bitgo, staticsCoin) {
50
- return new Kaspa(bitgo, staticsCoin);
51
- }
52
- getChain() {
53
- return this._staticsCoin.name;
42
+ class AbstractKaspaLikeCoin extends abstract_utxo_1.AbstractUtxoCoin {
43
+ /**
44
+ * Kaspa has no utxo-lib network entry. This deprecated getter is overridden
45
+ * to prevent accidental usage of the Bitcoin PSBT signing stack.
46
+ */
47
+ get network() {
48
+ throw new Error(`${this.getChain()} does not have a utxo-lib network entry`);
54
49
  }
50
+ /**
51
+ * Kaspa family name is 'kaspa' for both mainnet and testnet.
52
+ * Override avoids going through names.ts which only knows Bitcoin-family coins.
53
+ * The cast is required because UtxoCoinNameMainnet is a closed union of Bitcoin-family coins;
54
+ * Kaspa manages its own network stack and is intentionally outside that union.
55
+ */
55
56
  getFamily() {
56
- return this._staticsCoin.family;
57
+ return 'kaspa';
57
58
  }
58
- getFullName() {
59
- return this._staticsCoin.fullName;
59
+ supportsBlockTarget() {
60
+ return false;
60
61
  }
61
62
  /**
62
63
  * Return the base factor (sompi per KASPA).
63
64
  * 1 KASPA = 100,000,000 sompi (8 decimal places)
64
65
  */
65
66
  getBaseFactor() {
66
- return Math.pow(10, this._staticsCoin.decimalPlaces);
67
+ return 1e8;
67
68
  }
68
69
  /** @inheritDoc */
69
70
  getDefaultMultisigType() {
@@ -108,6 +109,9 @@ class Kaspa extends sdk_core_1.BaseCoin {
108
109
  if (!keys.prv) {
109
110
  throw new Error('Missing prv in key generation.');
110
111
  }
112
+ if (!keys.pub) {
113
+ throw new Error('Missing pub in key generation.');
114
+ }
111
115
  return {
112
116
  pub: keys.pub,
113
117
  prv: keys.prv,
@@ -124,7 +128,8 @@ class Kaspa extends sdk_core_1.BaseCoin {
124
128
  if (!keychains || keychains.length !== 3) {
125
129
  throw new Error('Invalid keychains');
126
130
  }
127
- const networkType = this._staticsCoin.network.type;
131
+ // Cast to string to avoid type-overlap lint until abstract-utxo dist is rebuilt with kaspa names.
132
+ const networkType = this.name === 'kaspa' ? 'mainnet' : 'testnet';
128
133
  const derivedAddress = new KaspaLib.KeyPair({ pub: keychains[0].pub }).getAddress(networkType);
129
134
  if (derivedAddress !== address) {
130
135
  throw new sdk_core_1.UnexpectedAddressError(`address validation failure: ${address} is not of this wallet`);
@@ -136,9 +141,11 @@ class Kaspa extends sdk_core_1.BaseCoin {
136
141
  }
137
142
  /**
138
143
  * Parse a Kaspa transaction from prebuild.
144
+ * Overrides AbstractUtxoCoin's PSBT-based implementation with Kaspa's JSON-hex format.
139
145
  */
140
146
  async parseTransaction(params) {
141
- const txHex = (params.txHex || params.halfSigned?.txHex);
147
+ const anyParams = params;
148
+ const txHex = anyParams.txHex ?? anyParams.halfSigned?.txHex;
142
149
  if (!txHex) {
143
150
  return {};
144
151
  }
@@ -190,9 +197,13 @@ class Kaspa extends sdk_core_1.BaseCoin {
190
197
  }
191
198
  /**
192
199
  * Explain a Kaspa transaction.
200
+ * Overrides AbstractUtxoCoin's PSBT-based implementation with Kaspa's JSON-hex format.
201
+ * The return type cast is necessary because Kaspa uses a custom TransactionExplanation
202
+ * that doesn't include Bitcoin-specific fields (chain, index) on outputs.
193
203
  */
194
- async explainTransaction(params) {
195
- const txHex = params.txHex ?? params?.halfSigned?.txHex;
204
+ async explainTransaction(params, _wallet) {
205
+ const anyParams = params;
206
+ const txHex = anyParams.txHex ?? anyParams.halfSigned?.txHex;
196
207
  if (!txHex) {
197
208
  throw new Error('missing transaction hex');
198
209
  }
@@ -207,33 +218,78 @@ class Kaspa extends sdk_core_1.BaseCoin {
207
218
  }
208
219
  /**
209
220
  * Sign a Kaspa transaction using secp256k1 Schnorr signatures.
221
+ *
222
+ * Kaspa is a UTXO coin: every input has its own sighash.
223
+ * Two signing paths are supported:
224
+ *
225
+ * Path A — `params.prv` (direct key, test / non-TSS):
226
+ * Calls `tx.sign(prv)` which loops every input and produces a Schnorr
227
+ * signature for each one in a single call.
228
+ *
229
+ * Path B — `params.signatures` (TSS multi-input):
230
+ * The caller already ran one independent DKLS session per input, using
231
+ * `tx.signablePayloads[i]` as the message for session i. Each resulting
232
+ * signature is applied to its input via `addSignatureForInput`.
233
+ *
234
+ * Platform flow:
235
+ * 1. Build tx, read `(tx as Transaction).signablePayloads` → Buffer[N]
236
+ * 2. Run N DKLS sessions in parallel, one per sighash
237
+ * 3. Call signTransaction({ signatures: [{ inputIndex, pubKey, signature }, ...] })
210
238
  */
211
239
  async signTransaction(params) {
212
- const txHex = params.txPrebuild.txHex;
240
+ const kaspaParams = params;
241
+ const txHex = kaspaParams.txPrebuild?.txHex;
213
242
  if (!txHex) {
214
243
  throw new sdk_core_1.InvalidTransactionError('missing txHex in txPrebuild');
215
244
  }
216
245
  const txBuilder = this.getBuilder().from(txHex);
217
246
  const tx = (await txBuilder.build());
218
- if (params.prv) {
219
- const privKeyHex = params.prv.slice(0, 64);
220
- const privKeyBuffer = Buffer.from(privKeyHex, 'hex');
247
+ if (kaspaParams.prv) {
248
+ // Path A: direct private-key signing — correct for all inputs at once.
249
+ const privKeyBuffer = Buffer.from(kaspaParams.prv.slice(0, 64), 'hex');
221
250
  tx.sign(privKeyBuffer);
222
251
  }
223
- const signedHex = tx.toHex();
252
+ else if (kaspaParams.signatures && kaspaParams.signatures.length > 0) {
253
+ // Path B: TSS multi-input — apply each externally-computed per-input signature.
254
+ // Each signature MUST have been produced over signablePayloads[inputIndex],
255
+ // i.e. the sighash that commits specifically to that input's index.
256
+ // Applying a signature produced over a different message will be rejected
257
+ // by the Kaspa node's script engine.
258
+ for (const { inputIndex, pubKey, signature } of kaspaParams.signatures) {
259
+ tx.addSignatureForInput(inputIndex, pubKey, Buffer.from(signature, 'hex'));
260
+ }
261
+ }
224
262
  const inputCount = tx.txData.inputs.length;
225
263
  const sigCount = tx.signature.filter((s) => s.length > 0).length;
264
+ const signedHex = tx.toHex();
226
265
  return inputCount > 0 && sigCount >= inputCount ? { txHex: signedHex } : { halfSigned: { txHex: signedHex } };
227
266
  }
228
- async signMessage(key, message) {
267
+ /**
268
+ * Kaspa's txHex is already the custom JSON-hex format — skip the PSBT
269
+ * re-encode that AbstractUtxoCoin.postProcessPrebuild would otherwise apply.
270
+ */
271
+ async postProcessPrebuild(prebuild) {
272
+ return prebuild;
273
+ }
274
+ async signMessage(_key, _message) {
229
275
  throw new sdk_core_1.MethodNotImplementedError();
230
276
  }
231
277
  /** @inheritDoc */
232
- auditDecryptedKey(params) {
278
+ auditDecryptedKey(_params) {
233
279
  throw new sdk_core_1.MethodNotImplementedError();
234
280
  }
235
281
  /**
236
- * MPC support: Kaspa uses secp256k1 (Schnorr variant).
282
+ * TSS/MPC support: Kaspa uses secp256k1 (Schnorr variant for on-chain,
283
+ * ECDSA for the off-chain TSS ceremony).
284
+ *
285
+ * Kaspa is a UTXO coin with a BIP-143-like per-input sighash scheme.
286
+ * Each input commits to its own index and produces a distinct hash.
287
+ * One independent DKLS signing session is required per input.
288
+ *
289
+ * Correct multi-input TSS flow:
290
+ * 1. Read `tx.signablePayloads` → Buffer[] (one sighash per input).
291
+ * 2. Run one DKLS signing session per sighash IN PARALLEL.
292
+ * 3. Apply each signature: `tx.addSignatureForInput(i, pubKey, sig)`.
237
293
  */
238
294
  supportsTss() {
239
295
  return true;
@@ -242,5 +298,37 @@ class Kaspa extends sdk_core_1.BaseCoin {
242
298
  return 'ecdsa';
243
299
  }
244
300
  }
301
+ exports.AbstractKaspaLikeCoin = AbstractKaspaLikeCoin;
302
+ class Kaspa extends AbstractKaspaLikeCoin {
303
+ constructor() {
304
+ super(...arguments);
305
+ this.name = 'kaspa';
306
+ }
307
+ getFullName() {
308
+ return 'Kaspa';
309
+ }
310
+ isMainnet() {
311
+ return true;
312
+ }
313
+ static createInstance(bitgo) {
314
+ return new Kaspa(bitgo);
315
+ }
316
+ }
245
317
  exports.Kaspa = Kaspa;
246
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2FzcGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMva2FzcGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaURBQXFGO0FBQ3JGLG1EQWdCOEI7QUFDOUIsZ0RBQWtDO0FBT2xDLHVDQUFrRDtBQUVsRCxNQUFhLEtBQU0sU0FBUSxtQkFBUTtJQUdqQyxZQUFZLEtBQWdCLEVBQUUsV0FBdUM7UUFDbkUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0RBQW9ELENBQUMsQ0FBQztRQUN4RSxDQUFDO1FBRUQsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUM7SUFDbEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBZ0IsRUFBRSxXQUF1QztRQUM3RSxPQUFPLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7SUFDaEMsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLHNCQUFzQjtRQUNwQixPQUFPLHdCQUFhLENBQUMsT0FBTyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7T0FFRztJQUNILGNBQWMsQ0FBQyxPQUFl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QyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBRWpFLE9BQU8sVUFBVSxHQUFHLENBQUMsSUFBSSxRQUFRLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEVBQUUsQ0FBQztJQUNoSCxDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFhLEVBQUUsT0FBd0I7UUFDdkQsTUFBTSxJQUFJLG9DQUF5QixFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixpQkFBaUIsQ0FBQyxNQUErQjtRQUMvQyxNQUFNLElBQUksb0NBQXlCLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRjtBQS9PRCxzQkErT0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBTdGF0aWNzQmFzZUNvaW4sIENvaW5GYW1pbHksIGNvaW5zIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQge1xuICBBdWRpdERlY3J5cHRlZEtleVBhcmFtcyxcbiAgQmFzZUNvaW4sXG4gIEJpdEdvQmFzZSxcbiAgSW52YWxpZEFkZHJlc3NFcnJvcixcbiAgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IsXG4gIEtleVBhaXIgYXMgSUtleVBhaXIsXG4gIE1ldGhvZE5vdEltcGxlbWVudGVkRXJyb3IsXG4gIE1QQ0FsZ29yaXRobSxcbiAgTXVsdGlzaWdUeXBlLFxuICBtdWx0aXNpZ1R5cGVzLFxuICBQYXJzZWRUcmFuc2FjdGlvbixcbiAgUGFyc2VUcmFuc2FjdGlvbk9wdGlvbnMsXG4gIFNpZ25lZFRyYW5zYWN0aW9uLFxuICBVbmV4cGVjdGVkQWRkcmVzc0Vycm9yLFxuICBWZXJpZnlBZGRyZXNzT3B0aW9ucyxcbn0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0ICogYXMgS2FzcGFMaWIgZnJvbSAnLi9saWInO1xuaW1wb3J0IHtcbiAgS2FzcGFFeHBsYWluVHJhbnNhY3Rpb25PcHRpb25zLFxuICBLYXNwYVNpZ25UcmFuc2FjdGlvbk9wdGlvbnMsXG4gIEthc3BhVmVyaWZ5VHJhbnNhY3Rpb25PcHRpb25zLFxuICBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uLFxufSBmcm9tICcuL2xpYi9pZmFjZSc7XG5pbXBvcnQgeyBpc1ZhbGlkS2FzcGFBZGRyZXNzIH0gZnJvbSAnLi9saWIvdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgS2FzcGEgZXh0ZW5kcyBCYXNlQ29pbiB7XG4gIHByb3RlY3RlZCByZWFkb25seSBfc3RhdGljc0NvaW46IFJlYWRvbmx5PFN0YXRpY3NCYXNlQ29pbj47XG5cbiAgY29uc3RydWN0b3IoYml0Z286IEJpdEdvQmFzZSwgc3RhdGljc0NvaW4/OiBSZWFkb25seTxTdGF0aWNzQmFzZUNvaW4+KSB7XG4gICAgc3VwZXIoYml0Z28pO1xuXG4gICAgaWYgKCFzdGF0aWNzQ29pbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdtaXNzaW5nIHJlcXVpcmVkIGNvbnN0cnVjdG9yIHBhcmFtZXRlciBzdGF0aWNzQ29pbicpO1xuICAgIH1cblxuICAgIHRoaXMuX3N0YXRpY3NDb2luID0gc3RhdGljc0NvaW47XG4gIH1cblxuICBzdGF0aWMgY3JlYXRlSW5zdGFuY2UoYml0Z286IEJpdEdvQmFzZSwgc3RhdGljc0NvaW4/OiBSZWFkb25seTxTdGF0aWNzQmFzZUNvaW4+KTogQmFzZUNvaW4ge1xuICAgIHJldHVybiBuZXcgS2FzcGEoYml0Z28sIHN0YXRpY3NDb2luKTtcbiAgfVxuXG4gIGdldENoYWluKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRpY3NDb2luLm5hbWU7XG4gIH1cblxuICBnZXRGYW1pbHkoKTogQ29pbkZhbWlseSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRpY3NDb2luLmZhbWlseTtcbiAgfVxuXG4gIGdldEZ1bGxOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRpY3NDb2luLmZ1bGxOYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgYmFzZSBmYWN0b3IgKHNvbXBpIHBlciBLQVNQQSkuXG4gICAqIDEgS0FTUEEgPSAxMDAsMDAwLDAwMCBzb21waSAoOCBkZWNpbWFsIHBsYWNlcylcbiAgICovXG4gIGdldEJhc2VGYWN0b3IoKTogc3RyaW5nIHwgbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5wb3coMTAsIHRoaXMuX3N0YXRpY3NDb2luLmRlY2ltYWxQbGFjZXMpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIGdldERlZmF1bHRNdWx0aXNpZ1R5cGUoKTogTXVsdGlzaWdUeXBlIHtcbiAgICByZXR1cm4gbXVsdGlzaWdUeXBlcy5vbmNoYWluO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlIGEgS2FzcGEgYWRkcmVzcy5cbiAgICovXG4gIGlzVmFsaWRBZGRyZXNzKGFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1ZhbGlkS2FzcGFBZGRyZXNzKGFkZHJlc3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlIGEgcHVibGljIGtleSAoc2VjcDI1NmsxIGNvbXByZXNzZWQgb3IgdW5jb21wcmVzc2VkKS5cbiAgICovXG4gIGlzVmFsaWRQdWIocHViOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0cnkge1xuICAgICAgbmV3IEthc3BhTGliLktleVBhaXIoeyBwdWIgfSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGUgYSBwcml2YXRlIGtleS5cbiAgICovXG4gIGlzVmFsaWRQcnYocHJ2OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0cnkge1xuICAgICAgbmV3IEthc3BhTGliLktleVBhaXIoeyBwcnYgfSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGUgYSBLYXNwYSBrZXkgcGFpci5cbiAgICovXG4gIGdlbmVyYXRlS2V5UGFpcihzZWVkPzogQnVmZmVyKTogSUtleVBhaXIge1xuICAgIGNvbnN0IGtleVBhaXIgPSBzZWVkID8gbmV3IEthc3BhTGliLktleVBhaXIoeyBzZWVkIH0pIDogbmV3IEthc3BhTGliLktleVBhaXIoKTtcbiAgICBjb25zdCBrZXlzID0ga2V5UGFpci5nZXRLZXlzKCk7XG5cbiAgICBpZiAoIWtleXMucHJ2KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgcHJ2IGluIGtleSBnZW5lcmF0aW9uLicpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBwdWI6IGtleXMucHViLFxuICAgICAgcHJ2OiBrZXlzLnBydixcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGFkZHJlc3MgYmVsb25ncyB0byB3YWxsZXQgYnkgZGVyaXZpbmcgZnJvbSBrZXljaGFpbnMuXG4gICAqL1xuICBhc3luYyBpc1dhbGxldEFkZHJlc3MocGFyYW1zOiBWZXJpZnlBZGRyZXNzT3B0aW9ucyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHsgYWRkcmVzcywga2V5Y2hhaW5zIH0gPSBwYXJhbXM7XG5cbiAgICBpZiAoIXRoaXMuaXNWYWxpZEFkZHJlc3MoYWRkcmVzcykpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQWRkcmVzc0Vycm9yKGBpbnZhbGlkIGFkZHJlc3M6ICR7YWRkcmVzc31gKTtcbiAgICB9XG5cbiAgICBpZiAoIWtleWNoYWlucyB8fCBrZXljaGFpbnMubGVuZ3RoICE9PSAzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQga2V5Y2hhaW5zJyk7XG4gICAgfVxuXG4gICAgY29uc3QgbmV0d29ya1R5cGUgPSB0aGlzLl9zdGF0aWNzQ29pbi5uZXR3b3JrLnR5cGU7XG4gICAgY29uc3QgZGVyaXZlZEFkZHJlc3MgPSBuZXcgS2FzcGFMaWIuS2V5UGFpcih7IHB1Yjoga2V5Y2hhaW5zWzBdLnB1YiB9KS5nZXRBZGRyZXNzKG5ldHdvcmtUeXBlKTtcblxuICAgIGlmIChkZXJpdmVkQWRkcmVzcyAhPT0gYWRkcmVzcykge1xuICAgICAgdGhyb3cgbmV3IFVuZXhwZWN0ZWRBZGRyZXNzRXJyb3IoYGFkZHJlc3MgdmFsaWRhdGlvbiBmYWlsdXJlOiAke2FkZHJlc3N9IGlzIG5vdCBvZiB0aGlzIHdhbGxldGApO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRCdWlsZGVyKCk6IEthc3BhTGliLlRyYW5zYWN0aW9uQnVpbGRlckZhY3Rvcnkge1xuICAgIHJldHVybiBuZXcgS2FzcGFMaWIuVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeShjb2lucy5nZXQodGhpcy5nZXRDaGFpbigpKSk7XG4gIH1cblxuICAvKipcbiAgICogUGFyc2UgYSBLYXNwYSB0cmFuc2FjdGlvbiBmcm9tIHByZWJ1aWxkLlxuICAgKi9cbiAgYXN5bmMgcGFyc2VUcmFuc2FjdGlvbihwYXJhbXM6IFBhcnNlVHJhbnNhY3Rpb25PcHRpb25zKTogUHJvbWlzZTxQYXJzZWRUcmFuc2FjdGlvbj4ge1xuICAgIGNvbnN0IHR4SGV4ID0gKHBhcmFtcy50eEhleCB8fCAocGFyYW1zIGFzIHsgaGFsZlNpZ25lZD86IHsgdHhIZXg/OiBzdHJpbmcgfSB9KS5oYWxmU2lnbmVkPy50eEhleCkgYXNcbiAgICAgIHwgc3RyaW5nXG4gICAgICB8IHVuZGVmaW5lZDtcbiAgICBpZiAoIXR4SGV4KSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIGxldCB0eDogS2FzcGFMaWIuVHJhbnNhY3Rpb247XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlciA9IHRoaXMuZ2V0QnVpbGRlcigpLmZyb20odHhIZXgpO1xuICAgICAgdHggPSAoYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCkpIGFzIEthc3BhTGliLlRyYW5zYWN0aW9uO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihgSW52YWxpZCB0cmFuc2FjdGlvbjogJHsoZSBhcyBFcnJvcikubWVzc2FnZX1gKTtcbiAgICB9XG4gICAgY29uc3QgY29pbiA9IHRoaXMuZ2V0Q2hhaW4oKTtcbiAgICByZXR1cm4ge1xuICAgICAgaW5wdXRzOiB0eC50eERhdGEuaW5wdXRzLm1hcCgoaW5wdXQpID0+ICh7XG4gICAgICAgIGFtb3VudDogaW5wdXQuYW1vdW50LFxuICAgICAgICBjb2luLFxuICAgICAgfSkpLFxuICAgICAgb3V0cHV0czogdHgudHhEYXRhLm91dHB1dHMubWFwKChvdXRwdXQpID0+ICh7XG4gICAgICAgIGFkZHJlc3M6IG91dHB1dC5hZGRyZXNzLFxuICAgICAgICBhbW91bnQ6IG91dHB1dC5hbW91bnQsXG4gICAgICAgIGNvaW4sXG4gICAgICB9KSksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZnkgYSBLYXNwYSB0cmFuc2FjdGlvbiBhZ2FpbnN0IGV4cGVjdGVkIHBhcmFtcy5cbiAgICovXG4gIGFzeW5jIHZlcmlmeVRyYW5zYWN0aW9uKHBhcmFtczogS2FzcGFWZXJpZnlUcmFuc2FjdGlvbk9wdGlvbnMpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCB0eEhleCA9IHBhcmFtcy50eFByZWJ1aWxkPy50eEhleDtcbiAgICBpZiAoIXR4SGV4KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ21pc3NpbmcgcmVxdWlyZWQgdHggcHJlYnVpbGQgcHJvcGVydHkgdHhIZXgnKTtcbiAgICB9XG5cbiAgICBsZXQgdHg6IEthc3BhTGliLlRyYW5zYWN0aW9uO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXIgPSB0aGlzLmdldEJ1aWxkZXIoKS5mcm9tKHR4SGV4KTtcbiAgICAgIHR4ID0gKGF3YWl0IHR4QnVpbGRlci5idWlsZCgpKSBhcyBLYXNwYUxpYi5UcmFuc2FjdGlvbjtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkIHRyYW5zYWN0aW9uOiAkeyhlcnJvciBhcyBFcnJvcikubWVzc2FnZX1gKTtcbiAgICB9XG5cbiAgICBjb25zdCBleHBsYWluZWRUeCA9IHR4LmV4cGxhaW5UcmFuc2FjdGlvbigpO1xuXG4gICAgaWYgKHBhcmFtcy50eFBhcmFtcy5yZWNpcGllbnRzKSB7XG4gICAgICBjb25zdCByZWNpcGllbnRDb3VudCA9IHBhcmFtcy50eFBhcmFtcy5yZWNpcGllbnRzLmxlbmd0aDtcbiAgICAgIGlmIChleHBsYWluZWRUeC5vdXRwdXRzLmxlbmd0aCA8IHJlY2lwaWVudENvdW50KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgYXQgbGVhc3QgJHtyZWNpcGllbnRDb3VudH0gb3V0cHV0cywgdHJhbnNhY3Rpb24gaGFkICR7ZXhwbGFpbmVkVHgub3V0cHV0cy5sZW5ndGh9YCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogRXhwbGFpbiBhIEthc3BhIHRyYW5zYWN0aW9uLlxuICAgKi9cbiAgYXN5bmMgZXhwbGFpblRyYW5zYWN0aW9uKHBhcmFtczogS2FzcGFFeHBsYWluVHJhbnNhY3Rpb25PcHRpb25zKTogUHJvbWlzZTxUcmFuc2FjdGlvbkV4cGxhbmF0aW9uPiB7XG4gICAgY29uc3QgdHhIZXggPSBwYXJhbXMudHhIZXggPz8gcGFyYW1zPy5oYWxmU2lnbmVkPy50eEhleDtcbiAgICBpZiAoIXR4SGV4KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ21pc3NpbmcgdHJhbnNhY3Rpb24gaGV4Jyk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXIgPSB0aGlzLmdldEJ1aWxkZXIoKS5mcm9tKHR4SGV4KTtcbiAgICAgIGNvbnN0IHR4ID0gKGF3YWl0IHR4QnVpbGRlci5idWlsZCgpKSBhcyBLYXNwYUxpYi5UcmFuc2FjdGlvbjtcbiAgICAgIHJldHVybiB0eC5leHBsYWluVHJhbnNhY3Rpb24oKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgdHJhbnNhY3Rpb246ICR7KGUgYXMgRXJyb3IpLm1lc3NhZ2V9YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNpZ24gYSBLYXNwYSB0cmFuc2FjdGlvbiB1c2luZyBzZWNwMjU2azEgU2Nobm9yciBzaWduYXR1cmVzLlxuICAgKi9cbiAgYXN5bmMgc2lnblRyYW5zYWN0aW9uKHBhcmFtczogS2FzcGFTaWduVHJhbnNhY3Rpb25PcHRpb25zKTogUHJvbWlzZTxTaWduZWRUcmFuc2FjdGlvbj4ge1xuICAgIGNvbnN0IHR4SGV4ID0gcGFyYW1zLnR4UHJlYnVpbGQudHhIZXg7XG4gICAgaWYgKCF0eEhleCkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdtaXNzaW5nIHR4SGV4IGluIHR4UHJlYnVpbGQnKTtcbiAgICB9XG5cbiAgICBjb25zdCB0eEJ1aWxkZXIgPSB0aGlzLmdldEJ1aWxkZXIoKS5mcm9tKHR4SGV4KTtcbiAgICBjb25zdCB0eCA9IChhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKSkgYXMgS2FzcGFMaWIuVHJhbnNhY3Rpb247XG5cbiAgICBpZiAocGFyYW1zLnBydikge1xuICAgICAgY29uc3QgcHJpdktleUhleCA9IHBhcmFtcy5wcnYuc2xpY2UoMCwgNjQpO1xuICAgICAgY29uc3QgcHJpdktleUJ1ZmZlciA9IEJ1ZmZlci5mcm9tKHByaXZLZXlIZXgsICdoZXgnKTtcbiAgICAgIHR4LnNpZ24ocHJpdktleUJ1ZmZlcik7XG4gICAgfVxuXG4gICAgY29uc3Qgc2lnbmVkSGV4ID0gdHgudG9IZXgoKTtcbiAgICBjb25zdCBpbnB1dENvdW50ID0gdHgudHhEYXRhLmlucHV0cy5sZW5ndGg7XG4gICAgY29uc3Qgc2lnQ291bnQgPSB0eC5zaWduYXR1cmUuZmlsdGVyKChzKSA9PiBzLmxlbmd0aCA+IDApLmxlbmd0aDtcblxuICAgIHJldHVybiBpbnB1dENvdW50ID4gMCAmJiBzaWdDb3VudCA+PSBpbnB1dENvdW50ID8geyB0eEhleDogc2lnbmVkSGV4IH0gOiB7IGhhbGZTaWduZWQ6IHsgdHhIZXg6IHNpZ25lZEhleCB9IH07XG4gIH1cblxuICBhc3luYyBzaWduTWVzc2FnZShrZXk6IElLZXlQYWlyLCBtZXNzYWdlOiBzdHJpbmcgfCBCdWZmZXIpOiBQcm9taXNlPEJ1ZmZlcj4ge1xuICAgIHRocm93IG5ldyBNZXRob2ROb3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgYXVkaXREZWNyeXB0ZWRLZXkocGFyYW1zOiBBdWRpdERlY3J5cHRlZEtleVBhcmFtcyk6IHZvaWQge1xuICAgIHRocm93IG5ldyBNZXRob2ROb3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gIH1cblxuICAvKipcbiAgICogTVBDIHN1cHBvcnQ6IEthc3BhIHVzZXMgc2VjcDI1NmsxIChTY2hub3JyIHZhcmlhbnQpLlxuICAgKi9cbiAgc3VwcG9ydHNUc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBnZXRNUENBbGdvcml0aG0oKTogTVBDQWxnb3JpdGhtIHtcbiAgICByZXR1cm4gJ2VjZHNhJztcbiAgfVxufVxuIl19
318
+ class Tkaspa extends AbstractKaspaLikeCoin {
319
+ constructor() {
320
+ super(...arguments);
321
+ this.name = 'tkaspa';
322
+ }
323
+ getFullName() {
324
+ return 'Testnet Kaspa';
325
+ }
326
+ isMainnet() {
327
+ return false;
328
+ }
329
+ static createInstance(bitgo) {
330
+ return new Tkaspa(bitgo);
331
+ }
332
+ }
333
+ exports.Tkaspa = Tkaspa;
334
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2FzcGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMva2FzcGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaURBQTRDO0FBQzVDLG1EQWM4QjtBQUM5Qiw2REFTbUM7QUFDbkMsZ0RBQWtDO0FBRWxDLHVDQUFrRDtBQUVsRCxNQUFzQixxQkFBc0IsU0FBUSxnQ0FBZ0I7SUFDbEU7OztPQUdHO0lBQ0gsSUFBSSxPQUFPO1FBQ1QsTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUseUNBQXlDLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxTQUFTO1FBQ1AsT0FBTyxPQUF5QyxDQUFDO0lBQ25ELENBQUM7SUFjRCxtQkFBbUI7UUFDakIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsYUFBYTtRQUNYLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixzQkFBc0I7UUFDcEIsT0FBTyx3QkFBYSxDQUFDLE9BQU8sQ0FBQztJQUMvQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxjQUFjLENBQUMsT0FBZTtRQUM1QixPQUFPLElBQUEsMkJBQW1CLEVBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsVUFBVSxDQUFDLEdBQVc7UUFDcEIsSUFBSSxDQUFDO1lBQ0gsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUM5QixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxVQUFVLENBQUMsR0FBVztRQUNwQixJQUFJLENBQUM7WUFDSCxJQUFJLFFBQVEsQ0FBQyxP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QUFXO1FBQ1QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVTLFNBQVM7UUFDakIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFnQjtRQUNwQyxPQUFPLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7Q0FDRjtBQWRELHNCQWNDO0FBRUQsTUFBYSxNQUFPLFNBQVEscUJBQXFCO0lBQWpEOztRQUNXLFNBQUksR0FBRyxRQUF3QixDQUFDO0lBYTNDLENBQUM7SUFYQyxXQUFXO1FBQ1QsT0FBTyxlQUFlLENBQUM7SUFDekIsQ0FBQztJQUVTLFNBQVM7UUFDakIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFnQjtRQUNwQyxPQUFPLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7Q0FDRjtBQWRELHdCQWNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29pbnMgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7XG4gIEF1ZGl0RGVjcnlwdGVkS2V5UGFyYW1zLFxuICBCaXRHb0Jhc2UsXG4gIElXYWxsZXQsXG4gIEludmFsaWRBZGRyZXNzRXJyb3IsXG4gIEludmFsaWRUcmFuc2FjdGlvbkVycm9yLFxuICBLZXlQYWlyIGFzIElLZXlQYWlyLFxuICBNZXRob2ROb3RJbXBsZW1lbnRlZEVycm9yLFxuICBNUENBbGdvcml0aG0sXG4gIE11bHRpc2lnVHlwZSxcbiAgbXVsdGlzaWdUeXBlcyxcbiAgU2lnbmVkVHJhbnNhY3Rpb24sXG4gIFVuZXhwZWN0ZWRBZGRyZXNzRXJyb3IsXG4gIFZlcmlmeUFkZHJlc3NPcHRpb25zLFxufSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQge1xuICBBYnN0cmFjdFV0eG9Db2luLFxuICBFeHBsYWluVHJhbnNhY3Rpb25PcHRpb25zLFxuICBQYXJzZVRyYW5zYWN0aW9uT3B0aW9ucyxcbiAgU2lnblRyYW5zYWN0aW9uT3B0aW9ucyxcbiAgVHJhbnNhY3Rpb25QcmVidWlsZCxcbiAgVXR4b0NvaW5OYW1lLFxuICBVdHhvQ29pbk5hbWVNYWlubmV0LFxuICB0cmFuc2FjdGlvbixcbn0gZnJvbSAnQGJpdGdvLWJldGEvYWJzdHJhY3QtdXR4byc7XG5pbXBvcnQgKiBhcyBLYXNwYUxpYiBmcm9tICcuL2xpYic7XG5pbXBvcnQgeyBLYXNwYVNpZ25UcmFuc2FjdGlvbk9wdGlvbnMsIEthc3BhVmVyaWZ5VHJhbnNhY3Rpb25PcHRpb25zIH0gZnJvbSAnLi9saWIvaWZhY2UnO1xuaW1wb3J0IHsgaXNWYWxpZEthc3BhQWRkcmVzcyB9IGZyb20gJy4vbGliL3V0aWxzJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0S2FzcGFMaWtlQ29pbiBleHRlbmRzIEFic3RyYWN0VXR4b0NvaW4ge1xuICAvKipcbiAgICogS2FzcGEgaGFzIG5vIHV0eG8tbGliIG5ldHdvcmsgZW50cnkuIFRoaXMgZGVwcmVjYXRlZCBnZXR0ZXIgaXMgb3ZlcnJpZGRlblxuICAgKiB0byBwcmV2ZW50IGFjY2lkZW50YWwgdXNhZ2Ugb2YgdGhlIEJpdGNvaW4gUFNCVCBzaWduaW5nIHN0YWNrLlxuICAgKi9cbiAgZ2V0IG5ldHdvcmsoKTogbmV2ZXIge1xuICAgIHRocm93IG5ldyBFcnJvcihgJHt0aGlzLmdldENoYWluKCl9IGRvZXMgbm90IGhhdmUgYSB1dHhvLWxpYiBuZXR3b3JrIGVudHJ5YCk7XG4gIH1cblxuICAvKipcbiAgICogS2FzcGEgZmFtaWx5IG5hbWUgaXMgJ2thc3BhJyBmb3IgYm90aCBtYWlubmV0IGFuZCB0ZXN0bmV0LlxuICAgKiBPdmVycmlkZSBhdm9pZHMgZ29pbmcgdGhyb3VnaCBuYW1lcy50cyB3aGljaCBvbmx5IGtub3dzIEJpdGNvaW4tZmFtaWx5IGNvaW5zLlxuICAgKiBUaGUgY2FzdCBpcyByZXF1aXJlZCBiZWNhdXNlIFV0eG9Db2luTmFtZU1haW5uZXQgaXMgYSBjbG9zZWQgdW5pb24gb2YgQml0Y29pbi1mYW1pbHkgY29pbnM7XG4gICAqIEthc3BhIG1hbmFnZXMgaXRzIG93biBuZXR3b3JrIHN0YWNrIGFuZCBpcyBpbnRlbnRpb25hbGx5IG91dHNpZGUgdGhhdCB1bmlvbi5cbiAgICovXG4gIGdldEZhbWlseSgpOiBVdHhvQ29pbk5hbWVNYWlubmV0IHtcbiAgICByZXR1cm4gJ2thc3BhJyBhcyB1bmtub3duIGFzIFV0eG9Db2luTmFtZU1haW5uZXQ7XG4gIH1cblxuICAvKipcbiAgICogSHVtYW4tcmVhZGFibGUgbmFtZSBmb3IgdGhpcyBjb2luIHZhcmlhbnQuXG4gICAqIEltcGxlbWVudGVkIGluIGVhY2ggY29uY3JldGUgY2xhc3MgdG8gYXZvaWQgcnVudGltZSBuYW1lIGNvbXBhcmlzb25zLlxuICAgKi9cbiAgYWJzdHJhY3QgZ2V0RnVsbE5hbWUoKTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgaXMgYSBtYWlubmV0IG9yIHRlc3RuZXQgY29pbi5cbiAgICogSW1wbGVtZW50ZWQgaW4gZWFjaCBjb25jcmV0ZSBjbGFzcyB0byBhdm9pZCBydW50aW1lIG5hbWUgY29tcGFyaXNvbnMuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgaXNNYWlubmV0KCk6IGJvb2xlYW47XG5cbiAgc3VwcG9ydHNCbG9ja1RhcmdldCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBiYXNlIGZhY3RvciAoc29tcGkgcGVyIEtBU1BBKS5cbiAgICogMSBLQVNQQSA9IDEwMCwwMDAsMDAwIHNvbXBpICg4IGRlY2ltYWwgcGxhY2VzKVxuICAgKi9cbiAgZ2V0QmFzZUZhY3RvcigpOiBudW1iZXIge1xuICAgIHJldHVybiAxZTg7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgZ2V0RGVmYXVsdE11bHRpc2lnVHlwZSgpOiBNdWx0aXNpZ1R5cGUge1xuICAgIHJldHVybiBtdWx0aXNpZ1R5cGVzLm9uY2hhaW47XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGUgYSBLYXNwYSBhZGRyZXNzLlxuICAgKi9cbiAgaXNWYWxpZEFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzVmFsaWRLYXNwYUFkZHJlc3MoYWRkcmVzcyk7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGUgYSBwdWJsaWMga2V5IChzZWNwMjU2azEgY29tcHJlc3NlZCBvciB1bmNvbXByZXNzZWQpLlxuICAgKi9cbiAgaXNWYWxpZFB1YihwdWI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICBuZXcgS2FzcGFMaWIuS2V5UGFpcih7IHB1YiB9KTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSBhIHByaXZhdGUga2V5LlxuICAgKi9cbiAgaXNWYWxpZFBydihwcnY6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICBuZXcgS2FzcGFMaWIuS2V5UGFpcih7IHBydiB9KTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZSBhIEthc3BhIGtleSBwYWlyLlxuICAgKi9cbiAgZ2VuZXJhdGVLZXlQYWlyKHNlZWQ/OiBCdWZmZXIpOiB7IHB1Yjogc3RyaW5nOyBwcnY6IHN0cmluZyB9IHtcbiAgICBjb25zdCBrZXlQYWlyID0gc2VlZCA/IG5ldyBLYXNwYUxpYi5LZXlQYWlyKHsgc2VlZCB9KSA6IG5ldyBLYXNwYUxpYi5LZXlQYWlyKCk7XG4gICAgY29uc3Qga2V5cyA9IGtleVBhaXIuZ2V0S2V5cygpO1xuXG4gICAgaWYgKCFrZXlzLnBydikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIHBydiBpbiBrZXkgZ2VuZXJhdGlvbi4nKTtcbiAgICB9XG4gICAgaWYgKCFrZXlzLnB1Yikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIHB1YiBpbiBrZXkgZ2VuZXJhdGlvbi4nKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgcHViOiBrZXlzLnB1YixcbiAgICAgIHBydjoga2V5cy5wcnYsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhZGRyZXNzIGJlbG9uZ3MgdG8gd2FsbGV0IGJ5IGRlcml2aW5nIGZyb20ga2V5Y2hhaW5zLlxuICAgKi9cbiAgYXN5bmMgaXNXYWxsZXRBZGRyZXNzKHBhcmFtczogVmVyaWZ5QWRkcmVzc09wdGlvbnMpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCB7IGFkZHJlc3MsIGtleWNoYWlucyB9ID0gcGFyYW1zO1xuXG4gICAgaWYgKCF0aGlzLmlzVmFsaWRBZGRyZXNzKGFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFkZHJlc3NFcnJvcihgaW52YWxpZCBhZGRyZXNzOiAke2FkZHJlc3N9YCk7XG4gICAgfVxuXG4gICAgaWYgKCFrZXljaGFpbnMgfHwga2V5Y2hhaW5zLmxlbmd0aCAhPT0gMykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGtleWNoYWlucycpO1xuICAgIH1cblxuICAgIC8vIENhc3QgdG8gc3RyaW5nIHRvIGF2b2lkIHR5cGUtb3ZlcmxhcCBsaW50IHVudGlsIGFic3RyYWN0LXV0eG8gZGlzdCBpcyByZWJ1aWx0IHdpdGgga2FzcGEgbmFtZXMuXG4gICAgY29uc3QgbmV0d29ya1R5cGUgPSAodGhpcy5uYW1lIGFzIHN0cmluZykgPT09ICdrYXNwYScgPyAnbWFpbm5ldCcgOiAndGVzdG5ldCc7XG4gICAgY29uc3QgZGVyaXZlZEFkZHJlc3MgPSBuZXcgS2FzcGFMaWIuS2V5UGFpcih7IHB1Yjoga2V5Y2hhaW5zWzBdLnB1YiB9KS5nZXRBZGRyZXNzKG5ldHdvcmtUeXBlKTtcblxuICAgIGlmIChkZXJpdmVkQWRkcmVzcyAhPT0gYWRkcmVzcykge1xuICAgICAgdGhyb3cgbmV3IFVuZXhwZWN0ZWRBZGRyZXNzRXJyb3IoYGFkZHJlc3MgdmFsaWRhdGlvbiBmYWlsdXJlOiAke2FkZHJlc3N9IGlzIG5vdCBvZiB0aGlzIHdhbGxldGApO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRCdWlsZGVyKCk6IEthc3BhTGliLlRyYW5zYWN0aW9uQnVpbGRlckZhY3Rvcnkge1xuICAgIHJldHVybiBuZXcgS2FzcGFMaWIuVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeShjb2lucy5nZXQodGhpcy5nZXRDaGFpbigpKSk7XG4gIH1cblxuICAvKipcbiAgICogUGFyc2UgYSBLYXNwYSB0cmFuc2FjdGlvbiBmcm9tIHByZWJ1aWxkLlxuICAgKiBPdmVycmlkZXMgQWJzdHJhY3RVdHhvQ29pbidzIFBTQlQtYmFzZWQgaW1wbGVtZW50YXRpb24gd2l0aCBLYXNwYSdzIEpTT04taGV4IGZvcm1hdC5cbiAgICovXG4gIGFzeW5jIHBhcnNlVHJhbnNhY3Rpb248VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IG51bWJlcj4oXG4gICAgcGFyYW1zOiBQYXJzZVRyYW5zYWN0aW9uT3B0aW9uczxUTnVtYmVyPlxuICApOiBQcm9taXNlPHRyYW5zYWN0aW9uLlBhcnNlZFRyYW5zYWN0aW9uPFROdW1iZXI+PiB7XG4gICAgY29uc3QgYW55UGFyYW1zID0gcGFyYW1zIGFzIHVua25vd24gYXMgeyB0eEhleD86IHN0cmluZzsgaGFsZlNpZ25lZD86IHsgdHhIZXg/OiBzdHJpbmcgfSB9O1xuICAgIGNvbnN0IHR4SGV4ID0gYW55UGFyYW1zLnR4SGV4ID8/IGFueVBhcmFtcy5oYWxmU2lnbmVkPy50eEhleDtcbiAgICBpZiAoIXR4SGV4KSB7XG4gICAgICByZXR1cm4ge30gYXMgdHJhbnNhY3Rpb24uUGFyc2VkVHJhbnNhY3Rpb248VE51bWJlcj47XG4gICAgfVxuICAgIGxldCB0eDogS2FzcGFMaWIuVHJhbnNhY3Rpb247XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlciA9IHRoaXMuZ2V0QnVpbGRlcigpLmZyb20odHhIZXgpO1xuICAgICAgdHggPSAoYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCkpIGFzIEthc3BhTGliLlRyYW5zYWN0aW9uO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihgSW52YWxpZCB0cmFuc2FjdGlvbjogJHsoZSBhcyBFcnJvcikubWVzc2FnZX1gKTtcbiAgICB9XG4gICAgY29uc3QgY29pbiA9IHRoaXMuZ2V0Q2hhaW4oKTtcbiAgICByZXR1cm4ge1xuICAgICAgaW5wdXRzOiB0eC50eERhdGEuaW5wdXRzLm1hcCgoaW5wdXQpID0+ICh7XG4gICAgICAgIGFtb3VudDogaW5wdXQuYW1vdW50LFxuICAgICAgICBjb2luLFxuICAgICAgfSkpLFxuICAgICAgb3V0cHV0czogdHgudHhEYXRhLm91dHB1dHMubWFwKChvdXRwdXQpID0+ICh7XG4gICAgICAgIGFkZHJlc3M6IG91dHB1dC5hZGRyZXNzLFxuICAgICAgICBhbW91bnQ6IG91dHB1dC5hbW91bnQsXG4gICAgICAgIGNvaW4sXG4gICAgICB9KSksXG4gICAgfSBhcyB1bmtub3duIGFzIHRyYW5zYWN0aW9uLlBhcnNlZFRyYW5zYWN0aW9uPFROdW1iZXI+O1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmeSBhIEthc3BhIHRyYW5zYWN0aW9uIGFnYWluc3QgZXhwZWN0ZWQgcGFyYW1zLlxuICAgKi9cbiAgYXN5bmMgdmVyaWZ5VHJhbnNhY3Rpb24ocGFyYW1zOiBLYXNwYVZlcmlmeVRyYW5zYWN0aW9uT3B0aW9ucyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHR4SGV4ID0gcGFyYW1zLnR4UHJlYnVpbGQ/LnR4SGV4O1xuICAgIGlmICghdHhIZXgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignbWlzc2luZyByZXF1aXJlZCB0eCBwcmVidWlsZCBwcm9wZXJ0eSB0eEhleCcpO1xuICAgIH1cblxuICAgIGxldCB0eDogS2FzcGFMaWIuVHJhbnNhY3Rpb247XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlciA9IHRoaXMuZ2V0QnVpbGRlcigpLmZyb20odHhIZXgpO1xuICAgICAgdHggPSAoYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCkpIGFzIEthc3BhTGliLlRyYW5zYWN0aW9uO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgdHJhbnNhY3Rpb246ICR7KGVycm9yIGFzIEVycm9yKS5tZXNzYWdlfWApO1xuICAgIH1cblxuICAgIGNvbnN0IGV4cGxhaW5lZFR4ID0gdHguZXhwbGFpblRyYW5zYWN0aW9uKCk7XG5cbiAgICBpZiAocGFyYW1zLnR4UGFyYW1zLnJlY2lwaWVudHMpIHtcbiAgICAgIGNvbnN0IHJlY2lwaWVudENvdW50ID0gcGFyYW1zLnR4UGFyYW1zLnJlY2lwaWVudHMubGVuZ3RoO1xuICAgICAgaWYgKGV4cGxhaW5lZFR4Lm91dHB1dHMubGVuZ3RoIDwgcmVjaXBpZW50Q291bnQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBhdCBsZWFzdCAke3JlY2lwaWVudENvdW50fSBvdXRwdXRzLCB0cmFuc2FjdGlvbiBoYWQgJHtleHBsYWluZWRUeC5vdXRwdXRzLmxlbmd0aH1gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHBsYWluIGEgS2FzcGEgdHJhbnNhY3Rpb24uXG4gICAqIE92ZXJyaWRlcyBBYnN0cmFjdFV0eG9Db2luJ3MgUFNCVC1iYXNlZCBpbXBsZW1lbnRhdGlvbiB3aXRoIEthc3BhJ3MgSlNPTi1oZXggZm9ybWF0LlxuICAgKiBUaGUgcmV0dXJuIHR5cGUgY2FzdCBpcyBuZWNlc3NhcnkgYmVjYXVzZSBLYXNwYSB1c2VzIGEgY3VzdG9tIFRyYW5zYWN0aW9uRXhwbGFuYXRpb25cbiAgICogdGhhdCBkb2Vzbid0IGluY2x1ZGUgQml0Y29pbi1zcGVjaWZpYyBmaWVsZHMgKGNoYWluLCBpbmRleCkgb24gb3V0cHV0cy5cbiAgICovXG4gIGFzeW5jIGV4cGxhaW5UcmFuc2FjdGlvbjxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPihcbiAgICBwYXJhbXM6IEV4cGxhaW5UcmFuc2FjdGlvbk9wdGlvbnM8VE51bWJlcj4sXG4gICAgX3dhbGxldD86IElXYWxsZXRcbiAgKTogUHJvbWlzZTxBd2FpdGVkPFJldHVyblR5cGU8QWJzdHJhY3RVdHhvQ29pblsnZXhwbGFpblRyYW5zYWN0aW9uJ10+Pj4ge1xuICAgIGNvbnN0IGFueVBhcmFtcyA9IHBhcmFtcyBhcyB1bmtub3duIGFzIHsgdHhIZXg/OiBzdHJpbmc7IGhhbGZTaWduZWQ/OiB7IHR4SGV4Pzogc3RyaW5nIH0gfTtcbiAgICBjb25zdCB0eEhleCA9IGFueVBhcmFtcy50eEhleCA/PyBhbnlQYXJhbXMuaGFsZlNpZ25lZD8udHhIZXg7XG4gICAgaWYgKCF0eEhleCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdtaXNzaW5nIHRyYW5zYWN0aW9uIGhleCcpO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgY29uc3QgdHhCdWlsZGVyID0gdGhpcy5nZXRCdWlsZGVyKCkuZnJvbSh0eEhleCk7XG4gICAgICBjb25zdCB0eCA9IChhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKSkgYXMgS2FzcGFMaWIuVHJhbnNhY3Rpb247XG4gICAgICByZXR1cm4gdHguZXhwbGFpblRyYW5zYWN0aW9uKCkgYXMgdW5rbm93biBhcyBBd2FpdGVkPFJldHVyblR5cGU8QWJzdHJhY3RVdHhvQ29pblsnZXhwbGFpblRyYW5zYWN0aW9uJ10+PjtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgdHJhbnNhY3Rpb246ICR7KGUgYXMgRXJyb3IpLm1lc3NhZ2V9YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNpZ24gYSBLYXNwYSB0cmFuc2FjdGlvbiB1c2luZyBzZWNwMjU2azEgU2Nobm9yciBzaWduYXR1cmVzLlxuICAgKlxuICAgKiBLYXNwYSBpcyBhIFVUWE8gY29pbjogZXZlcnkgaW5wdXQgaGFzIGl0cyBvd24gc2lnaGFzaC5cbiAgICogVHdvIHNpZ25pbmcgcGF0aHMgYXJlIHN1cHBvcnRlZDpcbiAgICpcbiAgICogUGF0aCBBIOKAlCBgcGFyYW1zLnBydmAgKGRpcmVjdCBrZXksIHRlc3QgLyBub24tVFNTKTpcbiAgICogICBDYWxscyBgdHguc2lnbihwcnYpYCB3aGljaCBsb29wcyBldmVyeSBpbnB1dCBhbmQgcHJvZHVjZXMgYSBTY2hub3JyXG4gICAqICAgc2lnbmF0dXJlIGZvciBlYWNoIG9uZSBpbiBhIHNpbmdsZSBjYWxsLlxuICAgKlxuICAgKiBQYXRoIEIg4oCUIGBwYXJhbXMuc2lnbmF0dXJlc2AgKFRTUyBtdWx0aS1pbnB1dCk6XG4gICAqICAgVGhlIGNhbGxlciBhbHJlYWR5IHJhbiBvbmUgaW5kZXBlbmRlbnQgREtMUyBzZXNzaW9uIHBlciBpbnB1dCwgdXNpbmdcbiAgICogICBgdHguc2lnbmFibGVQYXlsb2Fkc1tpXWAgYXMgdGhlIG1lc3NhZ2UgZm9yIHNlc3Npb24gaS4gIEVhY2ggcmVzdWx0aW5nXG4gICAqICAgc2lnbmF0dXJlIGlzIGFwcGxpZWQgdG8gaXRzIGlucHV0IHZpYSBgYWRkU2lnbmF0dXJlRm9ySW5wdXRgLlxuICAgKlxuICAgKiAgIFBsYXRmb3JtIGZsb3c6XG4gICAqICAgICAxLiBCdWlsZCB0eCwgcmVhZCBgKHR4IGFzIFRyYW5zYWN0aW9uKS5zaWduYWJsZVBheWxvYWRzYCDihpIgQnVmZmVyW05dXG4gICAqICAgICAyLiBSdW4gTiBES0xTIHNlc3Npb25zIGluIHBhcmFsbGVsLCBvbmUgcGVyIHNpZ2hhc2hcbiAgICogICAgIDMuIENhbGwgc2lnblRyYW5zYWN0aW9uKHsgc2lnbmF0dXJlczogW3sgaW5wdXRJbmRleCwgcHViS2V5LCBzaWduYXR1cmUgfSwgLi4uXSB9KVxuICAgKi9cbiAgYXN5bmMgc2lnblRyYW5zYWN0aW9uPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQgPSBudW1iZXI+KFxuICAgIHBhcmFtczogU2lnblRyYW5zYWN0aW9uT3B0aW9uczxUTnVtYmVyPlxuICApOiBQcm9taXNlPFNpZ25lZFRyYW5zYWN0aW9uPiB7XG4gICAgY29uc3Qga2FzcGFQYXJhbXMgPSBwYXJhbXMgYXMgdW5rbm93biBhcyBLYXNwYVNpZ25UcmFuc2FjdGlvbk9wdGlvbnM7XG4gICAgY29uc3QgdHhIZXggPSBrYXNwYVBhcmFtcy50eFByZWJ1aWxkPy50eEhleDtcbiAgICBpZiAoIXR4SGV4KSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ21pc3NpbmcgdHhIZXggaW4gdHhQcmVidWlsZCcpO1xuICAgIH1cblxuICAgIGNvbnN0IHR4QnVpbGRlciA9IHRoaXMuZ2V0QnVpbGRlcigpLmZyb20odHhIZXgpO1xuICAgIGNvbnN0IHR4ID0gKGF3YWl0IHR4QnVpbGRlci5idWlsZCgpKSBhcyBLYXNwYUxpYi5UcmFuc2FjdGlvbjtcblxuICAgIGlmIChrYXNwYVBhcmFtcy5wcnYpIHtcbiAgICAgIC8vIFBhdGggQTogZGlyZWN0IHByaXZhdGUta2V5IHNpZ25pbmcg4oCUIGNvcnJlY3QgZm9yIGFsbCBpbnB1dHMgYXQgb25jZS5cbiAgICAgIGNvbnN0IHByaXZLZXlCdWZmZXIgPSBCdWZmZXIuZnJvbShrYXNwYVBhcmFtcy5wcnYuc2xpY2UoMCwgNjQpLCAnaGV4Jyk7XG4gICAgICB0eC5zaWduKHByaXZLZXlCdWZmZXIpO1xuICAgIH0gZWxzZSBpZiAoa2FzcGFQYXJhbXMuc2lnbmF0dXJlcyAmJiBrYXNwYVBhcmFtcy5zaWduYXR1cmVzLmxlbmd0aCA+IDApIHtcbiAgICAgIC8vIFBhdGggQjogVFNTIG11bHRpLWlucHV0IOKAlCBhcHBseSBlYWNoIGV4dGVybmFsbHktY29tcHV0ZWQgcGVyLWlucHV0IHNpZ25hdHVyZS5cbiAgICAgIC8vIEVhY2ggc2lnbmF0dXJlIE1VU1QgaGF2ZSBiZWVuIHByb2R1Y2VkIG92ZXIgc2lnbmFibGVQYXlsb2Fkc1tpbnB1dEluZGV4XSxcbiAgICAgIC8vIGkuZS4gdGhlIHNpZ2hhc2ggdGhhdCBjb21taXRzIHNwZWNpZmljYWxseSB0byB0aGF0IGlucHV0J3MgaW5kZXguXG4gICAgICAvLyBBcHBseWluZyBhIHNpZ25hdHVyZSBwcm9kdWNlZCBvdmVyIGEgZGlmZmVyZW50IG1lc3NhZ2Ugd2lsbCBiZSByZWplY3RlZFxuICAgICAgLy8gYnkgdGhlIEthc3BhIG5vZGUncyBzY3JpcHQgZW5naW5lLlxuICAgICAgZm9yIChjb25zdCB7IGlucHV0SW5kZXgsIHB1YktleSwgc2lnbmF0dXJlIH0gb2Yga2FzcGFQYXJhbXMuc2lnbmF0dXJlcykge1xuICAgICAgICB0eC5hZGRTaWduYXR1cmVGb3JJbnB1dChpbnB1dEluZGV4LCBwdWJLZXksIEJ1ZmZlci5mcm9tKHNpZ25hdHVyZSwgJ2hleCcpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBpbnB1dENvdW50ID0gdHgudHhEYXRhLmlucHV0cy5sZW5ndGg7XG4gICAgY29uc3Qgc2lnQ291bnQgPSB0eC5zaWduYXR1cmUuZmlsdGVyKChzKSA9PiBzLmxlbmd0aCA+IDApLmxlbmd0aDtcbiAgICBjb25zdCBzaWduZWRIZXggPSB0eC50b0hleCgpO1xuXG4gICAgcmV0dXJuIGlucHV0Q291bnQgPiAwICYmIHNpZ0NvdW50ID49IGlucHV0Q291bnQgPyB7IHR4SGV4OiBzaWduZWRIZXggfSA6IHsgaGFsZlNpZ25lZDogeyB0eEhleDogc2lnbmVkSGV4IH0gfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBLYXNwYSdzIHR4SGV4IGlzIGFscmVhZHkgdGhlIGN1c3RvbSBKU09OLWhleCBmb3JtYXQg4oCUIHNraXAgdGhlIFBTQlRcbiAgICogcmUtZW5jb2RlIHRoYXQgQWJzdHJhY3RVdHhvQ29pbi5wb3N0UHJvY2Vzc1ByZWJ1aWxkIHdvdWxkIG90aGVyd2lzZSBhcHBseS5cbiAgICovXG4gIGFzeW5jIHBvc3RQcm9jZXNzUHJlYnVpbGQ8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gICAgcHJlYnVpbGQ6IFRyYW5zYWN0aW9uUHJlYnVpbGQ8VE51bWJlcj5cbiAgKTogUHJvbWlzZTxUcmFuc2FjdGlvblByZWJ1aWxkPFROdW1iZXI+PiB7XG4gICAgcmV0dXJuIHByZWJ1aWxkO1xuICB9XG5cbiAgYXN5bmMgc2lnbk1lc3NhZ2UoX2tleTogSUtleVBhaXIsIF9tZXNzYWdlOiBzdHJpbmcgfCBCdWZmZXIpOiBQcm9taXNlPEJ1ZmZlcj4ge1xuICAgIHRocm93IG5ldyBNZXRob2ROb3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgYXVkaXREZWNyeXB0ZWRLZXkoX3BhcmFtczogQXVkaXREZWNyeXB0ZWRLZXlQYXJhbXMpOiB2b2lkIHtcbiAgICB0aHJvdyBuZXcgTWV0aG9kTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRTUy9NUEMgc3VwcG9ydDogS2FzcGEgdXNlcyBzZWNwMjU2azEgKFNjaG5vcnIgdmFyaWFudCBmb3Igb24tY2hhaW4sXG4gICAqIEVDRFNBIGZvciB0aGUgb2ZmLWNoYWluIFRTUyBjZXJlbW9ueSkuXG4gICAqXG4gICAqIEthc3BhIGlzIGEgVVRYTyBjb2luIHdpdGggYSBCSVAtMTQzLWxpa2UgcGVyLWlucHV0IHNpZ2hhc2ggc2NoZW1lLlxuICAgKiBFYWNoIGlucHV0IGNvbW1pdHMgdG8gaXRzIG93biBpbmRleCBhbmQgcHJvZHVjZXMgYSBkaXN0aW5jdCBoYXNoLlxuICAgKiBPbmUgaW5kZXBlbmRlbnQgREtMUyBzaWduaW5nIHNlc3Npb24gaXMgcmVxdWlyZWQgcGVyIGlucHV0LlxuICAgKlxuICAgKiBDb3JyZWN0IG11bHRpLWlucHV0IFRTUyBmbG93OlxuICAgKiAgIDEuIFJlYWQgYHR4LnNpZ25hYmxlUGF5bG9hZHNgIOKGkiBCdWZmZXJbXSAob25lIHNpZ2hhc2ggcGVyIGlucHV0KS5cbiAgICogICAyLiBSdW4gb25lIERLTFMgc2lnbmluZyBzZXNzaW9uIHBlciBzaWdoYXNoIElOIFBBUkFMTEVMLlxuICAgKiAgIDMuIEFwcGx5IGVhY2ggc2lnbmF0dXJlOiBgdHguYWRkU2lnbmF0dXJlRm9ySW5wdXQoaSwgcHViS2V5LCBzaWcpYC5cbiAgICovXG4gIHN1cHBvcnRzVHNzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgZ2V0TVBDQWxnb3JpdGhtKCk6IE1QQ0FsZ29yaXRobSB7XG4gICAgcmV0dXJuICdlY2RzYSc7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEthc3BhIGV4dGVuZHMgQWJzdHJhY3RLYXNwYUxpa2VDb2luIHtcbiAgcmVhZG9ubHkgbmFtZSA9ICdrYXNwYScgYXMgVXR4b0NvaW5OYW1lO1xuXG4gIGdldEZ1bGxOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdLYXNwYSc7XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNNYWlubmV0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgc3RhdGljIGNyZWF0ZUluc3RhbmNlKGJpdGdvOiBCaXRHb0Jhc2UpOiBLYXNwYSB7XG4gICAgcmV0dXJuIG5ldyBLYXNwYShiaXRnbyk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRrYXNwYSBleHRlbmRzIEFic3RyYWN0S2FzcGFMaWtlQ29pbiB7XG4gIHJlYWRvbmx5IG5hbWUgPSAndGthc3BhJyBhcyBVdHhvQ29pbk5hbWU7XG5cbiAgZ2V0RnVsbE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ1Rlc3RuZXQgS2FzcGEnO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzTWFpbm5ldCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBzdGF0aWMgY3JlYXRlSW5zdGFuY2UoYml0Z286IEJpdEdvQmFzZSk6IFRrYXNwYSB7XG4gICAgcmV0dXJuIG5ldyBUa2FzcGEoYml0Z28pO1xuICB9XG59XG4iXX0=
@@ -4,9 +4,47 @@
4
4
  * References:
5
5
  * - https://kaspa.org/
6
6
  * - https://kaspa.aspectron.org/docs/
7
+ * - rusty-kaspa/crypto/txscript/src/standard.rs
8
+ * - rusty-kaspa/crypto/hashes/src/hashers.rs
9
+ * - rusty-kaspa/consensus/core/src/hashing/sighash.rs
7
10
  */
8
11
  export declare const MAINNET_PREFIX = "kaspa";
9
12
  export declare const TESTNET_PREFIX = "kaspatest";
13
+ /** Default transaction fee (minimum relay fee in sompi) */
10
14
  export declare const DEFAULT_FEE = "1000";
15
+ /** Kaspa transaction version */
11
16
  export declare const TX_VERSION = 0;
17
+ export declare const SIGHASH_ALL = 1;
18
+ export declare const SIGHASH_NONE = 2;
19
+ export declare const SIGHASH_SINGLE = 4;
20
+ export declare const SIGHASH_ANYONECANPAY = 128;
21
+ /** Schnorr BIP-340 checksig opcode — used by v0 Kaspa addresses */
22
+ export declare const OP_CHECKSIG_SCHNORR = 172;
23
+ /** secp256k1 ECDSA checksig opcode — used by v1 Kaspa addresses */
24
+ export declare const OP_CHECKSIG_ECDSA = 171;
25
+ /** Script version for standard P2PK scripts */
26
+ export declare const SCRIPT_PUBLIC_KEY_VERSION = 0;
27
+ /**
28
+ * Kaspa P2PK script type.
29
+ * Determines the scriptPublicKey layout and the required signing algorithm.
30
+ *
31
+ * SCHNORR (v0): OP_DATA_32 (0x20) | xOnlyPubKey32 | OP_CHECKSIG_SCHNORR (0xAC)
32
+ * ECDSA (v1): OP_DATA_33 (0x21) | compressedPubKey33 | OP_CHECKSIG_ECDSA (0xAB)
33
+ */
34
+ export declare enum KaspaScriptType {
35
+ SCHNORR = 0,// v0 — Schnorr P2PK, x-only 32-byte pubkey
36
+ ECDSA = 1
37
+ }
38
+ /**
39
+ * Kaspa address version / type.
40
+ * Mirrors KaspaScriptType — the version byte in the bech32 address payload
41
+ * encodes which script type (and therefore which signature algorithm) applies.
42
+ *
43
+ * SCHNORR (v0): version byte 0x00, x-only 32-byte pubkey in address payload
44
+ * ECDSA (v1): version byte 0x01, compressed 33-byte pubkey in address payload
45
+ */
46
+ export declare enum KaspaAddressType {
47
+ SCHNORR = 0,// default — v0 Schnorr P2PK address
48
+ ECDSA = 1
49
+ }
12
50
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,eAAO,MAAM,cAAc,UAAU,CAAC;AACtC,eAAO,MAAM,cAAc,cAAc,CAAC;AAG1C,eAAO,MAAM,WAAW,SAAS,CAAC;AAGlC,eAAO,MAAM,UAAU,IAAI,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,eAAO,MAAM,cAAc,UAAU,CAAC;AACtC,eAAO,MAAM,cAAc,cAAc,CAAC;AAI1C,2DAA2D;AAC3D,eAAO,MAAM,WAAW,SAAS,CAAC;AAElC,gCAAgC;AAChC,eAAO,MAAM,UAAU,IAAI,CAAC;AAM5B,eAAO,MAAM,WAAW,IAAO,CAAC;AAChC,eAAO,MAAM,YAAY,IAAO,CAAC;AACjC,eAAO,MAAM,cAAc,IAAO,CAAC;AACnC,eAAO,MAAM,oBAAoB,MAAO,CAAC;AAWzC,mEAAmE;AACnE,eAAO,MAAM,mBAAmB,MAAO,CAAC;AAExC,mEAAmE;AACnE,eAAO,MAAM,iBAAiB,MAAO,CAAC;AAEtC,+CAA+C;AAC/C,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAI3C;;;;;;GAMG;AACH,oBAAY,eAAe;IACzB,OAAO,IAAI,CAAE,2CAA2C;IACxD,KAAK,IAAI;CACV;AAED;;;;;;;GAOG;AACH,oBAAY,gBAAgB;IAC1B,OAAO,IAAI,CAAE,oCAAoC;IACjD,KAAK,IAAI;CACV"}
@@ -5,14 +5,65 @@
5
5
  * References:
6
6
  * - https://kaspa.org/
7
7
  * - https://kaspa.aspectron.org/docs/
8
+ * - rusty-kaspa/crypto/txscript/src/standard.rs
9
+ * - rusty-kaspa/crypto/hashes/src/hashers.rs
10
+ * - rusty-kaspa/consensus/core/src/hashing/sighash.rs
8
11
  */
9
12
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.TX_VERSION = exports.DEFAULT_FEE = exports.TESTNET_PREFIX = exports.MAINNET_PREFIX = void 0;
11
- // Address format
13
+ exports.KaspaAddressType = exports.KaspaScriptType = exports.SCRIPT_PUBLIC_KEY_VERSION = exports.OP_CHECKSIG_ECDSA = exports.OP_CHECKSIG_SCHNORR = exports.SIGHASH_ANYONECANPAY = exports.SIGHASH_SINGLE = exports.SIGHASH_NONE = exports.SIGHASH_ALL = exports.TX_VERSION = exports.DEFAULT_FEE = exports.TESTNET_PREFIX = exports.MAINNET_PREFIX = void 0;
14
+ // ── Network ───────────────────────────────────────────────────────────────────
12
15
  exports.MAINNET_PREFIX = 'kaspa';
13
16
  exports.TESTNET_PREFIX = 'kaspatest';
14
- // Default transaction fee (minimum relay fee in sompi)
17
+ // ── Transaction ───────────────────────────────────────────────────────────────
18
+ /** Default transaction fee (minimum relay fee in sompi) */
15
19
  exports.DEFAULT_FEE = '1000'; // 0.00001 KASPA minimum
16
- // Kaspa transaction version
20
+ /** Kaspa transaction version */
17
21
  exports.TX_VERSION = 0;
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBRUgsaUJBQWlCO0FBQ0osUUFBQSxjQUFjLEdBQUcsT0FBTyxDQUFDO0FBQ3pCLFFBQUEsY0FBYyxHQUFHLFdBQVcsQ0FBQztBQUUxQyx1REFBdUQ7QUFDMUMsUUFBQSxXQUFXLEdBQUcsTUFBTSxDQUFDLENBQUMsd0JBQXdCO0FBRTNELDRCQUE0QjtBQUNmLFFBQUEsVUFBVSxHQUFHLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogS2FzcGEgKEtBU1BBKSBDb25zdGFudHNcbiAqXG4gKiBSZWZlcmVuY2VzOlxuICogLSBodHRwczovL2thc3BhLm9yZy9cbiAqIC0gaHR0cHM6Ly9rYXNwYS5hc3BlY3Ryb24ub3JnL2RvY3MvXG4gKi9cblxuLy8gQWRkcmVzcyBmb3JtYXRcbmV4cG9ydCBjb25zdCBNQUlOTkVUX1BSRUZJWCA9ICdrYXNwYSc7XG5leHBvcnQgY29uc3QgVEVTVE5FVF9QUkVGSVggPSAna2FzcGF0ZXN0JztcblxuLy8gRGVmYXVsdCB0cmFuc2FjdGlvbiBmZWUgKG1pbmltdW0gcmVsYXkgZmVlIGluIHNvbXBpKVxuZXhwb3J0IGNvbnN0IERFRkFVTFRfRkVFID0gJzEwMDAnOyAvLyAwLjAwMDAxIEtBU1BBIG1pbmltdW1cblxuLy8gS2FzcGEgdHJhbnNhY3Rpb24gdmVyc2lvblxuZXhwb3J0IGNvbnN0IFRYX1ZFUlNJT04gPSAwO1xuIl19
22
+ // ── SigHash type flags ────────────────────────────────────────────────────────
23
+ //
24
+ // Defined in rusty-kaspa consensus/core/src/hashing/sighash_type.rs
25
+ exports.SIGHASH_ALL = 0x01;
26
+ exports.SIGHASH_NONE = 0x02;
27
+ exports.SIGHASH_SINGLE = 0x04;
28
+ exports.SIGHASH_ANYONECANPAY = 0x80;
29
+ // ── Script opcodes ────────────────────────────────────────────────────────────
30
+ //
31
+ // Verified against:
32
+ // https://kaspa.aspectron.org/docs/enums/Opcodes.html
33
+ // rusty-kaspa/crypto/txscript/src/standard.rs
34
+ //
35
+ // OpCheckSig = 172 = 0xAC → Schnorr P2PK (v0 address)
36
+ // OpCheckSigECDSA = 171 = 0xAB → ECDSA P2PK (v1 address)
37
+ /** Schnorr BIP-340 checksig opcode — used by v0 Kaspa addresses */
38
+ exports.OP_CHECKSIG_SCHNORR = 0xac;
39
+ /** secp256k1 ECDSA checksig opcode — used by v1 Kaspa addresses */
40
+ exports.OP_CHECKSIG_ECDSA = 0xab;
41
+ /** Script version for standard P2PK scripts */
42
+ exports.SCRIPT_PUBLIC_KEY_VERSION = 0;
43
+ // ── Enums ─────────────────────────────────────────────────────────────────────
44
+ /**
45
+ * Kaspa P2PK script type.
46
+ * Determines the scriptPublicKey layout and the required signing algorithm.
47
+ *
48
+ * SCHNORR (v0): OP_DATA_32 (0x20) | xOnlyPubKey32 | OP_CHECKSIG_SCHNORR (0xAC)
49
+ * ECDSA (v1): OP_DATA_33 (0x21) | compressedPubKey33 | OP_CHECKSIG_ECDSA (0xAB)
50
+ */
51
+ var KaspaScriptType;
52
+ (function (KaspaScriptType) {
53
+ KaspaScriptType[KaspaScriptType["SCHNORR"] = 0] = "SCHNORR";
54
+ KaspaScriptType[KaspaScriptType["ECDSA"] = 1] = "ECDSA";
55
+ })(KaspaScriptType || (exports.KaspaScriptType = KaspaScriptType = {}));
56
+ /**
57
+ * Kaspa address version / type.
58
+ * Mirrors KaspaScriptType — the version byte in the bech32 address payload
59
+ * encodes which script type (and therefore which signature algorithm) applies.
60
+ *
61
+ * SCHNORR (v0): version byte 0x00, x-only 32-byte pubkey in address payload
62
+ * ECDSA (v1): version byte 0x01, compressed 33-byte pubkey in address payload
63
+ */
64
+ var KaspaAddressType;
65
+ (function (KaspaAddressType) {
66
+ KaspaAddressType[KaspaAddressType["SCHNORR"] = 0] = "SCHNORR";
67
+ KaspaAddressType[KaspaAddressType["ECDSA"] = 1] = "ECDSA";
68
+ })(KaspaAddressType || (exports.KaspaAddressType = KaspaAddressType = {}));
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7R0FTRzs7O0FBRUgsaUZBQWlGO0FBRXBFLFFBQUEsY0FBYyxHQUFHLE9BQU8sQ0FBQztBQUN6QixRQUFBLGNBQWMsR0FBRyxXQUFXLENBQUM7QUFFMUMsaUZBQWlGO0FBRWpGLDJEQUEyRDtBQUM5QyxRQUFBLFdBQVcsR0FBRyxNQUFNLENBQUMsQ0FBQyx3QkFBd0I7QUFFM0QsZ0NBQWdDO0FBQ25CLFFBQUEsVUFBVSxHQUFHLENBQUMsQ0FBQztBQUU1QixpRkFBaUY7QUFDakYsRUFBRTtBQUNGLG9FQUFvRTtBQUV2RCxRQUFBLFdBQVcsR0FBRyxJQUFJLENBQUM7QUFDbkIsUUFBQSxZQUFZLEdBQUcsSUFBSSxDQUFDO0FBQ3BCLFFBQUEsY0FBYyxHQUFHLElBQUksQ0FBQztBQUN0QixRQUFBLG9CQUFvQixHQUFHLElBQUksQ0FBQztBQUV6QyxpRkFBaUY7QUFDakYsRUFBRTtBQUNGLG9CQUFvQjtBQUNwQix3REFBd0Q7QUFDeEQsZ0RBQWdEO0FBQ2hELEVBQUU7QUFDRiw0REFBNEQ7QUFDNUQsMkRBQTJEO0FBRTNELG1FQUFtRTtBQUN0RCxRQUFBLG1CQUFtQixHQUFHLElBQUksQ0FBQztBQUV4QyxtRUFBbUU7QUFDdEQsUUFBQSxpQkFBaUIsR0FBRyxJQUFJLENBQUM7QUFFdEMsK0NBQStDO0FBQ2xDLFFBQUEseUJBQXlCLEdBQUcsQ0FBQyxDQUFDO0FBRTNDLGlGQUFpRjtBQUVqRjs7Ozs7O0dBTUc7QUFDSCxJQUFZLGVBR1g7QUFIRCxXQUFZLGVBQWU7SUFDekIsMkRBQVcsQ0FBQTtJQUNYLHVEQUFTLENBQUE7QUFDWCxDQUFDLEVBSFcsZUFBZSwrQkFBZixlQUFlLFFBRzFCO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILElBQVksZ0JBR1g7QUFIRCxXQUFZLGdCQUFnQjtJQUMxQiw2REFBVyxDQUFBO0lBQ1gseURBQVMsQ0FBQTtBQUNYLENBQUMsRUFIVyxnQkFBZ0IsZ0NBQWhCLGdCQUFnQixRQUczQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogS2FzcGEgKEtBU1BBKSBDb25zdGFudHNcbiAqXG4gKiBSZWZlcmVuY2VzOlxuICogLSBodHRwczovL2thc3BhLm9yZy9cbiAqIC0gaHR0cHM6Ly9rYXNwYS5hc3BlY3Ryb24ub3JnL2RvY3MvXG4gKiAtIHJ1c3R5LWthc3BhL2NyeXB0by90eHNjcmlwdC9zcmMvc3RhbmRhcmQucnNcbiAqIC0gcnVzdHkta2FzcGEvY3J5cHRvL2hhc2hlcy9zcmMvaGFzaGVycy5yc1xuICogLSBydXN0eS1rYXNwYS9jb25zZW5zdXMvY29yZS9zcmMvaGFzaGluZy9zaWdoYXNoLnJzXG4gKi9cblxuLy8g4pSA4pSAIE5ldHdvcmsg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbmV4cG9ydCBjb25zdCBNQUlOTkVUX1BSRUZJWCA9ICdrYXNwYSc7XG5leHBvcnQgY29uc3QgVEVTVE5FVF9QUkVGSVggPSAna2FzcGF0ZXN0JztcblxuLy8g4pSA4pSAIFRyYW5zYWN0aW9uIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4vKiogRGVmYXVsdCB0cmFuc2FjdGlvbiBmZWUgKG1pbmltdW0gcmVsYXkgZmVlIGluIHNvbXBpKSAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfRkVFID0gJzEwMDAnOyAvLyAwLjAwMDAxIEtBU1BBIG1pbmltdW1cblxuLyoqIEthc3BhIHRyYW5zYWN0aW9uIHZlcnNpb24gKi9cbmV4cG9ydCBjb25zdCBUWF9WRVJTSU9OID0gMDtcblxuLy8g4pSA4pSAIFNpZ0hhc2ggdHlwZSBmbGFncyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vXG4vLyBEZWZpbmVkIGluIHJ1c3R5LWthc3BhIGNvbnNlbnN1cy9jb3JlL3NyYy9oYXNoaW5nL3NpZ2hhc2hfdHlwZS5yc1xuXG5leHBvcnQgY29uc3QgU0lHSEFTSF9BTEwgPSAweDAxO1xuZXhwb3J0IGNvbnN0IFNJR0hBU0hfTk9ORSA9IDB4MDI7XG5leHBvcnQgY29uc3QgU0lHSEFTSF9TSU5HTEUgPSAweDA0O1xuZXhwb3J0IGNvbnN0IFNJR0hBU0hfQU5ZT05FQ0FOUEFZID0gMHg4MDtcblxuLy8g4pSA4pSAIFNjcmlwdCBvcGNvZGVzIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy9cbi8vIFZlcmlmaWVkIGFnYWluc3Q6XG4vLyAgIGh0dHBzOi8va2FzcGEuYXNwZWN0cm9uLm9yZy9kb2NzL2VudW1zL09wY29kZXMuaHRtbFxuLy8gICBydXN0eS1rYXNwYS9jcnlwdG8vdHhzY3JpcHQvc3JjL3N0YW5kYXJkLnJzXG4vL1xuLy8gT3BDaGVja1NpZyAgICAgID0gMTcyID0gMHhBQyAg4oaSIFNjaG5vcnIgUDJQSyAodjAgYWRkcmVzcylcbi8vIE9wQ2hlY2tTaWdFQ0RTQSA9IDE3MSA9IDB4QUIgIOKGkiBFQ0RTQSBQMlBLICAodjEgYWRkcmVzcylcblxuLyoqIFNjaG5vcnIgQklQLTM0MCBjaGVja3NpZyBvcGNvZGUg4oCUIHVzZWQgYnkgdjAgS2FzcGEgYWRkcmVzc2VzICovXG5leHBvcnQgY29uc3QgT1BfQ0hFQ0tTSUdfU0NITk9SUiA9IDB4YWM7XG5cbi8qKiBzZWNwMjU2azEgRUNEU0EgY2hlY2tzaWcgb3Bjb2RlIOKAlCB1c2VkIGJ5IHYxIEthc3BhIGFkZHJlc3NlcyAqL1xuZXhwb3J0IGNvbnN0IE9QX0NIRUNLU0lHX0VDRFNBID0gMHhhYjtcblxuLyoqIFNjcmlwdCB2ZXJzaW9uIGZvciBzdGFuZGFyZCBQMlBLIHNjcmlwdHMgKi9cbmV4cG9ydCBjb25zdCBTQ1JJUFRfUFVCTElDX0tFWV9WRVJTSU9OID0gMDtcblxuLy8g4pSA4pSAIEVudW1zIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4vKipcbiAqIEthc3BhIFAyUEsgc2NyaXB0IHR5cGUuXG4gKiBEZXRlcm1pbmVzIHRoZSBzY3JpcHRQdWJsaWNLZXkgbGF5b3V0IGFuZCB0aGUgcmVxdWlyZWQgc2lnbmluZyBhbGdvcml0aG0uXG4gKlxuICogU0NITk9SUiAodjApOiBPUF9EQVRBXzMyICgweDIwKSB8IHhPbmx5UHViS2V5MzIgfCBPUF9DSEVDS1NJR19TQ0hOT1JSICgweEFDKVxuICogRUNEU0EgICAodjEpOiBPUF9EQVRBXzMzICgweDIxKSB8IGNvbXByZXNzZWRQdWJLZXkzMyB8IE9QX0NIRUNLU0lHX0VDRFNBICgweEFCKVxuICovXG5leHBvcnQgZW51bSBLYXNwYVNjcmlwdFR5cGUge1xuICBTQ0hOT1JSID0gMCwgLy8gdjAg4oCUIFNjaG5vcnIgUDJQSywgeC1vbmx5IDMyLWJ5dGUgcHVia2V5XG4gIEVDRFNBID0gMSwgLy8gdjEg4oCUIEVDRFNBIFAyUEssIGNvbXByZXNzZWQgMzMtYnl0ZSBwdWJrZXlcbn1cblxuLyoqXG4gKiBLYXNwYSBhZGRyZXNzIHZlcnNpb24gLyB0eXBlLlxuICogTWlycm9ycyBLYXNwYVNjcmlwdFR5cGUg4oCUIHRoZSB2ZXJzaW9uIGJ5dGUgaW4gdGhlIGJlY2gzMiBhZGRyZXNzIHBheWxvYWRcbiAqIGVuY29kZXMgd2hpY2ggc2NyaXB0IHR5cGUgKGFuZCB0aGVyZWZvcmUgd2hpY2ggc2lnbmF0dXJlIGFsZ29yaXRobSkgYXBwbGllcy5cbiAqXG4gKiBTQ0hOT1JSICh2MCk6IHZlcnNpb24gYnl0ZSAweDAwLCB4LW9ubHkgMzItYnl0ZSBwdWJrZXkgaW4gYWRkcmVzcyBwYXlsb2FkXG4gKiBFQ0RTQSAgICh2MSk6IHZlcnNpb24gYnl0ZSAweDAxLCBjb21wcmVzc2VkIDMzLWJ5dGUgcHVia2V5IGluIGFkZHJlc3MgcGF5bG9hZFxuICovXG5leHBvcnQgZW51bSBLYXNwYUFkZHJlc3NUeXBlIHtcbiAgU0NITk9SUiA9IDAsIC8vIGRlZmF1bHQg4oCUIHYwIFNjaG5vcnIgUDJQSyBhZGRyZXNzXG4gIEVDRFNBID0gMSwgLy8gdjEgRUNEU0EgUDJQSyBhZGRyZXNzXG59XG4iXX0=
@@ -72,11 +72,37 @@ export interface KaspaTxInfo {
72
72
  utxos?: KaspaUtxoInput[];
73
73
  }
74
74
  /**
75
- * Kaspa sign transaction options
75
+ * A single per-input Schnorr signature produced by an external TSS session.
76
+ * Each entry corresponds to one entry in `tx.signablePayloads`.
77
+ */
78
+ export interface KaspaInputSignature {
79
+ /** 0-based index of the input this signature covers */
80
+ inputIndex: number;
81
+ /** Hex-encoded compressed secp256k1 public key (33 bytes) */
82
+ pubKey: string;
83
+ /** Hex-encoded 64-byte raw Schnorr signature */
84
+ signature: string;
85
+ }
86
+ /**
87
+ * Kaspa sign transaction options.
88
+ *
89
+ * Two mutually exclusive signing modes:
90
+ *
91
+ * 1. `prv` — direct private-key signing (test / non-TSS).
92
+ * `tx.sign(prv)` is called, which loops all inputs.
93
+ *
94
+ * 2. `signatures` — TSS multi-input mode.
95
+ * The caller ran one independent DKLS session per input
96
+ * (over `tx.signablePayloads[i]`) and collected the
97
+ * resulting Schnorr signatures. Each signature is applied
98
+ * via `tx.addSignatureForInput(inputIndex, pubKey, sig)`.
76
99
  */
77
100
  export interface KaspaSignTransactionOptions extends SignTransactionOptions {
78
101
  txPrebuild: TransactionPrebuild;
79
- prv: string;
102
+ /** Direct private key — signs every input in one call */
103
+ prv?: string;
104
+ /** Per-input TSS signatures — one entry per input that was signed */
105
+ signatures?: KaspaInputSignature[];
80
106
  }
81
107
  /**
82
108
  * Kaspa transaction params
@@ -85,25 +111,10 @@ export interface KaspaTransactionParams extends TransactionParams {
85
111
  type?: string;
86
112
  unspents?: KaspaUtxoInput[];
87
113
  }
88
- /**
89
- * Kaspa explain transaction options
90
- */
91
- export interface KaspaExplainTransactionOptions {
92
- txHex?: string;
93
- halfSigned?: {
94
- txHex: string;
95
- };
96
- }
97
114
  /**
98
115
  * Kaspa verify transaction options
99
116
  */
100
117
  export interface KaspaVerifyTransactionOptions extends VerifyTransactionOptions {
101
118
  txParams: KaspaTransactionParams;
102
119
  }
103
- /**
104
- * Kaspa transaction fee info
105
- */
106
- export interface KaspaTransactionFee {
107
- fee: string;
108
- }
109
120
  //# sourceMappingURL=iface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../../../src/lib/iface.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,IAAI,0BAA0B,EACpD,mBAAmB,IAAI,uBAAuB,EAC9C,sBAAsB,EACtB,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EACf,wBAAwB,EACzB,MAAM,sBAAsB,CAAC;AAE9B;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,2CAA2C;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,+CAA+C;IAC/C,gBAAgB,EAAE,MAAM,CAAC;IACzB,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2FAA2F;IAC3F,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,wBAAwB;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,0BAA0B;IAC1B,OAAO,EAAE,sBAAsB,EAAE,CAAC;IAClC,gBAAgB;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,0BAA0B;IACxE,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,uBAAuB;IAClE,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,oBAAoB,EAAE,CAAC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,2BAA4B,SAAQ,sBAAsB;IACzE,UAAU,EAAE,mBAAmB,CAAC;IAChC,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;IAC/D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE;QACX,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,6BAA8B,SAAQ,wBAAwB;IAC7E,QAAQ,EAAE,sBAAsB,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;CACb"}
1
+ {"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../../../src/lib/iface.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,IAAI,0BAA0B,EACpD,mBAAmB,IAAI,uBAAuB,EAC9C,sBAAsB,EACtB,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EACf,wBAAwB,EACzB,MAAM,sBAAsB,CAAC;AAE9B;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,2CAA2C;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,+CAA+C;IAC/C,gBAAgB,EAAE,MAAM,CAAC;IACzB,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2FAA2F;IAC3F,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,wBAAwB;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,0BAA0B;IAC1B,OAAO,EAAE,sBAAsB,EAAE,CAAC;IAClC,gBAAgB;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,0BAA0B;IACxE,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,uBAAuB;IAClE,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,oBAAoB,EAAE,CAAC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,2BAA4B,SAAQ,sBAAsB;IACzE,UAAU,EAAE,mBAAmB,CAAC;IAChC,yDAAyD;IACzD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,UAAU,CAAC,EAAE,mBAAmB,EAAE,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;IAC/D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,6BAA8B,SAAQ,wBAAwB;IAC7E,QAAQ,EAAE,sBAAsB,CAAC;CAClC"}
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2lmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIGFzIEJhc2VUcmFuc2FjdGlvbkV4cGxhbmF0aW9uLFxuICBUcmFuc2FjdGlvblByZWJ1aWxkIGFzIEJhc2VUcmFuc2FjdGlvblByZWJ1aWxkLFxuICBTaWduVHJhbnNhY3Rpb25PcHRpb25zLFxuICBUcmFuc2FjdGlvblBhcmFtcyxcbiAgVHJhbnNhY3Rpb25SZWNpcGllbnQsXG4gIFRyYW5zYWN0aW9uVHlwZSxcbiAgVmVyaWZ5VHJhbnNhY3Rpb25PcHRpb25zLFxufSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5cbi8qKlxuICogS2FzcGEgVVRYTyBpbnB1dCAocmVmZXJlbmNlIHRvIGEgcHJldmlvdXMgdHJhbnNhY3Rpb24gb3V0cHV0KVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEthc3BhVXR4b0lucHV0IHtcbiAgLyoqIFByZXZpb3VzIHRyYW5zYWN0aW9uIElEIChoZXggc3RyaW5nKSAqL1xuICB0cmFuc2FjdGlvbklkOiBzdHJpbmc7XG4gIC8qKiBPdXRwdXQgaW5kZXggaW4gdGhlIHByZXZpb3VzIHRyYW5zYWN0aW9uICovXG4gIHRyYW5zYWN0aW9uSW5kZXg6IG51bWJlcjtcbiAgLyoqIEFtb3VudCBpbiBzb21waSAqL1xuICBhbW91bnQ6IHN0cmluZztcbiAgLyoqIFNjcmlwdCBwdWJsaWMga2V5IG9mIHRoZSBVVFhPICovXG4gIHNjcmlwdFB1YmxpY0tleTogc3RyaW5nO1xuICAvKiogU2VxdWVuY2UgbnVtYmVyICovXG4gIHNlcXVlbmNlPzogc3RyaW5nO1xuICAvKiogU2lnbmF0dXJlIG9wZXJhdGlvbiBjb3VudCAqL1xuICBzaWdPcENvdW50PzogbnVtYmVyO1xuICAvKiogU2lnbmF0dXJlIHNjcmlwdCDigJQgaGV4LWVuY29kZWQgKDY1IGJ5dGVzOiA2NC1ieXRlIFNjaG5vcnIgc2lnICsgMS1ieXRlIHNpZ2hhc2ggdHlwZSkgKi9cbiAgc2lnbmF0dXJlU2NyaXB0Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEthc3BhIHRyYW5zYWN0aW9uIG91dHB1dFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEthc3BhVHJhbnNhY3Rpb25PdXRwdXQge1xuICAvKiogUmVjaXBpZW50IGFkZHJlc3MgKi9cbiAgYWRkcmVzczogc3RyaW5nO1xuICAvKiogQW1vdW50IGluIHNvbXBpICovXG4gIGFtb3VudDogc3RyaW5nO1xuICAvKiogU2NyaXB0IHB1YmxpYyBrZXkgKi9cbiAgc2NyaXB0UHVibGljS2V5Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEthc3BhIHRyYW5zYWN0aW9uIGRhdGEgc3RydWN0dXJlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2FzcGFUcmFuc2FjdGlvbkRhdGEge1xuICAvKiogVHJhbnNhY3Rpb24gdmVyc2lvbiAqL1xuICB2ZXJzaW9uOiBudW1iZXI7XG4gIC8qKiBUcmFuc2FjdGlvbiBpbnB1dHMgKFVUWE9zIGJlaW5nIHNwZW50KSAqL1xuICBpbnB1dHM6IEthc3BhVXR4b0lucHV0W107XG4gIC8qKiBUcmFuc2FjdGlvbiBvdXRwdXRzICovXG4gIG91dHB1dHM6IEthc3BhVHJhbnNhY3Rpb25PdXRwdXRbXTtcbiAgLyoqIExvY2sgdGltZSAqL1xuICBsb2NrVGltZT86IHN0cmluZztcbiAgLyoqIFN1Ym5ldHdvcmsgSUQgKGFsbC16ZXJvcyBmb3IgbmF0aXZlIEtBU1BBIHRyYW5zZmVycykgKi9cbiAgc3VibmV0d29ya0lkPzogc3RyaW5nO1xuICAvKiogVHJhbnNhY3Rpb24gcGF5bG9hZCAoZW1wdHkgZm9yIG5hdGl2ZSB0cmFuc2ZlcnMpICovXG4gIHBheWxvYWQ/OiBzdHJpbmc7XG4gIC8qKiBGZWUgaW4gc29tcGkgKi9cbiAgZmVlPzogc3RyaW5nO1xuICAvKiogVHJhbnNhY3Rpb24gSUQgKGNvbXB1dGVkKSAqL1xuICBpZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBLYXNwYSB0cmFuc2FjdGlvbiBleHBsYW5hdGlvbiBmb3IgdXNlcnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICB0eXBlOiBUcmFuc2FjdGlvblR5cGU7XG4gIGlucHV0czogS2FzcGFVdHhvSW5wdXRbXTtcbn1cblxuLyoqXG4gKiBLYXNwYSB0cmFuc2FjdGlvbiBwcmVidWlsZCBmb3Igc2lnbmluZ1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zYWN0aW9uUHJlYnVpbGQgZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb25QcmVidWlsZCB7XG4gIC8qKiBTZXJpYWxpemVkIHRyYW5zYWN0aW9uIGFzIGhleCBvciBKU09OIHN0cmluZyAqL1xuICB0eEhleDogc3RyaW5nO1xuICB0eEluZm86IEthc3BhVHhJbmZvO1xuICBzb3VyY2U6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBLYXNwYVR4SW5mbyB7XG4gIHJlY2lwaWVudHM6IFRyYW5zYWN0aW9uUmVjaXBpZW50W107XG4gIGZyb206IHN0cmluZztcbiAgdXR4b3M/OiBLYXNwYVV0eG9JbnB1dFtdO1xufVxuXG4vKipcbiAqIEthc3BhIHNpZ24gdHJhbnNhY3Rpb24gb3B0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEthc3BhU2lnblRyYW5zYWN0aW9uT3B0aW9ucyBleHRlbmRzIFNpZ25UcmFuc2FjdGlvbk9wdGlvbnMge1xuICB0eFByZWJ1aWxkOiBUcmFuc2FjdGlvblByZWJ1aWxkO1xuICBwcnY6IHN0cmluZztcbn1cblxuLyoqXG4gKiBLYXNwYSB0cmFuc2FjdGlvbiBwYXJhbXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLYXNwYVRyYW5zYWN0aW9uUGFyYW1zIGV4dGVuZHMgVHJhbnNhY3Rpb25QYXJhbXMge1xuICB0eXBlPzogc3RyaW5nO1xuICB1bnNwZW50cz86IEthc3BhVXR4b0lucHV0W107XG59XG5cbi8qKlxuICogS2FzcGEgZXhwbGFpbiB0cmFuc2FjdGlvbiBvcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2FzcGFFeHBsYWluVHJhbnNhY3Rpb25PcHRpb25zIHtcbiAgdHhIZXg/OiBzdHJpbmc7XG4gIGhhbGZTaWduZWQ/OiB7XG4gICAgdHhIZXg6IHN0cmluZztcbiAgfTtcbn1cblxuLyoqXG4gKiBLYXNwYSB2ZXJpZnkgdHJhbnNhY3Rpb24gb3B0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEthc3BhVmVyaWZ5VHJhbnNhY3Rpb25PcHRpb25zIGV4dGVuZHMgVmVyaWZ5VHJhbnNhY3Rpb25PcHRpb25zIHtcbiAgdHhQYXJhbXM6IEthc3BhVHJhbnNhY3Rpb25QYXJhbXM7XG59XG5cbi8qKlxuICogS2FzcGEgdHJhbnNhY3Rpb24gZmVlIGluZm9cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLYXNwYVRyYW5zYWN0aW9uRmVlIHtcbiAgZmVlOiBzdHJpbmc7XG59XG4iXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2lmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIGFzIEJhc2VUcmFuc2FjdGlvbkV4cGxhbmF0aW9uLFxuICBUcmFuc2FjdGlvblByZWJ1aWxkIGFzIEJhc2VUcmFuc2FjdGlvblByZWJ1aWxkLFxuICBTaWduVHJhbnNhY3Rpb25PcHRpb25zLFxuICBUcmFuc2FjdGlvblBhcmFtcyxcbiAgVHJhbnNhY3Rpb25SZWNpcGllbnQsXG4gIFRyYW5zYWN0aW9uVHlwZSxcbiAgVmVyaWZ5VHJhbnNhY3Rpb25PcHRpb25zLFxufSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5cbi8qKlxuICogS2FzcGEgVVRYTyBpbnB1dCAocmVmZXJlbmNlIHRvIGEgcHJldmlvdXMgdHJhbnNhY3Rpb24gb3V0cHV0KVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEthc3BhVXR4b0lucHV0IHtcbiAgLyoqIFByZXZpb3VzIHRyYW5zYWN0aW9uIElEIChoZXggc3RyaW5nKSAqL1xuICB0cmFuc2FjdGlvbklkOiBzdHJpbmc7XG4gIC8qKiBPdXRwdXQgaW5kZXggaW4gdGhlIHByZXZpb3VzIHRyYW5zYWN0aW9uICovXG4gIHRyYW5zYWN0aW9uSW5kZXg6IG51bWJlcjtcbiAgLyoqIEFtb3VudCBpbiBzb21waSAqL1xuICBhbW91bnQ6IHN0cmluZztcbiAgLyoqIFNjcmlwdCBwdWJsaWMga2V5IG9mIHRoZSBVVFhPICovXG4gIHNjcmlwdFB1YmxpY0tleTogc3RyaW5nO1xuICAvKiogU2VxdWVuY2UgbnVtYmVyICovXG4gIHNlcXVlbmNlPzogc3RyaW5nO1xuICAvKiogU2lnbmF0dXJlIG9wZXJhdGlvbiBjb3VudCAqL1xuICBzaWdPcENvdW50PzogbnVtYmVyO1xuICAvKiogU2lnbmF0dXJlIHNjcmlwdCDigJQgaGV4LWVuY29kZWQgKDY1IGJ5dGVzOiA2NC1ieXRlIFNjaG5vcnIgc2lnICsgMS1ieXRlIHNpZ2hhc2ggdHlwZSkgKi9cbiAgc2lnbmF0dXJlU2NyaXB0Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEthc3BhIHRyYW5zYWN0aW9uIG91dHB1dFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEthc3BhVHJhbnNhY3Rpb25PdXRwdXQge1xuICAvKiogUmVjaXBpZW50IGFkZHJlc3MgKi9cbiAgYWRkcmVzczogc3RyaW5nO1xuICAvKiogQW1vdW50IGluIHNvbXBpICovXG4gIGFtb3VudDogc3RyaW5nO1xuICAvKiogU2NyaXB0IHB1YmxpYyBrZXkgKi9cbiAgc2NyaXB0UHVibGljS2V5Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEthc3BhIHRyYW5zYWN0aW9uIGRhdGEgc3RydWN0dXJlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2FzcGFUcmFuc2FjdGlvbkRhdGEge1xuICAvKiogVHJhbnNhY3Rpb24gdmVyc2lvbiAqL1xuICB2ZXJzaW9uOiBudW1iZXI7XG4gIC8qKiBUcmFuc2FjdGlvbiBpbnB1dHMgKFVUWE9zIGJlaW5nIHNwZW50KSAqL1xuICBpbnB1dHM6IEthc3BhVXR4b0lucHV0W107XG4gIC8qKiBUcmFuc2FjdGlvbiBvdXRwdXRzICovXG4gIG91dHB1dHM6IEthc3BhVHJhbnNhY3Rpb25PdXRwdXRbXTtcbiAgLyoqIExvY2sgdGltZSAqL1xuICBsb2NrVGltZT86IHN0cmluZztcbiAgLyoqIFN1Ym5ldHdvcmsgSUQgKGFsbC16ZXJvcyBmb3IgbmF0aXZlIEtBU1BBIHRyYW5zZmVycykgKi9cbiAgc3VibmV0d29ya0lkPzogc3RyaW5nO1xuICAvKiogVHJhbnNhY3Rpb24gcGF5bG9hZCAoZW1wdHkgZm9yIG5hdGl2ZSB0cmFuc2ZlcnMpICovXG4gIHBheWxvYWQ/OiBzdHJpbmc7XG4gIC8qKiBGZWUgaW4gc29tcGkgKi9cbiAgZmVlPzogc3RyaW5nO1xuICAvKiogVHJhbnNhY3Rpb24gSUQgKGNvbXB1dGVkKSAqL1xuICBpZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBLYXNwYSB0cmFuc2FjdGlvbiBleHBsYW5hdGlvbiBmb3IgdXNlcnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICB0eXBlOiBUcmFuc2FjdGlvblR5cGU7XG4gIGlucHV0czogS2FzcGFVdHhvSW5wdXRbXTtcbn1cblxuLyoqXG4gKiBLYXNwYSB0cmFuc2FjdGlvbiBwcmVidWlsZCBmb3Igc2lnbmluZ1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zYWN0aW9uUHJlYnVpbGQgZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb25QcmVidWlsZCB7XG4gIC8qKiBTZXJpYWxpemVkIHRyYW5zYWN0aW9uIGFzIGhleCBvciBKU09OIHN0cmluZyAqL1xuICB0eEhleDogc3RyaW5nO1xuICB0eEluZm86IEthc3BhVHhJbmZvO1xuICBzb3VyY2U6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBLYXNwYVR4SW5mbyB7XG4gIHJlY2lwaWVudHM6IFRyYW5zYWN0aW9uUmVjaXBpZW50W107XG4gIGZyb206IHN0cmluZztcbiAgdXR4b3M/OiBLYXNwYVV0eG9JbnB1dFtdO1xufVxuXG4vKipcbiAqIEEgc2luZ2xlIHBlci1pbnB1dCBTY2hub3JyIHNpZ25hdHVyZSBwcm9kdWNlZCBieSBhbiBleHRlcm5hbCBUU1Mgc2Vzc2lvbi5cbiAqIEVhY2ggZW50cnkgY29ycmVzcG9uZHMgdG8gb25lIGVudHJ5IGluIGB0eC5zaWduYWJsZVBheWxvYWRzYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLYXNwYUlucHV0U2lnbmF0dXJlIHtcbiAgLyoqIDAtYmFzZWQgaW5kZXggb2YgdGhlIGlucHV0IHRoaXMgc2lnbmF0dXJlIGNvdmVycyAqL1xuICBpbnB1dEluZGV4OiBudW1iZXI7XG4gIC8qKiBIZXgtZW5jb2RlZCBjb21wcmVzc2VkIHNlY3AyNTZrMSBwdWJsaWMga2V5ICgzMyBieXRlcykgKi9cbiAgcHViS2V5OiBzdHJpbmc7XG4gIC8qKiBIZXgtZW5jb2RlZCA2NC1ieXRlIHJhdyBTY2hub3JyIHNpZ25hdHVyZSAqL1xuICBzaWduYXR1cmU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBLYXNwYSBzaWduIHRyYW5zYWN0aW9uIG9wdGlvbnMuXG4gKlxuICogVHdvIG11dHVhbGx5IGV4Y2x1c2l2ZSBzaWduaW5nIG1vZGVzOlxuICpcbiAqIDEuIGBwcnZgICAgICAgICDigJQgZGlyZWN0IHByaXZhdGUta2V5IHNpZ25pbmcgKHRlc3QgLyBub24tVFNTKS5cbiAqICAgICAgICAgICAgICAgICAgIGB0eC5zaWduKHBydilgIGlzIGNhbGxlZCwgd2hpY2ggbG9vcHMgYWxsIGlucHV0cy5cbiAqXG4gKiAyLiBgc2lnbmF0dXJlc2Ag4oCUIFRTUyBtdWx0aS1pbnB1dCBtb2RlLlxuICogICAgICAgICAgICAgICAgICAgVGhlIGNhbGxlciByYW4gb25lIGluZGVwZW5kZW50IERLTFMgc2Vzc2lvbiBwZXIgaW5wdXRcbiAqICAgICAgICAgICAgICAgICAgIChvdmVyIGB0eC5zaWduYWJsZVBheWxvYWRzW2ldYCkgYW5kIGNvbGxlY3RlZCB0aGVcbiAqICAgICAgICAgICAgICAgICAgIHJlc3VsdGluZyBTY2hub3JyIHNpZ25hdHVyZXMuIEVhY2ggc2lnbmF0dXJlIGlzIGFwcGxpZWRcbiAqICAgICAgICAgICAgICAgICAgIHZpYSBgdHguYWRkU2lnbmF0dXJlRm9ySW5wdXQoaW5wdXRJbmRleCwgcHViS2V5LCBzaWcpYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLYXNwYVNpZ25UcmFuc2FjdGlvbk9wdGlvbnMgZXh0ZW5kcyBTaWduVHJhbnNhY3Rpb25PcHRpb25zIHtcbiAgdHhQcmVidWlsZDogVHJhbnNhY3Rpb25QcmVidWlsZDtcbiAgLyoqIERpcmVjdCBwcml2YXRlIGtleSDigJQgc2lnbnMgZXZlcnkgaW5wdXQgaW4gb25lIGNhbGwgKi9cbiAgcHJ2Pzogc3RyaW5nO1xuICAvKiogUGVyLWlucHV0IFRTUyBzaWduYXR1cmVzIOKAlCBvbmUgZW50cnkgcGVyIGlucHV0IHRoYXQgd2FzIHNpZ25lZCAqL1xuICBzaWduYXR1cmVzPzogS2FzcGFJbnB1dFNpZ25hdHVyZVtdO1xufVxuXG4vKipcbiAqIEthc3BhIHRyYW5zYWN0aW9uIHBhcmFtc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEthc3BhVHJhbnNhY3Rpb25QYXJhbXMgZXh0ZW5kcyBUcmFuc2FjdGlvblBhcmFtcyB7XG4gIHR5cGU/OiBzdHJpbmc7XG4gIHVuc3BlbnRzPzogS2FzcGFVdHhvSW5wdXRbXTtcbn1cblxuLyoqXG4gKiBLYXNwYSB2ZXJpZnkgdHJhbnNhY3Rpb24gb3B0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEthc3BhVmVyaWZ5VHJhbnNhY3Rpb25PcHRpb25zIGV4dGVuZHMgVmVyaWZ5VHJhbnNhY3Rpb25PcHRpb25zIHtcbiAgdHhQYXJhbXM6IEthc3BhVHJhbnNhY3Rpb25QYXJhbXM7XG59XG4iXX0=
@@ -2,6 +2,8 @@ export { KeyPair } from './keyPair';
2
2
  export { Transaction } from './transaction';
3
3
  export { TransactionBuilder } from './transactionBuilder';
4
4
  export { TransactionBuilderFactory } from './transactionBuilderFactory';
5
+ export { Pskt } from './pskt';
6
+ export type { PsktRole, PsktKeySource, PsktGlobal, PsktUtxoEntry, PsktInput, PsktOutput, SerializedPskt } from './pskt';
5
7
  export * from './iface';
6
8
  export * from './constants';
7
9
  export * from './utils';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxH,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,SAAS,CAAC"}
@@ -17,7 +17,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
17
17
  return (mod && mod.__esModule) ? mod : { "default": mod };
18
18
  };
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.KaspaUtils = exports.Utils = exports.TransactionBuilderFactory = exports.TransactionBuilder = exports.Transaction = exports.KeyPair = void 0;
20
+ exports.KaspaUtils = exports.Utils = exports.Pskt = exports.TransactionBuilderFactory = exports.TransactionBuilder = exports.Transaction = exports.KeyPair = void 0;
21
21
  var keyPair_1 = require("./keyPair");
22
22
  Object.defineProperty(exports, "KeyPair", { enumerable: true, get: function () { return keyPair_1.KeyPair; } });
23
23
  var transaction_1 = require("./transaction");
@@ -26,6 +26,8 @@ var transactionBuilder_1 = require("./transactionBuilder");
26
26
  Object.defineProperty(exports, "TransactionBuilder", { enumerable: true, get: function () { return transactionBuilder_1.TransactionBuilder; } });
27
27
  var transactionBuilderFactory_1 = require("./transactionBuilderFactory");
28
28
  Object.defineProperty(exports, "TransactionBuilderFactory", { enumerable: true, get: function () { return transactionBuilderFactory_1.TransactionBuilderFactory; } });
29
+ var pskt_1 = require("./pskt");
30
+ Object.defineProperty(exports, "Pskt", { enumerable: true, get: function () { return pskt_1.Pskt; } });
29
31
  __exportStar(require("./iface"), exports);
30
32
  __exportStar(require("./constants"), exports);
31
33
  __exportStar(require("./utils"), exports);
@@ -33,4 +35,4 @@ __exportStar(require("./sighash"), exports);
33
35
  var utils_1 = require("./utils");
34
36
  Object.defineProperty(exports, "Utils", { enumerable: true, get: function () { return __importDefault(utils_1).default; } });
35
37
  Object.defineProperty(exports, "KaspaUtils", { enumerable: true, get: function () { return utils_1.Utils; } });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscUNBQW9DO0FBQTNCLGtHQUFBLE9BQU8sT0FBQTtBQUNoQiw2Q0FBNEM7QUFBbkMsMEdBQUEsV0FBVyxPQUFBO0FBQ3BCLDJEQUEwRDtBQUFqRCx3SEFBQSxrQkFBa0IsT0FBQTtBQUMzQix5RUFBd0U7QUFBL0Qsc0lBQUEseUJBQXlCLE9BQUE7QUFDbEMsMENBQXdCO0FBQ3hCLDhDQUE0QjtBQUM1QiwwQ0FBd0I7QUFDeEIsNENBQTBCO0FBQzFCLGlDQUFnRTtBQUF2RCwrR0FBQSxPQUFPLE9BQVM7QUFBRSxtR0FBQSxLQUFLLE9BQWMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLi9rZXlQYWlyJztcbmV4cG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5leHBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5leHBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vaWZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jb25zdGFudHMnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL3NpZ2hhc2gnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBVdGlscywgVXRpbHMgYXMgS2FzcGFVdGlscyB9IGZyb20gJy4vdXRpbHMnO1xuIl19
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscUNBQW9DO0FBQTNCLGtHQUFBLE9BQU8sT0FBQTtBQUNoQiw2Q0FBNEM7QUFBbkMsMEdBQUEsV0FBVyxPQUFBO0FBQ3BCLDJEQUEwRDtBQUFqRCx3SEFBQSxrQkFBa0IsT0FBQTtBQUMzQix5RUFBd0U7QUFBL0Qsc0lBQUEseUJBQXlCLE9BQUE7QUFDbEMsK0JBQThCO0FBQXJCLDRGQUFBLElBQUksT0FBQTtBQUViLDBDQUF3QjtBQUN4Qiw4Q0FBNEI7QUFDNUIsMENBQXdCO0FBQ3hCLDRDQUEwQjtBQUMxQixpQ0FBZ0U7QUFBdkQsK0dBQUEsT0FBTyxPQUFTO0FBQUUsbUdBQUEsS0FBSyxPQUFjIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgS2V5UGFpciB9IGZyb20gJy4va2V5UGFpcic7XG5leHBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuZXhwb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuZXhwb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSc7XG5leHBvcnQgeyBQc2t0IH0gZnJvbSAnLi9wc2t0JztcbmV4cG9ydCB0eXBlIHsgUHNrdFJvbGUsIFBza3RLZXlTb3VyY2UsIFBza3RHbG9iYWwsIFBza3RVdHhvRW50cnksIFBza3RJbnB1dCwgUHNrdE91dHB1dCwgU2VyaWFsaXplZFBza3QgfSBmcm9tICcuL3Bza3QnO1xuZXhwb3J0ICogZnJvbSAnLi9pZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnN0YW50cyc7XG5leHBvcnQgKiBmcm9tICcuL3V0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vc2lnaGFzaCc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFV0aWxzLCBVdGlscyBhcyBLYXNwYVV0aWxzIH0gZnJvbSAnLi91dGlscyc7XG4iXX0=