@aztec/kv-store 0.67.1 → 0.68.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.
- package/dest/indexeddb/store.d.ts.map +1 -1
- package/dest/indexeddb/store.js +4 -3
- package/dest/interfaces/array_test_suite.d.ts.map +1 -1
- package/dest/interfaces/array_test_suite.js +4 -1
- package/dest/interfaces/map.d.ts +18 -0
- package/dest/interfaces/map.d.ts.map +1 -1
- package/dest/interfaces/map_test_suite.d.ts.map +1 -1
- package/dest/interfaces/map_test_suite.js +4 -1
- package/dest/interfaces/set_test_suite.d.ts.map +1 -1
- package/dest/interfaces/set_test_suite.js +4 -1
- package/dest/interfaces/singleton_test_suite.d.ts.map +1 -1
- package/dest/interfaces/singleton_test_suite.js +4 -1
- package/dest/interfaces/store.d.ts +13 -1
- package/dest/interfaces/store.d.ts.map +1 -1
- package/dest/interfaces/store_test_suite.d.ts.map +1 -1
- package/dest/interfaces/store_test_suite.js +5 -1
- package/dest/lmdb/map.d.ts +18 -2
- package/dest/lmdb/map.d.ts.map +1 -1
- package/dest/lmdb/map.js +86 -26
- package/dest/lmdb/store.d.ts +15 -3
- package/dest/lmdb/store.d.ts.map +1 -1
- package/dest/lmdb/store.js +26 -10
- package/dest/stores/l2_tips_store.js +2 -2
- package/package.json +6 -6
- package/src/indexeddb/store.ts +3 -2
- package/src/interfaces/array_test_suite.ts +4 -0
- package/src/interfaces/map.ts +21 -0
- package/src/interfaces/map_test_suite.ts +4 -0
- package/src/interfaces/set_test_suite.ts +4 -0
- package/src/interfaces/singleton_test_suite.ts +4 -0
- package/src/interfaces/store.ts +22 -1
- package/src/interfaces/store_test_suite.ts +4 -0
- package/src/lmdb/map.ts +97 -22
- package/src/lmdb/store.ts +35 -12
- package/src/stores/l2_tips_store.ts +1 -1
package/dest/lmdb/map.js
CHANGED
|
@@ -1,32 +1,29 @@
|
|
|
1
|
-
var
|
|
1
|
+
var _LmdbAztecMapWithSize_sizeCache;
|
|
2
2
|
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
3
3
|
/**
|
|
4
4
|
* A map backed by LMDB.
|
|
5
5
|
*/
|
|
6
6
|
export class LmdbAztecMap {
|
|
7
7
|
constructor(rootDb, mapName) {
|
|
8
|
-
_LmdbAztecMap_instances.add(this);
|
|
9
|
-
_LmdbAztecMap_startSentinel.set(this, void 0);
|
|
10
|
-
_LmdbAztecMap_endSentinel.set(this, void 0);
|
|
11
8
|
this.name = mapName;
|
|
12
9
|
this.db = rootDb;
|
|
13
10
|
// sentinels are used to define the start and end of the map
|
|
14
11
|
// with LMDB's key encoding, no _primitive value_ can be "less than" an empty buffer or greater than Byte 255
|
|
15
12
|
// these will be used later to answer range queries
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
this.startSentinel = ['map', this.name, 'slot', Buffer.from([])];
|
|
14
|
+
this.endSentinel = ['map', this.name, 'slot', Buffer.from([255])];
|
|
18
15
|
}
|
|
19
16
|
close() {
|
|
20
17
|
return this.db.close();
|
|
21
18
|
}
|
|
22
19
|
get(key) {
|
|
23
|
-
return this.db.get(
|
|
20
|
+
return this.db.get(this.slot(key))?.[1];
|
|
24
21
|
}
|
|
25
22
|
getAsync(key) {
|
|
26
23
|
return Promise.resolve(this.get(key));
|
|
27
24
|
}
|
|
28
25
|
*getValues(key) {
|
|
29
|
-
const values = this.db.getValues(
|
|
26
|
+
const values = this.db.getValues(this.slot(key));
|
|
30
27
|
for (const value of values) {
|
|
31
28
|
yield value?.[1];
|
|
32
29
|
}
|
|
@@ -37,32 +34,32 @@ export class LmdbAztecMap {
|
|
|
37
34
|
}
|
|
38
35
|
}
|
|
39
36
|
has(key) {
|
|
40
|
-
return this.db.doesExist(
|
|
37
|
+
return this.db.doesExist(this.slot(key));
|
|
41
38
|
}
|
|
42
39
|
hasAsync(key) {
|
|
43
40
|
return Promise.resolve(this.has(key));
|
|
44
41
|
}
|
|
45
42
|
async set(key, val) {
|
|
46
|
-
await this.db.put(
|
|
43
|
+
await this.db.put(this.slot(key), [key, val]);
|
|
47
44
|
}
|
|
48
45
|
swap(key, fn) {
|
|
49
46
|
return this.db.childTransaction(() => {
|
|
50
|
-
const slot =
|
|
47
|
+
const slot = this.slot(key);
|
|
51
48
|
const entry = this.db.get(slot);
|
|
52
49
|
void this.db.put(slot, [key, fn(entry?.[1])]);
|
|
53
50
|
});
|
|
54
51
|
}
|
|
55
52
|
setIfNotExists(key, val) {
|
|
56
|
-
const slot =
|
|
53
|
+
const slot = this.slot(key);
|
|
57
54
|
return this.db.ifNoExists(slot, () => {
|
|
58
55
|
void this.db.put(slot, [key, val]);
|
|
59
56
|
});
|
|
60
57
|
}
|
|
61
58
|
async delete(key) {
|
|
62
|
-
await this.db.remove(
|
|
59
|
+
await this.db.remove(this.slot(key));
|
|
63
60
|
}
|
|
64
61
|
async deleteValue(key, val) {
|
|
65
|
-
await this.db.remove(
|
|
62
|
+
await this.db.remove(this.slot(key), [key, val]);
|
|
66
63
|
}
|
|
67
64
|
*entries(range = {}) {
|
|
68
65
|
const { reverse = false, limit } = range;
|
|
@@ -70,18 +67,18 @@ export class LmdbAztecMap {
|
|
|
70
67
|
// in that case, we need to swap the start and end sentinels
|
|
71
68
|
const start = reverse
|
|
72
69
|
? range.end
|
|
73
|
-
?
|
|
74
|
-
:
|
|
70
|
+
? this.slot(range.end)
|
|
71
|
+
: this.endSentinel
|
|
75
72
|
: range.start
|
|
76
|
-
?
|
|
77
|
-
:
|
|
73
|
+
? this.slot(range.start)
|
|
74
|
+
: this.startSentinel;
|
|
78
75
|
const end = reverse
|
|
79
76
|
? range.start
|
|
80
|
-
?
|
|
81
|
-
:
|
|
77
|
+
? this.slot(range.start)
|
|
78
|
+
: this.startSentinel
|
|
82
79
|
: range.end
|
|
83
|
-
?
|
|
84
|
-
:
|
|
80
|
+
? this.slot(range.end)
|
|
81
|
+
: this.endSentinel;
|
|
85
82
|
const lmdbRange = {
|
|
86
83
|
start,
|
|
87
84
|
end,
|
|
@@ -118,8 +115,71 @@ export class LmdbAztecMap {
|
|
|
118
115
|
yield key;
|
|
119
116
|
}
|
|
120
117
|
}
|
|
118
|
+
slot(key) {
|
|
119
|
+
return ['map', this.name, 'slot', key];
|
|
120
|
+
}
|
|
121
|
+
async clear() {
|
|
122
|
+
const lmdbRange = {
|
|
123
|
+
start: this.startSentinel,
|
|
124
|
+
end: this.endSentinel,
|
|
125
|
+
};
|
|
126
|
+
const iterator = this.db.getRange(lmdbRange);
|
|
127
|
+
for (const { key } of iterator) {
|
|
128
|
+
await this.db.remove(key);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
export class LmdbAztecMapWithSize extends LmdbAztecMap {
|
|
133
|
+
constructor(rootDb, mapName) {
|
|
134
|
+
super(rootDb, mapName);
|
|
135
|
+
_LmdbAztecMapWithSize_sizeCache.set(this, void 0);
|
|
136
|
+
}
|
|
137
|
+
async set(key, val) {
|
|
138
|
+
await this.db.childTransaction(() => {
|
|
139
|
+
const exists = this.db.doesExist(this.slot(key));
|
|
140
|
+
this.db.putSync(this.slot(key), [key, val], {
|
|
141
|
+
appendDup: true,
|
|
142
|
+
});
|
|
143
|
+
if (!exists) {
|
|
144
|
+
__classPrivateFieldSet(this, _LmdbAztecMapWithSize_sizeCache, undefined, "f"); // Invalidate cache
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
async delete(key) {
|
|
149
|
+
await this.db.childTransaction(async () => {
|
|
150
|
+
const exists = this.db.doesExist(this.slot(key));
|
|
151
|
+
if (exists) {
|
|
152
|
+
await this.db.remove(this.slot(key));
|
|
153
|
+
__classPrivateFieldSet(this, _LmdbAztecMapWithSize_sizeCache, undefined, "f"); // Invalidate cache
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
async deleteValue(key, val) {
|
|
158
|
+
await this.db.childTransaction(async () => {
|
|
159
|
+
const exists = this.db.doesExist(this.slot(key));
|
|
160
|
+
if (exists) {
|
|
161
|
+
await this.db.remove(this.slot(key), [key, val]);
|
|
162
|
+
__classPrivateFieldSet(this, _LmdbAztecMapWithSize_sizeCache, undefined, "f"); // Invalidate cache
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Gets the size of the map by counting entries.
|
|
168
|
+
* @returns The number of entries in the map
|
|
169
|
+
*/
|
|
170
|
+
size() {
|
|
171
|
+
if (__classPrivateFieldGet(this, _LmdbAztecMapWithSize_sizeCache, "f") === undefined) {
|
|
172
|
+
__classPrivateFieldSet(this, _LmdbAztecMapWithSize_sizeCache, this.db.getCount({
|
|
173
|
+
start: this.startSentinel,
|
|
174
|
+
end: this.endSentinel,
|
|
175
|
+
}), "f");
|
|
176
|
+
}
|
|
177
|
+
return __classPrivateFieldGet(this, _LmdbAztecMapWithSize_sizeCache, "f");
|
|
178
|
+
}
|
|
179
|
+
// Reset cache on clear/drop operations
|
|
180
|
+
clearCache() {
|
|
181
|
+
__classPrivateFieldSet(this, _LmdbAztecMapWithSize_sizeCache, undefined, "f");
|
|
182
|
+
}
|
|
121
183
|
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
};
|
|
125
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xtZGIvbWFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBUUE7O0dBRUc7QUFDSCxNQUFNLE9BQU8sWUFBWTtJQU92QixZQUFZLE1BQWdCLEVBQUUsT0FBZTs7UUFIN0MsOENBQXFDO1FBQ3JDLDRDQUFtQztRQUdqQyxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQztRQUNwQixJQUFJLENBQUMsRUFBRSxHQUFHLE1BQTJDLENBQUM7UUFFdEQsNERBQTREO1FBQzVELDZHQUE2RztRQUM3RyxtREFBbUQ7UUFDbkQsdUJBQUEsSUFBSSwrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFBLENBQUM7UUFDbEUsdUJBQUEsSUFBSSw2QkFBZ0IsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBQSxDQUFDO0lBQ3JFLENBQUM7SUFFRCxLQUFLO1FBQ0gsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxHQUFHLENBQUMsR0FBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsdUJBQUEsSUFBSSxtREFBTSxNQUFWLElBQUksRUFBTyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELFFBQVEsQ0FBQyxHQUFNO1FBQ2IsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsQ0FBQyxTQUFTLENBQUMsR0FBTTtRQUNmLE1BQU0sTUFB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
|
|
184
|
+
_LmdbAztecMapWithSize_sizeCache = new WeakMap();
|
|
185
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xtZGIvbWFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBUUE7O0dBRUc7QUFDSCxNQUFNLE9BQU8sWUFBWTtJQU92QixZQUFZLE1BQWdCLEVBQUUsT0FBZTtRQUMzQyxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQztRQUNwQixJQUFJLENBQUMsRUFBRSxHQUFHLE1BQTJDLENBQUM7UUFFdEQsNERBQTREO1FBQzVELDZHQUE2RztRQUM3RyxtREFBbUQ7UUFDbkQsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxLQUFLO1FBQ0gsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxHQUFHLENBQUMsR0FBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELFFBQVEsQ0FBQyxHQUFNO1FBQ2IsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsQ0FBQyxTQUFTLENBQUMsR0FBTTtRQUNmLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FB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
|
package/dest/lmdb/store.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { type RootDatabase } from 'lmdb';
|
|
|
2
2
|
import { type AztecArray, type AztecAsyncArray } from '../interfaces/array.js';
|
|
3
3
|
import { type Key } from '../interfaces/common.js';
|
|
4
4
|
import { type AztecAsyncCounter, type AztecCounter } from '../interfaces/counter.js';
|
|
5
|
-
import { type AztecAsyncMap, type AztecAsyncMultiMap, type AztecMap, type AztecMultiMap } from '../interfaces/map.js';
|
|
5
|
+
import { type AztecAsyncMap, type AztecAsyncMultiMap, type AztecMap, type AztecMapWithSize, type AztecMultiMap, type AztecMultiMapWithSize } from '../interfaces/map.js';
|
|
6
6
|
import { type AztecAsyncSet, type AztecSet } from '../interfaces/set.js';
|
|
7
7
|
import { type AztecAsyncSingleton, type AztecSingleton } from '../interfaces/singleton.js';
|
|
8
8
|
import { type AztecAsyncKVStore, type AztecKVStore } from '../interfaces/store.js';
|
|
@@ -12,9 +12,9 @@ import { type AztecAsyncKVStore, type AztecKVStore } from '../interfaces/store.j
|
|
|
12
12
|
export declare class AztecLmdbStore implements AztecKVStore, AztecAsyncKVStore {
|
|
13
13
|
#private;
|
|
14
14
|
readonly isEphemeral: boolean;
|
|
15
|
-
private path
|
|
15
|
+
private path;
|
|
16
16
|
syncGetters: true;
|
|
17
|
-
constructor(rootDb: RootDatabase, isEphemeral: boolean, path
|
|
17
|
+
constructor(rootDb: RootDatabase, isEphemeral: boolean, path: string);
|
|
18
18
|
/**
|
|
19
19
|
* Creates a new AztecKVStore backed by LMDB. The path to the database is optional. If not provided,
|
|
20
20
|
* the database will be stored in a temporary location and be deleted when the process exists.
|
|
@@ -54,6 +54,18 @@ export declare class AztecLmdbStore implements AztecKVStore, AztecAsyncKVStore {
|
|
|
54
54
|
*/
|
|
55
55
|
openMultiMap<K extends Key, V>(name: string): AztecMultiMap<K, V> & AztecAsyncMultiMap<K, V>;
|
|
56
56
|
openCounter<K extends Key>(name: string): AztecCounter<K> & AztecAsyncCounter<K>;
|
|
57
|
+
/**
|
|
58
|
+
* Creates a new AztecMultiMapWithSize in the store. A multi-map with size stores multiple values for a single key automatically.
|
|
59
|
+
* @param name - Name of the map
|
|
60
|
+
* @returns A new AztecMultiMapWithSize
|
|
61
|
+
*/
|
|
62
|
+
openMultiMapWithSize<K extends Key, V>(name: string): AztecMultiMapWithSize<K, V>;
|
|
63
|
+
/**
|
|
64
|
+
* Creates a new AztecMapWithSize in the store.
|
|
65
|
+
* @param name - Name of the map
|
|
66
|
+
* @returns A new AztecMapWithSize
|
|
67
|
+
*/
|
|
68
|
+
openMapWithSize<K extends Key, V>(name: string): AztecMapWithSize<K, V>;
|
|
57
69
|
/**
|
|
58
70
|
* Creates a new AztecArray in the store.
|
|
59
71
|
* @param name - Name of the array
|
package/dest/lmdb/store.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/lmdb/store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/lmdb/store.ts"],"names":[],"mappings":"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"}
|
package/dest/lmdb/store.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
var _AztecLmdbStore_rootDb, _AztecLmdbStore_data, _AztecLmdbStore_multiMapData, _AztecLmdbStore_log;
|
|
2
2
|
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
3
|
+
import { randomBytes } from '@aztec/foundation/crypto';
|
|
3
4
|
import { createLogger } from '@aztec/foundation/log';
|
|
4
5
|
import { promises as fs, mkdirSync } from 'fs';
|
|
5
6
|
import { open } from 'lmdb';
|
|
6
7
|
import { tmpdir } from 'os';
|
|
7
|
-
import {
|
|
8
|
+
import { join } from 'path';
|
|
8
9
|
import { LmdbAztecArray } from './array.js';
|
|
9
10
|
import { LmdbAztecCounter } from './counter.js';
|
|
10
|
-
import { LmdbAztecMap } from './map.js';
|
|
11
|
+
import { LmdbAztecMap, LmdbAztecMapWithSize } from './map.js';
|
|
11
12
|
import { LmdbAztecSet } from './set.js';
|
|
12
13
|
import { LmdbAztecSingleton } from './singleton.js';
|
|
13
14
|
/**
|
|
@@ -49,22 +50,21 @@ export class AztecLmdbStore {
|
|
|
49
50
|
*/
|
|
50
51
|
static open(path, mapSizeKb = 1 * 1024 * 1024, // defaults to 1 GB map size
|
|
51
52
|
ephemeral = false, log = createLogger('kv-store:lmdb')) {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
}
|
|
53
|
+
const dbPath = path ?? join(tmpdir(), randomBytes(8).toString('hex'));
|
|
54
|
+
mkdirSync(dbPath, { recursive: true });
|
|
55
55
|
const mapSize = 1024 * mapSizeKb;
|
|
56
56
|
log.debug(`Opening LMDB database at ${path || 'temporary location'} with map size ${mapSize}`);
|
|
57
|
-
const rootDb = open({ path, noSync: ephemeral, mapSize });
|
|
58
|
-
return new AztecLmdbStore(rootDb, ephemeral,
|
|
57
|
+
const rootDb = open({ path: dbPath, noSync: ephemeral, mapSize });
|
|
58
|
+
return new AztecLmdbStore(rootDb, ephemeral, dbPath);
|
|
59
59
|
}
|
|
60
60
|
/**
|
|
61
61
|
* Forks the current DB into a new DB by backing it up to a temporary location and opening a new lmdb db.
|
|
62
62
|
* @returns A new AztecLmdbStore.
|
|
63
63
|
*/
|
|
64
64
|
async fork() {
|
|
65
|
-
const baseDir = this.path
|
|
65
|
+
const baseDir = this.path;
|
|
66
66
|
__classPrivateFieldGet(this, _AztecLmdbStore_log, "f").debug(`Forking store with basedir ${baseDir}`);
|
|
67
|
-
const forkPath =
|
|
67
|
+
const forkPath = await fs.mkdtemp(join(baseDir, 'aztec-store-fork-'));
|
|
68
68
|
__classPrivateFieldGet(this, _AztecLmdbStore_log, "f").verbose(`Forking store to ${forkPath}`);
|
|
69
69
|
await __classPrivateFieldGet(this, _AztecLmdbStore_rootDb, "f").backup(forkPath, false);
|
|
70
70
|
const forkDb = open(forkPath, { noSync: this.isEphemeral });
|
|
@@ -98,6 +98,22 @@ export class AztecLmdbStore {
|
|
|
98
98
|
openCounter(name) {
|
|
99
99
|
return new LmdbAztecCounter(__classPrivateFieldGet(this, _AztecLmdbStore_data, "f"), name);
|
|
100
100
|
}
|
|
101
|
+
/**
|
|
102
|
+
* Creates a new AztecMultiMapWithSize in the store. A multi-map with size stores multiple values for a single key automatically.
|
|
103
|
+
* @param name - Name of the map
|
|
104
|
+
* @returns A new AztecMultiMapWithSize
|
|
105
|
+
*/
|
|
106
|
+
openMultiMapWithSize(name) {
|
|
107
|
+
return new LmdbAztecMapWithSize(__classPrivateFieldGet(this, _AztecLmdbStore_multiMapData, "f"), name);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Creates a new AztecMapWithSize in the store.
|
|
111
|
+
* @param name - Name of the map
|
|
112
|
+
* @returns A new AztecMapWithSize
|
|
113
|
+
*/
|
|
114
|
+
openMapWithSize(name) {
|
|
115
|
+
return new LmdbAztecMapWithSize(__classPrivateFieldGet(this, _AztecLmdbStore_data, "f"), name);
|
|
116
|
+
}
|
|
101
117
|
/**
|
|
102
118
|
* Creates a new AztecArray in the store.
|
|
103
119
|
* @param name - Name of the array
|
|
@@ -206,4 +222,4 @@ export class AztecLmdbStore {
|
|
|
206
222
|
}
|
|
207
223
|
}
|
|
208
224
|
_AztecLmdbStore_rootDb = new WeakMap(), _AztecLmdbStore_data = new WeakMap(), _AztecLmdbStore_multiMapData = new WeakMap(), _AztecLmdbStore_log = new WeakMap();
|
|
209
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
225
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbG1kYi9zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFckQsT0FBTyxFQUFFLFFBQVEsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQy9DLE9BQU8sRUFBb0MsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDNUIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQWdCNUIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM1QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGNBQWM7SUFRekIsWUFBWSxNQUFvQixFQUFrQixXQUFvQixFQUFVLElBQVk7UUFBMUMsZ0JBQVcsR0FBWCxXQUFXLENBQVM7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFRO1FBUDVGLGdCQUFXLEdBQUcsSUFBYSxDQUFDO1FBRTVCLHlDQUFzQjtRQUN0Qix1Q0FBOEI7UUFDOUIsK0NBQXNDO1FBQ3RDLDhCQUFPLFlBQVksQ0FBQyxlQUFlLENBQUMsRUFBQztRQUduQyx1QkFBQSxJQUFJLDBCQUFXLE1BQU0sTUFBQSxDQUFDO1FBRXRCLG1DQUFtQztRQUNuQyx1QkFBQSxJQUFJLHdC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
|
|
@@ -28,10 +28,10 @@ export class L2TipsStore {
|
|
|
28
28
|
async handleBlockStreamEvent(event) {
|
|
29
29
|
switch (event.type) {
|
|
30
30
|
case 'blocks-added':
|
|
31
|
-
await this.l2TipsStore.set('latest', event.blocks.at(-1).number);
|
|
32
31
|
for (const block of event.blocks) {
|
|
33
32
|
await this.l2BlockHashesStore.set(block.number, block.header.hash().toString());
|
|
34
33
|
}
|
|
34
|
+
await this.l2TipsStore.set('latest', event.blocks.at(-1).number);
|
|
35
35
|
break;
|
|
36
36
|
case 'chain-pruned':
|
|
37
37
|
await this.l2TipsStore.set('latest', event.blockNumber);
|
|
@@ -48,4 +48,4 @@ export class L2TipsStore {
|
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDJfdGlwc19zdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdG9yZXMvbDJfdGlwc19zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFZQSxvRUFBb0U7QUFDcEUsTUFBTSxPQUFPLFdBQVc7SUFJdEIsWUFBWSxLQUF3QixFQUFFLFNBQWlCO1FBQ3JELElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFTSxjQUFjLENBQUMsTUFBYztRQUNsQyxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVNLEtBQUssQ0FBQyxTQUFTO1FBQ3BCLE9BQU87WUFDTCxNQUFNLEVBQUUsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztZQUNyQyxTQUFTLEVBQUUsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztZQUMzQyxNQUFNLEVBQUUsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztTQUN0QyxDQUFDO0lBQ0osQ0FBQztJQUVPLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBZTtRQUNwQyxNQUFNLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pELElBQUksV0FBVyxLQUFLLFNBQVMsSUFBSSxXQUFXLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQ3hDLENBQUM7UUFDRCxNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2YsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUMxRSxDQUFDO1FBQ0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDO0lBQ2xELENBQUM7SUFFTSxLQUFLLENBQUMsc0JBQXNCLENBQUMsS0FBeUI7UUFDM0QsUUFBUSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbkIsS0FBSyxjQUFjO2dCQUNqQixLQUFLLE1BQU0sS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDakMsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO2dCQUNsRixDQUFDO2dCQUNELE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ2xFLE1BQU07WUFDUixLQUFLLGNBQWM7Z0JBQ2pCLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDeEQsTUFBTTtZQUNSLEtBQUssY0FBYztnQkFDakIsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUN4RCxNQUFNO1lBQ1IsS0FBSyxpQkFBaUI7Z0JBQ3BCLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDM0QsSUFBSSxLQUFLLEVBQUUsTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsRUFBRSxDQUFDO29CQUN0RixNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzVDLENBQUM7Z0JBQ0QsTUFBTTtRQUNWLENBQUM7SUFDSCxDQUFDO0NBQ0YifQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/kv-store",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.68.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/interfaces/index.js",
|
|
@@ -24,9 +24,9 @@
|
|
|
24
24
|
"./package.local.json"
|
|
25
25
|
],
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@aztec/circuit-types": "0.
|
|
28
|
-
"@aztec/ethereum": "0.
|
|
29
|
-
"@aztec/foundation": "0.
|
|
27
|
+
"@aztec/circuit-types": "0.68.1",
|
|
28
|
+
"@aztec/ethereum": "0.68.1",
|
|
29
|
+
"@aztec/foundation": "0.68.1",
|
|
30
30
|
"idb": "^8.0.0",
|
|
31
31
|
"lmdb": "^3.0.6"
|
|
32
32
|
},
|
|
@@ -83,9 +83,9 @@
|
|
|
83
83
|
},
|
|
84
84
|
"reporters": [
|
|
85
85
|
[
|
|
86
|
-
"
|
|
86
|
+
"jest-silent-reporter",
|
|
87
87
|
{
|
|
88
|
-
"
|
|
88
|
+
"useDots": true
|
|
89
89
|
}
|
|
90
90
|
]
|
|
91
91
|
],
|
package/src/indexeddb/store.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Logger } from '@aztec/foundation/log';
|
|
2
2
|
|
|
3
|
-
import { type DBSchema, type IDBPDatabase, openDB } from 'idb';
|
|
3
|
+
import { type DBSchema, type IDBPDatabase, deleteDB, openDB } from 'idb';
|
|
4
4
|
|
|
5
5
|
import { type AztecAsyncArray } from '../interfaces/array.js';
|
|
6
6
|
import { type Key } from '../interfaces/common.js';
|
|
@@ -183,7 +183,8 @@ export class AztecIndexedDBStore implements AztecAsyncKVStore {
|
|
|
183
183
|
/** Deletes this store and removes the database */
|
|
184
184
|
delete() {
|
|
185
185
|
this.#containers.clear();
|
|
186
|
-
|
|
186
|
+
this.#rootDB.close();
|
|
187
|
+
return deleteDB(this.#name);
|
|
187
188
|
}
|
|
188
189
|
|
|
189
190
|
estimateSize(): { mappingSize: number; actualSize: number; numItems: number } {
|
|
@@ -20,6 +20,10 @@ export function describeAztecArray(
|
|
|
20
20
|
arr = store.openArray<number>('test');
|
|
21
21
|
});
|
|
22
22
|
|
|
23
|
+
afterEach(async () => {
|
|
24
|
+
await store.delete();
|
|
25
|
+
});
|
|
26
|
+
|
|
23
27
|
async function length(sut: AztecAsyncArray<number> | AztecArray<number> = arr) {
|
|
24
28
|
return isSyncStore(store) && !forceAsync
|
|
25
29
|
? (sut as AztecArray<number>).length
|
package/src/interfaces/map.ts
CHANGED
|
@@ -62,6 +62,19 @@ export interface AztecMap<K extends Key, V> extends AztecBaseMap<K, V> {
|
|
|
62
62
|
* @param range - The range of keys to iterate over
|
|
63
63
|
*/
|
|
64
64
|
keys(range?: Range<K>): IterableIterator<K>;
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Clears the map.
|
|
68
|
+
*/
|
|
69
|
+
clear(): Promise<void>;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export interface AztecMapWithSize<K extends Key, V> extends AztecMap<K, V> {
|
|
73
|
+
/**
|
|
74
|
+
* Gets the size of the map.
|
|
75
|
+
* @returns The size of the map
|
|
76
|
+
*/
|
|
77
|
+
size(): number;
|
|
65
78
|
}
|
|
66
79
|
|
|
67
80
|
/**
|
|
@@ -82,6 +95,14 @@ export interface AztecMultiMap<K extends Key, V> extends AztecMap<K, V> {
|
|
|
82
95
|
deleteValue(key: K, val: V): Promise<void>;
|
|
83
96
|
}
|
|
84
97
|
|
|
98
|
+
export interface AztecMultiMapWithSize<K extends Key, V> extends AztecMultiMap<K, V> {
|
|
99
|
+
/**
|
|
100
|
+
* Gets the size of the map.
|
|
101
|
+
* @returns The size of the map
|
|
102
|
+
*/
|
|
103
|
+
size(): number;
|
|
104
|
+
}
|
|
105
|
+
|
|
85
106
|
/**
|
|
86
107
|
* A map backed by a persistent store.
|
|
87
108
|
*/
|
|
@@ -21,6 +21,10 @@ export function describeAztecMap(
|
|
|
21
21
|
map = store.openMultiMap<string | [number, string], string>('test');
|
|
22
22
|
});
|
|
23
23
|
|
|
24
|
+
afterEach(async () => {
|
|
25
|
+
await store.delete();
|
|
26
|
+
});
|
|
27
|
+
|
|
24
28
|
async function get(key: Key, sut: AztecAsyncMap<any, any> | AztecMap<any, any> = map) {
|
|
25
29
|
return isSyncStore(store) && !forceAsync
|
|
26
30
|
? (sut as AztecMultiMap<any, any>).get(key)
|
|
@@ -21,6 +21,10 @@ export function describeAztecSet(
|
|
|
21
21
|
set = store.openSet<string>('test');
|
|
22
22
|
});
|
|
23
23
|
|
|
24
|
+
afterEach(async () => {
|
|
25
|
+
await store.delete();
|
|
26
|
+
});
|
|
27
|
+
|
|
24
28
|
async function has(key: string) {
|
|
25
29
|
return isSyncStore(store) && !forceAsync
|
|
26
30
|
? (set as AztecSet<string>).has(key)
|
|
@@ -18,6 +18,10 @@ export function describeAztecSingleton(
|
|
|
18
18
|
singleton = store.openSingleton<string>('test');
|
|
19
19
|
});
|
|
20
20
|
|
|
21
|
+
afterEach(async () => {
|
|
22
|
+
await store.delete();
|
|
23
|
+
});
|
|
24
|
+
|
|
21
25
|
async function get() {
|
|
22
26
|
return isSyncStore(store) && !forceAsync
|
|
23
27
|
? (singleton as AztecSingleton<string>).get()
|
package/src/interfaces/store.ts
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
import { type AztecArray, type AztecAsyncArray } from './array.js';
|
|
2
2
|
import { type Key } from './common.js';
|
|
3
3
|
import { type AztecAsyncCounter, type AztecCounter } from './counter.js';
|
|
4
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
type AztecAsyncMap,
|
|
6
|
+
type AztecAsyncMultiMap,
|
|
7
|
+
type AztecMap,
|
|
8
|
+
type AztecMapWithSize,
|
|
9
|
+
type AztecMultiMap,
|
|
10
|
+
type AztecMultiMapWithSize,
|
|
11
|
+
} from './map.js';
|
|
5
12
|
import { type AztecAsyncSet, type AztecSet } from './set.js';
|
|
6
13
|
import { type AztecAsyncSingleton, type AztecSingleton } from './singleton.js';
|
|
7
14
|
|
|
@@ -29,6 +36,20 @@ export interface AztecKVStore {
|
|
|
29
36
|
*/
|
|
30
37
|
openMultiMap<K extends Key, V>(name: string): AztecMultiMap<K, V>;
|
|
31
38
|
|
|
39
|
+
/**
|
|
40
|
+
* Creates a new multi-map with size.
|
|
41
|
+
* @param name - The name of the multi-map
|
|
42
|
+
* @returns The multi-map
|
|
43
|
+
*/
|
|
44
|
+
openMultiMapWithSize<K extends Key, V>(name: string): AztecMultiMapWithSize<K, V>;
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Creates a new map with size.
|
|
48
|
+
* @param name - The name of the map
|
|
49
|
+
* @returns The map
|
|
50
|
+
*/
|
|
51
|
+
openMapWithSize<K extends Key, V>(name: string): AztecMapWithSize<K, V>;
|
|
52
|
+
|
|
32
53
|
/**
|
|
33
54
|
* Creates a new array.
|
|
34
55
|
* @param name - The name of the array
|
|
@@ -32,21 +32,25 @@ export function describeAztecStore(
|
|
|
32
32
|
expect(await get(forkedStore, forkedSingleton)).to.equal('bar');
|
|
33
33
|
await forkedSingleton.delete();
|
|
34
34
|
expect(await get(store, singleton)).to.equal('foo');
|
|
35
|
+
await forkedStore.delete();
|
|
35
36
|
};
|
|
36
37
|
|
|
37
38
|
it('forks a persistent store', async () => {
|
|
38
39
|
const store = await getPersistentStore();
|
|
39
40
|
await itForks(store);
|
|
41
|
+
await store.delete();
|
|
40
42
|
});
|
|
41
43
|
|
|
42
44
|
it('forks a persistent store with no path', async () => {
|
|
43
45
|
const store = await getPersistentNoPathStore();
|
|
44
46
|
await itForks(store);
|
|
47
|
+
await store.delete();
|
|
45
48
|
});
|
|
46
49
|
|
|
47
50
|
it('forks an ephemeral store', async () => {
|
|
48
51
|
const store = await getEphemeralStore();
|
|
49
52
|
await itForks(store);
|
|
53
|
+
await store.delete();
|
|
50
54
|
});
|
|
51
55
|
});
|
|
52
56
|
}
|