@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
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import MerklePath from
|
|
2
|
-
import BeefTx from
|
|
3
|
-
import { Reader, Writer, toHex, toArray } from
|
|
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
|
-
|
|
55
|
-
|
|
56
|
-
|
|
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
|
-
|
|
61
|
+
}
|
|
62
|
+
if (this.version === 'V2') {
|
|
62
63
|
return BEEF_MAGIC_V2;
|
|
63
|
-
|
|
64
|
-
|
|
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
|
-
|
|
70
|
-
|
|
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
|
-
|
|
77
|
-
|
|
78
|
-
|
|
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
|
|
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
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
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
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
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
|
|
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
|
-
|
|
169
|
-
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
213
|
+
}
|
|
214
|
+
for (const tx of b.txs) {
|
|
204
215
|
this.mergeBeefTx(tx);
|
|
216
|
+
}
|
|
205
217
|
}
|
|
206
218
|
/**
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
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
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
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
|
-
|
|
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
|
-
|
|
291
|
-
|
|
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
|
-
|
|
308
|
-
|
|
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
|
-
|
|
332
|
-
|
|
333
|
-
|
|
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
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
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
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
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
|
-
|
|
374
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
446
|
-
|
|
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 &&
|
|
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
|
-
|
|
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 +=
|
|
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
|
|
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
|
-
|
|
26
|
-
|
|
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
|
-
|
|
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
|
-
|
|
42
|
-
|
|
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
|
-
|
|
50
|
-
|
|
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
|
-
|
|
59
|
-
|
|
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
|
-
|
|
69
|
-
|
|
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
|
-
|
|
79
|
-
|
|
80
|
-
|
|
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,
|
|
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"}
|