@bsv/overlay 0.1.0-alpha.1 → 0.1.0-alpha.2

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 (51) hide show
  1. package/dist/cjs/mod.js +5 -14
  2. package/dist/cjs/mod.js.map +1 -1
  3. package/dist/cjs/package.json +2 -2
  4. package/dist/cjs/src/Engine.js +110 -43
  5. package/dist/cjs/src/Engine.js.map +1 -1
  6. package/dist/cjs/src/storage/knex/KnexStorage.js +25 -3
  7. package/dist/cjs/src/storage/knex/KnexStorage.js.map +1 -1
  8. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  9. package/dist/esm/mod.js +2 -13
  10. package/dist/esm/mod.js.map +1 -1
  11. package/dist/esm/src/Engine.js +110 -43
  12. package/dist/esm/src/Engine.js.map +1 -1
  13. package/dist/esm/src/storage/knex/KnexStorage.js +24 -3
  14. package/dist/esm/src/storage/knex/KnexStorage.js.map +1 -1
  15. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  16. package/dist/types/mod.d.ts +12 -12
  17. package/dist/types/mod.d.ts.map +1 -1
  18. package/dist/types/src/AdmittanceInstructions.d.ts +2 -2
  19. package/dist/types/src/AdmittanceInstructions.d.ts.map +1 -1
  20. package/dist/types/src/Engine.d.ts +46 -26
  21. package/dist/types/src/Engine.d.ts.map +1 -1
  22. package/dist/types/src/LookupAnswer.d.ts.map +1 -1
  23. package/dist/types/src/LookupFormula.d.ts +5 -5
  24. package/dist/types/src/LookupFormula.d.ts.map +1 -1
  25. package/dist/types/src/LookupQuestion.d.ts.map +1 -1
  26. package/dist/types/src/LookupService.d.ts +32 -20
  27. package/dist/types/src/LookupService.d.ts.map +1 -1
  28. package/dist/types/src/Output.d.ts +4 -4
  29. package/dist/types/src/Output.d.ts.map +1 -1
  30. package/dist/types/src/STEAK.d.ts +1 -1
  31. package/dist/types/src/TopicManager.d.ts +5 -5
  32. package/dist/types/src/TopicManager.d.ts.map +1 -1
  33. package/dist/types/src/storage/Storage.d.ts +47 -34
  34. package/dist/types/src/storage/Storage.d.ts.map +1 -1
  35. package/dist/types/src/storage/knex/KnexStorage.d.ts +6 -4
  36. package/dist/types/src/storage/knex/KnexStorage.d.ts.map +1 -1
  37. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  38. package/mod.ts +12 -12
  39. package/package.json +2 -2
  40. package/src/AdmittanceInstructions.ts +8 -8
  41. package/src/Engine.ts +458 -383
  42. package/src/LookupAnswer.ts +7 -7
  43. package/src/LookupFormula.ts +21 -21
  44. package/src/LookupQuestion.ts +9 -9
  45. package/src/LookupService.ts +54 -36
  46. package/src/Output.ts +22 -22
  47. package/src/STEAK.ts +1 -1
  48. package/src/TopicManager.ts +21 -15
  49. package/src/__tests/Engine.test.ts +6 -4
  50. package/src/storage/Storage.ts +49 -34
  51. package/src/storage/knex/KnexStorage.ts +101 -76
@@ -2,26 +2,26 @@ import { Transaction } from '@bsv/sdk';
2
2
  /**
3
3
  * Am engine for running BSV Overlay Services (topic managers and lookup services).
4
4
  */
5
- export default class Engine {
5
+ export class Engine {
6
6
  managers;
7
7
  lookupServices;
8
8
  storage;
9
9
  chainTracker;
10
+ broadcaster;
10
11
  /**
11
12
  * Creates a new Overlay Services Engine
12
13
  * @param {[key: string]: TopicManager} managers - manages topic admittance
13
14
  * @param {[key: string]: LookupService} lookupServices - manages UTXO lookups
14
15
  * @param {Storage} storage - for interacting with internally-managed persistent data
15
16
  * @param {ChainTracker} chainTracker - Verifies SPV data associated with transactions
16
- * @param {ProofNotifier[]} [proofNotifiers] - proof notifier services coming soon!
17
+ * @param {Broadcaster} [Broadcaster] - broadcaster used for broadcasting the incoming transaction
17
18
  */
18
- constructor(managers, lookupServices, storage, chainTracker
19
- // public proofNotifiers: ProofNotifier[]
20
- ) {
19
+ constructor(managers, lookupServices, storage, chainTracker, broadcaster) {
21
20
  this.managers = managers;
22
21
  this.lookupServices = lookupServices;
23
22
  this.storage = storage;
24
23
  this.chainTracker = chainTracker;
24
+ this.broadcaster = broadcaster;
25
25
  }
26
26
  /**
27
27
  * Submits a transaction for processing by Overlay Services.
@@ -30,8 +30,9 @@ export default class Engine {
30
30
  */
31
31
  async submit(taggedBEEF) {
32
32
  for (const t of taggedBEEF.topics) {
33
- if (!this.managers[t])
33
+ if (this.managers[t] === undefined || this.managers[t] === null) {
34
34
  throw new Error(`This server does not support this topic: ${t}`);
35
+ }
35
36
  }
36
37
  // Validate the transaction SPV information
37
38
  const tx = Transaction.fromBEEF(taggedBEEF.beef);
@@ -64,14 +65,14 @@ export default class Engine {
64
65
  const previousTXID = input.sourceTXID || input.sourceTransaction?.id('hex');
65
66
  // Check if a previous UTXO exists in the storage medium
66
67
  const output = await this.storage.findOutput(previousTXID, input.sourceOutputIndex, topic);
67
- if (output) {
68
+ if (output !== undefined && output !== null) {
68
69
  previousCoins.push(i);
69
70
  // This output is now spent.
70
71
  await this.storage.markUTXOAsSpent(output.txid, output.outputIndex, topic);
71
72
  // Notify the lookup services about the spending of this output
72
73
  for (const l of Object.values(this.lookupServices)) {
73
74
  try {
74
- if (l.outputSpent) {
75
+ if (l.outputSpent !== undefined && l.outputSpent !== null) {
75
76
  await l.outputSpent(output.txid, output.outputIndex, topic);
76
77
  }
77
78
  }
@@ -94,9 +95,9 @@ export default class Engine {
94
95
  continue;
95
96
  }
96
97
  // Keep track of which outputs to admit, mark as stale, or retain
97
- let outputsToAdmit = admissableOutputs.outputsToAdmit;
98
- let staleCoins = [];
99
- let outputsConsumed = [];
98
+ const outputsToAdmit = admissableOutputs.outputsToAdmit;
99
+ const staleCoins = [];
100
+ const outputsConsumed = [];
100
101
  // Find which outputs should not be retained and mark them as stale
101
102
  // For each of the previous UTXOs, if the the UTXO was not included in the list of UTXOs identified for retention, then it will be marked as stale.
102
103
  for (const inputIndex of previousCoins) {
@@ -118,7 +119,7 @@ export default class Engine {
118
119
  // Remove stale outputs recursively
119
120
  for (const coin of staleCoins) {
120
121
  const output = await this.storage.findOutput(coin.txid, coin.outputIndex, topic);
121
- if (output) {
122
+ if (output !== undefined && output !== null) {
122
123
  await this.deleteUTXODeep(output);
123
124
  }
124
125
  }
@@ -144,7 +145,7 @@ export default class Engine {
144
145
  // Notify all the lookup services about the new UTXO
145
146
  for (const l of Object.values(this.lookupServices)) {
146
147
  try {
147
- if (l.outputAdded) {
148
+ if (l.outputAdded !== undefined && l.outputAdded !== null) {
148
149
  await l.outputAdded(txid, outputIndex, tx.outputs[outputIndex].lockingScript, topic);
149
150
  }
150
151
  }
@@ -154,7 +155,7 @@ export default class Engine {
154
155
  // Update each output consumed to know who consumed it
155
156
  for (const output of outputsConsumed) {
156
157
  const outputToUpdate = await this.storage.findOutput(output.txid, output.outputIndex, topic);
157
- if (outputToUpdate) {
158
+ if (outputToUpdate !== undefined && outputToUpdate !== null) {
158
159
  const newConsumedBy = [...new Set([...newUTXOs, ...outputToUpdate.consumedBy])];
159
160
  // Note: only update if newConsumedBy !== new Set(JSON.parse(outputToUpdate.consumedBy)) ?
160
161
  await this.storage.updateConsumedBy(output.txid, output.outputIndex, topic, newConsumedBy);
@@ -168,8 +169,11 @@ export default class Engine {
168
169
  // Keep track of what outputs were admitted for what topic
169
170
  steak[topic] = admissableOutputs;
170
171
  }
172
+ // Broadcast the transaction
173
+ if (Object.keys(steak).length > 0 && this.broadcaster !== undefined) {
174
+ await this.broadcaster.broadcast(tx);
175
+ }
171
176
  return steak;
172
- // TODO subscribe to get notified by proof notifiers when proof is found for TX if not already present, so the tree can be chopped down
173
177
  // TODO propagate transaction to other nodes according to synchronization agreements
174
178
  }
175
179
  /**
@@ -180,7 +184,7 @@ export default class Engine {
180
184
  async lookup(lookupQuestion) {
181
185
  // Validate a lookup service for the provider is found
182
186
  const lookupService = this.lookupServices[lookupQuestion.service];
183
- if (!lookupService)
187
+ if (lookupService === undefined || lookupService === null)
184
188
  throw new Error(`Lookup service not found for provider: ${lookupQuestion.service}`);
185
189
  let lookupResult = await lookupService.lookup(lookupQuestion);
186
190
  // Handle custom lookup service answers
@@ -192,11 +196,11 @@ export default class Engine {
192
196
  for (const { txid, outputIndex, history } of lookupResult) {
193
197
  // Make sure this is an unspent output (UTXO)
194
198
  const UTXO = await this.storage.findOutput(txid, outputIndex, undefined, false);
195
- if (!UTXO)
199
+ if (UTXO === undefined || UTXO === null)
196
200
  continue;
197
201
  // Get the history for this utxo and construct a BRC-8 Envelope
198
202
  const output = await this.getUTXOHistory(UTXO, history, 0);
199
- if (output) {
203
+ if (output !== undefined && output !== null) {
200
204
  hydratedOutputs.push({
201
205
  beef: output.beef,
202
206
  outputIndex: output.outputIndex
@@ -209,14 +213,19 @@ export default class Engine {
209
213
  };
210
214
  }
211
215
  /**
212
- * Traverse and return the history of a UTXO
213
- * @param historySelector
214
- * @param currentDepth
215
- * @param output
216
- * @param txid
217
- * @param outputIndex
218
- * @param id
219
- * @returns {Promise<EnvelopeEvidenceApi>}
216
+ * Traverse and return the history of a UTXO.
217
+ *
218
+ * This method traverses the history of a given Unspent Transaction Output (UTXO) and returns
219
+ * its historical data based on the provided history selector and current depth.
220
+ *
221
+ * @param output - The UTXO to traverse the history for.
222
+ * @param historySelector - Optionally directs the history traversal:
223
+ * - If a number, denotes how many previous spends (in terms of chain depth) to include.
224
+ * - If a function, accepts a BEEF-formatted transaction, an output index, and the current depth as parameters,
225
+ * returning a promise that resolves to a boolean indicating whether to include the output in the history.
226
+ * @param {number} [currentDepth=0] - The current depth of the traversal relative to the top-level UTXO.
227
+ *
228
+ * @returns {Promise<Output | undefined>} - A promise that resolves to the output history if found, or undefined if not.
220
229
  */
221
230
  async getUTXOHistory(output, historySelector, currentDepth = 0) {
222
231
  // If we have an output but no history selector, jsut return the output.
@@ -234,7 +243,7 @@ export default class Engine {
234
243
  if (shouldTraverseHistory === false) {
235
244
  return undefined;
236
245
  }
237
- else if (output && output.outputsConsumed.length === 0) {
246
+ else if (output !== null && output !== undefined && output.outputsConsumed.length === 0) {
238
247
  return output;
239
248
  }
240
249
  try {
@@ -242,21 +251,23 @@ export default class Engine {
242
251
  // Only retrieve unique values in case outputs are doubly referenced
243
252
  const outputsConsumed = output.outputsConsumed;
244
253
  // Find the child outputs for each utxo consumed by the current output
245
- const childHistories = await (await Promise.all(outputsConsumed.map(async (outputIdentifier) => {
254
+ const childHistories = (await Promise.all(outputsConsumed.map(async (outputIdentifier) => {
246
255
  const output = await this.storage.findOutput(outputIdentifier.txid, outputIdentifier.outputIndex);
247
256
  // Make sure an output was found
248
- if (!output) {
257
+ if (output === undefined || output === null) {
249
258
  return undefined;
250
259
  }
251
260
  // Find previousUTXO history
252
- return this.getUTXOHistory(output, historySelector, currentDepth + 1);
261
+ return await this.getUTXOHistory(output, historySelector, currentDepth + 1);
253
262
  }))).filter(x => x !== undefined);
254
263
  const tx = Transaction.fromBEEF(output.beef);
255
264
  for (const input of childHistories) {
256
- if (!input)
265
+ if (input === undefined || input === null)
257
266
  continue;
258
267
  const inputIndex = tx.inputs.findIndex((input) => {
259
- const sourceTXID = input.sourceTXID || input.sourceTransaction?.id('hex');
268
+ const sourceTXID = input.sourceTXID !== undefined && input.sourceTXID !== ''
269
+ ? input.sourceTXID
270
+ : input.sourceTransaction?.id('hex');
260
271
  return sourceTXID === output.txid && input.sourceOutputIndex === output.outputIndex;
261
272
  });
262
273
  tx.inputs[inputIndex].sourceTransaction = Transaction.fromBEEF(input.beef);
@@ -276,13 +287,10 @@ export default class Engine {
276
287
  }
277
288
  }
278
289
  /**
279
- * Delete a UTXO and all stale consumed inputs
280
- * @param output
281
- * @param id
282
- * @param txid
283
- * @param outputIndex
284
- * @returns {Promise<void>}
285
- */
290
+ * Delete a UTXO and all stale consumed inputs.
291
+ * @param output - The UTXO to be deleted.
292
+ * @returns {Promise<void>} - A promise that resolves when the deletion process is complete.
293
+ */
286
294
  async deleteUTXODeep(output) {
287
295
  try {
288
296
  // Delete the current output IFF there are no references to it
@@ -304,7 +312,7 @@ export default class Engine {
304
312
  output.outputsConsumed.map(async (outputIdentifier) => {
305
313
  const staleOutput = await this.storage.findOutput(outputIdentifier.txid, outputIdentifier.outputIndex, output.topic);
306
314
  // Make sure an output was found
307
- if (!staleOutput) {
315
+ if (staleOutput === null || staleOutput === undefined) {
308
316
  return undefined;
309
317
  }
310
318
  // Parse out the existing data, then concat the new outputs with no duplicates
@@ -321,6 +329,63 @@ export default class Engine {
321
329
  throw new Error(`Failed to delete all stale outputs: ${error}`);
322
330
  }
323
331
  }
332
+ /**
333
+ * Recursively updates the Merkle proof for the given output and its consumedBy outputs.
334
+ * If the output matches the source transaction ID, its Merkle proof is updated directly.
335
+ * Otherwise, the Merkle proof is updated for the corresponding input in each transaction.
336
+ *
337
+ * @param output - The output to update with the new Merkle proof.
338
+ * @param proof - The Merkle proof to be applied to the output or its inputs.
339
+ * @param sourceTxid - The transaction ID of the source output whose Merkle proof is being updated.
340
+ */
341
+ async updateMerkleProof(output, proof, recursionPath) {
342
+ // Add current output to recursionPath
343
+ recursionPath.push({ txid: output.txid, outputIndex: output.outputIndex });
344
+ const tx = Transaction.fromBEEF(output.beef);
345
+ // Handle the base case
346
+ if (output.txid === recursionPath[0].txid) {
347
+ tx.merklePath = proof;
348
+ }
349
+ else {
350
+ // Traverse inputs to update the Merkle proof according to the recursionPath
351
+ let currentInputs = tx.inputs;
352
+ for (let i = recursionPath.length - 1; i >= 0; i--) {
353
+ const crumb = recursionPath[i];
354
+ for (const input of currentInputs) {
355
+ if (input.sourceTXID === crumb.txid && input.sourceOutputIndex === crumb.outputIndex) {
356
+ if (i === 0 && input.sourceTransaction !== undefined) {
357
+ input.sourceTransaction.merklePath = proof;
358
+ }
359
+ else if (input.sourceTransaction !== undefined) {
360
+ currentInputs = input.sourceTransaction.inputs;
361
+ break;
362
+ }
363
+ }
364
+ }
365
+ }
366
+ }
367
+ // Update the output's BEEF in the storage DB
368
+ await this.storage.updateOutputBeef(output.txid, output.outputIndex, output.topic, tx.toBEEF());
369
+ // Recursively update the consumedBy outputs
370
+ for (const consumingOutput of output.consumedBy) {
371
+ const consumedOutputs = await this.storage.findOutputsForTransaction(consumingOutput.txid);
372
+ for (const consumedOutput of consumedOutputs) {
373
+ await this.updateMerkleProof(consumedOutput, proof, []);
374
+ }
375
+ }
376
+ }
377
+ /**
378
+ * Recursively prune UTXOs when an incoming Merkle Proof is received.
379
+ *
380
+ * @param txid - Transaction ID of the associated outputs to prune.
381
+ * @param proof - Merkle proof containing the Merkle path and other relevant data to verify the transaction.
382
+ */
383
+ async handleNewMerkleProof(txid, proof) {
384
+ const outputs = await this.storage.findOutputsForTransaction(txid);
385
+ for (const output of outputs) {
386
+ await this.updateMerkleProof(output, proof, []);
387
+ }
388
+ }
324
389
  /**
325
390
  * Find a list of supported topic managers
326
391
  * @public
@@ -342,8 +407,9 @@ export default class Engine {
342
407
  * @public
343
408
  * @returns {Promise<string>} - the documentation for the topic manager
344
409
  */
345
- async getDocumentationForTopicManger(manager) {
346
- return this.managers[manager].getDocumentation?.() || 'No documentation found!';
410
+ async getDocumentationForTopicManager(manager) {
411
+ const documentation = await this.managers[manager]?.getDocumentation?.();
412
+ return documentation !== undefined ? documentation : 'No documentation found!';
347
413
  }
348
414
  /**
349
415
  * Run a query to get the documentation for a particular lookup service
@@ -351,7 +417,8 @@ export default class Engine {
351
417
  * @returns {Promise<string>} - the documentation for the lookup service
352
418
  */
353
419
  async getDocumentationForLookupServiceProvider(provider) {
354
- return this.lookupServices[provider].getDocumentation?.() || 'No documentation found!';
420
+ const documentation = await this.lookupServices[provider]?.getDocumentation?.();
421
+ return documentation !== undefined ? documentation : 'No documentation found!';
355
422
  }
356
423
  }
357
424
  //# sourceMappingURL=Engine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Engine.js","sourceRoot":"","sources":["../../../src/Engine.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,WAAW,EAAgB,MAAM,UAAU,CAAA;AAEpD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,MAAM;IAUZ;IACA;IACA;IACA;IAZX;;;;;;;OAOG;IACH,YACW,QAAyC,EACzC,cAAgD,EAChD,OAAgB,EAChB,YAA0B;IACjC,yCAAyC;;QAJlC,aAAQ,GAAR,QAAQ,CAAiC;QACzC,mBAAc,GAAd,cAAc,CAAkC;QAChD,YAAO,GAAP,OAAO,CAAS;QAChB,iBAAY,GAAZ,YAAY,CAAc;IAEjC,CAAC;IAEL;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,UAAsB;QAC/B,KAAK,MAAM,CAAC,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,EAAE,CAAC,CAAA;QAC3F,CAAC;QACD,2CAA2C;QAC3C,MAAM,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAChD,MAAM,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,CAAW,CAAA;QACnC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QAClD,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;QAElE,6CAA6C;QAC7C,MAAM,KAAK,GAAU,EAAE,CAAA;QACvB,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACpC,yDAAyD;YACzD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,2BAA2B,CAAC;gBAC7D,IAAI;gBACJ,KAAK;aACR,CAAC,CAAA;YACF,IAAI,SAAS,EAAE,CAAC;gBACZ,yCAAyC;gBACzC,iEAAiE;gBACjE,uNAAuN;gBACvN,qIAAqI;gBACrI,KAAK,CAAC,KAAK,CAAC,GAAG;oBACX,cAAc,EAAE,EAAE;oBAClB,aAAa,EAAE,EAAE;iBACpB,CAAA;gBACD,SAAQ;YACZ,CAAC;YAED,+FAA+F;YAC/F,MAAM,aAAa,GAAa,EAAE,CAAA;YAClC,KAAK,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC3C,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,iBAAiB,EAAE,EAAE,CAAC,KAAK,CAAW,CAAA;gBACrF,wDAAwD;gBACxD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CACxC,YAAY,EACZ,KAAK,CAAC,iBAAiB,EACvB,KAAK,CACR,CAAA;gBACD,IAAI,MAAM,EAAE,CAAC;oBACT,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;oBAErB,4BAA4B;oBAC5B,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAC9B,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,WAAW,EAClB,KAAK,CACR,CAAA;oBAED,+DAA+D;oBAC/D,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;wBACjD,IAAI,CAAC;4BACD,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;gCAChB,MAAM,CAAC,CAAC,WAAW,CACf,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,WAAW,EAClB,KAAK,CACR,CAAA;4BACL,CAAC;wBACL,CAAC;wBAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;oBACnB,CAAC;gBACL,CAAC;YACL,CAAC;YAED,4DAA4D;YAC5D,IAAI,iBAAyC,CAAA;YAC7C,IAAI,CAAC;gBACD,iBAAiB,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,yBAAyB,CAAC,UAAU,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;YAC5G,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,wGAAwG;gBACxG,kNAAkN;gBAClN,KAAK,CAAC,KAAK,CAAC,GAAG;oBACX,cAAc,EAAE,EAAE;oBAClB,aAAa,EAAE,EAAE;iBACpB,CAAA;gBACD,SAAQ;YACZ,CAAC;YAED,iEAAiE;YACjE,IAAI,cAAc,GAAa,iBAAiB,CAAC,cAAc,CAAA;YAC/D,IAAI,UAAU,GAGR,EAAE,CAAA;YACR,IAAI,eAAe,GAGb,EAAE,CAAA;YAER,mEAAmE;YACnE,mJAAmJ;YACnJ,KAAK,MAAM,UAAU,IAAI,aAAa,EAAE,CAAC;gBACrC,MAAM,YAAY,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,iBAAiB,EAAE,EAAE,CAAC,KAAK,CAAW,CAAA;gBACrH,MAAM,mBAAmB,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,iBAAiB,CAAA;gBACnE,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;oBACxD,UAAU,CAAC,IAAI,CAAC;wBACZ,IAAI,EAAE,YAAY;wBAClB,WAAW,EAAE,mBAAmB;qBACnC,CAAC,CAAA;gBACN,CAAC;qBAAM,CAAC;oBACJ,eAAe,CAAC,IAAI,CAAC;wBACjB,IAAI,EAAE,YAAY;wBAClB,WAAW,EAAE,mBAAmB;qBACnC,CAAC,CAAA;gBACN,CAAC;YACL,CAAC;YAED,mCAAmC;YACnC,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;gBAC5B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;gBAChF,IAAI,MAAM,EAAE,CAAC;oBACT,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;gBACrC,CAAC;YACL,CAAC;YAED,uDAAuD;YACvD,MAAM,QAAQ,GAA4C,EAAE,CAAA;YAC5D,KAAK,MAAM,WAAW,IAAI,cAAc,EAAE,CAAC;gBACvC,mBAAmB;gBACnB,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;oBAC5B,IAAI;oBACJ,WAAW;oBACX,YAAY,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE;oBAC9D,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,QAAkB;oBACpD,KAAK;oBACL,KAAK,EAAE,KAAK;oBACZ,IAAI,EAAE,UAAU,CAAC,IAAI;oBACrB,UAAU,EAAE,EAAE;oBACd,eAAe;iBAClB,CAAC,CAAA;gBACF,QAAQ,CAAC,IAAI,CAAC;oBACV,IAAI;oBACJ,WAAW;iBACd,CAAC,CAAA;gBAEF,oDAAoD;gBACpD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;oBACjD,IAAI,CAAC;wBACD,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;4BAChB,MAAM,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;wBACxF,CAAC;oBACL,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;gBACnB,CAAC;YACL,CAAC;YAED,sDAAsD;YACtD,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;gBACnC,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;gBAC5F,IAAI,cAAc,EAAE,CAAC;oBACjB,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;oBAC/E,0FAA0F;oBAC1F,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE,KAAK,EAAE,aAAa,CAAC,CAAA;gBAC9F,CAAC;YACL,CAAC;YAED,iEAAiE;YACjE,MAAM,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC;gBACxC,IAAI;gBACJ,KAAK;aACR,CAAC,CAAA;YAEF,0DAA0D;YAC1D,KAAK,CAAC,KAAK,CAAC,GAAG,iBAAiB,CAAA;QACpC,CAAC;QAED,OAAO,KAAK,CAAA;QACZ,uIAAuI;QACvI,oFAAoF;IACxF,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,cAA8B;QACvC,sDAAsD;QACtD,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;QACjE,IAAI,CAAC,aAAa;YAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,cAAc,CAAC,OAAO,EAAE,CAAC,CAAA;QAEvG,IAAI,YAAY,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;QAC7D,uCAAuC;QACvC,IAAK,YAA6B,CAAC,IAAI,KAAK,UAAU,IAAK,YAA6B,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YAC9G,OAAO,YAA4B,CAAA;QACvC,CAAC;QACD,YAAY,GAAG,YAA6B,CAAA;QAE5C,MAAM,eAAe,GAA8C,EAAE,CAAA;QAErE,KAAK,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,YAAY,EAAE,CAAC;YACxD,6CAA6C;YAC7C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CACtC,IAAI,EACJ,WAAW,EACX,SAAS,EACT,KAAK,CACR,CAAA;YACD,IAAI,CAAC,IAAI;gBAAE,SAAQ;YAEnB,+DAA+D;YAC/D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;YAC1D,IAAI,MAAM,EAAE,CAAC;gBACT,eAAe,CAAC,IAAI,CAAC;oBACjB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,WAAW,EAAE,MAAM,CAAC,WAAW;iBAClC,CAAC,CAAA;YACN,CAAC;QACL,CAAC;QACD,OAAO;YACH,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,eAAe;SAC3B,CAAA;IACL,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,cAAc,CAChB,MAAc,EACd,eAA4G,EAAE,YAAY,GAAG,CAAC;QAE9H,wEAAwE;QACxE,IAAI,OAAO,eAAe,KAAK,WAAW,EAAE,CAAC;YACzC,OAAO,MAAM,CAAA;QACjB,CAAC;QAED,sEAAsE;QACtE,IAAI,qBAAqB,CAAA;QACzB,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE,CAAC;YACtC,qBAAqB,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;QAChG,CAAC;aAAM,CAAC;YACJ,qBAAqB,GAAG,YAAY,IAAI,eAAe,CAAA;QAC3D,CAAC;QAED,IAAI,qBAAqB,KAAK,KAAK,EAAE,CAAC;YAClC,OAAO,SAAS,CAAA;QACpB,CAAC;aAAM,IAAI,MAAM,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvD,OAAO,MAAM,CAAA;QACjB,CAAC;QAED,IAAI,CAAC;YACD,2DAA2D;YAC3D,oEAAoE;YACpE,MAAM,eAAe,GAA4C,MAAM,CAAC,eAAe,CAAA;YAEvF,sEAAsE;YACtE,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,OAAO,CAAC,GAAG,CAC3C,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,gBAAgB,EAAE,EAAE;gBAC3C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAA;gBAEjG,gCAAgC;gBAChC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACV,OAAO,SAAS,CAAA;gBACpB,CAAC;gBAED,4BAA4B;gBAC5B,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,eAAe,EAAE,YAAY,GAAG,CAAC,CAAC,CAAA;YACzE,CAAC,CAAC,CACL,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAA;YAE/B,MAAM,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YAC5C,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;gBACjC,IAAI,CAAC,KAAK;oBAAE,SAAQ;gBACpB,MAAM,UAAU,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;oBAC7C,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,iBAAiB,EAAE,EAAE,CAAC,KAAK,CAAW,CAAA;oBACnF,OAAO,UAAU,KAAK,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,iBAAiB,KAAK,MAAM,CAAC,WAAW,CAAA;gBACvF,CAAC,CAAC,CAAA;gBACF,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,iBAAiB,GAAG,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAC9E,CAAC;YACD,MAAM,IAAI,GAAG,EAAE,CAAC,MAAM,EAAE,CAAA;YACxB,OAAO;gBACH,GAAG,MAAM;gBACT,IAAI;aACP,CAAA;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,kCAAkC;YAClC,mBAAmB;YACnB,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,EAAE,CAAC,CAAA;YACpD,YAAY;YACZ,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,EAAE,CAAC,CAAA;QAC1D,CAAC;IACL,CAAC;IAED;;;;;;;QAOI;IACI,KAAK,CAAC,cAAc,CAAC,MAAc;QACvC,IAAI,CAAC;YACD,8DAA8D;YAC9D,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjC,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;gBAE9E,uDAAuD;gBACvD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;oBACjD,IAAI,CAAC;wBACD,MAAM,CAAC,CAAC,aAAa,EAAE,CACnB,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,KAAM,CAChB,CAAA;oBACL,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;gBACnB,CAAC;YACL,CAAC;YAED,8CAA8C;YAC9C,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtC,OAAM;YACV,CAAC;YAED,wDAAwD;YACxD,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,gBAAgB,EAAE,EAAE;gBAClD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;gBAEpH,gCAAgC;gBAChC,IAAI,CAAC,WAAW,EAAE,CAAC;oBACf,OAAO,SAAS,CAAA;gBACpB,CAAC;gBAED,8EAA8E;gBAC9E,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACtC,WAAW,CAAC,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,WAAW,KAAK,MAAM,CAAC,WAAW,CAAC,CAAA;oBAC3H,sCAAsC;oBACtC,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,UAAU,CAAC,CAAA;gBAClI,CAAC;gBAED,4BAA4B;gBAC5B,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;YACjD,CAAC,CAAC,CAAA;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,uCAAuC,KAAK,EAAE,CAAC,CAAA;QACnE,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,iBAAiB;QACnB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACrC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,0BAA0B;QAC5B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IAC3C,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,8BAA8B,CAAC,OAAY;QAC7C,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,gBAAgB,EAAE,EAAE,IAAI,yBAAyB,CAAA;IACnF,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,wCAAwC,CAAC,QAAa;QACxD,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,EAAE,IAAI,yBAAyB,CAAA;IAC1F,CAAC;CACJ"}
1
+ {"version":3,"file":"Engine.js","sourceRoot":"","sources":["../../../src/Engine.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export default class KnexStorage {
1
+ export class KnexStorage {
2
2
  knex;
3
3
  constructor(knex) {
4
4
  this.knex = knex;
@@ -13,7 +13,7 @@ export default class KnexStorage {
13
13
  if (spent !== undefined)
14
14
  search.spent = spent;
15
15
  const [output] = await this.knex('outputs').where(search).select('txid', 'outputIndex', 'outputScript', 'topic', 'satoshis', 'beef', 'outputsConsumed', 'spent', 'consumedBy');
16
- if (!output) {
16
+ if (output === undefined || output === null) {
17
17
  return null;
18
18
  }
19
19
  return {
@@ -25,6 +25,20 @@ export default class KnexStorage {
25
25
  consumedBy: JSON.parse(output.consumedBy)
26
26
  };
27
27
  }
28
+ async findOutputsForTransaction(txid) {
29
+ const [output] = await this.knex('outputs').where({ txid }).select('txid', 'outputIndex', 'outputScript', 'topic', 'satoshis', 'beef', 'outputsConsumed', 'spent', 'consumedBy');
30
+ if (output === undefined || output === null) {
31
+ return [];
32
+ }
33
+ return {
34
+ ...output,
35
+ outputScript: [...output.outputScript],
36
+ beef: [...output.beef],
37
+ spent: Boolean(output.spent),
38
+ outputsConsumed: JSON.parse(output.outputsConsumed),
39
+ consumedBy: JSON.parse(output.consumedBy)
40
+ };
41
+ }
28
42
  async deleteOutput(txid, outputIndex, topic) {
29
43
  await this.knex('outputs').where({
30
44
  txid, outputIndex, topic
@@ -37,7 +51,7 @@ export default class KnexStorage {
37
51
  outputScript: Buffer.from(output.outputScript),
38
52
  topic: output.topic,
39
53
  satoshis: Number(output.satoshis),
40
- beef: [...output.beef],
54
+ beef: Buffer.from(new Uint8Array(output.beef)),
41
55
  outputsConsumed: JSON.stringify(output.outputsConsumed),
42
56
  consumedBy: JSON.stringify(output.consumedBy),
43
57
  spent: output.spent
@@ -57,6 +71,13 @@ export default class KnexStorage {
57
71
  topic
58
72
  }).update('consumedBy', consumedBy);
59
73
  }
74
+ async updateOutputBeef(txid, outputIndex, topic, beef) {
75
+ await this.knex('outputs').where({
76
+ txid,
77
+ outputIndex,
78
+ topic
79
+ }).update('beef', beef);
80
+ }
60
81
  async insertAppliedTransaction(tx) {
61
82
  await this.knex('applied_transactions').insert({
62
83
  txid: tx.txid,
@@ -1 +1 @@
1
- {"version":3,"file":"KnexStorage.js","sourceRoot":"","sources":["../../../../../src/storage/knex/KnexStorage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"KnexStorage.js","sourceRoot":"","sources":["../../../../../src/storage/knex/KnexStorage.ts"],"names":[],"mappings":"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"}