@aztec/world-state 0.65.1 → 0.66.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/native/merkle_trees_facade.d.ts +3 -1
- package/dest/native/merkle_trees_facade.d.ts.map +1 -1
- package/dest/native/merkle_trees_facade.js +29 -1
- package/dest/native/message.d.ts +43 -15
- package/dest/native/message.d.ts.map +1 -1
- package/dest/native/message.js +19 -15
- package/dest/native/native_world_state.d.ts.map +1 -1
- package/dest/native/native_world_state.js +6 -8
- package/dest/native/native_world_state_instance.d.ts.map +1 -1
- package/dest/native/native_world_state_instance.js +7 -7
- package/dest/synchronizer/factory.d.ts.map +1 -1
- package/dest/synchronizer/factory.js +5 -1
- package/dest/synchronizer/instrumentation.d.ts.map +1 -1
- package/dest/synchronizer/instrumentation.js +3 -1
- package/dest/world-state-db/merkle_tree_db.d.ts +2 -12
- package/dest/world-state-db/merkle_tree_db.d.ts.map +1 -1
- package/dest/world-state-db/merkle_tree_operations_facade.d.ts +9 -1
- package/dest/world-state-db/merkle_tree_operations_facade.d.ts.map +1 -1
- package/dest/world-state-db/merkle_tree_operations_facade.js +13 -1
- package/dest/world-state-db/merkle_tree_snapshot_operations_facade.d.ts +1 -0
- package/dest/world-state-db/merkle_tree_snapshot_operations_facade.d.ts.map +1 -1
- package/dest/world-state-db/merkle_tree_snapshot_operations_facade.js +4 -1
- package/package.json +8 -8
- package/src/native/merkle_trees_facade.ts +39 -0
- package/src/native/message.ts +35 -1
- package/src/native/native_world_state.ts +9 -13
- package/src/native/native_world_state_instance.ts +10 -12
- package/src/synchronizer/factory.ts +6 -0
- package/src/synchronizer/instrumentation.ts +3 -1
- package/src/world-state-db/merkle_tree_db.ts +2 -14
- package/src/world-state-db/merkle_tree_operations_facade.ts +21 -0
- package/src/world-state-db/merkle_tree_snapshot_operations_facade.ts +4 -0
|
@@ -13,6 +13,10 @@ export async function createWorldState(config, client = new NoopTelemetryClient(
|
|
|
13
13
|
dataDirectory: config.worldStateDataDirectory ?? config.dataDirectory,
|
|
14
14
|
dataStoreMapSizeKB: config.worldStateDbMapSizeKb ?? config.dataStoreMapSizeKB,
|
|
15
15
|
};
|
|
16
|
+
if (!config.l1Contracts?.rollupAddress) {
|
|
17
|
+
throw new Error('Rollup address is required to create a world state synchronizer.');
|
|
18
|
+
}
|
|
19
|
+
// If a data directory is provided in config, then create a persistent store.
|
|
16
20
|
const merkleTrees = ['true', '1'].includes(process.env.USE_LEGACY_WORLD_STATE ?? '')
|
|
17
21
|
? await MerkleTrees.new(await createStore('world-state', newConfig, createDebugLogger('aztec:world-state:lmdb')), client)
|
|
18
22
|
: newConfig.dataDirectory
|
|
@@ -20,4 +24,4 @@ export async function createWorldState(config, client = new NoopTelemetryClient(
|
|
|
20
24
|
: await NativeWorldStateService.tmp(config.l1Contracts.rollupAddress, !['true', '1'].includes(process.env.DEBUG_WORLD_STATE));
|
|
21
25
|
return merkleTrees;
|
|
22
26
|
}
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zeW5jaHJvbml6ZXIvZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFcEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFbkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDMUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRWhFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXBGLE1BQU0sQ0FBQyxLQUFLLFVBQVUsNEJBQTRCLENBQ2hELE1BQTBDLEVBQzFDLGFBQWtELEVBQ2xELE1BQXVCO0lBRXZCLE1BQU0sV0FBVyxHQUFHLE1BQU0sZ0JBQWdCLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzNELE9BQU8sSUFBSSw0QkFBNEIsQ0FBQyxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN0RixDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSxnQkFBZ0IsQ0FDcEMsTUFBMEMsRUFDMUMsU0FBMEIsSUFBSSxtQkFBbUIsRUFBRTtJQUVuRCxNQUFNLFNBQVMsR0FBRztRQUNoQixhQUFhLEVBQUUsTUFBTSxDQUFDLHVCQUF1QixJQUFJLE1BQU0sQ0FBQyxhQUFhO1FBQ3JFLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxxQkFBcUIsSUFBSSxNQUFNLENBQUMsa0JBQWtCO0tBQzNELENBQUM7SUFFckIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsYUFBYSxFQUFFLENBQUM7UUFDdkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxrRUFBa0UsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFFRCw2RUFBNkU7SUFDN0UsTUFBTSxXQUFXLEdBQUcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0JBQXNCLElBQUksRUFBRSxDQUFDO1FBQ2xGLENBQUMsQ0FBQyxNQUFNLFdBQVcsQ0FBQyxHQUFHLENBQ25CLE1BQU0sV0FBVyxDQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxFQUN4RixNQUFNLENBQ1A7UUFDSCxDQUFDLENBQUMsU0FBUyxDQUFDLGFBQWE7WUFDekIsQ0FBQyxDQUFDLE1BQU0sdUJBQXVCLENBQUMsR0FBRyxDQUMvQixNQUFNLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFDaEMsU0FBUyxDQUFDLGFBQWEsRUFDdkIsU0FBUyxDQUFDLGtCQUFrQixDQUM3QjtZQUNILENBQUMsQ0FBQyxNQUFNLHVCQUF1QixDQUFDLEdBQUcsQ0FDL0IsTUFBTSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQ2hDLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWtCLENBQUMsQ0FDeEQsQ0FBQztJQUVOLE9BQU8sV0FBVyxDQUFDO0FBQ3JCLENBQUMifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../src/synchronizer/instrumentation.ts"],"names":[],"mappings":"AAEA,OAAO,EAA0B,KAAK,eAAe,EAAa,MAAM,yBAAyB,CAAC;AAElG,OAAO,EAAiD,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../src/synchronizer/instrumentation.ts"],"names":[],"mappings":"AAEA,OAAO,EAA0B,KAAK,eAAe,EAAa,MAAM,yBAAyB,CAAC;AAElG,OAAO,EAAiD,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AA+FhH,qBAAa,yBAAyB;IAGI,OAAO,CAAC,GAAG;IAFnD,OAAO,CAAC,mBAAmB,CAAwF;gBAEvG,SAAS,EAAE,eAAe,EAAU,GAAG,yCAAyD;IAS5G,OAAO,CAAC,eAAe;IAShB,uBAAuB,CAAC,gBAAgB,EAAE,oBAAoB;CA+BtE"}
|
|
@@ -45,6 +45,7 @@ class TreeInstrumentation {
|
|
|
45
45
|
this.treeDbInstrumentation.set('nodes', new TreeDBInstrumentation(meter, treeName, 'nodes'));
|
|
46
46
|
this.treeDbInstrumentation.set('leaf_preimage', new TreeDBInstrumentation(meter, treeName, 'leaf_preimage'));
|
|
47
47
|
this.treeDbInstrumentation.set('leaf_indices', new TreeDBInstrumentation(meter, treeName, 'leaf_indices'));
|
|
48
|
+
this.treeDbInstrumentation.set('block_indices', new TreeDBInstrumentation(meter, treeName, 'block_indices'));
|
|
48
49
|
}
|
|
49
50
|
updateDBMetrics(dbName, dbStats) {
|
|
50
51
|
const inst = this.treeDbInstrumentation.get(dbName);
|
|
@@ -64,6 +65,7 @@ class TreeInstrumentation {
|
|
|
64
65
|
this.updateDBMetrics('leaf_preimage', treeDbStats.leafPreimagesDBStats);
|
|
65
66
|
this.updateDBMetrics('blocks', treeDbStats.blocksDBStats);
|
|
66
67
|
this.updateDBMetrics('nodes', treeDbStats.nodesDBStats);
|
|
68
|
+
this.updateDBMetrics('block_indices', treeDbStats.blockIndicesDBStats);
|
|
67
69
|
}
|
|
68
70
|
}
|
|
69
71
|
export class WorldStateInstrumentation {
|
|
@@ -93,4 +95,4 @@ export class WorldStateInstrumentation {
|
|
|
93
95
|
this.updateTreeStats(worldStateStatus.dbStats.publicDataTreeStats, worldStateStatus.meta.publicDataTreeMeta, MerkleTreeId.PUBLIC_DATA_TREE);
|
|
94
96
|
}
|
|
95
97
|
}
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1bWVudGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N5bmNocm9uaXplci9pbnN0cnVtZW50YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBb0IsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBQWdELFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBT2xHLE1BQU0scUJBQXFCO0lBSXpCLFlBQVksS0FBWSxFQUFFLFFBQXdCLEVBQUUsTUFBb0I7UUFDdEUsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLGtDQUFrQyxNQUFNLElBQUksUUFBUSxFQUFFLEVBQUU7WUFDMUYsV0FBVyxFQUFFLDBDQUEwQyxRQUFRLFNBQVMsTUFBTSxXQUFXO1lBQ3pGLFNBQVMsRUFBRSxTQUFTLENBQUMsR0FBRztTQUN6QixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsa0NBQWtDLE1BQU0sSUFBSSxRQUFRLEVBQUUsRUFBRTtZQUMxRixXQUFXLEVBQUUsc0NBQXNDLFFBQVEsU0FBUyxNQUFNLFdBQVc7WUFDckYsU0FBUyxFQUFFLFNBQVMsQ0FBQyxHQUFHO1NBQ3pCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxhQUFhLENBQUMsV0FBb0I7UUFDdkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLG1CQUFtQjtJQVd2QixZQUFZLEtBQVksRUFBRSxRQUF3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
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type L2Block, type MerkleTreeId } from '@aztec/circuit-types';
|
|
2
|
-
import { type
|
|
2
|
+
import { type ForkMerkleTreeOperations, type MerkleTreeReadOperations } from '@aztec/circuit-types/interfaces';
|
|
3
3
|
import { type Fr } from '@aztec/circuits.js';
|
|
4
4
|
import { type IndexedTreeSnapshot, type TreeSnapshot } from '@aztec/merkle-tree';
|
|
5
5
|
import { type WorldStateStatusFull, type WorldStateStatusSummary } from '../native/message.js';
|
|
@@ -27,7 +27,7 @@ export type TreeSnapshots = {
|
|
|
27
27
|
[MerkleTreeId.L1_TO_L2_MESSAGE_TREE]: TreeSnapshot<Fr>;
|
|
28
28
|
[MerkleTreeId.ARCHIVE]: TreeSnapshot<Fr>;
|
|
29
29
|
};
|
|
30
|
-
export interface MerkleTreeAdminDatabase {
|
|
30
|
+
export interface MerkleTreeAdminDatabase extends ForkMerkleTreeOperations {
|
|
31
31
|
/**
|
|
32
32
|
* Handles a single L2 block (i.e. Inserts the new note hashes into the merkle tree).
|
|
33
33
|
* @param block - The L2 block to handle.
|
|
@@ -38,16 +38,6 @@ export interface MerkleTreeAdminDatabase {
|
|
|
38
38
|
* Gets a handle that allows reading the latest committed state
|
|
39
39
|
*/
|
|
40
40
|
getCommitted(): MerkleTreeReadOperations;
|
|
41
|
-
/**
|
|
42
|
-
* Gets a handle that allows reading the state as it was at the given block number
|
|
43
|
-
* @param blockNumber - The block number to get the snapshot for
|
|
44
|
-
*/
|
|
45
|
-
getSnapshot(blockNumber: number): MerkleTreeReadOperations;
|
|
46
|
-
/**
|
|
47
|
-
* Forks the database at its current state.
|
|
48
|
-
* @param blockNumber - The block number to fork at. If not provided, the current block number is used.
|
|
49
|
-
*/
|
|
50
|
-
fork(blockNumber?: number): Promise<MerkleTreeWriteOperations>;
|
|
51
41
|
/**
|
|
52
42
|
* Removes all historical snapshots up to but not including the given block number
|
|
53
43
|
* @param toBlockNumber The block number of the new oldest historical block
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merkle_tree_db.d.ts","sourceRoot":"","sources":["../../src/world-state-db/merkle_tree_db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,KAAK,wBAAwB,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"merkle_tree_db.d.ts","sourceRoot":"","sources":["../../src/world-state-db/merkle_tree_db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,KAAK,wBAAwB,EAAE,KAAK,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC/G,OAAO,EAAE,KAAK,EAAE,EAAuE,MAAM,oBAAoB,CAAC;AAClH,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEjF,OAAO,EAAE,KAAK,oBAAoB,EAAE,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAE/F;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,2BAA2B,QAA4B,CAAC;AAErE,eAAO,MAAM,6BAA6B,QAAmD,CAAC;AAE9F,MAAM,MAAM,aAAa,GAAG;IAC1B,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,mBAAmB,CAAC;IACnD,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;IAChD,CAAC,YAAY,CAAC,gBAAgB,CAAC,EAAE,mBAAmB,CAAC;IACrD,CAAC,YAAY,CAAC,qBAAqB,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;IACvD,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;CAC1C,CAAC;AAEF,MAAM,WAAW,uBAAwB,SAAQ,wBAAwB;IACvE;;;;OAIG;IACH,wBAAwB,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAE9F;;OAEG;IACH,YAAY,IAAI,wBAAwB,CAAC;IAEzC;;;;OAIG;IACH,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAE7E;;;;OAIG;IACH,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEnE;;;;OAIG;IACH,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAEtE;;;OAGG;IACH,gBAAgB,IAAI,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAErD,yBAAyB;IACzB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
2
|
/// <reference types="node" resolution-mode="require"/>
|
|
3
3
|
import { type BatchInsertionResult, type MerkleTreeId, type SiblingPath } from '@aztec/circuit-types';
|
|
4
|
-
import { type IndexedTreeId, type MerkleTreeLeafType, type MerkleTreeWriteOperations, type TreeInfo } from '@aztec/circuit-types/interfaces';
|
|
4
|
+
import { type IndexedTreeId, type MerkleTreeLeafType, type MerkleTreeWriteOperations, type SequentialInsertionResult, type TreeInfo } from '@aztec/circuit-types/interfaces';
|
|
5
5
|
import { type Header, type StateReference } from '@aztec/circuits.js';
|
|
6
6
|
import { type IndexedTreeLeafPreimage } from '@aztec/foundation/trees';
|
|
7
7
|
import { type MerkleTrees } from './merkle_trees.js';
|
|
@@ -103,6 +103,14 @@ export declare class MerkleTreeReadOperationsFacade implements MerkleTreeWriteOp
|
|
|
103
103
|
* @returns The data for the leaves to be updated when inserting the new ones.
|
|
104
104
|
*/
|
|
105
105
|
batchInsert<TreeHeight extends number, SubtreeSiblingPathHeight extends number>(treeId: IndexedTreeId, leaves: Buffer[], subtreeHeight: number): Promise<BatchInsertionResult<TreeHeight, SubtreeSiblingPathHeight>>;
|
|
106
|
+
/**
|
|
107
|
+
* Sequentially inserts multiple leaves into the tree.
|
|
108
|
+
* @param treeId - The ID of the tree.
|
|
109
|
+
* @param leaves - Leaves to insert into the tree.
|
|
110
|
+
* @returns Witnesses for the operations performed.
|
|
111
|
+
*/
|
|
112
|
+
sequentialInsert<TreeHeight extends number>(_treeId: IndexedTreeId, _leaves: Buffer[]): Promise<SequentialInsertionResult<TreeHeight>>;
|
|
113
|
+
getBlockNumbersForLeafIndices<ID extends MerkleTreeId>(_treeId: ID, _leafIndices: bigint[]): Promise<(bigint | undefined)[]>;
|
|
106
114
|
close(): Promise<void>;
|
|
107
115
|
}
|
|
108
116
|
//# sourceMappingURL=merkle_tree_operations_facade.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merkle_tree_operations_facade.d.ts","sourceRoot":"","sources":["../../src/world-state-db/merkle_tree_operations_facade.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,KAAK,oBAAoB,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACtG,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,QAAQ,EACd,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAEvE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;GAEG;AACH,qBAAa,8BAA+B,YAAW,yBAAyB;IAClE,SAAS,CAAC,KAAK,EAAE,WAAW;IAAE,SAAS,CAAC,kBAAkB,EAAE,OAAO;gBAAzD,KAAK,EAAE,WAAW,EAAY,kBAAkB,EAAE,OAAO;IAE/E;;;;;OAKG;IACH,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIpD;;;OAGG;IACH,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC;IAI5C;;;OAGG;IACH,gBAAgB,IAAI,MAAM;IAI1B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,SAAS,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlG;;;;;OAKG;IACG,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAKpG;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,SAAS,aAAa,EAC5C,MAAM,EAAE,EAAE,EACV,KAAK,EAAE,MAAM,GACZ,OAAO,CACN;QACE;;WAEG;QACH,KAAK,EAAE,MAAM,CAAC;QACd;;WAEG;QACH,cAAc,EAAE,OAAO,CAAC;KACzB,GACD,SAAS,CACZ;IAID;;;;;OAKG;IACG,eAAe,CAAC,EAAE,SAAS,aAAa,EAC5C,MAAM,EAAE,EAAE,EACV,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC;IAK/C;;;;;OAKG;IACH,aAAa,CAAC,EAAE,SAAS,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,kBAAkB,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAI9G;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,SAAS,YAAY,EACxC,MAAM,EAAE,EAAE,EACV,KAAK,EAAE,kBAAkB,CAAC,EAAE,CAAC,EAC7B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAI9B;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,SAAS,YAAY,EAClC,MAAM,EAAE,EAAE,EACV,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,kBAAkB,CAAC,OAAO,MAAM,CAAC,GAAG,SAAS,CAAC;IAMzD;;;;OAIG;IACI,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAInD;;;;;;OAMG;IACI,WAAW,CAAC,UAAU,SAAS,MAAM,EAAE,wBAAwB,SAAS,MAAM,EACnF,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,MAAM,EAAE,EAChB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,oBAAoB,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC;IAItE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAGvB"}
|
|
1
|
+
{"version":3,"file":"merkle_tree_operations_facade.d.ts","sourceRoot":"","sources":["../../src/world-state-db/merkle_tree_operations_facade.ts"],"names":[],"mappings":"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"}
|
|
@@ -114,8 +114,20 @@ export class MerkleTreeReadOperationsFacade {
|
|
|
114
114
|
batchInsert(treeId, leaves, subtreeHeight) {
|
|
115
115
|
return this.trees.batchInsert(treeId, leaves, subtreeHeight);
|
|
116
116
|
}
|
|
117
|
+
/**
|
|
118
|
+
* Sequentially inserts multiple leaves into the tree.
|
|
119
|
+
* @param treeId - The ID of the tree.
|
|
120
|
+
* @param leaves - Leaves to insert into the tree.
|
|
121
|
+
* @returns Witnesses for the operations performed.
|
|
122
|
+
*/
|
|
123
|
+
sequentialInsert(_treeId, _leaves) {
|
|
124
|
+
throw new Error('Method not implemented in legacy merkle tree');
|
|
125
|
+
}
|
|
126
|
+
getBlockNumbersForLeafIndices(_treeId, _leafIndices) {
|
|
127
|
+
throw new Error('Method not implemented in legacy merkle tree');
|
|
128
|
+
}
|
|
117
129
|
close() {
|
|
118
130
|
return Promise.resolve();
|
|
119
131
|
}
|
|
120
132
|
}
|
|
121
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVya2xlX3RyZWVfb3BlcmF0aW9uc19mYWNhZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd29ybGQtc3RhdGUtZGIvbWVya2xlX3RyZWVfb3BlcmF0aW9uc19mYWNhZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBYUE7O0dBRUc7QUFDSCxNQUFNLE9BQU8sOEJBQThCO0lBQ3pDLFlBQXNCLEtBQWtCLEVBQVksa0JBQTJCO1FBQXpELFVBQUssR0FBTCxLQUFLLENBQWE7UUFBWSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQVM7SUFBRyxDQUFDO0lBRW5GOzs7OztPQUtHO0lBQ0gsV0FBVyxDQUFDLE1BQW9CO1FBQzlCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRDs7O09BR0c7SUFDSCxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVEOzs7T0FHRztJQUNILGdCQUFnQjtRQUNkLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFlBQVksQ0FBMEIsTUFBVSxFQUFFLE1BQWdDO1FBQ2hGLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxjQUFjLENBQW1CLE1BQW9CLEVBQUUsS0FBYTtRQUN4RSxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDckYsT0FBTyxJQUFpQyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxxQkFBcUIsQ0FDbkIsTUFBVSxFQUNWLEtBQWE7UUFjYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsZUFBZSxDQUNuQixNQUFVLEVBQ1YsS0FBYTtRQUViLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUMxRixPQUFPLFFBQStDLENBQUM7SUFDekQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsYUFBYSxDQUEwQixNQUFVLEVBQUUsS0FBNkI7UUFDOUUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGtCQUFrQixDQUNoQixNQUFVLEVBQ1YsS0FBNkIsRUFDN0IsVUFBa0I7UUFFbEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxZQUFZLENBQ1YsTUFBVSxFQUNWLEtBQWE7UUFFYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUVwRSxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxhQUFhLENBQUMsTUFBYztRQUNqQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxXQUFXLENBQ2hCLE1BQXFCLEVBQ3JCLE1BQWdCLEVBQ2hCLGFBQXFCO1FBRXJCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxnQkFBZ0IsQ0FDckIsT0FBc0IsRUFDdEIsT0FBaUI7UUFFakIsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCw2QkFBNkIsQ0FDM0IsT0FBVyxFQUNYLFlBQXNCO1FBRXRCLE1BQU0sSUFBSSxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsS0FBSztRQUNILE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzNCLENBQUM7Q0FDRiJ9
|
|
@@ -25,6 +25,7 @@ export declare class MerkleTreeSnapshotOperationsFacade implements MerkleTreeRea
|
|
|
25
25
|
} | undefined>;
|
|
26
26
|
getSiblingPath<N extends number>(treeId: MerkleTreeId, index: bigint): Promise<SiblingPath<N>>;
|
|
27
27
|
getTreeInfo(treeId: MerkleTreeId): Promise<TreeInfo>;
|
|
28
|
+
getBlockNumbersForLeafIndices<ID extends MerkleTreeId>(_a: ID, _b: bigint[]): Promise<(bigint | undefined)[]>;
|
|
28
29
|
getStateReference(): Promise<StateReference>;
|
|
29
30
|
getInitialHeader(): Header;
|
|
30
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merkle_tree_snapshot_operations_facade.d.ts","sourceRoot":"","sources":["../../src/world-state-db/merkle_tree_snapshot_operations_facade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,QAAQ,EACd,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAA8B,KAAK,MAAM,EAAyB,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpH,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAIvE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;GAEG;AACH,qBAAa,kCAAmC,YAAW,wBAAwB;;gBAKrE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM;IAc7C,aAAa,CAAC,EAAE,SAAS,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,kBAAkB,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAM9G,kBAAkB,CAAC,EAAE,SAAS,YAAY,EAC9C,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,kBAAkB,CAAC,EAAE,CAAC,EAC7B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAMxB,eAAe,CAAC,EAAE,SAAS,aAAa,EAC5C,MAAM,EAAE,EAAE,EACV,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC;IAKzC,YAAY,CAAC,EAAE,SAAS,YAAY,EACxC,MAAM,EAAE,EAAE,EACV,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,kBAAkB,CAAC,OAAO,MAAM,CAAC,GAAG,SAAS,CAAC;IAKnD,qBAAqB,CACzB,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,MAAM,GACZ,OAAO,CACN;QACE;;WAEG;QACH,KAAK,EAAE,MAAM,CAAC;QACd;;WAEG;QACH,cAAc,EAAE,OAAO,CAAC;KACzB,GACD,SAAS,CACZ;IAKK,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAK9F,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"merkle_tree_snapshot_operations_facade.d.ts","sourceRoot":"","sources":["../../src/world-state-db/merkle_tree_snapshot_operations_facade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,QAAQ,EACd,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAA8B,KAAK,MAAM,EAAyB,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpH,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAIvE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;GAEG;AACH,qBAAa,kCAAmC,YAAW,wBAAwB;;gBAKrE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM;IAc7C,aAAa,CAAC,EAAE,SAAS,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,kBAAkB,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAM9G,kBAAkB,CAAC,EAAE,SAAS,YAAY,EAC9C,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,kBAAkB,CAAC,EAAE,CAAC,EAC7B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAMxB,eAAe,CAAC,EAAE,SAAS,aAAa,EAC5C,MAAM,EAAE,EAAE,EACV,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC;IAKzC,YAAY,CAAC,EAAE,SAAS,YAAY,EACxC,MAAM,EAAE,EAAE,EACV,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,kBAAkB,CAAC,OAAO,MAAM,CAAC,GAAG,SAAS,CAAC;IAKnD,qBAAqB,CACzB,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,MAAM,GACZ,OAAO,CACN;QACE;;WAEG;QACH,KAAK,EAAE,MAAM,CAAC;QACd;;WAEG;QACH,cAAc,EAAE,OAAO,CAAC;KACzB,GACD,SAAS,CACZ;IAKK,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAK9F,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC;IAU1D,6BAA6B,CAAC,EAAE,SAAS,YAAY,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IAIvG,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC;IA+BlD,gBAAgB,IAAI,MAAM;CAG3B"}
|
|
@@ -49,6 +49,9 @@ export class MerkleTreeSnapshotOperationsFacade {
|
|
|
49
49
|
treeId,
|
|
50
50
|
};
|
|
51
51
|
}
|
|
52
|
+
getBlockNumbersForLeafIndices(_a, _b) {
|
|
53
|
+
throw new Error('Not implemented');
|
|
54
|
+
}
|
|
52
55
|
async getStateReference() {
|
|
53
56
|
const snapshots = await Promise.all([
|
|
54
57
|
__classPrivateFieldGet(this, _MerkleTreeSnapshotOperationsFacade_instances, "m", _MerkleTreeSnapshotOperationsFacade_getTreeSnapshot).call(this, MerkleTreeId.NULLIFIER_TREE),
|
|
@@ -70,4 +73,4 @@ _MerkleTreeSnapshotOperationsFacade_treesDb = new WeakMap(), _MerkleTreeSnapshot
|
|
|
70
73
|
__classPrivateFieldSet(this, _MerkleTreeSnapshotOperationsFacade_treeSnapshots, await __classPrivateFieldGet(this, _MerkleTreeSnapshotOperationsFacade_treesDb, "f").getTreeSnapshots(__classPrivateFieldGet(this, _MerkleTreeSnapshotOperationsFacade_blockNumber, "f")), "f");
|
|
71
74
|
return __classPrivateFieldGet(this, _MerkleTreeSnapshotOperationsFacade_treeSnapshots, "f")[treeId];
|
|
72
75
|
};
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVya2xlX3RyZWVfc25hcHNob3Rfb3BlcmF0aW9uc19mYWNhZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd29ybGQtc3RhdGUtZGIvbWVya2xlX3RyZWVfc25hcHNob3Rfb3BlcmF0aW9uc19mYWNhZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFvQixNQUFNLHNCQUFzQixDQUFDO0FBT3RFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxFQUFFLEVBQWUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFPcEg7O0dBRUc7QUFDSCxNQUFNLE9BQU8sa0NBQWtDO0lBSzdDLFlBQVksS0FBa0IsRUFBRSxXQUFtQjs7UUFKbkQsOERBQXNCO1FBQ3RCLGtFQUFxQjtRQUNyQiw0REFBZ0MsRUFBUyxFQUFDO1FBR3hDLHVCQUFBLElBQUksK0NBQVksS0FBSyxNQUFBLENBQUM7UUFDdEIsdUJBQUEsSUFBSSxtREFBZ0IsV0FBVyxNQUFBLENBQUM7SUFDbEMsQ0FBQztJQVdELEtBQUssQ0FBQyxhQUFhLENBQTBCLE1BQVUsRUFBRSxLQUE2QjtRQUNwRixNQUFNLElBQUksR0FBRyxNQUFNLHVCQUFBLElBQUksMEdBQWlCLE1BQXJCLElBQUksRUFBa0IsTUFBTSxDQUFDLENBQUM7UUFDakQsMEJBQTBCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFZLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsS0FBSyxDQUFDLGtCQUFrQixDQUN0QixNQUFvQixFQUNwQixLQUE2QixFQUM3QixVQUFrQjtRQUVsQixNQUFNLElBQUksR0FBRyxNQUFNLHVCQUFBLElBQUksMEdBQWlCLE1BQXJCLElBQUksRUFBa0IsTUFBTSxDQUFDLENBQUM7UUFDakQsMEJBQTBCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQVksRUFBRSxVQUFVLENBQUMsQ0FBQztJ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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/world-state",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.66.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -62,13 +62,13 @@
|
|
|
62
62
|
]
|
|
63
63
|
},
|
|
64
64
|
"dependencies": {
|
|
65
|
-
"@aztec/circuit-types": "0.
|
|
66
|
-
"@aztec/circuits.js": "0.
|
|
67
|
-
"@aztec/foundation": "0.
|
|
68
|
-
"@aztec/kv-store": "0.
|
|
69
|
-
"@aztec/merkle-tree": "0.
|
|
70
|
-
"@aztec/telemetry-client": "0.
|
|
71
|
-
"@aztec/types": "0.
|
|
65
|
+
"@aztec/circuit-types": "0.66.0",
|
|
66
|
+
"@aztec/circuits.js": "0.66.0",
|
|
67
|
+
"@aztec/foundation": "0.66.0",
|
|
68
|
+
"@aztec/kv-store": "0.66.0",
|
|
69
|
+
"@aztec/merkle-tree": "0.66.0",
|
|
70
|
+
"@aztec/telemetry-client": "0.66.0",
|
|
71
|
+
"@aztec/types": "0.66.0",
|
|
72
72
|
"bindings": "^1.5.0",
|
|
73
73
|
"msgpackr": "^1.10.2",
|
|
74
74
|
"tslib": "^2.4.0",
|
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
type MerkleTreeLeafType,
|
|
6
6
|
type MerkleTreeReadOperations,
|
|
7
7
|
type MerkleTreeWriteOperations,
|
|
8
|
+
type SequentialInsertionResult,
|
|
8
9
|
SiblingPath,
|
|
9
10
|
type TreeInfo,
|
|
10
11
|
} from '@aztec/circuit-types';
|
|
@@ -165,6 +166,19 @@ export class MerkleTreesFacade implements MerkleTreeReadOperations {
|
|
|
165
166
|
treeId,
|
|
166
167
|
};
|
|
167
168
|
}
|
|
169
|
+
|
|
170
|
+
async getBlockNumbersForLeafIndices<ID extends MerkleTreeId>(
|
|
171
|
+
treeId: ID,
|
|
172
|
+
leafIndices: bigint[],
|
|
173
|
+
): Promise<(bigint | undefined)[]> {
|
|
174
|
+
const response = await this.instance.call(WorldStateMessageType.GET_BLOCK_NUMBERS_FOR_LEAF_INDICES, {
|
|
175
|
+
treeId,
|
|
176
|
+
revision: this.revision,
|
|
177
|
+
leafIndices,
|
|
178
|
+
});
|
|
179
|
+
|
|
180
|
+
return response.blockNumbers.map(x => (x === undefined || x === null ? undefined : BigInt(x)));
|
|
181
|
+
}
|
|
168
182
|
}
|
|
169
183
|
|
|
170
184
|
export class MerkleTreesForkFacade extends MerkleTreesFacade implements MerkleTreeWriteOperations {
|
|
@@ -221,6 +235,31 @@ export class MerkleTreesForkFacade extends MerkleTreesFacade implements MerkleTr
|
|
|
221
235
|
};
|
|
222
236
|
}
|
|
223
237
|
|
|
238
|
+
async sequentialInsert<TreeHeight extends number, ID extends IndexedTreeId>(
|
|
239
|
+
treeId: ID,
|
|
240
|
+
rawLeaves: Buffer[],
|
|
241
|
+
): Promise<SequentialInsertionResult<TreeHeight>> {
|
|
242
|
+
const leaves = rawLeaves.map((leaf: Buffer) => hydrateLeaf(treeId, leaf)).map(serializeLeaf);
|
|
243
|
+
const resp = await this.instance.call(WorldStateMessageType.SEQUENTIAL_INSERT, {
|
|
244
|
+
leaves,
|
|
245
|
+
treeId,
|
|
246
|
+
forkId: this.revision.forkId,
|
|
247
|
+
});
|
|
248
|
+
|
|
249
|
+
return {
|
|
250
|
+
lowLeavesWitnessData: resp.low_leaf_witness_data.map(data => ({
|
|
251
|
+
index: BigInt(data.index),
|
|
252
|
+
leafPreimage: deserializeIndexedLeaf(data.leaf),
|
|
253
|
+
siblingPath: new SiblingPath<TreeHeight>(data.path.length as any, data.path),
|
|
254
|
+
})),
|
|
255
|
+
insertionWitnessData: resp.insertion_witness_data.map(data => ({
|
|
256
|
+
index: BigInt(data.index),
|
|
257
|
+
leafPreimage: deserializeIndexedLeaf(data.leaf),
|
|
258
|
+
siblingPath: new SiblingPath<TreeHeight>(data.path.length as any, data.path),
|
|
259
|
+
})),
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
|
|
224
263
|
public async close(): Promise<void> {
|
|
225
264
|
assert.notEqual(this.revision.forkId, 0, 'Fork ID must be set');
|
|
226
265
|
await this.instance.call(WorldStateMessageType.DELETE_FORK, { forkId: this.revision.forkId });
|
package/src/native/message.ts
CHANGED
|
@@ -54,12 +54,14 @@ export enum WorldStateMessageType {
|
|
|
54
54
|
GET_LEAF_VALUE,
|
|
55
55
|
GET_LEAF_PREIMAGE,
|
|
56
56
|
GET_SIBLING_PATH,
|
|
57
|
+
GET_BLOCK_NUMBERS_FOR_LEAF_INDICES,
|
|
57
58
|
|
|
58
59
|
FIND_LEAF_INDEX,
|
|
59
60
|
FIND_LOW_LEAF,
|
|
60
61
|
|
|
61
62
|
APPEND_LEAVES,
|
|
62
63
|
BATCH_INSERT,
|
|
64
|
+
SEQUENTIAL_INSERT,
|
|
63
65
|
|
|
64
66
|
UPDATE_ARCHIVE,
|
|
65
67
|
|
|
@@ -138,6 +140,8 @@ export interface TreeDBStats {
|
|
|
138
140
|
leafPreimagesDBStats: DBStats;
|
|
139
141
|
/** Stats for the 'leaf indices' DB */
|
|
140
142
|
leafIndicesDBStats: DBStats;
|
|
143
|
+
/** Stats for the 'block indices' DB */
|
|
144
|
+
blockIndicesDBStats: DBStats;
|
|
141
145
|
}
|
|
142
146
|
|
|
143
147
|
export interface WorldStateMeta {
|
|
@@ -188,6 +192,7 @@ export function buildEmptyTreeDBStats() {
|
|
|
188
192
|
leafIndicesDBStats: buildEmptyDBStats(),
|
|
189
193
|
leafKeysDBStats: buildEmptyDBStats(),
|
|
190
194
|
leafPreimagesDBStats: buildEmptyDBStats(),
|
|
195
|
+
blockIndicesDBStats: buildEmptyDBStats(),
|
|
191
196
|
} as TreeDBStats;
|
|
192
197
|
}
|
|
193
198
|
|
|
@@ -270,6 +275,7 @@ export function sanitiseTreeDBStats(stats: TreeDBStats) {
|
|
|
270
275
|
stats.blocksDBStats = sanitiseDBStats(stats.blocksDBStats);
|
|
271
276
|
stats.leafIndicesDBStats = sanitiseDBStats(stats.leafIndicesDBStats);
|
|
272
277
|
stats.leafPreimagesDBStats = sanitiseDBStats(stats.leafPreimagesDBStats);
|
|
278
|
+
stats.blockIndicesDBStats = sanitiseDBStats(stats.blockIndicesDBStats);
|
|
273
279
|
stats.nodesDBStats = sanitiseDBStats(stats.nodesDBStats);
|
|
274
280
|
stats.mapSize = BigInt(stats.mapSize);
|
|
275
281
|
return stats;
|
|
@@ -343,6 +349,14 @@ interface GetTreeInfoResponse {
|
|
|
343
349
|
root: Buffer;
|
|
344
350
|
}
|
|
345
351
|
|
|
352
|
+
interface GetBlockNumbersForLeafIndicesRequest extends WithTreeId, WithWorldStateRevision {
|
|
353
|
+
leafIndices: bigint[];
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
interface GetBlockNumbersForLeafIndicesResponse {
|
|
357
|
+
blockNumbers: bigint[];
|
|
358
|
+
}
|
|
359
|
+
|
|
346
360
|
interface GetSiblingPathRequest extends WithTreeId, WithLeafIndex, WithWorldStateRevision {}
|
|
347
361
|
type GetSiblingPathResponse = Buffer[];
|
|
348
362
|
|
|
@@ -375,6 +389,7 @@ interface AppendLeavesRequest extends WithTreeId, WithForkId, WithLeaves {}
|
|
|
375
389
|
interface BatchInsertRequest extends WithTreeId, WithForkId, WithLeaves {
|
|
376
390
|
subtreeDepth: number;
|
|
377
391
|
}
|
|
392
|
+
|
|
378
393
|
interface BatchInsertResponse {
|
|
379
394
|
low_leaf_witness_data: ReadonlyArray<{
|
|
380
395
|
leaf: SerializedIndexedLeaf;
|
|
@@ -385,6 +400,21 @@ interface BatchInsertResponse {
|
|
|
385
400
|
subtree_path: Tuple<Buffer, number>;
|
|
386
401
|
}
|
|
387
402
|
|
|
403
|
+
interface SequentialInsertRequest extends WithTreeId, WithForkId, WithLeaves {}
|
|
404
|
+
|
|
405
|
+
interface SequentialInsertResponse {
|
|
406
|
+
low_leaf_witness_data: ReadonlyArray<{
|
|
407
|
+
leaf: SerializedIndexedLeaf;
|
|
408
|
+
index: bigint | number;
|
|
409
|
+
path: Tuple<Buffer, number>;
|
|
410
|
+
}>;
|
|
411
|
+
insertion_witness_data: ReadonlyArray<{
|
|
412
|
+
leaf: SerializedIndexedLeaf;
|
|
413
|
+
index: bigint | number;
|
|
414
|
+
path: Tuple<Buffer, number>;
|
|
415
|
+
}>;
|
|
416
|
+
}
|
|
417
|
+
|
|
388
418
|
interface UpdateArchiveRequest extends WithForkId {
|
|
389
419
|
blockStateRef: BlockStateReference;
|
|
390
420
|
blockHeaderHash: Buffer;
|
|
@@ -397,7 +427,7 @@ interface SyncBlockRequest {
|
|
|
397
427
|
paddedNoteHashes: readonly SerializedLeafValue[];
|
|
398
428
|
paddedL1ToL2Messages: readonly SerializedLeafValue[];
|
|
399
429
|
paddedNullifiers: readonly SerializedLeafValue[];
|
|
400
|
-
|
|
430
|
+
publicDataWrites: readonly SerializedLeafValue[];
|
|
401
431
|
}
|
|
402
432
|
|
|
403
433
|
interface CreateForkRequest {
|
|
@@ -429,12 +459,14 @@ export type WorldStateRequest = {
|
|
|
429
459
|
[WorldStateMessageType.GET_LEAF_VALUE]: GetLeafRequest;
|
|
430
460
|
[WorldStateMessageType.GET_LEAF_PREIMAGE]: GetLeafPreImageRequest;
|
|
431
461
|
[WorldStateMessageType.GET_SIBLING_PATH]: GetSiblingPathRequest;
|
|
462
|
+
[WorldStateMessageType.GET_BLOCK_NUMBERS_FOR_LEAF_INDICES]: GetBlockNumbersForLeafIndicesRequest;
|
|
432
463
|
|
|
433
464
|
[WorldStateMessageType.FIND_LEAF_INDEX]: FindLeafIndexRequest;
|
|
434
465
|
[WorldStateMessageType.FIND_LOW_LEAF]: FindLowLeafRequest;
|
|
435
466
|
|
|
436
467
|
[WorldStateMessageType.APPEND_LEAVES]: AppendLeavesRequest;
|
|
437
468
|
[WorldStateMessageType.BATCH_INSERT]: BatchInsertRequest;
|
|
469
|
+
[WorldStateMessageType.SEQUENTIAL_INSERT]: SequentialInsertRequest;
|
|
438
470
|
|
|
439
471
|
[WorldStateMessageType.UPDATE_ARCHIVE]: UpdateArchiveRequest;
|
|
440
472
|
|
|
@@ -463,12 +495,14 @@ export type WorldStateResponse = {
|
|
|
463
495
|
[WorldStateMessageType.GET_LEAF_VALUE]: GetLeafResponse;
|
|
464
496
|
[WorldStateMessageType.GET_LEAF_PREIMAGE]: GetLeafPreImageResponse;
|
|
465
497
|
[WorldStateMessageType.GET_SIBLING_PATH]: GetSiblingPathResponse;
|
|
498
|
+
[WorldStateMessageType.GET_BLOCK_NUMBERS_FOR_LEAF_INDICES]: GetBlockNumbersForLeafIndicesResponse;
|
|
466
499
|
|
|
467
500
|
[WorldStateMessageType.FIND_LEAF_INDEX]: FindLeafIndexResponse;
|
|
468
501
|
[WorldStateMessageType.FIND_LOW_LEAF]: FindLowLeafResponse;
|
|
469
502
|
|
|
470
503
|
[WorldStateMessageType.APPEND_LEAVES]: void;
|
|
471
504
|
[WorldStateMessageType.BATCH_INSERT]: BatchInsertResponse;
|
|
505
|
+
[WorldStateMessageType.SEQUENTIAL_INSERT]: SequentialInsertResponse;
|
|
472
506
|
|
|
473
507
|
[WorldStateMessageType.UPDATE_ARCHIVE]: void;
|
|
474
508
|
|
|
@@ -178,18 +178,14 @@ export class NativeWorldStateService implements MerkleTreeDatabase {
|
|
|
178
178
|
.flatMap(txEffect => padArrayEnd(txEffect.nullifiers, Fr.ZERO, MAX_NULLIFIERS_PER_TX))
|
|
179
179
|
.map(nullifier => new NullifierLeaf(nullifier));
|
|
180
180
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
return new PublicDataTreeLeaf(write.leafSlot, write.value);
|
|
190
|
-
}),
|
|
191
|
-
);
|
|
192
|
-
}
|
|
181
|
+
const publicDataWrites: PublicDataTreeLeaf[] = paddedTxEffects.flatMap(txEffect => {
|
|
182
|
+
return txEffect.publicDataWrites.map(write => {
|
|
183
|
+
if (write.isEmpty()) {
|
|
184
|
+
throw new Error('Public data write must not be empty when syncing');
|
|
185
|
+
}
|
|
186
|
+
return new PublicDataTreeLeaf(write.leafSlot, write.value);
|
|
187
|
+
});
|
|
188
|
+
});
|
|
193
189
|
|
|
194
190
|
return await this.instance.call(
|
|
195
191
|
WorldStateMessageType.SYNC_BLOCK,
|
|
@@ -199,7 +195,7 @@ export class NativeWorldStateService implements MerkleTreeDatabase {
|
|
|
199
195
|
paddedL1ToL2Messages: paddedL1ToL2Messages.map(serializeLeaf),
|
|
200
196
|
paddedNoteHashes: paddedNoteHashes.map(serializeLeaf),
|
|
201
197
|
paddedNullifiers: paddedNullifiers.map(serializeLeaf),
|
|
202
|
-
|
|
198
|
+
publicDataWrites: publicDataWrites.map(serializeLeaf),
|
|
203
199
|
blockStateRef: blockStateReference(l2Block.header.state),
|
|
204
200
|
},
|
|
205
201
|
this.sanitiseAndCacheSummaryFromFull.bind(this),
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
NULLIFIER_TREE_HEIGHT,
|
|
11
11
|
PUBLIC_DATA_TREE_HEIGHT,
|
|
12
12
|
} from '@aztec/circuits.js';
|
|
13
|
-
import { createDebugLogger
|
|
13
|
+
import { createDebugLogger } from '@aztec/foundation/log';
|
|
14
14
|
import { SerialQueue } from '@aztec/foundation/queue';
|
|
15
15
|
import { Timer } from '@aztec/foundation/timer';
|
|
16
16
|
|
|
@@ -200,12 +200,12 @@ export class NativeWorldState implements NativeWorldStateInstance {
|
|
|
200
200
|
data['notesCount'] = body.paddedNoteHashes.length;
|
|
201
201
|
data['nullifiersCount'] = body.paddedNullifiers.length;
|
|
202
202
|
data['l1ToL2MessagesCount'] = body.paddedL1ToL2Messages.length;
|
|
203
|
-
data['publicDataWritesCount'] = body.
|
|
203
|
+
data['publicDataWritesCount'] = body.publicDataWrites.length;
|
|
204
204
|
}
|
|
205
205
|
|
|
206
|
-
this.log.
|
|
206
|
+
this.log.trace(`Calling messageId=${messageId} ${WorldStateMessageType[messageType]}`, data);
|
|
207
207
|
} else {
|
|
208
|
-
this.log.
|
|
208
|
+
this.log.trace(`Calling messageId=${messageId} ${WorldStateMessageType[messageType]}`);
|
|
209
209
|
}
|
|
210
210
|
|
|
211
211
|
const timer = new Timer();
|
|
@@ -248,14 +248,12 @@ export class NativeWorldState implements NativeWorldStateInstance {
|
|
|
248
248
|
const response = TypedMessage.fromMessagePack<T, WorldStateResponse[T]>(decodedResponse);
|
|
249
249
|
const decodingDuration = timer.ms() - callDuration;
|
|
250
250
|
const totalDuration = timer.ms();
|
|
251
|
-
this.log.
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
})}`,
|
|
258
|
-
);
|
|
251
|
+
this.log.trace(`Call messageId=${messageId} ${WorldStateMessageType[messageType]} took (ms)`, {
|
|
252
|
+
totalDuration,
|
|
253
|
+
encodingDuration,
|
|
254
|
+
callDuration,
|
|
255
|
+
decodingDuration,
|
|
256
|
+
});
|
|
259
257
|
|
|
260
258
|
if (response.header.requestId !== request.header.messageId) {
|
|
261
259
|
throw new Error(
|
|
@@ -27,6 +27,12 @@ export async function createWorldState(
|
|
|
27
27
|
dataDirectory: config.worldStateDataDirectory ?? config.dataDirectory,
|
|
28
28
|
dataStoreMapSizeKB: config.worldStateDbMapSizeKb ?? config.dataStoreMapSizeKB,
|
|
29
29
|
} as DataStoreConfig;
|
|
30
|
+
|
|
31
|
+
if (!config.l1Contracts?.rollupAddress) {
|
|
32
|
+
throw new Error('Rollup address is required to create a world state synchronizer.');
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// If a data directory is provided in config, then create a persistent store.
|
|
30
36
|
const merkleTrees = ['true', '1'].includes(process.env.USE_LEGACY_WORLD_STATE ?? '')
|
|
31
37
|
? await MerkleTrees.new(
|
|
32
38
|
await createStore('world-state', newConfig, createDebugLogger('aztec:world-state:lmdb')),
|
|
@@ -5,7 +5,7 @@ import { type Gauge, type Meter, type TelemetryClient, ValueType } from '@aztec/
|
|
|
5
5
|
import { type DBStats, type TreeDBStats, type TreeMeta, type WorldStateStatusFull } from '../native/message.js';
|
|
6
6
|
|
|
7
7
|
type TreeTypeString = 'nullifier' | 'note_hash' | 'archive' | 'message' | 'public_data';
|
|
8
|
-
type DBTypeString = 'leaf_preimage' | 'leaf_indices' | 'nodes' | 'blocks';
|
|
8
|
+
type DBTypeString = 'leaf_preimage' | 'leaf_indices' | 'nodes' | 'blocks' | 'block_indices';
|
|
9
9
|
|
|
10
10
|
class TreeDBInstrumentation {
|
|
11
11
|
private dbNumItems: Gauge;
|
|
@@ -70,6 +70,7 @@ class TreeInstrumentation {
|
|
|
70
70
|
this.treeDbInstrumentation.set('nodes', new TreeDBInstrumentation(meter, treeName, 'nodes'));
|
|
71
71
|
this.treeDbInstrumentation.set('leaf_preimage', new TreeDBInstrumentation(meter, treeName, 'leaf_preimage'));
|
|
72
72
|
this.treeDbInstrumentation.set('leaf_indices', new TreeDBInstrumentation(meter, treeName, 'leaf_indices'));
|
|
73
|
+
this.treeDbInstrumentation.set('block_indices', new TreeDBInstrumentation(meter, treeName, 'block_indices'));
|
|
73
74
|
}
|
|
74
75
|
|
|
75
76
|
private updateDBMetrics(dbName: DBTypeString, dbStats: DBStats) {
|
|
@@ -92,6 +93,7 @@ class TreeInstrumentation {
|
|
|
92
93
|
this.updateDBMetrics('leaf_preimage', treeDbStats.leafPreimagesDBStats);
|
|
93
94
|
this.updateDBMetrics('blocks', treeDbStats.blocksDBStats);
|
|
94
95
|
this.updateDBMetrics('nodes', treeDbStats.nodesDBStats);
|
|
96
|
+
this.updateDBMetrics('block_indices', treeDbStats.blockIndicesDBStats);
|
|
95
97
|
}
|
|
96
98
|
}
|
|
97
99
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type L2Block, type MerkleTreeId } from '@aztec/circuit-types';
|
|
2
|
-
import { type
|
|
2
|
+
import { type ForkMerkleTreeOperations, type MerkleTreeReadOperations } from '@aztec/circuit-types/interfaces';
|
|
3
3
|
import { type Fr, MAX_NULLIFIERS_PER_TX, MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX } from '@aztec/circuits.js';
|
|
4
4
|
import { type IndexedTreeSnapshot, type TreeSnapshot } from '@aztec/merkle-tree';
|
|
5
5
|
|
|
@@ -32,7 +32,7 @@ export type TreeSnapshots = {
|
|
|
32
32
|
[MerkleTreeId.ARCHIVE]: TreeSnapshot<Fr>;
|
|
33
33
|
};
|
|
34
34
|
|
|
35
|
-
export interface MerkleTreeAdminDatabase {
|
|
35
|
+
export interface MerkleTreeAdminDatabase extends ForkMerkleTreeOperations {
|
|
36
36
|
/**
|
|
37
37
|
* Handles a single L2 block (i.e. Inserts the new note hashes into the merkle tree).
|
|
38
38
|
* @param block - The L2 block to handle.
|
|
@@ -45,18 +45,6 @@ export interface MerkleTreeAdminDatabase {
|
|
|
45
45
|
*/
|
|
46
46
|
getCommitted(): MerkleTreeReadOperations;
|
|
47
47
|
|
|
48
|
-
/**
|
|
49
|
-
* Gets a handle that allows reading the state as it was at the given block number
|
|
50
|
-
* @param blockNumber - The block number to get the snapshot for
|
|
51
|
-
*/
|
|
52
|
-
getSnapshot(blockNumber: number): MerkleTreeReadOperations;
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Forks the database at its current state.
|
|
56
|
-
* @param blockNumber - The block number to fork at. If not provided, the current block number is used.
|
|
57
|
-
*/
|
|
58
|
-
fork(blockNumber?: number): Promise<MerkleTreeWriteOperations>;
|
|
59
|
-
|
|
60
48
|
/**
|
|
61
49
|
* Removes all historical snapshots up to but not including the given block number
|
|
62
50
|
* @param toBlockNumber The block number of the new oldest historical block
|