@bsv/sdk 1.8.0 → 1.8.1

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 (52) hide show
  1. package/dist/cjs/package.json +1 -1
  2. package/dist/cjs/src/kvstore/GlobalKVStore.js +420 -0
  3. package/dist/cjs/src/kvstore/GlobalKVStore.js.map +1 -0
  4. package/dist/cjs/src/kvstore/LocalKVStore.js +6 -6
  5. package/dist/cjs/src/kvstore/LocalKVStore.js.map +1 -1
  6. package/dist/cjs/src/kvstore/kvStoreInterpreter.js +74 -0
  7. package/dist/cjs/src/kvstore/kvStoreInterpreter.js.map +1 -0
  8. package/dist/cjs/src/kvstore/types.js +11 -0
  9. package/dist/cjs/src/kvstore/types.js.map +1 -0
  10. package/dist/cjs/src/overlay-tools/Historian.js +153 -0
  11. package/dist/cjs/src/overlay-tools/Historian.js.map +1 -0
  12. package/dist/cjs/src/script/templates/PushDrop.js +2 -2
  13. package/dist/cjs/src/script/templates/PushDrop.js.map +1 -1
  14. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  15. package/dist/esm/src/kvstore/GlobalKVStore.js +416 -0
  16. package/dist/esm/src/kvstore/GlobalKVStore.js.map +1 -0
  17. package/dist/esm/src/kvstore/LocalKVStore.js +6 -6
  18. package/dist/esm/src/kvstore/LocalKVStore.js.map +1 -1
  19. package/dist/esm/src/kvstore/kvStoreInterpreter.js +47 -0
  20. package/dist/esm/src/kvstore/kvStoreInterpreter.js.map +1 -0
  21. package/dist/esm/src/kvstore/types.js +8 -0
  22. package/dist/esm/src/kvstore/types.js.map +1 -0
  23. package/dist/esm/src/overlay-tools/Historian.js +155 -0
  24. package/dist/esm/src/overlay-tools/Historian.js.map +1 -0
  25. package/dist/esm/src/script/templates/PushDrop.js +2 -2
  26. package/dist/esm/src/script/templates/PushDrop.js.map +1 -1
  27. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  28. package/dist/types/src/kvstore/GlobalKVStore.d.ts +129 -0
  29. package/dist/types/src/kvstore/GlobalKVStore.d.ts.map +1 -0
  30. package/dist/types/src/kvstore/kvStoreInterpreter.d.ts +22 -0
  31. package/dist/types/src/kvstore/kvStoreInterpreter.d.ts.map +1 -0
  32. package/dist/types/src/kvstore/types.d.ts +106 -0
  33. package/dist/types/src/kvstore/types.d.ts.map +1 -0
  34. package/dist/types/src/overlay-tools/Historian.d.ts +92 -0
  35. package/dist/types/src/overlay-tools/Historian.d.ts.map +1 -0
  36. package/dist/types/src/script/templates/PushDrop.d.ts +6 -5
  37. package/dist/types/src/script/templates/PushDrop.d.ts.map +1 -1
  38. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  39. package/dist/umd/bundle.js +1 -1
  40. package/dist/umd/bundle.js.map +1 -1
  41. package/docs/reference/script.md +7 -19
  42. package/docs/reference/transaction.md +53 -2
  43. package/package.json +1 -1
  44. package/src/kvstore/GlobalKVStore.ts +478 -0
  45. package/src/kvstore/LocalKVStore.ts +7 -7
  46. package/src/kvstore/__tests/GlobalKVStore.test.ts +965 -0
  47. package/src/kvstore/__tests/LocalKVStore.test.ts +72 -0
  48. package/src/kvstore/kvStoreInterpreter.ts +49 -0
  49. package/src/kvstore/types.ts +114 -0
  50. package/src/overlay-tools/Historian.ts +195 -0
  51. package/src/overlay-tools/__tests/Historian.test.ts +690 -0
  52. package/src/script/templates/PushDrop.ts +6 -5
@@ -0,0 +1,155 @@
1
+ /**
2
+ * Historian builds a chronological history (oldest → newest) of typed values by traversing
3
+ * a transaction's input ancestry and interpreting each output with a provided interpreter.
4
+ *
5
+ * Core ideas:
6
+ * - You provide an interpreter `(tx, outputIndex) => T | undefined` that decodes one output
7
+ * into your domain value (e.g., kvstore entries). If it returns `undefined`, that output
8
+ * contributes nothing to history.
9
+ * - Traversal follows `Transaction.inputs[].sourceTransaction` recursively, so callers must
10
+ * supply transactions whose inputs have `sourceTransaction` populated (e.g., via overlay
11
+ * history reconstruction).
12
+ * - The traversal visits each transaction once (cycle-safe) and collects interpreted values
13
+ * in reverse-chronological order, then returns them as chronological (oldest-first).
14
+ * - Optional caching support: provide a `historyCache` Map to cache complete history results
15
+ * and avoid re-traversing identical transaction chains with the same context.
16
+ *
17
+ * Usage:
18
+ * - Construct with an interpreter (and optional cache)
19
+ * - Call historian.buildHistory(tx, context) to get an array of values representing the history of a token over time.
20
+ *
21
+ * Example:
22
+ * const cache = new Map() // Optional: for caching repeated queries
23
+ * const historian = new Historian(interpreter, { historyCache: cache })
24
+ * const history = await historian.buildHistory(tipTransaction, context)
25
+ * // history: T[] (e.g., prior values for a protected kvstore key)
26
+ *
27
+ * Caching:
28
+ * - Cache keys are generated from `interpreterVersion|txid|contextKey`
29
+ * - Cached results are immutable snapshots to prevent external mutation
30
+ * - Bump `interpreterVersion` when interpreter semantics change to invalidate old cache entries
31
+ */
32
+ export class Historian {
33
+ interpreter;
34
+ debug;
35
+ // --- minimal cache support ---
36
+ historyCache;
37
+ interpreterVersion;
38
+ ctxKeyFn;
39
+ /**
40
+ * Create a new Historian instance
41
+ *
42
+ * @param interpreter - Function to interpret transaction outputs into typed values
43
+ * @param options - Configuration options
44
+ * @param options.debug - Enable debug logging (default: false)
45
+ * @param options.historyCache - Optional external cache for complete history results
46
+ * @param options.interpreterVersion - Version identifier for cache invalidation (default: 'v1')
47
+ * @param options.ctxKeyFn - Custom function to serialize context for cache keys (default: JSON.stringify)
48
+ */
49
+ constructor(interpreter, options) {
50
+ this.interpreter = interpreter;
51
+ this.debug = options?.debug ?? false;
52
+ // Configure caching (all optional)
53
+ this.historyCache = options?.historyCache;
54
+ this.interpreterVersion = options?.interpreterVersion ?? 'v1';
55
+ this.ctxKeyFn = options?.ctxKeyFn ?? ((ctx) => {
56
+ try {
57
+ return JSON.stringify(ctx ?? null);
58
+ }
59
+ catch {
60
+ return '';
61
+ }
62
+ });
63
+ }
64
+ historyKey(startTransaction, context) {
65
+ const txid = startTransaction.id('hex');
66
+ const ctxKey = this.ctxKeyFn(context);
67
+ return `${this.interpreterVersion}|${txid}|${ctxKey}`;
68
+ }
69
+ /**
70
+ * Build history by traversing input chain from a starting transaction
71
+ * Returns values in chronological order (oldest first)
72
+ *
73
+ * If caching is enabled, will first check for cached results matching the
74
+ * startTransaction and context. On cache miss, performs full traversal and
75
+ * stores the result for future queries.
76
+ *
77
+ * @param startTransaction - The transaction to start traversal from
78
+ * @param context - The context to pass to the interpreter
79
+ * @returns Array of interpreted values in chronological order
80
+ */
81
+ async buildHistory(startTransaction, context) {
82
+ // --- minimal cache fast path ---
83
+ if (this.historyCache != null) {
84
+ const cacheKey = this.historyKey(startTransaction, context);
85
+ if (this.historyCache.has(cacheKey)) {
86
+ const cached = this.historyCache.get(cacheKey);
87
+ if (cached != null) {
88
+ if (this.debug)
89
+ console.log('[Historian] History cache hit:', cacheKey);
90
+ // Return a shallow copy to avoid external mutation of the cached array
91
+ return cached.slice();
92
+ }
93
+ }
94
+ }
95
+ const history = [];
96
+ const visited = new Set();
97
+ // Recursively traverse input transactions to build history
98
+ const traverseHistory = async (transaction) => {
99
+ const txid = transaction.id('hex');
100
+ // Prevent infinite loops
101
+ if (visited.has(txid)) {
102
+ if (this.debug) {
103
+ console.log(`[Historian] Skipping already visited transaction: ${txid}`);
104
+ }
105
+ return;
106
+ }
107
+ visited.add(txid);
108
+ if (this.debug) {
109
+ console.log(`[Historian] Processing transaction: ${txid}`);
110
+ }
111
+ // Check all outputs in this transaction for interpretable values
112
+ for (let outputIndex = 0; outputIndex < transaction.outputs.length; outputIndex++) {
113
+ try {
114
+ // Try to interpret this output
115
+ const interpretedValue = await Promise.resolve(this.interpreter(transaction, outputIndex, context));
116
+ if (interpretedValue !== undefined) {
117
+ history.push(interpretedValue);
118
+ if (this.debug) {
119
+ console.log('[Historian] Added value to history:', interpretedValue);
120
+ }
121
+ }
122
+ }
123
+ catch (error) {
124
+ if (this.debug) {
125
+ console.log(`[Historian] Failed to interpret output ${outputIndex}:`, error);
126
+ }
127
+ // Skip outputs that can't be interpreted
128
+ }
129
+ }
130
+ // Recursively traverse input transactions
131
+ for (const input of transaction.inputs) {
132
+ if (input.sourceTransaction != null) {
133
+ await traverseHistory(input.sourceTransaction);
134
+ }
135
+ else if (this.debug) {
136
+ console.log('[Historian] Input missing sourceTransaction, skipping');
137
+ }
138
+ }
139
+ };
140
+ // Start traversal from the provided transaction
141
+ await traverseHistory(startTransaction);
142
+ // History is built in reverse chronological order during traversal,
143
+ // so we reverse it to return oldest-first
144
+ const chronological = history.reverse();
145
+ if (this.historyCache != null) {
146
+ const cacheKey = this.historyKey(startTransaction, context);
147
+ // Store an immutable snapshot to avoid accidental external mutation
148
+ this.historyCache.set(cacheKey, Object.freeze(chronological.slice()));
149
+ if (this.debug)
150
+ console.log('[Historian] History cached:', cacheKey);
151
+ }
152
+ return chronological;
153
+ }
154
+ }
155
+ //# sourceMappingURL=Historian.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Historian.js","sourceRoot":"","sources":["../../../../src/overlay-tools/Historian.ts"],"names":[],"mappings":"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"}
@@ -96,7 +96,7 @@ export default class PushDrop {
96
96
  * Creates a PushDrop locking script with arbitrary data fields and a public key lock.
97
97
  *
98
98
  * @param {number[][]} fields - The token fields to include in the locking script.
99
- * @param {[SecurityLevel, string]} protocolID - The protocol ID to use.
99
+ * @param {WalletProtocol} protocolID - The protocol ID to use.
100
100
  * @param {string} keyID - The key ID to use.
101
101
  * @param {string} counterparty - The counterparty involved in the transaction, "self" or "anyone".
102
102
  * @param {boolean} [forSelf=false] - Flag indicating if the lock is for the creator (default no).
@@ -148,7 +148,7 @@ export default class PushDrop {
148
148
  /**
149
149
  * Creates an unlocking script for spending a PushDrop token output.
150
150
  *
151
- * @param {[SecurityLevel, string]} protocolID - The protocol ID to use.
151
+ * @param {WalletProtocol} protocolID - The protocol ID to use.
152
152
  * @param {string} keyID - The key ID to use.
153
153
  * @param {string} counterparty - The counterparty involved in the transaction, "self" or "anyone".
154
154
  * @param {string} [sourceTXID] - The TXID of the source transaction.
@@ -1 +1 @@
1
- {"version":3,"file":"PushDrop.js","sourceRoot":"","sources":["../../../../../src/script/templates/PushDrop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PushDrop.js","sourceRoot":"","sources":["../../../../../src/script/templates/PushDrop.ts"],"names":[],"mappings":"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"}