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