@bsv/overlay 0.1.0-alpha.1 → 0.1.0-alpha.3
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/mod.js +5 -14
- package/dist/cjs/mod.js.map +1 -1
- package/dist/cjs/package.json +2 -2
- package/dist/cjs/src/Advertiser.js +3 -0
- package/dist/cjs/src/Advertiser.js.map +1 -0
- package/dist/cjs/src/Engine.js +110 -43
- package/dist/cjs/src/Engine.js.map +1 -1
- package/dist/cjs/src/SHIPAdvertisement.js +3 -0
- package/dist/cjs/src/SHIPAdvertisement.js.map +1 -0
- package/dist/cjs/src/SLAPAdvertisement.js +3 -0
- package/dist/cjs/src/SLAPAdvertisement.js.map +1 -0
- package/dist/cjs/src/storage/knex/KnexStorage.js +25 -3
- package/dist/cjs/src/storage/knex/KnexStorage.js.map +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/mod.js +2 -13
- package/dist/esm/mod.js.map +1 -1
- package/dist/esm/src/Advertiser.js +2 -0
- package/dist/esm/src/Advertiser.js.map +1 -0
- package/dist/esm/src/Engine.js +110 -43
- package/dist/esm/src/Engine.js.map +1 -1
- package/dist/esm/src/SHIPAdvertisement.js +2 -0
- package/dist/esm/src/SHIPAdvertisement.js.map +1 -0
- package/dist/esm/src/SLAPAdvertisement.js +2 -0
- package/dist/esm/src/SLAPAdvertisement.js.map +1 -0
- package/dist/esm/src/storage/knex/KnexStorage.js +24 -3
- package/dist/esm/src/storage/knex/KnexStorage.js.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/types/mod.d.ts +12 -12
- package/dist/types/mod.d.ts.map +1 -1
- package/dist/types/src/AdmittanceInstructions.d.ts +2 -2
- package/dist/types/src/AdmittanceInstructions.d.ts.map +1 -1
- package/dist/types/src/Advertiser.d.ts +47 -0
- package/dist/types/src/Advertiser.d.ts.map +1 -0
- package/dist/types/src/Engine.d.ts +46 -26
- package/dist/types/src/Engine.d.ts.map +1 -1
- package/dist/types/src/LookupAnswer.d.ts.map +1 -1
- package/dist/types/src/LookupFormula.d.ts +5 -5
- package/dist/types/src/LookupFormula.d.ts.map +1 -1
- package/dist/types/src/LookupQuestion.d.ts.map +1 -1
- package/dist/types/src/LookupService.d.ts +32 -20
- package/dist/types/src/LookupService.d.ts.map +1 -1
- package/dist/types/src/Output.d.ts +4 -4
- package/dist/types/src/Output.d.ts.map +1 -1
- package/dist/types/src/SHIPAdvertisement.d.ts +9 -0
- package/dist/types/src/SHIPAdvertisement.d.ts.map +1 -0
- package/dist/types/src/SLAPAdvertisement.d.ts +9 -0
- package/dist/types/src/SLAPAdvertisement.d.ts.map +1 -0
- package/dist/types/src/STEAK.d.ts +1 -1
- package/dist/types/src/TopicManager.d.ts +5 -5
- package/dist/types/src/TopicManager.d.ts.map +1 -1
- package/dist/types/src/storage/Storage.d.ts +48 -36
- package/dist/types/src/storage/Storage.d.ts.map +1 -1
- package/dist/types/src/storage/knex/KnexStorage.d.ts +6 -4
- package/dist/types/src/storage/knex/KnexStorage.d.ts.map +1 -1
- package/dist/types/tsconfig.types.tsbuildinfo +1 -1
- package/mod.ts +12 -12
- package/package.json +2 -2
- package/src/AdmittanceInstructions.ts +8 -8
- package/src/Engine.ts +458 -383
- package/src/LookupAnswer.ts +7 -7
- package/src/LookupFormula.ts +21 -21
- package/src/LookupQuestion.ts +9 -9
- package/src/LookupService.ts +54 -36
- package/src/Output.ts +22 -22
- package/src/STEAK.ts +1 -1
- package/src/TopicManager.ts +21 -15
- package/src/__tests/Engine.test.ts +6 -4
- package/src/storage/Storage.ts +50 -35
- package/src/storage/knex/KnexStorage.ts +101 -76
package/dist/cjs/mod.js
CHANGED
|
@@ -23,21 +23,12 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.KnexStorageMigrations = exports.KnexStorage = exports.
|
|
26
|
+
exports.KnexStorageMigrations = exports.KnexStorage = exports.Engine = void 0;
|
|
27
27
|
// Fundamentals
|
|
28
|
-
|
|
29
|
-
exports
|
|
30
|
-
exports.TopicManager = __importStar(require("./src/TopicManager.js"));
|
|
31
|
-
// Interfaces and structures
|
|
32
|
-
exports.Storage = __importStar(require("./src/storage/Storage.js"));
|
|
33
|
-
exports.Output = __importStar(require("./src/Output.js"));
|
|
34
|
-
exports.AdmittanceInstructions = __importStar(require("./src/AdmittanceInstructions.js"));
|
|
35
|
-
exports.TaggedBEEF = __importStar(require("./src/TaggedBEEF.js"));
|
|
36
|
-
exports.STEAK = __importStar(require("./src/STEAK.js"));
|
|
37
|
-
exports.LookupQuestion = __importStar(require("./src/LookupQuestion.js"));
|
|
38
|
-
exports.LookupFormula = __importStar(require("./src/LookupFormula.js"));
|
|
39
|
-
exports.LookupAnswer = __importStar(require("./src/LookupAnswer.js"));
|
|
28
|
+
var Engine_js_1 = require("./src/Engine.js");
|
|
29
|
+
Object.defineProperty(exports, "Engine", { enumerable: true, get: function () { return Engine_js_1.Engine; } });
|
|
40
30
|
// The Knex storage system
|
|
41
|
-
|
|
31
|
+
var KnexStorage_js_1 = require("./src/storage/knex/KnexStorage.js");
|
|
32
|
+
Object.defineProperty(exports, "KnexStorage", { enumerable: true, get: function () { return KnexStorage_js_1.KnexStorage; } });
|
|
42
33
|
exports.KnexStorageMigrations = __importStar(require("./src/storage/knex/all-migrations.js"));
|
|
43
34
|
//# sourceMappingURL=mod.js.map
|
package/dist/cjs/mod.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.js","sourceRoot":"","sources":["../../mod.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,eAAe;AACf,
|
|
1
|
+
{"version":3,"file":"mod.js","sourceRoot":"","sources":["../../mod.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,eAAe;AACf,6CAAwC;AAA/B,mGAAA,MAAM,OAAA;AAcf,0BAA0B;AAC1B,oEAA+D;AAAtD,6GAAA,WAAW,OAAA;AACpB,8FAA6E"}
|
package/dist/cjs/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bsv/overlay",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.3",
|
|
4
4
|
"type": "commonjs",
|
|
5
5
|
"description": "BSV Blockchain Overlay Services Engine",
|
|
6
6
|
"files": [
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"typescript": "^5.2.2"
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@bsv/sdk": "^1.
|
|
50
|
+
"@bsv/sdk": "^1.1.4",
|
|
51
51
|
"knex": "^3.1.0"
|
|
52
52
|
}
|
|
53
53
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Advertiser.js","sourceRoot":"","sources":["../../../src/Advertiser.ts"],"names":[],"mappings":""}
|
package/dist/cjs/src/Engine.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Engine = void 0;
|
|
3
4
|
const sdk_1 = require("@bsv/sdk");
|
|
4
5
|
/**
|
|
5
6
|
* Am engine for running BSV Overlay Services (topic managers and lookup services).
|
|
@@ -11,15 +12,14 @@ class Engine {
|
|
|
11
12
|
* @param {[key: string]: LookupService} lookupServices - manages UTXO lookups
|
|
12
13
|
* @param {Storage} storage - for interacting with internally-managed persistent data
|
|
13
14
|
* @param {ChainTracker} chainTracker - Verifies SPV data associated with transactions
|
|
14
|
-
* @param {
|
|
15
|
+
* @param {Broadcaster} [Broadcaster] - broadcaster used for broadcasting the incoming transaction
|
|
15
16
|
*/
|
|
16
|
-
constructor(managers, lookupServices, storage, chainTracker
|
|
17
|
-
// public proofNotifiers: ProofNotifier[]
|
|
18
|
-
) {
|
|
17
|
+
constructor(managers, lookupServices, storage, chainTracker, broadcaster) {
|
|
19
18
|
this.managers = managers;
|
|
20
19
|
this.lookupServices = lookupServices;
|
|
21
20
|
this.storage = storage;
|
|
22
21
|
this.chainTracker = chainTracker;
|
|
22
|
+
this.broadcaster = broadcaster;
|
|
23
23
|
}
|
|
24
24
|
/**
|
|
25
25
|
* Submits a transaction for processing by Overlay Services.
|
|
@@ -29,8 +29,9 @@ class Engine {
|
|
|
29
29
|
async submit(taggedBEEF) {
|
|
30
30
|
var _a, _b;
|
|
31
31
|
for (const t of taggedBEEF.topics) {
|
|
32
|
-
if (
|
|
32
|
+
if (this.managers[t] === undefined || this.managers[t] === null) {
|
|
33
33
|
throw new Error(`This server does not support this topic: ${t}`);
|
|
34
|
+
}
|
|
34
35
|
}
|
|
35
36
|
// Validate the transaction SPV information
|
|
36
37
|
const tx = sdk_1.Transaction.fromBEEF(taggedBEEF.beef);
|
|
@@ -63,14 +64,14 @@ class Engine {
|
|
|
63
64
|
const previousTXID = input.sourceTXID || ((_a = input.sourceTransaction) === null || _a === void 0 ? void 0 : _a.id('hex'));
|
|
64
65
|
// Check if a previous UTXO exists in the storage medium
|
|
65
66
|
const output = await this.storage.findOutput(previousTXID, input.sourceOutputIndex, topic);
|
|
66
|
-
if (output) {
|
|
67
|
+
if (output !== undefined && output !== null) {
|
|
67
68
|
previousCoins.push(i);
|
|
68
69
|
// This output is now spent.
|
|
69
70
|
await this.storage.markUTXOAsSpent(output.txid, output.outputIndex, topic);
|
|
70
71
|
// Notify the lookup services about the spending of this output
|
|
71
72
|
for (const l of Object.values(this.lookupServices)) {
|
|
72
73
|
try {
|
|
73
|
-
if (l.outputSpent) {
|
|
74
|
+
if (l.outputSpent !== undefined && l.outputSpent !== null) {
|
|
74
75
|
await l.outputSpent(output.txid, output.outputIndex, topic);
|
|
75
76
|
}
|
|
76
77
|
}
|
|
@@ -93,9 +94,9 @@ class Engine {
|
|
|
93
94
|
continue;
|
|
94
95
|
}
|
|
95
96
|
// Keep track of which outputs to admit, mark as stale, or retain
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
97
|
+
const outputsToAdmit = admissableOutputs.outputsToAdmit;
|
|
98
|
+
const staleCoins = [];
|
|
99
|
+
const outputsConsumed = [];
|
|
99
100
|
// Find which outputs should not be retained and mark them as stale
|
|
100
101
|
// 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.
|
|
101
102
|
for (const inputIndex of previousCoins) {
|
|
@@ -117,7 +118,7 @@ class Engine {
|
|
|
117
118
|
// Remove stale outputs recursively
|
|
118
119
|
for (const coin of staleCoins) {
|
|
119
120
|
const output = await this.storage.findOutput(coin.txid, coin.outputIndex, topic);
|
|
120
|
-
if (output) {
|
|
121
|
+
if (output !== undefined && output !== null) {
|
|
121
122
|
await this.deleteUTXODeep(output);
|
|
122
123
|
}
|
|
123
124
|
}
|
|
@@ -143,7 +144,7 @@ class Engine {
|
|
|
143
144
|
// Notify all the lookup services about the new UTXO
|
|
144
145
|
for (const l of Object.values(this.lookupServices)) {
|
|
145
146
|
try {
|
|
146
|
-
if (l.outputAdded) {
|
|
147
|
+
if (l.outputAdded !== undefined && l.outputAdded !== null) {
|
|
147
148
|
await l.outputAdded(txid, outputIndex, tx.outputs[outputIndex].lockingScript, topic);
|
|
148
149
|
}
|
|
149
150
|
}
|
|
@@ -153,7 +154,7 @@ class Engine {
|
|
|
153
154
|
// Update each output consumed to know who consumed it
|
|
154
155
|
for (const output of outputsConsumed) {
|
|
155
156
|
const outputToUpdate = await this.storage.findOutput(output.txid, output.outputIndex, topic);
|
|
156
|
-
if (outputToUpdate) {
|
|
157
|
+
if (outputToUpdate !== undefined && outputToUpdate !== null) {
|
|
157
158
|
const newConsumedBy = [...new Set([...newUTXOs, ...outputToUpdate.consumedBy])];
|
|
158
159
|
// Note: only update if newConsumedBy !== new Set(JSON.parse(outputToUpdate.consumedBy)) ?
|
|
159
160
|
await this.storage.updateConsumedBy(output.txid, output.outputIndex, topic, newConsumedBy);
|
|
@@ -167,8 +168,11 @@ class Engine {
|
|
|
167
168
|
// Keep track of what outputs were admitted for what topic
|
|
168
169
|
steak[topic] = admissableOutputs;
|
|
169
170
|
}
|
|
171
|
+
// Broadcast the transaction
|
|
172
|
+
if (Object.keys(steak).length > 0 && this.broadcaster !== undefined) {
|
|
173
|
+
await this.broadcaster.broadcast(tx);
|
|
174
|
+
}
|
|
170
175
|
return steak;
|
|
171
|
-
// 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
|
|
172
176
|
// TODO propagate transaction to other nodes according to synchronization agreements
|
|
173
177
|
}
|
|
174
178
|
/**
|
|
@@ -179,7 +183,7 @@ class Engine {
|
|
|
179
183
|
async lookup(lookupQuestion) {
|
|
180
184
|
// Validate a lookup service for the provider is found
|
|
181
185
|
const lookupService = this.lookupServices[lookupQuestion.service];
|
|
182
|
-
if (
|
|
186
|
+
if (lookupService === undefined || lookupService === null)
|
|
183
187
|
throw new Error(`Lookup service not found for provider: ${lookupQuestion.service}`);
|
|
184
188
|
let lookupResult = await lookupService.lookup(lookupQuestion);
|
|
185
189
|
// Handle custom lookup service answers
|
|
@@ -191,11 +195,11 @@ class Engine {
|
|
|
191
195
|
for (const { txid, outputIndex, history } of lookupResult) {
|
|
192
196
|
// Make sure this is an unspent output (UTXO)
|
|
193
197
|
const UTXO = await this.storage.findOutput(txid, outputIndex, undefined, false);
|
|
194
|
-
if (
|
|
198
|
+
if (UTXO === undefined || UTXO === null)
|
|
195
199
|
continue;
|
|
196
200
|
// Get the history for this utxo and construct a BRC-8 Envelope
|
|
197
201
|
const output = await this.getUTXOHistory(UTXO, history, 0);
|
|
198
|
-
if (output) {
|
|
202
|
+
if (output !== undefined && output !== null) {
|
|
199
203
|
hydratedOutputs.push({
|
|
200
204
|
beef: output.beef,
|
|
201
205
|
outputIndex: output.outputIndex
|
|
@@ -208,14 +212,19 @@ class Engine {
|
|
|
208
212
|
};
|
|
209
213
|
}
|
|
210
214
|
/**
|
|
211
|
-
* Traverse and return the history of a UTXO
|
|
212
|
-
*
|
|
213
|
-
*
|
|
214
|
-
*
|
|
215
|
-
*
|
|
216
|
-
* @param
|
|
217
|
-
* @param
|
|
218
|
-
*
|
|
215
|
+
* Traverse and return the history of a UTXO.
|
|
216
|
+
*
|
|
217
|
+
* This method traverses the history of a given Unspent Transaction Output (UTXO) and returns
|
|
218
|
+
* its historical data based on the provided history selector and current depth.
|
|
219
|
+
*
|
|
220
|
+
* @param output - The UTXO to traverse the history for.
|
|
221
|
+
* @param historySelector - Optionally directs the history traversal:
|
|
222
|
+
* - If a number, denotes how many previous spends (in terms of chain depth) to include.
|
|
223
|
+
* - If a function, accepts a BEEF-formatted transaction, an output index, and the current depth as parameters,
|
|
224
|
+
* returning a promise that resolves to a boolean indicating whether to include the output in the history.
|
|
225
|
+
* @param {number} [currentDepth=0] - The current depth of the traversal relative to the top-level UTXO.
|
|
226
|
+
*
|
|
227
|
+
* @returns {Promise<Output | undefined>} - A promise that resolves to the output history if found, or undefined if not.
|
|
219
228
|
*/
|
|
220
229
|
async getUTXOHistory(output, historySelector, currentDepth = 0) {
|
|
221
230
|
// If we have an output but no history selector, jsut return the output.
|
|
@@ -233,7 +242,7 @@ class Engine {
|
|
|
233
242
|
if (shouldTraverseHistory === false) {
|
|
234
243
|
return undefined;
|
|
235
244
|
}
|
|
236
|
-
else if (output && output.outputsConsumed.length === 0) {
|
|
245
|
+
else if (output !== null && output !== undefined && output.outputsConsumed.length === 0) {
|
|
237
246
|
return output;
|
|
238
247
|
}
|
|
239
248
|
try {
|
|
@@ -241,22 +250,24 @@ class Engine {
|
|
|
241
250
|
// Only retrieve unique values in case outputs are doubly referenced
|
|
242
251
|
const outputsConsumed = output.outputsConsumed;
|
|
243
252
|
// Find the child outputs for each utxo consumed by the current output
|
|
244
|
-
const childHistories =
|
|
253
|
+
const childHistories = (await Promise.all(outputsConsumed.map(async (outputIdentifier) => {
|
|
245
254
|
const output = await this.storage.findOutput(outputIdentifier.txid, outputIdentifier.outputIndex);
|
|
246
255
|
// Make sure an output was found
|
|
247
|
-
if (
|
|
256
|
+
if (output === undefined || output === null) {
|
|
248
257
|
return undefined;
|
|
249
258
|
}
|
|
250
259
|
// Find previousUTXO history
|
|
251
|
-
return this.getUTXOHistory(output, historySelector, currentDepth + 1);
|
|
260
|
+
return await this.getUTXOHistory(output, historySelector, currentDepth + 1);
|
|
252
261
|
}))).filter(x => x !== undefined);
|
|
253
262
|
const tx = sdk_1.Transaction.fromBEEF(output.beef);
|
|
254
263
|
for (const input of childHistories) {
|
|
255
|
-
if (
|
|
264
|
+
if (input === undefined || input === null)
|
|
256
265
|
continue;
|
|
257
266
|
const inputIndex = tx.inputs.findIndex((input) => {
|
|
258
267
|
var _a;
|
|
259
|
-
const sourceTXID = input.sourceTXID
|
|
268
|
+
const sourceTXID = input.sourceTXID !== undefined && input.sourceTXID !== ''
|
|
269
|
+
? input.sourceTXID
|
|
270
|
+
: (_a = input.sourceTransaction) === null || _a === void 0 ? void 0 : _a.id('hex');
|
|
260
271
|
return sourceTXID === output.txid && input.sourceOutputIndex === output.outputIndex;
|
|
261
272
|
});
|
|
262
273
|
tx.inputs[inputIndex].sourceTransaction = sdk_1.Transaction.fromBEEF(input.beef);
|
|
@@ -276,13 +287,10 @@ class Engine {
|
|
|
276
287
|
}
|
|
277
288
|
}
|
|
278
289
|
/**
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
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
|
var _a;
|
|
288
296
|
try {
|
|
@@ -305,7 +313,7 @@ class Engine {
|
|
|
305
313
|
output.outputsConsumed.map(async (outputIdentifier) => {
|
|
306
314
|
const staleOutput = await this.storage.findOutput(outputIdentifier.txid, outputIdentifier.outputIndex, output.topic);
|
|
307
315
|
// Make sure an output was found
|
|
308
|
-
if (
|
|
316
|
+
if (staleOutput === null || staleOutput === undefined) {
|
|
309
317
|
return undefined;
|
|
310
318
|
}
|
|
311
319
|
// Parse out the existing data, then concat the new outputs with no duplicates
|
|
@@ -322,6 +330,63 @@ class Engine {
|
|
|
322
330
|
throw new Error(`Failed to delete all stale outputs: ${error}`);
|
|
323
331
|
}
|
|
324
332
|
}
|
|
333
|
+
/**
|
|
334
|
+
* Recursively updates the Merkle proof for the given output and its consumedBy outputs.
|
|
335
|
+
* If the output matches the source transaction ID, its Merkle proof is updated directly.
|
|
336
|
+
* Otherwise, the Merkle proof is updated for the corresponding input in each transaction.
|
|
337
|
+
*
|
|
338
|
+
* @param output - The output to update with the new Merkle proof.
|
|
339
|
+
* @param proof - The Merkle proof to be applied to the output or its inputs.
|
|
340
|
+
* @param sourceTxid - The transaction ID of the source output whose Merkle proof is being updated.
|
|
341
|
+
*/
|
|
342
|
+
async updateMerkleProof(output, proof, recursionPath) {
|
|
343
|
+
// Add current output to recursionPath
|
|
344
|
+
recursionPath.push({ txid: output.txid, outputIndex: output.outputIndex });
|
|
345
|
+
const tx = sdk_1.Transaction.fromBEEF(output.beef);
|
|
346
|
+
// Handle the base case
|
|
347
|
+
if (output.txid === recursionPath[0].txid) {
|
|
348
|
+
tx.merklePath = proof;
|
|
349
|
+
}
|
|
350
|
+
else {
|
|
351
|
+
// Traverse inputs to update the Merkle proof according to the recursionPath
|
|
352
|
+
let currentInputs = tx.inputs;
|
|
353
|
+
for (let i = recursionPath.length - 1; i >= 0; i--) {
|
|
354
|
+
const crumb = recursionPath[i];
|
|
355
|
+
for (const input of currentInputs) {
|
|
356
|
+
if (input.sourceTXID === crumb.txid && input.sourceOutputIndex === crumb.outputIndex) {
|
|
357
|
+
if (i === 0 && input.sourceTransaction !== undefined) {
|
|
358
|
+
input.sourceTransaction.merklePath = proof;
|
|
359
|
+
}
|
|
360
|
+
else if (input.sourceTransaction !== undefined) {
|
|
361
|
+
currentInputs = input.sourceTransaction.inputs;
|
|
362
|
+
break;
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
// Update the output's BEEF in the storage DB
|
|
369
|
+
await this.storage.updateOutputBeef(output.txid, output.outputIndex, output.topic, tx.toBEEF());
|
|
370
|
+
// Recursively update the consumedBy outputs
|
|
371
|
+
for (const consumingOutput of output.consumedBy) {
|
|
372
|
+
const consumedOutputs = await this.storage.findOutputsForTransaction(consumingOutput.txid);
|
|
373
|
+
for (const consumedOutput of consumedOutputs) {
|
|
374
|
+
await this.updateMerkleProof(consumedOutput, proof, []);
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
/**
|
|
379
|
+
* Recursively prune UTXOs when an incoming Merkle Proof is received.
|
|
380
|
+
*
|
|
381
|
+
* @param txid - Transaction ID of the associated outputs to prune.
|
|
382
|
+
* @param proof - Merkle proof containing the Merkle path and other relevant data to verify the transaction.
|
|
383
|
+
*/
|
|
384
|
+
async handleNewMerkleProof(txid, proof) {
|
|
385
|
+
const outputs = await this.storage.findOutputsForTransaction(txid);
|
|
386
|
+
for (const output of outputs) {
|
|
387
|
+
await this.updateMerkleProof(output, proof, []);
|
|
388
|
+
}
|
|
389
|
+
}
|
|
325
390
|
/**
|
|
326
391
|
* Find a list of supported topic managers
|
|
327
392
|
* @public
|
|
@@ -343,9 +408,10 @@ class Engine {
|
|
|
343
408
|
* @public
|
|
344
409
|
* @returns {Promise<string>} - the documentation for the topic manager
|
|
345
410
|
*/
|
|
346
|
-
async
|
|
411
|
+
async getDocumentationForTopicManager(manager) {
|
|
347
412
|
var _a, _b;
|
|
348
|
-
|
|
413
|
+
const documentation = await ((_b = (_a = this.managers[manager]) === null || _a === void 0 ? void 0 : _a.getDocumentation) === null || _b === void 0 ? void 0 : _b.call(_a));
|
|
414
|
+
return documentation !== undefined ? documentation : 'No documentation found!';
|
|
349
415
|
}
|
|
350
416
|
/**
|
|
351
417
|
* Run a query to get the documentation for a particular lookup service
|
|
@@ -354,8 +420,9 @@ class Engine {
|
|
|
354
420
|
*/
|
|
355
421
|
async getDocumentationForLookupServiceProvider(provider) {
|
|
356
422
|
var _a, _b;
|
|
357
|
-
|
|
423
|
+
const documentation = await ((_b = (_a = this.lookupServices[provider]) === null || _a === void 0 ? void 0 : _a.getDocumentation) === null || _b === void 0 ? void 0 : _b.call(_a));
|
|
424
|
+
return documentation !== undefined ? documentation : 'No documentation found!';
|
|
358
425
|
}
|
|
359
426
|
}
|
|
360
|
-
exports.
|
|
427
|
+
exports.Engine = Engine;
|
|
361
428
|
//# sourceMappingURL=Engine.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Engine.js","sourceRoot":"","sources":["../../../src/Engine.ts"],"names":[],"mappings":";;AAUA,kCAAoD;AAEpD;;GAEG;AACH,MAAqB,MAAM;IACvB;;;;;;;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,iBAAW,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,KAAI,MAAA,KAAK,CAAC,iBAAiB,0CAAE,EAAE,CAAC,KAAK,CAAW,CAAA,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,KAAI,MAAA,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,iBAAiB,0CAAE,EAAE,CAAC,KAAK,CAAW,CAAA,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,iBAAW,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,KAAI,MAAA,KAAK,CAAC,iBAAiB,0CAAE,EAAE,CAAC,KAAK,CAAW,CAAA,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,iBAAW,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,CAAA,MAAA,CAAC,CAAC,aAAa,kDACjB,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,KAAM,CAChB,CAAA,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,CAAA,MAAA,MAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAC,gBAAgB,kDAAI,KAAI,yBAAyB,CAAA;IACnF,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,wCAAwC,CAAC,QAAa;;QACxD,OAAO,CAAA,MAAA,MAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAC,gBAAgB,kDAAI,KAAI,yBAAyB,CAAA;IAC1F,CAAC;CACJ;AAnZD,yBAmZC"}
|
|
1
|
+
{"version":3,"file":"Engine.js","sourceRoot":"","sources":["../../../src/Engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SHIPAdvertisement.js","sourceRoot":"","sources":["../../../src/SHIPAdvertisement.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SLAPAdvertisement.js","sourceRoot":"","sources":["../../../src/SLAPAdvertisement.ts"],"names":[],"mappings":""}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.KnexStorage = void 0;
|
|
3
4
|
class KnexStorage {
|
|
4
5
|
constructor(knex) {
|
|
5
6
|
this.knex = knex;
|
|
@@ -14,7 +15,7 @@ class KnexStorage {
|
|
|
14
15
|
if (spent !== undefined)
|
|
15
16
|
search.spent = spent;
|
|
16
17
|
const [output] = await this.knex('outputs').where(search).select('txid', 'outputIndex', 'outputScript', 'topic', 'satoshis', 'beef', 'outputsConsumed', 'spent', 'consumedBy');
|
|
17
|
-
if (
|
|
18
|
+
if (output === undefined || output === null) {
|
|
18
19
|
return null;
|
|
19
20
|
}
|
|
20
21
|
return {
|
|
@@ -26,6 +27,20 @@ class KnexStorage {
|
|
|
26
27
|
consumedBy: JSON.parse(output.consumedBy)
|
|
27
28
|
};
|
|
28
29
|
}
|
|
30
|
+
async findOutputsForTransaction(txid) {
|
|
31
|
+
const [output] = await this.knex('outputs').where({ txid }).select('txid', 'outputIndex', 'outputScript', 'topic', 'satoshis', 'beef', 'outputsConsumed', 'spent', 'consumedBy');
|
|
32
|
+
if (output === undefined || output === null) {
|
|
33
|
+
return [];
|
|
34
|
+
}
|
|
35
|
+
return {
|
|
36
|
+
...output,
|
|
37
|
+
outputScript: [...output.outputScript],
|
|
38
|
+
beef: [...output.beef],
|
|
39
|
+
spent: Boolean(output.spent),
|
|
40
|
+
outputsConsumed: JSON.parse(output.outputsConsumed),
|
|
41
|
+
consumedBy: JSON.parse(output.consumedBy)
|
|
42
|
+
};
|
|
43
|
+
}
|
|
29
44
|
async deleteOutput(txid, outputIndex, topic) {
|
|
30
45
|
await this.knex('outputs').where({
|
|
31
46
|
txid, outputIndex, topic
|
|
@@ -38,7 +53,7 @@ class KnexStorage {
|
|
|
38
53
|
outputScript: Buffer.from(output.outputScript),
|
|
39
54
|
topic: output.topic,
|
|
40
55
|
satoshis: Number(output.satoshis),
|
|
41
|
-
beef:
|
|
56
|
+
beef: Buffer.from(new Uint8Array(output.beef)),
|
|
42
57
|
outputsConsumed: JSON.stringify(output.outputsConsumed),
|
|
43
58
|
consumedBy: JSON.stringify(output.consumedBy),
|
|
44
59
|
spent: output.spent
|
|
@@ -58,6 +73,13 @@ class KnexStorage {
|
|
|
58
73
|
topic
|
|
59
74
|
}).update('consumedBy', consumedBy);
|
|
60
75
|
}
|
|
76
|
+
async updateOutputBeef(txid, outputIndex, topic, beef) {
|
|
77
|
+
await this.knex('outputs').where({
|
|
78
|
+
txid,
|
|
79
|
+
outputIndex,
|
|
80
|
+
topic
|
|
81
|
+
}).update('beef', beef);
|
|
82
|
+
}
|
|
61
83
|
async insertAppliedTransaction(tx) {
|
|
62
84
|
await this.knex('applied_transactions').insert({
|
|
63
85
|
txid: tx.txid,
|
|
@@ -72,5 +94,5 @@ class KnexStorage {
|
|
|
72
94
|
return appliedTransactions.length > 0;
|
|
73
95
|
}
|
|
74
96
|
}
|
|
75
|
-
exports.
|
|
97
|
+
exports.KnexStorage = KnexStorage;
|
|
76
98
|
//# sourceMappingURL=KnexStorage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KnexStorage.js","sourceRoot":"","sources":["../../../../../src/storage/knex/KnexStorage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"KnexStorage.js","sourceRoot":"","sources":["../../../../../src/storage/knex/KnexStorage.ts"],"names":[],"mappings":"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"}
|