@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.
- package/dist/cjs/package.json +1 -1
- package/dist/cjs/src/compat/ECIES.js +24 -5
- package/dist/cjs/src/compat/ECIES.js.map +1 -1
- package/dist/cjs/src/primitives/Schnorr.js +92 -0
- package/dist/cjs/src/primitives/Schnorr.js.map +1 -0
- package/dist/cjs/src/primitives/index.js +3 -1
- package/dist/cjs/src/primitives/index.js.map +1 -1
- package/dist/cjs/src/totp/totp.js +1 -1
- package/dist/cjs/src/totp/totp.js.map +1 -1
- package/dist/cjs/src/transaction/Beef.js +139 -118
- package/dist/cjs/src/transaction/Beef.js.map +1 -1
- package/dist/cjs/src/transaction/BeefParty.js +30 -26
- package/dist/cjs/src/transaction/BeefParty.js.map +1 -1
- package/dist/cjs/src/transaction/BeefTx.js +25 -15
- package/dist/cjs/src/transaction/BeefTx.js.map +1 -1
- package/dist/cjs/src/transaction/MerklePath.js.map +1 -1
- package/dist/cjs/src/transaction/Transaction.js.map +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/src/compat/ECIES.js +24 -5
- package/dist/esm/src/compat/ECIES.js.map +1 -1
- package/dist/esm/src/primitives/Schnorr.js +87 -0
- package/dist/esm/src/primitives/Schnorr.js.map +1 -0
- package/dist/esm/src/primitives/index.js +1 -0
- package/dist/esm/src/primitives/index.js.map +1 -1
- package/dist/esm/src/totp/totp.js +1 -1
- package/dist/esm/src/totp/totp.js.map +1 -1
- package/dist/esm/src/transaction/Beef.js +142 -121
- package/dist/esm/src/transaction/Beef.js.map +1 -1
- package/dist/esm/src/transaction/BeefParty.js +31 -27
- package/dist/esm/src/transaction/BeefParty.js.map +1 -1
- package/dist/esm/src/transaction/BeefTx.js +29 -19
- package/dist/esm/src/transaction/BeefTx.js.map +1 -1
- package/dist/esm/src/transaction/MerklePath.js.map +1 -1
- package/dist/esm/src/transaction/Transaction.js.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/types/src/compat/ECIES.d.ts.map +1 -1
- package/dist/types/src/primitives/Schnorr.d.ts +65 -0
- package/dist/types/src/primitives/Schnorr.d.ts.map +1 -0
- package/dist/types/src/primitives/index.d.ts +1 -0
- package/dist/types/src/primitives/index.d.ts.map +1 -1
- package/dist/types/src/transaction/Beef.d.ts +94 -94
- package/dist/types/src/transaction/Beef.d.ts.map +1 -1
- package/dist/types/src/transaction/BeefParty.d.ts +23 -23
- package/dist/types/src/transaction/BeefParty.d.ts.map +1 -1
- package/dist/types/src/transaction/BeefTx.d.ts +5 -5
- package/dist/types/src/transaction/BeefTx.d.ts.map +1 -1
- package/dist/types/src/transaction/MerklePath.d.ts.map +1 -1
- package/dist/types/src/transaction/Transaction.d.ts.map +1 -1
- package/dist/types/tsconfig.types.tsbuildinfo +1 -1
- package/dist/umd/bundle.js +1 -1
- package/docs/primitives.md +120 -9
- package/package.json +1 -1
- package/src/compat/ECIES.ts +38 -17
- package/src/compat/__tests/ECIES.test.ts +23 -1
- package/src/primitives/Schnorr.ts +95 -0
- package/src/primitives/__tests/Schnorr.test.ts +272 -0
- package/src/primitives/index.ts +1 -0
- package/src/totp/totp.ts +1 -1
- package/src/transaction/Beef.ts +351 -375
- package/src/transaction/BeefParty.ts +54 -58
- package/src/transaction/BeefTx.ts +128 -143
- package/src/transaction/MerklePath.ts +11 -11
- package/src/transaction/Transaction.ts +32 -32
|
@@ -57,34 +57,37 @@ class Beef {
|
|
|
57
57
|
this.version = version;
|
|
58
58
|
}
|
|
59
59
|
/**
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
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
|
-
|
|
67
|
+
}
|
|
68
|
+
if (this.version === 'V2') {
|
|
68
69
|
return exports.BEEF_MAGIC_V2;
|
|
69
|
-
|
|
70
|
-
|
|
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
|
-
|
|
76
|
-
|
|
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
|
-
|
|
83
|
-
|
|
84
|
-
|
|
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
|
|
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
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
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
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
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
|
|
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
|
-
|
|
175
|
-
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
219
|
+
}
|
|
220
|
+
for (const tx of b.txs) {
|
|
210
221
|
this.mergeBeefTx(tx);
|
|
222
|
+
}
|
|
211
223
|
}
|
|
212
224
|
/**
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
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
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
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
|
-
|
|
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
|
-
|
|
297
|
-
|
|
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
|
-
|
|
314
|
-
|
|
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
|
-
|
|
338
|
-
|
|
339
|
-
|
|
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
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
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
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
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
|
-
|
|
380
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
452
|
-
|
|
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 &&
|
|
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
|
-
|
|
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 +=
|
|
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
|
-
|
|
30
|
-
|
|
28
|
+
*
|
|
29
|
+
* @param parties Optional array of initial unique party identifiers.
|
|
30
|
+
*/
|
|
31
31
|
constructor(parties) {
|
|
32
32
|
super();
|
|
33
33
|
/**
|
|
34
|
-
|
|
35
|
-
|
|
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
|
-
|
|
45
|
-
|
|
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
|
-
|
|
53
|
-
|
|
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
|
-
|
|
62
|
-
|
|
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
|
-
|
|
72
|
-
|
|
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
|
-
|
|
82
|
-
|
|
83
|
-
|
|
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,
|
|
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"}
|