@bsv/sdk 1.1.28 → 1.1.30

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 (63) hide show
  1. package/dist/cjs/package.json +1 -1
  2. package/dist/cjs/src/compat/ECIES.js +24 -5
  3. package/dist/cjs/src/compat/ECIES.js.map +1 -1
  4. package/dist/cjs/src/primitives/Schnorr.js +92 -0
  5. package/dist/cjs/src/primitives/Schnorr.js.map +1 -0
  6. package/dist/cjs/src/primitives/index.js +3 -1
  7. package/dist/cjs/src/primitives/index.js.map +1 -1
  8. package/dist/cjs/src/totp/totp.js +1 -1
  9. package/dist/cjs/src/totp/totp.js.map +1 -1
  10. package/dist/cjs/src/transaction/Beef.js +139 -118
  11. package/dist/cjs/src/transaction/Beef.js.map +1 -1
  12. package/dist/cjs/src/transaction/BeefParty.js +30 -26
  13. package/dist/cjs/src/transaction/BeefParty.js.map +1 -1
  14. package/dist/cjs/src/transaction/BeefTx.js +25 -15
  15. package/dist/cjs/src/transaction/BeefTx.js.map +1 -1
  16. package/dist/cjs/src/transaction/MerklePath.js.map +1 -1
  17. package/dist/cjs/src/transaction/Transaction.js.map +1 -1
  18. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  19. package/dist/esm/src/compat/ECIES.js +24 -5
  20. package/dist/esm/src/compat/ECIES.js.map +1 -1
  21. package/dist/esm/src/primitives/Schnorr.js +87 -0
  22. package/dist/esm/src/primitives/Schnorr.js.map +1 -0
  23. package/dist/esm/src/primitives/index.js +1 -0
  24. package/dist/esm/src/primitives/index.js.map +1 -1
  25. package/dist/esm/src/totp/totp.js +1 -1
  26. package/dist/esm/src/totp/totp.js.map +1 -1
  27. package/dist/esm/src/transaction/Beef.js +142 -121
  28. package/dist/esm/src/transaction/Beef.js.map +1 -1
  29. package/dist/esm/src/transaction/BeefParty.js +31 -27
  30. package/dist/esm/src/transaction/BeefParty.js.map +1 -1
  31. package/dist/esm/src/transaction/BeefTx.js +29 -19
  32. package/dist/esm/src/transaction/BeefTx.js.map +1 -1
  33. package/dist/esm/src/transaction/MerklePath.js.map +1 -1
  34. package/dist/esm/src/transaction/Transaction.js.map +1 -1
  35. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  36. package/dist/types/src/compat/ECIES.d.ts.map +1 -1
  37. package/dist/types/src/primitives/Schnorr.d.ts +65 -0
  38. package/dist/types/src/primitives/Schnorr.d.ts.map +1 -0
  39. package/dist/types/src/primitives/index.d.ts +1 -0
  40. package/dist/types/src/primitives/index.d.ts.map +1 -1
  41. package/dist/types/src/transaction/Beef.d.ts +94 -94
  42. package/dist/types/src/transaction/Beef.d.ts.map +1 -1
  43. package/dist/types/src/transaction/BeefParty.d.ts +23 -23
  44. package/dist/types/src/transaction/BeefParty.d.ts.map +1 -1
  45. package/dist/types/src/transaction/BeefTx.d.ts +5 -5
  46. package/dist/types/src/transaction/BeefTx.d.ts.map +1 -1
  47. package/dist/types/src/transaction/MerklePath.d.ts.map +1 -1
  48. package/dist/types/src/transaction/Transaction.d.ts.map +1 -1
  49. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  50. package/dist/umd/bundle.js +1 -1
  51. package/docs/primitives.md +120 -9
  52. package/package.json +1 -1
  53. package/src/compat/ECIES.ts +38 -17
  54. package/src/compat/__tests/ECIES.test.ts +23 -1
  55. package/src/primitives/Schnorr.ts +95 -0
  56. package/src/primitives/__tests/Schnorr.test.ts +272 -0
  57. package/src/primitives/index.ts +1 -0
  58. package/src/totp/totp.ts +1 -1
  59. package/src/transaction/Beef.ts +351 -375
  60. package/src/transaction/BeefParty.ts +54 -58
  61. package/src/transaction/BeefTx.ts +128 -143
  62. package/src/transaction/MerklePath.ts +11 -11
  63. package/src/transaction/Transaction.ts +32 -32
@@ -57,34 +57,37 @@ class Beef {
57
57
  this.version = version;
58
58
  }
59
59
  /**
60
- * BEEF_MAGIC is the original V1 version.
61
- * BEEF_MAGIC_V2 includes support for txidOnly transactions in serialized beefs.
62
- * @returns version magic value based on current contents and constructor version parameter.
63
- */
60
+ * BEEF_MAGIC is the original V1 version.
61
+ * BEEF_MAGIC_V2 includes support for txidOnly transactions in serialized beefs.
62
+ * @returns version magic value based on current contents and constructor version parameter.
63
+ */
64
64
  get magic() {
65
- if (this.version === 'V1')
65
+ if (this.version === 'V1') {
66
66
  return exports.BEEF_MAGIC;
67
- if (this.version === 'V2')
67
+ }
68
+ if (this.version === 'V2') {
68
69
  return exports.BEEF_MAGIC_V2;
69
- const hasTxidOnly = -1 < this.txs.findIndex(tx => tx.isTxidOnly);
70
- if (hasTxidOnly)
70
+ }
71
+ const hasTxidOnly = this.txs.findIndex(tx => tx.isTxidOnly) > -1;
72
+ if (hasTxidOnly) {
71
73
  return exports.BEEF_MAGIC_V2;
74
+ }
72
75
  return exports.BEEF_MAGIC;
73
76
  }
74
77
  /**
75
- * @param txid of `beefTx` to find
76
- * @returns `BeefTx` in `txs` with `txid`.
77
- */
78
+ * @param txid of `beefTx` to find
79
+ * @returns `BeefTx` in `txs` with `txid`.
80
+ */
78
81
  findTxid(txid) {
79
82
  return this.txs.find(tx => tx.txid === txid);
80
83
  }
81
84
  /**
82
- * Merge a MerklePath that is assumed to be fully valid.
83
- * @param bump
84
- * @returns index of merged bump
85
- */
85
+ * Merge a MerklePath that is assumed to be fully valid.
86
+ * @param bump
87
+ * @returns index of merged bump
88
+ */
86
89
  mergeBump(bump) {
87
- let bumpIndex = undefined;
90
+ let bumpIndex;
88
91
  // If this proof is identical to another one previously added, we use that first. Otherwise, we try to merge it with proofs from the same block.
89
92
  for (let i = 0; i < this.bumps.length; i++) {
90
93
  const b = this.bumps[i];
@@ -125,16 +128,16 @@ class Beef {
125
128
  return bumpIndex;
126
129
  }
127
130
  /**
128
- * Merge a serialized transaction.
129
- *
130
- * Checks that a transaction with the same txid hasn't already been merged.
131
- *
132
- * Replaces existing transaction with same txid.
133
- *
134
- * @param rawTx
135
- * @param bumpIndex Optional. If a number, must be valid index into bumps array.
136
- * @returns txid of rawTx
137
- */
131
+ * Merge a serialized transaction.
132
+ *
133
+ * Checks that a transaction with the same txid hasn't already been merged.
134
+ *
135
+ * Replaces existing transaction with same txid.
136
+ *
137
+ * @param rawTx
138
+ * @param bumpIndex Optional. If a number, must be valid index into bumps array.
139
+ * @returns txid of rawTx
140
+ */
138
141
  mergeRawTx(rawTx, bumpIndex) {
139
142
  const newTx = new BeefTx_js_1.default(rawTx, bumpIndex);
140
143
  this.removeExistingTxid(newTx.txid);
@@ -143,45 +146,49 @@ class Beef {
143
146
  return newTx;
144
147
  }
145
148
  /**
146
- * Merge a `Transaction` and any referenced `merklePath` and `sourceTransaction`, recursifely.
147
- *
148
- * Replaces existing transaction with same txid.
149
- *
150
- * Attempts to match an existing bump to the new transaction.
151
- *
152
- * @param tx
153
- * @returns txid of tx
154
- */
149
+ * Merge a `Transaction` and any referenced `merklePath` and `sourceTransaction`, recursifely.
150
+ *
151
+ * Replaces existing transaction with same txid.
152
+ *
153
+ * Attempts to match an existing bump to the new transaction.
154
+ *
155
+ * @param tx
156
+ * @returns txid of tx
157
+ */
155
158
  mergeTransaction(tx) {
156
159
  const txid = tx.id('hex');
157
160
  this.removeExistingTxid(txid);
158
- let bumpIndex = undefined;
159
- if (tx.merklePath)
161
+ let bumpIndex;
162
+ if (tx.merklePath) {
160
163
  bumpIndex = this.mergeBump(tx.merklePath);
164
+ }
161
165
  const newTx = new BeefTx_js_1.default(tx, bumpIndex);
162
166
  this.txs.push(newTx);
163
167
  this.tryToValidateBumpIndex(newTx);
164
168
  bumpIndex = newTx.bumpIndex;
165
169
  if (bumpIndex === undefined) {
166
170
  for (const input of tx.inputs) {
167
- if (input.sourceTransaction)
171
+ if (input.sourceTransaction) {
168
172
  this.mergeTransaction(input.sourceTransaction);
173
+ }
169
174
  }
170
175
  }
171
176
  return newTx;
172
177
  }
173
178
  /**
174
- * Removes an existing transaction from the BEEF, given its TXID
175
- * @param txid TXID of the transaction to remove
176
- */
179
+ * Removes an existing transaction from the BEEF, given its TXID
180
+ * @param txid TXID of the transaction to remove
181
+ */
177
182
  removeExistingTxid(txid) {
178
183
  const existingTxIndex = this.txs.findIndex(t => t.txid === txid);
179
- if (existingTxIndex >= 0)
184
+ if (existingTxIndex >= 0) {
180
185
  this.txs.splice(existingTxIndex, 1);
186
+ }
181
187
  }
182
188
  mergeTxidOnly(txid) {
183
- if (this.version === 'V1')
184
- throw new Error(`BEEF V1 format does not support txid only transactions.`);
189
+ if (this.version === 'V1') {
190
+ throw new Error('BEEF V1 format does not support txid only transactions.');
191
+ }
185
192
  let tx = this.txs.find(t => t.txid === txid);
186
193
  if (!tx) {
187
194
  tx = new BeefTx_js_1.default(txid);
@@ -192,61 +199,67 @@ class Beef {
192
199
  }
193
200
  mergeBeefTx(btx) {
194
201
  let beefTx = this.findTxid(btx.txid);
195
- if (!beefTx && btx.isTxidOnly)
202
+ if (!beefTx && btx.isTxidOnly) {
196
203
  beefTx = this.mergeTxidOnly(btx.txid);
204
+ }
197
205
  else if (!beefTx || beefTx.isTxidOnly) {
198
- if (btx._tx)
206
+ if (btx._tx) {
199
207
  beefTx = this.mergeTransaction(btx._tx);
200
- else
208
+ }
209
+ else {
201
210
  beefTx = this.mergeRawTx(btx._rawTx);
211
+ }
202
212
  }
203
213
  return beefTx;
204
214
  }
205
215
  mergeBeef(beef) {
206
216
  const b = Array.isArray(beef) ? Beef.fromBinary(beef) : beef;
207
- for (const bump of b.bumps)
217
+ for (const bump of b.bumps) {
208
218
  this.mergeBump(bump);
209
- for (const tx of b.txs)
219
+ }
220
+ for (const tx of b.txs) {
210
221
  this.mergeBeefTx(tx);
222
+ }
211
223
  }
212
224
  /**
213
- * Sorts `txs` and checks structural validity of beef.
214
- *
215
- * Does NOT verify merkle roots.
216
- *
217
- * Validity requirements:
218
- * 1. No 'known' txids, unless `allowTxidOnly` is true.
219
- * 2. All transactions have bumps or their inputs chain back to bumps (or are known).
220
- * 3. Order of transactions satisfies dependencies before dependents.
221
- * 4. No transactions with duplicate txids.
222
- *
223
- * @param allowTxidOnly optional. If true, transaction txid only is assumed valid
224
- */
225
+ * Sorts `txs` and checks structural validity of beef.
226
+ *
227
+ * Does NOT verify merkle roots.
228
+ *
229
+ * Validity requirements:
230
+ * 1. No 'known' txids, unless `allowTxidOnly` is true.
231
+ * 2. All transactions have bumps or their inputs chain back to bumps (or are known).
232
+ * 3. Order of transactions satisfies dependencies before dependents.
233
+ * 4. No transactions with duplicate txids.
234
+ *
235
+ * @param allowTxidOnly optional. If true, transaction txid only is assumed valid
236
+ */
225
237
  isValid(allowTxidOnly) {
226
238
  return this.verifyValid(allowTxidOnly).valid;
227
239
  }
228
240
  /**
229
- * Sorts `txs` and confirms validity of transaction data contained in beef
230
- * by validating structure of this beef and confirming computed merkle roots
231
- * using `chainTracker`.
232
- *
233
- * Validity requirements:
234
- * 1. No 'known' txids, unless `allowTxidOnly` is true.
235
- * 2. All transactions have bumps or their inputs chain back to bumps (or are known).
236
- * 3. Order of transactions satisfies dependencies before dependents.
237
- * 4. No transactions with duplicate txids.
238
- *
239
- * @param chainTracker Used to verify computed merkle path roots for all bump txids.
240
- * @param allowTxidOnly optional. If true, transaction txid is assumed valid
241
- */
241
+ * Sorts `txs` and confirms validity of transaction data contained in beef
242
+ * by validating structure of this beef and confirming computed merkle roots
243
+ * using `chainTracker`.
244
+ *
245
+ * Validity requirements:
246
+ * 1. No 'known' txids, unless `allowTxidOnly` is true.
247
+ * 2. All transactions have bumps or their inputs chain back to bumps (or are known).
248
+ * 3. Order of transactions satisfies dependencies before dependents.
249
+ * 4. No transactions with duplicate txids.
250
+ *
251
+ * @param chainTracker Used to verify computed merkle path roots for all bump txids.
252
+ * @param allowTxidOnly optional. If true, transaction txid is assumed valid
253
+ */
242
254
  async verify(chainTracker, allowTxidOnly) {
243
255
  const r = this.verifyValid(allowTxidOnly);
244
256
  if (!r.valid)
245
257
  return false;
246
258
  for (const height of Object.keys(r.roots)) {
247
259
  const isValid = await chainTracker.isValidRootForHeight(r.roots[height], Number(height));
248
- if (!isValid)
260
+ if (!isValid) {
249
261
  return false;
262
+ }
250
263
  }
251
264
  return true;
252
265
  }
@@ -268,8 +281,9 @@ class Beef {
268
281
  // accept the root as valid for this block and reuse for subsequent txids
269
282
  r.roots[b.blockHeight] = root;
270
283
  }
271
- if (r.roots[b.blockHeight] !== root)
284
+ if (r.roots[b.blockHeight] !== root) {
272
285
  return false;
286
+ }
273
287
  return true;
274
288
  };
275
289
  for (const b of this.bumps) {
@@ -277,25 +291,28 @@ class Beef {
277
291
  if (n.txid && n.hash) {
278
292
  txids[n.hash] = true;
279
293
  // all txid hashes in all bumps must have agree on computed merkle path roots
280
- if (!confirmComputedRoot(b, n.hash))
294
+ if (!confirmComputedRoot(b, n.hash)) {
281
295
  return r;
296
+ }
282
297
  }
283
298
  }
284
299
  }
285
300
  for (const t of this.txs) {
286
- for (const i of t.inputTxids)
287
- // all input txids must be included before they are referenced
301
+ for (const i of t.inputTxids)
302
+ // all input txids must be included before they are referenced
303
+ {
288
304
  if (!txids[i])
289
305
  return r;
306
+ }
290
307
  txids[t.txid] = true;
291
308
  }
292
309
  r.valid = true;
293
310
  return r;
294
311
  }
295
312
  /**
296
- * Returns a binary array representing the serialized BEEF
297
- * @returns A binary array representing the BEEF
298
- */
313
+ * Returns a binary array representing the serialized BEEF
314
+ * @returns A binary array representing the BEEF
315
+ */
299
316
  toBinary() {
300
317
  const writer = new utils_js_1.Writer();
301
318
  writer.writeUInt32LE(this.magic);
@@ -310,16 +327,17 @@ class Beef {
310
327
  return writer.toArray();
311
328
  }
312
329
  /**
313
- * Returns a hex string representing the serialized BEEF
314
- * @returns A hex string representing the BEEF
315
- */
330
+ * Returns a hex string representing the serialized BEEF
331
+ * @returns A hex string representing the BEEF
332
+ */
316
333
  toHex() {
317
334
  return (0, utils_js_1.toHex)(this.toBinary());
318
335
  }
319
336
  static fromReader(br) {
320
337
  const version = br.readUInt32LE();
321
- if (version !== exports.BEEF_MAGIC && version !== exports.BEEF_MAGIC_V2)
338
+ if (version !== exports.BEEF_MAGIC && version !== exports.BEEF_MAGIC_V2) {
322
339
  throw new Error(`Serialized BEEF must start with ${exports.BEEF_MAGIC} or ${exports.BEEF_MAGIC_V2} but starts with ${version}`);
340
+ }
323
341
  const beef = new Beef(version === exports.BEEF_MAGIC_V2 ? 'V2' : undefined);
324
342
  const bumpsLength = br.readVarIntNum();
325
343
  for (let i = 0; i < bumpsLength; i++) {
@@ -334,20 +352,20 @@ class Beef {
334
352
  return beef;
335
353
  }
336
354
  /**
337
- * Constructs an instance of the Beef class based on the provided binary array
338
- * @param bin The binary array from which to construct BEEF
339
- * @returns An instance of the Beef class constructed from the binary data
340
- */
355
+ * Constructs an instance of the Beef class based on the provided binary array
356
+ * @param bin The binary array from which to construct BEEF
357
+ * @returns An instance of the Beef class constructed from the binary data
358
+ */
341
359
  static fromBinary(bin) {
342
360
  const br = new utils_js_1.Reader(bin);
343
361
  return Beef.fromReader(br);
344
362
  }
345
363
  /**
346
- * Constructs an instance of the Beef class based on the provided string
347
- * @param s The string value from which to construct BEEF
348
- * @param enc The encoding of the string value from which BEEF should be constructed
349
- * @returns An instance of the Beef class constructed from the string
350
- */
364
+ * Constructs an instance of the Beef class based on the provided string
365
+ * @param s The string value from which to construct BEEF
366
+ * @param enc The encoding of the string value from which BEEF should be constructed
367
+ * @returns An instance of the Beef class constructed from the string
368
+ */
351
369
  static fromString(s, enc) {
352
370
  enc || (enc = 'hex');
353
371
  const bin = (0, utils_js_1.toArray)(s, enc);
@@ -355,15 +373,16 @@ class Beef {
355
373
  return Beef.fromReader(br);
356
374
  }
357
375
  /**
358
- * Try to validate newTx.bumpIndex by looking for an existing bump
359
- * that proves newTx.txid
360
- *
361
- * @param newTx A new `BeefTx` that has been added to this.txs
362
- * @returns true if a bump was found, false otherwise
363
- */
376
+ * Try to validate newTx.bumpIndex by looking for an existing bump
377
+ * that proves newTx.txid
378
+ *
379
+ * @param newTx A new `BeefTx` that has been added to this.txs
380
+ * @returns true if a bump was found, false otherwise
381
+ */
364
382
  tryToValidateBumpIndex(newTx) {
365
- if (newTx.bumpIndex !== undefined)
383
+ if (newTx.bumpIndex !== undefined) {
366
384
  return true;
385
+ }
367
386
  const txid = newTx.txid;
368
387
  for (let i = 0; i < this.bumps.length; i++) {
369
388
  const j = this.bumps[i].path[0].findIndex(b => b.hash === txid);
@@ -376,9 +395,9 @@ class Beef {
376
395
  return false;
377
396
  }
378
397
  /**
379
- * Sort the `txs` by input txid dependency order.
380
- * @returns array of input txids of unproven transactions that aren't included in txs.
381
- */
398
+ * Sort the `txs` by input txid dependency order.
399
+ * @returns array of input txids of unproven transactions that aren't included in txs.
400
+ */
382
401
  sortTxs() {
383
402
  const missingInputs = {};
384
403
  const txidToTx = {};
@@ -393,8 +412,9 @@ class Beef {
393
412
  // link their inputs that exist in this beef,
394
413
  // make a note of missing inputs.
395
414
  for (const inputTxid of tx.inputTxids) {
396
- if (!txidToTx[inputTxid])
415
+ if (!txidToTx[inputTxid]) {
397
416
  missingInputs[inputTxid] = true;
417
+ }
398
418
  }
399
419
  }
400
420
  }
@@ -406,8 +426,9 @@ class Beef {
406
426
  for (const tx of this.txs) {
407
427
  for (const inputTxid of tx.inputTxids) {
408
428
  const tx = txidToTx[inputTxid];
409
- if (tx)
429
+ if (tx) {
410
430
  tx.degree++;
431
+ }
411
432
  }
412
433
  }
413
434
  // Since circular dependencies aren't possible, start with the txids no one depends on.
@@ -418,8 +439,8 @@ class Beef {
418
439
  }
419
440
  }
420
441
  // As long as we have transactions to send...
421
- while (queue.length) {
422
- let tx = queue.shift();
442
+ while (queue.length > 0) {
443
+ const tx = queue.shift();
423
444
  // Add it as new first to send
424
445
  result.unshift(tx);
425
446
  // And remove its impact on degree
@@ -439,8 +460,8 @@ class Beef {
439
460
  return Object.keys(missingInputs);
440
461
  }
441
462
  /**
442
- * @returns a shallow copy of this beef
443
- */
463
+ * @returns a shallow copy of this beef
464
+ */
444
465
  clone() {
445
466
  const c = new Beef();
446
467
  c.bumps = Array.from(this.bumps);
@@ -448,13 +469,13 @@ class Beef {
448
469
  return c;
449
470
  }
450
471
  /**
451
- * Ensure that all the txids in `knownTxids` are txidOnly
452
- * @param knownTxids
453
- */
472
+ * Ensure that all the txids in `knownTxids` are txidOnly
473
+ * @param knownTxids
474
+ */
454
475
  trimKnownTxids(knownTxids) {
455
476
  for (let i = 0; i < this.txs.length;) {
456
477
  const tx = this.txs[i];
457
- if (tx.isTxidOnly && -1 < knownTxids.indexOf(tx.txid)) {
478
+ if (tx.isTxidOnly && knownTxids.includes(tx.txid)) {
458
479
  this.txs.splice(i, 1);
459
480
  }
460
481
  else {
@@ -464,8 +485,8 @@ class Beef {
464
485
  // TODO: bumps could be trimmed to eliminate unreferenced proofs.
465
486
  }
466
487
  /**
467
- * @returns Summary of `Beef` contents as multi-line string.
468
- */
488
+ * @returns Summary of `Beef` contents as multi-line string.
489
+ */
469
490
  toLogString() {
470
491
  let log = '';
471
492
  log += `BEEF with ${this.bumps.length} BUMPS and ${this.txs.length} Transactions, isValid ${this.isValid()}\n`;
@@ -482,7 +503,7 @@ class Beef {
482
503
  log += ` bumpIndex: ${t.bumpIndex}\n`;
483
504
  }
484
505
  if (t.isTxidOnly) {
485
- log += ` txidOnly\n`;
506
+ log += ' txidOnly\n';
486
507
  }
487
508
  else {
488
509
  log += ` rawTx length=${t.rawTx.length}\n`;
@@ -1 +1 @@
1
- {"version":3,"file":"Beef.js","sourceRoot":"","sources":["../../../../src/transaction/Beef.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Beef.js","sourceRoot":"","sources":["../../../../src/transaction/Beef.ts"],"names":[],"mappings":"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"}
@@ -25,52 +25,55 @@ const Beef_js_1 = require("./Beef.js");
25
25
  */
26
26
  class BeefParty extends Beef_js_1.Beef {
27
27
  /**
28
- *
29
- * @param parties Optional array of initial unique party identifiers.
30
- */
28
+ *
29
+ * @param parties Optional array of initial unique party identifiers.
30
+ */
31
31
  constructor(parties) {
32
32
  super();
33
33
  /**
34
- * keys are party identifiers.
35
- * values are records of txids with truthy value for which the party already has validity proof.
36
- */
34
+ * keys are party identifiers.
35
+ * values are records of txids with truthy value for which the party already has validity proof.
36
+ */
37
37
  this.knownTo = {};
38
38
  if (parties) {
39
- for (const party of parties)
39
+ for (const party of parties) {
40
40
  this.addParty(party);
41
+ }
41
42
  }
42
43
  }
43
44
  /**
44
- * @param party
45
- * @returns `true` if `party` has already beed added to this `BeefParty`.
46
- */
45
+ * @param party
46
+ * @returns `true` if `party` has already beed added to this `BeefParty`.
47
+ */
47
48
  isParty(party) {
48
49
  const r = Object.keys(this.knownTo).includes(party);
49
50
  return r;
50
51
  }
51
52
  /**
52
- * Adds a new unique party identifier to this `BeefParty`.
53
- * @param party
54
- */
53
+ * Adds a new unique party identifier to this `BeefParty`.
54
+ * @param party
55
+ */
55
56
  addParty(party) {
56
- if (this.isParty(party))
57
+ if (this.isParty(party)) {
57
58
  throw new Error(`Party ${party} already exists.`);
59
+ }
58
60
  this.knownTo[party] = {};
59
61
  }
60
62
  /**
61
- * @param party
62
- * @returns Array of txids "known" to `party`.
63
- */
63
+ * @param party
64
+ * @returns Array of txids "known" to `party`.
65
+ */
64
66
  getKnownTxidsForParty(party) {
65
67
  const knownTxids = this.knownTo[party];
66
- if (!knownTxids)
68
+ if (!knownTxids) {
67
69
  throw new Error(`Party ${party} is unknown.`);
70
+ }
68
71
  return Object.keys(knownTxids);
69
72
  }
70
73
  /**
71
- * @param party
72
- * @returns trimmed beef of unknown transactions and proofs for `party`
73
- */
74
+ * @param party
75
+ * @returns trimmed beef of unknown transactions and proofs for `party`
76
+ */
74
77
  getTrimmedBeefForParty(party) {
75
78
  const knownTxids = this.getKnownTxidsForParty(party);
76
79
  const prunedBeef = this.clone();
@@ -78,13 +81,14 @@ class BeefParty extends Beef_js_1.Beef {
78
81
  return prunedBeef;
79
82
  }
80
83
  /**
81
- * Make note of additional txids "known" to `party`.
82
- * @param party unique identifier, added if new.
83
- * @param knownTxids
84
- */
84
+ * Make note of additional txids "known" to `party`.
85
+ * @param party unique identifier, added if new.
86
+ * @param knownTxids
87
+ */
85
88
  addKnownTxidsForParty(party, knownTxids) {
86
- if (!this.isParty(party))
89
+ if (!this.isParty(party)) {
87
90
  this.addParty(party);
91
+ }
88
92
  const kts = this.knownTo[party];
89
93
  for (const txid of knownTxids) {
90
94
  kts[txid] = true;
@@ -1 +1 @@
1
- {"version":3,"file":"BeefParty.js","sourceRoot":"","sources":["../../../../src/transaction/BeefParty.ts"],"names":[],"mappings":";;;AAAA,uCAAiC;AAEjC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAa,SAAU,SAAQ,cAAI;IAO/B;;;OAGG;IACH,YAAY,OAAkB;QAC1B,KAAK,EAAE,CAAA;QAXX;;;WAGG;QACH,YAAO,GAA4C,EAAE,CAAA;QAQjD,IAAI,OAAO,EAAE,CAAC;YACV,KAAK,MAAM,KAAK,IAAI,OAAO;gBACvB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAC5B,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,KAAa;QACjB,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QACnD,OAAO,CAAC,CAAA;IACZ,CAAC;IAED;;;OAGG;IACH,QAAQ,CAAC,KAAa;QAClB,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,kBAAkB,CAAC,CAAA;QACrD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;IAC5B,CAAC;IAED;;;OAGG;IACH,qBAAqB,CAAC,KAAa;QAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACtC,IAAI,CAAC,UAAU;YACX,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,cAAc,CAAC,CAAA;QACjD,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAClC,CAAC;IAED;;;OAGG;IACH,sBAAsB,CAAC,KAAa;QAChC,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAA;QACpD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;QAC/B,UAAU,CAAC,cAAc,CAAC,UAAU,CAAC,CAAA;QACrC,OAAO,UAAU,CAAA;IACrB,CAAC;IAED;;;;OAIG;IACH,qBAAqB,CAAC,KAAa,EAAE,UAAoB;QACrD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;YACpB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAC/B,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC5B,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;YAChB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;QAC5B,CAAC;IACL,CAAC;CACJ;AA1ED,8BA0EC;AAED,kBAAe,SAAS,CAAA"}
1
+ {"version":3,"file":"BeefParty.js","sourceRoot":"","sources":["../../../../src/transaction/BeefParty.ts"],"names":[],"mappings":";;;AAAA,uCAAgC;AAEhC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAa,SAAU,SAAQ,cAAI;IAOjC;;;SAGK;IACL,YAAa,OAAkB;QAC7B,KAAK,EAAE,CAAA;QAXT;;;aAGK;QACL,YAAO,GAA4C,EAAE,CAAA;QAQnD,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;YAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED;;;SAGK;IACL,OAAO,CAAE,KAAa;QACpB,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QACnD,OAAO,CAAC,CAAA;IACV,CAAC;IAED;;;SAGK;IACL,QAAQ,CAAE,KAAa;QACrB,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAAC,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,kBAAkB,CAAC,CAAA;QAAC,CAAC;QAC9E,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;IAC1B,CAAC;IAED;;;SAGK;IACL,qBAAqB,CAAE,KAAa;QAClC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACtC,IAAI,CAAC,UAAU,EAAE,CAAC;YAAC,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,cAAc,CAAC,CAAA;QAAC,CAAC;QAClE,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAChC,CAAC;IAED;;;SAGK;IACL,sBAAsB,CAAE,KAAa;QACnC,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAA;QACpD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;QAC/B,UAAU,CAAC,cAAc,CAAC,UAAU,CAAC,CAAA;QACrC,OAAO,UAAU,CAAA;IACnB,CAAC;IAED;;;;SAIK;IACL,qBAAqB,CAAE,KAAa,EAAE,UAAoB;QACxD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAAC,CAAC;QAClD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAC/B,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;YAChB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;QAC1B,CAAC;IACH,CAAC;CACF;AAtED,8BAsEC;AAED,kBAAe,SAAS,CAAA"}