@aztec/kv-store 3.0.3-rc.3 → 4.0.0-devnet.1-patch.0
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/array.js +21 -7
- package/dest/indexeddb/index.d.ts +2 -2
- package/dest/indexeddb/index.d.ts.map +1 -1
- package/dest/indexeddb/index.js +3 -6
- package/dest/indexeddb/map.d.ts +2 -2
- package/dest/indexeddb/map.d.ts.map +1 -1
- package/dest/indexeddb/map.js +11 -11
- package/dest/indexeddb/multi_map.d.ts +2 -1
- package/dest/indexeddb/multi_map.d.ts.map +1 -1
- package/dest/indexeddb/multi_map.js +15 -0
- package/dest/indexeddb/singleton.js +3 -1
- package/dest/indexeddb/store.d.ts +3 -3
- package/dest/indexeddb/store.d.ts.map +1 -1
- package/dest/indexeddb/store.js +6 -4
- package/dest/interfaces/map_test_suite.d.ts +1 -1
- package/dest/interfaces/map_test_suite.d.ts.map +1 -1
- package/dest/interfaces/map_test_suite.js +48 -2
- package/dest/interfaces/multi_map_test_suite.d.ts +1 -1
- package/dest/interfaces/multi_map_test_suite.d.ts.map +1 -1
- package/dest/interfaces/multi_map_test_suite.js +25 -0
- package/dest/interfaces/utils.d.ts +2 -1
- package/dest/interfaces/utils.d.ts.map +1 -1
- package/dest/interfaces/utils.js +2 -1
- package/dest/lmdb/array.js +4 -2
- package/dest/lmdb/index.d.ts +2 -2
- package/dest/lmdb/index.d.ts.map +1 -1
- package/dest/lmdb/index.js +3 -3
- package/dest/lmdb-v2/array.d.ts +2 -2
- package/dest/lmdb-v2/array.d.ts.map +1 -1
- package/dest/lmdb-v2/array.js +4 -3
- package/dest/lmdb-v2/factory.d.ts +6 -6
- package/dest/lmdb-v2/factory.d.ts.map +1 -1
- package/dest/lmdb-v2/factory.js +14 -10
- package/dest/lmdb-v2/map.d.ts +2 -2
- package/dest/lmdb-v2/map.d.ts.map +1 -1
- package/dest/lmdb-v2/map.js +1 -2
- package/dest/lmdb-v2/multi_map.d.ts +2 -2
- package/dest/lmdb-v2/multi_map.d.ts.map +1 -1
- package/dest/lmdb-v2/multi_map.js +1 -2
- package/dest/lmdb-v2/singleton.d.ts +2 -2
- package/dest/lmdb-v2/singleton.d.ts.map +1 -1
- package/dest/lmdb-v2/singleton.js +1 -2
- package/dest/lmdb-v2/store.d.ts +4 -5
- package/dest/lmdb-v2/store.d.ts.map +1 -1
- package/dest/lmdb-v2/store.js +3 -25
- package/dest/lmdb-v2/tx-helpers.d.ts +6 -0
- package/dest/lmdb-v2/tx-helpers.d.ts.map +1 -0
- package/dest/lmdb-v2/tx-helpers.js +21 -0
- package/dest/lmdb-v2/utils.d.ts +1 -10
- package/dest/lmdb-v2/utils.d.ts.map +1 -1
- package/dest/lmdb-v2/utils.js +0 -94
- package/dest/lmdb-v2/write_transaction.d.ts +1 -1
- package/dest/lmdb-v2/write_transaction.d.ts.map +1 -1
- package/dest/lmdb-v2/write_transaction.js +9 -5
- package/dest/stores/l2_tips_store.d.ts +24 -10
- package/dest/stores/l2_tips_store.d.ts.map +1 -1
- package/dest/stores/l2_tips_store.js +61 -54
- package/dest/utils.d.ts +9 -6
- package/dest/utils.d.ts.map +1 -1
- package/dest/utils.js +51 -16
- package/package.json +15 -13
- package/src/indexeddb/array.ts +4 -4
- package/src/indexeddb/index.ts +8 -6
- package/src/indexeddb/map.ts +10 -9
- package/src/indexeddb/multi_map.ts +14 -0
- package/src/indexeddb/singleton.ts +1 -1
- package/src/indexeddb/store.ts +13 -6
- package/src/interfaces/map_test_suite.ts +30 -2
- package/src/interfaces/multi_map_test_suite.ts +32 -0
- package/src/interfaces/utils.ts +1 -0
- package/src/lmdb/index.ts +8 -3
- package/src/lmdb-v2/array.ts +2 -2
- package/src/lmdb-v2/factory.ts +15 -11
- package/src/lmdb-v2/map.ts +2 -2
- package/src/lmdb-v2/multi_map.ts +2 -2
- package/src/lmdb-v2/singleton.ts +2 -2
- package/src/lmdb-v2/store.ts +5 -31
- package/src/lmdb-v2/tx-helpers.ts +29 -0
- package/src/lmdb-v2/utils.ts +0 -118
- package/src/lmdb-v2/write_transaction.ts +9 -8
- package/src/stores/l2_tips_store.ts +63 -56
- package/src/utils.ts +79 -21
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AAO1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAI9C,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,eAAe,EACvB,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,gBAAgB,CAAC,CA8B3B;AAED,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,SAAS,GAAE,OAAc,EACzB,WAAW,SAAqB,EAChC,UAAU,SAAc,EACxB,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,gBAAgB,CAAC,CAsB3B;AAED,wBAAsB,WAAW,CAC/B,OAAO,EAAE,MAAM,EACf,WAAW,SAAqB,EAChC,UAAU,SAAc,EACxB,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,gBAAgB,CAAC,CAI3B;AAED,wBAAsB,oBAAoB,CACxC,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,UAAU,EACzB,WAAW,SAAqB,EAChC,UAAU,SAAc,EACxB,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,gBAAgB,CAAC,CAU3B"}
|
package/dest/lmdb-v2/factory.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
2
2
|
import { createLogger } from '@aztec/foundation/log';
|
|
3
|
-
import { DatabaseVersionManager } from '@aztec/stdlib/database-version';
|
|
3
|
+
import { DatabaseVersionManager } from '@aztec/stdlib/database-version/manager';
|
|
4
4
|
import { mkdir, mkdtemp, rm } from 'fs/promises';
|
|
5
5
|
import { tmpdir } from 'os';
|
|
6
6
|
import { join } from 'path';
|
|
7
7
|
import { AztecLMDBStoreV2 } from './store.js';
|
|
8
8
|
const MAX_READERS = 16;
|
|
9
|
-
export async function createStore(name, schemaVersion, config,
|
|
9
|
+
export async function createStore(name, schemaVersion, config, bindings) {
|
|
10
|
+
const log = createLogger('kv-store:lmdb-v2:' + name, bindings);
|
|
10
11
|
const { dataDirectory, l1Contracts } = config;
|
|
11
12
|
let store;
|
|
12
13
|
if (typeof dataDirectory !== 'undefined') {
|
|
@@ -21,16 +22,17 @@ export async function createStore(name, schemaVersion, config, log = createLogge
|
|
|
21
22
|
schemaVersion,
|
|
22
23
|
rollupAddress,
|
|
23
24
|
dataDirectory: subDir,
|
|
24
|
-
onOpen: (dbDirectory)=>AztecLMDBStoreV2.new(dbDirectory, config.dataStoreMapSizeKb, MAX_READERS, ()=>Promise.resolve(),
|
|
25
|
+
onOpen: (dbDirectory)=>AztecLMDBStoreV2.new(dbDirectory, config.dataStoreMapSizeKb, MAX_READERS, ()=>Promise.resolve(), bindings)
|
|
25
26
|
});
|
|
26
27
|
log.info(`Creating ${name} data store at directory ${subDir} with map size ${config.dataStoreMapSizeKb} KB (LMDB v2)`);
|
|
27
28
|
[store] = await versionManager.open();
|
|
28
29
|
} else {
|
|
29
|
-
store = await openTmpStore(name, true, config.dataStoreMapSizeKb, MAX_READERS,
|
|
30
|
+
store = await openTmpStore(name, true, config.dataStoreMapSizeKb, MAX_READERS, bindings);
|
|
30
31
|
}
|
|
31
32
|
return store;
|
|
32
33
|
}
|
|
33
|
-
export async function openTmpStore(name, ephemeral = true, dbMapSizeKb = 10 * 1_024 * 1_024, maxReaders = MAX_READERS,
|
|
34
|
+
export async function openTmpStore(name, ephemeral = true, dbMapSizeKb = 10 * 1_024 * 1_024, maxReaders = MAX_READERS, bindings) {
|
|
35
|
+
const log = createLogger('kv-store:lmdb-v2:' + name, bindings);
|
|
34
36
|
const dataDir = await mkdtemp(join(tmpdir(), name + '-'));
|
|
35
37
|
log.debug(`Created temporary data store at: ${dataDir} with size: ${dbMapSizeKb} KB (LMDB v2)`);
|
|
36
38
|
// pass a cleanup callback because process.on('beforeExit', cleanup) does not work under Jest
|
|
@@ -52,19 +54,21 @@ export async function openTmpStore(name, ephemeral = true, dbMapSizeKb = 10 * 1_
|
|
|
52
54
|
};
|
|
53
55
|
// For temporary stores, we don't need to worry about versioning
|
|
54
56
|
// as they are ephemeral and get cleaned up after use
|
|
55
|
-
return AztecLMDBStoreV2.new(dataDir, dbMapSizeKb, maxReaders, cleanup,
|
|
57
|
+
return AztecLMDBStoreV2.new(dataDir, dbMapSizeKb, maxReaders, cleanup, bindings);
|
|
56
58
|
}
|
|
57
|
-
export async function openStoreAt(dataDir, dbMapSizeKb = 10 * 1_024 * 1_024, maxReaders = MAX_READERS,
|
|
59
|
+
export async function openStoreAt(dataDir, dbMapSizeKb = 10 * 1_024 * 1_024, maxReaders = MAX_READERS, bindings) {
|
|
60
|
+
const log = createLogger('kv-store:lmdb-v2', bindings);
|
|
58
61
|
log.debug(`Opening data store at: ${dataDir} with size: ${dbMapSizeKb} KB (LMDB v2)`);
|
|
59
|
-
return await AztecLMDBStoreV2.new(dataDir, dbMapSizeKb, maxReaders, undefined,
|
|
62
|
+
return await AztecLMDBStoreV2.new(dataDir, dbMapSizeKb, maxReaders, undefined, bindings);
|
|
60
63
|
}
|
|
61
|
-
export async function openVersionedStoreAt(dataDirectory, schemaVersion, rollupAddress, dbMapSizeKb = 10 * 1_024 * 1_024, maxReaders = MAX_READERS,
|
|
64
|
+
export async function openVersionedStoreAt(dataDirectory, schemaVersion, rollupAddress, dbMapSizeKb = 10 * 1_024 * 1_024, maxReaders = MAX_READERS, bindings) {
|
|
65
|
+
const log = createLogger('kv-store:lmdb-v2', bindings);
|
|
62
66
|
log.debug(`Opening data store at: ${dataDirectory} with size: ${dbMapSizeKb} KB (LMDB v2)`);
|
|
63
67
|
const [store] = await new DatabaseVersionManager({
|
|
64
68
|
schemaVersion,
|
|
65
69
|
rollupAddress,
|
|
66
70
|
dataDirectory,
|
|
67
|
-
onOpen: (dataDir)=>AztecLMDBStoreV2.new(dataDir, dbMapSizeKb, maxReaders, undefined,
|
|
71
|
+
onOpen: (dataDir)=>AztecLMDBStoreV2.new(dataDir, dbMapSizeKb, maxReaders, undefined, bindings)
|
|
68
72
|
}).open();
|
|
69
73
|
return store;
|
|
70
74
|
}
|
package/dest/lmdb-v2/map.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Key, Range, Value } from '../interfaces/common.js';
|
|
2
2
|
import type { AztecAsyncMap } from '../interfaces/map.js';
|
|
3
|
-
import {
|
|
3
|
+
import type { AztecLMDBStoreV2 } from './store.js';
|
|
4
4
|
export declare class LMDBMap<K extends Key, V extends Value> implements AztecAsyncMap<K, V> {
|
|
5
5
|
private store;
|
|
6
6
|
private prefix;
|
|
@@ -50,4 +50,4 @@ export declare class LMDBMap<K extends Key, V extends Value> implements AztecAsy
|
|
|
50
50
|
*/
|
|
51
51
|
keysAsync(range?: Range<K>): AsyncIterableIterator<K>;
|
|
52
52
|
}
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbG1kYi12Mi9tYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRSxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUxRCxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUluRCxxQkFBYSxPQUFPLENBQUMsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLFNBQVMsS0FBSyxDQUFFLFlBQVcsYUFBYSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFLL0UsT0FBTyxDQUFDLEtBQUs7SUFKZixPQUFPLENBQUMsTUFBTSxDQUFTO0lBQ3ZCLE9BQU8sQ0FBQyxPQUFPLENBQWlCO0lBRWhDLFlBQ1UsS0FBSyxFQUFFLGdCQUFnQixFQUMvQixJQUFJLEVBQUUsTUFBTSxFQUdiO0lBQ0Q7Ozs7T0FJRztJQUNILEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUVqQztJQUVEOzs7T0FHRztJQUNHLE9BQU8sQ0FBQyxPQUFPLEVBQUU7UUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQTtLQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBTTVEO0lBRUQ7Ozs7T0FJRztJQUNILGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQVUvQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFNUI7SUFFRCxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUt2QztJQUVELFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FFakM7SUFFRCxTQUFTLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUUzQjtJQUVEOzs7T0FHRztJQUNJLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcscUJBQXFCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0E4Qm5FO0lBRUQ7OztPQUdHO0lBQ0ksV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FJN0Q7SUFFRDs7O09BR0c7SUFDSSxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUkzRDtDQUNGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/map.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/map.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAInD,qBAAa,OAAO,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,KAAK,CAAE,YAAW,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;IAK/E,OAAO,CAAC,KAAK;IAJf,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAiB;IAEhC,YACU,KAAK,EAAE,gBAAgB,EAC/B,IAAI,EAAE,MAAM,EAGb;IACD;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjC;IAED;;;OAGG;IACG,OAAO,CAAC,OAAO,EAAE;QAAE,GAAG,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,CAAC,CAAA;KAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAM5D;IAED;;;;OAIG;IACH,cAAc,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAU/C;IAED;;;OAGG;IACH,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5B;IAED,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAKvC;IAED,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAEjC;IAED,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAE3B;IAED;;;OAGG;IACI,YAAY,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CA8BnE;IAED;;;OAGG;IACI,WAAW,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAI7D;IAED;;;OAGG;IACI,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAI3D;CACF"}
|
package/dest/lmdb-v2/map.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Encoder } from 'msgpackr';
|
|
2
|
-
|
|
3
|
-
import { execInReadTx, execInWriteTx } from './store.js';
|
|
2
|
+
import { execInReadTx, execInWriteTx } from './tx-helpers.js';
|
|
4
3
|
import { deserializeKey, maxKey, minKey, serializeKey } from './utils.js';
|
|
5
4
|
export class LMDBMap {
|
|
6
5
|
store;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Key, Range, Value } from '../interfaces/common.js';
|
|
2
2
|
import type { AztecAsyncMultiMap } from '../interfaces/multi_map.js';
|
|
3
|
-
import {
|
|
3
|
+
import type { AztecLMDBStoreV2 } from './store.js';
|
|
4
4
|
export declare class LMDBMultiMap<K extends Key, V extends Value> implements AztecAsyncMultiMap<K, V> {
|
|
5
5
|
private store;
|
|
6
6
|
private prefix;
|
|
@@ -49,4 +49,4 @@ export declare class LMDBMultiMap<K extends Key, V extends Value> implements Azt
|
|
|
49
49
|
getValuesAsync(key: K): AsyncIterableIterator<V>;
|
|
50
50
|
getValueCountAsync(key: K): Promise<number>;
|
|
51
51
|
}
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlfbWFwLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbG1kYi12Mi9tdWx0aV9tYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRSxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXJFLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBSW5ELHFCQUFhLFlBQVksQ0FBQyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUMsU0FBUyxLQUFLLENBQUUsWUFBVyxrQkFBa0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBSXpGLE9BQU8sQ0FBQyxLQUFLO0lBSGYsT0FBTyxDQUFDLE1BQU0sQ0FBUztJQUN2QixPQUFPLENBQUMsT0FBTyxDQUFpQjtJQUNoQyxZQUNVLEtBQUssRUFBRSxnQkFBZ0IsRUFDL0IsSUFBSSxFQUFFLE1BQU0sRUFHYjtJQUVEOzs7O09BSUc7SUFDSCxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFakM7SUFFSyxPQUFPLENBQUMsT0FBTyxFQUFFO1FBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUFDLEtBQUssRUFBRSxDQUFDLENBQUE7S0FBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQU01RDtJQUVEOzs7O09BSUc7SUFDSCxjQUFjLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FTL0M7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBRTVCO0lBRUQsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FLdkM7SUFFRCxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBRWpDO0lBRUQsU0FBUyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FFM0I7SUFFRDs7O09BR0c7SUFDSSxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBOEJuRTtJQUVEOzs7T0FHRztJQUNJLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBSTdEO0lBRUQ7OztPQUdHO0lBQ0ksU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FJM0Q7SUFFRCxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLFNBQVMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBRXJEO0lBRU0sY0FBYyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBS3REO0lBRUQsa0JBQWtCLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBSzFDO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi_map.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/multi_map.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"multi_map.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/multi_map.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAInD,qBAAa,YAAY,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,KAAK,CAAE,YAAW,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC;IAIzF,OAAO,CAAC,KAAK;IAHf,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAiB;IAChC,YACU,KAAK,EAAE,gBAAgB,EAC/B,IAAI,EAAE,MAAM,EAGb;IAED;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjC;IAEK,OAAO,CAAC,OAAO,EAAE;QAAE,GAAG,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,CAAC,CAAA;KAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAM5D;IAED;;;;OAIG;IACH,cAAc,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAS/C;IAED;;;OAGG;IACH,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5B;IAED,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAKvC;IAED,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAEjC;IAED,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAE3B;IAED;;;OAGG;IACI,YAAY,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CA8BnE;IAED;;;OAGG;IACI,WAAW,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAI7D;IAED;;;OAGG;IACI,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAI3D;IAED,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAErD;IAEM,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAKtD;IAED,kBAAkB,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAK1C;CACF"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Encoder } from 'msgpackr/pack';
|
|
2
2
|
import { MAXIMUM_KEY, toBufferKey } from 'ordered-binary';
|
|
3
|
-
|
|
4
|
-
import { execInReadTx, execInWriteTx } from './store.js';
|
|
3
|
+
import { execInReadTx, execInWriteTx } from './tx-helpers.js';
|
|
5
4
|
import { deserializeKey, maxKey, minKey, serializeKey } from './utils.js';
|
|
6
5
|
export class LMDBMultiMap {
|
|
7
6
|
store;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AztecAsyncSingleton } from '../interfaces/singleton.js';
|
|
2
|
-
import {
|
|
2
|
+
import type { AztecLMDBStoreV2 } from './store.js';
|
|
3
3
|
export declare class LMDBSingleValue<T> implements AztecAsyncSingleton<T> {
|
|
4
4
|
private store;
|
|
5
5
|
private key;
|
|
@@ -9,4 +9,4 @@ export declare class LMDBSingleValue<T> implements AztecAsyncSingleton<T> {
|
|
|
9
9
|
set(val: T): Promise<boolean>;
|
|
10
10
|
delete(): Promise<boolean>;
|
|
11
11
|
}
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xldG9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbG1kYi12Mi9zaW5nbGV0b24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RSxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUluRCxxQkFBYSxlQUFlLENBQUMsQ0FBQyxDQUFFLFlBQVcsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO0lBSTdELE9BQU8sQ0FBQyxLQUFLO0lBSGYsT0FBTyxDQUFDLEdBQUcsQ0FBYTtJQUN4QixPQUFPLENBQUMsT0FBTyxDQUFpQjtJQUNoQyxZQUNVLEtBQUssRUFBRSxnQkFBZ0IsRUFDL0IsSUFBSSxFQUFFLE1BQU0sRUFHYjtJQUVELFFBQVEsSUFBSSxPQUFPLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUtqQztJQUVELEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FLNUI7SUFFRCxNQUFNLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUt6QjtDQUNGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"singleton.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/singleton.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"singleton.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/singleton.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAInD,qBAAa,eAAe,CAAC,CAAC,CAAE,YAAW,mBAAmB,CAAC,CAAC,CAAC;IAI7D,OAAO,CAAC,KAAK;IAHf,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,OAAO,CAAiB;IAChC,YACU,KAAK,EAAE,gBAAgB,EAC/B,IAAI,EAAE,MAAM,EAGb;IAED,QAAQ,IAAI,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAKjC;IAED,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAK5B;IAED,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,CAKzB;CACF"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Encoder } from 'msgpackr';
|
|
2
|
-
|
|
3
|
-
import { execInReadTx, execInWriteTx } from './store.js';
|
|
2
|
+
import { execInReadTx, execInWriteTx } from './tx-helpers.js';
|
|
4
3
|
import { serializeKey } from './utils.js';
|
|
5
4
|
export class LMDBSingleValue {
|
|
6
5
|
store;
|
package/dest/lmdb-v2/store.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type LoggerBindings } from '@aztec/foundation/log';
|
|
2
2
|
import type { AztecAsyncArray } from '../interfaces/array.js';
|
|
3
3
|
import type { Key, StoreSize, Value } from '../interfaces/common.js';
|
|
4
4
|
import type { AztecAsyncCounter } from '../interfaces/counter.js';
|
|
@@ -10,6 +10,7 @@ import type { AztecAsyncKVStore } from '../interfaces/store.js';
|
|
|
10
10
|
import { type LMDBMessageChannel, LMDBMessageType, type LMDBRequestBody, type LMDBResponseBody } from './message.js';
|
|
11
11
|
import { ReadTransaction } from './read_transaction.js';
|
|
12
12
|
import { WriteTransaction } from './write_transaction.js';
|
|
13
|
+
export { execInReadTx, execInWriteTx } from './tx-helpers.js';
|
|
13
14
|
export declare class AztecLMDBStoreV2 implements AztecAsyncKVStore, LMDBMessageChannel {
|
|
14
15
|
private dataDir;
|
|
15
16
|
private log;
|
|
@@ -22,7 +23,7 @@ export declare class AztecLMDBStoreV2 implements AztecAsyncKVStore, LMDBMessageC
|
|
|
22
23
|
private constructor();
|
|
23
24
|
get dataDirectory(): string;
|
|
24
25
|
private start;
|
|
25
|
-
static new(dataDir: string, dbMapSizeKb?: number, maxReaders?: number, cleanup?: () => Promise<void>,
|
|
26
|
+
static new(dataDir: string, dbMapSizeKb?: number, maxReaders?: number, cleanup?: () => Promise<void>, bindings?: LoggerBindings): Promise<AztecLMDBStoreV2>;
|
|
26
27
|
backupTo(dstPath: string, compact?: boolean): Promise<void>;
|
|
27
28
|
getReadTx(): ReadTransaction;
|
|
28
29
|
getCurrentWriteTx(): WriteTransaction | undefined;
|
|
@@ -39,6 +40,4 @@ export declare class AztecLMDBStoreV2 implements AztecAsyncKVStore, LMDBMessageC
|
|
|
39
40
|
sendMessage<T extends LMDBMessageType>(msgType: T, body: LMDBRequestBody[T]): Promise<LMDBResponseBody[T]>;
|
|
40
41
|
estimateSize(): Promise<StoreSize>;
|
|
41
42
|
}
|
|
42
|
-
|
|
43
|
-
export declare function execInReadTx<T>(store: AztecLMDBStoreV2, fn: (tx: ReadTransaction) => T | Promise<T>): Promise<T>;
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sbWRiLXYyL3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQU9sRSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JFLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbEUsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRSxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RFLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFLaEUsT0FBTyxFQUVMLEtBQUssa0JBQWtCLEVBQ3ZCLGVBQWUsRUFDZixLQUFLLGVBQWUsRUFDcEIsS0FBSyxnQkFBZ0IsRUFDdEIsTUFBTSxjQUFjLENBQUM7QUFFdEIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBSXhELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTFELHFCQUFhLGdCQUFpQixZQUFXLGlCQUFpQixFQUFFLGtCQUFrQjtJQVExRSxPQUFPLENBQUMsT0FBTztJQUdmLE9BQU8sQ0FBQyxHQUFHO0lBQ1gsT0FBTyxDQUFDLE9BQU8sQ0FBQztJQVhsQixPQUFPLENBQUMsSUFBSSxDQUFTO0lBQ3JCLE9BQU8sQ0FBQyxPQUFPLENBQXFFO0lBQ3BGLE9BQU8sQ0FBQyxTQUFTLENBQTZDO0lBQzlELE9BQU8sQ0FBQyxXQUFXLENBQXFCO0lBQ3hDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBWTtJQUVwQyxPQUFPLGVBV047SUFFRCxJQUFXLGFBQWEsSUFBSSxNQUFNLENBRWpDO1lBRWEsS0FBSztJQWdCbkIsT0FBb0IsR0FBRyxDQUNyQixPQUFPLEVBQUUsTUFBTSxFQUNmLFdBQVcsR0FBRSxNQUF5QixFQUN0QyxVQUFVLEdBQUUsTUFBVyxFQUN2QixPQUFPLENBQUMsRUFBRSxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFDN0IsR0FBRyxTQUFtQyw2QkFLdkM7SUFFWSxRQUFRLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLFVBQU8saUJBR3BEO0lBRU0sU0FBUyxJQUFJLGVBQWUsQ0FLbEM7SUFFTSxpQkFBaUIsSUFBSSxnQkFBZ0IsR0FBRyxTQUFTLENBTXZEO0lBRUQsT0FBTyxDQUFDLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxTQUFTLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxHQUFHLGFBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBRXpFO0lBRUQsWUFBWSxDQUFDLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxTQUFTLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxHQUFHLGtCQUFrQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FFbkY7SUFFRCxhQUFhLENBQUMsQ0FBQyxTQUFTLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxHQUFHLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUVuRTtJQUVELFNBQVMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUUzRDtJQUVELE9BQU8sQ0FBQyxDQUFDLFNBQVMsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUVyRDtJQUVELFdBQVcsQ0FBQyxDQUFDLFNBQVMsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBRTlEO0lBRUssZ0JBQWdCLENBQUMsQ0FBQyxTQUFTLE9BQU8sQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQ3pELFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxnQkFBZ0IsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQzdDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0EwQlo7SUFFRCxLQUFLLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUVyQjtJQUVLLE1BQU0sSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBSzVCO0lBRUssS0FBSyxrQkFRVjtJQUVZLFdBQVcsQ0FBQyxDQUFDLFNBQVMsZUFBZSxFQUNoRCxPQUFPLEVBQUUsQ0FBQyxFQUNWLElBQUksRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDLEdBQ3ZCLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQXdCOUI7SUFFWSxZQUFZLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQVE5QztDQUNGO0FBRUQsd0JBQWdCLGFBQWEsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxnQkFBZ0IsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQU85RztBQUVELHdCQUFzQixZQUFZLENBQUMsQ0FBQyxFQUNsQyxLQUFLLEVBQUUsZ0JBQWdCLEVBQ3ZCLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxlQUFlLEtBQUssQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FDMUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQVlaIn0=
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sbWRiLXYyL3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxLQUFLLGNBQWMsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQU92RixPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JFLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbEUsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRSxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RFLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHaEUsT0FBTyxFQUVMLEtBQUssa0JBQWtCLEVBQ3ZCLGVBQWUsRUFDZixLQUFLLGVBQWUsRUFDcEIsS0FBSyxnQkFBZ0IsRUFDdEIsTUFBTSxjQUFjLENBQUM7QUFFdEIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTFELE9BQU8sRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFOUQscUJBQWEsZ0JBQWlCLFlBQVcsaUJBQWlCLEVBQUUsa0JBQWtCO0lBUTFFLE9BQU8sQ0FBQyxPQUFPO0lBR2YsT0FBTyxDQUFDLEdBQUc7SUFDWCxPQUFPLENBQUMsT0FBTyxDQUFDO0lBWGxCLE9BQU8sQ0FBQyxJQUFJLENBQVM7SUFDckIsT0FBTyxDQUFDLE9BQU8sQ0FBcUU7SUFDcEYsT0FBTyxDQUFDLFNBQVMsQ0FBNkM7SUFDOUQsT0FBTyxDQUFDLFdBQVcsQ0FBcUI7SUFDeEMsT0FBTyxDQUFDLGdCQUFnQixDQUFZO0lBRXBDLE9BQU8sZUFXTjtJQUVELElBQVcsYUFBYSxJQUFJLE1BQU0sQ0FFakM7WUFFYSxLQUFLO0lBZ0JuQixPQUFvQixHQUFHLENBQ3JCLE9BQU8sRUFBRSxNQUFNLEVBQ2YsV0FBVyxHQUFFLE1BQXlCLEVBQ3RDLFVBQVUsR0FBRSxNQUFXLEVBQ3ZCLE9BQU8sQ0FBQyxFQUFFLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxFQUM3QixRQUFRLENBQUMsRUFBRSxjQUFjLDZCQU0xQjtJQUVZLFFBQVEsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sVUFBTyxpQkFHcEQ7SUFFTSxTQUFTLElBQUksZUFBZSxDQUtsQztJQUVNLGlCQUFpQixJQUFJLGdCQUFnQixHQUFHLFNBQVMsQ0FNdkQ7SUFFRCxPQUFPLENBQUMsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLFNBQVMsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEdBQUcsYUFBYSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FFekU7SUFFRCxZQUFZLENBQUMsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLFNBQVMsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEdBQUcsa0JBQWtCLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUVuRjtJQUVELGFBQWEsQ0FBQyxDQUFDLFNBQVMsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEdBQUcsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBRW5FO0lBRUQsU0FBUyxDQUFDLENBQUMsU0FBUyxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBRTNEO0lBRUQsT0FBTyxDQUFDLENBQUMsU0FBUyxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBRXJEO0lBRUQsV0FBVyxDQUFDLENBQUMsU0FBUyxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FFOUQ7SUFFSyxnQkFBZ0IsQ0FBQyxDQUFDLFNBQVMsT0FBTyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsRUFDekQsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFLGdCQUFnQixLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FDN0MsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQTBCWjtJQUVELEtBQUssSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBRXJCO0lBRUssTUFBTSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FLNUI7SUFFSyxLQUFLLGtCQVFWO0lBRVksV0FBVyxDQUFDLENBQUMsU0FBUyxlQUFlLEVBQ2hELE9BQU8sRUFBRSxDQUFDLEVBQ1YsSUFBSSxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUMsR0FDdkIsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBd0I5QjtJQUVZLFlBQVksSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLENBUTlDO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/store.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/store.ts"],"names":[],"mappings":"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"}
|
package/dest/lmdb-v2/store.js
CHANGED
|
@@ -3,17 +3,15 @@ import { Semaphore, SerialQueue } from '@aztec/foundation/queue';
|
|
|
3
3
|
import { MsgpackChannel, NativeLMDBStore } from '@aztec/native';
|
|
4
4
|
import { AsyncLocalStorage } from 'async_hooks';
|
|
5
5
|
import { mkdir, rm } from 'fs/promises';
|
|
6
|
-
// eslint-disable-next-line import/no-cycle
|
|
7
6
|
import { LMDBArray } from './array.js';
|
|
8
|
-
// eslint-disable-next-line import/no-cycle
|
|
9
7
|
import { LMDBMap } from './map.js';
|
|
10
8
|
import { Database, LMDBMessageType } from './message.js';
|
|
11
9
|
import { LMDBMultiMap } from './multi_map.js';
|
|
12
10
|
import { ReadTransaction } from './read_transaction.js';
|
|
13
11
|
import { LMDBSet } from './set.js';
|
|
14
|
-
// eslint-disable-next-line import/no-cycle
|
|
15
12
|
import { LMDBSingleValue } from './singleton.js';
|
|
16
13
|
import { WriteTransaction } from './write_transaction.js';
|
|
14
|
+
export { execInReadTx, execInWriteTx } from './tx-helpers.js';
|
|
17
15
|
export class AztecLMDBStoreV2 {
|
|
18
16
|
dataDir;
|
|
19
17
|
log;
|
|
@@ -50,7 +48,8 @@ export class AztecLMDBStoreV2 {
|
|
|
50
48
|
});
|
|
51
49
|
this.open = true;
|
|
52
50
|
}
|
|
53
|
-
static async new(dataDir, dbMapSizeKb = 10 * 1024 * 1024, maxReaders = 16, cleanup,
|
|
51
|
+
static async new(dataDir, dbMapSizeKb = 10 * 1024 * 1024, maxReaders = 16, cleanup, bindings) {
|
|
52
|
+
const log = createLogger('kv-store:lmdb-v2', bindings);
|
|
54
53
|
const db = new AztecLMDBStoreV2(dataDir, dbMapSizeKb, maxReaders, log, cleanup);
|
|
55
54
|
await db.start();
|
|
56
55
|
return db;
|
|
@@ -170,24 +169,3 @@ export class AztecLMDBStoreV2 {
|
|
|
170
169
|
};
|
|
171
170
|
}
|
|
172
171
|
}
|
|
173
|
-
export function execInWriteTx(store, fn) {
|
|
174
|
-
const currentWrite = store.getCurrentWriteTx();
|
|
175
|
-
if (currentWrite) {
|
|
176
|
-
return fn(currentWrite);
|
|
177
|
-
} else {
|
|
178
|
-
return store.transactionAsync(fn);
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
export async function execInReadTx(store, fn) {
|
|
182
|
-
const currentWrite = store.getCurrentWriteTx();
|
|
183
|
-
if (currentWrite) {
|
|
184
|
-
return await fn(currentWrite);
|
|
185
|
-
} else {
|
|
186
|
-
const tx = store.getReadTx();
|
|
187
|
-
try {
|
|
188
|
-
return await fn(tx);
|
|
189
|
-
} finally{
|
|
190
|
-
tx.close();
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ReadTransaction } from './read_transaction.js';
|
|
2
|
+
import type { AztecLMDBStoreV2 } from './store.js';
|
|
3
|
+
import type { WriteTransaction } from './write_transaction.js';
|
|
4
|
+
export declare function execInWriteTx<T>(store: AztecLMDBStoreV2, fn: (tx: WriteTransaction) => Promise<T>): Promise<T>;
|
|
5
|
+
export declare function execInReadTx<T>(store: AztecLMDBStoreV2, fn: (tx: ReadTransaction) => T | Promise<T>): Promise<T>;
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHgtaGVscGVycy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xtZGItdjIvdHgtaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RCxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNuRCxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRS9ELHdCQUFnQixhQUFhLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsZ0JBQWdCLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FPOUc7QUFFRCx3QkFBc0IsWUFBWSxDQUFDLENBQUMsRUFDbEMsS0FBSyxFQUFFLGdCQUFnQixFQUN2QixFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsZUFBZSxLQUFLLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQzFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FZWiJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tx-helpers.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/tx-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,gBAAgB,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAO9G;AAED,wBAAsB,YAAY,CAAC,CAAC,EAClC,KAAK,EAAE,gBAAgB,EACvB,EAAE,EAAE,CAAC,EAAE,EAAE,eAAe,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAC1C,OAAO,CAAC,CAAC,CAAC,CAYZ"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export function execInWriteTx(store, fn) {
|
|
2
|
+
const currentWrite = store.getCurrentWriteTx();
|
|
3
|
+
if (currentWrite) {
|
|
4
|
+
return fn(currentWrite);
|
|
5
|
+
} else {
|
|
6
|
+
return store.transactionAsync(fn);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export async function execInReadTx(store, fn) {
|
|
10
|
+
const currentWrite = store.getCurrentWriteTx();
|
|
11
|
+
if (currentWrite) {
|
|
12
|
+
return await fn(currentWrite);
|
|
13
|
+
} else {
|
|
14
|
+
const tx = store.getReadTx();
|
|
15
|
+
try {
|
|
16
|
+
return await fn(tx);
|
|
17
|
+
} finally{
|
|
18
|
+
tx.close();
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
package/dest/lmdb-v2/utils.d.ts
CHANGED
|
@@ -1,17 +1,8 @@
|
|
|
1
1
|
import type { Key } from '../interfaces/common.js';
|
|
2
|
-
type Cmp<T> = (a: T, b: T) => -1 | 0 | 1;
|
|
3
|
-
export declare function dedupeSortedArray<T>(arr: T[], cmp: Cmp<T>): void;
|
|
4
|
-
export declare function insertIntoSortedArray<T>(arr: T[], item: T, cmp: (a: T, b: T) => number): void;
|
|
5
|
-
export declare function findIndexInSortedArray<T, N>(values: T[], needle: N, cmp: (a: T, b: N) => number): number;
|
|
6
|
-
export declare function findInSortedArray<T, N>(values: T[], needle: N, cmp: (a: T, b: N) => number): T | undefined;
|
|
7
|
-
export declare function removeAnyOf<T, N>(arr: T[], vals: N[], cmp: (a: T, b: N) => -1 | 0 | 1): void;
|
|
8
|
-
export declare function removeFromSortedArray<T, N>(arr: T[], val: N, cmp: (a: T, b: N) => -1 | 0 | 1): void;
|
|
9
|
-
export declare function merge<T>(arr: T[], toInsert: T[], cmp: (a: T, b: T) => -1 | 0 | 1): void;
|
|
10
2
|
export declare function keyCmp(a: [Uint8Array, Uint8Array[] | null], b: [Uint8Array, Uint8Array[] | null]): -1 | 0 | 1;
|
|
11
3
|
export declare function singleKeyCmp(a: [Uint8Array, Uint8Array[] | null], b: Uint8Array): -1 | 0 | 1;
|
|
12
4
|
export declare function minKey(prefix: string): Buffer<ArrayBufferLike>;
|
|
13
5
|
export declare function maxKey(prefix: string): Buffer<ArrayBufferLike>;
|
|
14
6
|
export declare function serializeKey(prefix: string, key: Key): Buffer;
|
|
15
7
|
export declare function deserializeKey<K extends Key>(prefix: string, key: Uint8Array): K | false;
|
|
16
|
-
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sbWRiLXYyL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRW5ELEtBQUssR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBRXpDLHdCQUFnQixpQkFBaUIsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQWtCaEU7QUFFRCx3QkFBZ0IscUJBQXFCLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxNQUFNLEdBQUcsSUFBSSxDQWdCN0Y7QUFFRCx3QkFBZ0Isc0JBQXNCLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssTUFBTSxHQUFHLE1BQU0sQ0FpQnhHO0FBRUQsd0JBQWdCLGlCQUFpQixDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLE1BQU0sR0FBRyxDQUFDLEdBQUcsU0FBUyxDQUcxRztBQUVELHdCQUFnQixXQUFXLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FzQjVGO0FBRUQsd0JBQWdCLHFCQUFxQixDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFFBSzVGO0FBRUQsd0JBQWdCLEtBQUssQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBcUJ2RjtBQUVELHdCQUFnQixNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUU3RztBQUVELHdCQUFnQixZQUFZLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxVQUFVLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FFNUY7QUFFRCx3QkFBZ0IsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLDJCQUVwQztBQUVELHdCQUFnQixNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sMkJBRXBDO0FBRUQsd0JBQWdCLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsTUFBTSxDQUU3RDtBQUVELHdCQUFnQixjQUFjLENBQUMsQ0FBQyxTQUFTLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxVQUFVLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FPeEYifQ==
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sbWRiLXYyL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRW5ELHdCQUFnQixNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUU3RztBQUVELHdCQUFnQixZQUFZLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxVQUFVLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FFNUY7QUFFRCx3QkFBZ0IsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLDJCQUVwQztBQUVELHdCQUFnQixNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sMkJBRXBDO0FBRUQsd0JBQWdCLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsTUFBTSxDQUU3RDtBQUVELHdCQUFnQixjQUFjLENBQUMsQ0FBQyxTQUFTLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxVQUFVLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FPeEYifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAEnD,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAEnD,wBAAgB,MAAM,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAE7G;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAE5F;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,2BAEpC;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,2BAEpC;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,MAAM,CAE7D;AAED,wBAAgB,cAAc,CAAC,CAAC,SAAS,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,CAAC,GAAG,KAAK,CAOxF"}
|
package/dest/lmdb-v2/utils.js
CHANGED
|
@@ -1,98 +1,4 @@
|
|
|
1
1
|
import { MAXIMUM_KEY, fromBufferKey, toBufferKey } from 'ordered-binary';
|
|
2
|
-
export function dedupeSortedArray(arr, cmp) {
|
|
3
|
-
for(let i = 0; i < arr.length; i++){
|
|
4
|
-
let j = i + 1;
|
|
5
|
-
for(; j < arr.length; j++){
|
|
6
|
-
const res = cmp(arr[i], arr[j]);
|
|
7
|
-
if (res === 0) {
|
|
8
|
-
continue;
|
|
9
|
-
} else if (res < 0) {
|
|
10
|
-
break;
|
|
11
|
-
} else {
|
|
12
|
-
throw new Error('Array not sorted');
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
if (j - i > 1) {
|
|
16
|
-
arr.splice(i + 1, j - i - 1);
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
export function insertIntoSortedArray(arr, item, cmp) {
|
|
21
|
-
let left = 0;
|
|
22
|
-
let right = arr.length;
|
|
23
|
-
while(left < right){
|
|
24
|
-
const mid = left + right >> 1;
|
|
25
|
-
const comparison = cmp(arr[mid], item);
|
|
26
|
-
if (comparison < 0) {
|
|
27
|
-
left = mid + 1;
|
|
28
|
-
} else {
|
|
29
|
-
right = mid;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
arr.splice(left, 0, item);
|
|
33
|
-
}
|
|
34
|
-
export function findIndexInSortedArray(values, needle, cmp) {
|
|
35
|
-
let start = 0;
|
|
36
|
-
let end = values.length - 1;
|
|
37
|
-
while(start <= end){
|
|
38
|
-
const mid = start + ((end - start) / 2 | 0);
|
|
39
|
-
const res = cmp(values[mid], needle);
|
|
40
|
-
if (res === 0) {
|
|
41
|
-
return mid;
|
|
42
|
-
} else if (res > 0) {
|
|
43
|
-
end = mid - 1;
|
|
44
|
-
} else {
|
|
45
|
-
start = mid + 1;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
return -1;
|
|
49
|
-
}
|
|
50
|
-
export function findInSortedArray(values, needle, cmp) {
|
|
51
|
-
const idx = findIndexInSortedArray(values, needle, cmp);
|
|
52
|
-
return idx > -1 ? values[idx] : undefined;
|
|
53
|
-
}
|
|
54
|
-
export function removeAnyOf(arr, vals, cmp) {
|
|
55
|
-
let writeIdx = 0;
|
|
56
|
-
let readIdx = 0;
|
|
57
|
-
let valIdx = 0;
|
|
58
|
-
while(readIdx < arr.length && valIdx < vals.length){
|
|
59
|
-
const comparison = cmp(arr[readIdx], vals[valIdx]);
|
|
60
|
-
if (comparison < 0) {
|
|
61
|
-
arr[writeIdx++] = arr[readIdx++];
|
|
62
|
-
} else if (comparison > 0) {
|
|
63
|
-
valIdx++;
|
|
64
|
-
} else {
|
|
65
|
-
readIdx++;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
while(readIdx < arr.length){
|
|
69
|
-
arr[writeIdx++] = arr[readIdx++];
|
|
70
|
-
}
|
|
71
|
-
arr.length = writeIdx;
|
|
72
|
-
}
|
|
73
|
-
export function removeFromSortedArray(arr, val, cmp) {
|
|
74
|
-
const idx = findIndexInSortedArray(arr, val, cmp);
|
|
75
|
-
if (idx > -1) {
|
|
76
|
-
arr.splice(idx, 1);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
export function merge(arr, toInsert, cmp) {
|
|
80
|
-
const result = new Array(arr.length + toInsert.length);
|
|
81
|
-
let i = 0, j = 0, k = 0;
|
|
82
|
-
while(i < arr.length && j < toInsert.length){
|
|
83
|
-
result[k++] = cmp(arr[i], toInsert[j]) <= 0 ? arr[i++] : toInsert[j++];
|
|
84
|
-
}
|
|
85
|
-
while(i < arr.length){
|
|
86
|
-
result[k++] = arr[i++];
|
|
87
|
-
}
|
|
88
|
-
while(j < toInsert.length){
|
|
89
|
-
result[k++] = toInsert[j++];
|
|
90
|
-
}
|
|
91
|
-
for(i = 0; i < result.length; i++){
|
|
92
|
-
arr[i] = result[i];
|
|
93
|
-
}
|
|
94
|
-
arr.length = result.length;
|
|
95
|
-
}
|
|
96
2
|
export function keyCmp(a, b) {
|
|
97
3
|
return Buffer.compare(a[0], b[0]);
|
|
98
4
|
}
|
|
@@ -14,4 +14,4 @@ export declare class WriteTransaction extends ReadTransaction {
|
|
|
14
14
|
iterateIndex(startKey: Uint8Array, endKey?: Uint8Array, reverse?: boolean, limit?: number): AsyncIterable<[Uint8Array, Uint8Array[]]>;
|
|
15
15
|
commit(): Promise<void>;
|
|
16
16
|
}
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGVfdHJhbnNhY3Rpb24uZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sbWRiLXYyL3dyaXRlX3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLE9BQU8sRUFBRSxLQUFLLEtBQUssRUFBNkIsTUFBTSxjQUFjLENBQUM7QUFDckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR3hELHFCQUFhLGdCQUFpQixTQUFRLGVBQWU7O0lBRW5ELFNBQWdCLFNBQVMsRUFBRSxLQUFLLENBRzlCO0lBQ0YsU0FBZ0IsVUFBVSxFQUFFLEtBQUssQ0FHL0I7SUFFRixHQUFHLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FnQnJEO0lBRUQsTUFBTSxDQUFDLEdBQUcsRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQVlyQztJQUVxQixHQUFHLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQyxDQWF0RTtJQUVELFFBQVEsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0EyQnhEO0lBRUQsV0FBVyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQXFDM0Q7SUFFcUIsUUFBUSxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBcUJqRTtJQUVzQixPQUFPLENBQzVCLFFBQVEsRUFBRSxVQUFVLEVBQ3BCLE1BQU0sQ0FBQyxFQUFFLFVBQVUsRUFDbkIsT0FBTyxDQUFDLEVBQUUsT0FBTyxFQUNqQixLQUFLLENBQUMsRUFBRSxNQUFNLEdBQ2IsYUFBYSxDQUFDLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBV3pDO0lBRXNCLFlBQVksQ0FDakMsUUFBUSxFQUFFLFVBQVUsRUFDcEIsTUFBTSxDQUFDLEVBQUUsVUFBVSxFQUNuQixPQUFPLENBQUMsRUFBRSxPQUFPLEVBQ2pCLEtBQUssQ0FBQyxFQUFFLE1BQU0sR0FDYixhQUFhLENBQUMsQ0FBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQW9CM0M7SUFrR1ksTUFBTSxrQkFTbEI7Q0FDRiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write_transaction.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/write_transaction.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"write_transaction.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/write_transaction.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,KAAK,KAAK,EAA6B,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,qBAAa,gBAAiB,SAAQ,eAAe;;IAEnD,SAAgB,SAAS,EAAE,KAAK,CAG9B;IACF,SAAgB,UAAU,EAAE,KAAK,CAG/B;IAEF,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBrD;IAED,MAAM,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAYrC;IAEqB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAatE;IAED,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BxD;IAED,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqC3D;IAEqB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAqBjE;IAEsB,OAAO,CAC5B,QAAQ,EAAE,UAAU,EACpB,MAAM,CAAC,EAAE,UAAU,EACnB,OAAO,CAAC,EAAE,OAAO,EACjB,KAAK,CAAC,EAAE,MAAM,GACb,aAAa,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAWzC;IAEsB,YAAY,CACjC,QAAQ,EAAE,UAAU,EACpB,MAAM,CAAC,EAAE,UAAU,EACnB,OAAO,CAAC,EAAE,OAAO,EACjB,KAAK,CAAC,EAAE,MAAM,GACb,aAAa,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC,CAoB3C;IAkGY,MAAM,kBASlB;CACF"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { dedupeSortedArray, findInSortedArray, findIndexInSortedArray, insertIntoSortedArray, merge, removeAnyOf, removeFromSortedArray } from '@aztec/foundation/array';
|
|
1
2
|
import { Database, LMDBMessageType } from './message.js';
|
|
2
3
|
import { ReadTransaction } from './read_transaction.js';
|
|
3
|
-
import {
|
|
4
|
+
import { keyCmp, singleKeyCmp } from './utils.js';
|
|
4
5
|
export class WriteTransaction extends ReadTransaction {
|
|
5
6
|
// exposed for tests
|
|
6
7
|
dataBatch = {
|
|
@@ -35,10 +36,10 @@ export class WriteTransaction extends ReadTransaction {
|
|
|
35
36
|
remove(key) {
|
|
36
37
|
const removeEntryIndex = findIndexInSortedArray(this.dataBatch.removeEntries, key, singleKeyCmp);
|
|
37
38
|
if (removeEntryIndex === -1) {
|
|
38
|
-
this.dataBatch.removeEntries
|
|
39
|
+
insertIntoSortedArray(this.dataBatch.removeEntries, [
|
|
39
40
|
key,
|
|
40
41
|
null
|
|
41
|
-
]);
|
|
42
|
+
], keyCmp);
|
|
42
43
|
}
|
|
43
44
|
const addEntryIndex = findIndexInSortedArray(this.dataBatch.addEntries, key, singleKeyCmp);
|
|
44
45
|
if (addEntryIndex > -1) {
|
|
@@ -155,10 +156,13 @@ export class WriteTransaction extends ReadTransaction {
|
|
|
155
156
|
}
|
|
156
157
|
async *#iterate(iterator, batch, startKey, endKey, reverse = false, limit, merge, map) {
|
|
157
158
|
this.assertIsOpen();
|
|
158
|
-
//
|
|
159
|
+
// Snapshot both add and remove entries at the start of iteration to ensure consistency
|
|
159
160
|
const uncommittedEntries = [
|
|
160
161
|
...batch.addEntries
|
|
161
162
|
];
|
|
163
|
+
const removeEntries = [
|
|
164
|
+
...batch.removeEntries
|
|
165
|
+
];
|
|
162
166
|
// used to check we're in the right order when comparing between a key and uncommittedEntries
|
|
163
167
|
let cmpDirection = -1;
|
|
164
168
|
if (reverse) {
|
|
@@ -198,7 +202,7 @@ export class WriteTransaction extends ReadTransaction {
|
|
|
198
202
|
if (!checkLimit()) {
|
|
199
203
|
break;
|
|
200
204
|
}
|
|
201
|
-
const toRemove = findInSortedArray(
|
|
205
|
+
const toRemove = findInSortedArray(removeEntries, key, singleKeyCmp);
|
|
202
206
|
// at this point we've either exhausted all uncommitted entries,
|
|
203
207
|
// we reached a key strictly greater/smaller than `key`
|
|
204
208
|
// or we found the key itself
|
|
@@ -1,15 +1,29 @@
|
|
|
1
|
-
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
2
|
-
import
|
|
1
|
+
import { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
|
|
2
|
+
import { type L2BlockTag, L2TipsStoreBase } from '@aztec/stdlib/block';
|
|
3
|
+
import { PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
|
|
3
4
|
import type { AztecAsyncKVStore } from '../interfaces/store.js';
|
|
4
|
-
/**
|
|
5
|
-
|
|
5
|
+
/**
|
|
6
|
+
* Persistent implementation of L2 tips store backed by a KV store.
|
|
7
|
+
* Used by nodes that need to persist chain state across restarts.
|
|
8
|
+
*/
|
|
9
|
+
export declare class L2TipsKVStore extends L2TipsStoreBase {
|
|
10
|
+
private store;
|
|
6
11
|
private readonly l2TipsStore;
|
|
7
12
|
private readonly l2BlockHashesStore;
|
|
13
|
+
private readonly l2BlockNumberToCheckpointNumberStore;
|
|
14
|
+
private readonly l2CheckpointStore;
|
|
8
15
|
constructor(store: AztecAsyncKVStore, namespace: string);
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
16
|
+
protected getTip(tag: L2BlockTag): Promise<BlockNumber | undefined>;
|
|
17
|
+
protected setTip(tag: L2BlockTag, blockNumber: BlockNumber): Promise<void>;
|
|
18
|
+
protected getStoredBlockHash(blockNumber: BlockNumber): Promise<string | undefined>;
|
|
19
|
+
protected setBlockHash(blockNumber: BlockNumber, hash: string): Promise<void>;
|
|
20
|
+
protected deleteBlockHashesBefore(blockNumber: BlockNumber): Promise<void>;
|
|
21
|
+
protected getCheckpointNumberForBlock(blockNumber: BlockNumber): Promise<CheckpointNumber | undefined>;
|
|
22
|
+
protected setCheckpointNumberForBlock(blockNumber: BlockNumber, checkpointNumber: CheckpointNumber): Promise<void>;
|
|
23
|
+
protected deleteBlockToCheckpointBefore(blockNumber: BlockNumber): Promise<void>;
|
|
24
|
+
protected getCheckpoint(checkpointNumber: CheckpointNumber): Promise<PublishedCheckpoint | undefined>;
|
|
25
|
+
protected saveCheckpointData(checkpoint: PublishedCheckpoint): Promise<void>;
|
|
26
|
+
protected deleteCheckpointsBefore(checkpointNumber: CheckpointNumber): Promise<void>;
|
|
27
|
+
protected runInTransaction<T>(fn: () => Promise<T>): Promise<T>;
|
|
14
28
|
}
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDJfdGlwc19zdG9yZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0b3Jlcy9sMl90aXBzX3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsS0FBSyxVQUFVLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHL0QsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVoRTs7O0dBR0c7QUFDSCxxQkFBYSxhQUFjLFNBQVEsZUFBZTtJQU85QyxPQUFPLENBQUMsS0FBSztJQU5mLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUF5QztJQUNyRSxPQUFPLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFxQztJQUN4RSxPQUFPLENBQUMsUUFBUSxDQUFDLG9DQUFvQyxDQUErQztJQUNwRyxPQUFPLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUEwQztJQUU1RSxZQUNVLEtBQUssRUFBRSxpQkFBaUIsRUFDaEMsU0FBUyxFQUFFLE1BQU0sRUFTbEI7SUFFRCxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUMsQ0FFbEU7SUFFRCxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFdBQVcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBRXpFO0lBRUQsU0FBUyxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxXQUFXLEdBQUcsT0FBTyxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsQ0FFbEY7SUFFRCxTQUFTLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBRTVFO0lBRUQsVUFBZ0IsdUJBQXVCLENBQUMsV0FBVyxFQUFFLFdBQVcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBSS9FO0lBRUQsU0FBUyxDQUFDLDJCQUEyQixDQUFDLFdBQVcsRUFBRSxXQUFXLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixHQUFHLFNBQVMsQ0FBQyxDQUVyRztJQUVELFNBQVMsQ0FBQywyQkFBMkIsQ0FBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFakg7SUFFRCxVQUFnQiw2QkFBNkIsQ0FBQyxXQUFXLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FJckY7SUFFRCxVQUFnQixhQUFhLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLG1CQUFtQixHQUFHLFNBQVMsQ0FBQyxDQU0xRztJQUVELFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsbUJBQW1CLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUUzRTtJQUVELFVBQWdCLHVCQUF1QixDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FJekY7SUFFRCxTQUFTLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxNQUFNLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBRTlEO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"l2_tips_store.d.ts","sourceRoot":"","sources":["../../src/stores/l2_tips_store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"l2_tips_store.d.ts","sourceRoot":"","sources":["../../src/stores/l2_tips_store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,KAAK,UAAU,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAG/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE;;;GAGG;AACH,qBAAa,aAAc,SAAQ,eAAe;IAO9C,OAAO,CAAC,KAAK;IANf,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyC;IACrE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqC;IACxE,OAAO,CAAC,QAAQ,CAAC,oCAAoC,CAA+C;IACpG,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA0C;IAE5E,YACU,KAAK,EAAE,iBAAiB,EAChC,SAAS,EAAE,MAAM,EASlB;IAED,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAElE;IAED,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAEzE;IAED,SAAS,CAAC,kBAAkB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAElF;IAED,SAAS,CAAC,YAAY,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5E;IAED,UAAgB,uBAAuB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAI/E;IAED,SAAS,CAAC,2BAA2B,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAErG;IAED,SAAS,CAAC,2BAA2B,CAAC,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjH;IAED,UAAgB,6BAA6B,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAIrF;IAED,UAAgB,aAAa,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAM1G;IAED,SAAS,CAAC,kBAAkB,CAAC,UAAU,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3E;IAED,UAAgB,uBAAuB,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAIzF;IAED,SAAS,CAAC,gBAAgB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAE9D;CACF"}
|