@bsv/overlay 2.2.0 → 2.2.7

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 (155) hide show
  1. package/LICENSE.txt +57 -27
  2. package/README.md +102 -266
  3. package/dist/cjs/mod.d.ts +15 -0
  4. package/dist/cjs/mod.d.ts.map +1 -0
  5. package/dist/cjs/mod.js +4 -1
  6. package/dist/cjs/mod.js.map +1 -1
  7. package/dist/cjs/package.json +46 -18
  8. package/dist/cjs/src/Advertisement.d.ts +9 -0
  9. package/dist/cjs/src/Advertisement.d.ts.map +1 -0
  10. package/dist/cjs/src/Advertiser.d.ts +36 -0
  11. package/dist/cjs/src/Advertiser.d.ts.map +1 -0
  12. package/dist/cjs/src/BASM.d.ts +110 -0
  13. package/dist/cjs/src/BASM.d.ts.map +1 -0
  14. package/dist/cjs/src/BASM.js.map +1 -1
  15. package/dist/cjs/src/BASMRemote.d.ts +14 -0
  16. package/dist/cjs/src/BASMRemote.d.ts.map +1 -0
  17. package/dist/cjs/src/BASMRemote.js.map +1 -1
  18. package/dist/cjs/src/Engine.d.ts +377 -0
  19. package/dist/cjs/src/Engine.d.ts.map +1 -0
  20. package/dist/cjs/src/Engine.js +430 -436
  21. package/dist/cjs/src/Engine.js.map +1 -1
  22. package/dist/cjs/src/GASP/OverlayGASPRemote.d.ts +24 -0
  23. package/dist/cjs/src/GASP/OverlayGASPRemote.d.ts.map +1 -0
  24. package/dist/cjs/src/GASP/OverlayGASPRemote.js +7 -10
  25. package/dist/cjs/src/GASP/OverlayGASPRemote.js.map +1 -1
  26. package/dist/cjs/src/GASP/OverlayGASPStorage.d.ts +103 -0
  27. package/dist/cjs/src/GASP/OverlayGASPStorage.d.ts.map +1 -0
  28. package/dist/cjs/src/GASP/OverlayGASPStorage.js +34 -31
  29. package/dist/cjs/src/GASP/OverlayGASPStorage.js.map +1 -1
  30. package/dist/cjs/src/LookupFormula.d.ts +29 -0
  31. package/dist/cjs/src/LookupFormula.d.ts.map +1 -0
  32. package/dist/cjs/src/LookupService.d.ts +85 -0
  33. package/dist/cjs/src/LookupService.d.ts.map +1 -0
  34. package/dist/cjs/src/Output.d.ts +32 -0
  35. package/dist/cjs/src/Output.d.ts.map +1 -0
  36. package/dist/cjs/src/SafeLog.d.ts +14 -0
  37. package/dist/cjs/src/SafeLog.d.ts.map +1 -0
  38. package/dist/cjs/src/SafeLog.js +44 -0
  39. package/dist/cjs/src/SafeLog.js.map +1 -0
  40. package/{src/SyncConfiguration.ts → dist/cjs/src/SyncConfiguration.d.ts} +2 -1
  41. package/dist/cjs/src/SyncConfiguration.d.ts.map +1 -0
  42. package/dist/cjs/src/TopicManager.d.ts +35 -0
  43. package/dist/cjs/src/TopicManager.d.ts.map +1 -0
  44. package/dist/cjs/src/storage/Storage.d.ts +237 -0
  45. package/dist/cjs/src/storage/Storage.d.ts.map +1 -0
  46. package/dist/cjs/src/storage/knex/KnexStorage.d.ts +69 -0
  47. package/dist/cjs/src/storage/knex/KnexStorage.d.ts.map +1 -0
  48. package/dist/cjs/src/storage/knex/KnexStorage.js +7 -10
  49. package/dist/cjs/src/storage/knex/KnexStorage.js.map +1 -1
  50. package/dist/cjs/src/storage/knex/all-migrations.d.ts +11 -0
  51. package/dist/cjs/src/storage/knex/all-migrations.d.ts.map +1 -0
  52. package/dist/cjs/src/storage/knex/all-migrations.js.map +1 -1
  53. package/dist/cjs/src/storage/knex/migrations/2024-05-18-001-initial.d.ts +4 -0
  54. package/dist/cjs/src/storage/knex/migrations/2024-05-18-001-initial.d.ts.map +1 -0
  55. package/dist/cjs/src/storage/knex/migrations/2024-05-18-001-initial.js.map +1 -1
  56. package/dist/cjs/src/storage/knex/migrations/2024-07-10-001-block-height.d.ts +4 -0
  57. package/dist/cjs/src/storage/knex/migrations/2024-07-10-001-block-height.d.ts.map +1 -0
  58. package/dist/cjs/src/storage/knex/migrations/2024-07-10-001-block-height.js.map +1 -1
  59. package/dist/cjs/src/storage/knex/migrations/2024-07-17-001-transactions.d.ts +4 -0
  60. package/dist/cjs/src/storage/knex/migrations/2024-07-17-001-transactions.d.ts.map +1 -0
  61. package/dist/cjs/src/storage/knex/migrations/2024-07-17-001-transactions.js +36 -12
  62. package/dist/cjs/src/storage/knex/migrations/2024-07-17-001-transactions.js.map +1 -1
  63. package/dist/cjs/src/storage/knex/migrations/2024-07-18-001-indexes.d.ts +4 -0
  64. package/dist/cjs/src/storage/knex/migrations/2024-07-18-001-indexes.d.ts.map +1 -0
  65. package/dist/cjs/src/storage/knex/migrations/2024-07-18-001-indexes.js.map +1 -1
  66. package/dist/cjs/src/storage/knex/migrations/2025-05-28-001-enlarge.d.ts +4 -0
  67. package/dist/cjs/src/storage/knex/migrations/2025-05-28-001-enlarge.d.ts.map +1 -0
  68. package/dist/cjs/src/storage/knex/migrations/2025-05-28-001-enlarge.js.map +1 -1
  69. package/dist/cjs/src/storage/knex/migrations/2025-06-25-001-gasp-pagination-support.d.ts +4 -0
  70. package/dist/cjs/src/storage/knex/migrations/2025-06-25-001-gasp-pagination-support.d.ts.map +1 -0
  71. package/dist/cjs/src/storage/knex/migrations/2025-06-25-001-gasp-pagination-support.js.map +1 -1
  72. package/dist/cjs/src/storage/knex/migrations/2025-07-22-001-fix-score-column-type.d.ts +4 -0
  73. package/dist/cjs/src/storage/knex/migrations/2025-07-22-001-fix-score-column-type.d.ts.map +1 -0
  74. package/dist/cjs/src/storage/knex/migrations/2025-07-22-001-fix-score-column-type.js.map +1 -1
  75. package/dist/cjs/src/storage/knex/migrations/2025-11-11-001-utxo-lookup-index.d.ts +9 -0
  76. package/dist/cjs/src/storage/knex/migrations/2025-11-11-001-utxo-lookup-index.d.ts.map +1 -0
  77. package/dist/cjs/src/storage/knex/migrations/2025-11-11-001-utxo-lookup-index.js.map +1 -1
  78. package/dist/cjs/src/storage/knex/migrations/2026-05-29-001-brc136-basm.d.ts +4 -0
  79. package/dist/cjs/src/storage/knex/migrations/2026-05-29-001-brc136-basm.d.ts.map +1 -0
  80. package/dist/cjs/src/storage/knex/migrations/2026-05-29-001-brc136-basm.js.map +1 -1
  81. package/dist/esm/mod.js +2 -1
  82. package/dist/esm/mod.js.map +1 -1
  83. package/dist/esm/src/BASMRemote.js.map +1 -1
  84. package/dist/esm/src/Engine.js +408 -414
  85. package/dist/esm/src/Engine.js.map +1 -1
  86. package/dist/esm/src/GASP/OverlayGASPRemote.js +2 -2
  87. package/dist/esm/src/GASP/OverlayGASPRemote.js.map +1 -1
  88. package/dist/esm/src/GASP/OverlayGASPStorage.js +23 -19
  89. package/dist/esm/src/GASP/OverlayGASPStorage.js.map +1 -1
  90. package/dist/esm/src/SafeLog.js +40 -0
  91. package/dist/esm/src/SafeLog.js.map +1 -0
  92. package/dist/esm/src/storage/knex/KnexStorage.js.map +1 -1
  93. package/dist/esm/src/storage/knex/migrations/2024-07-17-001-transactions.js +36 -12
  94. package/dist/esm/src/storage/knex/migrations/2024-07-17-001-transactions.js.map +1 -1
  95. package/dist/types/mod.d.ts +5 -4
  96. package/dist/types/mod.d.ts.map +1 -1
  97. package/dist/types/src/BASMRemote.d.ts.map +1 -1
  98. package/dist/types/src/Engine.d.ts +15 -0
  99. package/dist/types/src/Engine.d.ts.map +1 -1
  100. package/dist/types/src/GASP/OverlayGASPRemote.d.ts +2 -2
  101. package/dist/types/src/GASP/OverlayGASPRemote.d.ts.map +1 -1
  102. package/dist/types/src/GASP/OverlayGASPStorage.d.ts +3 -1
  103. package/dist/types/src/GASP/OverlayGASPStorage.d.ts.map +1 -1
  104. package/dist/types/src/SafeLog.d.ts +14 -0
  105. package/dist/types/src/SafeLog.d.ts.map +1 -0
  106. package/dist/types/src/storage/knex/KnexStorage.d.ts.map +1 -1
  107. package/dist/types/src/storage/knex/all-migrations.d.ts.map +1 -1
  108. package/dist/types/src/storage/knex/migrations/2024-07-17-001-transactions.d.ts.map +1 -1
  109. package/package.json +87 -30
  110. package/dist/cjs/tsconfig.cjs.tsbuildinfo +0 -1
  111. package/dist/esm/tsconfig.esm.tsbuildinfo +0 -1
  112. package/dist/types/tsconfig.types.tsbuildinfo +0 -1
  113. package/docs/API.md +0 -944
  114. package/docs/BRC-136-BASM.md +0 -327
  115. package/docs/README.md +0 -16
  116. package/docs/Synchronization.md +0 -212
  117. package/docs/concepts/00-overview.md +0 -85
  118. package/docs/concepts/01-best-practices.md +0 -202
  119. package/docs/concepts/02-query-performance.md +0 -345
  120. package/docs/concepts/03-database-monitoring.md +0 -211
  121. package/docs/concepts/04-pagination-example.md +0 -186
  122. package/docs/concepts/05-recommendations-summary.md +0 -158
  123. package/docs/concepts/README.md +0 -20
  124. package/docs/examples/README.md +0 -15
  125. package/docs/examples/gs-wip.md +0 -111
  126. package/docs/internal/README.md +0 -11
  127. package/mod.ts +0 -40
  128. package/src/Advertisement.ts +0 -8
  129. package/src/Advertiser.ts +0 -41
  130. package/src/BASM.ts +0 -208
  131. package/src/BASMRemote.ts +0 -54
  132. package/src/Engine.ts +0 -2199
  133. package/src/GASP/OverlayGASPRemote.ts +0 -108
  134. package/src/GASP/OverlayGASPStorage.ts +0 -383
  135. package/src/LookupFormula.ts +0 -31
  136. package/src/LookupService.ts +0 -136
  137. package/src/Output.ts +0 -31
  138. package/src/TopicManager.ts +0 -40
  139. package/src/__tests/BASM.test.ts +0 -44
  140. package/src/__tests/BASMChain.test.ts +0 -290
  141. package/src/__tests/Engine.test.ts +0 -1345
  142. package/src/__tests/OverlayGASPRemote.test.ts +0 -135
  143. package/src/__tests/OverlayGASPStorage.test.ts +0 -171
  144. package/src/storage/Storage.ts +0 -260
  145. package/src/storage/knex/KnexStorage.ts +0 -651
  146. package/src/storage/knex/all-migrations.ts +0 -32
  147. package/src/storage/knex/migrations/2024-05-18-001-initial.ts +0 -30
  148. package/src/storage/knex/migrations/2024-07-10-001-block-height.ts +0 -15
  149. package/src/storage/knex/migrations/2024-07-17-001-transactions.ts +0 -40
  150. package/src/storage/knex/migrations/2024-07-18-001-indexes.ts +0 -30
  151. package/src/storage/knex/migrations/2025-05-28-001-enlarge.ts +0 -42
  152. package/src/storage/knex/migrations/2025-06-25-001-gasp-pagination-support.ts +0 -46
  153. package/src/storage/knex/migrations/2025-07-22-001-fix-score-column-type.ts +0 -24
  154. package/src/storage/knex/migrations/2025-11-11-001-utxo-lookup-index.ts +0 -18
  155. package/src/storage/knex/migrations/2026-05-29-001-brc136-basm.ts +0 -123
@@ -1 +1 @@
1
- {"version":3,"file":"OverlayGASPStorage.js","sourceRoot":"","sources":["../../../../src/GASP/OverlayGASPStorage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OverlayGASPStorage.js","sourceRoot":"","sources":["../../../../src/GASP/OverlayGASPStorage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * The formula that will be used by the Overlay Services Engine to compute the Lookup Answer. Can be returned by Lookup Services in response to a Lookup Question.
3
+ */
4
+ export type LookupFormula = Array<{
5
+ /**
6
+ * TXID of the transaction where an output responsive to the Lookup Question resides.
7
+ */
8
+ txid: string;
9
+ /**
10
+ * Index of the transaction output responsive to the Lookup Question.
11
+ */
12
+ outputIndex: number;
13
+ /**
14
+ * Decides what history to incorporate into the Lookup Answer.
15
+ *
16
+ * Optionally directs the Overlay Services Engine as to the historical context (preceding outputs) to include as part of the Lookup Answer.
17
+ * - If a number, denotes how many previous spends (in terms of chain depth) the Engine should include with the Answer.
18
+ * - If a decider function, accepts a BEEF-formatted transaction, an output index and the current depth (relative to the top-level responsive UTXO) as parameters.
19
+ * The function returns a promise for a boolean indicating whether the output should be incorporated into the Lookup Answer.
20
+ * If so, the function will be called again for transactions that preceded the one provided, ultimately allowing the complete shape of the responsive spend history to be described.
21
+ * If not provided, no historical information will be included with the Lookup Answer, except that which may incidentally be required to fully anchor the Lookup Answer to the blockchain.
22
+ */
23
+ history?: ((beef: number[], outputIndex: number, currentDepth: number) => Promise<boolean>) | number;
24
+ /**
25
+ * Context for the UTXO, derived from the off-chain values.
26
+ */
27
+ context?: number[];
28
+ }>;
29
+ //# sourceMappingURL=LookupFormula.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LookupFormula.d.ts","sourceRoot":"","sources":["../../../src/LookupFormula.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC;IAChC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IAEZ;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;IAEnB;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAA;IAEpG;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACnB,CAAC,CAAA"}
@@ -0,0 +1,85 @@
1
+ import { LookupFormula } from './LookupFormula.js';
2
+ import { Script, LookupQuestion } from '@bsv/sdk';
3
+ export type AdmissionMode = 'locking-script' | 'whole-tx';
4
+ export type SpendNotificationMode = 'none' | 'txid' | 'script' | 'whole-tx';
5
+ export type OutputAdmittedByTopic = {
6
+ mode: 'locking-script';
7
+ txid: string;
8
+ outputIndex: number;
9
+ topic: string;
10
+ satoshis: number;
11
+ lockingScript: Script;
12
+ offChainValues?: number[];
13
+ } | {
14
+ mode: 'whole-tx';
15
+ atomicBEEF: number[];
16
+ outputIndex: number;
17
+ topic: string;
18
+ offChainValues?: number[];
19
+ };
20
+ export type OutputSpent = {
21
+ mode: 'none';
22
+ txid: string;
23
+ outputIndex: number;
24
+ topic: string;
25
+ } | {
26
+ mode: 'txid';
27
+ txid: string;
28
+ outputIndex: number;
29
+ topic: string;
30
+ spendingTxid: string;
31
+ } | {
32
+ mode: 'script';
33
+ txid: string;
34
+ outputIndex: number;
35
+ topic: string;
36
+ spendingTxid: string;
37
+ inputIndex: number;
38
+ unlockingScript: Script;
39
+ sequenceNumber: number;
40
+ offChainValues?: number[];
41
+ } | {
42
+ mode: 'whole-tx';
43
+ txid: string;
44
+ outputIndex: number;
45
+ topic: string;
46
+ spendingAtomicBEEF: number[];
47
+ offChainValues?: number[];
48
+ };
49
+ export interface LookupServiceMetaData {
50
+ name: string;
51
+ shortDescription: string;
52
+ iconURL?: string;
53
+ version?: string;
54
+ informationURL?: string;
55
+ }
56
+ export interface LookupService {
57
+ readonly admissionMode: AdmissionMode;
58
+ readonly spendNotificationMode: SpendNotificationMode;
59
+ /**
60
+ * Invoked when a Topic Manager admits a new UTXO.
61
+ * The payload shape depends on this.admissionMode.
62
+ */
63
+ outputAdmittedByTopic: (payload: OutputAdmittedByTopic) => Promise<void> | void;
64
+ /**
65
+ * Invoked when a previously-admitted UTXO is spent.
66
+ * The payload shape depends on this.spendNotificationMode.
67
+ */
68
+ outputSpent?: (payload: OutputSpent) => Promise<void> | void;
69
+ /**
70
+ * Called when a Topic Manager decides that **historical retention** of the
71
+ * specified UTXO is no longer required.
72
+ */
73
+ outputNoLongerRetainedInHistory?: (txid: string, outputIndex: number, topic: string) => Promise<void> | void;
74
+ /**
75
+ * LEGAL EVICTION:
76
+ * Permanently remove the referenced UTXO from all indices maintained by the
77
+ * Lookup Service. After eviction the service MUST NOT reference the output
78
+ * in any future lookup answer.
79
+ */
80
+ outputEvicted: (txid: string, outputIndex: number) => Promise<void> | void;
81
+ lookup: (question: LookupQuestion) => Promise<LookupFormula>;
82
+ getDocumentation: () => Promise<string>;
83
+ getMetaData: () => Promise<LookupServiceMetaData>;
84
+ }
85
+ //# sourceMappingURL=LookupService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LookupService.d.ts","sourceRoot":"","sources":["../../../src/LookupService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Represents an output to be tracked by the Overlay Services Engine
3
+ */
4
+ export interface Output {
5
+ /** TXID of the output */
6
+ txid: string;
7
+ /** index of the output */
8
+ outputIndex: number;
9
+ /** script of the output */
10
+ outputScript: number[];
11
+ /** number of satoshis in the output */
12
+ satoshis: number;
13
+ /** topic to which the output belongs */
14
+ topic: string;
15
+ /** Whether the output is spent */
16
+ spent: boolean;
17
+ /** Outputs consumed by the transaction associated with the output */
18
+ outputsConsumed: Array<{
19
+ txid: string;
20
+ outputIndex: number;
21
+ }>;
22
+ /** Outputs consuming this output */
23
+ consumedBy: Array<{
24
+ txid: string;
25
+ outputIndex: number;
26
+ }>;
27
+ /** The transaction data for the output */
28
+ beef?: number[];
29
+ blockHeight?: number;
30
+ score?: number;
31
+ }
32
+ //# sourceMappingURL=Output.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Output.d.ts","sourceRoot":"","sources":["../../../src/Output.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,0BAA0B;IAC1B,WAAW,EAAE,MAAM,CAAA;IACnB,2BAA2B;IAC3B,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAA;IAChB,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAA;IACb,kCAAkC;IAClC,KAAK,EAAE,OAAO,CAAA;IACd,qEAAqE;IACrE,eAAe,EAAE,KAAK,CAAC;QACrB,IAAI,EAAE,MAAM,CAAA;QACZ,WAAW,EAAE,MAAM,CAAA;KACpB,CAAC,CAAA;IACF,oCAAoC;IACpC,UAAU,EAAE,KAAK,CAAC;QAChB,IAAI,EAAE,MAAM,CAAA;QACZ,WAAW,EAAE,MAAM,CAAA;KACpB,CAAC,CAAA;IACF,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Serializes an untrusted value as a single JSON log field.
3
+ *
4
+ * JSON escaping prevents carriage returns, line feeds, and other control
5
+ * characters from forging additional log records. JavaScript permits the
6
+ * C1 controls and Unicode line/paragraph separators in JSON strings, so those
7
+ * characters are escaped explicitly as well.
8
+ */
9
+ export declare function serializeLogValue(value: unknown): string;
10
+ /**
11
+ * Serializes an unknown thrown value without allowing it to inject log lines.
12
+ */
13
+ export declare function serializeErrorForLog(error: unknown): string;
14
+ //# sourceMappingURL=SafeLog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SafeLog.d.ts","sourceRoot":"","sources":["../../../src/SafeLog.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAazD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAc5D"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.serializeLogValue = serializeLogValue;
4
+ exports.serializeErrorForLog = serializeErrorForLog;
5
+ const UNSERIALIZABLE_LOG_VALUE = '"[Unserializable value]"';
6
+ /**
7
+ * Serializes an untrusted value as a single JSON log field.
8
+ *
9
+ * JSON escaping prevents carriage returns, line feeds, and other control
10
+ * characters from forging additional log records. JavaScript permits the
11
+ * C1 controls and Unicode line/paragraph separators in JSON strings, so those
12
+ * characters are escaped explicitly as well.
13
+ */
14
+ function serializeLogValue(value) {
15
+ try {
16
+ const serialized = JSON.stringify(value);
17
+ if (serialized === undefined) {
18
+ return UNSERIALIZABLE_LOG_VALUE;
19
+ }
20
+ return serialized.replace(/[\u0080-\u009f\u2028\u2029]/g, character => String.raw `\u${character.codePointAt(0).toString(16).padStart(4, '0')}`);
21
+ }
22
+ catch {
23
+ return UNSERIALIZABLE_LOG_VALUE;
24
+ }
25
+ }
26
+ /**
27
+ * Serializes an unknown thrown value without allowing it to inject log lines.
28
+ */
29
+ function serializeErrorForLog(error) {
30
+ if (!(error instanceof Error)) {
31
+ return serializeLogValue(error);
32
+ }
33
+ try {
34
+ return serializeLogValue({
35
+ name: error.name,
36
+ message: error.message,
37
+ stack: error.stack
38
+ });
39
+ }
40
+ catch {
41
+ return UNSERIALIZABLE_LOG_VALUE;
42
+ }
43
+ }
44
+ //# sourceMappingURL=SafeLog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SafeLog.js","sourceRoot":"","sources":["../../../src/SafeLog.ts"],"names":[],"mappings":";;;;AAAA,MAAM,wBAAwB,GAAG,0BAA0B,CAAA;AAE3D;;;;;;;GAOG;AACH,2BAAmC,KAAc;IAC/C,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QACxC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,wBAAwB,CAAA;QACjC,CAAC;QACD,OAAO,UAAU,CAAC,OAAO,CACvB,8BAA8B,EAC9B,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAA,KAAM,SAAS,CAAC,WAAW,CAAC,CAAC,CAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CACjG,CAAA;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,wBAAwB,CAAA;IACjC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,8BAAsC,KAAc;IAClD,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAA;IACjC,CAAC;IAED,IAAI,CAAC;QACH,OAAO,iBAAiB,CAAC;YACvB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC,CAAA;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,wBAAwB,CAAA;IACjC,CAAC;AACH,CAAC"}
@@ -16,4 +16,5 @@
16
16
  * "topicManager2": "SHIP"
17
17
  * }
18
18
  */
19
- export type SyncConfiguration = Record<string, string[] | 'SHIP' | false>
19
+ export type SyncConfiguration = Record<string, string[] | 'SHIP' | false>;
20
+ //# sourceMappingURL=SyncConfiguration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SyncConfiguration.d.ts","sourceRoot":"","sources":["../../../src/SyncConfiguration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,KAAK,CAAC,CAAA"}
@@ -0,0 +1,35 @@
1
+ import { AdmittanceInstructions } from '@bsv/sdk';
2
+ /**
3
+ * Defines a Topic Manager interface that can be implemented for specific use-cases
4
+ */
5
+ export interface TopicManager {
6
+ /**
7
+ * Returns instructions that denote which outputs from the provided transaction to admit into the topic, and which previous coins should be retained.
8
+ * Accepts the transaction in BEEF format and an array of those input indices which spend previously-admitted outputs from the same topic.
9
+ * The transaction's BEEF structure will always contain the transactions associated with previous coins for reference (if any), regardless of whether the current transaction was directly proven.
10
+ */
11
+ identifyAdmissibleOutputs: (beef: number[], previousCoins: number[], offChainValues?: number[], mode?: 'historical-tx' | 'current-tx' | 'historical-tx-no-spv') => Promise<AdmittanceInstructions>;
12
+ /**
13
+ * Identifies and returns the inputs needed to anchor any topical outputs from this transaction to their associated previous history.
14
+ * @throws - if there are no potentially valid topical outputs in this transaction
15
+ */
16
+ identifyNeededInputs?: (beef: number[], offChainValues?: number[]) => Promise<Array<{
17
+ txid: string;
18
+ outputIndex: number;
19
+ }>>;
20
+ /**
21
+ * Returns a Markdown-formatted documentation string for the topic manager.
22
+ */
23
+ getDocumentation: () => Promise<string>;
24
+ /**
25
+ * Returns a metadata object that can be used to identify the topic manager.
26
+ */
27
+ getMetaData: () => Promise<{
28
+ name: string;
29
+ shortDescription: string;
30
+ iconURL?: string;
31
+ version?: string;
32
+ informationURL?: string;
33
+ }>;
34
+ }
35
+ //# sourceMappingURL=TopicManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TopicManager.d.ts","sourceRoot":"","sources":["../../../src/TopicManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAEjD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,yBAAyB,EAAE,CACzB,IAAI,EAAE,MAAM,EAAE,EACd,aAAa,EAAE,MAAM,EAAE,EACvB,cAAc,CAAC,EAAE,MAAM,EAAE,EACzB,IAAI,CAAC,EAAE,eAAe,GAAG,YAAY,GAAG,sBAAsB,KAC3D,OAAO,CAAC,sBAAsB,CAAC,CAAA;IAEpC;;;OAGG;IACH,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAA;IAE3H;;MAEE;IACF,gBAAgB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;IAEvC;;OAEG;IACH,WAAW,EAAE,MAAM,OAAO,CAAC;QACzB,IAAI,EAAE,MAAM,CAAA;QACZ,gBAAgB,EAAE,MAAM,CAAA;QACxB,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,cAAc,CAAC,EAAE,MAAM,CAAA;KACxB,CAAC,CAAA;CACH"}
@@ -0,0 +1,237 @@
1
+ import type { Output } from '../Output.js';
2
+ import type { AdmittedTxRef, RawTransactionRecord, TopicAnchorTip, TopicBlockAnchor } from '../BASM.js';
3
+ /**
4
+ * Represents a transaction that has been applied to a topic.
5
+ */
6
+ export interface AppliedTransaction {
7
+ /** TXID of the applied transaction */
8
+ txid: string;
9
+ /** Output index of the applied transaction */
10
+ topic: string;
11
+ /** Block height of the transaction proof, when known */
12
+ blockHeight?: number;
13
+ /** Block hash for the proven transaction's block, when known */
14
+ blockHash?: string;
15
+ /** Transaction's canonical in-block index, when known */
16
+ blockIndex?: number;
17
+ /** Merkle root computed from the direct proof, when known */
18
+ merkleRoot?: string;
19
+ /** Chain height when this transaction was first seen by this overlay */
20
+ firstSeenHeight?: number;
21
+ /** Whether this applied transaction has a direct proof of inclusion */
22
+ proven?: boolean;
23
+ }
24
+ export interface StoredTransactionRecord {
25
+ txid: string;
26
+ beef?: number[];
27
+ rawTx?: number[];
28
+ merklePath?: number[];
29
+ blockHeight?: number;
30
+ blockHash?: string;
31
+ blockIndex?: number;
32
+ merkleRoot?: string;
33
+ }
34
+ export interface AppliedTransactionProofUpdate {
35
+ txid: string;
36
+ topic: string;
37
+ blockHeight: number;
38
+ blockHash?: string;
39
+ blockIndex?: number;
40
+ merkleRoot?: string;
41
+ }
42
+ export interface UnprovenAppliedTransactionCandidate {
43
+ txid: string;
44
+ topic: string;
45
+ firstSeenHeight?: number;
46
+ outputs: Array<{
47
+ txid: string;
48
+ outputIndex: number;
49
+ }>;
50
+ }
51
+ /**
52
+ * Defines the Storage Engine interface used internally by the Overlay Services Engine.
53
+ */
54
+ export interface Storage {
55
+ /**
56
+ * Adds a new output to storage
57
+ * @param utxo — The output to add
58
+ */
59
+ insertOutput: (utxo: Output) => Promise<void>;
60
+ /**
61
+ * Finds an output from storage
62
+ * @param txid — TXID of hte output to find
63
+ * @param outputIndex — Output index for the output to find
64
+ * @param topic — The topic in which the output is stored (optional)
65
+ * @param spent — Whether the output must be spent to be returned (optional)
66
+ * @param includeBEEF — Whether to include the BEEF data for the output (optional)
67
+ */
68
+ findOutput: (txid: string, outputIndex: number, topic?: string, spent?: boolean, includeBEEF?: boolean) => Promise<Output | null>;
69
+ /**
70
+ * Finds multiple outputs from storage by txid/output index pairs.
71
+ * Implementations can use this to collapse many point lookups into a single query.
72
+ * @param outpoints — txid/output index pairs to find
73
+ * @param includeBEEF — Whether to include the BEEF data for the outputs (optional)
74
+ */
75
+ findOutputsByOutpoints?: (outpoints: Array<{
76
+ txid: string;
77
+ outputIndex: number;
78
+ }>, includeBEEF?: boolean) => Promise<Output[]>;
79
+ /**
80
+ * Finds outputs with a matching transaction ID from storage
81
+ * @param txid — TXID of the outputs to find
82
+ * @param includeBEEF — Whether to include the BEEF data for the outputs (optional)
83
+ */
84
+ findOutputsForTransaction: (txid: string, includeBEEF?: boolean) => Promise<Output[]>;
85
+ /**
86
+ * Finds current UTXOs that have been admitted into a given topic
87
+ * @param topic - The topic for which we want to find Unspent Transaction Outputs (UTXOs).
88
+ * @param since - Optional parameter indicating the minimum score value to retrieve matching UTXOs from. This is used for score-based filtering.
89
+ * @param limit - Optional parameter to limit the number of results returned
90
+ * @param includeBEEF — Whether to include the BEEF data for the outputs (optional)
91
+ * @returns A promise that resolves to an array of matching UTXOs.
92
+ */
93
+ findUTXOsForTopic: (topic: string, since?: number, limit?: number, includeBEEF?: boolean) => Promise<Output[]>;
94
+ /**
95
+ * Deletes an output from storage
96
+ * @param txid — The TXID of the output to delete
97
+ * @param outputIndex — The index of the output to delete
98
+ * @param topic — The topic where the output should be deleted
99
+ */
100
+ deleteOutput: (txid: string, outputIndex: number, topic: string) => Promise<void>;
101
+ /**
102
+ * Updates a UTXO as spent
103
+ * @param txid — TXID of the output to update
104
+ * @param outputIndex — Index of the output to update
105
+ * @param topic — Topic in which the output should be updated
106
+ */
107
+ markUTXOAsSpent: (txid: string, outputIndex: number, topic: string) => Promise<void>;
108
+ /**
109
+ * Updates which outputs are consumed by this output
110
+ * @param txid — TXID of the output to update
111
+ * @param outputIndex — Index of the output to update
112
+ * @param topic — Topic in which the output should be updated
113
+ * @param consumedBy — The new set of outputs consumed by this output
114
+ */
115
+ updateConsumedBy: (txid: string, outputIndex: number, topic: string, consumedBy: Array<{
116
+ txid: string;
117
+ outputIndex: number;
118
+ }>) => Promise<void>;
119
+ /**
120
+ * Updates the beef data for a transaction
121
+ * @param txid — TXID of the transaction to update
122
+ * @param beef - BEEF data to update
123
+ */
124
+ updateTransactionBEEF: (txid: string, beef: number[]) => Promise<void>;
125
+ /**
126
+ * Updates the block height on an output
127
+ * @param txid — TXID of the output to update
128
+ * @param outputIndex — Index of the output to update
129
+ * @param topic— Topic in which the output should be updated
130
+ * @param blockHeight - height of the block the transaction associated with this output was included in
131
+ */
132
+ updateOutputBlockHeight?: (txid: string, outputIndex: number, topic: string, blockHeight: number) => Promise<void>;
133
+ /**
134
+ * Upserts transaction-level data used for compact BEEF, raw-tx BASM fetches,
135
+ * and direct proof retrieval.
136
+ */
137
+ upsertTransactionRecord?: (record: StoredTransactionRecord) => Promise<void>;
138
+ /**
139
+ * Updates direct proof metadata for an applied topic transaction.
140
+ */
141
+ updateAppliedTransactionProof?: (record: AppliedTransactionProofUpdate) => Promise<void>;
142
+ /**
143
+ * Inserts record of the applied transaction
144
+ * @param tx — The transaction to insert
145
+ */
146
+ insertAppliedTransaction: (tx: AppliedTransaction) => Promise<void>;
147
+ /**
148
+ * Checks if a duplicate transaction exists
149
+ * @param tx — Transaction to check
150
+ * @returns Whether the transaction is already applied
151
+ */
152
+ doesAppliedTransactionExist: (tx: AppliedTransaction) => Promise<boolean>;
153
+ /**
154
+ * Returns proven topic transactions admitted in one block, in canonical block order.
155
+ */
156
+ findAdmittedTransactionsForBlock?: (topic: string, blockHeight: number, blockHash?: string) => Promise<AdmittedTxRef[]>;
157
+ /**
158
+ * Persists or replaces a topic block anchor for one height.
159
+ */
160
+ upsertTopicBlockAnchor?: (anchor: TopicBlockAnchor) => Promise<void>;
161
+ /**
162
+ * Returns one topic block anchor.
163
+ */
164
+ findTopicBlockAnchor?: (topic: string, blockHeight: number, blockHash?: string) => Promise<TopicBlockAnchor | undefined>;
165
+ /**
166
+ * Returns topic block anchors across a closed height range.
167
+ */
168
+ findTopicBlockAnchors?: (topic: string, fromHeight: number, toHeight: number) => Promise<TopicBlockAnchor[]>;
169
+ /**
170
+ * Returns the latest known topic anchor tip.
171
+ */
172
+ findTopicAnchorTip?: (topic: string) => Promise<TopicAnchorTip | undefined>;
173
+ /**
174
+ * Returns raw transactions for the requested txids.
175
+ */
176
+ findRawTransactions?: (txids: string[]) => Promise<RawTransactionRecord[]>;
177
+ /**
178
+ * Returns direct Merkle paths for the requested txids.
179
+ */
180
+ findTransactionMerklePaths?: (txids: string[]) => Promise<Array<{
181
+ txid: string;
182
+ merklePath: string;
183
+ blockHeight?: number;
184
+ blockHash?: string;
185
+ blockIndex?: number;
186
+ merkleRoot?: string;
187
+ }>>;
188
+ /**
189
+ * Finds topic-applied transactions with no direct proof old enough to evict.
190
+ */
191
+ findUnprovenAppliedTransactions?: (cutoffHeight: number, topic?: string) => Promise<UnprovenAppliedTransactionCandidate[]>;
192
+ /**
193
+ * Deletes a topic-applied transaction record.
194
+ */
195
+ deleteAppliedTransaction?: (txid: string, topic: string) => Promise<void>;
196
+ /**
197
+ * Returns proven topic-applied transactions whose proof anchors to the given
198
+ * block hash. Used to demote admissions when that block is reorged out.
199
+ */
200
+ findProvenAppliedTransactionsByBlockHash?: (blockHash: string) => Promise<Array<{
201
+ txid: string;
202
+ topic: string;
203
+ blockHeight: number;
204
+ }>>;
205
+ /**
206
+ * Returns proven topic-applied transactions in a closed block-height range,
207
+ * including the proof's block hash and merkle root for revalidation sweeps.
208
+ */
209
+ findProvenAppliedTransactionsInRange?: (fromHeight: number, toHeight: number, topic?: string) => Promise<Array<{
210
+ txid: string;
211
+ topic: string;
212
+ blockHeight: number;
213
+ blockHash?: string;
214
+ merkleRoot?: string;
215
+ }>>;
216
+ /**
217
+ * Demotes a proven applied transaction back to unproven: clears the block
218
+ * proof metadata and `proven` flag while retaining `firstSeenHeight`, so the
219
+ * "received" record survives until re-proof or unproven eviction.
220
+ */
221
+ demoteAppliedTransactionToUnproven?: (txid: string, topic: string) => Promise<void>;
222
+ /**
223
+ * Updates the last interaction score for a given host and topic
224
+ * @param host — The host identifier
225
+ * @param topic — The topic for which to update the interaction score
226
+ * @param since — The score value to store
227
+ */
228
+ updateLastInteraction: (host: string, topic: string, since: number) => Promise<void>;
229
+ /**
230
+ * Retrieves the last interaction score for a given host and topic
231
+ * @param host — The host identifier
232
+ * @param topic — The topic to query
233
+ * @returns The last interaction score, or 0 if not found
234
+ */
235
+ getLastInteraction: (host: string, topic: string) => Promise<number>;
236
+ }
237
+ //# sourceMappingURL=Storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Storage.d.ts","sourceRoot":"","sources":["../../../../src/storage/Storage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ import { Storage, type AppliedTransaction, type AppliedTransactionProofUpdate, type StoredTransactionRecord, type UnprovenAppliedTransactionCandidate } from '../Storage.js';
2
+ import { Knex } from 'knex';
3
+ import type { Output } from '../../Output.js';
4
+ import { type AdmittedTxRef, type RawTransactionRecord, type TopicAnchorTip, type TopicBlockAnchor } from '../../BASM.js';
5
+ export declare class KnexStorage implements Storage {
6
+ knex: Knex;
7
+ constructor(knex: Knex);
8
+ private parseOutputRelations;
9
+ private parseOutputRecord;
10
+ private binaryToNumberArray;
11
+ private binaryToHex;
12
+ private transactionRecordFromBEEF;
13
+ private fetchTransactionBeefMap;
14
+ findOutput(txid: string, outputIndex: number, topic?: string, spent?: boolean, includeBEEF?: boolean): Promise<Output | null>;
15
+ findOutputsByOutpoints(outpoints: Array<{
16
+ txid: string;
17
+ outputIndex: number;
18
+ }>, includeBEEF?: boolean): Promise<Output[]>;
19
+ findOutputsForTransaction(txid: string, includeBEEF?: boolean): Promise<Output[]>;
20
+ findUTXOsForTopic(topic: string, since?: number, limit?: number, includeBEEF?: boolean): Promise<Output[]>;
21
+ deleteOutput(txid: string, outputIndex: number, topic: string): Promise<void>;
22
+ insertOutput(output: Output): Promise<void>;
23
+ markUTXOAsSpent(txid: string, outputIndex: number, topic?: string): Promise<void>;
24
+ updateConsumedBy(txid: string, outputIndex: number, topic: string, consumedBy: Array<{
25
+ txid: string;
26
+ outputIndex: number;
27
+ }>): Promise<void>;
28
+ updateTransactionBEEF(txid: string, beef: number[]): Promise<void>;
29
+ updateOutputBlockHeight(txid: string, outputIndex: number, topic: string, blockHeight: number): Promise<void>;
30
+ upsertTransactionRecord(record: StoredTransactionRecord): Promise<void>;
31
+ updateAppliedTransactionProof(record: AppliedTransactionProofUpdate): Promise<void>;
32
+ insertAppliedTransaction(tx: AppliedTransaction): Promise<void>;
33
+ doesAppliedTransactionExist(tx: {
34
+ txid: string;
35
+ topic: string;
36
+ }): Promise<boolean>;
37
+ updateLastInteraction(host: string, topic: string, since: number): Promise<void>;
38
+ getLastInteraction(host: string, topic: string): Promise<number>;
39
+ findAdmittedTransactionsForBlock(topic: string, blockHeight: number, blockHash?: string): Promise<AdmittedTxRef[]>;
40
+ upsertTopicBlockAnchor(anchor: TopicBlockAnchor): Promise<void>;
41
+ findTopicBlockAnchor(topic: string, blockHeight: number, blockHash?: string): Promise<TopicBlockAnchor | undefined>;
42
+ findTopicBlockAnchors(topic: string, fromHeight: number, toHeight: number): Promise<TopicBlockAnchor[]>;
43
+ findTopicAnchorTip(topic: string): Promise<TopicAnchorTip | undefined>;
44
+ findRawTransactions(txids: string[]): Promise<RawTransactionRecord[]>;
45
+ findTransactionMerklePaths(txids: string[]): Promise<Array<{
46
+ txid: string;
47
+ merklePath: string;
48
+ blockHeight?: number;
49
+ blockHash?: string;
50
+ blockIndex?: number;
51
+ merkleRoot?: string;
52
+ }>>;
53
+ findUnprovenAppliedTransactions(cutoffHeight: number, topic?: string): Promise<UnprovenAppliedTransactionCandidate[]>;
54
+ deleteAppliedTransaction(txid: string, topic: string): Promise<void>;
55
+ findProvenAppliedTransactionsByBlockHash(blockHash: string): Promise<Array<{
56
+ txid: string;
57
+ topic: string;
58
+ blockHeight: number;
59
+ }>>;
60
+ findProvenAppliedTransactionsInRange(fromHeight: number, toHeight: number, topic?: string): Promise<Array<{
61
+ txid: string;
62
+ topic: string;
63
+ blockHeight: number;
64
+ blockHash?: string;
65
+ merkleRoot?: string;
66
+ }>>;
67
+ demoteAppliedTransactionToUnproven(txid: string, topic: string): Promise<void>;
68
+ }
69
+ //# sourceMappingURL=KnexStorage.d.ts.map