@aztec/world-state 0.16.1 → 0.16.3
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/README.md +2 -2
- package/dest/merkle-tree/merkle_tree_operations_facade.d.ts +11 -9
- package/dest/merkle-tree/merkle_tree_operations_facade.d.ts.map +1 -1
- package/dest/merkle-tree/merkle_tree_operations_facade.js +7 -6
- package/dest/merkle-tree/merkle_tree_snapshot_operations_facade.d.ts +40 -0
- package/dest/merkle-tree/merkle_tree_snapshot_operations_facade.d.ts.map +1 -0
- package/dest/merkle-tree/merkle_tree_snapshot_operations_facade.js +100 -0
- package/dest/synchronizer/server_world_state_synchronizer.d.ts +3 -2
- package/dest/synchronizer/server_world_state_synchronizer.d.ts.map +1 -1
- package/dest/synchronizer/server_world_state_synchronizer.js +9 -5
- package/dest/synchronizer/world_state_synchronizer.d.ts +8 -2
- package/dest/synchronizer/world_state_synchronizer.d.ts.map +1 -1
- package/dest/world-state-db/index.d.ts +0 -1
- package/dest/world-state-db/index.d.ts.map +1 -1
- package/dest/world-state-db/merkle_tree_db.d.ts +16 -8
- package/dest/world-state-db/merkle_tree_db.d.ts.map +1 -1
- package/dest/world-state-db/merkle_tree_db.js +1 -1
- package/dest/world-state-db/merkle_trees.d.ts +12 -9
- package/dest/world-state-db/merkle_trees.d.ts.map +1 -1
- package/dest/world-state-db/merkle_trees.js +33 -22
- package/package.json +5 -5
- package/src/merkle-tree/merkle_tree_operations_facade.ts +29 -27
- package/src/merkle-tree/merkle_tree_snapshot_operations_facade.ts +143 -0
- package/src/synchronizer/server_world_state_synchronizer.ts +10 -5
- package/src/synchronizer/world_state_synchronizer.ts +9 -2
- package/src/world-state-db/index.ts +0 -1
- package/src/world-state-db/merkle_tree_db.ts +28 -18
- package/src/world-state-db/merkle_trees.ts +60 -49
package/README.md
CHANGED
|
@@ -11,9 +11,9 @@ As of the time of writing the collection consisted of the following trees.
|
|
|
11
11
|
#### Standard 'Append Only' trees
|
|
12
12
|
|
|
13
13
|
- The Contract Tree. Every contract created within the system has a 'Function Tree', a tree of leaves generated from the functions on the contract. The root of the function tree is inserted as a leaf in the contracts tree.
|
|
14
|
-
- The Contract Tree Roots Tree. A tree whose leaves are the
|
|
14
|
+
- The Contract Tree Roots Tree. A tree whose leaves are the historical roots of the contract tree.
|
|
15
15
|
- The Note Hash Tree. A tree whose leaves are the note hashes of notes generated by the private contract function calls within the system.
|
|
16
|
-
- The Note Hash Tree Roots Tree. A tree whose leaves are the
|
|
16
|
+
- The Note Hash Tree Roots Tree. A tree whose leaves are the historical roots of the note hash tree.
|
|
17
17
|
|
|
18
18
|
#### Indexed trees
|
|
19
19
|
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
import { NullifierLeafPreimage } from '@aztec/circuits.js';
|
|
2
3
|
import { Fr } from '@aztec/foundation/fields';
|
|
3
|
-
import {
|
|
4
|
+
import { IndexedTreeLeafPreimage } from '@aztec/foundation/trees';
|
|
5
|
+
import { BatchInsertionResult } from '@aztec/merkle-tree';
|
|
4
6
|
import { L2Block, MerkleTreeId, SiblingPath } from '@aztec/types';
|
|
5
|
-
import { CurrentTreeRoots, HandleL2BlockResult,
|
|
7
|
+
import { CurrentTreeRoots, HandleL2BlockResult, MerkleTreeDb, MerkleTreeOperations, TreeInfo } from '../index.js';
|
|
6
8
|
/**
|
|
7
9
|
* Wraps a MerkleTreeDbOperations to call all functions with a preset includeUncommitted flag.
|
|
8
10
|
*/
|
|
@@ -47,12 +49,12 @@ export declare class MerkleTreeOperationsFacade implements MerkleTreeOperations
|
|
|
47
49
|
/**
|
|
48
50
|
* The index of the found leaf.
|
|
49
51
|
*/
|
|
50
|
-
index:
|
|
52
|
+
index: bigint;
|
|
51
53
|
/**
|
|
52
54
|
* A flag indicating if the corresponding leaf's value is equal to `newValue`.
|
|
53
55
|
*/
|
|
54
56
|
alreadyPresent: boolean;
|
|
55
|
-
}>;
|
|
57
|
+
} | undefined>;
|
|
56
58
|
/**
|
|
57
59
|
* Updates a leaf in a tree at a given index.
|
|
58
60
|
* @param treeId - The ID of the tree.
|
|
@@ -60,14 +62,14 @@ export declare class MerkleTreeOperationsFacade implements MerkleTreeOperations
|
|
|
60
62
|
* @param index - The index to insert into.
|
|
61
63
|
* @returns Empty promise.
|
|
62
64
|
*/
|
|
63
|
-
updateLeaf(treeId: MerkleTreeId.NULLIFIER_TREE, leaf:
|
|
65
|
+
updateLeaf(treeId: MerkleTreeId.NULLIFIER_TREE, leaf: NullifierLeafPreimage, index: bigint): Promise<void>;
|
|
64
66
|
/**
|
|
65
67
|
* Gets the leaf data at a given index and tree.
|
|
66
68
|
* @param treeId - The ID of the tree get the leaf from.
|
|
67
69
|
* @param index - The index of the leaf to get.
|
|
68
|
-
* @returns Leaf
|
|
70
|
+
* @returns Leaf preimage.
|
|
69
71
|
*/
|
|
70
|
-
|
|
72
|
+
getLeafPreimage(treeId: MerkleTreeId.NULLIFIER_TREE, index: bigint): Promise<IndexedTreeLeafPreimage | undefined>;
|
|
71
73
|
/**
|
|
72
74
|
* Returns the index of a leaf given its value, or undefined if no leaf with that value is found.
|
|
73
75
|
* @param treeId - The ID of the tree.
|
|
@@ -89,7 +91,7 @@ export declare class MerkleTreeOperationsFacade implements MerkleTreeOperations
|
|
|
89
91
|
* @param globalVariablesHash - The hash of the current global variables to include in the block hash.
|
|
90
92
|
* @returns Empty promise.
|
|
91
93
|
*/
|
|
92
|
-
|
|
94
|
+
updateBlocksTree(globalVariablesHash: Fr): Promise<void>;
|
|
93
95
|
/**
|
|
94
96
|
* Updates the latest global variables hash
|
|
95
97
|
* @param globalVariablesHash - The latest global variables hash
|
|
@@ -122,6 +124,6 @@ export declare class MerkleTreeOperationsFacade implements MerkleTreeOperations
|
|
|
122
124
|
* @param subtreeHeight - Height of the subtree.
|
|
123
125
|
* @returns The data for the leaves to be updated when inserting the new ones.
|
|
124
126
|
*/
|
|
125
|
-
batchInsert(treeId: MerkleTreeId, leaves: Buffer[], subtreeHeight: number): Promise<
|
|
127
|
+
batchInsert<TreeHeight extends number, SubtreeSiblingPathHeight extends number>(treeId: MerkleTreeId, leaves: Buffer[], subtreeHeight: number): Promise<BatchInsertionResult<TreeHeight, SubtreeSiblingPathHeight>>;
|
|
126
128
|
}
|
|
127
129
|
//# sourceMappingURL=merkle_tree_operations_facade.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merkle_tree_operations_facade.d.ts","sourceRoot":"","sources":["../../src/merkle-tree/merkle_tree_operations_facade.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"merkle_tree_operations_facade.d.ts","sourceRoot":"","sources":["../../src/merkle-tree/merkle_tree_operations_facade.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAElE,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,YAAY,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAElH;;GAEG;AACH,qBAAa,0BAA2B,YAAW,oBAAoB;IACzD,OAAO,CAAC,KAAK;IAAgB,OAAO,CAAC,kBAAkB;gBAA/C,KAAK,EAAE,YAAY,EAAU,kBAAkB,EAAE,OAAO;IAE5E;;;;;OAKG;IACH,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIpD;;;OAGG;IACH,YAAY,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAIzC;;;;;OAKG;IACH,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAInE;;;;;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,CACnB,MAAM,EAAE,YAAY,CAAC,cAAc,EACnC,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;;;;;;OAMG;IACH,UAAU,CAAC,MAAM,EAAE,YAAY,CAAC,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1G;;;;;OAKG;IACG,eAAe,CACnB,MAAM,EAAE,YAAY,CAAC,cAAc,EACnC,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC;IAK/C;;;;;OAKG;IACH,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAI/E;;;;;;OAMG;IACH,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAI9E;;;;;OAKG;IACI,gBAAgB,CAAC,mBAAmB,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/D;;;OAGG;IACI,+BAA+B,CAAC,mBAAmB,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9E;;OAEG;IACI,4BAA4B,IAAI,OAAO,CAAC,EAAE,CAAC;IAIlD;;;;OAIG;IACI,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAIlE;;;OAGG;IACU,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAIpC;;;OAGG;IACU,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAItC;;;;;;OAMG;IACI,WAAW,CAAC,UAAU,SAAS,MAAM,EAAE,wBAAwB,SAAS,MAAM,EACnF,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,MAAM,EAAE,EAChB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,oBAAoB,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC;CAGvE"}
|
|
@@ -65,10 +65,11 @@ export class MerkleTreeOperationsFacade {
|
|
|
65
65
|
* Gets the leaf data at a given index and tree.
|
|
66
66
|
* @param treeId - The ID of the tree get the leaf from.
|
|
67
67
|
* @param index - The index of the leaf to get.
|
|
68
|
-
* @returns Leaf
|
|
68
|
+
* @returns Leaf preimage.
|
|
69
69
|
*/
|
|
70
|
-
|
|
71
|
-
|
|
70
|
+
async getLeafPreimage(treeId, index) {
|
|
71
|
+
const preimage = await this.trees.getLeafPreimage(treeId, index, this.includeUncommitted);
|
|
72
|
+
return preimage;
|
|
72
73
|
}
|
|
73
74
|
/**
|
|
74
75
|
* Returns the index of a leaf given its value, or undefined if no leaf with that value is found.
|
|
@@ -95,8 +96,8 @@ export class MerkleTreeOperationsFacade {
|
|
|
95
96
|
* @param globalVariablesHash - The hash of the current global variables to include in the block hash.
|
|
96
97
|
* @returns Empty promise.
|
|
97
98
|
*/
|
|
98
|
-
|
|
99
|
-
return this.trees.
|
|
99
|
+
updateBlocksTree(globalVariablesHash) {
|
|
100
|
+
return this.trees.updateBlocksTree(globalVariablesHash, this.includeUncommitted);
|
|
100
101
|
}
|
|
101
102
|
/**
|
|
102
103
|
* Updates the latest global variables hash
|
|
@@ -144,4 +145,4 @@ export class MerkleTreeOperationsFacade {
|
|
|
144
145
|
return this.trees.batchInsert(treeId, leaves, subtreeHeight);
|
|
145
146
|
}
|
|
146
147
|
}
|
|
147
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVya2xlX3RyZWVfb3BlcmF0aW9uc19mYWNhZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWVya2xlLXRyZWUvbWVya2xlX3RyZWVfb3BlcmF0aW9uc19mYWNhZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUE7O0dBRUc7QUFDSCxNQUFNLE9BQU8sMEJBQTBCO0lBQ3JDLFlBQW9CLEtBQW1CLEVBQVUsa0JBQTJCO1FBQXhELFVBQUssR0FBTCxLQUFLLENBQWM7UUFBVSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQVM7SUFBRyxDQUFDO0lBRWhGOzs7OztPQUtHO0lBQ0gsV0FBVyxDQUFDLE1BQW9CO1FBQzlCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRDs7O09BR0c7SUFDSCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxZQUFZLENBQUMsTUFBb0IsRUFBRSxNQUFnQjtRQUNqRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsY0FBYyxDQUFtQixNQUFvQixFQUFFLEtBQWE7UUFDeEUsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3JGLE9BQU8sSUFBaUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gscUJBQXFCLENBQ25CLE1BQW1DLEVBQ25DLEtBQWE7UUFjYixPQUFPLElBQUksQ0FB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
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
import { Fr } from '@aztec/circuits.js';
|
|
3
|
+
import { IndexedTreeLeafPreimage } from '@aztec/foundation/trees';
|
|
4
|
+
import { BatchInsertionResult } from '@aztec/merkle-tree';
|
|
5
|
+
import { MerkleTreeId, SiblingPath } from '@aztec/types';
|
|
6
|
+
import { CurrentTreeRoots, HandleL2BlockResult, MerkleTreeDb, MerkleTreeOperations, TreeInfo } from '../index.js';
|
|
7
|
+
/**
|
|
8
|
+
* Merkle tree operations on readonly tree snapshots.
|
|
9
|
+
*/
|
|
10
|
+
export declare class MerkleTreeSnapshotOperationsFacade implements MerkleTreeOperations {
|
|
11
|
+
#private;
|
|
12
|
+
constructor(trees: MerkleTreeDb, blockNumber: number);
|
|
13
|
+
findLeafIndex(treeId: MerkleTreeId, value: Buffer): Promise<bigint | undefined>;
|
|
14
|
+
getLatestGlobalVariablesHash(): Promise<Fr>;
|
|
15
|
+
getLeafPreimage(treeId: MerkleTreeId.NULLIFIER_TREE, index: bigint): Promise<IndexedTreeLeafPreimage | undefined>;
|
|
16
|
+
getLeafValue(treeId: MerkleTreeId, index: bigint): Promise<Buffer | undefined>;
|
|
17
|
+
getPreviousValueIndex(_treeId: MerkleTreeId.NULLIFIER_TREE, _value: bigint): Promise<{
|
|
18
|
+
/**
|
|
19
|
+
* The index of the found leaf.
|
|
20
|
+
*/
|
|
21
|
+
index: bigint;
|
|
22
|
+
/**
|
|
23
|
+
* A flag indicating if the corresponding leaf's value is equal to `newValue`.
|
|
24
|
+
*/
|
|
25
|
+
alreadyPresent: boolean;
|
|
26
|
+
} | undefined>;
|
|
27
|
+
getSiblingPath<N extends number>(treeId: MerkleTreeId, index: bigint): Promise<SiblingPath<N>>;
|
|
28
|
+
getTreeInfo(treeId: MerkleTreeId): Promise<TreeInfo>;
|
|
29
|
+
getTreeRoots(): Promise<CurrentTreeRoots>;
|
|
30
|
+
appendLeaves(): Promise<void>;
|
|
31
|
+
batchInsert<TreeHeight extends number, SubtreeSiblingPathHeight extends number>(): Promise<BatchInsertionResult<TreeHeight, SubtreeSiblingPathHeight>>;
|
|
32
|
+
updateBlocksTree(): Promise<void>;
|
|
33
|
+
commit(): Promise<void>;
|
|
34
|
+
handleL2Block(): Promise<HandleL2BlockResult>;
|
|
35
|
+
rollback(): Promise<void>;
|
|
36
|
+
updateHistoricBlocksTree(): Promise<void>;
|
|
37
|
+
updateLatestGlobalVariablesHash(): Promise<void>;
|
|
38
|
+
updateLeaf(): Promise<void>;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=merkle_tree_snapshot_operations_facade.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merkle_tree_snapshot_operations_facade.d.ts","sourceRoot":"","sources":["../../src/merkle-tree/merkle_tree_snapshot_operations_facade.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAqC,MAAM,oBAAoB,CAAC;AAC7F,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,YAAY,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAElH;;GAEG;AACH,qBAAa,kCAAmC,YAAW,oBAAoB;;gBAKjE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM;IAc9C,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAKrF,4BAA4B,IAAI,OAAO,CAAC,EAAE,CAAC;IAIrC,eAAe,CACnB,MAAM,EAAE,YAAY,CAAC,cAAc,EACnC,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC;IAKzC,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAKpF,qBAAqB,CACnB,OAAO,EAAE,YAAY,CAAC,cAAc,EACpC,MAAM,EAAE,MAAM,GACb,OAAO,CACN;QACE;;WAEG;QACH,KAAK,EAAE,MAAM,CAAC;QACd;;WAEG;QACH,cAAc,EAAE,OAAO,CAAC;KACzB,GACD,SAAS,CACZ;IAIK,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;IAUpD,YAAY,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAoB/C,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7B,WAAW,CAAC,UAAU,SAAS,MAAM,EAAE,wBAAwB,SAAS,MAAM,KAAK,OAAO,CACxF,oBAAoB,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAC3D;IAID,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvB,aAAa,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAI7C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzB,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzC,+BAA+B,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAG5B"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
var _MerkleTreeSnapshotOperationsFacade_instances, _MerkleTreeSnapshotOperationsFacade_treesDb, _MerkleTreeSnapshotOperationsFacade_blockNumber, _MerkleTreeSnapshotOperationsFacade_treeSnapshots, _MerkleTreeSnapshotOperationsFacade_getTreeSnapshot;
|
|
2
|
+
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
3
|
+
import { MerkleTreeId } from '@aztec/types';
|
|
4
|
+
/**
|
|
5
|
+
* Merkle tree operations on readonly tree snapshots.
|
|
6
|
+
*/
|
|
7
|
+
export class MerkleTreeSnapshotOperationsFacade {
|
|
8
|
+
constructor(trees, blockNumber) {
|
|
9
|
+
_MerkleTreeSnapshotOperationsFacade_instances.add(this);
|
|
10
|
+
_MerkleTreeSnapshotOperationsFacade_treesDb.set(this, void 0);
|
|
11
|
+
_MerkleTreeSnapshotOperationsFacade_blockNumber.set(this, void 0);
|
|
12
|
+
_MerkleTreeSnapshotOperationsFacade_treeSnapshots.set(this, []);
|
|
13
|
+
__classPrivateFieldSet(this, _MerkleTreeSnapshotOperationsFacade_treesDb, trees, "f");
|
|
14
|
+
__classPrivateFieldSet(this, _MerkleTreeSnapshotOperationsFacade_blockNumber, blockNumber, "f");
|
|
15
|
+
}
|
|
16
|
+
async findLeafIndex(treeId, value) {
|
|
17
|
+
const tree = await __classPrivateFieldGet(this, _MerkleTreeSnapshotOperationsFacade_instances, "m", _MerkleTreeSnapshotOperationsFacade_getTreeSnapshot).call(this, treeId);
|
|
18
|
+
return tree.findLeafIndex(value);
|
|
19
|
+
}
|
|
20
|
+
getLatestGlobalVariablesHash() {
|
|
21
|
+
return Promise.reject(new Error('not implemented'));
|
|
22
|
+
}
|
|
23
|
+
async getLeafPreimage(treeId, index) {
|
|
24
|
+
const snapshot = (await __classPrivateFieldGet(this, _MerkleTreeSnapshotOperationsFacade_instances, "m", _MerkleTreeSnapshotOperationsFacade_getTreeSnapshot).call(this, treeId));
|
|
25
|
+
return snapshot.getLatestLeafPreimageCopy(BigInt(index));
|
|
26
|
+
}
|
|
27
|
+
async getLeafValue(treeId, index) {
|
|
28
|
+
const snapshot = await __classPrivateFieldGet(this, _MerkleTreeSnapshotOperationsFacade_instances, "m", _MerkleTreeSnapshotOperationsFacade_getTreeSnapshot).call(this, treeId);
|
|
29
|
+
return snapshot.getLeafValue(BigInt(index));
|
|
30
|
+
}
|
|
31
|
+
getPreviousValueIndex(_treeId, _value) {
|
|
32
|
+
return Promise.reject(new Error('not implemented'));
|
|
33
|
+
}
|
|
34
|
+
async getSiblingPath(treeId, index) {
|
|
35
|
+
const snapshot = await __classPrivateFieldGet(this, _MerkleTreeSnapshotOperationsFacade_instances, "m", _MerkleTreeSnapshotOperationsFacade_getTreeSnapshot).call(this, treeId);
|
|
36
|
+
return snapshot.getSiblingPath(index);
|
|
37
|
+
}
|
|
38
|
+
async getTreeInfo(treeId) {
|
|
39
|
+
const snapshot = await __classPrivateFieldGet(this, _MerkleTreeSnapshotOperationsFacade_instances, "m", _MerkleTreeSnapshotOperationsFacade_getTreeSnapshot).call(this, treeId);
|
|
40
|
+
return {
|
|
41
|
+
depth: snapshot.getDepth(),
|
|
42
|
+
root: snapshot.getRoot(),
|
|
43
|
+
size: snapshot.getNumLeaves(),
|
|
44
|
+
treeId,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
async getTreeRoots() {
|
|
48
|
+
const snapshots = await Promise.all([
|
|
49
|
+
__classPrivateFieldGet(this, _MerkleTreeSnapshotOperationsFacade_instances, "m", _MerkleTreeSnapshotOperationsFacade_getTreeSnapshot).call(this, MerkleTreeId.CONTRACT_TREE),
|
|
50
|
+
__classPrivateFieldGet(this, _MerkleTreeSnapshotOperationsFacade_instances, "m", _MerkleTreeSnapshotOperationsFacade_getTreeSnapshot).call(this, MerkleTreeId.NULLIFIER_TREE),
|
|
51
|
+
__classPrivateFieldGet(this, _MerkleTreeSnapshotOperationsFacade_instances, "m", _MerkleTreeSnapshotOperationsFacade_getTreeSnapshot).call(this, MerkleTreeId.NOTE_HASH_TREE),
|
|
52
|
+
__classPrivateFieldGet(this, _MerkleTreeSnapshotOperationsFacade_instances, "m", _MerkleTreeSnapshotOperationsFacade_getTreeSnapshot).call(this, MerkleTreeId.PUBLIC_DATA_TREE),
|
|
53
|
+
__classPrivateFieldGet(this, _MerkleTreeSnapshotOperationsFacade_instances, "m", _MerkleTreeSnapshotOperationsFacade_getTreeSnapshot).call(this, MerkleTreeId.L1_TO_L2_MESSAGES_TREE),
|
|
54
|
+
__classPrivateFieldGet(this, _MerkleTreeSnapshotOperationsFacade_instances, "m", _MerkleTreeSnapshotOperationsFacade_getTreeSnapshot).call(this, MerkleTreeId.BLOCKS_TREE),
|
|
55
|
+
]);
|
|
56
|
+
return {
|
|
57
|
+
blocksTreeRoot: snapshots[MerkleTreeId.BLOCKS_TREE].getRoot(),
|
|
58
|
+
contractDataTreeRoot: snapshots[MerkleTreeId.CONTRACT_TREE].getRoot(),
|
|
59
|
+
l1Tol2MessagesTreeRoot: snapshots[MerkleTreeId.L1_TO_L2_MESSAGES_TREE].getRoot(),
|
|
60
|
+
noteHashTreeRoot: snapshots[MerkleTreeId.NOTE_HASH_TREE].getRoot(),
|
|
61
|
+
nullifierTreeRoot: snapshots[MerkleTreeId.NULLIFIER_TREE].getRoot(),
|
|
62
|
+
publicDataTreeRoot: snapshots[MerkleTreeId.PUBLIC_DATA_TREE].getRoot(),
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
appendLeaves() {
|
|
66
|
+
return Promise.reject(new Error('Tree snapshot operations are read-only'));
|
|
67
|
+
}
|
|
68
|
+
batchInsert() {
|
|
69
|
+
return Promise.reject(new Error('Tree snapshot operations are read-only'));
|
|
70
|
+
}
|
|
71
|
+
updateBlocksTree() {
|
|
72
|
+
return Promise.reject(new Error('Tree snapshot operations are read-only'));
|
|
73
|
+
}
|
|
74
|
+
commit() {
|
|
75
|
+
return Promise.reject(new Error('Tree snapshot operations are read-only'));
|
|
76
|
+
}
|
|
77
|
+
handleL2Block() {
|
|
78
|
+
return Promise.reject(new Error('Tree snapshot operations are read-only'));
|
|
79
|
+
}
|
|
80
|
+
rollback() {
|
|
81
|
+
return Promise.reject(new Error('Tree snapshot operations are read-only'));
|
|
82
|
+
}
|
|
83
|
+
updateHistoricBlocksTree() {
|
|
84
|
+
return Promise.reject(new Error('Tree snapshot operations are read-only'));
|
|
85
|
+
}
|
|
86
|
+
updateLatestGlobalVariablesHash() {
|
|
87
|
+
return Promise.reject(new Error('Tree snapshot operations are read-only'));
|
|
88
|
+
}
|
|
89
|
+
updateLeaf() {
|
|
90
|
+
return Promise.reject(new Error('Tree snapshot operations are read-only'));
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
_MerkleTreeSnapshotOperationsFacade_treesDb = new WeakMap(), _MerkleTreeSnapshotOperationsFacade_blockNumber = new WeakMap(), _MerkleTreeSnapshotOperationsFacade_treeSnapshots = new WeakMap(), _MerkleTreeSnapshotOperationsFacade_instances = new WeakSet(), _MerkleTreeSnapshotOperationsFacade_getTreeSnapshot = async function _MerkleTreeSnapshotOperationsFacade_getTreeSnapshot(merkleTreeId) {
|
|
94
|
+
if (__classPrivateFieldGet(this, _MerkleTreeSnapshotOperationsFacade_treeSnapshots, "f")[merkleTreeId]) {
|
|
95
|
+
return __classPrivateFieldGet(this, _MerkleTreeSnapshotOperationsFacade_treeSnapshots, "f")[merkleTreeId];
|
|
96
|
+
}
|
|
97
|
+
__classPrivateFieldSet(this, _MerkleTreeSnapshotOperationsFacade_treeSnapshots, await __classPrivateFieldGet(this, _MerkleTreeSnapshotOperationsFacade_treesDb, "f").getSnapshot(__classPrivateFieldGet(this, _MerkleTreeSnapshotOperationsFacade_blockNumber, "f")), "f");
|
|
98
|
+
return __classPrivateFieldGet(this, _MerkleTreeSnapshotOperationsFacade_treeSnapshots, "f")[merkleTreeId];
|
|
99
|
+
};
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVya2xlX3RyZWVfc25hcHNob3Rfb3BlcmF0aW9uc19mYWNhZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWVya2xlLXRyZWUvbWVya2xlX3RyZWVfc25hcHNob3Rfb3BlcmF0aW9uc19mYWNhZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSxPQUFPLEVBQUUsWUFBWSxFQUFlLE1BQU0sY0FBYyxDQUFDO0FBSXpEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGtDQUFrQztJQUs3QyxZQUFZLEtBQW1CLEVBQUUsV0FBbUI7O1FBSnBELDhEQUF1QjtRQUN2QixrRUFBcUI7UUFDckIsNERBQW9FLEVBQUUsRUFBQztRQUdyRSx1QkFBQSxJQUFJLCtDQUFZLEtBQUssTUFBQSxDQUFDO1FBQ3RCLHVCQUFBLElBQUksbURBQWdCLFdBQVcsTUFBQSxDQUFDO0lBQ2xDLENBQUM7SUFXRCxLQUFLLENBQUMsYUFBYSxDQUFDLE1BQW9CLEVBQUUsS0FBYTtRQUNyRCxNQUFNLElBQUksR0FBRyxNQUFNLHVCQUFBLElBQUksMEdBQWlCLE1BQXJCLElBQUksRUFBa0IsTUFBTSxDQUFDLENBQUM7UUFDakQsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCw0QkFBNEI7UUFDMUIsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsS0FBSyxDQUFDLGVBQWUsQ0FDbkIsTUFBbUMsRUFDbkMsS0FBYTtRQUViLE1BQU0sUUFBUSxHQUFHLENBQUMsTUFBTSx1QkFBQSxJQUFJLDBHQUFpQixNQUFyQixJQUFJLEVBQWtCLE1BQU0sQ0FBQyxDQUF3QixDQUFDO1FBQzlFLE9BQU8sUUFBUSxDQUFDLHlCQUF5QixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxLQUFL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
|
|
@@ -26,6 +26,7 @@ export declare class ServerWorldStateSynchronizer implements WorldStateSynchroni
|
|
|
26
26
|
private constructor();
|
|
27
27
|
getLatest(): MerkleTreeOperations;
|
|
28
28
|
getCommitted(): MerkleTreeOperations;
|
|
29
|
+
getSnapshot(blockNumber: number): MerkleTreeOperations;
|
|
29
30
|
static new(db: LevelUp, merkleTreeDb: MerkleTrees, l2BlockSource: L2BlockSource, config: WorldStateConfig, log?: import("@aztec/foundation/log").DebugLogger): Promise<ServerWorldStateSynchronizer>;
|
|
30
31
|
start(): Promise<void>;
|
|
31
32
|
stop(): Promise<void>;
|
|
@@ -33,9 +34,9 @@ export declare class ServerWorldStateSynchronizer implements WorldStateSynchroni
|
|
|
33
34
|
/**
|
|
34
35
|
* Forces an immediate sync
|
|
35
36
|
* @param minBlockNumber - The minimum block number that we must sync to
|
|
36
|
-
* @returns A promise that resolves
|
|
37
|
+
* @returns A promise that resolves with the block number the world state was synced to
|
|
37
38
|
*/
|
|
38
|
-
syncImmediate(minBlockNumber?: number): Promise<
|
|
39
|
+
syncImmediate(minBlockNumber?: number): Promise<number>;
|
|
39
40
|
/**
|
|
40
41
|
* Checks for the availability of new blocks and processes them.
|
|
41
42
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server_world_state_synchronizer.d.ts","sourceRoot":"","sources":["../../src/synchronizer/server_world_state_synchronizer.ts"],"names":[],"mappings":"AAGA,OAAO,EAA8B,aAAa,EAAE,MAAM,cAAc,CAAC;AAGzE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,OAAO,EAAuB,oBAAoB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"server_world_state_synchronizer.d.ts","sourceRoot":"","sources":["../../src/synchronizer/server_world_state_synchronizer.ts"],"names":[],"mappings":"AAGA,OAAO,EAA8B,aAAa,EAAE,MAAM,cAAc,CAAC;AAGzE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,OAAO,EAAuB,oBAAoB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAGrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAA0B,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAIjH;;;;GAIG;AACH,qBAAa,4BAA6B,YAAW,sBAAsB;;IAavE,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,aAAa;IAErB,OAAO,CAAC,GAAG;IAhBb,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,wBAAwB,CAAK;IAErC,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,WAAW,CAAoC;IACvD,OAAO,CAAC,WAAW,CAAC,CAAyB;IAC7C,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,cAAc,CAAoC;IAC1D,OAAO,CAAC,YAAY,CAAuD;IAE3E,OAAO;IAcA,SAAS,IAAI,oBAAoB;IAIjC,YAAY,IAAI,oBAAoB;IAIpC,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,oBAAoB;WAIzC,GAAG,CACrB,EAAE,EAAE,OAAO,EACX,YAAY,EAAE,WAAW,EACzB,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,gBAAgB,EACxB,GAAG,8CAAyC;IAWjC,KAAK;IAwCL,IAAI;IAWV,MAAM,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAQ1C;;;;OAIG;IACU,aAAa,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAoCpE;;OAEG;YACW,uBAAuB;IAOrC;;;;OAIG;YACW,cAAc;IAY5B;;;OAGG;YACW,aAAa;IAe3B;;;OAGG;IACH,OAAO,CAAC,eAAe;YAKT,0BAA0B;YAO1B,2BAA2B;CAU1C"}
|
|
@@ -5,6 +5,7 @@ import { createDebugLogger } from '@aztec/foundation/log';
|
|
|
5
5
|
import { elapsed } from '@aztec/foundation/timer';
|
|
6
6
|
import { L2BlockDownloader } from '@aztec/types';
|
|
7
7
|
import { MerkleTreeOperationsFacade } from '../merkle-tree/merkle_tree_operations_facade.js';
|
|
8
|
+
import { MerkleTreeSnapshotOperationsFacade } from '../merkle-tree/merkle_tree_snapshot_operations_facade.js';
|
|
8
9
|
import { WorldStateRunningState } from './world_state_synchronizer.js';
|
|
9
10
|
const DB_KEY_BLOCK_NUMBER = 'latestBlockNumber';
|
|
10
11
|
/**
|
|
@@ -35,6 +36,9 @@ export class ServerWorldStateSynchronizer {
|
|
|
35
36
|
getCommitted() {
|
|
36
37
|
return new MerkleTreeOperationsFacade(this.merkleTreeDb, false);
|
|
37
38
|
}
|
|
39
|
+
getSnapshot(blockNumber) {
|
|
40
|
+
return new MerkleTreeSnapshotOperationsFacade(this.merkleTreeDb, blockNumber);
|
|
41
|
+
}
|
|
38
42
|
static async new(db, merkleTreeDb, l2BlockSource, config, log = createDebugLogger('aztec:world_state')) {
|
|
39
43
|
const server = new ServerWorldStateSynchronizer(db, merkleTreeDb, l2BlockSource, config, log);
|
|
40
44
|
await __classPrivateFieldGet(server, _ServerWorldStateSynchronizer_instances, "m", _ServerWorldStateSynchronizer_init).call(server);
|
|
@@ -96,7 +100,7 @@ export class ServerWorldStateSynchronizer {
|
|
|
96
100
|
/**
|
|
97
101
|
* Forces an immediate sync
|
|
98
102
|
* @param minBlockNumber - The minimum block number that we must sync to
|
|
99
|
-
* @returns A promise that resolves
|
|
103
|
+
* @returns A promise that resolves with the block number the world state was synced to
|
|
100
104
|
*/
|
|
101
105
|
async syncImmediate(minBlockNumber) {
|
|
102
106
|
if (this.currentState !== WorldStateRunningState.RUNNING) {
|
|
@@ -105,7 +109,7 @@ export class ServerWorldStateSynchronizer {
|
|
|
105
109
|
// If we have been given a block number to sync to and we have reached that number
|
|
106
110
|
// then return.
|
|
107
111
|
if (minBlockNumber !== undefined && minBlockNumber <= this.currentL2BlockNum) {
|
|
108
|
-
return;
|
|
112
|
+
return this.currentL2BlockNum;
|
|
109
113
|
}
|
|
110
114
|
const blockToSyncTo = minBlockNumber === undefined ? 'latest' : `${minBlockNumber}`;
|
|
111
115
|
this.log(`World State at block ${this.currentL2BlockNum}, told to sync to block ${blockToSyncTo}...`);
|
|
@@ -114,7 +118,7 @@ export class ServerWorldStateSynchronizer {
|
|
|
114
118
|
while (true) {
|
|
115
119
|
// Check the block number again
|
|
116
120
|
if (minBlockNumber !== undefined && minBlockNumber <= this.currentL2BlockNum) {
|
|
117
|
-
return;
|
|
121
|
+
return this.currentL2BlockNum;
|
|
118
122
|
}
|
|
119
123
|
// Poll for more blocks
|
|
120
124
|
const numBlocks = await this.l2BlockDownloader.pollImmediate();
|
|
@@ -128,7 +132,7 @@ export class ServerWorldStateSynchronizer {
|
|
|
128
132
|
if (minBlockNumber !== undefined) {
|
|
129
133
|
throw new Error(`Unable to sync to block number ${minBlockNumber}, currently synced to block ${this.currentL2BlockNum}`);
|
|
130
134
|
}
|
|
131
|
-
return;
|
|
135
|
+
return this.currentL2BlockNum;
|
|
132
136
|
}
|
|
133
137
|
}
|
|
134
138
|
/**
|
|
@@ -200,4 +204,4 @@ export class ServerWorldStateSynchronizer {
|
|
|
200
204
|
_ServerWorldStateSynchronizer_instances = new WeakSet(), _ServerWorldStateSynchronizer_init = async function _ServerWorldStateSynchronizer_init() {
|
|
201
205
|
await this.restoreCurrentL2BlockNumber();
|
|
202
206
|
};
|
|
203
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
207
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyX3dvcmxkX3N0YXRlX3N5bmNocm9uaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zeW5jaHJvbml6ZXIvc2VydmVyX3dvcmxkX3N0YXRlX3N5bmNocm9uaXplci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEQsT0FBTyxFQUFXLGlCQUFpQixFQUFpQixNQUFNLGNBQWMsQ0FBQztBQU16RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUM3RixPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUU5RyxPQUFPLEVBQUUsc0JBQXNCLEVBQTRDLE1BQU0sK0JBQStCLENBQUM7QUFFakgsTUFBTSxtQkFBbUIsR0FBRyxtQkFBbUIsQ0FBQztBQUVoRDs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLDRCQUE0QjtJQVl2QyxZQUNVLEVBQVcsRUFDWCxZQUF5QixFQUN6QixhQUE0QixFQUNwQyxNQUF3QixFQUNoQixNQUFNLGlCQUFpQixDQUFDLG1CQUFtQixDQUFDOztRQUo1QyxPQUFFLEdBQUYsRUFBRSxDQUFTO1FBQ1gsaUJBQVksR0FBWixZQUFZLENBQWE7UUFDekIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFFNUIsUUFBRyxHQUFILEdBQUcsQ0FBeUM7UUFoQjlDLHNCQUFpQixHQUFHLENBQUMsQ0FBQztRQUN0Qiw2QkFBd0IsR0FBRyxDQUFDLENBQUM7UUFHN0IsZ0JBQVcsR0FBa0IsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQy9DLGdCQUFXLEdBQWdCLFNBQVMsQ0FBQztRQUNyQyxhQUFRLEdBQUcsSUFBSSxXQUFXLEVB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
|
|
@@ -42,9 +42,9 @@ export interface WorldStateSynchronizer {
|
|
|
42
42
|
/**
|
|
43
43
|
* Forces an immediate sync to an optionally provided minimum block number
|
|
44
44
|
* @param minBlockNumber - The minimum block number that we must sync to
|
|
45
|
-
* @returns A promise that resolves
|
|
45
|
+
* @returns A promise that resolves with the block number the world state was synced to
|
|
46
46
|
*/
|
|
47
|
-
syncImmediate(minBlockNumber?: number): Promise<
|
|
47
|
+
syncImmediate(minBlockNumber?: number): Promise<number>;
|
|
48
48
|
/**
|
|
49
49
|
* Returns an instance of MerkleTreeOperations that will include uncommitted data.
|
|
50
50
|
* @returns An instance of MerkleTreeOperations that will include uncommitted data.
|
|
@@ -55,5 +55,11 @@ export interface WorldStateSynchronizer {
|
|
|
55
55
|
* @returns An instance of MerkleTreeOperations that will not include uncommitted data.
|
|
56
56
|
*/
|
|
57
57
|
getCommitted(): MerkleTreeOperations;
|
|
58
|
+
/**
|
|
59
|
+
* Returns a readonly instance of MerkleTreeOperations where the state is as it was at the given block number
|
|
60
|
+
* @param block - The block number to look at
|
|
61
|
+
* @returns An instance of MerkleTreeOperations
|
|
62
|
+
*/
|
|
63
|
+
getSnapshot(block: number): MerkleTreeOperations;
|
|
58
64
|
}
|
|
59
65
|
//# sourceMappingURL=world_state_synchronizer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"world_state_synchronizer.d.ts","sourceRoot":"","sources":["../../src/synchronizer/world_state_synchronizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD;;GAEG;AACH,oBAAY,sBAAsB;IAChC,IAAI,IAAA;IACJ,QAAQ,IAAA;IACR,OAAO,IAAA;IACP,OAAO,IAAA;CACR;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,KAAK,EAAE,sBAAsB,CAAC;IAC9B;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,KAAK,IAAI,IAAI,CAAC;IAEd;;;OAGG;IACH,MAAM,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAEpC;;OAEG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB;;;;OAIG;IACH,aAAa,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"world_state_synchronizer.d.ts","sourceRoot":"","sources":["../../src/synchronizer/world_state_synchronizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD;;GAEG;AACH,oBAAY,sBAAsB;IAChC,IAAI,IAAA;IACJ,QAAQ,IAAA;IACR,OAAO,IAAA;IACP,OAAO,IAAA;CACR;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,KAAK,EAAE,sBAAsB,CAAC;IAC9B;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,KAAK,IAAI,IAAI,CAAC;IAEd;;;OAGG;IACH,MAAM,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAEpC;;OAEG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB;;;;OAIG;IACH,aAAa,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAExD;;;OAGG;IACH,SAAS,IAAI,oBAAoB,CAAC;IAElC;;;OAGG;IACH,YAAY,IAAI,oBAAoB,CAAC;IAErC;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,oBAAoB,CAAC;CAClD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/world-state-db/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/world-state-db/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
import { NullifierLeafPreimage } from '@aztec/circuits.js';
|
|
2
3
|
import { Fr } from '@aztec/foundation/fields';
|
|
3
|
-
import {
|
|
4
|
+
import { IndexedTreeLeafPreimage } from '@aztec/foundation/trees';
|
|
5
|
+
import { BatchInsertionResult, IndexedTreeSnapshot, TreeSnapshot } from '@aztec/merkle-tree';
|
|
4
6
|
import { L2Block, MerkleTreeId, SiblingPath } from '@aztec/types';
|
|
5
7
|
/**
|
|
6
8
|
* Type alias for the nullifier tree ID.
|
|
@@ -77,7 +79,13 @@ type MerkleTreeSetters = 'appendLeaves' | 'updateLeaf' | 'commit' | 'rollback' |
|
|
|
77
79
|
*/
|
|
78
80
|
export type MerkleTreeDb = {
|
|
79
81
|
[Property in keyof MerkleTreeOperations as Exclude<Property, MerkleTreeSetters>]: WithIncludeUncommitted<MerkleTreeOperations[Property]>;
|
|
80
|
-
} & Pick<MerkleTreeOperations, MerkleTreeSetters
|
|
82
|
+
} & Pick<MerkleTreeOperations, MerkleTreeSetters> & {
|
|
83
|
+
/**
|
|
84
|
+
* Returns a snapshot of the current state of the trees.
|
|
85
|
+
* @param block - The block number to take the snapshot at.
|
|
86
|
+
*/
|
|
87
|
+
getSnapshot(block: number): Promise<ReadonlyArray<TreeSnapshot | IndexedTreeSnapshot>>;
|
|
88
|
+
};
|
|
81
89
|
/**
|
|
82
90
|
* Defines the interface for operations on a set of Merkle Trees.
|
|
83
91
|
*/
|
|
@@ -112,25 +120,25 @@ export interface MerkleTreeOperations {
|
|
|
112
120
|
/**
|
|
113
121
|
* The index of the found leaf.
|
|
114
122
|
*/
|
|
115
|
-
index:
|
|
123
|
+
index: bigint;
|
|
116
124
|
/**
|
|
117
125
|
* A flag indicating if the corresponding leaf's value is equal to `newValue`.
|
|
118
126
|
*/
|
|
119
127
|
alreadyPresent: boolean;
|
|
120
|
-
}>;
|
|
128
|
+
} | undefined>;
|
|
121
129
|
/**
|
|
122
130
|
* Returns the data at a specific leaf.
|
|
123
131
|
* @param treeId - The tree for which leaf data should be returned.
|
|
124
132
|
* @param index - The index of the leaf required.
|
|
125
133
|
*/
|
|
126
|
-
|
|
134
|
+
getLeafPreimage(treeId: IndexedTreeId, index: bigint): Promise<IndexedTreeLeafPreimage | undefined>;
|
|
127
135
|
/**
|
|
128
136
|
* Update the leaf data at the given index.
|
|
129
137
|
* @param treeId - The tree for which leaf data should be edited.
|
|
130
138
|
* @param leaf - The updated leaf value.
|
|
131
139
|
* @param index - The index of the leaf to be updated.
|
|
132
140
|
*/
|
|
133
|
-
updateLeaf(treeId: IndexedTreeId | PublicTreeId, leaf:
|
|
141
|
+
updateLeaf(treeId: IndexedTreeId | PublicTreeId, leaf: NullifierLeafPreimage | Buffer, index: bigint): Promise<void>;
|
|
134
142
|
/**
|
|
135
143
|
* Returns the index containing a leaf value.
|
|
136
144
|
* @param treeId - The tree for which the index should be returned.
|
|
@@ -148,7 +156,7 @@ export interface MerkleTreeOperations {
|
|
|
148
156
|
* This includes all of the current roots of all of the data trees and the current blocks global vars.
|
|
149
157
|
* @param globalVariablesHash - The global variables hash to insert into the block hash.
|
|
150
158
|
*/
|
|
151
|
-
|
|
159
|
+
updateBlocksTree(globalVariablesHash: Fr): Promise<void>;
|
|
152
160
|
/**
|
|
153
161
|
* Updates the latest global variables hash
|
|
154
162
|
* @param globalVariablesHash - The latest global variables hash
|
|
@@ -165,7 +173,7 @@ export interface MerkleTreeOperations {
|
|
|
165
173
|
* @param subtreeHeight - Height of the subtree.
|
|
166
174
|
* @returns The witness data for the leaves to be updated when inserting the new ones.
|
|
167
175
|
*/
|
|
168
|
-
batchInsert(treeId: MerkleTreeId, leaves: Buffer[], subtreeHeight: number): Promise<
|
|
176
|
+
batchInsert<TreeHeight extends number, SubtreeSiblingPathHeight extends number>(treeId: MerkleTreeId, leaves: Buffer[], subtreeHeight: number): Promise<BatchInsertionResult<TreeHeight, SubtreeSiblingPathHeight>>;
|
|
169
177
|
/**
|
|
170
178
|
* Handles a single L2 block (i.e. Inserts the new commitments into the merkle tree).
|
|
171
179
|
* @param block - The L2 block to handle.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merkle_tree_db.d.ts","sourceRoot":"","sources":["../../src/world-state-db/merkle_tree_db.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"merkle_tree_db.d.ts","sourceRoot":"","sources":["../../src/world-state-db/merkle_tree_db.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,4 +27,4 @@ export async function inspectTree(db, treeId, log = createDebugLogger('aztec:ins
|
|
|
27
27
|
}
|
|
28
28
|
log(output.join('\n'));
|
|
29
29
|
}
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVya2xlX3RyZWVfZGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd29ybGQtc3RhdGUtZGIvbWVya2xlX3RyZWVfZGIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHlCQUF5QixFQUF5QixNQUFNLG9CQUFvQixDQUFDO0FBRXRGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBZTFEOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsQ0FBQyxHQUFHLHlCQUF5QixDQUFDO0FBMk16RTs7R0FFRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsV0FBVyxDQUMvQixFQUF3QixFQUN4QixNQUFvQixFQUNwQixHQUFHLEdBQUcsaUJBQWlCLENBQUMsb0JBQW9CLENBQUM7SUFFN0MsTUFBTSxJQUFJLEdBQUcsTUFBTSxFQUFFLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFDLE1BQU0sTUFBTSxHQUFHLENBQUMsV0FBVyxNQUFNLFNBQVMsSUFBSSxDQUFDLElBQUksV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDM0YsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDbEMsTUFBTSxDQUFDLElBQUksQ0FDVCxTQUFTLENBQUMsS0FBSyxNQUFNLEVBQUUsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksYUFBYSxDQUFDLEVBQUUsQ0FDekcsQ0FBQztLQUNIO0lBQ0QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUN6QixDQUFDIn0=
|